Sunday, August 13, 2006

惡魔的誘惑

剛剛在整理電腦, 偶然看到了以前的一些文章, 很有意思
在那個時候並無法了解一些內容的意義, 現在看到再對照到這些年來的所作所為
覺得很有意思, 也看到了自己的成長(?)的過程

有篇文章是這樣的, 講到UNIX的老爸之一Ken Thompson (印象中也是C的老爸之一)
在ACM Turing Award中提到寫軟體的人常會面臨的誘惑之一, 就是在系統中留後門
(惡意的稱為特洛伊木馬, 可愛一點的說法叫復活節彩蛋)
在他的例子中是提到在作業系統中放的後門, 尤其是open source的狀況下如何留後門
方法是在compiler裡頭放木馬, 所以從作業系統的source code中看不到異狀
compiler的source code當然也會公開, 所以只有第一版的compiler會有影響
但是當第一版的compiler在compile新的compiler時還是會自動把木馬加進去
所以不管怎樣, compile出來的不管是compiler或是系統都會有後門
(雖然這件事是真的, 這個木馬最後是沒有流出去啦, 因為被逮到了XD)

想到自己似乎也常在幹這種事, 但是我心思細密的程度並沒那麼K大師那麼結構嚴謹而邏輯化
我頂多是在影片中加上一些別人看不出來的用語, 然後自己看到的時候都會很high
例如跟to哥他們合作在2050 project中放的"法諾康鐺"歌劇團
因為計畫後期在趕demo的時候地下室會不斷迴響著final countdown這首歌, 聽到快吐了
還有就是我常在程式碼裡加密技, 因為我的東西多半不是open source, 所以比較肆無忌憚XD
比如我在查詢系統裡面放了特殊指令, 只要一執行就會進行全資料庫的update而對台鐵網站送出每秒兩千次的request, 很傷所以我也不敢對使用者開放
或是在遊戲裡加了暗號, 一執行就會把圖檔全部換掉(由射擊遊戲直接變成十八禁), 因為是引擎執行的, 圖片來自外部的壓縮檔, 所以為了避開公司QA的追查, 我把圖檔加密後塞在執行檔屁股後面, 引擎(我寫的ㄇㄟ)在接收到暗號後會自動去解圖檔來執行

類似的東西很多啊, 不過後來常用PHP寫東西以後就比較少搞這些了
很多人喜歡追查畫裡隱藏的秘密(例如像達文西密碼那種), 其實只要是創作者永遠都會面臨這種惡魔的誘惑, 老是想把一些永遠屬於自己的秘密隱藏在作品裡

不過到底是為了什麼呢?..或許只是為了想證明自己活過吧....

Wednesday, August 09, 2006

一些ubuntu的customized note

1. 讓光碟機可讀中文字
sudo gedit /etc/fstab
/dev/hdd /media/cdrom0 udf,iso9660 iocharset=utf8,ro,user,noauto 0 0

2. 啟動輸入法
vi .gnomerc
輸入:
XMODIFIERS="@im=SCIM"
export XMODIFIERS
GTK_IM_MODULE="xim"
export GTK_IM_MODULE
scim -d
存檔

3. 啟動SMP (都要裝, 不然會怪怪的, ex: keyboard動不了)
linux-image-2.x-686
linux-image-686
linux-686-smp
linux-restricted-modules-686

Friday, August 04, 2006

Recent image based researches

Microsoft Live Labs - Photosynth
Reconstructing 3D scenes from many photos via computer vision algorithms
http://labs.live.com/photosynth/

CMU - Automatic Photo Pop-up
Reconstructing 3D scenes from “one” photo via object geometry recognition
http://www.cs.cmu.edu/~dhoiem/projects/popup/index.html
D. Hoiem, A.A. Efros, and M. Hebert, “Automatic Photo Pop-up”, ACM SIGGRAPH 2005

Thursday, August 03, 2006

懷念(?)的Action Script

昨天測的Flash Lite, 骨子裡的引擎是來自於Flash 4, 害我想起小時候玩Flash3時那句鬼打牆似的tellTarget, tellTarget, tellTarget
tellTarget(”我爸”) {
別再打我媽()
}
這句咒語到了Flash5就朝著OO的方向進化成”我爸.別再打我媽();”了
想不到事隔多年這句咒語又出現在我眼前….Orz

