星期五, 9月 29, 2006

FreeBSD 6.0 Bug

前幾個月想拿一台P!!! 1G的機器裝FreeBSD 6.0當做Firewall,結果CD放進去就會發生acpi錯誤,自動reboot。再拿OpenBSD 3.7的HD開機,結果也相同。但是另一台更舊的P!!! 800就沒有問題,所以當時我懷疑是主機板出問題。後來拿另一台P4重編kernel再make world 之後把硬碟接上去,結果依然相同。

因為機器調度,同樣的需求再度發生。今天不信邪,拿P!!! 800升級到FreeBSD 6.1,再把做好的HD接到P!!! 1G,結果就能正常使用。若像我常把硬碟換來換去,最好還是升級到FreeBSD 6.1吧!

一將功成萬骨枯

  故事裏的主角,通常是最強的那個,但偶有例外。聖鬥士星矢裏大家都覺得星矢很肉腳,一輝和紫龍都比他強多了,為什麼最後的王都要讓他去打,黃金聖衣要給他穿呢?就是和小比爾創業時一定要60%的股權一樣的道理-他是主角。

  事實上在職場裏通常是如此。古詩有云:
澤國江山入戰圖,生民何計樂樵蘇。
憑君莫話封侯事,一將功成萬骨枯。
       -- 唐.曹松《己亥歲二首》


  許多人能夠升官,除了自己的努力之外,更需要許多人在他底下幫忙做事。而對於長官的逢迎諂媚,拍馬屁抱大腿之類的事更不在話下。 努力工作的人也不要氣餒,畢竟狗腿也是一種本領,做自己最重要。

科技始於人性

科技始於人性,看Firefox Top Extensions就知道。
今天上去Firefox Add-ons看,第一名叫Flashgot,第二名是VideoDownloader。

果然是人性呀~

星期四, 9月 28, 2006

C#的Singleton Class

由於C#與Java在物件生成上有些微的差異,因此在Java上Singleton的寫法不一定適用於C#。
此篇Implementing the Singleton Pattern in C#講的很清楚,有問題的話我會盡可能代為回答。

Update: MSDN上的Implementing Singleton in C# 寫法更好,摘錄如下:
public sealed class Singleton
{
private static volatile Singleton instance;
private static object syncRoot = new Object();

private Singleton() {}

public static Singleton Instance
{
get 
{
if (instance == null) 
{
lock (syncRoot) 
{
if (instance == null) 
instance = new Singleton();
}
}

return instance;
}
}
}

Windows上的RSS Reader

我去Google "Rss Reader"找到 Neo's Blog: 七個不錯的 RSS Reader,大概試了一下後決定用GreatNews
GreatNews不但免費,功能和Vienna相似,可以自定Theme CSS、匯出/匯入OPML,還有中文語系。我不知道為何Neo會喜歡SharpReader,功能實在太弱,而且更新時畫面太亂,不適合工程師:P
另一個GreatNews的強項是會檢查太久沒更新的RSS,會詢問是否刪除頻道,個人非常喜歡此功能。

星期三, 9月 27, 2006

微軟新作業系統Vista各版本均壓在單片DVD

Vista所有版本都將推出單片DVD不用擔心安裝麻煩,M$已經把安裝程式設計成針對不同序號安裝不同版本的程式。不信?裝裝看Windows 2003R2就知道。如果用2003序號只裝第一片,輸入R2序號則裝好第一片後會自動安裝第二片。所以就算Vista有六個版本,只要依功能排序就全部搞定。

差點當做Spam的Ham

昨天收到一封差點當做Spam的Ham,仔細一看還真有興趣,可惜要上班而且我又不會XCode,不然真想去;尤其是日程安排,實在太令我滿意。第二天結束後還在編程 ^_^ 內文如下:

尊敬的合作伙伴和開發人員,

我們誠摯地邀請您參加蘋果電腦即將舉辦的Universal Binary動手試驗班。活動的目的
是幫助您將工程轉化為可同時運行於PPC和Intel-based的蘋果平台的通用二進制代碼。

這是一個免費的活動。ADC的會員填寫郵件後面的報名錶,並通過電子郵件發給我們,即可
進行登記。由於環境和設備的限制,本次活動的名額非常有限,請盡早報名,且務必在收到
我們的確認函之後才安排你的行程。

本次活動的絕大部分時間都是編碼和調試時間,因此我們強烈推薦您將工程帶到現場來。
每個公司都將有一台自己專用的基於Intel的機器,上面裝有最新版本的Mac OS X
和Xcode。如果您需要其它特殊的調試設備或環境,則需要自行准備。

蘋果的開發工程師將很榮幸地和您一起工作,現場解決問題。

時間和地點
-----------------------------
2006年10月17日,18日

台北市敦化南路333號16A
蘋果電腦台灣分公司 培訓教室(886-2-27383242)

日程安排
-----------------------------
2006年10月17日, 星期二

09:00 - 09:30 簽到
09:30 - 09:45 開場致詞
09:45 - 10:30 常見的連編錯誤分析
10:30 - 10:40 茶歇
10:45 - 12:00 編碼和調試
12:00 午餐
13:00 - 17:00 編碼和調試

2006年10月18日, 星期三

09:30 - 12:00 編碼和調試
12:00 午餐
12:00-17:30 編碼和調試
17:00 結束

星期一, 9月 25, 2006

期待明年的AJAX

最近幾天卯起來試AJAX,發現真不是普通的失望,經過一年並沒有太多的進步。大部份的framework像prototype、rico等都需要客製化javascript,如此一來會增加coding的複雜度,造成耦合度過高。

