Source favicon22:44 Coffee, Chat and Metro Transition » Wangjianshuo's blog
It is nice to meet Haichao again, after we briefly met half year ago. The Starbucks at Xujiahui is more crowded, and noisy. My reading before he arrives was frequently interrupted by some words or sentences from far away seats. After many times, I still cannot distinguish Mocha and Coffee Latte. I know they are different, but cannot match the name and their tastes. So every time I order, I just randomly pick one name from the two. It is...
Source favicon22:12 YPN launches their own Yahoo Publisher Network Blog » JenSense - Making Sense of Contextual Advertising
You heard it here first! YPN has launched their own YPN blog to keep publishers (and want-to-be publishers!) up-to-date and in the loop with the very latest about the program. Yahoo! Publisher Network blog will be a resource for publishers,...
Source favicon22:00 重要图书: MySQL Stored Procedure Programming » DBA notes
看到有 Blog 说 Oracle PL/SQL 经典图书 Oracle PL/SQL Programming 的作者 Steven Feuerstein 出了本新书, 这应该不算什么太新鲜的事情,新鲜的是: 这本图书是关于 MySQL 存储过程的! 新书的名字是 MySQL Stored Procedure Programming , 出版商是 O'Reilly. 更值得注意的是, 第一作者是 Guy Harrison , 这位老兄是 Quest 软件的架构师(而 Quest 近年来也对 MySQL 的数据库工具推出了不少产品), 也是 Oracle SQL High-Performance Tuning 一书的作者。Oracle SQL High-Performance Tuning 在很长的一段时间内都曾经被一些 Oracle 优化专家推崇, 现在虽然有些过时, 但想起来没能被国内出版社及时引进, 仍然有些遗憾。 从 O'reilly 的宣传来看, 现在 Guy Harrison 的名头反而不如 Steven Feuerstein 响亮了(所以个别地方把 Steven 放到前面?), 也让人感慨.
Source favicon21:05 再论ruby » 天堂的阶梯

还记得几个月前我曾经说只有当我闲到无聊的时候才会去学学ruby,我说谎了。在我毕设答辩最忙的时候,我在偷偷地看programming ruby。在我工作的间歇,我在偷偷地看agile web development with rails。在我有机会写一些小应用的时候,我拼命地抓住机会用ruby。人的好奇心真是奇怪的东西,当ruby和ruby on rails整个community如此火热的时候,我没有挡住这种诱惑。


尽管我现在写过的ruby代码行数可能不到500行,尽管我甚至没有用rails写过web应用,但是我必须承认我当时的想法错了。ruby是那种第一眼看上去并不怎么样,但越用就越爱不释手的东西,有些东西只有用过之后才会有感觉。

很难通过哪一个点说出ruby比其它语言(尤其是Java优秀),有的时候一些语法的改进似乎是那么的不起眼,但是当这些细小的东西组合在一起的时候,那么种感觉是Oh my god!,真是太爽了。记得当时JDK 5引入了一个for each循环的时候,感觉只是一点点语法的改动,但是真正写起代码时才感觉到真是太方便了,而ruby远不止是for each循环这样的语法糖,当好多这些组合在一起的时候,给人的感觉是写程序竟然会那么easy,那么有趣。

Closure、正则表达式、range所有这些特性给人的感觉是写ruby的程序就象写诗一样,它是比Java更高级的语言,或者抽象程度更高的语言。ruby is beautiful。

然而,当全世界都在喧嚷着Java将会被ruby或被动态脚本语言所替代时,我不得不保持我的理智,语言的美丽并不能保证它会被大众所接受。很多人认为ruby很简单,因为它是比Java更高级的语言,因此它比Java更容易。他们错了。也许从语法上来说,他们是对的,尽管ruby的语法更具有灵活性,但是这点语法灵活性不会给ruby带来太大的学习门槛。也许因为类型的动态性,使IDE的IntelliSense statement completion不能用会造成很多人的不适应。也许因为ruby的动态类型,使很多的重构功能都不能使用会给人带来不变。

然而真正的问题是,ruby的动态数据类型会给人带来思维上的转变,而这种转变使得ruby的使用者所遵守的协议变得松散。
1、ruby的duck type使我们的面向对象思维颠覆,也使我们需要重新思考所有现有设计模式,因为我们不需要interface了,这曾经是我们面向对象设计的精华。类的核心是对象的行为,而不是类型,这就是duck type的基本理论,只要你飞得象鸭子、叫得象鸭子,那你就是鸭子。无需求任何abstract class或interface的约束,我们就可以完成任何事情!这真是太爽了, 太灵活了, 但这种灵活性使开发者无需去遵守interface所规定的协议,因为我们根本不需要interface的类型规定。但是同时这意味着危险性,这真的是一把可怕的双刃剑。使用不当,我们的程序将变成一堆散沙,很难追踪它的线索和思路。

