<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss version="2.0"><channel><description>I live in Singapore.
I work for Plurk.

No surprise there, I churn out code for a living!</description><title>Harish Mallipeddi's Blog</title><generator>Tumblr (3.0; @mallipeddi)</generator><link>http://blog.poundbang.in/</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/poundbangin" type="application/rss+xml" /><item><title>I.O.U.S.A. - Documentary on the US Federal Debt (30-min version)</title><description>&lt;embed src="http://blip.tv/play/Adb1EAA" type="application/x-shockwave-flash" width="400" height="337" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://blip.tv/file/1417453"&gt;I.O.U.S.A. - Documentary on the US Federal Debt (30-min version)&lt;/a&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/poundbangin?a=PwvfN"&gt;&lt;img src="http://feeds.feedburner.com/~f/poundbangin?i=PwvfN" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.poundbang.in/post/60255390</link><guid>http://blog.poundbang.in/post/60255390</guid><pubDate>Tue, 18 Nov 2008 16:07:59 +0800</pubDate></item><item><title>Using JInterface to communicate between Java &amp; Erlang</title><description>&lt;p&gt;I figured this stuff out this morning. &lt;a href="http://www.erlang.org/doc/apps/jinterface/index.html"&gt;JInterface&lt;/a&gt; ships by default with the Erlang distribution. JInterface implements the Erlang VM wire protocol and hence you can create pseudo Erlang-ish VMs using Java. Erlang code running on a different VM can then send/receive messages to the processes running on the Java node and vice versa.&lt;/p&gt;

&lt;p&gt;Here’s the code (if you cannot view the GitHub gist embed, visit the &lt;a href="http://gist.github.com/24202"&gt;direct link&lt;/a&gt;). In this example, I’m creating a process which receives messages of the format &lt;code&gt;{FromPid, some_erlang_term}&lt;/code&gt; and echoes &lt;code&gt;some_erlang_term&lt;/code&gt; back to &lt;code&gt;FromPid&lt;/code&gt;.&lt;/p&gt;

&lt;script src="http://gist.github.com/24202.js"&gt;&lt;/script&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/poundbangin?a=8u6jN"&gt;&lt;img src="http://feeds.feedburner.com/~f/poundbangin?i=8u6jN" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.poundbang.in/post/59344873</link><guid>http://blog.poundbang.in/post/59344873</guid><pubDate>Thu, 13 Nov 2008 00:53:54 +0800</pubDate></item><item><title>Making of Guitar Hero World Tour</title><description>&lt;a href="http://digitalmedia.oreilly.com/2008/11/07/guitar-hero-world-tour.html"&gt;Making of Guitar Hero World Tour&lt;/a&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/poundbangin?a=6I3zN"&gt;&lt;img src="http://feeds.feedburner.com/~f/poundbangin?i=6I3zN" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.poundbang.in/post/58744033</link><guid>http://blog.poundbang.in/post/58744033</guid><pubDate>Sun, 09 Nov 2008 13:32:58 +0800</pubDate></item><item><title>The Reckoning - From Midwest to M.T.A., Pain From Global Gamble - Series - NYTimes.com</title><description>&lt;a href="http://www.nytimes.com/2008/11/02/business/02global.html?ref=business"&gt;The Reckoning - From Midwest to M.T.A., Pain From Global Gamble - Series - NYTimes.com&lt;/a&gt;: Just shows how much of a complex and interconnected world we live in. This reminds me of what my mom mentioned a few days back on the phone. Life was much simpler (not necessarily awesome, but simpler) in India in the 80s when it was more or less isolated from the rest of the world.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/poundbangin?a=FCYMN"&gt;&lt;img src="http://feeds.feedburner.com/~f/poundbangin?i=FCYMN" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.poundbang.in/post/57539477</link><guid>http://blog.poundbang.in/post/57539477</guid><pubDate>Sun, 02 Nov 2008 14:53:54 +0800</pubDate></item><item><title>User Experience Design