當然,framework很多,但是寫得方便好用的並不多。真正容易開發的像Asp.net的Atlas、Ajax.NET,做得簡單易用,但卻相容性超級差,大部份都是IE only,大部份的範例在Firefox上都不能run。而隨著微軟的IE7的正式版即將面世,相信Atlas也會增加Firefox的相容性。另一方面,也很難將prototype、rico應用到asp.net上,因為它並不是固定的id。相對地在PHP和JSP上,由於能夠保持原有的id,因此雖然是很辛苦的用rico開發,但至少效果能夠跨平台。

目前為止,我試過最人性化的開發方式,就是Atlas與Google Web Toolkit。雖然GWT目前並沒有視覺化IDE,但在Java環境下要做出一個視覺化開發能拖拉的環境很容易,甚至於能夠做到同時做成AP與Web,這是未來Web開發的模式。我個人覺得比較不恰當的部份是GWT的命名方式並沒有稱為GButton、GPanel,而是直接命名為Button、Panel,容易造成某種程度上的混淆。

如今,只能期待明年Open AJAX initiative能夠制定出一套標準,另一方面,期待Eclipse 的Ajax Toolkit Framework (ATF) 能做得像Atlas一樣容易開發。

參考資料:
將 Ajax 帶入 Eclipse 的 Ajax Toolkit Framework 的兩個工具

反向思考:
我們有必要把簡單的http protocol搞得那麼複雜嗎?會不會另訂一套標準或是直接把flash做為RIA的標準省事多了?難怪Startrek有一集就是先毀滅再創造。

.Com 2.0

Tim O'ReillyWeb 2.0到來,鳥毅說 .com 2.0時代來臨。

第一則新聞是7月份時MySpace超越Yahoo,成為全美最受歡迎網站。
第二則新聞是9月20日傳出Yahoo將以10億美金收購Facebook

目前看來,Web 2.0時代最紅的都是社交網站,雖然第一仗是Gmail,但是後來接棒的都是交友、分享。del.icio.usFlickrFacebook被高價收購,表示.Com 2.0時代來臨。

.Com時代是燒錢的年代,當年只要隨便創立個網路公司加上一個idea就有金主拿錢來砸。現在.Com 2.0時代,只要有大量人氣,就有大公司來收購。依照目前的分享增加速度,網路設備公司應該大賣,3Com、Cisco的股價應該會再往上衝。

Mr. 6說的沒錯,台灣人太小看Web 2.0,我錯失賺錢的大好機會了,應該去米國找同學一起開公司。目前我想到的另一個商機在安全性,請參考:Web 2.0的安全危機

這篇是我寫Blog以來,最認真的一篇;我是工程師,愚蠢的工程師。

參考資料:
誰最應該要了解 Web 2.0?
蘋果 2.0
Web 2.0 = 泡沫 2.0 ?

星期六, 9月 23, 2006

Vienna使用心得

最近幾天都改用Vienna,已經習慣它的介面,也適應內建的Web畫面。唯一不習慣它是自動檢查,似乎永遠看不完,好累~

今天花了二個小時整理書籤,常看的放在上面。不用Firefox後,忽然覺得我的Mini也很快,G4 1.5G也很好用。

今天Vienna自動檢查到有更新,一般的軟體測試版並不會自動檢查吧?反正,它自己更新裝好重開,我也樂得輕鬆 。

恐怖的Spotlight index

剛才在Mac上試Firefox 3.0 - Minefield,用spotlight找firefox的profile後,忽然風扇大叫。於是我用top看發現mdimport與mds把CPU都吃光。
查了一下,mds這支daemon都是在做index供spotlight用。

http://www.macintouch.com/tiger12.html 有提供方法關掉spotlight。

但是其他資訊似乎都顯示這是個老問題,我已經升級到10.4.7,不應該再出現這個問題。等會我再用DVD開機修復磁碟,多試幾次看看還會不會出現這種情形。

WIPFW

在GSLin的Blog看到,有人把IPFW 移植到win32平台。
WIPFW之後,可以在一般的XP啟動NAT當Firewall,但是XP會有10個client的限制,還是很麻煩。現在一般的分享器,大都是embeded Linux,新款的都有簡單的頻寬控制。如果在公司用,還是裝一台FreeBSD/OpenBSD實用多了。

星期五, 9月 22, 2006

無責任預言

其實我寫過幾篇無責任預言,都藏在草稿匣。反正世界上許多人都 不負責,我就獻醜了。

在2004年我就預言過SOA不會成功,在9月份的RunPC有提到。如果照目前的情勢發展下去,SOA應該會在幾年後換個名字重新再來,並將會有廣大的迴響。

2007年會是AJAX的一年,所有新的web framework都將支援AJAX;Web 2.0服務抬頭,頻寬大幅增加,從靜態的照片漸漸走向影片分享。

AOP
在2007年仍然無法發光,必須等待下一代的Programming Language。

OSX在內建Win32支援後,市占率將會小幅上升。

雖然最近RAM大漲,但2007年製程進步後將會跌價,稍後2G RAM成為裝機主流。(為了要裝Vista,只好...)

雙核心CPU在2007年成為主流。(廢話!快買不到單核心CPU了。)

其他的...想到再貼。

Connection String

今天要讓.Net 1.1連SQLExpress 2005,發現某些連線字串不相容,主要是User Instance這個屬性在.Net 1.1不能使用。

在.Net 2.0是
"Data Source=.\SQLExpress;Integrated Security=True;User Instance=True;AttachDBFilename=|DataDirectory| Database.mdf;"


用.Net 1.1要改成
"Data Source=.\SQLExpress;Integrated Security=True;AttachDBFilename=|DataDirectory| Database.mdf;"


要找出這類問題,得去看看連線字串所代表的意義,再慢慢地trial and error。
MSDN SqlConnection.ConnectionString 屬性 有些過度翻譯,因此,請改看
MSDN SqlConnection.ConnectionString Property
發現User Instance翻譯成使用者介面等等,自己去看看就知道,台灣微軟大概是用電腦翻譯


