当前位置

技术

技术

一周大事记

最重要的当然就是 IE8 beta1 的发布
本来不想尝鲜的,但发布第二天就有人在论坛上反馈 IE8 无法使用搜狐通行证。无奈装一个看看,最后发现是 IE8 beta1 的 bug——table Element 里面的 rows 无法访问,然后去报 bug 的地方看了看,有另外几例相关的bug报告。
不过 IE8 缺省带的 Development Tools 还不错,调试 CSS/JS 功能已经很齐全了。

和 IE8 beta1 呼应的是,firefox3 升级到了 beta5pre,beta4下周应该就发布了吧

第二重要的事情是:AOL 开放了它的 IM 协议

第三:Google 开放它的 Contact API

第四:iphone SDK

Topic: 

我的 dd-wrt 可以 PPPoE 了

上回说到刚买的 DELL 2300 无线路由无法拨 ADSL,只能让ADSL Modem自己拨号然后配静态路由。但这种模式下设置端口转发实在不爽,于是这两天晚上又开始琢磨怎么让路由用上 PPPoE

最后在 Setup->MAC Address Clone 里面,把 WAN 口的 MAC 地址改成我笔记本网卡的地址,拨号就成功了。后来看恩山论坛也有人说起北京网通在封杀某些 MAC。仔细一想也容易实现,因为厂商可以用什么 MAC 地址都是在 IEEE OUI 注册的,把那些生产路由器的厂商的 MAC 全都封杀掉并不太难。

另外就是不知道装了什么软件或动了什么配置之后,Vista 突然无法浏览大部分网站了,IE 和 Firefox 都是如此,只能打开 www.google.cn 等几个有限的网站,可另外的 R51e/WinXP 就一点事也没有。估计是 Vista 自己的问题,就去网上搜。后来在注册表里把 MTU 的值改小到 1300 就好了——1300 是 XP 缺省的 MTU 值,不知道出于什么考虑 Vista 把缺省值改成了 1500。

Topic: 

FreeBSD 7.0 release

7.0 的新特性里令人感兴趣的包括
* 运行数据库效能提升... 目标当然是直指 Linux/MySQL 组合啦,号称快 15%【注:这样的效率提升可能是在4个甚至8个CPU以上的系统里测试得来的】
* ULE 调度器看起来真正可用了... 虽然当初从 5.x 就开始打广告
* ZFS... 貌似是所有文件系统的终结者
* 系统 malloc 系统调用采用jemalloc,号称为多处理器多线程优化,而且传统的 malloc 是为内存有限的资源环境设计的... 另外 firefox 3 也将改用 jemalloc
* auto-sizing of TCP socket buffers、TSO (TCP/IP segmentation offload)、LRO (Large Receive Offload)、sendfile(2) 优化... 等等网络方面一系列改进

除了上述对服务器来说很有意思的改进外,可能还有人会关注诸如虚拟化、BPF Just-In-Time compiler 等变化

传闻即使是一向是"Not Invented Here Syndrome"的 cisco,也开始随同 Netapp、Juniper 的步伐开始派工程师加入到 FreeBSD 的开发中去

写着写着就想到我们这种有几百台服务器的应用,其实操作系统本身并不是瓶颈,但需要有一个人(或一个小组)专门来管理我们的应用需要跑在什么样的环境上,怎样去部署,怎样根据需求去升级或者是跟随安全更新打补丁,保证生产环境和开发测试环境的一致性。。。
现在实际情况是从 FreeBSD、RedHat 9、RHEL3、RHEL4 ... 相当的不一致,苦闷啊。。。
总之,rpm 是不太符合我们需求的,包装的 apt 服务也就那么回事,还是 ports 好啊

Topic: 

俺的一线研发经理起步生涯

有朋友刚刚从程序员提升到经理,面对这次角色变换他有些困扰,毕竟要自我发展出新的技巧去处理新的问题。我仔细回忆 8 年前我的菜鸟经理起步过程,然后在 MSN 上给他建议:每天一会(daily meeting)