Really liked this slide from a talk at...</title><description>&lt;img src="http://data.tumblr.com/flw03FWAIfgxothkBmflUpZao1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;User Experience Design&lt;/p&gt;

&lt;p&gt;Really liked this slide from a talk at the recent Web2.0ExpoEU’08&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/poundbangin?a=zPqVM"&gt;&lt;img src="http://feeds.feedburner.com/~f/poundbangin?i=zPqVM" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.poundbang.in/post/56199327</link><guid>http://blog.poundbang.in/post/56199327</guid><pubDate>Sat, 25 Oct 2008 06:22:59 +0800</pubDate></item><item><title>Writing and deploying non-trivial Erlang apps</title><description>&lt;p&gt;I recently wrote a twitter bot in Erlang which taught me a lot of things about writing Erlang programs. This was my first non-trivial Erlang program. Quite frankly it left me with a lot of new unanswered questions.&lt;/p&gt;

&lt;h2&gt;How much to OTPify?&lt;/h2&gt;

&lt;p&gt;It seems like when someone writes an Erlang app, they roughly go through the following steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use vanilla Erlang processes (hook things up with links and trap-exits).&lt;/li&gt;
&lt;li&gt;Switch to using gen_servers and supervisors.&lt;/li&gt;
&lt;li&gt;Package as an application (implement the &lt;code&gt;application&lt;/code&gt; behaviour and add a .app file).&lt;/li&gt;
&lt;li&gt;Create a release (add a .rel spec file; create a boot script).&lt;/li&gt;
&lt;li&gt;Installing a release.&lt;/li&gt;
&lt;li&gt;Support for upgrades.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Btw Mitchell Hashimoto has a great &lt;a href="http://spawnlink.com/"&gt;series of articles&lt;/a&gt; on this exact topic on his blog which is where I learnt most of this from. For my bot, I stopped with packaging it as an application and didn’t do the rest of the steps. I start the bot by doing &lt;code&gt;application:start(mybot)&lt;/code&gt;. I get to do &lt;code&gt;application:loaded_applications()&lt;/code&gt; in the shell to see if my app is running. When the time comes to deploy the bot, I tar up my code, scp that tarball to the production box, untar and just start the app in the shell. So far this works great for this bot. But how do folks do this in a real professional setting?&lt;/p&gt;

&lt;p&gt;There’s very little reading material right now on topics like this. I feel like someone needs to explain and show you exactly the benefits you get by incrementally OTPifying your app. I bought the early-access edition of Manning’s new OTP book but so far I didn’t find anything interesting in that book.&lt;/p&gt;

&lt;h2&gt;Deploying Erlang daemons&lt;/h2&gt;

&lt;p&gt;Armstrong’s book and a lot of other online tutorials show you how to start/stop simple Erlang programs from within an Erlang shell. But what they don’t tell you is how to run daemons non-interactively without using the shell and I only figured this out after searching for a while in the Erlang mailing list.&lt;/p&gt;

&lt;h3&gt;-noshell flag&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;-noshell&lt;/code&gt; flag prevents the Erlang shell from being started but the output from the program is still printed out to your console. &lt;code&gt;-s&lt;/code&gt; flag can be used to execute arbitrary MFAs. Supplied args will be sent to the function as atoms. If you want them to be sent as strings, use the &lt;code&gt;-run&lt;/code&gt; flag instead. More info: &lt;a href="http://www.erlang.org/doc/man/erl.html"&gt;man erl&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
%% supplied MFA should be a loop; otherwise it will stop immediately.
$erl -noshell -s Mod Func Arg -s init stop