Flash Lite速速退散~~!

Monday, July 31, 2006

有沒有這麼混啊

最近看到一個遊戲 [華夏世界], 一看就想翻桌

名字取得像(中英文都是)也就算了, Logo會不會抄得太誇張
遊戲內容想必也是大雜抄

去~沒創意的爛公司! 祈求你早日倒閉!

Friday, July 28, 2006

新行業: 網路乞丐

最近看到一些怪現象..透過網路無遠弗屆的力量
號召網友捐錢給自己買新電腦....
手法各式各樣, 有破壞iPod的smashmyipod.com, 有炸掉G4的helpmegetag5.com, 有模擬OSX介面的ifizzle
我是不知道這樣該不該算是有創意啦..
畢竟提供網友娛樂然後藉此賺錢還算得上是一種服務業

只是對照到昨天我的失態故事
昨天有個老外拿個台幣五十塊來想跟我換零錢搭公車, 不過我身上只有三個十元硬幣
他說沒關係, 他願意換, 當是我幫他解圍, 結果我想說那乾脆就給你就好啦,
話一出口我警覺不對但來不及了, 他猛搖頭說不可以收我的錢然後就快速走掉了,
我看得出來他翻臉了
我是深深地為自己的客氣導致的失禮感到很不好意思, 一個嚴重失敗的國民外交

與這些網路新丐相比, 我真的覺得昨天那位先生高貴到讓我想90度鞠躬啊

Tuesday, July 04, 2006

軟體的商業化

前陣子有同學來學校看我們的相框了, 不過大概可以想見的是他的評價並不高, 我也是覺得還有修正的空間, 但同時我也認為我得到的意見是來自於一位專業設計者的, 我想我還需要其他以單純消費者或是使用者的觀點來給予的意見

他給的意見暫且按下, 但席間有談到軟體商業化的問題, 他有提到"這樣的東西的關鍵技術是運用Flash以及Media Server, 所以離上市還有一段距離,至少要能夠自己弄出streaming的server才有商業化或產品化的可能"
我想他的意思就是要去Flash化, 要單純自己coding, 用更低階的手法製作的軟體系統才有商業化的可能, 當時我只回了他一句話 "rtmp是設計得夠好的protocol了, 可以直接用了", 其實我的意思是 "Flash powered的軟體為何不行?"
用Media server架的伺服器就不能商業化嗎?所以一定得要自己設計streaming protocol? 就算採用了其他免費的streaming server (如sushi, oregano或是red5), 還是都是用了別人(or公司設計的軟體), 所以就不能商業化了嗎? 一定要自己弄的stream, 自己用C畫的視覺效果才可以?

其實他陷入了系統概念上的迷思, 事實上就算去Flash化, 那作業系統呢?要不要去作業系統化? 甚至要不要去晶片化? 因為你用了別人設計的晶片, 不論你用的是ARM, PIC, BS2或是Intel Celeron M, 如果一切都要自己設計的手工的才能夠拿來賣, 那人類的科技文明應該會一直在拼湊各種邏輯閘, 而不會有當下各種高階應用的可能性
看看Adobe對自己產品的定位, Adobe並未設定Media server為禁止商業應用, Adobe當然夠精, 他要大家用他們的技術, 頂多是禁止做hosting, 讓各個商業應用的產品都必須購買一份server
事實上, 數位系統發展至今, 進步速度會這麼的快, 一大部分我認為可以歸功於層層疊疊的依賴, 從硬體, 韌體, 系統, 軟體等等一層一層堆疊上來的, 上層的總是依賴下層的, 各自著力於發展各自的層級
把對C或對作業系統的依賴視為理所當然, 而把對Flash或是Media server的依賴視為類似遭到綁架的想法是很奇怪的

對於較高階產品的依賴不代表從此以後的設計者就是什麼都不用做, 只是表示原本可能花在設計串流協定的大量時間可以運用來設計更大量的高階互動, 而這些高階互動的組構與搭配, 就有可能形成市場的需求, 也就表示具備產品化的潛力
當然因為對於高階產品的依賴度越高, 會造成技術門檻下降, 也表示被複製的可能性越高, 在這樣的情形下則可以採用兩種方式加以保護
1. 專利申請及智財權宣告
2. 在高階技術上再加入技術門檻(整合 or 最佳化)

