一年最多三個黑色星期五

From: 算算一年中有幾個十三號星期五 的問題,有朋友證明出一年至少一次。

答案就在算星期的Zeller’s公式裡,其中的 (Y+Y/4) + (13M-1)/5 要相差7的倍數才會相同星期 (這裡的M要把3月當1,而M是11,12時,Y要減1)。

所以一年內的可能性有 2,5,7,10,12,15,18,20,23,25,27(再減1如果Y是4的倍數) 和 30(再減1如果Y是4的倍數),要有三次的可能性只有 3,11,2 月 (如果Y不是4的倍數)和 4,7,1 月(如果Y是4的倍數)

例子有:

2009-2, 2009-3, 2009-11
2012-1, 2012-4, 2012-7
2015-2, 2015-3, 2015-11
2026-2, 2026-3, 2026-11
2037-2, 2037-3, 2037-11
2040-1, 2040-4, 2040-7

找更多可以執行這個 Ruby 程式

演講: Ruby 1.9 at OSDC.TW 2009

Update(2009/4/22): 投影片在這裡

一年一度的台灣 Open Source 界盛事 OSDC.TW 開放報名了,日期是 4/17~4/19,今年我有一場 50min 的演講談 Ruby 1.9,大綱如下:

於今年初發佈的 Ruby 1.9.1 是 1.9 系列的第一個穩定版本,本 talk 將介紹新功能、講解與 1.8 相異的地方、如何撰寫 1.8 和 1.9 同時相容的程式以及分享 Ruby 1.9 on Rails 的經驗。

另外還有我跟同事 xditeweijen 一起準備的 Ruby on Rails tutorial 在 4/17(五) 上午。如果你想從頭好好認識 Rails 2,這是一個非常好的機會,保證真才實料。

這次主辦單位還佛心來也找了 DHH 來做 RoR Q&A (Video conference),真是令人緊張啊,要先好好準備問題了… :D

Ruby/Rails/jQuery API 字典 for Mac OS X

dict_desktop

喔,這真是太好用了,使用 Mac OS X 內建的字典程式查 API:

下載之後放到 ~/Library/Dictionaries ,就可以在 Dictionary 中使用,也可以在 Spotlight 中搜尋。Priit Haamer++

Windows 跟 Linux 的使用者,你們的解決方案在這裡

重灌 Panasonic W2

為了之後如果重灌還記得怎麼做,特此紀錄。

Panasonic W2E 是我的第一台筆電,買四年多了。輕加上電池可以撐很久,現在擔任我的第二台小筆電還十分好用。但是上個禮拜硬碟終於因為年紀大了掛點,因為硬碟電壓是 3.3V 跟一般 5V 不同,需要特別折腳什麼的,加上拆裝看起來挺複雜的,所以就在網路上找有經驗的水貨商幫忙,今天拿回來了。

重裝 Win XP 之後,首先要找驅動程式,網頁在 Let’s note CF-W2シリーズ 導入済みドライバー | パナソニック パソコンサポート,內容如下:

cpupower_r3t2w2y2_2553_d030520.exe CPU 省電設定
dmi_r3t2w2y2_2553_d030557.exe 瀏覽系統資訊
hkeyapp_r3t2w2y2_2553_d040571.exe fn鍵
hotkey_t2w2_55_d030259.exe fn鍵
hkeyset_r3t2w2y2_2553_d030477.exe fn鍵設定
lan_r3w2_25_d031123.exe 網路驅動程式
numlkntf_r3t2w2y2_2553_d040660.exe Num鍵提示(沒什麼用的日文提醒)
intelinf_t2w2_55_d030128.exe 主機板驅動程式(這個要第一個裝)
pcinfo_r3t2w2y2_2553_d040080.exe 瀏覽NB資訊
sd_r3t2w2y2_2553_d020984.exe SD 驅動程式
chgsddrv_r3t2w2y2_2553_d030714.exe SD 設定
sdkey_r3t2w2y2_2553_d030702.exe SD ??(沒裝)
opdoff_w2y2_53_d040707.exe 光碟機自動省電
sound_t2w2y2_553_d030899.exe 音效卡
loupe_r3t2w2y2_2553_d040695.exe ??(沒裝)
nselect_r3t2w2y2_2553_d040702.exe 切換網路軟體(沒裝)
video_t2w2_55_d030395.exe 顯示卡驅動程式
ienlarge_r3t2w2y2_2553_d040681.exe ??(沒裝)
觸控版驅動程式
wheelpad_r3t2w2y2_2553_d040717.exe 可以在觸控版畫圈圈表示捲軸(但這個版本不能用)
modem_r3t2w2y2_2553_d040336.exe 數據機驅動程式
無線網路驅動程式
wlansw_r3t2w2y2_2553_d040656.exe 無線網路切換軟體(沒裝)

其中如果碰到日文版,有 google 到這篇講說可以修改一下 setup.ini,把

[Languages]
Default=0x0011

改成

[Languages]
Default=0x0009

但是 WheelPad 的功能還是裝不起來,又 google 到這篇有 wheelpad 英文版,改裝這個版本就沒問題了。(裝 WheelPad 之前要先裝觸控版驅動程式)

Ruby 1.9.1 發佈

萬眾矚目的 Ruby 1.9.1 終於發佈了,公告詳見 Ruby 1.9.1 is released。這個版本是 1.9 系列的第一個穩定版本,大大提昇了 1.8 令人詬病的效能 (請見 Antonio Cangiano 的 benchmarks ),非常令人期待它的商業應用。

要在 Mac 上安裝起來玩玩看的話,可以這樣做與本來的 Ruby 1.8 共存 (參考自How to compile and install Ruby 1.9.1 on Mac OS X Leopard):

curl ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p0.tar.bz2 -o ruby-1.9.1-p0.tar.bz2
tar xjf ruby-1.9.1-p0.tar.bz2

cd ruby-1.9.1-p0/
autoconf
./configure --program-suffix=19
make && sudo make install

這樣就會有 ruby19, irb19, gem19, rake19 等指令可以用了(Ruby 1.9 內建了 rubygems 跟 rake 囉)。不過目前還很多 Gems 沒有跟上 Ruby 1.9 的腳步,尤其是需要 native build 的 Library(例如 mysql 跟 mongrel 都裝不起來)。

Update(2009/4/5) 使用 Rails 2.3.2 就不需要以下 patch 了,裝起來就可以跑了。MySQL 可以改裝 tmtm.org/en/mysql/ruby/ 這個 Ruby 1.9.1 相容版本。

如果有研究興趣想把 Ruby on Rails 跑起來,除了需要用 Rails edge 版本( 2.2.2 的話,需要 patch active_support/deprecation.rb 227 行用 begin … rescue LoadError; end 把整段 test 包起來),還需要至少裝 rack 跟 sqlite3-ruby gems,另外 Webrick 也需要自己手動 patch 如下(這是因為 Ruby 1.9 把 String #each 拿掉了):

class String
  def each 
    self.split($/).each { |e| yield e } 
  end 
end

成果是 Ruby 1.9 on Rails 有圖有真相:

ruby19onrails