2007年10月31日

一些 Windows XP 下無人值守的軟體安裝命令稿

提到製作 Windows 無人值守安裝光碟,難免得面對光碟空間不足的問題。

為什麼會有這種問題?只能說即然都做無人值守安裝光碟了,那如果不能把相關 Hotfix 及常用軟體塞進去的話就不能稱做 專業 人員(真無聊的堅持)!

為了避免衝擊波事件重演,因此 Hotfix 的部份被列為必要安裝且必須直接由光碟內提供,這部份 50 個更新程式總供佔去了 85MB 空間。事實上加上這部份後,XP SP2 光碟的可用空間就剩不到 100MB 了(原裝 SP2 光碟大概用了 600MB 的空間,但是我把原光碟內附的 .NET Framework 及 ValueAdd 兩個目錄砍掉後,要了 50MB 回來,所以最後是以 700 - 550 - 85 = 65MB 為光碟尚可利用空間 )!

那麼來看看常用的軟體清單好了:

  1. AcrobatReader:Acrobat Reader 7 中文版好像要 26MB 空間。
  2. FSViewer:看圖軟體,這個要 2.5MB 空間。
  3. Macromedia Flash Player:給瀏覽器用的 Flash Player,這好像要 6MB 空間。
  4. AntiVir:免費的防毒軟體,這要 9MB 空間。
  5. FileZilla:FTP 用戶端軟體,約要 3.5MB 空間。
  6. MediaPlayer:微軟的 Media Player 10,這要 12MB 空間。
  7. SnagIt:螢幕捉圖軟體,試用版可以 30 天,超過時限後會要求註冊。檔案大小為 14MB。
  8. Firefox:超方便好用的瀏覽器,這要 5MB 空間。
  9. MyMPC:多媒體播放工具,壓縮前佔 30MB,壓縮後佔 20MB 空間。
  10. WINRAR:解壓軟體,這好像不足 1MB 空間。
  11. FlyakiteOSX:仿 Mac OSX 操作界面外掛工具,這有 30MB 空間。
  12. JournalViewer:Windows 的筆記本檢視器,這是為了支援 MSN 可以做手繪聊天而裝的。這個要 7MB 空間。
  13. PSPad:免費的文字檔編輯工具,還支援 HEX 編修功能。這佔了 3MB 空間。
  14. DaemonTools:光碟模擬軟體,這只佔用 1MB 空間。
  15. Fonts:五套免費中文字體,8.9 + 5.2 + 10.0 + 11 + 7.5 = 42.6MB 空間。
  16. MSNMessenger:大家都愛用的 MSN 囉,這佔了 9MB 空間。
上述這些軟體的容量加一加後,需要 190MB 的空間,而安裝光碟中跟本沒有足夠的空間(只剩 65MB)可以容納這些檔案。為了解決這個問題我選擇使用下載方式,在安裝過程中直接從各官方網站下載後再行安裝。

最後除了 Firefox (要做調整才能自動安裝)、MyMPC(這是下載空間的因素)、WinRAR 及 DaemonTools (加起來不超過 2MB)外,其他軟體都採用下載安裝檔方式辦理。這樣也可將光碟空間佔用量減少到 30MB 不到(還有 30MB 可以容納 HotFix ),絕對可以輕輕鬆鬆的放進光碟中。

不過將 WinRAR 直接收進光碟中其實還有另一個原因:許多軟體為了減少傳輸時間都做了壓縮處理,先讓系統安裝 WinRAR 後才能對這些壓縮檔進行解壓程序。(不過因個人有註冊這套工具,所以不清楚在未註冊前會不會因為出現 WinRAR 版權宣告頁面而導致無人值守作業必須派人留守!)

