星期五, 10月 26, 2007

升到8M/640K了

今天忽然覺得在家上網有變快,連線速率測試的結果是3M多一點,reload幾次都一樣,本來想去砍中華電信,冷靜想一想應該是TCP Window Size的影響。結果馬上就看到 8M速率以上客戶注意事項(調整TCP Windows Size),點進去就有說明:
由於Windows作業系統預設的TCP網路參數(TCP Window Size)在使用8M以上服務時若未經調整,可能無法發揮較佳的下載效能,因此以下僅提供經測試可提升下載效能的參數值,若您需要可以參考以下安裝說明調整網路參數。
於是下載安裝8M_winXP.inf重開機就OK了!

不做壞事也能賺錢?

Google的企業哲學英文版)有一條 "You can make money without doing evil.",不做壞事也能賺錢。

剛才同事傳來 某論文 達人的link,因為鳥毅都用adblock,所以沒看過:

代寫論文是違法的事呀,賣這樣的廣告Google敢說without doing evil?

Update:忘了說,不論中外,被抓到有捉刀情節,一律取消學位。

騙帳號的詐騙集團

敝公司有位優秀的同事,和HIRO裏的木村一樣,常上什麼都不奇怪的網站買東西,他發現一個沒有評價,東西又都一元起標的賣家,點進連結就出現登錄畫面,這是詐騙集團騙帳號的網站,難怪那麼多人帳號被盜來發Spam呀...

星期四, 10月 25, 2007

請考慮慢速電腦

今天把某個web文檔系統的線上閱圖系統換成pdf,整個速度飛快起來;不論是Server或Client,都能感覺到loading減少許多。

世界上還有許多像鳥毅一樣無法換電腦的人,在享受AJAX、Silverlight的同時,請考慮慢速電腦的用戶呀!畢竟程式是用來服務用戶,要快速方便才是王道,一味追求炫是沒有意義的。

星期三, 10月 24, 2007

狀態圖也能抓歹徒?

今天晚上AXN的數字搜查線Numb3rs第二季實在太唬爛了,居然畫出UML狀態圖找出歹徒的下落,那是不是老婆也能畫老公出沒的狀態圖抓姦呢 XD

GDI+處理Tiff

鳥毅公司的文件管理系統採用tiff檔案,由於某案子需要把某些檔案裏的幾篇抽出來轉成pdf,想一想用GDI+和.Net寫比較簡單。

先參考A simple TIFF management class,用他的TiffManager在JoinTiffImages這個method結合tiff檔時出現 "無效參數" (或Invalid Parameter )的錯誤訊息,是在 Image.SaveAdd 裏的 EncoderParameters 出錯。

查MSDN討論區有人問但都沒有解,最後查到Save images into a multi-page TIFF file or add images to an existing TIFF file,這位bijulsoni老大說:
The most probable reason for this error is that the image on which you are trying to apply CCITT4 compression is not a bi-tonal image. The CCITT4 compression is applicable to bi-tonal images only. So I have given code for converting an image to a bi-tonal image. The code given in the sample application uses .NET GDI+ classes for storing images.
用人話說:Tiff的CCITT4 壓縮只能用在雙色影像檔(就是黑白啦),所以必須用bijulsoni寫的method轉成雙色。由於鳥毅還得做浮水印,所以只好用LZW壓成灰階(大約3~5倍大)

