星期四, 11月 30, 2006

電子郵件

賴榮樞在 電子郵件的未來 (上) 電子郵件的未來 (下) 寫到電子郵件未來的發展,其實活屍在 真正需要2.0的是--Mail
更是一針見血。電子郵件的SMTP協定早就落伍,與其在這種協定架構下加強,不如換個新port做個新service吧!

其實我對HTTP的感覺也是如此,原本只是簡單的文字展示;如果真的需要做成複雜的AJAX,又缺乏安全的模型,不如重新設計個適用的通訊協定。

好文推薦

王克明的使用案例分析常見的幾個問題 解答我心中的問題,自己看書老是想不透該如何分割use case。其實,他的UML圖解系列,我大概也只看得懂這篇。

今日新聞

研究:座頭鯨腦部擁有與人類同型的一種腦細胞
座頭鯨有人的腦細胞! 美研究:牠比人所知還聰明
恐龍滅亡原因 地質學家:隕石撞地球 記得幾十年前就有人提出這種理論了呀~
美訓練出 嗅「彈」蜜蜂
每天睡六、七個小時 較不易得憂鬱症 這也是幾年前就有相同研究及結論
拜爾材料科技公司為創新電子應用產品鋪平道路:原型鑷子 另一個置入性行銷
源自大陸的惡意程式 Sophos:過半是想竊取身分資料 我之前就提過,前幾天才發現這個月的資安人雜誌也有提到
全國性衛星定位基準站 12月1日成大啟用 剛好敝公司有人做這方面研究,又是成大畢業,看來明後天他就不在辦公室
資訊月 低價NB大戰 寫得頗平實,我很想去敗...

星期三, 11月 29, 2006

SQL Server的授權方式

今天寫email去煩微軟的SQLServer負責人黃淑翠,莫怪呀!我是替你們公司賺錢,調查清楚後馬上會把CAL補足。

How to Buy Microsoft SQL Server指出,共分3種授權方式:
  1. 按照CPU數量
  2. 按照裝置數量
  3. 按照使用者人數
第一種很清楚,在同一頁就有價格,用Volume License會有折扣。照著CPU數買,其他的都不必管了。

而無論是Server plus User CALs Licensing ModelServer plus Device CALs Licensing Model,都要注意MultiplexingSQL Server Pricing and Licensing的附件SQLServer2005Licensingv1.1.doc寫得很清楚,是以"資料"(Data)為判斷方式,只要資料是由SQLServer吐出來就得買CAL,包括其他Server上的程式或元件。所以如果有人說以SQL帳號授權或是3層式架構不會算到user都是錯誤的觀念。就算是企業內Intranet也是每個user或device都得買SQL CAL,不然就買CPU授權版。我大致上算一下,若超過50名員工都有上網查資料,則購買CPU授權比較划得來。

今天找授權就花了幾個小時,如果還要找,應該從Microsoft Vloume Licensing開始看,Volume Licensing Briefs有許多文件,其中Multiplexing寫得很清楚,內容和SQLServer 2005授權相同,但只寫SQL並沒指定版本,所以使用SQL 2000也是必須買足CAL。

我和微軟沒有任何關係,但我尊重版權,更喜歡Open Source Free Software 自由軟體。所以,若老板們不想花錢,可以考慮Open Source的DB,其實也是很好用。再次推薦Postgresql,不但是全功能,還是BSD式授權,可以任你使用。Postgresql有提供JDBC、OLEDB、ODBC及.Net Provider,也有很好的管理介面pgAdmin。其他像FirebirdMaxDBMySQL也是不錯的選擇。

套一句新聞上看來的話(據說是邱麗孟的兒子說的)做結論:不想花錢就不要用!

最近變胖了

最近變胖了,難道是太多話往肚子裏吞?

星期二, 11月 28, 2006

我想學...

剛看到王克明的軟體其實還真的蠻有趣 (1) ,果然是高手,專業顧問的程度果然不同。或許有人會覺得太誇張,但我相信優良的設計方式,絕對會讓開發時間減少。這就是我幾年來一直希望能學習的系統分析能力;由於缺少實作大型專案的經驗,雖然看過幾本UML與XP仍然沒有任何幫助。

所謂的高手,能夠一眼看出問題的癥結所在,而不是指寫程式比較快(雖然通常是事實)。想起我重考研究所那年,有天去拜訪同學,躺在同學的床上休息,聽到他與另一人在debug的過程,跳起來一分鐘後搞定的事情,現在已經沒有那種功力,唉~

Ruby的效能?

剛才逛到 Joel談Ruby效能 ,才看到再探Ruby效能。本來還打算明年閒一點的時間來學學Ruby,這篇文章又澆我一頭冷水。不知道換成JRuby或Ruby.Net之類的引擎會不會效能變好(或變差)?其實在2000年就有老同事介紹Ruby,但基於愛國心一直沒看(藉口...)。最近被黑暗原力纏身更忙,還是得等明年再抽空好好的看看這顆寶石。

過於逼真的BlueScreen ScreenSaver

最近由於SysInternals被Microsoft併購,炒熱 BlueScreen Screen Saver ,我也把 BlueScreen Screen Saver 裝在公司的電腦上。

沒想到實在太過於逼真,連自動重開機的動畫都一模一樣,去倒個水回來看到嚇一大跳,心臟病差點發作。 這玩具要小心使用,可能欺敵作用還沒生效,自己就先掛了~

星期一, 11月 27, 2006

網站風格

今天想聊聊我所不擅長的網站風格設計。

有訂閱本頻道的老大們一定知道在下待的是一間傳產小公司,而且不管是Internet或Intranet的網頁都相當紊亂沒有條理。雖然Internet在3年前買一套架站機後大有改進,但連結到其他部門網頁仍舊是慘不忍睹。

許多女性不論是工程師或文書人員,做出來的網頁總是花花綠綠,看起來就不像是公司內部的網頁。而我輩男性工程師缺乏美學概念的人做出來的網頁則是樸素到像是沒化妝的藍心媚,會讓稍有美學概念的人直搖頭。

撇開技術問題不談,網頁如果直接從Word轉出來不只是不好修改,而且也會有一種生硬的感覺,最好還是從頭開始用Dreamweaver打造。不要問我為何不用FrontPage,連它的老媽都放棄它了。

好的網站必須風格一致,包括顏色、字型、版面,這點說起來容易做起來難。首先,使用工具不見得一致,就算一致,要求大家在每個地方都用相同的字型與大小,萬一老板看了不順眼要修改時不就當場欲哭無淚?對於這點,我的想法是:必須全面使用CSS;而且必須定義一系列的class就如同C語言的標準函式庫,要求所有人遵循。以站為思考方向,不要以頁面為主;適度引進server side include會讓版面整齊劃一。可以參考Yahoo的淡紫色風格(這幾年變成淺藍綠色),但我覺得Yahoo!台灣做得並不好,股市在許多地方充斥著盧大為所喜好的橘色風格。

剛才只講到畫面一致,更重要的是內容的風格。先想想網站的對象是什麼人,如果是網蟲架的站當然就要做出充滿玫瑰花香的風格,而我們這種極道宅男當然是以FZR、秋田86、Mac、VAIO為主的陽剛風格。一個線上購物網出現玫瑰花園的留言版你會做何感想?獨孤木提到qing流量低,我倒認為這是qing自己選擇的讀者區塊,而且他做得非常好,不像我會亂七八糟的貼一堆。

以一間公司的網站為例:內容應該簡單扼要,但必須層次分明,能夠提供搜尋最好;也可以利用google的 site: 加上自己公司搜尋。不要在公司的網站,莫名其妙加一個樂透對獎連結。也不要加上太多的圖,首頁不要先放張Flash,那只會顯得無知與不專業。

時間有限,先寫到這裏。希望貼這篇不會被亂刀砍死 XD

星期六, 11月 25, 2006

SQL Server 2005 Express Edition的授權方式

SQL Server 2005 Express Edition相當於MSDE的地位,因此有著SQL Server 2005完全相容的特點,速度比MSDE快。系統限制為:16個instances、只支援 1 CPU、1 GB RAM,不過資料檔大小擴大為4 GB,提供UI,而且支援全文檢索(Full-text search)。細節請參考Upgrading MSDE 2000 to SQL Server 2005 Express。而授權為:
To redistribute SQL Server 2005 Express with your applications, you need to register for redistribution rights. This is also free of charge, and can be found at the Register for SQL Server Express Edition Redistribution Rights Web page.

To register for SQL Server 2005 Express redistribution rights, you need to:

Review the SQL Server 2005 Express Edition Redistribution End-User License Agreement (EULA).

