2010-11-28

Wii: Super Mario Bros. 25th Anniversary 超級瑪利歐25週年之紅色限定版 開箱

四年前,Wii 在日本發行之後,體感操作的遊戲風靡了全世界,帶領了 PS3 和 Xbox360 跟著推出各種體感裝置與遊戲。不能免俗地,我也在三年前從日本買了一台 Wii 讓家中長輩使用。然而,我一直缺少一臺屬於自己的 Wii,其中最大的原因是:Wii 只有黑色白色機體,卻沒有我喜歡的紅色

在今年11月初時,我的同事與其女友去日本旅遊,將他們的寶貝貓咪託我代養一週(工商服務時間,新竹/竹東貓咪代養,每週新臺幣 $500)。他們在日本碰巧看到了紅色限定版的 Wii 和 NDSiLL,也知道我喜歡紅色的東西,很貼心的詢問我有沒有需要。這是我夢寐以求的款式啊!二話不說就請同事幫我帶回來了,實在很感謝他們的幫忙。

超級瑪利歐25週年紀念版,2010-11-07 發售,共發行 NDSiXL 與 Wii 兩種限定版主機,活動官方網站。以下,就是 Super Mario Bros. 25th Anniversary 之 Wii 紅色限定版,開箱照。

這臺 Wii 剛下飛機
這臺 Wii 剛下飛機

外盒正面
外盒正面

外盒背面
外盒背面

內建超級馬利歐
主機內建超級馬利歐遊戲(遊戲中?方塊的字會變成25)

外盒側面
外盒側面,說明內容物以及注意事項
「Color aka」

打開盒子
打開盒子側面,發現盒內印刷也有巧思
「THANKS TO YOU ALL!」

第一層內容物
第一層的內容物,那張白色的小紙片是零售店的保證書

第二層內容物
第二層的內容物,在主機機身上方的是原廠贈送的拭鏡布

組裝後
組裝起來的照片

主機+主副手
主機和主副手一起入鏡

主手手把
主手手把,內建動感強化器
「Wii MotionPlus INSIDE」

NDSi和PSP
無關主題的照片

2010-11-04

Ruby 驅動外部程式的方法: %x, exec, system, IO.popen

以下外部程式名稱以「external_cmd」為範例
Linux 前景執行外部程式指令:
# external_cmd
或以背景執行外部程式:
# external_cmd &

1. %x 是最普遍的方法,用在想要取得外部程式的標準輸出結果,但該外部程式不需要標準輸入時。另外,無論是否以背景執行該外部程式,呼叫 %x 的 ruby 程式皆會等待外部程式結束,才會繼續執行。
Ruby 範例程式碼如下,執行外部程式的輸出會儲存在 external_cmd_output 變數內。注意{}裡面並不需要再用雙引號來框住指令。另外,%x 方法和 `` 語法相同。
external_cmd_output = %x{external_cmd}
external_cmd_output = %x{external_cmd &}
external_cmd_output = `external_cmd`
external_cmd_output = `external_cmd &`


2. exec 方法會在執行外部程式完畢以後,終止呼叫 exec 的 ruby 程式,不傳回任何值。
Ruby 範例程式碼如下。
exec "external_cmd"
puts "never get here." # 這一行的 ruby 程式不會被執行


3. system 方法會在執行外部程式完畢以後,傳回執行的結果,成功則傳回 true,失敗則傳回 false。system 和 %x 方法的不同之處,除了傳回值不一樣,我認為使用的時機最大的不同點在於執行背景程式的時刻。以 %x 背景執行外部程式時,會等待該外部程式結束後,再執行下一行 ruby 程式;然而以 system 背景執行外部程式時,在傳回執行結果後,無須等待外部程式結束即執行下一行 ruby 程式。
Ruby 範例程式碼如下,執行外部程式的結果(成功與否)會儲存在 external_cmd_result 變數內。
external_cmd_result = system "external_cmd"
external_cmd_result = system "external_cmd &"


4. IO.popen 方法適用於外部程式需要標準輸入的時候,如互動式的外部程式。若 IO.popen 執行的外部程式需要標準輸入時,在標準輸入串流被關閉後才會開始執行。
Ruby 範例程式碼如下,其中「text of output」這段文字會被輸入到 external_cmd 的標準輸入,另外 external_cmd 的標準輸出會被 puts 印出。
IO.popen( "external_cmd", 'r+' ) do |pipe|
    pipe.puts "text of output"
    pipe.close_write
    puts pipe.read
end

2010-09-10

CentOS 5.5 安裝 Ruby 1.8.7 + SQLite 3.6.16 + Rails 2.3.8

