<?xml version="1.0"?>
<rss version="2.0">

<channel>
	<title>Planet ITRS</title>
	<link>http://planet.itrs.tw/</link>
	<language>en</language>
	<description>Planet ITRS - http://planet.itrs.tw/</description>

<item>
	<title>駱嘉濠's plurk: fcamel 說 住新竹時沒人管幾點睡, 結果回台北住以後....., 變成要管老媽不要太晚睡</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;947991161</guid>
	<link>http://www.plurk.com/p/foeqnt</link>
	<description>fcamel 說 住新竹時沒人管幾點睡, 結果回台北住以後....., 變成要管老媽不要太晚睡</description>
	<pubDate>Wed, 22 Feb 2012 16:24:10 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 Sad, 吃飯時發覺下班前寫的 code 有個小 bug, 想好要怎麼修後, 回到家連上伺服器備好環境, 準備要重製錯誤時: 才發現測試檔放在公司的桌機裡 Orz 看來還是今天早點睡, 明天早一點去公司吧</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;947865439</guid>
	<link>http://www.plurk.com/p/foc1nj</link>
	<description>fcamel 說 Sad, 吃飯時發覺下班前寫的 code 有個小 bug, 想好要怎麼修後, 回到家連上伺服器備好環境, 準備要重製錯誤時: 才發現測試檔放在公司的桌機裡 Orz 看來還是今天早點睡, 明天早一點去公司吧</description>
	<pubDate>Wed, 22 Feb 2012 13:33:53 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 fcamel 技術隨手記: 用 rlwrap 幫任何命令列工具加上 code completion、command history</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;947849040</guid>
	<link>http://www.plurk.com/p/fobp00</link>
	<description>fcamel 說 &lt;a href=&quot;http://tinyurl.com/ycy3tnw&quot; class=&quot;ex_link&quot; rel=&quot;nofollow&quot;&gt;fcamel 技術隨手記: 用 rlwrap 幫任何命令列工具加上 code completion、command history&lt;/a&gt;</description>
	<pubDate>Wed, 22 Feb 2012 13:07:30 +0000</pubDate>
