<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4642558451176657378</id><updated>2011-11-28T08:11:52.854+08:00</updated><category term='数据库'/><category term='小结'/><category term='电影'/><category term='说明'/><category term='java'/><category term='国学'/><category term='网络'/><category term='科幻'/><category term='IT'/><category term='编程'/><category term='随想'/><category term='音乐'/><category term='体育'/><category term='摄影'/><category term='评论'/><category term='新闻'/><category term='美剧'/><category term='google'/><title type='text'>人生的代码</title><subtitle type='html'>There are only 10 types of people in the world:
Those who understand binary
and those who don't.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>42</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-7706403126756875511</id><published>2010-04-11T16:46:00.004+08:00</published><updated>2010-04-11T21:32:50.322+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='随想'/><category scheme='http://www.blogger.com/atom/ns#' term='IT'/><title type='text'>从properties到dsl：知识描述的变迁</title><content type='html'>在一个系统之内，除了来来往往的数据之外，软件的架构本身，一般来说也可以区分出不变的和易变的部分。随着需求的日渐提升，对软件柔性化的要求越来越高。甲方不再满足于每次变更都要找乙方签订新合同，也不愿意回到自己养程序员的老路，于是，运行时变更成为了合情合理的需求。&lt;br /&gt;&lt;br /&gt;想做变更，无非就是将易变项抽提出来给用户控制，把剩下的不变项保留在bin包里面，抽提出来的部分，纯文本的配置文件自然就成了最佳选择。当然，代码中需要做必要的变更，于是，程序也自然变成了两部分：负责管理功能模块／配置文件的框架，和执行具体业务的应用逻辑。整个程序的执行模式就变成了框架按照配置文件的描述，将应用逻辑组合成完整逻辑。最典型的就是诸如数据库配置或者功能模块是否启用。&lt;br /&gt;&lt;br /&gt;很快的，这成为了新一代柔性应用程序的大趋势，但是用户对柔性的需求越来越高，配置文件需要描述的信息也越来越多，一开始，也许仅仅是简单表述一下在“状态Ａ下执行模块甲”，渐渐的演进成“当角色１在状态Ａ时，执行模块甲，乙，丙，否则，……”，简单的线性文件开始不够用，描述能力强大的xml成为了第一选择。&lt;br /&gt;&lt;br /&gt;xml,xml,xml，从spring的applicationContext.xml到各mvc框架再到web容器的web.xml，处处都是xml的身影，更有诸如EOS普元之类试图包罗万象的框架，然而，随着越来越多的功能被挪进xml，xml也变的愈发臃肿，我们在xml中定义类，组装类，初始化类，给类增加横切点，控制类实例，等等，等等，xml渐渐成了第二编程语言。&lt;br /&gt;&lt;br /&gt;然而，作为一个结构描述语言，xml从头到脚都没有期望成为一个编程语言的替代品，基于结构而非语义的meta约束，严格的层层嵌套格式。指望让xml成为拥有流程控制/局部变量的动态编程语言的替代品实在是强人所难。但是，xml纯文本的假象蒙蔽了很多人，无数人仍然乐而不疲的付出艰苦卓绝的努力，把xml几乎扩充成了一个完备图灵机，然后再配置上无数华丽的GUI，冠以“可视化编程”的美名，试图让用户在拖拖拽拽之间就能“设计程序”。&lt;br /&gt;&lt;br /&gt;幸好，随着编译技术的突飞猛进，实现一门程序语言的成本越来越低，于是，我们有了DSL。&lt;br /&gt;&lt;br /&gt;DSL，领域特定语言，不再是properties中的简单key-value对，也不是层层嵌套的xml，而是程序员喜闻乐见的，有变量有函数，有流程控制有循环，没准还有递归的编程语言，当然，不是C/CPP/Java/C#这种工业级语言，而更可能是诸如“设置流程=A”之类的专用语言，弱类型约束，函数作为first-class对象。它比xml强大，因为它的语法结构远比xml复杂，它拥有自描述能力，因为它的关键词完全可以面向具体业务量身定制。&lt;br /&gt;&lt;br /&gt;多年以来，让软件能够模块化的组装，是无数程序员的梦想，从CORBA，到Dll，OCX，再到COM/DCOM，EJB，乃至最新的SOA，每个缩写都代表了软件模块化的一次努力。伴随着诸如Ruby，Govvry等动态语言崭露头角，DSL也成为了当红炸子鸡，用工业级语言编写模块，用动态语言或者DSL作为胶粘剂或者业务描述，是向这一终极目标迈出的一大步。&lt;br /&gt;&lt;br /&gt;且慢，在欢呼之前，先让我们转头看一下身后，看一下老而弥坚的UNIX，我们就会惊讶的发现，如果你把每个UNIX程序当做一个模块，把Shell脚本作为胶粘剂，我们其实已经拥有了全部的关键元素，这就是UNIX的智慧，虽然现在已是2010年，我们仍然能从几十年前的UNIX中寻得灵感&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-7706403126756875511?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/7706403126756875511/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=7706403126756875511' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/7706403126756875511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/7706403126756875511'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2010/04/propertiesdsl.html' title='从properties到dsl：知识描述的变迁'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-2455599699429296377</id><published>2010-01-30T14:00:00.002+08:00</published><updated>2010-01-30T14:22:55.066+08:00</updated><title type='text'>风声渐紧</title><content type='html'>常用的代理无声无息的断了，ping都ping不通了&lt;br /&gt;想换成ssh，突然发现myentunnel的下载主站也连不上&lt;br /&gt;看来新一轮关门行动又在进行中了&lt;br /&gt;&lt;br /&gt;淘宝上vpn的买卖依然红活，仿佛这只是一轮新的优胜劣汰&lt;br /&gt;店家依然在商品名上张扬着标上“穿墙”二字&lt;br /&gt;有了市场经济的大手加入之后，墙与穿墙的永恒斗争格局似乎有所变化&lt;br /&gt;如果说TOR被封是1:0的话，那么vpn/ssh生意的兴起大概就是把比分扳平了&lt;br /&gt;&lt;br /&gt;不过长远来看，我是不看好市场的力量，在中国，市场之手永远是被捆在权力之蹄上起舞的。只能寄希望于不可知的未来了&lt;br /&gt;&lt;br /&gt;大洋彼岸，希拉里宣布全力支持网络自由运动，标志着一向只在灰色地带出现的各类穿网工具正式走向聚光灯。这场技术与权力的对抗会如何收场？这场大战会不会最后以两败俱伤的白名单作结？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-2455599699429296377?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/2455599699429296377/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=2455599699429296377' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/2455599699429296377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/2455599699429296377'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2010/01/blog-post_30.html' title='风声渐紧'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-7574721155065598211</id><published>2010-01-07T22:09:00.000+08:00</published><updated>2010-01-07T22:10:13.911+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='网络'/><title type='text'>泪流满面</title><content type='html'>想不到还有重见这个页面的机会&lt;br /&gt;&lt;br /&gt;虽然GFW如此凶悍&lt;br /&gt;&lt;br /&gt;市场经济的收费代理总能打开一条通道&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-7574721155065598211?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/7574721155065598211/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=7574721155065598211' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/7574721155065598211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/7574721155065598211'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2010/01/blog-post.html' title='泪流满面'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-1652136679482627694</id><published>2009-01-06T21:31:00.002+08:00</published><updated>2009-02-22T16:00:46.137+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><category scheme='http://www.blogger.com/atom/ns#' term='随想'/><category scheme='http://www.blogger.com/atom/ns#' term='IT'/><title type='text'>设计模式，面向对象，和其他</title><content type='html'>面试时经常被问到一个问题：你懂设计模式么？&lt;br /&gt;&lt;br /&gt;唔，面对这个问题我总是不知该如何回答，说懂么？好像除了个把模式外我实在是说不上多少模式的名称，更不用说画个UML图云云了，到现在为止好像我唯一能彻底领悟的只有工厂那一系模式外带上那个万恶的singleton，代理模式？肯定用过，但是不知道准确定义，委托模式？似乎也用过但是也不知道定义，适配器？好像也在代码中写过，不过同样，也不知道定义……&lt;br /&gt;&lt;br /&gt;那么，到底什么是设计模式？到底什么是面向对象？怎样才算是懂了呢？&lt;br /&gt;&lt;br /&gt;设计模式是什么？说穿了，它就是一套编码经验/代码套路的集合，用来解决某一类型的问题，那么，怎样才能算“懂”设计模式呢？把那个套路背下来么？那是注定无用的，那么，怎样算懂呢？至少，得在项目中用过，拿这套模式解决过问题，估计才能叫做懂吧，那么接下来一个问题就是：你在实际项目中到底用过哪些呢？&lt;br /&gt;&lt;br /&gt;一个没用过？其实这不可能，只要你承担过建模的重任，只要你追求过代码的可重用性，可变性，那么，完全没用过任何一种设计模式是不太可能的，真正的问题在于：你会用，但是，你很少会知道你写出的代码到底算是哪种模式。特别是对于那些有很多变种的模式来说，想要弄清楚自己的代码究竟属于哪一种确实不是一件简单的事情。很可能出现的场景就是，你在看了GoF之后，才恍然发现：哦，我在某某项目中搭的那个框架就是啥啥模式啊&lt;br /&gt;&lt;br /&gt;好吧，回到开头，如果你发现你处于这种情况，你到底算不算懂设计模式呢？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-1652136679482627694?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/1652136679482627694/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=1652136679482627694' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/1652136679482627694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/1652136679482627694'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2009/01/blog-post.html' title='设计模式，面向对象，和其他'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-600454342827488001</id><published>2008-12-20T15:32:00.002+08:00</published><updated>2008-12-20T15:51:31.277+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='网络'/><category scheme='http://www.blogger.com/atom/ns#' term='IT'/><title type='text'>IT玩具之超小笔电</title><content type='html'>&lt;p&gt;终于还是没能挡住诱惑，抢在停产之时，下手买了一个epc901，算是圆了一个念想，唔，用下来总算是不负我望，对的起这笔银子&lt;/p&gt;&lt;p&gt;901的性能种种不必多说，到处都能查到，由于种种原因，双a（唔，发现我已经习惯了这个对岸的叫法了）已经停产这款笔电，9寸atom本也就成了绝响。大家都奔着10寸杀将了过去，唔，必须说9寸本子的键盘确实是小了那么一点点，以至于打字的准确度低了不少，唉，不过，看在价格（2800不到）和固态硬盘（10寸本一概是普通hd的）的面子上，还是忍受了，毕竟，打字的机会对我来说不算很多，而且，也不是没法用么。&lt;/p&gt;&lt;p&gt;抛掉这个缺点外，这个本子还是很不错的，en，mui-touch版相当的好用，基本用不着那个特意买的蓝牙耗子，当然，有还是最好了。原配的linux到底不算好用，还是倒成了xp，反正我手上有正版的xp home。电池那是相当的耐用，6芯电池真不是盖的，可劲的用，带出去一大圈也不用担心电池消耗。管够。&lt;/p&gt;&lt;p&gt;现在很多时候，想起来查个啥东西就拿过来打开，上网，反正有无线路由，无所不能，用完了盖子一合完事，也不用担心电池消耗。方便啊。果然完美诠释netbook概念。&lt;/p&gt;&lt;p&gt;如果说有什么不爽的，大概就是另外买的那个td网卡，信号那叫一个糟糕，如果能连上去的话倒还不错，但是连不上去的场合也不少，虽然号称是GSM双模，不过经常发现手机能正常online的时候它不吭声。而且，不知道是不是无线网卡的毛病，耗电那是相当的厉害，幸好这是6芯电池，这要是3芯电池怕是撑不过一个钟头。唉，如果上网没啥大需求的话，还是蓝牙挂手机来的方便啊，就是手机电池比较受累了。&lt;/p&gt;&lt;p&gt;还有啥缺点吗？有，功能键驱动会莫名停止，已经重装过一遍了，mui-touch也曾经时灵时不灵，不过换到最新驱动后好像还算稳定，现在就是需要为它找个合适的包了，en，然后就可以自在的把它和相机一块拎出去，唔欧，听上去真是完美的驴儿组合。唯一希望的就是那块该死的td网卡能争气一点。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-600454342827488001?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/600454342827488001/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=600454342827488001' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/600454342827488001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/600454342827488001'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2008/12/it_20.html' title='IT玩具之超小笔电'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-2084459729965785995</id><published>2008-12-20T14:52:00.004+08:00</published><updated>2008-12-20T15:54:08.870+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='网络'/><category scheme='http://www.blogger.com/atom/ns#' term='IT'/><title type='text'>IT玩具之网络硬盘盒</title><content type='html'>&lt;div&gt;美剧季到了，BT忙碌的时候也到了，又到了忍受机箱低频噪音（无法可想，虽然尽可能的做了静音配置，但午夜的翁翁声是永恒的）和尽早看到片子二选一的时候了，一番寻觅之后，发现了一个叫做网络硬盘盒的东西。&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;这东西本身仅仅是一块网卡加一个硬盘再加一块cpu而已，接在网络内可以自动共享其内装的硬盘，在这个网络时代，在这个人均电脑拥有量&gt;=2的时代，这个东西作为文件集中存储的工具还是有其价值的，不过也仅此而已。但是，这个星球上还有一群叫做geeker的家伙，发现这个盒子有一个cpu，有32m内存，还有一个容量足够大的外存（硬盘），于是，呃，你能想像么？他们给它装了一套linux&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;好吧，我在故弄玄虚，其实这个系统原本就内嵌了一套linux用来文件共享服务（顺便说一下，这个服务和许多东西一样，也是由linux下的一个应用程序支持的）。既然能跑文件共享服务，那就能跑别的东西，比如做媒体服务，跑电驴和BT，如果你愿意的话，甚至还可以在上面架blog！于是，这个原本用来做文件箱的小盒子一跃变成了一个全能的下载盒子。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;感谢自由软件社区的多年积累，一个盒子，任何盒子，只要它可以跑linux，就几乎可以跑一切的应用，只要cpu撑得住，只要内存够用。于是我们不费吹灰之力，就得到了一个功能还算齐全的系统。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;这正是我在寻找的东西，没有噪音，极端省电，还能昼夜不停的做bt下载，唯一的限制，就是内存到底是稍微少了那么一点，额，毕竟，这只是一个盒子。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;心动不如行动，盒子本身是不单卖的，西数公司只把它合着硬盘一块卖，当然，我们有无所不为的黑渠道，有无所不卖的淘宝，只需要两三百元，就能得到一个空盒子，你需要做的是把系统，大牛帮忙攒的，功能齐全的，linux定制系统装入硬盘，再把硬盘装入盒子，然后，一切都搞定了。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;由于这毕竟只是一个盒子，所以不要期待有什么漂亮的桌面GUI，而Web界面因为太过消耗资源也不甚推荐，所以，用户最好回顾一下那个传说中的主机年代，用远程终端登录到盒子系统做各种操作，代价就是必须学习一点unix命令行操作，这时候，你就会发现一个强大的命令行SH是何等的重要。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;远程终端只能控制，所以采用了一种有趣的方式做bt种子上传，盒子上的bt下载进程时刻扫描一个特定文件夹有无新的torrent文件，一旦发现新的文件就启动下载进程。这是个简单而管用的方式，你需要做的仅仅是把文件下载到一个文件夹里，几个小时候就可以去另一个文件夹收获结果了。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;现在，这个盒子正在我的床脚边静静运转着，无声无息，尽职尽责，上面放着几十G的音乐，电影，可以被任何一台内网的电脑，不管是笔记本，还是台式机，在任何位置访问（这个是拜边上的无线路由所赐），还能帮你不分昼夜下载最新一集的美剧而不用劳烦边上的台式机在午夜嗡嗡作响。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;只有在这个时候，你才会真正体会到，一个OS是何等的重要，它没有华丽的3D界面，也没有贴心的安装向导，但是，它是一个实实在在的OS，一个能支撑海量应用的OS，有了它，任何一个有cpu有内存有外存的IT产品，都能变成一个全能工具。&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-2084459729965785995?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/2084459729965785995/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=2084459729965785995' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/2084459729965785995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/2084459729965785995'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2008/12/it.html' title='IT玩具之网络硬盘盒'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-589374766603364029</id><published>2008-11-22T00:29:00.004+08:00</published><updated>2008-12-20T15:08:30.573+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='音乐'/><category scheme='http://www.blogger.com/atom/ns#' term='随想'/><title type='text'>音乐还是流行？</title><content type='html'>&lt;div&gt;音乐是艺术形式的一种，通过音调，音高，节奏，音色这些元素，遵循创作者本人，或者创作者试图迎合的，音乐审美观，构建出一个作品。这个作品的美感与否，只存在于音律搭配中，而非其引发的情感共鸣，人声，作为配器的一种，也是音律的重要元素。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;由于音律搭配有万千种方式，所以也有成千上万种的音乐流派出现，有些与主流审美比较协调就成为主流，其他的则成为小众。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;因为音律搭配是高度抽象，因人而异，无法具像化的，流行歌曲作为通俗艺术，太抽象是没好下场的，所以，还会/必须通过歌词等手段将抽象概念具象化，人为的为音律附加上各种情感元素，为作品贴上简明易懂的标签以利于大众传播，但是，它不可能脱离音律而存在&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;这两部分是不可截然区分的，作为抽象艺术的音律本身就具有巨大的能力去引发听众的共鸣，就是潜意识中的“好听”，”好听“的影响力要远大于其后期附加的情感标签。一部成功的作品首先是一部好听的作品。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;可惜，目前的趋势就是，后者被拔高到绝对重要的高度，并依靠诸如歌词，文案，mv之类的外在手段去一再强化并向大众强行灌输。而有意无意的，直接无视了音乐固有的美学意义，甚至，将音律，以及与音律高度相关的人声演绎技巧，异化为与情感对立的东西。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;而把所谓情感元素强化的好处是养活了一大群乐评人，因为对音乐元素做点评需要高度的专业知识，至少需要把几大和弦都弄明白吧，而拿情感说话就方便多了，这玩意人人都懂，再贴上一堆流派标签，一篇乐评就顺利出炉了。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;就这样，我们的乐坛互相吹捧着滑向了无底深渊&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;于是乎，我们看到一堆堆的的乐评人堆砌着无算的辞藻，除了音乐不谈，一切应有尽有&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;可惜，归根接地，大家是要用耳朵，而不是用乐评人的笔头，去听歌的&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-589374766603364029?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/589374766603364029/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=589374766603364029' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/589374766603364029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/589374766603364029'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2008/11/blog-post.html' title='音乐还是流行？'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-3115230217117323902</id><published>2008-04-14T20:51:00.000+08:00</published><updated>2008-04-14T20:55:12.120+08:00</updated><title type='text'>定焦时代</title><content type='html'>唔，终于还是淘了一个50/1.8，算是08年给自己的礼物，拿出去try了一圈之后，发现：定焦，果然就是定焦。&lt;br /&gt;&lt;br /&gt;第一感觉是左手没事可做了，没有变焦环需要拧还真是有点不习惯。原来玩手动的时候虽然没有变焦环拧，不过有光圈环可以拧，现在啥环都不用拧了，真是有点不习惯，唔，回复到基本靠走的模式了。50mm的视角还算习惯，唔，如果换成dx的机器，还不知道能不能适应起来哩。&lt;br /&gt;&lt;br /&gt;第二感觉是有景深了，开始明白为啥植物园里那个丫头转拨轮转的如此之狠了，这光圈调起来确实蛮费事的。从f4.5到f1.8，需要转档位还真是不少，唔欧，当然，终于也知道了何谓景深，何谓焦外，唔欧，原来景深可以这么浅，原来焦外可以这么好。原来构图可以有这么大的余地，终于知道为啥大家都那么喜欢大光圈了。这个效果确实容易上瘾啊。&lt;br /&gt;&lt;br /&gt;第三感觉就是小，真小，虽然手头没啥大炮，感觉已有的两个镜头已经够小了，不过没想到这个还要小，拿在手中还真是不占地方，怪不得有人喜欢小旁轴和小手动了。确实感觉不一样，也许，真的该去弄个FM3了，hehe。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-3115230217117323902?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/3115230217117323902/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=3115230217117323902' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/3115230217117323902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/3115230217117323902'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2008/04/blog-post_14.html' title='定焦时代'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-1387405453431816951</id><published>2008-04-12T23:13:00.002+08:00</published><updated>2008-04-12T23:19:21.621+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='IT'/><category scheme='http://www.blogger.com/atom/ns#' term='评论'/><title type='text'>书橱小探</title><content type='html'>收拾了一下书橱，赫然发现自己手头保留下来的专业书中，java开发的书居然是不是最多的，唔精确的说，java书籍的数量毫不突出&lt;br /&gt;&lt;br /&gt;java相关：&lt;br /&gt;effective java，四年前买的，在Bloch出下一版之前，它会永远放在书架上。&lt;br /&gt;without ejb，其实这本书没怎么看过，因为最初看的是它的英文版本&lt;br /&gt;一本spring教程，和上一本并非完全没有关系，唔，这本书迟早会被我送掉。&lt;br /&gt;然后，唔，好像就没什么书是完全关于java了。少么？好像是少了一点。&lt;br /&gt;&lt;br /&gt;和unix相关的书居然也有三本&lt;br /&gt;art of unix program，最晚买的，不过倒是最早看完的&lt;br /&gt;APUE，当年在linux狂热期买的，唔，很不好意思的是，还没怎么看过&lt;br /&gt;linux教程，于明俭，陈向阳，方汉三个家伙写的，同样购于linux狂热期，唔，也没看几页，汗颜中&lt;br /&gt;&lt;br /&gt;和javascript有关的书也是三本&lt;br /&gt;快送人的第四版犀牛书，好书，从来没后悔过买了它，无所不包。&lt;br /&gt;ajax in action，也是好书，对于ajax来说，和javascript有关的部分少许薄了一点&lt;br /&gt;javascript编程指南，不错的书，正好补充稍嫌陈旧的犀牛书，犀牛书第五版该去弄一本了&lt;br /&gt;&lt;br /&gt;和windows有关的居然还有三本：&lt;br /&gt;dotnet本质论，jvm内幕的dotnet版本，这本书还没怎么细看过&lt;br /&gt;windows内幕，放在床头不过一直没抽出时间来看&lt;br /&gt;windows史话。这本倒是看的差不离了，很多很有趣的技术八卦&lt;br /&gt;&lt;br /&gt;然后，建模的书有两三本&lt;br /&gt;PEAA，不用多说了，最初是和一堆模式的书一块买的，然后看的昏昏欲睡，不过到了现在，另几本敏捷编程的书倒是都快送人了，这本书却留了下来&lt;br /&gt;分析模式，另一部当初凑热闹买下的书，现在也体现出了其非凡价值&lt;br /&gt;还有本有凑数嫌疑的j2ee反模式，不过既然一时不会送人，还是算上吧&lt;br /&gt;&lt;br /&gt;终于到了最后但绝非最不重要的部分了，同样，还是三本&lt;br /&gt;SICP，不用多介绍了，正是这本书让我对编程语言的发展开始追根溯源，开始关注java之外的世界，特别是那些学术性编程语言&lt;br /&gt;算法导论，这本书看了小半，然后发现实在是需要有点功力才能看下去，只好收拾起来放回书架了&lt;br /&gt;程序语言之路，比预想的要浅近，正在努力研读中，实际上，这三本书都在努力，反复，仔细的研读中。&lt;br /&gt;&lt;br /&gt;过去买书习惯于一本入门书+一本大全，后来渐渐发展到入门书靠下载，直接买大全，再后来连大全通常都不轻易买，除非是原理性强的作品，最后就沦落到现在直接去回顾大学教材的地步了。真是退化啊，现在最要紧的，还是得把书尽快看完，en&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-1387405453431816951?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/1387405453431816951/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=1387405453431816951' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/1387405453431816951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/1387405453431816951'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2008/04/blog-post.html' title='书橱小探'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-5707608924278015397</id><published>2007-10-17T21:21:00.000+08:00</published><updated>2007-10-17T21:28:41.128+08:00</updated><title type='text'>洋葱头的拯救</title><content type='html'>tor服务器的设置&lt;br /&gt;&lt;br /&gt;唔，首先你需要知道Tor是个什么东西：一个p2p模式的加密代理软件，简而言之，在你发现你点击google链接时又遇到了一个服务器中断的页面时，呃，没错，是“又”，你可以通过它重新看到那六个可爱的彩色字母，以及随之而来的，网络上的几乎任何的东西。&lt;br /&gt;&lt;br /&gt;对于IE用户，你可能需要点击托盘区的某个图标，对于firefox用户（唔，也许你已经知道Tor是什么了，那么你可以直接跳过这一段），只需要在firefox的任务栏上点击某个图标，呃，要到什么时候，tor button 插件才能支持各tab独立使用的功能呢？&lt;br /&gt;&lt;br /&gt;回到正题，在tor.eff.org你可以下载到这个软件，感谢热心人，这个站点已经了有中文页面http://tor.eff.org/index.html.zh-cn，唔，你需要下载的实际上是三个软件，一个tor，一个vidalia，还有一个privoxy，它们分别是我们的核心工具tor，tor的图形界面配置工具，和一个独立的网络加密软件，好吧，其实你不用关心这么多，你需要的只是下载一个三合一的软件包然后按照提示安装。对了，提醒一下，由于众所周知的原因，及时跟进新版本升级是非常必要的。&lt;br /&gt;&lt;br /&gt;下载，安装，启动，如果一切正常，在托盘区你会看到两个图标，一个蓝色的P，这是provoxy，一个绿色的洋葱头图标，唔，如果它是绿色的，那表明一切ok。对于IE用户，接下来你只需要配置代理服务器并在合适的时候启用就可以了，对于firefox，感谢自由软件事业，我们有一个插件来干这些事。对于Mathon之类的IE增强型浏览器，请查阅相关文档。&lt;br /&gt;&lt;br /&gt;ok，如果一切正常，我们现在已经可以在需要的时候通过一个匿名的，加密的，通过若干台友好的机器中转的路径来访问网络了。如果你想做的更多，那么你可以让你的机器成为所有这些友好的，充当中转大任的机器的一员：成为一台服务器。&lt;br /&gt;&lt;br /&gt;让自己的机器成为服务器很简单，只需要按照文档选中寥寥几个选项就可以了，但是，如果你的电脑像我一样位于一个家庭路由器的后面，也许你需要做更多的事情。&lt;br /&gt;&lt;br /&gt;（以下内容可能仅适用于T-link小型路由器）&lt;br /&gt;&lt;br /&gt;路由器，对于个人用户来说是一台4口或者8口，有线，更多时候还附带无线的路由器。是个烦人的东西，它让外部不是那么容易的访问到你的电脑，特别是某些p2p的服务，比如BT下载，比如电驴eMule，比如Tor，后果就是我们需要做相应的配置让路由器知道该把哪些端口发来的东西转送给我们的机器，唔，我还没有找到能让两台电脑各自接收转发的方式，如果有人知道烦请告知。&lt;br /&gt;&lt;br /&gt;ok，这是我那台破烂tp-link&lt;br /&gt;转发规则-虚拟服务器&lt;br /&gt;ID     服务端口     IP地址     协议     状态     配置&lt;br /&gt;1    9030    192.168.1.2    ALL    生效    编辑 删除  //这是tor的目录服务端口，默认是9030&lt;br /&gt;2    9001    192.168.1.2    ALL    生效    编辑 删除 //这是tor的网络服务的端口，9001也是默认的&lt;br /&gt;&lt;br /&gt;3    11927    192.168.1.2    TCP    生效    编辑 删除  //这个是为eMule准备的&lt;br /&gt;4    59313    192.168.1.2    UDP    生效    编辑 删除  //这个也是为eMule准备的&lt;br /&gt;&lt;br /&gt;ok，现在你的电驴（如果有的话）应该可以正常工作了，但是，很不幸，对于tor，还需要一个设置&lt;br /&gt;&lt;br /&gt;特殊应用程序&lt;br /&gt;ID     触发端口     触发协议     开放端口     开放协议     状态     配置&lt;br /&gt;1    9001    ALL    9001    ALL    生效    编辑 删除&lt;br /&gt;2    9030    ALL    9030    ALL    生效    编辑 删除&lt;br /&gt;&lt;br /&gt;唔，如果顺利的话，你可以在右下角的洋葱头中调出消息日志的窗口去查看有没有一句“Self-testing indicates your ORPort is reachable from the outside. Excellent.”&lt;br /&gt;&lt;br /&gt;当然，tor service会占用一定的带宽，所以如果你是按流量上网，可能需要额外付钱。当然，它也会拖累你的WOW游戏（虽然可能很小），所以，在为互联网事业做出贡献之前，最好先仔细想好。&lt;br /&gt;&lt;br /&gt;（庆祝blogspot在阔别无数天之后重新回到中国网民的怀抱，特写此文，聊表庆贺）&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-5707608924278015397?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/5707608924278015397/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=5707608924278015397' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/5707608924278015397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/5707608924278015397'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/10/blog-post.html' title='洋葱头的拯救'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-2429245362818147754</id><published>2007-08-20T17:34:00.000+08:00</published><updated>2007-09-03T18:08:23.570+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='评论'/><category scheme='http://www.blogger.com/atom/ns#' term='电影'/><title type='text'>凤凰的排场</title><content type='html'>唔，哈利.波特系列的图书终于在这个夏天统统出完了，该赢的人赢了，该做好人的果然做了好人，坏蛋终究统统玩蛋了。&lt;br /&gt;&lt;br /&gt;相较小说，我更关心的是同名电影系列。对于我而言，看场情节精练，场面宏大的电影，比起翻看情节松散，人物无神的小说原著来，还是省时省事多了。&lt;br /&gt;&lt;br /&gt;和之前若干部H.P电影一样，这部电影照样在某个英国城市开始，而在某学院学生放假离校的人群中结束。和上一部电影一样，导演用一个短暂的过门引出黑色怪物之后迅速的把麻瓜赶离屏幕并切入大家喜闻乐见的魔法世界。话说这段气氛渲染的确实不错，黑云压城的架势相当的足。&lt;br /&gt;&lt;br /&gt;听证会的段落平平，某种意义上这是段典型法庭戏，不过没有拍出足够的张力来，缺乏紧逼感。唔，还好，我们后面还有机会看到政治戏码。&lt;br /&gt;&lt;br /&gt;卢娜的出场宛如精灵（唔，是属于魔戒，龙枪的elf，不是H.P中的类地精生物），终于能看到哈利同学擦出一点像样的感情火花了，相比起来秋张那个万众期待的kiss更像是结束的开始，标志着哈利同学混沌不明的初恋终于对观众有了一个交代。&lt;br /&gt;&lt;br /&gt;铁三角依然是铁三角，赫敏越来越酷，罗恩成长了，青春的光芒在闪耀。不过，人物戏份还是太少太少，角色没有成长，没有变化，前两集中看到的青春躁动没有重现，大家好像都各安其位，念诵着预设的台词。呃，导演大人，别忘了这是一部青春片&lt;br /&gt;&lt;br /&gt;幸好，大部分的故事发生在校园，我们有幸看到了一位“史上最招人恨大妈”的出场。唔，不得不说，这位永远笑嘻嘻的反派招人痛恨的地步甚至超过了那位缺鼻子先生，也让我们在影片后半部分，看到双胞胎终于能飞出那扇大门，把那万万千的校训砸的粉碎时，当我们看到大妈被巨人揉捏于股掌时，感到由衷的快乐。唔，这才是叛逆的青春，这才是火热的青春，H.P系列很意外的回归了它的初始状态：魔幻色彩的校园电影。&lt;br /&gt;&lt;br /&gt;唔，虽然删减了很多心理戏份，甚至是H.P大主角的心理戏份，不过电影还是尽可能的发挥了它在感官表现上的优势：宏大的魔法对决场面。不同于书中诸如魔棒互指，魔咒打在墙上嗤嗤做响之类苍白的描写。电影展现了华丽无比的魔法对K，法师们化身旋风在场中追逐，五彩的魔咒宛如闪电曲折闪耀，漫天光华四溅，这才是魔法，唔欧，电影总算是为这群高级法师们提供了一个显示实力的舞台，在书中他们都快和几个小屁孩没啥区别了。&lt;br /&gt;&lt;br /&gt;如大家所期望的，主角获得了最后的胜利，一切恢复了正常。现在，让我们开始期待下一部电影吧&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-2429245362818147754?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/2429245362818147754/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=2429245362818147754' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/2429245362818147754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/2429245362818147754'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/08/blog-post_20.html' title='凤凰的排场'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-4513589605811747806</id><published>2007-08-16T17:24:00.000+08:00</published><updated>2007-08-16T18:15:10.858+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='国学'/><category scheme='http://www.blogger.com/atom/ns#' term='随想'/><title type='text'>读史知古</title><content type='html'>唔，真是相见恨晚&lt;br /&gt;&lt;br /&gt;一直在找一本足够精要，篇幅适中的中国通史，因为突然发现书架上的欧洲史书籍已经比中国史多了。为此寻觅良久不得，直接看古史规模太大，读毕《春秋》已经是气喘吁吁，回头再看成排史书只觉头昏眼花。正规教科书阶级斗争太多，柏杨的《中国人史纲》又走到了另一个极端，某白的通史浩浩荡荡十数本摆在书店中看着头皮发麻，剑桥中国史只有电子版，真是踏破铁鞋无觅处。前几日为了凑够货品码洋在卓越买了一本钱穆的《国史大纲》，到手后才发现是得来全部费功夫&lt;br /&gt;&lt;br /&gt;书一到手，繁体竖排就让人感觉不凡，拜之前看红楼标点版所赐，对竖排本已能适应。前言少许长了一点，正文一页页翻将过来，篇幅虽短然则滴水不漏，字里行间旁征博引，屡屡引逗读者去自行探索原作。做为床头书维持每日一章的进度，虽然迄今书页只翻过两成，已然受益匪浅。唔，总算可以为过往读过的各色古籍理出点头绪了。唔，回头看来可以把四书重新读一遍了。&lt;br /&gt;&lt;br /&gt;中华文化确实博大，国学委实是每个中国人必读之科，如若有可能，真是应该把诸般古籍顺次研读过来，唔呃。当然，所谓儒学复兴，读经读孔，这又是另一回事了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-4513589605811747806?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/4513589605811747806/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=4513589605811747806' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/4513589605811747806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/4513589605811747806'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/08/blog-post.html' title='读史知古'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-4610081693668541331</id><published>2007-07-18T11:21:00.000+08:00</published><updated>2007-07-18T13:55:48.444+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><category scheme='http://www.blogger.com/atom/ns#' term='随想'/><category scheme='http://www.blogger.com/atom/ns#' term='IT'/><title type='text'>抽象的web，抽象的UI</title><content type='html'>闲来无事，陆续啃了几本CSS的图书，总算是补上了WebUI的大课，靠着那本在今天内容稍有过时且被国内无能译者翻译得天昏地暗的 《Designing with  Web Standards》，观摩了过往10年间隐藏在HTML标签后面的种种斗争，妥协，勾心斗角，互相拆台。感谢W3C的不懈努力，我们总算可以看到一个合格的页面在所有主流浏览器上的大致正确的显示。&lt;br /&gt;&lt;br /&gt;唔，离题了，其实我想说的是，CSS 真是一个漂亮的发明，实现了程序员梦寐以求的事情：内容与表现的完美分离。html 标签由此可以彻底的从格式控制中解放出来，承担起本该承担的结构化页面数据的重任。而所有页面所有的控件的显示方式，也可以由寥寥几个css文件全盘控制。&lt;br /&gt;&lt;br /&gt;让美工的归美工，让程序员的归程序员。程序员终于可以不用去担心按钮是否对的够齐，也不用在美工和客户之间穿行，而美工也可以用自己最熟悉的工具收拾页面而不用操心某些稀奇的符号。在桌面程序员苦苦企盼的境界终于在web上实现了。&lt;br /&gt;&lt;br /&gt;唔，之前提过，界面开发，一直就是一个相当繁琐的问题，web的兴盛为这个难题给出了一个漂亮的答案，当然，这其中的代价，就是需要一个浏览器作为中介的解析器，在电脑速度日益提高的今天，性能，已经不再是应用的瓶颈，于是我们看到了web上表现和数据的完全分离。而界面描述兼具文本和结构化两大特质，也使得各式各样的动态网页技术能争奇斗艳。以至于现在隐隐然有替代winFrame的架势&lt;br /&gt;&lt;br /&gt;java通过一个jvm，实现了java的跨平台和诸多优秀特质，web通过一个浏览器，实现了应用的跨平台和界面描述的文本化。也许下一个就该轮到windows了，传说中的xaml或者wpf已经出现在了地平线上，虽然，现在web应用的光芒已经迷住了所有人的眼睛，不过，在desktop上，迟早需要有一个跨平台的解决方案的，不过，这必然牵涉到更多的公司政治，更多的勾心斗角，讨价还价，不知道要到什么时候，我们才可能在桌面上看到诸如浏览器一般的桌面管理器，来执行天下大同的程序应用。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-4610081693668541331?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/4610081693668541331/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=4610081693668541331' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/4610081693668541331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/4610081693668541331'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/07/webui.html' title='抽象的web，抽象的UI'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-8126090976922051100</id><published>2007-07-17T21:54:00.000+08:00</published><updated>2007-07-17T23:09:05.002+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随想'/><category scheme='http://www.blogger.com/atom/ns#' term='摄影'/><title type='text'>数码的感觉</title><content type='html'>唔，终于算是进入数码时代了，虽然不是终日惦记着的大家伙，好歹也算是dc了。不过，不知道是机器的问题呢还是我的要求太高，反正拍照的感觉荡然无存，倒是多了几分随手留影的自在&lt;br /&gt;&lt;br /&gt;数码成本果然低，信步走来信手拍，不过很快就发现，能拍的东西，并不会因为你从胶片换成了数码而增加，画面平淡的依然平淡，构图难看的一样难看，光线郁闷的一样郁闷，唯一的好处是：你可以用dc来”拍照“，拍下诸如广告牌电话号码之类的东西留做它用，至于创作，还是只能一半看天，一半看人，器材，永远只是工具。&lt;br /&gt;&lt;br /&gt;毕竟是小数码，再加上一个16.7w色的LCD屏幕，较之久经考验的反转片，拍出来的数码片片的可看性实在不是那么的高，遇到正儿八经的场子，还是得把F80抗出去才放心，那小DC那委实是有点不堪大用啊。不过，用来留个影，还是挺方便的。总不能用反转给人拍合影吧……&lt;br /&gt;&lt;br /&gt;唔，安心拍着吧，拍什么比用什么拍重要的多，既然冰箱中还有那么一大包EB3，既然邹同学的冲印店还没有关门，那么还是多想想把片子怎么拍好吧。&lt;br /&gt;数码？目前就这么回事了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-8126090976922051100?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/8126090976922051100/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=8126090976922051100' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/8126090976922051100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/8126090976922051100'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/07/blog-post.html' title='数码的感觉'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-4094733038410802504</id><published>2007-06-18T11:03:00.000+08:00</published><updated>2007-06-18T12:07:11.363+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>让java与OpenOffice调情-结晶</title><content type='html'>ok，你现在应该已经知道如何利用openoffice打开文档，应该也知道了如何编辑文档，现在我们需要一个最后但并非最不实用的功能，导出文档。&lt;br /&gt;&lt;br /&gt;拜OpenOffice所赐，我们拥有完备的文档转换功能，可以自由的把文档导出成你期望的任何格式，这其中就包括我们相当期待的PDF格式&lt;br /&gt;&lt;br /&gt;唔，let's go&lt;br /&gt;&lt;br /&gt;首先自然是老规矩：获取操作接口&lt;br /&gt;             XStorable xstorable =   ( XStorable ) UnoRuntime.queryInterface( XStorable.class,&lt;br /&gt;                     xComp );&lt;br /&gt;这儿必须注意一点，传入的对象实例是从xCompLoader.loadComponentFromURL获取的XComponent，网络流传的颇多文档在此误为xDocument，不知是OpenOffice版本沿革还是笔误所为。&lt;br /&gt;&lt;br /&gt;接下来也是老规矩：为Props对象赋值&lt;br /&gt;name=&gt;FilterName&lt;br /&gt;value=&gt;writer_pdf_Export&lt;br /&gt;&lt;br /&gt;说明我们导出的格式为PDF，其他pdf相关参数可以自行查询&lt;br /&gt;&lt;br /&gt;然后最关键的一步：导出，这儿和OpenOffice其他地方一样，传递的也是一个Url而不是我们熟悉的File对象。&lt;br /&gt;xstorable.storeToURL( stringUrl, propertyvalue );&lt;br /&gt;          &lt;br /&gt;如果你需要的话，释放文档对象&lt;br /&gt;xComp.dispose();&lt;br /&gt;&lt;br /&gt;ok，你应该可以得到一个PDF文档了，可以猜测到的，如果你把FilterName中的文字改为别的内容，你可以得到不同格式的文档。唔，美丽的世界&lt;br /&gt;&lt;br /&gt;更多操作及功能选项请以OpenOffice SDK文档为准&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-4094733038410802504?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/4094733038410802504/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=4094733038410802504' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/4094733038410802504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/4094733038410802504'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/06/javaopenoffice_18.html' title='让java与OpenOffice调情-结晶'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-7342920378423485038</id><published>2007-06-14T17:15:00.000+08:00</published><updated>2007-06-16T05:52:34.288+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='新闻'/><category scheme='http://www.blogger.com/atom/ns#' term='小结'/><category scheme='http://www.blogger.com/atom/ns#' term='评论'/><title type='text'>动荡的六月</title><content type='html'>唔，过去的日子发生了太多太多的事情&lt;br /&gt;&lt;br /&gt;一场股市风暴在意料之内刮到，宣告了07年度股市风险培训班的开业，虽然课程只持续了短短几天，但是上千点的震荡已经足够让大多数股民顺利毕业，从此远离股海的惊涛骇浪，安于待在基金的避风港湾内小富即安&lt;br /&gt;&lt;br /&gt;Norton意外的摆了一个相当大的乌龙，让无数太相信杀毒软件的用户遭遇蓝屏，这件事情本身已十分糟糕，而其后国内某同行借势大发枪稿，和KAV大打嘴仗则更为滑稽，而之后的索赔官司倒是可以做为一个不错的案例，不过，最最有看头的，还是前几日，某”著名IT评论人”跳将出来指Norton无罪，MS有鬼，戏演至此，下面会如何发展，已经无人知晓。只能安心看戏了。&lt;br /&gt;&lt;br /&gt;杀毒软件的国产进口之争，结果还是比较明显的，有些东西就不那么明显了，比如Google vs Baidu，在Google接连拿下和Sina的合作以及开通免费短信服务之后，竞争的格局开始布满迷雾，同样看不透的是joyo和dangdang的大战。joyo在亚马逊老总访华前后大撒优惠券，而当当则报以一片片的公关软文。卓越面临的挑战到底有多大？中国C2B头把交椅是否真的已经易主，亚马逊会成为在中国倒下的下一个外资巨头么？&lt;br /&gt;&lt;br /&gt;在另一个赛场上，国军已经毫无争议的输掉了竞赛，一个普通而又不普通的周末，上海体育台转播了远在万里之外的F1而舍弃了上海子弟军的中超足球大战，从国内开始全程直播F1的几年间，F1已经从典型的小众运动跃升到了和国内顶级足球联赛争夺观众的地位。不知道这算是F1在中国的成功，还是中国足球职业化改革的完败。&lt;br /&gt;&lt;br /&gt;躁动的六月，上海迎来了电影节，而海盗，绿怪，金刚也将接连抵岸，炎炎夏日注定是属于好莱坞的，今年国产电影依然没有和好莱坞正面交锋的勇气，我们只好等待9月，去年好歹有三峡好人，有夜宴，今年不知道我们能不能看到王小帅，顾长卫交出答卷。&lt;br /&gt;&lt;br /&gt;红楼演员的意外早逝，和轰轰烈烈的红楼选秀，重新激发了娱记们挖掘红楼8g的动力，在这个娱乐至死的年代，一切都会成为娱乐，即使是生老病死。只是可惜了红楼。&lt;br /&gt;&lt;br /&gt;六月我们迎来了香港回归10年的纪念，弹指一挥间，香港已经回归10年，不知道，10年后的中国又会是怎样的容貌。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-7342920378423485038?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/7342920378423485038/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=7342920378423485038' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/7342920378423485038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/7342920378423485038'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/06/blog-post_14.html' title='动荡的六月'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-6491420206096569886</id><published>2007-06-14T16:46:00.000+08:00</published><updated>2007-06-14T17:14:18.751+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>让java与OpenOffice调情-缠绵</title><content type='html'>OK，我们已经成功的把OpenOffice娶进了java的家门，下面，我们就可以自由的调动各种方法来处理我们的文档，从最简单的增加内容到很实用的查找替换。一切的一切，只要你可以在openoffic开发文档中找到，都可以方便的施予其身。&lt;br /&gt;&lt;br /&gt;如果我们要添加一段文字，我们只需要简单的从Document获取Text对象&lt;br /&gt;&lt;br /&gt;XText xText = document.getText();&lt;br /&gt;&lt;br /&gt;然后获取一个文档指针控制文字的插入位置&lt;br /&gt;XTextCursor xTCursor = xText.createTextCursor();&lt;br /&gt;&lt;br /&gt;接下来就是常规工作了。唔，易如反掌&lt;br /&gt; xText.insertString( xTCursor, "The first line in the newly created text document.\n", false );&lt;br /&gt;&lt;br /&gt;如果我们需要使用查找替换的话，我们必须先获取一个替换操作类&lt;br /&gt;XReplaceable xReplaceable = (XReplaceable) UnoRuntime.queryInterface(XReplaceable.class, document);&lt;br /&gt;&lt;br /&gt;然后，告诉OpenOffice需要的关键参数，唔，也许你会发现这几乎是和软件的功能对话框中的选项一摸一样：&lt;br /&gt;        XReplaceDescriptor xRepDesc = xReplaceable.createReplaceDescriptor();&lt;br /&gt;        xRepDesc.setSearchString(searchContext);&lt;br /&gt;        xRepDesc.setReplaceString(replaceContext);&lt;br /&gt;&lt;br /&gt;然后，用已经熟悉的方式，设置一些其他的参数，你应该可以在对应对话框中找到这些选项条目&lt;br /&gt;        XPropertyReplace xPropRepl = (XPropertyReplace) &lt;br /&gt; UnoRuntime.queryInterface(XPropertyReplace.class, xRepDesc);&lt;br /&gt;       xPropRepl.setReplaceAttributes(new PropertyValue[0]);&lt;br /&gt;&lt;br /&gt;OK&lt;br /&gt;&lt;br /&gt;现在你需要的就是一步调用：&lt;br /&gt;&lt;br /&gt;xReplaceable.replaceAll(xRepDesc);&lt;br /&gt;&lt;br /&gt;大功告成&lt;br /&gt;&lt;br /&gt;更多的操作，更多更多的操作，尽在OpenOfficeSDK文档&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-6491420206096569886?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/6491420206096569886/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=6491420206096569886' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/6491420206096569886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/6491420206096569886'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/06/javaopenoffice.html' title='让java与OpenOffice调情-缠绵'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-8069874587492157536</id><published>2007-06-07T14:06:00.000+08:00</published><updated>2007-06-08T11:16:16.425+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='新闻'/><category scheme='http://www.blogger.com/atom/ns#' term='随想'/><title type='text'>第六十三加一条军规</title><content type='html'>根据一个完全不真实的新闻来源，一家不允许被提到的城市日报，因为一位员工不存在的疏忽，刊登了一条触犯了不存在的禁令的广告，然后完全没有被严加整顿。&lt;br /&gt;&lt;br /&gt;唔，22条军规现实版&lt;br /&gt;&lt;br /&gt;一个合格的公民，是不应该知道2的某次幂在神州大地的特殊含义的。但是，如果因为你不知道这个特殊的含义而太过自由的使用了它，那么你将因为无知而受到惩罚。也就是说，你会因为不知道一个不应知道的东西而违反军规&lt;br /&gt;&lt;br /&gt;这是一片多么神奇的土地啊&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-8069874587492157536?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/8069874587492157536/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=8069874587492157536' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/8069874587492157536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/8069874587492157536'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/06/blog-post_07.html' title='第六十三加一条军规'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-9205610175040692583</id><published>2007-06-04T22:47:00.000+08:00</published><updated>2007-06-04T22:49:29.441+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='新闻'/><category scheme='http://www.blogger.com/atom/ns#' term='体育'/><category scheme='http://www.blogger.com/atom/ns#' term='评论'/><title type='text'>终于有垫背了</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photocdn.sohu.com/20070604/Img250390827.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px;" src="http://photocdn.sohu.com/20070604/Img250390827.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://main.london2012.com/en/news/archive/2007/June/2007-06-04-12-06.htm"&gt;London 2012 - New brand launches&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;呃，对于2008奥运会的信心大大提升了，因为今天看到了约翰牛公布的2012奥运会会标。&lt;br /&gt;&lt;br /&gt;唔，难以想象，这么一个现代派的几何拼贴造型就算是把奥运会代表了？估计这是有史以来最缺乏美感的标记，原本以为这是代表五大州，后来发现文案中好像丝毫未提，看来反而是我自作多情。好像这几个方块没有任何的抽象含义，就是这么几个方块，代表的是全民参与的精神，热忱，三个代表（咳）……&lt;br /&gt;&lt;br /&gt;原本对2008北京奥运的印章人一直颇有腹绯，嫌其太过四平八稳，更适合做故宫文物展的标记而非运动会的标记，现在看到伦敦的会徽，我才发现那个印章人是多么的富有创意&lt;br /&gt;&lt;br /&gt;不管2008北京奥运最后能否成功，有一点是肯定的，至少，我们的会徽比伦敦漂亮……&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-9205610175040692583?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/9205610175040692583/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=9205610175040692583' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/9205610175040692583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/9205610175040692583'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/06/blog-post.html' title='终于有垫背了'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-1788611282901276360</id><published>2007-06-01T09:58:00.000+08:00</published><updated>2007-06-01T11:57:31.807+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>让Java与OpenOffice调情-缘起</title><content type='html'>你在困扰于word文档，Excel文档，各种各样的Office文档处理么？&lt;br /&gt;你在羡慕DotNet程序员可以自如操作MS Office底层接口么？&lt;br /&gt;你在四处翻腾纯java的PDF文件转换方案么？&lt;br /&gt;&lt;br /&gt;欢迎来到OpenOffice.Org的世界，在这儿，你能享受到VIP的待遇，通过标准的Java接口，你可以尽情享受OpenOffice的强大功能，而且，这一切，都是Free的！为自由软件运动欢呼吧。让上千元一套的MS Office见鬼去吧。Java世界也能拥有完备的，自由的Office解决方案。&lt;br /&gt;&lt;br /&gt;来，让我们开启通向自由花园的大门。&lt;br /&gt;&lt;br /&gt;首先，确保你的电脑中安装了openoffice，唔，放心，没有序列号，没有copyright，这是一个free software，接下来，推荐，但不是必须的，你可以安装一套OpenOffice的SDK，运行程序并不需要SDK，但是在SDK中你能找到大量的文档和示例，以及大量深层开发必须的东西。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;你有两种调用OpenOffice的选择：&lt;br /&gt;&lt;br /&gt;1.你可以在代码中直接启动OpenOffice，前提是你必须×直接×引用OpenOffice目录中的jar包（别试图直接copy它们到某个lib目录，你只会在个程序中收获一个错误信息)，他们的位置是“安装目录”\program\classes\，你至少需要引用juh.jar，jurt.jar，ridl.jar，unoil.jar这四个jar。&lt;br /&gt;&lt;br /&gt;然后写下如下的代码：&lt;br /&gt;//============================&lt;br /&gt;com.sun.star.uno.XComponentContext xContext  =      com.sun.star.comp.helper.Bootstrap.bootstrap();&lt;br /&gt; log.info("Connected to a running office ...");&lt;br /&gt;           &lt;br /&gt; com.sun.star.lang.XMultiComponentFactory xMCF = xContext.getServiceManager();&lt;br /&gt;           &lt;br /&gt; Object oDesktop = xMCF.createInstanceWithContext("com.sun.star.frame.Desktop", Context);&lt;br /&gt;       &lt;br /&gt; com.sun.star.frame.XComponentLoader  xCompLoader  = (com.sun.star.frame.XComponentLoader)&lt;br /&gt;UnoRuntime.queryInterface( com.sun.star.frame.XComponentLoader.class, oDesktop);&lt;br /&gt;             &lt;br /&gt; com.sun.star.lang.XComponent xComp = xCompLoader.loadComponentFromURL(&lt;br /&gt;                fileUrlPath, "_blank", 0, new com.sun.star.beans.PropertyValue[0]);&lt;br /&gt;//=======================================&lt;br /&gt;&lt;br /&gt;你也可以在SDK目录的examples\java\DocumentHandling\DocumentLoader.java中找到这段代码，唔，如果看不明白不用担心，你需要知道的就是一个对象创建了又一个对象直到你获得了一个xComponent对象为止。&lt;br /&gt;&lt;br /&gt;提示1：这儿的fileUrlPath是一个指向需要操作的文件的url路径，也就是类似于File:///C:/document/mydoc.rtf，Http://192.168.5.3/files/abc.html之类的路径，在OpenOffice的API中，绝大多数路径都必须用这种方式来指定。&lt;br /&gt;&lt;br /&gt;提示2：xComp会是我们实际工作的起点，后面很多很多操作都会基于它而工作。&lt;br /&gt;&lt;br /&gt;如果这段代码执行正常，你会发现屏幕上弹出一个openoffice的启动窗口并且直接打开一个指定的文档。有些情况下，这是一个贴心的设计，但更多情况下，这是不太能忍受的，如果我们希望openoffice静默运行，我们必须给loadComponentFromURL()调用加上一个参数：hidden=true&lt;br /&gt;&lt;br /&gt;需要指定参数，我们需要构建一个PropertyValue数组，包含一个PropertyValue对象，Name="Hidden",value=Boolean.True（注意，这儿必须传递一个Object），把它传递给loadCompeonentFromURL，你就不会看到OpenOffice的启动窗口了&lt;br /&gt;&lt;br /&gt;提示3：openoffice的大多数API指定工作参数的方式只有一种，传递一个PropertyValue数组，每一个PropertyValue就是一个Name/Value对，所以，封装一个工具类处理它是一个好主意。而且，name只是一个简单的字符串，所以校对拼写是必须做的。而value只接受Object，所以你必须做很多原始类型的封装&lt;br /&gt;&lt;br /&gt;这种调用模式是最基本的方式，不过隐藏有很多问题：&lt;br /&gt;1。种种原因，在web容器内这种直接打开程序的方式无法使用。&lt;br /&gt;2。它要求在本机必须安装openoffice程序，对于C/S模式这并不是一个很好的选择&lt;br /&gt;&lt;br /&gt;于是，我们有了第二种模式：服务模式&lt;br /&gt;用过JDBC的肯定对服务模式有所认识，一个地址，一个监听，一个端口，然后所有的一切都可以通过其进行。OpenOffice提供了类似的功能&lt;br /&gt;&lt;br /&gt;首先，我们必须把OpenOffice以后台服务方式启动，这需要这么一串参数：&lt;br /&gt;-invisible -accept=socket,host=0,port=2002;urp;&lt;br /&gt;invisible表示静默方式运行，&lt;br /&gt;后面一串东西基本的意思就是：openoffice会在你指定的端口（这儿用的是2002）&lt;br /&gt;监听用户的请求。（该字符串更具体的含义和对应功能，自行查询开发文档相关章节）&lt;br /&gt;&lt;br /&gt;然后，我们必须更动之前获取XComp对象的代码，精确的说，我们必须更动获取XComponentContext 对象的代码。不再有BoolStap，而代之以一串更长的东西，这段东西非常的长，幸好，你只要直接copy过来就好，你可以在SDK的examples\java\ConverterServlet.java中找到这串东西，（注意，原始示例中使用的端口号不是之前我们指定的2002）&lt;br /&gt;&lt;br /&gt;获取到Context之后，我们的代码没有变化，其他的流程一切照旧，所有的参数也一模一样。&lt;br /&gt;&lt;br /&gt;监听模式下，还有一个附带的好处：你可以放心的把那几个jar拷贝到你需要的任何地方，而用不着非要指向OpenOffice的原始安装目录了。&lt;br /&gt;&lt;br /&gt;欧，现在我们已经成功的让java唤醒了OpenOffice，接下来，就可以让它和java眉来眼去了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-1788611282901276360?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/1788611282901276360/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=1788611282901276360' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/1788611282901276360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/1788611282901276360'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/06/javaopenoffice-api.html' title='让Java与OpenOffice调情-缘起'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-8125500920354937887</id><published>2007-05-30T21:15:00.000+08:00</published><updated>2007-05-30T22:49:37.649+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='新闻'/><category scheme='http://www.blogger.com/atom/ns#' term='IT'/><category scheme='http://www.blogger.com/atom/ns#' term='评论'/><title type='text'>以毒攻毒</title><content type='html'>一个平常的病毒库更新，带来的是一场风暴，一贯稳健的Norton不知何故，在一个病毒库更新中把winxp系统的一个关键dll当作了病毒。唔，直接后果就是当机器重起后，Norton就干净利罗的，自作聪明的，隔离了这个关键Dll，从而把winxp系统直接送入了要命的蓝屏错。&lt;br /&gt;&lt;br /&gt;好消息是：这个错误并不会出现在所有的winxp系统中，坏消息是：这个问题主要针对中文winxp系统。后果就是中文电脑社区乱成了一锅粥。一个正常的病毒库更新后，重启动就直接带来了可怕的蓝屏错。几小时内，norton撤下了惹祸的病毒库更新，下午3点，norton终于给出了安全无错的病毒库更新。&lt;br /&gt;&lt;br /&gt;当然，故事没有结束。由于影响太大，很自然的，大家讨论起了索赔的问题。当然，每一个软件都有损失免责条款，Norton自然也不例外。而且软件产品bug索赔这扇大门一旦打开，后果无法预料，特别是对于赛门铁克这种本来就在刀尖上行走的安全软件来说。唔，所以，可以想见的是，赛门铁克当然的，毫无余地的，拒绝了赔偿的要求，然后也有受害者当然的，毫不客气的开始了法律程序。&lt;br /&gt;&lt;br /&gt;另一条战线上，一个老熟人跳了出来，就是国货精品：瑞星。显然，这是一个千载难逢的机会，对于在专业人士中口碑一直不佳的瑞星来说，于是，非但犯了错气短的老诺顿被牢牢咬住，近来风头无两的卡巴也被盯上，一片片通稿发往各大门户，大有红旗摇动日月变色的气势。&lt;br /&gt;&lt;br /&gt;不知道这种出位表演的结果如何，反正，在亲眼目睹瑞星软件在病毒丛生的电脑中怡然运转，全不管外面风浪滔天之后，已经再一次坚定了我对于国产杀毒软件的绝对的不信任。&lt;br /&gt;&lt;br /&gt;不过，这场大戏最后能演出一个怎样的结果，倒是颇为值得一看&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-8125500920354937887?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/8125500920354937887/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=8125500920354937887' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/8125500920354937887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/8125500920354937887'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/05/blog-post_30.html' title='以毒攻毒'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-227837912315381782</id><published>2007-05-19T21:36:00.000+08:00</published><updated>2007-05-26T11:52:03.029+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><category scheme='http://www.blogger.com/atom/ns#' term='随想'/><title type='text'>从孤胆英雄到大师</title><content type='html'>”30岁后还能做编程么？“，曾几何时，这已经成为一个不言之中的惯例：程序员是一碗年轻饭。原因呢？无非是知识更新太快，工作压力太大云云。&lt;br /&gt;&lt;br /&gt;不知不觉，自己也渐渐过了30大限，不过，在代码民工这个行当上，非但没有感到任何的压力，反而发现渐渐做的如鱼得水，要说郁闷，大概更多是郁闷在本该”挑战“我等老朽的新一代不堪大用。&lt;br /&gt;&lt;br /&gt;记得去年有看到报道念念有词：程序员到了40岁怎么办，拍案大笑之余也曾撰博讥刺无知记者，前几日回顾世界IT史，所见一个个名字皆是老当益壮，乃至有人在此行当奋斗终身，一路走来看遍IT风云，依然在硅谷精神抖擞，全然看不出半点“跟不上时代”的痕迹。为啥到了我们这儿就不一样了呢？&lt;br /&gt;&lt;br /&gt;积累，归根结底还是积累，因为我们没有积累，所以我们只能处在整个软件产业链的末端，所以大多数工作都停留在简单劳作的状态，所以我们的程序员更多的就是简单劳动而无法升华自己的知识积累，因为没有知识积累，所以只能在开发中拼体力，最后的结局就是：老来转型。&lt;br /&gt;&lt;br /&gt;幸好，并不是所有人都安于拧螺丝钉，若干年下来，我们在一线已经有了一批功力深厚的程序员，拜开源软件/自由软件的大潮，也有一批程序员渐渐的和国际同行接轨。他们对开发思潮的跟踪也渐渐同步，虽然现在还做不到影响大势走向，不过，至少已经可以做到和世界同步了。&lt;br /&gt;&lt;br /&gt;欧，这儿的同步指的不是开发平台的版本号的同步，而是指的核心的开发思想：从弱类型指针手工内存管理到强类型检查和自动gc，OO的兴起和反思，设计模式与重构的风行，AOP的崛起，动态语言的王者归来，沧海桑田的背后，其实都是商业公司和开发社区，各个开发社区之间的高端角力。每一个想法后面可能都是成百上千个项目的经验积累，加上若干宗师级人物的指点江山，这可不是跟着刷版本号能刷出来的。&lt;br /&gt;&lt;br /&gt;幸好，多年的历练，我们也渐渐的赶了上来，可以预见当这批骨干再积累个十年，甚至二十年之后，我们也会有自己的GoF，自己的Rod Johnson，我们也会有机会参与游戏规则的制定，而不是随波逐流，如果，他们能在技术一线做上10年的话……&lt;br /&gt;&lt;br /&gt;孤胆英雄的时代已经过去，我们需要的是大师。多给中国的软件精英一点技术时间吧&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-227837912315381782?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/227837912315381782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/227837912315381782'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/05/blog-post_19.html' title='从孤胆英雄到大师'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-7679242305198603720</id><published>2007-05-15T21:32:00.000+08:00</published><updated>2007-05-15T22:15:35.146+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='新闻'/><category scheme='http://www.blogger.com/atom/ns#' term='小结'/><category scheme='http://www.blogger.com/atom/ns#' term='评论'/><title type='text'>充满变化的五月</title><content type='html'>故事从今天的最新消息开始，美国私人投资公司宣布以74亿美元从奔驰收购克莱斯勒80%股份，宣告了奔驰终于抛掉了这个无比沉重的包袱回归欧洲。再一次证明国际化并购是何等惊险的高台跳跃。从中国的TCL被汤姆逊拖到几乎破产，到联想与IBM甘苦自知的合作，再到明基重归OEM本行。品牌创建固然困难，而收购品牌后的消化又何尝简单，连同属第一集团的奔驰都几乎自身难保，更不用说还在国际竞技场蹒跚学步的国内企业了&lt;br /&gt;&lt;br /&gt;说到国际化，不由的想起4月份的上海车展，荣威和名爵的暗战终归让人感觉有点哭笑不得，几大集团齐齐发力自有品牌，和奇瑞不显山不露水的夺下月度销量冠军摆在一起，有着别样的含义。自主品牌，是回归？还仅仅是形象建设？奇瑞路线和上汽模式，谁是旁门左道？谁是未来之路？也许等到今年底荣威下线，就能见一个分晓。&lt;br /&gt;&lt;br /&gt;品牌创立固然困难，然而品牌维持也同样的困难，互联网三巨头的大战依然激烈，Google的领先优势已经大到不可想像，以至于yahoo和ms传出了合并的谣言。当然这个并购案的规模之大已经到了不可想象的地步，所以普遍猜测合作是更可能发生的事情，另一方面，在成功并购DuClick以及正式杀入办公软件市场之后，google的战略越发清晰——一家控制互联网入口，控制互联网基础，控制互联网一切的，广告公司&lt;br /&gt;&lt;br /&gt;为了让Google不至于太自在，微软选择了投诉Google的并购案违反《反托拉斯法》，很有趣的，微软在欧洲也面临另一个反拖拉斯调查，不同于在美国，欧洲的反托拉斯政策相当严苛而且不知所谓，一如他们奇特的版权法规。&lt;br /&gt;&lt;br /&gt;中国没有《反托拉斯法》，虽然很多人在呼吁着，不过显然，这是高度的一厢情愿，正如最近进行的一个所谓“漫游费期望调查”，很难想像用户对这种问题会有第二种主流答案：便宜，更便宜，最好免费。这种近乎行为艺术的调查，可能只会出现在中国。就像另一个关于宽带费用的调查一样，只能用返祖来形容了。&lt;br /&gt;&lt;br /&gt;返祖是不可能的，市场的大手掌管一切，虽然信产部方针明确，但是依然无法阻挡中移动开始在上海布设号称2.75G的ED-GE网络以满足高端数据通讯的需求。而ED-GE到WCDMA的平滑升级能力，也让这一行动有了别样的含义。TDS-CDMA的命运再一次被提及，之前中兴中标的喜悦瞬间被冲到无影无踪。&lt;br /&gt;&lt;br /&gt;市场，市场，虽然我们声称进入市场经济已经不少年头，但是现实证明我们离市场依旧很远，本月，各家外资银行正式开展人民币业务，而高额的管理费也把之前对外行优质服务的幻想尽数冲走，5W美元的门槛，每月上百元的管理费，较之反对声沸沸扬扬的国内银行小额账户收费，真真切切体现了什么叫做高端服务。近日ATM查询收费被取消，银联完成了一个政策的轮回，只是，市场，依旧离我们很远。&lt;br /&gt;&lt;br /&gt;对了，股市又开始创新高了，人民币也升值了，新一轮博彩游戏开始了，未来，无人能知。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-7679242305198603720?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/7679242305198603720/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=7679242305198603720' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/7679242305198603720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/7679242305198603720'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/05/blog-post_15.html' title='充满变化的五月'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-8047677324130549238</id><published>2007-05-14T22:40:00.000+08:00</published><updated>2007-05-15T17:24:10.464+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='美剧'/><category scheme='http://www.blogger.com/atom/ns#' term='评论'/><title type='text'>美剧渐行渐远时-梦之西翼</title><content type='html'>一个自由派梦想中的团体，一个完美的内阁，一群充满理想，兢兢业业，治理有方，只会出现在电视剧中的政治精英——西翼，West Wing&lt;br /&gt;&lt;br /&gt;这是一个相对稀罕的类型片：政治片，主角们就是在各个办公室穿梭的政客，而这部剧集关注的，就是在这个星球上最强大国家的最高神经中枢（之一）——白宫忙忙碌碌的一群人。很明显，这是一个非常非常有吸引力的切入点。&lt;br /&gt;&lt;br /&gt;借着这个绝好的创意，剧集的前几季导演充分施展了创意，除了可以想象到的白宫花边，政治斗法，神秘的战情室，外带一堆感情花絮之外，导演还借势掺入了大量的自由派政治理念的宣讲。毕竟，这是一个民主党的总统，于是总统总是有机会去解释为何征税，为何增加这个预算，削减那个预算，一大堆平日里出现在国会山政治频道的观念一一出现在剧集中，共和派也许不会太喜欢这个片子。&lt;br /&gt;&lt;br /&gt;在第一季中，导演并没有表现出太多的创意，基本上，比较容易能想到的东西都被想到了，战争，恐怖活动，总统女儿的恋情，而在第二季，导演在用尽了这些噱头之后，开始深入挖掘人物的性格以及深入的矛盾冲突，政党政治与政治理想的冲突，个人价值观和工作职责的冲突，剧情开始变得富有张力，不过副作用就此也开始变得少许有那么一点枯燥，毕竟不是所有人都对这些东西有兴趣的。&lt;br /&gt;&lt;br /&gt;真正的麻烦，还是来自于所有美剧都会遇到的大问题：创意匮乏。第三季后，导演创意日渐匮乏，剧情变得枯燥无味，毕竟，就算是真正的白宫，大多数时间，其实也是在忙碌着各色杂务，而且剧集背景已经决定了，它不可能去正面描写任何大事件，轻易别指望剧中人物能有多少真枪真刀交锋的机会，更多时候，他们只能通过电话，简报，记者招待会种种途径来擦出火花。这也让剧集变得越发缺乏卖点。对于美剧来说，缺乏卖点，通常就意味着死亡。&lt;br /&gt;&lt;br /&gt;于是，我们看到了第7季，里里外外都宣称这是最后一季，正好，我们的总统也到了最后一个任期（两届8年），导演也找到了出彩的设定：大选。由于有了这么一个波澜壮阔的大背景，这一季的水平还是不负众望的，当然，自由派倾向也在这一季中通过候选人辩论等种种手段倾诉的淋漓尽致，最后干脆来了一个民族大团结，党派大团结，把一个也许只可能活在荧屏中的政治家，而不是政客推上了总统的宝座。&lt;br /&gt;&lt;br /&gt;而其核心主角里奥扮演者的意外亡故，更是给这个剧集划上了一个非比寻常的句号。不管是在片中还是片外，斯宾塞的身体都不算好，而他饰演的角色，风头几近压过总统，不管是荧屏外还是荧屏内的悼念，都算得上是极致荣哀。以这么一种方式结束演艺生命，对于一个演员来说，也许是最好的结束了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-8047677324130549238?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/8047677324130549238/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=8047677324130549238' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/8047677324130549238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/8047677324130549238'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/05/blog-post_14.html' title='美剧渐行渐远时-梦之西翼'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-6845772753630427041</id><published>2007-05-09T17:46:00.000+08:00</published><updated>2007-05-12T10:06:58.104+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><category scheme='http://www.blogger.com/atom/ns#' term='随想'/><title type='text'>从中关村到硅谷</title><content type='html'>几十年前，中国，北京，有一个不是村子的村子，它，就是中关村&lt;br /&gt;&lt;br /&gt;一晃已经几十年，当年那些在村中拓荒的第一代程序员乃至第二代程序员，多半已经在头衔上加上了一个"M"甚至是一个“O"，但是，那个中国IT业的蛮荒时代仿佛还在昨天。各地的电脑城中照样堆满了攒机商，写字楼中照样拥塞着敲打键盘的民工，潮起潮落，foxbase变成了oracle，wps变成了office，DOS Int21变成了javaEE，dotnet，不变的是那成群的民工，那在键盘上弹动的十指。&lt;br /&gt;&lt;br /&gt;一度，我们以为我们成功的赶上了IT这列新时代的快车，我们以为我们终于找到了一条和列强在同一起跑线的跑道。然而，若干年过去了，好像什么都没有改变，硅谷依然以自己的步伐引领着全球产业在其指挥棒下起舞，而我们也没能在指挥棒下获得哪怕多一点点的自由意志。不禁让人思索：我们赶上的这条新干线，真的仅仅启程于并不遥远的80年代么？&lt;br /&gt;&lt;br /&gt;看了一下身边的书架：&lt;br /&gt;《人月神话》，成书于1984年，但是书中绝大部分经验，都来自于60年代IBM的OS/360项目。&lt;br /&gt;&lt;br /&gt;《APUE》，UNIX程序员的圣经，1992年成书，但是参考书目涵盖了整个80年代&lt;br /&gt;&lt;br /&gt;《SICP》，初版1984年，参考书目已经覆盖了60年代&lt;br /&gt;&lt;br /&gt;《TCP/IP详解》，欧，又一部圣经，这次是给网管的，也成书于90年代，参考书目也属于80年代&lt;br /&gt;&lt;br /&gt;这几本书都是相关领域的里程碑级作品，可以看到一个明显的倾向，越接近底层基础知识，相关参考书目的历史越悠久，基础如SICP，甚至列出了40年代的某些论文，显然，这些参考书目都是累起这座座高台的基石，才让后人有机会登高望远。&lt;br /&gt;&lt;br /&gt;手头还有一本书，高教出版的图灵奖得主名录，通过这本小册子，我们可以清晰的看到一个完整的IT技术史，从最早的计算机语言，编译器，操作系统，关系数据库，网络协议这些信息化的基础建筑，到子程序，文件系统，并发等等基本的概念，是如何在战后这几十年中，一步一步积累而成的。&lt;br /&gt;&lt;br /&gt;虽然最近这一二十年IT技术一日千里，但是，大部分地基，其实还是在那个计算机的石器时代所打下的。正是这一块块基石，支撑着当今硅谷的奇迹。赶超，同步，不是说我们能和全球同步拿到最新版本程序库就能做到的。没有底层的积累，永远只能做点肤浅的表面文章，永远只能做软件车间。&lt;br /&gt;&lt;br /&gt;过往几年，我们确实也尝试做过一些正儿八经的底层工作，但是，突如其来的，自由软件大潮横扫全球，在“没有版权”（某业内大佬语）的诱惑下，一堆堆利用自由软件或者开源软件改头换面的“自有知识产权“纷纷出笼，却没有看到多少人能利用这个宝贵的机会切切实实的体会一下基础软件开发的方方面面。&lt;br /&gt;&lt;br /&gt;浮躁的中国软件业，还有多少前途？在小隔间中奋斗的程序员们会有一个怎样的未来？中国，能诞生我们的程序大师么？能诞生我们自己的传奇Hacker么？&lt;br /&gt;（待续）&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-6845772753630427041?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/6845772753630427041/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=6845772753630427041' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/6845772753630427041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/6845772753630427041'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/05/blog-post.html' title='从中关村到硅谷'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-6974142790713598808</id><published>2007-05-01T11:22:00.000+08:00</published><updated>2007-05-02T12:32:14.150+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><category scheme='http://www.blogger.com/atom/ns#' term='随想'/><title type='text'>从NIIT到MIT</title><content type='html'>SICP&lt;br /&gt;Structure and Interpretation of Computer Programs&lt;br /&gt;&lt;a href="http://www.china-pub.com/computers/common/info.asp?id=17992"&gt;《计算机程序的构造与解释》&lt;/a&gt;&lt;br /&gt;M.I.T计算机系本科生开篇教材&lt;br /&gt;&lt;br /&gt;这绝对不是一本计算机程序设计的入门教材，如果你对入门的理解是尽可能快的动手写出一个网上宠物店的话。任何希望尽快开始一个项目的人，都应该立刻把它放回书架。这里面没有C++，没有Java，没有面向对象，甚至都没有UI，这是一门叫做函数式编程的课程，用的是一种叫做schema的简陋的无以复加的编程语言。欧，前100页中你甚至连循环语句都别想看到。&lt;br /&gt;&lt;br /&gt;但是，这绝对是每一个不安于做代码民工的程序员必读的书。它诠释了程序开发领域的终极课题：编程的本原，究竟是什么。剥去了眼花缭乱的语法糖衣，和纷繁复杂的使用规约，通过远离商业开发圈子的学术语言，它深刻的阐明了：赋值，循环，分支，子程序调用，乃至面向对象，面向方面，所有这些炫目的东西，熟悉的东西，我们原以为是基本的东西。在本质上，其实都是排列整齐的一串函数调用而已。&lt;br /&gt;&lt;br /&gt;唔，如果单单是一本好书，也许我不会如此惊讶，最大的冲击是：这是一本MIT的入门教材，是的，入门教材。这儿体现的并不是MIT学子的聪明才智，至少我知道现在，国内就有清华和南大也在用这本教材给本科生上课，国外则更多，无计其数的多。要害在于，如果是读着这本书完成编程设计的启蒙，如果你能对这本书烂熟于心。那么，在那之后，无论你再去触碰任何其他的主流商业编程语言，你都会发现，所有一切的变化，已经尽在心中。&lt;br /&gt;&lt;br /&gt;可惜，国内只有寥寥几所大学刚刚开始发现这一点，而更多的大学更多的学子，更多的NIIT更多的培训班，还在一成不变的翻动着c/pascal或者c#/java的教程，写着一个又一个链表，最短路径，也许还有宠物店，进销存。&lt;br /&gt;&lt;br /&gt;这就是NIIT只能是NIIT，而MIT就是MIT的原因，MIT告诉了我们什么才是计算机专业院系的真正方向。不是去和NIIT之流比拼谁教的东西更切合实际，谁的教材更新的更快。那只会把大学拖累成高级培训班，大学真正要做的就是高屋建翎，深入本原。&lt;br /&gt;&lt;br /&gt;一门入门教程，已然领先国内不知几许，随后的四年，如此多的专业课，实在难以想象这差距会拉大到什么地步。IT业，中国要补的课实在太多，这绝不是靠几名天才程序员和几家高科技公司就能弥补的。这后面是整整几十年的差距。基础决定上层建筑，高级培训班注定只能诞生高级技工车间。不要问我们为什么没有MS，没有RedHat，而要问为什么我们没有MIT，没有斯坦福。&lt;br /&gt;&lt;br /&gt;清华到MIT的距离有多远，中关村到硅谷的距离就有多远&lt;br /&gt;（待续）&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-6974142790713598808?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/6974142790713598808/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=6974142790713598808' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/6974142790713598808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/6974142790713598808'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/05/niitmit_01.html' title='从NIIT到MIT'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-2890219530356479246</id><published>2007-05-01T10:01:00.000+08:00</published><updated>2007-05-01T11:59:02.363+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><category scheme='http://www.blogger.com/atom/ns#' term='随想'/><title type='text'>从科班到培训班</title><content type='html'>故事要从若干年前说起&lt;br /&gt;&lt;br /&gt;进入新千年，我们惊讶的发现，印度的IT业居然走到了我们的前面，一时间，人人都在传扬着班加罗尔的神话。而另一方面，大批大批的计算机专业毕业生发现自己面对蓬勃的IT行业一无所长（至少，看上去是的），和鼓捣过几天项目的中专生仿佛就站在一条起跑线上。于是，大量的高校内的软件学院和高校外的培训机构如雨后春笋般的涌现，通过“量身定制，切合市场”的培训流水线，源源不断的把一代代新人打磨之后投入漫山遍野的软件作坊。&lt;br /&gt;&lt;br /&gt;一晃到了2007年，中国软件业除了多了不少日本外包之外，好像什么都没有变化，没有井喷，也没有飞跃，除了某几家大学的计算机专业（注意，不是软件学院，也不是什么信息化专业）的教材开始有所变化，IT民工的平均工资开始回归正常水平，软件学院的培训教材跟随潮流换了版本之外，一切都没有变化，作坊依然是那个作坊，民工依旧是那群民工，项目还是那些项目。绝大多数科班大学生依旧觉不出4年大学和1年培训究竟孰优孰劣，&lt;br /&gt;&lt;br /&gt;身为民工一员，这些路都曾走过，虽然不是IT科班，不过这个圈子大抵有些什么名堂，当年计算机专业都鼓捣过点什么课程也都曾经浏览过，从离散到数据结构，从c语言到数据库基础，犹记当年在图书馆啃汇编啃到天昏地暗，看编译原理犹如看天书的日子。所以，面试新鲜大学生时，我很能理解他们为何在专业课上花了四年功夫之后，还要去读个劳什子的NIIT之流，也很理解为什么会传出计算机专业毕业生不会装windows，不会java，不会php的笑谈。&lt;br /&gt;&lt;br /&gt;但是，问题真的是出在我们的大学教育么？计算机专业，究竟和NIIT之流有什么本质区别呢？如果衡量计算机专业毕业生的标准就是修windows和写jsp，那么，为什么我们还要开设这么一门专业去花费学生的四年时间呢？要知道，这些动手能力，只需要短短一年半载的培训就可以出师了。那么，我们四年课时的计算机专业，究竟应该学点什么呢？&lt;br /&gt;&lt;br /&gt;这个问题一直困扰着我，直到一天，我听说了一本缩写叫SICP的书……&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&amp;tid=3305"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 150px;" src="http://mitpress.mit.edu/images/products/books/0262011530-medium.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;（待续）&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-2890219530356479246?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/2890219530356479246/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=2890219530356479246' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/2890219530356479246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/2890219530356479246'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/05/niitmit.html' title='从科班到培训班'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-5498712808667690902</id><published>2007-04-27T21:32:00.000+08:00</published><updated>2007-04-30T14:22:27.109+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='新闻'/><category scheme='http://www.blogger.com/atom/ns#' term='评论'/><title type='text'>充满文化的四月天</title><content type='html'>四月到了，冬天过去了，春风已经刮遍了每一个角落。许多稀奇古怪的事情也随着07年的新芽长了出来。&lt;br /&gt;&lt;br /&gt;文化部发了一个文，要求所有的歌手，舞者，可能还有演员，一律必需持证上岗，并且顺带颁布了一堆考核要求和发证标准。虽然07年只过去了1/4，年度最佳创意奖的有力竞争者已经浮出了水面。看这个架势，给各部委的官员立一个证书考核上岗，倒是非常必要的。&lt;br /&gt;&lt;br /&gt;在比较成功的鼓捣出印章人，不成功的鼓捣出福娃和成功的鼓捣出金镶玉之后，北京奥组委用一根金箍棒和一支中华烟成功拼装出了一支奥运火炬，唔，也只能这样了。你还能指望什么呢？我们的聪明才智在考虑如何设置更多的许可证的时候已经消耗殆尽了。&lt;br /&gt;&lt;br /&gt;说到奥运，就不能不提老谋子，西湖印象在环保的质疑声中开幕了，商业演出，米有视频，米有音频，米有剧照，只能看宣传照和偷拍的照片，总的来看谋子在鼓捣空对空的大场面上还是很在行的，绝对不会有人去挑剔舞台上的许仙为何倒而不死，也不会有人去计较台词（唔，根本没有台词，除了张靓颖的主题歌）是否太过现代。不管有多少有理或者无理的指责，至少，张艺谋在对场面的把握上，国内暂时无人能及，要期望08年能端出一桌好歹过的去的大餐，国内，你还能指望谁呢？&lt;br /&gt;&lt;br /&gt;不知从哪个角落传出了《加勒比海盗III》被电审砍掉的遥言，而且还给了一个非常有说服力的理由：“其中润发×周的形象辱华”，不得不说，这是一个非常有水准的谣言，为了一个华人反派就指影片反华，好像已经成了一个如此常见的指责，以至于这个谣言迅速的扩展。虽然电审还没有离谱到这个地步，不过这个谣言，确实代表了某些东西。&lt;br /&gt;&lt;br /&gt;香港金像奖在惨淡中开幕，面对星光灿烂的内地明星，只有主持人的一口粤语在维护着昔日的荣光，华语娱乐重心向内地的倾斜已经无可避免，不管是音乐还是电影，内地的锋芒都已压住了偏据一隅的香港，在盗版和好莱坞双重打压下步履维艰的华语电影圈，更是让弹丸之地的香港雪上加霜。至于台词本上一贯而之的繁体和司仪的粤语，只能理解为一种不愿接受现实的傲慢。&lt;br /&gt;&lt;br /&gt;说到繁体，前几日莫名产生的一场关于繁体字和国学的争论，则已与电影与娱乐完全无关。修国文需要读竖排本认繁体字，绝不等于懂繁体字读了竖排本就有了国文功底，完整的国文教育不是靠海峡对岸舶来的几个繁体字就能撑起来的。只要看看于丹这等无厘头戏说的大卖特卖，就知道国文普及之路在当今这个快餐社会还有多长。&lt;br /&gt;&lt;br /&gt;说到出版，好像我在msn space上期盼的春天真的来到了，继美国众神之后，尼尔盖曼又有两部中篇被引进，煌煌巨著《时空之轮》的出版也开始排期，时空裂隙系列也进了出版名单，被提上日程的奇幻相关出版物越来越多。奇幻迷们终于不用和蝌蚪文较太多的劲了。&lt;br /&gt;&lt;br /&gt;今天是四月的最后一天了，五月 ，又会有怎样的风景在等待着我们呢？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-5498712808667690902?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/5498712808667690902/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=5498712808667690902' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/5498712808667690902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/5498712808667690902'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/04/blog-post_27.html' title='充满文化的四月天'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-1650465991791734922</id><published>2007-04-19T20:52:00.000+08:00</published><updated>2007-04-19T20:53:41.253+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='美剧'/><category scheme='http://www.blogger.com/atom/ns#' term='评论'/><title type='text'>美剧渐行渐远时 - 军中侦探</title><content type='html'>CBS永远不缺侦探剧，CSI几乎永远占据收视率排行榜的榜首，而且还衍生出两部姐妹剧，不过，CSI的套路终归有它的局限，不管是在洛杉矶还是在迈阿密，可供腾挪的空间总是有限的，幸好，我们还有一个叫做NCIS的剧集&lt;br /&gt;&lt;br /&gt;基本上，这是CSI的海军版，同样的技术分析队伍，同样的魅力领导，同样的雌雄探员。不过，由于背景是军队，所以可以非常自由的加入诸如反间谍，打击恐怖主义之类在CSI几乎不可能出现的华丽情节，而且，因为是军队背景，所以，它不若CSI那样需要一板一眼的遵循太多的法律条文，留给执法者的空间要大的多，最后，因为是军队背景，他们的对手也要强悍的多，活动的背景也大得多，恐怖分子或者双重间谍绝非街头蟊贼可比，而在航空母舰上展开的调查也不是迈阿密海滩上轻易能见到的。正如它的开篇：一起发生在空军一号的针对美国总统的刺杀行动。&lt;br /&gt;&lt;br /&gt;当然，这毕竟是一部比较老套的侦探剧，而且由于人物并不算多，因此只能过度挖掘人物个性，导致两个次要人物被平面化极端化，幸好，三位主演有足够的魅力撑起剧集，而在第三季演员调整之后，冲突也加强了很多，加入了很多官场冲突，当然，这也是传统桥段的海军增强版，把市议会换成国防部就好了。&lt;br /&gt;&lt;br /&gt;现在这部剧季已经到了第四季，除了在第二季和第三季的交接处，花了整整三集的时间换掉了一个女主角之后，暂时还看不出会有什么太震憾的变化，唔，不过，一切都是会变化的。毕竟，第四季还没有结束。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-1650465991791734922?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/1650465991791734922/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=1650465991791734922' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/1650465991791734922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/1650465991791734922'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/04/blog-post_19.html' title='美剧渐行渐远时 - 军中侦探'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-6451954262271918200</id><published>2007-04-17T22:04:00.000+08:00</published><updated>2007-04-17T23:25:34.095+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='网络'/><category scheme='http://www.blogger.com/atom/ns#' term='新闻'/><category scheme='http://www.blogger.com/atom/ns#' term='评论'/><title type='text'>有脸皮的编辑不是好编辑</title><content type='html'>震惊全美的佛大校园枪击案中的亚裔凶手身份终被查实为韩籍人士，当地的中国人长出了一口气。这口气，五分是为了当地一份小报的流言，另外五分，则是为了伟大祖国的某些网站编辑&lt;br /&gt;&lt;br /&gt;中国诸新闻门户网站的下作早就名声在外，娱乐新闻更是以无耻著称于世。“没有新闻就是好新闻“已经过时了，现在的口号是”没有新闻就创造新闻“。于是乎，几百大洋就能轻易买到诋毁他人的枪稿，为了稿酬可以肆意歪曲事实乃至无中生有，”爆料“，”知情人士“，”有网友称“成为了娱记们的挡箭牌，造谣流水线在这些前缀的遮掩下欢快流转。点击率成为压倒一切的指标，至于媒体的良知，社会公器的义务，唔，这些东西存在过么？&lt;br /&gt;&lt;br /&gt;有良心的娱记不是好娱记，这已经成为公认的现实，不过，今天的校园枪击案，让我们发现，有了良心固然不方便做娱记，如果有了脸皮，估计也是做不了网站编辑的。&lt;br /&gt;&lt;br /&gt;中国时间凌晨，枪案爆发，凶手身份大家莫衷一是。当地一家小报悍然刊出谣言称凶手系中国留学生，某些美媒也曾跟进转载，而官方口径只确认凶手为亚裔青年男性。事情原本到此告一段落，流言尚局限在某些排华倾向媒体和街头小报的揣测中。&lt;br /&gt;&lt;br /&gt;想不到斜刺里杀出程咬金，似权威非权威的中国新闻社直接转载美方小报消息，而且把原文所有猜测性用语一概删除，直接打出”枪击凶手为中国留学生"然后直接挂在了网站上。&lt;br /&gt;&lt;br /&gt;随后，秉持”人无我有，人有我必有“的抄袭原则，几大中国门户网站sina，sohu，qq全力跟进，标题一个比一个醒目，甚至还有板有眼的编派出”上海赴美，××号出境“之类的案件细节，同时完全，唔，应该是刻意忽视了美方办案人员的官方通报，只字不提凶手身份乃至凶手人数都尚未完全确定。也避过凶手指纹未能找到匹配，决不可能是近期赴美留学生（指纹必须存档）的事实。总之，点击为王，而这等假新闻的可能影响，早被抛在了脑后。&lt;br /&gt;&lt;br /&gt;中文网络，几大门户的影响力是无可质疑的。于是我们迅速在其他地方看到了转载，比如日本，比如韩国，乃至整个中文互联网社区，虽然有人力图澄清事实真相，但是，话语权不属于他们，虽然他们手握事实。虽然任何一个能看懂浅显英文能访问美国网站的人都能轻易核实真相。但是，他们没有话语权。&lt;br /&gt;&lt;br /&gt;在大量的抗议电话的作用下，几大门户为新闻标题加上了”猜测“，”疑似“之类的修辞，然而，后果已经铸就。一场发端于小报，成长于排华媒体，在祖国环抱中发扬光大的谣言，就此洒遍了互联网。而谣言产业链的动机之一，仅仅是某几个网站的点击率&lt;br /&gt;&lt;br /&gt;也许，我们真的应该原谅这些编辑，他们每日为了点击率造谣传谣已经是如此的娴熟，我们宁可相信：今天，他们只是在条件反射下转载了一条劲爆的消息而已……&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-6451954262271918200?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/6451954262271918200/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=6451954262271918200' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/6451954262271918200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/6451954262271918200'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/04/blog-post_9512.html' title='有脸皮的编辑不是好编辑'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-7611495673223197382</id><published>2007-04-17T20:53:00.000+08:00</published><updated>2007-04-17T23:25:01.718+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='网络'/><category scheme='http://www.blogger.com/atom/ns#' term='说明'/><title type='text'>无计可施</title><content type='html'>在抽风若干天之后，终于顺利的重新连上了这个网址，唔&lt;br /&gt;&lt;br /&gt;由于众所周知，无可理喻的原因，这个blog的网址在过去的若干天中被封锁了。&lt;br /&gt;&lt;br /&gt;我不知道是因为我在《卡拉狄加》的评论中不小心提到了一点并非完全风花雪月的东西呢，还是因为某些法则就是看着这个网址不顺眼。或者，是我这个域名没有取好。总之，在过去的若干天中，从某个伟大国度是无法直接访问到&lt;a href="http://lifeofcode.blogspot.com/"&gt;http://lifeofcode.blogspot.com/  &lt;/a&gt;这个网址的。&lt;br /&gt;&lt;br /&gt;即使是今天，这个访问恢复了，我也不能确保在不太遥远的未来的某一天，这个网址重新变为无法访问。显然，这是使用伟大国度之外的网络服务的代价。&lt;br /&gt;&lt;br /&gt;鉴于这种无可理喻，无可预测，无可辩驳的状态，也许，常备一盘T打头的辛辣蔬菜在硬盘中是一个合适的选择，虽然我相信这个blog还没有好到让你动用它的地步，但是，迟早，或者说，很快，你会发现它的用处的。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-7611495673223197382?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/7611495673223197382/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=7611495673223197382' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/7611495673223197382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/7611495673223197382'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/04/blog-post_17.html' title='无计可施'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-6602344541933811913</id><published>2007-04-08T17:59:00.000+08:00</published><updated>2007-04-08T18:03:27.950+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='美剧'/><category scheme='http://www.blogger.com/atom/ns#' term='评论'/><title type='text'>美剧渐行渐远时 - 偶像律师</title><content type='html'>对于美剧来说，律政剧并不算稀罕，不过，作为去年新开张的美剧能够躲过第一轮洗牌，SHARK自有他的成功之处。&lt;br /&gt;&lt;br /&gt;充满魅力的男一号，平民化的情节设置。叛逆的女儿，信奉正义的警察，背景深厚的大腕，剧中的人物都是相当老派，传统价值观成为了主导。一部复古的电视剧集，隐隐然让人想到了当年看神探亨特的时代。唔，也许不是那么老派，毕竟，这是一部2006年的剧集。&lt;br /&gt;&lt;br /&gt;作为律政剧，最有卖点的，自然是法庭辩论的大戏，也是最能秀出演员演技的部分，影坛中留下了无数的法庭时刻，在这点上，显然选对了演员。男一号挥洒自如的演出毫无疑问的成为了全片最为华彩的部分。要说缺点，就是未免太抢戏了，以至于其他的配角都很难给人留下印象。即使在下半年剧集开始时直接干掉了其中的一个。带来的影响也没有想象中大。&lt;br /&gt;&lt;br /&gt;当然，下半季比起波澜不惊的上半季来说，还是要强悍不少的。上半季未免走的也太平稳了一点，老大顺利的打赢了每一场官司，唔，显然，观众们也在这样想。如果太多的观众这么想，也许那要命的收视率就没法保证了。收视率无法保证的下场自然就是腰斩，电视网永远不会对这类事情心慈手软。比如同期上线的同类题材的《金牌律师行》就因收视不佳，被直接cancel，没有任何情面可说。&lt;br /&gt;&lt;br /&gt;感谢美剧迅速的反馈机制，观众的呼声能迅速的让剧组做出相应的调整。当下半年剧集回归的时候，我们发现情节张力加强了很多很多，shark的助手挂了，女儿开始叛逆了，老友背叛了，终于，他也输官司了。唔，当然，这依旧是一部老派的剧集，我们照样能看到忠心耿耿的警察在打击犯罪，依然有这脉脉的温情和忠贞的友谊，唔，当然，依然有一个青春期的叛逆的女儿。&lt;br /&gt;&lt;br /&gt;如果你想找一部人人咸宜的律政剧，唔，就是它了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-6602344541933811913?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/6602344541933811913/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=6602344541933811913' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/6602344541933811913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/6602344541933811913'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/04/blog-post.html' title='美剧渐行渐远时 - 偶像律师'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-9056735027826681143</id><published>2007-04-06T12:41:00.000+08:00</published><updated>2007-05-01T10:58:58.739+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='数据库'/><title type='text'>续论spring的事务模型</title><content type='html'>除了嵌套事务之外，spring另外一个重要的事务模式就是“新建事务” -ROPAGATION_REQUIRES_NEW&lt;br /&gt;&lt;br /&gt;当用这个关键词修饰manger的方法时，spring会无视现有session的事务状态，新建一个事务并依照常规提交或者回滚。而原有session会被挂起，当然，其中的修改对新事务来说也是不可见的&lt;br /&gt;&lt;br /&gt;这个模式一般用来维护日志表，状态表之类无论对错都必须更新的表单，可以保证即使业务事务回滚，日志维护也能够正常进行。如果不使用这个模式，而和业务事务共用session，一旦业务回滚，整个事务session都会被置为rollback-only而无法提交。&lt;br /&gt;&lt;br /&gt;注意：&lt;br /&gt;业务事务不要和新事务处于嵌套状态，也就是说，形如&lt;br /&gt;&lt;br /&gt;//配置为new事务模型&lt;br /&gt;doNewSessionMethod(){&lt;br /&gt;  try{&lt;br /&gt;  //执行业务过程，并提交   &lt;br /&gt;   mang. doCommMethod();&lt;br /&gt;  }catch(e){&lt;br /&gt;     //执行失败，回滚业务过程，此时，finally中的业务也无法提交&lt;br /&gt;     ……&lt;br /&gt;  }finally{&lt;br /&gt;     //执行日志过程&lt;br /&gt;      doLog();&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;这样的代码，不会被正确执行&lt;br /&gt;即使你在doNewSession×配置了新事务的模式，而在doComm配置了标准事务模型&lt;br /&gt;&lt;br /&gt;因为标准事务模型，即PROPAGATION_REQUIRED的工作模式是如果存在事务，则复用事务，否则，新建j事务，当他嵌套在new事务中时，就会复用外部事务，如果在业务过程触发了回滚，&lt;br /&gt;和其处在同一事务中的日志过程也是无法提交的&lt;br /&gt;&lt;br /&gt;正确的用法应该是：&lt;br /&gt;//常规调用，不挂靠事务处理&lt;br /&gt;doMethod(){&lt;br /&gt;  try{&lt;br /&gt;  //执行业务过程，并提交   &lt;br /&gt;   mang. doCommMethod();&lt;br /&gt;  }catch(e){&lt;br /&gt;    业务过程失败，回滚&lt;br /&gt;      ……&lt;br /&gt; }finally{&lt;br /&gt;         //无论业务事务是否成功&lt;br /&gt;         //启动新事务，并执行日志过程，提交&lt;br /&gt;       mang.doNewTranLog();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;这样，无论业务成功与否，日志维护都会正常提交。&lt;br /&gt;&lt;br /&gt;在transanceManger中的配置方式略&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-9056735027826681143?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/9056735027826681143/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=9056735027826681143' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/9056735027826681143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/9056735027826681143'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/04/spring.html' title='续论spring的事务模型'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-4644802693824324457</id><published>2007-04-04T10:34:00.000+08:00</published><updated>2007-04-04T20:09:11.201+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='网络'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>google拼音</title><content type='html'>在磕磕绊绊的中文化后，google 终于算是找到了一点感觉，杀入了拼音输入法这个彻头彻尾的本地化软件市场。当然，这并非他的原创，搜狗拼音比他走的要早的多&lt;br /&gt;&lt;br /&gt;不过，作为一个尝试，多一个总比少一个好，虽然作为微软拼音这么多年的用户，初次使用还是有点磕巴，大部分原因是那个该死的空格在做怪。太习惯于直接拍空格然后回车选择提交了。&lt;br /&gt;&lt;br /&gt;作为网络时代的宠儿，不和网络集成是不可想象的，最容易想到的自然就是字库，包括输入字库和用户字库，这个倒是google的专业，唔，虽然还要很长一段时间才能看出好处&lt;br /&gt;&lt;br /&gt;啊啊啊，可以确定的是，对于mspy的用户来说，需要一个不短的适应时间，空格和回车总是让我非常别扭 。这一段话的输入就是最好的例子。&lt;br /&gt;&lt;br /&gt;我讨厌他在回车后直接给出英文的风格，也讨厌她不直接给出双拼后的结果，最恶心的大概是无法回退选择。只能闷头打字，sorry，我错了，他可以回退，不过我找错了按键，看来最大的问题还是使用习惯&lt;br /&gt;&lt;br /&gt;好了，今天就到这儿，给个70分吧，期待下一个版本，至少把双拼提示写写好吧，快捷键慢慢来。&lt;br /&gt;&lt;br /&gt;over&lt;br /&gt;&lt;br /&gt;ps:&lt;br /&gt;&lt;a href="http://tools.google.com/pinyin/index.html"&gt;官方下载页面&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ps:ps:&lt;br /&gt;今天爆出google拼音抄袭搜狗词库 ，hehe，看来google本地化已经到了一个境界了，都开始玩抄袭了&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-4644802693824324457?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/4644802693824324457/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=4644802693824324457' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/4644802693824324457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/4644802693824324457'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/04/google.html' title='google拼音'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-294098896000552492</id><published>2007-03-30T08:31:00.001+08:00</published><updated>2007-04-11T20:07:26.955+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='科幻'/><category scheme='http://www.blogger.com/atom/ns#' term='美剧'/><category scheme='http://www.blogger.com/atom/ns#' term='评论'/><title type='text'>美剧渐行渐远时 - 战星迷航</title><content type='html'>太空堡垒-卡拉迪加，一个看上去非常SF的片名，特别是中文译名以及其中那艘巨大的战舰-《卡拉狄加》，足以让国人联想起当年那部著名的动画片，至少，眼前会浮现出诸如太空大战，激光横飞，拯救地球，打跑宇宙侵略者，诸如之类的场面。&lt;br /&gt;&lt;br /&gt;不过……，这部SciFi的大作，非但和那部经典动画全无干系，而且，也没有多少太空大战，甚至，都看不到多少来自未来的华丽战斗。开场的迷你剧，就干净利落的毁掉了几乎整个人类社会，让劫后余生的区区几万号地球人踏上漫长的逃亡之旅。而他们的敌人是仿佛无处不在，几乎永生不死的，机器人。&lt;br /&gt;&lt;br /&gt;精疲力尽的星际逃亡，区区几万人仍然永恒的尔虞我诈，勾心斗角，几乎无法战胜的可怕敌人所带来的人人自危，充满奇幻色彩的神迹与天启，与其说是未来科技不如说是蒸汽朋克的飞船，这不是一部科幻剧，它离StarGate的距离和指环王离哈里波特的距离一样遥远。任何指望在这儿找到未来气息的人都应该调换频道。&lt;br /&gt;&lt;br /&gt;这其实是一部政治剧，而且，不是West Wing那种理想的自由主义，他是人类几千年政治戏码的大集合：自由，法制。在一个区区5万人的逃亡队伍中是否还需要坚守？又如何才能坚守？为了生存，公民权利放弃的底线在哪儿？在这么一支小队伍中，军队是否应该担任起重任？这些问题在9.11之后的美国，显得尤为敏感。&lt;br /&gt;&lt;br /&gt;同时，这也是一部历史剧，一部来自未来的历史。天生为战士的克隆敌人，跨越星系的苦苦追逼，隐然让人看到斯巴达vs雅典的再现，若隐若现的神谕和圣迹，赛昂敌人和地球人拼到你死我活之余隐然浮现的不可思议的纽带关系。一副宏大的画卷已经展开&lt;br /&gt;&lt;br /&gt;这幅画卷已经展开到了第三年，在经历了劫难，反攻，占领，逃亡诸般大戏之后，剧组好像暂时没有太多的新点子来推动主线剧情，特别是今年下半季，敌人消失的无影无踪，甚至干脆不出场了，变成了完全彻底的政治剧，又是劳工问题又是法律审判，后果就是收视率也和克隆人一样消失于天际，一个太有内涵的框架有时候反而无法写出太好的剧本。唔，期待第四季导演的灵感吧&lt;br /&gt;&lt;br /&gt;和普通的美剧不太一样，battlerstar除了正常的每周一集的正片外，在每一季的间歇期，还会有用来填补空缺的所谓“迷你剧”，用来描述背景资料，或者回顾之前的剧集，或者用来在每一季之间填补空缺。这些迷你剧有的长度近乎电影正片，有的则只有短短的几分钟，一如DVD收藏版中的花絮，它们共同构成了整部battlerstar。唔，据说，在第四季，我们又能看到一部迷你剧。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-294098896000552492?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/294098896000552492/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=294098896000552492' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/294098896000552492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/294098896000552492'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/03/sf.html' title='美剧渐行渐远时 - 战星迷航'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-5983515926408455194</id><published>2007-03-28T22:52:00.000+08:00</published><updated>2007-03-31T21:00:48.086+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='科幻'/><category scheme='http://www.blogger.com/atom/ns#' term='美剧'/><category scheme='http://www.blogger.com/atom/ns#' term='评论'/><title type='text'>美剧渐行渐远时 - 星门关闭</title><content type='html'>不知不觉，p2p下载软件上更新的美剧集数的编号离20越来越近了，而有些剧集已经就此永远落下了帷幕，没有新鲜美剧的日子很快就要来了，按照惯例也到了点评总结的时候了。&lt;br /&gt;&lt;br /&gt;长达10年的&lt;a href="http://www.scifi.com/stargate/" target="_new"&gt;StarGate-I&lt;/a&gt;。终于以一个开放结尾结束了10年的历程，唔，10年啊。就这么三五个主角为了捍卫地球和银河系，在宇宙之间奔波了整整10年，与一个又一个敌人作战，而且，可以想见的，个个毫发无伤。&lt;br /&gt;&lt;br /&gt;显然，这是美国电视剧最喜欢的套路：高度开放的剧情框架，相对固定的主角，可以自由自在的在每一个45min内塞入各种新鲜或者不新鲜的构思，同时在每一年新剧集开始以及结尾处，唔，还有中段（对于SciFi频道来说通常就是第10集和第11集）少许推进一下主线剧情，引进个把新角色，开拓一个新疆界，以确保来年可以有足够的新鲜点子拯导演组于水火。&lt;br /&gt;&lt;br /&gt;同样，为了编排故事方便，不仅仅是那几个主角，片中几乎每一个有名字的人（唔，当然，包括反派）都不会轻易完蛋，以保证剧本能持续不断的编下去，并且观众不用记忆太多的面孔，而且，在这些面孔一再露面后，如有必要，甚至可以通过干掉（哪怕是试图干掉）其中个把人，来引发足够的冲击力，以保证那万恶的收视率。&lt;br /&gt;&lt;br /&gt;同样的手段可以轻易复制，比如，stargate那风风火火的姐妹篇：&lt;a href="http://www.scifi.com/atlantis/" target="_new"&gt;Atlantis&lt;/a&gt;，另外一拨人在另外一个星系捍卫另外一个星球，与另外一拨（或者，几拨）敌人作战，当然，顺带还会照看一下我们的地球。这个系列现在已经结束了第3季，未来能持续多久，还要看导演组的灵感何时被榨空。也许，StarGate中下岗的伙计能助他们一臂之力？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-5983515926408455194?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/5983515926408455194/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=5983515926408455194' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/5983515926408455194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/5983515926408455194'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/03/blog-post_28.html' title='美剧渐行渐远时 - 星门关闭'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-3806892921573897218</id><published>2007-03-23T14:00:00.000+08:00</published><updated>2007-03-23T14:31:05.006+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='网络'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>国民待遇</title><content type='html'>一个很眼熟的故事换了一个主角&lt;br /&gt;&lt;br /&gt;baidu.jp开张了，然后有国内的筒子拿了个关键词搜索了一下，然后大家就看到了一个在浏览国际网时很眼熟的，在使用google搜索同类关键词时经常看到的，曾经被万千愤青唾骂的，也曾经被无数网民诅咒的，一个出错页面&lt;br /&gt;&lt;br /&gt;hehe&lt;br /&gt;&lt;br /&gt;伟大的GFW在呵护了国门之内的baidu.com许多年之后，终于也一视同仁的，毫无例外的，把baidu.jp干净利落的封在了国门之外。面对同一堵墙，百度和google终于成了一窝的蚱蜢。&lt;br /&gt;&lt;br /&gt;犹记当年，不知从何而来的谣言指称google是卖国工具，理由就是某某关键词在google无法搜索而在baidu却一切正常，虽然知情者皆知问题出在何处，且早已为这等需求备下tor之类工具，奈何网络言论从来是比拼音量而非逻辑。以至于若干年来不断有新晋愤青张扬声讨。&lt;br /&gt;&lt;br /&gt;想不到风水轮流转，当年遵纪守法的好同志终于也走出了国门，因此也终于获得了和google一样的国民待遇，但不知这次，可爱的网络舆论又会是怎样的反应呢？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-3806892921573897218?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/3806892921573897218/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=3806892921573897218' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/3806892921573897218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/3806892921573897218'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/03/blog-post.html' title='国民待遇'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-8613363873249183023</id><published>2007-02-28T12:16:00.000+08:00</published><updated>2007-05-01T10:58:53.753+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='数据库'/><title type='text'>spring中对嵌套事务的支持</title><content type='html'>spring的事务管理除了对经典的 commit / rollback 模式有着高度自动化的支持之外, 还支持jdbc3.0/sql95引入的嵌套事务，即所谓的savepoint。&lt;br /&gt;&lt;br /&gt;经典事务模型在某些场景下是难以胜任的&lt;br /&gt;&lt;br /&gt;例：&lt;br /&gt;有一组数据，要求逐行插入数据库，每条数据插入的成功与否不影响其他记录操作&lt;br /&gt;全部插入完成之后，修改状态表，如果状态表修改失败，要求之前所有插入操作全部回滚&lt;br /&gt;&lt;br /&gt;显然，在老式事务模型中无法方便支持这种应用场景，&lt;br /&gt;如果事务粒度到行插入一级，如果最后的状态更新失败，你可能需要手工回滚之前所有的插入操作&lt;br /&gt;如果事务覆盖整个数据库操作，任何预料之外的异常都会导致插入完全失败。&lt;br /&gt;&lt;br /&gt;这是嵌套事务的典型应用场景：&lt;br /&gt;1。对于每一行的插入，事务类型设置为PROPAGATION_NESTED（有别于默认的PROPAGATION_REQUIRED类型）&lt;br /&gt;其他拦截点设置照常，注意所有失败都必须通过抛出runtimeexception的方式触发回滚&lt;br /&gt;&lt;br /&gt;2。对于整个插入操作，设置事务类型为默认的PROPAGATION_REQUIRED，以保证整个操作的事务性&lt;br /&gt;&lt;br /&gt;3。此时，有别于典型的一层manger模式，在两个调用级别都设置了事务管理的拦截器，这在spring是容许的。&lt;br /&gt;&lt;br /&gt;例：&lt;br /&gt;&lt;br /&gt;dataInsertManager{&lt;br /&gt;   //类注入&lt;br /&gt;   private lineInsertMang lineMang;&lt;br /&gt;   public void setLineMang(……）；&lt;br /&gt;&lt;br /&gt;  //REQUIRED TRAN start&lt;br /&gt;  void doDataInsert(){&lt;br /&gt;    &lt;br /&gt;    for(all line){&lt;br /&gt;    //NESTED TRAN start&lt;br /&gt;   try{&lt;br /&gt;       lineMang.insertLine(……）；&lt;br /&gt;       //NESTED TRAN commit&lt;br /&gt;    }catch(InsertException e) {&lt;br /&gt;      //Any Excep,NESTED Tran rollback&lt;br /&gt;    }&lt;br /&gt;   //NESTED TRAN Commit&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt; //TRAN END&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;1.相关接口忽略，正式代码中必须通过接口提供AOP拦截，&lt;br /&gt;2.可以通过声明不同拦截点来为不同方法套用不同事务模式&lt;br /&gt;3.必须把transactionManager的nestedTransactionAllowed属性设为true&lt;br /&gt;4.jdbc驱动和数据库都必须支持savepoint功能&lt;br /&gt;&lt;br /&gt;此时，在Nested事务启动时，数据库会建立一个独立的savepoint，&lt;br /&gt;如果Nested事务回滚，则只回滚到savepoint为止，而不会回滚整个主事务&lt;br /&gt;而如果Nested事务正常结束，也不会即刻提交，而是会等待外部主事务一并提交或者一并回滚&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-8613363873249183023?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/8613363873249183023/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=8613363873249183023' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/8613363873249183023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/8613363873249183023'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/02/spring.html' title='spring中对嵌套事务的支持'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-4121269793627021448</id><published>2007-02-21T22:16:00.000+08:00</published><updated>2007-02-28T11:19:40.369+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='新闻'/><category scheme='http://www.blogger.com/atom/ns#' term='小结'/><title type='text'>新春佳节</title><content type='html'>春节晚会在预料中的无趣中结束了。就连某赵姓福星都未能挽回这一锅汤的汤的汤。端上来的每一份菜都和去年端上的，前年端上的，大前年端上来的一模一样。当 一席大餐的成功与否已经全部集中在一道主菜上时，这份大餐已经失败了，更不用说这份主菜在回锅了三次之后终于没有任何鲜味了。如果不是上菜的服务员在上汤 的时候栽了一个漂亮的跟头，今年的晚会注定被人完全遗忘。&lt;br /&gt;&lt;br /&gt;电信界的大餐也快端上来了，移动提前在奥运城市部署TD已经成了板上钉钉的事 情，而电信公司的组合方案继续隐藏在无数个猜测构成的迷雾中。联通拆分，电信合并移动，移动合并网通，正式牌照的发布再一次的被推迟到了今年底，如果说有 什么好消息的话，就是信产部对于WiMax的态度好像有变化，至于“盈利方式”这四个字，唔，依然不到提它的时候。&lt;br /&gt;&lt;br /&gt;盈利模式，盈利模式， 电信业至少比PC业好过一点，中国移动的06年利润压过其他三家的总和。而Dell的市场份额则跌到了H.P之后，曾经靠着直销神话颠覆pc业游戏规则的 迈克戴尔不得不重掌帅印拯救泥潭中的巨兽。而联想终于未能躲开中企国际化的坚硬南墙：除亚洲外所有市场份额和利润全面下跌。也许唯一开心的就是重登排行榜 首的H.P&lt;br /&gt;&lt;br /&gt;作为便携IT军刀，手机市场风风火火，荣誉属于诺基亚，属于索尼爱立信，不属于已经全线撤出的飞利浦，虽然移动通信产业一直在 和音乐产业眉来眼去，不过更多情况下，特别是在亚洲之外，整个移动通信业只是靠着彩铃和铃声下载作着零敲碎打的音乐生意。也许，蜂拥而出的音乐手机会改变 这个局面，不让Apple在虚拟音乐市场上吃太多的独食。至少，音乐公司是这样希望的。&lt;br /&gt;&lt;br /&gt;至少在亚洲，音乐公司不用担心apple，不过这并不意味着他们和移动通讯公司合作愉快。去年中国音乐产业的90%来自彩铃和铃声下载。在06年的sp新政之后，整个市场的产业链会变成什么模样还无人能知。不过唯一可以确定的是：这基本和音乐无关。和艺术无关。&lt;br /&gt;&lt;br /&gt;这年头和艺术有关的东西不算好找，《图雅的婚事》拿下了金熊，非常意外的。连获两大艺术电影节最高奖，第六代导演的幸福时光似乎终于到来。不管是好是坏，能增加点关注终归是好消息。在《黄金甲》最后仅仅拿下了学院奖的服装提名之时。&lt;br /&gt;&lt;br /&gt;今年也许是中国电影的大年，冯小刚的现实主义，王小帅和顾长卫的双片齐发，也许还有更多出水的第六代导演。也许，我们还能期待几张少许不那么彩铃的音乐专辑，或者期待张艺谋能在西湖弄出点什么新鲜的东西，毕竟，再过一年，就是08了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-4121269793627021448?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/4121269793627021448/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=4121269793627021448' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/4121269793627021448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/4121269793627021448'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/02/blog-post.html' title='新春佳节'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-673652597364120730</id><published>2007-02-01T23:20:00.000+08:00</published><updated>2007-02-01T23:20:05.529+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='新闻'/><title type='text'>give your love</title><content type='html'>还记得20年前的非洲饥荒么？&lt;br /&gt;还记得那场众星云集的慈善演唱会么？&lt;br /&gt;还记得那首创造历史的《we are the world》么？&lt;br /&gt;&lt;br /&gt;20年弹指一挥，世界沧海桑田，唯有人世间的苦难永远不变。旧的悲剧尚未结束，新的惨剧又在上演。柏林墙倒塌了，世贸中心也倒塌了，但是中东的硝烟从未散去。送别了一个充满动荡和不安的2006年，2007年并没有显露出和平的丝毫踪迹。在这个阴云密布的年代，人们再一次的携起了手。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.worldpeace1.com/html/index35.html"&gt;&lt;span style="color: rgb(102, 0, 204);font-size:180%;" &gt;&lt;b&gt;&lt;span style="color: rgb(0, 51, 153);font-family:Geneva,Arial,Helvetica,san-serif;font-size:85%;"  &gt;&lt;i&gt;A           Call for an End to War.&lt;/i&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;  &lt;/span&gt;&lt;/span&gt;当年aid live的组织人马，尤甚当年的明星阵容，不输当年的全新主题歌曲。面对蓝色星球上的无尽杀戮，让我们再次携起手来，用音乐环绕我们的星球，周游190个国家，缭绕24小时。&lt;br /&gt;&lt;br /&gt;8月11日，给音乐一个机会，给和平一个机会！&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_HxC0AtsTrJI/RcIDRBryIpI/AAAAAAAAAAM/MWr7snih7kk/s1600-h/peaceSmall.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_HxC0AtsTrJI/RcIDRBryIpI/AAAAAAAAAAM/MWr7snih7kk/s320/peaceSmall.gif" alt="" id="BLOGGER_PHOTO_ID_5026583725143630482" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-673652597364120730?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/673652597364120730/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=673652597364120730' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/673652597364120730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/673652597364120730'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/02/give-your-love.html' title='give your love'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_HxC0AtsTrJI/RcIDRBryIpI/AAAAAAAAAAM/MWr7snih7kk/s72-c/peaceSmall.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-635129482551080994</id><published>2007-01-27T21:50:00.000+08:00</published><updated>2007-01-27T22:19:01.094+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='摄影'/><title type='text'>光与影，黑与白</title><content type='html'>&lt;a href="http://www.cnarts.net/shanghaiart/information/readnews.asp?id=551"&gt;::上海美术馆::新闻中心::&lt;/a&gt;&lt;br /&gt;没想到这个不事张扬的影展居然规格如此之高，以至于几乎和它失之交臂。&lt;br /&gt;&lt;br /&gt;也算玩了3年多摄影了，虽然自己拍的不怎么样，至少别人的好片子还是看过不少的。拜互联网所赐，从胶片到数码，从风光到人像，各色的好照片看了无算。自己也曾醉心于反转片那惊艳的效果，而在日常拍摄中竭力追求华丽色彩，捕获眩目光影。本来我以为：摄影，基本上也就这样而已了。&lt;br /&gt;&lt;br /&gt;想不到，一场影展看下来，被黑白的魅力彻底征服，如果不是实在精力有限，恐怕真要冲出门去弄套放大机和暗盒回家。&lt;br /&gt;&lt;br /&gt;终于见识了什么才是银盐的魅力。即使是亚当斯和布勒松的那个久远时代，黑白银盐的表现力也足以笑傲当下主流的数码输出手段。丰富的层次，细腻的过渡，鲜明的反差，还有那千分之一秒的决定性瞬间。&lt;br /&gt;&lt;br /&gt;黑白，只有黑白，没有黄品青红绿蓝，也不用去纠缠色彩空间，颜色特性。去繁就简，返璞归真。极简中方透出无尽的底蕴。拍摄，冲洗，印放，每一步又有无尽的变化。如若不是今天亲眼看到原片，恐怕还要被那些印制粗糙的画册误导。&lt;br /&gt;&lt;br /&gt;突然很好奇，现代数码技术下的感光器材论理在指标上已经超越昔日胶片，但是为了商业需求都附有彩色透镜变成了所谓的马赛克ccd。如果能有厂家生产出不附彩色滤镜的ccd，必能兼顾极高的像素值和华丽无匹的宽容度。也许到那时，才是黑白银盐彻底走进博物馆的时候。不过……那个时候，我们能找到相匹的显示器来为它调图么？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-635129482551080994?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/635129482551080994/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=635129482551080994' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/635129482551080994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/635129482551080994'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/01/blog-post_27.html' title='光与影，黑与白'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4642558451176657378.post-478306330244734614</id><published>2007-01-26T21:52:00.000+08:00</published><updated>2007-10-22T22:25:23.048+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='说明'/><title type='text'>搬家？</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s1600-h/hacker.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif" alt="" id="BLOGGER_PHOTO_ID_5124166999038238114" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;实在是不能忍受MsnSpace的缓慢速度，糟糕的易用性，和图片上传的繁复了。要不是看在和messager 集成的份上，早就想把它扔掉了。唔，现在开始搬也许为时还不算晚，至少，在这儿可以写一点相对来说自由得多的东西而不用担心老板会看到:-)&lt;br /&gt;&lt;br /&gt;也许，这就是在Blogger的第一篇？看上去这个界面还是很不赖的，比MsnSpace强太多了，唔，也许可以把这儿作为一个写日记的好地方，网络化生存么。&lt;br /&gt;&lt;br /&gt;需不需要把MsnSpace的过往文章都搬过来呢？慢慢再看吧。先在这儿呆几天吧，反正microsoft一时半会也不会倒掉……&lt;br /&gt;&lt;br /&gt;ok，该存盘了，这儿好象还支持快捷键，真酷&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4642558451176657378-478306330244734614?l=lifeofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeofcode.blogspot.com/feeds/478306330244734614/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4642558451176657378&amp;postID=478306330244734614' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/478306330244734614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4642558451176657378/posts/default/478306330244734614'/><link rel='alternate' type='text/html' href='http://lifeofcode.blogspot.com/2007/01/blog-post.html' title='搬家？'/><author><name>oldwatch</name><uri>http://www.blogger.com/profile/07990142850588311848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s320/hacker.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_HxC0AtsTrJI/RxyyvJN0HaI/AAAAAAAAAHs/VFGV73gWbd4/s72-c/hacker.gif' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
