星期日, 9月 30, 2007

不拘泥於招式

前幾天管電腦軟硬體的同事(以下簡稱管理員)和我說:
管理員:你上次買的server沒有電腦編號耶
鳥毅:為什麼
管理員:你用簽呈買,沒有填電腦申請單
鳥毅:你不能直接新增一台設備嗎
管理員:可以呀,只是在申請單那欄會變成空白
鳥毅: ...
對於硬體管理的重點,應該在於數量清點確實,而不是每樣東西都有申請單。事實上,申請單的意義並不大,只是一筆記錄。由於管理程式的缺失及歷史的遺毒,這個no key系統資料亂七八糟,若真的要求那麼多,為何不花時間整理一下DB呢?
在1990年,那時鳥毅用的FORTRAN 77不支援recursive,FORTRAN 90才支援。某日在寫河內塔時
FORTRAN 77的寫法

INTEGER N
WRITE (*,*) 'How many towers do you have ? '
READ *, N
CALL HANOI(N)
END

SUBROUTINE HANOI(N)
INTEGER N
CALL MOVE(N,'peg1','peg2','peg3')
RETURN
END

SUBROUTINE MOVE(N,FROM, AUX, TO)
INTEGER N
CHARACTER*4 FROM, AUX, TO

IF(N .EQ. 1) THEN
PRINT *,'Move disk 1 from ',FROM,' to ',TO
ELSE
CALL MOVE2(N-1,FROM, TO, AUX)
PRINT 10, 'Move disk ',N,' from ',FROM,' to ',TO
CALL MOVE2(N-1, AUX, FROM, TO)
END IF
10 FORMAT (1X,A10,I2,A6,3A4)
RETURN
END

SUBROUTINE MOVE2(N,FROM, AUX, TO)
INTEGER N
CHARACTER*4 FROM, AUX, TO
IF(N .EQ. 1) THEN
PRINT *,'Move disk 1 from ',FROM,' to ',TO
ELSE
CALL MOVE(N-1,FROM, TO, AUX)
PRINT 10, 'Move disk ',N,' from ',FROM,' to ',TO
CALL MOVE(N-1, AUX, FROM, TO)
END IF
10 FORMAT (1X,A10,I2,A6,3A4)
RETURN
END

FORTRAN 90的寫法(遞迴)

INTEGER N
WRITE (*,*) 'How many towers do you have ? '
READ *, N
CALL HANOI(N)
END

SUBROUTINE HANOI(N)
INTEGER N
CALL MOVE(N,'peg1','peg2','peg3')
RETURN
END

RECURSIVE SUBROUTINE MOVE(N,FROM, AUX, TO)
INTEGER N
CHARACTER*4 FROM, AUX, TO

IF(N .EQ. 1) THEN
PRINT *,'Move disk 1 from ',FROM,' to ',TO
ELSE
CALL MOVE(N-1,FROM, TO, AUX)
PRINT 10, 'Move disk ',N,' from ',FROM,' to ',TO
CALL MOVE(N-1, AUX, FROM, TO)
END IF
10 FORMAT (1X,A10,I2,A6,3A4)
RETURN
END

雖然程式碼重覆是bad pattern,But,so what?解決問題才是第一要務呀!

獨孤九劍最強之處就是遇強則強,無招勝有招才是最高境界,不要拘泥於招式。鳥毅之所以非常佩服同事VB超人的原因,不僅僅是他VB超強,而是他能夠將簡單的VB能夠呼叫系統API、與.Net結合,成為強大的武器。寫程式和做事都一樣,墨守成規者無法成為高手呀!

星期六, 9月 29, 2007

無責任新聞評論

今天看到兩則新聞

社群力量發酵 Yahoo!撤回對flickr.tw律師信
這件事我是在leeym的Blog看到,李兄相當帶種,敢直接批評自己的東家。如今Y!T協調Y!撤回律師信實在是美事一樁。

