2007年12月14日星期五

闲扯一下

最近太忙,一点都没有闲扯的欲望,这是不是说明我正在摆脱IDLE状态,向成功人士迈进呢?:)稍微扯一下吧,不然还食不食人间烟火了。

先说说俺们这旮旯的房价,自从去年3、4月以来就节节攀升。我每次路过家门口的中介公司的时候都会瞄眼房价,眼看着6位数上蹭蹭往上涨,终于有一天全线蹦 上7位数。7位数要还这么蹭蹭涨就悬了,果然以后就很消停了。突然有一天一瞅房价,霍,又回6位数了,难不成北京房价真下跌了不成。揉揉眼镜再看(没错, 是拿衣服角揉了揉眼镜上的灰),不到90万诶。

凑近再看,房价边上有俩小字:首付!

再说说这物价上涨,猪肉这一年涨了多少,有没有100%啊,去商场买衣服,据我老婆说价格也涨了不少,结果要给我买的衬衣就在五道口服装市场解决了。你还 别说,五道口服装市场的物价还算稳定,我2000年在那买50块一条的牛仔裤,我老婆现在在那也能买到50块一件的衬衣:)。

央视2套的节目很有深度的探讨了当前物价上涨是不是通货膨胀。刚开始学写议论文的小学生都知道,对一个问题要正反两面论述。央视2套很有才的选择了电器价 格下跌和北京交通费用下跌作为反面论据。我想他们遮遮掩掩想要告诉大家的还是:当前还不是通货膨胀,是结构性调整。nnd,这真是一个人才辈出的年代啊, 为了把A说成B,得发明多少新词啊!结构性调整跟通货膨胀有啥区别呢?这才真是对汉语的污染啊。不过也许若干年后,有心人会出个对照表,帮助后人理解这个 有点荒诞的时代。

再说说广东企业的倒闭。从我自己的经历来说,我为此是感到欢欣鼓舞的。广东那些工厂的工人们,他们的生存状况真是惨啊。国家经济繁荣带给他们的只是温饱和 肉体心灵上的无限痛苦。这是我亲眼看到的,我见过十几岁的小姑娘因为连续上班24小时,在生产线上流着眼泪干活;高档住宅区对面就是如同窝棚一样的民工宿 舍。也有我外出打工的亲戚告诉我的,每天4、5个小时的休息时间,连续一个月的高强度工作。

这些企业所带了的是什么呢?资本家巨大的财富,国家巨额的外汇储备(恩,外汇多得都发愁了),供应全世界其他国家人民的低价产品。这产品当然也供应国内,不过因为工人们工资太低,这些产品对他们来说也还是太贵了,工人们消费不起自己制造的商品。

沉重了沉重了,就扯到这吧:)

有关wii最牛的创意

毫无疑问,wii本身就是一个非常有创意的产品,它的手柄则是它最有创意的部分。

如果在两天前,这么说一点问题都没有。但是两天前看到cmu的一个学生所作的东西,我就后悔上面的“最”用早了。

大家自己去看这个连接上的视频吧:http://www.cs.cmu.edu/~johnny/projects/wii/

2007年12月2日星期日

Java “Program once, Run everywhere”理念的google实现

都说Sun发明了Java,却没能从Java上面赚到什么钱,大头都让IBM、Oracle赚去了。如今,悄无声息地,Google也推出了几项跟Java相关的技术,以另外一种方式实现了Java的理念:Program Once, Run Everywhere。

第一项技术是Google Web Toolkit,用写普通Java的方式编写Web 2.0时代的Web应用程序,或者叫做RIA。
第二项技术是Google刚推出的Android平台,同样是用写Java程序的方式编写手机应用程序。
第三项技术也许看上去不那么相关,那就是Google推出的为浏览器提供离线浏览功能的插件。有了它,Web应用程序和本地应用程序的界限就不那么清楚了。

利用这些技术,你就能做到(理想情况下),写一个程序,既能像本地应用程序一样运行,也能通过浏览器来使用,甚至可以在手机上运行。这真是很Cool的一件事情:)

2007年11月18日星期日

关于X

X不是叉,X是一套很久远的Window系统。自从我上次关注它以来(1998年左右在图书馆翻阅了一套关于X的书),它变化很大,都快把我搞糊涂了,这 两天在xorg的网站和Keith Packard 的网站上看了一些文章,勉勉强强把一些概念具体化了些,彼此间的关系稍微有点头绪,下一步要看看具体的代码,写写程序。

今天在看Composite的时候,做了个实验,不妨跟大家分享一下,也算给这个冷清的blog添点人气。