另外有找到一個更棒的 ConnectionStrings.com,所有常見的Database都有。

BTW,SQLExpress並沒有SQLServer那麼穩定,我們的測試機斷電重開後,SQLExpress DB有損壞,而SQLServer 2005則會自動修復。

Update:某位暱名的大大回覆說是人工翻譯,不知道是不是曾經送我爪哇滑鼠的那位大大。

參考:使用 SQL Server Express Edition 搭配 ASP.NET

Movable Type 2.6

其實打算自己架Blog Server很久,但總是偷懶沒做。以前Survey時,由於偏好Java,總是找Java寫的Server,但並沒有滿意的免費產品。後來就認清事實,最好的幾乎都是PHP寫的,Wordpress應該是最流行的一個。但如果要在Windows上安裝就比較麻煩,尤其是還得再裝個MySQL,很快就會記憶體不足。

Movable Type是很早期的Server,在2.6版還是個人免費,不過到3.0以後就要錢,而且沒有中文化,所以目前坊間以2.6版為主。這是之前看到的說法,不過剛連上去看純個人用可以登錄後免費下載新版。MT以Perl撰寫,資料庫支援MySQL 、 PostgreSQL 、 Berkeley DB 或 SQLite ,因此在Windows下安裝也很方便。我個人對Movable Type的印象,就是在於許多人架出來的Blog版型比較好看,功能多。

早期的Wordpress預設版型超醜,不知道現在如何,當時我是看了就不想用 :P 如果裝在FreeBSD或Linux上我會選Wordpress、LifeType或MT,因為跑MySQL不算太操;但使用Windows或OSX,則只會考慮用MT以省記憶體。

以下是Jedi所提供的Movable Type中文手冊。
http://mtbook.org/
http://mtbook.net/

原站已找不到2.6版下載,幸好Google大神告訴我台灣有位教授的mirror:
http://isrc.nchu.edu.tw/phpadmin/MovableType.htm

剛才又看到有人說MT容易受到攻擊,提供另一個可以使用SQLite的Blog:Serendipity,在FreeBSD ports有。

foo的由來

在程式設計的書上,變數常用foo,今天無意中看到由來:

http://super.cs.nthu.edu.tw/jerry/chnc/network/report/paper/8842045-RFC3092.htm

http://www.linuxhall.org/modules.php?name=News&file=article&sid=105

Barcalid病毒

今天公司有不少人中Barcalid病毒,讓我知道Desktop.ini也能自動執行程式。雖然之前就有聽說這隻會自動更新的病毒,沒想到結合Windows未patch的漏洞,讓病毒自己透過網路丟到我的電腦。雖然我自己的電腦未感染,但確實讓我花了不少時間,真希望在公司也能用Mac呀~

9/22更新:趨勢科技稱這隻病毒為PE_VBAC,今天所發重大通知裏的block list和Mcafee又不同!看來一味地防堵是無用的,MS得趕快把漏洞補起來才是正解。

參考資料:

http://www.ettoday.com/2006/09/18/545-1992404.htm

http://www.symantec.com/security_response/writeup.jsp?docid=2006-090109-5610-99&tabid=3

http://tw.mcafee.com/virusInfo/default.asp?id=description&virus_k=140566

http://www.ithome.com.tw/plog/index.php?op=ViewArticle&articleId=6001&blogId=631

http://tw.myblog.yahoo.com/jw!KP3aw8KYFRnMnjptYqv3X2xx/article?mid=88&prev=89&next=86&l=d&fid=13

http://www.trendmicro.com/vinfo/virusencyclo/default5.asp?VName=PE_VBAC.A

星期四, 9月 21, 2006

使用Blogger Widget

除了ecto,MarsEdit之外,Google也有出Blogger Widget。

但這個Widget居然沒有Rich Text Editor,實在是很遜。好處是免費,中文字正常。

ecto試用

今天試著用ecto寫一篇Blog,其實我有介紹過,但一直喜歡用Firefox編輯。 雖然在Mac上Browser很少當,但我總是在寫Blog時Browser當掉,所以今天還是找個off line的editor。ecto最大的缺點,不是要錢,而是只能發佈成草稿。當然,沒有What you see is what you get是不太直覺,不過有預覽功能。另一個缺點則是不能直接貼圖,但像我這種很少貼圖的人倒是可以接受。剛才發現貼到草稿的字全變成HTML Entity的字,看來若不知道怎麼調整,得找另一套軟體了。

更新:發現設定編輯模式為Rich Text就是What You See is What You Get,要錢的果然比較強。另外在 網誌->設定->前置處理 取消勾選 HTML Entity就不會編碼。

插曲:剛才一邊try & error一邊開Safari找資料,結果Safari竟然無法讀取新資料當在那裏,不管開多少分頁,顯示都不會更新,怪哉!

Safari中文字

我的Safari看Yahoo!Kimo新聞一直出現很怪的字體,我知道他們有指定新細明體,但剛才發現連Gmail的信件標題也不正常。之前已經把Taipei字型停用,但還是有些網頁顯示不正常。剛才火大把新細明體停用,哇!全部都變成儷黑Pro,真是美麗的世界!

這篇是給自己和別人做個note,重灌時要注意。


Update:後來又出現一些問題,把宋體也停用,又恢復正常。

再論搜尋結果

剛才很不幸地Camino也掉字,匆忙之中儲存草稿又沒成功。第二次用Safari編輯,卻在切換輸入法時造成Safari Crash。現在只好用到BonEcho繼續努力。

回到主題,現在很累了,所以只能提重點。