另外在轉檔的過程中,遇到記憶體不足。是因為Image物件的記憶體不會自動釋放,原因我不知 :P 我在不使用物件後加上 Bitmap.Dispose()就搞定。
所以TiffManager裏JoinTiffImages有些小地方要改:

 public void JoinTiffImages (string[] imageFiles, string outFile, EncoderValue compressEncoder)
 {
  //If only one page in the collection, copy it directly to the target file.
  if (imageFiles.Length == 1) {
   File.Copy (imageFiles [0], outFile, true);
   return;
  }
  //use the save encoder
  Encoder enc = Encoder.SaveFlag;
  EncoderParameters ep = new EncoderParameters (2);
  ep.Param [0] = new EncoderParameter (enc, (long)EncoderValue.MultiFrame);
  ep.Param [1] = new EncoderParameter (Encoder.Compression, (long)compressEncoder);

  Bitmap bitmaps = null;
  int frame = 0;
  ImageCodecInfo info = GetEncoderInfo ("image/tiff");

  foreach (string strImageFile in imageFiles) {
   if (frame == 0) {
    bitmaps = (Bitmap)Image.FromFile (strImageFile);
    bitmaps.Save (outFile, info, ep);
   } else {
    //save the intermediate frames
    ep.Param [0] = new EncoderParameter (enc, (long)EncoderValue.FrameDimensionPage);

    Bitmap bm = (Bitmap)Image.FromFile (strImageFile);
    bitmaps.SaveAdd (bm, ep);
    bm.Dispose ();
   }
   if (frame == imageFiles.Length - 1) {
    //flush and close.
    ep.Param [0] = new EncoderParameter (enc, (long)EncoderValue.Flush);
    bitmaps.SaveAdd (ep);
   }
   frame++;
  }
  bitmaps.Dispose ();
  return;
 }
浮水印是參下以下兩篇:
Creating a Watermarked Photograph with GDI+ for .NET
Watermark Maker Source: Watermark Project
不過我最後用ImageMagick效果比較好,檔案也小一點。原來TiffManager拆圖存成tiff格式太大,後來我改用png格式儲存比jpeg還小,執行速度也快,供各位參考。

Tiff轉PDF不用考慮,還是ImageMagick,還會把檔案壓小一點,只要一行指令搞定
convert xx.tif xx.pdf
結論:
GDI+雖然方便,但陷阱不少,使用時要小心。另一點是GDI+效率不高,中小企業內部用還不錯,若放在online高流量web或是寫影像處理軟體,還是用3rd party的API 吧!

後記:
本來要把意見貼到Code Project原篇,結果出現以下錯誤:(asp... 唉)

星期一, 10月 22, 2007

絕不是M型分佈

鳥毅在上星期和朋友聊天時,就有聊到人數與財富的分佈圖,根據常態分佈圖,不可能出現M型分佈,頂多是中產階級(波峰)往左移。

剛才同事傳來辛可的這幾篇,分析得很清楚,推!

M形社會(M型社會)到底在哪裡?? (一)

M形社會(M型社會)到底在哪裡?? (二) - 所得分佈的調查

M形社會(M型社會)到底在哪裡?? (三) - m的加工方法

M形社會(M型社會)到底在哪裡?? (最終回) - 誤解與真實

Kaffe很穩定了

昨天jserv老大居然有留言,讓鳥毅很驚喜。連上Kaffe看到Screen Shots裏jserv老大貼的Eclipse畫面,再打開Ubuntu的Eclipse,才知道原來Ubuntu的Eclipse是用GCJ執行,能夠有如此高的穩定性,實在是可喜可賀的事。

如果沒記錯,GCJKaffe都是用GNU Classpath,相容性應該差不多。希望它們能像This is Cool GCJ一樣,加上Swing/AWT的支援,這樣能夠玩的東西就更多了。(現在OpenJDK也是GPL,互相"參考"一下應該沒什麼關係吧...)

最新的Spam

今天一到公司,看到攔截明細裏有一封Spam:"中華電信招兵買馬,待遇最高4.8萬..."
內容真的是中華電信的新人招考標準,連結是連到1111人力銀行。

我的感想:
  1. 若是中華電信,不需要浪費這個錢,因為電視新聞已經幫他們打廣告。
  2. 若是1111人力銀行,這個廣告效果應該還不錯;但是對鳥毅沒用,因為上星期就有匿名的朋友留言此訊息。
  3. 做Spam也得求新求變,才能提高開信率呀,果然天下沒有白吃的午餐。

星期五, 10月 19, 2007

有些事不能明說 (限)


諾貝爾得主:黑人沒白人聰明
黑人沒白人聰明言論引爭議 美科學家感羞愧









18













以下是鳥毅和朋友M君對這件事的對話。

