Today's the day

向软件大牛炫耀我会焊单片机,向硬件大牛炫耀我会写 Rails,向软硬件大牛炫耀我生物,向软硬件生物大牛炫耀我会折腾期货 -_-bbb

这些天

没有条理,思维慎密者慎入……

阅读全文

“页面补丁”插件

晚上花了 5 分钟 (没错,就是 5 分钟),完成了这个插件。

功能就是在 Blog 的某些位置插入自定义的内容,目前支持的位置: 文章正文上方、文章正文下方、文章简介的下方,以后再开发新的位置~

可以拿来插入广告,比如本文下方的 google ad,或者插入版权声明什么的,很方便~

继续阅读

唉,英语还是太差

看过几本英文书就觉着自己了不起了,其实自己英语还是很烂的……

最近又开始看那本 <<算法导论>>,再加上那本 <<REST Web Services>>,看来看去就一个感觉……慢!

每天看十几页,差不多就得一个小时,也不会抓重点,全盘逐句阅读,算法倒是应该这样看,不过 REST 拖拖拉拉看到现在还没有看完,本来只想了解一下 REST 相关,可是现在已经在上面花了不少的时间。

而且最近连几个 com 和 con 打头的单词都开始搞混,暴……  赶紧搞了个专项复习……

究其原因…………还能有什么原因,看得还不够多!继续看吧,加大阅读量~

开始用 Amarok

原来一直用 Audacious,这两天不知道怎么回事,播放某些 wav 文件的时候常常发生杂音,然后 Audacious 就死住了,估计是哪个库更新了之后不兼容吧,找不到解决办法,只好尝试换一款音频播放器。

Gnome 下的找了半天,MPD 什么的懒得折腾,Exaile 本来还不错,可惜和 Audacious 的问题一样,实在找不到什么满意的,最后干脆装了 Amarok。

原来一直有种错误的认识,认为拿 Gnome 当桌面环境,就应该尽量不用 KDE 下的程序,仔细想想一点道理都没有 。 只不过基于的库不同嘛,程序之间互相又没有影响。估计是我很早的时候,留下了 KDE 程序运行都很缓慢和不稳定的印象的缘故吧。现在已经没有了这种问题,电脑也足够快了,再说,现在连 Windows 下的程序都能通过 VirtualBox 和 Linux 桌面共存了,难道 KDE 和 Gnome 的程序还要隔离吗?

继续阅读

被 Ruby 耍了一下

Fixnum 有个实例方法 [ ],返回数字二进制表示的第 n 位,比如:

  1. > 8[3]
  2.  1

  1. > 10.downto(0){|n| print 255[n]}
  2. 00011111111

如果传入个符号会怎么样呢? 本以为会出错,发现运行正常,返回 0:

  1. > 5[:asdasdasd]
  2. 0

果不其然,[ ] 对传入的符号做了隐式转换,符号的 to_int 方法返回一个唯一代表本身的整数,一般这个整数很大,也就是返回数字的很高位,自然是 0。

这样的话,像 val[:something] 这样的形式,有可能 val 是个 hash,拿符号当作键,也有可能像上面那样 val 只是个数字。

前两天写个东西,类似下面的代码:

  1. @user.data ||= {:a => 1, :b => 2, :xxx => xxx ....... }
  2. ....
  3. val = @user.data[:someting]

运行发现,不管我怎么取,val 的值都是 0 ……百思不得其解

后来发现 users 表的 data 这项,不小心在数据库中指定默认值为 0 了,所以 @user.data 就不是 nil,根本没有被赋值为后面的 hash,val 就是 0[:something],怪不得取什么都是 0。

符号可以响应 to_int,字符串无法响应 to_int,所以传入个字符串就报错了,不过数字的 [ ] 方法传入非字符的变量有啥意义呢?检测参数不是 Fixnum 就 raise,这样就好了……


Update: 值得庆幸的是,最新的 Ruby 1.9.0 中已经拿掉了 Symbol 的 to_int 方法~

RUBY_VERSION                                       # => "1.9.0"
:foo.to_int                                       
# ~> -:2: undefined method `to_int' for :foo:Symbol (NoMethodError)