另類推廣法 – WMA vs. MP3

在 Mauro Cardarelli 看到一則引起我興趣的文章,點進去之後連到 Microsoft 的某個下載網頁: Podcasts: Microsoft IT Showcase: How Microsoft IT Manages SharePoint Disaster and Recovery 然後在下載的地方出現了兩種格式: 是怎樣,用這種方法來強調 WMA 格式比 MP3 格式來得小嗎?? 其實許多程式或標準,我們都害怕微軟擁有較高的市佔率,因為那代表著該軟體或標準失去了創新的動力~~電腦不算長的歷史中已經有太多可以證明。我還沒有時間檢驗這兩個檔案,不過會差這麼多肯定是有玄機的,一般的下載頁都會標明壓縮音質,有時間的朋友幫忙試試吧!

April 10, 2006 · 1 min

Xuite 的 SQL 指令洩漏

除了少數那幾家走出國際的軟體公司外, 也難怪台灣的軟體業成不了氣候, 再大的網站後面支撐著的程式人員到底是用甚麼樣的測試方法/測試工具??不是說有很多人都去弄了軟體品質管理的認證了嗎?? 剛剛逛 Xuite 的時候點了一個連結, 看到的是半正常的畫面, 因為畫面上還包含了一段 SQL 指令… 不曉得是甚麼程式錯誤造成的, 以此為記! http://photolog.fetag.org/album01/xuite_err1 select id,blog_id,title from article where blog_id='246780' and complete_flag='Y' and display_level='0' and ctime < '2006-03-21 15:56:16' and ctime < '2006-04-06 21:53:45' order by ctime desc select id,blog_id,title from article where blog_id='246780' and complete_flag='Y' and display_level='0' and ctime > '2006-03-21 15:56:16' and ctime < '2006-04-06 21:53:45' order by ctime asc select id,blog_id,title from article where blog_id='246780' and complete_flag='Y' and display_level='0' and ctime < '2006-03-21 15:56:16' and ctime < '2006-04-06 21:53:45' order by ctime desc select id,blog_id,title from article where blog_id='246780' and complete_flag='Y' and display_level='0' and ctime > '2006-03-21 15:56:16' and ctime < '2006-04-06 21:53:45' order by ctime asc select * from article_track where blog_id='246780' and article_id='5614327' order by ctime desc

April 6, 2006 · 1 min

已停用處理序效能計數器??

前一陣子依照網路上的一些 Tips 調整工作機的 Registry 設定,為的是讓系統跑起來快一點,實際也是有一些效果,但今天安裝 NetAdvantage 後執行它的 Toolbox Tab Creator 時出現了: 『已停用處理序效能計數器,所以無法執行所要求的作業』的錯誤訊息,解決方法是: 執行 C:\Program Files/Resource kit/exctrlst.exe 選到 PerProc 並把 Performance Counter Enable 勾起來,就可以了。 -.-” 沒想到調整了效能之後 ProcessInfo 這個 Class 就不能跑了…

April 6, 2006 · 1 min

Ubuntu 5.10 – 安裝時 debootstrap 問題

最近因為 Microsoft 的 WGA 程式造成人心惶惶,有許多人嘗試想要轉換到 Linux 環境上,Ubuntu 當然是首選的套件囉!但是最近這一個版本 (5.10) 有許多人像我一樣裝了很多次都沒能裝得起來,出現的錯誤訊息通常都是停在這裡: The debootstrap program exited with an error (return value 1). Check /target/var/log/bootstrap.log for details. … 剛剛從 Google 找到了這一篇: http://www.ubuntuforums.org/showpost.php?p=446620&postcount=10 try enabling dma on your dvd drive (you can do it from the expert install.. when it gets to cdrom parameters type in -d1 or, get to the console (alt-f3?) during the beginning of the regular setup and type sudo hdparm -d1 /dev/hdb (or whatever /dev your dvd drive is.) ...

March 25, 2006 · 1 min

[.NET] Why StringBuilder?

