On twitter

@tonychou 植樹節居然放假!!

follow me on twitter

Archive for the ‘Blog’ Category

網誌青年運動會 BOF 2009 1

波夫 2009

2009年第五屆網誌青年運動會, 9/27 在四四南村呦! 小弟我會在 部落客人生良伴—部落格小工具 這個 session 跟其他大大一起在台上談部落格小工具, 希望我不會亂講話, 或者是講不出東西 XD

微網誌的崛起, 其實身邊朋友的部落格更新頻率是真的有變少, 甚至有些就不更新了, 這對部落格小工具的生存來說真的是個威脅, 這似乎是 blog widget 未來發展需要認真思考的議題。(好難喔~”~)

咳~ 最近工作超忙, 希望能擠出時間來想想一些相關的東西, 避免到時候言之無物。

anyway, 部落格邊欄有空位的人, 幫忙貼一下左邊這張貼紙宣傳一下, 一起來玩吧 :p

September 17th, 2009 Blog Tags: ,

Webfaction 6

幾個月前把 blog 跟 twitthat 搬到 media temple 去, 因為越來越懶得管 server, 可是跑了一陣子之後, 發現 media temple 的 mysql 離線的次數離譜的高, 一天至少會收到 10 封 DB 連不到的信。 當然這一切也有可能是因為我比較衰的緣故。只是, 一個月 20 塊美金的價格, 怎麼感覺像是在用 godaddy 或是 bluehost ( 當然我說得比較離譜 XD )。 只是…這種服務價格比未免也差距太大。 而且還要開 grid container 才能用 django 或是 rails。

後來我在 django community 看到 Django friendly 這個站, 上面列出一些用 django 的網友選出的 hosting, 第一名是 webfaction, 再來是 slicehostlinode, 而 webfaction 的分數贏很多阿~ 所以探查了一下之後, 就買了一年的 webfaction 的 shared hosting, 一個月才 $8.5 塊, 還算便宜。

webfaction 的 shared hosting 除了可以 ssh, 也可以自己從 source compile 裝 git, mercurial 在自己的 home, 我還是第一次看到這種 shared hosting, 覺得他的價格未免也太划算了, 而且還可以跑 django, rails 勒。另外也有 TurboGear 跟 CherryPy 可以選擇呦!

目前用了兩個多月, 感覺都還不錯, 目前唯一一個缺點就是 PHP 沒辦法直接用 mail function 寄信, 除此之外, 我覺得 webfaction 的 C/P 值真是太高了阿!!! 最後, 如果有要買 webfaction 的朋友們, referer 不知道填誰的話, 可以填我的帳號喔 XD

( 其實我在上面的 webfaction 的連結都做了手腳 LOL )

June 13th, 2009 Blog, Web Tags: , , ,

Wordpress 2.7 threaded comments 0

wordpress_threaded_comments
今天在搬我的 blog, 把他從 http://tzangms.com/blog 搬成 http://tzangms.com。 本來首頁一直保留著, 想說之後可以弄個什麼東西的, 不過忘記從哪一版開始的 wordpress 就可以另外把某個 page 指定為首頁, 然後又心血來潮, 所以就乾脆把 blog 往上搬一層。

另外也把 lighttpd 換成 apache, 因為 lighttpd 好像不支援 301 的 redirect 方式。

就玩著玩著, 突然發現了後台的 discussion 設定, 可以開啟 threaded comments, 就開來玩看看了, 哈, 也剛好我目前用的 theme 就有支援 threaded comments, 真不錯! 以後不用再 @ 來 @ 去了 XD

December 26th, 2008 Blog Tags: , ,

Wordpress 2.7 後台選單外掛 : Admin Drop Down Menu 4

wordpress admin drop down menu plugin

wordpress admin drop down menu plugin


我覺得 wordpress 2.7 後台的選單變成由上往下, 真的是很麻煩! 我的螢幕是寬的阿! 因為如果選的功能是在最下方的話, 我就得去把 scrollbar 往下拉才能看得到子選項, what the…

anyway, 在 RSS reader 看到這個 Worpdress Admin Drop Down Menu 外掛, 用起來舒服多了。

December 14th, 2008 Blog Tags:

MovableType 4 轉 Wordpress 2.6 11

記錄一下由 MovableType 轉換至 Wordpress 的東西。 其實要從 MT 轉換到 Wordpress 還滿簡單的, 只要從 MT 匯出, 在從 Wordpress 匯入即可, 不過要顧及 SEO 的部份, 不讓原有的網址失效, 就得花點工夫來處理。

在 MT 的匯出檔案中, 並沒有帶著每篇文章的 post id。 而匯入到 Wordpress 之後的 post id, 則是累加上去的, 所以在轉換、匯入到 Wordpress 之後, 無法根據文章的 post id 來做 url rewire, 把舊的網址給轉到新的網址。 這麼一來, 舊的網址就會失效, 原本的 page rank 也可以能隨之下降。

