Monthly Archives: 十一月 2007

VirtualBox + gOS

不知多久之前听说了gOS,当时隐约记得有人误传说他是Google推出的操作系统,而且也看到了这个操作系统界面上有相当多的Google应用,后来澄清了其实gOS代表的是green OS的意思,和Google毫无关系(看他的主页底部的声明),主要的目的是为了一个廉价PC而设计的操作系统,所以整合了很多Web应用的快捷方式。 其实这些我都不关心,我最关心gOS的地方,其实是他使用了Enlightenment DR17(简称e17)作为他的窗口管理器和桌面环境(也就是把Gnome给替换掉了,其实早在GNOME 1.0的时候,它也整合了Enlightenment作为其窗口管理器,只是后来改成了Metacity),而且是一个非常轻量级的桌面环境。早在3年前,e17便有了一些测试版本,我当时在Fedora Core 3上安装了测试版,完全被其华丽的界面给震撼了,看过了e17的界面,我觉得完全不输给MacOS的任何版本。时隔三年,终于e17顺利发布,而且能够有一个Linux发行版预设了e17,尤其gOS又是基于现在我最喜欢的一个Linux发行版Ubuntu,实在是太完美了! gOS为e17做了一套自己的最简化的主题。如果有哪位朋友装了gOS,一定要尝试一下e17默认的主题 “bling”。 唯一的遗憾是,gOS和e17在默认情况下对国际化的支持并不是太好,默认的桌面字体非常小 ,虽然很适合西方字幕,但对于中文字就不行了,默认的终端窗口也显示中文字体都是方块,不过经过适当的调整,还是可以正常显示的。

Rails错误LoadError Expected x.rb to define X

今天将代码部署到服务器上之后出现了这个奇怪的错误,经过删除gems重装之后问题依旧,最后查找资料,发现可能是 require 和 class 之间的问题,最后在今天写的代码中发现了我在某个model的文件开头require了一个包。将require移入class定义内该问题解决。 原来代码如下: require ‘faster_csv’ class Character < ActiveRecord::Base … end 修改后: class Character < ActiveRecord::Base require ‘faster_csv’ … end 这个问题产生的原因我还不是非常清楚,难道和ruby的语法或者是内部运行机制和rails有冲突么? 这个问题在Rails的BUG列表中依然存在争议,目前还没有被彻底解决 2007-12-11更新 今天在我更新了服务器后,服务器上又出现了这个问题,但这次换了一个文件,变成了account.rb。这台服务器上装的是CentOS3,而另外一台同步更新的Windows2003服务器,则没有出现这个情况。多次修改找不出原因也不能解决问题,最后通过重启服务器解决了问题…… 重新看了Rails Trac上的问题,发现情况并不是那么简单,很多条件可以造成这个错误,而问题的解决也是非常奇怪,比如有个人出现错误后,将某个设置从true改为了false,便正常了,然后他又把设置改回true,但是错误就没有了。

如何调整Netbeans的字体

开发Rails应用有一阵子了,使用了朋友推荐的Netbeans作为主要的开发工具,功能很好,唯一让我别扭的地方便是无法设置一个好的字体。由于Netbeans是基于的Swing,所以字体的渲染要通过Java来实现。默认的配置下的monospaced字体是映射到宋体的,如果在字体中选择其他的字体,那么中文就无法显示了。那如何解决这个问题,可以按照以下几个步骤:

超酷的JavaScript小游戏

http://wholewheatweb.com 乍一看感觉像Flash做的,其实他只用了200行JavaScript代码! 当然,该游戏还是基于 Prototype 1.6 以及Scriptaculous 1.8 看看DIGG上的评论

最合适写代码的字体

