聚會時間公告: 11月份聚會為11月15號星期六下午兩點在MocaMona / 講者:shawn Topic: Hello BIOS: EFI, an opensource firmware framework

十一月 30, 2008
» Gmail 嵌入 Calendar、Todo List gadget

Gmail 是很好用, 但是總覺得少了簡易的 快速筆記、Todo List 和 行事曆, 感謝上週小朱的分享, 原來 Gmail 的 Labs 裡面有這麼多秘密~

目前我的 Gmail 只有嵌入 Calendar 和 Todo List, 筆記目前是沒看到快速又好用的(Labs 裡面有 Google Docs gadget, 但是 Google Docs 太肥了, 我比較希望他把 Google notebook 整進來), 所以下面就來紀錄如何嵌入這兩個功能的囉~

嵌入 Calendar / Todo List 的步驟:

  1. 設定 Gmail 使用英文語系(US)
  2. 啟用 Labs 相關的功能 (由此啟用 Calendar / Todo List)

設定 Gmail 使用英文語系(US)

將 Gmail 切換到英文語系, 如下述步驟:

  1. 進入 Gmail
  2. 右上角有 設定 -> General(預設就會在 General)
  3. 語系 選 English(US)
  4. 存檔

啟用 Labs 相關的功能 (由此啟用 Calendar / Todo List)

使用英文語系後, 就會看到 Settings 裡面多出了 Labs 的選項, 就由此來做設定囉~

  1. 進入 Gmail
  2. 右上角有 設定 -> Labs
  3. 找到 Google Calendar gadget 選取 Enable (這樣子 Google calendar 就會出現在左邊了)
  4. 找到 Add any gadget by URL 選取 Enable (因為 Todo List 是其它網站的服務, 所以要用 gadget 方式加進來)
  5. 選存檔即可.

再來 Todo List 小朱推薦是使用 Remember The Milk, 所以請自行去註冊, 再繼續下面的步驟.

下述假設已經註冊且登入完成 Remember The Milk 服務, 再來設定嵌入 Gmail 的步驟:

剛剛有啟用 Add any gadget by URL 的選項, 所以於 Settings 裡面多一個 Gadgets 的 Tab.

  1. Settings -> 選取 Gadgets 的 Tab
  2. 於 Add a gadget by its URL: 填寫: http://www.rememberthemilk.com/services/modules/gmail/rtm.xml (取自: Remember The Milk - Services / Remember The Milk for Gmail / Gadget)
  3. 儲存即可

這樣子 Gmail 就會秀出 行事曆 和 Todo List 可以用囉~

十一月 27, 2008
» Delicious 的瀏覽器快速嵌入

Delicious 是相當好用的書籤網站, 主要是它有出 Firefox add-ons(Delicious Bookmarks), 自動把我的最愛 sync 進 Firefox 中, 到每一台機器都不用擔心.

Delicious 的 Firefox 外掛還是有缺點, 主要是因為儲存的書籤太多, 它在 sync 需要多一點的時間, 瀏覽器就很容易會當掉, 所以反過頭來, 把 Firefox 外掛移除, 用它最原始的連結外掛就好~

現在要找書籤, 都直接到 Delicious 的網站找, 已經很久沒翻過 書籤/我的最愛 這些了~

使用它掛在瀏覽器連結的 Javascript, 在任何瀏覽器都可以使用, 方便又快速~ 缺點是每次找這個都要到處翻, 所以決定把這個連結記好.

Delicious 瀏覽器快速嵌入的連結: Install Bookmarklets on Delicious

安裝方法

  1. 找到現在用的瀏覽器類型
  2. Bookmark on Delicious 的連結, 直接滑數左鍵按著, 拖到 書籤/我的最愛 那列 Toolbar 即可.
  3. (或者將 Bookmark on Delicious 加入我的最愛)
  4. 要將新的網站加入 Delicious 的話, 點選它就會跳出一個快速儲存的視窗囉~

十月 19, 2008
» Subversion commit log 自動寄信通知

要隨時看 Subversion 的 repository 有被任何人修改, 於是讓它在 commit 時, 自動寄更新通知信出來, 順便將 commit 版本與前一個版本自動做 diff 的動作.

設定 SVN Commit 自動寄信