1. 在一台Thinkpad T61p笔记本上,没有安装ATI的驱动,X就用vesa跑的,开了composite manager(KDE自带的那个)。在term里用"ps -eo ’%mem command‘|grep X“来查看X的内存占用。结果发现当我最大化一个窗口的时候,X的占用会增加个300K左右,如果把这个窗口卷起,X的占用就减少300K,屡试不爽。

当我关掉composite manager之后,窗口的大小变化就不影响X的内存占用了。

这说明X用主机内存实现了off screen的pbuffer。

2. 然后回到家在一台使用Nvidia显卡,并且安装了nvidia驱动的台式机上,重复这个实验,发现窗口变大变小对X内存占用有影响,但是小很多, 100k的样子。按理说,家里显示器的分辨率是1680x1050,比笔记本的1450x1080要大不少,内存占用应该多一些才是。

这是不是可以说明,nvidia用显存(至少部分)实现了offscreen的pbuffer呢?

2007年8月27日星期一

Readcode支持History了

因为使用Ajax的缘故,浏览器的“backward”和“forward”按钮在Readcode.org上一直是不能工作的。这对看代码的人来说,是不能接受的。
还好,解决这个问题并不那么难,我只需要用javascript在每次click一个href的时候记录当前页面状态,然后就能实现一个简单但是足够好用的History功能了。
现在,history功能结合上google gears提供的离线浏览,一个快速方便的看代码工具就基本完备了:)

2007年8月7日星期二

有关Gnome的未来

恩,各位Gnome的fans们,饭KDE的我要开始挖苦一下Gnome了,如果担心引起不适,请不要继续阅读了:)

写这篇文章的动机是今天看到的一篇Blog:i’m excited about the future of gnome。虽然其作者看上去跟Gnome是一个阵营的,我却禁不住觉得他在反话正说。毕竟,他所列出让他激动的Gnome的feature与刚刚发布Beta1的KDE4比起来,实在不值一提。

也许他在开头的那段话才是真正的主题:
“about half a year ago i was looking around me and seeing stagnation in the gnome community. ”

2007年8月1日星期三

找到Linux系统中的电老虎

最近在我的T60p上装了Ubuntu7.10,以前的系统是Windows XP,结果发现电池使用时间从5个小时锐减到3个小时不到,很郁闷。

可巧听说了一个工具,powertop,可以找到系统里最费电的程序(严格说来,是导致CPU离开idle状态的程序),就拿来跑了一跑,发现powertop不光可以列出系统内的耗电大户,还能给出优化系统能源消耗的指导,并且只需一个按键就是实施,很不错。

比如现在,因为用的是有线网,系统就提示说可以按I键关掉无线;还比如提示可以设置文件系统的属性为noatime等等。

观察了一下,我的系统里,不肯让CPU闲着的竟然有pcmcia的驱动,我并没有用pcmcia设备,rmmod之。还有uhci_hcd,我也没用usb设备,rmmod之;还有thinkpad_keys,如果不需要那几个功能键,也可以kill之。

当然干掉这几个电老虎,也不见得有啥效果。毕竟对于Linux而言,节能还是个比较新的话题,像刚才被我干掉的应用程序/驱动,在设计上根本就没有考虑节能的问题,他们考虑更多的是功能,性能。

还需要假以时日啊!

2007年7月26日星期四

读sqlite,理解数据库实现原理

开源的一个好处就是让大家能看到一些优秀的源代码,深刻的了解一些计算机原理。Sqlite就是其中之一。

Sqlite是一个轻量级的c库,实现了一个自包含的,可嵌入的,零配置的SQL数据库引擎(翻译自其网站首页:
SQLite is a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine。)近来,Sqlite以其独具一格的特性,在很多领域里得到了广泛的应用。

Sqlite的代码简洁清晰,注释极其详尽,看过之后感觉以前在学校学的那点数据库皮毛得到了质的提升:) 大致说来,Sqlite分为3个模块(我姑且这么一分,大家自己去看吧):

  1. Btree模块:这个模块实现了一个基于磁盘存储的,支持多种高级特性的BTree。该模块是数据库的基础,大家大可以直接使用该模块,实现自己的数据库,当然就不支持SQL语句了。

  2. SQL语句编译优化模块:从SQL语句生成能在SQL虚拟机上执行的目标代码

  3. SQL虚拟机:真正在Btree上执行操作的就是它了。


我只花了点时间看了下Btree的实现,顺带因为好奇,写了一个小程序解读sqlite数据库文件的内部结构,了解了数据库的一张表映射到Btree上是什么样的查找结构,很有意思哦。