客戶還是愛用XP 微軟延長銷售期限
微軟預計在明年第一季正式發表的Vista SP1可望大幅解決相容問題
這我老早說過,微軟的產品,敝公司在SP1前不會採用。另一句,Vista的相容性不改善,市場是不會大幅度接受。等著Vista SP1吧!希望效能也可以大幅提升呀!

星期五, 9月 28, 2007

準備虛擬化Server

機房空間漸漸捉襟見拙,目前虛擬化已經漸漸成為趨勢,而且有一定程度的穩定性。打算在年底硬體升級後,將公司內部為少數人提供的服務虛擬化以減少實體複雜度。

目前沒有實機可以測試效能如何,希望虛擬化能夠替我解決機房空間不足的窘境。

星期四, 9月 27, 2007

售MacMini (已售出)

PowerPC MacMini 售有緣人 (已售出)

CPU: PowerPC G4 1.5G (隱藏版)
VRAM: 64MB
RAM: 1GB
HD: 80GB
內建無線網路。
軟體:該有的都有,原廠DVD。
保固:早過了,有問題找優仕吧。
包裝:都還在。
附贈 有線Mighty Mouse一隻。

希望能賣9000元,若聊得來,再送Mac鍵盤,夠意思了吧。

問我為什麼要賣?我想換個跑得動XCode的Mac呀...
這台Mini拿來看影片,聽音樂超棒,保證無雜音,內建的小喇叭也還不錯。執行Expose比Vista還炫,所以我一直對Vista印象不好。唯一的缺點就是寫程式跑Java、Eclipse/NetBeans或XCode就吃力了點。其實也很適合拿來養動物,耗電量小又安靜,只是我有5台電腦,留著實在用途不大。

星期三, 9月 26, 2007

昨天做的夢

最近Q大寫了幾篇好文章,趁著連假花了些時間拜讀,結果我昨天夢到參加一個營隊競賽寫程式,幾隊寫相同功能的程式,但Q大硬是比我這隊的程式快3倍...

醒來後想想:以Q大的功力,快十倍也不足奇,中秋節放假,繼續睡....

晴天霹靂

剛看到Powerset 的創業團隊和工作環境,Yahoo居然要捨FreeBSD就Linux,還是用商業版的RHEL而不是Debian。對我這個FreeBSD用十年的宅男真是晴天霹靂呀....

不過仔細想想也還好,因為Mac使用變種的FreeBSDDarwin,可能會讓BSD用戶比Linux還多吧。

BTW,FreeBSD上有JDK 1.6的ports了,但還是beta版,不建議在production上使用。

星期二, 9月 25, 2007

懷念的訊息

在下第一個看到的病毒訊息就是:Your PC is now Stoned!

沒想到居然還能感染Vista,請看大批 Windows Vista電腦遭到十三年前的老病毒感染 Vista attacked by 13-year-old virus

其實這個病毒在軟碟感染Boot Sector,在硬碟感染MBR,所以應該是用軟碟或光碟開機,再下fdisk /mbr可以解除。記得中毒後無法用硬碟開機,接成第二顆硬碟清除應該也行。

星期一, 9月 24, 2007

宅男大忌

看到換不換?完美女人?完美男人?你們公司的程式設計師穿著Level Up了嗎?忍不住就低頭看自己的脫鞋...

我是不是該把Java T恤給丟了?(我有一黑一白咧~)還有從大學穿到現在的牛仔褲,雖然現在還穿得下,但現在似乎不流行高腰牛仔褲了。幸好工作好幾年,我的豪邁仍然堅挺至今,後照鏡壞了有換,也有定期換零件。

這兩篇真是給宅男的震撼彈呀!我沒有獨孤木那麼猛,穿涼鞋加襪子;但也是穿著拖鞋和平口短褲去誠品看免錢電腦雜誌...昨天看到HBO The Break Up 同床異夢,結論也是男人遷就正妹,看來宅男要把正妹,得成為自己不想做的人。

星期六, 9月 22, 2007

故技重施

