Read Sean

Read me, read Sean.
posts - 508, comments - 655, trackbacks - 9, articles - 4


读到一篇廷有意思的文章,来自Weiqi Gao:
http://www.weiqigao.com/blog/2007/04/12/java_the_third_fork_from_sun.html

近几年Sun的日子似乎并不好过:和微软先是不欢散后来虽然和解但貌合神离,微软不买Sun的账,干脆自己搞个.NET;对IBM更是气不打一处来,但是不管怎么说SWT/Eclipse这朵花确实开得太艳,甚至盖过了Sun的光芒;现在Sun又和Apache铆上了

这三次不和,背后的原因几乎都是Sun不愿意大胆革新Java,或者放弃对Java的控制权(Sun的JDK开源并不能改变Sun对Java的实际控制)。


posted @ 2007-04-14 15:20 laogao 阅读(607) | 评论 (0)编辑 收藏


昨天(周五)大家下班后,一个人留在公司,把核心产品开发团队使用了整整1年的CVS资源库从CVSNT移到了Linux平台下,原本以为会很简单很顺利,因为之前类似的移植并不是没有做过,所以预估的时间包括验证在内是1~2个小时,不过最终却花掉4个小时。怎么回事呢?且听我慢慢道来。

经过1年的积累,资源库有400多M,大大小小的Java项目有206个之多。按照最初的计划,移植只需要原封不动的把资源库目录整个从CVSNT服务器拷贝到Linux服务器即可,所以资源库大小和项目多少本来不是啥大问题,但谁料半路却杀出个程咬金:.jar文件在新的资源库checkout到本地后无法正常使用,这还了得?

仔细一看,乖乖,原本"Binary"的文件,在新的资源库下,却变成了"ASCII -kkv",不仅是.jar,其他的二进制文件如.jpg, .exe之类的也是同样的问题。第一反应是CVSNT和Unix经典的CVS在处理RCS文件时还是有些不同,以至于原本在CVSNT下文件类别的标记信息如"Binary"在移植过程中丢失了,变成默认的文本类型。之前有朋友提醒的.doc文件移植后无法打开应该也是同样问题。怎么办?一个文件一个文件的改?肯定不现实。

一种方案是把所有出现的二进制文件类型/后缀名找出来,然后在服务器端批量删除(Linux下写个脚本来做这件事并不难),客户端这边从原资源库checkout最新版本,重定向资源库URL到新的资源库,同步,提交。这招比较狠,但最终没有用,因为在浏览现有资源库时,发现还有不少其他问题,如classes文件夹被加到版本控制中,类似还有.settings文件夹,甚至Thumbs.db,不一而足。时间有限,与其每个Java项目去找一遍,整理出需要删除的文件(夹)清单,然后写脚本,然后强行资源库重定向,不如一步一个脚印把现有资源库的所有Java项目捋一遍,至少心里踏实。于是一狠心、一咬牙,有洁癖的我开始了漫长的"愚公移山":一个项目接一个项目,遇到Binary文件,服务器删之,客户端checkout后从原来的地方拷贝过来,必要的地方加上.cvsignore,再添加提交。*

经过4个小时的努力,终于大功告成:自动编译脚本正确运行,构建成功,客户端IDE(Eclipse)从新的资源库checkout,编译通过,没有红叉。

后记:自己认为计划得再好的事情,真正去做的时候,总还是会遇到这样那样的问题和意想不到的状况,这件事也告诉我自己其实我的前期准备远不够充分,算是自食其果吧。有没有更好的办法,我觉得肯定有,但是在特定的情况下(时间/效率/目标),我相信我的方法还是能够让我自己满意的。还有一点提醒所有CVS的用户,不该提交的文件,最好第一时间加到.cvsignore。子曾经曰过:“纠正错误,时间最早,代价越小”。

* 请勿不假思索的模仿,这样做会丢失掉这些文件的历史版本信息,如果删除的时候不小心,同时还会把历史上存在过的同类型文件删掉。我这里之所以可以这么做,是因为我们的实际情况对这些二进制文件不需要保留历史信息。


posted @ 2007-04-14 14:54 laogao 阅读(1708) | 评论 (3)编辑 收藏


大家期待已久的Debian重要升级4.0,代号"etch",终于正式发布。请看官方声明:
http://www.debian.org/News/2007/20070408