每天盯着屏幕写代码,自然需要寻找一种看得舒服的字体,能让自己的代码赏心悦目,一般来说,我们选择用于显示代码的字体,有如下几个要求: 字母的宽度一致 或称为等宽字体,由于代码文件是普通文本,不带样式的,所以宽度一致易于排列和对齐,能迅速找到位置,提高可读性。 印刷术中这种等宽字体称之为monospaced字体,他是字体中的一个大分类(family),如常见的Courier和Courier New。由于考虑到现在的多语言环境,在不同的系统中,要将这个字体在不同字符集下映射到不同的具体字体上去,比如,一般我们的系统都会把中文的映射到“宋体”上。 轮廓清晰规则 只有清晰和规则的外形才能迅速分辨不同的字符,并且在长时间的阅读下不容易感觉到疲劳 在这里要说的是,西方人和东方人在对字体大小上的不同,我认识一些老外,写程序的时候喜欢使用10px的字体来显示代码,而且使用的屏幕分辨率还很高,这是因为他们的文字是字母文字,每个字母的细节少,使用小字体可以在一个屏幕上显示更多内容。所以使用具有清晰和规则的字体,在字体较小的情况下,依然能在屏幕上快速分辨。 l,1,i易于分辨 0,o,O易于分辨 前三个是小写L,数字1和小写I, 后三个是数字0,小写o和大写O,这几个字母在代码中常容易混淆。 例如,C风格的代码中,长整型数字要在数字后加后缀L来表示,像“111111111111L”,一般我们推荐都是使用大写的“L”目的就是为了防止混淆,而如果字体中这3中字母可以很容易分辨,那么即使我们误打成了小写l,也不会混淆。 清晰易分辨的标点 标点在代码中也占了非常重要的部分,如果一个字体不能很好区分逗号“,”和句号“. ”,“:”和“;”,那么不能说是一个好字体,同样,“`”“’”也最好能是配对的形式,这在某些编程中常常用到。 选择哪种字体? 有了以上一些参考标准之后,我们来看一些常见的字体 宋体 所有的中文Windows系统都自带宋体,而且宋体同时又是一个中文字体,涵盖了几乎所有的字符,在某些特殊场合,需要同时出现中文和英文的代码时,会考虑直接使用宋体。宋体由于主要照顾中文字符,而中文字符是等宽的,所以在考虑英文字符的时候,也考虑为等宽的,宽度为中文字符的一半。但是宋体的点阵英文字体并不美观,由于有衬线,导致在屏幕上小字号时的可读性较低。“0”和“O”以及“l”和“1”的区分不是很完美。 Courier New 这个字体也是每个 Windows都会带的,字体很好看,除了o O 0的区别,也是很多人在编程中使用的。 Bitstream Vera Sans Mono 最后我要向大家推荐Bitstream Vera Sans Mono,以及他的衍生字体DejaVu Sans Mono——DejaVu扩展了一些Unicode中的字符。 这也是很多开发者推荐的字体,除了完全满足上面说的所有条件之外,又是TTF字体,基本字形是无衬线的,适合屏幕阅读,最重要的还是开源的字体! MONACO 源于Mac上的一款字体,(Apple不愧是truetype之父啊,老乔也是练过书法的,品质自然不同),目前非常流行,在许多视频教程中都能看到(例如FireBug的控制台默认字体就是他)。点击此处下载。 然而和Mac上的很多字体一样,在完全微调(Full hinting)下字体会有些变形,反而效果不佳,最好使用轻微微调或者是无微调,所以在Windows系统上,效果差强人意。 Consolas 微软新开发的字体,Vista、Office2007、Visual Studio 2005中包含它。既然是MS出品,则肯定在ClearType下效果最佳。官方网站的安装包。不过官方网站的安装包很累赘,还需要先安装.net framework 3.5,于是在此直接给出下载文件。 除此之外还有: ttf-inconsolata:Debian的团队开发的字体,Debian下可直接使用apt-get install ttf-inconsolata安装 terminus:apt-get install xfonts-terminus

正式启用shiningray.cn

从今天开始,我将使用shiningray.cn来维护自己的日志,欢迎大家一起交流