我在搜尋結果這篇提到Page Rank以連結數多寡判斷,而導致蔡依林的部落格排行在後面。因為ijliao與jserv留言,我回覆時提到 http://tw.dir.yahoo.com 進去有網站登錄,花錢可以改排行。剛才去確認,幸好沒漏氣,請參考 http://searchmarketing.yahoo.com/zh_TW/ 。而Google網頁目錄也可以登錄。

而Google是堅持不改排行,而在右方以顯著的廣告,請參考 http://www.google.com.tw/intl/zh-TW/ads/ 。

而對於jserv的說明太清楚讓我疑惑:Jserv(黃敬群)自由軟體社群的開發人員之一,如維護有酷音輸入法等。 內容介紹許多資訊及軟體應用的細節技術及個人生活的經驗。

因此去查Google網頁目錄 ,才發現他被登錄在 World > Chinese Traditional > ... > 網上內容 > 網誌 但這個目錄已經更換,不過意外發現ijliao也有登錄在World > Chinese Traditional > 電腦 > 網際網路 > 個人網站,名稱當然不是蔡依林囉~ 這樣我就放心了,萬一有人搜尋鳥毅找出我是誰,那麼我會有可能被公司開除。自從Google出現後,我根本不想去登錄自己的網站,反正要搜尋時一定找得到,看來我得重新評估網頁目錄的重要性。

Page Rank並不是萬靈丹,而某些重要的網頁若被連結的次數少,則會掉在網海之中。相信聰明的Google天才們,一定會想出更好的方法。

星期三, 9月 20, 2006

Vienna

如果有人和我一樣在Mac上用Firefox使用Sage做為RSS Reader,又踩到掉字的地雷,一定也只能裝Firefox 2.0 beta 2 BonEcho。Firefox雖然有著支援性較佳的優點,但是在Mac上速度實在是慢到難以忍受,據小道消息指出 ,要到Firefox 3.0才使用Cocoa重做介面。

我開始試著使用Safari和Shiira來取代Firefox,會試Shiira是因為它能夠使用Firefox的書籤。除了上Blogger編輯、Gmail寫信之外,不支援某些Javascript反而安全性更高。但我幾乎都是用Sage來看News,無奈之下只好將Mac上常見的RSS Reader如NewsFire、NetNewsWire、NetNewsWire Lite、Vienna全部試一遍。

傳統Sage的展現方式只有在NetNewsWire有,得選擇Layout->Combined View,其他的Reader我都沒有找到。但是NetNewsWire不但要錢,而且效率奇差,在更新時CPU 100%,讓我的風扇狂叫。後來把希望放在Vienna,本來想抓source來修改,但是忽然發現有2.1Beta版,設定 顯示方式->Layout->Unified 後,終於找到我要的功能。現在真的要感謝Zonble,Vienna的中文符合台灣用語,速度非常快,果然最後是Opensource勝出。現在只要等Google支援Safari(比Safari支援其他標準快吧),我就可以不再依賴Firefox,享受快速的網路衝浪。

SRP

SRP:Single Responsibility Principle 單責任原則

定義為:要變更類別的原因只能有一個。

乍聽之下很怪異,用人類聽得懂的話解釋,就是說類別只管自己的事,不是自己的別攬在身上。Agile那本舉的第一個例子很爛,用Modem舉例一點都不直覺?我舉個好例子:Employee。在所有的人事系統中應該都有這個類別,而Employee除了自己的基本資料外,遇到繳稅時要算Tax,沒經驗時會加一個calcTax的method,但有經驗的人就知道必須另外做一個Tax類別;Employee資料的persistence應該有EmployeeDAO之類的Class處理。再參考昨天講的OCP就知道Employee應該是個interface,而不是class。

SRP容易瞭解,卻是最容易犯錯的原則;善用refactoring與pattern能夠讓我們消除程式裏的bad smell。

參考資料:
http://www.objectmentor.com/resources/articles/srp
http://www.answers.com/topic/single-responsibility-principle

天下烏鴉一般黑

台灣的唱片界喜歡把幾首舊歌放在一起稱為精選集,或是十首裏有一首新歌稱為新歌加精選。我一直認為這是對忠實歌迷的傷害,那大家都等精選集再買,也沒有人想買新專輯。

我以為只有台灣會有人把書小改一下換個名字再賣 ,沒想到國外也有人這麼幹:Agile Principles, Patterns, and Practices in C#就是把Agile Software Development, Principles, Patterns, and Practices的範例換成C#做為新書再賣。我是沒看過內容,但如果C++部份的範例不改,只有Java變成C#的話,那有差別嗎?

Subversion 1.4 was released

Subversion 1.4 已經發行,這次升級能夠讀取所有以往的repository,所以只要放心的裝下去就可以。新功能主要是svnsync的備份工具,以及支援Berkeley DB 4.4與auto recovery。
  • svnsync, a new repository mirroring tool
  • Huge working-copy performance improvements
  • Support for BerkeleyDB 4.4 and its "auto recovery" feature
  • Size improvements to the binary delta algorithm
  • A handful of new command switches
  • Many improved APIs
  • More than 40 new bugfixes
Subversion 1.4 Release Notes還有提到若dump再reload現有的repository,將會大幅縮小空間,有興趣的人不妨試試。

一間廚房容不下兩個女人

昨天下班在公司樓下遇到同事Jocelyn,先說清楚,她可不是王怡仁。 在走向公車站牌時又遇到另一位同事Ella,她們聊到煮飯,接著聊到每個女生處理的方式與口味都不同,就算是她娘也和她不同,Jocelyn的新婚老公似乎還有點搞不清楚狀況,偶爾會被她修理。結論是:一間廚房容不下兩個女人。這篇可不是閒聊,已婚男人要切記呀!

星期二, 9月 19, 2006