Print and retain a copy of the SQL Server 2005 Express Redistribution EULA.

Register for SQL Server 2005 Express redistribution rights.

乍看之下似乎比MSDE 的限制多,但其實不然。在Oracle Database 10g Express Edition授權為Free to develop, deploy, and distribute的壓力下,微軟的條文裏寫著幾個限制,包括不得散布惡意程式等等,其中我感興趣的是:不得散佈並於非 Windows 的平台上執行。所以程式使用SQLExpress,基本上在Windows平台是免費使用,如果在Linux使用WINE執行SQLExpress就違反授權,但大概沒有人會這麼做吧?

雖然MSDE能使用2顆CPUs和2GB RAM,但是授權限制多,而且資料檔限制在2GB,稍微大一些的資料檔就會超過。而SQLExpress是以單一資料檔4GB為限制,雖然說限制使用1GB RAM,但目前一般的PC也很少裝超過2GB,其中1GB留給SQLExpress用,另1GB給OS和AP用應該很夠吧!只是未經實測,不知道使用雙核心CPU的情況如何,但在下是對效率滿意。

我在前一篇有提到,我執行的程式在SQLExpress比MSDE快;根據胡百敬的書上所寫,SQL Server 2005比SQL Server 2000快,看來果然不假。

最後必須做真實的評論,商業軟體比起自由軟體不見得比較好,但是花錢的東西就有支援。最近朋友的公司有遇到Linux上PHP與SQLServer不相容的問題,而我用Tomcat寫JSP使用JDBC連接SQLServer則完全沒問題。PHP的好朋友叫MySQL,盡可能不要自找麻煩。像我們這種全使用微軟solution的小公司,還是乖乖地繳一些微軟稅。其實MS SQL已經不算貴,Workgroup版也夠用,就算買Standard也還負擔得起。工作幾年後,重點已經變成如何快速解決問題,而不再堅持理想使用Free Software;只要是公司用的東西,就算是Free Software也希望有商業支援。

Update:剛有人問我,怎麼SQL Server 2005都出來一年才在看?因為傳產公司作風保守!SQL Server 2005 升級指南也在10月23日才發布中文版呀!敝公司有個不成文的原則,微軟的產品在SP1之前是不會採用的,Windows XP、Windows 2003 都是 SP1之後才開始使用:P

SQL Server 2000 Desktop Engine (MSDE 2000) 的使用授權

由於敝公司的SQL Server實在太操,想分流又得盡量不花錢,於是研究一下MSDE的授權。MSDE不是Microsoft SQL Server Developer Edition,後者只能用於開發階段。

先提MSDE 2000的系統限制:無UI、最多16個instances、支援至2 CPUs、RAM 2GB、資料檔 2GB,沒有全文檢索功能。優點是與SQL Server 2000完全相容(根本是相同的引擎)。

我找到如何取得並安裝 SQL Server 2000 Desktop Engine (MSDE 2000),結果:
注意:本文是不經人為參與的自動機器翻譯系統翻譯完成。這些文章是Microsoft為非英語系國家使用者所提供,讓使用者可以了解文章的內容。Microsoft 不保證翻譯的語言品質也不對由於內容的錯譯或客戶針對內容使用所發生的任何直接或間接可能的問題負責。
果然有機器翻譯的部份,但有特別強調,重點是下面這段:
MSDE 2000 授權
根據對應用程式與它相包含轉散發權利及授權方針適用 MSDE 2000 處理的方法不同。 對於授權資訊和適當的使用的 MSDE 2000, 請造訪下列 Microsoft 網站:
http://www.microsoft.com/sql/msde/howtobuy/msdeuse.asp
今天發生很奇怪的現象,第一次讀入時居然沒有上面這段,reload後才出現。很不巧地,以上頁面已經導到SQL Server 2005 Express Edition首頁,不過藉由google的神力,我找到Rights to Use and Redistribute MSDE 2000,文內對各種系統的授權寫得很清楚,請自行參閱。

但使用MSDE仍有些授權限制;下一篇來討論SQL Server 2005 Express Edition。

星期五, 11月 24, 2006

Google徵才

之前一直覺得很怪,piggy大是在那裏找到Google徵才。剛才無意中看到了:Google Job Opportunities ,條件如下:
Requirements:
  • BS/MS/Ph.D. in computer science or a closely related field.
  • Strong C/C++/Java programming skills.
  • Substantial knowledge of UNIX/Linux or Windows environments.
  • Several years of software development experience.
  • Enthusiasm for solving interesting problems.
  • Fluency in English (reading and writing).
第一項我就不合了,雖然合第二項,唉~

2006 Linux 驅動程式實作Workshop

剛有位長官寄給我2006 Linux 驅動程式實作Workshop, 內容似乎以技術為主,對Embedded System和Linux有興趣的人可以去看看,反正有免費午餐。

Subversion同時使用兩個Repository

Subversion應該沒有支援Dual Repository的機制,由於平時偷懶把自己寫的幾支程式都放在同一個Repository,需要分享時就很麻煩。原本想利用Apache的虛擬目錄 Alias 的方式達成,但目前看來不可行;再使用mod_proxy的方式也有權限問題,無法達成目標。

所以我利用 Subversion 1.3版開始非正式支援SVN_ASP_DOT_NET_HACK變數,就可以在同一個目錄下有兩個不同的Repository。
The "_svn" hack is now officially supported: since some versions of ASP.NET don't allow directories beginning with dot (e.g., ".svn", the standard Subversion working copy administrative directory), the svn command line client and svnversion now treat the environment variable SVN_ASP_DOT_NET_HACK specially on Windows. If this variable is set (to any value), they will use "_svn" instead of ".svn". We recommend that all Subversion clients running on Windows take advantage of this behaviour. Note that once the environment variable is set, working copies with standard ".svn" directories will stop working, and will need to be re-checked-out to get "_svn" instead.
雖然麻煩一點,但就是在命令列切換:
C:\MyAp>set SVN_ASP_DOT_NET_HACK=1
C:\MyAp>svn commit
C:\MyAp>set SVN_ASP_DOT_NET_HACK=
C:\MyAp>svn commit
或者做成批次檔切換變數。

請注意:此特性只有在Win32平台有效,在source如main.c有特別定義:
#if defined(WIN32) || defined(__CYGWIN__)
/* Set the working copy administrative directory name. */
if (getenv("SVN_ASP_DOT_NET_HACK"))
{
err = svn_wc_set_adm_dir("_svn", pool);
if (err)
return svn_cmdline_handle_exit_error(err, pool, "svn: ");
}
#endif
所以若要在其他平台有此功能,必須修改source code再自行編譯。剛才確認在1.4.2版共11個檔案要修改。

轉貼:有些事情不能講

今天收到一封mail,google後找不到出處,最早出現於2002年,就先貼在這。

因為這個世界的運轉方式,所以有些事情不能講。
有錢不能講,因為會被搶;沒錢不能講,大家怕你來借。
工作順利不能講,會被嫉妒;工作不順不能講,人家會覺得你能力不足。
運氣好不能講,會破功;運氣不好不能講,會被當成掃把星。
愛情順利不能講,走在路上會被很多人怨恨;愛情不順不能講,會被拉進無奈的單身俱樂部。
減肥成功不能講,人家會問你花多少錢吃多少藥去哪裡當最佳女主角;減肥失敗不能講,因為自己也不好意思講。
想要的東西不能講,人家會覺得你貪得無厭、不知自我長進;不想要的東西不能講,人家會覺得你敬酒不吃吃罰酒。
快樂不能講,人家會覺得你得意忘形;悲傷不能講,除了節哀不會有其他更新的形容詞。
想要得到指導不能講,人家希望你獨立作業;想要單機運作不能講,會被抱怨不懂協調、真不合群。
電腦很強不能講,很多人會來拉你去幫他維修;電腦當機不能講,同學忙著打報告,怕你來借。
吃飽了不能講,可能人家正要請你去吃大餐;肚子餓不能講,會被以為是要飯的。
很爽不能講,到處都有人不爽;不爽不能講,沒有人想聽不爽的話。
白天想睡不能講,會被當作被豬附身;晚上睡不著不能講,朋友怕你打電話吵他。
會什麼不能講,會變成自我吹噓;不會什麼不能講,會被當作無能。
實話不能講,會被認為不懂圓滑;客套話不能講,人家會說你真是虛偽。
心裡沒話不能講,會有很多人來跟你講他的心裡話;心裡有話不能講,因為沒人有地方裝。
事實不能講,太多人承受不起;謊言不能講,誠實是一種美德。
我愛你不能講,講了就沒有退路;我不愛你不能講,怕自己遭遇不測。
還剩下什麼能講?什麼都不要講了。