99 年 12 月,我刚刚满 22 岁,没有任何管理经验(准确的说我在 21 岁之前几乎是可以用宅男来形容),拿现在的眼光看甚至还不能算得上一个好程序员。但受某种野心的驱使,我受命领导 4 名更加没有经验的程序员(大三的学生)去进行一个软件项目——该项目最初的代码是在地球的另外一端进行的,没有面对面的代码交接,只是有那么一点儿文档;雇佣方担心我们经验不够,于是还另外从清华大学找了个靠谱的人每周来一次天津指导我们工作;我、指导者、原始开发者也就是架构设计者仅仅是通过 smth bbs 上的站内信件和消息进行日常沟通。

还要加一个限定条件:除了那四个大三学生,我当时也是 part time 做这份经理工作。怎么看怎么会是一个注定失败的软件项目,但该项目在 2000 年 4 月份上线,这就是 eyou.com;而我们最后成功的形成了一个胶冻团队,"邱哥"的称呼就是从那时候开始的。

那么想想能够值得别人借鉴的经验吧:

* 热情。经验不是问题,能力不是问题,兼职工作也不是问题,是那种迫切希望在某个领域取得成功的欲望支持我克服了许多困难,并给团队其他人增加信心。一开始我没有意识到这点,直到 2001 年初,老板让每个员工用一个英文单词来表达自己,我才从自己身上找到 passion,而不是什么 smart、friendly...之类。无独有偶,伟大的 Joel,还有其他人也是这么认为的

* daily meeting。由于这个项目的特殊性,使得我必须每天和这四个小伙子开会讨论最新的进度和碰到的问题,而他们也很乐意跟我吃一顿免费的晚饭。团队就是在会议讨论和聚餐中形成的;我也慢慢形成了和下属打交道的风格,并巩固了这种工作上人际交往的自信。

不过也是直到这次有人问起,我才感到 daily meeting 的重要性。尤其是对只专注在一个项目(或者说虽然多个项目但是同一个业务领域)上的团队来说,daily meeting 就更切合实际了——团队所有人都清楚的知道别人在进行什么工作,碰到什么难题以及可能解决的方向。

* daily code review。回忆中最让人惊奇的是,我们居然一直在做 code review,虽然这也是因为项目的特殊性导致的——大家都不在一起工作,而且代码迟迟不能组装到一起,所以我必须一个模块一个模块的检查,当场编译和修改。在这个过程中,不仅仅是我一个人在看那个倒霉家伙的代码,Toshiba 笔记本屏幕旁边还有另外三个脑袋也在研究。

由于 code review,我们的 daily meeting 大大超过了半小时(Scrum 的建议上限),但如果团队规模比较小,每天花一个小时做这项工作是完全没有问题的(假设一个程序员的生产力是 300 行/日,花 10-15 分钟做 review)。

这种每日的团体代码评审可能真的是个好主意:每个程序员每天都要训练如何向大家发表自己的意见;虽然没有 pair programming,但我们很快彼此熟悉代码风格,学习最酷的 shell 和编辑器命令技巧;大家对彼此的工作更加了如指掌;的确可能有人会打哈欠,但注意观察那些对别人的代码也满怀好奇的程序员,他们将会是日后你的好帮手。

写到这里,我决定给我所有的一线经理都申请笔记本,不过好像要等到下半年预算了——搜狐在很多方面都可担得上十佳雇主的称号,但在提高员工生产率方面稍微僵化了一点点。

* 每日集体午餐。如果做不到每日集体代码评审,那这个就是最低要求了。

==========这是华丽的分隔线========

* daily blog。上面的这些为什么我没能早些总结出来?每日三省吾身很重要啊..hehe

Update:
* 更新了一张来自 http://martinfowler.com/articles/itsNotJustStandingUp.html 的照片
* 另外有人说我们的座位都靠在一起,每日例会还需要到会议室去开吗?我的直觉是:需要,一定要有一个正式的会议形式,Same Place, Same Time——而且每天早上 9:00-10:00 有大把空闲的会议室可用。