恩,强烈推荐大家阅读Sqlite的源码。当然,看代码已经很简单了,只需要点这里就OK了(嘿嘿,赤果果的广告):
www.readcode.org/code#sqlite-3.4.1

2007年7月19日星期四

ReadCode.org的更新

Reacode.org这段时间以来又增加了些功能,自己感觉比较好用了。现在自己有时候要查看下代码就用这个网站,还是很顺手的。大致的功能包括,

  1. 支持Google Gears,实现离线浏览,经常看的代码就不用再从网站上取了。

  2. 文件搜索

  3. 各种Identifier(函数/变量)的定义、引用的查找

  4. 最近查看的文件

  5. 写注释

  6. 书签


还在设想其他一些功能,最主要的就是call trace,目标是在代码阅读的过程中,随时可以看到自己是从哪里到这里来的,会走到哪里去。不过具体如何实现还没确切的想法。

另外,把建站软件整理好之后,会提供下载。

恩,就这么多,大家用用吧,希望能看到大家的意见建议 :)

2007年4月21日星期六

Debian or Ubuntu?

多年来,作为一个Debian的忠实用户,我在我所有的电脑上都安装Debian,并向所有的人推荐Debian。不过在使用了一段时间Ubuntu之后,我在向别人推荐Debian的同时也捎带推荐一下Ubuntu。
最近,Debian和Ubuntu都发布了最新版本。相比之下,Ubuntu发布所吸引的注意力似乎远胜Debian。选择Debian还是Ubuntu,现在似乎成了一个问题。
为了解决这个问题,我在虚拟机(VirtualBox)里分别安装了Debian(KDE)和Ubuntu(Gnome),然后感觉Debian下的KDE更加清爽,速度似乎也更快。
我承认,这个测试非常不严谨,非常主观,尤其是对一个从来没有喜欢过Gnome的人来说。但是它解决了我的这个问题,我想我以后还是会向大家推荐Debian,捎带推荐一下Ubuntu。

在线看代码,写注释

弄了一个网站,www.readcode.org
可以在上面看代码,为代码写注释,查看别人写的注释。下一步要做的功能是书签,笔记功能。然后是函数调用分析。
另外,注释信息最终是要存放到GoogleBase上,这个功能有时间也给做了。建站软件打算以开源的方式发布,不过现在还没时间整理,是用Ruby on Rails做的。

恩,大家去看看吧:

ps:有精通CSS的高手把我重新设计一下layout吧:)

2007年4月1日星期日

SWIG:脚本语言与C/C++混合编程的强大工具

前些天发现了这个工具,推荐给同事,据他说很好用,很强大。
http://www.swig.org/
另外有个很简洁的教程:
http://www.swig.org/tutorial.html

可以很方便的从各种脚本语言包括python,perl,ruby,tcl以及java,C#调用C/C++编写的模块。

2007年3月26日星期一

Google新的搜索引擎?

www.searchmash.com
在用户体验上有很大的改动。搜索结果和直接google到的也有区别(不过试验了几个差别不大)。
各位不妨试试

微软的互联网好像做得不咋的

上周六参加同学婚礼,碰到一个在微软工作的同学,调侃他说:“你们的Live做得太烂了,把微软的脸都丢尽了“。这哥们说:”微软没把重点放在中国,国外做得还是很好的”。
他这一竿子指到国外,我也没话说了,没用过没发言权呀。不过今天一早看到一则新闻,看起来微软不光在中国,在美国做得也不咋的。原文链接如下:

Microsoft Continues to Lose Online Popularity


这个图表更直观,微软在美国在线广告市场的份额下降得很厉害:

2007年3月18日星期日

打造一台客厅里的计算机

占领客厅,其实早已列入了包括微软、Intel、Sony、苹果甚至Google等IT巨头的战略部署。在它们的厮杀结果出来之前,我现在就想diy一个客厅电脑,放在客厅电视边上,这样我回家的时候就能躺在沙发上,而不用继续面对电脑了。OK,下面开始YY。

先列下功能,家庭网关,无线接入,P2P下载,各种多媒体的播放,各种即时聊天软件,上网浏览新闻,连接打印机、扫描仪、数码相机、摄像机,摄像头,Voip,游戏功能(对我来说,可选),文件服务器,Web服务器,远程控制。而且这些功能都要能用遥控器很方便的操作,可以考虑加入声控功能。