設定 SVN commit 完成後, 自動寄信的步驟如下: (假設 SVN 路徑: /home/svn/repository/PROJECT_NAME)

  1. cp /home/svn/repository/PROJECT_NAME/hooks/post-commit.tmpl /home/svn/repository/PROJECT_NAME/hooks/post-commit # commit 完後, 會自動執行 post-commit 檔.
  2. chmod +x /home/svn/repository/PROJECT_NAME/hooks/post-commit
  3. vim /home/svn/repository/PROJECT_NAME/hooks/post-commit # 修改下述
    /usr/share/subversion/hook-scripts/commit-email.pl \
     "$REPOS" "$REV" commit-watchers@example.org
  4. 改成
    export LC_CTYPE="zh_TW.UTF-8"
    /usr/share/subversion/hook-scripts/commit-email.pl "$REPOS" "$REV" svn@domain

SVN Commit 中文亂碼問題

Debian lenny 裝的 subversion package 是 1.5.1, 此版的 SVN 預設 hooks 自動寄信功能, 就已經有兩個版本的 diff 囉~

唯一的問題是 Commit 的註解寫中文的話, 收到的信會是亂碼.

解法: 要是 svnlook LC_CTYPE locale 設定問題, 於 commit-email.pl 加上 export LC_CTYPE="zh_TW.UTF-8", 之後收到的信就有中文囉~ :)

關於 hooks 其它的檔案有何用處?

下述轉載自: 寄送 subversion repository 的更新通知(感謝 yungyuc 好文)

  • start-commit: 在 commit 開始之前執行,常用來檢查使用者是否有權執行動作。
  • pre-commit: 在 transaction 完成而未真正 commit 之前執行,常用來檢查 commit 動作的有效性。可以在這個地方對 commit 時的 log 訊息進行要求。
  • post-commit: 在 transaction 完成而 commit 結束,建立了新的 revision 之後執行,常用來寄送 e-mail 通知訊息。
  • pre-revprop-change: subversion 的 revision property 並不會存入 repository,這個 hook 可以在 revision property 變更之前作一些處理,譬如把更新的資訊存到外部的紀錄檔裡面。
  • post-revprop-change: 用途與 pre-revprop-change 類似,但會在 revision property 變更之後執行。

相關文章

十月 16, 2008
» MPlayer 音樂播放去除人聲

想要練唱歌, MPlayer 可以將 MP3 的人聲去除掉, 只要下述指令即可:

mplayer -af karaoke filename.mp3

雖說是去人聲, 不過還是會聽到很小聲的演唱者歌聲, 而 MTV(*.mpg) 目前測試都無法去除人聲.

除了命令列外, 圖形介面可以選用 SMPlayer, 只要於選單: 音訊 -> 過濾器 -> 卡拉 OK 即可.

另外 去除人聲 後, 有興趣再錄音的, 可以再配合 Audacity 使用.

相關網頁

八月 19, 2008
» 禁止網站任意改變 Firefox 視窗大小

某些網站的最佳觀看尺寸是 800 x 600, 就會透過 Javascript 自動將網頁做縮小或放大的動作.

在早期使用 IE 的狀況, 是可以忍受的, 因為每個都是單獨的視窗, 修改視窗大小並不會影響到其它頁面.

不過現在瀏覽網頁的動作, 是將多個網頁都嵌入瀏覽器本身的 Tab 時, 修改到瀏覽器大小的話, 就等於同時修改 n 個網頁的顯示, 那影響範圍就很大了. (所以現在個人建議這種縮放動作不要使用)

但是還是多少會遇到這種網頁, 所以設定 Firefox 遇到這種動作, 不讓它去修改到瀏覽器的視窗大小.

設定方法

  1. 工具 -> 選項 (工具列)
  2. 內容 (開啟視窗後最上面的那排工具列)
  3. 進階(Alt +v) (上步驟選 內容 後, 會於下述視窗中找到進階, 或按 Alt + v)
  4. 找到 移動或改變已開啟視窗大小, 將前面的勾勾拿掉
  5. 選 確定 即可.

其它相關網頁

七月 19, 2008
» Google Calendar Widget / Firefox 即時通知套件