註1:本文件描述由無到有的 ruby 安裝流程,並不適合用在升級 ruby 套件的使用情境。
註2:安裝時需要以 root 帳號登入系統。

0. 前置安裝環境,若已安裝這些套件則本步驟可省略:

# yum -y install zlib-devel curl-devel expat-devel gettext-devel gcc make


1. 安裝 ruby 1.8.7:

# cd ~
# wget http://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p249.tar.gz
# tar zxvf ruby-1.8.7-p249.tar.gz
# cd ruby-1.8.7-p249
# ./configure --prefix=/usr
# make
# make install

[可省略] 檢查 ruby 版本:

# ruby -v

畫面應顯示:

ruby 1.8.7 (2010-01-10 patchlevel 249) [i686-linux]


2. 安裝 rubygems 1.3.5:

# cd ~
# wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz
# tar zxvf rubygems-1.3.5.tgz
# cd rubygems-1.3.5
# ruby setup.rb

[可省略] 檢查 rubygems 版本:

# gem -v

畫面應顯示:

1.3.5


3. 安裝 sqlite 3.6.16:

# cd ~
# wget http://www.sqlite.org/sqlite-amalgamation-3.6.16.tar.gz
# tar xvzf sqlite-amalgamation-3.6.16.tar.gz
# cd sqlite-3.6.16
# ./configure --prefix=/usr
# make
# make install

[可省略] 檢查 SQLite 版本:

# sqlite3 -version

畫面應顯示:

3.6.16


4. 安裝 ruby 支援 sqlite3 的套件:

# gem install sqlite3-ruby

[可省略] 檢查是否安裝成功:

# gem list

畫面其中一行應顯示:

sqlite3-ruby (1.3.1)


5. 安裝 rails 2.3.8:

# gem install rails --version 2.3.8

[可省略] 檢查 rails 版本:

# rails -v

畫面應顯示:

Rails 2.3.8

2010-09-09

Ubuntu 10.04 LTS 安裝 Ruby 1.9.2 + SQLite 3 + Rails 3.0.0

註:本文件描述由無到有的 ruby 安裝流程,並不適合用在升級 ruby 套件的使用情境。
更新日期: 2010-09-10

1. 安裝所需的函式庫:

$ sudo apt-get install curl git-core build-essential zlib1g-dev libssl-dev libreadline5-dev


2. 安裝 ruby version manager (RVM),其中有個步驟需要變更使用者為 root:

$ sudo bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )
$ sudo su
$ mkdir -p ~/.rvm/src/ && cd ~/.rvm/src && rm -rf ./rvm/ && git clone --depth 1 git://github.com/wayneeseguin/rvm.git && cd rvm && ./install
$ exit


3. 安裝 ruby 1.9.2 (含 rubygems 1.3.7):

$ sudo rvm install 1.9.2
$ sudo rvm --default ruby-1.9.2

[可省略] 檢查 ruby 版本:

$ ruby -v

畫面應顯示:

ruby 1.9.2p0 (2010-08-18 revision 29036) [i686-linux]


3. 安裝 sqlite3 和 sqlite3-ruby 套件:

$ sudo apt-get install sqlite3 libsqlite3-dev
$ sudo gem install sqlite3-ruby


4. 安裝 rails 並製造一個 rails 命令的捷徑:

$ sudo gem install rails
$ sudo ln -s -f /usr/local/rvm/gems/ruby-1.9.2-p0/gems/rails-3.0.0/bin/rails /usr/bin/rails

[可省略] 檢查 rails 版本:

$ rails -v

畫面應顯示:

Rails 3.0.0

2010-08-24

Ubuntu 10.04 LTS 安裝 Ruby 1.8.7 + SQLite 3 + Rails 2.3.8

2010-09-09 更新:修改5.,指定 Rails 安裝版本。

1. 安裝 ruby 1.8.7:
$ sudo apt-get install ruby-full

[可省略] 檢查 ruby 版本,螢幕應顯示 ruby 1.8.7 (2010-01-10 patchlevel 249)
$ ruby -v

2. 安裝 gems 1.3.5:
$ sudo apt-get install rubygems

[可省略] 檢查 rubygems 版本,螢幕應顯示 1.3.5
$ gem -v

3. 安裝 sqlite 3:
$ sudo apt-get install sqlite3
$ sudo apt-get install libsqlite3-dev

4. 安裝 ruby 支援 sqlite3 的套件:
$ sudo gem install sqlite3-ruby

5. 安裝 rails 並製造一個 rails 命令的捷徑:
$ sudo gem install rails --version 2.3.8
$ sudo ln -s -f /var/lib/gems/1.8/bin/rails /usr/bin/rails