再看一下硬件规格,要美观小巧(太丑太大可不好往客厅放),耗电小(24小时开着呢),噪音低。在市面上找找,有如下几种方案:

  1. XBox360,微软的游戏机,游戏功能强劲,带硬盘,外观也不错。可惜目前好像还难以顺利安装Linux,因此被一票否决。

  2. PS3,Sony的游戏机,游戏功能更强,带硬盘,而且对Linux的支持非常好,缺点是价格还是太高,给我这种不太玩游戏的人用,有点暴殄天物。

  3. Wii,任天堂的游戏机,对它的全新游戏方式很感兴趣,如果能加装硬盘能安装Linux,会是不错的选择。Hacker们,加油啊!

  4. EPIA,VIA的产品,在17cm x 17cm (Mini ITX)或12cm x 12cm(Nano ITX)的主板上集成了显卡声卡网卡CPU和各种外围接口包括视频输出、S端子,接上电源内存和硬盘就是一台x86的电脑。爱装嘛装嘛,爱咋整咋整。CPU的功耗相当低,C7是9w-20w,Eden是2.5w-7w。这样的功耗风扇都有可能省掉,绝对的安静。打听了一下EPIA EN这个型号(CPU是C7 1.5G)的价格,1700,把各种东西配齐2500应该差不多可以搞定,成本还可以接受。自己再DIY一个机箱,绝对够Cool。不过CPU计算能力较弱,不知道能不能流畅播放较高分辨率的视频。

  5. Mac Mini,苹果的产品,外观没的说,功耗也很低,就是贵了点。如果银子充足又懒得DIY,那Mac Mini绝对是完美之选。

  6. 龙芯,哈哈没想到吧。前段时间龙芯电脑以1590的价格出了1000台给大家试用,目前看来CPU还弱了点,各种外围芯片还不成熟。不过不管怎么说是咱们自己的娃,如果正式开卖,我会考虑买一台的。


硬件的选型差不多就这些了。再说说软件,软件不用选,我只用Linux:)不过目前Linux下好像还没有适合用遥控器操作的图形环境,也没有专为客厅电脑定制的发行版,可以考虑发起一个项目来弄一个,应该是非常Cool的。

2007年3月7日星期三

把ATOM转成RSS

有些时候,你不得不做一大堆事情,结果发现有很简单的办法。

我在blogger.com上开了一个博客,发布到我自己的一个虚拟主机上。几天前blogger.com还能向我的FTP上传rss和atom两种格式的feed。而我的这个网站的首页是要从rss格式的feed中提取内容,重新生成的。

前天晚上我写完一篇帖子,昨天一早虚拟主机的cron发信告诉我生成首页失败。一检查,发现blogger.com生成的rss.xml和atom.xml都是ATOM格式的了。对此我明智的采取了以下措施:

1.试图利用atom生成首页,可惜我所用的脚本语言,ruby,还未能提供atom的parser,失败

2.在blogger.com上找配置选项。 失败

3.在blogger.com的讨论组上叫骂,未果

到此,已经耽误了昨晚的全部时间,拖到今天早上了。然后就发现了这篇文章,然后一切就很简单了!

http://atom.geekhood.net/

2007年2月20日星期二

在Linux下安装IE,一步搞定

最多三步:)话说回来,在Linux上装IE,我也是一万个不愿意啊,谁让做个网页还要兼顾天杀的IE呢!大家还是多多转向Firefox,Konqueror和Opera,这样世界会美好得多。

闲话少说,如果你也有不得已的苦衷,必须要用IE的话,告诉你,已经很简单了。

第一步,安装wine和cabextract。debian/ubuntu用户只需apt-get install wine cabextract
第二步,点击此处下载安装脚本,解开执行之。

第三步,回答一些问题,按几次回车,然后耐心的等待...

OK,你的Linux桌面上应该会出现一个IE的图标,点击运行吧。

IE on Linux

IE on Linux

2007年2月9日星期五

kvm试用,淘汰了vmware

Linux内核2.6.20出来以后,一直想要试用下KVM,却总没得空。今天碰巧需要用到IE,就索性花点功夫,在Debian下用KVM装了下windowsXP。结果竟然是如此简单,效果如此得好。步骤如下:

  1. 编译linux-2.6.20的内核并用新内核启动机器,记得在配置内核编译选项的时候把KVM的支持打开

  2. 安装kvm,qemu。Debian unstable的repository里面就有

  3. 创建一个虚拟硬盘: qemu-img create hda.img -f qcow 6G

  4. 开始安装: kvm -no-acpi -m 256 -cdrom winxpsp2.iso -hda hda.img -boot d


系统很快就装好。启动一些应用程序,速度很快。网络自动配好,大概是NAT的方式。Linux系统上CPU占用率一般在10%以下,用IE打开“news.sina.com.cn"的时候,最高达到70%。

本来还惴惴不安,现在初步感觉KVM取代VMware没有问题,看来,能进Linux内核的软件还是信得过的。

