2007年12月31日 星期一

各位鄉親,別再問我相同的問題了

名古屋這邊也是相同的情形,請別再問了。

2007年11月1日 星期四

Attansic L1 in Debian

Attansic L1 Gigabit Ethernet driver for Linux v1.0.41.0(也就是華碩主機版隨機光碟片中所附帶者),這個版本有些問題。典型的症狀是下載可以達到全速,但上傳的時候卻會完全堵住。在Linux 2.6.18 x86_64(Debian 4.0r0 Etch)的實測中,確認有此一問題。

遇到此問題,可以到 http://sourceforge.net/projects/atl1 下載新的驅動程式,重新編譯、安裝後即可排除此一問題。

但要注意的是,2.x 版驅動程式需搭配 2.6.19 以上的 kernel ,所以Etch可能要用到 unstable 版的 kernel。我測試過 2.6.22-4 + Atl1 v2.0.7 工作正常。

不喜歡 unstable 版者必須使用 1.x 版的驅動程式。舊版的驅動程式放在,http://www.hogchain.net/attansic/attansic.html。在下測試過 2.6.18-5(aka. dfsg.1-13etch4) + Atl1 v1.2.40.2 工作正常。

比較奇怪的是,在使用 amd64 kernel 環境下編譯 Atl1 v1.2.40.2,於 make 時會出現錯誤訊息,"code model ‘kernel’ not supported in the 32 bit mode"。因為我實在懶得去trace哪邊出了問題,所以就乾脆硬上。方法就是用linux32(apt-get install linux32)作為前導蒙混過去就可以了(測試結果當然是OK!)。

簡單來說,就是
# wget 'ftp://hogchain.net/pub/linux/attansic/vendor_driver/l1-linux-v1.2.40.2.tar.gz'
# tar zxf l1-linux-v1.2.40.2.tar.gz
# cd l1-linux-v1.2.40.2/src
# sudo linux32 make install
就可以收工了。

2007年10月31日 星期三

不公平的世界

稍微整理了一下堆積零食的廚櫃--
這真是個不公平的世界的世界,不受歡迎的過了一年還放在這裡積灰塵,受歡迎的隔天就銷售一空,現實就是這麼殘忍。

至於我--
決定了這些冷門傢伙的未來。往後,只要有人來家中拜訪,就努力把他們銷出去;現在,我還是拿起我的最愛,遠離這個道盡事間不公的零食堆吧。

2007年10月26日 星期五

GMail IMAP

Official Gmail Blog: Sync your inbox across devices with free IMAP: "post"

真是「千呼萬喚始出來」,有了這個功能之後的Gmail,愈加地是個神兵利器了,現在就算不裝Gspace, GmailFS等外掛,用單純的mail client(Thunderbird, Mutt, Outlook等)也可以對於這個隨處可存取的4G空間,進行folder式的管理了。

不過「猶抱琵琶半遮面」的是,繁體中文的介面似乎還無法依照網頁上的啟動方法設定IMAP,請暫時將語言切換成美式英文,才可以看到這個選項。不過想來這應該不是什麼困難的問題,可以想見不久之後,繁體中文介面也會直接提供這個選項。

2007年10月1日 星期一

新增Google Reader分享

放在右邊,眼尖的人應該已經發現了。大致上可以看的出來我在看的大多是一些科技新聞....。

2007年9月20日 星期四

咳嗽

這幾天老是咳~咳~咳~,好不容易熬過了最嚴重的幾天,真的感覺快死╭( ̄m ̄*)╮,但現在卻成了不上不下的局面:既不是掛病號也不是痊癒。現在只要安安靜靜地好好工作,惱人的咳嗽就會止住,然而想開口和人交談,聲音還沒發出來,咳~咳~咳~就先衝出來報到。哀~~~~~~

季節交替之際,各位也請保重身體。

2007年9月5日 星期三

微軟機關算盡,仍難如意(Open XML)

Taiwan.CNET.com : 企業應用 : 主題中心 : 微軟在Open XML標準表決中跌跤

微軟為將其發展之OOXML推上國際標準的寶座,可說是無所不用其極,甚至連銀彈土石流這種擺明被唾棄的招式都使的出來,可見其用心。

