<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-9307457</id><updated>2011-10-02T04:51:28.009+08:00</updated><category term='Tagboard'/><category term='protocol'/><category term='tools'/><category term='collaboration'/><category term='neocortex'/><category term='free'/><category term='robot'/><category term='SIP'/><category term='UI'/><category term='assertion'/><category term='Mathematica'/><category term='Greasemonkey'/><category term='MultiThread'/><category term='Foveon'/><category term='pythonic'/><category term='AI'/><category term='wish'/><category term='solution space'/><category term='scotoma'/><category term='probability'/><category term='math model'/><category term='gait'/><category term='retina'/><category term='Logo'/><category term='scanner'/><category term='SCM'/><category term='Darwin'/><category term='reading'/><category term='plot'/><category term='UART'/><category term='ia'/><category term='BSS'/><category term='engineering'/><category term='PWM'/><category term='graphics'/><category term='hierarchy'/><category term='order'/><category term='brain'/><category term='memory'/><category term='philosophy'/><category term='CAS'/><category term='Yacc'/><category term='Edelman'/><category term='diet'/><category term='VoIP'/><category term='algebra'/><category term='Firefox'/><category term='annotation'/><category term='selection'/><category term='design'/><category term='cortex'/><category term='network'/><category term='framework'/><category term='project'/><category term='EEPROM'/><category term='Boost'/><category term='individualize'/><category term='love'/><category term='psyche'/><category term='immunity'/><category term='numeric'/><category term='compiler'/><category term='natural selection'/><category term='porting'/><category term='Python'/><category term='hesitate'/><category term='thesis'/><category term='Email'/><category term='Matlab'/><category term='quote'/><category term='moment'/><category term='Embedology'/><category term='GNU'/><category term='template'/><category term='imaging'/><category term='IDE'/><category term='probe'/><category term='transducer'/><category term='biology'/><category term='concept'/><category term='physics'/><category term='bookstore'/><category term='learning'/><category term='customization'/><category term='embedded'/><category term='Guestbook'/><category term='math'/><category term='invariant'/><category term='memory-prediction'/><category term='note'/><category term='notation'/><category term='CSV'/><category term='freeware'/><category term='FSM'/><category term='queue'/><category term='literature'/><category term='neuron'/><category term='antenna'/><category term='Linux'/><category term='HTM'/><category term='exception'/><category term='NVRAM'/><category term='RD'/><category term='reuse'/><category term='Lex'/><category term='rational'/><category term='documentation'/><category term='CLIPS'/><category term='C'/><category term='BGL'/><category term='buy'/><category term='storage'/><category term='tagrolls'/><category term='puzzle'/><category term='hippocampus'/><category term='Land effect'/><category term='soliloquy'/><category term='prolog'/><category term='system theory'/><category term='Flash'/><category term='decision'/><category term='intelligence'/><category term='society'/><category term='perceptual'/><category term='memo'/><category term='living'/><category term='review'/><category term='timing'/><category term='specialty'/><category term='BlogTech'/><category term='generator'/><category term='scientific'/><category term='future'/><category term='simulation'/><category term='business'/><category term='literate programming'/><category term='refactoring'/><category term='scope'/><category term='NN'/><category term='universe'/><category term='Blogger'/><category term='state'/><category term='ICA'/><category term='building'/><category term='software'/><category term='small world'/><category term='color'/><category term='trend'/><category term='oscillograph'/><category term='speech'/><category term='version control'/><category term='automation'/><category term='CWM'/><category term='Chatterbox'/><category term='agent'/><category term='OS'/><category term='simplicity'/><category term='Graph'/><category term='design patterns'/><category term='DSP'/><category term='signature'/><category term='complexity'/><category term='Tags'/><category term='GA'/><category term='CPP'/><category term='unit test'/><category term='fitness of things'/><category term='functional'/><category term='impression'/><category term='prediction'/><category term='Marshall Sylver'/><category term='debug'/><category term='ALife'/><category term='computer science'/><category term='NCE'/><category term='Internet'/><category term='research'/><category term='programming'/><category term='document'/><category term='random'/><category term='human-centric'/><category term='infomation'/><category term='RNG'/><category term='font'/><category term='Java'/><category term='OO'/><category term='book'/><category term='blog'/><category term='MIT'/><category term='Clustrmaps'/><category term='life'/><category term='YAML'/><category term='spiking'/><category term='wisdom'/><category term='self organization'/><category term='sight'/><category term='icon'/><category term='FFT'/><category term='search'/><category term='pattern'/><category term='composition'/><category term='chaos'/><category term='symmetry'/><category term='parser'/><category term='fiction'/><category term='weightless'/><category term='expert system'/><category term='money'/><title type='text'>Yukuan's Blog</title><subtitle type='html'>readings, thinkings, feelings, ideas, etc. by Yukuan</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default?start-index=101&amp;max-results=100'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>136</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9307457.post-4644663785633257874</id><published>2009-02-01T23:34:00.013+08:00</published><updated>2009-02-09T21:03:55.308+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='font'/><category scheme='http://www.blogger.com/atom/ns#' term='imaging'/><category scheme='http://www.blogger.com/atom/ns#' term='YAML'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>The Menu Show</title><summary type='text'>

接連多日的年假已接近尾聲，吃吃喝喝之餘，很自然地就想到一個跟吃喝有關的練習。雖然年假前在公司搞的相框產品確實用到各式 UI 選單（menu），但我在這裡要聊的是名副其實的菜單（menu）。




為了製作精美的菜單，我用 Google 搜來幾張食物的圖片準備用作底圖，除了一張用作食物主選單底圖外，其餘三張分別用作飲料類、水果類和蔬菜類等用途。

考慮到要製作的菜單不只一張，且每張菜單的內容會一直修改，所以我不打算用繪圖軟體繪製菜單，這個重任當然要照慣例，委託給爬說語。要執行這支程式，必須先以 YAML 語法，利用文字編輯器寫下菜單的內容及呈現方式，存成 menu.yaml 。程式執行時會自動讀進這個描述檔，然後描繪出期望的菜單來。例如說，有張菜單長成這樣：



這是一張飲料類的菜單，它有 Coffee, Juice, Soda Water, Tea 等選項，要產生這張菜單， </summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/4644663785633257874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=4644663785633257874' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/4644663785633257874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/4644663785633257874'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2009/02/menu-show.html' title='The Menu Show'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-5722195176587884219</id><published>2008-07-13T17:35:00.004+08:00</published><updated>2009-07-04T21:27:39.125+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notation'/><category scheme='http://www.blogger.com/atom/ns#' term='embedded'/><category scheme='http://www.blogger.com/atom/ns#' term='storage'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Commands of the NAND</title><summary type='text'>

到電子商場逛一圈就會發現一堆產品都有 NAND flash 的身影（例如大拇哥，記憶卡，MP3 player，數位相框，甚至 PC 等）。前陣子和 simayi 閒聊時，他就提到：既然大家都愛用 NAND flash ，要是有人為它搞個 IP 或函式庫之類的，勢必可大幅節省開發時間。



相信處理過 NAND flash 的 firmware 人員，在啃讀 datasheet 的過程，難免得謹慎地交叉比對，好好推敲那也佔了不少篇幅的時序圖，以免自己還是不夠小心，誤解文意……

不知道大家看了那一疊 waveform 後，有什麼感想？我的看法是，那疊圖雖補足了許多重要細節，卻沒能好好強調重點，抽象度不夠。這根本是在折磨 firmware 人員，使我們構思演算法時綁手綁腳。

因此，在 K 完文件後，我為這疊 command waveforms 作的第一件事就是－－提昇抽象度，強調重點</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/5722195176587884219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=5722195176587884219' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/5722195176587884219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/5722195176587884219'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2008/07/commands-of-nand.html' title='Commands of the NAND'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-845738574851864744</id><published>2008-06-30T01:04:00.005+08:00</published><updated>2009-07-04T21:27:18.846+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='embedded'/><category scheme='http://www.blogger.com/atom/ns#' term='storage'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>NAND Flash 簡介</title><summary type='text'>

撬開一張 SD 卡，裡面最顯眼的，當然就是那大大一顆的 NAND flash ，我們餵給 SD 卡的資料都儲存在裡面；在 NAND flash 旁邊，還可看到一顆小一號的，那就是 controller IC ， 要確保資料的儲存是安全可靠的，有九成的責任都要算在 controller 身上。



在硬體介面方面， NAND Flash 雖有 bus 結構，卻沒去區分 address bus 及 data bus 。在 NAND Flash 上進行任何操作（如 read, write, erase 等），都要透過 command ，且無論 address, data, 或 command，都以同一組 I/O bus 傳輸。

此外， NAND flash 在資料 program 或保存過程，還會隨機出錯，所以廠商才會建議搭配 ECC (Error Correcting Coding)</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/845738574851864744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=845738574851864744' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/845738574851864744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/845738574851864744'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2008/06/nand-flash.html' title='NAND Flash 簡介'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-3643895506916889954</id><published>2008-06-16T02:24:00.005+08:00</published><updated>2009-05-20T11:23:35.665+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NVRAM'/><category scheme='http://www.blogger.com/atom/ns#' term='embedded'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><category scheme='http://www.blogger.com/atom/ns#' term='EEPROM'/><title type='text'>The Floating Gate</title><summary type='text'>

浮動閘（floating gate）一詞會讓我銘記於心，是因為閱讀了《矽眼》，該書提到以浮動閘紀錄類神經元突觸加權值，這是「類比」儲存的一個應用。

然而，對多數內嵌系統設計人員來說，浮動閘是用在「數位」儲存的，諸如 EPROM, EEPROM, NOR flash, NAND flash 等。



無論是 EPROM, EEPROM 或 NOR flash ，早先都是設計來在上面直接跑程式的（不用 copy 到 RAM 上跑，術語叫做 execute in place, XIP），所以有獨立的 data bus 及 address bus 。

為了省空間，後來很多 MCU 都把 EPROM, EEPROM 或 NOR flash 包進同一棵 chip 了，這造成外部的 EEPROM 或 Flash 開始走 serial 路線。 serial EEPROM 或 serial </summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/3643895506916889954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=3643895506916889954' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/3643895506916889954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/3643895506916889954'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2008/06/floating-gate.html' title='The Floating Gate'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-2270319920298148169</id><published>2008-06-07T20:57:00.009+08:00</published><updated>2009-07-04T19:29:15.564+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='embedded'/><category scheme='http://www.blogger.com/atom/ns#' term='graphics'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='math'/><title type='text'>The Analog Clock</title><summary type='text'>


……秒針急急忙忙的去撥動每一根短棒，使它們產生意義。然後分針慢吞吞的做同樣的事，使那些短棒產生另一種意義。三種針的位置和關係不斷變更，在錶面上切割出許多角來，夾住那不可捉摸的時間。……（摘自作文七巧：P86）




算一算日子，在現任公司混吃也有九個月了。很幸運的，一進來就參與一顆 ASIC 的開發，從一開始的寫 tools 測試 FPGA 功能，後來的寫 f/w 測試 ASIC ，到最後的參與產品開發。照規劃，一開始只打算拿來秀秀圖，偶爾也秀秀時間日期。後來為了把這顆小 MCU 的能耐完全壓榨出來，前些日子我還幫它加了類比鐘（Analog Clock）。自此，相框就不再僅僅只是相框了：



想起專科的畢業專題，我實作過一組函式庫，用來執行 3D 投影及相關的座標轉換。一晃眼已經十多年了，最近為了完成的這個類比鐘，竟然連描點畫線的程式都得自己手寫……
</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/2270319920298148169/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=2270319920298148169' title='20 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/2270319920298148169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/2270319920298148169'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2008/06/analog-clock.html' title='The Analog Clock'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>20</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-4207247199327780287</id><published>2008-05-19T00:13:00.003+08:00</published><updated>2009-08-09T16:28:13.716+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='embedded'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='math'/><title type='text'>The Fraction from a Decimal</title><summary type='text'>定點數運算常用於 embedded systems 中，因為大部分低階的 MCU （例如： 8051, PIC, AVR 等）開發環境雖提供浮點運算，卻是軟體模擬的，除了慢，還明顯佔用原本就少得可憐的記憶體空間。 C/C++ 語言雖無定點數運算專用語法，程式員卻可通過手動調整，有效以整數運算完成相同效果。



定點數運作的原理，簡言之，就是將原來的實數（real number）或者小數（decimal），改寫成分數（fraction）：如果 x 是個含小數的實數，我們可以找來兩個整數（p, q），將它們相除，來近似原來的 x （p/q ~= x）。

實務上人們可能還會要求上述的 q 要是 2 的冪次，因為電腦處理的都是 0, 1 的二進位運算， q 表示成 2 的冪次可以達到較高的精度；另一個原因我想是許多 f/w 程式員都患了 shift 偏執症 :p

</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/4207247199327780287/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=4207247199327780287' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/4207247199327780287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/4207247199327780287'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2008/05/fraction-from-decimal.html' title='The Fraction from a Decimal'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-6838892787610903341</id><published>2008-05-12T00:41:00.006+08:00</published><updated>2009-02-02T00:49:37.969+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='parser'/><category scheme='http://www.blogger.com/atom/ns#' term='compiler'/><title type='text'>Parser Generators</title><summary type='text'>

在軟體開發過程，我們很可能得寫大量的程式碼來完成一些繁瑣、平凡的工作，避開這個窠臼的辦法就是「自動化」。誠如 Kernighan 和 Pike 在 The Practice of Programming 一書所闡述的，優秀的軟體設計運用幾個基本原則：簡單（simplicity）、清晰（clarity）、一般性（generality）、自動化（automation）。




舉個例子， IC designers 常會跟 f/w 人員一起關起門來，私下協調出各種用途的 registers （memory mapped I/O），這些開放給 f/w 人員使用的 register 介面，會有一份以 Verilog 形式存在，另一份則以 C code 的形式存在，在 IC 開發過程，這些 registers 會經歷多次的變更（例如改名字、改位址、添加 registers、刪減 </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/6838892787610903341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/6838892787610903341'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2008/05/parser-generators.html' title='Parser Generators'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-1274112881148850878</id><published>2008-04-13T14:45:00.003+08:00</published><updated>2008-07-13T17:53:19.547+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notation'/><category scheme='http://www.blogger.com/atom/ns#' term='compiler'/><title type='text'>Phases of a Compiler</title><summary type='text'>先前曾經探討，像我們這種靠寫程式混吃的，最好備有兩把刷子，當發現其中一把刷子無法刷掉問題時，趕緊換上另一把刷刷看。通常一次只要用上一把，就可以把問題刷掉，偏偏有些問題比較棘手，要同時用上兩把刷子，左右開弓，才刷得乾淨！



這些要左右開弓的問題中，有個最典型的例子，那就是實作一個程式語言的編譯器（Compiler），它運作時恰好要經歷「分析」及「合成」兩個階段，這實在太妙了，所以我將它整理整理，簡述如下：


Analysis Phases
  
  Linear Analysis
    
    alias: scanning, lexical analysis
    output: token stream
    language: Regular Expression
    
  Hierarchical Analysis
    
    alias: parsing,</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/1274112881148850878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=1274112881148850878' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/1274112881148850878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/1274112881148850878'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2008/04/phases-of-compiler.html' title='Phases of a Compiler'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-8398263842293210670</id><published>2008-04-13T13:43:00.010+08:00</published><updated>2009-07-04T19:33:00.931+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='concept'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Two Ways to Solve a Problem</title><summary type='text'>這些年下來，我反覆觀察到一個現象：程式員各有一套慣用的方法來克服自己遭遇到的問題，這些解題習慣可區分成兩種，工程師多只專精其一，只有少數能任意在兩者間自在地切換。

在很多情況下，無論程式員採用哪種作法，都可輕易把問題解掉；但是另有一些問題，卻不是這樣隨性而為就解得掉的－－這就值得我們好好玩味了……



以 1..n 的正整數相加這個例子來說，我知道程式員應該利用現成的副程式，以爬說語來寫，應該要長成這樣：


n = 100
y = sum(range(1, n+1))


假裝我們沒有現成的，像 sum 這樣的副程式可用。那麼，一種可能的寫法如下：


y = 0
for i in range(1, n+1):
    y += i


這是標準的合成（Synthesis）法。以這個例子來說，如果不考慮時間複雜度要 O(n) ，</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/8398263842293210670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=8398263842293210670' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/8398263842293210670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/8398263842293210670'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2008/04/two-ways-to-solve-problem.html' title='Two Ways to Solve a Problem'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-6714779410377296064</id><published>2008-04-12T16:00:00.003+08:00</published><updated>2008-06-07T22:03:15.425+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCM'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Make a Secure Code Server</title><summary type='text'>來這混吃也七個月有餘了，初到公司時正逢新 IC 開發，我受命寫了工具程式以驗證功能，完成了 Boot Loader 以執行外部程式，也開發了應用產品的 firmware 以提供下游客戶 total solution ～～ 

接單量產、功能穩定後，準備接手的同事人竟然在新竹－－先前架的 code server 一直都只在台北這邊的內網使用，安全無虞，現在既然要跨到外網了，當然得提防封包被監聽……