2、method missing,动态数据类型、class的随处扩展使程序的追踪和可读性变得很困难。我们经常查了半天搞不清楚别人的方法到底是在哪里定义的,方法的返回值到底在哪里。

DHH用ruby写出了rails这样的framework,Dave Thomas可以在两个多月里写出5万行的ruby代码。ruby的这些特性对于Dave Thomas来说只有power,而绝没有上述这些困挠。但是come on, 全世界有多少个Dave Thomas?现在大部分的程序员是希望早上九点上班、晚上五点回家,过着幸福的小日子的年轻人,让他们用ruby开发大项目的后果会是怎么的? 我不敢想象。

ruby会成为软件工匠最好的利器,会使很多人有超爽的感觉,但是它究竟能达到什么地步?能不能取代java? 我只能拭目以待了。


Source favicon13:20 搞明白Linux下程序的内存占用 » Blog on 27th Floor
其实在认真阅读了这篇名为“计算内存使用”的文章之后,还是处于半迷糊状态。这位作者就说Linux下面没有特别好的显示内存占用的工具,虽然有top和free,但都说得不清楚,就跟巫毒教的魔术似的。

比如top这个工具,它会显示3种数据,作者分别解释如下:

VIRT:virtual memory usage。Virtual这个词很神,一般解释是:virtual adj.虚的, 实质的, [物]有效的, 事实上的。到底是虚的还是实的?让Google给Define之后,将就明白一点,就是这东西还是非物质的,但是有效果的,不发生在真实世界的,发生在软件世界的等等。这个内存使用就是一个应用占有的地址空间,只是要应用程序要求的,就全算在这里,而不管它真的用了没有。写程序怕出错,又不在乎占用的时候,多开点内存也是很正常的。

RES:resident memory usage。常驻内存。这个值就是该应用程序真的使用的内存,但还有两个小问题,一是有些东西可能放在交换盘上了(SWAP),二是有些内存可能是共享的。

SHR:shared memory。共享内存。就是说这一块内存空间有可能也被其他应用程序使用着;而Virt - Shr似乎就是这个程序所要求的并且没有共享的内存空间。

DATA:数据占用的内存。如果top没有显示,按f键可以显示出来。这一块是真正的该程序要求的数据空间,是真正在运行中要使用的。

所以DATA的含义比较确定,甚至可以用程序读取的数据量计算出来;SHR是一个潜在的可能会被共享的数字,如果只开一个程序,也没有别人共同使用它;VIRT里面的可能性更多,比如它可能计算了被许多X的库所共享的内存;RES应该是比较准确的,但不含有交换出去的空间;但基本可以说RES是程序当前使用的内存量。

将就明白这几点意思也算是收获吧,对这么高深的东西没力气深究啦。最近感觉到Firefox在Linux下面比在Win上还好用,表现就是僵死的机会少且僵住的时间短,一个页面上有大量图片时表现也要比Win上面好,也许表明Linux在内存管理或是进程调度上有什么高明之处?
Source favicon11:51 龙芯千元电脑 » Blog on 27th Floor
新浪的报道,配置如下:

40GB硬盘,256MB内存,集成16MB ATI Radeon7000M显示芯片,拥有PS/2接口、4个USB2.0接口,VGA及TV输出,网络功能则有LAN和Wi-Fi(WAPI)。Godson 2C处理器采用BGA封装,工作在400-800MHz可变频率,前端总线(64-bit MIPS SysAD),133MHz FSB。

Municator采用Linux操作系统,现场演示了个人电脑可以完成几乎所有基本操作,通过Firefox上网浏览、ThunderBird收发邮件、Gaim即时通讯、Red Office完成办公文本处理、mplayer则可进行音视频播放,甚至还有还有skype的演示。


感觉是相当地不错,主机售价只有149美元左右,真能在市场上见到的话,不用也要买一台回家供着啊。

不过新浪引用的“Yellowsheepriver网站”,如果没有搞错,应该是黄羊川千乡计划网一家希望把信息科技引入西部落后地区的公司(不是慈善机构),不过也从事慈善事务

[update]原来网站在这里。搞不清楚和黄羊川有没有关系了。
08:00 2006/04/10 08:00:00TQ洽谈通搜索力指数排行榜 » TQ洽谈通搜索力指数
 搜索引擎  搜索力指数  排名升降  份额
1. Baidu  110477570     63.51%
2. Google  20202198     11.61%
3. 3721  18418282     10.59%
4. Yahoo  17178942     9.88%
5. Sogou  3997522     2.30%
6. Zhongsou  1085862     0.62%
7. iAsk  652666     0.38%
8. 163  643982     0.37%
9. China  579554     0.33%
10. Tom  497974     0.29%
11. QQ  206282     0.12%

^==Back Home: www.chedong.com

<== 2006-04-09

==> 2006-04-11