之前建議其他人用 Google calendar, 但是被嫌說沒有 notifier 的工具, 然後額外需要的是列出當天的 Todo list, 現在這兩點都有 工具/解法 囉~

Firefox 時間快到的即時通知 extensions: [Firefox Add-ons] 今天有哪些行程? 交給 Google Calendar Notifier 來提醒!

列出 Todo list 或 月曆, 自己可以看到完整資料, 其他人只看的到你是忙碌狀態, 而且可以嵌入自己的 Blog 中, 這功能原來是本來就有了, 只是一直不知道怎麼設, 原來設法很簡單:

  1. 於左下方 "我的日曆"
  2. "自己名字" 右邊的下拉選 "日曆設定"
  3. "自訂顏色、大小與其他選項"
  4. 就可以進行設定囉~

詳細的圖文說明可見: 把 Google Calendar 內嵌到你的網站!還可變換大小!

七月 17, 2008
» MySQL 快速為線上運作的 Master 增加 SLAVE(設定 Replication)

已經在線上運作的 MySQL Master, 希望能在最短的時間內做 mysqldump, 然後馬上就讓他還原上線, 所以主要就是利用 --master-data, 然後短暫的 READ LOCK, mysqldump, UNLOCK 的動作, 希望把時間降到最短囉~ :)

註: 如果有完整的 mysql bin log 的話, 可以直接設好 replication 即可, 就會自動開始從 binlog 最前面開始抓, 連停機都不用了. :P

操作步驟

  1. ssh master.hostname # 先設 MASTER
  2. $ mysql -u root
  3. mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'repl_password'; # 先假設 帳號 repl, 密碼 repl_password
  4. mysql> FLUSH TABLES WITH READ LOCK;
  5. mysql> quit
  6. $ mysqldump -u root DATABASE_NAME --master-data > DATABASE_NAME.sql
    # 若不加 --master-data, 就需要用 show master status 來記下要組合出下述語法:
    # CHANGE MASTER TO MASTER_HOST='MASTER_HOSTNAME', MASTER_USER='repl', MASTER_PASSWORD='repl_passord', MASTER_LOG_FILE='mysql-bin.000014', MASTER_LOG_POS=232;
  7. $ mysql -u root
  8. mysql> UNLOCK TABLES;
  9. mysql> quit
  10. # 到此 MASTER 設定就算完工, 也已經恢復上線了, 再下來就是 SLAVE 囉~
  11. ssh slave.hostname
  12. $ scp master.hostname:DATABASE_NAME.sql
  13. $ mysql -u root
  14. mysql> CREATE DATABASE DATABASE_NAME;
  15. mysql> use DATABASE_NAME;
  16. mysql> source DATABASE_NAME.sql;
    # 因為上述有加入 --master-data 的命令, 所以 CHANGE MASTER 等, 已經有自動加在檔案的開頭, 不過此 CHANGE MASTER 並沒有寫 MASTER 主機的資訊, 所以可於下述 /etc/my.cnf 設定, 或者去修改 DATABASE_NAME.sql, 將 CHANGE MASTER 加入主機資訊. (在此採用修改 /etc/my.cnf 的作法)
  17. mysql> quit
  18. $ vim /etc/my.cnf
    log-bin=mysql-bin
    server-id   = 3
    master-host     =   MASTER_DB.HOSTNAME
    master-user     =   repl
    master-password =   repl_password
    master-port     =  3306
  19. $ sudo /usr/local/etc/rc.d/mysql-server restart # BSD 預設路徑
  20. $ mysql -u root
  21. mysql> start slave;
  22. mysql> show slave status \G

會看到若 MASTER 有增加資料, Exec_Master_Log_Pos 這個值就會跟著增加. (Exec_Master_Log_Pos: 執行 MASTER LOG 的 POSITION), 在此任何 MASTER 的 新增/修改 都應該會自動 replication 過來 SLAVE 囉~ (中間中斷的時間, 資料也會自動補上, 因為 --master-data 已經將當時的 POSITION 記下來了, 只要倒回去, 就會自動將資料補回來)

五月 22, 2008
» Postfix 設定將所有信件 BCC 到某個使用者

Postfix 將所有信件轉寄一份到 abc 這個 User, 記錄設定方法~

vim /etc/postfix/main.cf (Debian)

