果然,最起碼還是要先升級到WordPress 2.0.5後才能升到WordPress 2.1.x,從WordPress 2.0.4直上WordPress 2.1.x是不行的,\xE6 \xB9據我的猜測應該是從WordPress 2.0.4到WordPress 2.0.5之間有database的大幅更動,按部就班地升級應該就沒問題了,起碼目前看來是如此。
2007年2月26日 星期一
為什麼公車一次來三班?
2007年2月22日 星期四
2007年2月20日 星期二
這是暗示我今年運氣不錯嗎?
前幾天才看到這篇新聞「真神! 麻將摸到5張五條」,今天我就身歷其境了,只不過新聞裡面的人拿到的是五張五條,而我拿到的是五張五萬。這個Bug能通過軟體公司內部的嚴密測試而到我手上,或許我應該要感到高興吧,畢竟這可不是每個人都有的好運氣。
PS. 我可不只是拿到五張五萬而已,我還贏了這局呢!
PS. 我可不只是拿到五張五萬而已,我還贏了這局呢!
2007年2月19日 星期一
又是過年期間的五分埔
我去五分埔的次數並不多,大約只有三、四次,但是每次去好像都是在過年期間去陪KiLo擺攤、閒聊,KiLo說他覺得五分埔的店家看起來都很令人討厭,好像臉上寫著「我走在時代尖端」的樣子,但是五分埔給我的印象並不差,只是每次看到滿街的女裝之後總覺得這裡的實用性對我來說是稍差了一些。
今天趁著大年初二的空檔又去了一趟五分埔找KiLo,我試著幫他叫賣糖葫蘆,但是我這種平常只敢在熟識的朋友面前大放厥辭的傢伙對於這種場面實在有點害羞,試著小聲地招呼了幾位遊客卻完全看不到什麼效果。
看到五分埔裡這麼熱鬧的人潮會讓我覺得自己孤零零的一個人去逛好像很沒意思,就算和人去逛,五分埔裡面和我相關、讓我有興趣的東西好像也不多,真是矛盾的心情啊。但是和人聊聊天,脫離工程師的世界和思維,體驗一下社會的另外一面也很不錯(尤其我很久沒有看到這個世界上性別不是男性的人類生物了),畢竟這世界上大部分的人都不是整天寫程式、解Bug過活的。去了一趟五分埔,雖然只吃了些小吃和閒聊幾句,但是讓我心情好了不少。
今天趁著大年初二的空檔又去了一趟五分埔找KiLo,我試著幫他叫賣糖葫蘆,但是我這種平常只敢在熟識的朋友面前大放厥辭的傢伙對於這種場面實在有點害羞,試著小聲地招呼了幾位遊客卻完全看不到什麼效果。
看到五分埔裡這麼熱鬧的人潮會讓我覺得自己孤零零的一個人去逛好像很沒意思,就算和人去逛,五分埔裡面和我相關、讓我有興趣的東西好像也不多,真是矛盾的心情啊。但是和人聊聊天,脫離工程師的世界和思維,體驗一下社會的另外一面也很不錯(尤其我很久沒有看到這個世界上性別不是男性的人類生物了),畢竟這世界上大部分的人都不是整天寫程式、解Bug過活的。去了一趟五分埔,雖然只吃了些小吃和閒聊幾句,但是讓我心情好了不少。
2007年2月18日 星期日
當幸福來敲門 The Pursuit Of Happyness
看慣了Will Smith以驚險刺激方式演出的人大概會覺得這部片有點無聊而且主題性不夠強,說實話,我也有點這麼覺得。但是喜歡溫馨勵志小品的人應該就會覺得這是部感人肺腑的難得佳作,看Will Smith在片中帶著他現實生活中的親生兒子在街頭流浪,從社會的底層開始掙扎、努力,最後踏出成功的步伐,迎向美好的人生。劇情相當激勵人心,雖然這大概只是現實社會中0.01%人民的寫照,不過起碼給了大家一個夢想的開端。
另外有件令我有點訝異的事,片中竟然出現了中華民國的國旗呢!
2007年2月17日 星期六
三峽、臺北大學小遊記
或許我們全家太久沒有一起出去走走了吧,趁著今天大年初一的空檔,我媽硬是拖著我們全家人出去逛逛,呼吸一下新鮮的空氣。其實也沒有跑得太遠,甚至沒有離開整個大台北地區,我們到了離淡水大約一個多小時車程的三峽地帶,因為我媽說我在研究所考試裡有報名臺北大學企管所,所以先帶我來臺北大學瞧瞧,但是我想她其實也不知道到底要瞧什麼。
臺北大學與其他歷史悠久的學校相較之下是個新學校,地方不小,但是好像有點太新了,還有很大的空間以待發展。校園裡已經蓋好的部分算得上是美輪美奐,但是其他校舍的預定地(比如圖書資訊大樓和科技大樓)卻還是一堆雜草,而且運動設施實在相當匱乏,走了一圈好像只看到兩個籃球架,連田徑場都沒有。或許這是個唸書的好地方,但是如果想要培養學生在各方面均衡發展,路還很長阿。
離開台北大學之後,我們到了三峽祖師廟。不愧是大年初一,三峽老街和祖師廟滿滿是人,我不知道三峽祖師他老人家在道教裡到底是什麼樣的地位,也不知道廟裡兩側供奉的太陰娘娘和太陽星君各司何職,所以也只是和它們說了幾聲久仰就離開了(其實我們是去廟裡借洗手間的)。三峽老街的豐富程度和淡水老街比起來是差多了,小吃的種類也不如淡水老街來得多,但是我們在三峽老街裡面的某個廟宇中發現竟然有供俸文昌帝君,我爸媽當然強押著我祈禱,希望今年能考個好研究所。不知道文昌帝君對以英文出題的研究所考試熟不熟悉,不然我還是只能靠自己,只恨我的研究所考科沒有國文和古代中國史,不然文昌帝君的加持大概可以功率加倍。
臺北大學與其他歷史悠久的學校相較之下是個新學校,地方不小,但是好像有點太新了,還有很大的空間以待發展。校園裡已經蓋好的部分算得上是美輪美奐,但是其他校舍的預定地(比如圖書資訊大樓和科技大樓)卻還是一堆雜草,而且運動設施實在相當匱乏,走了一圈好像只看到兩個籃球架,連田徑場都沒有。或許這是個唸書的好地方,但是如果想要培養學生在各方面均衡發展,路還很長阿。
離開台北大學之後,我們到了三峽祖師廟。不愧是大年初一,三峽老街和祖師廟滿滿是人,我不知道三峽祖師他老人家在道教裡到底是什麼樣的地位,也不知道廟裡兩側供奉的太陰娘娘和太陽星君各司何職,所以也只是和它們說了幾聲久仰就離開了(其實我們是去廟裡借洗手間的)。三峽老街的豐富程度和淡水老街比起來是差多了,小吃的種類也不如淡水老街來得多,但是我們在三峽老街裡面的某個廟宇中發現竟然有供俸文昌帝君,我爸媽當然強押著我祈禱,希望今年能考個好研究所。不知道文昌帝君對以英文出題的研究所考試熟不熟悉,不然我還是只能靠自己,只恨我的研究所考科沒有國文和古代中國史,不然文昌帝君的加持大概可以功率加倍。
2007年2月13日 星期二
終於升級到WordPress 2.0.8
暨上次慘痛的教訓之後,我不敢再從WordPress 2.0.4直奔WordPress 2.1.x,所以這次老實得不得了,先備份了資料庫和2.0.4的source code之後,慢慢地從2.0.4 -> 2.0.5 -> 2.0.6 -> 2.0.7 -> 2.0.8,目前看來都沒什麼大問題,不過還是暫時先測試看看2.0.8的穩定性和功能性正不正常吧,下次再試試看升級到WordPress 2.1.x(因為2.0.8是在2.1.x系列release之後才出現的,所以非常低調,連WordPress官方Blog上都沒有提到,大概只有平常有在注意相關消息而且又不想升級到WordPress 2.1.x的人才會發現吧)。
基本上每個release的升級步驟都相當制式,備份資料庫和舊source code之後把所有的plugin都暫時關掉,接著查找官方的升級步驟之後記下wordpress/wp-content/底下哪些plugin或是theme有更新,先把這些舊source code砍掉,然後把新版的source code傳上去,接著回到blog的root directory下把除了wp-content/, .htaccess和wp-config.php之外的source code和directory都砍掉(當然,如果有自己曾經修改或是添加過的檔案也要記得留下來),接著把剛剛砍掉的檔案都換上新版的source code,最後執行wordpress/wp-admin/upgrade.php就算是完成升級動作了。
PS. 其實打這篇文章也算是順便測試2.0.8的功能性有沒有問題
[2007'02'17 update]
不知道是不是我的錯覺,總覺得升級之後Dashboard的操作反應變得很慢,升級後的好處倒是到現在都還沒看到。
基本上每個release的升級步驟都相當制式,備份資料庫和舊source code之後把所有的plugin都暫時關掉,接著查找官方的升級步驟之後記下wordpress/wp-content/底下哪些plugin或是theme有更新,先把這些舊source code砍掉,然後把新版的source code傳上去,接著回到blog的root directory下把除了wp-content/, .htaccess和wp-config.php之外的source code和directory都砍掉(當然,如果有自己曾經修改或是添加過的檔案也要記得留下來),接著把剛剛砍掉的檔案都換上新版的source code,最後執行wordpress/wp-admin/upgrade.php就算是完成升級動作了。
PS. 其實打這篇文章也算是順便測試2.0.8的功能性有沒有問題
[2007'02'17 update]
不知道是不是我的錯覺,總覺得升級之後Dashboard的操作反應變得很慢,升級後的好處倒是到現在都還沒看到。
2007年2月11日 星期日
笑著想她
前兩天意外地拿到了一份自由時報,其中的E30版花編副刊有一位叫做朵朵的作者寫了一篇叫做「笑著想他」的小小文章,內容是這樣的:
優美的意境,雖然這篇文章是作者對女生說話的口吻,但是如果把文中的「他」改成「她」,對我來說實在再貼切不過了。從現在開始,我也必須相信宇宙中真的有那麼一股美善的能量,讓我對她的祝福在她身上發生正面的作用。
因為他不在你身邊,所以你非常牽掛。
他平安嗎?他快樂嗎?他有好好地穿衣吃飯嗎?
牽掛裡總是含有濃濃的擔心成份,
而擔心難免讓你跌進深深地憂慮之中。
因此,他過得怎麼樣你不知道,
你過得不好卻成了無法對自己否認的事實。
親愛的,要信任宇宙間有一股美善的能量,
當你對他充滿了祝福,這股能量就能在他身上發生正面的作用。
相反的,若你想起他就只有滿心憂慮,
那麼這分牽掛恐怕也將對他產生負面的影響。
愛是心電感應,祝福是念力,所以,笑著想他,相信他很好。
有了你堅定的愛與祝福,親愛的,他也真的真的會很好。
2007年2月10日 星期六
2007年2月7日 星期三
我織的第一條圍巾
經過一個多禮拜的努力,我織的第一條圍巾終於正式地完成了,在這期間真的要大大地感謝靜嵐老師的幫忙,讓我從什麼都不會開始,慢慢從下針織法學起,拆線、接線、收線、編流蘇,每個步驟都是一門藝術。雖然過程並不容易,但是完成作品之後的成就感實在無法言喻,我覺得我好像也漸漸喜歡上了編織,只是編織藝術這種東西如果想要以看書、網路教學等方式自修似乎不太容易,以我的情況而言,要去外面上課學習好像也很怪(我無法想像要和一群職業主婦阿姨們一起學習編織的情形,而且如果我有錢、有閒,還是應該先去學吉他吧)。
這條圍巾總共在編織的過程中,總共用了三顆毛線球,織了一百六十八排,總共四千七百零四針。雖然出來的成品在我這個作者眼中好像處處是漏洞,常常看到有沒織好的地方,也覺得成品有點硬,但是我真的很用心、也盡了全力,對我來說,這是一次很棒的體驗(我想應該也不會是唯一的一次體驗)。
2007年2月6日 星期二
[Java] 自訂JTable的cell內容
這幾天,因為工作的需求必須要修改JTable的cell型態,讓他不只能顯示純文字,而能依照自己想要的方式顯示,因為JTable的架構設計得有點複雜,所以這個問題實在花了我不少時間研究,既然有了點研究結果,那就順便寫下來,這樣以後應該會比較方便。
根據官方API文件的說法,JTable設計架構裡面的TableCellRenderer就像是個印章一樣,JTable中的每個cell都是依照被設定好的TableCellRenderer呈現內容,如果想要自訂JTable裡面的cell,有幾個不同的方法可以達成同樣的目的。比較常見的作法就是繼承Java API裡面已經設計好的DefaultTableCellRenderer並且override其中的public Component getTableCellRendererComponent( JTable,Object,boolean,boolean,int,int) method或是和我下面示範的作法一樣,直接拿內建的DefaultTableCellRenderer來使用,但是自訂其中的getTableCellRendererComponent()。
其實DefaultTableCellRenderer也就是一個JLabel,當我們把數字丟進JTable的時候,數字會自動被wrap成Integer Object,而文字當然還是以String來表示,最後還是會交給DefaultTableCellRenderer這個JLabel的subclass做顯示的動作。進入要自訂getTableCellRendererComponent()的階段之後,必須要藉由parameter list上的Object value這個parameter取得cell的所存放的內容,之後就可以依據這個值做程式邏輯的判斷。
如果想要自訂cell的顯示方式,可以參考parameter list上的row, col這兩個值來判斷是不是想要的cell,接著呼叫super.getTableCellRendererComponent()取得這個cell的Renderer Component,並且把它cast成JLabel,藉由JLabel的setForeground()、setBackground()等各項method更改顯示的樣式(使用setBackground()之前必須要先呼叫setOpaque(true))。甚至也可以不要用JLabel顯示,只要先使用java.awt.Component以下可以顯示的subclass自訂自己想要的顯示樣式,然後在return的時候丟回去給上層的架構就好了。
以下的sample code示範了在JTable中傳入字串和數字,但是顯示出來的字串根據內容的不同有不同的顏色,而數字也是用JSlider的形式表示。
根據官方API文件的說法,JTable設計架構裡面的TableCellRenderer就像是個印章一樣,JTable中的每個cell都是依照被設定好的TableCellRenderer呈現內容,如果想要自訂JTable裡面的cell,有幾個不同的方法可以達成同樣的目的。比較常見的作法就是繼承Java API裡面已經設計好的DefaultTableCellRenderer並且override其中的public Component getTableCellRendererComponent( JTable,Object,boolean,boolean,int,int) method或是和我下面示範的作法一樣,直接拿內建的DefaultTableCellRenderer來使用,但是自訂其中的getTableCellRendererComponent()。
其實DefaultTableCellRenderer也就是一個JLabel,當我們把數字丟進JTable的時候,數字會自動被wrap成Integer Object,而文字當然還是以String來表示,最後還是會交給DefaultTableCellRenderer這個JLabel的subclass做顯示的動作。進入要自訂getTableCellRendererComponent()的階段之後,必須要藉由parameter list上的Object value這個parameter取得cell的所存放的內容,之後就可以依據這個值做程式邏輯的判斷。
如果想要自訂cell的顯示方式,可以參考parameter list上的row, col這兩個值來判斷是不是想要的cell,接著呼叫super.getTableCellRendererComponent()取得這個cell的Renderer Component,並且把它cast成JLabel,藉由JLabel的setForeground()、setBackground()等各項method更改顯示的樣式(使用setBackground()之前必須要先呼叫setOpaque(true))。甚至也可以不要用JLabel顯示,只要先使用java.awt.Component以下可以顯示的subclass自訂自己想要的顯示樣式,然後在return的時候丟回去給上層的架構就好了。
以下的sample code示範了在JTable中傳入字串和數字,但是顯示出來的字串根據內容的不同有不同的顏色,而數字也是用JSlider的形式表示。
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
public class CellRendererDemo {
public CellRendererDemo() {
JFrame frame = new JFrame("JTable CellRenderer Demo");
JScrollPane scrollPane;
JTable table;
String [] columnNames = {"String value", "Slider value"};
DefaultTableModel tableModel =
new DefaultTableModel(columnNames, 0);
/* pseudo data */
Object data [][] = {
{"One", 1}, {"Two", 2}, {"Three", 3}, {"Four", 4},
{"Five", 5}, {"Six", 6}, {"Seven", 7}, {"Eight", 8},
{"Night", 9}, {"Ten", 10}
};
for(int i = 0 ; i < data.length ; i++) {
tableModel.addRow(data[i]);
}
table = new JTable(tableModel);
scrollPane = new JScrollPane(table);
scrollPane = new JScrollPane(table,
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
DefaultTableCellRenderer renderer =
new DefaultTableCellRenderer() {
public Component getTableCellRendererComponent(
JTable table,Object value,
boolean isSelected, boolean hasFocus,
int row,int col) {
JLabel label = (JLabel)
super.getTableCellRendererComponent(
table, value, isSelected,
hasFocus, row, col);
label.setForeground(Color.black);
/* return value */
JComponent retComponent = null;
if( value instanceof String && col == 0 ) {
if( row < 5 ) {
label.setForeground(Color.blue);
}else {
label.setForeground(Color.red);
}
retComponent = label;
}else if( value instanceof Integer && col == 1) {
JSlider slider = new JSlider(0, 10);
slider.setValue(
((Integer)value).intValue() );
retComponent = slider;
}
return retComponent;
}
};
/* register the TableCellRenderer */
for(int i=0 ; i < table.getColumnCount() ; i++) {
table.getColumnModel().getColumn(i).
setCellRenderer(renderer);
}
frame.getContentPane().add(scrollPane);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public static void main(String [] args) {
new CellRendererDemo();
}
}
2007年2月5日 星期一
再一次乘上地鐵 もういちどメトロに乗って
2007年2月4日 星期日
頂尖對決 The Prestige
今天看了這部前陣子很知名的片,內容非常有趣、精彩,但是並不建議去電影院看,或許租DVD在家裡看感受不到電影院裡的氣氛和音效,可是對於這種充滿了疑惑的電影,如果能夠兩個人邊看邊討論應該會更有趣些。
片中的兩位主角心機都非常重,不看到最後實在很難猜測兩者的勝敗,兩個人都打著各自的算盤,也背負著各自的痛苦,看完之後換個角度來想,這根本是一部悲劇,為什麼要爭鬥到這種地步呢?
另一方面,這部片也有很好笑的地方,片中的學者Nikola Tesla本來只是想要發明可以瞬間傳送的機器,卻誤打誤撞地發明了可以製造複製人的機器,就好像本來只是想製造小刀卻不小心做出了核子彈一樣。
2007年2月3日 星期六
2007台北國際書展
今天去逛了一年一度的台北國際書展。今年書展的內容感覺起來好像沒有過去兩年來得豐富,折扣也不是很誘人,但是我還是買了四本書,分別是我的名字叫做紅、時空旅人之妻、博士熱愛的算式和米奇鰻的首部作品毛球寶兒,還有一本原本也打算要買的丈量世界後來並沒有購入,因為我慫恿與我同行的友人買了下來。
同一天的下午,米奇鰻和隋棠等model各自都有在世貿辦簽書會,但是因為我下午還要趕著去故宮,所以並沒有留下來參加這兩邊的活動。沒有親眼看到隋棠好像有點可惜,不過轉念一想後其實也還好,畢竟我也不可能去買她們的出版品,留下來也只是當個圍觀路人甲;至於米奇鰻...負責幫他辦簽書會的LiveABC工作人員竟然還問我他是誰,這實在相當驚奇,為什麼反而會是我比工作人員還了解呢?面對這樣的詢問,我也只能支支吾吾地告訴他,米奇鰻應該算是個藝術家吧。
雖然覺得今年書展的內容比不上往年,但我還是逛了不少攤位,可是讓我覺得今年的書展沒那麼精彩的原因是不是因為往年和我一起去的人已經不在我身邊了呢?
同一天的下午,米奇鰻和隋棠等model各自都有在世貿辦簽書會,但是因為我下午還要趕著去故宮,所以並沒有留下來參加這兩邊的活動。沒有親眼看到隋棠好像有點可惜,不過轉念一想後其實也還好,畢竟我也不可能去買她們的出版品,留下來也只是當個圍觀路人甲;至於米奇鰻...負責幫他辦簽書會的LiveABC工作人員竟然還問我他是誰,這實在相當驚奇,為什麼反而會是我比工作人員還了解呢?面對這樣的詢問,我也只能支支吾吾地告訴他,米奇鰻應該算是個藝術家吧。
雖然覺得今年書展的內容比不上往年,但我還是逛了不少攤位,可是讓我覺得今年的書展沒那麼精彩的原因是不是因為往年和我一起去的人已經不在我身邊了呢?
訂閱:
文章 (Atom)