但對於微軟而言,結果似乎不是那麼如意,於稍早ISO的表決過程中,OOXML格式雖獲得已投票中74%的支持,但未獲得規章所訂全體會員2/3支持,結果仍是闖關失敗。因此此一標準化程序將陷入冗長的草案修改與爭辯過程,微軟必須盡力爭取未表態的18個會員的支持,以期在明年二月的第二輪投票中獲得支持。

但要獲得這些未表態會員國的支持,其Open XML草案勢必要經過相當幅度的修改,反對此草案者也可趁此機會大砍特砍,將其中夾帶的專利、含糊定義與非標準技術一一拔除。

如此一來等於是通過一個全新的標準,微軟和他的競爭者同樣都要修改其產品才能符合此標準,但耗費金錢、時間將其推上國際標準,卻僅得這樣的微薄的利益。微軟是否還要繼續燒錢玩下去,或是認份地與ODF共存,我們拭目以待。

2007年9月2日 星期日

死了一個孩子之後 : 都是網路害的? 還是溝通出了問題? « Mr./Ms. Days - �

「 今天1是全國中小學開學第一天,就傳出一名高職新生燒炭自殺的不幸事件。宜蘭縣這名十五歲的高職學生,因為沉迷電腦網路遊戲,又不滿媽媽把電腦鎖碼,不准他再玩網路線上遊戲,竟然燒炭自殺,還留下遺書說他自己很傻。 」PChome新聞

這件事情是網路害的嗎?還是溝通出了問題?我想這個答案是見仁見智,各人各有不同的說法。

但殺死他的既不是網路也不是溝通。對,我說這孩子是被殺的,人若不是被逼上絕路又何必自殺。雖然動手的人是自己,但令他別無選擇只能用自己的手結束自己的生命的又是誰?人要面對死亡已經是不容易了,更何況是親手招來死亡。萬萬不能認同那些浪費時間譴責自殺之人,既有餘力做這樣不知所謂的事情,何不將力量放在問題的癥結上--到底是誰逼死這些自殺者的?

那是誰殺了這孩子--是遊戲業者?是家長?我認為非常明顯,即便業者加註警語,要求玩家強制下線,甚至故意將遊戲做的不好玩,也無濟於事。新的娛樂方式不斷地出現,禁的了網路遊戲,卻不過是替下一代娛樂產業創造利基。但人際間的疏離、家庭功能的喪失與當事人意願的不被尊重,以上種種將人逼上絕路的挫折感,卻不是消滅網路遊戲可以解決的。

是誰殺了孩子,答案相當明顯。身邊的人,只要有任何一位願意伸出援手,給他一條活下去的路,誰會想要尋死。

你身邊也有默默不語躲在陰暗角落的人嗎?請不要再說他是文靜、內向,更不要以自以為光明的方式照耀他,這麼做愛之足以害之。越是所謂文靜、內向的人,越是渴望別人能夠傾聽他的心聲,理解什麼才是他需要的。

--「請付出多一點時間 留住你珍惜的人」

1. 該篇報導日期為2007年8月30日

2007年7月3日 星期二

當GPLv3碰上DRM(二)

繼續上次詳細的解釋。

所謂的「反規避法」(原文作Anti-Circumvention Law),是指禁止未經著作權人許可之人對於「有效的科技保護措施」進行「規避」。以我國著作權法第80-2條第1項而言,其法條規定為「著作權人所採取禁止或限制他人擅自進入著作之防盜拷措施,未經合法授權不得予以破解、破壞或以其他方法規避之」。可明白這邊説的規避包含「破解」、「破壞」,再參照立法理由尚有「解密(decrypt)」、「解波(descramble)」等。再以美國法(對,就是你熟悉的那個DMCA)而言,任何對於科技保護措施所為的「避免(avoid)」、「迴避(bypass)」、「移除(remove)」、「關閉(deactivate)」或「損壞(impair)」皆屬於這邊所説的規避。如果這樣還不清楚的話,日本法提供了另一種觀點,「將科技保護措施所用的訊號,進行除去、改變之類的行為,導致該措施本來防止的行為,變成無法防止。或使該措施本來想要對複製品進行的妨礙(例如加入雜訊),變成不發生妨礙」。