[可省略] 檢查 rails 版本,顯示畫面其中一行應為 rails (2.3.8)
$ gem list

2010-08-23

Ubuntu 10.04 LTS 安裝 Ruby 1.9.1 + Rails 2.3.8

2010-09-09 更新:Ruby 1.9.1 是不穩定的版本,並不建議依照本篇的方式安裝。請讀者參考另外兩篇以完成環境建置:
Ubuntu 10.04 LTS 安裝 Ruby 1.9.2 + SQLite 3 + Rails 3.0.0
Ubuntu 10.04 LTS 安裝 Ruby 1.8.7 + SQLite 3 + Rails 2.3.8

1. 安裝 ruby 1.9.1:
$ sudo apt-get install ruby1.9.1-full
$ sudo ln -s -f /usr/bin/ruby1.9.1 /usr/bin/ruby

[可省略] 檢查 ruby 版本,應為 ruby 1.9.1:
$ ruby -v

2. 安裝 gems for ruby 1.9.1:
$ sudo apt-get install rubygems1.9.1
$ sudo ln -s -f /usr/bin/gem1.9.1 /usr/bin/gem

[可省略] 檢查 rubygems 版本,應為 1.3.5:
$ gem -v

3. 安裝 sqlite 3:
$ sudo apt-get install sqlite3
$ sudo apt-get install libsqlite3-dev

4. 安裝 ruby 支援 sqlite 的套件:
$ sudo gem install sqlite3-ruby

5. 安裝 rails:
$ sudo gem install rails
$ sudo ln -s -f /var/lib/gems/1.9.1/bin/rails /usr/bin/rails

[可省略] 檢查 rails 版本,應為 rails (2.3.8):
$ gem list

2010-03-27

Blendtec Total Blender 開箱

會注意到 Blendtec,要感謝下方影片中的大叔,總是很努力不懈地用 Blendtec「處理」最新的科技產品(下方是用 Blendtec 將 iPhone 打碎的影片),當我第一次看到的時候簡直嚇壞了!令我對 Blendtec 留下深刻的印象。


之後再看產品的介紹時,了解它可以處理各種食物,不管是磨咖啡粉(連iPhone都可以磨成粉,咖啡豆應該難不倒它)、製作餅乾麵團、煮濃湯、打思樂冰、作果醬、冰淇淋或是最簡單的果汁或精力湯,都在它的守備範圍內,讓剛開始學烹飪的我魂牽夢縈!可惜看到臺灣代理商的價格並不是我能負擔得起的,實在令我裹足不前。幸運的是,我有個美麗又熱心的好朋友在美國唸書,就麻煩他回國的時候將自己用過的 Blendtec 二手賣給我囉!該說的都說完了,請看以下圖片!

盒裝外觀
盒裝外觀

打開紙箱就看到一本 Blender 送的食譜
打開紙箱就看到一本 Blender 送的食譜

說明書以及注意事項
說明書以及注意事項

左邊是調理杯底部,右邊是杯蓋
左邊是調理杯底部,右邊是杯蓋

將杯蓋拿起後,本體電線露出來了
將杯蓋拿起後,本體電線露出來了

左邊是調理杯,右邊是 Blender 本體
左邊是調理杯,右邊是 Blender 本體

調理杯攪拌棒特寫
調理杯攪拌棒特寫

本體與調理杯接盒處特寫
本體與調理杯接盒處特寫

整體外觀(可以看到左後方有 Roomba 正在休息)
整體外觀(可以看到左後方有 Roomba 正在休息)

2010-03-08

Windows Server 2008 關閉密碼到期提示

1. 開始 - 執行 - 輸入「secpol.msc」。

2. 如下圖,將「密碼最長有效期」,改為0天。
關閉密碼到期提示

2010-01-21

在 Linux 上搬移 mysql 資料庫存放目錄

1. 停止 mysql 服務。
# service mysqld stop

2. 新增一個 mysql 資料庫的存放目錄 (以下以 /database/mysql 為例)。
# mkdir /database/mysql

3. 複製舊資料庫檔案 (通常存放在 /var/lib/mysql 目錄內) 至新目錄內。
# cp -r /var/lib/mysql /database/mysql

4. 更改新目錄與其內容的擁有者為 mysql。
# chown -R mysql:mysql /database/mysql

5. 用文字編輯器修改 mysql 設定檔 (通常為 /etc/my.cnf),將 /var/lib/mysql 改為 /database/mysql。
# vim /etc/my.cnf

6. 啟動 mysql 服務。
# service mysqld start