2007年1月31日 星期三

在 WordPress 的文章中加入社群書籤 HEMiDEMi 和 MyShare

剛剛加了兩個社群書籤的連結到 WordPress 裡面,分別是 HEMiDEMiMyShare。加入的方法很簡單,只要找到 WordPress 的主目錄下 /wo-content/theme/{THEME_NAME}/ 的 index.php 和 single.php 這兩個檔案,接下來在 The Loop 找個位置插入以下的 code

  • 如果要加入 HEMiDEMi 的貼紙,插入以下的 code
    <a href="http://www.hemidemi.com/user_bookmark/new?title=<?php the_title(); ?>&url=<?php the_permalink() ?>&description=&via=sticker"><img src="http://www.hemidemi.com/sticker/addcolor_8015.gif" mce_src="http://www.hemidemi.com/sticker/addcolor_8015.gif" border="0" alt="收到 HEMiDEMi" title="收到 HEMiDEMi" align="absmiddle"/></a>


  • 如果要加入 MyShare 的貼紙,插入以下的 code
    <a href="http://myshare.url.com.tw/index.php?func=newurl&url=<?php the_permalink() ?>&desc=<?php the_title(); ?>"><img src="http://digest.url.com.tw/images/add2myshare_80x15-1.gif" mce_src="http://digest.url.com.tw/images/add2myshare_80x15-1.gif" border="0" alt="收到 My Share" title="收到 My Share" align="absmiddle"/></a>



這樣每篇文章內容的附近 (看你插在 The Loop 的哪個位置),就會出現下面的貼紙

HEMiDEMi MyShare

這樣你的讀者就可以很方便的將你的文章加入他的社群書籤裡面囉。

利用 mpack 自動備份檔案到 Gmail

GMail 的容量那麼大,除來用來儲存信件之外,當然也可以用來當作備份重要檔案的第二選擇。

之前就有使用 GMail 備份檔案的習慣,不過原先是利用 metasend 這支程式來寄送包含夾檔的信件,但是最近發現夾檔的 size 太大的話,他會自動把檔案切割分兩份寄送,可是這樣會造成 GMail 這邊只收到第一部份的夾檔,第二部分的夾檔會出現無法完全解碼的情況。

Gmail-metasend error

所以我找到另外一支寄送夾檔的程式 - mpack,所需要用到的參數比 metasend 簡單很多。mpack 的安裝相當簡單,在 Gentoo 下的安裝只要直接執行
$ emerge mpack

不到一分鐘,就會自動將 mpack 安裝完成。mpack 的參數指令大概如下
mpack [ -s subject ] [ -m maxsize ] [ -c content-type ] file address ...

[] 之內的選項都可以省略,其他部分簡單說明如下

  • subject 就是信件的標題

  • maxsize 就是夾檔的最大 size

  • content-type 則是指定夾檔的 mime-type

  • file 為夾檔所在的路徑

  • address 就是收件人的 email address。


下面就是我用來備份 blog 程式碼和資料庫的 shell script,提供大家當作參考。
#!/bin/sh

DATE=`date +%Y%m%d%H%M`
BACKUP_PATH='/home/backup'
STOORZ_EMAIL='stoorz6@gmail.com'
STOORZ_DB_DST="${STOORZ_BLOG_HOME}/stoorz_scheme.db"
STOORZ_BLOG_DST="${BACKUP_PATH}/stoorz_blog_${DATE}.tgz"

/usr/bin/mysqldump -u root stoorz > ${STOORZ_DB_DST}

/bin/tar czvf ${STOORZ_BLOG_DST} ${STOORZ_BLOG_HOME}

/usr/bin/mpack -s "Backup stoorz blog `date +%Y-%m-%d_%H:%M`" -c "application/octet-stream; name=\"stoorz_blog_${DATE}.tgz\"" ${STOORZ_BLOG_DST} $STOORZ_EMAIL

rm -rf ${STOORZ_BLOG_DST}

Kobe Bryant 被禁賽

剛剛看到消息,Kobe Bryant 因為在上一場對馬刺的比賽,"不小心" 打到 Manu Ginobili 的臉,雖然當時裁判沒有吹判任何技術犯規,但是 David Stern "總裁" 決定還是將 Kobe 禁賽一場。以下是事件發生片段