M君:有些事雖然是事實,但絕對不能說出來。
鳥毅:像是帥哥美女找工作比較容易嗎?
M君:就像是日本A片開場訪問,女主角常都說只有五次十次,誰相信呀?500次都不嫌多。

參考:宣宣升黑帶 斥嘿咻千次太扯

升級Ubuntu 到 7.10 版本

昨天一直在關注EEE PC和Leopard的資訊,今天一早來忽然想起Ubuntu 7.10 Gutsy Gibbon在18日正式發行,馬上來當白老鼠,直接使用更新管理員(Update Manager)做版本升級。





因為我的電腦比較慢,又因為我開遠端桌面工作,停在問題不知多久,最後約3小時安裝完成。可惜因為在遠端桌面,沒抓下最後重開前的畫面。

重開沒遇到什麼問題,登入後才發現window manager變成xfce4,猜想是因為之前有安裝xfce套件,登出後選擇作業階段選擇Gnome設成預設值登入即可。沒有像其他大大那樣說開程式神速,不過也沒遇到啥問題,除了左上角的圖示又得再換一次...

星期四, 10月 18, 2007

改用Google Maps

最近urmap和商家合作,結果把地址都指向商家,變得非常不準。恰巧上星期台版Google Maps出來,在下就把 UrMap 的Firefox Search Plugin改成Google Maps。

檔案: urmap.xml -> googlemaps.xml
<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
<os:ShortName>Google Maps</os:ShortName>
<os:Description>Google Maps電子地圖搜尋引擎</os:Description>
<os:InputEncoding>UTF-8</os:InputEncoding>
<os:Image width="16" height="16">data:image/x-icon;base64,R0lGODlhEAAQAOYAAAAAAP////n7+/AcHPskJOoqKs8mJukrK9MnJ/41NeM0NNgxMf07O/A4ONw1Nfc/P9A2NtA5Od4/P/ZHR9ZDQ+xLS/pZWfVYWPdZWfNYWPBXV9tPT/FYWOdWVv5gYOpYWOlYWOlZWelaWuJXV+9dXf1lZeBaWttYWNpYWP9tbetpaf94eMxiYuBsbPt9ffd8fPF9ffqHh/uJifKOjt+GhvuYmO6env+trfmrq7J6evGrq/22ttqfn++5ufbAwPK9vf3GxvvOzv7S0v3R0fzR0fvQ0PrQ0OnBwdSwsMOiovvR0fjPz/jQ0PbQ0PvV1fPPz9m5ufva2v3h4f3k5Pjh4f/r69XExOva2v3t7f3z8/nv7/rz8//5+fz29v/6+v36+v38/P39/erq6ubm5uTk5K+vr62trampqaWlpZeXl4ODg3t7e29vb1JSUk9PT0dHR0NDQ0JCQkFBQT8/PxQUFAkJCQICAgEBAf///wAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAHgALAAAAAAQABAAAAevgHiCg3hhYYSIhGEpDU+JiTgKLxtbj4NTC1BeFDyWhTAsAgE+B1SWQQhXAasqLYeIXxMza29kY1YGP4k1D1xydmlscTkOWYRSBEABcXd3dQByFTGDYCUrq3AAbWVqYkoFToI7CVWrzGirqzQmXVgMN+lzdmfpAVoQOjIe9W50ZvUBekQYYKMJESFDkCQ5YmQJEyNFokhw0eFECAsYMmi4wGEEChAfRJAwRLKkSUOBAAA7</os:Image>
<os:Url type="text/html" method="GET" template="http://maps.google.com.tw/?q={searchTerms}">
</os:Url>
</SearchPlugin>
Google Maps對搜尋字串的空白及全半形判斷,都遠比UrMap好;地圖的精準度更不用說,開車走透透不是白跑的呀...

星期三, 10月 17, 2007

一個C#小技巧

看到這篇忽然想起許多人都不清楚C#有個很好用的小技巧:字串前加上@就不會對內容做解譯,常用在路徑名或有特殊字元時,可以大幅增加可讀性及寫作方便。