在使用命令稿之前請先完成以下準備作業:

  1. 安裝兩個工具程式:
    1. WinRAR:請裝在標準路徑( %PROGRAMFILES%\WinRAR )下。
    2. WGET 1.10.2 for Windows:下載後直接丟到 %SYSTEMROOT%\system32 或 PATH 指定的目錄下即可自動叫用。
  2. 解除防火牆對 WGET.EXE 的限制:所有的命令稿都是透過 WGET.EXE 完成檔案下載動作,若被封鎖的話就玩不下去了。
  3. 記得設定 %TEMP% 環境變數:雖然這是 Windows 會自動建立的環境變數,但有些人可能會將其移除。所有的軟體都會先下載到 %TEMP% 指定的目錄下進行解壓、安裝等程序後,再自動刪除掉。
命令稿清單:
  1. AntiVir 防毒軟體:InstallAntiVir.cmd
  2. FileZilla FTP 用戶端軟體:InstallFileZilla.cmd
  3. FlyakiteOSX 仿 Mac OSX 操作界面外掛工具:InstallFlyakiteOSX.cmd,請將 FlyakiteOSX.rar 解壓至某目錄即後點選 InstallFlyakiteOSX.cmd 即可安裝。若想要完整安裝者請自行移除目錄下的 FlyakiteOSX.ini 檔即可。
  4. Fonts 五套免費中文字體:InstallFont.cmd
  5. MSN Messenger 7.5:InstallMSN.cmd
  6. Macromedia Flash Player:InstallMacremedia.cmd
  7. Microsoft Media Player 10:InstallMediaPlayer.cmd
  8. Acrobat Reader 7 中文版:InstallPDFReader.cmd
  9. PSPad 免費的文字檔編輯工具:InstallPSPad.cmd
  10. SnagIt 8 螢幕捉圖軟體:InstallSnagIt.cmd
  11. Windows 筆記本檢視器:InstallViewer.cmd
  12. Rainlendar 桌面行事曆工具:Rainlendar.rar,請解壓到某目錄下後執行 InstallRainlendar.cmd 即可(命令稿會自動安裝中文相關資源,但必須透過 Rainlendar.ini 檔以切換成中文模式)。
更新記錄:
  1. 2006-02-08:修復 InstallFileZilla.cmd 連結錯誤問題!
  2. 2006-02-08:調整 FlyakiteOSX 的官方下載連結!
  3. 2006-02-09:抱歉,再修改 FlyakiteOSX 安裝參數大小寫錯誤問題!
  4. 2006-02-22:因系統效能考慮,修改 FlyakiteOSX 安裝程序僅針對佈景方面進行修改不再安裝附屬 Dock 等軟體。
  5. 2006-02-22:新增 Rainlendar 桌面行事曆工具安裝檔。
  6. 2007-10-31:加入 Adobe Reader 8 安裝命令稿,待測!

2007年10月30日

Java 怎麼判斷檔案的 ContentType/MIME-Type, Part II

Java 怎麼判斷檔案的 ContentType/MIME-Type 一文中我們談論到了兩種 Java 用來檢測檔案類型的方式,當時為了保險起見我使用了 JMimeMagic 這個套件庫。

然後前兩天看到有個 bmp 檔想要下載,結果 JMimeMagic 噴出了一大串的例外訊息,大意是指它檢查了半天後發現其實他不認識 bmp 這類的檔案,所以只好傳了一個 null 回來。

這真是令人訝異啊,沒想到最早期的 bmp 檔竟然會不被 JMmieMagic 所認識?問題雖然很嚴重但還是得馬上進行緊急修改:只要發現 JMimeMagic 傳回 null 時就塞 application/octet-stream 就算解決了問題。但這終究只是暫行方案,最好的方式還是想辦法識別出檔案真正的類型比較適當。

所幸在原文中所提到的參考網站中又新增了第三種檢測方式:使用 Mime-Util 套件庫。它和 JMimeMagic 都是透過識別檔案特徵的方式進行檢測、判別。

使用的方式不需要做太多預先設定,只要直接把待測檔案路徑丟進去就行了,如:

File myFile = new File( "./test.bmp" );
/* 
 * 雖然 MimeUtil.getMimeType() 可以直接傳入 File 物件,但是
 * 不知何故在 Tomcat 5.5.23 at Fedora Core 6 with JDK 1.5 
 * 的環境中會失效。改成直接傳入檔案路徑後即可正常進行檢測。
 */
