November 2009 Archives

portsnap镜像的另一种实现方法

| 2 Comments

FreeBSD 5.5和6.1开始内建了 portsnap,portsnap是一种新的 ports 套件同步机制。

与传统的 cvsup 更新方式相比, portsnap 有一些优越性:

  • 对于经常进行更新的情况,portsnap很快:portsnap包含索引和具体的ports两部分,在更新的时候它首先会更新索引,而具体的更新则是下载两次索引描述的文件之间的差异,因此可以大大节省带宽。
  • portsnap有数字签名:cvsup并不包含任何加密或数字签名的机制,而portsnap的公钥则是通过光盘发给每一台机器的,相对来说安全性要好的多。
  • portsnap使用HTTP协议:通常,企业防火墙并不会拦截HTTP。

早先,架设portsnap镜像的方法比较复杂。由于portsnap的设计,架设portsnap镜像所产生的流量,在通常情况下大约会是仅做portsnap操作的3000倍左右。

之前听lwhsu提到了台湾那边的镜像所采用的方法,值得借鉴:

由于portsnap使用的是HTTP协议,而数据集相对较小,因此,实际上可以把这些内容全部作为反向代理放进内存。

洗洗睡了吧......

| No Comments

前几天看了一下 iGoogle,感觉就是,做门户首页的真可以洗洗睡了(我说的是首页,我很少去门户网站的首页,而是直奔新闻之类的子站)。

基本搞定ibus了

| No Comments

感谢 Henry Hu 的帮助。ibus的一些代码在64位系统上有些问题,另外发现预编译的bytecode也有点小毛病,需要手工删除 /usr/local/share/ibus/ui/gtk/ 中的所有 pyc 和 pyo 文件,看来需要找时间看看到底是什么问题了。ibus拼音的效果要好过scim的智能拼音。

你会选择把源代码公开吗?

| 2 Comments

最近收到一封邮件邀请我参加一个调查,发现老外对参加代码公开的项目,特别是开源以及自由软件项目的动机总结的很透彻,多少也帮助我更深入地理解了为什么会存在开源和自由软件的分别。

许多参加开源项目的开发人员最初的动机纯粹就是回馈,或者希望自己能够从中受益----例如,他们受益于开源项目(例如,使用了这样的软件,等等),对这些项目进行了一些改进,而另一方面又不希望自己去独力维护一个fork版本,因为这样做比较浪费时间,或从成本上来算不合适,等等。

而参加自由软件的开发人员则是希望社会对其有所回馈。例如,他们会希望别人使用自己的东西的时候能够把改进送回来,等等。

许多人会同时有这两种想法。态度比较强硬的会更倾向于使用自由软件的授权,如GPL;而其他人则会希望使用更宽松一些的授权,如Apache、MIT、ISC或BSD。

我个人倾向于使用BSD和MIT授权。

Native IPv6

| No Comments

终于,在美国有接入商开始提供(通过T1)native的IPv6接入了。前几天考 HE 的 IPv6 Sage 的时候看到,IPv4还有600多天就全都用完了,真会这么快用完吗?

Droid试用感想

| 2 Comments

如 quakelee 所说,这类手机应该当作上网本而不是手机。是的,非常费电。

功能方面基本上和之前希望的一致,没有超过太多,也没有太失望。性价比方面感觉比 iPhone 要好一些,当然更重要的原因是 iPhone 完全不支持 Verizon Wireless 使用的 CDMA 网络。

作为使用 Google 操作系统 [1]的手机,这款手机为 Google 的应用提供了良好的集成,并继承了大量采集用户信息,并根据这些信息改进服务的传统。这款手机提供了将手机通讯录与 Google 通讯录集成,并与 Facebook 以及 Exchange 服务器同步信息的能力,并能够将同一个人对应起来,例如,它能够将 Facebook 上的头像放到电话簿上,并显示此人在 Google Talk 上的状态,等等。而GPS导航功能则是将交通数据做了进去,可以根据路况决定走一些其他的备选路线来加快到达目的地的速度;与 Google Voice 的集成是可以通过呼叫 Google 接入号码(类似 Skype Lite 的方式)来以自己 Google Voice 号码的身份来呼叫其他人,并在后台以3G或wifi来更新 Google Voice 信箱的信息;与 Google Mail 的集成与多年以前的蓝波快信的意思很接近,很亲切。

在收集用户信息方面,我已经能想到非常多的收集信息并利用这些信息的方法了,相信Google已经在收集,或至少是有类似的计划。

安装了一些免费的应用程序,如 Amazon 的 Amazon Mobile、Google的拼音输入法、Voice、推的客户端Twdroid、一些理财工具,等等。重新整理了一下自己的联系人名单,从 LinkedInFacebook 导入了一些之前失去联系的人的电话等等。

一些不足:有些应用程序发热量偏大(这个OS应该予以检测)、耗电量较大而电池不是很强劲,需要经常充电(当然这个也不能要求太高,毕竟功能并不仅限于打电话)、目前不支持作为数据/传真的调制解调器使用。

总体感觉是,这个东西和几年前用 Nokia 6681 的感觉类似,当然功能要强很多,主要还是作为PDA那一类的设备。

[1] 操作系统,或作业系统:管理计算机软硬件资源、实施任务调度、存储管理的核心程序。浏览器不是操作系统,网站也不是操作系统,云操作系统是外行的狗屁的概念,他们全家说话都云山雾罩的。

源代码有那么重要吗?

| 2 Comments

很多人在一个新产品发布的时候,往往会非常关心这个产品是否发布了相应的源代码。然而,对开发者来说,这毫无疑问是一种本末倒置的关注。