破解中華電、批踢踢~駭客竊千萬個資 林志玲也受害!
天才駭客蘇柏榕 替黑幫盜資料
交通大學一名數學系學生的宿舍竟藏放著伺服器主機
(略)...
蘇嫌在這段期間,又連續入侵中華電信公司、批踢踢實業坊、卡提諾論壇、EZ PEER、PC HOME、GOOGLE、無名小站、艾噹諾學院、雅虎及桃園縣部分國中學籍資料庫,其中中華電信公司用戶帳戶及密碼有兩百四十多萬筆遭竊、批踢踢實業坊則超過五十萬筆,部分網站則連程式都被搬走。
以前的舊聞:
神鬼交鋒台灣版╱駭客變戰警 助警抓駭客 駭客戰警 低調現身
曾入侵總統府網站 愚人節搞怪 19歲駭客鬼才蘇柏榕 警局打工

看到連Google都被入侵,實在很懷疑,真的有這麼強嗎?PTT的大大或中華電信的廖大等有人要出來說一下內情嗎?

星期五, 9月 21, 2007

身為Programmer & IT人的下場!!

標題是同事貼在MSN上的個人訊息原封不動轉貼。

今天看到同事MSN的訊息很怪,就和他聊一下,為節省版面,稍做刪除:
Nathon(不是fly man Nathan Petrelli)說:
昨天我一個15吋CRT螢幕請人回收
還有3顆HD 500MB跟1G
螢幕好像100 最後給我155
不曉得回收商的利潤如何
反正他都拿回去修理
還有到府收貨
晚上10點
9點打,10點到
還有數10片光碟

那個人年紀約莫50出頭
頭髮白、講話慢條斯理
穿內衣 開一台很舊的車

臉上鬍渣沒刮
嘴上叼根煙 微微顫抖

我跟他聊
他說我那幾片光碟片很棒
Nathan 說 (上午 10:50):
他把皮夾給我看
我靠
@#$%
皮夾滿是認證
有MCSD、CISCO、MSCE....

[鳥毅] 說:
真是shit
那我們考屁呀

Nathan 說:
不知道有沒有SCJP
就不知道了
我臉上三條線
我問他
他說他是programmer
可是年紀大了 被炒魷魚
我靠

[鳥毅] 說:
靠 慘

Nathan 說:
有這麼多認證還是敵不過現實的殘酷
我只有一個感想
ㄇㄉ,下場真慘
他說他之前還有學過VS2003 但VS2005還沒學過
認證應該都有update過吧 所以,有認證還是沒用

[鳥毅] 說:
這真的很誇張 VS2003 還在用耶

Nathan 說:
人真的不能貌相
IT人一生追求的到底是什麼
真是發人省思ㄚ
我是沒有Nathan那麼悲觀,這位老友搞不好是像鳥毅一樣黑,得罪主管黑上加黑才被趕走。不過沒興趣的人還是別幹寫程式這行,年紀大一直學新知真的很累。

代友找工作

一位朋友做SA/SD,具有八年IT產業經驗,希望換工作。

性別:男。
年紀:和獨孤木差不多。
熟Java平台,豐富專案開發經驗,擅長Domain為銀行金融類。
熟悉 OOP/OOD、UML,有CMMI導入經驗。

若您有此方面人力需求或知道有的,煩請留言,謝謝。

Update:由於他的薪資頗高,透過在下的Blog可能找不到好工作,故不再置頂,若有不錯的工作機會(最好是主管職)也歡迎提供。(如果有需要同時能handle多種OS,那在下很適合:P)

星期四, 9月 20, 2007

盜版行為不可取

本月份某本以DIY為主題的電腦雜誌,居然堂而皇之的教Vista的破解,在雜誌上公布各種破解方式與連結。更有甚之,還說有人在光華商場拿手機或相機拍展示機的序號。

有這種時間去找盜版,不如花時間寫Ubuntu教學會更好吧?裝Windows沒什麼DIY的感覺,要高難度就教從Source編譯Pidgin+OTR或是自己編譯jdk吧!

這本雜誌之前介紹遊樂器改機被piggy老大罵,改機是個人行為並不違法也還好,但現在誇張到教盜版?微軟要告他我也不意外呀!