看了之後會不會覺得,這樣打一下就禁賽一場,那上次的東風 vs 達欣大亂鬥,張智峰敲了對方兩下,最後連一點懲罰都沒有,還是可以繼續參加接下來的比賽。從這邊就可以看到 NBA 高層的鐵腕,相對於 SBL "高層"的高明判決。

Google Reader 支援 embed tag

今天早上打開 Google Reader 閱讀訂閱的 RSS feed,發現 Google Reader 已經開始支援顯示 embed tag 了



之前在看有嵌入影片的文章,例如 YouTube 或是 Google Video 的影片,Google Reader 都會自動過濾掉 <embed> 的 tag,現在總算開始支援了,以後就不用為了看影片進入網站閱讀。不過這個支援對 blogger 是有壞處的,因為除非 blogger 設定 RSS feed 的顯示行數,不然的話,只要設定完整顯示,讀者通常不會想再進到 blogger 的網頁裡面閱讀,這樣對於需要廣告獲利來支撐的 blogger 來說,是不太願意樂見的,但是對於讀者來說,當然是介面越方便使用越好,限制越少遇到越好囉。

2007年1月29日 星期一

2007 年二月期貨結算日

今年的二月的期貨結算日相當特別,通常台指期貨的結算是在
每個月的第三個星期三為最後交易日,隔天,也就是每個月的第三個星期四為期貨結算履約日。

但是今年的二月並沒有第三個星期三和第三個星期四,因為 2/21 和 2/28 分別是春節假期和 228 紀念日,所以今年二月的台指期指結算就將 2/26 訂為該月的最後交易日,而 2/27 則為該月的台指期貨結算履約日。這樣就也意思了,因為摩台指結算通常是在
每個月的倒數第二個交易日。

也就是說今年二月的摩台結算日是在 2/26,所以可以預期的到,開春的第一天不止會出現預期的紅包行情,尾盤還會出現每個月都會上演一次的摩台指結算行情,接下來隔天開盤後前十五分鐘還有一個台指期結算行情。一開春就這麼刺激,沒有小心應對的話,不是賺到笑呵呵,就是賠到脫褲子。

參考連結

2007年1月26日 星期五

二表哥訂婚之業餘攝影師

今天是二表哥訂婚之日,我受表哥委託扮演攝影師一職,原本是要用我的 Sanyo 小芒果來拍,可是有鑑於 SD 卡容量不夠大,加上畫質可能沒有想像中的好,所以商請女朋友借我他的 Sony DV 一用。

今天差點遇到拍到一半電池沒電的糗事,還好昨天機靈的想到要先幫備用電池充飽電。主電池昨天原本顯示還有 240 多分鐘可以使用,結果今天上午剛拍十分鐘,螢幕就完全變黑了,還好還有一顆備用電池可以用。剛剛問了一下,原來這台 DV 已經快兩年沒有使用了。

現在趁著將 DV raw 檔轉為 VCD 格式的空檔,寫一篇 blog 來記錄一下,剛剛看了一下,好像已經連續三天沒有寫了 blog 了,加上剛剛看了一下以前 bbs 個人版的文章,發現以前自己架 bbs 的時候,會很隨手的把當時的心情記錄下來,現在都沒有這個習慣了,加上當時會看我個人版的同學現在都忙著工作或是出國留學,也沒有人知道我架了一個 blog。

轉檔差不多要結束了,為什麼會先轉成 VCD 的格式呢?因為明天我就沒有比較快的電腦可以用了,所以暫時先轉成比較不用花時間的 VCD 格式,先燒一片拿過去表哥看一下今天訂婚的趣事,之後再來研究剪輯和如何燒成 DVD 格式,從業餘攝影師邁向 pro 攝影師之路。

2007年1月23日 星期二

昱成條款

最近創意 (3443) 因為漲勢過猛,所以證交所祭出『昱成條款』來伺候他。到底什麼事昱成條款呢?昱成條款就是
從實施處置日當天開始,連續十個交易日,個股停止融券、融資降為二成,各卷商每天受託買賣個股的申報金額,總公司不得超過六千萬、分支機構不得超過一千萬。

