2007年3月20日星期二

为你的IDE选择合适的字体

这里有个网站推荐了二十多种适合显示代码的字体:

Monospace/Fixed Width Programmer's Fonts

他的评判标准是:
Good Programming Font Criteria
* Crisp clear characters.
* Extended characterset.
* Good use of whitespace.
* 'l', '1' and 'i' are easily distinguished
* '0', 'o' and 'O' are easily distinguished
* forward quotes from back quotes are easily distinguished -prefer mirrored appearance
* Clear punctuation characters, especially braces, parenthesis and brackets

看来看去,还是觉得其中的“Monaco”比较顺眼(可以在上面的网站下载到,有时间多找几种来试试^_^),这是应用在eclipse里面的效果:


上面的代码看起来怎么如此怪异?别惊慌,这是Groovy的GroovyServlet写法,短短的几行代码,就向客户端发送了一段xml,呵呵,说实话,我很喜欢。更多相关内容,将会在以后的文章中详述^_^

2007年3月14日星期三

初学者的良师益友——写在《Ajax与Java高级程序设计》出版之际


最近有朋友向我询问如何学习Ajax,不用多说,《Ajax基础教程》是我首推的入门书籍,为什么这么说呢?

对于技术书籍来说,把简单的道理说复杂是很容易的,但是反过来把复杂的事情讲简单,可不是那么轻松的,《Ajax基础教程》却做到了这一点。记得刚开始接触ajax的时候,感觉这四个字母的组合是那么的深不可测,也难怪,要想真正搞明白并灵活运用她的话,非得对 javascript、dom以及 css等知识点都有个大致的了解,这对于长于后台开发的程序员来说,的确是件很头疼的事,比如我。但是当我看完这本书之后,给我的感觉却是豁然开朗,作者用轻松简洁的文字,把Ajax这个大块头从里到外的剖析了一番,娓娓道来:从ajax的核心部分(DOM操作、XMLHttpRequest异步通信、 javascript高级特性)到具体的例子,以及构建强壮javascript代码的所需的工具箱和调试、测试技术,书中都无一遗漏,全面而不失深度,甚至对当前热门的REST架构也简述了一番,这在当时也算是超前吧。当然,由于书籍面向初学者,很多知识点到即止,这是相当明智的,即能让读者快速总揽 Ajax的方方面面,又不至于使其深陷难题之中,这对提高学习积极性来说是非常有帮助的。这里再说说几个实例,就我看来,示例代码编写得非常优秀,从创建异步通信对象到dom操作,每段js无不遵循了职责分离的原则,复用能力很强;对于服务器端的搭配,使用了目前比较流行的java语言描述,功能简单,以示例为目的编写,阅读起来无丝毫的困难,也给读者留下了自己动手完善的余地;书中对jsunit的介绍,是目前已有中文资料中最为详尽的,是一份难得的参考资料,而且还介绍了javascript的调试技术和工具,为编写强壮的代码做好了铺垫;另外,对如何实现跨浏览器和面向对象的 javascript也做了浅显易懂的讲述,也算是抛砖引玉。

原书作者的另一本书《Pro Ajax and Java Frameworks》中文版(《Ajax与Java高级程序设计》)也即将上市,正是因为前一本书给我带来了非常愉快的阅读体验,所以个人是非常期待的,此书注重将Ajax与当下流行的java框架结合讲解(正因为如此我觉得此书的中文书名起得不是很妥当,将重要的“Frameworks”一词省略了,似乎应该叫《ajax与java框架高级程序设计》),虽然Ajax技术注重的是客户端开发,但是如果没有后台服务器端的业务支撑,也是孤掌难鸣,目前市面上还很少见到此类结合Spring、Struts、JSF等传统框架的Ajax书籍,本书以这个视点切入讲解,眼光独到,这对使用java作为开发工具的程序员来说,又将是一道丰盛的大餐。另外,值得一提的是,书中还涉及了 Prototype、script.aculo.us、Dojo以及DWR等特定于Ajax应用的实用框架集,与作者上一本书一样,内容广泛、清晰明了。

Nathaniel T.Schutta和Ryan Asleson,是我最赞赏的技术书籍作者,其简洁明快、通俗易懂的语言风格,深受读者喜爱。另外,就第一本《ajax基础教程》的翻译质量来说,也可以说是上等,阅读起来非常顺畅,希望他们的这本新书——《Ajax与Java高级程序设计》也能有如此的质量,这也只能等上市看过了才能做评价了,不管怎么样,还是要感谢出版社及译者的辛勤劳动。此书推荐在看完《Ajax基础教程》之后阅读,由浅入深,即可达到循序渐进的效果。

2007年2月6日星期二

解决Komodo中文支持问题

