tracks and gettext

0

Getting Things Done (GTD) ?

tracks 這個專案控管應用的修改練習。

tracks first screencast

繁華

tracks gettext with zh_TW screencast

sIFR and Fonts

0

目前採用的 browntype 是有加上 sIFR 的功能,利用 flash 讓標題更為明顯。

只是 sIFR 在中文上有先天的不方便,不容易包出小的字形檔。這類架構主要是利用 sifr.js 來操作 tradegothic.swf 這類字形檔。

sIFR FontsMack 可以找到部分新字型。

$ cd themes/browntype/images/
$ wget http://www.fontsmack.com/fonts/agent_orange/AGENT_ORANGE_fulllatin.swf
$ mv tradegothic.swf tradegothic.swf.bak
$ cp AGENT_ORANGE_fulllatin.swf tradegothic.swf
$ mv tradegothic.swf.bak tradegothic.swf

最後還是改回來,一是風格不合,一是這個 swf 會被 browser 暫存住,最好的方式應該是放到 theme 中。

typo 4 install and UTF8

0

安裝在共用環境的一些經驗與紀錄。

1. 共用 gem/ruby 環境會產生版本不同的議題,這裡採用 typo@Dreamhost 作法,將 ruby/gem 安裝到個人目錄 $HOME 下。

2. 新的安裝雖然提供 typo install,但是一來文件不多,不知要改哪些設定檔,索性直接裝上去。預設裝的 sqlite 的版本,裝完會自行啟動,需要手動關掉。

$gem install typo --include-dependencies
$gem list | grep typo
typo (4.0.2)
$ typo install /path/blog.extremepattern.com

3. 安裝後沒看到 .htaccess SVN 來源複製該檔案,沒有這個檔,共用環境的 Apache 會直接秀出檔案列表,而不是交給 dispatch.fcgi 處理。另外注意

另一個常見導致 500 error 狀態的問題需要修改 dispatch.fcgi 檔。

#!/usr/bin/env ruby
#
require File.dirname(__FILE__) + "/../config/environment" 
require 'fcgi_handler'
class RailsFCGIHandler
 private
    def frao_handler(signal)
      dispatcher_log :info, "asked to terminate immediately" 
      dispatcher_log :info, "frao handler working its magic!" 
      restart_handler(signal)
    end
    alias_method :exit_now_handler, :frao_handler
end

RailsFCGIHandler.process!

Update 0817

刪除該段 500 error 碼,觀察看看。

4. 登入 mysql 設定預設編碼。
ALTER DATABASE DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
5. 修改 database.yml 加入 encoding
login: &login
  adapter: mysql
  host: mysql.xxxx.com
  username: foo
  password: 1234
  encoding: utf8
......

6. 修改 environment.rb 啟動產品狀態。

ENV['RAILS_ENV'] = 'production'

7. 設定資料庫表格結構。

rake migrate RAILS_ENV=production

8. 確認 UTF8 是用另一種軟體確認,用 phpMyAdmin 來確認編碼正確。

[UPDATE] 用一天之後發生奇怪的亂碼行為,用 phpMyAdmin 檢視沒有問題,代表非 MySQL 端問題,似乎是變成共用 ruby 環境導致,登入檢視 ps aux 發現只有 /usr/bin/ruby1.8 dispatch.fcgi 運行,而非 ruby dispatch.fcgi,最後將所有程序刪除後才恢復正常的 ruby dispatch.fcgi 出現。

出現亂碼時可以新增一筆資料進資料庫,秀出來居然也是正常,只是進 phpMyAdmin (UTF8) 看該筆資料卻是亂碼,可見 Coon. 的 encoding 當時應該是 latin1 如下情形。

Server characterset:    latin1
Db     characterset:    utf8
Client characterset:    latin1
Conn.  characterset:    latin1
TCP port:               3306