%% use the -noinput flag; otherwise it enters the STOPPED state immediately.
$erl -noshell -noinput -s Mod Func Arg &gt; myprog.out &amp;
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;-detached flag&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;-detached&lt;/code&gt; flag starts an Erlang node completely detached from your console. This would mean you cannot see the output from the program unlike -noshell. But you can use the &lt;code&gt;-remsh&lt;/code&gt; flag to start a new Erlang shell and connect to the previously started &lt;code&gt;-detached&lt;/code&gt; node. More info: read Joe Armstrong’s &lt;a href="http://www.sics.se/~joe/tutorials/web_server/web_server.html"&gt;tutorial&lt;/a&gt; on this topic.&lt;/p&gt;

&lt;p&gt;Since you cannot see the output in the console, I replaced all my io:format/2 calls with appropriate error_logger calls and I setup multi-file rotating logs (as described in Armstrong’s book). But unfortunately when I used methods from the report browser (rb) module in order to parse the logs, the output seemed like it went to the &lt;code&gt;-detached&lt;/code&gt; node instead of the node I made the invocation from. One patch from the mailing list confirmed that this was a bug in the report browser module.&lt;/p&gt;

&lt;h3&gt;embedded mode - run_erl and to_erl&lt;/h3&gt;

&lt;p&gt;I finally settled on using the embedded mode. &lt;code&gt;run_erl&lt;/code&gt; takes in a $PIDDIR and a $LOGDIR, starts the Erlang program. Output is automatically logged to files in the $LOGDIR and you get log rotation for free. Supply &lt;code&gt;to_erl&lt;/code&gt; the pid, and you get back into the shell running the program. You can execute new commands from this shell. This is sorta like using the &lt;code&gt;screen&lt;/code&gt; command. More info: &lt;a href="http://www.erlang.org/doc/embedded/embedded_solaris.html#1.5.2"&gt;run_erl and to_erl&lt;/a&gt;. But this comes with its own caveat - if two users use &lt;code&gt;to_erl&lt;/code&gt; at the same time, then the behavior is not explained.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/poundbangin?a=vzhXM"&gt;&lt;img src="http://feeds.feedburner.com/~f/poundbangin?i=vzhXM" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.poundbang.in/post/55528718</link><guid>http://blog.poundbang.in/post/55528718</guid><pubDate>Tue, 21 Oct 2008 09:30:24 +0800</pubDate></item><item><title>Best of Velocity '08: Web Ops.</title><description>&lt;p&gt;I finally had time tonight to look at the presentations from &lt;a href="http://en.oreilly.com/velocity2008/public/schedule/proceedings"&gt;Velocity 08&lt;/a&gt;. If you’re interested, they’re all available on the &lt;a href="http://en.oreilly.com/velocity2008/public/schedule/proceedings"&gt;Oreilly conference website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Personally I thought the following two talks were awesome:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Capacity Management by John Allspaw (Flickr Ops Mgr) [&lt;a href="http://assets.en.oreilly.com/1/event/7/Capacity%20Management%20Presentation.ppt"&gt;PPT&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;Building an Automated Infrastructure by Adam Jacob [&lt;a href="http://assets.en.oreilly.com/1/event/7/Building%20an%20Automated%20Infrastructure%20Presentation.ppt"&gt;PPT&lt;/a&gt;]&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;John Allspaw has a new book titled “The Art of Capacity Planning” and there’s an interview of him on the &lt;a href="http://highscalability.com/how-succeed-capacity-planning-without-really-trying-interview-flickrs-john-allspaw-his-new-book"&gt;HighScalability blog&lt;/a&gt; mostly talking about his book. Key takeaway from his slides is “capacity planning” should be tied to application-level metrics (# of photos processed, etc) not just system-level metrics (# of busy Apache procs, disk-I/O).&lt;/p&gt;