Komodo是一个支持多语言开发(python/ruby/perl/php/tk/javascript/xml甚至java)的IDE,基于Mozilla开发,经过试用(4.0版),还是很不错的,至少速度上比我机器上的eclipse+plugin要快许多。不过比较郁闷的是,虽然编辑器能正常录入中文,但解释运行的时候就会出错,上网查了一下,原来可以通过配置一个python文件来解决,在这里先记录下来(针对4.0版本):

官方网站:
http://activestate.com/products/komodo_ide/
(闲话:这是一个商业软件,需要注册,但是0day……^_^)

1、打开Komodo安装目录下的lib\mozilla\components,找到koEncodingServices.py文件,在其81行加入如下代码:
('cp936', 'Chinese(CP-936/GB2312)', 'CP936', '', 1,'cp936'),
('GB2312', 'Chinese(GB-2312)', 'GB2312', '', 1,'GB2312'),
('GBK', 'Chinese(GBK)', 'GBK', '', 1,'GBK'),
('GB18030', 'Chinese(GB18030)', 'GB18030', '', 1,'GB18030'),
也就是把中文编码支持补全到那个列表参数中,这样在后面我们就可以通过Komodo的设置页面来选择这几个编码了。

2、启动Komodo,选择Edit->Preferences菜单,找到Internationalization,把“Use Encoding Defined in Environment:cp936”勾选上,这样就把编辑器的默认编码设置为系统默认的cp936了,当然你也可以在下面的“Language-specific Default Enciding”选项单独为某个脚本设置编码。

3、做完第二步还不够,在编写python程序的时候,需要在前面加上“#-*- coding:UTF-8 -*-”以指明文件编码,在这里推荐使用UTF-8,其他的如gb2312也是可以的。

通过以上操作,即可完全解决Komodo的中文支持问题,不过还是希望厂商在下一版本发布的时候解决这个小bug,免得大家麻烦。详细的测评等用上一段时间了再说,希望对大家有用。

2007年2月1日星期四

下雪了

昨晚听天气预报说今天会下雪,一早起来出门,果然是真的,想想这应该是我到昆明以来见到的第一场雪。去年?去年冬天,或者可以说是整年我都在外面出差,跑新疆,跑小县城,搞实施,搞维护,搞验收,就这么过了,昆明下不下雪当然也就不得而知了。
其实挺讨厌下雪或者是下雨的,因为昆明这个城市交通状况太差,一到这个时候就非常恼火。今天也一样,为了不迟到,又打了个的过来,唉,我一天挣的钱能抵多少次打的啊?没办法,我住的远,有人规定迟到一次扣100,打车也就二十,还能赚80,想想还真是值呢。反正又不是头一回……
日子一天一天的在过,还是那句话,一切都会好起来的,春天马上就要到了。

2007年1月26日星期五

腾讯,我无言了

今天看到一个python群公告上显示有新的文章,好奇点进去想到群空间看看,居然跳出这么一个提示窗,直接晕倒……

难道这就是标榜软件人性化的腾讯?作为一个web开发人员,真的无法想象,如此差劲的可用性!看来,web标准的推广,还是任重道远呐。就拿公司的小弟来说,给他们讲xhtml,讲css布局,讲javascript,还那么不耐烦听,不屑一顾的感觉,唉,怎么会这样呢?

2007年1月15日星期一

Learning Groovy:Face to Face

to be continue……

流水帐

这几天在大理云龙出差,说起来还真是倒霉,扁桃体发炎外加拉肚子,唉……
日子还是那么一天天的在过,当然我以前写的目标,还是一直在努力,不管怎么样,做了才知道结果如何,相信自己,自己是最棒的(好像有点拽了,哈哈)。
就当是旅游吧,带病旅游:)
乘着这些日子,把Groovy给深入学习了下,感觉非常棒,以前学python,喜欢是喜欢,可惜总是用不上,现在不用苦恼了,Groovy才是王道,所谓的王道,就是既强大,又有实战的地方,我觉得这次选对了。当然python还有javascript还是一如既往的学习,毕竟一个是自己的最爱,一个是最实用的脚本,三管其下!累就累点了,过几天把学习心得写上来与大家分享。
突然想起一句话:春天,是骚动的季节,没错,这个春天,我要求变!不要误会哦,不是jiao chun,哈哈……

2007年1月6日星期六

我看《javascript dom编程艺术(dom scripting)》


