Thursday, March 18, 2010

Unix Hater Handbook 是好书!

Unix Hater's Handbook 真是一本好书啊~~ 连前言都很搞笑:

As for me? I switched to the Mac. No more grep, no more piping, no more SED scripts. Just a simple, elegant life: “Your application has unexpectedly quit due to error number –1. OK?”

话说 sed script 真的不是给人写的,而我至今也搞不清楚在vim/sed/perl的正则里可以用哪些是需要escape的……btw,昨天我终于学会在sed里一次处理跨行并且使用传说中的hold space了……

btw, 昨儿 LFS-6.6 失败了,glibc 编译不能,重大悲剧…… 哥不干了,装个ArchLinux算了…… 昨天搜索的时候遇到一个ArchMobile,囧,我们Arch这么小众的都在进军mobile领域……要是足够闲就自己造手机了,EE/CS俺都会点的呢……

Sunday, March 14, 2010

人·机

■ 引

这两天了解了一下 Pylons 这个 Python web framework,对它第一印象还算可以,不过按照 Tutorial 写的程序居然不能运行……原因是去年发布以后所依赖的库发生了巨大的变化.-__-b

这种依赖剧烈升级似乎是一个惯常的严重问题了。想想 Linux 每次升级库的时候的提心吊胆就知道了。依赖库能够最大程度的提高开发效率,减少自己制造轮子的问题,可是用别人造的轮子就有需要匹配轮子的问题。比如这个 Pylons , 从 0.9.7 到 1.0rc 似乎没什么新鲜功能,可是开发者还是叫苦说自己可没闲着,都在忙着和依赖库的变化作斗争。

这也难怪 Intel 和 Microsoft 这样的企业能在多年的不思进取的指责中屹立不倒,他们靠的就是在开发新功能时候维持一个尽量稳定的产品接口( X86指令集,Windows API )。


■ 问

《人月神话》告诉我们一件工作一个人十天能做完,可是找十个人却不见得能够一天做完。而如果这些人还不是受雇同一个主顾,没有统一的交流平台的话,情况只会更糟糕。e-mail/mailing list/ICR/twitter 交流手段不断变化,效率提升却不明显。

可是人不可能有足够的预见,以至于我们只需要一起维护一个不会失败的方案。于是我们就需要尝试不同的方案,而从提高效率考虑,又需要人们分散去尝试不同的方案。


■ 玄

沟通问题很像是并行计算里数据/控制传输成本,每个人就像集群中的一台机器。处理更大规模的计算,要么有更好的算法,要么有更强大的节点。可是无论我们怎么优化节点(提高每个人自身的能力),似乎都已接近上限了;那么只能改进算法(改进合作模式)。

想起 Yale Patt 的一个比喻,我们需要一个智商 350 的聪明人,可是只找到 10 个智商 35 的,那么是不可能解决问题的。那么一个直接的推论就是只要这类问题存在,那么人类能成果的发展最后就会止于再也找不到更聪明的人。(当然节点数目——环境可承载人类总数——也可能成为约束,可是我们已经有很多人了不是?)

那么,我们有多接近这个极限?


■ 空

我们需要接近这个极限么?更多的产品,更好的服务,更快的速度,更低的价格……我们一直追寻,想得到什么?

Thursday, March 11, 2010

blogger 还真是死不开窍

居然这么长时间了还是会在切换 HTML 和 WYSIWYG 编辑的时候自动去掉<p>标签,替换以换行符<br />,真是不知道说什么好,也不看看人家 wordpress 的进步,唉,被 google 收购了就这么不思进取。

自动下载 LFS 所需的文件

自从 LFS 6.6 之后,LFS CD 就不更新了,于是就得自己下载所需的文件。而我又不喜欢自动的 ahalfs ,所以从 LFS book 中直接抽取需要下载的文件,然后趁着午饭时间让 wget 干活,嘿嘿

grep '.patch' chapter03/patches.html | sed -n 's/^\s*"\(.*\)".*/\1/p' > ~/Desktop/list.tmp
grep '.patch' chapter03/patches.html | sed -n 's/^\s*"\(.*\)".*/\1/p' >> ~/Desktop/list.tmp
wget -i list.tmp

Sunday, March 7, 2010

Viewnior - Linux下小巧快速的看图软件

本来在ArchLinux下一只用Mirage来查看软件,Mirage是很小,依赖也很少,唯一的缺点就是速度稍微慢了一点。今天偶尔发现了Viewnior,从AUR里编译出来装上试了试,速度竟比Mirage快不少,很是满意,推荐一下。

Thursday, March 4, 2010

邮件发布测试

打扰了,不好意思 *^___^*

智能手机OS观察

前些天写的,是中文的就没放到 tech blog,放到生活日志又不合适,干脆建立一个中文的“技术水池”吧……

最近很是受到TIM版的 G2 的引诱,不过价格暂时还在2k以上,没有下手的动力……