原先架設的版本控制系統 SVN 及搭配的問題追蹤系統 Trac ，兩者都是透過 HTTP 協定和用戶端連線，現在為了隱密地傳輸資料，最直接的方案就是改走 HTTPS （HTTP over SSL）協定。

要讓我們的網頁伺服器 Apache 支援 HTTPS ，最省事的作法就是安裝 Apache 時就採用整合了 SSL 的安裝包。很不巧的是我之前用的安裝包是 no_ssl 的版本，</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/6714779410377296064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=6714779410377296064' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/6714779410377296064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/6714779410377296064'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2008/04/make-secure-code-server.html' title='Make a Secure Code Server'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-2298885652326782350</id><published>2008-04-06T17:14:00.007+08:00</published><updated>2009-02-09T21:04:40.435+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='embedded'/><category scheme='http://www.blogger.com/atom/ns#' term='UI'/><title type='text'>Fingering of Keys</title><summary type='text'>按鍵是很普遍的人機介面，也常用於內嵌系統（Embedded Systems）。既然大家那麼愛用按鍵，很自然地， Embedded Systems 軔體開發人員就常常得處理按鍵的偵測、編碼等議題。此外，為了按鍵操作流暢，我們還必須為按鍵設計適當的指法（fingering）及明確、統一的功能定義（function definition）。



不久前筆者設計了一款相框產品，它雖然只有三個按鍵，但除了要能執行基本操作，如上一張、下一張、設定自動換張的間隔時間等；也要能夠流暢地切換功能，如手動換張、自動換張、顯示日期時鐘、功能設定等；此外，最好還能透過這些操作，讓使用者充分感受到它優越的秀圖速度。

老實說，把這些操作通通塞進三個按鍵內並不是多困難的事，比較需要我們傷腦筋的是怎麼讓使用者覺得操作是簡單流暢、符合預期的。

這裡不是要跟你扯怎麼設計美美的畫面，雖然美美的畫面很重要，</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/2298885652326782350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=2298885652326782350' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/2298885652326782350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/2298885652326782350'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2008/04/fingering-of-keys.html' title='Fingering of Keys'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-6177798135738957591</id><published>2007-09-25T19:45:00.000+08:00</published><updated>2007-10-03T00:34:52.667+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='concept'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>The Art of Design</title><summary type='text'>為甚麼好的設計會來自於差的設計呢？ Scott 在 Why Good Design Comes from Bad Design 提到攻讀 CMU Computer Science 博士時選了門介面設計課，第一堂課上他發現一位年輕人素描著隨身聽的各種變異版本，而且圖紙上已經堆積了三、四十種不同考量的版本了。 Scott 於是湊過去問這個小伙子「幹嘛費勁畫那麼多草稿？」，小伙子發楞了好一會才笑著回說：





I don't know what a good idea looks like until I've seen the bad ones.


經過時日洗煉， Scott 後來也體會到當初認為多餘的作法，其背後的精神，他提到：


Each new idea I sketched out was more informed than the last. Each bad idea </summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/6177798135738957591/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=6177798135738957591' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/6177798135738957591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/6177798135738957591'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2007/09/art-of-design.html' title='The Art of Design'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-5839883265960243537</id><published>2007-09-17T00:47:00.000+08:00</published><updated>2007-09-21T23:27:46.553+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCM'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>SVN &amp; Trac Installation 備忘</title><summary type='text'>上週一（9/10）公司要我把 Subversion 環境架起來。除了很高興公司也打算採行版本控制環境來幫助程式開發外，我還打算一併把 Issue Tracking 系統掛上去。

說起 Issue Tracking System，要跟 Subversion 搭配良好，且一樣是 freeware 的，當然非 Trac 莫屬。細查之下，乖乖， Trac 竟然要裝那麼多相關套件，且各個套件還要挑正確版本，才可運作良好。

為了避免大家（或將來的自己）白走冤枉路，這裡把要安裝的東西及安裝步驟條列於後：




Download

反正就把下列連結清單中的檔案都抓下來，待會再一口氣安裝。


TortoiseSVN-1.4.5.10425-win32-svn-1.4.5.msi
  
  see http://tortoisesvn.net/downloads for other version
</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/5839883265960243537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=5839883265960243537' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/5839883265960243537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/5839883265960243537'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2007/09/svn-trac-installation.html' title='SVN &amp; Trac Installation 備忘'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-5433318005871061162</id><published>2007-09-09T19:46:00.001+08:00</published><updated>2008-02-17T15:33:28.354+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='robot'/><category scheme='http://www.blogger.com/atom/ns#' term='review'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>Machine to Transcendent Mind</title><summary type='text'>

前些日子把讀過的機器人書整理上來後，網友 HuaHua 留言推薦了《機器人：由機器邁向超越人類心智之路》。後來我特地跑一趟政大書城，翻閱後才想起幾個月前也在這翻過。如今再次翻閱，還是沒抱回去好好端詳，最大原因是此書主要內容，我在其他諸如書、網路、或論文等，幾乎都涉獵過。

昨天到國家圖書館，無意間發現該書竟躺在那，頻頻向我招手……嗯，這次當然不能再錯過 ^__^




與其說這是本講機器（人）的書，不如說它是探討人造智能（AI）或電腦及機器智慧（Machine Intelligence）發展潛能的書。


Autonomous Mobile Robots

這本書最合我胃口的是第二章〈小心！前有機器車〉，探討作者對機器自走車的實務經驗。裡面提到作者 Hans Moravec 在 Mobile Robot Laboratory 接受 Denning Mobile Robotics </summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/5433318005871061162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=5433318005871061162' title='32 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/5433318005871061162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/5433318005871061162'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2007/09/machine-to-transcendent-mind.html' title='Machine to Transcendent Mind'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>32</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-4116084813621478836</id><published>2007-07-31T22:26:00.000+08:00</published><updated>2007-07-31T22:31:50.290+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='robot'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>Robot Book 閱讀清單</title><summary type='text'>也許拜大廠效應（例如 Google、微軟及鴻海等相繼投入）所賜，也或者只因為熱門 Robot 商品接續問市所致，總覺得這陣子 Robot 愛好者有增多的趨勢。
碰巧這陣子我也 K 了好些 Robot 相關的書，內容包括理論及實作，涵蓋了電子、電機、機械、機構等，趁空檔把這些書整理整理，上來和大家分享 ^__^ 






要買 Robot 書，原文部份，天瓏那有專櫃，大家可以去翻閱翻閱；此外，若水堂那有許多相關簡中書，許多甚至是日文或英文書的中譯本，強烈建議去那瞧瞧，絕對不會讓您失望的。
以下就把我認為值得一讀的幾本列出來供大家參考：




  機器人編程技術-基於行為的機器人實戰指南
  （美）[******]

    
    iRobot 創始人之一 Joe Jones 寫的書，內容不但讓人耳目一新，且提供必要的細節
    原文：Robot
      </summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/4116084813621478836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=4116084813621478836' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/4116084813621478836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/4116084813621478836'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2007/07/robot-book.html' title='Robot Book 閱讀清單'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-609587386558325622</id><published>2007-07-15T02:26:00.005+08:00</published><updated>2009-08-09T18:58:21.234+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSV'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Python 與 CSV</title><summary type='text'>許多資料，像通訊錄或試算表之類的，很適合列表呈現。而 comma-separated values, CSV是微軟牌視窗軟體存放表格資料常用的檔案格式。這種純文字的檔案格式是以逗號（comma）來為每筆（record）資料的欄位（field）作分隔。



舉個實際的例子，不久前我因論文需要，由 Davis 那取得了 1999 年美國千大企業的董事會成員資料。內容包括這些董事（directors）的公司、職稱、年齡等等。

由於我只關心每間公司的董事有哪些，所以就輕快地以 Python 語寫了一個 function ，要電腦讀入這個 CSV 檔後，順便吐出各公司的董事們：