posted @ 2007-04-08 22:50 laogao 阅读(574) | 评论 (0)编辑 收藏


版本号1.6.0_01。

详见:
http://java.sun.com/javase/6/webnotes/ReleaseNotes.html


posted @ 2007-04-01 22:49 laogao 阅读(655) | 评论 (0)编辑 收藏


如果你使用非Outlook软件来处理来自Outlook以及Exchange Server的E-mail,你很可能会遇到附件为winmail.dat的邮件,而你完全不知道这个附件如何打开,甚至更惨的是原本附件在邮件中的文件也不幸被这个winmail.dat吃掉了。你也许会询问这封邮件的发件人,这个时候对方多半也是一头雾水,因为人家用Outlook用的好好的,从来没有听说过这个问题,说得直白一点,就是完全不知道你在说什么。

那到底这个winmail.dat是什么呢?是MS的工具在编码打包你的邮件进行发送时,如果按照默认指定的RTF格式,会把格式信息按照MS自己的一套标准存放在邮件体中,造成非Outlook客户端不认识,无法正确解析。Well done, Redmond.

怎么办呢?两个方案:
1- 如果可能,向发件人建议不要使用Outlook或者至少让他/她发送邮件时不要使用RTF格式,纯文本或HTML均可。(注意如果修改全局设置没有效果的话,可能还需要单独修改每一个存在通讯录里的联系人。)
2- 如果没办法让邮件的发送人对他/她使用的邮件客户端作任何调整,你也可以下载winmail.dat阅读器,如http://www.kopf.com.br/winmail/winmail-reader-setup.exe ,或者通过Google寻找其他类似工具。

强烈呼吁大家使用符合open standards的工具,尤其是在日常交流中日益重要的E-mail上,这是对你邮件的接收者最基本、也最直接的尊重。


posted @ 2007-03-26 00:24 laogao 阅读(36602) | 评论 (48)编辑 收藏


http://www.markshuttleworth.com/archives/99

Ubuntu创始人Mark Shuttleworth正式宣布加入今年1月由Linux业界两大组织OSDL和FSG合并成立的Linux Foundation。


posted @ 2007-03-14 23:56 laogao 阅读(484) | 评论 (0)编辑 收藏


由于工作需要,最近在Linux服务器上试用Subversion,如果一切顺利,全公司的文档都将交给Subversion管理。我承认我对Subversion一直存在偏见,但为了给大家一个交代,还是硬着头皮小试了一下。结果运行数天以后,终于还是回到了CVS的老路上。

Subversion的优点就不在这里重复了,网上很多介绍文章,也有很多忠实粉丝,不过没办法,我还是更喜欢CVS的简单和直接。熟悉Unix和类Unix系统的朋友一定有同感,CVS更加符合Unix的思维和解决问题的方式。
让我们最终放弃Subversion主要有以下大大小小的原因:
1- 一个新建的几乎是空的资源库,打包后大小即有39MB上下; << 经核实错怪SVN了,实测完全空白的资源库124K,向大家道歉!
2- 资源库几乎是以一种完全不透明的方式存储用户资源库文件;
3- 没有一个官方的、安全可靠的方式彻底删除一个误提交的文件,一旦提交上去,你的资源库将永远背着这个包袱; << 这一条实在让我无法忍受。

对于最后一条,官方说法是提供了一个svndumpfilter的方式,先把资源库dump出来,然后pipe到svndumpfilter过滤掉匹配的文件,最后再load回去。这几乎就是给我们判了死刑:dump文件动辄就会是好几个G,且随着时间增长,或者错误提交持续出现在超大型文件上,要完成这个dump和filter,以及周期性的备份,将要吃掉多少资源,不敢想象;svndumpfilter不支持wildcast,且这个字符串匹配由于是整个dump文件pipe到svndumpfilter,无法保证精确制导,尤其在生产环境,敏感文件被上传、有效文件被误删或者资源库遭到破坏的后果是很严重滴。


posted @ 2007-03-14 23:07 laogao 阅读(699) | 评论 (0)编辑 收藏


http://www.rssowl.org/node/210

RSSOwl终于有了2.0版的消息,RSSOwl 2.0最大的变化是
1- 采用Eclipse RCP;
2- 可以在本地保存feed。


posted @ 2007-03-01 08:25 laogao 阅读(513) | 评论 (0)编辑 收藏


