tag:blogger.com,1999:blog-76990572024-03-14T04:55:08.604+08:00懒惰是程序员的美德伟大的程序往往来自于创造者的懒惰,因为他们实在是太懒了,不想一次又一次浪费自己的力气。netcasperhttp://www.blogger.com/profile/09923405180744914893noreply@blogger.comBlogger128125tag:blogger.com,1999:blog-7699057.post-1136121575165292722006-01-01T21:15:00.000+08:002006-01-01T21:19:35.673+08:00The End<p>本blog不再更新,在新的一年里,我的blog将存在自己的空间里。欢迎订阅我的新blog。</p><p>如果您是通过FeedBurner订阅我的blog,那么您不需要做任何改动,<a href="http://feeds.feedburner.com/casper">http://feeds.feedburner.com/casper</a>将会指向新的blog。否则的话,麻烦您更新feed。</p>netcasperhttp://www.blogger.com/profile/09923405180744914893noreply@blogger.com1tag:blogger.com,1999:blog-7699057.post-1136029679031467142005-12-31T19:36:00.000+08:002005-12-31T19:48:01.600+08:00Top 5 Articles in http://del.icio.us/netcasper/opinion<ol><li><a href="http://simon.incutio.com/archive/2005/11/01/destiny">Taking charge of your own destiny</a></li><li><a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-7.html">Preface to the First Edition, "<em>Structure and Interpretation of Computer Programs</em>"</a></li><li><a href="http://www.norvig.com/21-days.html">Teach Yourself Programming in Ten Years</a></li><li><a href="http://lesscode.org/2005/12/30/maintainable-programmers/">Maintainable Programmers</a></li><li><a href="http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html">The Perils of JavaSchools</a></li></ol>netcasperhttp://www.blogger.com/profile/09923405180744914893noreply@blogger.com0tag:blogger.com,1999:blog-7699057.post-1136005435309070702005-12-31T12:47:00.000+08:002005-12-31T13:04:21.823+08:00Work at Intel<p>“应聘Intel痛苦经历! 披露六大价值观”(<a href="http://job.csdn.net/n/20051227/31636.html">一</a>、<a href="http://job.csdn.net/n/20051227/31637.html">二</a>、<a href="http://job.csdn.net/n/20051227/31638.html">三</a>、<a href="http://job.csdn.net/n/20051227/31639.html">四</a>、<a href="http://job.csdn.net/n/20051227/31640.html">五</a>)系列文章描述了一位求职者应聘Intel的经历(前两篇),并对Intel的价值观、薪资福利体系和工作环境进行了详细的介绍(后三篇),对于求职者和希望了解Intel的人非常具有参考价值。</p><p><strong>免责声明</strong>:本人推荐此文,并不表示确认原文的介绍属实,也不表示赞同原文观点。如原文与实际情况不符,本人概不负责,特此声明。</p>netcasperhttp://www.blogger.com/profile/09923405180744914893noreply@blogger.com0tag:blogger.com,1999:blog-7699057.post-1135834382221941042005-12-29T13:32:00.000+08:002005-12-29T13:33:02.583+08:00WangLiangHome.org is under construction<p>只用了一天,<a href="http://www.wanglianghome.org/">我的域名</a>就可以访问了,连忙放了张首页上去,正好刚刚拍了紫竹的照片,其中一张比较符合“建设中……”的意境,也一并放上去了。</p><p>然后开始四处发“广告”,<a href="http://www.5460.net/">5460</a>上发帖子,给熟人发信,把MSN昵称改成“WangLiangHome.org上线”。总之,想尽一切办法推广,哪怕只有一张页面。:-)</p><p>几个朋友知道后问我做什么样的网站,其实我也没有很清晰的定位,不过肯定是关于我自己的(非商业性质),不然也不会“拼命”<a href="http://netcasper.blogspot.com/2005/12/wanglianghomeorg.html">以自己的名字作为域名</a>。</p><p>从昨天晚上开始一直在尝试<a href="http://www.mozilla.org/projects/calendar/faq.html#share">Remote Calendar</a>,找了几篇文章(<a href="http://www.twilight-systems.com/flacco/mozcal/mozcal-webdav.html">一</a>、<a href="http://www.vetula.com/blog-radio/stories/2002/11/19/publishingEventsInMozilla.html">二</a>),但一直没有成功,今天上午又花了点时间才搞定。另外,又抽空在首页上加了计数器,不过我们在公司通过代理访问,计数一直是“1”,并不增加,看来<a href="http://counter.dreamhost.com/">帮助</a>才明白,原来同一IP连续访问计数不会增加。</p>netcasperhttp://www.blogger.com/profile/09923405180744914893noreply@blogger.com0tag:blogger.com,1999:blog-7699057.post-1135690024617097802005-12-27T21:00:00.000+08:002005-12-27T21:27:04.873+08:00wanglianghome.org<p>在<a href="http://www.dreamhost.com/">DreamHost</a>购买了两年的虚拟主机服务,以及域名<a href="http://www.wanglianghome.org/">www.WangLiangHome.org</a>,共花了93.8美金,用招行信用卡刷的,这还是我第一次刷美金。由于用了<a href="http://webhosting-cheap.info/dreamhost">kunstao</a>的promotion code,节省了97美金,便宜了一多半。</p><p>原本想在<a href="http://www.ipowerweb.com/">ipowerweb.com</a>申请,有10G空间,更多的流量,但是后来发现DreamHost提供的功能更多,甚至有Image Magick、Ruby on Rails和WebDAV。而我毕竟是第一次购买虚拟主机和域名,第一次真正地在Internet上搭建自己的网站,刚开始的时候肯定用不了太多的空间,也不会有太大的流量,倒是功能多可以让我尝试更多的东西,更何况DreamHost每周会自动增加空间和流量,也算一种独特的拉拢顾客的方式。</p><p>其实本来想申请个www.wangliang.org,要不www.wangliang.com也行,没想到被同一家(旺亮)公司购买了,实在郁闷,你买.org域名做啥呢?没办法,想破头也没想出个好名字,差一点就选了www.netcasper.org,不过最终还是选择了现在这个,名字不行就加个后缀,哼哼!</p><p>等DNS好了之后就把结婚照传上去,让爸妈看看!:-)</p>netcasperhttp://www.blogger.com/profile/09923405180744914893noreply@blogger.com0tag:blogger.com,1999:blog-7699057.post-1135430609220394092005-12-24T20:32:00.000+08:002005-12-25T21:29:00.496+08:00Byebye Shanghai Mart<p>公司搬迁的日子终究还是到来了,“别了,世贸商城!”,我不禁感伤起来。说来奇怪,这还是我第一次因为离开一个地方而心情不好,老婆说,那是因为以前都是奔向更好的地方(或前程),而这一次,去的地方叫“紫竹”。老婆半开玩笑的话有点道理,但更深层次的原因是,我深深怀念着在世贸商城工作过的33个月时光,这里充满了我的回忆,是我自认为成长最快的一段日子。在这之前,我从没有留恋过过去,甚至在离开浙大三个月后就有点想不起来七年求学生涯究竟是如何度过的,也由此怀疑自己是否有点薄情寡义。可是就在这两天,脑子里却不断闪现过去33个月里发生的一幕幕,心情也有些沉重。所以,在上个星期五,也就是在世贸商城工作的最后一天,我带上了数码相机,拍下几张照片以示记念。(点击图片看原图)</p><table><tbody><tr><td><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6437/486/1600/ShanghaiMart.0.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/6437/486/320/ShanghaiMart.0.jpg" border="0" alt="" /></a><p>世贸商城大楼外景,我在23楼。</p></td></tr><tr><td><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6437/486/1600/BeforePacking.0.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/6437/486/320/BeforePacking.0.jpg" border="0" alt="" /></a><p>我的座位打包前的样子,白板上写着“别了,世贸商城”的字样,以表我的心情。有老外看见,问上面写的什么,同伴告诉他,"Goodbye, Shanghai Mart"。后来,我写上了“风萧萧兮易水寒……”,似乎更加悲壮:-(</p></td></tr><tr><td><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6437/486/1600/AfterPacking.0.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/6437/486/320/AfterPacking.0.jpg" border="0" alt="" /></a><p>打包后的样子,整洁了不少。</p></td></tr><tr><td><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6437/486/1600/Printer.0.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/6437/486/320/Printer.0.jpg" border="0" alt="" /></a><p>座位旁边的打印机,经常出毛病,日子久了,也会解决一些小问题。有些同事碰到卡纸了不知道怎么办、或者没纸了也不知道去哪里拿,我就帮帮他们,也因此认识了一些人。</p></td></tr></tbody></table>netcasperhttp://www.blogger.com/profile/09923405180744914893noreply@blogger.com0tag:blogger.com,1999:blog-7699057.post-1135228046240808162005-12-22T12:57:00.000+08:002005-12-22T13:07:26.540+08:00HTML editor issue of WordPress.com<p>似乎<a href="http://www.wordpress.com">WordPress.com</a>提供的HTML Editor并不是真的"<em>HTML Editor</em>",它会做一些处理,比如我直接写>,在某些时候它会变成&amp;gt;,看似不正确,可在生成的页面上却能正确显示;而在另外一些情况下,它会被删除。我搞了好久才发现其中的奥妙,这才把<a href="http://osstips.wordpress.com/2005/12/20/two-perl-modules-to-handle-table/">程序缩进</a>搞定,要写四个&amp;nbsp;才能成功显示四个空格。</p><p>非常郁闷,还是<a href="http://www.blogger.com/">blogger.com</a>的好,想怎么写就怎么写。</p>netcasperhttp://www.blogger.com/profile/09923405180744914893noreply@blogger.com0tag:blogger.com,1999:blog-7699057.post-1135083984919123792005-12-20T21:02:00.000+08:002006-08-10T13:40:11.703+08:00结婚照<table><tr><td><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6437/486/1600/formal.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/6437/486/320/formal.jpg" border="0" alt="" /></a></td><td><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6437/486/1600/informal.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/6437/486/320/informal.jpg" border="0" alt="" /></a></td></tr><tr><td colspan="2"><p>经过四十多天的等待,终于拿到了结婚照。:-)</p></td></tr></table>netcasperhttp://www.blogger.com/profile/09923405180744914893noreply@blogger.com2tag:blogger.com,1999:blog-7699057.post-1135056866509114462005-12-20T12:47:00.000+08:002005-12-20T13:34:26.776+08:00其实不想走<p>虽然投了<a href="http://netcasper.blogspot.com/2005/12/blog-post.html">简历</a>,却并没想真的换个工作,所以跟对方说希望薪水能够涨一倍。因为我实在想不出除了钱(很多钱),还有什么能让我跳槽。:-)</p><p>当然,Intel并不是除了给钱少剩下哪都好。她有一些令我不满意(甚至很恼火)的地方,而且不能算少。但是,确实也有我非常满意的地方,以至于我宁愿忍受不满,放弃些许薪水。</p><p>一周后,对方开出他们能够承受的价码,离我的期望有相当的距离,当然,这在意料之中。面试时对方就曾说过,都是国际性的大公司,薪资水平不会差很多的。这个我能理解,只是不知道对方能不能理解我。这是个不错的职位,可惜不是我想要的。我只在乎自己的技能是否精深,却不愿意走先高官再厚禄的发展路线,更何况还是“可能”。这样的机会送给我,真是暴殄天物了。可惜无论怎么解释,猎头似乎都不能(不愿?)明白,仍然以“机会难得”相劝。</p><p>我清楚地知道自己真的不想“当官”,只想写写程序(<a href="http://netcasper.blogspot.com/2005/08/blog-post_05.html">一</a>、<a href="http://netcasper.blogspot.com/2005/08/blog-post_07.html">二</a>)。但是当我对16k说byebye时,居然产生了一点点悲壮的感觉,这让我吃了一惊。:-)</p>netcasperhttp://www.blogger.com/profile/09923405180744914893noreply@blogger.com1tag:blogger.com,1999:blog-7699057.post-1134715661583924342005-12-16T14:18:00.000+08:002005-12-16T14:47:41.820+08:00有一点点得意<p>昨天项目组20几号人开了个会,讨论未来的发展方向,俗称brainstorming。会议气氛相当活跃,大家各自说出自己对现状的不满以及未来的发展方向,其实我也对这个项目(以及其采用的技术)有很多想法,只是这一次,我不想再从技术角度谈了(其实是不想成为祥林嫂)。我是个消极的人,当多次提出(技术)倡议却不能得到响应时,便不再坚持了。尽管这一次换了角度,我仍然不认为自己的想法能够成为现实。但还是决定说一说,哪怕是为了心理卫生。</p><p>我说:“大家都有很多想法,但是这么多年,想法还是想法。如果说我们不能像Google那样给每个员工20%的时间做任何事,那么能不能给我们20%的时间做跟项目相关的事?让大家把自己的想法实现出来。事实胜于雄辩,有些事情是说不清楚的,也不可能得到所有人的同意,只有实实在在的成果才是最有说服力的。其实有些人已经在这样(偷偷地)做了,但是他们难免会有负罪感,成功了还好,要是失败了呢?……”。</p><p>没想到我的一番话引起很多人的共鸣,大家或公开发言、或私下里向我表示,我说到了他们的心里。看着大家不再讨论技术细节,而是随着我的话题延伸开去,不禁有一点点得意,尽管我知道,想法很可能还会只是个想法。</p>netcasperhttp://www.blogger.com/profile/09923405180744914893noreply@blogger.com0tag:blogger.com,1999:blog-7699057.post-1134625117991161122005-12-15T13:27:00.000+08:002005-12-15T13:48:44.170+08:00del.icio.us is down<p><a href="http://del.icio.us/">del.icio.us</a>不在的时候,只能在帖子上收藏链接了。</p><p>Links:</p><ul><li><a href="http://blue.chem.psu.edu/~rajarshi/misc/svnapache.html">Using Multiple Remote SVN Repositories with Apache</a></li><li><a href="http://www.google.com/tools/firefox/safebrowsing/">Google Safe Browsing for Firefox</a></li><li><a href="http://www.openwengo.com/">Open Wengo: free calls, free software</a></li><li><a href="http://www.linuxjournal.com/article/8735">OOo Off the Wall: Master Documents</a></li></ul><p>Comments:</p><ul><li><a href="http://webleon.net/2005/12/blog-post.html">今早杂记</a></li><li><a href="http://attaboy.cn/blog/index.php?job=art&articleid=a_20051214_173240">del.icio.us无法访问</a></li></ul><p>The reason that del.icio.us is down is <backquote><p>"power failure<br />By joshua on service alert</p><p>Our datacenter has had full power outage, and we are now recovering from the aftermath. About half of the machines are still down and we are working on bringing them back as soon as possible. To keep things moving, I've turned off RSS and some other features so that posting will still work and so that you will still have access to your bookmarks.</p><p>5pm EST Update: Everything is back up. We apologize for the inconvenience. It looks like a number of slave servers are corrupted. We're rebuilding them now and taken the site down so this goes as quickly as possible.</p><p>Update: Some servers are coming up. Should be going much faster from here on in.</p><p>PS -- we are obviously not yet on the Yahoo! infrastructure, and this is exactly the kind of stuff they can do a lot better for us (and you.)"</p></backquote><p>from <a href="http://blog.del.icio.us/blog/2005/12/power_failure.html">http://blog.del.icio.us/blog/2005/12/power_failure.html</a></p>netcasperhttp://www.blogger.com/profile/09923405180744914893noreply@blogger.com0tag:blogger.com,1999:blog-7699057.post-1134456444828398392005-12-13T14:37:00.000+08:002005-12-14T21:12:24.150+08:00Create blog at wordpress.com<p>在<a href="http://www.wordpress.com/">wordpress.com</a>建了一个新的blog,<a href="http://osstips.wordpress.com/">http://osstips.wordpress.com/</a> (<a href="http://feeds.feedburner.com/osstips">RSS</a>),内容是"tips for open source software",其实在这里也记录了我在使用OSS时的一些感想,但是在新的blog上,我将侧重于细节,即详细描述我在实践中获得的经验,而不是想法或感想。另外,这将是我第一个全英文的blog,算是为自己增加英文写作和交流的机会。</p>netcasperhttp://www.blogger.com/profile/09923405180744914893noreply@blogger.com0tag:blogger.com,1999:blog-7699057.post-1133763104827450472005-12-05T14:03:00.000+08:002005-12-05T14:11:45.066+08:00WebCam on Fedora<ul><li><a href="http://fcsolutions.blogspot.com/2005/09/logitech-quickcam-notebook-pro.html"> Logitech QuickCam Notebook Pro</a></li><li><a href="http://mxhaard.free.fr/download.html">Spca5xx</a></li><li><a href="http://www.raoul.shacknet.nu/2005/10/30/creative-pc-cam-750/">Creative PC-CAM Series webcams in linux</a></li><li><a href="http://utley.org/wp/?p=2">Fedora Core 4 And A WebCam</a></li><li><a href="http://www.bigwebcams.com/fedora-webcam.html">Fedora Webcam Resources</a></li><li><a href="http://suitepotato.blogspot.com/2005/07/fedora-core-3-and-logitech-quickcam.html">Fedora Core 3 and Logitech QuickCam Chat</a></li></ul>netcasperhttp://www.blogger.com/profile/09923405180744914893noreply@blogger.com0tag:blogger.com,1999:blog-7699057.post-1133418471771987052005-12-01T14:07:00.000+08:002005-12-01T14:27:52.070+08:00简历<p>工作后做过一些筛选简历和面试的工作,感觉多数简历显得苍白,便想着自己也写一份,看看是什么感觉。不过人太懒,一直没有动手,直到最近,有猎头来骚扰,虽然没有换工作的打算(尤其是年底),但还是发了简历过去。</p><p>掂量了半天,发现自己的简历也不过如此,没有什么惹眼的内容,有些失望,难道三年光阴真的就这样蹉跎了?</p><p name="resume_zh_CN">中文简历</p><table border="1" style="border:1px SolidLightGray; border-collapse:collapse" cellspacing="0" cellpadding="5"><tr><th>姓名</th><td>王亮</td><th>性别</th><td>男</td><th>出生年月</th><td>1977年10月</td></tr><tr><th colspan="2">求职方向</th><td colspan="4">软件开发</td></tr><tr><th colspan="6">职业技能</th><tr><td colspan="6"><ul><li><strong>五年C++开发经验</strong>,了解泛型编程并有实践经验,在研究生阶段使用过STL。了解设计模式并能适当运用于项目开发。</li><li><strong>一年Perl开发经验</strong>,使用过一些Perl Module,比如<code>XML::Simple</code>,<code>XML::Writer</code>,<code>GraphViz</code>等。</li><li><strong>一年正则表达式使用经验</strong>,能够使用多种不同正则表达式,如Perl,Emacs,sed和grep等,对文本做分析和替换。</li><li><strong>工作在Cygwin环境下近三年时间</strong>,会写makefile,shell脚本,在工作中经常使用一些GNU软件,如cvs,sed,find和grep,以及利用man和info学习不熟悉的工具。</li><li><strong>三年Emacs使用经验</strong>,会用<code>Emacs Lisp</code>定制Emacs。曾为我们的编译器中间语言写过一个<code>Emacs Mode</code>,能高亮显示重要信息,以及快速移动光标到特定位置,如函数头、尾等。</li><li><strong>一年GraphViz使用经验</strong></li></ul></td></tr><tr><th colspan="6">工作经验</th></tr><tr><td colspan="6"><strong>软件工程师,开发编译器,英特尔中国软件中心,上海,从2003年3月31日至今。</strong><ul><li>设计、实现了一个用于嵌入式设备的C编译器的调试信息支持功能,主要工作内容是使用户能够调试经编译器优化的代码,历时近三年。此功能仍在进一步优化、完善中。</li><li>与美国同事合作制定开发进度并一起编写程序。</li><li>与调试器组(在德国)合作以消除误解、协调开发进度。</li><li>用Perl开发调试信息测试框架,前后历时一年半,主要用来做编译器调试信息的质量控制。</li><li>多次做关于编译理论和产品实现的同级培训,以加速成长、分享知识。</li></ul></td></tr><tr><th colspan="6">教育背景</th></tr><tr><td colspan="6"><ul><li>硕士,计算机科学专业,浙江大学,杭州,2000年9月至2003年3月</li><li>学士,计算机科学专业,浙江大学,杭州,1996年9月至2000年7月</li></ul></td></tr></table><p name="resume">Resume</p><table border="1" style="border:1px SolidLightGray; border-collapse:collapse" cellspacing="0" cellpadding="5"><tr><th>Name</th><td>Wang, Liang</td><th>Gender</th><td>Male</td><th>Birthday</th><td>Oct. 1977</td></tr><tr><th colspan="2">Career Objective</th><td colspan="4">software development</td></tr><tr><th colspan="6">Skills</th></tr><tr><td colspan="6"><ul><li><strong>Five year C++ development experience</strong>. Used STL in university, and have basic knowledge and experience about generic programming. Understand design patterns and use them in project modestly.</li><li><strong>One year Perl development experience</strong>. Used modules such as XML::Simple, XML::Writer, and Graphviz.</li><li><strong>One year regular expression experience</strong>. Be able to use flavors for Perl, Emacs, sed and grep to parse or replace text.</li><li><strong>Work on Cygwin for nearly three years</strong>. Be able to write makefile, shell script and use basic GNU tools, such as cvs, sed, find and grep, in daily work. Be able to learn unfamiliar tools using man and info.</li><li><strong>Use Emacs as primary editor for nearly three years</strong>. Be able to customize emacs with Emacs Lisp. And wrote an Emacs Mode for intermediate language of compiler to highlight important information and to facilitate navigation. Help three team members(6 total) to learn Emacs and use it in daily work.</li><li><strong>One year Graphviz experience</strong>.</li></ul></td></tr><tr><th colspan="6">Working Experience</th></tr><tr><td colspan="6"><strong>Software Engineer, compiler developer, Intel China Software Center, Shanghai, from Mar. 31, 2003 to now.</strong><ul><li>Design, implement and improve debugging information support of an embedded c compiler, especially support on debugging optimized code to satisfy customers' debug requirements on limited development environment, for about three years.</li><li>Collaborate with US team members to setup schedule and develop compiler. They are located at different sites in America.</li><li>Collaborate with debugger team to eliminate misunderstanding and align development schedule. They are based on Ulm, Germany.</li><li>Develop and improve debug test framework using Perl for one and a half year. Debug test is used to track quality of compiler's debug support.</li><li>Deliver peer training, including both theory and implementation, to team members and group members to speed up growth and share knowledges.</li></ul></td></tr><tr><th colspan="6">Education Background</th></tr><tr><td colspan="6"><ul><li>Master of Computer Science, Zhejiang University, Hangzhou, Sep. 2000 - Mar. 2003</li><li>Bachelor of Computer Science, Zhejiang University, Hangzhou, Sep. 1996 - Jul. 2000</li></ul></td></tr></table>netcasperhttp://www.blogger.com/profile/09923405180744914893noreply@blogger.com1tag:blogger.com,1999:blog-7699057.post-1133403634142443992005-12-01T10:07:00.000+08:002005-12-01T10:20:34.186+08:00Graphviz on Cygwin<p>我装的Cygwin里面没有dot,而Windows版本的dot不能被Graphviz Perl Module使用,于是决定自己build一个。2.6版本一直没有成功,倒是前天从cvs server上check out出的源代码最后build成功了。这次经历让我感到有强烈的需求去学习Linux编程。</p><p>即使build成功了也不是一切顺利,事实上有unresolved symbol error出现,原来是少链接了graph和pathplan,把它们加上,然后手工运行一下错误的那条命令,通过后继续make就可以了。不过make install仍然有问题,说有dll找不到,这时需要手工把build出来的所有dll文件复制到安装目录的lib子目录下,然后把lib子目录放到path环境变量里。这时就可以运行<code>dot -h</code>看help了,但是在做任何实质性工作前,还要运行一下<code>dot -c</code>去配置一下插件。这时才算一切ok了,dot可以用,Graphviz module也可以用了。</p>netcasperhttp://www.blogger.com/profile/09923405180744914893noreply@blogger.com0tag:blogger.com,1999:blog-7699057.post-1133167484237316002005-11-28T16:36:00.000+08:002005-11-28T16:44:44.236+08:00缅怀John Vlissides<p>巨星陨落,令人动容,仅以此帖略表崇敬与缅怀之情。</p><p>消息是从<a href="http://www.booch.com/architecture/blog.jsp">Grady Booch的blog</a>了解到的,可惜没有找到单个帖子的链接。也可以参见<a href="http://eclipse-projects.blogspot.com/2005/11/john-vlissides-remembered.html">John Vlissides Remembered</a>或者<a href="http://www.mattberther.com/2005/11/000695.html">John Vlissides</a>。</p>netcasperhttp://www.blogger.com/profile/09923405180744914893noreply@blogger.com0tag:blogger.com,1999:blog-7699057.post-1133166419628013052005-11-28T16:17:00.000+08:002005-12-01T10:25:19.396+08:00AutoDia on Cygwin<p>前面提到过<a href="http://netcasper.blogspot.com/2005/11/uml-class-diagramautodia.html">没研究出怎么生成dot</a>,刚刚看了源代码,发现原来是用<code>-o</code>选项控制,如果输入文件后缀是dot就生成dot文件,同理可生成png、jpg等等。当然同时一定要使用<code>-z</code>选项。</p><p>另外,一定要使用Cygwin Graphviz才行,如果没有可以<a href="http://netcasper.blogspot.com/2005/12/graphviz-on-cygwin.html">自己build一个</a>。</p>netcasperhttp://www.blogger.com/profile/09923405180744914893noreply@blogger.com0tag:blogger.com,1999:blog-7699057.post-1133165670381846592005-11-28T15:46:00.000+08:002005-11-28T16:14:52.763+08:00perltoot<p><a href="http://perldoc.perl.org/perltoot.html">perltoot</a>全称为Tom's object-oriented tutorial for perl。说实话,看了好几本书没学会怎么用Perl做OO,直到看了这份文档。</p><p>昨晚国米虽然赢了,但踢得不是很精彩(尤其是下半场),所以就拿出perltoot边看边听比赛。文档写得深入浅出,不愧称为tutorial,在吹响终场哨之前看完了这28页纸,基本上不再茫然了。不过开始看Accessing Class Data一节的时候不太明白,索性略过去,看到后来就明白了。</p><p>感觉用Perl做OO怪怪的,尤其是那个<code>bless</code>,就没理解过(现在想来我的理解能力可能有点问题),后来学Scheme时看到<a href='http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html#%_toc_%_sec_2.4.2'>Tagged data</a>也没什么感觉,直到这次再学Perl的OO,联系起来才算明白了。不过,好像很多module都设计成能以OO方式运用,而且我打算尝试perlunit,不学不行啊。</p>netcasperhttp://www.blogger.com/profile/09923405180744914893noreply@blogger.com0tag:blogger.com,1999:blog-7699057.post-1132904221731858642005-11-25T15:22:00.000+08:002005-11-25T15:37:01.743+08:00UML class diagram生成工具——AutoDia<p>这一段一直在学CppUnit,便想着也尝试一下<a href="http://perlunit.sourceforge.net">PerlUnit</a>,正好有些事情要用Perl,就下载了瞧瞧,里面提到了<a href="http://droogs.org/autodia/">AutoDia</a>,这个我梦寐以求的小工具。</p><p>其实<a href="http://www.stack.nl/~dimitri/doxygen/">Doxygen</a>也可以生成类图,但是是作为文档的一部分,而AutoDia则可以生成独立的类图文件,除此之外,它不做任何其它的事情。</p><p>不过AutoDia也不是尽善尽美,它生成的Dia xml文件并不是最终结果,仍然需要load到Dia里面,再做手工布局,倒是利用GraphViz可以一步到位,不过它直接生成gif文件,还没研究出怎么生成dot。说实话,我差点就想自己写一个类似的工具,现在既然知道了AutoDia,那不妨在它的基础上实现自己的需求。</p>netcasperhttp://www.blogger.com/profile/09923405180744914893noreply@blogger.com0tag:blogger.com,1999:blog-7699057.post-1132808959357290412005-11-24T12:54:00.000+08:002005-11-24T13:09:19.366+08:00新生活<p>住进了新家(当然还是租的),也就开始了新生活。</p><p>房子总体上还不错,但也仍有一些小的瑕疵,而且装修的味道还没有完全散尽。搬家是在上周六,找了两个朋友帮忙,叫了辆货的,完事了请他们在多利吃了午饭。然后我和老婆就开始疯狂收拾,累得腰算腿疼,同时又疯狂购物,一天去家乐福好几趟,到星期日的时候总算有了点模样。从星期一开始,我们又过上了自己做饭吃的日子,上次正经做饭吃的日子都已经不记得了。</p><p>可这新生活到底怎么个新法现在还没底,吃完饭洗个澡差不多就该睡觉了。另外,婚礼的事也得抓紧了,换房子才算刚刚开始呢!</p>netcasperhttp://www.blogger.com/profile/09923405180744914893noreply@blogger.com0tag:blogger.com,1999:blog-7699057.post-1131948780472464942005-11-14T14:02:00.000+08:002005-11-14T14:13:00.483+08:00misunderstand CppUnit::TestFixture::setUp ()<p>昨天在读<a href="http://www.china-pub.com/computers/common/info.asp?id=18349">《测试驱动开发:实用指南(影印版)》</a>的时候突然发现自己对<code>setUp()</code>的理解有错误,原以为<code>setUp</code>和<code>tearDown</code>在所有<code>testMethod</code>运行前后只调用一次,还感到奇怪为什么不直接利用构造函数和析构函数。原来这两个方法是在<b>每个</b><code>testMethod</code>前后都要调用一遍,这才明白了它们存在的意义。</p>netcasperhttp://www.blogger.com/profile/09923405180744914893noreply@blogger.com0tag:blogger.com,1999:blog-7699057.post-1131947046858780232005-11-14T13:30:00.000+08:002005-11-14T13:44:06.896+08:00“身价”暴涨三倍<p>终于签了新合同,月租金从现在的800(合租)暴涨到2400,这将是我来上海不到三年时间住的第三套房子。现在这套房子住了还不到9个月,当初<a href="http://blog.csdn.net/netcasper/archive/2005/03/20/324962.aspx">租房的经历</a>还记得很清楚。</p><p>这次搬家主要是因为要结婚了,一来要有个新婚的感觉,二来像现在这样两家人住在一起确实不太方便。不过一开始也没想租这么贵的,主要是中介强烈推荐,所以就先看看,租金中介帮着谈了谈,确实降了一些,物业费也由房东来付,由于是新房,物业费还是挺贵的,每平米1块6。开始房东还不肯,后来想着也就一个月不到的租金,如果现在租不出去,年底就更难租了,这才同意了。</p>netcasperhttp://www.blogger.com/profile/09923405180744914893noreply@blogger.com0tag:blogger.com,1999:blog-7699057.post-1131438060643023312005-11-08T16:18:00.000+08:002005-11-08T16:21:00.980+08:00今天comment两篇blog<ul><li><a href="http://spaces.msn.com/members/aimingoo/Blog/cns!1pWdgz2EaK5Lx09Hx2mpRLcw!109.entry">公开《大道至简——软件工程实践者的思想》电子版<br /></a></li><li><a href="http://www.54dy.cn/post/305.html">linux真是麻烦</a></li></ul>netcasperhttp://www.blogger.com/profile/09923405180744914893noreply@blogger.com0tag:blogger.com,1999:blog-7699057.post-1131435552232656762005-11-08T15:23:00.000+08:002005-11-08T15:39:12.280+08:00读周爱民的《大道至简》<p>这种小册子很适合打印出来,然后在乘地铁时看,但我还是在上班时间看完了。:-)</p><p>第五章写得很好,还有第七章第一节。</p><p>有些地方跳过了,感觉离自己很远,尤其是后语那句“那是细节”,非常之不受用。文中曾经提到开发产品与做项目的区别,我想两者所适用的软件工程也应该是不同的吧。我用开发产品的感受去套用作者的经验,难免有误读之嫌!</p><p>希望有志于从事编程的人能够报着“取其精华、去其糟粕”的精神来阅读这本小册子,另一方面,带有贬低编程味道的软件工程书籍是最难被程序员接受的,所以,尽管有些反感,还是希望你能读完他,哪怕跳过其中你认为无趣的部分,毕竟它并不长。</p><p>附:<ul><li><a href="http://spaces.msn.com/members/aimingoo/">周爱民的blog</a>(<a href="http://spaces.msn.com/members/aimingoo/feed.rss">RSS</a>)</li><li><a href="http://www.delphibbs.com/keylife/images/u40/thinking.in.flexible.engineering.zip">下载《大道至简》</a>或者<a href="http://www.01cn.net/users/aimingoo/files/thinking.in.flexible.engineering.zip">这里</a></li></ul></p>netcasperhttp://www.blogger.com/profile/09923405180744914893noreply@blogger.com0tag:blogger.com,1999:blog-7699057.post-1131113977184803212005-11-04T21:57:00.000+08:002005-11-04T22:19:37.256+08:00第一次尝试TDD<p>今天用<a href="http://netcasper.blogspot.com/2005/11/tdd.html">搭建好的CppUnit</a>做了人生第一次TDD,新手上路,难免显得笨手笨脚,但是仍然感受到了TDD带来的震撼。</p><p>首先,每个case都很小,使得发现问题、解决问题的速度很快,极大地缩短了开发周期。其次,这种测试方式使得每个模块不得不写得高内聚低耦合,而这恰恰是高质量软件的特征之一。</p><p>当然,工具虽好,也要会用才能发挥其威力。由于是初次使用,还无法做到从最简单的测试开始,上来就写个复杂的,当时还自以为够简单,等测试出了问题才发现有更简单的case没有写。这就好比等到产品出了问题才发现,原来其中一个部件没有测试过,实在不能算是正确的开发方式。陋习难改,还需多加实践啊!</p>netcasperhttp://www.blogger.com/profile/09923405180744914893noreply@blogger.com0