有許多職場上的事情,真是不吐不快;但是公開貼又怕被看到,只能繼續為五斗米折腰。上面這些話,大概只有"我愛你"是可以講的;不要怕沒退路,柳暗花明又一村,我的女朋友就是這麼來的。

星期三, 11月 22, 2006

非常不準

部落格觀察似乎非常不準呀,前兩天本站忽然變成四百多名,我當時就懷疑是系統錯誤,剛才已經變為836名, 明天應該會繼續向下回到900名左右。這樣才對嘛,哈哈!

重申本站之宗旨:Blog就是自已寫爽的


Update:請看食夢黑貘的回應。

.NET Runtime Optimization Service

今天打開我的以卵擊石,正想打開SQLExpress來測試效能時,卻發現CPU一直100%居高不下,查出被svchost.exe吃掉,是呼叫mscorsvw.exe。只好拿出舊方法--關Service來試試誰吃了CPU。

運氣很好,第一個服務就是: .NET Runtime Optimization Service v2.0.50727_X86
乖乖,從來沒看過名稱這麼長又怪異的服務,我三年前補習MCSE2003是上假的嗎?

只好請出Google大神解讀一下,結果台灣還真沒人遇到問題,是我太遜了嗎?幸好地球上仍然有人遇到和我相同的問題,根據David Notario的說法:這是一個新的CLR最佳化服務,跑過一次就不會再執行。其實是把IL編譯成Native Binary的動作。所以應該是因為我今天安裝SQL Server Service Pack 1,CLR偵測到有新的元件加入GAC,就編譯成原生檔。而這個動作,可以透過指令操作:
ngen queue pause
ngen executequeueditems
ngen queue continue
...
 
看來我還真是孤陋寡聞,MCSD應該會教NGen吧?明天再跑趟天龍天瓏找本書來看看。
差點忘了說,最後我就拿出NB散熱墊,讓mscorsvw.exe跑完就沒事。也只花了十幾分鐘,所以應該能夠接受。

參考資料:
NGen Revs Up Your Performance with Powerful New Features
To NGen or not to NGen
David Notario's WebLog

無名小站遇「駭」事件

本來昨天就要寫,但昨天中午Blogger又在維修。

無名小站遇「駭」 個資流入中國 兩年輕學子扮駭客入侵主機 警方追查法辦 我只有在自由時報和Yam看到,這則一直被無名否認,但我認為併購案是事實。

這篇是台灣某位高手早在年初時提到無名的XSS漏洞,所以在台灣駭客年會發表的時間已經很晚。個人認為無名對資安的防備仍不夠,看到這篇時就該有所警覺。當然啦,若是敝公司這種整年流量不到無名一小時流量的公司(可能不到10分鐘:P),沒有會員也沒啥資料,還真的可以放給他爛。

為避免無知青少年亂用XSS,不對技術多做介紹。但我相信隨著JavaScript技術成長,XSS的攻擊事件也會增加,在JavaScript的安全模型未改變之前,網站主還是得多小心。

Update:關於此事件必看:十多分鐘抵禦XSS且擊退攻擊的神奇技術?
再Update:現在瀏覽器的安全模型已經改了,不同site都不能呼叫AJAX,但仍要小心。

此事件讓我想到昨天看到大砲開講及這幾天公司許多人中後門,決定要提醒大家,盡可能不要用IE,當然,IE7有改進。
根據可靠小道消息指出,最近大陸駭客相當猖獗,常hack進網站資料庫主機再勒索公司付錢;應該大部份都和解了事,因此各位沒有在媒體上看到相關新聞。據我所知,除Windows主機的漏洞外,Linux也是主要目標,目前聽到的勒索金額從台幣50萬到200萬不等。對於商業網站,在下有以下建議:
  1. DMZ是必要的,最好將內網與DMZ隔離,不要有連結。某個案例是駭客經由網站主機駭到網站主的電腦。
  2. Firewall選用硬體式會比軟體式好,最好內建IDP,敝公司用的是Fortinet,IDP方面稍微不夠力。防火牆最好用Windows與Linux以外的OS :D
  3. 程式一定要防SQL Injection,現在有現成的測試程式,駭客可以輕鬆的找出那支程式有漏洞。
  4. 會員資料必須做某種程度以上的加密,最好是使用非對稱金鑰。加解密元件放在資料庫主機與網站主機以外的電腦,降低被駭的風險。
  5. 定期更新安全漏洞,並執行漏洞檢查程式。

參考資料:
XSS
XSS(Cross Site Scripting)攻擊會讓您遺失Cookie中的資料
XSS、網頁標準、二進位
跨網站指令碼 (Cross-Site Scripting) 與 SQL 程式碼注入攻擊
再談 HTML 注入

Hotmail也拼了

昨天看到新聞時, 連上Hotmail時果然已經變成1GB容量,這樣就不用擔心朋友直接用msn的帳號寄到hotmail會爆掉。只是...最近申請VIP服務的人會很幹吧?

我對新聞裏這句有意見:
用戶不但能在垃圾郵件防堵技術之下,減低干擾地收發郵件,...
根本沒啥效果,而且我是選"加強層級 - 可封鎖大部分的垃圾郵件。",如果選"進階層級 - 您將只會收到在您連絡人清單或同意在 MSN 收到的電子郵件位址寄來的郵件",和白名單就沒什麼不同了。

微軟該參考一下Gmail的做法,Gmail的效果是我見過最好的;Yahoo也是一大堆Spam,雖然已經過濾90%。

今日新聞

空中飛車免塞車 美科學家預言25年內成真 看看就好,地球沒那麼多能源供米國人浪費

黑猩猩社會熟女才吃香 連生物學家也意外 重點:男人對於年輕女性的偏愛是出於本能

基因改造後的棉花子可食用 將成重要糧食

敦煌將興建全球最大太陽能發電站
核融合反應爐計劃獲突破 歐盟等七國簽約
國際核融合發電廠 歐盟、六國簽約2008年啟動
中美日俄多國簽署核聚變實驗協議

美國擬再推一美元硬幣取代紙幣

Eyes Only 1 2 3 4 5

星期二, 11月 21, 2006

IE7測試中

昨天和前部門的高手交接幾支web ap,他做的page大都是IE Only,反正是Intranet用,只要沒問題都好說。

但是有一支線上閱覽程式在IE7卻不能用,由於Vista的趨勢不可擋,我還是乖乖地灌起IE7測試相容性。

除了賴榮樞介紹的 Internet Explorer 7 的 IT 人員輔助工具 外,Internet Explorer Developer Toolbar是必備的工具,功能和Firefox 的 Web Developer類似。還有Jedi製作中文化網頁親和力工具列

IE用add-on的方式擴充,與Firefox用Javascript寫的Extension比起來,優點是速度比較快,缺點是看不到source code,使用不知名的add-on會有安全性的顧慮。

如果你是企業內部的MIS,記得寫新網頁或維護時,把類似document.all(id)改成標準的document.getElementById(id),隨著AJAX技術的進步,IE Only的時代即將成為歷史。

Update:今天試著把table裏的位置、字型等全用css表現,結果IE7和Firefox差很多,Firefox完全如預期,而IE7的結果慘不忍睹,等做出兩者能相容的CSS我會再寫一篇。看來只聽一堂hlb的課還真不夠呀~

星期一, 11月 20, 2006

壞人卡

壞人卡

在下特製的壞人卡,希望爾等宅男都能有機會被發到。

Outlook Express 快速匯入資料匣

有位公司同仁的Outlook Express收件匣超過2GB已經收不下信,把信件搬到另一個信件匣也沒用,因為收信匣在壓縮前並不是真的刪除信件,而是mark as deleted,他又怕壓縮會失敗。於是我教維護工程師以下偷吃步:
  1. 關掉Outlook Express,將 收件匣.dbx改名為 aaa.dbx
  2. 打開Outlook Express,會自動產生 收件匣.dbx
  3. 在Outlook Express新增一個OLD的資料匣,再拖一封不要的垃圾信進去。因為沒信件時Outlook Express並不會產生dbx。
  4. 關掉Outlook Express,刪除 old.dbx,將 aaa.dbx 更名為 old.dbx
  5. 打開Outlook Express,信件全都回來了。
基本上,OE真的很遜... 不然Vista也不會換新的Windows Mail。如果喜好微軟的產品,建議改用Outlook,Outlook 2003已經突破2GB的限制,當然要配合NTFS;但Outlook不支援產生分割郵件。我自己用的是WebMail、ThunderBirdBecky