# main.cf 最下面加入這三行即可
always_bcc = abc
show_user_unknown_table_name = no
local_recipient_maps =

相關參考

四月 17, 2008
» GoDaddy 設定 DNS 步驟

GoDaddy 本身就有設定 DNS 的功能, 但是總覺得找起來太麻煩, 所以都直接將 NameServer 指到 EveryDNS 去, 由 EveryDNS 來設定比較簡單.

GoDaddy 指定到 EveryDNS 的設法:

  1. 進入 GoDaddy 後, 點選 DOMAIN NAME
  2. 選擇 Nameservers Icon
  3. 於 Tab 選項選 Default Nameservers
  4. 內容有 Default Hosting Nameservers, Default Parked Nameservers,Custom Nameservers, 選 Custom Nameservers
  5. 再於 Tab 選項 Customer Nameservers 選項
  6. 輸入
    NS1.EVERYDNS.NET
    NS2.EVERYDNS.NET
    NS3.EVERYDNS.NET
    NS4.EVERYDNS.NET
  7. 這樣子按 OK 即可.
  8. 再下來就是到 EveryDNS 去註冊帳號, 設定即可.

但是 EveryDNS 的缺點是 還蠻常掛掉的(昨天要設定時又掛了 :~~ ), 所以還是來研究一下 GoDaddy 設定 DNS 的方法.

現在想要設定的是下面兩種不同的方式:

  •  連到 DOMAIN 的, 全部都轉到 www.DOMAIN(由 GoDaddy 送 301/302 Redirect), www.DOMAIN 就是主要的 Host Server.
  •  設定整個 DOMAIN, 甚至 *.DOMAIN 都直接指到主要的 Host Server 去.

假定 www.DOMAIN 的 IP 是 100.0.0.1, www.DOMAIN 請置換成您自己的 DOMAIN NAME.

設定 連到 DOMAIN 的, 全部都轉到 www.DOMAIN(由 GoDaddy 送 301/302 Redirect), www.DOMAIN 就是主要的 Host Server

  1. 進入 GoDaddy 後, 點選 DOMAIN NAME
  2. 點選 Forword Icon (在這邊先設定, 如果連到此 DOMAIN, 會導到 www.DOMAIN)
  3. 現在會位於 Forwarding 的 Tab
    1. 選 Enabled
    2. Forward To 輸入: www.DOMAIN
    3. Redirect Type: 301 是長期轉換, 302 是暫時轉換, 通常我都選 302.
    4. 選 OK 即可.
  4. 點選 Nameservers Icon (在這邊設定 DNS Server 請 GoDaddy 幫忙 host)
    1. 選擇 Default Parked Nameservers (NS17.DOMAINCONTROL.COM, NS18.DOMAINCONTROL.COM)
    2. 按 OK 即可
  5. 找到 Total DNS: (Available), 點選 "Total DNS Control and MX Records" 連結進入(於頁面中間, 會有看到 Status, Privacy, Name Servers 等等資訊的地方, 會找到 Total DNS: (Available), 點選 "Total DNS Control and MX Records" 連結進入. (於此設定 DNS A/CNAME/MX 等))
    1. 於 CNAME (Aliases) 將 www @ 那欄刪掉(點選最右邊的 [x].
    2. 於 A (Host) 點選 最右邊的 Add New A Record
    3. 增加 www 100.0.0.1 (這邊如果寫不進去, 可以過 5 mins 再試, 因為他會說跟 CNAME 相衝突, CNAME 剛砍, 還沒那麼快生效)
    4. (因為我們是 DOMAIN 要讓 GoDaddy 幫我們做 Redirect, 所以 @ 64.202.189.170 不變動, 只要多指定 www 到自己 host server 的 IP 即可.)
  6. 這樣子設定完, 連到 DOMAIN 的, 就會由 GoDaddy 幫我們送 Redirect 到 www.DOMAIN 囉~

設定整個 DOMAIN, 甚至 *.DOMAIN 都直接指到主要的 Host Server 去

這個設定法就簡單很多, 要注意的是 Nameservers 一樣是要用 Default Parked Nameservers, 其它就只要進入 Total DNS Control and MX Records 設定, 在此只紀錄 Total DNS Control and MX Records 設定, 其它的參考上述即可.

  1. 登入 GoDaddy 帳號
  2. 找到 Total DNS: (Available), 點選 "Total DNS Control and MX Records"
  3. 於 CNAMES(Aliases) 砍掉 www @, 或裡面都砍掉也可以.
  4. 於 A(Host) 做下述的新增/修改:
    1. @ 64.202.189.170 => 點選右邊的筆, 做修改, 改成 @ 100.0.0.1
    2. 點選 Add New A Record 新增 www 100.0.0.1
    3. 點選 Add New A Arecord 新增 * 100.0.0.1 (不管任何 *.DOMAIN, 都會連到 100.0.0.1)
  5. 這樣子就完成囉~ PS: Google Mail Hosting 也是於此設定~ :)