&lt;p&gt;Adam Jacob’s talk is a comprehensive guide to what steps need to be taken in order to achieve a 100% automated infrastructure. He has a nice checklist in one of his slides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OS Install - Get an operating system up and on a network&lt;/li&gt;
&lt;li&gt;DNS - Give your new system a name&lt;/li&gt;
&lt;li&gt;Server Inventory - Have a place where you keep track of each system, and what it does (iClassify)&lt;/li&gt;
&lt;li&gt;Identity Management - Grant your users access and privileges to your new servers (LDAP)&lt;/li&gt;
&lt;li&gt;Version Control - Keep track of the changes to your application code, and ideally, your infrastructure too (SVN, git)&lt;/li&gt;
&lt;li&gt;Configuration Management - Keep track of how each system is configured, and update it when you make changes (Puppet)&lt;/li&gt;
&lt;li&gt;Monitoring - Watch your new systems for signs of trouble (Nagios)&lt;/li&gt;
&lt;li&gt;Trending - Make graphs and charts of important metrics, so that you can tell if the infrastructure is behaving well, and predict future capacity (Ganglia, Cacti)&lt;/li&gt;
&lt;li&gt;Application Deployment - Actually put your application on the infrastructure, and update it (Capistrano)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are a lots of new things I need to play with and explore - LDAP, DNS servers, Nagios, Ganglia, Puppet, Capistrano. Expect a lot of follow-up posts on these topics soon!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/poundbangin?a=u0tcM"&gt;&lt;img src="http://feeds.feedburner.com/~f/poundbangin?i=u0tcM" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.poundbang.in/post/53344407</link><guid>http://blog.poundbang.in/post/53344407</guid><pubDate>Tue, 07 Oct 2008 03:28:18 +0800</pubDate></item><item><title>"Tharman said Singapore’s banking system is safe amid strict central bank regulation and there..."</title><description>“Tharman said Singapore’s banking system is safe amid strict central bank regulation and there is no need to increase the minimum guarantee that insures deposits of up to S$20,000 ($13,800).”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="http://www.forbes.com/afxnewslimited/feeds/afx/2008/10/05/afx5510522.html"&gt;Singapore’s econ slowdown to last several quarters-FinMin - Forbes.com&lt;/a&gt;&lt;/em&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/poundbangin?a=W6FVM"&gt;&lt;img src="http://feeds.feedburner.com/~f/poundbangin?i=W6FVM" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.poundbang.in/post/53259918</link><guid>http://blog.poundbang.in/post/53259918</guid><pubDate>Mon, 06 Oct 2008 15:07:57 +0800</pubDate></item><item><title>NYTimes on the Valley's Green-Tech craze</title><description>&lt;a href="http://www.nytimes.com/2008/10/05/magazine/05Green-t.html?pagewanted=1&amp;_r=1"&gt;NYTimes on the Valley's Green-Tech craze&lt;/a&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/poundbangin?a=g11FM"&gt;&lt;img src="http://feeds.feedburner.com/~f/poundbangin?i=g11FM" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.poundbang.in/post/53184510</link><guid>http://blog.poundbang.in/post/53184510</guid><pubDate>Mon, 06 Oct 2008 01:27:47 +0800</pubDate></item><item><title>Nassim Taleb's latest essay: A map of the limits of statistics in the fourth quadrant</title><description>&lt;a href="http://www.edge.org/3rd_culture/taleb08/taleb08_index.html"&gt;Nassim Taleb's latest essay: A map of the limits of statistics in the fourth quadrant&lt;/a&gt;: Nice read. Extension of what he already wrote in his book, “The Black Swan”.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/poundbangin?a=8sT7L"&gt;&lt;img src="http://feeds.feedburner.com/~f/poundbangin?i=8sT7L" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.poundbang.in/post/52465701</link><guid>http://blog.poundbang.in/post/52465701</guid><pubDate>Wed, 01 Oct 2008 01:09:28 +0800</pubDate></item><item><title>"If your object is responding to a method/message, and crashes halfway through, any changes you made..."</title><description>“If your object is responding to a method/message, and crashes halfway through, any changes you made to instance variables are rolled back to before the method is invoked. Transactional semantics, provided by gen_server, should hopefully help alleviate the problem of object state being corrupted by calls which error out halfway through after modifying instance variables.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="http://tonyarcieri.org/articles/2008/09/24/reia-classes-and-objects"&gt;Reia: Classes and Objects! : The Art of Science&lt;/a&gt;&lt;/em&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/poundbangin?a=n17eL"&gt;&lt;img src="http://feeds.feedburner.com/~f/poundbangin?i=n17eL" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.poundbang.in/post/52215566</link><guid>http://blog.poundbang.in/post/52215566</guid><pubDate>Mon, 29 Sep 2008 11:18:14 +0800</pubDate></item><item><title>Getting stack trace from a running Python application - Stack Overflow</title><description>&lt;a href="http://stackoverflow.com/questions/132058/getting-stack-trace-from-a-running-python-application"&gt;Getting stack trace from a running Python application - Stack Overflow&lt;/a&gt;: This recipe is really cool. In order to debug a long-running Python process (if not you could just use pdb), you register a signal handler (for SIGUSR1). When you need to debug the process, send the process the signal. The signal handler then prints the stack trace, starts an interactive console (using the &lt;code&gt;code&lt;/code&gt; module) and populates the context with the globals() and locals() from the current stack frame. Pressing Ctrl-D will quit the interactive console, and the process will continue.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/poundbangin?a=GiJPL"&gt;&lt;img src="http://feeds.feedburner.com/~f/poundbangin?i=GiJPL" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.poundbang.in/post/51806295</link><guid>http://blog.poundbang.in/post/51806295</guid><pubDate>Fri, 26 Sep 2008 11:33:16 +0800</pubDate></item><item><title>Notes on Python's dict</title><description>&lt;a href="http://svn.python.org/view/python/trunk/Objects/dictnotes.txt?rev=53782&amp;view=markup"&gt;Notes on Python's dict&lt;/a&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/poundbangin?a=MZGdL"&gt;&lt;img src="http://feeds.feedburner.com/~f/poundbangin?i=MZGdL" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.poundbang.in/post/51481179</link><guid>http://blog.poundbang.in/post/51481179</guid><pubDate>Wed, 24 Sep 2008 10:15:36 +0800</pubDate></item><item><title>Proposal: user-friendly API for multi-database support - Django developers | Google Groups</title><description>&lt;a href="http://groups.google.com/group/django-developers/browse_thread/thread/09f0353fe0682b73"&gt;Proposal: user-friendly API for multi-database support - Django developers | Google Groups&lt;/a&gt;: Thanks to Cal Henderson’s talk at DjangoCon ‘08, things are moving fast wrt multiple DB support in Django, doing more frequent releases, etc.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/poundbangin?a=hZreL"&gt;&lt;img src="http://feeds.feedburner.com/~f/poundbangin?i=hZreL" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.poundbang.in/post/51183628</link><guid>http://blog.poundbang.in/post/51183628</guid><pubDate>Mon, 22 Sep 2008 12:22:16 +0800</pubDate></item><item><title>Death and Near-Death Experiences on Wall St. - NYTimes.com</title><description>&lt;a href="http://www.nytimes.com/2008/09/21/business/21exec.html?em"&gt;Death and Near-Death Experiences on Wall St. - NYTimes.com&lt;/a&gt;: Detailed recap of Lehman’s and Merrill Lynch’s CEOs long days at work over the last week.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/poundbangin?a=Mfm3L"&gt;&lt;img src="http://feeds.feedburner.com/~f/poundbangin?i=Mfm3L" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.poundbang.in/post/51128922</link><guid>http://blog.poundbang.in/post/51128922</guid><pubDate>Mon, 22 Sep 2008 02:20:41 +0800</pubDate></item><item><title>BearHugCamp For Those Who Missed It archives | metajack.im</title><description>&lt;a href="http://metajack.im/2008/09/13/bearhugcamp-for-those-who-missed-it/"&gt;BearHugCamp For Those Who Missed It archives | metajack.im&lt;/a&gt;: Nice summary of everything that was discussed at BearHugCamp (which apparently is where all the cool micro-blogging folks hang out these days). Lots of talk about XMPP PubSub, OpenMicroBlogging (OMB) spec, BOSH, etc.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/poundbangin?a=UyuQL"&gt;&lt;img src="http://feeds.feedburner.com/~f/poundbangin?i=UyuQL" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.poundbang.in/post/50357783</link><guid>http://blog.poundbang.in/post/50357783</guid><pubDate>Tue, 16 Sep 2008 15:17:45 +0800</pubDate></item><item><title>"By registering pownce:// and instructing the Service Provider to redirect the User to..."</title><description>“By registering pownce:// and instructing the Service Provider to redirect the User to pownce://access_token after authorization, the native Pownce application is automatically relaunched.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;p&gt;&lt;a href="http://immike.net/blog/2008/09/08/oauth-on-the-iphone/"&gt;OAuth on the iPhone - I’m Mike&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pownce does OAuth the right way on the iPhone but a lot of users don’t get it apparently. This blog post was discussed quite a bit at the Yahoo Open Hack Day 2008 in lieu of all the OAuth-enabled APIs that Yahoo is planning to launch very soon (I’ll do a separate post on my trip later).&lt;/p&gt;&lt;/em&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/poundbangin?a=DNOJL"&gt;&lt;img src="http://feeds.feedburner.com/~f/poundbangin?i=DNOJL" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.poundbang.in/post/50351921</link><guid>http://blog.poundbang.in/post/50351921</guid><pubDate>Tue, 16 Sep 2008 14:15:03 +0800</pubDate></item><item><title>Barcamp Bangkok 2 talk - How to date a Jap girl</title><description>&lt;a href="http://www.31o5.com/2008/08/how-to-date-a-japanese-girl-my-presentation-at-barcamp-bangkok2/"&gt;Barcamp Bangkok 2 talk - How to date a Jap girl&lt;/a&gt;: &lt;p&gt;31o5 is awesome…I loved the term “surface kindness” :)&lt;/p&gt;

