<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>People Mountain People Sea</title>
	<atom:link href="http://www.frankdu.com/weblog/feed" rel="self" type="application/rss+xml" />
	<link>http://www.frankdu.com/weblog</link>
	<description>stay foolish, stay hungry</description>
	<pubDate>Thu, 10 Jun 2010 20:15:28 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
	<language>en</language>
			<item>
		<title>Resolve ambiguities in antlr v3</title>
		<link>http://www.frankdu.com/weblog/archives/145</link>
		<comments>http://www.frankdu.com/weblog/archives/145#comments</comments>
		<pubDate>Thu, 10 Jun 2010 20:15:28 +0000</pubDate>
		<dc:creator>frank</dc:creator>
		
		<category><![CDATA[ANTLR]]></category>

		<guid isPermaLink="false">http://www.frankdu.com/weblog/?p=145</guid>
		<description><![CDATA[When there is ambiguities in writing antlr grammar, there are different ways to solve it.
1. Simply avoid them. This is the ideal way when it&#8217;s possible.
2. Turn on backtracking, which is most inefficient way.
3. Use left factoring.
4. Use syntax predicates.
For some samples, check it out at http://www.antlr.org/wiki/display/ANTLR3/How+to+remove+global+backtracking+from+your+grammar
The format of sytnax predicate is close to semantic [...]]]></description>
			<content:encoded><![CDATA[<p>When there is ambiguities in writing antlr grammar, there are different ways to solve it.</p>
<p>1. Simply avoid them. This is the ideal way when it&#8217;s possible.</p>
<p>2. Turn on backtracking, which is most inefficient way.</p>
<p>3. Use left factoring.</p>
<p>4. Use syntax predicates.</p>
<p>For some samples, check it out at <a href="http://www.antlr.org/wiki/display/ANTLR3/How+to+remove+global+backtracking+from+your+grammar" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.antlr.org');">http://www.antlr.org/wiki/display/ANTLR3/How+to+remove+global+backtracking+from+your+grammar</a></p>
<p>The format of sytnax predicate is close to semantic predicates. There are 3 types of them:</p>
<p>1. Validating semantic predicate, to place constraints on rules. For example<br />
data : ( b += BYTE )+ {$b.size() &lt;= 4}? ;<br />
2. Gated semantic predicate, to turn on some alternatives under runtime condition. For example:<br />
stat: ifState | {allowAssert}?=&gt; assertStat ;<br />
3. Disambiguating semantic predicate, to choose alternatives based on semantic context. For example:<br />
stat: keyIf ID stat | keyCall ID &#8216;;&#8217; ;<br />
keyIf: {input.LT(1).getText().equals(&#8221;if&#8221;)}? ID ;<br />
keyCall: {input.LT(1).getText().equals(&#8221;call&#8221;)}? ID ;</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.frankdu.com%2Fweblog%2Farchives%2F145&amp;linkname=Resolve%20ambiguities%20in%20antlr%20v3" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.addtoany.com');"><img src="http://www.frankdu.com/weblog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.frankdu.com/weblog/archives/145/feed</wfw:commentRss>
		</item>
		<item>
		<title>How to read cassandra source code by Ran</title>
		<link>http://www.frankdu.com/weblog/archives/143</link>
		<comments>http://www.frankdu.com/weblog/archives/143#comments</comments>
		<pubDate>Mon, 03 May 2010 15:34:32 +0000</pubDate>
		<dc:creator>frank</dc:creator>
		
		<category><![CDATA[software]]></category>

		<category><![CDATA[cassandra]]></category>

		<category><![CDATA[code reading]]></category>

		<guid isPermaLink="false">http://www.frankdu.com/weblog/?p=143</guid>
		<description><![CDATA[Here is a good article explaining how to read cassandra source codes:
Understanding Cassandra Code Base
http://prettyprint.me/2010/05/02/understanding-cassandra-code-base/
]]></description>
			<content:encoded><![CDATA[<p>Here is a good article explaining how to read <a href="http://cassandra.apache.org/" onclick="javascript:pageTracker._trackPageview('/outbound/article/cassandra.apache.org');" target="_blank">cassandra</a> source codes:</p>
<p><a href="http://prettyprint.me/2010/05/02/understanding-cassandra-code-base/" target="_blank">Understanding Cassandra Code Base<br />
http://prettyprint.me/2010/05/02/understanding-cassandra-code-base/</a></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.frankdu.com%2Fweblog%2Farchives%2F143&amp;linkname=How%20to%20read%20cassandra%20source%20code%20by%20Ran" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.addtoany.com');"><img src="http://www.frankdu.com/weblog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.frankdu.com/weblog/archives/143/feed</wfw:commentRss>
		</item>
		<item>
		<title>A simple thrift tutorial</title>
		<link>http://www.frankdu.com/weblog/archives/139</link>
		<comments>http://www.frankdu.com/weblog/archives/139#comments</comments>
		<pubDate>Wed, 07 Apr 2010 21:23:43 +0000</pubDate>
		<dc:creator>frank</dc:creator>
		
		<category><![CDATA[java]]></category>

		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.frankdu.com/weblog/?p=139</guid>
		<description><![CDATA[Check it out at http://skorage.org/2009/03/08/simple-thrift-tutorial/
]]></description>
			<content:encoded><![CDATA[<p>Check it out at <a href="http://skorage.org/2009/03/08/simple-thrift-tutorial/" onclick="javascript:pageTracker._trackPageview('/outbound/article/skorage.org');">http://skorage.org/2009/03/08/simple-thrift-tutorial/</a></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.frankdu.com%2Fweblog%2Farchives%2F139&amp;linkname=A%20simple%20thrift%20tutorial" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.addtoany.com');"><img src="http://www.frankdu.com/weblog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.frankdu.com/weblog/archives/139/feed</wfw:commentRss>
		</item>
		<item>
		<title>Let firefox use your Windows authentications automatically</title>
		<link>http://www.frankdu.com/weblog/archives/137</link>
		<comments>http://www.frankdu.com/weblog/archives/137#comments</comments>
		<pubDate>Tue, 06 Apr 2010 21:11:19 +0000</pubDate>
		<dc:creator>frank</dc:creator>
		
		<category><![CDATA[geek]]></category>

		<category><![CDATA[internet]]></category>

		<guid isPermaLink="false">http://www.frankdu.com/weblog/?p=137</guid>
		<description><![CDATA[In Firefox, visit:
about:config
Then set network.automatic-ntlm-auth.trusted-uris to your trusted domains, separated by comma.
]]></description>
			<content:encoded><![CDATA[<p>In Firefox, visit:</p>
<p>about:config</p>
<p>Then set <em>network.automatic-ntlm-auth.trusted-uris</em> to your trusted domains, separated by comma.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.frankdu.com%2Fweblog%2Farchives%2F137&amp;linkname=Let%20firefox%20use%20your%20Windows%20authentications%20automatically" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.addtoany.com');"><img src="http://www.frankdu.com/weblog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.frankdu.com/weblog/archives/137/feed</wfw:commentRss>
		</item>
		<item>
		<title>A very nice presentation about agile software development</title>
		<link>http://www.frankdu.com/weblog/archives/135</link>
		<comments>http://www.frankdu.com/weblog/archives/135#comments</comments>
		<pubDate>Fri, 02 Apr 2010 14:44:03 +0000</pubDate>
		<dc:creator>frank</dc:creator>
		
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.frankdu.com/weblog/?p=135</guid>
		<description><![CDATA[Some of my thoughts: Unit tests are very important in TDD. It enables you easily refactor code, adhere to customer requirements, and verify logics at earliest points. It also enables Continuously Integration to work brilliantly.
Lions, Tigers, and Bears: Scrum, XP, and Eclipse
View more presentations from kingargyle.

]]></description>
			<content:encoded><![CDATA[<p>Some of my thoughts: Unit tests are very important in TDD. It enables you easily refactor code, adhere to customer requirements, and verify logics at earliest points. It also enables Continuously Integration to work brilliantly.</p>
<div style="width:425px" id="__ss_3457906"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/kingargyle/lions-tigers-and-bears-scrum-xp-and-eclipse" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.slideshare.net');" title="Lions, Tigers, and Bears: Scrum, XP, and Eclipse">Lions, Tigers, and Bears: Scrum, XP, and Eclipse</a></strong><object width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=lionstigersbears-100317122759-phpapp01&#038;rel=0&#038;stripped_title=lions-tigers-and-bears-scrum-xp-and-eclipse" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=lionstigersbears-100317122759-phpapp01&#038;rel=0&#038;stripped_title=lions-tigers-and-bears-scrum-xp-and-eclipse" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.slideshare.net');">presentations</a> from <a href="http://www.slideshare.net/kingargyle" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.slideshare.net');">kingargyle</a>.</div>
</div>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.frankdu.com%2Fweblog%2Farchives%2F135&amp;linkname=A%20very%20nice%20presentation%20about%20agile%20software%20development" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.addtoany.com');"><img src="http://www.frankdu.com/weblog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.frankdu.com/weblog/archives/135/feed</wfw:commentRss>
		</item>
		<item>
		<title>Interesting lessons in Cassandra Slides</title>
		<link>http://www.frankdu.com/weblog/archives/133</link>
		<comments>http://www.frankdu.com/weblog/archives/133#comments</comments>
		<pubDate>Tue, 02 Mar 2010 19:49:38 +0000</pubDate>
		<dc:creator>frank</dc:creator>
		
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.frankdu.com/weblog/?p=133</guid>
		<description><![CDATA[There is a famous Cassandra PPT at SigMod 2008. In one slide, they presented several interesting lessons:

Add fancy features only when absolutely required
Many types of failures are possible
Big systems need proper system-level monitoring
Value simple designs

These lessons are interestingly useful. 
]]></description>
			<content:encoded><![CDATA[<p>There is a famous Cassandra PPT at SigMod 2008. In one slide, they presented several interesting lessons:</p>
<ol>
<li>Add fancy features only when absolutely required</li>
<li>Many types of failures are possible</li>
<li>Big systems need proper system-level monitoring</li>
<li>Value simple designs</li>
</ol>
<p>These lessons are interestingly useful. <img src='http://www.frankdu.com/weblog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.frankdu.com%2Fweblog%2Farchives%2F133&amp;linkname=Interesting%20lessons%20in%20Cassandra%20Slides" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.addtoany.com');"><img src="http://www.frankdu.com/weblog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.frankdu.com/weblog/archives/133/feed</wfw:commentRss>
		</item>
		<item>
		<title>The Visualization of Browser War</title>
		<link>http://www.frankdu.com/weblog/archives/131</link>
		<comments>http://www.frankdu.com/weblog/archives/131#comments</comments>
		<pubDate>Sat, 06 Feb 2010 05:04:13 +0000</pubDate>
		<dc:creator>frank</dc:creator>
		
		<category><![CDATA[software]]></category>

		<category><![CDATA[browser war]]></category>

		<category><![CDATA[firefox]]></category>

		<category><![CDATA[internet explorer]]></category>

		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://www.frankdu.com/weblog/?p=131</guid>
		<description><![CDATA[This is pretty interesting:
]]></description>
			<content:encoded><![CDATA[<p>This is pretty interesting:</p>
<p><div class="wp-caption alignleft" style="width: 832px"><a href="http://www.pixellabs.com/images/browserwars.png" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.pixellabs.com');"><img title="The Visualization of Browser War" src="http://www.pixellabs.com/images/browserwars.png" alt="The Visualization of Browser War" width="822" height="992" /></a><p class="wp-caption-text">The Visualization of Browser War</p></div></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.frankdu.com%2Fweblog%2Farchives%2F131&amp;linkname=The%20Visualization%20of%20Browser%20War" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.addtoany.com');"><img src="http://www.frankdu.com/weblog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.frankdu.com/weblog/archives/131/feed</wfw:commentRss>
		</item>
		<item>
		<title>Create a commercial-quality Eclipse IDE by IBM</title>
		<link>http://www.frankdu.com/weblog/archives/129</link>
		<comments>http://www.frankdu.com/weblog/archives/129#comments</comments>
		<pubDate>Sat, 06 Feb 2010 00:14:32 +0000</pubDate>
		<dc:creator>frank</dc:creator>
		
		<category><![CDATA[ANTLR]]></category>

		<category><![CDATA[DSL]]></category>

		<category><![CDATA[eclipse]]></category>

		<category><![CDATA[JTF]]></category>

		<guid isPermaLink="false">http://www.frankdu.com/weblog/?p=129</guid>
		<description><![CDATA[This should be a good tutorial. I need to look into it:
http://www.ibm.com/developerworks/edu/os-dw-os-ecl-commplgin1.html
I know there is an excellent tutorial in Chinese. It demos how to craft a source code editor using Eclipse JFace Text Framework and a bit ANTLR. The link is here.
]]></description>
			<content:encoded><![CDATA[<p>This should be a good tutorial. I need to look into it:</p>
<p><a href="http://www.ibm.com/developerworks/edu/os-dw-os-ecl-commplgin1.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.ibm.com');" target="_blank">http://www.ibm.com/developerworks/edu/os-dw-os-ecl-commplgin1.html</a></p>
<p>I know there is an excellent tutorial in Chinese. It demos how to craft a source code editor using Eclipse JFace Text Framework and a bit ANTLR. The link is <a href="http://www.ibm.com/developerworks/cn/opensource/os-cn-ecljtf/index.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.ibm.com');" target="_blank">here</a>.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.frankdu.com%2Fweblog%2Farchives%2F129&amp;linkname=Create%20a%20commercial-quality%20Eclipse%20IDE%20by%20IBM" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.addtoany.com');"><img src="http://www.frankdu.com/weblog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.frankdu.com/weblog/archives/129/feed</wfw:commentRss>
		</item>
		<item>
		<title>ANTLR v3 Tutorials Aggregation</title>
		<link>http://www.frankdu.com/weblog/archives/127</link>
		<comments>http://www.frankdu.com/weblog/archives/127#comments</comments>
		<pubDate>Sat, 06 Feb 2010 00:01:20 +0000</pubDate>
		<dc:creator>frank</dc:creator>
		
		<category><![CDATA[ANTLR]]></category>

		<category><![CDATA[DSL]]></category>

		<category><![CDATA[eclipse]]></category>

		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.frankdu.com/weblog/?p=127</guid>
		<description><![CDATA[Here are some tutorial links for learning antlr v3:

The Getting Started Tutorial from Official Site is Damn Good!
ANTLR Works is a damn good tool!
The Definitive Antlr Reference is a good book
ANTLR 3.X Tutorials are good video course and introduced a damn good eclipse tool: ANTLR IDE.

]]></description>
			<content:encoded><![CDATA[<p>Here are some tutorial links for learning antlr v3:</p>
<ol>
<li><a href="http://www.antlr.org/wiki/display/ANTLR3/FAQ+-+Getting+Started" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.antlr.org');" target="_blank">The Getting Started Tutorial</a> from Official Site is Damn Good!</li>
<li><a href="http://antlr.org/works/index.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/antlr.org');" target="_blank">ANTLR Works</a> is a damn good tool!</li>
<li><a href="http://www.pragmaticprogrammer.com/titles/tpantlr/index.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.pragmaticprogrammer.com');" target="_blank">The Definitive Antlr Reference</a> is a good book</li>
<li><a href="http://vimeo.com/groups/29150/videos" onclick="javascript:pageTracker._trackPageview('/outbound/article/vimeo.com');" target="_blank">ANTLR 3.X Tutorials</a> are good video course and introduced a damn good eclipse tool: ANTLR IDE.</li>
</ol>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.frankdu.com%2Fweblog%2Farchives%2F127&amp;linkname=ANTLR%20v3%20Tutorials%20Aggregation" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.addtoany.com');"><img src="http://www.frankdu.com/weblog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.frankdu.com/weblog/archives/127/feed</wfw:commentRss>
		</item>
		<item>
		<title>Mouse-click on Buttons Doesn&#8217;t Work in Ubuntu 9.10?</title>
		<link>http://www.frankdu.com/weblog/archives/125</link>
		<comments>http://www.frankdu.com/weblog/archives/125#comments</comments>
		<pubDate>Wed, 03 Feb 2010 20:25:06 +0000</pubDate>
		<dc:creator>frank</dc:creator>
		
		<category><![CDATA[eclipse]]></category>

		<guid isPermaLink="false">http://www.frankdu.com/weblog/?p=125</guid>
		<description><![CDATA[After installing Ubuntu 9.10, eclipse became naughty. I tried to create a Java Project. However, mouse-click on Next/Finish buttons didn&#8217;t work. The buttons got focused, but no response. So you have to press ENTER or SPACE to actually press the buttons.
A quick fix here: create a shell script. For example, eclipse.sh:
export GDK_NATIVE_WINDOWS=1
/home/frankdu/Developer/eclipse/eclipse
Then add executable permission [...]]]></description>
			<content:encoded><![CDATA[<p>After installing Ubuntu 9.10, eclipse became naughty. I tried to create a Java Project. However, mouse-click on Next/Finish buttons didn&#8217;t work. The buttons got focused, but no response. So you have to press ENTER or SPACE to actually press the buttons.</p>
<p>A quick fix here: create a shell script. For example, eclipse.sh:</p>
<p>export GDK_NATIVE_WINDOWS=1<br />
/home/frankdu/Developer/eclipse/eclipse</p>
<p>Then add executable permission to the file: chmod +x ./eclipse.sh</p>
<p>Every time you run eclipse.sh to launch eclipse. At least we can be happy for a while. Please see <a href="http://www.eclipse.org/forums/index.php?t=msg&amp;goto=498640&amp;" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.eclipse.org');" target="_blank">http://www.eclipse.org/forums/index.php?t=msg&amp;goto=498640&amp;</a> for more information.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.frankdu.com%2Fweblog%2Farchives%2F125&amp;linkname=Mouse-click%20on%20Buttons%20Doesn%26%238217%3Bt%20Work%20in%20Ubuntu%209.10%3F" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.addtoany.com');"><img src="http://www.frankdu.com/weblog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.frankdu.com/weblog/archives/125/feed</wfw:commentRss>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.226 seconds -->