了解所謂的「規避」之後,更想明白的是,什麼叫做「科技保護措施」,這就得從WCTWIPO COPY TREATY談起,WIPO是聯合國下的一個專責組織,專門負責有關於智慧財產權保護之事宜,其中最重要的任務之一即是擬定世界性的著作權保護條約,其成果即為WCT。該條約第11條賦予所有締約國立法義務,必須在其國內法制訂適當的法律保護和有效的法律救濟方式,以對抗規避有效科技措施的行為。但基於國際利益角力,該條約並沒有明確制定何謂科技保護措施,留待諸國各自表述。我國法則是在第3條並稱之為「防盜拷措施」,指著作權人所採取有效禁止或限制他人擅自進入或利用著作之設備、器材、零件、技術或其他科技方法。簡而言之,保護的對象要是「著作」,設定保護的人要是「著作權人」,方法必須是「科技的方法」,限制的行為要和著作的「使用」有關。最後,這個措施要「有效」,這邊説的有效,是指這個科技保護措施在原本的設計上是用以達成上面所説的目的,除非他自始客觀上不能達成效果(指自始設計失誤),不然即便其後被破解,仍為這邊所說的「有效的」。各國對於科技保護措施的定義雖有差異,但台灣的定義基本上還算中規中矩。

要注意的是對於一個「有效的科技保護措施」的保護,除了禁止進行規避之外,用以幫助規避的工具也不允許「流通」(製造、輸入、提供公眾使用或為公眾提供服務)。但許多系統工具本身或多或少都有幫助規避的效果(例如一些raw dump工具就可以用來挖一些廠商不想給你看的資訊),如果把這些工具一律加以禁止,有欠公平。因此各國通常都將規避工具限縮於:(一)主要供破解、破壞或規避之用者,(二)除規避外,其商業用途有限者,以及(三)為供規避之用而行銷者。我國的限縮規定未見於法條之中,而是放在行政命令之中。

因此在過去GPLv2的架構下,如果廠商基於GPL code發展出一套「科技保護措施」程式,此程式在該國法律下被認可為有效的。則於該廠商開始傳送(販賣、出租、公開傳輸等)此保護程式時,你雖然可以基於GPL要求他公開程式碼,但是卻不能對其程式碼進行修改(至少不能使原本被廠商禁止的功能,變成不被禁止),否則可能會觸犯到前述反規避的規定。而且,雖然你可以依照GPL的規定向廠商直接取得原始碼,但是如果你想要對於此原始碼再進行傳送,則可能會觸犯反流通的規定,尤其是當你已經對這個程式碼進行過修改,使原本被禁止的功能變為不禁止時,更是如此。

所以在GPLv2的架構下,產生了保護軟體自由的漏洞,因為廠商並沒有修改程式的授權條件,也確實履行了提供程式碼的義務,但是由於立於契約之外的--「法律」規定,產生了一個可以規避GPL,限制軟體自由的空間。因此,於GPLv3中,嘗試於法律允許的範圍,並於契約可及的範圍內,解決此一問題。

2007年7月2日 星期一

當GPLv3碰上DRM(一)

GPLv3一如預期地加入了所謂的「反反規避條款」,讓我們來看看他到底規定了什麼。

3條:保護使用者的法定權利免於反規避法之威脅

  • 被涵蓋的著作不應被視為任何適用法下,有效的「科技保護措施」之一部分,且該適用法是用以履行1996年12月20日通過之WIPO著作權條約(WCT)中第11條所規定之義務,或其他禁止或限制該措施的規避之類似的法律。
  • 當你傳送被涵蓋的著作時,你便對於基於本授權書關於被涵蓋的著作之實施權利,於影響該權利的範圍內,拋棄任何禁止規避科技保護措施之法律上的主張,且你亦放棄任何藉由限制此著作的操作或修改為方法,以此對抗著作的使用者、強制你或第三人的法定權利至禁止規避科技保護措施之意圖
看不懂是正常的。所以,簡單來説這條到底想表達什麼意思?GPLv3 FAQ如是説:
GPLv3是否禁止DRM?
  • 否,你可以使用在GPLv3下發行的程式碼,作為發展任何你喜歡的DRM科技。然而,如果你如此作,第三條規定該系統不該被認定為一個有效的科技「保護」措施,此意味著如果某人破壞了此DRM,他將亦得以自由散布其軟體,不受DMCA或其他類似法律的規制。
  • 一如往常,GNU GPL並不限制人們對於軟體作什麼,他僅是阻止他們限制其他人。