星期日, 9月 16, 2007

遊戲外掛

最近假日都在陪打電動,而且我的等級在一票人裏是最低的,就會想看看有沒有便捷的方法練功。

最近陪玩楓之谷看到不少人在吸怪,猜想是修改記憶體,於是就去找一下相關資料。目前找到有兩類型外掛:記憶體修改與鍵盤模擬。

記憶體修改是從國外的引擎改出來的,像是MoonLight Engine、Vicious Engine,因此有所謂的無敵模式、不用喝水等。這很像台灣以前的FPE,可看到這些程式都有kernel loader與system call loader,相信寫作難度也相對較高。

鍵盤模擬就是按鍵精靈、楓之谷達人等。楓之谷達人是針對楓之谷寫的外掛,因此具有許多偵測功能,自動補血、遇人來即斷線等等。此類程式都會搭配螢幕擷取功能(或該說是螢幕偵測?),就是偵測螢幕上某點的顏色變化,才可以具備自動補血等功能。

楓之谷採用的GameGuard應該也是切入kernel mode,猜想外掛應該會隱藏Process,讓GameGuard不知道外掛的存在,或是根本假裝已載入GameGuard,直接執行game的主程式。(或者是GameGuard的黑名單其實很少,是我想太多了?)

若我是遊戲廠商,就不用想那麼多,學學人家暗黑online吧!一天升太多級或封包顯示不正常就直接鎖帳號。楓之谷50級以上就算買加倍卡加上24小時爆肝練,也不可能升3級,一天升5級以上就可以全鎖,大部份代客練功都是一天升十級。還有吸怪的處理也可以用邏輯判斷等等,所以可以說楓之谷是代理商沒有認真抓外掛。楓之谷達人這種自動練功機才是比較不容易抓的外掛,不知道代客練功商有沒有自行研發外掛。

我對Kernel mode完全不瞭解,搞防毒/資安那些朋友應該很熟。在外掛這篇就寫過,我連按鍵精靈都寫不出來,所以只能點到為止。

以上純屬個人猜測與研究,我並沒有使用這些外掛,程式名稱來自楓谷飛狐の外掛測試日記楓之谷外掛,楓之谷外掛下載。很多外掛都有未知的後門,所以我下載後也都沒有執行,帳號被盜不要罵我呀!再次強調,玩遊戲使用外掛影響遊戲的公平性,很多遊戲都是機器在玩(例如RO),亂online沒幾個月就被外掛佔據,這種遊戲一點樂趣都沒有了。基本上,免費外掛絕對都會帶著木馬,例如這裏。使用國外論壇引擎的也沒有比較好,掃不到只是因為沒有人回報。

參考:
線上遊戲-外掛程式如何盜你帳密資料?
線上遊戲—外掛入侵木馬盜帳號,禍害起因皆緣於台幣交易

星期六, 9月 15, 2007

Flash 還會活蠻久的

剛才去看Heroes的介紹,發現NBC用Flash呈現主頁內容,效果非常好,也不像某些台灣網站只為了炫在首頁放一大塊Flash,或是過度使用Flash(像這個,很炫但我都找不到要連的頁面)。

雖然Silverlight將成為Flash的對手,在短期內不可能有多大的市佔率。在此大膽預言,Flash 還會活蠻久的。

星期五, 9月 14, 2007

不是普通人

華岡之狼假釋案惹爭議 法部:將加強電子監控
華岡狼第8度聲請假釋 獲准
華岡之狼曾性侵逾40人
無法控制性衝動 華岡之狼令人聞之色變 <-- 這是舊聞

如果說台灣要有人能與人魔比美,大概就是他了。

記得當年他落網後有則新聞報導:華岡之狼為了不讓自己犯案先跑十圈操場,犯案後為了消除罪惡感再跑十圈。後來又看到他智商160,只能說他不是普通人呀!
或許人類無法承受腦部活動太劇烈,因而發生無法控制的情緒?性侵犯的再犯率也是很高,尤其是這種生理引起,電子監控真的有用嗎?懷疑呀...