其它相關網頁

三月 11, 2008
» MySQL 設定 Replication (Master - Slave)

MySQL 設定寫入 Master 後, 自動 Replication 到 Slave 去, 運作基本原理是:

  1. INSERT/UPDATE/DELETE 語法, 自動寫入 Master 的 binlog file.
  2. 由 GRANT REPLICATION 授權的帳號, 自動將 SQL 語法 repl 到 Slave 的 DB 執行.
  3. 因而完成 Replication 的動作.

下述詳細可見: MySQL 5.0 Reference Manual :: 15 Replication

設定 Replication 的操作 (Master)

  1. $ sudo vim /etc/mysql/my.cnf # 下面是 Debian Linux 的設定, 找到下面的設定, 新增/修改 成下面這樣子.
    #bind-address           = 127.0.0.1
    server-id               = 1
    log_bin                 = /var/log/mysql/mysql-bin.log
  2. $ sudo /etc/init.d/mysql restart
  3. $ mysql -u root -p # 進入 mysql
  4. mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'repl_pass'; # 先假設 帳號 repl, 密碼 repl_pass, 此步驟是 設定 repl 的帳號/密碼, 格式: GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%.mydomain.com' IDENTIFIED BY 'repl_password'; (Replace <some_password>with a real password!)
  5. mysql> FLUSH TABLES WITH READ LOCK; # 先讓 DB 不要再寫資料進去
  6. mysql> SHOW MASTER STATUS; # 這邊資料都要記好, 等一下設定 Slave 要用
    +----------------------+------------+------------------+----------------------+
    | File                     | Position   | Binlog_Do_DB | Binlog_Ignore_DB  |
    +----------------------+------------+------------------+----------------------+
    | mysql-bin.000014  |      232   |                      |                          |
    +----------------------+------------+------------------+----------------------+
  7. mysql> quit # 離開, 準備倒資料
  8. 倒資料, 可以由下述的方法倒, 此次採用步驟 1
    1. $ mysqldump -u root -p DB > dbdump.sql
    2. $ mysqldump --all-databases --lock-all-tables >dbdump.sql
    3. $ mysqldump --all-databases --master-data >dbdump.sql # --master-data: 會自動將CHANGE MASTER 的語法帶在裡面
  9. $ mysql -u root -p # 進入 mysql
  10. mysql> UNLOCK TABLES; # dump 完資料後, 進去 mysql 解除唯讀
  11. 再來就是將 dbdump.sql scp 到 Slave 去即可.
  12. Master 就到此為止.

設定 Replication 的操作 (Slave)

  1. $ sudo vim /etc/mysql/my.cnf
    server-id               = 2  # server-id 不能與其它機器相同
    log_bin                 = /var/log/mysql/mysql-bin.log
  2. $ mysql -u root -p # 進入 mysql
  3. mysql> create database DBNAME;
  4. mysql> use DBNAME; source dbdump.sql; 或 $ mysql -u root -p DBNAME < dbdump.sql
  5. mysql> CHANGE MASTER TO
         MASTER_HOST='MASTER_HOSTNAME',
         MASTER_USER='repl',
         MASTER_PASSWORD='repl_pass',
         MASTER_LOG_FILE='mysql-bin.000014',
         MASTER_LOG_POS=1319669; # 這邊就要用到之前 Master 抄下來的值.
  6. mysql> START SLAVE; # 這樣子就會開始 Replication 了, 會將 LOG_POS 之後新的資料開始 sync 回來.
  7. mysql> show master status; # 檢查一下設定
  8. mysql> show slave status; # 檢查一下設定, 看是不是有異常狀況.