預告

我也學piggy做預告,不然會忘記要寫什麼。前一篇OCP是Agile OOD五大原則中的第二條,接著會陸續介紹剩下幾條。
  1. SRP – Single Responsibility Principle.
  2. OCP – Open-Closed Principle.
  3. LSP – Liskov Substitution Principle.
  4. DIP – Dependency Inversion Principle.
  5. ISP – Interface Segregation Principle.

OCP

這裏說的OCP不是 Robocop裏的OCP,而是Agile裏的Open Close Principle。
原則是
  1. Open For Extension. 能夠擴充功能而不影響原有的功能,不改變原有的行為。
  2. Closed For Modification. 擴充功能時不改變原來的source和binary。

要做到以上兩點,必須全部對介面操作而非類別,最佳的例子就是Strategy Pattern。要完全符合OCP實在很困難,事實上是無法100%做到。我們是凡人,只能在遇到問題時運用refactoring將類別改為介面。Agile Software Development裏說我們能夠挨一顆子彈,接著refactoring,在挨第二顆子彈前改變設計。我承認自己比較笨,常常接連挨了三顆子彈才改到比較好的設計。

參考資料:
http://davidhayden.com/blog/dave/archive/2005/06/04/1096.aspx

星期一, 9月 18, 2006

搜尋結果

今天看到國生三年才開始才知道蔡依林的部落格搜尋第一名是指向他的一篇Blog。這是因為目前的搜尋引擎都採用與Google相同的page rank方式,愈多的連結指向同一個page則分數愈高。而相同的情形還有在中文版Google/Yahoo搜尋jserv會找到黃敬群的Blog http://blog.linux.org.tw/jserv/。因此若要分數高,得多找些朋友把相同的keyword指向自己。例如說,輸入"資訊技術 心情",則會找到某位電腦高手的Blog;輸入"鳥毅",就被搶到我這裏。(記得上個月時,"鳥毅"的第一名還是連到某個高中生的Blog)

Google這種Page Rank方式不能說不好,但某些人的網站連結率過高(像義氣幫聯盟),Jolin's Blog事件一定還會再發生。我有寫過,Google是完全電腦作業,搜尋結果是無人介入,所以電腦還是無法取代人腦呀~

挑工作,可以嗎?

  吉娜忿忿不平地向彼得抱怨:「可惡的布魯斯,居然敢當我的面摔桌子!」彼得連忙安慰吉娜:「哎呀,布魯斯可能只是一時不高興,到底發生什麼事?」吉娜:「布魯斯說不想做北極星客服支援系統,覺得沒挑戰性又麻煩。」彼得:「哇咧~這可是老總指名要做的案子,布魯斯如果不想做,叫他去找老總吧!」

  每個公司總會有一些Dirty Work,尤其是MIS,不做都不行。我寫「不挑工作,可能嗎?」的意思,是說明大部份的人都會挑喜歡的職業。但是以上這種情況,是在自己願意做的職業中,出現塞工作而不想做。

  並不是說挑工作不好,我自己也發生過這種情況,尤其是知道寫出來的系統用不了多久就會被換掉時,當年我和麥可為了這件事爭辯許久差點吵起來,但最後仍然寫完,結果只用了一個月呀!若是現在,我會用比較溫和的態度處理,比如說:「我覺得這個系統很好,但是...,不如...」。用委婉的方式去拒絕,並且再想出別的事情來做,被接受的可能性會大一點。

  像我自己的例子,真的是在浪費人力;而布魯斯的例子,是對少數人有用,但效益不見得很大。他這種情形下,必須說服老總才有可能不做,成功機率只有10%;除非不想幹了,否則還是摸摸鼻子少說兩句,把系統做完吧。

星期日, 9月 17, 2006

iTune 7

剛才決定保持一貫風格,把前一篇刪除。

昨天安裝iTune 7後,順手拉一張網路下載的專輯封面,才知道原來iTune是這樣玩的呀!
難怪現在的人打包CD要帶封面~我實在是太遜了,等明年領年終獎金一定要買一台iPod來玩玩!

P.S. 只有Mac版的iTune很棒,PC版的實在是遜太多,要玩iPod,最好帶台Mac回家吧。

星期四, 9月 14, 2006

FreeBSD Instant Server / Instant Workstation

每次登入FreeBSD都會出現 fortune 訊息,以前有系統潔癖的我會去想辦法不顯示,後來就懶得理它。

今天看到

You can get a good generic server install by using the
instant-server port/package. If you have ports installed, you can
install it by doing

# cd /usr/ports/misc/instant-server
# make install && make clean

as root. This will install a collection of packages that is appropriate for
running a "generic" server.


其實之前已經看過,但覺得instant server是很方便的設計,適合沒經驗的入門者。另外還有instant workstation,想安裝Desktop就方便多啦。

星期二, 9月 12, 2006

Portal最大的問題

最近在找能和AD整合的Portal架站機,目前以Rainbow Portal和DotNetNuke為主。這幾天才赫然發現,Portal能夠run沒什麼了不起,效能不好頂多買好一點的機器、RAM加多一點。最大的困難在於做不出想要的樣子-- Theme很難客製化。尤其是Rainbow Portal或DotNetNuke都拆成許多不同的ascx控制項,再加上CSS,幾乎都是在Trial and Error。改出一個上得了檯面的Theme所需要的時間,可能都可以替Xoops寫出AD Login,實在是很後悔沒有先試Xoops。

因此,剛才隨便搜一下,就找到一家以設計這些OpenSource Portal的Theme及Host Portal的公司。

希望有高人指點更好用的Portal支援AD,否則在下未來一個月內,會被.Net系列的超慢Portal整掛~

合併頻寬 Link Aggregation / Bonding