前一陣子在 Review Vendor 交過來的 Source code 的時候,發現裡頭用了大量的 StringBuilder 與 .Append 的 Method,其實我自己本身在寫 .NET 程式的時候,很少會去用到這些 Framework 所提供的功能,字串的結合都是用 s += “something else.”; 的方式解決掉的。最近因為該系統執行的效能不彰,所以對這一些 Source code 又重新 review 一次,並且作了一些效能上的調校,比如說: 把用了大量 DataSet 的程式碼 (一個 DataSet 只包了一個 DataTable),改成一個 DataSet 包了多個 DataTable 來運行,並且將一些 SQL 指令放進 Stored Procedure 去跑,希望這樣能夠增加一些效率,減少 DB Lock 產生的系統延遲等等 (日後有空再來寫一篇)。 剛剛提到在這些程式碼中,用了大量的 StringBuilder.Append,我對於這個東西的效能存疑,於是上網找了一下資料,先是 Google 了這一篇: http://www.c-sharpcorner.com/Code/2002/Oct/StringBuilderComp.asp Mahesh Chand 用了簡單的迴圈模擬出使用 StringBuilder 與 += Operator 的差異,很明顯的發現了 StringBuilder 的速度比 += 快得多了,似乎我們的這個 Vendor 也懂得這個道理,於是所有的字串組合都用了 StringBuilder 來作,這種寫法還得多敲些鍵,所以不算是偷懶了。等等,i<10000 這一行有點懸機,要一萬行的字串組合才有效能的提升,那 StringBuilder 難道不需要建構嗎?建構也是需要花時間的吧!我們常會寫 StringBuilder sb = new StringBuilder(); 這一行程式會用在需要用 StringBuilder 之前,而且常常不會用它來作很多 Append 就把它給 Dispose 掉了,我手上看到的 Source code 也多是 Append 個七至八次就結束,那麼上述文章的論點就值得再深入研究了,再拜 Google 大神給更多明確的指示,出籤: ...

March 21, 2006 · 1 min

使用 VS.NET 開發 Lotus Notes Client Application 前置作業

請照下面作法設定開發環境的機器: 安裝 Notes Client (我用的是 Domino Client 6.5) 開 VS.Net 2003 Command line, 執行 tlbimp domobj.tlb (在 C:\Program Files\lotus\notes), 這會把 domobj.tlb 轉為 Domino.dll (可被 .NET Reference) 執行 regsvr32 “C:\Program Files\lotus\notes\nlsxbe.dll” 註冊這支 DLL (必要) 程式中 Reference 剛剛產生的 Domino.dll,接著就可以 using Domino 並用: [csharp]static void Main(string[] args) { string NotesPassword = “P@ssword”; string NotesHost = “domino/admin/01”; Console.Write (“SERVER [(domino/admin/01)] : “); NotesHost = Console.ReadLine(); Console.Write (“PASSWORD: “); NotesPassword = Console.ReadLine(); Say (“Try login to server, please wait…”); Domino.NotesSession ns = new NotesSession(); ns.Initialize (NotesPassword); Say (“Sesstion Initialized!”); Domino.NotesDatabase ndb = ns.GetDatabase (NotesHost, @”mynotesdb.NSF”, true); Say (“Connected to DB: ” + ndb.Title); DisplayDocuments (ndb); Say (“Program terminated, press any key…”); Console.Read(); } ...

February 24, 2006 · 1 min

用 DVD-R 作資料交換

從 DVD+R 跟 DVD-R 的戰爭開打以來,我一直都是使用 DVD+R 的片子來作燒片,沒有甚麼特別的原因,只是因為那時候 DVD 燒錄機一直都還不是很穩定,而我的第一台 DVD 燒錄機對於燒錄 +R 的片子一直都很穩定,燒好的片子拿給別人之後也一直沒有甚麼不相容的情況,在這段期間中陸續換了兩台燒錄機,最近的這一台是 HP dvd640,在買回來後一直都還是延續先前的購買習慣 — 買 +R 的片子回來燒。 最近把讀取用的 DVD ROM 全部更新為 SONY 的設備,因為 DVD ROM 在長期的使用之後挑片會越來越嚴重,不曉得為甚麼最近燒錄的片子拿到新的 DVD ROM 上時讀取速度一直不快,開起檔案總管的時候就會稍微停頓一下,看 DVD 上頭的 DivX 影片也不如以往順暢。一直到前幾天才發現問題點,我到賣場去買 DVD 空片的時候因為某牌的 -R 片子比 +R 的好看 (現在空片價格與品質都差不多,外觀設計似乎是一個很好的賣點),所以買了 -R 的片子來使用,而最近燒錄的片子都不會有停頓的情況。 +R 的片子燒錄的時候速度會比較快,但是相容性 (拿到別台設備上讀取) 會比較差,而 -R 則是強調其相容性,所以比較適合用於資料交換。對於 DVD 格式不是很懂的我來說,在 DVD 的規格大戰開始就一直習慣使用 +R 的片子,當時 DVD 的技術尚未達到很成熟的地步,只要能用就行,不會對這些規格的用處挑毛病,但是現在 DVD 技術已經在市場上走了很長的一段時間,該是對其規格有所區分的時候了,+R 資片子還是比較適合拿來備分資料,以後資料交換,我還是乖乖改用 -R 的片子會比較好。

