<?xml version="1.0" encoding="big5"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
	<title>Thinker</title>
	<link>http://www.codemud.net/~thinker/GinGin_CGI.py</link>
	<dc:language></dc:language>
	<dc:creator>Thinker</dc:creator>
	<dc:date></dc:date>
	<item ezid="content.feeds.feed">
		<title>MadButterfly 和 Javascript 合體的威力</title>
		<link>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/422</link>
		<description>久等了，MadButterfly 終於和 Javascript 進行傳說中、超興奮的合體，這應該比智利礦工爬出礦坑還要振奮。而 Javascript Engine 百百種，可惜的是，我們這次沒有再為世界多加一種。我們選用 Google 的 V8 Javascript engine，理由當然是 V8 是藍星目前最快的 Javascript engine。單只有 Javascript engine 當然還不夠，還需要和 engine 配合的各種 library，於是我們選擇了 nodejs 做為整合的對象。 nodejs 是一個以 V8 為基礎的 server side 開發平台，雖然我們不執行在 ...</description>
		<guid>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/422</guid>
		<dc:date>2010-08-31T19:26:26-08:00</dc:date>
	</item><item ezid="content.feeds.feed">
		<title>Adapt C code for Javascript</title>
		<link>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/421</link>
		<description>如預期的 Javascript 在藍星上的重要性與日俱增，尤其是過去兩年， Javascript Engine 的效能大幅改善，使 Javascript 的適用性已經遍佈軟體世界的各個角落。有詩為證
{{{
  Javascript 日出海面的金龍，上蒼穹，下陰曹。
  肯伯特女媧，引其血，破其骨，造 kernel。
}}}

話說造物女神解除 Javascript 的效能禁咒之後，Javascript 四處流竄。然而大地上的勇者，還不知如何馴服這頭神獸，阻止其強大的破壞能量。幸有神人指出，唯有上古神器吸迂涎(C language)，能安撫神獸，使之安定在數位大陸，與母體連結，為大陸的人民提供無窮的能量。然而吸迂涎極為無形，入杯為杯，入瓶為瓶，形體不定，難以捉摸，又極為危險。世界的勇者們，多避免駕用這種禁忌物質。更何況用之對付 ...</description>
		<guid>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/421</guid>
		<dc:date>2010-08-26T09:21:15-08:00</dc:date>
	</item><item ezid="content.feeds.feed">
		<title>OpenVG for Linux/FreeBSD with X</title>
		<link>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/420</link>
		<description>如果你需要測試 OpenVG + EGL，目前在 Linux/FreeBSD Desktop 大概只能用 Mesa，然而 Mesa 有點複雜，又只支援到 OpenVG 1.0 的 API 。如果你需要 OpenVG 1.1，可以使用 Khronos 網站所提供的 reference design。但該份 implementation 只支援 Mac OS X 和 Windows，不幸!

由是我花了一點時間，將之 porting 到 FreeBSD 上，能在 X 環境下執行。理論上這個 porting 應該也能在 Linux 上執行，但 makefile 可能要更改一下。現有的 makefile ...</description>
		<guid>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/420</guid>
		<dc:date>2010-08-25T21:49:09-08:00</dc:date>
	</item><item ezid="content.feeds.feed">
		<title>回收 Linux cached memory</title>
		<link>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/419</link>
		<description>最近常被問到，當程式讀取大量資料， kernel 會使用大量記憶體當 cache，又不會在記憶體不足時進行回收，造成程式無法執行。這時該怎麼辨?

方法一:
{{{#!raw
echo 1 &amp;gt; /proc/sys/vm/drop_caches
    or
sysctl -w vm.drop_caches=1
}}}
這會觸發 kernel 回收用於 cache 的記憶體。

方法二:
{{{
fcntl(fd, F_SETFL, O_DIRECT)
}}}
在程式裡，為 file descriptor 設上 O_DIRECT，使 filesystem 避免 cache ...</description>
		<guid>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/419</guid>
		<dc:date>2010-08-20T00:17:50-08:00</dc:date>
	</item><item ezid="content.feeds.feed">
		<title>公告: 更換 domain name</title>
		<link>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/418</link>
		<description>目前的 branda.to 將換成 codemud.com/codemud.net ，理由是 .to 太貴了。branda.to 將繼續使用一年。
</description>
		<guid>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/418</guid>
		<dc:date>2010-08-03T20:57:15-08:00</dc:date>
	</item><item ezid="content.feeds.feed">
		<title>關於 GCC nested function</title>
		<link>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/416</link>
		<description>Jserv 寫了一篇文章 linkname:[GCC 的 nested function 與 trampoline] http://blog.linux.org.tw/~jserv/archives/2010/07/gcc_nested_func.html ，但發現文中有一些錯誤，又無法在網站上 post comment，所以把我的想法寫在這。