例如: string path = "C:\\TEMP"; 就可以寫成 string path = @"C:\TEMP";

星期二, 10月 16, 2007

光世代不用五戶了

今天收到中華電信的光世代廣告,10M/2M的光纖每月1300元。看起來還不錯於是打電話去問,結果我住的地方離機房太遠(真有點不敢相信),所以目前無法申辦。

不過在下還是替其他朋友問清楚,現在光世代不需要五戶就可以申請。所以在下只好勉為其難的先升級到8M/640K,12M/1M還是有點小貴(多了300多大洋,比光世代還貴一點)。

中華電信要多加油,呀,不對,是電信總局要加油,現在大家都窮,上網應該更便宜。

誰寫的英文?

私人信蓋入聯宣傳章 老外氣炸
陶維極(Talovich)說,他在台灣的補習班教英文,未婚妻在美國波士頓,兩人時有書信往返。
...
他指出,「唯一可以安慰的是,這句不成文的英文,外國人一定看不懂。UN for TAIWAN應該是聯合國送給台灣的意思,但新聞局長還說這句英文沒問題,實在看不懂,這不是英文。」

老早就想說了,"UN for Taiwan"到底是誰想的英文呀?就算不問老外,至少找個英文系或外文系的朋友問一下吧...

星期一, 10月 15, 2007

Ubuntu (Gnome) 登入畫面的字型

Ubuntu (Gnome) 若要修改登入畫面的字型,在 /usr/share/gdm/themes 底下 theme名稱/某個xml 。
例如我用的 /usr/share/gdm/themes/osx-theme/osx-theme.xml ,找出font關鍵字,改成你要的。

例如這篇所提到的神奇Mac字型。(我本來想改成我有買的華康中黑體,但一直找不到它的英文字型名稱 Orz)

儷黑Pro的邊緣比較模糊,有點像圓體,也比較粗;華康中黑體較清晰也較方正,看自己的需求囉~

星期六, 10月 13, 2007

別想得太完美

我對賴榮樞沒偏見,但他也把事情想得太完美了吧? 期待Silverlight 1.1裏提到
微軟沒有忘記必須讓Silverlight跨平台、跨網頁瀏覽器,因此Silverlight的runtime不僅有Windows和Mac版本,也會有Linux版,而Mono專案團隊將會負責實作開放源碼版的Silverlight 1.0和1.1;開放源碼版本的Silverlight的專案代號是Moonlight。Mono 是由Novell贊助的Linux版.NET平台,有趣的是專案代號Moonlight。如何有趣?一是銀光、一是月光;再者,把Mono的最後兩個字母調換就變成Moon了不是嗎?Moonlight不僅能在Linux套件執行,而且將支援Firefox、Konqueror、Opera。再者, Moonlight 1.0會如同Silverlight 1.0支援JavaScript程式開發架構,而Moonlight 1.1則會向Silverlight 1.1完整支援.NET架構。
在下一定要指出幾點:
  1. 首先,Mono並不完全與.Net framework相容,這是因為微軟有許多擴充功能,目前Mono 1.2.5仍然未完全實作.Net 2.0所有功能。
  2. Silverlight有些3D功能,Linux上光是Display Driver就很難搞,這部份Mono應該是依賴OpenGL,但是OpenGL不是萬靈丹。
我敢說:Moonlight絕對不會完整支援Silverlight所有的功能,一定會有不相容的情形

在下絕對支持Mono的理念,有興趣的朋友可以用MoMA測試相容性,現在比起一兩年前好太多了,Mono加油!

星期五, 10月 12, 2007

2007資安健檢 抽Wii

2007資安健檢活動辦法
活動期間:即日起~10/30
活動辦法
  • 活動期間完成資安健檢,就有機會拿大獎。
    獎項一:Wii (1名)
    獎項二:iPod nano(2名)
    獎項三:100GB行動硬碟(3名)
    獎項四:7-11貳百元禮券(30名)
  • 執行單位將以email通知得獎者領獎日期、方式與相關須知,領獎期限內未領獎者,即視為放棄該得獎權利。
  • 得獎者得知中獎後,須將身分證正面影印本寄回,始完成領獎手續。
  • 重複填寫問卷不予計算,亦不會增加中獎機率,一人僅有一次抽獎機會。
  • 抽獎時將依據您所填的個人資料,核對email、姓名、身分證末四碼..等內容,內容不符者執行單位將有權取消資格。