我總以為老是想要自己造輪子甚至會瞧不起使用library的人一直是唸資訊的人的通病
原來只要程式寫久了都會變成這樣XD

Sunday, June 11, 2006

線上遊戲申請得到專利?

剛剛看到這個新聞真是臉都扭曲了....

線上遊戲的概念從MUD而來, 二十年來沒有人想要把這種概念佔為己有
因為那是這麼多年來眾人智慧的結晶, 不是你們急嗯力或嗯希軟公司自己的研發成果

果然只有夠賤的韓國人加上夠蠢的台灣智財權機關才會搞出這種東西
說這種東西是你家公司的專利, 要不乾脆說地球是你媽捏出來的好了

垃圾公司!

Wednesday, October 26, 2005

我的程式之路

今天去了圖書館找書..偶然看到了clipper的書
猛然想起clipper是我與程式的起點..
回憶起這條好像有點漫長又不太漫長的與程式的緣分

本來自己就不是喜歡按規矩做事的人..
學程式的路上也是一樣..每次總是寫跟別人不一樣的東西..
很多經驗都是從這些另類的方式上學到的..
寫程式對我而言就跟設計一樣..沒有創意就都別玩了

高中時..工藝課莫名奇妙的學了dbase + clipper寫資料庫
結果那時候全班都是寫班級聯絡簿..只是功能完整度的差異
我則用資料庫寫了一個算命程式..用出生年月日作計算跟查詢
老師改作業的時候一句comment都沒辦法下..
所以我那值得紀念的初體驗..就獻給算命程式啦

接著學ETBasic..同學們寫著使用者輸入個人資料然後給回應
我則寫了一個文字模式的快打旋風..可以選角色..有招式..可以對打..還是中文版呢
我到現在還記得寫出來可以玩的時候的興奮感!
也受到這個遊戲的影響..我開始想學QuickBasic
因為QuickBasic可以進VGA mode..雖然當時只有ETBasic可以有中文
學QuickBasic學到一半..看到了當年的一款遊戲[三國演義]..超驚艷
多方打聽之下才知道那款遊戲是用C寫出來的
激起了想學C的念頭..但是當時那種玩票心態加上迷上打籃球就沒學成功

迷上了籃球後我放棄了程式好幾年..從高二開始打籃球打到大一
一直到了遇上電物系的徐琅老師..他帶著我們玩自動控制
我接觸到了LabView..發現用電腦控制環境的奧妙..
但是當時有很多功能沒有..所以要用C寫外掛
我重拾了程式..這一迷..就停不下來了
也讓我有了好好學寫程式的想法
所以整個電物後來的兩年..我都在學程式寫程式..

後來決定重考資科..選資科原因只是因為我焊電路板焊膩了..
我決定要走純軟體的路線..所以放棄所有資工系
目標就是交大資科跟政大資科..
(雖然後來進來唸了以後才知道差異不大..還是得修數位電路Orz)
重考的時候為了躲兵役..去參加了職業訓練班..
那時候教的就是AutoCAD R12..(其實本來想參加調酒訓練班的)
課程前半畫模具那邊也是我學CAD的第一次..
後半教AutoLISP..我真是樂翻了..想不到在職訓班也可以寫程式
然後班上的同學都在寫一些指令自動化的程式
我是用AutoLISP寫了一個射擊遊戲....哈哈哈
有計分..還可以換武器(有雷射..還有大管的加農砲)..可以玩的很high
唯一缺點就是只能在AutoCAD底下跑..
這我超得意的..老師看到的時候真的傻眼..那個表情讓我印象很深刻
他也是不知道怎麼給我意見..
這同時也是我第一次寫出來的視覺化程式..

進資科後由於高中時打的基礎以Basic最熟..加上當時剛好出了VisualBasic
可以很快速拉出介面..對於視覺化的我而言真是再適合也不過了
所以我暫時放下C..專心寫VB..也開始接很多案子
第一個程式就是鴻友的一個面板模擬程式..也是第一次跟工設的人合作..很快樂..也學到很多設計上的議題
後來進了家超小遊戲公司寫遊戲..代理發行的華彩底下有間工作室的工程師負責審我寫的遊戲
他不相信我是用VB寫的..因為當年的VB最常被罵的就是速度慢
(跑虛擬機器ㄇㄟ..沒辦法..)
我用VB寫的程式比許多人用C寫的速度還快..當然優良效率是得歸功於設計良好的演算法跟資料結構
(從那之後我就相信..程式只是工具..設計師的知識跟組織能力才是關鍵)