星期三, 9月 12, 2007

近況報告

最近很忙,假日都在陪打電動,所以疏於照顧Blog,也少了很多上網衝浪的時間,接收新知速度慢很多,隔好幾天才能偷偷上一下豬哥網看正妹。(這也是公司沒有隔板的缺點...)

很久之前在閒聊:PageRank的分數隨便寫,居然也有回應,誤會幾位老大的Blog都已修正,順便在此向各位老大道歉。剛才發現這篇居然在Blogger的Blog搜尋beta找不到,可能是因為我更換domain name後,它的index未更新,不過用Google搜尋則沒問題,看來得把Blog上的搜尋本站按鈕換一下。

由於某些奇怪的原因,在下公司的電腦用了六年多尚未更新,一氣之下把四年前買的NB帶到公司用。原本用隨機的XP連遠端桌面,但覺得有一點慢,應該是我灌太多軟體把機碼撐肥。上星期突然有天不知道吃錯什麼藥,灌Ubuntu 7.04當做預設的OS,沒想到效果奇佳。rdesktop居然比xp的遠端桌面還快,而且有VirtualBox Seamless的加持,終於可以無痛看公司首頁,也不用擔心IEs4Linux無法安裝ActiveX。雖然這台SIS Chip的磐石牌NB無法使用桌面特效,跑glxinfo會讓X crash,但基本上換上華康中黑體+OSX Theme後,對這樣的桌面相當滿意。

若要挑剔,應該就是某些我常用的東西不夠新,還是Gaim而不是Pidgin,Eclipse/NetBeans都是前一版。幸好開發工具都能直接下載,Pidgin雖然有deb可以抓,但為了OTR,我還是耐著性子抓source下來編譯,Pidgin做得很好,裝好後選單都加進去,圖示不知為何沒出來,我去抓這個原廠圖示。

前幾天淫光 銀光 SilverLight 1.0正式版推出,趕上Tech‧Ed 2007,吾輩宅男又要開始無盡的學習地獄。幸好SilverLight 1.1和1.0大不同,在下這次就偷懶,等1.1以後再說了... (連蔡學鏞都說應該是FLASH RIA > SilverLight > JavaFX,就讓我休息一陣子吧)

星期一, 9月 10, 2007

讓Ubuntu可以解rar

很意外地,Ubuntu 7.04居然沒有內建unrar,找了一下才知道要用WinRAR提供的程式 下載
RAR 3.71 for Linux
$tar xzf rarlinux-3.7.1.tar.gz
$cd rar
$sudo make
最新的3.71版已經改成安裝到/usr/local/bin,若希望裝到/usr/bin可以手動複製到/usr/bin。
$tar xzf rarlinux-3.7.1.tar.gz
$cd rar
$sudo cp rar /usr/bin
$sudo cp unrar /usr/bin
$sudo cp default.sfx /usr/lib
之後在檔案瀏覽器就可以直接看或解rar檔。

Update:Ubuntu 7.10的multiverse套件裏有rar,亦可用PCMan開發的LazyBuntu

星期五, 9月 07, 2007

到底是誰的錯?

今天有使用者反應連不上鐵路局時刻表,連過去確實很慢,所以才會timeout。

剛才看到地震再斷海纜 中華電信緊急備援恢復網路服務,想看看ijliao會不會寫什麼內幕,結果連不上去 :P

今天早上到底是中華電信和GSN連結被震斷了,還是鐵路局撐不住呢?

星期三, 9月 05, 2007

Sun ODF Plugin for Microsoft Office

大家都知道,OpenXML/ODF Translator Add-ins for Office實在是個笑話,自己匯出的東西讀進來就爛了。今天無意中看到
Sun ODF Plugin 1.0 for Microsoft Office,試用了一下至少匯出後匯入大致上都正常,效果和OpenOffice 2.2差不多,是否有共用一些程式碼?

  目前用Office 2003測試還可以,Office 2007似乎不相容,匯出沒問題,但讀進來時會誤認為Office XML。問我需不需要裝?嗯...裝一套OpenOffice會比較有用,但電腦快的人裝裝也無妨。