Topic: 

入手 DELL Truemobile 2300

从 lifehacker 一个耸人听闻的标题 "Turn your $60 router into a $600 router" 里看到 dd-wrt 的——本来是 Linksys/CISCO 源于 Linux 给其无线路由器开发的软件,迫于社区压力(诉讼威胁)公开源代码,从而分支出来的一个开源项目。号称比厂商原有的功能强大了不是一点半点,什么无线中继、调整信号发射功率、ssh login、vpn...当时心向往之,年后终于家里需要更换原来的无线路由了,于是就策划去买一个支持刷 dd-wrt 的回来玩。

经过一段时间潜水,得出结论目前市场上最便宜的支持刷机的无线路由就是这个 DELL 2300。然后上淘宝搜索,找了个北京卖家拍下(加上运费也就合美元 25$ 左右)

该机器出货前就已经刷成了"Firmware: DD-WRT v24 Beta (05/16/07) std",但一用就傻眼了,死活无法让路由器去 ADSL/PPPoE 拨号。google 之,确实有不少人反映 dd-wrt 的某些版本 PPPoE 是有问题的,解决方案通常是刷别的版本,同时关于 2300 容易刷成砖的传说也在广泛流传,比如康神前不久就中过一次招。

思来想去,实在忍不住刷固件的诱惑把它刷到了最新的 v24 RC6.2 std,居然还真就能拨号了,大喜之下继续设置,加了一个 Wireless MAC accesslist,结果拨号就再也无法起作用了,即使把设置改回以前也还是不能拨号。基于以上过程,俺认定无法拨号是某些配置有误导致,于是决定恢复出厂设置...
然后路由器无法进行 WEB-UI 管理了,任何 POST apply.cgi 操作都会直接返回一个空白页面,
在页面上点了好久...空白如故...难道我也荣幸的成为一名砖家?

判断WEB的操作故障应该是无法写入新设置导致的。此时 2300 还是可以 telnet 上去。于是登陆上去后用 nvram write 命令配置了某个参数,然后 commit,reboot... 重启后总算恢复了正常,又可以在浏览器里操作了。

不过我再也不敢做别的出格的尝试了,只好把 WAN 口配成静态 IP,让 ADSL 猫去自动拨号。就又去查 KM300A ADSL modom 缺省口令是什么,怎么去配置自动拨号......前前后后折腾了一晚上,现在总算能无线上网了。

没来得及测试,比如用 eMule 连续下载个三天三夜什么的。但就目前来看,DELL 2300 + dd-wrt 还是挺值得推荐的,毕竟性价比放在这里呢,虽然我实在怀疑这批2300里面的部件其实是二手货。

Topic: 

制作一个情人节动画给心爱的人

如果你在用 firefox 1.5+, Opera 9+,可以去看这个 Demo

更进一步,如果他/她的手机支持 SVG Tiny 1.1,还可以制作一个 svg 通过彩信发过去。

制作页面就在 http://www.svghearts.com/,可惜不支持中文

另:用 firefox 3(beta4pre) 浏览 svg 的性能明显比 firefox 2 要好不少;而 Opera 对字体的 anti-alias 处理是最赞的。

附件大小
文件 qyb4xx.svg4.23 KB
Topic: 

在多线程环境下使用 glib 函数库

必须调用 g_thread_init 初始化一下,否则所有的函数都不是线程安全的。
虽然很久以前就尝试使用 glib 库,但还从来没有在多线程环境下使用过它。直到现在在团队内推 glib 的时候才发现 gstring 有线程不安全问题,结果还亏得同事去看 glib 源代码才发现原因所在,:PP

另:今天发现 Intel 发布的两个 top 工具,一个 LatencyTOP,一个 PowerTOP;看起来都是非常的有用..

Topic: 
订阅 RSS - 技术