<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Peterism &#187; programming</title>
	<atom:link href="http://peterchuang.com/blog/tag/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://peterchuang.com/blog</link>
	<description>NOT just random thoughts</description>
	<lastBuildDate>Mon, 13 Jun 2011 10:52:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Android Phone Recorder Problem</title>
		<link>http://peterchuang.com/blog/2010/07/441/</link>
		<comments>http://peterchuang.com/blog/2010/07/441/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 00:25:43 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[opensource]]></category>

		<guid isPermaLink="false">http://peterchuang.com/blog/?p=441</guid>
		<description><![CDATA[<p>Note:  I don&#8217;t have time to complete this posting right now, so it&#8217;s in a draft format.  I just wanted to briefly document my findings before I forget.  Back to studying for the Patent Bar&#8230;</p> <p>I finally pony up the Benjamins and got myself an Android handset, wait for it &#8211; the Sprint HTC [...]]]></description>
			<content:encoded><![CDATA[<p>Note:  I don&#8217;t have time to complete this posting right now, so it&#8217;s in a draft format.  I just wanted to briefly document my findings before I forget.  Back to studying for the Patent Bar&#8230;</p>
<p>I finally pony up the Benjamins and got myself an Android handset, wait for it &#8211; the Sprint HTC EVO 4G!</p>
<p>You may not share my enthusiasm, but finally ditching my HTC Mogul (running WinMo 6.1) and moving into an even more open platform opens up a lot of possibilities for me.  I&#8217;ve always been more comfortable developing on the *nix realm, and although I don&#8217;t have anything against the iPhone, Apple&#8217;s tight control on the iPhone OS just doesn&#8217;t sound that appealing to me.  At this point in the mobile platform ecosystem, iPhone enjoys a  <a href="http://www.engadget.com/2010/07/05/ios-has-a-bigger-dev-army-than-android-but-will-cross-platform/" target="_blank">almost 4-to-1 margin in the number of developers</a> probably due to its two year head start in reaching the mainstream market, but the fact that Google opens up the entire Android platform, allowing me to develop apps that interface the hardware in a low-level way is much more appealing.  I hope for a day when the mobile platform mimics the general purpose computers that makes it possible to run almost any OS on the same hardware.</p>
<p>A bunch of people have been <a href="http://code.google.com/p/android/issues/detail?id=2117" target="_blank">having problem building a true phone recorder on the Android</a>.   Almost all smartphones these days come with an application processor (AP) and a baseband processor (BP).  The BP is responsible for handling the radio, and voice encoding -decoding, among other related tasks.  While the AP is used to run the OS and applications.  The fact that despite having an API that supports recording voice call (both uplink and downlink), none have been able to successfully implement the feature suggests to me that there&#8217;s more than meet the eye.  Upon further digging through the Android platform source and documentation, I found an interesting project within the platform that seems to be responsible for implementing what I want&#8230;, the <a href="http://android.git.kernel.org/?p=platform/hardware/ril.git;a=summary" target="_blank">Radio Interface Layer (RIL)</a>.</p>
<p>More to come&#8230;</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fpeterchuang.com%2Fblog%2F2010%2F07%2F441%2F&amp;title=Android%20Phone%20Recorder%20Problem" id="wpa2a_2"><img src="http://peterchuang.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://peterchuang.com/blog/2010/07/441/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>&#8220;Shortest Sudoku Solver in Python&#8221;</title>
		<link>http://peterchuang.com/blog/2009/08/234/</link>
		<comments>http://peterchuang.com/blog/2009/08/234/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 17:21:06 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://peterchuang.com/blog/?p=234</guid>
		<description><![CDATA[<p>For those programmers and mathematicians, here&#8217;s a brain exercise to walk through from the good folks at stackoverflow.com.</p> ]]></description>
			<content:encoded><![CDATA[<p>For those programmers and mathematicians, here&#8217;s a <a title="Shortest Sudoku Solver in Python" href="http://stackoverflow.com/questions/201461/shortest-sudoku-solver-in-python-how-does-it-work">brain exercise</a> to walk through from the good folks at stackoverflow.com.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fpeterchuang.com%2Fblog%2F2009%2F08%2F234%2F&amp;title=%26%238220%3BShortest%20Sudoku%20Solver%20in%20Python%26%238221%3B" id="wpa2a_4"><img src="http://peterchuang.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://peterchuang.com/blog/2009/08/234/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tips for Developers</title>
		<link>http://peterchuang.com/blog/2008/10/112/</link>
		<comments>http://peterchuang.com/blog/2008/10/112/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 01:19:23 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://peterchuang.com/blog/?p=112</guid>
		<description><![CDATA[<p></p> <p>As a developer, I have found these tools to be helpful.  Some of them are good for any developer, a few are only useful if you do web development.  In any case, this will at least serve as a reference for myself should I need to repeat the setup.</p> Use Version Control <p>First, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-medium wp-image-118" title="code-snippet" src="http://peterchuang.com/blog/wp-content/uploads/2008/10/code-snippet-300x138.png" alt="" width="300" height="138" /></p>
<p>As a developer, I have found these tools to be helpful.  Some of them are good for any developer, a few are only useful if you do web development.  In any case, this will at least serve as a reference for myself should I need to repeat the setup.<span id="more-112"></span></p>
<h3>Use Version Control</h3>
<p>First, even if you are a one-man development team like myself, it is still very important to use a source code versioning system like <a title="Concurrent Versioning System" href="http://www.nongnu.org/cvs/">cvs</a> or <a title="Subversion" href="http://subversion.tigris.org/">svn</a>.  Having the ability to easily revert back to an earlier version or diffing among versions with the aid of either a GUI client or a web front-end like ViewVC makes you wonder how you ever got along without them. [expand on this topic...]</p>
<h3>Get a Reliable Server</h3>
<p>If you do web development, consider subscribing to a virtual private hosting service.  I use <a title="Rapid VPS" href="https://www.rapidvps.com/">RapidVPS</a> and pay them $9.95/mo.  I noticed that their website now lists the same service I have for $14.95/mo.  Good thing I opened an account with them before they hiked the price for new users.  The good thing about a VPS service is that you get a dedicated IP address, root access to the shell, and have a host of OS&#8217;s to choose from.  I used have my VPS host configured to run FC4, but have switched to Ubuntu in 2007.  Now it&#8217;s running Ubuntu 8.04.  Prior to paying somebody to host a server, I dug up my old 386 and 486 boxes, slap Redhat on them and hook them up to my residential broadband.  I could get around the dynamic IP issue with a free dynamic IP forwarding service like <a title="No-IP" href="http://no-ip.com">No-IP</a>, but a few ISPs have started to block certain ports.  My Adelphia cable in Westwood in the early 2000&#8242;s blocked port 80, for example.  The dismal upload speed also made my site feel very slow to the users.  Another problem I had was that, for some reason, power outage was a more common occurance than what I would have expected from a modern California powergrid.  Anyway, in any case, I made the switch to a very affordable hosting service, and couldn&#8217;t be happier.</p>
<p>To be continued&#8230;</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fpeterchuang.com%2Fblog%2F2008%2F10%2F112%2F&amp;title=Tips%20for%20Developers" id="wpa2a_6"><img src="http://peterchuang.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://peterchuang.com/blog/2008/10/112/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