詳細來説,依照第0條之定義:
  • 「本授權書」:係指GNU General Public License第三版。
  • 「此程式」:係指任何受著作權保護之創作,並基於本授權書被授權者。在此所稱的「你」即是指每個被授權人。「被授權人」和「接受者」得是為個人或組織。
  • 「修改」著作:係指以需要著作權許可的方法對於著作進行複寫,或進行全部或部分地改寫,此有別於製作單純的複製品。依前述方法而生的著作被稱為前著作的「修改版」或「基於」前著作的著作。
  • 「被涵蓋的著作」:係指未經修改之此程式或基於此程式的著作。
  • 「傳播」著作:係指對其進行任何行為,擅自為之將使你在適用法(著作權)下,直接地或間接地負有侵權責任,但僅將之執行於電腦或對私有的重製物為修改除外。傳播行為包含「重製」、「散佈」(無論修改與否)、「對公眾提供」及在某些國家中其他類似的活動。
  • 「傳送」著作:係指任何傳播方式,其使他方能夠製作或接受重製物者。但僅經由電腦網路與使用者互動,卻未伴隨重製物的傳輸者,並非傳送。
  • 互動式的使用者介面所顯示的「相關法律聲明」,其範圍包含便捷且明顯的特徵,此特徵:(1)顯示相關的著作權聲明,且(2)告知使用者對著作不負擔保責任(願提供擔保者除外)、被受權人得基於本授權書傳送該著作及如何檢視本授權書之副本。如果該介面顯示使用者命令或選項的列表(像是選單),則於列表中的顯著項目即符合此一規範。
解釋之,這裡所謂的「傳播」著作,於我國法指的就著作權法第22~29條所規定的重製權、公開口述權、公開播送權、公開上映權、公開演出權、公開傳輸權、公開展示權、編輯權、散布權、出租權(但要注意有些權利跟電腦程式本身的性質相衝突難以適用),未經著作權利人許可,擅自為之將使你負上直接或間接侵害著作權的責任。但僅將之執行於電腦即便會發生暫時性重製,且電腦程式的暫時性重製在我國法下仍全然屬於著作權利人所專有的重製範圍內,但GPLv3並不對此作任何限制。另外,私有的重製物為修改但並未做進一步公開散佈,雖然也可能在我國法下被解釋為暫時性重製(甚至改作?),但GPLv3仍表示不對此作任何限制。
再者「傳送」著作,指的就是所有向公眾傳達型的利用方式(如公開播送、公開傳輸等),及散佈型的利用方式(含移轉所有權之散佈、出租等)。將GPL軟體用於網路伺服器,是否必須對客戶提供原始碼,本來有在吵,但最終版的GPLv3基於各種考量,在此明文排除。

2007年4月14日 星期六

火狐與冰鼬

Fwd: Bloglines - Tetralet: Debian 和 Mozilla(r) 在 Firefox 的 LOGO 和 名稱 上的爭議 - mozcn | Google 網上論壇

把手上的 sarge 換成 etch 後發覺火狐竟然不見了,取而代之的則是冰鼬。一查之下,發覺背後竟然有這段秘辛,這倒是一個好研究題目。說到電腦程式與商標權之間的關係,就不得不讓人想起Sega v. Accolade案,遊戲主機廠商(sega)以遊戲卡夾製造商(accolade)未經授權,在電視螢幕上顯示主機廠商的商標,而提起訴訟(請回想一下,你家遊戲機開機的時候,會秀出一塊欠缺美感彩色碎布並伴隨著一段詭異的音效)。但弔詭的是,之所以會顯示此商標
是因為遊戲機所必須的 initialization code,若無此code則無法載入遊戲;反之,若有此code則會顯示"PRODUCED BY OR UNDER LICENSE FROM SEGA ENTERPRISES LTD"。主機廠商即基於此點和侵害著作權為由,控告哪些沒有經過授權,卻自行利用還原工程製造製造相容遊戲卡夾的製造商(即accolade)。

這個古老的案子和Mozilla與Debian間的爭議差異自然是很大,但令我感到興趣的是商標權的範圍究竟廣到何種程度,就裡而言商標的意義在於「區隔產品與服務」換而言之就是用來讓消費者作為「識別」與「分辨」之用,因此不許非商標權之人擅自使用該商標,以免消費者產生「混淆誤認」或有潛在性地危險(有混淆誤認之虞)。但是現在我們看到的這些案子,其本質都在於以商標權為名,對於其下遊產業產生控制的效果,於過去是遊戲主機廠商欲控制其遊戲卡帶的製造商,於現在而言則是瀏覽器軟體組織欲控制作業系統套件組織。這樣的商標權應用是否恰當?法理上該如何解釋其與自由軟體授權間關係?值得深思。