在下的分數是:

其實....我只是要抽Wii而己啦!

P.S. 題目都在戰勝弱點裏,大家加油!抽到Wii記得借我玩 XD

星期四, 10月 11, 2007

省小錢花大錢

省小錢結果賺大錢了嗎?? 表達出許多MIS的心聲,今天剛好聽朋友說起台灣某家很大又充滿愛心的電視公司推行數位化的結果。

這間電視公司推行數位化後,辦公室無紙化(拍拍手),但是公司最重要的資產--影片,居然用DVD存放。為了省Storage和升級高速網路的錢,將錄好的DV轉成mov再燒到DVD裏。只要稍有概念的宅男都知道,DVD保存不到十年就會掛點,比CD-R更短命;哪一天重要的影片沒有可用的備份時,MIS要怎麼收尾呢?

傳產公司的老板,都不願意花錢在看不到實體成效的東西。以敝公司而言,一個高級維修人員的薪水可能一天就要2000元,但他一年花在修P3 500的機器可能就超過10天,為什麼不花個2萬給user升級,兩年內他可能只要跑2趟。哦,我還沒算因為電腦發生問題工作停擺的user人力成本呢!

我的意思是說,許多傳產的老板都沒有TCO的概念,要精打細算沒錯,但請好好想想,省小錢花大錢呀!

參考:整體擁有成本

星期二, 10月 09, 2007

模擬按鍵

今天剛好有需要自動執行程式,但因為需要登入動作,所以就得寫一個能對視窗上模擬按鍵的動作。嗯...按鍵精靈要錢,又怕有後門,於是先找自己以前用VC寫的半成品。結果..因為新電腦還沒申請,這台NB上沒有,就先找網路上的範例。

結果找到比較完整的是 Send Keystrokes to Applications Using Windows' API SendInput ,我拿裏面DoDucTruong的程式來改最方便,這是VB6的程式,改一下就解決我的問題。DoDuc的程式裏找HWND的部份可能會有問題,不是每個視窗用名稱都找得到(或是名稱不對?),我是用Spy++直接找Class Name填進去找HWND,需要的人可能得用FindWindowEx去試試,這方面在下不行。

過程中有許多程式碼都是VB5或更舊,居然都得修改才能執行,有點出乎意料。BTW,找API用法中,發現一堆討論區都有Kuon兄出現,他果然是高手,有問題請直接問他XD

星期一, 10月 08, 2007

shell的color prompt 與 color ls

在FreeBSD慣用tcsh,但是在Mac上bash中文比較正常(Leopard之後似乎tcsh也能正常顯示中文),在Ubuntu則都正常,以下是我習慣用的prompt,Terminal背景為黑底淺灰字。

Bash: ~/.bashrc(或是~/.profile)最後加上

PS1="\$(date +%H:%M) \[\033[1;32m\]\u@\[\033[0m\h\[\033[0m\]\[\033[1;36m\]:\w\[\033[0m\]$"
LSCOLORS="DxGxFxdxCxegedabagacad"
export PS1 LSCOLORS
alias ls='ls -G'


Tcsh: ~/.tcshrc 最後加上
set prompt='%B%T %{^[[1;32m%}%n%{^[[m%}@%m:%{^[[1;36m%}%/%{^[[m%}~' 
setenv LSCOLORS DxGxFxdxCxegedabagacad
if ($OSTYPE == "FreeBSD") then
alias ls 'ls -G'
else
alias ls 'ls --color=auto'
endif


參考資料:Return color labeling to the ls command

星期六, 10月 06, 2007

Ubuntu 7.10新功能