所謂的Bonding指的就是合併頻寬,其實有個標準IEEE 802.3ad Link Aggregation。早期只有高級的3Com Switch才有這種功能,最近看到國內Vigor的Switch也支援Bonding,它好像是run Linux。

今天看到Linux Bonding,想起在2001年時還真的沒看到Linux/FreeBSD有原生支援,不過進步到現在FreeBSD Bonding也是內建功能。當然網路功能超強的OpenBSD自從3.8版後也支援Bonding。現在OpenSource己經在許多方面很成熟,那一天XFree成熟時,可能連蘋果都不吃了。

星期一, 9月 11, 2006

SGI的Irix將走入歷史

CNetSGI的Irix將走入歷史

看到這個新聞有點感慨,當年還用過SGI,上面的模擬飛行雖然醜,卻有OpenGL加速,執行速度比當年的586還快。

底下這句:
目前仍有積極開發的三個Unix版本分別是惠普的HP-UX、昇陽的Solaris和IBM的AIX;其中只有Solaris能用x86晶片執行。
是不是表示Sun的策略是對的?Unix被Win/Linux/BSD夾攻,漸漸改以服務為主要收入?
至少現在我正在用的是全世界最多人用的Unix -- OS X。

iMac G5?

這是今天看到的Apple TW首頁,下一張是iMac G5的介紹,實在是太了不起,特此留念。



星期日, 9月 10, 2006

AJAX in Action 中文版讀後感

前幾天覺得自己很遜,跑去買AJAX in Action 中文版,結果有點小失望。雖然對譯者良葛格有點不好意思,但仍然要小吐糟一下。

原因之一:原文書是一年多以前出的,現在來看技術上有一些更新了。有些程式用.net 2.0執行會有問題,而connection string也沒有寫在web.config,要修改必須有Visual Studio 2003,對於只是要跑看看效果的讀者,實在是太辛苦。

原因之二:理論講太多,實作講太少,和其他in action系列實在差太多。

原因之三:作者不夠用心,在example 2.8第8列:
var msXmlAx == null;
應該是
var msXmlAx = null;
可能是因為JavaScript沒有錯誤警告,去作者網站上也沒有堪誤,而且連這個範例也不在下載的zip檔裏!作者要附程式碼,應該要對書中所有的片段測試,並放在附檔裏。第11章裏的Server Source中DBUtil.java是發生什麼事?缺少的import一堆,MissingResourceException的constructor也不對,搞不清楚發生什麼事!

若以跨平台為目標,所有的範例應該要以IE、Firefox、Safari、Konqueror都測試一次,不相容的地方必須指出;這才是AJAX的目標,否則我都用ActiveX寫,簡單省事(現在證卷業的作法)。

原因之四:我對HTTP的protocol很熟,對看過RFC又瞭解Design Pattern會覺得廢話太多,我喜歡像UML Distilled這類直接殺進重點的書。

其實這本書廣度很夠,對於只懂一種程式語言的人,看到後面幾章實作部份大概頭都昏了,要實際run範例起來可能也架不出那麼多種Server(Container)吧。

像我這種實戰為主的人,就可以等AtlasAjaxTagsAjax4jsf 的使用手冊系列。但這本書對於AJAX不清楚的人而言非常值得一看,畢竟是以概念性為主的書。

我想建議作者改名!英文該叫AJAX in a nut shell,中文該叫AJAX入門手冊。

星期五, 9月 08, 2006

金桔檸檬

同事昨天去喝師大夜市的大腳桶金桔檸檬 ,我順便介紹一下。這家"店"在師大夜市有兩間,另一個攤子是柳橙檸檬,味道比較甜。另外在光華商場新生南路旁,台北工專的對面巷子也有一間分店,在賣DVD空片的對面。

想要喝清爽的就喝金桔檸檬,喜愛甜味的就喝柳橙檸檬,兩種我都常喝,味道都不錯。買的時候會先請你喝一小杯,問要不要酸一點,或是加一顆酸梅。通常我都加酸一點,若不是現喝,由於冰塊頗多,建議買去冰的,回家冰起來喝味道更濃。

其他的資訊,就等同事介紹,或是自己去一趟就瞭解。

世衛發出“不治”肺結核病毒警告

同事怪我都不寫些休閒的帖,先來點關於健康的BBC新聞

世衛發出“不治”肺結核病毒警告



“極端抗藥性肺結核病毒”
“極端抗藥性肺結核病毒”讓人憂

世界衛生組織警告說,一種新的、"無法治愈"的肺結核病毒正在全世界廣泛傳播。

這種新的病毒被稱為"極端抗藥性肺結核病毒"(XDR TB, Extreme drug resistant TB)。

美國、東歐和非洲都發現了它的蹤跡,但西歐還沒有發現確實的病例。

世衛組織的專家納恩醫生把這種新病毒的廣泛蔓延歸咎於防治政策的失誤。

世衛官員和肺結核病專家在南非的約翰內斯堡召開緊急會議,討論如何遏止這種新病毒繼續蔓延。

肺結核病每年在全球範圍造成170萬人死亡,但研究人員對這種抗藥性肺結核病毒表示憂慮。

由於在療程中服用了不適合的肺結核藥物,導致了肺結核病毒對藥物產生了抗藥性,因為出現了對多種藥物產生抗藥性的"多抗藥性肺結核病毒"(MDR TB, Multi Drug TB)。

世衛組織估計,每年發生了42萬5000起"多抗藥性肺結核病毒"個案,大部分發生在中國、俄羅斯和印度。

由於需要使用毒性更強的藥物治療"多抗藥性肺結核病毒",使得治療時間更長和費用更高。

“不治之症”

現在,"極端抗藥性肺結核病毒"的抗藥性更強,幾乎是"無法治愈"。

