<?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-6798365616043706588</id><updated>2011-12-11T07:02:09.909-08:00</updated><category term='tab'/><category term='interpreter'/><category term='javascript'/><category term='Language'/><category term='web'/><category term='extension'/><category term='browser'/><category term='UI design'/><category term='plug-in'/><category term='GAE'/><category term='performance'/><category term='music'/><category term='coscup'/><category term='Chrome 小字典'/><category term='Java'/><category term='add-on'/><category term='Android'/><category term='Lisp'/><category term='jit'/><category term='compiler'/><category term='chrome'/><category term='CouchDB'/><title type='text'>sleepnova's blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sleepnova.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sleepnova.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>sleepnova</name><uri>http://www.blogger.com/profile/06621292641661517950</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>23</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6798365616043706588.post-1313047549812746128</id><published>2011-12-11T05:36:00.001-08:00</published><updated>2011-12-11T07:02:09.967-08:00</updated><title type='text'>How to avoid OOM on Android</title><content type='html'>最近輾轉聽到身邊不少開發 Android 的朋友或單位說遇到棘手的 OOM (OutOfMemory) 問題，剛好最近有幸受邀至 KKBOX 總部分享一些有關 Java 與 Android 記憶體管理方面的心得，於是便整理了一份投影片，主要是講記憶體管理的一些大方向及策略，例如如何減少不必要的記憶體使用量、避免 Memory leak、以及如何補救...等等。&lt;br /&gt;&lt;br /&gt;順便在這裡分享給有需要的人:&lt;br /&gt;&lt;br /&gt;&lt;iframe frameborder="0" height="451" src="https://docs.google.com/present/embed?id=ah6b26cqx5xr_277ftqv6rdp&amp;amp;size=m" width="555"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6798365616043706588-1313047549812746128?l=sleepnova.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sleepnova.blogspot.com/feeds/1313047549812746128/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6798365616043706588&amp;postID=1313047549812746128' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/1313047549812746128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/1313047549812746128'/><link rel='alternate' type='text/html' href='http://sleepnova.blogspot.com/2011/12/how-to-avoid-oom-on-android.html' title='How to avoid OOM on Android'/><author><name>頑皮豹 (sleepnova)</name><uri>http://www.blogger.com/profile/01561575267381302494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/15/3803/200/DSC00099.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6798365616043706588.post-7128554746065147840</id><published>2010-08-21T11:21:00.000-07:00</published><updated>2010-08-22T23:02:55.073-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='coscup'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='CouchDB'/><title type='text'>The NoSQL movement: CouchDB as an example</title><content type='html'>I've gave a presentation at  COSCUP/GNOME.Asia 2010 conference @Taiwan about The NoSQL movement and CouchDB.&lt;br /&gt;&lt;br /&gt;Slides:&lt;br /&gt;&lt;br /&gt;&lt;iframe src="https://docs.google.com/present/embed?id=ah6b26cqx5xr_218fr8c6zgh&amp;size=m" frameborder="0" width="555" height="451"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6798365616043706588-7128554746065147840?l=sleepnova.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sleepnova.blogspot.com/feeds/7128554746065147840/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6798365616043706588&amp;postID=7128554746065147840' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/7128554746065147840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/7128554746065147840'/><link rel='alternate' type='text/html' href='http://sleepnova.blogspot.com/2010/08/nosql-movement-couchdb-as-example.html' title='The NoSQL movement: CouchDB as an example'/><author><name>頑皮豹 (sleepnova)</name><uri>http://www.blogger.com/profile/01561575267381302494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/15/3803/200/DSC00099.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6798365616043706588.post-116160219479319774</id><published>2010-03-11T23:09:00.000-08:00</published><updated>2010-03-12T01:39:57.362-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='plug-in'/><category scheme='http://www.blogger.com/atom/ns#' term='extension'/><category scheme='http://www.blogger.com/atom/ns#' term='Chrome 小字典'/><category scheme='http://www.blogger.com/atom/ns#' term='add-on'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><title type='text'>Chrome 小字典 extension 版</title><content type='html'>&lt;div&gt;去年底插花參加了 &lt;a href="http://www.taipei-gtug.org/"&gt;Taipei GTUG&lt;/a&gt; 辦的 &lt;a href="http://www.taipei-gtug.org/events/google-chrome-hackathon-2009"&gt;Google Chrome Hackathon 2009&lt;/a&gt; 活動，參加的同學們都很厲害，快速的做出許多有用的&lt;a href="http://www.taipei-gtug.org/events/google-chrome-hackathon-2009#TOC-9"&gt;擴充功能&lt;/a&gt;，小的不才，沒什麼 idea，也沒有在活動中實做出什麼來，一直到12月底，才想說把之前做的 &lt;a href="http://sleepnova.blogspot.com/2009/07/chrome.html"&gt;Chrome 小字典&lt;/a&gt; 修改變成標準的 Chrome extension，給大家一個新年禮物。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;一直沒有提筆記這件事情，直到剛剛看到使用人數超過 700 個人，才想到應該在這邊更新一下，讓之前有使用舊版的人知道一下有這件事情。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(85, 26, 139); "&gt;&lt;a href="https://chrome.google.com/extensions/detail/aoeeonklbdfakjbbbgfjkennocjdcogh"&gt;下載安裝&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6798365616043706588-116160219479319774?l=sleepnova.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sleepnova.blogspot.com/feeds/116160219479319774/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6798365616043706588&amp;postID=116160219479319774' title='6 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/116160219479319774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/116160219479319774'/><link rel='alternate' type='text/html' href='http://sleepnova.blogspot.com/2010/03/chrome-extension.html' title='Chrome 小字典 extension 版'/><author><name>頑皮豹 (sleepnova)</name><uri>http://www.blogger.com/profile/01561575267381302494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/15/3803/200/DSC00099.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6798365616043706588.post-6548878653022704824</id><published>2009-08-17T20:02:00.000-07:00</published><updated>2010-08-21T12:00:11.773-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='GAE'/><category scheme='http://www.blogger.com/atom/ns#' term='Language'/><category scheme='http://www.blogger.com/atom/ns#' term='coscup'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Javascript 飛向雲端 @ COSCUP 2009</title><content type='html'>今年有幸於 COSCUP 2009 跟大家分享 javascript 於雲端的發展與潛力。&lt;br /&gt;&lt;br /&gt;Slides 簡報內容:&lt;br /&gt;&lt;br /&gt;&lt;iframe frameborder="0" height="451" src="https://docs.google.com/present/embed?id=ah6b26cqx5xr_102cxpzk2g9&amp;amp;size=m" width="555"&gt;&lt;/iframe&gt;&lt;br /&gt;若有任何問題，歡迎一同討論。&lt;br /&gt;&lt;br /&gt;Video 影像紀錄:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=M57UELMrYGI" id="iuye" style="color: #551a8b;" title="http://www.youtube.com/watch?v=M57UELMrYGI"&gt;http://www.youtube.com/watch?v=M57UELMrYGI&lt;/a&gt; (1/3)&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=GSbfS6O7kG4" id="yssz" title="http://www.youtube.com/watch?v=GSbfS6O7kG4"&gt;http://www.youtube.com/watch?v=GSbfS6O7kG4&lt;/a&gt; (2/3)&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=OZU4uM-Jv4A" id="n_y7" style="color: #551a8b;" title="http://www.youtube.com/watch?v=OZU4uM-Jv4A"&gt;http://www.youtube.com/watch?v=OZU4uM-Jv4A&lt;/a&gt; (3/3)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6798365616043706588-6548878653022704824?l=sleepnova.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sleepnova.blogspot.com/feeds/6548878653022704824/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6798365616043706588&amp;postID=6548878653022704824' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/6548878653022704824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/6548878653022704824'/><link rel='alternate' type='text/html' href='http://sleepnova.blogspot.com/2009/08/javascript-coscup-2009.html' title='Javascript 飛向雲端 @ COSCUP 2009'/><author><name>頑皮豹 (sleepnova)</name><uri>http://www.blogger.com/profile/01561575267381302494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/15/3803/200/DSC00099.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6798365616043706588.post-7074316206747095245</id><published>2009-07-09T01:12:00.000-07:00</published><updated>2009-07-09T01:21:03.530-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tab'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><title type='text'>把不小心關掉的 tab 分頁救回來</title><content type='html'>常常不小心關錯 tab 分頁又找不回來嗎? 這裡有個方法把你不小心關掉的分頁救回來。只要開個新分頁，右下角會列出最近關閉的網頁。 :)&lt;br /&gt;&lt;br /&gt;影片教學: &lt;a href="http://chrome.blogspot.com/2009/07/lost-tab-not-to-worry.html"&gt;Lost a tab? Not to worry.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6798365616043706588-7074316206747095245?l=sleepnova.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sleepnova.blogspot.com/feeds/7074316206747095245/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6798365616043706588&amp;postID=7074316206747095245' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/7074316206747095245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/7074316206747095245'/><link rel='alternate' type='text/html' href='http://sleepnova.blogspot.com/2009/07/tab.html' title='把不小心關掉的 tab 分頁救回來'/><author><name>頑皮豹 (sleepnova)</name><uri>http://www.blogger.com/profile/01561575267381302494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/15/3803/200/DSC00099.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6798365616043706588.post-5269638223786638063</id><published>2009-07-07T01:41:00.000-07:00</published><updated>2009-07-07T20:09:42.023-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='browser'/><title type='text'>讓你的 Chrome 跑的順暢 不再卡卡的方法</title><content type='html'>&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;大多數的人一開始使用 Chrome 瀏覽器都會愛上它的反應快速，但是隨著分頁愈開愈多的時候卻發現 Chrome 的反應急遽下降，變的頓頓卡卡的，這其實是因為 Chrome 預設會一直釋放資源，如果你的系統有充足的記憶體，其實只要在啟動命令列後面加上 --memory-model=high，就可以讓你的 Chrome 跑的順暢許多，不再卡卡的。&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;參考: &lt;/span&gt;&lt;a href="http://dev.chromium.org/memory-usage-backgrounder"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Chromium Developer Documentation - Memory Usage Backgrounder&lt;/span&gt;&lt;/a&gt;&lt;a href="http://dev.chromium.org/memory-usage-backgrounder"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6798365616043706588-5269638223786638063?l=sleepnova.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sleepnova.blogspot.com/feeds/5269638223786638063/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6798365616043706588&amp;postID=5269638223786638063' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/5269638223786638063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/5269638223786638063'/><link rel='alternate' type='text/html' href='http://sleepnova.blogspot.com/2009/07/chrome_07.html' title='讓你的 Chrome 跑的順暢 不再卡卡的方法'/><author><name>頑皮豹 (sleepnova)</name><uri>http://www.blogger.com/profile/01561575267381302494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/15/3803/200/DSC00099.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6798365616043706588.post-2258932200354750775</id><published>2009-07-07T01:21:00.000-07:00</published><updated>2009-07-07T02:39:16.109-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>完美演出</title><content type='html'>一個音樂家爸爸為他7歲女兒Sarah改編及演奏她最喜歡的流行音樂，非常動聽。&lt;br /&gt;&lt;br /&gt;LOVE STORY (Taylor Swift) + VIVA LA VIDA (Coldplay)&lt;br /&gt;&lt;object width="560" height="340"&gt;&lt;param name="movie" value="http://www.youtube.com/v/0v3d6SFcDys&amp;amp;hl=zh_TW&amp;amp;fs=1&amp;amp;color1=0x3a3a3a&amp;amp;color2=0x999999"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/0v3d6SFcDys&amp;amp;hl=zh_TW&amp;amp;fs=1&amp;amp;color1=0x3a3a3a&amp;amp;color2=0x999999" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6798365616043706588-2258932200354750775?l=sleepnova.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sleepnova.blogspot.com/feeds/2258932200354750775/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6798365616043706588&amp;postID=2258932200354750775' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/2258932200354750775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/2258932200354750775'/><link rel='alternate' type='text/html' href='http://sleepnova.blogspot.com/2009/07/blog-post.html' title='完美演出'/><author><name>頑皮豹 (sleepnova)</name><uri>http://www.blogger.com/profile/01561575267381302494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/15/3803/200/DSC00099.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6798365616043706588.post-5893925360845031303</id><published>2009-07-06T01:31:00.000-07:00</published><updated>2009-07-08T01:29:30.889-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='plug-in'/><category scheme='http://www.blogger.com/atom/ns#' term='add-on'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><title type='text'>Chrome 小字典</title><content type='html'>由於苦於在 Google Chrome 下沒有 Google 工具列的翻譯工具，常常要開回 Firefox 切來切去又很麻煩，於是乾脆自己動手寫了一個 小字典 add-on for Google Chrome，雖然功能還很陽春，不過本著軟體常常放、大家放的精神，就先放出來給大家試用看看，畢竟比完全沒有還要好一點，看有什麼可以改進的地方，歡迎大家指教。&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;使用方法如下，在書籤上新增一個網頁，名稱隨便填，然後網址的地方把下面文字方塊裡的文字貼入，就大功告成了。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;當你想要使用字典功能的時候，就點一下那個書籤，啟動之後右上角會跳出一個 banner，代表字典在運行，之後只要把滑鼠移到需要翻譯的字上面，就會自動查詢。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;把這裡面的東西貼到書籤網址:&lt;br /&gt;&lt;textarea readonly style="margin-left: 0px; margin-right: 0px; width: 290px; margin-top: 1px; margin-bottom: 1px; height: 46px;"&gt;javascript: function translate(word){ var glf = document.getElementById(&amp;quot;glf&amp;quot;); glf.contentWindow.gtrans(word); }; function findAndReplace(searchText, replacement, searchNode) { var regex = typeof searchText === 'string' ? new RegExp(searchText, 'g') : searchText, childNodes = (searchNode || document.body).childNodes, cnLength = childNodes.length, excludes = 'html,head,style,title,link,meta,script,object,textarea,iframe'; while (cnLength--) { var currentNode = childNodes[cnLength]; if (currentNode.nodeType === 1 &amp;amp;&amp;amp; (excludes + ',').indexOf(currentNode.nodeName.toLowerCase() + ',') === -1) { arguments.callee(searchText, replacement, currentNode); } if (currentNode.nodeType !== 3 || !regex.test(currentNode.data) ) { continue; } var parent = currentNode.parentNode, frag = (function(){ var html = currentNode.data.replace(regex, replacement), wrap = document.createElement('div'), frag = document.createDocumentFragment(); wrap.innerHTML = html; while (wrap.firstChild) { frag.appendChild(wrap.firstChild); } return frag; })(); parent.insertBefore(frag, currentNode); parent.removeChild(currentNode); } }; function inject(){ findAndReplace('\\b[^ ]+\\b', function(term){ return '&amp;lt;span onmouseover=&amp;quot;translate(this)&amp;quot;&amp;gt;' + term + '&amp;lt;/span&amp;gt;'; }); }; function init() { var div = document.createElement('div'); div.id = 'glfdiv'; div.style.borderWidth='thin'; div.style.borderStyle='outset'; div.style.position='fixed'; div.style.top='10px'; div.style.right='10px'; div.style.backgroundColor = 'white'; div.innerHTML = 'loading...'; document.body.appendChild(div); var glf = document.createElement('iframe'); glf.id = 'glf'; glf.style.display='none'; document.body.appendChild(glf); var doc = glf.contentDocument; doc.open(); doc.write('&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;Sample html&amp;lt;/title&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://www.google.com/jsapi&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;google.load(&amp;quot;language&amp;quot;, &amp;quot;1&amp;quot;);function gtrans(word) {if(word.title) return; word.title = &amp;quot;translating...&amp;quot;; var text = word.innerHTML; google.language.detect(text, function(result) { if (!result.error &amp;amp;&amp;amp; result.language) { google.language.translate(text, result.language, &amp;quot;zh-tw&amp;quot;, function(result) {if (result.translation) { word.title = text + &amp;quot;: &amp;quot; + result.translation;}});}});};&amp;lt;/script&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;&amp;lt;div id=&amp;quot;branding&amp;quot; style=&amp;quot;background-color:white;color:black;padding:0px 1px;text-align:right;&amp;quot;&amp;gt;Chrome%E5%B0%8F%E5%AD%97%E5%85%B8&amp;lt;/div&amp;gt;&amp;lt;script&amp;gt;google.language.getBranding(&amp;quot;branding&amp;quot;);google.setOnLoadCallback(parent.callback);&amp;lt;/script&amp;gt;&amp;lt;/body&amp;gt;'); doc.close(); callback = function(){ div.innerHTML = doc.getElementById('branding').outerHTML;div.onclick = function(){div.style.display='none'};}; inject(); }; init();&lt;/textarea&gt;&lt;div&gt;一個小問題稍微提一下，如果遇到字一直沒出來就稍微動一下滑鼠。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6798365616043706588-5893925360845031303?l=sleepnova.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sleepnova.blogspot.com/feeds/5893925360845031303/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6798365616043706588&amp;postID=5893925360845031303' title='18 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/5893925360845031303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/5893925360845031303'/><link rel='alternate' type='text/html' href='http://sleepnova.blogspot.com/2009/07/chrome.html' title='Chrome 小字典'/><author><name>頑皮豹 (sleepnova)</name><uri>http://www.blogger.com/profile/01561575267381302494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/15/3803/200/DSC00099.jpg'/></author><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6798365616043706588.post-7691088236160404401</id><published>2009-06-26T23:49:00.000-07:00</published><updated>2009-06-27T00:55:30.063-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UI design'/><title type='text'>Aza Raskin 給的 UI design talk</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 13px; white-space: pre; "&gt;很有意思...&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Arial;font-size:100%;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;Don't ake Me Click&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/EuELwq2ThJE&amp;amp;hl=zh_TW&amp;amp;fs=1&amp;amp;color1=0x3a3a3a&amp;amp;color2=0x999999"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/EuELwq2ThJE&amp;amp;hl=zh_TW&amp;amp;fs=1&amp;amp;color1=0x3a3a3a&amp;amp;color2=0x999999" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Away with Applications: The Death of the Desktop&lt;br /&gt;&lt;embed id="VideoPlayback" src="http://video.google.com/googleplayer.swf?docid=-6856727143023456694&amp;amp;hl=zh-TW&amp;amp;fs=true" style="width:400px;height:326px" allowfullscreen="true" allowscriptaccess="always" type="application/x-shockwave-flash"&gt;&lt;/embed&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6798365616043706588-7691088236160404401?l=sleepnova.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sleepnova.blogspot.com/feeds/7691088236160404401/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6798365616043706588&amp;postID=7691088236160404401' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/7691088236160404401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/7691088236160404401'/><link rel='alternate' type='text/html' href='http://sleepnova.blogspot.com/2009/06/dont-make-me-click.html' title='Aza Raskin 給的 UI design talk'/><author><name>頑皮豹 (sleepnova)</name><uri>http://www.blogger.com/profile/01561575267381302494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/15/3803/200/DSC00099.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6798365616043706588.post-2288694617878060853</id><published>2009-01-04T05:24:00.000-08:00</published><updated>2009-07-28T10:52:22.411-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Language'/><category scheme='http://www.blogger.com/atom/ns#' term='interpreter'/><category scheme='http://www.blogger.com/atom/ns#' term='compiler'/><category scheme='http://www.blogger.com/atom/ns#' term='jit'/><title type='text'>Brainfuck interpreter and jit-compiler in Java</title><content type='html'>同事之前介紹我一個奇怪的語言，叫做 &lt;a href="http://en.wikipedia.org/wiki/Brainfuck"&gt;brainfuck&lt;/a&gt; (名字不是很雅，不知道是不是暗示寫程式寫到頭腦發狂...)，以下簡稱 bf，說要用 c 語言實做它的 compiler，我聽了覺得有趣，心想反正之前也沒有寫過 compiler，不如就拿這個語言當練習寫個 Java 版的 compiler 吧!&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;於是就有了這個 project - &lt;a href="http://code.google.com/p/bfj/"&gt;bfj&lt;/a&gt; ，一開始先實做 interpreter，做了些許的 optimization，大約快十倍，後來加入 &lt;a href="http://en.wikipedia.org/wiki/Just-in-time_compilation"&gt;just-in-time compiler&lt;/a&gt;，大約快 5 ~ 10 倍。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;在 jit 模式下執行，程式會先把 bf 的 source code 讀進來轉成 IR，做該有的優化，之後轉成 &lt;a href="http://en.wikipedia.org/wiki/Java_bytecode"&gt;Java bytecode&lt;/a&gt; 再 load 進來，然後 JVM 會再跟據 bytecode 執行的狀況把重複執行的部份轉成 native code 來執行。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;雖然執行的方式有點迂迴，其他的語言我不敢說，不過在Java上目前我還沒看到更快的實做。&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;補充一下，動態產生 Java bytecode 的部份用到了&lt;a href="http://sleepnova.blogspot.com/2008/09/library-for-java-bytecode-generation.html"&gt;之前提過的&lt;/a&gt; &lt;a href="http://asm.objectweb.org/"&gt;ASM&lt;/a&gt;，dynamic codegen 的技巧在系統需要提供動態行為但是又不想失去效能的情況下常被用到，比方說 spring 跟 hibernate 這兩個 framwork 都需要動態建立許多 proxy ，這個時候就會用這種技巧來產生取代由 reflection 達成的功能以加快速度。hibernate 跟 spring 用的是 cglib，而 cglib 底層也是用了 ASM。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;這裡有篇&lt;a href="http://www.ibm.com/developerworks/cn/java/j-cwt05125/"&gt;文章&lt;/a&gt;比較了 reflection 跟 codegen 速度上的分別。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;另外還有個叫 &lt;a href="http://www-jpc.physics.ox.ac.uk/"&gt;JPC&lt;/a&gt; 的 project 是用 Java 寫了一個 x86 PC 模擬器，也是用這種方法實做出來的，目前的速度可以玩一些以前的 PC Game，蠻屌的，我個人覺得啦。&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6798365616043706588-2288694617878060853?l=sleepnova.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sleepnova.blogspot.com/feeds/2288694617878060853/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6798365616043706588&amp;postID=2288694617878060853' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/2288694617878060853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/2288694617878060853'/><link rel='alternate' type='text/html' href='http://sleepnova.blogspot.com/2009/01/brainfuck-interpreter-and-jit-compiler.html' title='Brainfuck interpreter and jit-compiler in Java'/><author><name>sleepnova</name><uri>http://www.blogger.com/profile/06621292641661517950</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-6798365616043706588.post-8286318290934317058</id><published>2008-12-26T00:06:00.000-08:00</published><updated>2009-01-05T03:39:10.187-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lisp'/><title type='text'>On Lisp, On Line</title><content type='html'>&lt;div&gt;剛剛發現 Paul Graham 不曉得什麼時候釋出了他的 &lt;a href="http://www.paulgraham.com/onlisp.html"&gt;On Lisp 電子版&lt;/a&gt;，想學 Lisp 的朋友又多了一本免費的經典好書可以拜讀。:)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6798365616043706588-8286318290934317058?l=sleepnova.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sleepnova.blogspot.com/feeds/8286318290934317058/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6798365616043706588&amp;postID=8286318290934317058' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/8286318290934317058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/8286318290934317058'/><link rel='alternate' type='text/html' href='http://sleepnova.blogspot.com/2008/12/on-lisp-on-line.html' title='On Lisp, On Line'/><author><name>sleepnova</name><uri>http://www.blogger.com/profile/06621292641661517950</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-6798365616043706588.post-3806505631544353900</id><published>2008-12-17T08:39:00.000-08:00</published><updated>2008-12-17T08:48:23.385-08:00</updated><title type='text'>My Rainbow - 我的彩虹</title><content type='html'>看到&lt;a href="http://blog.linux.org.tw/~jserv/archives/002077.html"&gt;宅色色做的 Your Rainbow 測驗&lt;/a&gt;，我也做了...結果如下...&lt;br /&gt;&lt;div  style="width:300px; background:black;  padding: 10px;text-align:center; border: 1px solid #333333;color:black;"&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt;Your rainbow is shaded&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt; violet.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="background: #d50080"&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="background: #d55580"&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="background: #d58080"&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="background: #556f80"&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="background: #554dff"&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="background: #5500ff"&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="background: #aa00ff"&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt; &lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt;What is says about you: You are a creative person. You appreciate beauty and craftsmanship. You are patient and will keep trying to understand something until you've mastered it.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://spacefem.com/quizzes/rainbow"&gt;Find the colors of your rainbow at spacefem.com.&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6798365616043706588-3806505631544353900?l=sleepnova.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sleepnova.blogspot.com/feeds/3806505631544353900/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6798365616043706588&amp;postID=3806505631544353900' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/3806505631544353900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/3806505631544353900'/><link rel='alternate' type='text/html' href='http://sleepnova.blogspot.com/2008/12/my-rainbow.html' title='My Rainbow - 我的彩虹'/><author><name>sleepnova</name><uri>http://www.blogger.com/profile/06621292641661517950</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-6798365616043706588.post-8521996275740789451</id><published>2008-11-26T22:41:00.000-08:00</published><updated>2009-01-05T03:42:22.778-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Language'/><category scheme='http://www.blogger.com/atom/ns#' term='Lisp'/><title type='text'>Lisp implementation for Java Virtual Machine</title><content type='html'>Robert Tolksdorf 收集了很多可以在 Java VM 上面跑的程式語言專案，有關 Lisp 的部份就有一堆。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.is-research.de/info/vmlanguages/lisp.html"&gt;Lisp for the Java&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6798365616043706588-8521996275740789451?l=sleepnova.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sleepnova.blogspot.com/feeds/8521996275740789451/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6798365616043706588&amp;postID=8521996275740789451' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/8521996275740789451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/8521996275740789451'/><link rel='alternate' type='text/html' href='http://sleepnova.blogspot.com/2008/11/lisp-implementation-for-java-virtual.html' title='Lisp implementation for Java Virtual Machine'/><author><name>sleepnova</name><uri>http://www.blogger.com/profile/06621292641661517950</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-6798365616043706588.post-4849404495111735947</id><published>2008-11-19T07:03:00.000-08:00</published><updated>2009-01-05T03:39:51.793-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lisp'/><title type='text'>兩位對岸 Lisp 愛好者的 Blog</title><content type='html'>&lt;a href="http://blog.chinaunix.net/u/14248/article.php?frmid=24179"&gt;http://blog.chinaunix.net/u/14248/article.php?frmid=24179&lt;/a&gt;&lt;br /&gt;&lt;a href="http://czhu.bokee.com/"&gt;http://czhu.bokee.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6798365616043706588-4849404495111735947?l=sleepnova.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sleepnova.blogspot.com/feeds/4849404495111735947/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6798365616043706588&amp;postID=4849404495111735947' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/4849404495111735947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/4849404495111735947'/><link rel='alternate' type='text/html' href='http://sleepnova.blogspot.com/2008/11/lisp-blog.html' title='兩位對岸 Lisp 愛好者的 Blog'/><author><name>sleepnova</name><uri>http://www.blogger.com/profile/06621292641661517950</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-6798365616043706588.post-3334232006745506078</id><published>2008-11-18T07:41:00.000-08:00</published><updated>2008-11-18T07:50:46.425-08:00</updated><title type='text'>Music + Slideshow</title><content type='html'>之前有想過 slide show 跟音樂配合的 idea，不過一直沒有機會動手實做，今天又在&lt;a href="http://mmdays.com/2008/01/28/walk-into-the-picture/"&gt;mmdays&lt;/a&gt;看到詳細的介紹。感覺不該放過這麼好的 idea ，有機會一定來實做一下。&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;被東京都感動到了。 :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6798365616043706588-3334232006745506078?l=sleepnova.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sleepnova.blogspot.com/feeds/3334232006745506078/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6798365616043706588&amp;postID=3334232006745506078' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/3334232006745506078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/3334232006745506078'/><link rel='alternate' type='text/html' href='http://sleepnova.blogspot.com/2008/11/music-slideshow.html' title='Music + Slideshow'/><author><name>sleepnova</name><uri>http://www.blogger.com/profile/06621292641661517950</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-6798365616043706588.post-7584777210658534108</id><published>2008-11-18T06:06:00.000-08:00</published><updated>2009-01-05T03:40:08.696-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Language'/><title type='text'>電腦語言譜系表海報</title><content type='html'>&lt;div&gt;看到這個&lt;a href="http://www.digibarn.com/collections/posters/tongues/"&gt;電腦語言譜系表的大張海報&lt;/a&gt;，可以印一張貼在辦公室座位。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6798365616043706588-7584777210658534108?l=sleepnova.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sleepnova.blogspot.com/feeds/7584777210658534108/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6798365616043706588&amp;postID=7584777210658534108' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/7584777210658534108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/7584777210658534108'/><link rel='alternate' type='text/html' href='http://sleepnova.blogspot.com/2008/11/blog-post.html' title='電腦語言譜系表海報'/><author><name>sleepnova</name><uri>http://www.blogger.com/profile/06621292641661517950</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-6798365616043706588.post-4053652228483108930</id><published>2008-09-15T02:05:00.000-07:00</published><updated>2008-09-22T05:17:38.694-07:00</updated><title type='text'>Library for Java bytecode generation</title><content type='html'>&lt;div&gt;最近做了一個實驗性的小 project 需要用到 bytecode generation 找到以下兩個比較合用的 library。&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://asm.objectweb.org/"&gt;ASM&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://jen.dev.java.net/nonav/docs/index.html"&gt;jen&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;先紀錄一下，其它等有空再來慢慢討論。&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6798365616043706588-4053652228483108930?l=sleepnova.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sleepnova.blogspot.com/feeds/4053652228483108930/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6798365616043706588&amp;postID=4053652228483108930' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/4053652228483108930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/4053652228483108930'/><link rel='alternate' type='text/html' href='http://sleepnova.blogspot.com/2008/09/library-for-java-bytecode-generation.html' title='Library for Java bytecode generation'/><author><name>sleepnova</name><uri>http://www.blogger.com/profile/06621292641661517950</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-6798365616043706588.post-4008878128786926770</id><published>2008-09-02T22:50:00.000-07:00</published><updated>2008-09-03T20:38:40.820-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lisp'/><title type='text'>Scheme resourses</title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;a href="http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/"&gt;SICP 課程 MIT 版&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://webcast.berkeley.edu/course_details.php?seriesid=1906978502"&gt;SICP 課程 Berkeley 版&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.federated.com/%7Ejim/schintro-v14/schintro_toc.html"&gt;An Introduction to Scheme and its Implementation&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6798365616043706588-4008878128786926770?l=sleepnova.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sleepnova.blogspot.com/feeds/4008878128786926770/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6798365616043706588&amp;postID=4008878128786926770' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/4008878128786926770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/4008878128786926770'/><link rel='alternate' type='text/html' href='http://sleepnova.blogspot.com/2008/09/scheme-resourses.html' title='Scheme resourses'/><author><name>sleepnova</name><uri>http://www.blogger.com/profile/06621292641661517950</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-6798365616043706588.post-6267076529398932410</id><published>2008-09-02T22:44:00.000-07:00</published><updated>2008-09-02T22:46:00.334-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lisp'/><title type='text'>朋友收集的 Lisp 資源</title><content type='html'>&lt;a href="http://vpoohtw.blogspot.com/2008/08/lisp.html"&gt;http://vpoohtw.blogspot.com/2008/08/lisp.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6798365616043706588-6267076529398932410?l=sleepnova.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sleepnova.blogspot.com/feeds/6267076529398932410/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6798365616043706588&amp;postID=6267076529398932410' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/6267076529398932410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/6267076529398932410'/><link rel='alternate' type='text/html' href='http://sleepnova.blogspot.com/2008/09/lisp.html' title='朋友收集的 Lisp 資源'/><author><name>sleepnova</name><uri>http://www.blogger.com/profile/06621292641661517950</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-6798365616043706588.post-1137610039952105223</id><published>2008-09-01T02:59:00.000-07:00</published><updated>2008-11-06T09:26:30.682-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lisp'/><title type='text'>Scheme books</title><content type='html'>兩本 MIT 用來敎程式設計的書&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book.html"&gt;Structure and Interpretation of Computer Programs&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.htdp.org/"&gt;How to Design Programs&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;a href="http://zh.wikipedia.org/w/index.php?title=SICP&amp;amp;variant=zh-tw"&gt;SICP 在 Wikipedia 上面的介紹&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6798365616043706588-1137610039952105223?l=sleepnova.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sleepnova.blogspot.com/feeds/1137610039952105223/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6798365616043706588&amp;postID=1137610039952105223' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/1137610039952105223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/1137610039952105223'/><link rel='alternate' type='text/html' href='http://sleepnova.blogspot.com/2008/09/scheme-books.html' title='Scheme books'/><author><name>sleepnova</name><uri>http://www.blogger.com/profile/06621292641661517950</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-6798365616043706588.post-3097672619804437539</id><published>2008-08-28T11:16:00.000-07:00</published><updated>2008-08-28T22:54:45.049-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lisp'/><title type='text'>DrScheme</title><content type='html'>亂逛看到這個，視覺化的程式開發環境 &lt;a href="http://www.plt-scheme.org/"&gt;DrScheme&lt;/a&gt;，跟我之前想像的 Editor 很像，好像很有趣，有空來玩一下。&lt;br /&gt;&lt;br /&gt;Watch this -&gt; &lt;a href="http://www.plt-scheme.org/tour.html"&gt;DrScheme Tour&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6798365616043706588-3097672619804437539?l=sleepnova.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sleepnova.blogspot.com/feeds/3097672619804437539/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6798365616043706588&amp;postID=3097672619804437539' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/3097672619804437539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/3097672619804437539'/><link rel='alternate' type='text/html' href='http://sleepnova.blogspot.com/2008/08/drscheme.html' title='DrScheme'/><author><name>sleepnova</name><uri>http://www.blogger.com/profile/06621292641661517950</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-6798365616043706588.post-847186577432747839</id><published>2008-08-25T22:41:00.000-07:00</published><updated>2008-08-28T11:30:56.579-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>android.telephony</title><content type='html'>一個同事問到，Android 有開放 gsm 相關的 API 嗎?&lt;br /&gt;有的，以下是 Send SMS 的 API - &lt;a href="http://code.google.com/android/reference/android/telephony/gsm/SmsManager.html"&gt;android.telephony.gsm.SmsManager&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;其他有關 telephony 的 package&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://code.google.com/android/reference/android/telephony/gsm/package-summary.html"&gt;android.telephony.gsm&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/android/reference/android/telephony/package-summary.html"&gt;android.telephony&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6798365616043706588-847186577432747839?l=sleepnova.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sleepnova.blogspot.com/feeds/847186577432747839/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6798365616043706588&amp;postID=847186577432747839' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/847186577432747839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/847186577432747839'/><link rel='alternate' type='text/html' href='http://sleepnova.blogspot.com/2008/08/androidtelephony.html' title='android.telephony'/><author><name>sleepnova</name><uri>http://www.blogger.com/profile/06621292641661517950</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-6798365616043706588.post-2542575815488552759</id><published>2008-08-09T00:01:00.000-07:00</published><updated>2008-08-28T11:30:43.685-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lisp'/><title type='text'>Lisp on JVM</title><content type='html'>日前對 Lisp 產生興趣，於是開始找尋跟 Java 相關的 Lisp implementation，目前有找到這兩個看起來比較成熟的。&lt;br /&gt;&lt;br /&gt;一個是 &lt;a href="http://armedbear.org/abcl.html"&gt;ABCL&lt;/a&gt; common lisp implementation on JVM，另外一個則是 Lisp 方言 &lt;a href="http://clojure.org/"&gt;Clojure&lt;/a&gt;。&lt;br /&gt;&lt;br /&gt;以下是順道找的的相關文章&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.infoq.com/articles/lisp-for-jvm"&gt;InfoQ: Exploring LISP on the JVM&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://jonasboner.com/2007/10/18/clojure-a-lisp-dialect-for-the-jvm-with-focus-on-functional-and-concurrent-programming/"&gt;Clojure: a Lisp-dialect for the JVM - with focus on Functional and Concurrent Programming&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://per.bothner.com/papers/jaoo99.html"&gt;Functional Scripting Languages for the JVM&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6798365616043706588-2542575815488552759?l=sleepnova.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sleepnova.blogspot.com/feeds/2542575815488552759/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6798365616043706588&amp;postID=2542575815488552759' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/2542575815488552759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6798365616043706588/posts/default/2542575815488552759'/><link rel='alternate' type='text/html' href='http://sleepnova.blogspot.com/2008/08/lisp-on-jvm.html' title='Lisp on JVM'/><author><name>sleepnova</name><uri>http://www.blogger.com/profile/06621292641661517950</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>