我参考了这篇文章,里面除了安装还有一些性能评测的结果,有兴趣的可以看一下。

2007年2月5日星期一

linux kernel 2.6.20发布了,集市开发模式的胜利!

恩,比官方消息稍微滞后了些。(BTW:不喜欢用口号式的标题,不过吸引下眼球嘛!)

前段时间Linus在澳大利亚接受采访的时候,说他自己也非常惊讶于2.6内核的弹性。确实,2.6系列的内核在不断稳定不断提高性能的同时,许多非常Cool的特性也可以非常方便的加入。单就看看2.6.20为我们带来些什么吧:

  1. 支持sony ps3 (用Linux在PS3上打造一个超级家用媒体网络服务器,cool吧)

  2. 内核级的虚拟技术kvm (让Windows象一个普通程序一样跑在Linux上)

  3. UDP-Lite,新的传输层协议,适合用于在无线网络上传输多媒体信息

  4. 此处略去n条,详情请见这里


在Linux内核的开发中,很多工作并不是实现某种可见的功能,而是重构。这也是集市开发的特点,我看这段代码不顺眼,我就可以改,只要改得合理就会被采用。正因为不断的重构,Linux内核的结构越来越合理,接口越来越清晰,开发越来越容易,这是一个非常良性的循环。

对比俺目前的工作,只求能Work,风险小,时间短,严重依赖测试,代码越来越rotten,大量不知所谓的代码留在那谁也不想动。相信很多商业软件开发都面临同样的问题吧。Windows Vista闭门造车数年,能弄出个什么东东呢,还有待观察,反正SP已经出来了~~~

唉,还是想做开源的开发!

rails的vim插件,rails.vim

不小心从youtube上看到这段video,立马安装试了一下,棒极了。
这些天写rails程序,最烦的就是在layout,view,controller,helper之间切来切去。现在简单了,":Rlayout xxx"就能打开xxx的layout,":Rcontroller xxx"就能打开叫xxx的controller,"Rview xxx"就能打开当前context下对应的view文件。
爽,这回才真的ride on the rails了:)

2007年1月23日星期二

这么cool的桌面,你见过没?

首先声明,这个标题纯属哗众取宠,以求增加点击率,呵呵。

大家仔细看看底下这张图,图的左边是现在的KDE桌面,右边也许会是未来的KDE桌面。详细的说明在这

2007年1月17日星期三

Sandisk推出基于.NET和Linux的mp3播放器

大家注意这款SanDisk出的MP3播放器,它是基于.NET的,同时它也是运行在Linux上的。如果你还不知道为什么.net能跑在Linux上,那现在是时候了,那就是因为Mono,一个开源的.net实现。


昨天下班路上还在跟同事侃mono,很多人可能还不知道它,或许知道它但是不知道它已经有很高的完成度并被广泛的采用,简单列举几个:



  • Gnome的桌面搜索beagle

  • 看图软件F-spot

  • wiki便箴tomboy

  • 国外火爆的网游secondlife


如今,mono甚至运用在对健壮性要求甚高的嵌入式环境中,足见mono已经到了一个很完善的程度了。


2007年1月15日星期一

微软的Home Server或许将推动Linux的普及

有专家分析说Windows Vista将推动桌面Linux的普及。最近Gates又要推Home Server,我觉得这对Linux来说倒真是个很好的机会。
Linux在Home Server领域有很强的竞争力,远远胜过Windows。Home Server能干嘛?打印服务器、文件服务器、多媒体中心、网络接入服务器、下载服务器,专业点的用户再起个web服务器、FTP服务器什么的,再连接一 些外设比如扫描仪、数码相机什么的,可以通过电视来看各种文档。
这些功能,Linux都可以完成的非常好,甚至好过windows。而长期以来Linux相对于Windows的弱点,即用户界面、使用习惯的不一致,在这个领域又不是很明显,毕竟这里没有Office那样复杂的运用。
因此可以预见,一旦微软催生了Home Server市场,一定会有一大批基于Linux的低成本高性能的产品涌现出来,也肯定会有很多用户开始在自己的PC甚至xbox、xbox360、ps3上安装Linux,DIY一个home server。
对于Linux而言,这其实是件很简单的事情,而且越来越简单。只是微软把事情搞复杂了,没办法,不弄复杂点怎么收钱呢?

2007年1月10日星期三

linux下读写ntfs已经这么简单了

步骤如此文! 采用的是ntfs-3g和fuse。
我的系统是ubuntu6.10,并不需要像文中那样修改sources.list就能安装所需要的软件包。
相信这个方法对debian一样适用,还没来得及试!