世衛組織的納恩醫生說,目前正在發展新的肺結核藥物和疫苗。

他說,"極端抗藥性肺結核病毒"的傳播可能使得非洲的愛滋病治療計劃出現風險。

一項調查表明,患了愛滋病的病人很容易受到"極端抗藥性肺結核病毒"的感染,並因病死亡。

納恩醫生指出,必須要確保和監管病人按照正確的療程服用藥物,那麼不僅是肺結核病、甚至是愛滋病的抗藥性發展率也很會顯著的下降。

Linux更新Apache

手上有台舊機器,灌紅帽不維護版本,要加上SSL功能,因此重操舊業從source build;此方式也適用FreeBSD,但在FreeBSD我建議直接在ports make時加上參數調整即可。

1. 以ssh登入主機
2.下載新版Apache,以1.3.37為例
3.下載新版mod_ssl,以mod_ssl-2.8.28-1.3.37為例
4.下載新版openssl,以openssl-0.9.8c為例
5. 下載新版PHP,以PHP 4.4.4為例
6. su成root
7. cd /usr/local
8. tar xzf apache_1.3.37.tar.gz; tar xzf mod_ssl-2.8.28-1.3.37.tar.gz; tar xzf openssl-0.9.8c.tar.gz;tar xzf php-4.4.4.tar.gz
9. cd /usr/local/openssl-0.9.8c
10. ./config; make
11. cd /usr/local/php-4.4.4
12. ./configure --with-apache=/usr/local/apache_1.3.37 --with-zlib=/usr/local --with-png-dir=/usr/local --with-gd=/usr/local --with-mysql=/usr/local/mysql --with-gettext --with-iconv --with-imap --with-imap-ssl --enable-mbstring --with-pear --with-kerberos --with-openssl=/usr/local/openssl-0.9.8c --enable-track-vars --disable-debug
PHP的參數是依照個人不同的需求調整各種功能,像是openssl這種需要安全性更新的套件,指定版本會安全一點
13. make clean; make ; make install
14. cd /usr/local/mod_ssl-2.8.28-1.3.37
15. ./configure --with-apache=../apache_1.3.37 --with-ssl=../openssl-0.9.8c
16. make clean; make; make install
17. cd /usr/local/apache_1.3.37
18. ./configure --activate-module=src/modules/php4/libphp4.a --enable-module=so --enable-rule=EAPI --enable-module=proxy --enable-module=rewrite
強烈建議要使用EAPI和module=so,理論上php也可以做成module,但我怎麼做都不成功,因此使用傳統方式。
19. make clean; make
20. make certificate (如果沒有要做簽章,就不要make certificate這步)
21. make install

完成後, /usr/local/apache/bin/apachectl stop; /usr/local/apache/bin/apachectl start 重新啟動Apache即可。

P.S.
1. 我有加上make clean是因為我調整參數make許多次,如果是第一次build,可以不加上make clean,但這是好習慣。
2. Apache在更新時並不會覆蓋原有的設定檔,因此我並沒有附上如何設定,有問題請留言。

FreeBSD 6更新Kernel

最近的安全性更新包括openssl,因此必須更新Kernel。
以前的版本在rc.conf設定kern_securelevel="2"及kern_securelevel_enable="YES"後,就無法更新kernel,但是現在居然可以了!

# cd /usr/src
# cvsup cvs-supfile
# make buildkernel installkernel; sync; sync; reboot
這樣就更新kernel了~

# cd /usr/src
# make buildworld
這樣是OK的,但是以下就不行
# make installworld

現在對FreeBSD的Security模式愈來愈不瞭解 OTZ

FreeBSD進Single User Mode仍無法修復檔案

以下是在BBS看到的,問題是FreeBSD進Single User Mode,使用fsck -y仍無法修復檔案。
如果不是有壞軌,此
解法應該就有用:

reboot重啟﹐在boot prompt輸入 -s ﹐進入單用戶模式。
fsck -p
mount -u /
fsck -fy

問題在於使用的唯讀模式鎖定的檔案系統﹐進
Single User Mode再進行檢查應該能夠
解決問題。

閒聊:資訊安全

Word 出現極重大漏洞 目前尚無修補程式
Windows攻擊威脅升高

根據本身的經驗,最近的攻擊與病毒、後門、木馬等有增加的趨勢,上網或是使用"特殊管道"軟體都得小心點。不用的服務不要開,電腦的防火牆最好都打開。我自己在家大都用Mac上網,公司也沒有裝"特殊"軟體,所以暫時還未波及。

今天又針對FreeBSD OpenSSL與Bind做安全性更新,算有2層Firewall,駭客應該沒那麼容易攻進來吧?

星期四, 9月 07, 2006

高手與領導者

看到Qing的兩篇
從高手到領導者
回應對「從高手到領導者」一文的回應

現在年輕人大都希望當幾年工程師,再轉成Presale,從此不再碰技術細節。當然,有這種想法的人是不可能成為高手;不過,當高手年過30甚至40歲時有時就不得不低頭,已經無法再學習那麼多的新知識而必須轉型。

台灣很少有高手當上主管還在管Coding這種細節,就算他自己對技術很有興趣,但繁重的行政業務和應酬就把他壓得喘不過氣。而William所說的外商公司資深技術人,我也很希望能夠看到,但台灣的外商大都只重業務,技術人在台灣大都做Support,同學Marty就是如此。

真實環境裏,政治因素影響太大,像ingramchen所言,高手的人際關係不好,根本升不上去。除非從事研究工作,否則光要維持高手的技術領先,就耗費他所有的精力。

商業周刊所報導的成功技術人,全都是完全轉型,沒有留在技術本位,半導體業的曹、張或施都一樣,連鈔票之門(Bill Gates)也是呀。說到底,想賺錢就學著當老闆,在台灣當工程師一輩子就是這樣過。