星期二, 9月 04, 2007

用VBA刪除Word裏的巨集(Macro、宏)

VBA是Visual Basic for Applications,和Visual Basic 6並不是同個東西。
在下敝人小弟我遇到某些Word檔裏有AutoClose的巨集,而且內容不正確,可能是刪除病毒留下來的?OfficeScan並不把它視為病毒,但ClamAV、Nod32等均視為病毒直接刪除整個檔案,造成user困擾,而且AutoClose巨集會造成自動感染Normal.dot(Word 97)。

本來想用Apache POI處理,但沒找到VBE相關的東西,只好以夷制夷,呼叫Word自己來刪Macro。由於我並沒有裝VSTO套件,所以也沒有試用.net存取Word的方式,直接用長得很像的VB6。在下手上沒有VBA的書,照著網路上的範例在Word的VB編輯器可以,但試半天用VB6呼叫都沒有成功。隔天敝公司的VB超人出差回來,他告訴我兩個key point:
  1. Word必須信任存取 Visual Basic 專案
  2. 要引用Microsoft Visual Basic for Application Extensibility
我只注意到要引用Word Object Library,忽略了VBE引擎,所以才會一直無法使用VBE。

請在VB6專案引用Microsoft Word 11.0 Object Library (這是Word 2003,從8.0~12.0應該都可以,看Client的Word,所以這個程式還和Word綁在一起)及Microsoft Visual Basic for Application Extensibility 5.3 (同樣和Word綑綁,Word 97的VBE無版號),我再加上了Microsoft Scripting Runtime以提供FileSystemObject。

開檔的部份就不寫了,以下是刪除巨集的subroutine:Public Sub EraseWordMacro(wdApp As Word.Application)
Dim wdDoc As Word.Document
Set wdDoc = wdApp.ActiveDocument
Dim j As Integer
Dim i As Integer
Dim nLines As Integer
Dim oVBComp As VBIDE.VBComponent
Dim codeofline As String
Dim nProjects As Integer
nProjects = wdDoc.VBProject.Collection.Count
For j = 1 To nProjects

Dim n As Integer
Dim str As String
If wdDoc.VBProject.Collection.Item(j).Protection = False Then
Dim kkk As VBIDE.VBComponent
For Each kkk In wdDoc.VBProject.Collection.Item(j).VBComponents
kkk.CodeModule.DeleteLines 1, kkk.CodeModule.CountOfLines
Next
End If
Next j
End Sub
這支程式主要是先找出Storage上所有doc檔,循序開啟刪除巨集,我設定是掃所有project,因此若Normal.dot有巨集也會刪除,若只想刪開啟的word檔上的巨集,就只要處理wdDoc.VBProject.Collection.Item(1)。建議用Word 2003,把安全性設為高以避免感染Normal.dot。在測試Word 2007時會顯示不提供版本功能,所以不建議使用,以免誤砍user資料。

Protection屬性在用Word 97時會遇到,如ETKeys。

參考:以程式設計方式存取 Office VBA 專案遭到拒絕
判斷巨集是否存在
如何用VBA語句刪除工作表的類模塊或其中的宏
HOW TO:使用 FileSystemObject 遞迴搜尋目錄

星期六, 9月 01, 2007

管理是最重要的事

孟岩在通過一個真實故事理解SOA監管,透過故事告訴我們:SOA監管對SOA來說,不是可選的,而是必須的,甚至是決定SOA實施成敗的關鍵。

其實不管任何系統,電腦化(俗稱e化?)或非電腦化,管理都是最重要的事。我在快速開發的雙面劍就是舉自己的例子表達此觀念。

雖然我修管理學是通識科目混學分的,但工作後實實在在的吃過幾次虧,更覺得管理在許多方面都是決定成敗的因素,程式開發亦然。A系統與B系統相關,在B系統開發人員不知道A系統情況下,要如何能修改B系統而不影響A系統?身為管理階層的你,得好好想一想。