文中的範例對 gcc nested function 的使用恐怕有一些誤解。首先，因為 trampoline 是位於 stack 裡，所以你不能 return 一個 trampoline ，在之後使用。理由很簡單，一旦你 return 到前一個 frame ...</description>
		<guid>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/416</guid>
		<dc:date>2010-07-29T19:07:01-08:00</dc:date>
	</item><item ezid="content.feeds.feed">
		<title>GLUT 作為 Embedded System 的 UI 平台</title>
		<link>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/415</link>
		<description>在 Embedded System，DirectFB 是一個很常見的繪圖介面架構。 DirectFB 沒有
複雜的 UI components 架構，提供基本的圖形輸出、Mouse 和 keyboard 的
handle。這樣基本的功能，正好適用於 Embedded System 的高度客製化。GLUT
也提供類似的功能，但提供 2D 和 3D 的硬體加速。事實上，他是 OpenGL 和
OpenVG 的延伸，是 The OpenGL Utility Toolkit 的縮寫。在加速晶片日漸普及
的今日，我輩幾乎能預見 GLUT 的普及，普成為 defacto standard 的潛力。 ...</description>
		<guid>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/415</guid>
		<dc:date>2010-06-15T23:49:55-08:00</dc:date>
	</item><item ezid="content.feeds.feed">
		<title>別被 kernel 嚇到了</title>
		<link>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/414</link>
		<description>一直以來，有許多人對 kernel 無理由的著迷。我看到許多人一聽到 kernel ，目中就流露迷戀的眼神，只要和 kernel 有關的 talk ，就瘋狂的報名，即使他有聽沒有懂，即使他沒寫過任何 kernel ，之後也不會動手去寫。這種情況實在讓我難以理解。大伙似乎對 kernel 有一種迷思，把 kernel 當成另一個世界來的新奇玩意。但， kernel 和其它的應用程式沒兩樣。甚至可以說， kernel 只是有特殊作用的應用程式。我要問，為什麼要崇拜 kernel? 有多少人知道自己崇拜 kernel 的理由?

為了要破除大家的迷思/迷信，加上別的事件的影嚮，幾天前我開始寫一個小 ...</description>
		<guid>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/414</guid>
		<dc:date>2010-05-11T13:50:30-08:00</dc:date>
	</item><item ezid="content.feeds.feed">
		<title>SVG 加 Gecko 完全攻略</title>
		<link>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/413</link>
		<description>昨天晚上 (2010.5.4) 在 TOSSUG 以主題「SVG 加 Gecko 完全攻略」進行分享。主要內容是過去一陣子，針對實作 GUI 的方法論進行研究的成果。或許這不是一個炫麗的題目，參與分享的人數並不算多，但最後的發問卻出乎意料的踴躍。

這次的主題也是延續之前 MadButterfly 專案，進行相關問題研究的成果。內容和 OSDC 的 talk 相近，但更為深入。環繞在 OSDC 所使用的範例程式 linkname:[bubblurk] http://0rz.tw/cE36E ，討論實作 bubblurk 所使用的相關技術、開發環境。內容包括
 * Javascript
 ...</description>
		<guid>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/413</guid>
		<dc:date>2010-05-05T22:35:09-08:00</dc:date>
	</item><item ezid="content.feeds.feed">
		<title>在 OSDC 展示的 Plurk client</title>
		<link>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/412</link>
		<description>一年一度的 OSDC，今年我也不缺席。雖然最近很癈，但延續之前的開發項目，以 SVG-based Application Development 為主題，談談近來的發展成果。主要的進展是 XBL 的嘗試，討論其優點。為此，我想了很久才決定 Bubblurk 這個 demo ，花了一點時間完成，以展示 SVG-base 的特點。

linkname:Bubblurk http://0rz.tw/cE36E 說穿了就是一個 plurk 訊息的顯示介面。透過泡泡的移動，帶出訊息內容。Bubblurk 的實際用途可能不大，但做為 demo 也實在稱職。我今天又花了點時間，做較完整的包裝，並上傳到 linkname:[mozilla ...</description>
		<guid>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/412</guid>
		<dc:date>2010-04-26T21:47:03-08:00</dc:date>
	</item><item ezid="content.feeds.feed">
		<title>MadButterfly 的最新計劃</title>
		<link>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/411</link>
		<description>最近 MadButterfly 將得到一筆贊助，和 wycc 討論之後，將會用於改善 Inkscape 和常用元件的製作。Inkscape 在繪圖方面相當完善，但 GUI 的設計需要額外的一些功能。像是符號編輯和場景設計。