开始搜索了一 些关于 android 系统手机的信息,后来好奇心驱使下熬夜爬墙的看了一大堆android的系统资料;今天顺手了解了不开源的 BlackBerry OS 的一点信息以及刚刚开源的Symbian……

总得印象就是 Android 很 有希望,Symbian 要悲剧了,BlackBerry 还能蹦跶一阵……至于Windows Mobile,这么个到现在还只支持65536色的系统我实在懒的了解,等 Windows Phone 7 的资料更多再说吧。

Android

Android 的特色之一就是 HAL,这个东西和 Linux 上的那个 HAL 同名,但是实际上起的是 OS kernel 之上的硬件抽象作用。这给了 Vendor 一个很好的避免 Linux Kernel GPL 传染的方式,消除了不少麻烦。

Dalvik VM 是 Google 自己造出来的,虽然一般被当作 Java 虚拟机,实际上执行的却不是 Java bitecode,因此理论上可以用其他语言编写然后交叉编译过去;不过 Java 为广大民工喜闻乐见,想要别的语言的估计也不太多……

Android只有性能相关的系统库是 native 的,而且给程序员用的也是 Java 包装好的接口,这对维护系统的一致性很有好处,应该不会像桌面 Linux 的那些库一样动不动就打架罢工……不过随之而来的一个问题就是拓展性,比如想加一个Helix解码库就不容易(不知道Helix?知道RMVB吧, 就是用来解码RMVB的库)。【正能解自家的Youbute视频就好啦,其他的谁管呢~


Android 用户程序生而平等…… Home 就是一个 Activity,对界面约束极少倒是像个 Linux,开发 Sense一类的用户界面相对更容易。

仰赖不同 APK 运 行于不同的 user id 下并只通过系统 bind 进行通信的机制,小机器人的安全性应该不错。当然到处乱刷 ROM 的风险还是不小的(特别在国内这种迷信xxx论坛美化/优化版的 地方,这种问题更严重,不厚道的说现在开发基于 Android 的 Adware/Malware已经很值得考虑了)。

Android 上现在还没几个收费的游戏,这说明大的软件厂商还没有大举进军 Android,暂时以来自自由软件世界的个人英雄主义开发者为主,不过这应该只是时间 问题。

需要说的一个是“ Android 不能关程序”这个说法,这个是设计成这样的,不是缺陷,理论上应该还是 个不错的想法。不过不知道运行时会不会智能的学习程序行为,对不同程序区分对待。如果没有,倒是可以考虑研究之……或许能在 Android 圈里立名,呵呵。

BlackBerry

铁板一块……想 hack 都找不到门的系统,只是提供了 Java API(不知道Android 是不是就是和BB学来的思路?)好处就是安全,坏处就是不那么geek-friendly。

另外 BlackBerry 结合企业应用还是很有点积累的, 有一套通过手机远程使用假设在公司服务的系统 (BES),这公司居然没跟着风大喊自己搞的是云计算,真是太憨厚了 *^__^*

不过没了 BES 感觉 BB 就少了 很多竞争力…… 尤其是在现在世界娱乐化无聊 化(以facebook崛起为特征)的大潮中,BB 对于第三方应用程序/游戏的开发者/开发公司的吸引力稍欠,有被边缘化的可能。

Symbian

从1980年开始活到现在了,比 DOS 长寿多了……Symbian(包括目前在规划和路线图中的 Symbian^3和 Symbian^4 的最大特点就是支持用户级别的 native 程序,反倒是 Java VM 在整个系统中看着很不伦不类……

大家常说的S60 其实是 Symbian 的上层而已,使用同样 Kernel 的还有以前 Sony 家的 UIQ 以及几乎没见过的 S90 等; S60 基本上是随着 Kernel 版号发行的。

Nokia 的开发语言是 C++, 准确的说是 C++的一个芬兰味方言版,哈哈。当 iPhone 开始颠覆手机概念的时候,Nokia 认识到需要一个更好的界面,于是收来了Trolltech ,把未来寄予在 Qt 上。在这之后就经常在 Youtube 上看 Qt 团队秀效果…… 不过全面 Qt看来还要等 Symbian^4 ,大概在 2010 Q4才会搞好……我个人很喜欢 Qt , 不过我还是认为 C++ 可能不是在手机上的 最好选择…… 一则 Nokia 方言版的 C++ 很多限制,二是代码质量和系统安全都是挑战。(总体来说我认为当今 IT 从业人员写代码的能力持严重怀疑态度,开发工具最好越傻瓜化越好,而 C++ 太需要“智能”了,让二流开发者拿去 race to market 不现实。)

好在 Nokia 很 怕在一棵树上吊死,Java、Python、Ruby,连 .Net 都有……加上最近打了鸡血似的全面开源 Symbian ,接着拿出 Symbian^3/^4 的时间表,甚至跑出来指责 android 开源不彻底;看来去年在智能手机市场上份额的4% 下滑已经把 Nokia 的尾巴点着了……