還有一次,一位同事不小心在資料匣上按到刪除,在還沒關掉Outlook Express時通知我。由於Outlook Express是在關閉時才會執行刪除動作,因此來得及先把該dbx備份出來,再用上面的方面完全救援。(這點斌斌小站似乎也沒有)

另外一個案例很慘,偏偏又發生在大部門的經理身上,請自己看延伸閱讀的第一項。

延伸閱讀:
  壓縮後,「收件匣」的郵件消失可否救回?
  可以不壓縮郵件嗎?
  斌斌小站 Outlook Express

記事本密碼

剛看到Mobile01上 布希與windows XP 本來以為又是一個Windows 彩蛋,但似乎只是Notepad的Bug。

方法如下:打開記事本(Notepad.exe)輸入 Bush hid the facts,要注意不要按Enter,就是後面不要接換行符號。存檔後再打開就變成 "慡慡愠慡愠慡愠慡慡 "。有人提到輸入 "aaaa aaa aaa aaaaa"或"1111 111 111 11111"結果都一樣。

這只是假象,用MadEdit或Vim或Ultraedit之類去看,就發現其實內容並沒有改變。只是Notepad在開啟時,當做Unicode開啟,應該是自動判斷語系的錯誤。如果遇到時,千萬不要用Notepad再存檔,內容就真的會變成怪字,用MadEdit送它一個換行符號,再用Notepad開啟就會正常。

Notebook

我自己的3台電腦等級都不高,最好的是以卵擊石牌P4m 1.8G、700MB RAM筆電 。最近想換電腦的衝動愈來愈強烈,尤其是微軟MSDN的授權是以人為單位,我可以在自己用的每一台電腦都裝VS.Net,一直希望能在家裏裝。

王克明的筆記型電腦採購的考量寫出許多人的心聲。原本我以為大家不會太期待Vista,但很明顯我錯了。在某"A"牌專案開發部門工作的R君表示,他辦公室的同仁早就把小朋友準備好,只要在Vista上跑WOW效能夠好就要買。

朋友阿瑋和Ian的NB早就裝到2GB RAM,但是我現在買NB的話,一定要選體積小、方便攜帶。心中理想的品牌除了水果就是最近發行新遊樂器那間,可惜水果牌並沒有輕薄型NB,因此選擇似乎並不多。目前NB最高記憶體容量也只有2GB,如果沒有預算問題,符合我的需求又滿足Vista要求的大概是VGN-SZ38TP( $74,800,當然買不起)。至於王克明想要的4GB夢幻機型,真的得等明年了。

星期日, 11月 19, 2006

今日連結

先聲明,我不是喜歡點名,只是舉出人名感覺上比較具體,以後寫貼時我會小心點。

最近社會新聞太過負面,來點輕鬆的。
今日連結

閒聊

昨天終於看到傳說中Black Jack醫治超級電腦那集,我沒上過電子學,看到電路板只能搖頭。對於Black Jack的表現只能說"強!",所以照這樣推論,Black Jack也是電腦達人,平時沒事在家玩電腦,和一般宅男相同。

忽然想起同事說我講話和獨孤大很像,因此他推測獨孤大和我年齡相仿,怎麼會這麼準呢?希望本部落格能夠保持清純形象,不要被人看出來。下星期要去上課,希望回來後能寫點有營養的東西。

隔天 Update:延後啦!

剛收到mail,
原訂本週六開課之xxxx, 因招生人數未達開課人數,將延後上課。預計在明年96年1月6日開課。
課程後續相關消息,會再持續mail通知給大家。
我已經盡力了,各位只有繼續忍受不營養的內容啦~

星期六, 11月 18, 2006

多緒更新Windows Form控制項

今天更新一支程式到.Net 2.0,居然丟出例外;原因是我在背景執行緒更新Control。

解決方法:
  1. 宣告 Control.CheckForIllegalCrossThreadCalls = true ,就與.Net 1.1相同模式;可能造成 Thread Unsafe
  2. 對控制項進行實際呼叫的委派 (Delegate) 呼叫 Invoke

詳細寫法請參考MSDN:HOW TO:進行對 Windows Form 控制項的安全執行緒呼叫

BTW,為什麼看MSDN現在也需要登入Passport?

參考資料(.Net 1.1):HOW TO: 使用 Visual C# .NET 在多執行緒環境中同步處理共用資源存取

早餐店(續)

贏者通吃 介紹我家附近的早餐店,目前第五間早餐店的生意依然最好,今天去吃一次,發現它的口味也很好,平時有四位店員,假日也有三位店員維持服務品質。這間店還強調使用鮮奶做奶茶,只可惜奶茶仍然沒有第一間早餐店美而美的香;但其他食品則有過之而無不及。

最後,我今天才發現它的店名叫--- 呷尚宝 JSP !難怪它會勝出。

星期五, 11月 17, 2006

感謝Orbby與SyWang鼎力相助

今天感謝Orbby與SyWang鼎力相助,有空再去 100號請你們吃飯。

文字的演化

今天有人給我看"中文期刊統一用字",發現許多以前考試時算是錯字的用法,現在都變合法;而且還變成期刊的"統一"用法。例如:"多彩多姿"、"了解"。(以前的標準是 "多采多姿"、"瞭解")

一開始我感到很驚訝與無力,以前大學聯考的國文程度變得無意義。但或許這也是文字的演化吧!大陸推行漢語拼音,能夠加速學習英文字母,在這種情況下台灣的注音符號還能夠撐多久呢?還有日本的文化侵略,達人、御宅族等詞變成日常用語,應該要改變是我這種老古董吧!

參考:
中文期刊部統一用字表
常用國字正誤用簡明對照表
教育部重編國語辭典修訂本

SharpDevelop轉換語言的陷阱

今天因為資源共享,利用SharpDevelop幫朋友把C#轉成VB.Net,遇到幾個陷阱。看來它是照語法硬翻,而不是經由IL翻,所以會有許多問題。
  1. C#的繼承和實現都是 ':' ,因此翻成VB.Net時都是Inherits,介面應為Implements;反向時不會有問題。
  2. C#寫 if((a=xyz())==null)翻成VB.Net會變成 If (a=xyz()) Is Nothing Then,其中a=xyz()在VB.Net是比較而不是指定,所以會編譯錯誤。
  3. 更慘的在後面,string []a = new string[10] 翻成 Dim a as String() = new String(10)好像對,但其實VB.Net保留VB6的傳統,陣列比宣告的數量多1,因此應該改成 Dim a as String() = new String(9),如果是變數,記得要減1。
  4. 反向時Dim a as String() = new String(10)若沒有{}則會翻成string []a = new string(10)
所以,使用DeCompiler效果會好很多,想用的人自己去找找吧。

星期四, 11月 16, 2006

歷史回顧

剛無意中逛到 新世紀病毒預言 ,他居然說中Office2007的版本,真是了不起。而那篇愚笨型輸入法病毒,讓我想到最近的注音文退散。也從這個站看到了早期的Blog。

Windows 處處皆後門 part 2

上個月底才寫 Windows 處處皆後門 ,沒想到今天又遇到另一個自動執行的地方:機碼的WinLogon\UserInit。起因是一個砍不掉的PDLL.DLL。基本上這隻名為LineAge的木馬會利用偽svchost.exe執行,並且自動恢復pdll.dll,所以就算用安全模式進去也砍不掉,用preinstall xp開機去砍都會復原。有幾個位置的檔案都有可能是木馬:
1. svchost.exe ----> 位於c:\windows下,真的系統檔在c:\windows\system32下
2. rundll32.exe----->位於c:\windows下,真的系統檔在c:\windows\system32下
3. explorer.exe----->位於c:\windows\system32下,真的系統檔在c:\windows下
4. pdll.dll--------->位於c:\windows\system32下,系統無此檔案
我掃的那台svchost.exe藏在C:\program files\windows media player下。

清除步驟如下:
  1. 開機按F8進安全模式,可以先用startup control panel把不該自動執行的地方全砍。
  2. 執行regedit,找 HKEY_LOCAL_MACHINE>SOFTWARE>Microsoft> Windows NT>CurrentVersion>Winlogon
  3. 看右方的Userinit 值可能像"%SystemRoot%\System32\userinit.exe,%Windows%\svchost.exe,"
  4. 將UserInit改成 "%System%\System32\userinit.exe," 或是"C:\Windows\System32\userinit.exe,"
  5. 再檢查其他自動執行的機碼,如HKLM>Software>Microsoft>Windows>CurrentVersion>Run 和 HKCU>Software>Microsoft>Windows>CurrentVersion>Run
  6. 關機重開再按F8進安全模式再將位於system32之外的svchost.exe全砍掉,還有system32裏的pdll.dll。
  7. 重開機後應該正常。再利用其他防毒軟體及防後門軟體掃一次,事出必有因,可能源頭還在電腦裏。