这本书在刚出版的时候,编辑就送了一本给我,可惜那段时间出差在外没能看到,真正到手是4号那天,之前一直关注china-pub上的评论,有网友评价说内容太肤浅,“大失所望,感觉象是喝了碗稀粥,一点实在货都没有”。的确,此书是我有史以来读得最快的一本,三百页,从4号晚上开始看,到第二天下午就看完了,说明写的真的是很简单-_$
不过话又说回来,就我的阅读体验来说,还是有收获的,为什么这么说呢?也许就因为我是个初学者吧,web前台的初学者,书里面提到的三层分离思想:结构(XHTML)、表示(CSS)、行为(javascript、dom)的解耦,还是非常有意义的,阐述得也还清晰,示例简单,比较容易理解。有一个地方给我的映象比较深刻,就是在讲“当前页面标示”的时候提到的方法:作者用document.location.href来提取当前页面地址,再对比导航条中相应的超链接地址,然后设置其css以达到突出显示的目的,非常新颖。在这之前,我都是按照《精通CSS(CSS Mastery)》里面的硬编码方式来做的,呵呵,没想到可以如此灵活,要知道他这段代码是可以重用的……另外,作者一贯用循序渐进的方式,进行实例讲解,一步一步的完善各个函数,也就是重构,这一点也是值得我们借鉴的。还有就是最后提到的hijax,提倡先按旧式、常规的方法开发系统页面,最后再用javascript和XMLHttpRequest来拦截和传送数据,以加入AJAX功能,这与之前看过的《AJAX实战(AJAX In Action)》中阐述的“忘掉Web的页面概念,打破以前的经验”似乎背道而驰?这个问题有待于看了作者的新书《Bulletproof AJAX》再下结论,这本书就是讲解hijax的,也是人邮的图灵公司引进出版,比较期待。说到Bulletproof,又想起了之前翻完的《无懈可击的Web设计(Bulletproof Web Design)》,也是很有意思的一本书,改天抽时间也来以自己的眼光评一评^_^
上面讲的都是优点,那本书的缺点呢?不是没有,而是太明显了:重复、罗嗦是最大的特点。作者把读者都当成从来没接触过javascript和dom知识的门外汉,讲解一个循环或者一个条件判断语句都能花上几页篇幅,而且在书中其他地方遇到一样的语法,也如法炮制,不厌其烦。很多时候为了几个结束函数用的右括号“}”,也能把前面已经列过的代码清单再复制粘贴一遍,完全是在骗书稿。正如china-pub上的Renart兄所说,“这么一丁点东西难得作者竟然能写出三百多页的篇幅来”,晕。至于有人评论说作者认为“只能通过DOM获取inline的style”,这一点有失偏颇了,其实作者一直强调的是,用style属性只能取得inline的样式信息,至于如何通过DOM的其他手段去获取外部文件的样式,压根就没讲,呵呵。
总结一下,本书用来入门还是可以的,不过对dom的讲解也太浅了点,基本的操作之前很多书上都有了,比如《AJAX基础教程》就提到不少,够用了,要想深入学习这方面的知识,可以看看《javascript高级程序设计》,里面讲了不少,然后我最最期待和推荐的《ppk on javscript》一书里面也详细介绍了这部分内容,而且是基于“分离、解耦”的思想来阐述的,非常棒,这本书等看完了电子版再上来好好详细为大家评述吧。言归正传,对于想快速入门javascript dom的朋友,还是推荐翻翻此书,毕竟作者传播的三层思想还是很有道理的,阐述的也比较细(至于细得是不是让你觉得烦,我就不知道了,呵呵),就我个人来说,一本书,只要有个闪光点,能让我有收获,就是值得的,我认为,本书也算得上“值得”。

目前发现的小问题(勘误):
1、81页第12行"如果你不理解getElementById和getElenmentsByTagName,你就不能参与这项游乐活动",应该是"或",而不是"和";
2、117页第二行开头,"变量para"应该是"变量testdiv"。

-------------------------------------------
补充:有朋友对我上面说的那个例子感兴趣,之前讲的不是很清楚,本来是想把代码贴出来的,可是这个blog需要自己写转义字符,而且格式也不能保持,唉,看来google还需要完善呐。下面是我写的一个简单的例子,大家可以看看:实例下载

2007年1月3日星期三

Groovy 1.0发布!

好久没有关注groovy(An agile dynamic language for the Java Platform)这个java世界的原生脚本了,今天打开maillist,惊奇的发现1.0 finally 版正式发布了,赶紧down一份瞧瞧^_^下载地址:
http://dist.codehaus.org/groovy/distributions/?C=M;O=D

至于参考资料,发布包自带了一些,也可以上官方网站看看教程。另外,目前所知道的,还有两本相关书籍会出版,一本是Manning的《Groovy in Action》,另一本是Morgan Kaufmann的《Groovy Programming: An Introduction for Java Developers》,如果把模仿Rails的Grails算上,还有一本Apress的《The Definitive Guide to Grails》,这些书想要在国内看到是不太可能的了,出版社不会对这个偏门的东西感兴趣的,期待电子版的到来,0day万岁^_^