Inkscape 本身其實就能設定 ID ，但是得透過 XML editor ，容易嚇到使用者。而 Inkscape 又為每個 node 都設定一個 ID ，如果放在列表裡，將是一長串，使用者很難找到他們要的東西。於是我們需要另外設定一個 symbol ，讓使用者為他們有興趣的 SVG group 設定名稱。並提供一個 symbol 列表，讓使用者能快速選取對映的圖形。而 ...</description>
		<guid>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/411</guid>
		<dc:date>2010-04-14T11:14:03-08:00</dc:date>
	</item><item ezid="content.feeds.feed">
		<title>這並不是一個創新</title>
		<link>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/410</link>
		<description>最近一個不熟的朋友，過去寫過一個軟體，在經過媒體宣傳之後，瞬間爆紅。事實上該軟體是一個成熟度很高的作品，是一個值得推薦、喝采的作品。然而，該位作者卻將該作品說成是「創新」、「革命」這是我完全不能認同的。大多數人過去可能沒看過類似的軟體，會為之驚豔。但，有意或無意間，利用人們的無知，而進行自我吹捧，則是我所不認同的。或許該位朋友，過去也沒見過類似的作品，出於無心之過。因此，我也不指名道姓說是誰了。只是，榮耀應該還給適當的人。

根據作者本身所宣傳的，和網路上大家所傳頌的，該軟體有兩項革命性的特色。一、「使用畫面的截圖寫程式」，二、「用圖形表示程式內容」易於閱讀。事實上，這兩項特色、功能，都不是創新。甚至早就有成熟的商業產品了。這兩項特色最早是由誰發明的，我並不清楚，但透過網路上能找到的相關軟體，其實可以很清楚的告訴我們，這是早就存在而且成熟的技術。 ...</description>
		<guid>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/410</guid>
		<dc:date>2010-01-30T22:04:29-08:00</dc:date>
	</item><item ezid="content.feeds.feed">
		<title>Tossug 2/9 SVG 加 XBL 分享</title>
		<link>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/409</link>
		<description>今夜在 HackingThursday 測試一下水溫，證實這個 programming model 是許多人能接受和理解的。 XBL (XML Binding Language) 是 Firefox 所制定的一套宣告語言，用以將「行為」(程式碼)套用在 HTML/SVG/... 等 DOM node ，付與特定的行為。透過 Inkscape 或其它向量繪圖軟體的使用，SVG + XBL 的組合展現出驚人的特性。不但分了離「外觀」和「行為」，在繪圖軟體的處理下，也可以很容易的維持「外觀」和「為行」之間的關係。如前文 linkname:[SVG and XBL No Widget] http://heaven.branda.to/~thinker/GinGin_CGI.py/show_id_doc/408 ...</description>
		<guid>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/409</guid>
		<dc:date>2010-01-15T00:19:34-08:00</dc:date>
	</item><item ezid="content.feeds.feed">
		<title>SVG and XBL No Widget</title>
		<link>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/408</link>
		<description>之前我一直強調使用 linkname:SVG http://www.w3.org/Graphics/SVG/ 製作 UI 的優點，也不斷強調不要 Widget/Component
的觀念。然而，許多人一直不懂要怎麼做，甚至不知道要怎麼開始這種新的
programming model。

其實，在去年的 OSDC 時，我開始提倡一種觀念。 UI 應該分割成「畫面」和
「行為」兩個部分。例如一個按鈕，按鈕的外觀就是「畫面」，而按下按鈕後，
按鈕本身的反應、回饋使用者的動作，則為「行為」。這兩個部分，實
際上是可以分離的。但傳統的 widget/component 的設計，往往是將兩者合而為 ...</description>
		<guid>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/408</guid>
		<dc:date>2010-01-13T01:37:31-08:00</dc:date>
	</item><item ezid="content.feeds.feed">
		<title>OpenSource 與嵌入式系統</title>
		<link>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/407</link>
		<description>星期一 (2009.1.4) 回到學校，和大學生談嵌入式系統。踏入元智校門時，迎面而來夜霧裊裊、燈火斜照的下坡道，一股濕冷正是過去種種的縮影。這次和學生們分享的是比較軟性的內容，談談過去兩年來， OpenSource 的發展狀況和嵌入式系統的產業變化。主要是計對台灣的情形做個報告，讓這群大多數還未進入產業的學生們，對產業的現況有些了解。並希望能鼓勵這群社會的新血，加入這個在台灣能有一段榮景的產業。

linkname:[投影片內容] http://heaven.branda.to/~thinker/downloads/p47-joined.pdf
</description>
		<guid>http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/407</guid>
		<dc:date>2010-01-06T13:31:40-08:00</dc:date>
	</item>
</channel>
</rss>