def LoadBoards_v0(fn='direct99.csv'):
    """Loads directors of companies from a CSV file and
</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/609587386558325622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=609587386558325622' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/609587386558325622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/609587386558325622'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2007/07/python-csv.html' title='Python 與 CSV'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-7588975658058285189</id><published>2007-07-01T19:59:00.000+08:00</published><updated>2007-07-04T15:36:21.177+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='graphics'/><category scheme='http://www.blogger.com/atom/ns#' term='simulation'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Logo'/><title type='text'>Logo 也 3D</title><summary type='text'>


前陣子 survey 描述機器動作的程式語言時，看到幾個賣像不錯的 Robot 產品，竟不約而同地，都說
Logo
語。


經過一連串的 google 、到處點閱後發現：原來 Logo 早已跳出原先的認知，不再只是給小朋友玩的烏龜繪圖了！



一直以來，我對 Logo 語言並不陌生，因為手邊好些科普書都有提到，例如：


  
    《電腦如何思考》p53
    ，Hillis 以 Logo 為例子，說明程式語言的威力；
  
  
    《沙地上的圖案》p136
    ，〈作為藝術家的烏龜，The turtle as artist〉這節說明了 Papert 的 Logo 及其
    Turtle
    Geometry ；
  
  
    《MIT
    媒體實驗室》p181 ，提到了控制 LEGO 積木的 Logo 語言；
  
  
    《遊習世紀》</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/7588975658058285189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=7588975658058285189' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/7588975658058285189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/7588975658058285189'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2007/07/logo-3d.html' title='Logo 也 3D'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-5787839217310517920</id><published>2007-06-23T14:53:00.000+08:00</published><updated>2007-06-23T15:21:53.128+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='soliloquy'/><title type='text'>終於通過口試了，呼～</title><summary type='text'>突然想起「……什麼什麼道遠的，……」這句話，這條路還真是漫長，果然「畢業遠乎！」。
週四跟口試委員一一握手後，終於可以感受到畢業不遠乎了，呼～


原本這只是個人生涯的小插曲，根本不值一提，不過還是到這昭告一下，讓關心這件事，又不常見面的人為我高興高興 :-)
接下來就收收尾，然後快快樂樂回到街上去（嗯，我果然比較適合沿街混吃，不適合呆在象牙塔內）



Tags: [soliloquy]
</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/5787839217310517920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=5787839217310517920' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/5787839217310517920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/5787839217310517920'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2007/06/blog-post.html' title='終於通過口試了，呼～'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-6529241354012666551</id><published>2007-05-26T14:31:00.000+08:00</published><updated>2007-06-09T16:47:01.021+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tags'/><category scheme='http://www.blogger.com/atom/ns#' term='research'/><category scheme='http://www.blogger.com/atom/ns#' term='annotation'/><title type='text'>你 diigo 了嗎？</title><summary type='text'>最近從 William 在推推王整理的精華區軟體好物那知道了一個很好用的工具 diggo ，使用之下，實在太讓人感動了，忍不住上來推廣。

Diggo 提供的社會性書籤（social bookmarking）服務，是以線上在網頁畫重點、下評註為主軸。


套用 CNET 的話說：「如果在一個 3000 字的文章當中，用戶僅僅只需要一句話，那麼用戶就知道在網站上做記號是一件多麼實用的事情」


  它可以在網頁上用直接畫重點（Highlight），下評註（Add Sticky Note）；
  也可以同時看到別人整理的重點及評註；
  甚至還可以根據劃線的某字句跟大家討論；
  讓人感動的是，它同時也會把你評註過的網頁自動 cached 一份起來（以後看到好文，不用辛苦抓網頁備份了）；
  它還可以把選定的相關 bookmarks 一次抽出各篇有畫重點的字句（Extract </summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/6529241354012666551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=6529241354012666551' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/6529241354012666551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/6529241354012666551'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2007/05/diigo.html' title='你 diigo 了嗎？'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-779470516298169934</id><published>2007-03-07T21:50:00.000+08:00</published><updated>2007-03-10T01:40:02.012+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BlogTech'/><category scheme='http://www.blogger.com/atom/ns#' term='Blogger'/><title type='text'>New Blogger 備忘</title><summary type='text'>年初 Google 在 Blogger Beta 的 Beta 上打叉後，就一直有股感覺，覺得要被強迫升級似的。可是新舊版的版面樣板語法不同，一些土法煉鋼的小玩意都面臨改寫的命運，所以一直沒騰出時間來做這個升級的動作。

這幾天終於決定好好研究一下，費了三天才把這個 Blog 從舊 Blogger 那，移植到新的 Blogger Beta 。

這版的 Blogger 最重要的改進如下：

提供一套更彈性的語法及 AJAX 介面，方便我們設計版面。
template 設計更模組化，可以局部修改。
終於支援 Labels 了。
現在 Comments 也有 Feed 了。
文章編輯列表除了可以換頁外（之前的版本不行），還可以用 label 索引。


不過還是有幾個令人不甚滿意的地方：

語法變得複雜了。
之前 Previous Posts 會根據各個 blog item </summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/779470516298169934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=779470516298169934' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/779470516298169934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/779470516298169934'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2007/03/new-blogger.html' title='New Blogger 備忘'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-116626497454535558</id><published>2006-12-16T22:52:00.000+08:00</published><updated>2007-05-20T22:25:15.679+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='PWM'/><category scheme='http://www.blogger.com/atom/ns#' term='robot'/><category scheme='http://www.blogger.com/atom/ns#' term='embedded'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Motor-controlling PWMs</title><summary type='text'>一個脈寬調變（Pulse-width Modulation, PWM）訊號可控制一顆 DC motor 轉速，或決定一具 servomotor 的方向、位置或轉速。在複雜的機器人身上，常用上好幾顆馬達，因而能以一顆微控制器（microcontroller, uC）產生多組 PWM 訊號是非常實用的。


前陣子在 RobotFun.net 論壇看到一群機器人愛好者討論自製串列伺服控制器（serial servo controller, SSC）的討論。後來又在 CSZone 的 Robotics 版跟 happosai 及 MasterChang 討論了「以 uC 產生多組 PWM 訊號」的方法。這次就對這個議題作個整理：


Busy Waiting

我們先來看個最直接的作法：

&lt;!--Code List 1--&gt;
 1: // List 1. PWM loop </summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/116626497454535558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=116626497454535558' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/116626497454535558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/116626497454535558'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/12/motor-controlling-pwms.html' title='Motor-controlling PWMs'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-116617906002270562</id><published>2006-12-15T18:28:00.001+08:00</published><updated>2009-07-04T21:26:24.996+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FFT'/><category scheme='http://www.blogger.com/atom/ns#' term='DSP'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='plot'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Analyze the Sunspots</title><summary type='text'>
上次以 Python 搭配 matplotlib 改寫張智星老師傅立葉轉換教學例子。後來逛到 Anders Andreasen 的專文，裡面有個分析太陽黑子活動週期的例子，相同的例子竟然也出現在 Mathworks 展示 Matlab FFT 用法的網頁上。既然大家那麼愛用太陽黑子，我也來攪和攪和，再次以 Python 搭配 matplotlib 改寫：






&lt;!--DOCUMENT_FRAGMENT--&gt;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/116617906002270562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=116617906002270562' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/116617906002270562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/116617906002270562'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/12/analyze-sunspots.html' title='Analyze the Sunspots'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-116617306656820775</id><published>2006-12-15T16:53:00.000+08:00</published><updated>2007-05-16T01:19:09.529+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='robot'/><category scheme='http://www.blogger.com/atom/ns#' term='embedded'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Software Anti-interference</title><summary type='text'>大多數工程製品，零件會變髒、磨損，精密度不如目錄所示。數位電腦是當中的異數，它沒有前述問題，至少它的位元或位元組功能，完全符合廣告宣稱的－－當數位混入類比，一切似乎又要跌回原形……


以機器人來說，它有感測器（sensor）得知類比世界的訊息，訊息處理後，又要餵控制訊號給類比世界的致動器（actuator）。撇開外界原本就混雜各式干擾不說，所使用的致動器，往往就是馬達，其本身是高負載，開關高負載會嚴重干擾控制電路（如果共用電源的話），馬達運轉時，尤其是電刷部份，也會持續產生雜訊。這些雜訊除了會影響感測電路及控制訊號外，有時 uC 本身也會因為這些干擾而錯亂。

為了維持機器正常運作，除了硬體設計時把雜訊納入考量外，軟體也不可坐以待斃。以下整理一些簡單、低階的軟體抗雜訊手段：


對輸入訊號濾波
資料冗餘與查驗（data redundance and verification）
  
</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/116617306656820775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=116617306656820775' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/116617306656820775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/116617306656820775'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/12/software-anti-interference.html' title='Software Anti-interference'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-116616092091396274</id><published>2006-12-09T01:29:00.001+08:00</published><updated>2009-07-04T21:25:53.295+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FFT'/><category scheme='http://www.blogger.com/atom/ns#' term='DSP'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='plot'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>FFT in Python</title><summary type='text'>想知道一段訊號的頻譜，實務上我們會運用數位訊號處理，對這段訊號抽樣，得到一段時間序列；並計算時間序列的離散傅立葉轉換（Discrete Fourier transform, DFT）。然後據以估算出離散時間傅立葉轉換（Discrete-time Fourier transform, DTFT），最後再視需要，將頻域橫軸由離散時間的數位頻率（Ωk = ωkTs = 2π fk/Fs）換算回連續時間的訊號頻率（fk）。


張智星老師的 on-line book《音訊處理與辨識》〈離散傅立葉轉換〉這個章節，有許多運用快速傅立葉轉換（Fast Fourier transform, FFT）的教學， FFT 其實就是 DFT 的快速算法。張老師是以 Matlab 作為程式範例；經實際嘗試，我發現可以很容易轉成 Python code ，以下就看看執行結果截圖：



其程式如下：




&lt;!-</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/116616092091396274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=116616092091396274' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/116616092091396274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/116616092091396274'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/12/fft-in-python.html' title='FFT in Python'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-116339428043002840</id><published>2006-11-13T12:37:00.002+08:00</published><updated>2009-07-04T21:26:56.022+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pythonic'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Be Pythonic -- 字正腔圓說 Python</title><summary type='text'>

學任一種語言，要說得道地，關鍵是融入語言的風格特色中，體會語言社群的風土，知道他們的慣用法。

既然 Python 寫的 code 有 executable pseudo code 的美稱，想寫出 Pythonic 的 code ，當然要站在一定的高度，讓寫出來的 code 夠 pseudo...


Pythonic 一詞被用來形容合於 Python 慣用法的 code 。Pythonic 的 code 除了讓人們更好理解外，機器執行時，也往往更具效率－－語言設計者會絞盡腦汁最佳化語言慣用法的執行效率。這在 Python 這類高階、動態的語言，尤其明顯 :)

幾個 Pythonic 的準則：


  讓程式結構盡量扁平（flat）
  降低 Loops 的複雜度
    
      少用 counter ，偶爾用一下 iterator
      改採 Functional </summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/116339428043002840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=116339428043002840' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/116339428043002840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/116339428043002840'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/11/be-pythonic-python.html' title='Be Pythonic -- 字正腔圓說 Python'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-116333217152835683</id><published>2006-11-12T19:44:00.000+08:00</published><updated>2007-03-07T08:29:36.991+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gait'/><category scheme='http://www.blogger.com/atom/ns#' term='robot'/><title type='text'>Robotics, Say it From the Feet</title><summary type='text'>藉著對自主移動機器人（autonomous mobile robot）的興趣，我再次溫習了電子、電機及機械等相關知識，開啟塵封已久的記憶。

前些天更在 CSZone 的 Robotics 版，寫了篇〈從腳說起〉；今日興起，在這重謄了一遍…… :P


註：為什麼不從「頭」說起，而要從「腳」說起呢？一來是為了切合內容主旨，再者也順便暗示這裡談的機器人是以 bottom-up 方式建構，有別於傳統 AI 的 top-down 方式 :)

～～

在《生物世界的數學遊戲》中有一段生動的描述：

有條狗走在我前面……我用心觀察牠沿著路往前走……
牠是動物王國裡運用腿來移動的絕佳例子。
如果仔細觀察，我甚至可以看到牠腳踏到地面的順序：

左後腳、左前腳、右後腳、右前腳，

腳步間隔相等，遵循著同樣的模式，一再重複……

後、前、後、前；
左、左、右、右。

兩個交插的數學序列，充分抓住了狗「</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/116333217152835683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=116333217152835683' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/116333217152835683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/116333217152835683'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/11/robotics-say-it-from-feet.html' title='Robotics, Say it From the Feet'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-116274145581287093</id><published>2006-11-05T23:44:00.001+08:00</published><updated>2009-07-04T21:23:44.811+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='queue'/><category scheme='http://www.blogger.com/atom/ns#' term='embedded'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='UART'/><title type='text'>Console I/O Without OS</title><summary type='text'>在〈Debugging Embedded Systems〉中曾建議：把 uC 的 UART
跟 PC 的 serial port 第一時間 link 起來，然後就可以在適當的地方 print out 一些訊息，幫助我們確認程式的執行狀況。


這個廣為採用的作法，在沒有 preemptive multitasking OS 支援下，很容易因 print out 的訊息太多，使系統 delay
過久。這在許多場合是無法接受的。一個常見的例子是同時處理另一個網路連線下，許多 protocol 都嚴格限制裝置回應時間。

解法也很簡單，只需把要 print out 的東西丟到 queue 中，然後再拆成一個個 char ，找時間分批餵給 PC
就好了。這叫「化整為零」:P

 Renesas H8 系列 HEW 開發環境底層就有兩個分別被 stdin/stdout function 群共用，
</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/116274145581287093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=116274145581287093' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/116274145581287093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/116274145581287093'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/11/console-io-without-os.html' title='Console I/O Without OS'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-115904246354635308</id><published>2006-09-24T14:28:00.002+08:00</published><updated>2009-07-24T21:01:36.065+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='plot'/><category scheme='http://www.blogger.com/atom/ns#' term='scientific'/><category scheme='http://www.blogger.com/atom/ns#' term='Matlab'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Dynamic Plot on Python</title><summary type='text'>

之前介紹 Python 在複雜網路模擬實驗的應用時，曾提到用 matplotlib 來繪製該實驗的圖表。其模仿 Matlab 的繪圖功能，用起來方便，所繪製的圖也在水準之上。有圖有真相，這就秀秀用 matplotlib 為該實驗繪製的兩張圖表：




學長看了後提議：某些實驗邊跑模擬的同時，也把產生的數據動態繪出，效果會更好。

憑著殘留印象，我把相關用法的說明再次翻出來研讀，寫了下列的 Python code 來測試：




&lt;!--DOCUMENT_FRAGMENT--&gt;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/115904246354635308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=115904246354635308' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/115904246354635308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/115904246354635308'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/09/dynamic-plot-on-python.html' title='Dynamic Plot on Python'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-115803719333604956</id><published>2006-09-12T12:50:00.000+08:00</published><updated>2007-03-09T18:36:48.952+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='note'/><category scheme='http://www.blogger.com/atom/ns#' term='reading'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>How to Read a Book</title><summary type='text'>
《如何閱讀一本書》，幾年前在書街閒逛時隨便翻過。後來 William 又在其 〈研究方法與論文寫作書單〉推薦。終於趁這次的大閱書，到圖書館抱回來研讀。

其實這些年下來，也讀了好些閒書，早習慣閱讀時運用數個書籤，加上各種註記符號、交叉索引、添加細目等。對陌生的議題，也知道多本輪番瀏覽，再選定本精讀。

現在有本書告訴我以上這些技巧還不夠班。當然值得我好好為它整理整理重點：



閱讀的層次 [pp.25-29]

  基礎閱讀（elementary reading）
  檢視閱讀（inspectional reading）：系統化略讀（skimming systematically）
  分析閱讀（analytical reading）：追尋理解
  主題閱讀（syntopical）：比較閱讀（comparative reading）


主動閱讀的基礎：閱讀者要提出的四個基本問題 [</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/115803719333604956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=115803719333604956' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/115803719333604956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/115803719333604956'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/09/how-to-read-book.html' title='How to Read a Book'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-115679933672025609</id><published>2006-08-29T03:07:00.001+08:00</published><updated>2009-07-04T21:23:09.153+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='complexity'/><category scheme='http://www.blogger.com/atom/ns#' term='Graph'/><category scheme='http://www.blogger.com/atom/ns#' term='simulation'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='scientific'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='small world'/><title type='text'>Graph-based Modeling on Python</title><summary type='text'> 

Agent-based modeling 的電腦實驗，最核心的架構不外乎一個大迴圈（super loop）包裹著一群規則。大迴圈每跑一輪，系統就更新一次狀態，就如同時鐘的滴答（tick）聲般。通常系統每次滴答都會收集一次統計資料。這類實驗，有許多現成的 famework 可用，如最經典的 Swarm 及其後進 Repast ，還有我模仿 Repast ，自己搞的一個 ，它們都提供了 start, pause, stop 等流程控制的介面。



模擬複雜網路，也可以套用 Agent-based modeling 架構。不過諸如網路的群聚度（clustering coefficient, C）及網路特徵的路經長度（characteristic path length, L）等統計數據計算需耗費的時間，隨著網路的規模成長很快，所以不適合運作太頻繁。</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/115679933672025609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=115679933672025609' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/115679933672025609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/115679933672025609'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/08/graph-based-modeling-on-python.html' title='Graph-based Modeling on Python'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-115679376562507619</id><published>2006-08-13T02:35:00.000+08:00</published><updated>2007-03-09T21:25:21.583+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Boost'/><category scheme='http://www.blogger.com/atom/ns#' term='CPP'/><category scheme='http://www.blogger.com/atom/ns#' term='BGL'/><category scheme='http://www.blogger.com/atom/ns#' term='Graph'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Boost to Python</title><summary type='text'>

前陣子費了番功夫評估可用於複雜網路模擬實驗的工具。這些實驗，除了圖論用得特別兇外；一些隨機抽樣的東西也會用上；此外，實驗數據，也要有工具幫忙繪製圖表。

我先後評估了 Java, C/C++, Pyhon 等開發環境，看看它們有哪些 Library 可用？這些 Library 的成熟度如何？架構優不優雅？說明文件完不完整？使用方不方便？



一開始，我評估了下列的 Graph Theory Library:


  Boost Graph Library, BGL (C++)
  Graph Template Library, GTL (C++)
  LEDA graphs (C++)
  The Standford GraphBase (C)
  JGraphT (Java)
  Java Universal Network/Graph Framework, JUNG (Java</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/115679376562507619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=115679376562507619' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/115679376562507619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/115679376562507619'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/08/boost-to-python.html' title='Boost to Python'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-115396814533451901</id><published>2006-07-29T03:36:00.001+08:00</published><updated>2009-07-04T21:24:16.824+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RNG'/><category scheme='http://www.blogger.com/atom/ns#' term='random'/><category scheme='http://www.blogger.com/atom/ns#' term='probability'/><category scheme='http://www.blogger.com/atom/ns#' term='math'/><title type='text'>Not to be Fooled by Randomness</title><summary type='text'>

最近抱讀了一些機率的書，突然發現這門學問還滿有趣的。除了有趣，一些基本的機率分配及常見的隨機過程都非常實用。在複習的過程，當然也要作個紀錄：




Random Number Generators

如果想跑些像 Monte Carlo 這類對隨機性很要求的 simulation  ，有必要好好檢視一下手邊的隨機數產生器（Random Number Generator, RNG）是否合格。

線性同餘法（Linear congruential generators, LCGs）是多數開發環境標準的 RNG。它雖可以輕快、方便地產生隨機數；不幸地，它產生的隨機數，很容易就不夠隨機，不適合用在嚴肅的場合。

對於 RNG ，我們重視的有：


  演算法要簡單、計算要快速
  要能通過各種隨機性測試，特定模式不可出現在我們運用的場合。
  用於密碼學領域時，還要夠安全，不易被破解

</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/115396814533451901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=115396814533451901' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/115396814533451901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/115396814533451901'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/07/not-to-be-fooled-by-randomness.html' title='Not to be Fooled by Randomness'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-115345956004370092</id><published>2006-07-21T12:46:00.000+08:00</published><updated>2007-03-09T21:24:25.122+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='research'/><category scheme='http://www.blogger.com/atom/ns#' term='thesis'/><category scheme='http://www.blogger.com/atom/ns#' term='impression'/><title type='text'>Robotic Fan 一隅</title><summary type='text'>

前些天逛到 RoboticFan ，看到一些不錯的貼文，其機器學院中的「基礎知識」，更是整理了許多極具參考價值的好文，例如〈粒子群算法〉、〈遺傳算法〉、〈A* 路徑規劃初探〉、〈蟻群算法〉以及〈如何作研究？〉等。


〈如何作研究？〉提到：


……選擇題目必須是自己願意傾注熱情的。個人遠景觀點是你作為一個科學家的理由，是你最為關切的意象。原則，思路或者目標，有多種形式。或許你想造一台可與之交談的計算機，或許你想把人類從計算機的愚蠢使用中拯救出來，或許你想展示萬物都是統一的，或許你想在太空發現新生命。遠景觀點總是比較大的，你的論文並不能實現你的遠景，但是可以朝著那個方向努力。

……如果你的目標是一個五十年的工程，那麼合理的十年工程是什麼，一年的呢？如果目標的結構龐大，那麼最核心的部件是什麼，如何最大程度的了解核心部件？

……一個重要的因素是你可以忍受多大程度的風險。</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/115345956004370092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=115345956004370092' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/115345956004370092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/115345956004370092'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/07/robotic-fan.html' title='Robotic Fan 一隅'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-115254996909437366</id><published>2006-07-11T00:45:00.001+08:00</published><updated>2008-11-25T00:29:48.195+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='neuron'/><category scheme='http://www.blogger.com/atom/ns#' term='scotoma'/><category scheme='http://www.blogger.com/atom/ns#' term='review'/><category scheme='http://www.blogger.com/atom/ns#' term='brain'/><category scheme='http://www.blogger.com/atom/ns#' term='hippocampus'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>腦中的海馬（hippocampus）</title><summary type='text'>
《創智慧》強烈建議海馬迴（hippocampus）在新皮質區域階層中，扮演最頂層的角色。所以我特地找了《海馬體：大腦真的很有意思》複習複習，更詳細地認識腦中的這對海馬。

本書內容以訪談的對話形式進行。受訪者是專門研究海馬迴的學者，是東京大學藥學系助理教授池谷裕二。其對話過程用了許多比喻。雖某種程度可以幫助人們瞭解相關議題，在我看來，卻有資訊密度過低的缺點。

無論如何，書中確實聊了許多有趣的東西：


page 83 到 page 90 提出一系列很具說服力的盲點（scotoma）實驗，說明即使簡單的視覺，也很大成分是大腦建構出來的東西，不是單純的感光輸入而已。

人類海馬迴的神經細胞大約有一千萬個，用來擔任資訊篩選、分類的任務，以避免大腦被感官送來的大量訊息淹沒。篩選資訊時，海馬迴會參考扁桃核的情緒訊號。

睡夢時，海馬迴會把清醒時所發生的事件作整理、回想（reminiscence</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/115254996909437366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=115254996909437366' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/115254996909437366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/115254996909437366'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/07/hippocampus.html' title='腦中的海馬（hippocampus）'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-115232081804134546</id><published>2006-07-07T22:39:00.000+08:00</published><updated>2007-03-09T21:27:50.557+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='neuron'/><category scheme='http://www.blogger.com/atom/ns#' term='weightless'/><category scheme='http://www.blogger.com/atom/ns#' term='embedded'/><category scheme='http://www.blogger.com/atom/ns#' term='complexity'/><category scheme='http://www.blogger.com/atom/ns#' term='bookstore'/><category scheme='http://www.blogger.com/atom/ns#' term='brain'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>A Big Buying</title><summary type='text'>
既然要再回到象牙塔蹲一陣子，趁機大拜書一下是一定要的啦 :)

除了到各圖書館抱些書過過癮外，買書勢必是免不了的！


說到買書，這年頭誰不是在網路買呢？是吧！（事實是有些書在實體書店找不著 :p）

於是我就逛逛 Amazon ，晃晃若水堂，找些對味的：


《Modeling Neural Development》
上次被關在塔裡搞論文時，就一直想翻翻這本，跟學校請購卻沒下文；如今再次入塔，當然要抱一本回來當枕頭，也好斷了當年的念 ^_^b

《The World in my Mind, My Mind in the World》
幾年前拜讀了 Aleksander 的論述後，我整理了〈Weighted and Weightless〉；現在出新書了，當然要忙裡偷閒一下，聽聽他說些什麼 ^____^

《Second Nature : Brain Science and Human </summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/115232081804134546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=115232081804134546' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/115232081804134546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/115232081804134546'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/07/big-buying.html' title='A Big Buying'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-115057284299132354</id><published>2006-06-20T03:33:00.000+08:00</published><updated>2007-03-09T21:28:12.348+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='invariant'/><category scheme='http://www.blogger.com/atom/ns#' term='hierarchy'/><category scheme='http://www.blogger.com/atom/ns#' term='HTM'/><category scheme='http://www.blogger.com/atom/ns#' term='pattern'/><category scheme='http://www.blogger.com/atom/ns#' term='prediction'/><category scheme='http://www.blogger.com/atom/ns#' term='review'/><category scheme='http://www.blogger.com/atom/ns#' term='neocortex'/><category scheme='http://www.blogger.com/atom/ns#' term='memory'/><category scheme='http://www.blogger.com/atom/ns#' term='brain'/><category scheme='http://www.blogger.com/atom/ns#' term='memory-prediction'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>On Intelligence</title><summary type='text'>
上週四（6/15）經過書街，不小心發現此書，瀏覽之下，驚為天人，二話不說，（當下放棄原本採購 LCD 螢幕的計畫）抱一本回去好好端詳先。

竟然還是洪蘭譯的。哎呀！怎麼以前沒發現這本？哦，原來是今年才上架的。雖稍感安慰，但內心還是怪自己太久沒 update 這方面的資訊了。

有趣的是，作者就是那位發明 PalmPilot 的 Jeff Hawkins；更讓人意外的，這本書還有 Watson 及 Kandel 這兩位諾貝爾生醫獎得主推薦。




  註一：Watson 於 1953 年和 Crick 共同發現 DNA 雙螺旋結構，是上個世紀生物學最大的發現。
  註二：Kandel 是神經科學的權威，也因為突觸變化的效應及其改變如何影響記憶及學習方面的研究，榮獲 2000 年的諾貝爾獎，他寫了幾本 Bible 級的書，跟人合著的《透視記憶》也很值得一讀。
  註三：Crick </summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/115057284299132354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=115057284299132354' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/115057284299132354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/115057284299132354'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/06/on-intelligence.html' title='On Intelligence'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-115013678046359925</id><published>2006-06-13T02:06:00.001+08:00</published><updated>2009-07-04T21:24:52.051+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Marshall Sylver'/><category scheme='http://www.blogger.com/atom/ns#' term='decision'/><category scheme='http://www.blogger.com/atom/ns#' term='hesitate'/><category scheme='http://www.blogger.com/atom/ns#' term='impression'/><title type='text'>Pay for Hesitate</title><summary type='text'>在街上混吃了好一陣子，上週三（6/7）終於回去找老師商量拖欠已久的畢業論文。（唉！出來混的，有一天總要還的…… ）

老師提到：「每週最少騰出一天，專心弄論文，才能順利完成－－千萬不要停頓……」

我深深覺得這番話頗有道理，回來後 Google 了類似的說法：

Keep going with your fantastic work. Don't stop!!

這還不夠，我還畫了右邊的「Pay for Hesitate」：


這張圖是從 Marshall Sylver 的《Passion, Profit, &amp; Power》，中譯《心靈扳機》一書的〈猶豫者貧〉這一章偷描來，且作了修潤。


  想像一下，你有一條命，且你要在你的生命中作個決定。上面那條線表示你從現在（present）到未來（future）的生命，下面的三條線（A, B, C）代表可能的選擇。
  </summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/115013678046359925/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=115013678046359925' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/115013678046359925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/115013678046359925'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/06/pay-for-hesitate.html' title='Pay for Hesitate'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-114943172377924254</id><published>2006-06-04T21:46:00.000+08:00</published><updated>2007-03-07T08:23:42.339+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='simplicity'/><category scheme='http://www.blogger.com/atom/ns#' term='specialty'/><category scheme='http://www.blogger.com/atom/ns#' term='RD'/><category scheme='http://www.blogger.com/atom/ns#' term='impression'/><title type='text'>格物致知</title><summary type='text'>iThome 的吳俊瑩在 blog〈研發人員應該「拜」王陽明〉 提到研發人員的兩種極端：一曰「專走捷徑」、二曰「埋頭硬幹」。

「專走捷徑」的研發人員，所知道的專業都是道聽途說來的（嗯，如果這稱得上專業的話）。遇到行外的人，可以高談闊論；遇到專家呢，則是出錯連連。


  這就是科技清談的形成，這是人的天性，談一些似是而非，談一些膨風臆測，感覺起來還蠻輕鬆的，但結果大家不但沒有成長，可能還會收到許多「非知識」。


「埋頭硬幹型」的研發人員呢，吳俊瑩也有生動的描述：



  東西拿來不明究裡就做了，一個產品任務到手，就開始「做中學」，做不出來就 Try ， Try 出來了自己就產生一套解釋， Try 不出來再問人，然後得到另外一套解釋。這些解釋可能對也可能不對，這就成為了我們的經驗，這些經驗是否下次還有效，真的不敢說。


吳俊瑩還為這兩種型做了註腳：

  走捷徑或者是硬幹，</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/114943172377924254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=114943172377924254' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/114943172377924254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/114943172377924254'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/06/blog-post.html' title='格物致知'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-114821775549081394</id><published>2006-05-23T21:09:00.000+08:00</published><updated>2007-05-11T14:21:53.605+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='literate programming'/><category scheme='http://www.blogger.com/atom/ns#' term='version control'/><category scheme='http://www.blogger.com/atom/ns#' term='documentation'/><category scheme='http://www.blogger.com/atom/ns#' term='font'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='unit test'/><title type='text'>Programming as a Specialist Doing</title><summary type='text'>
William 在〈軟體的庖丁解牛能力〉中引述了 Peopleware 第 29 章的話：


工作流程愈是獲得改善，工作內容就愈艱難……一、沒有被替除掉的工作，就是更加知識密集、需要更多技術與經驗……二、經過改善的工作流程，讓你能夠面對更艱難挑戰，而你也會面對這些挑戰……
當工作流程獲得實際改善，我們也同時需要更多更有能力、更有經驗的員工。




William 後來特地在〈工作流程愈是獲得改善，工作內容就愈艱難〉附上了這段話的原文，有興趣可以自行參閱。
這裡我就不談工作流程了，只談談作為一門專業，程式設計有哪些值得我們關注的小細節：

Coding Style

這裡不捲入哪種 Coding Style 較好的爭論。只強調一點，選擇特定的 Coding Style ，是為了要把程式的邏輯結構強調出來，使其看起來條理分明。並不是為了排版的好看與否。
這方面議題，就我所知，寫得最好的</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/114821775549081394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=114821775549081394' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/114821775549081394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/114821775549081394'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/05/programming-as-specialist-doing.html' title='Programming as a Specialist Doing'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-114806454104299155</id><published>2006-05-20T02:48:00.000+08:00</published><updated>2007-05-20T22:15:01.981+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='queue'/><category scheme='http://www.blogger.com/atom/ns#' term='embedded'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='unit test'/><title type='text'>An Array Implementation of Queue</title><summary type='text'>Embedded System 程式開發， queue 是很常用的資料結構： UART 在接收及傳輸資料時，通常各需要一個 character queue；在處理 keypad 的按鍵輸入時需要一個 key queue ；task 間的溝通，也可能要用到某種 event queue 。

除了提供一個這樣的 queue 的實作外，在〈A Unit Testing Toy〉中曾經提出的 ToyUnit ，也剛好藉這次，展示其實際的應用：


Architecture

這麼簡單的程式，我們只要分成下列三個 source files 就可以了：

Queue.h -&gt; interface
Queue.c -&gt; implementation
Queue_test.c -&gt; unit test


Writing Test Code First

在真正實作 queue 時，</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/114806454104299155/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=114806454104299155' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/114806454104299155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/114806454104299155'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/05/array-implementation-of-queue.html' title='An Array Implementation of Queue'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-114796975675651144</id><published>2006-05-19T00:07:00.000+08:00</published><updated>2007-03-09T21:29:59.814+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='symmetry'/><category scheme='http://www.blogger.com/atom/ns#' term='biology'/><category scheme='http://www.blogger.com/atom/ns#' term='pattern'/><category scheme='http://www.blogger.com/atom/ns#' term='review'/><category scheme='http://www.blogger.com/atom/ns#' term='math'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>生物、數學、魔術</title><summary type='text'>

Jserv 於〈大自然、數學、魔術〉引介的《大自然的數學遊戲》，碰巧我也有收藏（1996），在多次閱讀後，還是意猶未盡。作者 Stewart 在書中傳達的中心思想是：


  Nature's rhythms are often linked to symmetry, and that the patterns that occur can be classified mathematically by invoking the general principles of symmetry-breaking.


Stewart 的另一著作《Life's Other Secret: The New Mathematics of the Living World》，譯本《生物世界的數學遊戲》，在得知也由天下文化出版後，當然二話不說，馬上衝去書街，抱一本回來過過癮（Jan 06, </summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/114796975675651144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=114796975675651144' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/114796975675651144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/114796975675651144'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/05/blog-post.html' title='生物、數學、魔術'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-114683601207144974</id><published>2006-04-30T22:32:00.000+08:00</published><updated>2007-03-07T08:20:50.701+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='literature'/><category scheme='http://www.blogger.com/atom/ns#' term='impression'/><title type='text'>重大事情，輕輕描寫</title><summary type='text'>四月的最後一個早上，雖是週日，昨夜未眠，眼皮沈重，我還是落下床去，趕赴聚會……

午后，網友領我們參加「我心中的青春寫作靈魂」座談。

原想座談會時好好養神，結束後可以到誠品逛一下。因為樓下就是誠品信義店，年初開幕時有來逛過，收穫良多。

很意外地，座談一開始就吸引我的注意，一直持續到結束，我的耳朵還是張得大大的，汲取著講者的演說。

講座由陳義芝主持，邀請了鄭清文、廖玉蕙、羅智成、楊照，四位作家輪番上陣，訴說吸引自己寫作的動機。

楊照強調自己有「非寫不可的理由」－－踏入寫作生涯前，他經歷了生命中的無奈、無助和痛苦，覺得自己是個「多餘的人」，後來由寫作找回了自己，讓自己感覺對了，不再覺得存在是多餘。同時也訴說了從原本作品只有自己會閱讀，到後來有了第一批讀者後內心發生的微妙變化。

廖玉蕙以散文見稱－－她說明寫作可以創新，但要無損實務。生命像一趟旅程，充滿驚奇與喜悅，在這一連串的冒險後，</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/114683601207144974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=114683601207144974' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/114683601207144974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/114683601207144974'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/04/blog-post_30.html' title='重大事情，輕輕描寫'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-114423197390666938</id><published>2006-04-05T23:51:00.000+08:00</published><updated>2007-03-07T08:20:34.821+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='diet'/><category scheme='http://www.blogger.com/atom/ns#' term='impression'/><title type='text'>Tastes of Time</title><summary type='text'>幾天前電視上看到豆瓣醬的報導，以「時間的味道」為題，劉炳榮受訪時說道：
一甕上好的豆瓣醬，全賴古法融入「時間」釀造而來。大豆、蠶豆、辣椒要分別發酵後，放入大瓦甕中，歷經八個月至一年的曝曬，再依比例加上五香粉混和調製，然後注入純芝麻油才告完成……


我想凡是當過兵的，或是在研究所待過的，都很能體會，除了食物外，還有很多事情都需要用「時間」來熬，才熬出味道來。套用 Jserv 在〈初等概念〉中的說法，唯有這番痛苦的煎熬，才能把深度給予我們。唉，我是個中輟生，至今仍然只是在街上打混，還沒熬出 Jserv 所說的深度 :p

「時間的味道」，這標題下得真是好，心中反覆咀嚼，硬是嚼出一番滋味！



Tags: [impression] [diet]
</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/114423197390666938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=114423197390666938' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/114423197390666938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/114423197390666938'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/04/tastes-of-time.html' title='Tastes of Time'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-114395723054381987</id><published>2006-04-02T14:45:00.000+08:00</published><updated>2007-05-20T22:47:03.260+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='embedded'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Enjoy the Fine Code</title><summary type='text'>在〈初等概念〉一文， Jserv 說道：

在我看來，C Programming Language 本來就是用來寫作業系統，所以相關的基礎知識也要有一定的理解，至少也需要對硬體有認知，這樣才有機會徹底理解 C 語言，而 C++ 就更不說了，不僅 ISO C++ spec 複雜難懂，又得遷就於 C++ compiler 許多不合標準但陳窠已久的特性，又得將其 OOPL 的理念貫徹於專案開發，這使得沒有對特定 domain knowledge 有足夠掌握者，難以透過 C++ 將其發揮得淋漓盡致。


由〈初等概念〉文末附的 links，我尋線逛到 Dan Saks 在 Embedded.com 發表的專欄，並發現許多精緻優雅的 C 程式片段，堪稱為程式中的小品文，值得好好駐足欣賞：




Symbolic constants
Enumerations as Counters
</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/114395723054381987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=114395723054381987' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/114395723054381987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/114395723054381987'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/04/enjoy-fine-code.html' title='Enjoy the Fine Code'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-114382996582985924</id><published>2006-04-01T02:00:00.000+08:00</published><updated>2007-03-07T08:20:01.962+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='note'/><category scheme='http://www.blogger.com/atom/ns#' term='trend'/><category scheme='http://www.blogger.com/atom/ns#' term='business'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>世界，已輾平！</title><summary type='text'>Bill Gates 跟我說，「娘胎樂透彩」已經推翻了，地理和人才間的關係已完全改觀。他說，三十年前如果你可以選，你一定寧願是一名出生在紐約州 Poughkeepsie 的庸才，也不願成為一名天才卻出生在孟買或上海，原因是在 Poughkeepsie 過好日子的機率，就算你是庸才，也比孟買或上海的天才大很多，但世界變平了，連線就可以全球競合，才力甩得掉地理羈絆了。

Bill Gates 說：「現在我寧願當一名生在中國的天才，也不要當生在Poughkeepsie 的庸才。」
摘錄自 Thomas L. Friedman 的《世界是平的》，page174。

Thomas 提到全球化經歷三個階段了：
1492~1800「全球化 1.0」，世界由大尺度縮成中尺度，推動的力量來自國家。1800~2000「全球化 2.0」，世界從中尺度縮成小尺度，推動的力量來自企業。2000~now「全球化 </summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/114382996582985924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=114382996582985924' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/114382996582985924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/114382996582985924'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/04/blog-post.html' title='世界，已輾平！'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-114279126887058749</id><published>2006-03-29T23:48:00.000+08:00</published><updated>2007-03-24T16:07:56.736+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FSM'/><category scheme='http://www.blogger.com/atom/ns#' term='OS'/><category scheme='http://www.blogger.com/atom/ns#' term='embedded'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>Embedded System Design</title><summary type='text'>
許多 embedded system ，如 MP3 player, mobile phone, PDA，都內含 embedded OS；也有很多小型的 embedded system ，如 USB controller, Nand Flash controller，是不必動用到 OS 的。 embedded OS 提供的 services，最基本的是 multitasking  ，其他如 memory management, protocol stack, file system... 也很常見。

對一些小型的應用，把 OS 納入，不但多耗用硬體資源，還可能使系統變得複雜許多。

一個好的思考點是，「在甚麼情況下，把 OS 安置到 embedded system 內才變得必要？」。

看了《Embedded System Design》，得到了一些啟發，面對這個議題，</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/114279126887058749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=114279126887058749' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/114279126887058749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/114279126887058749'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/03/embedded-system-design.html' title='Embedded System Design'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-114279316495560089</id><published>2006-03-26T02:01:00.000+08:00</published><updated>2007-03-24T16:55:47.040+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='embedded'/><category scheme='http://www.blogger.com/atom/ns#' term='debug'/><title type='text'>Debugging Embedded Systems</title><summary type='text'>在 Embedded System 除錯，和在 PC Software 除錯，概念上是相通的，那就是要運用科學的方法，其步驟如下：


仔細觀察：從可重複的（repeatable）實驗中蒐集資料。
提出假設：根據蒐集到的資料提出假設、架構理論模型。
設計實驗：設計實驗以證明或推翻假設。
進行實驗。
重複以上過程：如果實驗結果不能支持假設，那假設便是錯的，所以要再重複整個過程。


這個「觀察 -&gt; 假設 -&gt; 實驗 -&gt;……觀察 -&gt; 假設 -&gt; 實驗……」的過程，運用到除錯上就是：



想辦法使 bug 發生的情況穩定下來，讓 bug 是可重現的（reproducible），把揭發這個 bug 所需要最簡單的情境找出來。
判斷 bug 的根源。
根據對 bug 的判斷，修正程式碼。
測試修正後的程式。
如果 bug 還在，不是誤判 bug 的成因了，就是還有其他 bug 沒剔除，</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/114279316495560089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=114279316495560089' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/114279316495560089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/114279316495560089'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/03/debugging-embedded-systems.html' title='Debugging Embedded Systems'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-114154526256799745</id><published>2006-03-05T13:32:00.000+08:00</published><updated>2007-05-20T22:05:09.442+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='embedded'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='unit test'/><title type='text'>A Unit Testing Toy</title><summary type='text'>Unit Testing 的 framework，最早是由 Kent Beck 在〈Simple Smalltalk Testing〉這篇 paper 中提出。後來因為 Java 的流行，及 Java 和 Smalltalk 的相似性，Kent Beck 又完成了一個 Java 版本的 Unit Testing framework -- JUnit 。隨著 Extreme Programming 的熱門，以及 test-driven development 在實務上的重大成功，現在幾乎各種程式語言都有它們的 Unit Testing Framework ，大家都來 Unit 一下，並通稱為 XUnit。


還記得我曾經為一個簡單的 Prolog Interpreter ，在 C++ 下找來了 Unit++ 來作 Unit Test，以下是當時寫的 test suit:


 1: /*</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/114154526256799745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=114154526256799745' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/114154526256799745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/114154526256799745'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/03/unit-testing-toy.html' title='A Unit Testing Toy'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113778012615620587</id><published>2006-01-21T01:55:00.000+08:00</published><updated>2007-06-20T06:47:01.437+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='parser'/><category scheme='http://www.blogger.com/atom/ns#' term='scanner'/><category scheme='http://www.blogger.com/atom/ns#' term='functional'/><category scheme='http://www.blogger.com/atom/ns#' term='Yacc'/><category scheme='http://www.blogger.com/atom/ns#' term='Lex'/><category scheme='http://www.blogger.com/atom/ns#' term='compiler'/><title type='text'>Source Transformation</title><summary type='text'>
前幾天由 Tim 的來信，得知有個叫 TXL 的東西，好像很神奇，在好奇心趨使下也去一探究竟：


TXL is a unique programming language specifically designed to support computer software analysis and source transformation tasks. ...TXL is best at tasks that involve structural analysis and transformation of formal notations such as programming languages, specification languages, structured documents and so on.



這看起來不是跟 Lex/Yacc 或 XSL/T </summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113778012615620587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113778012615620587' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113778012615620587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113778012615620587'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/01/source-transformation.html' title='Source Transformation'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113775885857494252</id><published>2006-01-20T19:38:00.000+08:00</published><updated>2007-05-26T15:03:57.094+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tagrolls'/><category scheme='http://www.blogger.com/atom/ns#' term='BlogTech'/><category scheme='http://www.blogger.com/atom/ns#' term='Tags'/><title type='text'>美味的 Tagrolls</title><summary type='text'>
之前發現 del.icio.us 有提供 linkrolls 的服務，現在已經被我整合到 News Berry 的 SideBar 裡了。剛剛逛 del.icio.us 的 Help 時，發現它右下角有一個 Blog Integration 的分類，裡面有個叫做 Tag rolls 的東西。前陣子我才在〈Categorize for Blogger〉中說明我的 blog 就是利用 tags 來分類的說。tag rolls 聽起來就知道跟 tag 有關且借用了 link rolls 的概念。其實 del.icio.us 提供這個就是要幫助我們能很方便地把 tags 整合到 web page 中。對於 tag 的愛用者來說，這玩意一定要嘗試嘗試的，以下是我的 del.icio.us tagrolls:






Tags: [BlogTech] [tags] [tagrolls]
</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113775885857494252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113775885857494252' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113775885857494252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113775885857494252'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/01/tagrolls.html' title='美味的 Tagrolls'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113778234097565570</id><published>2006-01-20T02:17:00.000+08:00</published><updated>2007-03-07T08:17:05.961+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='robot'/><title type='text'>Robot Dream Exposition Taiwan</title><summary type='text'>智慧機器人這個領域的發展，一直都很能引起我的注目，恰巧今年台灣首次舉辦了機器人博覽會，百聞不如一見，週四傍晚也到展覽會場逛逛，長長見識。到會場後，出入口附近免不了安排一些機器人商品在那兜售。如果不想參觀展覽的，或參觀完後覺得意猶未盡的，可以在這裡花錢抱幾具回去過過癮，當然荷包因此大失血是免不了的啦。

言歸正傳，這次的展覽分成「仿生機器人館」、「新一代機器人館」及「機器人教育館」等三大主題館。仿生機器人館比較像電影特效，考驗的主要是機電工程的設計能力，所以我很快就晃過了。新一代機器人館及機器人教育館內的展示很多都強調機器人跟人類間的互動，要達到這個目的，機器人需要具備基本的感知及智慧能力，來接收環境訊息及判斷對訊息如何反應。其中：

Sony 轟動一時的 AiBo 經過多代的演進後，現在已經更趨成熟，成為名符其實的電子機器寵物。

自從 Handa 發表它的 ASIMO ，這幾年下來，</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113778234097565570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113778234097565570' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113778234097565570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113778234097565570'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/01/robot-dream-exposition-taiwan.html' title='Robot Dream Exposition Taiwan'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113757204717770115</id><published>2006-01-18T14:30:00.003+08:00</published><updated>2008-05-31T01:01:05.751+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIT'/><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='transducer'/><category scheme='http://www.blogger.com/atom/ns#' term='sight'/><category scheme='http://www.blogger.com/atom/ns#' term='retina'/><category scheme='http://www.blogger.com/atom/ns#' term='note'/><category scheme='http://www.blogger.com/atom/ns#' term='brain'/><category scheme='http://www.blogger.com/atom/ns#' term='NN'/><category scheme='http://www.blogger.com/atom/ns#' term='Foveon'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>The Silicon Eye</title><summary type='text'>

在〈The Fitness of Things〉文末提到的《矽眼》，我這個月初在網路上得知此書，於 8 號溜到政大書城購買，當天就熬夜將它閱讀完畢、畫上重點、附上書籤。原本打算寫個評介的，想想還是把我批註的部份整理整理，將內文摘錄摘錄就好：



視覺不是一種感覺，而是一種訊息理解力。[p22]

Carver Mead 和他的研究小組發展出對助聽器極有效用的電子耳蝸，也設計出一系列的視網膜晶片。[p23] 

一旦你親手建造某樣東西，你就能發掘到光憑思索或測量所無法觸及的層面。一旦了解真意，並抓住其中的物理基本原則，就能發展出更好的實物。[p23] 

Foveon 相機的特色是，每一個畫素都將影像的真實特徵記錄下來，揚棄數位模擬的方式。[p24] 

Foveon 的名稱，是由人體視網膜中具有高度色彩解析能力的中央窩（fovea）而來。[p42] 

</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113757204717770115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113757204717770115' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113757204717770115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113757204717770115'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/01/silicon-eye.html' title='The Silicon Eye'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113742295194364821</id><published>2006-01-16T22:42:00.000+08:00</published><updated>2007-03-09T22:12:33.763+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='solution space'/><category scheme='http://www.blogger.com/atom/ns#' term='MIT'/><category scheme='http://www.blogger.com/atom/ns#' term='fitness of things'/><category scheme='http://www.blogger.com/atom/ns#' term='sight'/><category scheme='http://www.blogger.com/atom/ns#' term='retina'/><category scheme='http://www.blogger.com/atom/ns#' term='engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>The Fitness of Things</title><summary type='text'>
突然發現，書架上有好些書都提到 MIT ，其中更有幾本，是以 MIT 為故事背景的。 1999 年購入的這本《MIT 長廊下的思考》是描寫關於「工程史」和「科技想像」的。書中首先提到，早期的工程界，對其中的菁英份子而言，促使他們與眾不同、促成他們成功的背後，潛藏著一股力量，這股力量就是對事物適性的感受力（A sense of the fitness of things）：




在 MIT 長廊停留越久，錦囊空間（solution space）就變成一種直覺。它來自於對宇宙的正確思維方式。遊走於這條長廊，你會發現主觀和客觀、物質和精神、事實現狀和該有的情況、人造和自然、發現和發明、天生和創造之間的差異，逐漸消失。



所謂工程，就是把符合利益、想法和願望的性質加以定位組合；只要做得好、剛剛好、很多次，那麼真實世界和想像範疇之間的差異，就會逐漸淡化。


這種以實務和直覺掛帥的情形，</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113742295194364821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113742295194364821' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113742295194364821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113742295194364821'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/01/fitness-of-things.html' title='The Fitness of Things'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113666898435695743</id><published>2006-01-08T05:18:00.000+08:00</published><updated>2007-03-24T16:19:10.196+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IDE'/><category scheme='http://www.blogger.com/atom/ns#' term='porting'/><category scheme='http://www.blogger.com/atom/ns#' term='CPP'/><category scheme='http://www.blogger.com/atom/ns#' term='GNU'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='freeware'/><title type='text'>我的 Linux on Windows 體驗</title><summary type='text'>
Linux-like 環境下許多好用的工具被熱心的使用者移植到 Windows 上。剛開始人們先移植的是上面的程式開發環境，慢慢的其他實用的軟體也陸陸續續被移植過來。我在 Linux 下接觸了 GNU toolset 後，也在 DOS 下找來了 DJGPP ，企圖讓程式可達到 source code portable  的目的。然後又用了好一陣子的 Cygwin ，也都是用來開發 DOS-based 的程式。在試用了 MinGW  with MSYS 後，覺得比 Cygwin 順手多了，就一直沿用至今。 去年才聽說的 coLinux ，更進一步讓我們可以直接在 Windows 上安裝的 Linux ，省掉了許多從前需要移植程式的場合。



十多年前剛接觸 C++ 時，是在 DOS 下開發程式的，當時費了一個暑假的時間完成的〈天線場型電腦繪圖〉程式，就是利用 Borland C++ </summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113666898435695743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113666898435695743' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113666898435695743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113666898435695743'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/01/linux-on-windows.html' title='我的 Linux on Windows 體驗'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113662261422134300</id><published>2006-01-07T15:48:00.000+08:00</published><updated>2007-03-09T22:16:50.999+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CAS'/><category scheme='http://www.blogger.com/atom/ns#' term='numeric'/><category scheme='http://www.blogger.com/atom/ns#' term='scientific'/><category scheme='http://www.blogger.com/atom/ns#' term='Matlab'/><category scheme='http://www.blogger.com/atom/ns#' term='freeware'/><category scheme='http://www.blogger.com/atom/ns#' term='algebra'/><category scheme='http://www.blogger.com/atom/ns#' term='math'/><category scheme='http://www.blogger.com/atom/ns#' term='NCE'/><category scheme='http://www.blogger.com/atom/ns#' term='Mathematica'/><title type='text'>Scientific Computation Tools</title><summary type='text'>
作科學研究常需要作些計算，可以幫我們作這些運算的軟體很多，其中最讓我印象深刻的是   Mathematica 及 Matlab 。它們用起來方便，功能更是不在話下，但就是要花錢買，而且還不便宜。所以我就找了一些功能雖沒那麼完整，但還算堪用的軟體來試試，重點是都是免費的。例如用於代數、符號運算的 Axiom, Maxima, Yacas 等。方便用於數值、矩陣運算的 FreeMat,   Octave,  RLaBPlus, SciLab 等。



Mathematica 是一套電腦代數系統（computer algebra system, CAS）。我們可以利用它來作因式分解，及微積分運算，值得注意的是，這些運算單元可以用代數符號表示就好，不用非得要是數值，因為它有精湛的符號運算能力。例如：我們可以要求它作 a^2 - b^2 的因式分解，而得到 (a-b) * (a+b) 這個答案</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113662261422134300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113662261422134300' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113662261422134300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113662261422134300'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2006/01/scientific-computation-tools.html' title='Scientific Computation Tools'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113553603589499165</id><published>2005-12-26T01:47:00.000+08:00</published><updated>2007-03-09T22:43:06.779+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIT'/><category scheme='http://www.blogger.com/atom/ns#' term='Embedology'/><category scheme='http://www.blogger.com/atom/ns#' term='math model'/><category scheme='http://www.blogger.com/atom/ns#' term='CWM'/><category scheme='http://www.blogger.com/atom/ns#' term='chaos'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>提琴、數學模擬、魚</title><summary type='text'>

昨天由書架取出了 2001 年購入的《 e 貓掉進未來湯》來複習。在〈數位巴哈〉那章，作者為了描述提琴的虛擬數位化身，而提到數學模擬的方式。有兩種傳統的數學模擬方式：
第一種要考慮到所有相關的物理因素，然後巨細靡遺地模擬，這就好像要畫撒哈拉沙漠時考慮每一粒沙一樣。
另一種方式是為所有的輸入及輸出組合，建立一張很大的表格，然後「查表」。


兩種方法對稍微複雜些的系統，例如提琴，都顯得不切實際……昨天由書架取出了 2001 年購入的《 e 貓掉進未來湯》來複習。在〈數位巴哈〉那章，作者為了描述提琴的虛擬數位化身，而提到數學模擬的方式。有兩種傳統的數學模擬方式：第一種要考慮到所有相關的物理因素，然後巨細靡遺地模擬，這就好像要畫撒哈拉沙漠時考慮每一粒沙一樣。另一種方式是為所有的輸入及輸出組合，建立一張很大的表格，然後「查表」。兩種方法對稍微複雜些的系統，例如提琴，都顯得不切實際……

</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113553603589499165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113553603589499165' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113553603589499165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113553603589499165'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2005/12/blog-post.html' title='提琴、數學模擬、魚'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113516262884201848</id><published>2005-12-21T17:14:00.000+08:00</published><updated>2007-03-09T22:28:26.810+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='signature'/><category scheme='http://www.blogger.com/atom/ns#' term='Email'/><category scheme='http://www.blogger.com/atom/ns#' term='icon'/><category scheme='http://www.blogger.com/atom/ns#' term='generator'/><title type='text'>酷酷的 Email Signature Icon</title><summary type='text'>昨天經過 Nexodyne.com ，發現右邊的 Featured Links 裡有個叫 Email Icon Maker 的。點進去後，果然如我預期，可以用來製作自己的 email signature icon。除了酷炫的效果外，它還有個實用的目的，就是避免你公佈的 Email address 被在網路爬爬走的 web spider 收去，然後就在收到一堆廣告信時懊悔。



當場我就牛刀小試一下，產生了 gmail 的 signature icon 及 Yahoo! mail 的 signature icon 。
Nexodyne.com 的 Email Icon Marker 除了支援的 mail icon generator 除了 GMail 及 Yahoo! 外，其他常見的還有如：Hotmail, MSN, AOL 等，也都在支援之列。
如果你覺得 Nexodyne.com 的</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113516262884201848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113516262884201848' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113516262884201848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113516262884201848'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2005/12/email-signature-icon.html' title='酷酷的 Email Signature Icon'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113472461179935702</id><published>2005-12-16T21:25:00.000+08:00</published><updated>2007-03-09T22:32:14.009+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIT'/><category scheme='http://www.blogger.com/atom/ns#' term='individualize'/><category scheme='http://www.blogger.com/atom/ns#' term='human-centric'/><category scheme='http://www.blogger.com/atom/ns#' term='speech'/><category scheme='http://www.blogger.com/atom/ns#' term='customization'/><category scheme='http://www.blogger.com/atom/ns#' term='collaboration'/><category scheme='http://www.blogger.com/atom/ns#' term='automation'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>Human Centric, 人本運算</title><summary type='text'>
Michael L. Dertouzos ，前 MIT's Media Lab 主任； 1999 年發起的活氧計畫，是以他提出的人本運算為核心；於 2001 年出版了《The Unfinished Revolution》，中譯本《科技活氧革命》；遺憾的是，他也在書問世的同一年離開這個世間。 Michael 提出人本五大原力（human-centric forces）：語音理解（speech understanding）、自動化（automation）、個性化資訊存取（individualized information access）、協同工作（collaboration）、量身打造（customization）。並說明這五原力如何搭配資訊科技，來為人們服務：



無論從事甚麼活動，人本運算都以自然、幾乎無形的方式，幫助我們事半功倍。不妨想像明日的資訊市集（Infomation </summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113472461179935702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113472461179935702' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113472461179935702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113472461179935702'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2005/12/human-centric.html' title='Human Centric, 人本運算'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113472110379154184</id><published>2005-12-16T16:08:00.000+08:00</published><updated>2007-03-07T08:13:21.464+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BlogTech'/><category scheme='http://www.blogger.com/atom/ns#' term='Clustrmaps'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><title type='text'>來自 ClustrMaps 的觀察</title><summary type='text'>
前些日子在 ecmanaut 的部落格 sidebar 下方發現了這個 ClustrMaps 後，就心想，這真是個時髦的玩意兒。在前些天兒一時興起，也到 ClustrMaps 註冊一個來用。這三天下來，陸續發現一些好玩的現象。

照原本預期的， ClustrMaps 可以讓人知道 visit 我的部落格的人們，在世界各地分佈的情形。簡單說， ClustrMaps 就是一張 Visitors' hit map ，它不但可以用來取代傳統的訪客計數器，還提供更多有用的資訊。

這幾天下來，我觀察到自己的部落格一開始 visits 都是來自台灣的貢獻，然後是日本，大陸廣洲一代，還有美國東部及歐洲西部。今天的更新還添加了印度以及美國西部。

我猜測那些來自台灣的 visits ，大部分是我自己點閱的 :)

由於我的部落格內文是以中文為主，只是很多標題都取英文的，所以這裡強烈懷疑，</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113472110379154184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113472110379154184' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113472110379154184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113472110379154184'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2005/12/clustrmaps.html' title='來自 ClustrMaps 的觀察'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113471887889409600</id><published>2005-12-16T15:11:00.000+08:00</published><updated>2007-03-07T08:13:00.886+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BlogTech'/><category scheme='http://www.blogger.com/atom/ns#' term='Tagboard'/><category scheme='http://www.blogger.com/atom/ns#' term='Chatterbox'/><title type='text'>超 cute 的 chatter box</title><summary type='text'>前天才在〈Guest Book, and then?〉說貼貼板跟訪客簽名簿功能重疊性太高，所以暫時不放上來的。猶言在耳，那時還對於想為自己網頁增添貼貼板的部落客們，推薦了 Tag-Board.com 說。今天我變卦了，我不但為自己的部落格增添了貼貼板的功能，還強烈推薦 Flooble 的 Chatterbox ！

原本我是想到 Tag-Board.com 註冊一下，試試貼貼板的效果，不料我慣用的 ID 被捷足先登了。在不情願地改用別的 ID 註冊試用後，發現它的介面不合我胃口。所以就改到 Flooble Chatterbox 玩玩，一用之下真是驚為天人，介面真是太 cute 了，而且可以完全融入我的部落格設計風格，它的視覺效果也不是訪客簽名簿可以取代的，所以當然要讓它繼續嵌鑲到我的部落格...

此外，還意外地發現 Flooble 提供的其他服務，看起來都滿精巧可愛的，</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113471887889409600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113471887889409600' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113471887889409600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113471887889409600'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2005/12/cute-chatter-box.html' title='超 cute 的 chatter box'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113464835226322985</id><published>2005-12-15T20:05:00.000+08:00</published><updated>2007-07-28T00:38:02.701+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='memo'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Firefox extensions 備忘</title><summary type='text'>

在 William's Blog 看了〈 Firefox 擴充套件備忘錄〉後，發覺自己也是火狐的重度使用者，在不同電腦安裝火狐時，也遭遇到套件散得到處都是的問題。所以我也為火狐的擴充套件寫了這篇備忘錄。同樣地，這篇也會視日後使用情形隨時更新。


Adblock Plus
Ads were yesterday!

新同文堂
中文簡繁轉換

Tab Mix Plus
It includes such features as duplicating tabs, controlling tab focus, tab clicking options, undo closed tabs and windows, plus much more. It also includes a full-featured session manager with crash recovery that </summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113464835226322985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113464835226322985' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113464835226322985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113464835226322985'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2005/12/firefox-extensions.html' title='Firefox extensions 備忘'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113456578095748535</id><published>2005-12-14T20:01:00.000+08:00</published><updated>2007-03-09T22:36:54.676+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BlogTech'/><category scheme='http://www.blogger.com/atom/ns#' term='Blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='Tagboard'/><category scheme='http://www.blogger.com/atom/ns#' term='Clustrmaps'/><category scheme='http://www.blogger.com/atom/ns#' term='Guestbook'/><title type='text'>Guest Book, and then?</title><summary type='text'>
這兩天陸續補充 Blogger 的不足，捲起袖子來為它妝點門面：為每篇文章加了引用（Trackbacks）的 link ；在 sidebar 的下方加了一個酷酷的圖，叫做 ClustrMaps ；添增了訪客簽名簿（Guest Book）方便訪客簽名留言、說些悄悄話。月曆功能看起來不是很實用所以沒加上，貼貼板（Tagboard）雖然很酷，但跟訪客簽名簿的功能部份重疊，所以也沒放進去。


Blogger 雖然提供了反向連結（Backlinks）來自動追蹤，看看哪些 blogs 引用了你的 post 。但必須手動處理的引用（Trackbacks）還是有精緻、即時的優點。所以我也不免俗地，利用 HaloScan 提供的 tird party 服務來補上 Trackbacks 功能。
傳統的網站首頁都會有訪客計數，來知道網站被拜訪的次數。在我看來，這個功能對 Blog 這種私人日誌而言，</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113456578095748535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113456578095748535' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113456578095748535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113456578095748535'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2005/12/guest-book-and-then.html' title='Guest Book, and then?'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113439979159866655</id><published>2005-12-12T21:11:00.000+08:00</published><updated>2007-05-26T15:07:08.199+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BlogTech'/><category scheme='http://www.blogger.com/atom/ns#' term='Blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='Tags'/><category scheme='http://www.blogger.com/atom/ns#' term='Greasemonkey'/><title type='text'>Categorize for Blogger</title><summary type='text'>
用 Blogger 來寫網誌的好處是自由，可以自訂格式，可以一個帳號管理多個 blogs 。缺點是很多東西都要捲起袖子來自己動手作，別家有提供的一些基本的東東，例如網誌分類（Categorize）等，Blogger 都繳了白卷。
為 Blogger 網誌分類，在 FreshBlog 可以找到許多作法。我最後是用 BlogMarks 這種 tag-based 的 social bookmarking 服務來為網誌分類。出現在我的每篇網誌下面的 Tags 列表所呈現的就是這種分類效果。


感謝 Greasemonkey 這個 Firefox 套件，讓原本需要在每篇網誌文末手動敲進 tags link 的過程，可以更自動化。如果你很好奇怎麼自動化法，可以參考 Greasemonkey Method: Update for Firefox 1.5 and Greasemonkey 0.6.4</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113439979159866655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113439979159866655' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113439979159866655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113439979159866655'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2005/12/categorize-for-blogger.html' title='Categorize for Blogger'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113310360689731139</id><published>2005-11-27T22:58:00.000+08:00</published><updated>2007-03-07T08:10:43.445+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='composition'/><category scheme='http://www.blogger.com/atom/ns#' term='literature'/><title type='text'>曇花一現</title><summary type='text'>
在王鼎鈞先生《作文七巧》中〈描寫〉這一巧看到幾個短句，是有關曇花的，套用作者的說法，文句很樸素很直接的描出一個輪廓來，簡直就是在「描花」：

院子裡的燈打開了，枝枝葉葉的顏色深得發黑，那新放的曇花卻白得耀眼。近前細看，花瓣薄得出奇，瓣那麼大，只有一丁點兒連在蒂上，在夜晚濕涼的空氣裡暗暗顫抖，怪不得開了就謝，不能持久。正想著，已有一個花瓣悄悄然跌下來，被葉叢托住了。

曇花又稱瓊花，台灣的花市也普遍可以看到，從前書桌旁的陽台上也養了一盆，如今讀來，更是有感覺。所謂曇花一現，就是說明這種景象。

行文至此，鼻間還真聞到曇花陣陣的幽香，那種感覺是如此熟悉、深刻。



Tags: [composition] [literature]
</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113310360689731139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113310360689731139' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113310360689731139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113310360689731139'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2005/11/blog-post.html' title='曇花一現'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113279942474655041</id><published>2005-11-24T10:00:00.000+08:00</published><updated>2007-03-07T08:10:24.864+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='template'/><title type='text'>我的 Blog 換膚了！</title><summary type='text'>
昨天在 Aman 的果園發現鮮艷可口的草莓，忍不住摘來為自己的 Blog 裝扮裝扮。 blog 穿起一身草莓裝，再騎上火狐，果然耳目一新。誰知道 IE 跟草莓不搭，還好 Aman 鼎力幫忙，手術成功，可喜！可喜ㄚ！


疑，不是說手術成功嗎？怎麼看起來跟之前一樣？
Hmm..
照過來，照過來...
仔細看了，Forwarded News ， 現在變成 News Berry 了 :)
這麼嬌艷欲滴的新聞，真想咬一口！



Tags: [blog] [template]
</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113279942474655041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113279942474655041' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113279942474655041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113279942474655041'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2005/11/blog.html' title='我的 Blog 換膚了！'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113154080111175309</id><published>2005-11-09T20:19:00.000+08:00</published><updated>2007-03-07T08:10:04.536+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='random'/><category scheme='http://www.blogger.com/atom/ns#' term='universe'/><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='business'/><title type='text'>Life is Random</title><summary type='text'>
Steve 重回 Apple 後，推出了一系列切合消費者喜好的玩意兒。其推出的每一項產品，都有著又酷又貼切的廣告詞。以 iPod shuffle 為例，在該產品首頁寫著：Time to mix things up. Meet iPod shuffle, the unpredictable new iPod. What will it play next? Can it read your mind? Can it read your moods? Load it up. Put it on. See where it takes you. Choose from pocket-size 512MB or 1G models starting at $99(1) and surprise yourself.
以 mp3 player 所該具有的功能來看， iPod shuffle </summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113154080111175309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113154080111175309' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113154080111175309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113154080111175309'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2005/11/life-is-random_09.html' title='Life is Random'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113139627387759705</id><published>2005-11-08T03:19:00.000+08:00</published><updated>2007-03-24T17:42:50.763+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='quote'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>A Good Solution is Hard to Find</title><summary type='text'>
--

國中生就能理解的畢氏定理，古希臘學者竟將它當作祭品獻給上天；數百萬人都能哼唱第九交響曲，卻少有人渴望成為貝多芬那樣的音樂天才。這就是基本的非對稱性——辨識遠比發現來得容易。
-- 摘譯自《Out of Their Minds》〈A Good Solution is Hard to Find〉

--


我想，需要並非發明唯一的母親。一個人必須對問題的背景資訊有正確的瞭解。我並不是對所有遇到的問題都加以研究。而是對那些我所解決的問題，心中覺得真巧，剛好我有獨特的背景知識，可以用來解決此問題！就像命中註定，也是我責無旁貸的。
-- 高德納

--

人們心裡想要的東西，很少是他們真正需要的。他們想要的和需要的，往往是南轅北轍。而在科學技術的發明中，最重要的事便是能符合人們的慾念與需求。
-- Alan C. Kay

--



Tags: [book] [quote] [</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113139627387759705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113139627387759705' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113139627387759705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113139627387759705'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2005/11/good-solution-is-hard-to-find.html' title='A Good Solution is Hard to Find'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113135194065316575</id><published>2005-11-07T15:01:00.000+08:00</published><updated>2007-03-07T08:09:29.115+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='universe'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>The Main Sequence</title><summary type='text'>在好天氣的夜裡，選擇無光害的海濱或深山中或乾脆到天文台去也行，我們可以看到滿天的星斗，除了絕少數的例外，我們看到的大都是恆星。遠古以來，人們就為這些恆星編織許多故事，企圖讓這些星星顯得有組織些，也為了方便我們記憶。不過這些綺麗的故事，大多只出自人們豐富的想像，和一連串浪漫的巧合。直到近兩百年來，事情才慢慢有所改觀。


科學家發現，以恆星的亮度對它們的表面溫度在相空間上作圖，大部分的恆星會簇集在劃過這相空間的反斜線上，這條反斜線因而被稱為主序列（The main sequence）。

《Agile Software Development》一書告訴我們，在設計優良的軟體系統中，只要把恆星亮度以套件的抽象度（Abstration）取代，並將恆星的表面溫度代之以套件的不穩定度（Instable），我們也會發現類似這樣的一簇主序列。這不但讓我印象深刻，更使我佩服 Martin 巧思。



</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113135194065316575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113135194065316575' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113135194065316575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113135194065316575'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2005/11/main-sequence.html' title='The Main Sequence'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113112303212880250</id><published>2005-11-04T23:56:00.000+08:00</published><updated>2007-03-07T08:09:08.612+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='note'/><category scheme='http://www.blogger.com/atom/ns#' term='concept'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='refactoring'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>Improving The Design of Existing Code</title><summary type='text'>
標題都這樣下了，當然要祭出《Refactoring》這部經典囉！

這本書問世到現在，重構已經是成熟的軟體技術了，對程式員來說，裡面的東西就如同空氣和水般，融入每天的編程中。

我只是手癢，上來把這部經典裡面的名句摘錄一番，日後也好隨時端詳端詳：


如果你發現自己需要為程式添加一個特性，而程式碼結構使你無法很方便地那麼做，那就先重構那個程式，使特性的添加比較容易進行，然後再添加特性。
重構之前，首先檢查自己是否有一套可靠的測試機制。這些測試必須有自我檢驗（self-checking）能力。
重構技術係以微小的步伐修改程式。如果你犯下錯誤，很容易便可發現它。
任何一個傻瓜都能寫出計算機可以理解的程式碼。唯有寫出人類容易理解的程式碼，才是優秀的程式員。
重構（Refactoring）（名詞）：對軟體內部結構的一種調整，目的是在不改變「軟體之可察行為」前提下，提高其可理解性，降低其修改成本</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113112303212880250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113112303212880250' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113112303212880250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113112303212880250'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2005/11/improving-design-of-existing-code.html' title='Improving The Design of Existing Code'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113069413889396471</id><published>2005-10-31T01:39:00.000+08:00</published><updated>2007-03-07T08:07:36.704+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='society'/><category scheme='http://www.blogger.com/atom/ns#' term='complexity'/><category scheme='http://www.blogger.com/atom/ns#' term='system theory'/><category scheme='http://www.blogger.com/atom/ns#' term='small world'/><title type='text'>I want my Orkut</title><summary type='text'>前不久才接受阿哲的邀請，加入了 Linkist
今天又發現 Google 也推出了 Orkut ，可惜它跟 Gmail 一樣，要有人邀請才可加入 :(

Google 真是神，現在網路上最流行的東西它幾乎都有份，以我這幾天在 survey 的 Wiki 來說好了，剛剛才發現 Google 也有搞個叫作 Google Wiki 的東東出來，只不過還沒正式公開罷了@.@

~~

　 　提起人際網路，一件滿有名的東西就是所謂的六度分離理論。如果任何彼此認識的兩人間，都為他們拉條鍊標示出來。六度分離理論告訴我們，地球村上的任兩人 間，無論其種族差異多懸殊，也不論他們居住地距離多遙遠，只要六條鍊，就可以將他們串起來－－呵！世界真小！（What a small world!）

　　系統學家定義的小世界網路（The Small World Network）有「平等式」及「貴族式」兩種。</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113069413889396471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113069413889396471' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113069413889396471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113069413889396471'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2005/10/i-want-my-orkut.html' title='I want my Orkut'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-112982465971880860</id><published>2005-10-21T00:00:00.000+08:00</published><updated>2007-03-07T08:07:14.998+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='biology'/><category scheme='http://www.blogger.com/atom/ns#' term='fiction'/><category scheme='http://www.blogger.com/atom/ns#' term='ALife'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>《奈米獵殺》</title><summary type='text'>
　　學長推薦的《奈米獵殺》真的蠻值得一讀的。洪蘭翻譯，遠流出版。

　　整部小說充滿著“視覺效果”，作者要不是對相關場景有過第一手的接觸、認識，實在很難想像這些視覺效果是如何被營造、描寫地那麼生動、鮮明的。

　　此外，作為一部科幻驚悚小說，對於《奈米獵殺》，我反倒多了一分親切、少了一分震撼...

　　整部小說節拍緊湊、生動鮮明，又是相關科技想像作品的首創，拍成電影，必定能滿足特效狂的口味－－這裡真得蠻期待。

　　又由於相關的科技，對一般讀者可能稍嫌陌生，該作者就以第一人的方式將相關的背景由主角的旁白引出來。

　　這也是我擔心電影會拍濫掉的部分，最直接的表現方式就是安排主角在那“自言自語”，或是安排作者有寫日記的習慣，也許一次在電影的開頭交代清楚，也或者讓主角三不五時就作作白日夢... :p

　　要說還有什麼不足的地方，我只能說這部作品真的較著重在“科”、“幻”，</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/112982465971880860/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=112982465971880860' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112982465971880860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112982465971880860'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2005/10/blog-post_21.html' title='《奈米獵殺》'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-112982145295718047</id><published>2005-10-20T23:14:00.000+08:00</published><updated>2007-03-07T08:07:49.393+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='system theory'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>什麼是佛？</title><summary type='text'>
　　問曰：「什麼是佛？」答曰：「狗屎是佛。」
　　問曰：「如何修佛？」答曰：「餓了就吃，睏了就睡。」

　　以上引自朱邦復先生《智慧學九論》中第一論〈天理論〉最前面的引言。

　　初看直覺得好笑，於看完〈天理論〉後只覺得有理。　:)

　　朱先生是倉頡輸入法的發明人，本身的國學造詣頗深，並有一套自己的見解。《智慧學九論》是他個人對智慧學的心得整理。

　 　書中序言中提到「智慧學」就是「系統概念學」，係將概念的詮釋系統化。透過這個系統，組成一多相交連的「概念網路」，由單一概念可達於萬，由萬亦能回 歸於一。既能在層層的定義下，將概念精確無誤地微分到用機械指令執行，同時又能反本溯源，通透宇宙真實的本體，形成完整的認知。

　　但由於《智慧學九論》字句過於濃縮，所以朱先生又譜了一部長篇的科幻小說《宇宙浪子》，希望讀者在娛樂之餘，也能有效吸收他的灼見。

　　我個人的讀後見解是，</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/112982145295718047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=112982145295718047' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112982145295718047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112982145295718047'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2005/10/blog-post_112982145295718047.html' title='什麼是佛？'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-112982117972713797</id><published>2005-10-20T23:07:00.000+08:00</published><updated>2007-03-07T08:06:46.075+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>《電腦也搞不定》</title><summary type='text'>
　　電腦被一些人認為是神奇、無所不能的，竟能完成許多形形色色的任務...
　　相反地，另一些人卻持完全相反的看法，認為其純粹是工具，無論如何都不可能擁有如人腦般的優越性...
　　以下這本書，就從數學的角度來探討電腦的限制，及這些限制的應用等。
   書名：電腦也搞不定－－從數學看計算機科學的罩門（Computers Ltd. -- What They Relly Can't Do）   作者：David Harel   譯者：李國偉   出版：天下文化　2002/8/14
   　　以下就簡述各個章節的內容概要：

前言

　　前言主要是說明研究電腦限制的四大動機。

第一章　到底怎麼回事

　　快速地解釋、帶過演算法、程式設計等

第二章　有時候我們辦不到

　　提出「計算的侷限性也就是知識的侷限性」並將計算問題分作不可計算的、可計算的等區分；</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/112982117972713797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=112982117972713797' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112982117972713797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112982117972713797'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2005/10/blog-post_112982117972713797.html' title='《電腦也搞不定》'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-112982043169191005</id><published>2005-10-20T22:47:00.000+08:00</published><updated>2007-03-07T08:06:31.963+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='buy'/><category scheme='http://www.blogger.com/atom/ns#' term='psyche'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='system theory'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>Re: 請推薦值得買回家的好書</title><summary type='text'>我對於值得買回家的書有幾個評判標準：


  內容的主旨要能吸引我的注意，令人感到興趣。
  要能學到新知識、以前所不知道的或未曾想過的東西。
  最好能夠激發思考和想像力，帶來新的思維。
  值得一讀再讀的書。
  內容豐富、論述清晰，可用於相關主題的綜灠，發揮導讀的作用。
  急需對某主題來作運用，而能提供詳細的解答及know how，在加上腦容量一時無法記下那麼多skill方面的細節。
  對於此書非常喜歡，雖然可能過一段時間才可能再次閱讀，但擔心想再次閱讀時此書已無法找到了。




其中第 1, 2, 3, 4 點為必要條件，第 5, 6, 7 點為選擇性條件。

無論如何，先介紹幾本書和大家一起分享：


  
    《開放的心靈》"The Open Mind" by DAWNA MARKOVA, 雅音出版公司
    </summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/112982043169191005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=112982043169191005' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112982043169191005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112982043169191005'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2005/10/re.html' title='Re: 請推薦值得買回家的好書'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-112981928676313705</id><published>2005-10-20T22:36:00.000+08:00</published><updated>2007-03-07T08:06:15.401+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='society'/><category scheme='http://www.blogger.com/atom/ns#' term='math'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>所羅門王的智慧</title><summary type='text'>　　大家一定都聽過舊約聖經中所羅門王如何分配一個嬰孩給兩位宣稱自己是母親的故事。
　　分配的公平問題，對研究這些問題的人來說，是一個充滿倫理及邏輯議論的地雷區。
　　當有人說某事是不公平的，他們真正的意思往往是他們得不到想要的那一部份。
　　公平的分配不只是單純地把東西分割成相等大小，而是要考慮到不同爭執者放在爭執的東西上所持的價值觀。
　　大多數人都嘗試去拿他們能拿到的東西，而不願誠實說出自己心中的選擇。而所羅門王以巧計避免了這個問題。
　 　假定兩個人要分一塊蛋糕。最公平的方法是讓第一人去把蛋糕一切為二，而讓第二個人先選擇要哪一塊。第一人在切蛋糕時就顯露出他的喜愛。例如，如果他對蛋 糕上的櫻桃喜好程度大於蛋糕本身，他可能把蛋糕切成櫻桃較多那一半的蛋糕比另一半還小些。他希望另一人會去拿較大的一半。
　　就這個蛋糕問題解法，不管如何選擇，兩位都是贏家，一位得到更大的一半，</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/112981928676313705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=112981928676313705' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112981928676313705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112981928676313705'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2005/10/blog-post_112981928676313705.html' title='所羅門王的智慧'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-112981873138976753</id><published>2005-10-20T22:06:00.000+08:00</published><updated>2007-03-07T08:06:02.735+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pattern'/><category scheme='http://www.blogger.com/atom/ns#' term='building'/><category scheme='http://www.blogger.com/atom/ns#' term='review'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>《建築的永恆之道》內容詳要</title><summary type='text'>　　記得，幾個月前在誠品敦南店，在那駐足、翻閱此書近兩小時後，才很不捨地將它置回原位。
　　上週六再次造訪下，終於忍不住地買了下來...

　　原本要於這週末才向大家介紹此書的，但還是在書還沒翻完、內容未完全咀嚼下就忍不住急著向大家推介：

　　此書的作者及其同僚是第一位提倡以 Pattern Language 來規劃建築及城鎮的人，如今這個構想已經深植在物件導向的社群裡了。

　　相信您在看過本書後，也能對軟體的 Design Patterns 有著更深一層的領會。

　　這次我會先摘錄、簡介一下本書的內容，在經過一段時日的咀嚼後，也許還會讓大家知道我從本書學到了什麼深刻的概念──不論就軟體或非軟體上。及我為什麼推崇本書。

~~

   
書名：建築的永恆之道（The Timeless way of Building）   
原著：Christopher Alexander   
</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/112981873138976753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=112981873138976753' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112981873138976753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112981873138976753'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2005/10/blog-post_20.html' title='《建築的永恆之道》內容詳要'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-112970282427725207</id><published>2005-10-19T23:22:00.000+08:00</published><updated>2007-03-07T08:05:42.822+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='future'/><category scheme='http://www.blogger.com/atom/ns#' term='business'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>《啟動革命》</title><summary type='text'>
   
書名：啟動革命（Leading the Revolution）   
作者：Gary Hamel   
譯者：李田樹、李芳齡   
出版者：天下遠見出版股份有限公司   
出版日期：2000年12月25日                  
　　本來是想寫一篇書評或讀後心得的，後來想想，還是直接引用一些書中的內容：

~~

　 　「未來已經發生了，只是分配得不均勻罷了！」未來可能尚未發生在你的產業、你的公司、或你的國家，但可能已經發生在其他地方。革命者是「知識套利」 （knowledge arbitrage ）的專家，能透過準確的洞察力，把最先進的成功模式，套用到最落後的地方。因此，睜大你的眼睛吧！

　　同一產業內，大多數人的盲點是一樣的，都留意同樣的事物，忽略同樣的事物。
　　想成為產業革命者，除了應注意改變的事物，也要留意不變的事物。
　　看到了還不夠，</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/112970282427725207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=112970282427725207' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112970282427725207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112970282427725207'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2005/10/blog-post.html' title='《啟動革命》'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-110131042641728645</id><published>2005-10-19T23:02:00.000+08:00</published><updated>2007-05-02T18:03:44.734+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='complexity'/><category scheme='http://www.blogger.com/atom/ns#' term='philosophy'/><category scheme='http://www.blogger.com/atom/ns#' term='system theory'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>《理性之夢》</title><summary type='text'>

書名：理性之夢（The Dreams of Reason）——這世界屬於會作夢的人
作者：Heinz R. Pagels
譯者：牟中原、梁仲賢
出版者：天下文化出版股份有限公司
出版日期：1991年7月31日第一版／1993年11月15日第一版第11次印行
內容概要：



首先我要先聲明，閱讀本書最好選擇頭腦清晰的時候。如果可能的話，還要來回多讀幾遍，因為其描述的內容廣泛，但卻圍繞著同一個隱約的中心議題。當然，如果不願花費那麼多時間的話，也可以選幾個自己較感興趣的主題來細細推敲……

書中主要分成兩部分：

第一部分〈複雜性科學〉由第二章至第七章。各描述了〈新科學的綜合體〉、〈秩序、複雜性與渾沌〉、〈生命可以是如此的非線性〉、〈模擬真實世界〉、〈結合論與神經網路〉、〈錢賺得越來越快〉等主題。

這一部分說明了電腦的發明對於人類的衝擊，就如同望遠鏡或顯微鏡的發明般，</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/110131042641728645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=110131042641728645' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/110131042641728645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/110131042641728645'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2005/10/blog-post_110131042641728645.html' title='《理性之夢》'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-112977940357134956</id><published>2005-10-18T01:33:00.000+08:00</published><updated>2007-03-07T08:05:09.547+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='soliloquy'/><title type='text'>結束荒廢</title><summary type='text'>自從申請這個 Blog 空間後就之一直荒廢至今，該貼點東西了。
就從之前撰寫的書籍簡介開始吧 :)


Tags: [soliloquy]
</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/112977940357134956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=112977940357134956' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112977940357134956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112977940357134956'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2005/10/blog-post_18.html' title='結束荒廢'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-112983053575712048</id><published>2005-07-18T17:52:00.000+08:00</published><updated>2007-03-07T08:01:46.883+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='note'/><category scheme='http://www.blogger.com/atom/ns#' term='concept'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>[分享] 程式員的個人特質</title><summary type='text'>　　上次有預告說要寫一篇探討程式設計師人格特質方面的論述，就趁現在補上吧！  
   
　　無奈現在無法好好靜下心來構思內容。只好大部分都直接摘自《Code Complete》一書的論述，沒經過太多反芻。請原諒我的偷懶 =.="  
   
   
~~  
   
【智力與謙卑】  
   
　　要成為一個好的程式設計師，通常和智力沒有太大的關係。因為要能完全掌握一個程式，就得要有無限的腦容量，以吸收所有細節，並同時理解。而這對平凡的人類而言，是不可能的事情。所以  
   
『如何將您的智力集中發揮，遠比你天生的智力高低重要多了！』  
    
　　Edsger Dijkstra 在 1975 年 Turing Award 演講時發表了一篇《The Humble Programmer》的文章。他認為大多數程式設計師都瞭解腦袋瓜的有限容量，因而採取一些補救措施。</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/112983053575712048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=112983053575712048' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112983053575712048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112983053575712048'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2005/07/blog-post.html' title='[分享] 程式員的個人特質'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-112980246788739711</id><published>2005-01-07T17:24:00.000+08:00</published><updated>2007-03-27T12:45:00.032+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='embedded'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>久違了 XTinux</title><summary type='text'>前陣子到 Study Area 閒逛時，發現了之前為公司弄的一些 PDA 軟體，同事把它 Screen Shot 起來，在那展示著：









第一幅圖是主畫面九宮格，為啥要設計成 3 by 3 的九宮格？只知道是客戶聯想集團的要求。
第二幅是 Email ；第三幅是 Browser 。



Tags: [software] [project] [embedded] [Linux]
</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/112980246788739711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=112980246788739711' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112980246788739711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112980246788739711'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2005/01/xtinux.html' title='久違了 XTinux'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-112977970397615578</id><published>2004-11-09T11:39:00.000+08:00</published><updated>2007-03-07T08:01:10.138+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='soliloquy'/><title type='text'>Say Hello to My Blog</title><summary type='text'>雖然還在水深火熱中~~
對於這流行好一陣子的東西，我當然也得申請一個來玩玩 :)


Tags: [soliloquy]
</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/112977970397615578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=112977970397615578' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112977970397615578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112977970397615578'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2004/11/say-hello-to-my-blog.html' title='Say Hello to My Blog'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113233698840018664</id><published>2004-07-10T15:24:00.000+08:00</published><updated>2007-03-09T22:57:59.426+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='neuron'/><category scheme='http://www.blogger.com/atom/ns#' term='probe'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='scope'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='simulation'/><category scheme='http://www.blogger.com/atom/ns#' term='oscillograph'/><category scheme='http://www.blogger.com/atom/ns#' term='brain'/><category scheme='http://www.blogger.com/atom/ns#' term='ALife'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><category scheme='http://www.blogger.com/atom/ns#' term='agent'/><title type='text'>The Neuron Farm</title><summary type='text'>
基於興趣，碩士論文我是作 Bio-machine modeling 方面的題目，在歸類上屬於人造生命（Artificial Life, ALife）的範疇，選擇的 target 是神經細胞的生長、發育。以下就先簡述一下整個概念：


這裡並不是要詳盡地模擬腦部的發育和功能執行，而是提出經過大幅簡化的模型，以利電腦模擬，及供我們驗證假設之用。經過長期考量過各種可能方案後，我決定以 Cellular Automata 來模擬神經細胞生長的環境。

考慮在一個由 CA 舖成的空間中，我們在一些選定的位置，滴上特定的化學物質，於是這些化學物質就會由滴定的點，向四周擴散。再考慮到真正的腦，對個別神經細胞而言，並非完全開放的空間，所以我們也在 CA 舖成的空間中設置各種障礙，來對空間作某種區隔。於是我們的神經細胞除了有化學的土壤外，現在也有了障礙的地形。整個生長環境豐富了許多。

有了生長環境之後</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113233698840018664/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113233698840018664' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113233698840018664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113233698840018664'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2004/07/neuron-farm.html' title='The Neuron Farm'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113206621821645463</id><published>2004-07-08T15:21:00.000+08:00</published><updated>2007-03-07T08:00:30.398+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='note'/><category scheme='http://www.blogger.com/atom/ns#' term='Darwin'/><category scheme='http://www.blogger.com/atom/ns#' term='NN'/><category scheme='http://www.blogger.com/atom/ns#' term='Edelman'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>Edelman's Neural Darwinism</title><summary type='text'>[Books]

《Neural Darwinism: The Theory of Neuronal Group Selection》
http://www.amazon.com/exec/obidos/tg/detail/-/0465049346/104-2972390-8064705?v=glance

《Bright Air, Brilliant Fire: On the Matter of the Mind》
http://www.amazon.com/exec/obidos/ASIN/0465007643/qid=1089270287/sr=2-2/ref=sr_2_2/104-2972390-8064705
http://engineering-books-online.com/0465007643.html

《先有心靈？還是先有物質？：諾貝爾獎得主的觀點》 -- </summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113206621821645463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113206621821645463' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113206621821645463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113206621821645463'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2004/07/edelmans-neural-darwinism.html' title='Edelman&apos;s Neural Darwinism'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113206582903712880</id><published>2004-07-08T13:34:00.000+08:00</published><updated>2007-03-07T08:00:12.827+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='neuron'/><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='spiking'/><category scheme='http://www.blogger.com/atom/ns#' term='NN'/><title type='text'>Spiking Neural Network</title><summary type='text'>　　Spiking Neural Network, SNN 又稱 pulsed neural network 顧名思義，其中的 neuron 著重在模擬生物神經元激發時軸突所傳遞的突波。這樣的模型除了比傳統的 ANN 更真實外，實用上也更適合處理時變訊號的應用場合。

　　以下有個 open source
Amygdala -- http://amygdala.sourceforge.net/

　　有興趣的可以去玩玩...



Tags: [AI] [NN] [neuron] [spiking]
</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113206582903712880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113206582903712880' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113206582903712880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113206582903712880'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2004/07/spiking-neural-network.html' title='Spiking Neural Network'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113225232376937903</id><published>2004-02-02T01:14:00.001+08:00</published><updated>2008-04-13T21:32:12.821+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DSP'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='Matlab'/><category scheme='http://www.blogger.com/atom/ns#' term='ICA'/><category scheme='http://www.blogger.com/atom/ns#' term='BSS'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>The cocktail party problem</title><summary type='text'>
在一個雞尾酒會場上，假設有人事先在三個不同的位置分別安置了三支麥克風，意圖監聽大家的談話。由於酒會是在開放的場所舉行，麥克風錄到相互混雜的嗡鬧聲，很難好好地監聽出想要的情報。

想像你是當事人，面對好不容易錄下來的東西竟然無法派上用場，該如何是好呢？



為了解決這個難題，我們必須由各個麥克風錄到的資料中，把想要的聲音解析出來，這就是所謂的 Blind Source Separation, BSS 。

本學期生醫訊號處理（Biomedical Signal Processing）課程的 term project ，就是要利用獨立分量分析（independent component analysis, ICA）來達到 BSS 的效果。老師雖然沒限定大家實作的工具，但面對如此紛雜的矩陣及行列運算，不用 Matlab 這種好用的工具，那真是自找麻煩。以下是我完成專案的 Screen </summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113225232376937903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113225232376937903' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113225232376937903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113225232376937903'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2004/02/cocktail-party-problem.html' title='The cocktail party problem'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113236985658361834</id><published>2004-02-01T09:01:00.000+08:00</published><updated>2007-06-20T06:48:55.337+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='CPP'/><category scheme='http://www.blogger.com/atom/ns#' term='functional'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='prolog'/><category scheme='http://www.blogger.com/atom/ns#' term='compiler'/><category scheme='http://www.blogger.com/atom/ns#' term='refactoring'/><category scheme='http://www.blogger.com/atom/ns#' term='unit test'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>The Prolog Interpreter</title><summary type='text'>
這學期加入 AI 助教群，我打算讓學弟妹從實作中瞭解 Unification Algorithm ，但又不想為他們帶來太大的負擔。從眾多 Prolog language 的 open source 中，我選出了 Peter Bouthoorn 所開發的版本，它原本就是被用於教學，可惜其程式架構實在稱不上漂亮。在無法坐視不理下，我一次一小步地 refactor 它，改了幾百個回合，並將其中好幾個關鍵的地方整個重寫，才有一個適用的 Prolog Interpreter 。這真是個不錯的練習。



接下來是將這個動過手術的 Prolog Interpreter 版本當中的 Unify, OccrCheck, and UnifyVar 等 functions 挖空，要學弟妹參照 AI 課本的 Unification Algorithm 後，為這些挖空的 functions 補上血肉。

</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113236985658361834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113236985658361834' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113236985658361834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113236985658361834'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2004/02/prolog-interpreter.html' title='The Prolog Interpreter'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-112982533386037897</id><published>2003-09-25T00:21:00.000+08:00</published><updated>2007-03-07T07:57:24.672+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='note'/><category scheme='http://www.blogger.com/atom/ns#' term='complexity'/><category scheme='http://www.blogger.com/atom/ns#' term='system theory'/><category scheme='http://www.blogger.com/atom/ns#' term='small world'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>[Notes] NEXUS: Small Worlds and the Groundbreaking Science of Networks</title><summary type='text'>　　好書值得一再推薦，天下出的這本關於小世界的譯作真得非常值得大家關注一下。畢竟數學是各種科學的媽，何況這本書也寫得蠻淺顯的，不看真得很可惜。

　　剛剛又整理好了一些 Notes ，以方便自己日後檢索，現在就和大家分享：

　　-- Yukuan 2003/9/25

Forwarded by Jiang Yu-Kuan
----------------------- Original Message -----------------------
－－
　　一些 key words:

lost-letter technique
random graph
強連繫、弱連繫
同步
群聚度，degree of clustering
分隔度
hierarchical decentralized
power law of links to nodes
diffusion-limited </summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/112982533386037897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=112982533386037897' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112982533386037897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112982533386037897'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2003/09/notes-nexus-small-worlds-and.html' title='[Notes] NEXUS: Small Worlds and the Groundbreaking Science of Networks'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-112982514938029336</id><published>2003-09-12T01:33:00.000+08:00</published><updated>2007-03-07T07:57:41.503+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='complexity'/><category scheme='http://www.blogger.com/atom/ns#' term='system theory'/><category scheme='http://www.blogger.com/atom/ns#' term='small world'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>[心得] Small Worlds</title><summary type='text'>　　今天晚上發起狠來，一口氣把天下出的這本《連結》 K 完了。
　　這裡非常推薦大家真的可以好好地給他瞧一瞧！
　　看看介於秩序及完全隨機間的複雜網路，展現的「小世界」現象。
　　更重要的是這種網路所具有的本質－－“彈性”及“應變能力”。
　　在前陣子，受手邊正在 K 的論文啟發，也曾經費了一個晚上的時間思索過類似的議題。
　　不過之前只是模糊的感覺，直覺得相關議題很重要，也沒聽過什麼是小世界；直到此刻，才有著深刻的認識。


Tags: [book] [system theory] [complexity] [small world]
</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/112982514938029336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=112982514938029336' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112982514938029336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112982514938029336'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2003/09/small-worlds.html' title='[心得] Small Worlds'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-112982585962262819</id><published>2003-08-14T16:03:00.000+08:00</published><updated>2007-03-24T18:27:02.420+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='quote'/><category scheme='http://www.blogger.com/atom/ns#' term='physics'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>《物理之美》佳句集</title><summary type='text'>

--

Richard P. Feynman,
    (1965) The Character of Physical Law

--




一個正確的定律可以用來發現另一個新的定律。
如果我們對某個定律有信心，那麼一些看起來像是錯誤的狀況，
可能就會引導我們發現另一種現象。

--

Nature uses only the longest threads to weave her patterns,
so each small piece of her fabric
reveals the organization of the entire tapestry.

大自然只用最長的線去編織她的圖樣，
所以每一小片織紋，都吐露出整塊織錦的組織規律。

--

人們可能會以哲學思辯，爭論他們比較喜歡哪一種方式。
但是我們從累積的許多經驗中，
知道哲學式的直覺並沒有辦法正確地猜到，</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/112982585962262819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=112982585962262819' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112982585962262819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112982585962262819'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2003/08/blog-post.html' title='《物理之美》佳句集'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113204471560887922</id><published>2003-06-25T22:23:00.000+08:00</published><updated>2007-03-07T07:56:49.211+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIT'/><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='robot'/><title type='text'>The Robots</title><summary type='text'>　　這次貼出 MIT 關於機器人的一些 Link

Living Machines
http://www.ai.mit.edu/projects/living-machines/

Humanoid Robotics Group:
http://www.ai.mit.edu/projects/humanoid-robotics-group/

Sociable Machines:
http://www.ai.mit.edu/projects/humanoid-robotics-group/kismet/kismet.html


　　值得注意的是該 AI Lab 主任 Brooks，前一、兩年完成的著作，今年五月已有中譯：

《Flesh and Machines:How Robots Will Change Us》
中譯：《我們都是機器人》

　　衝著 Brooks 的名號，</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113204471560887922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113204471560887922' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113204471560887922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113204471560887922'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2003/06/robots.html' title='The Robots'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113224643372834494</id><published>2003-06-17T00:17:00.000+08:00</published><updated>2007-03-24T17:07:32.415+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SIP'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='protocol'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='VoIP'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>Session Initiation Protocol</title><summary type='text'>就 VoIP 網路而言， SIP是一個非常有彈性而且功能強大的通訊協定， SIP 能夠更有力的支援許多智慧型的電話網路服務及各種使用者平台，並且能夠快速而有效的發展許多先進的功能。

這次是要實作 SIP protocol 的 redirect server 。我決定讓它能夠支援 multi-user ，每次由 user end 那 send 出的 request 都會在 server 上由個別的 Thread 處理。



我將整個架構切割成 SipStack, SipProvider, SipListener 等三個 class 或 interface 。

SipStack 將底層 network protocol 封裝起來，供 SipProvider 使用。
SipProvider 則提供基本的 SIP message 傳遞及分送。並將收到訊息後的對應動作委託給</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113224643372834494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113224643372834494' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113224643372834494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113224643372834494'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2003/06/session-initiation-protocol.html' title='Session Initiation Protocol'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113160995259974481</id><published>2003-04-16T11:22:00.000+08:00</published><updated>2007-03-07T07:52:58.634+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='universe'/><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='physics'/><category scheme='http://www.blogger.com/atom/ns#' term='system theory'/><title type='text'>Re: 時間與渾沌的定律</title><summary type='text'>※ 引述《ykjiang (Woodstock)》之銘言：
〔秩序－－渾然天成〕Order -- like Nature Itself
　　(increasing entropy, open systems, wisdom, order intention)
　　根據熱力學第二定律──熵增律（另譯“亂度攀昇律”），封閉系統的整體亂度只會增加，不會減少。
　　整個宇宙就是一個封閉系統，根據熵增律，宇宙應該到處都是趨向腐敗、混亂與隨機。為何還隨處可見到組織、結構和秩序？

　　前幾星期再次拜讀薛丁格的《What is Life》時，被提醒到這裡的論述並不完整。

　　封閉系統的最大亂度，是以熱力學第三定律──熱原理（heap theorem），決定的。系統的允許最大亂度還受溫度影響，在絕對溫度零度時，其熵增的傾向也是零，因為此時一切的熱運動都會停止...
　　原因之一是，</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113160995259974481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113160995259974481' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113160995259974481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113160995259974481'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2003/04/re.html' title='Re: 時間與渾沌的定律'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-112983223248621892</id><published>2003-03-29T21:32:00.000+08:00</published><updated>2007-03-07T07:53:14.410+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='universe'/><category scheme='http://www.blogger.com/atom/ns#' term='chaos'/><category scheme='http://www.blogger.com/atom/ns#' term='system theory'/><title type='text'>時間與渾沌的定律（The Law of Time and Chaos）</title><summary type='text'>〔緣起〕The Thought Hatching

　　“時間與渾沌定律”，筆者是由《心靈機器時代》中得知此律。照規劃，原想寫篇關於該書的引介、評論，卻因故一直拖欠著...　 :(
[1]

　　這段時日以來，剛巧費了一翻功夫在研讀自動機及計算理論方面的論述。

　　又，昨夜輾轉，思索著“無形的計算”時，突然通了個環節，自認對“時間渾沌律”有更深的洞悉，奮而著手斯文，以饗諸看官！　^_^

　　-- Yukuan　2003/3/15


〔秩序的本質〕Order Nature
　　(order = non-random = describability = computability)

　　秩序是隨機的相反，是「非隨機」。隨機是不可預期的，所以秩序是可預期的、是有跡可尋的。秩序就是規則、規律或模式。

　　在現實上，無論您要利用邏輯的、符號的途徑，無論您要透過數學語言、其他形式語言，</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/112983223248621892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=112983223248621892' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112983223248621892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112983223248621892'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2003/03/law-of-time-and-chaos.html' title='時間與渾沌的定律（The Law of Time and Chaos）'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113205528025636266</id><published>2003-03-24T11:25:00.000+08:00</published><updated>2007-03-09T23:08:37.462+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='neuron'/><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='brain'/><category scheme='http://www.blogger.com/atom/ns#' term='Edelman'/><category scheme='http://www.blogger.com/atom/ns#' term='selection'/><title type='text'>Re: [借鏡靈感篇] 腦的一生 [跳脫式參考]</title><summary type='text'>※ 引述《T2000 (概念語意導向類神經光腦)》之銘言：


感謝你 :)
能不能請ykjiang先提示一下"神經元群選擇"是選擇什麼? 大概是怎麼選擇? 為何選擇?
有ykjiang的導讀，相信我可以花比較少的時間。 謝謝你喔.


目前手邊資料不是很充分， Edelman 的文獻也只是提出大方向上的描述，對實作真正有幫助的細節並未公開...


這裡是其中一本著作的 review：
http://ourworld.compuserve.com/homepages/Joachim_Gruber/Edel.html

大家可以參考看看，有什麼想法再上來討論一下　:)


我再釐清一件事，
生物神經的緩慢只是由於其以離子傳遞電荷的方式，還是其網絡組織結構也有關？
如果速度慢不是緣由其網絡組織結構導致的話，相同的網絡拓僕移植到電路磁路或光路


就我目前的理解，生物神經訊號傳遞的電化學模式</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113205528025636266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113205528025636266' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113205528025636266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113205528025636266'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2003/03/re_24.html' title='Re: [借鏡靈感篇] 腦的一生 [跳脫式參考]'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113205442023958681</id><published>2003-03-11T13:17:00.001+08:00</published><updated>2008-07-13T17:58:43.018+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='notation'/><category scheme='http://www.blogger.com/atom/ns#' term='math model'/><category scheme='http://www.blogger.com/atom/ns#' term='math'/><title type='text'>野人與牧師</title><summary type='text'>　　假設河分為南、北岸。今欲由南岸到北岸。

　　今以（南岸牧師數、南岸野人數）的二維向量表示系統的狀態：

起始狀態：(3,3)
終止狀態：(0,0)

　　若只考慮南岸、合法的狀態有：
(3,3),(2,2),(1,1),(3,2),(3,1),(3,0),(2,1),(2,0),(1,0),(0,0)

　　現在再將北岸列入考慮，所以真正合法的系統狀態只有：
(3,3),(2,2),(1,1),(3,2),(3,1),(3,0),(0,0)

　　同理，合法的渡河操作狀態有：
(0,1),(1,0),(1,1),(0,2),(2,0)

南岸到北岸的結果，可以用向量減法求得；
而北岸到南岸可用向量加法求得。

　　每一次向量加減運算後都檢查一下運算的合法性。如此，經過奇數次運算後即可到達 (0,0) 。

　　還蠻好玩的，您可以試著玩玩看。　^_^


※ 引述《</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113205442023958681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113205442023958681' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113205442023958681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113205442023958681'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2003/03/blog-post.html' title='野人與牧師'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113205216586823422</id><published>2003-03-09T15:02:00.000+08:00</published><updated>2007-03-07T07:51:36.810+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='neuron'/><category scheme='http://www.blogger.com/atom/ns#' term='immunity'/><category scheme='http://www.blogger.com/atom/ns#' term='brain'/><category scheme='http://www.blogger.com/atom/ns#' term='Edelman'/><category scheme='http://www.blogger.com/atom/ns#' term='selection'/><title type='text'>Re: [借鏡靈感篇] 腦的一生 [跳脫式參考]</title><summary type='text'>※ 引述《T2000 (概念語意導向類神經光腦)》之銘言：
※ 引述《ykjiang (Woodstock)》之銘言：
　　所以我才會急欲進一步了解微核的性質。

小弟我所謂微核(microKernal)是指 dendrite 的脈衝 singal 與
synapse的電荷量memory，指的是軟體，不是指 neuron 硬體。

　　我想，那跟你的模擬方式有關，由於你是利用通用電腦來模擬神經網路，我們當然可以指稱，被模擬的東西是軟體、因為它們都存於電腦記憶體中。
至於幹細胞與一般細胞的分裂複製,我是不懂的,我只是看過報導.
幹細胞與一般細胞的分裂複製.....這個我還想請教生物課本、生物學家、
                                        還有造物主—— Ｇｏｄ。

但是今天我 design computer ，我愛怎麼做就怎麼做，
</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113205216586823422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113205216586823422' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113205216586823422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113205216586823422'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2003/03/re.html' title='Re: [借鏡靈感篇] 腦的一生 [跳脫式參考]'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-113224028074104212</id><published>2003-02-25T18:12:00.000+08:00</published><updated>2007-04-12T15:52:53.332+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='CPP'/><category scheme='http://www.blogger.com/atom/ns#' term='puzzle'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='search'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><category scheme='http://www.blogger.com/atom/ns#' term='OO'/><title type='text'>又遇 N Puzzle</title><summary type='text'>
針對 N Puzzle，之前以 CLIPS, C Language Integrated Production System 求解過，那是專家系統的課，所以我也很配合地，以 heuristic 的方式，寫起一條條的 production rules 。

這次研究所的 AI 課則要求分別利用 BFS (Breadth-First Search), DFS (Depth-First Search), Iterative Deepening DFS 及 A* Search 這四種方式來求解，並比較結果。


無論在 AI searh 理論方面，或是  OOA/OOD 上，這都是個有趣的練習，所以我自告奮勇要打頭陣，完成 framework, BFS, DFS, 和最後的整合及 CUI (Character-based User Interface) 等。

設計的目標有：


</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/113224028074104212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=113224028074104212' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113224028074104212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/113224028074104212'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2003/02/n-puzzle.html' title='又遇 N Puzzle'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-112982697275012377</id><published>2003-02-22T00:11:00.000+08:00</published><updated>2007-03-07T07:53:47.999+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wish'/><category scheme='http://www.blogger.com/atom/ns#' term='psyche'/><title type='text'>[分享] 如何認出──天堂之門</title><summary type='text'>　　這次呢，是要來跟大家分享一個秘密的：

～～

　　認識我的人，都知道我不求神問佛、不批命卜卦、不依靠星座血型探求命運、從沒幫自己買過彩券...

　　不過，我會祝福人、會幫人許願，也樂於接受大家的祝福。

　　以上所有的種種，都和一個被人們稱作「希望」的東西關聯。

　　據稱，《完全自殺手冊》的第一頁就宣稱：「人生在世，是完全沒有任何『希望』可言的...」

　　西方也流傳著一個古老的說法，是關於通往地獄的那扇門上，有著一句醒目的標示：「凡進此門者，都要棄絕『希望』！」

　　幾年前，我從別人那得知，通往天堂的那扇門上，也有著一模一樣的標示！

　　一個叫做 Marshall 的傢伙曾經很明白地表示：

　　希望自己的生命會改變的人，是那些不為自己採取行動的人，也正是那些希望上帝會照顧他們的人，卻不知道藉著給予他們照顧自己的能力，上帝已經照顧他們了。

　　「希望」</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/112982697275012377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=112982697275012377' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112982697275012377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112982697275012377'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2003/02/blog-post.html' title='[分享] 如何認出──天堂之門'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9307457.post-112982599664060275</id><published>2002-12-27T00:34:00.000+08:00</published><updated>2007-03-24T18:37:35.808+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='quote'/><category scheme='http://www.blogger.com/atom/ns#' term='psyche'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>《學習地圖》佳句整理</title><summary type='text'>


--

All life is an experiment.
  -- Ralph Waldo Emerson, American jurist

生命是一場實驗
　　-- 奧利維 W. 霍姆斯　美國法學家

--




實際上，「不斷的變化」是我們唯一能預知的趨勢。
　　-- 琳達A.珊提斯博士《創造未來》

--

地球上沒有萬無一失的事，只有機會而已。
　　-- 麥克阿瑟將軍

--

今日，最大的財富來源就在你的兩耳之間。
今日，財富是蘊藏在腦力而非蠻力。
　　-- 布萊恩‧崔西《最大的成就》

--

教育的最大目的就是學習如何學習。
　　-- 路易斯 A. 馬恰多《創造未來》

--

一個發出新觀念的頭腦，永遠不能走回頭路。
　　-- 奧利維 W. 霍姆斯　美國法學家

--

我的心一定非常巨大，
因為有時，我必須花一個禮拜的時間才能下定決定。
　　-- 馬克‧</summary><link rel='replies' type='application/atom+xml' href='http://yukuan.blogspot.com/feeds/112982599664060275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9307457&amp;postID=112982599664060275' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112982599664060275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9307457/posts/default/112982599664060275'/><link rel='alternate' type='text/html' href='http://yukuan.blogspot.com/2002/12/blog-post.html' title='《學習地圖》佳句整理'/><author><name>York</name><uri>http://www.blogger.com/profile/16278534857437994661</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