&lt;p&gt;Found this via &lt;a href="http://www.preetamrai.com"&gt;Preetam&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/poundbangin?a=6vIglL"&gt;&lt;img src="http://feeds.feedburner.com/~f/poundbangin?i=6vIglL" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.poundbang.in/post/48675799</link><guid>http://blog.poundbang.in/post/48675799</guid><pubDate>Thu, 04 Sep 2008 14:05:16 +0800</pubDate></item><item><title>Using git with dropbox</title><description>&lt;a href="http://www.cimgf.com/2008/06/03/version-control-makes-you-a-better-programmer/"&gt;Using git with dropbox&lt;/a&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/poundbangin?a=nv15kK"&gt;&lt;img src="http://feeds.feedburner.com/~f/poundbangin?i=nv15kK" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.poundbang.in/post/48222089</link><guid>http://blog.poundbang.in/post/48222089</guid><pubDate>Mon, 01 Sep 2008 11:54:45 +0800</pubDate></item><item><title>"The futures market that serves as a price discovery mechanism for the physical oil market is open..."</title><description>“The futures market that serves as a price discovery mechanism for the physical oil market is open only to the elite. We trust these elites to determine the prices, but who are they? Who are the so-called experts? Hedge funds, oil companies, OPEC — the very people who profit from massive, consistent increases in prices. Notice a conflict of interest? All an oil supplier would have to do to raise prices is buy up futures contracts.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="http://www.time.com/time/printout/0,8816,1834888,00.html"&gt;Are Oil Prices Rigged? — Printout — TIME&lt;/a&gt;&lt;/em&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/poundbangin?a=xt20rK"&gt;&lt;img src="http://feeds.feedburner.com/~f/poundbangin?i=xt20rK" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.poundbang.in/post/47184167</link><guid>http://blog.poundbang.in/post/47184167</guid><pubDate>Sun, 24 Aug 2008 18:41:50 +0800</pubDate></item></channel></rss>