所以這裡要來記錄, 如何在轉換之後, 能夠讓原本的網址連至新的網頁。 所以大多都是在針對 post id 的處理, 我們可以根據 post id, 來對應新舊文章。本篇文章以 MT 4.1 轉換至 Wordpress 2.6.5 為範例。

在開始之前, 請先試著把 MT 匯出的檔案匯入到 Wordpress, 看看是否能夠順利匯入, 因為在匯入的時候, 發現到, 如果有重覆的文章標題 (title), 則無法正常進行匯入。 碰到重覆的文章標題時, php 會 time out。 如果有重覆標題時, 請把重覆的標題改掉。 當匯入正常時, 再進行以下步驟。

1. 首先, 因為 MT 在匯出檔案時, 是不會有 post id 的, 所以必須修改匯出的程式, 讓他可以匯出 post id。可以修改下面這個檔案:

cgi-bin/lib/MT/ImportExport.pm

找到約 480 行, 應該可以看到如下的程式碼:

## Create template for exporting a single entry
require MT::Template;
require MT::Template::Context;
my $tmpl = MT::Template->new;
$tmpl->name('Export Template');
$tmpl->text(<<'TEXT');
AUTHOR: <$MTEntryAuthor strip_linefeeds="1"$>
TITLE: <$MTEntryTitle strip_linefeeds="1"$>
BASENAME: <$MTEntryBasename$>
STATUS: <$MTEntryStatus strip_linefeeds="1"$>
ALLOW COMMENTS: <$MTEntryFlag flag="allow_comments"$>
CONVERT BREAKS: <$MTEntryFlag flag="convert_breaks"$>
ALLOW PINGS: <$MTEntryFlag flag="allow_pings"$>
PRIMARY CATEGORY: <$MTEntryCategory$>
CATEGORY: <$MTCategoryLabel$>
DATE: <$MTEntryDate format="%m/%d/%Y %I:%M:%S %p"$>
POSTID: <$MTEntryID$>
TAGS: <$MTTagName quote="1"$>
-----
BODY:
<$MTEntryBody convert_breaks="0"$>
-----

在這裡, 只要加上紅色那一行, 即可讓 MT 在匯出時帶有 post id。

2. 在可以匯出有 post id 的檔案之後, 接下來就是要修改 Wordpress 匯入的部份, 讓 Wordpress 可以讀取檔案中的 post id。 首先修改下面這個檔案:

wp-admin/import/mt.php

找到約 330 行左右, 可以看到如下的程式碼:

            } else if ( 0 === strpos($line, "TITLE:") ) {
                $title = trim( substr($line, strlen("TITLE:")) );
                if ( '' == $context )
                    $post->post_title = $title;
                else if ( 'ping' == $context )
                    $ping->title = $title;
            } else if ( 0 === strpos($line, "POSTID:") ) {
                $post_id = trim( substr($line, strlen("POSTID:")) );
                $post->post_id = $post_id;
            } else if ( 0 === strpos($line, "STATUS:") ) {

只需要加上紅色那三行, 即可讀取到 post id。

3. 接下來則是修改寫入資料庫的部份, 修改下面這個檔案:

wp-include/post.php

約在 1296 行左右, 可以看到程式碼如下:

    if ( 'draft' != $post_status ) {
    ...略...
    }

    $post_ID = (int) $post_id;
    $ID = (int) $post_id;

    // expected_slashed (everything!)
    ...

只需要加上紅色那兩行即可。 將我們所讀取到的 post id, 覆寫到要寫入資料庫的變數, 這麼一來, 之後匯入到 Wordpress 的 post id , 就會跟 MT 的 post id 相同, 我們就可以根據這個 post id 來對應新舊文章了!

4. 接著就開始匯入啦! 當然得先把資料庫清空囉。

5. 最後, 在匯入 Wordpress 完畢後, 可以在 .htaccess 加上 url rewrite 如下:
PS. Wordpress 的 permalink 是選用 Numeric 的形式。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^archives/([0-9]{6})\.php$ archives/$1 [R=301,L]
RewriteRule ^archives/(200[0-9])_([0-9]{1,2})\.php$ archives/date/$1/$2 [R=301,L]
RewriteRule ^cgi-bin/mt-search\.cgi?tag=([^&]+).*$ archives/tag/$1 [R=301,L]
RewriteRule ^atom\.xml$ feed/atom [R=301,L]
RewriteRule ^rss\.xml$ feed [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

差不多就是這樣吧!

喔! 對了, 匯入成功之後, 記得把 wp-include/post.php 改回來嘿。

December 3rd, 2008 Blog Tags: , , ,
Partners of Oceanic / 人生海海

jiwo sca wellmeet