http://www.artima.com/forums/flat.jsp?forum=106&thread=196922

Alberto Savoia在Artima上发表了一篇关于所谓Developer Testing Masters这个软件开发中的新角色的文章,把这个新的角色类比为脑外科医生。

不知道大家在各自的项目中是如何处理QA和开发人员单元测试之间的平衡呢?是让QA提高自身的技术水平,越来越多的参与白盒测试,还是“逼”着开发工程师们做他们不情愿、通常也做不好的单元测试?这篇文章提供了另一种思路。


posted @ 2007-02-28 13:14 laogao 阅读(483) | 评论 (0)编辑 收藏


http://www.ohshare.com/

文件大小限制在80M,没什么特别的要求,直接上传即可,据称超过30天没有下载的文件可能被删除,不过对于一般性的临时网络硬盘使用,已经足够了。

我试用了一下,速度还可以,大家可以试试下面这个下载链接:

http://dl8.ohshare.com/d/9417066/1172241028/ruby_1.8.5_p12.tar.gz


posted @ 2007-02-24 02:36 laogao 阅读(785) | 评论 (1)编辑 收藏


http://www.linux-watch.com/news/NS6401388051.html

Linux-Watch上刚发布了一篇关于最近Eric S. Raymond (ESR)“受够了”Fedora,“转投”Ubuntu的文章,挺有趣的。

Note: Eric S. Raymond可以说是Unix大牛和开源运动的鼻祖之一,他最有名的著作为"The Cathedral and the Bazaar"(中译“大教堂与市集”)和"The Art of UNIX Programming"(中译“UNIX编程艺术”)。


posted @ 2007-02-22 04:49 laogao 阅读(651) | 评论 (0)编辑 收藏


以下是一组相互关联、按时间先后排列的3篇blog文章,主要探讨是Swing存在的问题以及动态语言如JRuby/Groovy能否帮我们解决Swing的问题:

JRuby can save Swing
JRuby cannot save Swing
Groovy can save Swing

挺有趣的,推荐大家有空读一读。


posted @ 2007-02-21 20:03 laogao 阅读(597) | 评论 (0)编辑 收藏


http://www-128.ibm.com/developerworks/java/library/x-xjavaforum1.html

真正让XML发光的用途是什么?写配置文件?数据交换?数据存储?


posted @ 2007-02-21 14:31 laogao 阅读(427) | 评论 (0)编辑 收藏


原文链接: [URL]

Antonio Cangiano刚刚在他的blog发布了他在AMD Athlon 64 3500+, 1GB RAM的机器上做的目前常见的Ruby实现的非官方评测,包括
  • Ruby 1.8.5-p12 stable on Linux
  • Ruby 1.8.5-p12 stable on Windows Vista
  • Ruby 1.9 (Yarv) on Linux
  • JRuby on Linux
  • Rubinius on Linux
  • Cardinal on Linux
  • Gardens Point Ruby .NET on Windows Vista
几张有趣的报表:

http://www.antoniocangiano.com/files/rubyvms_in_seconds.png
http://www.antoniocangiano.com/files/average_and_median.png
http://www.antoniocangiano.com/files/rubyvms_times.png


posted @ 2007-02-19 17:57 laogao 阅读(501) | 评论 (0)编辑 收藏


http://jroller.com/page/rolsen?entry=building_a_software_team_wrong

关注这个Russ Olsen的blog有一段时间了,他最近的几篇blog贴子都和项目管理团队管理有关。我觉得相比成功的经验,有时失败带给我们的收获会更多。这篇最新的blog中Russ Olsen和我们分享关于他的一个失败的项目,以及他如何向团队承认自己的失误。

当一个项目失败的时候,也许承认错误、承认失败是件尴尬的事,但作为项目负责人的PM,如果他的某个决定造成了整个团队的失败,就应该拿出勇气去承担。

"It goes against something in us, especially as we get into management jobs, to admit that we were wrong. But when you are wrong, especially when you are wrong in a way that causes the whole team to fail, you gotta own up. Not that 'mistakes were made'. Not that 'it could have been done better'. Not even 'I did the best I could'. No, it has to be 'I was wrong'."


posted @ 2007-02-18 18:35 laogao 阅读(373) | 评论 (0)编辑 收藏

仅列出标题
共34页: First 上一页 4 5 6 7 8 9 10 11 12 下一页 Last