另一個很猛的軟體是NOD32,由於之前用卡巴斯基掃一次我的慢電腦要8小時,今天抓NOD32試用版來掃只要1小時,真是如廣告般的神速,只是遇到LineAge這個後門,它也清不掉。

看來我是拿不到MSDN Premium了,哈哈!

星期三, 11月 15, 2006

今天不罵微軟

昨天有位深知微軟內情的大大,針對 Connection String 回應,全文如下:
我可以跟你保證全部都是用人工翻譯,另外Visual Studio 2005的MSDN有一千萬字,全面中文化的工程量和品質應該是有一定程度的,而且中文翻譯必須字字句句讓譯者都完全照著英文原文對翻,我想你舉的例子只 是其中不小心沒有被審核到的小問題而已,如果願意的話可以在看到翻譯錯誤回報給台灣微軟告知在MSDN更新時修正,謝謝。
敝公司和關係企業這些年來在微軟身上貢獻的金額少說也有二千萬吧?所以偶爾罵一下應該沒關係,不過今天還是公正地說說缺點就好。先小人後君子,微軟的缺點是在於一直推出穩定性不夠好的OS,功能強大是事實,但是不知道是否因為Open System硬體問題造成系統不穩定,每個Windows系統上我都看過Blue Screen of Death,包括郵局提款機和悠遊卡儲值機。今天如果不考慮相容性和Game,真的不覺得Ubuntu會比XP差。

再來說好話:其實在OpenSource盛行之前,微軟確實對個人電腦的普及與軟體降價有著不小的貢獻,如果沒有微軟,可能個人電腦軟體的普及會慢一些。MSDN是非常完整的文件,微軟放出完整的SDK和線上文件,對於有意在Windows上寫程式者都是非常重要的資源。雖然Apple也有免費的文件,但是就沒有這麼多中文化的文件,而且缺少像MSDN這麼完整的線上API索引系統。MSDN最大的缺點是:時常未能及時更新,中文化版本常有過度翻譯的現象。

未及時更新是難免,過度翻譯就表示翻譯的人不夠專業,既然微軟有提出希望大家回報,建議微軟在MSDN Library每頁的下方加入一個錯誤回報的機制(或是學Wikipedia線上編輯?)。

我對微軟夠好了吧?能不能送我一套Visual Studio Team Suite with MSDN Premium呢?哈哈!

OpenJDK

Java在November 13, 2006正式以GPL v2 Open Source。但這還不是最酷的!
OpenJDK在11/14 成立,OpenJDK Community裏頭的文章不是以Sun員工為主,而是來自各界好手的文章。剛才去下載OpenJDK居然預設是JDK7!我不要當guinea pig,所以還是下載JDK6

下半身決定法

同事吃喜酒,往南方向沿路要去接3個女生,由於3人住的地方剛好都在東西向, 他發現Papago並沒有最短路徑法(Dijkstra演算法),必須改變順序輸入3次才能找出最短路徑。於是問我知道什麼方式可以讓Papago計算最短路徑。

我提供一個直覺的方法:下半身決定法
我:都是女生嗎?
同事:是呀。
我:那....先去接最漂亮的就好了,多繞幾圈也無妨。
同事:對耶,那這樣就解決了,也不用跑電腦。
這就是鳥毅所命名的下半身決定法,當大腦無法決定時,由下半身來決定。不限男生適用,很多女生也用此方式決定許多事。

星期二, 11月 14, 2006

CF to IDE 轉換卡

和阿瑋討論要做diskless firewall後,決定自己先去買CF to IDE 轉換卡,到雅拍買了一公一母的雙插轉換卡。母頭的是準備上線後直接插上主機板,公頭的很方便,可以直接當硬碟使用。
先聲明並沒有替他打廣告,現在一張只剩99元,但運費要70元,比起去年看到的價格便宜許多。後面是我直接連雅拍的圖。 公頭:  母頭:  

剛開始把公頭轉換卡插上去覺得很奇怪,怎麼抓不到,後來把電源插上就正常運作。另一張母頭轉換卡很緊,便宜貨品質真的不好,很難插,好不容易插進去出來的容量卻不對,辛苦了十幾分鐘後插到底才終於正常運作。因此:除非上線時需要省一條線或是需要固定在主機板上,否則買公頭的就好。

預計先測m0n0wall,再來要測pfSense,因為個人偏好pf

參考:
m0n0wall Embedded FreeBSD Firewall
FreeBSD 嵌入式防火牆 m0n0wall Firewall 實作

Windows上Email軟體

既然要拼人氣,當然一定要多介紹大眾化的東西,就介紹幾個Windows上非微軟的Email軟體吧!

第一個是Thunderbird,是Mozilla Mail分割出來重寫的軟體,使用Gecko引擎,內建Spam Filter等等,還可以安裝許多extensionsthemes,例如我常用的尋找重覆信,中文版只有到1.0.6版,但可以下載英文版再安裝善心人士中文化的語系檔。我認為唯一的缺點是不支援outlook express專用的分割郵件,也找不到對應的extension。另一個優點是幾乎各個平台都有Thunderbird,以後就算換成Mac、Linux或FreeBSD都不怕舊信件轉移的問題。

第二個是對岸做的Foxmail,功能相當齊全,我四年前就用過了,速度很快,介面設計也清楚。

第三個也是對岸做的DreamMail,支援WebMail,省掉安裝FreePops的功夫。

第四個是使用Outlook Express引擎的IncrediMail,畫面超炫,支援spam filter等功能,賣點是有許多信紙和圖示可供選擇。五年前我安裝時覺得慢得受不了,不過現在的硬體應該都沒問題吧?缺點是收到信的人底下會有個連到的圖示bar,若花$29.95升級到premium版就不會有廣告。今天在安裝時OfficeScan忽然顯示兩封信有病毒,目前我還不知道是那裏出問題,不過最好還是準備好防毒軟體再安裝比較安全。

最後一個是日本人寫的商業軟體Becky!,註冊一次永久升級。既然都用Ruby,也不差多用一個
Becky!了吧!Becky!的功能齊全,中文支援好,也有許多外掛,是歷史悠久的郵件軟體,並有駱駝客等人一直在做新版本中文化。Becky!中文化下載

其實還有許多好用的Email軟體,像Eudora等,選一個自己喜歡的吧。

Update:剛發現IncrediMail已經不再使用Outlook Express做為引擎。

老狗玩不動新技術之我見

原由

獨孤木老大的老狗玩不動新技術(上)很精彩,看到原始出處才知道原由:JSP方面用<% %>一路寫到底。就如同獨孤木的回應:
在這個case裡面,應該還是有所謂以前"IBM的程式"。
並不是從頭打造,而且已經知道報表用Vector塞Hashtable塞欄位,其實沒有原帖mg622000想像中那麼差。

說話要有技巧

舉自己的例子:我去世華銀行面試過,主考官問我覺得asp如何,我說很爛,asp.net好一些。結果我就沒被錄用。很多事情不是新鮮人想得那麼簡單,其實世華的主考官以為我不合群,但是我當時只是真實地表達想法。後來到目前的公司也曾用asp快速地寫一個簡單的報修系統,再偷偷地利用jsp寫一個列印報修單的程式。還有用VB6寫過幾支小程式,只要適用,有何不可?

要引進新技術,必須熟悉公司文化,對適合的人說對的話,這非我所長,請自已想辦法。(廢話,否則我會那麼黑?)

太頻繁的更新也不好

asp.net 1.0 -> 1.1 -> 2.0 升級比起Java升級真是天差地遠,用過的人都知道恐怖。微軟利用傻瓜開發法,讓你不用key一行程式就能做出具有驚人效果的AP。但微軟整天大改framework,就連一個簡單的API都可能因為升級而無法再使用,這樣真的好嗎?就像IDE每年出新版,如果每次使用者介面都大改,必須重新學習,誰受得了?順便抱怨一下,ASP.Net AJAX(原Atlas)變動實在太誇張,沒成熟的東西就一直丟出來,浪費許多開發者的時間。Struts從1.0->1.1時改變也很大,所以朋友Ian的前公司在關門之前持續兩年都使用Struts 1.0開發。

選擇新技術

新技術雖好,但是要熟悉必須花上一段不短的時間。那麼新技術要引進嗎?當然要!只是要選擇穩定的技術。