2007年2月16日 星期五

NCC終於知道該打老虎了嗎

NCC委員會議未通過中廣股權移轉案

真是跌破眼鏡,本來一直以為這次中廣會莫名其妙過關的說。因為連主管一般事業結合的公平會,到今天駁回的結合案也是手指頭數的出來。按照手頭上可信的研究資料,自1992年至2003年9月十餘年間只禁止了4件結合案,放行5952案。而這些被通過的案子不乏許多高度爭議性的案子,反之,被禁止的案子不外乎些地區性的有線電視業者(),與中廣飛碟這樣全國性媒體影響力確實有差。不過詳細的情形現在還不太清楚,還得看到詳細的處分書後才能判斷,是不是真的有人有那個肩膀來打老虎了。

2007年2月15日 星期四

揉揉眼睛,這真的是wiki的logo嗎





wiki-en.jpg (JPEG Image, 180x251 pixels)
是被駭了還是Jimmy Wales在
祝大家有情人終成眷屬
(為防有人湮滅證據,上面還放一個有圖有真相。)

2007年2月12日 星期一

往日不再,君子無道

近來,常聽到人在感嘆現在的政局混亂致使國家空轉,這我亦身有同感。但,有許多朋友把原因歸咎於現在的政壇上無治國之能人,並且緬懷於過去所謂精英領導的年代,認為現在之混亂乃是因為主政者之無能所造成。對此,在下難以茍同,並且必須指出,這是無能之人推諉卸責的說法。更明白地說,台灣的亂象是的根源是來自於台灣人的無能(包含我)。將罪過推給政治人物,是為了消除對於自己的無力找理由,別忘了,這些政治人物就是我們選出來的,即使你沒有投票給他,甚至是你投的是「杜爛票」,你也是間接地將他推向高位。因為,我們接受了這個選舉制度,我們奉行民主的遊戲規則,所以使他成為領導者,「他的行為,我們的責任」。將罪過推給媒體,是為了自己的低劣品味找藉口,別忘了,這些媒體是靠收視率而活的,就是因為我們都愛看這些低劣的節目,所以媒體才不斷地推出這些內容。

你要政治人物有德有能,回到精英領導的年代,讓他領導大家走向光明的未來嗎?別傻了,歷史是無法回頭的,只要有出眾的人物出現,抹黑毀謗必然接踵而至,所謂的清者自清是在蓋棺之後才能夠還其清白,而在當下此人便已經被封殺了,這將導致--有德之人都是已死之人,在這樣的社會中,你永遠都可以舉出有德之精英,但他們不是死了就是下野,檯面上永遠不會有好人,這就是我們台灣人造就出來的荒謬。

當今真的沒有才徳兼備之人嗎?絕對有,只要你能夠放下成見,聽其言觀其行,人才無所不在。但謠言毀謗卻從來沒有停過,因為「惡意」是人類之本性,就個人而言或許者只有微不足道的小惡,但在整個社會之中卻凝聚為「巨大的惡意」,每個人其實都是此一「巨大的惡意」的構成,為整個社會共謀的「共犯結構」。而這樣的「惡意」凝聚於心,發乎成言語,就成了謠言毀謗,是以只要人類還是人類,這樣見不得人好的「惡意言語」就不可能停止。過去,要抑制這樣的傷害可以使用言論管制與思想控制,言論管制可以使用報禁、書禁、秘密警察來達成,思想控制則透過宗教、教育來形成。但是隨著時代的演進,上述的手段皆已崩潰,在言論自由、信仰自由、講學自由的前提下,言論管制與思想控制已經是完全不可行的方案,所以我們看到此「巨大的惡意」不斷地在我們的社會中凝聚、發酵。現在,國家的手再也不可以伸到我們的心中,抑制每個人心中小惡的責任落在每個個人的身上,而今這些「惡意言語」仍持續傷害我們的社會,就是我們台灣人們每一個個人的無能。