</item>
<item>
	<title>ITRS Wiki: Windows Programming</title>
	<guid isPermaLink="true">http://itrs.tw:115/mediawiki/index.php?title=Windows_Programming&amp;diff=2245&amp;oldid=2140</guid>
	<link>http://itrs.tw:115/mediawiki/index.php?title=Windows_Programming&amp;diff=2245&amp;oldid=2140</link>
	<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;See Also: &lt;/span&gt; &lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot;&gt;
			&lt;colgroup&gt;&lt;col class=&quot;diff-marker&quot; /&gt;
			&lt;col class=&quot;diff-content&quot; /&gt;
			&lt;col class=&quot;diff-marker&quot; /&gt;
			&lt;col class=&quot;diff-content&quot; /&gt;
		&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr valign=&quot;top&quot;&gt;
		&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color: black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color: black;&quot;&gt;Revision as of 21:39, 21 February 2012&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 39:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 39:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[WMI]]: Windows Management Instrumentation&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[WMI]]: Windows Management Instrumentation&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [http://developer.apple.com/library/ios/#technotes/tn2239/_index.html iOS Debugging Magic]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [http://developer.apple.com/library/ios/#technotes/tn2239/_index.html iOS Debugging Magic]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [http://support.microsoft.com/kb/927069 How to generate an NMI crash dump on Windows]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</description>
	<pubDate>Tue, 21 Feb 2012 21:39:57 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 fcamel 技術隨手記: 設定 viewport 的寬度為 device-width 以支援各種 mobile browser</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;947329418</guid>
	<link>http://www.plurk.com/p/fo0k22</link>
	<description>fcamel 說 &lt;a href=&quot;http://fcamel-life.blogspot.com/2012/02/viewport-device-width-mobile-browser.html&quot; class=&quot;ex_link&quot; rel=&quot;nofollow&quot;&gt;fcamel 技術隨手記: 設定 viewport 的寬度為 device-width 以支援各種 mobile browser&lt;/a&gt;</description>
	<pubDate>Tue, 21 Feb 2012 14:11:30 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's fcamel 技術隨手記: 設定 viewport 的寬度為 device-width 以支援各種 mobile browser</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-4982215793068879977.post-1442389939389949462</guid>
	<link>http://feedproxy.google.com/~r/blogspot/fcamel/~3/xAibhkUHWQM/viewport-device-width-mobile-browser.html</link>
	<description>&lt;p&gt;好歹也是花了一些時間看的東西, 備忘一下。
&lt;/p&gt;&lt;p&gt;
&lt;a href=&quot;http://www.quirksmode.org/blog/archives/2010/04/the_orientation.html&quot;&gt;《The orientation media query》&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt; orientation (landscape or portrait) 不是重點, 重點是螢幕寬度到底是幾 pixel&lt;/li&gt;
&lt;li&gt; 結論: 用 device-width&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;
&lt;a href=&quot;http://webdev-il.blogspot.com/2011/04/mobile-web-design-viewport-size-vs.html&quot;&gt;《Mobile web design viewport size vs screen resolution - viewport META tag》&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt; 詳述 viewport 為何, 覺得重述一次意思會不對, 還是請大家看原文吧&lt;/li&gt;
&lt;li&gt; mobile device 的 viewport 大小不見得和 screen 大小一樣 (桌機則是一致)&lt;/li&gt;
&lt;li&gt; 有些 mobile browser 藉由讓 html 畫在較寬的 viewport 上, 再將它縮放到符合螢幕寬度, 藉此顯示整個網頁的大概樣子 (有時稱為 overview mode)。也就是說, 網頁會依 viewport 的寬度來 render, 而不是 screen 寬度。對桌機來說兩者寬度一樣, 所以不會混淆&lt;/li&gt;
&lt;li&gt; 各家 mobile browser 預設的 viewport 大小不同, 造成寫網頁的人的困擾&lt;/li&gt;
&lt;li&gt; 可用 &lt;tt&gt;&amp;lt;meta name=&quot;viewport&quot;content=&quot;width=1100&quot;/&amp;gt;&lt;/tt&gt; 改變預設 viewport 寬度&lt;/li&gt;
&lt;li&gt; 可用 &lt;tt&gt;&amp;lt;meta name=&quot;viewport&quot;content=&quot;width=device-width&quot;/&amp;gt;&lt;/tt&gt; 將 viewport 設為 device 寬度&lt;/li&gt;
&lt;li&gt; 舊手機不支援上述語法, 該連結有提到其它備案&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;
&lt;a href=&quot;http://tech.bluesmoon.info/2011/01/device-width-and-how-not-to-hate-your.html&quot;&gt;《device-width and how not to hate your users》&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt; 可用 CSS 3 新語法 &lt;a href=&quot;http://waterlily-lsl.com/modules/article/view.article.php/236/c2&quot;&gt;media-query&lt;/a&gt; 針對螢幕寬度決定使用的 CSS rules。對於桌機不同的螢幕寬度來說, 這是個好解法, 不用擔心使用者用 24&quot; 寬螢幕還是 19&quot; 一般螢幕。&lt;/li&gt;
&lt;li&gt; mobile device 另有 viewport 大小不同 screen 大小的特色, 所以使用 &lt;a href=&quot;http://waterlily-lsl.com/modules/article/view.article.php/236/c2&quot;&gt;media-query&lt;/a&gt; 的話, 要再配合限制 viewport 寬度為 device-width, 才可確保用對 CSS rules&lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/4982215793068879977-1442389939389949462?l=fcamel-life.blogspot.com&quot; /&gt;&lt;/div&gt;&lt;img width=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/blogspot/fcamel/~4/xAibhkUHWQM&quot; height=&quot;1&quot; /&gt;</description>
	<pubDate>Tue, 21 Feb 2012 14:10:52 +0000</pubDate>
	<author>noreply@blogger.com (fcamel)</author>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 EditingHistory - 之前上回看 +Che-Liang Chiou 提到 qrefresh 而好奇地試了一下 mq, 今天就不小心順便用來修改自己的 local history</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;947303692</guid>
	<link>http://www.plurk.com/p/fo007g</link>
	<description>fcamel 說 &lt;a href=&quot;http://mercurial.selenic.com/wiki/EditingHistory&quot; class=&quot;ex_link&quot; rel=&quot;nofollow&quot;&gt;EditingHistory&lt;/a&gt; - 之前上回看 +Che-Liang Chiou 提到 qrefresh 而好奇地試了一下 mq, 今天就不小心順便用來修改自己的 local history</description>
	<pubDate>Tue, 21 Feb 2012 13:27:19 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 喔喔, 現在點 G+ 的 logo, 會自動捲回 top。還有不知不覺那個難用的大圖示已被換掉了, 原本得先點它叫出選單再點別的服務</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;947301777</guid>
	<link>http://www.plurk.com/p/fnzyq9</link>
	<description>fcamel 說 喔喔, 現在點 G+ 的 logo, 會自動捲回 top。還有不知不覺那個難用的大圖示已被換掉了, 原本得先點它叫出選單再點別的服務</description>
	<pubDate>Tue, 21 Feb 2012 13:24:30 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 洗個澡心情好多了, 問題好像也沒變複雜, 明天再來看看情況如何</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;946864612</guid>
	<link>http://www.plurk.com/p/fnqles</link>
	<description>fcamel 說 洗個澡心情好多了, 問題好像也沒變複雜, 明天再來看看情況如何</description>
	<pubDate>Mon, 20 Feb 2012 16:15:04 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 前天寫了心得「問錯問題的話, 永遠不會得到有用的答案」, 今天發現「追錯程式的話, 也不會有好下場」 ... 。不幸中的大幸是, 只追錯一半, 還有一半的經驗可用</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;946836921</guid>
	<link>http://www.plurk.com/p/fnq01l</link>
	<description>fcamel 說 前天寫了心得「問錯問題的話, 永遠不會得到有用的答案」, 今天發現「追錯程式的話, 也不會有好下場」 ... 。不幸中的大幸是, 只追錯一半, 還有一半的經驗可用</description>
	<pubDate>Mon, 20 Feb 2012 15:35:48 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 老媽剛看完犀利人妻, 竟然馬上接著看起我可能不會愛你, 真趕流行 ...</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;946766978</guid>
	<link>http://www.plurk.com/p/fnoi2q</link>
	<description>fcamel 說 老媽剛看完犀利人妻, 竟然馬上接著看起我可能不會愛你, 真趕流行 ...</description>
	<pubDate>Mon, 20 Feb 2012 14:04:51 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's fcamel 技術隨手記: 在 apache2 內顯示 symbolic link</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-4982215793068879977.post-5312105735297738130</guid>
	<link>http://feedproxy.google.com/~r/blogspot/fcamel/~3/MtaQmEq3KAw/apache2-symbolic-link.html</link>
	<description>&lt;p&gt;要滿足以下三者才可以顯示 symbolic link&lt;/p&gt;&lt;ul&gt;
&lt;li&gt; &amp;lt;Directory /path/to/dir/&amp;gt; 內要有 SymLinksIfOwnerMatch 外 (module userdir 預設就有設)&lt;/li&gt;
&lt;li&gt; soft link 的擁有者要和連到的檔案是同一人, 這樣才安全, 也可避免 /、/home 之類的目錄被使用者亂連出去&lt;/li&gt;
&lt;li&gt; soft link 目錄的整條路徑都要能讓 www daemon 存取, 若有個目錄是 750 之類的就不行&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;
有錯時可看 /var/log/apache2/error.log, 若出現「Symbolic link not allowed or link target not accessible」, 大概上述其中一者沒設對。&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/4982215793068879977-5312105735297738130?l=fcamel-life.blogspot.com&quot; /&gt;&lt;/div&gt;&lt;img width=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/blogspot/fcamel/~4/MtaQmEq3KAw&quot; height=&quot;1&quot; /&gt;</description>
	<pubDate>Sun, 19 Feb 2012 18:23:03 +0000</pubDate>
	<author>noreply@blogger.com (fcamel)</author>
</item>
<item>
	<title>ITRS Wiki: System Programming</title>
	<guid isPermaLink="true">http://itrs.tw:115/mediawiki/index.php?title=System_Programming&amp;diff=2244&amp;oldid=2119</guid>
	<link>http://itrs.tw:115/mediawiki/index.php?title=System_Programming&amp;diff=2244&amp;oldid=2119</link>
	<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;See Also: &lt;/span&gt; &lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot;&gt;
			&lt;colgroup&gt;&lt;col class=&quot;diff-marker&quot; /&gt;
			&lt;col class=&quot;diff-content&quot; /&gt;
			&lt;col class=&quot;diff-marker&quot; /&gt;
			&lt;col class=&quot;diff-content&quot; /&gt;
		&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr valign=&quot;top&quot;&gt;
		&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color: black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color: black;&quot;&gt;Revision as of 17:46, 19 February 2012&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 105:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 105:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Windows Linux System Call Comparison]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Windows Linux System Call Comparison]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Windows Programming]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Windows Programming]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [[Memory Management]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [http://www.pixelbeat.org/timeline.html Pádraig Brady has a lot of interesting content at pixelbeat.org]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [http://www.pixelbeat.org/timeline.html Pádraig Brady has a lot of interesting content at pixelbeat.org]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</description>
	<pubDate>Sun, 19 Feb 2012 17:46:28 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 Doxygen 跑下去後, 硬碟頻頻發出悲鳴, 看來可以先看個電影, 再回來看建個如何。下回應該連上 server 用 ramdisk 建文件才對</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;946234440</guid>
	<link>http://www.plurk.com/p/fnd360</link>
	<description>fcamel 說 Doxygen 跑下去後, 硬碟頻頻發出悲鳴, 看來可以先看個電影, 再回來看建個如何。下回應該連上 server 用 ramdisk 建文件才對</description>
	<pubDate>Sun, 19 Feb 2012 14:41:29 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 Doxygen 程式文件產生器 與 簡易筆記 | Tsungs Blog - Doxygen 設定真細, 來試看看對於讀 code 是否有幫助blog.longwin.com.tw/wp-content/themes/twentyten/images/headers/concave.jpg</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;946229660</guid>
	<link>http://www.plurk.com/p/fnczh8</link>
	<description>fcamel 說 &lt;a href=&quot;http://blog.longwin.com.tw/2011/04/doxygen-document-generator-2011/&quot; class=&quot;ex_link&quot; rel=&quot;nofollow&quot;&gt;Doxygen 程式文件產生器 與 簡易筆記 | Tsungs Blog&lt;/a&gt; - Doxygen 設定真細, 來試看看對於讀 code 是否有幫助&lt;br /&gt;&lt;a href=&quot;http://blog.longwin.com.tw/wp-content/themes/twentyten/images/headers/concave.jpg&quot; class=&quot;ex_link pictureservices&quot; rel=&quot;nofollow&quot;&gt;blog.longwin.com.tw/wp-content/themes/twentyten/images/headers/concave.jpg&lt;/a&gt;</description>
	<pubDate>Sun, 19 Feb 2012 14:34:39 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 六度理論又一例：我 --&amp;gt; 大學同學 --&amp;gt; 前同事 --&amp;gt; 兒子 = 林書豪，昨天和同學敍舊發現的。</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;946218813</guid>
	<link>http://www.plurk.com/p/fncr3x</link>
	<description>fcamel 六度理論又一例：我 --&amp;gt; 大學同學 --&amp;gt; 前同事 --&amp;gt; 兒子 = 林書豪，昨天和同學敍舊發現的。 &lt;img src=&quot;http://statics.plurk.com/2d5e21929e752498e36d74096b1965e1.gif&quot; alt=&quot;:-P&quot; class=&quot;emoticon&quot; height=&quot;18&quot; /&gt;</description>
	<pubDate>Sun, 19 Feb 2012 14:19:51 +0000</pubDate>
</item>
<item>
	<title>ITRS Wiki: Memory Management</title>
	<guid isPermaLink="true">http://itrs.tw:115/mediawiki/index.php?title=Memory_Management&amp;diff=2243&amp;oldid=2240</guid>
	<link>http://itrs.tw:115/mediawiki/index.php?title=Memory_Management&amp;diff=2243&amp;oldid=2240</link>
	<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;General Purpose: &lt;/span&gt; &lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot;&gt;
			&lt;colgroup&gt;&lt;col class=&quot;diff-marker&quot; /&gt;
			&lt;col class=&quot;diff-content&quot; /&gt;
			&lt;col class=&quot;diff-marker&quot; /&gt;
			&lt;col class=&quot;diff-content&quot; /&gt;
		&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr valign=&quot;top&quot;&gt;
		&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color: black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color: black;&quot;&gt;Revision as of 13:18, 19 February 2012&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; align=&quot;center&quot; class=&quot;diff-multi&quot;&gt;(2 intermediate revisions by one user not shown)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [https://lwn.net/Articles/296738/ The Kernel Hacker's Bookshelf: UNIX Internals: Kernel Memory Allocation] -   by Valerie Henson, September 2008&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* http://developer.gnome.org/glib/stable/glib-Memory-Slices.html&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [http://sysc.tl/blog/2012/01/03/linux-kernel-heap-exploitation/ The Linux kernel memory allocators from an exploitation perspective] by argp, Jan 2011&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;== General Purpose ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;== General Purpose ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [http://www.malloc.de/en/ ptmalloc] ([http://rdc.taobao.com/blog/cs/?p=1015 glibc内存管理ptmalloc2的实现]) ([http://www.nedprod.com/programs/Win32/ptmalloc2/ ptmalloc2-win32] has useful background knowledge links&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;]&lt;/del&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [http://www.malloc.de/en/ ptmalloc] ([http://rdc.taobao.com/blog/cs/?p=1015 glibc内存管理ptmalloc2的实现]) ([http://www.nedprod.com/programs/Win32/ptmalloc2/ ptmalloc2-win32] has useful background knowledge links)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;** [http://git.fedorahosted.org/git/?p=initscripts.git;a=blob;f=sysconfig/debug;hb=HEAD glibc malloc debug support]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [http://www.canonware.com/jemalloc/ jemalloc]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [http://www.canonware.com/jemalloc/ jemalloc]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [http://g.oswego.edu/dl/html/malloc.html dlmalloc]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [http://g.oswego.edu/dl/html/malloc.html dlmalloc]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 11:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 8:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;== Special Purpose ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;== Special Purpose ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [http://goog-perftools.sourceforge.net/doc/tcmalloc.html tcmalloc]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [http://goog-perftools.sourceforge.net/doc/tcmalloc.html tcmalloc]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;== Misc ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [https://lwn.net/Articles/296738/ The Kernel Hacker's Bookshelf: UNIX Internals: Kernel Memory Allocation] -   by Valerie Henson, September 2008&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [http://developer.gnome.org/glib/stable/glib-Memory-Slices.html glib: Memory Slices]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [http://sysc.tl/blog/2012/01/03/linux-kernel-heap-exploitation/ The Linux kernel memory allocators from an exploitation perspective] by argp, Jan 2011&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;== See Also ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;== See Also ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[System Programming]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[System Programming]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* http://en.wikipedia.org/wiki/Memory_management&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* http://en.wikipedia.org/wiki/Memory_management&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</description>
	<pubDate>Sun, 19 Feb 2012 13:18:30 +0000</pubDate>
</item>
<item>
	<title>ITRS Wiki: Memory Management</title>
	<guid isPermaLink="true">http://itrs.tw:115/mediawiki/index.php?title=Memory_Management&amp;diff=2240&amp;oldid=0</guid>
	<link>http://itrs.tw:115/mediawiki/index.php?title=Memory_Management&amp;diff=2240&amp;oldid=0</link>
	<description>&lt;p&gt;Created page with &quot;* [https://lwn.net/Articles/296738/ The Kernel Hacker's Bookshelf: UNIX Internals: Kernel Memory Allocation] -   by Valerie Henson, September 2008 * http://developer.gnome.org...&quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;* [https://lwn.net/Articles/296738/ The Kernel Hacker's Bookshelf: UNIX Internals: Kernel Memory Allocation] -   by Valerie Henson, September 2008&lt;br /&gt;
* http://developer.gnome.org/glib/stable/glib-Memory-Slices.html&lt;br /&gt;
* [http://sysc.tl/blog/2012/01/03/linux-kernel-heap-exploitation/ The Linux kernel memory allocators from an exploitation perspective] by argp, Jan 2011&lt;br /&gt;
&lt;br /&gt;
== General Purpose ==&lt;br /&gt;
* [http://www.malloc.de/en/ ptmalloc] ([http://rdc.taobao.com/blog/cs/?p=1015 glibc内存管理ptmalloc2的实现]) ([http://www.nedprod.com/programs/Win32/ptmalloc2/ ptmalloc2-win32] has useful background knowledge links])&lt;br /&gt;
* [http://www.canonware.com/jemalloc/ jemalloc]&lt;br /&gt;
* [http://g.oswego.edu/dl/html/malloc.html dlmalloc]&lt;br /&gt;
* [http://www.hoard.org/ Hoard]&lt;br /&gt;
&lt;br /&gt;
== Special Purpose ==&lt;br /&gt;
* [http://goog-perftools.sourceforge.net/doc/tcmalloc.html tcmalloc]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[System Programming]]&lt;br /&gt;
* http://en.wikipedia.org/wiki/Memory_management&lt;/div&gt;</description>
	<pubDate>Sun, 19 Feb 2012 13:16:08 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 喬靖夫．公式讀本: 《武道狂》漫畫武打取材．幕後實況 - 原來有真的揣摩動作, 難怪描寫得這麼仔細, 可以在腦中大概想像畫面2.bp.blogspot.com/-bU0k93nIol8/TvtBFR43TbI/AAAAAAAABSw/sa1b5A5SPvE/s1600/Header-title%252B2012%252BBig%252BWord01-c.jpg</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;946170732</guid>
	<link>http://www.plurk.com/p/fnbq0c</link>
	<description>fcamel 說 &lt;a href=&quot;http://jozev1969.blogspot.com/2011/10/blog-post_9883.html&quot; class=&quot;ex_link&quot; rel=&quot;nofollow&quot;&gt;喬靖夫．公式讀本: 《武道狂》漫畫武打取材．幕後實況&lt;/a&gt; - 原來有真的揣摩動作, 難怪描寫得這麼仔細, 可以在腦中大概想像畫面&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/-bU0k93nIol8/TvtBFR43TbI/AAAAAAAABSw/sa1b5A5SPvE/s1600/Header-title%252B2012%252BBig%252BWord01-c.jpg&quot; class=&quot;ex_link pictureservices&quot; rel=&quot;nofollow&quot;&gt;2.bp.blogspot.com/-bU0k93nIol8/TvtBFR43TbI/AAAAAAAABSw/sa1b5A5SPvE/s1600/Header-title%252B2012%252BBig%252BWord01-c.jpg&lt;/a&gt;</description>
	<pubDate>Sun, 19 Feb 2012 13:08:08 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 Which is better a sample or instrumentation based profiler? - All topics fundamental - Site Home - quote:</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;946112646</guid>
	<link>http://www.plurk.com/p/fnah6u</link>
	<description>fcamel 說 &lt;a href=&quot;http://blogs.msdn.com/b/tvoellm/archive/2007/08/02/what-is-the-difference-between-sample-and-instrumentation-based-profilers.aspx&quot; class=&quot;ex_link&quot; rel=&quot;nofollow&quot;&gt;Which is better a sample or instrumentation based profiler? - All topics fundamental - Site Home&lt;/a&gt; - quote:</description>
	<pubDate>Sun, 19 Feb 2012 11:17:58 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠: 專注於滿足需求而非工具或方法</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-451051488891335923.post-7708031988053755110</guid>
	<link>http://feedproxy.google.com/~r/fcamel/~3/rbD7lWQGfFY/blog-post.html</link>
	<description>&lt;p&gt;看到 &lt;a href=&quot;https://plus.google.com/102249536116095884743/posts&quot;&gt;command&lt;/a&gt; 提到&lt;a href=&quot;http://prog21.dadgum.com/128.html&quot;&gt;《Don't Fall in Love With Your Technology》&lt;/a&gt;，而有一些感觸。&lt;/p&gt;&lt;p&gt;從高中開始，我一直想弄明白 Perl、Python 到底那一個比較好用，這樣我學其中一個就可以了。後來又多了 Ruby 這個選項，讓這問題變得更複雜。大概到大學後期或研究所的時候，我才肯定這是一種&lt;a href=&quot;http://fcamel-fc.blogspot.com/2009/07/blog-post_22.html&quot;&gt;信仰上的爭辯&lt;/a&gt;，而將這個問題拋之於腦後。&lt;/p&gt;&lt;p&gt;同一時期，我也花了滿長一段時間才明白許多問題&lt;a href=&quot;http://fcamel-fc.blogspot.com/2010/04/3.html&quot;&gt;沒有標準答案&lt;/a&gt;，&lt;a href=&quot;http://fcamel-fc.blogspot.com/2011/09/problem-solving-3.html&quot;&gt;得視情況而定&lt;/a&gt;。每當對此有所體會時，就會想起大學電子學老師整年重覆強調的一句話：&lt;b&gt;「沒有前提，就沒有答案」&lt;/b&gt;。雖然兩學期的電子學都是低空飛過，這句話深深印在心裡，只是那時我對這句話的理解仍不深，還需時時重新琢磨它的含意。&lt;/p&gt;&lt;p&gt;我花了更長的時間才將前面兩個心得連結在一起，從而明白&lt;strong&gt;任何工具或方法的爭辯很可能都是偽命題，重點在於需求是什麼？要如何滿足需求？&lt;/strong&gt;如今回想起來，&lt;a href=&quot;http://www.ruanyifeng.com/blog/2011/10/dont_call_yourself_a_programmer.html&quot;&gt;《不要自称为程序员》&lt;/a&gt;將這個觀念解析得相當清楚，相當值得一看。&lt;/p&gt;&lt;p&gt;舉例來說，「vim vs. emacs」是個偽命題，這取決於自己當下的環境為何。若團隊內多數人使用 emacs 且自己兩者都不熟，那麼 emacs 是較為合理的選擇。反之，若自己相當熟 vim 而團隊內多數人兩者都不熟，那繼續使用 vim 較為合理。重點在於&lt;strong&gt;「如何有效率地在自己的環境下解決問題&lt;/strong&gt;」，&lt;strong&gt;而非「一般而言，那一個編輯器比較強？」&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;再以軟體開發的方法來看，「&lt;a href=&quot;http://en.wikipedia.org/wiki/Agile_software_development&quot;&gt;agile&lt;/a&gt; vs. 某個軟體開發方法」也是偽命題，不論 &lt;a href=&quot;http://en.wikipedia.org/wiki/Agile_software_development&quot;&gt;agile&lt;/a&gt; 公認的定義為何，重點在於滿足需求，而滿足需求不見得需要一套完備的軟體開發方法；有完備的軟體開發方法不見得能滿足需求。要滿足需求有太多事要做，研讀相關技術、軟體開發、市場行銷等，軟體開發可能是滿足需求的其中一項基石，但不是全部。若滿足需求的前提需要改善軟體需求，自然需要改善它；反之則否。&lt;a href=&quot;http://www.csie.ntu.edu.tw/~p92005/Joel/fog0000000018.html&quot;&gt;《Joel on Software - 別讓架構太空人嚇到你》&lt;/a&gt;對「開發軟體的方法 vs. 滿足需求」提了生動的描述。&lt;/p&gt;&lt;p&gt;舉另一個具體例子，「是否需要重構？」往往帶來許多爭議性的討論，各方人馬（PM、RD、QA、...) 對此有不同看法。若這段程式一直都不需要加新功能，那的確不需要重構。重構只會花費時間讓程式碼變漂亮，對於滿足需求沒有任何影響。反之，之後需要繼續大幅加功能，逐步重構部份功能，則對完成產品（滿足需求）大有幫助。&lt;/p&gt;&lt;p&gt;最近幾年有一個很紅的議題，開發網站是用 &lt;a href=&quot;http://rubyonrails.org/&quot;&gt;Ruby on Rails&lt;/a&gt; 好，還是用 ... 好。最近一年可能還會多一些人問是否要改用基於 &lt;a href=&quot;http://nodejs.org/&quot;&gt;node.js&lt;/a&gt; 的新 framework。要回答這問題得先看需求為何，若只是做幾頁的小網站，用什麼方法差異都不大；若是做長期維護的大網站，要看目前團隊成員熟悉的工具和程式語言為何，再來評估使用 Rails 的相對成本。若再涉及和後端整合，又和既有的 code base 有大幅關聯。而要回答這一切一切衍生的議題，還是得先看：究竟需求為何，基於什麼原因而採用 X 會更好？以 &lt;a href=&quot;http://justin.tv&quot;&gt;Justin.tv&lt;/a&gt; 為例，&lt;a href=&quot;http://www.quora.com/Django/Why-is-Justin-tv-porting-their-codebase-to-Django-from-RoR&quot;&gt;《Django: Why is Justin.tv porting their codebase to Django from RoR?》&lt;/a&gt;說明 Justin.tv 轉換的主因是全部程式都是用 Python 寫的，此外，他們也想藉機重新設計一遍架構，去除 legacy codes，以符合現今的使用需求。&lt;/p&gt;&lt;p&gt;舉這些例子的用意不是無限上綱地說工具和方法都不重要，而是強調將焦點放在如何滿足需求，若有需要選用好工具，才有必要討論它。&lt;strong&gt;問錯問題的話，永遠不會得到有用的答案。&lt;/strong&gt;&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/451051488891335923-7708031988053755110?l=fcamel-fc.blogspot.com&quot; /&gt;&lt;/div&gt;&lt;img width=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/fcamel/~4/rbD7lWQGfFY&quot; height=&quot;1&quot; /&gt;</description>
	<pubDate>Sun, 19 Feb 2012 09:53:33 +0000</pubDate>
	<author>noreply@blogger.com (fcamel)</author>
</item>
<item>
	<title>ITRS Wiki: Setting up pyramid and mongodb on webfaction</title>
	<guid isPermaLink="true">http://itrs.tw:115/mediawiki/index.php?title=Setting_up_pyramid_and_mongodb_on_webfaction&amp;diff=2239&amp;oldid=2224</guid>
	<link>http://itrs.tw:115/mediawiki/index.php?title=Setting_up_pyramid_and_mongodb_on_webfaction&amp;diff=2239&amp;oldid=2224</link>
	<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;mongodb: &lt;/span&gt; &lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot;&gt;
			&lt;colgroup&gt;&lt;col class=&quot;diff-marker&quot; /&gt;
			&lt;col class=&quot;diff-content&quot; /&gt;
			&lt;col class=&quot;diff-marker&quot; /&gt;
			&lt;col class=&quot;diff-content&quot; /&gt;
		&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr valign=&quot;top&quot;&gt;
		&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color: black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color: black;&quot;&gt;Revision as of 07:08, 19 February 2012&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; align=&quot;center&quot; class=&quot;diff-multi&quot;&gt;(14 intermediate revisions by one user not shown)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;# setup pyramid app at webfaction pannel. This will give you a virtualenv and internal port number.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;== mongodb ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;# setup custom app (listen on port) named mongodb at webfaction pannel.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;# setup custom app (listen on port) named mongodb at webfaction pannel.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;# download numactl. install it to local dir.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;# download the 64-bit mongodb at http://www.mongodb.org/downloads, tar and move the conetent to the $HOME/mongodb/; cd $HOME/mongodb/&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;# download the 64-bit mongodb at http://www.mongodb.org/downloads, tar and move the conetent to the $HOME/mongodb/; cd $HOME/mongodb/&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;# $ mkdir data  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;# $ mkdir data  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;# $ vi mongo.conf; set port allocated at the custom app. and dbpath to the data dir&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;# $ vi mongo.conf; set port allocated at the custom app. and dbpath to the data dir&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;# &lt;/del&gt;vi bin/start&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* &lt;/ins&gt;vi bin/start&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;syntaxhighlight lang=&quot;bash&quot;&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pre&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;#!/bin/sh&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;#!/bin/sh&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;PREFIX=$HOME/webapps/mongodb&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;PREFIX=$HOME/webapps/mongodb&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;export LD_LIBRARY_PATH=$HOME/lib64 &amp;amp;&amp;amp; nohup numactl --interleave=all $PREFIX/bin/mongod --config=$PREFIX/mongo.conf 2&amp;gt;/dev/null 1&amp;gt;/dev/null &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;export LD_LIBRARY_PATH=$HOME/lib64 &amp;amp;&amp;amp; nohup numactl --interleave=all $PREFIX/bin/mongod &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;syntaxhighlight&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;--config=$PREFIX/mongo.conf 2&amp;gt;/dev/null 1&amp;gt;/dev/null &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;# &lt;/del&gt;vi bin/stop&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pre&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;syntaxhighlight lang=&quot;bash&quot;&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* &lt;/ins&gt;vi bin/stop&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pre&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;#!/bin/sh&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;#!/bin/sh&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;PREFIX=$HOME/webapps/mongodb&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;PREFIX=$HOME/webapps/mongodb&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;kill -2 `cat $PREFIX/data/mongod.lock`&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;kill -2 `cat $PREFIX/data/mongod.lock`&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;syntaxhighlight&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pre&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;syntaxhighlight lang=&quot;bash&quot;&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* vi bin/restart&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pre&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;#!/bin/bash&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;#!/bin/bash&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;$HOME/webapps/mongodb/bin/stop&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;$HOME/webapps/mongodb/bin/stop&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;sleep 3&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;sleep 3&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;$HOME/webapps/mongodb/bin/start&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;$HOME/webapps/mongodb/bin/start&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;syntaxhighlight&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pre&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;# &lt;/del&gt;$ crontab -e; add start to crontab&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* &lt;/ins&gt;$ crontab -e; add start to crontab&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;== pyramid ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;# setup pyramid app at webfaction pannel. This will give you a virtualenv and internal port number. If you will change the default application, beaware to listen on the same port.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;# create a git --bare repo at myapp&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* vi myapp/.git/hooks/post-receive&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;#!/bin/sh&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;GIT_WORK_TREE=$HOME/webapps/pyramid_app/myapp git checkout -f&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;$HOME/webapps/pyramid_app/bin/restart&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;# Clone it back. Now if you push to the server, it will automatically load and restart the app&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</description>
	<pubDate>Sun, 19 Feb 2012 07:08:39 +0000</pubDate>
</item>
<item>
	<title>ITRS Wiki: Setting up pyramid and mongodb on webfaction</title>
	<guid isPermaLink="true">http://itrs.tw:115/mediawiki/index.php?title=Setting_up_pyramid_and_mongodb_on_webfaction&amp;diff=2224&amp;oldid=0</guid>
	<link>http://itrs.tw:115/mediawiki/index.php?title=Setting_up_pyramid_and_mongodb_on_webfaction&amp;diff=2224&amp;oldid=0</link>
	<description>&lt;p&gt;Created page with &quot;# setup pyramid app at webfaction pannel. This will give you a virtualenv and internal port number. # setup custom app (listen on port) named mongodb at webfaction pannel. # d...&quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;# setup pyramid app at webfaction pannel. This will give you a virtualenv and internal port number.&lt;br /&gt;
# setup custom app (listen on port) named mongodb at webfaction pannel.&lt;br /&gt;
# download the 64-bit mongodb at http://www.mongodb.org/downloads, tar and move the conetent to the $HOME/mongodb/; cd $HOME/mongodb/&lt;br /&gt;
# $ mkdir data &lt;br /&gt;
# $ vi mongo.conf; set port allocated at the custom app. and dbpath to the data dir&lt;br /&gt;
# vi bin/start&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&quot;bash&quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
PREFIX=$HOME/webapps/mongodb&lt;br /&gt;
export LD_LIBRARY_PATH=$HOME/lib64 &amp;amp;&amp;amp; nohup numactl --interleave=all $PREFIX/bin/mongod --config=$PREFIX/mongo.conf 2&amp;gt;/dev/null 1&amp;gt;/dev/null &amp;amp;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# vi bin/stop&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&quot;bash&quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
PREFIX=$HOME/webapps/mongodb&lt;br /&gt;
kill -2 `cat $PREFIX/data/mongod.lock`&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&quot;bash&quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
$HOME/webapps/mongodb/bin/stop&lt;br /&gt;
sleep 3&lt;br /&gt;
$HOME/webapps/mongodb/bin/start&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# $ crontab -e; add start to crontab&lt;/div&gt;</description>
	<pubDate>Sun, 19 Feb 2012 06:46:52 +0000</pubDate>
</item>
<item>
	<title>ITRS Wiki: Main Page</title>
	<guid isPermaLink="true">http://itrs.tw:115/mediawiki/index.php?title=Main_Page&amp;diff=2223&amp;oldid=2018</guid>
	<link>http://itrs.tw:115/mediawiki/index.php?title=Main_Page&amp;diff=2223&amp;oldid=2018</link>
	<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Misc: &lt;/span&gt; &lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot;&gt;
			&lt;colgroup&gt;&lt;col class=&quot;diff-marker&quot; /&gt;
			&lt;col class=&quot;diff-content&quot; /&gt;
			&lt;col class=&quot;diff-marker&quot; /&gt;
			&lt;col class=&quot;diff-content&quot; /&gt;
		&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr valign=&quot;top&quot;&gt;
		&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color: black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color: black;&quot;&gt;Revision as of 06:34, 19 February 2012&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 157:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 157:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[AP]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[AP]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Graphical Shells]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Graphical Shells]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [[Setting up pyramid and mongodb on webfaction]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;== 教材雜項 ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;== 教材雜項 ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</description>
	<pubDate>Sun, 19 Feb 2012 06:34:31 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 fcamels blog: 專注於滿足需求而非工具或方法 - 原本想來挑燈夜戰讀《武道狂之詩》, 結果寫起了 blog</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;945832632</guid>
	<link>http://www.plurk.com/p/fn4h4o</link>
	<description>fcamel 說 &lt;a href=&quot;http://fcamel-fc.blogspot.com/2012/02/blog-post.html&quot; class=&quot;ex_link&quot; rel=&quot;nofollow&quot;&gt;fcamels blog: 專注於滿足需求而非工具或方法&lt;/a&gt; - 原本想來挑燈夜戰讀《武道狂之詩》, 結果寫起了 blog</description>
	<pubDate>Sat, 18 Feb 2012 19:17:19 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's fcamel 技術隨手記: git staging area 的價值</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-4982215793068879977.post-7864384352299123891</guid>
	<link>http://feedproxy.google.com/~r/blogspot/fcamel/~3/Ne64q_aUM9M/git-staging-area.html</link>
	<description>&lt;p&gt;之前用 &lt;a href=&quot;http://mercurial.selenic.com/&quot;&gt;mercurial&lt;/a&gt; 時一直很納悶, 為啥 git 的愛好者都如此&lt;a href=&quot;http://zh-tw.whygitisbetterthanx.com/#the-staging-area&quot;&gt;推崇 staging area&lt;/a&gt;, 但我怎麼看就是看不懂, &lt;a href=&quot;http://mercurial.selenic.com/&quot;&gt;mercurial&lt;/a&gt; 沒這東西用起來也沒特別困擾, 反而要和別人解釋 staging area 時還會一直說不清楚 (畢竟自己也沒搞懂它的價值 ...)。
&lt;/p&gt;&lt;p&gt;
看到&lt;a href=&quot;http://tomayko.com/writings/the-thing-about-git&quot;&gt;《The Thing About Git》&lt;/a&gt;總算解開我多年來 (遠目...) 的疑惑, 要配合「只想 commit 檔案內部份修改」的情境才會突顯它的價值。
&lt;/p&gt;&lt;p&gt;
該文有範例說明, 有時我們會同時改到不同東西, 好死不死, 兩個東西的修改在同一個檔案裡。這時有幾個選擇:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt; 就給它 commit 下去, 在 commit log 裡順帶一提多 commit 的東西&lt;/li&gt;
&lt;li&gt; 兩個功能一起 commit 進去, commit log 寫長一點, commit 內容比較雜&lt;/li&gt;
&lt;li&gt; 回去原本的檔案「取消」不想 commit 的修改, 再回來 commit&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;
身為一名良好市民, 大部份時候我是選第三個方案, 但是做得很辛苦。&lt;a href=&quot;http://mercurial.selenic.com/&quot;&gt;mercurial&lt;/a&gt; 好像有 extension 可以只 commit 部份內容 (hunk-by-hunk commit), 不過我懶得找。我後來的作法是:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt; 用 &lt;a href=&quot;https://bitbucket.org/tortoisehg/thg/wiki/Home&quot;&gt;thg&lt;/a&gt; 的 commit&lt;/li&gt;
&lt;li&gt; 在 commit 視窗裡針對目標檔案按 &quot;open shelve tool&quot;&lt;/li&gt;
&lt;li&gt; hunk-by-hunk 地 shelve 不想 commit 的內容&lt;/li&gt;
&lt;li&gt; commit&lt;/li&gt;
&lt;li&gt; unshelve all&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;
還過得去就是了。
&lt;/p&gt;&lt;p&gt;
但是有 staging area 的話, 有不同的選擇。先 hunk-by-hunk 地將準備 commit 的內容加到 staging area (git add &lt;span class=&quot;escaped&quot;&gt;-&lt;/span&gt;-patch), 接下來比對 repository 和 staging area 確認要 commit 的內容, 同時還可回頭比對 staging area 和 working directory 確定沒有漏東西。和 shelve 的作法相比, 比較直覺一些。&lt;/p&gt;
&lt;h4&gt;2012-02-18 Update&lt;/h4&gt;
&lt;p&gt;
看到&lt;a href=&quot;https://plus.google.com/115189691004764071174/posts&quot;&gt;邱&lt;/a&gt;提到&lt;a href=&quot;http://stevelosh.com/blog/2010/08/a-git-users-guide-to-mercurial-queues/&quot;&gt;《A Git User&amp;amp;aposs Guide to Mercurial Queues》&lt;/a&gt; (&lt;a href=&quot;https://plus.google.com/111353793049965752735/posts/8ZPnqVQLwph&quot;&gt;ref.&lt;/a&gt;), 裡面有說明用 MQ 做到「多重 staring area」的效果, 看起來挺實用的。更新一個涉及多個模組的功能時, 個人偏向依各模組拆開 commit, 比較易讀。配合 MQ 可以更直覺地折解更新成多個 patch, 並保有隨時更新的彈性, 最後再一起 commit 成多個 changesets。
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/4982215793068879977-7864384352299123891?l=fcamel-life.blogspot.com&quot; /&gt;&lt;/div&gt;&lt;img width=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/blogspot/fcamel/~4/Ne64q_aUM9M&quot; height=&quot;1&quot; /&gt;</description>
	<pubDate>Sat, 18 Feb 2012 18:11:38 +0000</pubDate>
	<author>noreply@blogger.com (fcamel)</author>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 轉 愛因斯坦：「每人都是天才。但如果你用『爬樹能力』來斷定一條魚有多少才幹，牠整個人生都會相信自己是愚蠢不堪。」</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;945669790</guid>
	<link>http://www.plurk.com/p/fn0zha</link>
	<description>fcamel 轉 &lt;a href=&quot;http://images.plurk.com/1b57b97bf4ec4c189bcb9be872671d4a.jpg&quot; class=&quot;ex_link pictureservices&quot;&gt;&lt;img src=&quot;http://images.plurk.com/tn_1b57b97bf4ec4c189bcb9be872671d4a.gif&quot; alt=&quot;http://images.plurk.com/1b57b97bf4ec4c189bcb9be872671d4a.jpg&quot; height=&quot;30&quot; /&gt;&lt;/a&gt; 愛因斯坦：「每人都是天才。但如果你用『爬樹能力』來斷定一條魚有多少才幹，牠整個人生都會相信自己是愚蠢不堪。」 &lt;img src=&quot;http://statics.plurk.com/1c890273544559b17f090d09238fa763.gif&quot; alt=&quot;(rock)&quot; class=&quot;emoticon&quot; height=&quot;25&quot; /&gt;</description>
	<pubDate>Sat, 18 Feb 2012 13:46:44 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 發現 gmail 的 bug, 若回覆超過百封, 在自己的 inbox 會看不到回覆寄出的內容, 不確定到底有沒有寄出, 多說垃圾話真不錯, 還可順便幫忙測試系統</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;945386031</guid>
	<link>http://www.plurk.com/p/fmuwj3</link>
	<description>fcamel 說 發現 gmail 的 bug, 若回覆超過百封, 在自己的 inbox 會看不到回覆寄出的內容, 不確定到底有沒有寄出, 多說垃圾話真不錯, 還可順便幫忙測試系統</description>
	<pubDate>Sat, 18 Feb 2012 01:47:39 +0000</pubDate>
</item>
<item>
	<title>ITRS Wiki: Free Books Courses and Lecture Videos</title>
	<guid isPermaLink="true">http://itrs.tw:115/mediawiki/index.php?title=Free_Books_Courses_and_Lecture_Videos&amp;diff=2222&amp;oldid=2121</guid>
	<link>http://itrs.tw:115/mediawiki/index.php?title=Free_Books_Courses_and_Lecture_Videos&amp;diff=2222&amp;oldid=2121</link>
	<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;See Also: &lt;/span&gt; &lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot;&gt;
			&lt;colgroup&gt;&lt;col class=&quot;diff-marker&quot; /&gt;
			&lt;col class=&quot;diff-content&quot; /&gt;
			&lt;col class=&quot;diff-marker&quot; /&gt;
			&lt;col class=&quot;diff-content&quot; /&gt;
		&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr valign=&quot;top&quot;&gt;
		&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color: black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color: black;&quot;&gt;Revision as of 00:04, 18 February 2012&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; align=&quot;center&quot; class=&quot;diff-multi&quot;&gt;(One intermediate revision by one user not shown)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 47:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 47:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* http://www.reddit.com/r/lectures/&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* http://www.reddit.com/r/lectures/&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [http://stackoverflow.com/questions/194812/list-of-freely-available-programming-books stackoverflow: List of freely available programming books]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [http://stackoverflow.com/questions/194812/list-of-freely-available-programming-books stackoverflow: List of freely available programming books]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [https://plus.google.com/114618043230336563405/posts/e9fnpCjP8Zn Michelle Marie: Thousands of FREE College Courses Listed By Institute]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [[Interesting Free Courses]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</description>
	<pubDate>Sat, 18 Feb 2012 00:04:13 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 【 蔬食 】 綠舍奇蹟健康蔬食/ 試菜篇- 紫萸香蔓套餐 - 看起來很高檔的樣子, 不知要不要先訂位</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;945267381</guid>
	<link>http://www.plurk.com/p/fmscz9</link>
	<description>fcamel 說 &lt;a href=&quot;http://www.wretch.cc/blog/gopekokei/7601072&quot; class=&quot;ex_link&quot; rel=&quot;nofollow&quot;&gt;【 蔬食 】 綠舍奇蹟健康蔬食/ 試菜篇-  紫萸香蔓套餐&lt;/a&gt; - 看起來很高檔的樣子, 不知要不要先訂位</description>
	<pubDate>Fri, 17 Feb 2012 16:38:56 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 【記者部落格】雲深不知處：迷途兩年的台灣雲端產業, 除服務要打到核心需求外, 要讓客戶公司信賴外人提供的雲端服務 (技術議題如不會掉資料、scalability 等), 也是一大問題</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;945260636</guid>
	<link>http://www.plurk.com/p/fms7rw</link>
	<description>fcamel 說 &lt;a href=&quot;http://tinyurl.com/6vb53x4&quot; class=&quot;ex_link&quot; rel=&quot;nofollow&quot;&gt;【記者部落格】雲深不知處：迷途兩年的台灣雲端產業&lt;/a&gt;, 除服務要打到核心需求外, 要讓客戶公司信賴外人提供的雲端服務 (技術議題如不會掉資料、scalability 等), 也是一大問題</description>
	<pubDate>Fri, 17 Feb 2012 16:27:34 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's fcamel 技術隨手記: gdb 初步心得</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-4982215793068879977.post-4544045553874419591</guid>
	<link>http://feedproxy.google.com/~r/blogspot/fcamel/~3/n2V0iL3LddE/gdb.html</link>
	<description>&lt;p&gt;對初學者來說, 最好有個針對常用情境的簡單指南, 之後有閒再看落落長的教學。這裡列一下最近常用的功能, 之後再慢慢更新。&lt;br /&gt;
&lt;/p&gt;&lt;h4&gt;前置動作&lt;/h4&gt;&lt;ul&gt;&lt;li&gt; gcc/g++ 編譯時要加 -g&lt;/li&gt;
&lt;li&gt; 要觀察用到的函式庫, 則要裝 x-dbg 版 (如 libjpeg62 -&amp;gt; libjpeg62-dbg), gdb 會優先載入 debug 版函式庫。並且需要用 directory 載入原始碼, 見&lt;a href=&quot;http://fcamel-life.blogspot.com/2012/01/glibc.html&quot;&gt;這裡&lt;/a&gt;的介紹。&lt;/li&gt;
&lt;li&gt; 可用 &lt;tt&gt;objdump --source FILE&lt;/tt&gt; 確認是否真的有編到 -g。有的話可以在輸出裡看到程式碼。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;雖說通篇我都寫 gdb, 但是 &lt;a href=&quot;http://cgdb.sourceforge.net/&quot;&gt;cgdb&lt;/a&gt; 好用許多, 推薦使用。聽 &lt;a href=&quot;https://plus.google.com/102249536116095884743/posts&quot;&gt;command&lt;/a&gt; 說 vimgdb 更好用, 不過要 patch vim 後才能用, 就 ... 先備忘吧。&lt;br /&gt;
&lt;/p&gt;&lt;h4&gt;執行方式&lt;/h4&gt;&lt;p&gt;從頭執行&lt;/p&gt;&lt;ul&gt;&lt;li&gt; bash&amp;gt; gdb &lt;span class=&quot;escaped&quot;&gt;-&lt;/span&gt;-args PROGRAM PROGRAM-ARG1 ...&lt;/li&gt;
&lt;li&gt; gdb&amp;gt; start  # 進入 main 後停下來&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;檢查掛點原因 (參考&lt;a href=&quot;http://fcamel-life.blogspot.com/2011/12/core-dump-cgdb.html&quot;&gt;這篇&lt;/a&gt;的設定)&lt;/p&gt;&lt;ul&gt;&lt;li&gt; bash&amp;gt; gdb PROGRAM CORE&lt;/li&gt;
&lt;li&gt; gdb&amp;gt; bt 20  # 看掛掉的 call stack 最底層 20 個 function call&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;通常載入 PROGRAM 讀 debug symbol 較花時間, 我習慣用 gdb PROGRAM 進 gdb 後, 再用 core CORE 指令看不同的 core dump。&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;若希望從頭重來, 有設好中斷點就用 r, 沒有則繼續用 start, 不用離開 gdb, 可簡省載入  PROG 的時間。&lt;br /&gt;
&lt;/p&gt;&lt;h4&gt;設中斷點&lt;/h4&gt;&lt;ul&gt;&lt;li&gt; b LOC # 設中斷點, 或用 cgdb 直接在程式視窗按空白鍵&lt;/li&gt;
&lt;li&gt; i b # 列出全部中斷點&lt;/li&gt;
&lt;li&gt; d NUM # 移除編號 NUM 的中斷點&lt;/li&gt;
&lt;li&gt; save breakpoints FILE # 存下目前設的中斷點到檔案 FILE&lt;/li&gt;
&lt;li&gt; so FILE # 載入之前設的中斷點&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;關於 LOC: 見&lt;a href=&quot;http://sourceware.org/gdb/current/onlinedocs/gdb/Specify-Location.html&quot;&gt;《Specify Location - Debugging with GDB》&lt;/a&gt;。我比較常用 filename:linenum、linenum 或 +N。因為不易對到 C++ 的函式名稱, 所以我都用行號。&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;我還沒有適當情境試 &lt;a href=&quot;http://sourceware.org/gdb/current/onlinedocs/gdb/Conditions.html#Conditions&quot;&gt;conditional break&lt;/a&gt;, 但應該很有用, 備忘。&lt;br /&gt;
&lt;/p&gt;&lt;h4&gt;移動&lt;/h4&gt;&lt;ul&gt;&lt;li&gt; n # 跳下行&lt;/li&gt;
&lt;li&gt; s # 若有函式, 跳進去; 反之則同 n&lt;/li&gt;
&lt;li&gt; fin # 執行到函式結尾, 返回上一層&lt;/li&gt;
&lt;li&gt; until LOC # 執行到 LOC 再停, 我以前都傻傻的先設中斷再按 c ...&lt;/li&gt;
&lt;li&gt; c # 執行到下個中斷點&lt;/li&gt;
&lt;li&gt; 跳過下一行程式 (&lt;a href=&quot;http://www.toptip.ca/2010/06/gdb-skip-instructions-or-lines-while.html&quot;&gt;ref.&lt;/a&gt;), 記得要設中斷點才行&lt;br /&gt;
&lt;ul&gt;&lt;li&gt; b +1&lt;/li&gt;
&lt;li&gt; j +1&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt; ps. 按 Enter 可重覆上個指令, 在移動指令時和切 stack frame (後述) 時特別好用&lt;/li&gt;
&lt;/ul&gt;&lt;h4&gt;在 call stack 之間移動&lt;/h4&gt;&lt;ul&gt;&lt;li&gt; up  # 往上移一個&lt;/li&gt;
&lt;li&gt; do  # 往下移一個&lt;/li&gt;
&lt;li&gt; f N # 跳到 stack frame N&lt;/li&gt;
&lt;/ul&gt;&lt;h4&gt;觀察值&lt;/h4&gt;&lt;ul&gt;&lt;li&gt; p EXPRESSION  # 印出 EXPRESSION 的值, 可是變數、函式等&lt;/li&gt;
&lt;li&gt; 印出 smart pointer 的值 (&lt;a href=&quot;http://www.nsnam.org/wiki/index.php/HOWTO_debug_smart_pointer&quot;&gt;ref.&lt;/a&gt;): 得先取出裡面的 pointer 再取出它的 member function / field&lt;/li&gt;
&lt;li&gt; whatis VAR # 看型別&lt;/li&gt;
&lt;/ul&gt;&lt;h4&gt;其它&lt;/h4&gt;&lt;ul&gt;&lt;li&gt; set var X = ... # 執行期間改變變數 X, 以在執行期驗證小修改是否有效, 簡省編譯時間&lt;/li&gt;
&lt;/ul&gt;&lt;h4&gt;參考資料&lt;/h4&gt;&lt;ul&gt;&lt;li&gt; &lt;a href=&quot;http://sourceware.org/gdb/current/onlinedocs/gdb/&quot;&gt;《Debugging with GDB》&lt;/a&gt;: 待用一陣子後再來掃一遍, 挑出有用的東西&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;進階指令&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;commands BREAKPOINT_ID: 定義在進入 breakpoint 後, 執行一系列指令, 比方 &quot;p some_var; c&quot;。&lt;/li&gt;
&lt;li&gt;define NEW_CMD: 類似函式, 定義由一堆指令組成的新指令。&lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/4982215793068879977-4544045553874419591?l=fcamel-life.blogspot.com&quot; /&gt;&lt;/div&gt;&lt;img width=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/blogspot/fcamel/~4/n2V0iL3LddE&quot; height=&quot;1&quot; /&gt;</description>
	<pubDate>Fri, 17 Feb 2012 16:15:37 +0000</pubDate>
	<author>noreply@blogger.com (fcamel)</author>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 久久沒追海賊王, 追完新進度後覺得............, 果然久久沒看寶島沒什麼影響, 好像只剩美食獵人還有價值追了 (Plus Plurk 好了以後忽然又很有勁碎碎念 ...)</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;945242026</guid>
	<link>http://www.plurk.com/p/fmrtey</link>
	<description>fcamel 說 久久沒追海賊王, 追完新進度後覺得............, 果然久久沒看寶島沒什麼影響, 好像只剩美食獵人還有價值追了 (Plus Plurk 好了以後忽然又很有勁碎碎念 ...)</description>
	<pubDate>Fri, 17 Feb 2012 15:58:52 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 下午偶然聽老闆開示 startup 的一些心得, 學到不少, 要學的東西真多, 不過現階段比較要緊的是加強技術底, 增加 domain knowledge</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;945241103</guid>
	<link>http://www.plurk.com/p/fmrspb</link>
	<description>fcamel 說 下午偶然聽老闆開示 startup 的一些心得, 學到不少, 要學的東西真多, 不過現階段比較要緊的是加強技術底, 增加 domain knowledge</description>
	<pubDate>Fri, 17 Feb 2012 15:57:25 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 ohoh, Plus Plurk 修好了, 作者真是佛心來的, 寫這麼好用的外掛, 看到壞了又這麼快修好</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;945229862</guid>
	<link>http://www.plurk.com/p/fmrk12</link>
	<description>fcamel 說 ohoh, Plus Plurk 修好了, 作者真是佛心來的, 寫這麼好用的外掛, 看到壞了又這麼快修好</description>
	<pubDate>Fri, 17 Feb 2012 15:40:32 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 fcamel 技術隨手記: git staging area 的價值 - 以前不懂的東西, 時機到的時候, 自然會懂的, 話說這種感觸好像在許多地方都適用 ...</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;945226389</guid>
	<link>http://www.plurk.com/p/fmrhcl</link>
	<description>fcamel 說 &lt;a href=&quot;http://fcamel-life.blogspot.com/2012/02/git-staging-area.html&quot; class=&quot;ex_link&quot; rel=&quot;nofollow&quot;&gt;fcamel 技術隨手記: git staging area 的價值&lt;/a&gt; - 以前不懂的東西, 時機到的時候, 自然會懂的, 話說這種感觸好像在許多地方都適用 ...</description>
	<pubDate>Fri, 17 Feb 2012 15:35:53 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 將整個 control flow 塞入腦內後, 看見解決問題的曙光, 然後大腦就 stack overflow, 需要回家休息了 ...話說 Plus Plurk 壞掉後, 讓我沒什麼動力發文章, 覺得只貼在 G+ 有點無趣, 貼三個地方又太累</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;945080471</guid>
	<link>http://www.plurk.com/p/fmocrb</link>
	<description>fcamel 說 將整個 control flow 塞入腦內後, 看見解決問題的曙光, 然後大腦就 stack overflow, 需要回家休息了 ...&lt;br /&gt;話說 Plus Plurk 壞掉後, 讓我沒什麼動力發文章, 覺得只貼在 G+ 有點無趣, 貼三個地方又太累</description>
	<pubDate>Fri, 17 Feb 2012 11:33:00 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's fcamel 技術隨手記: 配合 c++filt 讀程式</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-4982215793068879977.post-4890420207213602067</guid>
	<link>http://feedproxy.google.com/~r/blogspot/fcamel/~3/6KOG88KZVnE/cfilt.html</link>
	<description>&lt;p&gt;在用 gdb 追蹤程式前, 得先找到幾個關鍵中斷點, 才能著手進行。若有機會想到不錯的關鍵字的話, 除了用 grep 之類的工具大海撈針外, 有時從 binary 裡下手, 效果也不錯, 有機會減少搜尋範圍。畢竟程式碼中難免有一些平台或參數相關的設定, 讓部份程式碼根本沒有編進 binary。從 binary 回頭找, 可免除這層顧慮。
&lt;/p&gt;&lt;p&gt;
我目前試過的作法有兩種&lt;/p&gt;&lt;ul&gt;
&lt;li&gt; &lt;tt&gt;string PROG | grep KEYWORD&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt; &lt;tt&gt;nm PROG | grep KEYWORD | awk '{print $NF}' | xargs c++filt&lt;/tt&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;
第一個作法是配合程式輸出的訊息來找程式。
&lt;/p&gt;&lt;p&gt;
第二個作法則是從 binary 取出可能有關的的 symbol, 再用 c++filt demangle symbol, 找出它的 namespace、signature 等資訊。需要注意的是, 有可能因編譯器最佳化 (如 inline), 實際上沒有呼叫到函式。經 &lt;a href=&quot;http://www.plurk.com/qrtt1&quot;&gt;qrtt1&lt;/a&gt; 提醒, 保險起見, 可在編譯時加上 &lt;tt&gt;-O0&lt;/tt&gt; 確保行為符合預期。
&lt;/p&gt;&lt;p&gt;
題外話, C 的 function name 反而無法 demangle 找出 signature(應該沒理解錯吧)。不過相對於 C++ 的複雜度, 讀 C 的程式時, 也許沒那麼需要吧。&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/4982215793068879977-4890420207213602067?l=fcamel-life.blogspot.com&quot; /&gt;&lt;/div&gt;&lt;img width=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/blogspot/fcamel/~4/6KOG88KZVnE&quot; height=&quot;1&quot; /&gt;</description>
	<pubDate>Thu, 16 Feb 2012 17:04:13 +0000</pubDate>
	<author>noreply@blogger.com (fcamel)</author>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 fcamel 技術隨手記: 配合 c++filt 讀程式, 之前才在想 c++filt 能用來做什麼, 今天剛好就用到</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;944608293</guid>
	<link>http://www.plurk.com/p/fme8f9</link>
	<description>fcamel 說 &lt;a href=&quot;http://tinyurl.com/8x9loyt&quot; class=&quot;ex_link&quot; rel=&quot;nofollow&quot;&gt;fcamel 技術隨手記: 配合 c++filt 讀程式&lt;/a&gt;, 之前才在想 c++filt 能用來做什麼, 今天剛好就用到</description>
	<pubDate>Thu, 16 Feb 2012 13:44:27 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel says Fibonacci indentation (first level is 2 spaces, then 3, then 5) XD</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;944306124</guid>
	<link>http://www.plurk.com/p/fm7r9o</link>
	<description>fcamel says Fibonacci indentation (first level is 2 spaces, then 3, then 5) XD</description>
	<pubDate>Thu, 16 Feb 2012 01:52:07 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's fcamel 技術隨手記: Linux process priorities and scheduling 心得</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-4982215793068879977.post-7574949259445359605</guid>
	<link>http://feedproxy.google.com/~r/blogspot/fcamel/~3/T2f4CdCi2HI/linux-process-priorities-and-scheduling.html</link>
	<description>&lt;p&gt;摘要一下讀了 &lt;a href=&quot;http://man7.org/tlpi/&quot;&gt;TLPI&lt;/a&gt; 後的心得。
&lt;/p&gt;&lt;h4&gt;scheduling policy&lt;/h4&gt;&lt;p&gt;POSIX 規定了幾種 scheduling policy, 它們的優先權如下:&lt;/p&gt;&lt;pre class=&quot;prettyprint&quot;&gt;SCHED_FIFO = SCHED_RR &amp;gt; SCHED_OTHER ~ SCHED_BATCH &amp;gt; SCHED_IDLE
&lt;/pre&gt;&lt;p&gt;
舉例來說: &lt;tt&gt;SCHED_FIFO&lt;/tt&gt; (99) &amp;gt; &lt;tt&gt;SCHED_FIFO&lt;/tt&gt; (1) &amp;gt; &lt;tt&gt;SCHED_OTHER&lt;/tt&gt; -20 (0) &amp;gt; &lt;tt&gt;SCHED_OTHER&lt;/tt&gt; 19 (0) &amp;gt; &lt;tt&gt;SCHED_IDLE&lt;/tt&gt; (0)
&lt;/p&gt;&lt;p&gt;
括號裡的數字是 process 的 static priority; -20 和 19 是 nice value, 見後文說明。
&lt;/p&gt;&lt;p&gt;
各 policy 的效果為:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt; 所有 policy 都是 preemptive, 也就是&lt;strong&gt;高優先權 process 想執行的時候, 會搶走執行中低優先權 process 的 CPU&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt; &lt;tt&gt;SCHED_FIFO&lt;/tt&gt; 和 &lt;tt&gt;SCHED_RR&lt;/tt&gt; 的 static priority 範圍必須落在 1 &lt;span class=&quot;escaped&quot;&gt;~&lt;/span&gt; 99, 剩下三個 (&lt;tt&gt;SCHED_OTHER&lt;/tt&gt;、...) 只能設 priority = 0。達到的效果是 &lt;strong&gt;&lt;tt&gt;SCHED_FIFO&lt;/tt&gt; 和 &lt;tt&gt;SCHED_RR&lt;/tt&gt; 永遠會比後幾種 policy 先執行&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt; &lt;tt&gt;SCHED_FIFO&lt;/tt&gt; 和 &lt;tt&gt;SCHED_RR&lt;/tt&gt; 是 real-time scheduling, 不過是 linux kernel 盡可能做到即時, 真的要做 real-time system (如汽車), 得用改過的 linux kernel&lt;/li&gt;
&lt;li&gt; &lt;tt&gt;SCHED_OTHER&lt;/tt&gt; 和 &lt;tt&gt;SCHED_BATCH&lt;/tt&gt; 的 static priority 都為 0, 所以會另外參考 dynamic priority 來決定順序, 這個值主要取決於 nice value (用 nice/renice 設), &lt;strong&gt;只是參考值, 較低的 nice value 不會永遠表示較高的 dynamic priority&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt; 沒做設定的話, 預設 policy 是 &lt;tt&gt;SCHED_OTHER&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt; &lt;tt&gt;SCHED_BATCH&lt;/tt&gt; 用在不需互動的程式, 會減少 wake-up 的頻率&lt;/li&gt;
&lt;li&gt; nice value 對 &lt;tt&gt;SCHED_IDLE&lt;/tt&gt; 無效, 這個 policy 會保證有最低優先權&lt;/li&gt;
&lt;li&gt; 以上所有效果都會繼承到 sub-process&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;
所以, 若用 SHCED_OTHER 配上 nice value, 可達到優先效果, 也不會有 process 餓死, 都搶不到 CPU。若用了 &lt;tt&gt;SCHED_FIFO&lt;/tt&gt; 和 &lt;tt&gt;SCHED_RR&lt;/tt&gt;, 要小心搶光 CPU 資源的情況。用 &lt;tt&gt;SCHED_OTHER&lt;/tt&gt; 配上負值 nice value 也要小心。
&lt;/p&gt;&lt;h4&gt;保險機制&lt;/h4&gt;&lt;p&gt;做為保險, 可用 setrlimit(RLIMIT_CPU) 限制執行時間, 超過 soft limit 會收到 SIGXCPU, 預設會掛掉該 process。若沒掛的話, 之後每秒鐘會收到一次 SIGXCPU, 直到超過 hard limit 收到 SIGKILL, 保證掛掉該 process。在這之間就有操作空間來調整自己的優先權。
&lt;/p&gt;&lt;p&gt;
或用 setrlimit(RLIMIT_RTTIME), 來限制在 real-time scheduling policy 下最長執行的時間, 遇到 blocking system call 後會歸零, 可避免失控超時。超時後的行為和 setrlimit(RLIMIT_CPU) 相同。

setrlimit 也和設 scheduling 一樣, 會繼承到 sub-process。
&lt;/p&gt;&lt;h4&gt;Affinity&lt;/h4&gt;&lt;p&gt;Linux 另有特別的 system call &lt;strong&gt;可限制 process 只能跑在那些 CPU&lt;/strong&gt;, 在 man sched_setaffinity 的 CONFORMING TO 該節有註明這是 linux-specific 的功能。
&lt;/p&gt;&lt;p&gt;
透過 set affinity, 可以滿足一些特殊需求:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt; 一台 8 core 的 server, 跑 8 個 process 限制它們各自用同一個 core 來服務大量 client, 讓 context switch 的次數降到最低&lt;/li&gt;
&lt;li&gt; 限制某些類型的 process 只能用部份 CPU, 確保隨時有餘力服務其它 process。比方說留一個 CPU 不跑 real-time process, 至少失控時還能登入使用 shell 處理&lt;/li&gt;
&lt;li&gt; 若 multi-thread 的程式沒寫好容易掛, 限制它們只跑在一個 core, 也許比較不會當 (這是我看 stackoverflow 裡某位路人提到他的用法 ...)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
sched_setaffinity() 可以設在 process 也可設在 thread 上, 用的時候注意一下 man page 針對 pid 的說明。這個值也會繼承到 sub-process&lt;/p&gt;&lt;p&gt;另外, 經 &lt;a href=&quot;https://plus.google.com/115208016645517532827/posts&quot;&gt;wens&lt;/a&gt; 提醒, 還有 pthread_setaffinity_np() 可用來設 thread 的 affinity。查了一下 man page, 它是基於 sched_setaffinity() 的實作。待比較熟 multi-thread、pthread 的事情後, 大概會比較清楚為什麼要多包一個 pthread_setaffinity_np() 吧。
&lt;/p&gt;
&lt;h4&gt;參考資料&lt;/h4&gt;&lt;ul&gt;&lt;li&gt; &lt;a href=&quot;http://man7.org/tlpi/&quot;&gt;TLPI&lt;/a&gt; ch35&lt;/li&gt;
&lt;li&gt; man sched_setscheduler&lt;/li&gt;
&lt;li&gt; man sched_setaffinity&lt;/li&gt;
&lt;li&gt; man pthread_setaffinity_np&lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/4982215793068879977-7574949259445359605?l=fcamel-life.blogspot.com&quot; /&gt;&lt;/div&gt;&lt;img width=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/blogspot/fcamel/~4/T2f4CdCi2HI&quot; height=&quot;1&quot; /&gt;</description>
	<pubDate>Tue, 14 Feb 2012 15:17:26 +0000</pubDate>
	<author>noreply@blogger.com (fcamel)</author>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 fcamel 技術隨手記: Linux process priorities and scheduling 心得 - 前陣子太忙都沒時間寫比較深一點的心得, 不知不覺兩週就過去了</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;943538608</guid>
	<link>http://www.plurk.com/p/flrb1s</link>
	<description>fcamel 說 &lt;a href=&quot;http://fcamel-life.blogspot.com/2012/02/linux-process-priorities-and-scheduling.html&quot; class=&quot;ex_link&quot; rel=&quot;nofollow&quot;&gt;fcamel 技術隨手記: Linux process priorities and scheduling 心得&lt;/a&gt; - 前陣子太忙都沒時間寫比較深一點的心得, 不知不覺兩週就過去了</description>
	<pubDate>Tue, 14 Feb 2012 14:44:43 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 經過十多年的人體實驗。。。眼科名醫蔡瑞芳 宣布停作雷射手術 你看他還戴著眼鏡</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;943354166</guid>
	<link>http://www.plurk.com/p/flncqe</link>
	<description>fcamel 說 經過十多年的人體實驗。。。&lt;a href=&quot;http://udn.com/NEWS/NATIONAL/NATS6/6899698.shtml&quot; class=&quot;ex_link oembedmeta&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://udn.com/NEWS/MEDIA/6899698-2745054.JPG&quot; alt=&quot;眼科名醫蔡瑞芳 宣布停作雷射手術&quot; height=&quot;40px&quot; /&gt;眼科名醫蔡瑞芳 宣布停作雷射手術&lt;/a&gt; 你看他還戴著眼鏡</description>
	<pubDate>Tue, 14 Feb 2012 09:15:31 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 收回前言, daemon() 沒有關掉全部 fd, 只將 0,1,2 導到 /dev/null, 做得不夠徹底, 又少了 mask, 看起來還是自己刻一個 daemon() 比較實際</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;943050566</guid>
	<link>http://www.plurk.com/p/flguh2</link>
	<description>fcamel 說 收回前言, daemon() 沒有關掉全部 fd, 只將 0,1,2 導到 /dev/null, 做得不夠徹底, 又少了 mask, 看起來還是自己刻一個 daemon() 比較實際</description>
	<pubDate>Mon, 13 Feb 2012 17:00:35 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 glibc 有提供 daemon(), 呼叫後就完成成為 daemon 的前置動作, 七個步驟只少做設 umask, 看起來挺方便的</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;943047179</guid>
	<link>http://www.plurk.com/p/flgruz</link>
	<description>fcamel 說 glibc 有提供 daemon(), 呼叫後就完成成為 daemon 的前置動作, 七個步驟只少做設 umask, 看起來挺方便的</description>
	<pubDate>Mon, 13 Feb 2012 16:53:55 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel [新聞]一則兩年前對林書豪的報導</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;942272629</guid>
	<link>http://www.plurk.com/p/fl067p</link>
	<description>fcamel &lt;a href=&quot;http://disp.cc/b/27-37ld&quot; class=&quot;ex_link&quot; rel=&quot;nofollow&quot;&gt;[新聞]一則兩年前對林書豪的報導&lt;/a&gt;</description>
	<pubDate>Sun, 12 Feb 2012 11:24:17 +0000</pubDate>
</item>
<item>
	<title>ITRS Wiki: Beagle Bone</title>
	<guid isPermaLink="true">http://itrs.tw:115/mediawiki/index.php?title=Beagle_Bone&amp;diff=2220&amp;oldid=2215</guid>
	<link>http://itrs.tw:115/mediawiki/index.php?title=Beagle_Bone&amp;diff=2220&amp;oldid=2215</link>
	<description>&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot;&gt;
			&lt;colgroup&gt;&lt;col class=&quot;diff-marker&quot; /&gt;
			&lt;col class=&quot;diff-content&quot; /&gt;
			&lt;col class=&quot;diff-marker&quot; /&gt;
			&lt;col class=&quot;diff-content&quot; /&gt;
		&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr valign=&quot;top&quot;&gt;
		&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color: black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color: black;&quot;&gt;Revision as of 06:08, 12 February 2012&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; align=&quot;center&quot; class=&quot;diff-multi&quot;&gt;(3 intermediate revisions by one user not shown)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;= Beagle Bone =&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;http://beagleboard.org/static/beaglebone/a3/Docs/in-hand.png&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;http://beagleboard.org/static/beaglebone/a3/Docs/in-hand.png&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* SOC: [http://www.ti.com/product/am3352#technicaldocuments TI &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;AM335x&lt;/del&gt;], 256 MB RAM ([http://www.micron.com/support/fbga.html Micron D9MTD]), FTDI 2232 USB serial and JTAG (single cable development), [http://www.smsc.com/media/Downloads_Public/Data_Sheets/8710a.pdf SMSC LAN8710A Ethernet PHY]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Image:Ti-am335x-functional-block-diagram.png|link=http://www.ti.com/product/am3352#technicaldocuments|TI AM335x Functional Block Diagram]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* Baudrate: 115200, [http://beagleboard.org/static/BONESRM_latest.pdf &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;BeagleBone &lt;/del&gt;System Reference Manual]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* SOC: [http://www.ti.com/product/am3352#technicaldocuments TI &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;AM3359&lt;/ins&gt;] &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;([http://www.ti.com/litv/pdf/spruh73c Technical Reference Manual])&lt;/ins&gt;, 256 MB RAM ([http://www.micron.com/support/fbga.html Micron D9MTD]), FTDI 2232 USB serial and JTAG (single cable development), [http://www.smsc.com/media/Downloads_Public/Data_Sheets/8710a.pdf SMSC LAN8710A Ethernet PHY]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;** ARM Cortex A8, PowerVR SGX 530&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;** PRUs: are basically programmable communication controllers &quot;programmable real-time unit enables real-time industrial communications for popular protocols, such as EtherCAT®, Ethernet/IP, PROFIBUS®, PROFINET®, POWERLINK and SERCOS III&quot; ([http://processors.wiki.ti.com/index.php/Programmable_Realtime_Unit_Subsystem TI Wiki: Programmable Realtime Unit Subsystem], [http://processors.wiki.ti.com/index.php/Programmable_Realtime_Unit_Software_Development PRU Software Development])&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* Baudrate: &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/ins&gt;115200&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/ins&gt;, [http://beagleboard.org/static/BONESRM_latest.pdf System Reference Manual]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [http://beagleboard.org/static/beaglebone/a3/Docs/Hardware/BONE_SCH.pdf Schematics], [http://beagleboard.org/static/beaglebone/a3/Docs/Hardware/BONE_BOM.xls Bill of Materials (BOM)]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [http://beagleboard.org/static/beaglebone/a3/Docs/Hardware/BONE_SCH.pdf Schematics], [http://beagleboard.org/static/beaglebone/a3/Docs/Hardware/BONE_BOM.xls Bill of Materials (BOM)]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</description>
	<pubDate>Sun, 12 Feb 2012 06:08:24 +0000</pubDate>
</item>
<item>
	<title>ITRS Wiki: File:Ti-am335x-functional-block-diagram.png</title>
	<guid isPermaLink="true">http://itrs.tw:115/wiki/File:Ti-am335x-functional-block-diagram.png</guid>
	<link>http://itrs.tw:115/wiki/File:Ti-am335x-functional-block-diagram.png</link>
	<description>&lt;p&gt;uploaded &quot;[[&lt;a href=&quot;http://itrs.tw/wiki/File:Ti-am335x-functional-block-diagram.png&quot; title=&quot;File:Ti-am335x-functional-block-diagram.png&quot;&gt;File:Ti-am335x-functional-block-diagram.png&lt;/a&gt;]]&quot; TI AM335x Functional Block Diagram&lt;/p&gt;</description>
	<pubDate>Sun, 12 Feb 2012 04:53:19 +0000</pubDate>
</item>
<item>
	<title>ITRS Wiki: Beagle Bone</title>
	<guid isPermaLink="true">http://itrs.tw:115/mediawiki/index.php?title=Beagle_Bone&amp;diff=2215&amp;oldid=2210</guid>
	<link>http://itrs.tw:115/mediawiki/index.php?title=Beagle_Bone&amp;diff=2215&amp;oldid=2210</link>
	<description>&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot;&gt;
			&lt;colgroup&gt;&lt;col class=&quot;diff-marker&quot; /&gt;
			&lt;col class=&quot;diff-content&quot; /&gt;
			&lt;col class=&quot;diff-marker&quot; /&gt;
			&lt;col class=&quot;diff-content&quot; /&gt;
		&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr valign=&quot;top&quot;&gt;
		&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color: black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color: black;&quot;&gt;Revision as of 04:40, 12 February 2012&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; align=&quot;center&quot; class=&quot;diff-multi&quot;&gt;(3 intermediate revisions by one user not shown)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;http://beagleboard.org/static/beaglebone/a3/Docs/in-hand.png&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;http://beagleboard.org/static/beaglebone/a3/Docs/in-hand.png&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* SOC: [http://www.ti.com/product/am3352#technicaldocuments TI AM335x]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* SOC: [http://www.ti.com/product/am3352#technicaldocuments TI AM335x&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;], 256 MB RAM ([http://www.micron.com/support/fbga.html Micron D9MTD]), FTDI 2232 USB serial and JTAG (single cable development), [http://www.smsc.com/media/Downloads_Public/Data_Sheets/8710a.pdf SMSC LAN8710A Ethernet PHY&lt;/ins&gt;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;baudrate&lt;/del&gt;: 115200, [http://beagleboard.org/static/BONESRM_latest.pdf BeagleBone System Reference Manual]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Baudrate&lt;/ins&gt;: 115200, [http://beagleboard.org/static/BONESRM_latest.pdf BeagleBone System Reference Manual]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [http://beagleboard.org/static/beaglebone/a3/Docs/Hardware/BONE_SCH.pdf Schematics], [http://beagleboard.org/static/beaglebone/a3/Docs/Hardware/BONE_BOM.xls Bill of Materials (BOM)]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [http://beagleboard.org/static/beaglebone/a3/Docs/Hardware/BONE_SCH.pdf Schematics], [http://beagleboard.org/static/beaglebone/a3/Docs/Hardware/BONE_BOM.xls Bill of Materials (BOM)]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</description>
	<pubDate>Sun, 12 Feb 2012 04:40:41 +0000</pubDate>
</item>
<item>
	<title>ITRS Wiki: Beagle Board</title>
	<guid isPermaLink="true">http://itrs.tw:115/mediawiki/index.php?title=Beagle_Board&amp;diff=2211&amp;oldid=1409</guid>
	<link>http://itrs.tw:115/mediawiki/index.php?title=Beagle_Board&amp;diff=2211&amp;oldid=1409</link>
	<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Micron Flash and Ram Module: &lt;/span&gt; &lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot;&gt;
			&lt;colgroup&gt;&lt;col class=&quot;diff-marker&quot; /&gt;
			&lt;col class=&quot;diff-content&quot; /&gt;
			&lt;col class=&quot;diff-marker&quot; /&gt;
			&lt;col class=&quot;diff-content&quot; /&gt;
		&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr valign=&quot;top&quot;&gt;
		&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color: black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color: black;&quot;&gt;Revision as of 03:48, 12 February 2012&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 9:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 9:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [http://focus.ti.com/docs/prod/folders/print/tps65950.html TPS65950 Analog Companion]: Integrated Power Management IC with 3 DC/DC's, 11 LDO's, Audio Codec, USB HS Transceiver, Charger&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [http://focus.ti.com/docs/prod/folders/print/tps65950.html TPS65950 Analog Companion]: Integrated Power Management IC with 3 DC/DC's, 11 LDO's, Audio Codec, USB HS Transceiver, Charger&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;== Micron Flash and Ram Module ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;== Micron Flash and Ram Module ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;* &lt;/del&gt;[[Image:Micron-fbgadecoder.jpg]] [http://www.micron.com/support&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;/part_info&lt;/del&gt;/fbga&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;/decoder&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;aspx#  &lt;/del&gt;FBGA Part Marking Decoder]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:Micron-fbgadecoder.jpg&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|link=http://www.micron.com/support/fbga.html|Micron FBGA Part Marking Decoder&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* &lt;/ins&gt;[http://www.micron.com/support/fbga.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;html Micron &lt;/ins&gt;FBGA Part Marking Decoder]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* http://digikey.com/Suppliers/us/Micron-Technology.page?lang=EN&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* http://digikey.com/Suppliers/us/Micron-Technology.page?lang=EN&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;== ICETEK-MINI Beagle Board Clone ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;== ICETEK-MINI Beagle Board Clone ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* http://elinux.org/MiniBoardFAQ#Runnin.27_1615&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* http://elinux.org/MiniBoardFAQ#Runnin.27_1615&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</description>
	<pubDate>Sun, 12 Feb 2012 03:48:57 +0000</pubDate>
</item>
<item>
	<title>ITRS Wiki: Beagle Bone</title>
	<guid isPermaLink="true">http://itrs.tw:115/mediawiki/index.php?title=Beagle_Bone&amp;diff=2210&amp;oldid=2208</guid>
	<link>http://itrs.tw:115/mediawiki/index.php?title=Beagle_Bone&amp;diff=2210&amp;oldid=2208</link>
	<description>&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot;&gt;
			&lt;colgroup&gt;&lt;col class=&quot;diff-marker&quot; /&gt;
			&lt;col class=&quot;diff-content&quot; /&gt;
			&lt;col class=&quot;diff-marker&quot; /&gt;
			&lt;col class=&quot;diff-content&quot; /&gt;
		&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr valign=&quot;top&quot;&gt;
		&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color: black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color: black;&quot;&gt;Revision as of 03:30, 12 February 2012&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; align=&quot;center&quot; class=&quot;diff-multi&quot;&gt;(One intermediate revision by one user not shown)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;http://beagleboard.org/static/beaglebone/a3/Docs/in-hand.png&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* SOC: [http://www.ti.com/product/am3352#technicaldocuments TI AM335x]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* SOC: [http://www.ti.com/product/am3352#technicaldocuments TI AM335x]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [http://beagleboard.org/static/BONESRM_latest.pdf BeagleBone System Reference Manual]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;baudrate: 115200, &lt;/ins&gt;[http://beagleboard.org/static/BONESRM_latest.pdf BeagleBone System Reference Manual]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [http://beagleboard.org/static/beaglebone/a3/Docs/Hardware/BONE_SCH.pdf Schematics]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [http://beagleboard.org/static/beaglebone/a3/Docs/Hardware/BONE_SCH.pdf Schematics]&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/ins&gt;[http://beagleboard.org/static/beaglebone/a3/Docs/Hardware/BONE_BOM.xls Bill of Materials (BOM)]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;* &lt;/del&gt;[http://beagleboard.org/static/beaglebone/a3/Docs/Hardware/BONE_BOM.xls Bill of Materials (BOM)]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;== See Also ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;== See Also ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [http://beagleboard.org/hardware/design/ BeagleBoard Hardware Design]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [http://beagleboard.org/hardware/design/ BeagleBoard Hardware Design]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Beagle Board]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Beagle Board]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</description>
	<pubDate>Sun, 12 Feb 2012 03:30:44 +0000</pubDate>
</item>
<item>
	<title>ITRS Wiki: Beagle Bone</title>
	<guid isPermaLink="true">http://itrs.tw:115/mediawiki/index.php?title=Beagle_Bone&amp;diff=2208&amp;oldid=0</guid>
	<link>http://itrs.tw:115/mediawiki/index.php?title=Beagle_Bone&amp;diff=2208&amp;oldid=0</link>
	<description>&lt;p&gt;Created page with &quot;* SOC: [http://www.ti.com/product/am3352#technicaldocuments TI AM335x] * [http://beagleboard.org/static/BONESRM_latest.pdf BeagleBone System Reference Manual] * [http://beagle...&quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;* SOC: [http://www.ti.com/product/am3352#technicaldocuments TI AM335x]&lt;br /&gt;
* [http://beagleboard.org/static/BONESRM_latest.pdf BeagleBone System Reference Manual]&lt;br /&gt;
* [http://beagleboard.org/static/beaglebone/a3/Docs/Hardware/BONE_SCH.pdf Schematics]&lt;br /&gt;
* [http://beagleboard.org/static/beaglebone/a3/Docs/Hardware/BONE_BOM.xls Bill of Materials (BOM)]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [http://beagleboard.org/hardware/design/ BeagleBoard Hardware Design]&lt;br /&gt;
* [[Beagle Board]]&lt;/div&gt;</description>
	<pubDate>Sun, 12 Feb 2012 03:19:40 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 用了 ramdisk 後, 覺得實在太方便了, 目前是兩台開發機, 一個用 ssd, 一個用 ramdisk。待用個一陣子後再來比較看看和 ssd 相比, 何種模式較方便</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;941936817</guid>
	<link>http://www.plurk.com/p/fksz3l</link>
	<description>fcamel 說 用了 ramdisk 後, 覺得實在太方便了, 目前是兩台開發機, 一個用 ssd, 一個用 ramdisk。待用個一陣子後再來比較看看和 ssd 相比, 何種模式較方便</description>
	<pubDate>Sat, 11 Feb 2012 16:52:37 +0000</pubDate>
</item>
<item>
	<title>沈育德's Life: [Travel] 2012/02/05-07 鹿港台南鹽水之旅</title>
	<guid isPermaLink="false">http://xxxd.wordpress.com/?p=425</guid>
	<link>http://xxxd.wordpress.com/2012/02/11/travel-20120205-07-%e9%b9%bf%e6%b8%af%e5%8f%b0%e5%8d%97%e9%b9%bd%e6%b0%b4%e4%b9%8b%e6%97%85/</link>
	<description>以前的老家在鹽水, 反而從來沒去看過蜂炮, 這次就跟著堂弟一家一起下來, 中間剛好順路經過鹿港, 就去看了一下台灣燈會, 太壯觀了, 開了一大片土地當停車場, 再透過接駁車到達會場, 那個排隊等待的人實在是誇張的多…不過燈會本身我覺得相當不錯, 花燈品質都很好~ 鹽水尾寮的老家, 我應該有10年以上沒回來了…雖說一切都還是很熟悉, 但是真的很久沒回來, 南部的生活還是差不多, 想吃什麼, 去後面摘摘菜, 拿回來洗一洗就可以煮了~ 回南部就是一連串拜拜行程~ 原來現在每年新營都會舉辦電音三太子比賽, 可惜這次晚了一天, 明年希望在回來看看. 豆菜麵果然是大家的最愛~ 還跑去親戚田裡採蕃茄 準備帶回台北 (我果然是奧少年, 太陽底下一下就累了..) 叔叔都生了三個小孩了, 三個跑來跑去超熱鬧的:) 晚上的蜂炮是重頭戲! 原來叔叔們都有在幫忙組蜂炮, 以前蜂炮都是只有兩個方向, 他們今年組了圓形的跟八角型的! 超酷的, 請叔叔們幫忙借裝備, 就出發了, 整個鹽水就像個不夜城, 也像是戰場, 到處都是鞭炮, 一開始怕怕的, 神轎抬到哪邊, 就會炸到哪邊, 後來幾個大的蜂炮, 讓叔叔他們直接帶到最裡面, 去試試看, 被打到還真痛呢~ 不過超刺激的! 就這樣撐到三點才回到家裡… 明年有機會還要再來! 相簿: https://plus.google.com/u/0/photos/102249536116095884743/albums/5706364622411418161 https://plus.google.com/u/0/photos/102249536116095884743/albums/5706362926549558545&lt;img width=&quot;1&quot; alt=&quot;&quot; height=&quot;1&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=xxxd.wordpress.com&amp;amp;blog=334772&amp;amp;post=425&amp;amp;subd=xxxd&amp;amp;ref=&amp;amp;feed=1&quot; /&gt;</description>
	<pubDate>Sat, 11 Feb 2012 12:17:03 +0000</pubDate>
</item>
<item>
	<title>ITRS Wiki: Bash</title>
	<guid isPermaLink="true">http://itrs.tw:115/mediawiki/index.php?title=Bash&amp;diff=2207&amp;oldid=0</guid>
	<link>http://itrs.tw:115/mediawiki/index.php?title=Bash&amp;diff=2207&amp;oldid=0</link>
	<description>&lt;p&gt;Created page with &quot;* [http://www.debian-administration.org/article/An_introduction_to_bash_completion_part_1 An introduction to bash completion: part 1]  == See Also == * [[The Linux Programming...&quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;* [http://www.debian-administration.org/article/An_introduction_to_bash_completion_part_1 An introduction to bash completion: part 1]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[The Linux Programming Environment]]&lt;/div&gt;</description>
	<pubDate>Sat, 11 Feb 2012 02:28:07 +0000</pubDate>
</item>
<item>
	<title>ITRS Wiki: X86 Assembler</title>
	<guid isPermaLink="true">http://itrs.tw:115/mediawiki/index.php?title=X86_Assembler&amp;diff=2206&amp;oldid=2205</guid>
	<link>http://itrs.tw:115/mediawiki/index.php?title=X86_Assembler&amp;diff=2206&amp;oldid=2205</link>
	<description>&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot;&gt;
			&lt;colgroup&gt;&lt;col class=&quot;diff-marker&quot; /&gt;
			&lt;col class=&quot;diff-content&quot; /&gt;
			&lt;col class=&quot;diff-marker&quot; /&gt;
			&lt;col class=&quot;diff-content&quot; /&gt;
		&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr valign=&quot;top&quot;&gt;
		&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color: black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color: black;&quot;&gt;Revision as of 00:00, 11 February 2012&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Recommended Textbook: &lt;/del&gt;[http://csapp.cs.cmu.edu/ Computer Systems: A Programmer's Perspective, Second Edition (CS:APP2e) by Randal E. Bryant and David R. O'Hallaron, Prentice Hall, 2011 (ISBN 0-13-610804-0)]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;== Recommended Reading ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [http://csapp.cs.cmu.edu/ Computer Systems: A Programmer's Perspective, Second Edition (CS:APP2e) by Randal E. Bryant and David R. O'Hallaron, Prentice Hall, 2011 (ISBN 0-13-610804-0)&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* [http://www.cse.nd.edu/~dthain/courses/cse40243/fall2008/ia32-intro.html IA-32 Assembly for Compiler Writers]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* [http://ecee.colorado.edu/ecen4553/fall10/asm64-handout.pdf x86-64 Machine-Level Programming&lt;/ins&gt;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;== Intel Vs. AT&amp;amp;T Syntax ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;== Intel Vs. AT&amp;amp;T Syntax ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 71:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 74:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;See also: [http://sourceware.org/binutils/docs/as/i386_002dVariations.html GAS Manual: AT&amp;amp;T Syntax versus Intel Syntax], [http://sourceware.org/binutils/docs/as/i386_002dMnemonics.html GAS Manual: i386 Mnemonics]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;See also: [http://sourceware.org/binutils/docs/as/i386_002dVariations.html GAS Manual: AT&amp;amp;T Syntax versus Intel Syntax], [http://sourceware.org/binutils/docs/as/i386_002dMnemonics.html GAS Manual: i386 Mnemonics]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;== GCC Inline Asm ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [http://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html gcc: Extended Asm]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [http://gcc.gnu.org/onlinedocs/gcc/Constraints.html gcc: Constraints for asm Operands]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [http://gcc.gnu.org/onlinedocs/gcc/Machine-Constraints.html gcc Machine Constraints]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;== Shell Code and Exploit Oriented Tools ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;== Shell Code and Exploit Oriented Tools ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 80:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 88:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;== See Also ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;== See Also ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [http://pdos.csail.mit.edu/6.828/2011/reference.html MIT 6.828 Operating System Reading Materials]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Dump Analysis / Memory Analysis / Disassembly]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Dump Analysis / Memory Analysis / Disassembly]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Metasploit]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Metasploit]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</description>
	<pubDate>Sat, 11 Feb 2012 00:00:00 +0000</pubDate>
</item>
<item>
	<title>ITRS Wiki: X86 Assembler</title>
	<guid isPermaLink="true">http://itrs.tw:115/mediawiki/index.php?title=X86_Assembler&amp;diff=2206&amp;oldid=2053</guid>
	<link>http://itrs.tw:115/mediawiki/index.php?title=X86_Assembler&amp;diff=2206&amp;oldid=2053</link>
	<description>&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot;&gt;
			&lt;colgroup&gt;&lt;col class=&quot;diff-marker&quot; /&gt;
			&lt;col class=&quot;diff-content&quot; /&gt;
			&lt;col class=&quot;diff-marker&quot; /&gt;
			&lt;col class=&quot;diff-content&quot; /&gt;
		&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr valign=&quot;top&quot;&gt;
		&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color: black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color: black;&quot;&gt;Revision as of 00:00, 11 February 2012&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; align=&quot;center&quot; class=&quot;diff-multi&quot;&gt;(One intermediate revision by one user not shown)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Recommended Textbook: &lt;/del&gt;[http://csapp.cs.cmu.edu/ Computer Systems: A Programmer's Perspective, Second Edition (CS:APP2e) by Randal E. Bryant and David R. O'Hallaron, Prentice Hall, 2011 (ISBN 0-13-610804-0)]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;== Recommended Reading ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [http://csapp.cs.cmu.edu/ Computer Systems: A Programmer's Perspective, Second Edition (CS:APP2e) by Randal E. Bryant and David R. O'Hallaron, Prentice Hall, 2011 (ISBN 0-13-610804-0)&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* [http://www.cse.nd.edu/~dthain/courses/cse40243/fall2008/ia32-intro.html IA-32 Assembly for Compiler Writers]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* [http://ecee.colorado.edu/ecen4553/fall10/asm64-handout.pdf x86-64 Machine-Level Programming]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;== Intel Vs. AT&amp;amp;T Syntax ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;{| border=&quot;1&quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|+ Memory References&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;!Intel Syntax&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;!AT&amp;amp;T Syntax&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;!Details&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|''section'':[''base'' + ''index''*''scale'' + ''disp'']&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|''section'':''disp''(''base'', ''index'', ''scale'')&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|where ''scale'' can be 1, 2, 4 or 8&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|[ebp - 4]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;| -4(%ebp)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|[foo + eax*4]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|foo(,%eax,4)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|[foo]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|foo(,1)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|gs:foo&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|%gs:foo&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|[rip + 1234]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|1234(%rip)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|x86-64 RIP addressing. Points to  the address 1234 bytes past the end of the current instruction.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|[rip + symbol]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|symbol(%rip)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|Points to the symbol in an instruction pointer relative way.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;{| border=&quot;1&quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|+ Conversion Instructions&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;!Intel Syntax&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;!AT&amp;amp;T Syntax&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;!Details&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|cbw&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|cbtw&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|sign-extend byte in `%al' to word in `%ax'&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|cwde&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|cwtl&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|sign-extend word in `%ax' to long in `%eax'&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|cwd&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|cwtd&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|sign-extend word in `eax' to long in `%dx:%ax'&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|cdq&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|cltd&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|sign-extend dword in `%eax' to quad in `%edx:%eax'&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|cdqe&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|cltq&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|sign-extend dword in `%eax' to quad in `%rax' (x86-64 only)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|cdo&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|cqto&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|sign-extend quad in `%rax' to octuple in `%rdx:%rax' (x86-64 only)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;See also: [http://sourceware.org/binutils/docs/as/i386_002dVariations.html GAS Manual: AT&amp;amp;T Syntax versus Intel Syntax], [http://sourceware.org/binutils/docs/as/i386_002dMnemonics.html GAS Manual: i386 Mnemonics]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;== GCC Inline Asm ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* [http://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html gcc: Extended Asm]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* [http://gcc.gnu.org/onlinedocs/gcc/Constraints.html gcc: Constraints for asm Operands]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* [http://gcc.gnu.org/onlinedocs/gcc/Machine-Constraints.html gcc Machine Constraints&lt;/ins&gt;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;== Shell Code and Exploit Oriented Tools ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;== Shell Code and Exploit Oriented Tools ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 9:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 88:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;== See Also ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;== See Also ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [http://pdos.csail.mit.edu/6.828/2011/reference.html MIT 6.828 Operating System Reading Materials]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Dump Analysis / Memory Analysis / Disassembly]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Dump Analysis / Memory Analysis / Disassembly]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Metasploit]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Metasploit]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</description>
	<pubDate>Sat, 11 Feb 2012 00:00:00 +0000</pubDate>
</item>
<item>
	<title>ITRS Wiki: Javascript</title>
	<guid isPermaLink="true">http://itrs.tw:115/mediawiki/index.php?title=Javascript&amp;diff=2204&amp;oldid=2194</guid>
	<link>http://itrs.tw:115/mediawiki/index.php?title=Javascript&amp;diff=2204&amp;oldid=2194</link>
	<description>&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot;&gt;
			&lt;colgroup&gt;&lt;col class=&quot;diff-marker&quot; /&gt;
			&lt;col class=&quot;diff-content&quot; /&gt;
			&lt;col class=&quot;diff-marker&quot; /&gt;
			&lt;col class=&quot;diff-content&quot; /&gt;
		&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr valign=&quot;top&quot;&gt;
		&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color: black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color: black;&quot;&gt;Revision as of 17:11, 10 February 2012&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 14:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 14:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;== See Also ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;== See Also ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* http://wiki.ecmascript.org/doku.php?id=harmony:proposals&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Dynamic Languages]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color: black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Dynamic Languages]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</description>
	<pubDate>Fri, 10 Feb 2012 17:11:32 +0000</pubDate>
</item>
<item>
	<title>駱嘉濠's fcamel 技術隨手記: 使用 hg-svn</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-4982215793068879977.post-5787853904195437750</guid>
	<link>http://feedproxy.google.com/~r/blogspot/fcamel/~3/Y3l5O3YPTrE/hg-svn.html</link>
	<description>&lt;p&gt;參照&lt;a href=&quot;http://mercurial.selenic.com/wiki/WorkingWithSubversion&quot;&gt;《WorkingWithSubversion - Mercurial》&lt;/a&gt;, 前置動作是要裝 python-subversion。用了一陣子覺得滿順的。不過得等 hg rebase &lt;span class=&quot;escaped&quot;&gt;-&lt;/span&gt;-svn 出現 conflict, 看看有沒有無縫銜接 kdiff3 + resolve conflict, 才可以更放心使用。&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/4982215793068879977-5787853904195437750?l=fcamel-life.blogspot.com&quot; /&gt;&lt;/div&gt;&lt;img width=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/blogspot/fcamel/~4/Y3l5O3YPTrE&quot; height=&quot;1&quot; /&gt;</description>
	<pubDate>Fri, 10 Feb 2012 17:08:26 +0000</pubDate>
	<author>noreply@blogger.com (fcamel)</author>
</item>
<item>
	<title>駱嘉濠's plurk: fcamel 說 看 glibc 的 abort() 實作覺得相當有趣, 用盡各種方法搞當自己, 先試著優雅的弄掛自己, 不行的話, 舉止愈來愈粗魯, 最後是永無止盡的 abort XD</title>
	<guid isPermaLink="false">tag:plurk.com;fcamel;941381586</guid>
	<link>http://www.plurk.com/p/fkh2oi</link>
	<description>fcamel 說 看 glibc 的 abort() 實作覺得相當有趣, 用盡各種方法搞當自己, 先試著優雅的弄掛自己, 不行的話, 舉止愈來愈粗魯, 最後是永無止盡的 abort XD</description>
	<pubDate>Fri, 10 Feb 2012 15:34:52 +0000</pubDate>
</item>

</channel>
</rss>