最近同事去聽WPF,也感覺微軟太多新技術,如果閣下是IT主管,我真的建議選擇Java會是比較能長久使用的選項,不要考慮ASP.Net。技術的選擇還有適用性的考量,如果是流量大的portal,PHP這種單純效能好的反而比較合適。市面上OpenSource的架站機我試了近十種,效能夠好的全是PHP。若是企業內部使用,由於經常需要修改,而且常有各種系統的交互結合,不妨選擇彈性比較大的架構。由於各團隊的程度差異可能過大,所以我也無法建議,只能說參考自己團隊的實力與時間,貿然引進Struts、Spring、EL、JSTL可能會死得很難看。必要時可以請顧問,獨孤木似乎是一個好的選擇。

老狗應該做的事

像我這樣的老狗不要一直拒絕新技術,畢竟如同我在軟體要活著寫的,再怎麼撐下去也是會遇到硬體無法支援的那天。瞭解IT技術的轉變,選擇適合的技術在適當的時機導入,才是老狗該做的事。

參考:
微軟ASP.NET AJAX v1.0 Beta1有感
老狗玩不動新技術(上)
老狗玩不動新技術(下)
http://www.javaworld.com.tw/jute/post/view?bid=14&id=170180

星期一, 11月 13, 2006

不負責美食評論 Part 2

今天要介紹的是位於一碗小羊肉附近的 聖巴黎焦糖滷味 ,位道偏鹹,不會甜。它的價格與路邊攤差不多,吃完一碗小羊肉可以順便帶一包回去吃,不要買太多,會吃不完。一般路邊攤我給5~6分,這間是7分,若不要那麼鹹就是8分。

我吃過最好吃的滷味在鳳山,但不是我買的,所以不知道位置,那間是9分。南京東路五段有一間也很好吃,給8分,但相當貴,一隻雞腳要10元;同樣是由同事購買,所以也不知在那兒。

星期日, 11月 12, 2006

組合語言的藝術

今天在誠品看到組合語言的藝術,是朱邦復先生的大作,沒想到他居然把書都分享出來(限閱讀),組合語言的藝術電子書。

說真的,這本書應該很難賣吧?書內容相當少,偏重在最佳化的技巧,算是中高階的書。
現在真的幾乎沒有人像他這麼在乎程式效率和檔案大小,微軟如果也這麼幹,Windows至少瘦一半吧!

星期六, 11月 11, 2006

軟體要活著

好吧,我承認標題是在騙人,這年頭總要誇張一點才有人要看。雖然我的Blog PageRank是2,但是瀏覽率低得不像話,counter是自己灌水的。這篇主要是給不熟悉XP的人看。

Martin Fowler說,軟體要一直改版才會一直生存下去。(大概是這個意思啦,原文我忘了)

軟體必須要隨時不斷地變動才能存活,原因如下:

軟體不可能不變,需求是會不斷地改變。
假設需求很穩定不變;就算程式碼(source code)不變動,程式語言也會變;程式語言不變,編譯器也會變,編譯器不變,作業系統也會變,作業系統不變,硬體也會變。最後因為硬體更新->作業系統更新->編譯器更新->程式語言更新->程式碼更新。

