由于众所周知的墙的存在,yo2迁至香港已有2个月了,一向以试地雷为乐的MMzX同学如今已经转战国外。作为个人用户,虽然DNS和VPN都可以绕过GFW,但是google的服务器显然已经无法访问到yo2。
[tc]是如此的懒惰,以至于没有搬家到其他博客平台的打算。所以,现在要封笔一阵子了。这是我第一次停止博客撰写,但应该不是最后一次。
感谢2005年MMzX同学(他的新Blog,据说不支持IE)把我带进Blog的世界。我曾为互联网增添过不到5年的垃圾信息:包括对21世纪初的动画的世俗偏见,对20世纪中期的计算机原理的同义重复,以及对学生生活的无限留恋。
评论薄雾浓云愁永昼功能仍然开放,如果有新评论的话我会收到自动邮件。虽然,发邮件也许更快吧。
¶
Posted 22 02月 2010
† §
闲聊
‡
°
≡
编辑
某些高人在炫耀实验成果时,常常忘记附上实验数据,只有图表。所以我们这些低贱的盗版人士只能截取其画面,而不能做进一步的数据挖掘。我个人还曾经为了获得清晰大图,动用Illustrator重新描边,好不麻烦!
我于是决定写个“自动抄表”的工具。根据个别已知的精确值,推算其他未知的数据。以图中这张TIOBE的Java趋势分析为例。假设我们知道最近2年来每个月份的数据,怎样得到更早的数据呢?
首先我们要从原图中得到清晰的曲线。建议在绘图软件的帮助下,将曲线部分标出,以曲线部分的色相、饱和度、明度与其它部分有明显的差异为准。得到曲线后,得到每个x坐标中的y取值的平均值(中点)作为该时刻的曲线取值。
然后我们选取2个有精确数据、并且在图上有明显拐点的样本作为校准的依据。比如已知2010年1月的值是17.482、2006年1月的值是22.28226。那么可知变换公式是x' = 0.1846847 x -5.504501、y' = -0.03158065 y + 28.04573。因此可以计算得到其他各点的估计值。
为了保存运算结果,还需要将估计值的x轴四舍五入并分类汇总,以x差值最小的一组数据作为最终的计算结果。例如假设存在:
x = 93.85586, y = 20.92429
x = 94.04054, y = 20.95587
x = 94.22523, y = 20.94008
x = 94.40991, y = 20.84534
则x = 94时应取y = 20.95587。
源代码+二进制:dataextrude
为了评估无线传感器节点使用电池供电能够坚持多久,[tc]写了这个计算器。
在界面中输入电池的容量、全系统单周期内每个电流持续的时间(如果电压有变,请自行换算到电池电压),计算器会告诉你该系统理论上可以续航多长时间。如果总时间超过1年,这才是个基本可用的系统。
程序本身没什么技术难点。唯一的问题是由于在WSN中可能会长时间休眠,图像如果使用线性坐标会影响观感,所以采用的是对数坐标轴。
源代码+二进制:batterylifecalculator
¶
Posted 27 01月 2010
† §
技术
‡
°
≡
编辑
一度以为Fedora Core做什么ubuntu就做什么。例如ubuntu 9.10以及ubuntu 10.04提高启动速度的原理,与Fedora Core同出一辙。不过我们也能渐渐感觉到,整个Linux低层都在悄然转向相同的目标。例如这一次撤销HAL的事件,也在Xorg中得到了验证。整个2010年1月份的Xorg更新几乎都与否决HAL有关。
[为什么抛弃HAL]
HAL全称为硬件抽象层(Hardware Abstraction Layer),顾名思义是为了屏蔽硬件种类的不同而提供的统一接口。
然而随着历史的变迁,在实际使用过程中,HAL已经退化成向应用层提供当前系统的设备列表的功能,包括物理设备、逻辑设备、网络API等信息。同时,当设备信息发生变化时,提供向上通知的机制。例如USB设备的插入、D-BUS查询变更、以太网链接事件、挂载点变更等功能,往往与HAL有关。
另一方面,在旧有的体制下,一旦调用完HAL_InitDevices(),设备列表事实上只能增加不能减少,也限制了HAL的应用。正是由于HAL已经不再表达其设计初衷,而设计灵活性又不高,所以抛弃HAL也是早晚的事。
更何况如今HAL被检测出对计算机启动时间有较大的影响,难怪Xorg、Fedora Core、ubuntu先后将计划付诸实施。
[没了HAL,用什么]
硬说HAL是忽然被移除的,这也不是事实。Linux内核为抛弃HAL早已经作了长足的打算。2.6系列内核的设备管理器其实是udev。
在添加、删除硬件时,udev通过变更/dev中的文件,以便向应用层公布硬件信息,从而完全取代HAL。
[所以,到底是什么被修改了]
既然内核早就开始放弃HAL,为什么一直到2010年才有显著动作呢?这是因为Xorg的诸多服务都依赖于HAL。
例如gnome-power-manager、gnome-vfs2、libfprint,又或者桌面下的libvirt、多媒体软件rhythmbox gstreamer等,现在都需要大幅修改。
所以与其说是ubuntu放弃了HAL,还不如说ubuntu终于跟上了内核小组的步伐。距离10.04 LTS还有几个月的时间,到那时,我们终于可以说:HAL,一路走好!
¶
Posted 26 01月 2010
† §
闲聊
‡
°
≡
编辑
年轻的[tc]曾以为学校是个搞科研的地方,现在才知道科研只是冰山一角。越来越多的学校加入到产学研的行列中来,让学校成为打造工业半成品的地方。
[工程项目不是万能的,但是很实在]
论文数量是每一个学校争宠的目标。这是因为工程往往局限于具体的事务,缺乏理论性和前瞻性,因此无法收录在国际知名文献索引中;如果以盈利为量化标准,又必然成为某些自认清高的知识分子炮轰的对象。
另一方面,执导工程项目又需要资深的工程人员,这也不是每一所学校的每一个部门都能够实现的。这在大部分情况下,导致搞科研的目的,仅仅是为了混毕业、评职称,给学校带来大批意义不大的文字材料。
实验室靠什么生存。靠国家补贴?靠大牛捐献?靠人的意志力?都是完全不够的(但是苏州这边出了一个教育投资公司,设备设施归园区所有,实验室有使用权,很大程度上缓解了学校的压力,算是个制度创新)。因此,现实上也只有将工程引入学校,抛弃让学校变得拜金的困扰。
[一块地方四种人物]
要想做工程,学校需要由四种人构成:一是拉皮条的,二是包工头的,三是赚外快的,四是吃干饭的。四者的比例应当是1:3:9:27,才能保证学校总体还是个教书的地方。在这种构成中,搞科研只是很少一部分人的“余兴”。
一所学校能不能实现产学研的结合,事实上不是取决于技术实力,恰恰是取决于拉皮条的水平。这是因为学校的人员流动周期短于三年,这甚至超过了一般软件企业员工跳槽的比例。学生进入学校就相当于接受培训,培训结束学生就毕业。从企业的角度来说,无疑是一笔损失。
在这个来去自由的过程中,唯一不跳槽的只有老板,更是提高了学校实现产学研结合的门槛。
[从研发到产品还有太远的路,好在别人也不怎么样]
最近老妈的某韩国手机退役下来给我用,我才忽然发现此前使用的某韩国手机开机缓慢、操作迟钝的问题与SIM卡毫无关系。那么问题出在哪里?显然是代码质量问题。
虽然很多人以为,产品竞争力不足、市场定位模糊、开发过程迟缓、人员结构冗余是学校型企业的缺点。但是更重要的是,从研发到产品还有太远的路要走,而大部分的学生根本不在乎这一点。
好在,从上面的例子中我们得知,竞争对手也不见得好到哪里。
¶
Posted 26 01月 2010
† §
闲聊
‡
°
≡
编辑