New features since Ubuntu 7.04 (10/18正式發行)
  1. GNOME 2.20
  2. Desktop 3D effects
  3. Desktop search
  4. Fast user switching
  5. Firefox plugins in Ubuntu
  6. Dynamic screen configuration
  7. Graphical configuration tool for X
  8. Fully automatic printer installation
  9. Handling of non-free device drivers
  10. NTFS writing
  11. Power consumption
  12. AppArmor security framework
  13. Additional installation profiles for Ubuntu Server
  14. Profile-based Authentication Configuration
  15. Improved thin-client support
Ubuntu不愧是最貼近一般用戶的distribution,即將內建NTFS寫入功能,另一項其他廠商沒注意到的便是圖化的X設定工具,現在有快速使用者切換和Compiz Fusion,希望Ubuntu能有更多使用者。(啥?PCBSD?....算了,實在差太多,就當做沒這回事吧)

非常佩服六先生

有朋友說六先生是嘴炮王,某些觀點太過理想化。我也覺得他表現得有些過度樂觀,不過平心而論,在下在許多方面非常佩服六先生

以他最近一篇對於傳銷公司似是而非的說法,他們都搞錯!學歷不重要,「完成」才重要 就狠狠地打了傳銷公司一巴掌。

想想,一個人讀到Stanford電機與管理雙碩士,不去高科技公司上班,每天花三小時以上寫文章,肯定是對此有偏好;而且每篇都洋洋灑灑千字以上,文學造詣頗高。而且他有老婆小孩還能夠一直往創業這條路走,實在是佩服得五體投地呀!

備援

一個公司的系統要穩定,一定得考慮到備援這回事。

剛才要看公司的mail,發現連不上我就知道一定有東西掛了。早上才用VPN連回公司,本想說可能是網路掛了,打回公司加班的同事一直是佔線狀態,後來終於通了也沒人接;正覺得奇怪,隔一會兒同事回住處msn給我,才知道公司停電十分鐘,伺服器掛了沒起來,他等了十幾分鐘放棄。

今年最強的颱風柯羅莎果然非同小可,印象中除了納莉外公司都沒有停電。鳥毅早說過,要備援、要備援,主管怎麼總是不聽呢?今天只是停電,哪天伺服器突然掛點,不要再逼我復原,沒有硬體可是啥都幹不了。軟體其實也要備援,只是這不歸我的責任:P

星期一, 10月 01, 2007

溝通與人際關係

公司很難得辦一個演講是關於溝通與人際關係,與其說是演講不如說是員工訓練,有上課的人都覺得相當滿意。由於只有短短的二小時,重點在於PEP溝通法,課程中玩的溝通小遊戲,確實讓某些長官知道自己的溝通能力有多差。講師是位留美的EMBA,是該訓練公司的總經理,管理相關的東西還是學管理的人比較清楚呀!

鳥毅所學到最重要的一點,就是:愈高階的主管,專業能力愈不重要,重點在於管理與溝通能力!

此篇寫給當主管的各位老大看,在下還是最低階的工程師呀 Orz

小心吃藥

最近網路上某位資訊背景的老大在學中醫,恰巧鳥毅過世的爺爺是有照的中醫,忍不住嘮叨幾句。

舉個真實例子:某位中醫學系的學生,馬子便秘幾天,於是他開一帖給馬子喝;結果馬子狂拉一週。盡信書不如無書,根據爺爺說,古人的體質與現代人不同,所以有許多古方都已不適用。許多藥方都要看個人體質,在學會望聞問切之前最好別亂開藥。

改Ubuntu 左上角應用程式功能表的圖示

照著網路上的資訊,將Ubuntu的外觀改造成類似Mac的樣子,但是左上角應用程式功能表的圖示卻不知道要如何改。今天心血來潮用力找一找,終於發現這篇
原來現在用的預設window manager是metacity,不是xfce,難怪我之前找到的設定方式都無效。圖示在/usr/share/icons/Tango/scalable/places/start-here.svg,soft link成distributor-logo.svg和gnome-main-menu.svg及novell-button.svg。所以把連結裏下載來的svg取代start-here.svg就換成漂亮的圖示了。