期間因為課程需要學了Java....可是我實在沒辦法喜歡這個東西
雖然他設計精良..結構比起C++為人稱道的STL更為漂亮
但是我就是跟Java相性不合..我也不知道為啥
後來寫到用RMI寫出一個線上的算命程式(又是算命程式!?)就不想玩了..
(雖然後來不得已還是得玩J2ME..但是我始終不怎麼喜歡Java)

我VB玩了很久..一直到後來開始寫影像程式..終於遇到了瓶頸
因為VB不能操作指標..陣列的處理本就慢..原本虛擬機器造成的低效率對寫影像是相當吃虧
所以我得考慮其他的環境..必須是原生碼的..語言倒是不重要

第一個挑上的是Delphi..原因只是因為她跟VB很像..拉介面輕鬆
學了Pascal....不過Pascal很龜毛..實在不是我的style
很乾脆的換了同一家公司的C++Builder..然後就定下來了..
回到C的懷抱後第一次寫出來的程式..是幫同學寫一個碩士班考試的倒數計時器....應該有幫上一點提醒的忙吧..哈哈

中間也因為案子的需求學了ASP, PHP跟Perl
perl我倒是沒學的很好..頂多改改東西
ASP是當年NOVA裡一家黑心電腦店要做線上交易的平台
於是就學起來了..但是我討厭ASP+IIS的彈性跟擴充性不佳..也懶得寫ISAPI
所以後來改玩PHP..PHP我倒是學的很不錯..到現在都還在用

Flash裡的ActionScript倒是個程式的特例..actionscript是學javascript的語法
Flash很好學..加上視覺化的介面..是我極喜愛的程式環境
只是我有時會找不到程式碼寫在哪裡..這應該是唯一的困擾..哈哈哈哈

至於組語..我也只有為了讓CPU一次開四個pipeline幫我算點學了一下而已
一切還是為了處理影像的速度啊..

中間學過的script類型更是不計其數了..
從clipper,Basic,C,pascal,ASP,PHP,actionscript..一路這樣玩過來
慢慢地..我開始有種可以看到核心的感覺
看得到一切的核心就是邏輯思考..或者說本質也可以
程式也不過就是外殼的包裝而已..只是思考模型的一種具現化
而我也在其中慢慢能夠體會所謂的"機能美","結構美"
與視覺設計最大的差異..就在程式設計的結果都是相同的..甚至是可預測的
只有過程才是展現美的地方..雖然這些過程是由最單純的機械或是電路單元來執行的..

指揮這些由單純單元構成的複雜結構需要的知識更是遠超過所謂程式語言的範圍
學會了C或甚至組語不代表寫得出任何程式..語言總是會回到語言的範疇
真正的problem solving..是跟語言無關的邏輯組織法則以及對問題對象物的真正了解

對我而言..程式是一種藝術..經過精心設計的產物本就是一種藝術
看到精妙程式的感動絲毫不下於看到好電影看到一幅深入我心的畫或是聽到感動落淚渾身發麻的歌曲
但真正令我感動的..是隱藏在程式碼背後設計者的思路與詮釋問題的過程
那個思緒會直透我心..直接浸淫在設計者的設計中..甚至可能改變我的想法或我的設計
這種強烈的意念..反映出來的就是設計者的靈魂!
我寫的程式也同樣灌入了強烈的意念與靈魂

很單純地這樣靈魂的交流感動..就是程式令我迷戀的原因
(不過看到會痛苦的程式碼也是會有的..致傑的程式我到現在還是沒辦法習慣啊..雖然那實在很有個人風格..Orz)

Tuesday, October 18, 2005

耶耶..BCB終於出新版了

從6之後就一直沒看過borland在動....
之前在BDN上還放話說不會再出C++Builder了..
然後看到Delphi2006整進了C#....就想說大概沒望了
結果還是出了..耶耶耶耶..歡呼

看到BCB2006大概比看到Vista還讓我興奮好幾倍吧
BCB讚啦