當然現在有Virtual Machine,可能在某些MIS的堅持下能省一些功。但是人性的貪婪讓使用者想要整合所有的資訊,並不是躲在象牙塔裏就沒事。若貴公司還在用VAX,大概也找不到能夠用的VM吧?或者是老板某天想要你把出勤資料做一個報表,但是現在已經沒有人看得懂VAX上的COBOL... 最慘的是VAX硬體故障,廠商也沒有備料... (It's true now!)

另一個情境假設你使用NT 4.0+ IIS 2.0,用asp 1.0寫程式,某天系統工程師手癢升級到Windows 2000,結果逼得你不得不升級,以前用class做為asp變數名稱的頁面全發生錯誤...只好含著眼淚慢慢地debug。


我剛開始工作時也很討厭接舊專案,連改自己的程式都不太願意,每天都想玩新東西,後來看了Refactoring這本書後,漸漸改變自己的想法。試想:你在一間公司當MIS,人事、薪資、保險、出勤等系統都需要穩定執行,但也需要新功能的加入與維護;這些東西才是IBM等大公司想賺的部份:維護費。

改變成本

軟體改變的成本如上圖,所以說,要盡量在上線前做好,但上線後的改變呢?
eXtreme Programming 的創始人Kent Beck(他總是讓我想到Can't Back,鼓勵人們把握時光?)是一名資深的PM、顧問,從SmallTalk到C++、Java,經歷無數的專案,因此他提出的理論可以與實務結合,與 純學術派的學者不同。XP中我最早接觸的就是Refactoring,接著是Unit Test,這些都是很實用的技巧。

要保持軟體經常性的修改,就需要Unit Test來降低改變的風險與變數。有些人搞不清楚Unit Test與Functional Test,Unit Test的最小單位是function,而Functional Test是指規格書上的某項功能;當元件化之後,自然地就以Unit為單位Test。每次小修改,都有可能引起未知的災難,所以就算是只對某個API更改,仍然必須做完整的TestCase。目前在許多的平台上都有Unit Test的framework,找一個自己喜歡的吧!再配合Refactoring的技巧,熟悉後就能夠習慣快速改版的生活。

Crazy Machines

Sierra出的The Incredible Machine很好玩,但很久沒出新版;雖然WikiPedia說有Mac版不過我沒找到。剛發現德國出品的Crazy Machines是類似的產品,除了Windows版外也有Mac OS X版。雖然系統需求稍微高一些,但今年購買的Mac應該都不成問題。下載的試用版居然是德國版,不過還是可以玩,效果還不錯。

我也有中文AdSense


沒想到我的第一個中文廣告,居然是助紂為虐。


P.S. 其實出現好幾天了,只是一直忘了貼。

星期五, 11月 10, 2006

C/C++不是最快的

剛才逛黑米看到 The "C is Efficient" Language Fallacy ,讓我非常驚訝。
William大的註解:http://www.hemidemi.com.tw/group/Ubi-Sunrise/bookmark/info/25494
再觀察幾天看qing或jserv會不會發表高見。

原文有提到平行處理,也就是說C語言難以使用P4以上CPU提供的功能。以前與一位曾在高速電腦中心工作並對平行處理有研究的博士談過,他說目前數值運算平行處理仍然是以Fortran為主,看來這也是原因之一。不過據這位博士說目前的library有許多地方仍然需要人工處理才能發揮平行運算的功能。

不知道以後會不會出現其他一般用途語言能取代C/C++的地位。

BTW:剛才黑米一直吐出 Application Error,讓我Reload許多次,RoR的穩定度不能和PHP比?還是寫法的問題?

Subversion 1.4.2 was Released

Subversion更新得很快,可惜Binary並未跟進,其他project如TortoiseSVN、RapidSVN也都沒有更新。 若要自己抓source下來編輯,需要不少套件,都寫在原始碼的INSTALL裏,看了一下實在是很麻煩,所以在公司我仍舊使用Subversion 1.4.0。

FreeBSD的ports已經更新到1.4.2,如果那一天公司願意改用FAPJ(FreeBSD、Apache、Postgresql、Java)開發,我就可以裝一台FreeBSD Desktop,只怕得等上100年。

星期四, 11月 09, 2006

置入性行銷

看到標題可不要斷字錯誤,是"置入性"的行銷。

台灣的媒體什麼都能賣,現在連報紙頭條位置都賣出去。其實只要有錢就能夠上新聞,而且做得不像是廣告。

Office 2007 (II)/節省30%操作時間 降低新手進入門檻
Office 2007 (II)/Word/輕鬆建立專業文件
Office 2007 (II)/Excel/製圖功能特別強化
Office 2007 (II)/Outlook/資料管理更有效率

露天拍賣系統不穩

露天拍賣系統不穩網友揚言跳槽 露天:正式版將解決問題

目前露天拍賣Beta的平台是用原來PChome拍賣平台來修改,原來系統能量只有20萬物件,今天已達146萬件,預計年底推出的正式版,是重新建構一個新的平台

所以說,Yahoo沒有唬爛,他們的確是砸錢換品質。其實Yahoo拍賣在上線前二年就開始籌劃,程式寫了一年多。問我為什麼知道?也是聽別人說的啦,只是那個人剛好在做這個系統(逃)。

星期三, 11月 08, 2006

Linux多工比較強?

由於我在家裏有3台電腦(Win,Mac,Ubuntu),所以過一段時間就會在Firefox打開Google Browser Sync做為同步書籤之用,因為太吃CPU故同步完就停用。今天在Ubuntu打開後,正常作業一會後,才赫然發現居然能夠照常使用!平常在其他作業系統同步時,整台電腦幾乎慢到無法使用,更不用說Firefox。打開top看,仍然吃80%~95%的CPU,但是Firefox依然健在,到我關閉停開前都正常工作,BMP也是乖乖地放歌,沒有lag。

難道是Linux的多工比較強?還是某些程式的Priority比較低?或是Linux版Firefox跑extension的priority低呢?高手知道的話請告知。

既然OSX被Linux打敗了,改天再裝FreeBSD來拼看看,手上有FreeBSD Desktop的人不妨試試。

.Net Framework 3.0 Runtime正式版推出

剛看到DotNet開發聖殿 微軟正式推出.NET Framework 3.0 Redistributable Package ,只支援Windows XP Service Pack 2以上的版本,不支援Windows 2000。

等到繁體中文正式版與Visual Studio 2005 for .Net 3.0 plugin推出時,我一定會去下載安裝。理由是昨天看到曹祖聖Demo時,他的VS2005居然有分割顯示,編輯html時很方便,這是一定要裝的。

解決 Beep Media Player 中文歌名亂碼

今天在UbuntuBeep Media Player聽歌,居然中文歌曲變亂碼,檢查後發現是為了OSX上iTunes對於 ID3 V2 使用Unicode-LE而不是UTF-8。因此使用折衷的方式,使用ID3 V1.0。
  1. 開啟 "Preferences" (ctrl-p)
  2. 點選左邊的 "plugin"
  3. 在 "media" 分頁標籤
  4. 點選 "MPEG Audio Plugin"
  5. 按下 "偏好設定"
  6. 點選 "Title" 分頁標籤
  7. 勾選 "convert non-UTF8 ID3 tags to UTF8"
  8. "ID3 encodings" 加入 "big5,gb2312"
  9. 勾選 "Disable ID3V2 tags"
如果不想 Disable ID3V2 tags,就得把 ID3V2改為UTF-8編碼。

P.S. 我還是習慣在Win用ConvertZ轉碼,感謝ALF。

參考:
HowtoMusic
Beep Media Player (BMP) 中文顯示問題

最新科技摸魚法

今天收到一封神奇的email,雖然我看過雷射立體投影,但需要三方向投影,還沒看過單槍投影立體影像。

最新科技摸魚法

org.jdesktop.layout

剛才用NetBeans做同時是JApplet與JFrame程式時,測試Applet時遇到一個找不到的元件:org.jdesktop.layout.GroupLayout。
Google後仍然找不到在那裏下載,不過即然是NetBeans自己使用的,當然NetBeans裏面一定會有。藏在swing-layout-1.0.jar裏,完整路徑是 NetBeans/platform6/modules/ext/swing-layout-1.0.jar 。 如果用applet,可能解開來會方便些。

剛看了一下,這個Layout還不錯,Sun應該放到系統函式庫才對。

星期二, 11月 07, 2006

WPF跨Web與AP?

WPFWindows Presentation Foundation)號稱開發Web與Windows Form相同,同樣的程式能在Web與AP一樣執行。在聖殿祭司的Blog看到有人在問Atlas與WPF比較時,我還搞不清楚狀況,但現在可以很確定的說,兩者是不同的東西。

要讓Browser能執行XAML,除了Vista之外,都得安裝WPF/E,而且功能不會很完整或是效果很差。十年前微軟說過要推出ActiveX for Mac,結果還不是跳票。WPF/E會不會有非Win平台都很難說,更不用提效果會如何。

如果真要說WPF算是能在Web與AP都能執行,Java Applet是第一個能同時開發Web與AP的程式,而且跨平台。只要寫一個JPanel放在JApplet裏面,再把同一個JPanel放在JFrame裏,就是完全相同的東西,有興趣的話找我拿範例,印象中JBuilder內建這種模式,只是我很久沒用JBuilder。

等著看WPF/E發展如何吧,不過還是不要有太高的期待。

參考:
微軟提供Mac、Web應用開發工具
微軟WPF/E新計畫不只是視覺效果

Microsoft應用平台架構優化技術饗宴

今天下午去聽【Microsoft應用平台架構優化】技術饗宴-台北場, 早上不太好意思去,所以前二場沒聽到。很意外送一瓶白蘭氏雞精,是程序員的身體都比較差嗎?嗯...我還不需要啦。

下午第一場去聽【真實世界的 SOA 設計】睡了半小時,他介紹基本觀念也太清楚了吧?有點後悔沒去聽李匡正的【剖析軟體開發生命週期 (SDLC)】,若不是我上過VSTS的基礎課程早就跑到隔壁去。簡單地說,微軟對SOA只有提出WCF(Windows Communication Foundation)來解決服務的介面問題,對於ESB(Enterprise Service Bus, 企業服務匯流排)並沒有推出特別的Solution。其實講師的功力不差,只是沒有實例Demo而只有UML實在是搔不到癢處,如果只是要看UML我不如去看王克明的Blog,對不起你啦。

第二場去聽巨匠的名師曹祖聖講的WPF(Windows Presentation Foundation),本來應該去聽 微軟商業流程解決方案 但還是簡單的程設比較適合我。WPF果然簡單,就是XAML+.Net+Vista的繪圖引擎。WPF的效果非常驚人,不知道曹祖聖用的NB規格如何?全場看他Demo順到不行,可以和XGL比美,不過我相信相同硬體時還是XGL會比較猛。重點是WPF的程式寫作相當簡單,我當然會等到正式Release後才會開始學,有興趣的人可以去聽聖殿祭司在11/9的這場

Java Profiler

剛看到qing的找出Java程式吃掉CPU的元兇,我看完後第一個想法是:為何他要用JNI實作的library?記得在2003 Java Two有某場Seminar提到Java Profiler。

Google "java profiler"找到不少Open Source Java Profiler,直接看Open Source Profilers in Java。排行前面的Extensible Java Profiler說明提到使用Java Virtual Machine Profiler Interface (JVMPI),看了之後才知道必須利用JNI做Profiler。實在有點失望,原本以為是JVM內建profiler。

BTW,現在新的介面叫 JVM Tool Interface(JVMTI),實在是變得太快,不要逼我唱"我們趕不上軟體"吧。

星期一, 11月 06, 2006

贏者通吃

最近幾年創業最多的不是網站,而是小吃店和飲料店。我家門口這條小小的馬路在幾年之間就開過五間早餐店。我沒唸過經濟學,不知道經濟學是如何解釋,但我認為是贏者通吃

第一家早餐店是美而美加盟店,生意非常好,味道與品質的管控都很好,夫妻倆都不敢休息,除了過年之外我沒看過這間店休息。過二年後出現另一間早餐店,是大樓轉角的畸零地,一位OBS自己一人開的,速度慢口味差一點,生意零零落落,撐了一年後關門。第三間開的位置好一些,但也是一人獨賣, 剛開始生意還可以,但仍是第一間生意最好。等到第四間出現後一個月,第三間就關門。第四間早餐店與第一間的距離稍微遠一點,口味上也刻意有所區隔,雖然基本款的火腿蛋與三明治等是必備,但多了獨門的雞腿堡等特有產品,因此瓜分了第一間約1/3~2/5的客戶。第五間早餐店出現在上個月,頂下原來第二間的位置,剛開幕特價讓第一間的生意有兩星期受到嚴重的影響;恢復原價後它的生意變差許多,第一間的老客戶幾乎都回籠。

我家附近有一間麵包店,口味相當好,價格也合理,卻在去年另一間麵包店的開幕特價之下就關門。為什麼呢?它的地點不太好,加上店租過高,雖然口味不錯卻很難擴展客源。它也不像第一間早餐店那般有著超強的人氣,因此在削價競爭下就無法再經營下去。

剛才看到Mr.6的兩套軟體的海外比賽,我看法和他不同。剛才看了ZK的Document,不是ZK不好,但是它與GWT的相似性太高,勝出機會不高。基於同為台灣人的私心,我也希望ZK勝出。Java平台已經有太多的Framework,參考Tempo的Ajaxian.com 2006 Survey Results,看一下Java Ajax Framework排名,除非ZK能夠提供GUI Designer,否則名次要上升不是那麼容易。
一般J2EE Developer只知道JBoss,使用JOnAS有多少人呢?它可算是第二名的OpenSource J2EE Server!更不要說Apache Geronimo。就像TomcatJetty的差異也是一樣,排名更後面的廠商幾乎無法生存。但是Resin卻能在Tomcat的超高市佔率之下,殺出自己的一條路,靠的就是超強的技術能力。

有一個汽車廣告說:追隨者永遠只能看到領先者的背影。我認為這是真理。開發者不需要也不想要那麼多的Framework,光語言本身就有太多的API,對於AJAX開發者已經無從選擇,最後一定是選擇品牌No. 1,贏者通吃是必然的結果。

ZK如果要商業化,必須參考JBoss的成功案例,提供開發者簡單易用的IDE,最好是與Eclipse整合;開發方式要參考VisualStudio,Click and Run才是AJAX的未來。

Buffer overflow

記得Windows XP SP2上市時有特別宣傳資料執行防止的功能,也就是DEP(Data Execution Prevention)。那時我去聽發表會,一直說Buffer overrun,我印象中叫Buffer overflow,不知何時開始又多一個名字。Buffer overflow就是緩衝區溢位,使程式執行到原本不應該執行的區塊。

早在十幾年前就有許多人利用Buffer overflow入侵系統,DEP不是新發明,Stack-smashing protection早就內建於OpenBSD。現在新一代的CPU都有DEP功能,爾後的Compiler應該能夠原生支援吧?期待FreeBSD內建Stack-smashing protection

參考資料:
GCC extension for protecting applications from stack-smashing attacks
How to build FreeBSD with stack protection

GWT Designer

剛才看到Google Code放上GWT Designer的連結。GWT DesignerGWT的GUI Designer,誠如我在期待明年的AJAX所言,在Java環境下要做出一個視覺化開發能拖拉的環境很容易,GWT Designer也是基於Eclipse的商業產品,希望能夠盡快出現OpenSource的GWT GUI Designer。

星期日, 11月 05, 2006

Google Bomb

Google BombGoogle炸彈) 就是故意使用大量連結,影響搜尋引擎的結果,所以應該稱為連結炸彈。這也是為什麼我寫搜尋結果這篇,其實是希望有高PageRank的人能夠端正視聽,但似乎七年級不懂老骨頭的意思,還故意加重連結。身為電腦高手,負有的社會責任是遠超過你的想像。