即便國家強行管制言論,阻擋一切惡意攻訐,但在所謂的「最高道德標準」的前提下,仍然會造成「活人無好人」的窘境。因為既稱最高,所以你用永遠可以提出比現在的標準更高的標準,最終導致高不可及的荒謬標準。即便被攻擊者本身是百年難得一見的完美無瑕,但是只要他的配偶、子女、下屬有任何可挑剔之處,在「最高道德標準」的命題下,其人也必須概括承受,而且不限於此,隨著時間的發展,師生、兄弟、朋友或其他的關係人,也將在所謂的「最高道德標準」影響下,一一被視為評斷標準。所以,適當道德標準才是一個成熟的政治環境中應有的標準。何謂適當的道德標準,於政治而言即是符合「政治倫理」之行為準則。何謂「政治倫理」,即是於政治--此一特定領域中的倫理,是諸多「特定領域倫理」中的一種。何謂倫理,即是社會中每一個人的價值觀所凝聚而成的共識,而從事領域工作之人應在此社會共識中扮演何種角色即是所謂的「特定領域倫理」。過去,台灣人都習慣於「條件給付」式的倫理與價值觀,但在思想控制與時代變遷的雙重影響下,過去修身、齊家、治國、平天下的世界觀已經完全與社會現況脫節。現在,在此新時代中,我們無法凝聚一個共識作為大家都能遵守的行為準則,只能一昧地要求更高的標準,如此任性妄為,如小孩子般地無理取鬧,亦是我們台灣人之無能。

台灣之亂,在於全體成員之無能。所以,即便自外國引進新穎之制度,但由於程度不足,只能仿其外表而無能學其內涵。此非制度之不良,而是我們無能執行,導致上有政策下有對策,變成更加畸形的體制。又,體制即便不良,若有才德兼備之人能夠撥亂反正,則尚有可為,但現在的台灣不但毀謗、流言充塞,而且對於執政之人一昧雞蛋中挑骨頭,結果是弄走了不怎麼爛蘋果,換上一個真正的爛蘋果,再弄掉了一個爛蘋果,換上一個更爛的蘋果。再加上人亡政息之惡習,政策每每難以持久,導致為政之人別無選擇,所有政策唯有求快、求短、求立竿見影,否則誰知道明天還有誰記得要去執行前人的政策。如此,體制不良、人謀不臧台灣怎能不亂?

所以唯一治療之法唯從根本做起,提昇我們每一個的知識與智識,使整體國家社會文化得以提昇,從根本層面支撐民主、法制、憲政之社會體制,讓適才之人皆能發揮所長,不因惡意攻訐而去職。對的政策不會因為執政更替而中斷,如此施政方能可長可久。至此,制度健全且適才適用,台灣方能由亂而治。

2007年2月10日 星期六

成敗論

成敗論
--有機會卻不能把握,謂之失敗。

若為時不我予,乃時也命也,而人力既然難以改天數,則無所謂得失損益,一切如常。
若為能力不足,則可以此激勵自我,轉挫折為助力,將來未必不能再得,如此可謂小敗。
若為半途而廢,勝負未定而自敗,則即便先前已有相當之成果,也因此光芒盡失,如此可謂大敗。
若為有欠思慮,自始至終不知勝敗之關鍵何在,徒然一場忙,則是所謂相公、墊背,如此可謂完敗。
若為一念差池,以至於本該成者而不成,非死傷杜驚之局卻敗於其中,則當搥胸頓足,責怪自己之無智,如此可謂愚蠢之敗。

所以,欲成事,明察局勢與謹慎抉擇乃基本中的基本。其次,辨明機會之所在,方向對了才有成事之可能性。其三,堅持到最後,不到勝負分曉不言敗。至於能力高低,世上本無絕對優劣,一時得失不過是勉勵自己再接再勵。最後,運氣非人力能定,有人因為一時運氣而成,卻也有人因為一時運氣而敗,似乎無理,但這也是這世界有趣、可愛之處。

2007年2月8日 星期四

繪畫練習3


練習重點,描繪不規則曲線、材質的使用。練習的目標則是錢包老大。

寫C程式,請勿硬幹