源代码能告诉我们的事情是,一件事情是"如何"去做的,而不是"为什么"要那样做。这事就有点像填写报税的表格,那个表格会告诉你在第1行到第20行每行填写什么数字,然后从第几行到第几行的数字相加,减去第几行到第几行的数字之后写到第几行。而当你想要知道为什么要这样做的时候,税表会告诉你"详见税法某某条"或"详见某说明",而提供了源代码的产品就不一样了,因为那些说明,往往要么是一些公司的内部机密文档,要么干脆没有。

没有文档是一件很糟糕的事情,但是很多人却会认为,代码可以取代文档。虽然我自己也不太愿意写文档,但是我完全无法认同这种观点。代码可以告诉你"我做了什么",但是却很难告诉你"当时我是怎么考虑的",而文档则相反。维护旧的代码,在缺少文档的情况下是代价很高的一件事,因为开发人员在撰写代码的时候认为显而易见的事情,往往在其他人看来并不那么明显,甚至,这些被认为是对的东西很可能其实是错的。显然,代码的同僚复审并不能完全消灭这样的问题,因为很可能两个人水平接近,而撰写文档的过程则会帮助开发人员重新整理思路和思考其中的错误。

我相信,随着不提供文档,但源代码公开的软件的越来越多,明白每一件事在计算机里面到底是如何发生、以及为什么会这样发生的人会越来越少。不重视文档,却单单重视代码,总有一天会酿成为我们这个行业的悲剧。

ses控制和监控程序

| 1 Comment

继续记一笔,在 /usr/src/share/examples/ses 里面。

为啥这些程序不成为基本系统的一部分呢?难道是因为太简单了......害得我好找(好歹应该在联机手册里面提一句吧)。顺手把代码清理了一下,等新机器到了拿这个去杵杵看。有谁知道ses设备和总线位置(也就是物理的槽位)之间的对应关系有什么办法能拿到吗?还是只能写个程序让一个人去根据这种设备训练一下系统?

用hints固定硬盘设备名

| No Comments

今天听 Doug White 大牛说有这个功能,于是查了一下资料,先记一笔,不一定对,有机会找机器测试一下。

首先要定义SCSI/SAS总线所在的位置。通常它是由某个SCSI接口卡提供的,也就是类似这样:

hint.scbus.0.at="mpt0"

这表示 scbus0 是 mpt0。如果一块卡支持多个 SCSI 总线,则还应额外指定 bus 参数。

接下来是每块硬盘的位置。SCSI/SAS设备可以由3个参数来唯一定位:总线、目标(target)和单元(LUN)。例如总线0、目标0、单元0上的设备应该叫做da0,则配置如下:

hint.da.0.at="scbus0"
hint.da.0.target="0"
hint.da.0.unit="0"

可以使用简单的awk或python甚至shell来成批生成。这种定位方式与Solaris的c0t0d0类似,但用户可以自己指定名字(配置 devd.conf 应该可以更进一步创建设备对应的 c0t0d0 这样的符号连接,改天再看看)。配好之后写到 /boot/device.hints 就好。

斯德哥尔摩综合症

| 2 Comments

做反垃圾邮件的人应该感谢发垃圾邮件的人吗?

当然不。

今天在推上有人说反垃圾邮件的人应该感谢发垃圾邮件的人,很显然这是斯德哥尔摩综合症。

从微观角度说,给做反垃圾邮件的人发钱的人,是那些不喜欢垃圾邮件的人,要感谢,应该感谢给钱的人。这个世界上比反垃圾邮件有意思的事情有很多,不做这个可以做别的。

从宏观角度说,发垃圾邮件不创造价值,相反它增加了很多人的成本。如果没有垃圾邮件,你本可以做更多能够创造价值的、更有意思的事情,赚更多的钱。

凭什么要感谢那些搞破坏的人?

我还是那句话,发垃圾邮件的人,留神生小孩没屁股眼。

PlanetPlanet vs Python 2.6

| 1 Comment

On Python 2.6 we have a new 'hashlib' module, which superseded older 'md5' 'sha1' modules.

Therefore, importing 'md5' would give the following warnings:

DeprecationWarning: the md5 module is deprecated; use hashlib instead

This is quite annoying if you run PlanetPlanet in a cron(8) job and receive e-mail reports. In order to solve that, we can do some simple sed(1) replace over PlanetPlanet's __init__.py:

s/import md5/import hashlib/g

s/md5\.new/hashlib.md5/g

That's it! And PlanetPlanet will now happily work with Python 2.6.

照片的版权保护

| No Comments

今天是万圣节,下午去了一趟 Costco Wholesale,在它的一小时照片快印处发现了一个供认取阅的版权需知,基本上这个小条告诉我们:

照片的版权无论是否有宣示,均归拍照者所有。(个人猜测这应该是伯尔尼公约的延续)。

复制和打印照片需要获得拍照者的书面许可,否则违法;是否违法与是否故意复制无关,也与是否知道有这么条法律无关;如果是托人打印照片(例如,在 Costco 提供的这种照片冲印服务),那么顾客和 Costco 都有可能需要承担相关的法律后果。

还有就是,比如说请摄影师拍的照片,然后买的包含照片的DVD之类的介质,仍然是不包括打印和复制之类的授权的。

因此,Costco在冲印照片或者刻盘的时候需要由照片作者出具书面的Release Form允许他们这样做。

About this Archive

This page is an archive of entries from November 2009 listed from newest to oldest.

October 2009 is the previous archive.

December 2009 is the next archive.

Find recent content on the main index or look in the archives to find all content.

Pages

OpenID accepted here Learn more about OpenID
Powered by Movable Type 5.01