String contentType = MimeUtil.getMimeType( myFile.getCanonicalPath();
System.out.println( contentType );

最後,在我的機器上不管是 IE6 還是 Firefox 2 都無法直接開啟 .bmp 檔,這… 我不太相信會這樣,該不會是到了系統重灌的時候了?

2007年10月29日

不願面對的決定

酪梨壽司 在他 RE: 部落格終極發問指南 一文中提到: 攤開手心看答案前,你期待的是哪個選項?那通常就是心裡真正想要的。

所以說許多時候我們都早就有了某種決定,只因為恐懼失敗、害怕失去的關係讓我們不願或不敢去面對自己的選擇。

只是,自己的人生終究只能由自己負責,逃避決定並不是個可長可久的辦法。我想只有先做好最壞的打算,並抱持著最好結果的可能後才能直正面對心中真正想要的決定。

※話說回來:

  1. 其實前面那串屁話都只是旁人不負責任的發言而以。
  2. 所以說對他人某些人生抉擇問題的最佳對策或許是本格開宗明義的政治主張:『 不知道、不清楚、不瞭解、不明白、沒有意見!
  3. 不過像這類問題或許會有另類的回答:『 選擇沒有好壞,但是悔恨將永遠伴隨!
  4. ...... 為什麼會覺得一整個完全不知所云呢?

2007年10月24日

在WiMax論壇上遇見Eee PC的對手!

來源: 看法:
  1. 其實個人打一開始就對 WiMAX 的存在價值感到懷疑,主因還是在 WiMAX 有什麼 WiFi/3.5G 達不到或難以達成的殺手級服務?
  2. 如果 WiMAX 想做的 WiFi/3.5G 雖然都能做到,那麼 WiMAX 有保證最低價服務嗎?
  3. 另方面目前 WiFi/3.5G 乃至於 WiFly 等有什麼服務是不用也好,但用了更贊的服務嗎?看來沒有,現在無論怎麼看覺得現在的情形比較像是用了也好,不用也無所謂的情形。當然,把 3.5G 拿來突破企業網路封鎖是個殺手級應用,但這不能算是一種服務。
  4. 拿來上網看 YouTube 影片?呃… 這只能算是休閒吧?休閒的意思就是用了還好,不用也不會怎麼樣!
  5. 有人認為 WiMAX 可以用來取代 ADSL 甚至光纖網路通訊的固網服務,然而除非價格夠低,否則要取代 ADSL 是有其難度的。
  6. 然而在評斷 ADSL/光纖/WiMAX 服務費用時大概不會考慮 CBR ( Cost Benefit Ratio, 成本效益比,常稱的 C/P 值應為誤植 ),所以拿 WiMAX 頻寬較高作為拉高價碼的定價方式並不可行。用戶只會評估在可以接受的網路頻寬下的最低花費是那一種服務平台而以,何況這些固網業者也不是沒有價格戰的本錢。
  7. 再者這些已經搞了一陣子的無線網路傳輸服務都到目前為止似乎還找不到啥殺手級應用,那 WiMAX 究竟有什麼優勢能引發一堆廠商/電信公司爭相投入呢?
  8. 至於 JeremY 提到目前廠商心目中的殺手級應都有點脫離現實的看法,感覺上那好像是個常態。不過我們的評估立基點與廠商不同,有時也很難說廠商的發展方向不符實際需求就是了。
  9. 嗯,不過那個行動歡唱服務應該只能吸引遊覽車業者而以吧...

2007年10月20日

宅男大主廚,真是遜!

最近因為 型男大主廚 料理節目的關係,讓不少人覺得其實做料理也不難,本人則在該節目的薰陶下開始願意在湯料理(明明只是什錦鍋而以)之外付出更多的努力以便能吃的更為精緻。

基本上不管是男的還是女的,公的或是母的,能夠自行煮食應該屬於個人基本技能才是,無奈現在許多人都不再下廚,這種改變究竟讓生活變的更豐富還是更貧寂或許是個可以討論的議題。

簡單記錄一下到目前為止的挑戰情形:

  1. 炒空心菜:空心菜其實不難處理,只是前置的清潔工作麻煩很多。至於炒空心菜最常發生的情形則是忘了加鹽巴…
  2. 香煎秋刀魚:雖然魚都有熟,但是...
    1. 第一次把魚截頭去肚,不過看到那堆魚肚內的東西後就…
    2. 第二次則未特別處理魚頭、魚肚,但真正要吃的時候反而怕吃到那些髒東西…
  3. 煎香腸:其實每次我都無法確定香腸熟了沒,但可以確定的是下次絕對不可以買什麼蒜味香腸,蒜味來源還是要生蒜頭才有那種口感、刺激感。話說回來,昨天生食蒜片的結果是眼屎鼻涕齊飆,辣到只剩下胡言亂語。對了,每次開始食用香腸前我可是都有做好隔天拉肚子的心理建設喔!
  4. 魯肉:這是目前最失敗的成品之一
    1. 因為我搞錯醬油、水的比例,不幸放了 2 碗醬油和 3 杯水,最終還是鹹死人不償命。
    2. 為了處理這鍋魯肉,縱使拿來配飯、配麵線,仍然是過度攝取 Na 離子。
    3. 現在考慮倒掉魯湯部份重新用正確比例再魯一次,即使肉可能會太老也好過 Na 中毒。我在想下次醬油和水的比例就訂在 2 湯匙醬油配 3 碗水好了。
  5. 炊煮白飯:有次忘了在電鍋外鍋放水,還好內鍋的水不小心好像看的稍微多些,最後還是勉強煮出一鍋飯。
    1. 第一碗:淋了前面那鹹到死的魯肉湯後,另外配了一大杯水解決了。
    2. 第二碗:拿去弄泡菜炒飯,可是不知道是不是另外加了辣醬(魯味中附的)還怎樣,最後只剩下麻辣感。
    3. 第三碗:這次拿來弄蛋炒飯後確定白飯的煮法錯誤,發現這次白飯的確很失敗!米心太軟,太溼。
下個挑戰:
  1. 雖然一直在努力做好準備,但媽媽說絕對不可以想搞啥香煎白鯧魚,那是浪費食材的惡劣行為。
  2. 啊,來研究高麗菜飯怎麼弄好了。
結論:
  1. 果然是『宅男大主廚,真是遜!』
  2. 還好,對於這些成果只需一人做事一人擔,即然沒有女朋友就不必害怕有無辜第三者因 Na 中毒而陣亡。
  3. 令人傷心的則是當自己 Na 中毒時不會有人在旁邊呵護看顧,這實在是宅男的一整個寂寞啊。
  4. 咦?型男大主廚有出 食譜 耶!來買本參考參考好了。
  5. 生活好料理食譜 有一些食譜和好料的介紹。
  6. 珍愛食譜 有超完整的型男大主廚料理介紹。
  7. 咦?原來阿基師也有出書啊,那… 一併訂購好了...
※2007-10-20 補充:
  1. 前面提到用魯肉拌麵線的事,其實一開始的計畫並不是用來拌麵線的。
  2. 真正的目標本來是麵線糊,一種把白麵線煮成糊狀後,淋上魯汁的北港在地料理。別的地方似乎未曾聽聞,雖然可能有些地方把蚵仔麵線之類有勾芡之類的麵線料理也稱為麵線糊,但我認為勾芡的方式比較像是麵線羹而非麵線糊。
  3. 另外約兩年多前全家便利商店則曾經推出即食包(和擔仔麵之類的包裝相同),但似乎因為銷路不佳,只出現一下子就不見了。
  4. 為什麼後來沒有按計畫弄成麵線糊呢?因為… 要把麵線煮成糊狀的時間比想像的還要久… 我又因為太餓的關係於是臨機應變弄成乾拌麵線之類的方式啃了它!

2007年10月17日

光華新商場

消息來源: 看法:
  1. 呃,這種施工品質…
  2. 有人有原始設計藍圖嗎?原始設計就是這副歪斜的模樣嗎?
  3. 好奇的是原本那些光華商場的店家願不願意進駐呢?
  4. 我是不會踏進那棟大樓了,反正未來買電腦有很大的機會是買品牌電腦… 再不然也還有 Nova 可以去逛...
  5. 唉,這個『他,馬的』候選人倒底要毀掉多少台北市民的記憶才甘願呢?
※2007-10-17 補充:
  1. 今天看到一篇針對此事件的反應:[有趣] 歪掉的新光華大樓!? 別鬧笑話了!
  2. 其實若要反駁光華大樓是否有所歪斜、原文是否有什麼政治意圖之類的,那麼該作的絕對不是拿別張照片來解釋所有的建築物在照片中看起來都是歪的。
  3. 想要檢視該文是否有蓄意污衊『他,馬的』的方法是到現地進行垂直度檢驗(不知道正確稱呼)以瞭解是否真的有施工不良的情形。
  4. 但是話說回來,搞不好原始設計藍圖就是參考過比薩斜塔,這需要監工單位提出證明。
  5. 至於個人為什麼未到現場實地勘察過就跟著聯播該文呢?因為該文中從東南角拍攝的照片中央的大樓部份與畫面前方的欄杆對照之後的確看的出有點夾角。這角度也許不大,但它卻看的出來。
  6. 不過話說回來,徐佳青議員的現地勘察似乎也未針對此點做驗證?

2007年10月9日

舉行一場有效的會議

最近公司因為一項大型計劃的啟動,帶動了各項子專案鋪天蓋地、綿綿不決的會議地獄。

參加會議原本不是什麼壞事,但如果會議過程註定是『會而不議、議而不決』時就令人厭煩甚至抗拒了。

這兩週中所參加的會議數不少,平均而言會議品質實在令人無言與無奈。當我冷眼旁觀著他人似跳樑小丑般會議表現時,開始思考著如果這個會議是我所召集的話,我要怎麼辦才能有效率的進行會議並取得所期望的成果?

就個人感覺,會議的目標在於決定議題的進行方式,但其最終的目的則在於 讓議題用自己所期望的方式去進行,但是責任需由大家一起來承擔。

這樣講好像很不負責任?

為了讓議題儘量依自己所期望的方式去進行,會議前的準備動作便不可少。但要準備什麼呢?準備各議題的可行方案及建議最佳方案資訊,理由如下:

  1. 避免議題被過度聯想而失焦
  2. 掌握議題主導權
還記得當幕僚時第一次召開某某會議(會議主題忘了,印象中只剩下被罵的狗血淋頭的記憶而以)時,我天真的以為所謂的開會就是把可能需要討論的問題全部列出來,然後一個個點名與會人員請他們提供意見。結果呢?所有與會人員只有面面相覷而且完全提不出任何可行方案或看法,就這樣冷場十分鐘後營長生氣了,直接沒收該場會議並把我叫去營長室立正站好聽訓廿分鐘...

這是怎回事?因為我搞錯了會議的目的了。我原以為所謂的討論就是要一堆人坐下來從無到有,針對議題漸次取得共識,但這種誤解正是會議冗長、無效率的成因。為什麼?因為放任議題討論的結果只會衍生更多議題並產生更多的選擇,而當選擇變多時就難以取得共識,無法取得共識時就會造成爭執,一旦會議開始爭執時就更難以產生共識。如此循環,難以善了。

所以,在會議開始前針對議題做好可行方案評估及最佳方案建議可以避免議題陷入無止盡的討論黑洞中。當然軍中的會議模式本來就比較單純,在單位主官的主持下其會議重點在於分配執行方式,整個會議時間通常可在 20 ~ 30 分搞定,程序大致如下:

  1. 說明會議目的
  2. 簡述各項可行方案
  3. 簡述最佳方案之理由及分配執行方式
  4. 意見反應與確認
  5. 長官裁示
  6. 散會
企業內的狀況除非是大案子,否則一般的會議通常不會有共同主管的參與,所以會議的重點變成在取得與會單位的多數認同(說服一個主官比說服一堆人容易多了)。最直覺的方式當然是針對可行方案評估的部份做些手腳,加油添醋或蓄意隱瞞(別太過份以免日後出包難善了)某些訊息時還能將議題的主導權握在手上,讓議題能在多數認同的情形下以對自己負擔最輕的方式進行。

可惜被賦予重任的單位不見得會接受這種多數決的情形,所以讓會議得以有效率的進行最好有上級共同主管的與會為佳,讓主管得以當場立即裁示以避免重覆舉行第二次會議,比較傷腦筋的可能是上級主管或認為不是啥重要事項,或誤判下級單位互相鬥爭的嚴重性而不見得能場場與會,那又是另外一個問題了。

也許各企業都有其會議效能不彰的理由,本公司最大的問題則在於承辦單位未能事先做好可行方案研究,當然最常看到的會議過程就是『立場各自陣述、議題自由發揮、結論互不相讓』。

至於會議召集人未能確認各組會議間的優先順序導致會議期間重覆的做出『待其他小組確認』的議題結論,這又是另一個浪費與會人員時間的超級密技。不知道老闆看到他花錢請一堆人聚在一起閒嗑牙會有啥感想?

※對了,附帶一提本部落格奉行的三胡宗旨:胡思亂想、胡言亂語、胡說八道。

※2007-10-14:如果你是與會人員

  1. 來來來,喲哪桑現在更進一步的告訴我們:當我收到會議通知時 可以怎麼做。
  2. 喲哪桑說的很對,很多會議召集人奉行 責任大家扛的教誨 ,所以會經常性的搜集與會名冊並廣發會議通知,完全不會考慮與會人員的合理性。
  3. 所以不要被通知與會後就傻傻的前往赴會不只可以減少會議的次數,還能有效避免莫名其妙擔責的可能性。
  4. 當然啦,如果您像我一樣只是個小腳色的話,那… 至少在會議過程中禁言或許得以免於莫名其妙增加工作的情形…
※2007-10-14:如果你是會議召集人
  1. 如果你希望能畢其功於一役,不願意在同一個議題上重覆投入開會時間,那麼光是準備會議 Agenda 是不夠的。
  2. 會議的進行應該只有選擇題而非申論題,所以除了會議的 Agenda 外你更需在會前對各種可行方案中做好評估,會議進行過程中才不會被一問就倒。
  3. 一旦你被問倒了,那十之八九得準備第二次會議。
※ 2007-10-19 額外補充:
  1. 資策會經常性的針對『跨部門溝通與異議掌控』開班授課,也許可以花點錢去試試看。
  2. 另外,上面這門課有附贈 12 個 PDUs 喔!
※2007-12-23: ※2008-02-01:

2007年10月8日

咦?來自手機的網頁蜘蛛?

今天檢視 Blog 的記錄時發現一個新的 Web Crawler ,應該是來自 Nokia6682 的神鞭平台,如下例:
69.147.79.136 - - [05/Oct/2007:19:18:14 +0000] "GET /ada/space/Political/2004-05-12/1 HTTP/1.0" 200 29379 "-" "Nokia6682/2.0 (3.01.1) SymbianOS/8.0 Series60/2.6 Profile/MIDP-2.0 configuration/CLDC-1.1 UP.Link/6.3.0.0.0 (compatible;YahooSeeker/M1A1-R2D2; http://help.yahoo.com/help/us/ysearch/crawling/crawling-01.html)"

查了一下 IP 似乎是來自 Yahoo! 美國總部所在地的樣子,是因為聽到我想禁止 Slurp 來捉資料的關係呢?還是 Yahoo! 有新的服務要推出了?

2007年10月5日

菜瓜食用後遺症

上週日在松青買了根菜瓜後便依計畫分成兩餐食用,只不過一個不小心這兩餐之間的間隔稍微長了些,約 36 小時。

為什麼強調 36 小時呢?因為剩下的菜瓜在經歷了六六三十六小時的能量累績後,它大幅的纖維化變成了傳說中的準菜瓜布,而把它吃下肚的我則因攝取了充足的纖維質後只能經常性的在坐馬桶上嘆氣。

也許,我印證了多吃纖維質可以防便秘的醫學建言了!

唉…

砍站新利器 - wget

想把一個網站整個 dump 下來不一定要有什麼特殊的工具,很可能每一套 Linux 發行套件預裝的 wget 工具就可以達到砍站的目的。

不信?請看:

220.248. ==> 5708
--------------------------------------------------
220.248.150.138 - - [04/Oct/2007:05:48:17 +0000] "GET /ada/space/start/2007-09-07/1 HTTP/1.0" 200 53612 "-" "Wget/1.10.2"
220.248.150.138 - - [04/Oct/2007:05:48:17 +0000] "GET /robots.txt HTTP/1.0" 200 299 "-" "Wget/1.10.2"
220.248.150.138 - - [04/Oct/2007:05:48:19 +0000] "GET /ada/space/snipsnap-index HTTP/1.0" 200 56913 "http://blog.t-times.net/ada/space/start/2007-09-07/1" "Wget/1.10.2"
.................... (餘 5xxx 筆省略)....................

嗯,那天也來實驗一下好了....

2007年10月2日

學習正規表示式

正規表示式,原文為 Regular Expression (RE),簡單的說就是一種用於字串配對及代換的表達方式,比較常聽到的譯名還有正則運算式、正則表達式、正規表達式等等,它們指的都是同樣一件事。

正規表示式能幹嘛呢?它能讓使用人員快速依據某種規則比對出所需特定式樣的字串資料,甚至對該特定式樣進行加工處理。對於一個經常處理大量字串資料的使用者而言,學會這招可以讓工作進行的更輕鬆。

要怎麼入門呢?可以在 Google 上搜尋 半小時精通正則表達式 可以找到相關說明,例如藍色小鋪 - (轉載) 半小時精通正則表示式

看完上述介紹後,此處以文字編輯器 PSPad 為例子簡單示範正規表示式可以讓人輕鬆的處理大量的文字資料。以下是某公司大台北地區的客戶電話原始資料:

12345678
23456789
34567890
45678901
56789012
67890123
78901234
89012345
90123456

啟用正規表示式的方式:

  1. 點選替換功能,搜尋功能支援正規表示式:
  2. 必須啟用正規表示式模式才會解析正規表示式指令:
操作範例:
  1. 將所有的市話號碼加上長途冠碼:

  2. 為了方便識別,將電話號碼格式改為 (02) 9999-9999:

註:一般而言在做子匹配時會以 \1 ~ \9 做為匹配結果的替代變數(稱為標籤陳述式),但還有另種以 $1 ~ $9 為格式的標籤陳述式,PSPad 使用的是這種型式。

以上範例或許因資料量不多難以看出使用正規表示式的效益,但只要稍微想像一下如果這些資料只要成長到 10 倍 100 筆資料後即可發現使用正規表示式真的可以增加工作效率且還能避免人為修改時的錯誤。

還在加班改隔日會議上使用的資料格式嗎?快點來學正規表示式,讓資料在彈指間重整成所需的格式吧。

2007年10月1日

關於無名小站的自宮行為

今天最熱鬧的消息應該要算是無名小站故意禁止其他搜尋引擎搜尋其站內文章的事了:
  1. 破月的紅軍:Yahoo! + 無名小站 濫用市場地位、排除其他搜尋引擎 ?
  2. Blog.XDite.net:欲練神功,揮刀自宮!( Wretch ban 掉所有搜尋引擎)
  3. Gea-Suan Lin’s BLOG:無名小站的 robots.txt
  4. 永遠的真田幸村:不只是無名小站的Robots.txt排除其他搜尋引擎,Yahoo知識+、新聞也是
對於這件事情,本人的的反應似乎較為不同: 我好想禁止 Yahoo 的 Slurp 來我這捉資料喔!

為什麼哩?因為 Yahoo! 的腦殘相關詞系統到目前為止還在搞人馬==>人馬交配的勾當,每次看瀏覽記錄都以為我開的是個線上 A 片供應中心網站哩。

倒底要不要封起來哩?嗯… 這是個幫助睡眠的好問題!