閒聊:國防役

看到piggy的無知是可怕的才知道他是國防役。在下的公司也有國防役的同事,和主管鬧得不愉快差點離職。國防役最可怕的地方在於若未待滿就離職,得回國防部重頭去當一年多的兵。

在2000年時,我剛到Y公司的第一天晚上就被小亨利帶去和想挖他的一位劉總經理吃飯,那間怡X公司是以Linux為主,劉總本人當時還在唸交大博士班。當時劉就有表示他們公司也有國防役的名額,後來得知怡X確實是好公司,待遇也比台北高多了。不過很可惜,2002年我就找不到這間公司。這故事告訴年輕人,要慎選國防役的公司,最好是中研院、中科院之類,而且和老板關係要處得好。

再論Web 2.0

Web 2.0論壇:誰是泡沫?
Web 2.0 的獲利
Web 2.0 = 泡沫 2.0 ?

看了以上3篇,我只能說:Business is Business! 創投的想法,真的不是工程師所能理解的。

Randy說他在2001年就參與一個Web Paint程式,具有AJAX的效果,此程式還有專利,但技術和現在的XMLHttpRequest不同。
我本身絕對不否定AJAX,但叫Web 2.0只是表示Web技術的革新。以創業的眼光,寫出一套Writely或是Web Paint、Web Excel賣給Google或Yahoo當然是賺錢的好方法,但到最後技術不過是技術,等到大家都會寫AJAX,人手一套Atlas的時候,泡沫化的故事又要重新上演。

全球開源CMS票選前五名

自由軟體技術交流網的新聞: 全球開源CMS票選前五名出爐!,稍微去Google一下,發現這五個只有Plone是Python,其他的全是PHP。我只能說:Java和.Net都要加油囉~

等到第一名選出來後,一定要去玩玩看,個人覺得Xoops是有點慢啦,台灣Joomla這篇所附的圖挺有趣的,如果真的那麼好,下次就拿來公司架Internet Site


Google Trend(趨勢分析 2006.9.4)

星期三, 9月 06, 2006

Firefox 2.0 Beta 2

最近可能是Sage裏的RSS bookmark有某個字踩到地雷,所以只要打開Firefox (Mac版),就會開始掉字。既然沒人有解,只好自力更生,看了一下似乎Firefox 2.0沒這個問題,就抓了Firefox 2.0 beta 2,果然就恢復正常,而且CPU的使用率也稍稍下降一點。

今天還看到Firefox 3.0 Mac版是Cocoa,而不再是Carbon。我倒覺得這不會差太多,只要不掉字就好,而且Carbon執行速度可能還比Cocoa快咧~

星期二, 9月 05, 2006

私設伺服器

今天看到一則新聞嚇了一跳,線上遊戲高手 私設伺服器 窮學生半年賺300萬 為減輕家中負擔 大學生仿線上遊戲 私架伺服器賺暴利 後來去查了一下,發現並不是第一次,私設伺服器 盜線上遊戲

我想架設伺服器那有這麼簡單?會寫程式的人應該都知道,雖然on-line game的地圖是在client,但是許多通訊協定要靠反向工程去解出來再寫出rule並沒有那麼容易。當然,外掛是破解通訊協定,但外掛只要修改一部份訊息,而不是處理所有的資料。後來在Gamebase的一篇私設遊戲伺服器的法律問題解答了我的困惑,大部份都是遊戲公司內部流出的程式,只有像星海爭霸這種國際性的game server才是反向工程的產物。

私設伺服器是不好的行為,不過遊戲公司也要檢討,現在許多的on-line game都會lag,就是經營者為了節省成本,一直合併伺服器,使用者不爽只好轉向地下站。現在open source的game也慢慢崛起,說不定那天我也自己架一個站,找親朋好友來玩個爽,不受外掛和白目經營者及白目玩家的氣。

星期一, 9月 04, 2006

閒聊:程式員的調劑

說實話,寫程式是相當乏味的事情,尤其是在快結案時,會希望再也不要寫Code。(謎之音:其實網管更乏味呀!當機時會忙死你!) 自從訂閱Java週報後,獨孤木的文章有如沙漠中的甘泉,滋潤乏味的上班時間。

前一陣子發現獨孤木老大的Blog更新速度頗快,猜想他應該不是employee,否則那有這麼多時間寫Blog呢?他最近寫的幾篇,就表明他是創業成立幹圖王幹圖王這個軟體我有用過,寫的還真不錯,以Java寫成的AP能有這樣的Performance真的很棒,可惜太吃RAM和CPU資源,小弟公司用的電腦5年沒換,跑不太動囉~(其實是在背景抓圖時,主管問事情開不出Visual Studio,只好放棄。)雖然小弟我也有SCJP和SCWCD的證照,不過這種軟體可能還是用C++寫比較適合,C#做出來的也是一樣吃RAM。

最近換部門沒有想像中的順利,今天有舊部門的同事問我Turbo C 2.01,多令人懷念的東西呀,很想下去替他寫embedded system,希望能夠趕快做一些有興趣的事。下次去天龍,還是買本獨孤木老大的軟體超人X光眼,坐公車時看看吧~

Windows Live Writer

看來微軟有在學Google,讓員工開發一些有的沒的,像這個Windows Live Writer,應該是某個天才工程師自己做的。

Firefox for Mac又掉字

今天很高興同人給了寶貴的留言,但很可惜地,我所喜愛的Firefox居然又掉字。這個問題實在是很棘手,只好使用不順手的Safari來回應,但中問Safari也當了2次,原因是我在Link上按住ctrl再用mouse clik。

如果您有解決方法,請和在下聯絡,謝謝!