February 18, 2006 · 1 min

Frank 刪除備份檔後的憾事

對檔案備份不當一回事的朋友,強力建議看一下這一篇 : Hard disk death 沒錯,這是在 http://www.pureftpd.org/ 的網站的 index 文件,Frank 老兄的硬碟掛了,而他恰巧又在之前幾天,拿著本來用來備份的硬碟作其它的用途,所以導致了悲劇的發生,對於一個資訊工作者來說,整整五年的資料毀於一旦,文件、信件、原始碼,因為我們提暢無紙環境,所有的東西都在那裡頭,這是一件多可怕的事呀。 我在年前剛好也掛掉了一顆硬碟,不過裡頭剛好是些 crap “like mp3 or movies” 跟一些原始檔與信件的備分,雖然沒有特別重要的資料,但不能說不會痛,這得多花上幾個鐘頭的時間把資料重新備分,重新弄一個硬碟來做也是挺累人的。 不備份或少備份的朋友,希望看了這一篇能對你有所幫助。 為免該文在此事件後移除,轉錄如下: From: http://www.pureftpd.org/ By: Frank Denis “Jedi/Sector One” Hard disk death Thanks a million to the following individuals and companies for their donation that should really help to recover the data. People from that list: if you want a link to your web site, a banner, or anything else, just ask and I’d be glad to add it. Your name will also be included in all my future open-source software. Jan 31, 2006 ...

February 3, 2006 · 4 min

加入了 DreamHost 的行列

在 Pesty’s Articles 裡看到 DreamHost 大特價 (promo code) 又來了 裡頭介紹了一年 USD$9.24 的優惠價格,實在忍不住到 DreamHost 上去註冊了一組 Crazy Domain Insane 來玩。本來試著想看看 2 years 的價格是不是也這樣,後來發現並沒有,只有第一年是以相同的優惠價格來算,後來只好打消第一次申請兩年的念頭,實際算了一下,就算沒有優惠價格,每年一百多美金可以有無限 Domain (可以分 User 來存取) 就已經夠划算了。 原來還想過要弄一個這樣的服務,然後把 HiNET ADSL 3IP 的方案轉成 Dynamic IP 的方案,這樣可以變成有 8MB-12MB 的下載水管,但是後來算一算並沒有比較便宜,而有這三個 IP 在某些狀況之下還是挺有用的,於是就打消了這個念頭。 為了努力的使用這一條便宜的水管,會依序的把一些原來在 Home Server 上的服務轉到 DreamHost 上頭,也就是說最近這幾天我手上的服務會比較不穩定,大家就先忍著點吧。

February 3, 2006 · 1 min

賀 Project of the Month: NSIS

NSIS 這一個製作安裝程式的工具果然不失眾望的上了 SourceForge 的 Project of the Month,距離正式發表已經過了好久,但是辛苦總是有了代價,先前已經為它 Blog 了一篇,就不再另外介紹了。這支工具之所以能夠如此好用,就是因為原作者本身也是該工具的使用者,關於這一點,的確是一個成功的軟體專案所不可或缺的要素,因為自己就是使用者,所以才更能以貼近使用者需求的方式去思考設計改進的方向。 看到原作者 Amir 漸漸轉為使用者,另外有其它原來身為使用者的朋友轉為專案的 Developer,接著將它改進得更為完美 (當然是從使用者論壇獲得改進意見),看得到 Open Source 的深遠影響及對軟體專案生命週期延續的好處… 身為這麼好的軟體的使用者,要好好的為它喝聲采!

February 2, 2006 · 1 min