最近看到維基百科某些條目的解釋愈來愈像偽基百科,Kuso文化讓真相被掩蓋,實在是不勝唏噓,例如:鐵拳無敵孫中山

參考維基百科: Google Bomb Google炸彈

星期五, 11月 03, 2006

FreeBSD遠端升級

Ralf S. EngelschallFreeBSD Administration Toolkit,可以遠端升級FreeBSD主要版本(例如FreeBSD 5.x->6.x)。相信許多人用得上,尤其是離開學校又在"支援"學弟的高手。

路可諾斯的"我們趕不上軟體"

路可諾斯比利約耳的曲子填詞做出一首"我們趕不上軟體" ,相信對於編程有研究的人都能會心一笑。

我沒有聽英文歌曲的習慣,一開始沒仔細看還以為是比爾喬依寫的:P

Microsoft 推廣 PHP

剛看到Microsoft 和 Zend 合作推廣 PHP,說不定MS以後扶植Phalanger,就如同MS扶植IronPython一般,讓PHP成為PHP.Net。PHP這種高階Script語言,移植過去後相容性問題應該不大。

TechNet上賴榮樞 的模組化的 IIS 7 與 .NET 能力整合有提到IIS 7的執行模式;理論上來說以 .NET 整合模式執行,確實能夠有較高的效率。

又想到William老大的JavaTwo 2006 預告:當 Java 遇見 PHP,那麼以後用PHP寫程式,不管在.Net或Java平台都能在執行。且看未來如何發展吧!

Update:2006/11/04 聯合新聞網 微軟網威攜手 視窗Linux合璧

英雄出少年

自從在下退伍後,發現有許多好用的免費軟體 ,其中有一家"台灣鉅軟"讓我覺得很有趣,用了PCMan大約一年多後,才知道是國中生寫的!是的,這位老兄就是PCMan,這位未來的醫生希望你的醫術和程式一樣強。最近他做的PCMan File Manager也是超強,應該再過不久就可以設定為Gnome的預設shell。

還有PCMan的另一位開發者jserv,看到資料更新我確定他才25歲,也就是說他參與jserv專案時還是高中生。

jserv,我很想問你關於移轉 blog 服務啟事 (外包),自己都有做servlet container,為何不用Java呢?是不是效率太差了?

最近工作壓力大,真的只是閒聊。

GRUB for DOS與WinGrub

由於我的以卵擊石在重灌XP時自己把Grub刪除,以致於無法登入Linux。
為避免不必要的麻煩,於是安裝GRUB4DOS and WINGRUB

細節就不談,本來想用Grub4DOS,先試用WinGrub發現介面設定一下就奏效,簡單到懶得寫步驟。

參考:
利用 GRUB4DOS 安裝 Linux
GRUB 命令索引 (相信我,你用不到)

升級Ubuntu 6.10 Edgy

我最近一直看到Ubuntu 6.10發佈的消息,實在手癢忍不住就想試試,反正有Mac在,大不了重灌這台以卵擊石的NB。
我先用
  gksu "update-manager -c" 
結果顯示套件有錯誤。於是修改 /etc/apt/sources.list ,把 dapper 全部置換為 edgy,再執行
  sudo aptitude update && sudo aptitude dist-upgrade && sudo aptitude dist-upgrade 

裝了兩個多小時就好,接著自動叫我重開機,我也就乖乖地開,這個版本被人罵到臭頭,結果當然進不去。而且我漏了兩個步驟:
  sudo apt-get -f install
sudo dpkg --configure -a


不要緊,官方文件有寫

Problems with X

If after the upgrade the X server doesn't start (i.e. if you can't get the graphic login), then it's because the xserver-xorg has been removed.

Reinstall it issuing:

sudo apt-get install xserver-xorg


從kernel 0.9開始玩Linux的我,怎麼能認輸呢?先進入single user mode,在文字模式重新安裝xorg,再設定解析度與顯示卡

   sudo dpkg-reconfig xserver-xorg

後來就回復我美麗的桌面,啥?沒看過!貼一下好了。升級後沒有差別,所以貼6.06的畫面。

Ubuntu 6.06 Firefox 1.5.0.7
Ubuntu 6.06 Firefox 1.5.0.7 +黑體字

Win2000 Firefox 2.0
Windows 2000 Firefox 2.0

比一下就知道那個美,那與OSX比呢?那當然還是Mac勝出囉~字跡比Linux清楚,平滑字/ClearType/Antialias的效果就是好。

不要問我為什麼不用Windows XP+黑體字,事實就是醜斃了,Windows在Vista之前大概都沒辦法用黑體字顯示。

想自己試的人可以參考 Unofficial Ubuntu 6.10 (Edgy Eft) Starter Guide
阿駕零零壹 © 學習筆記
的方法,和 http://linuxtoy.org/archives/ubuntu_6_10_beta.html,我自己是照官方文件EdgyUpgrades做。我所使用的黑體字是用幾年前買的華康金碟中的Unicode中黑體,用Ubuntu內建的文鼎字型並沒有這麼漂亮。

嚴格說起來,這次升級並沒有六月那次順利,算是推出的有些倉促,但以華麗度和套件更新,Ubuntu已經趕上Windows。

不負責美食評論

昨天經過捷運中山站,看到新開的Mister Donut排隊的人少,就進去買了4個。
回家一吃,糖霜多拿滋和蜜糖多拿滋都有種特別的香味,但是就感覺很不自然,口感還算扎實,但麵粉太細,沒有口感;花生巧克力多拿滋與椰香巧克力多拿滋都太甜。

我買的都是25元,還有許多種口味是35元,一點都不想再試。還是晴光市場的脆皮鮮奶甜甜圈比較好吃,也有其他間分店,我通常會選比較不焦的原味甜甜圈。

統一應該學學Yahoo併購無名,去併購晴光市場脆皮鮮奶甜甜圈,學學別人真正合台灣口味的好吃甜甜圈吧!

本站有3人訂閱

今天可以看得到FeedBurner的訂閱結果:4 subscribers。
扣掉我自己,大概有3人訂閱,大概都是認識我的人,哈哈!

星期三, 11月 01, 2006

Unit Test Coverage

我想有在訂閱本Blog的仁兄都知道何謂Unit Test, 我在這篇有介紹Java平台是JUnit,.Net平台首推NUnit,而Visual Studio 2005 Team System有自己的framework及工具。

Unit Test不只是自己做爽的,要能夠涵蓋整個function才有意義,不然漏掉許多部份就慘了,稱為Code Coverage。在Java平台有許多的工具,可以到Open Source Code Coverage Tools in Java找個喜歡的用。.Net平台除了VSTS外,就是NCover了。

使用Visual Studio Professional的朋友,可以安裝TestDriven.Net這個Add-in,整合JUnitNCover等套件,免費版就很夠用。

參考資料:軟體測試 Unit Test