人之力有其窮也。
所以不要想所有的東西都自己生,能夠找工具就先用工具吧!當然,如果用工具比不用還麻煩的話,自然也要爽快地放棄,自己生。不過,面對的問題已經複雜到這種程度的話,恐怕也不是一個人能夠應付的程度,你需要的是一個團隊。
不過這邊說的是,可以輔助開發小程式或是製作原型的工具。首先編譯器本身的建議不妨一聽,所以像是用gcc的話就可以用-Wall參數,聽聽他的忠告,其實常常可以避免你做一些笨事情。更進階地,使用lint工具(例如Splint)給你更多的建議,但是有時候他會囉唆一些多餘的事情,如果你確定你就是要做這個罕見的操作,那麼那些多餘的建議聽聽就好,不用凡事依著他。然後程式要記得維持清晰明瞭的排版,這部分你最好花點心思自己維護,雖然不會影響程式的執行結果,可是每當你要改版或除錯的時候,你就會感激自己當時多花的這點心力。也是有幫助排版的工具啦,例如有名的indent,不過這些工具時零時不靈,有時候他工作的很好,這時候你就謝天謝地,但有時候他反而會把程式碼弄得更糟糕,反而更難閱讀。不過,通常發生indent搞砸的時候,原本寫code的人也要負一半的責任,因為導致indent誤判的原因常出自於原本的程式碼太過於畸形。
程式難免遇上意外,遇到意外要記得處理,起不要把鍋子蓋起來就以為沒事,晚點湯汁連鍋蓋一起炸飛,整個廚房就毀了。所以,請記得檢查每個function的傳回值,除非你本來就是設計目的就是要忽略其結果。除了傳回值之外,很多function還會在發生錯誤的時候設定全域變數errno,請參考每個function的手冊和errno.h對於各種意外做出處理。另外,自己定義的function也要跟隨著標準函式庫的風格,傳回適當的傳回值,並依據情形適時地設定與回存errno。然後,雖然這年頭「結構化程式設計」已經成為金科玉律,換句話說就是叫你不要用goto,但是凡規則必有例外,規矩之外還要懂得變通,例如上面說的針對每種errno做出處理,如果在乘上所呼叫的function各數,將導致錯誤處理用的code大幅倍增,導致錯誤處理比真正做事的code還多,這時候可以運用goto簡化相同類型錯誤的處理。不過這邊goto的用法,不是讓你把程式便成像義大利面那樣糾結在一起,而是要做成類似 C++ or Java 中那種 try { ... } catch { ... } final {...} 哪種效果。
(待續....)

繪畫練習2


上次的練習在於熟悉軟體的操作,所以挑了一個全是直線條而且全黑的Model。第二個練習則找了滑鼠小姐來入鏡,練習的重點在於掌握曲線線條與色彩在光線照耀下的變化。

Taiwan.CNET.com : 新聞專區 : 數位產品 : 蘋果執行長:解放音樂 放棄DRM技術

Taiwan.CNET.com : 新聞專區 : 數位產品 : 蘋果執行長:解放音樂 放棄DRM技術

繼上次的「數位版權管理已死?!」中的Yahoo!跳出來批DRM,這次連DRM的既得利益者蘋果都跳出來唱衰DRM了。有些人當然會說這是蘋果為了轉移壟斷市場的指控而做出來模糊焦點的行為,但是仔細研究iTunes Store的商業模式可以發覺,蘋果根本不需要DRM,現在的線上音樂銷售根本不是他的主要收益來源,而只是加分作用。開放市場,引進更多的線上音樂銷售競爭者只會使iPod賣的更好,增加蘋果的收益。而由於是市場的第一位進入者,所以後來即便有競爭者的加入,使其失去獨占地位,但仍可保持優勢,而且不用擔心反壟斷法對其開刀。因此,不論是撥放設備端還是音樂販售端,去DRM都是有利的,反倒是如果繼續使用DRM,就得受致於音樂公司的維修合約,對蘋果而言可說是芒刺在背,不除不快。
能夠有此遠見,投注在non-DRM的數位音樂,不得不佩服Jobs是個狠角色。

繪畫練習


最近看了hidamari sketch動畫本身是不錯啦,不過新房監督的動畫都有一種電波。受到此大宇宙意志的感招,再度提起久違的畫筆(其實是滑鼠),也來個繪畫練習。
為了不要再增加我的挫折感(最近滿挫折的),還是從簡單的靜物開始吧。首先是我面前的喇叭遭殃了。喇叭先生,這兩年承蒙你照顧了,我今天把會把你畫的很酷的。