主要是為了限制各卷商接受委託下單的數量,降低單一卷商違約交割的風險。

昱成條款的由來大概就是,民國 86 年股市名嘴譚老師炒作昱成建設,一路使股價由 30 元飆漲到 233 元,造成融券空單回補不及,一路被嘎空,使得放空的投資人心有不甘,因此一狀告到證交所,政府因而介入處理,才會有此一條款出現。

WordPress Plugins 介紹 (1) - WP-PostViews Plus

WP-PostViews Plus 提供查閱 WordPress 文章瀏覽次數的功能,以下節錄內建的 API 說明

函式說明



  • the_views(’Views’, true)
    該篇文章的 瀏覽數
    第一個參數為 加在數字後面的說明文字
    第二個參數為 是否輸出(true為直接印出, false為回傳數值)

  • the_user_views(’Views’, true)
    該篇文章的 使用者 瀏覽數
    第一個參數為 加在數字後面的說明文字
    第二個參數為 是否輸出(true為直接印出, false為回傳數值)

  • the_bot_views(’Views’, true)
    該篇文章的 機器人 瀏覽數
    第一個參數為 加在數字後面的說明文字
    第二個參數為 是否輸出(true為直接印出, false為回傳數值)

  • get_most_viewed('’, 10, 0 , true , true)
    最多閱覽數的文章 輸出回傳的型態為以<li>和</li>包圍的項目清單
    第一個參數為 查詢文章的型態(’post’為文章 ‘page’為網頁 ‘’為兩者都要)
    第二個參數為 輸出回傳的文章數量
    第三個參數為 文章標題的字數(0為不限制)
    第四個參數為 是否輸出(true時直接印出, false時回傳數值)
    第五個參數為 是否包含機器人的閱覽數(true為包含, false為不包含)

  • get_timespan_most_viewed('’, 10, 7, true, true)
    在最近的數天內最多閱覽數的文章 輸出回傳的型態為以<li>和</li>包圍的項目清單
    第一個參數為 查詢文章的型態(’post’為文章 ‘page’為網頁 ‘’為兩者都要)
    第二個參數為 輸出回傳的文章數量
    第三個參數為 查詢的最近天數
    第四個參數為 是否輸出(true時直接印出, false時回傳數值)
    第五個參數為 是否包含機器人的閱覽數(true為包含, false為不包含)



使用者可以自行利用以上函數撰寫程式碼插入 wp-content/theme/{THEME_NAME} 下的 single.php 和 index.php 中,插入的位置在 The Loop 區塊中間。

WordPress 2.1 released

WordPress 」剛剛公布 2.1 版已經開放下載了,2.1 版的英文名稱取名為『Ella』,我剛剛已經做完更新的動作了。

因為我之前的 2.0.7 沒有安裝任何 plugins,所以 upgrade 的速度很快,只要做以下幾個步驟就可以了

  1. 解開 lastest.tar.gz

  2. 把 2.0.7 根目錄裡面的 wp-config.php 放到 2.1 的目錄

  3. 把 2.0.7 wp-content/themes 裡面的 theme 搬到 2.1 裡面同樣的目錄

  4. 開瀏覽器登入後端的 Dashboard,系統就會自動將 Database 的 schema 更新到最新的版本

  5. 然後就可以繼續寫 blog 了


新版增加了許多功能,在公布網址裡面都有詳細的說明,剛剛看到的就是 editor 支援了 auto save 的功能。不過 WYSIWYG editor 的部分,我剛剛在 Firefox 試用了一下,新增 link 和 image 的小視窗都無法正常顯示,但是在 IE 下就沒有問題。

另外就是增加了 export 的功能,這個功能除了備份的功能之外,還可以讓搬家更方便,不過 WordPress 做的那麼出色,應該不會想到跳槽這回事。

開發小組宣稱 2.0 branch 將一直開發到 2010 年,真是一段漫長的時間,並且要效法 Ubuntu 一樣,加快更新的頻率,所以下一個版本將會在 4 月 23 日推出,開法小組真是拼了。

2007年1月20日 星期六

Google Reader 內建快速鍵

Google Reader 的功能越來越強大了,越來越有 GMail 的水準了,下面是他剛公布的快速鍵列表
Tips and tricks

Here are some useful keyboard shortcuts:

  • j/k: next/previous item

  • space/ + space: next/previous item or page

  • n/p: scan down/up (list only)

  • o/enter: expand/collapse (list only)

  • s: star item

  • <Shift> + s: share item

  • v: view original

  • t: tag item

  • m: mark item as read

  • r: refresh

  • u: toggle full screen mode

  • <Shift> + a: mark all as read

  • 1: switch to expanded view

  • 2: switch to list view

  • <Shift> + n/p: next/previous subscription

  • <Shift> + x: expand folder

  • <Shift> + o: open subscription or folder

  • g then h: go home

  • g then a: go to all items

  • g then s: go to starred items

  • g then t: open tag selector

  • g then u: open subscription selector



之前剛從 bloglines 跳槽到 Google Reader,我想短期之內我會繼續使用 Google Reader 來看我的 RSS feeds。

2007年1月19日 星期五

電影『關鍵報告』的觸控式螢幕真實化



剛剛看到 digg 提到這個跟電影『關鍵報告』很類似的觸控式螢幕 demo,再加上從最近發表的 Apple iPhone 可以發現,觸控式螢幕將會成為未來的趨勢,從 digg 的討論看來,Apple 似乎擁有這項技術 (MultiTouch) 的多項專利,希望很快可以看到運用這項技術的產品問世。

WordPress 2.1 版相容 plugins 列表

WordPress 」預定於 2007/01/22 發佈 2.1 版,我在前幾天才裝好 2.07 版,為了避免不必要的麻煩,所以目前我的 WordPress 並沒有安裝任何的 plugins,因為每個 plugin 在不同版本的 WordPress 可能會有不相容的問題。

為了解決這個問題,WordPress 提供了一份相容於 2.1 版的 plugins 列表,有興趣升級到 2.1 版的朋友可以參考一下。我自己則是打算等 WordPress 2.1 版 release 出來之後,再來慢慢幫我的 WordPress 加 plugins。

2007年1月18日 星期四

將 Firefox 預設 RSS 訂閱改成 Google Reader

Firefox 預設指向 Google 的 RSS 訂閱都會被導向 Google 的個人首頁,如果要改成導向 Google Reader 的話,需要做以下的設定。
首先,在 Firefox 的網址列輸入
about:config



在過濾器的部分輸入
contentHandler



你會看到下面的 browser.contentHandlers.types.2.title 的值是 Google Reader,接下來只要在 browser.contentHandlers.types.2.uri 的地方按右鍵,選『修改』,將原來的值改為
http://www.google.com/reader/view/feed/%s



最後,重新啟動 Firefox 就成功了。

2007年1月17日 星期三

lighttpd 下跑用 perl 寫的 cgi 動態網頁

lighttpd」預設是關掉用 perl 寫的 cgi 動態網頁,不過要讓他跑起來很簡單,只要打開 /etc/lighttpd.conf (如果你的 lighttpd 有安裝在自訂目錄,就不是這邊指的 /etc 下),做兩個步驟的設定就可以了。


先將 server.modules 裡面的 mod_cgi 註解拿掉


server.modules = (

"mod_rewrite",

# "mod_redirect",

"mod_cgi",

...

}


最後找到 cgi.assign,把這個部分的註解也拿掉


cgi.assign = ( ".pl" => "/usr/bin/perl", ".cgi" => "/usr/bin/perl" )


然後存檔,restart lighttpd, 這樣你的 lighttpd 就可以跑 perl 寫的網頁了。

Firefox 的 plugins 版本資訊

有時候我們會想要知道自己的 Firefox 裡面所裝的 plugins 有哪些,或是 plugins 的版本是第幾版,有一個方法可以很快找到這些資訊,只要在 Firefox 的網址列輸入
about:plugins

就可以得到類似以下的 plugins 相關資訊

Firefox plugins information

各位看倌,是不是很簡單啊。

SeedNet PPPoE ADSL 通用上網帳號密碼

剛剛看到這個資訊,雖然我用的是 Hinet,不過還是先記下來以備不時之需。
帳號: seednet (不分大小寫)
密碼: seednet
如需取得固定IP,則帳號改為『 seednet# 』

註1: 密碼不驗證,是因為以客戶的PVC認證即可
註2: 此通用帳號僅適用寬頻的PPPoE連線(不含撥接)

WordPress 裝在 lighttpd 上的 permalinks 設定方法

WordPress 」內建的 permalinks 設定主要是支援 「Apache」 的 .htaccess,但是在「lighttpd」下卻沒有這個檔案可以使用,所以必須要另外尋找其他的解法。兩年前剛裝的時候還沒有找到適合的方法,剛剛又找了一下,總算讓我很快就試出來了。

我目前的「WordPress 」版本是 2.0.7,以下的解法應該適用於所有 2.0 版本。

先到「WordPress 」後端的平台,選擇『Options』 ->『Permalinks』,之後會進入類似下面的頁面



接下來在第一個方塊裡面將『Custom』選項點選,然後在 input box 裡面填入
/archives/%year%/%monthnum%/%day%/%post_id%/

在第二個方塊裡面的 input box 填入
/categories

這樣「WordPress 」部分的設定就完成了,接下來換「lighttpd」的部分,先打開「lighttpd」的設定檔 /etc /lighttpd.conf (如果你的 lighttpd 有安裝在自訂目錄,就不是這邊指的 /etc 下),然後先將預設關閉的 mod_rewrite 註解拿掉
server.modules = (
"mod_rewrite",
# "mod_redirect",
# "mod_alias",
"mod_access",
....
)

在 url.write 的部分加入一行
url.rewrite = ( "^/(archives|categories|comments|feed)/" => "/index.php" )

尋找 server.error-handler-404 字串,將 http status code 404 的 error-handler 指到 WordPress 主目錄下的 index.php 檔
server.error-handler-404 = "/index.php"

(這邊假設 WordPress 放在根目錄下,如果 WordPress 放在 lighttpd 設定的 virtual hosts 下,請參考 lighttpd 的 virtual hosts 虛擬主機設定)

最後存檔,restart lighttpd 之後,這樣子就大功告成了。

lighttpd 的 virtual hosts 虛擬主機設定

lighttpd」的 virtual 設定相當簡單,只要在 /etc/lighttpd.conf 設定檔裡面 (如果你的 lighttpd 有安裝在自訂目錄,就不是這邊指的 /etc 下),尋找 prefix 為 simple-vhost.* 的字串,例如
simple-vhost.server-root = "/var/www/servers/"
simple-vhost.default-host = "default"
simple-vhost.document-root = "/"

將這三行前面的註解給拿掉,然後存檔,restart lighttpd,這樣你的 lighttpd 就可以支援 virtual hosts 虛擬主機了。

放置每個 virtual host 網頁的目錄就在 simple-vhost.server-root 所設定的目錄下,例如

  • hostname 是 stoorz.org 的話,就放在 /var/www/servers/stoorz.org/ 下。

  • hostname 是 blog.stoorz.org 的話,就放在 /var/www.server/blog.stoorz.org/ 下。


此外,不同的 virtual host 會有各自不同的設定,在 /etc/lighttpd.conf 的設定檔裡面,我們利用 $HTTP["host"] == "HOSTNAME" {} 來分開設定,例如
$HTTP["host"] == "blog.stoorz.org"{
server.document-root = "/var/www/server/blog.stoorz.org"
server.error-handler-404 = "index.php"
...
}

這樣子的話,不同的 virtual host 就可以有各自的區塊來作自己的設定。

2007年1月16日 星期二

blog 好工具(二) FeedBurner

blogger 有時會遇到搬家之後,原先的 blog subscribers 因為找不到 rss 的位置而流失的問題。「FeedBurner」解決了這個問題。

一般的 blog service provider 或是自己架站的 blogger 會拿到類似以下作為 rss 的 link :


  1. http://blog.stoorz.org/?feed=rss2

  2. http://googleblog.blogspot.com/feeds/posts/default



但是當我們搬到另外一個 blog service provider 之後,上面這個 rss link 就會由新的 blog service provider 提供,link 的位置就會和原來的不同了,如果先前的搬家廣告沒有做好,基本上都會流失一部份的 readers,但是有了 「FeedBurner」,情況就完全改變了。

我們可以到「FeedBurner」註冊一個帳號,然後將自己 blog 的 rss link 丟進去,拿上面例子的第一個 link 當例子,「FeedBurner」就會給我們一個永久固定的 rss redirect link 如下:
http://feeds.feedburner.com/stoorz

這樣子,我們只要告訴 readers 自己 blog 的 rss link 是上面這個,以後只要搬家或是換網址,只要到「FeedBurner」作修改,你的blog subscribers 完全不會注意到有什麼改變,一切就可以一勞永逸了。

FeedBurner」除了提供以上的功能,他還提供了相多的好功能,例如他可以統計有多少的 reader 訂閱了你的 blog,每天的訂閱數統計變化量等等,許多相當有用的分析功能。最重要的是,他是免費的,雖然是簡單的功能,但是卻免除了 blogger 搬家時所造成的很多麻煩。

blog 好工具(一) Flickr

Flickr」 是用來放照片用的,目前用自己的 ADSL 架站,很明顯的頻寬是相當吃緊的,把照片這些大檔案放在網路上其他 service provider 不失為一個好辦法。

這一類的 service provider 另外還有 「Zooomr」,以我的觀點來看,申請這一類服務,除了他的速度夠快,同時要能夠支援外連(註1),另外他提供 API 給我們使用,我自己的相簿當然要在自己的電腦裡面或是自己開發的系統裡面留一份做備份,有了他必須要能夠提供存取相片的 API,有了這種 API,我就能夠寫一些小程式來 sync 放在 「 Flickr」和我的電腦兩邊的相簿。

其實這些 API 還有一個應用,像一般 blogger 都會想要利用自己家裡的電腦架站,但是考慮到自己家裡的頻寬相當寶貴,所以像相片這一類的需要消耗大量上傳頻寬的連結,儘量能夠利用其他網站所提供的服務最好(當然自己的網站是要非營利的網站才可以這樣做)。blogger 常常需要拍攝很多相片來輔助解釋自己的文章,這些的相片管理有時候相當麻煩,備份是最需要被考慮的因素。

解決這個問題的方法就是,利用 API 來開發將相片同時備份到兩個以上相簿網站的程式,同時產生一個 dynamic link,寫 blog 要貼圖的時候就可以貼這些 dynamic link,這個 dynamic link 可以檢查 blog visitor 端和這些相簿網站的連線速度,當 blog 被瀏覽的時候,dynamic link 會選擇和 blog reader 端之間連線速度最快的相簿網站提供相片瀏覽,這樣 blog reader 瀏覽 blog 時就可以得到最佳的瀏覽速度。

上面這個想法不知道有沒有人實作出來了,最近有點忙,等有空的時候,而且又還沒有人作出來的話,我就來寫寫看吧,好久沒有寫程式了。

註1: 外連,舉兩個無法支援外連的反面例子,如「無名小站」和「Xuite」,這兩個網站同時提供相簿和 blog 的儲存服務,但是儲存在這兩個相簿網站的圖片,只提供給該網站的 blog 或是留言版做貼圖的連結,如果你用其他的 blog service provider 寫 blog,又想要貼放在這兩個網站相簿裡面的照片,很抱歉,你得不到它,你會看到一堆叉叉,也就是說他不提供外連的服務。

2007年1月15日 星期一

Start blogging!

WordPress 」裝好了 (其實也不是第一次裝了,大概兩年前也裝過一次,不知不覺就過了那麼久了。)

一直都覺得要記錄一點東西,但是念 cs 的自己老是想將這些東西記錄在自己開發的程式平台,但是這個程式平台一直都沒有辦法真的動手去開發,就這樣一天拖過一天,不小心就過了那麼久了,所以決定先把這個平台擺在旁邊,在這個以 content 為主的年代,以一般使用者的角度來看,把 content 做好比較重要。

現在就缺一台數位相機,這個週末找個時間去漢口街買一台。