測試

  1. 在 master: mysql> create database test2;
  2. 在 slave: mysql> show database; # 應該會看到 test2
  3. 在 master 上的任何操作應該都會馬上 replication 到 slave 去.

其它相關網頁

二月 22, 2008
» 設定 Wget 透過 Proxy 抓取檔案

要抓取 Debian 的 ISO, 直接 wget -c 抓很慢, 大概都在 20k/s 上下跑, 所以找找怎麼透過 Proxy 來抓.

找到這篇: wget and the proxy server

設定方法

  1. vim ~/.wgetrc
  2. .wgetrc 內容
    http_proxy = http://proxy.hinet.net:80/
    use_proxy = on
    wait = 15

其它 ISP 再自行更改 http_proxy 的設定即可, 再 wget -c 抓, 速度就加到 70k/s 囉~ :)

十二月 1, 2007
» Gmail 增加其它 Email 來當寄件者

使用 Google AppsGmail 時會遇到一個問題, 如果信箱有個 ex: service@DOMAIN_NAME, 然後這是共用的信箱(大家都會收到的信箱).

那要用 service@DOMAIN_NAME 回信的話, Gmail 要做什麼樣的設定才能用此 Email 回信呢~

主要就是依照下述步驟:

  1. 點選右上角的 Setting -> Accounts -> Add another email address
  2. 會跳出一個視窗, 填寫 service@DOMAIN_NAME, 然後這個跳出來的視窗先不要關掉(馬上要填寫驗證碼)
  3. Gmail 會馬上發信確認, 然後拿到驗證碼, 填進去剛剛的視窗即可.
  4. 選 寫信 或 回信, 寄件者的部份就會多一個 service@DOMAIN_NAME 可以選擇了.

十一月 21, 2007
» TRAC 關閉 Source Code View, 其它功能都可以使用 的 參數設定

TRAC 設定, 我通常都很懶, 一定是直接給 TRAC_ADMIN, 如下 Command:

sudo trac-admin TRAC_PATH/PROJECT_NAME permission add USERNAME TRAC_ADMIN

但是有人說說不想讓某些人看 Source Code(只讓他管其它東西), 本來想說, 那就把 BROWSER_VIEW 拿掉就可以了, 原來不是照我想的一樣, 沒有 Disable 的東西可以設... Orz..

下面是全部可以設定的參數:(sudo trac-admin TRAC_PATH/PROJECT_NAME permission list)

BROWSER_VIEW, CHANGESET_VIEW, CONFIG_VIEW, FILE_VIEW, LOG_VIEW,
MILESTONE_ADMIN, MILESTONE_CREATE, MILESTONE_DELETE, MILESTONE_MODIFY,
MILESTONE_VIEW, REPORT_ADMIN, REPORT_CREATE, REPORT_DELETE, REPORT_MODIFY,
REPORT_SQL_VIEW, REPORT_VIEW, ROADMAP_ADMIN, ROADMAP_VIEW, SEARCH_VIEW,
TICKET_ADMIN, TICKET_APPEND, TICKET_CHGPROP, TICKET_CREATE, TICKET_MODIFY,
TICKET_VIEW, TIMELINE_VIEW, TRAC_ADMIN, WIKI_ADMIN, WIKI_CREATE,
WIKI_DELETE, WIKI_MODIFY, WIKI_VIEW

所以我就乾脆把 *_ADMIN 除了 TRAC_ADMIN 的都拉出來, 再設進去:

sudo trac-admin TRAC_PATH/PROJECT_NAME permission add USERNAME MILESTONE_ADMIN REPORT_ADMIN ROADMAP_ADMIN TICKET_ADMIN WIKI_ADMIN

結果, 發現到秀出來的界面差異真大, 只有幾個功能可以看, 其它都還是不行...

最後乾脆一點, 那我就把上面所有功能, 拔掉 BROWSER_VIEW 和 TRAC_ADMIN, 其它全部進去, 結果就如下:

sudo trac-admin TRAC_PATH/PROJECT_NAME permission add USERNAME CHANGESET_VIEW CONFIG_VIEW FILE_VIEW LOG_VIEW MILESTONE_ADMIN MILESTONE_CREATE MILESTONE_DELETE MILESTONE_MODIFY MILESTONE_VIEW REPORT_ADMIN REPORT_CREATE REPORT_DELETE REPORT_MODIFY REPORT_SQL_VIEW REPORT_VIEW ROADMAP_ADMIN ROADMAP_VIEW SEARCH_VIEW TICKET_ADMIN TICKET_APPEND TICKET_CHGPROP TICKET_CREATE TICKET_MODIFY TICKET_VIEW TIMELINE_VIEW WIKI_ADMIN WIKI_CREATE WIKI_DELETE WIKI_MODIFY WIKI_VIEW

這樣子就除了 source code 看不到外, 其它都正常囉... 真是太神秘了.. XD (雖然作法有點糟, 不過沒空管這個, 能動最重要.. XD)

PS: 在加之前記得要先 sudo trac-admin TRAC_PATH/PROJECT_NAME permission remove USERNAME '*' 把權限都先拿掉再設.

十一月 8, 2007
» 使用 Mplayer 看 DVD 的語法

平常看 DVD 都用 DVD Player 看, 但是片子挑片就很頭大, 再來決定用 Windows 的 Media Player 或 PowerDVD 看, 遇到片子好像半壞半不壞的, 就是程式當掉, 然後就都沒辦法看囉. :~~~ 

昨天試試 Mplayer 來看這片半壞的片子, 沒想到效果意外的好, 壞掉的地方, 會頓一下, 然後繼續往下播, 怎麼樣都還是可以把片子看完~ :P

不過有點頭大是, mount 完後, 看 cdrom 只有兩個目錄, 看 VOB 檔好像有些片段找不到....

所以趕快記 Mplayer 看 DVD 的指令:

gmplayer dvd:// -sid 0
  • gmplayer: 我是用 GUI, 直接 mplayer 應該也可以看.. :P
  • dvd:// : 就是這樣子打就是了..
  • -sid 0: 語系 使用中文語系

八月 13, 2007
» Debain 修改系統時區

前幾天 Debian 更新時, 時區被修改了, 改回來的方法如下:

dpkg-reconfigure tzdata

重新設定 tzdata(process a time zone definition file) Package 即可.

八月 5, 2007
» Vim 設定 foldmethod for PHP

Vim 只要 {{{ 和 }}} 包起來, 就會自動折合 fold 的動作, 但是不知何時開始, 在 php 裡面的 fold 動作都沒用了, 花了點時間研究怎麼再弄出來(.vimrc 設了都不理我, 但是在 .vimrc 裡面使用 {{{,}}} 都還是有用. :~)

Fold 的動作快速鍵:

  • zo: Open Fold
  • zc: Close Fold 
  • zm: 全部縮起來(將 foldlevel-1)
  • zM: 全部縮起來(設 foldlevel=0)
  • zf: 製作出起始 Fold 符號
  • zF: 製作出起始與結尾 Fold 符號

照理說是 .vimrc 設下述兩行就可以用.

  • set foldmarker={{{,}}}
  • set foldmethod=marker
  • set foldlevel=0 " 預設全部關閉

但是 PHP 不行(預設 php.vim 設的 foldmethod=syntax, 但是又吃不到 .vimrc 設的 foldmethod), 然後在 .vim/syntax/php.vim 直接寫這兩行也不行, 最後的解法如下:

  1. 先把預設的 php.vim cp 過來, 然後再於最下方加上這幾個設定.
  2. cp /usr/share/vim/vim71/syntax/php.vim ~/.vim/syntax/php.vim
  3. vim ~/.vim/syntax/php.vim # 於檔案最下方加入下面兩行
    set foldmarker={{{,}}} " 可省略, marker 預設就是 {{{,}}}
    set foldmethod=marker
    set foldlevel=0 " 預設全部關閉
  4. 順便再多加一行 hi Comment term=standout cterm=bold ctermfg=0
  5. 最近註解喜歡看黑色 XD

這樣子就收工囉~ 開個檔案弄一行 {{{, 再換行打 }}}, 然後 zc 看看會不會合起來就知道成功失敗囉~ :P

更多詳細可參考: