<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;AkEMSHYzeSp7ImA9WhRQEkg.&quot;"><id>tag:blogger.com,1999:blog-5777290109635933739</id><updated>2011-12-07T17:21:29.881+05:30</updated><category term="pybox2d" /><category term="student2business" /><category term="processing" /><category term="ai" /><category term="news" /><category term="lenny.in" /><category term="movies" /><category term="bugs" /><category term="books" /><category term="memoization" /><category term="pygtk" /><category term="asus" /><category term="hosting" /><category term="wow" /><category term="old times" /><category term="lucknow" /><category term="msblaster" /><category term="sed" /><category term="pycon" /><category term="ASP.NET" /><category term="odd observations" /><category term="cocoa" /><category term="quine" /><category term="PSF" /><category term="audio" /><category term="summer" /><category term="analysis of algorithms" /><category term="doga" /><category term="spam" /><category term="sahana eden" /><category term="the flip side" /><category term="pyqt4" /><category term="c++" /><category term="web2hunter" /><category term="facebook" /><category term="reading" /><category term="techniques" /><category term="opencv" /><category term="mypaint" /><category term="chair" /><category term="pyobjc" /><category term="codechef" /><category term="karmic koala" /><category term="hci" /><category term="graphics" /><category term="FOSS" /><category term="rants" /><category term="scribbles" /><category term="django" /><category term="apt-offline" /><category term="ideas" /><category term="OSX" /><category term="XCode" /><category term="self promotion" /><category term="BST" /><category term="gsoc2010" /><category term="maemo" /><category term="bandwidth" /><category term="quotd" /><category term="ubuntu" /><category term="extdev" /><category term="w3ninjas.com" /><category term="talks" /><category term="google" /><category term="education" /><category term="DirectDraw" /><category term="domains" /><category term="Microsoft" /><category term="CodeFire" /><category term="SPOJ" /><category term="github" /><category term="dynamic programming" /><category term="hacking" /><category term="websockets" /><category term="HN" /><category term="public speaking" /><category term="bangalore" /><category term="hazenet" /><category term="webkit" /><category term="GW-BASIC" /><category term="word games" /><category term="urllib" /><category term="productivity" /><category term="cowsay" /><category term="India" /><category term="urllib2" /><category term="nincompoop" /><category term="#FAIL" /><category term="QBASIC" /><category term="artwork" /><category term="freebies" /><category term="gdb" /><category term="photoshop" /><category term="gtk" /><category term="ssh" /><category term="music" /><category term="bakchodi" /><category term="web services" /><category term="distributed computing" /><category term="open srouce. launchpad" /><category term="aldiko" /><category term="seo" /><category term="jquery" /><category term="eee pc" /><category term="hackfest" /><category term="allegro" /><category term="glade" /><category term="madetokill.com" /><category term="wireless" /><category term="Ruby" /><category term="ccp" /><category term="twitter" /><category term="netbook" /><category term="crossroad?" /><category term="gtk+" /><category term="lamp" /><category term="pygame" /><category term="pykata" /><category term="social media" /><category term="caching" /><category term="image processing" /><category term="pymunk" /><category term="meetup" /><category term="gtweetbar" /><category term="html5" /><category term="snow leopard" /><category term="meaningless" /><category term="shaastra" /><category term="art" /><category term="projects" /><category term="wtf" /><category term="microblogging" /><category term="firefox" /><category term="gwibber" /><category term="pymos" /><category term="Flash" /><category term="css" /><category term="delhi" /><category term="grep" /><category term="24camp" /><category term="Mac" /><category term="tips n tricks" /><category term="Sudoku" /><category term="advertisement" /><category term="vim" /><category term="MSDOS" /><category term="startups" /><category term="backup" /><category term="LINQ" /><category term="snippets" /><category term="dhd" /><category term="TV" /><category term="threads" /><category term="mysql" /><category term="observations" /><category term="lol" /><category term="vmware" /><category term="security" /><category term="css3" /><category term="experiments" /><category term="college" /><category term="utf-8" /><category term="nonsesnse" /><category term="school" /><category term="programming contest" /><category term="bash" /><category term="foo" /><category term="UI/UX" /><category term="game programming" /><category term="android" /><category term="GTA" /><category term="artrage" /><category term="fun" /><category term="ICPC" /><category term="biometrics" /><category term="scam" /><category term="crowdsourcing" /><category term="musings" /><category term="web design" /><category term="recursion" /><category term="Family Guy" /><category term="javascript" /><category term="debugging" /><category term="timepass" /><category term="code-reuse" /><category term="comics" /><category term="mooshak" /><category term="XUL" /><category term="adbrite" /><category term="BeleniX" /><category term="The Simpsons" /><category term="gnome" /><category term="augumented reality" /><category term="effects" /><category term="python" /><category term="english classes" /><category term="Emgu CV" /><category term="iLike It" /><category term="vps" /><category term="friends" /><category term="linux" /><category term="idea" /><category term="research" /><category term="php" /><category term="ajax" /><category term="programming" /><category term="politics" /><category term="web2py" /><category term="open srouce" /><category term="/dev/random" /><category term="VisualBasic" /><category term="Google App Engine" /><category term="life" /><category term="C#" /><category term="shorties" /><category term="pacman" /><category term="Swish" /><category term="captcha" /><category term="web2.0" /><category term="directi" /><category term="hacks" /><category term="archlinux" /><category term="bakabot" /><category term="fail" /><category term="opensolaris" /><category term="sahanapy" /><category term="techfest" /><category term="Space Lock" /><category term="msl" /><title>IdeaMonk</title><subtitle type="html">thoughts, ideas, code, + loads of other garbage</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://ideamonk.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://ideamonk.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Abhishek Mishra</name><uri>http://www.blogger.com/profile/12093818682511281896</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://3.bp.blogspot.com/_Jg5VhRmvVtY/SRC9s87p_uI/AAAAAAAAATQ/-OCGoybkFLo/S220/ideamonk_big.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>211</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Ideamonk" /><feedburner:info uri="ideamonk" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>Ideamonk</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FIdeamonk" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FIdeamonk" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FIdeamonk" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/Ideamonk" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FIdeamonk" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FIdeamonk" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FIdeamonk" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://my.feedlounge.com/external/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2FIdeamonk" src="http://static.feedlounge.com/buttons/subscribe_0.gif">Subscribe with FeedLounge</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FIdeamonk" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2FIdeamonk" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><entry gd:etag="W/&quot;C08HSHY4fSp7ImA9WhZQGE4.&quot;"><id>tag:blogger.com,1999:blog-5777290109635933739.post-8746995336688995500</id><published>2011-01-11T19:06:00.002+05:30</published><updated>2011-04-26T21:00:39.835+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-26T21:00:39.835+05:30</app:edited><title>Shifting time...</title><content type="html">I’m discontinuing my old blogs. The wordpress one on blog.ideamonk.com just didn’t appeal much to me. The blogger one on ideamonk.blogspot.com has been an old mess. Most of the posts were half-baked, outdated, and of less meaning.&lt;br /&gt;&lt;br /&gt;So from now on, I'd be posting on &lt;a href="http://blog.ideamonk.com"&gt;http://blog.ideamonk.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;KTHXBAI&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5777290109635933739-8746995336688995500?l=ideamonk.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=no593jZv54E:Won1AY5XZr4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=no593jZv54E:Won1AY5XZr4:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=no593jZv54E:Won1AY5XZr4:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=no593jZv54E:Won1AY5XZr4:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=no593jZv54E:Won1AY5XZr4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=no593jZv54E:Won1AY5XZr4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=no593jZv54E:Won1AY5XZr4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=no593jZv54E:Won1AY5XZr4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=no593jZv54E:Won1AY5XZr4:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=no593jZv54E:Won1AY5XZr4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=no593jZv54E:Won1AY5XZr4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=no593jZv54E:Won1AY5XZr4:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/no593jZv54E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ideamonk.blogspot.com/feeds/8746995336688995500/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ideamonk.blogspot.com/2011/01/shifting-time.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/8746995336688995500?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/8746995336688995500?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/no593jZv54E/shifting-time.html" title="Shifting time..." /><author><name>Abhishek Mishra</name><uri>http://www.blogger.com/profile/12093818682511281896</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://3.bp.blogspot.com/_Jg5VhRmvVtY/SRC9s87p_uI/AAAAAAAAATQ/-OCGoybkFLo/S220/ideamonk_big.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ideamonk.blogspot.com/2011/01/shifting-time.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MASX0yfCp7ImA9WhZQGE4.&quot;"><id>tag:blogger.com,1999:blog-5777290109635933739.post-4091661151078108443</id><published>2011-01-05T16:18:00.000+05:30</published><updated>2011-04-26T20:54:08.394+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-26T20:54:08.394+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="talks" /><category scheme="http://www.blogger.com/atom/ns#" term="pycon" /><category scheme="http://www.blogger.com/atom/ns#" term="public speaking" /><title>Scraping in Python for fun and profit</title><content type="html">Missed out on this one lately.&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://blip.tv/play/AYKV6k0C" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="390" width="480"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5777290109635933739-4091661151078108443?l=ideamonk.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=ex8TfEFdUR4:KRKZ6Zz5GpU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=ex8TfEFdUR4:KRKZ6Zz5GpU:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=ex8TfEFdUR4:KRKZ6Zz5GpU:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=ex8TfEFdUR4:KRKZ6Zz5GpU:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=ex8TfEFdUR4:KRKZ6Zz5GpU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=ex8TfEFdUR4:KRKZ6Zz5GpU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=ex8TfEFdUR4:KRKZ6Zz5GpU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=ex8TfEFdUR4:KRKZ6Zz5GpU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=ex8TfEFdUR4:KRKZ6Zz5GpU:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=ex8TfEFdUR4:KRKZ6Zz5GpU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=ex8TfEFdUR4:KRKZ6Zz5GpU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=ex8TfEFdUR4:KRKZ6Zz5GpU:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/ex8TfEFdUR4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ideamonk.blogspot.com/feeds/4091661151078108443/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ideamonk.blogspot.com/2011/02/scraping-in-python-for-fun-and-profit.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/4091661151078108443?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/4091661151078108443?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/ex8TfEFdUR4/scraping-in-python-for-fun-and-profit.html" title="Scraping in Python for fun and profit" /><author><name>Abhishek Mishra</name><uri>http://www.blogger.com/profile/12093818682511281896</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://3.bp.blogspot.com/_Jg5VhRmvVtY/SRC9s87p_uI/AAAAAAAAATQ/-OCGoybkFLo/S220/ideamonk_big.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ideamonk.blogspot.com/2011/02/scraping-in-python-for-fun-and-profit.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYNRX05eyp7ImA9WhZQGE4.&quot;"><id>tag:blogger.com,1999:blog-5777290109635933739.post-8346770776575313110</id><published>2010-12-30T21:05:00.000+05:30</published><updated>2011-04-26T21:06:34.323+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-26T21:06:34.323+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="hacks" /><category scheme="http://www.blogger.com/atom/ns#" term="html5" /><category scheme="http://www.blogger.com/atom/ns#" term="audio" /><title>AudioHover 0.1 - Create audible hover effects in html5 quickly</title><content type="html">&lt;iframe src="http://player.vimeo.com/video/16337020" frameborder="0" height="300" width="400"&gt;&lt;/iframe&gt;&lt;p&gt;&lt;a href="http://vimeo.com/16337020"&gt;AudioHover 0.1 walkthrough&lt;/a&gt; from &lt;a href="http://vimeo.com/user893770"&gt;Abhishek Mishra&lt;/a&gt; on &lt;a href="http://vimeo.com/"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;Just recorded a screencast of this weekend's hack. &lt;a href="https://github.com/ideamonk/audio-hover"&gt;AudioHover&lt;/a&gt; is a jQuery plugin that makes it pretty easy to add audible hover effects to any element in html5.&lt;br /&gt;&lt;br /&gt;Grab the source &lt;a href="https://github.com/ideamonk/audio-hover"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Its sort of a gift to my friend &lt;a href="http://ankkit.com/"&gt;Ankkit&lt;/a&gt;, who is a very creative artist from Shrishti Arts School.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5777290109635933739-8346770776575313110?l=ideamonk.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=kggAZyGQF7g:sC9uskxF5Oc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=kggAZyGQF7g:sC9uskxF5Oc:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=kggAZyGQF7g:sC9uskxF5Oc:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=kggAZyGQF7g:sC9uskxF5Oc:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=kggAZyGQF7g:sC9uskxF5Oc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=kggAZyGQF7g:sC9uskxF5Oc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=kggAZyGQF7g:sC9uskxF5Oc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=kggAZyGQF7g:sC9uskxF5Oc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=kggAZyGQF7g:sC9uskxF5Oc:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=kggAZyGQF7g:sC9uskxF5Oc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=kggAZyGQF7g:sC9uskxF5Oc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=kggAZyGQF7g:sC9uskxF5Oc:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/kggAZyGQF7g" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ideamonk.blogspot.com/feeds/8346770776575313110/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ideamonk.blogspot.com/2010/12/audiohover-01-create-audible-hover.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/8346770776575313110?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/8346770776575313110?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/kggAZyGQF7g/audiohover-01-create-audible-hover.html" title="AudioHover 0.1 - Create audible hover effects in html5 quickly" /><author><name>Abhishek Mishra</name><uri>http://www.blogger.com/profile/12093818682511281896</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://3.bp.blogspot.com/_Jg5VhRmvVtY/SRC9s87p_uI/AAAAAAAAATQ/-OCGoybkFLo/S220/ideamonk_big.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ideamonk.blogspot.com/2010/12/audiohover-01-create-audible-hover.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIMQns-fip7ImA9Wx9QEk8.&quot;"><id>tag:blogger.com,1999:blog-5777290109635933739.post-6759455737574378875</id><published>2010-12-25T10:11:00.000+05:30</published><updated>2010-12-25T03:39:43.556+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-25T03:39:43.556+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="observations" /><category scheme="http://www.blogger.com/atom/ns#" term="wtf" /><title>Alarming Expenses</title><content type="html">Too bad, so far, excluding my $182 Amazon AWS misfortune/loot/getting fucked for running a 1.5gig instance with 20gb ebs for some 48+ hrs doing nothing. Excluding anything before Dec 4, so far 11550 has drained out till 24th of Dec. Thats like Rs. 577 out of my pockets per day.&lt;div&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt;&gt;&gt; for stuff in zip(too,goo):&lt;br /&gt;...     print "%2d :" % stuff[0],&lt;br /&gt;...     for x in xrange(1, -1*int(stuff[1])):&lt;br /&gt;...             print "#",&lt;br /&gt;...     print&lt;br /&gt;...&lt;br /&gt;24 : # # # # # # # # #&lt;br /&gt;23 : # # # # # # # # # # # # # # # # #&lt;br /&gt;22 : # # # # # # # # # # #&lt;br /&gt;21 : # # # # # # # # # # # # # # # # # # # # #&lt;br /&gt;20 : # # # # # # # # # #&lt;br /&gt;19 : # # # # # # # # # # # # # # # # # # # # #&lt;br /&gt;19 : # # # # # # # # # # # # # #&lt;br /&gt;18 : # # # # # # # # # # # # # #&lt;br /&gt;18 : # # # # # # # # # #&lt;br /&gt;16 : # # # # # # # # # #&lt;br /&gt;15 :&lt;br /&gt;14 :&lt;br /&gt;13 :&lt;br /&gt;12 :&lt;br /&gt;11 :&lt;br /&gt;10 : # # # # # # # # # #&lt;br /&gt;9 : # # # # # # # # # # # # #&lt;br /&gt;8 : # # # # # # # # # # # # # # # #&lt;br /&gt;7 :&lt;br /&gt;6 : # # # # # # # # # #&lt;br /&gt;5 : # # # # # # # # # # #&lt;br /&gt;5 : # # #&lt;br /&gt;5 : # # # # # # # # # # # # #&lt;br /&gt;^ date              expense&lt;br /&gt;&lt;/pre&gt;Luckily from 11 to 15 I didn't have to withdraw much. Sadly the Rs. 1000 I got on 22nd got over very soon by 24th. Around 9k out from my gsoc card around this period, while about 2k from the other account. Paying for my broadband bill I'd be -700 pretty soon. Worst part is this figure is an estimate from withdrawals from my cards, while occasionally I've been taking ~250 / day from home too, mostly for transport. Sucks!!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Crazy winter this has been, looking back at it I'm like WTF! Why is it turning into a zero-sum game. Damn, I'm hungry too now, and don't really wish to waste this weekend with any half-minded work.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5777290109635933739-6759455737574378875?l=ideamonk.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=3NzLwxgOaME:laKQGTOQ3Gg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=3NzLwxgOaME:laKQGTOQ3Gg:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=3NzLwxgOaME:laKQGTOQ3Gg:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=3NzLwxgOaME:laKQGTOQ3Gg:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=3NzLwxgOaME:laKQGTOQ3Gg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=3NzLwxgOaME:laKQGTOQ3Gg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=3NzLwxgOaME:laKQGTOQ3Gg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=3NzLwxgOaME:laKQGTOQ3Gg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=3NzLwxgOaME:laKQGTOQ3Gg:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=3NzLwxgOaME:laKQGTOQ3Gg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=3NzLwxgOaME:laKQGTOQ3Gg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=3NzLwxgOaME:laKQGTOQ3Gg:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/3NzLwxgOaME" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/6759455737574378875?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/6759455737574378875?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/3NzLwxgOaME/alarming-expenses.html" title="Alarming Expenses" /><author><name>Abhishek Mishra</name><uri>http://www.blogger.com/profile/12093818682511281896</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://3.bp.blogspot.com/_Jg5VhRmvVtY/SRC9s87p_uI/AAAAAAAAATQ/-OCGoybkFLo/S220/ideamonk_big.jpg" /></author><feedburner:origLink>http://ideamonk.blogspot.com/2010/12/alarming-expenses.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkAMRXcyfip7ImA9WhZQEUg.&quot;"><id>tag:blogger.com,1999:blog-5777290109635933739.post-5894149787856783603</id><published>2010-12-23T22:26:00.000+05:30</published><updated>2011-04-19T00:56:24.996+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-19T00:56:24.996+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="dhd" /><category scheme="http://www.blogger.com/atom/ns#" term="aldiko" /><category scheme="http://www.blogger.com/atom/ns#" term="books" /><category scheme="http://www.blogger.com/atom/ns#" term="reading" /><category scheme="http://www.blogger.com/atom/ns#" term="android" /><title>Books on HTC Desire HD</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-Kg4sCy4tt1o/TYomWUJoC2I/AAAAAAAABT4/cV1sgcH1-bQ/s1600/n84430.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 130px; height: 200px;" src="http://2.bp.blogspot.com/-Kg4sCy4tt1o/TYomWUJoC2I/AAAAAAAABT4/cV1sgcH1-bQ/s200/n84430.jpg" alt="" id="BLOGGER_PHOTO_ID_5587320452514581346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Just finished reading a Perry Mason after long long time.&lt;br /&gt;&lt;br /&gt;Reading books on HTC Desire HD has not at all been a bad experience.&lt;br /&gt;&lt;br /&gt;Thanks to Aldiko, the perfect ebook reader for Android.&lt;br /&gt;&lt;br /&gt;Eagerly waiting to catch on some Agatha Christies soon.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Some quick 'n dirty review point &amp;amp; scrapy snaps of Aldiko -&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-uKTzRSFCgo4/TYom_7-hHpI/AAAAAAAABUA/JDWdq0dXP4Q/s1600/Photo%2Bon%2B2011-03-23%2Bat%2B22.18.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 108px;" src="http://1.bp.blogspot.com/-uKTzRSFCgo4/TYom_7-hHpI/AAAAAAAABUA/JDWdq0dXP4Q/s200/Photo%2Bon%2B2011-03-23%2Bat%2B22.18.jpg" alt="" id="BLOGGER_PHOTO_ID_5587321167580044946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The Wooden finish looks professional!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-jqN80b6eFaM/TYonVLwZOkI/AAAAAAAABUQ/imFKp-eqsOc/s1600/Photo%2Bon%2B2011-03-23%2Bat%2B22.21%2B%25232.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 144px; height: 200px;" src="http://2.bp.blogspot.com/-jqN80b6eFaM/TYonVLwZOkI/AAAAAAAABUQ/imFKp-eqsOc/s200/Photo%2Bon%2B2011-03-23%2Bat%2B22.21%2B%25232.jpg" alt="" id="BLOGGER_PHOTO_ID_5587321532593027650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I &amp;lt;3 the night mode, pretty comfortable to eyes in day or night. Common settings are just a tap away.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-nAdNF-c30Vs/TYonVdDMUfI/AAAAAAAABUY/ZUup9b0BcFA/s1600/Photo%2Bon%2B2011-03-23%2Bat%2B22.21%2B%25233.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 128px; height: 200px;" src="http://2.bp.blogspot.com/-nAdNF-c30Vs/TYonVdDMUfI/AAAAAAAABUY/ZUup9b0BcFA/s200/Photo%2Bon%2B2011-03-23%2Bat%2B22.21%2B%25233.jpg" alt="" id="BLOGGER_PHOTO_ID_5587321537235276274" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Moreover commonly done tasks are pretty quick to reach&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-UUipYm6askw/TYonVEQZ43I/AAAAAAAABUI/IOu-8mcr8Fc/s1600/Photo%2Bon%2B2011-03-23%2Bat%2B22.19%2B%25232.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 115px; height: 200px;" src="http://2.bp.blogspot.com/-UUipYm6askw/TYonVEQZ43I/AAAAAAAABUI/IOu-8mcr8Fc/s200/Photo%2Bon%2B2011-03-23%2Bat%2B22.19%2B%25232.jpg" alt="" id="BLOGGER_PHOTO_ID_5587321530579805042" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The awesome shelf view, the in book dictionary is okay-ish, search is quite good.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-OGAQvom15MU/TYonVow8gcI/AAAAAAAABUg/NFW8UM-jZTs/s1600/Photo%2Bon%2B2011-03-23%2Bat%2B22.22.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 118px; height: 200px;" src="http://3.bp.blogspot.com/-OGAQvom15MU/TYonVow8gcI/AAAAAAAABUg/NFW8UM-jZTs/s200/Photo%2Bon%2B2011-03-23%2Bat%2B22.22.jpg" alt="" id="BLOGGER_PHOTO_ID_5587321540379967938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;And a wide array of settings&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;So, suit yourself :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5777290109635933739-5894149787856783603?l=ideamonk.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=z4MtNR-y7go:r1vIh7nzSFk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=z4MtNR-y7go:r1vIh7nzSFk:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=z4MtNR-y7go:r1vIh7nzSFk:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=z4MtNR-y7go:r1vIh7nzSFk:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=z4MtNR-y7go:r1vIh7nzSFk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=z4MtNR-y7go:r1vIh7nzSFk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=z4MtNR-y7go:r1vIh7nzSFk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=z4MtNR-y7go:r1vIh7nzSFk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=z4MtNR-y7go:r1vIh7nzSFk:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=z4MtNR-y7go:r1vIh7nzSFk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=z4MtNR-y7go:r1vIh7nzSFk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=z4MtNR-y7go:r1vIh7nzSFk:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/z4MtNR-y7go" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ideamonk.blogspot.com/feeds/5894149787856783603/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ideamonk.blogspot.com/2011/03/books-on-htc-desire-hd.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/5894149787856783603?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/5894149787856783603?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/z4MtNR-y7go/books-on-htc-desire-hd.html" title="Books on HTC Desire HD" /><author><name>Abhishek Mishra</name><uri>http://www.blogger.com/profile/12093818682511281896</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://3.bp.blogspot.com/_Jg5VhRmvVtY/SRC9s87p_uI/AAAAAAAAATQ/-OCGoybkFLo/S220/ideamonk_big.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-Kg4sCy4tt1o/TYomWUJoC2I/AAAAAAAABT4/cV1sgcH1-bQ/s72-c/n84430.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://ideamonk.blogspot.com/2011/03/books-on-htc-desire-hd.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MCSHs4cSp7ImA9WhZQGE4.&quot;"><id>tag:blogger.com,1999:blog-5777290109635933739.post-2709950861042432809</id><published>2010-12-12T21:17:00.000+05:30</published><updated>2011-04-26T20:54:29.539+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-26T20:54:29.539+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="life" /><title>Getting back to 2001?!</title><content type="html">Feeling great, staying 24x7 at office, spending more time deep-reading alone at night when rest of the folks go away, rather than just roaming across 100s of headlines of HN. Now that the load of college has dropped by about 1/5th, I'm feeling like back in 2001 again :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5777290109635933739-2709950861042432809?l=ideamonk.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=C6mcBnVMRo8:qyvAEgN3tJ0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=C6mcBnVMRo8:qyvAEgN3tJ0:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=C6mcBnVMRo8:qyvAEgN3tJ0:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=C6mcBnVMRo8:qyvAEgN3tJ0:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=C6mcBnVMRo8:qyvAEgN3tJ0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=C6mcBnVMRo8:qyvAEgN3tJ0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=C6mcBnVMRo8:qyvAEgN3tJ0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=C6mcBnVMRo8:qyvAEgN3tJ0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=C6mcBnVMRo8:qyvAEgN3tJ0:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=C6mcBnVMRo8:qyvAEgN3tJ0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=C6mcBnVMRo8:qyvAEgN3tJ0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=C6mcBnVMRo8:qyvAEgN3tJ0:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/C6mcBnVMRo8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ideamonk.blogspot.com/feeds/2709950861042432809/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ideamonk.blogspot.com/2011/01/getting-back-to-2001.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/2709950861042432809?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/2709950861042432809?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/C6mcBnVMRo8/getting-back-to-2001.html" title="Getting back to 2001?!" /><author><name>Abhishek Mishra</name><uri>http://www.blogger.com/profile/12093818682511281896</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://3.bp.blogspot.com/_Jg5VhRmvVtY/SRC9s87p_uI/AAAAAAAAATQ/-OCGoybkFLo/S220/ideamonk_big.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ideamonk.blogspot.com/2011/01/getting-back-to-2001.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQBRHs_fSp7ImA9WhZQGE4.&quot;"><id>tag:blogger.com,1999:blog-5777290109635933739.post-387904381372331408</id><published>2010-10-24T21:08:00.000+05:30</published><updated>2011-04-26T21:09:15.545+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-26T21:09:15.545+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Ruby" /><title>Q1 of BORQ - Mad Libs</title><content type="html">My solution for Mad Libs, I need to practice some more regular expression. &lt;a href="http://www.rubular.com/"&gt;Rubular&lt;/a&gt; is a great help for people like me. RegExp is in a more free-form in Ruby compared to python, which is quite good for quick experiments on irb.&lt;br /&gt;&lt;script src="http://gist.github.com/643663.js?file=BORQ_1_MadLibs.rb"&gt;&lt;/script&gt;&lt;br /&gt;I wish I could even get rid of the "if"s and make it sexier. Can't think more on this one right now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5777290109635933739-387904381372331408?l=ideamonk.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=PKXq_VHgDG0:qYIuG3Ni33I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=PKXq_VHgDG0:qYIuG3Ni33I:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=PKXq_VHgDG0:qYIuG3Ni33I:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=PKXq_VHgDG0:qYIuG3Ni33I:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=PKXq_VHgDG0:qYIuG3Ni33I:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=PKXq_VHgDG0:qYIuG3Ni33I:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=PKXq_VHgDG0:qYIuG3Ni33I:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=PKXq_VHgDG0:qYIuG3Ni33I:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=PKXq_VHgDG0:qYIuG3Ni33I:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=PKXq_VHgDG0:qYIuG3Ni33I:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=PKXq_VHgDG0:qYIuG3Ni33I:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=PKXq_VHgDG0:qYIuG3Ni33I:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/PKXq_VHgDG0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ideamonk.blogspot.com/feeds/387904381372331408/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ideamonk.blogspot.com/2010/10/q1-of-borq-mad-libs.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/387904381372331408?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/387904381372331408?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/PKXq_VHgDG0/q1-of-borq-mad-libs.html" title="Q1 of BORQ - Mad Libs" /><author><name>Abhishek Mishra</name><uri>http://www.blogger.com/profile/12093818682511281896</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://3.bp.blogspot.com/_Jg5VhRmvVtY/SRC9s87p_uI/AAAAAAAAATQ/-OCGoybkFLo/S220/ideamonk_big.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ideamonk.blogspot.com/2010/10/q1-of-borq-mad-libs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUCRn89fCp7ImA9WhZQGE4.&quot;"><id>tag:blogger.com,1999:blog-5777290109635933739.post-4428617315111024296</id><published>2010-10-24T21:06:00.000+05:30</published><updated>2011-04-26T21:07:47.164+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-26T21:07:47.164+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Ruby" /><title>Q2. of BORQ - LCD display</title><content type="html">This is an old one, pretty famously seen on uva, etc. I found &lt;a href="http://choice.rubyforge.org/"&gt;Choice&lt;/a&gt; to be better than OptParse, as said in Choice docs - it like writing poems for command-line parsing :D&lt;br /&gt;&lt;script src="http://gist.github.com/643917.js?file=q2_borq_lcd.rb"&gt;&lt;/script&gt;&lt;br /&gt;Initially I was doing a string[j].chr.to_i which seemed like a required bullshit, I wish it could've been string[j].to_i but string[i] gives back a decimal. Now one could talk about the C style '5'-'0' conversion to number, but then, that machine dependent (think ascii, ebcdic, etc). The slightly more ruby-ish way - string[j..j].to_i :)&lt;br /&gt;&lt;br /&gt;Here's my number -&lt;br /&gt;&lt;pre&gt;abhishekmishra@mbp [~/code/BORQ]&amp;gt; ruby q2_lcd_numbers.rb -s 3 9535009187&lt;br /&gt; ---   ---   ---   ---   ---   ---   ---         ---   ---&lt;br /&gt;|   | |         | |     |   | |   | |   |     | |   |     |&lt;br /&gt;|   | |         | |     |   | |   | |   |     | |   |     |&lt;br /&gt;|   | |         | |     |   | |   | |   |     | |   |     |&lt;br /&gt; ---   ---   ---   ---               ---         ---&lt;br /&gt;    |     |     |     | |   | |   |     |     | |   |     |&lt;br /&gt;    |     |     |     | |   | |   |     |     | |   |     |&lt;br /&gt;    |     |     |     | |   | |   |     |     | |   |     |&lt;br /&gt;       ---   ---   ---   ---   ---               ---&lt;/pre&gt;&lt;br /&gt;Surprisingly the PyMos core code is 180 lines while this reaches upto 108. Python =&amp;gt; more results per line? The absence of 'end' in python is one big reason for this. Besides I dont find my ruby code so ruby-ish at this stage.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5777290109635933739-4428617315111024296?l=ideamonk.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=uQ4QZD6hHkg:SWTqpIJ83Kw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=uQ4QZD6hHkg:SWTqpIJ83Kw:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=uQ4QZD6hHkg:SWTqpIJ83Kw:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=uQ4QZD6hHkg:SWTqpIJ83Kw:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=uQ4QZD6hHkg:SWTqpIJ83Kw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=uQ4QZD6hHkg:SWTqpIJ83Kw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=uQ4QZD6hHkg:SWTqpIJ83Kw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=uQ4QZD6hHkg:SWTqpIJ83Kw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=uQ4QZD6hHkg:SWTqpIJ83Kw:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=uQ4QZD6hHkg:SWTqpIJ83Kw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=uQ4QZD6hHkg:SWTqpIJ83Kw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=uQ4QZD6hHkg:SWTqpIJ83Kw:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/uQ4QZD6hHkg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ideamonk.blogspot.com/feeds/4428617315111024296/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ideamonk.blogspot.com/2010/10/q2-of-borq-lcd-display.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/4428617315111024296?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/4428617315111024296?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/uQ4QZD6hHkg/q2-of-borq-lcd-display.html" title="Q2. of BORQ - LCD display" /><author><name>Abhishek Mishra</name><uri>http://www.blogger.com/profile/12093818682511281896</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://3.bp.blogspot.com/_Jg5VhRmvVtY/SRC9s87p_uI/AAAAAAAAATQ/-OCGoybkFLo/S220/ideamonk_big.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ideamonk.blogspot.com/2010/10/q2-of-borq-lcd-display.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMEQ30yeip7ImA9WhZQGE4.&quot;"><id>tag:blogger.com,1999:blog-5777290109635933739.post-2081329676339114153</id><published>2010-10-20T21:09:00.000+05:30</published><updated>2011-04-26T21:10:02.392+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-26T21:10:02.392+05:30</app:edited><title>aws, sidework, etc</title><content type="html">Just tried out AWS over a client's account, quite impressive at the ease of launching and terminating EC2 instances. Unhappy to see a Debian based AMI image under quick starts. Cloud billing always scares me :D all for its X factor on usage monitoring, besides who knows who could just plunder your instances with bogus requests, ready to take the risk? (even providers could!)&lt;br /&gt;&lt;br /&gt;Good to see EBS volumes, the next thing to try would be RDS, we've to decide over a MySQL instance on EC2 VS Amazon RDS + EC2. Besides the compatibility of RDS + Django. HN &lt;a href="http://news.ycombinator.com/item?id=905790"&gt;has something&lt;/a&gt; for me.&lt;br /&gt;&lt;br /&gt;Pretty happy to work for my current client, all because I could sense great deal of transparency, openness and honesty in our 3 hr meeting, and quite a comfortable one compared to a previous few where others failed to conceal. Time to brush up some django :)&lt;br /&gt;&lt;br /&gt;Another interesting thing was to see SAP in action. MAWN! I generally dislike these heavy enterprise apps, slow, huge, and ugly. Its a mix of closeness and legacy they thrive on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5777290109635933739-2081329676339114153?l=ideamonk.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=OjdEb_HziDw:7iE2nadam2Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=OjdEb_HziDw:7iE2nadam2Q:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=OjdEb_HziDw:7iE2nadam2Q:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=OjdEb_HziDw:7iE2nadam2Q:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=OjdEb_HziDw:7iE2nadam2Q:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=OjdEb_HziDw:7iE2nadam2Q:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=OjdEb_HziDw:7iE2nadam2Q:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=OjdEb_HziDw:7iE2nadam2Q:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=OjdEb_HziDw:7iE2nadam2Q:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=OjdEb_HziDw:7iE2nadam2Q:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=OjdEb_HziDw:7iE2nadam2Q:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=OjdEb_HziDw:7iE2nadam2Q:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/OjdEb_HziDw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ideamonk.blogspot.com/feeds/2081329676339114153/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ideamonk.blogspot.com/2010/10/aws-sidework-etc.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/2081329676339114153?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/2081329676339114153?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/OjdEb_HziDw/aws-sidework-etc.html" title="aws, sidework, etc" /><author><name>Abhishek Mishra</name><uri>http://www.blogger.com/profile/12093818682511281896</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://3.bp.blogspot.com/_Jg5VhRmvVtY/SRC9s87p_uI/AAAAAAAAATQ/-OCGoybkFLo/S220/ideamonk_big.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ideamonk.blogspot.com/2010/10/aws-sidework-etc.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQGQXw8eCp7ImA9WhZQGE4.&quot;"><id>tag:blogger.com,1999:blog-5777290109635933739.post-8399190066962025595</id><published>2010-10-20T21:08:00.000+05:30</published><updated>2011-04-26T21:08:40.270+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-26T21:08:40.270+05:30</app:edited><title>Blah!</title><content type="html">I believe, to an extent of obviousness that fun experiments and commercial value might not always go together, at least in the same time frame or one is confused about the purpose behind such efforts. For in the long run the former does add to the profit margins, but in quite an invisible way.&lt;br /&gt;&lt;br /&gt;Like thunder from the clouds, the bolts jump onto paths undecided, branching into thinner ends, but at last one manages to touch some significant stones, creativity too is one such tremendously energetic set of efforts, of which the one that might click is written in the future, for now one must indulge in the fun.&lt;br /&gt;&lt;br /&gt;But anyways, they do have to be clear about what hat do I wear before they offer me one, or else isn't any unclear foo-bar-ish discussion a waste? And that need not be concealed in implications and in vague words of higher order, for the return shall be the same. Some clarity! anyone?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5777290109635933739-8399190066962025595?l=ideamonk.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=8ixQA8ptvX8:fQQreQdj0Fg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=8ixQA8ptvX8:fQQreQdj0Fg:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=8ixQA8ptvX8:fQQreQdj0Fg:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=8ixQA8ptvX8:fQQreQdj0Fg:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=8ixQA8ptvX8:fQQreQdj0Fg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=8ixQA8ptvX8:fQQreQdj0Fg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=8ixQA8ptvX8:fQQreQdj0Fg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=8ixQA8ptvX8:fQQreQdj0Fg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=8ixQA8ptvX8:fQQreQdj0Fg:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=8ixQA8ptvX8:fQQreQdj0Fg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=8ixQA8ptvX8:fQQreQdj0Fg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=8ixQA8ptvX8:fQQreQdj0Fg:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/8ixQA8ptvX8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ideamonk.blogspot.com/feeds/8399190066962025595/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ideamonk.blogspot.com/2010/10/blah.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/8399190066962025595?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/8399190066962025595?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/8ixQA8ptvX8/blah.html" title="Blah!" /><author><name>Abhishek Mishra</name><uri>http://www.blogger.com/profile/12093818682511281896</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://3.bp.blogspot.com/_Jg5VhRmvVtY/SRC9s87p_uI/AAAAAAAAATQ/-OCGoybkFLo/S220/ideamonk_big.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ideamonk.blogspot.com/2010/10/blah.html</feedburner:origLink></entry><entry><title type="text">Links for 2010-12-04 [del.icio.us]</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/ruMOxRTtUM8/ideamonk" /><updated>2010-12-05T00:00:00-08:00</updated><id>http://del.icio.us/ideamonk#2010-12-04</id><content type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://toucherry.appspot.com/"&gt;Usability survey for touch based drawing (html5/canvas)&lt;/a&gt;&lt;br/&gt;
Fire it up on your iPhone &amp;amp; iPads to participate in a simple 4 step usability experiment.&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/ruMOxRTtUM8" height="1" width="1"/&gt;</content><feedburner:origLink>http://del.icio.us/ideamonk#2010-12-04</feedburner:origLink></entry><entry><title type="text">Links for 2010-10-30 [del.icio.us]</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/PZPD5C3oNRw/ideamonk" /><updated>2010-10-31T00:00:00-07:00</updated><id>http://del.icio.us/ideamonk#2010-10-30</id><content type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://vimeo.com/16337020"&gt;AudioHover 0.1 Walkthrough&lt;/a&gt;&lt;br/&gt;
A jQuery plugin to make html5 audio hovers pretty quickly :)&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/PZPD5C3oNRw" height="1" width="1"/&gt;</content><feedburner:origLink>http://del.icio.us/ideamonk#2010-10-30</feedburner:origLink></entry><entry gd:etag="W/&quot;DEEMQXw5eyp7ImA9Wx5VE08.&quot;"><id>tag:blogger.com,1999:blog-5777290109635933739.post-2319270559956287384</id><published>2010-10-06T06:26:00.001+05:30</published><updated>2010-10-06T06:28:00.223+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-06T06:28:00.223+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="pygame" /><category scheme="http://www.blogger.com/atom/ns#" term="college" /><category scheme="http://www.blogger.com/atom/ns#" term="talks" /><category scheme="http://www.blogger.com/atom/ns#" term="python" /><title>An short, half cut intro to PyGame, Part 1</title><content type="html">&lt;div style="width:425px" id="__ss_5367403"&gt;&lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/ideamonk/introduction-to-game-programming-with-pygame-part-1" title="Introduction to Game programming with PyGame Part 1"&gt;Introduction to Game programming with PyGame Part 1&lt;/a&gt;&lt;/strong&gt;&lt;object id="__sse5367403" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=introductiontopygame-101005192235-phpapp02&amp;stripped_title=introduction-to-game-programming-with-pygame-part-1&amp;userName=ideamonk" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse5367403" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=introductiontopygame-101005192235-phpapp02&amp;stripped_title=introduction-to-game-programming-with-pygame-part-1&amp;userName=ideamonk" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="padding:5px 0 12px"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/ideamonk"&gt;Abhishek Mishra&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Phew! the quickest presentation I've ever made.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5777290109635933739-2319270559956287384?l=ideamonk.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=Z46zDikHbN0:AgKMAiL4lLk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=Z46zDikHbN0:AgKMAiL4lLk:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=Z46zDikHbN0:AgKMAiL4lLk:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=Z46zDikHbN0:AgKMAiL4lLk:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=Z46zDikHbN0:AgKMAiL4lLk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=Z46zDikHbN0:AgKMAiL4lLk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=Z46zDikHbN0:AgKMAiL4lLk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=Z46zDikHbN0:AgKMAiL4lLk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=Z46zDikHbN0:AgKMAiL4lLk:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=Z46zDikHbN0:AgKMAiL4lLk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=Z46zDikHbN0:AgKMAiL4lLk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=Z46zDikHbN0:AgKMAiL4lLk:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/Z46zDikHbN0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ideamonk.blogspot.com/feeds/2319270559956287384/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ideamonk.blogspot.com/2010/10/short-half-cut-intro-to-pygame-part-1.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/2319270559956287384?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/2319270559956287384?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/Z46zDikHbN0/short-half-cut-intro-to-pygame-part-1.html" title="An short, half cut intro to PyGame, Part 1" /><author><name>Abhishek Mishra</name><uri>http://www.blogger.com/profile/12093818682511281896</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://3.bp.blogspot.com/_Jg5VhRmvVtY/SRC9s87p_uI/AAAAAAAAATQ/-OCGoybkFLo/S220/ideamonk_big.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://ideamonk.blogspot.com/2010/10/short-half-cut-intro-to-pygame-part-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IMQ3o_eCp7ImA9Wx5VEU0.&quot;"><id>tag:blogger.com,1999:blog-5777290109635933739.post-1770572271298338932</id><published>2010-10-03T17:02:00.000+05:30</published><updated>2010-10-03T17:03:02.440+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-03T17:03:02.440+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="pyobjc" /><category scheme="http://www.blogger.com/atom/ns#" term="python" /><category scheme="http://www.blogger.com/atom/ns#" term="cocoa" /><title>Stopping it from "just leaking" in PyObjC</title><content type="html">&lt;pre&gt;*** __NSAutoreleaseNoPool(): Object 0x1040bf0f0 of class NSCFString autoreleased with no pool in place - just leaking&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Found a way to get rid of these leakages. We need an NSAutoreleasePool to take care of all actions that happen under threads.&lt;br /&gt;&lt;br /&gt;So if you have a CPU/disk/network heavy operation in a module that you're importing into say, a window controller, start them under an NSThread like this -&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# foo_module.py&lt;br /&gt;def do_heavy_task((callback, arg1, arg2)):&lt;br /&gt;       ...&lt;br /&gt;       ...                   # all heavy ops here&lt;br /&gt;       ... &lt;br /&gt;    callback(message)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;and in the controller -&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;import foo_module&lt;br /&gt;...&lt;br /&gt;...&lt;br /&gt;class Controller_MainWindow(NSWindowController):&lt;br /&gt;    ...&lt;br /&gt;    ...&lt;br /&gt;    @IBAction&lt;br /&gt;    def btnFoo_Click_(self,sender):&lt;br /&gt;            thread = NSThread.detachNewThreadSelector_toTarget_withObject_(&lt;br /&gt;                'start_heavy_task',self, (self.return_heavy_task, arg1, arg2) )&lt;br /&gt;            &lt;br /&gt;    def start_heavy_task(self, params):&lt;br /&gt;        pool = NSAutoreleasePool.alloc().init()&lt;br /&gt;        foo_module.do_heavy_task(params)&lt;br /&gt;        del pool&lt;br /&gt;        &lt;br /&gt;    def return_heavy_task(self, msg):&lt;br /&gt;        NSLog(msg)&lt;br /&gt;        ...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Why all the call spaghetti with start_heavy_task, etc?&lt;br /&gt;The issue is with detachNewThreadSelector_toTarget_withObject_ where I haven't been able to figure out how to pass a module's function as selector and the module as object. Also in this way your foo_module can remain independent of cocoa/objc/Foundation pollutions.&lt;br /&gt;&lt;br /&gt;Anyhow, this works out into a clean solution. In case you have all your logical code in the window controller itself, you would find &lt;a href="http://www.programmish.com/?p=29"&gt;this programmish article&lt;/a&gt; extremely useful.&lt;br /&gt;&lt;br /&gt;Update: a much better way would be to use decorators :D&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;def AutoPooled(f):&lt;br /&gt;    def pooled_func(self):&lt;br /&gt;        pool = NSAutoreleasePool.alloc().init()&lt;br /&gt;        f(self)&lt;br /&gt;        del pool&lt;br /&gt;    return pooled_func&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now your start_heavy_task function becomes - &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    @AutoPooled&lt;br /&gt;    def start_heavy_task(self, params):&lt;br /&gt;        foo_module.do_heavy_task(params)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;How fantastic :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5777290109635933739-1770572271298338932?l=ideamonk.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=6RpfC5YGGsQ:hXuDkzygnDo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=6RpfC5YGGsQ:hXuDkzygnDo:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=6RpfC5YGGsQ:hXuDkzygnDo:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=6RpfC5YGGsQ:hXuDkzygnDo:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=6RpfC5YGGsQ:hXuDkzygnDo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=6RpfC5YGGsQ:hXuDkzygnDo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=6RpfC5YGGsQ:hXuDkzygnDo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=6RpfC5YGGsQ:hXuDkzygnDo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=6RpfC5YGGsQ:hXuDkzygnDo:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=6RpfC5YGGsQ:hXuDkzygnDo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=6RpfC5YGGsQ:hXuDkzygnDo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=6RpfC5YGGsQ:hXuDkzygnDo:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/6RpfC5YGGsQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ideamonk.blogspot.com/feeds/1770572271298338932/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ideamonk.blogspot.com/2010/10/stopping-it-from-just-leaking-in-pyobjc.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/1770572271298338932?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/1770572271298338932?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/6RpfC5YGGsQ/stopping-it-from-just-leaking-in-pyobjc.html" title="Stopping it from &quot;just leaking&quot; in PyObjC" /><author><name>Abhishek Mishra</name><uri>http://www.blogger.com/profile/12093818682511281896</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://3.bp.blogspot.com/_Jg5VhRmvVtY/SRC9s87p_uI/AAAAAAAAATQ/-OCGoybkFLo/S220/ideamonk_big.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ideamonk.blogspot.com/2010/10/stopping-it-from-just-leaking-in-pyobjc.html</feedburner:origLink></entry><entry><title type="text">Links for 2010-10-01 [del.icio.us]</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/jjf2EapymLQ/ideamonk" /><updated>2010-10-02T00:00:00-07:00</updated><id>http://del.icio.us/ideamonk#2010-10-01</id><content type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://baka.ideamonk.com/"&gt;BakaBot - AI chatbot on websockets&lt;/a&gt;&lt;br/&gt;
A proof-of-concept, experimental, fun AI chatbot that uses pywebsockets, pyAIML, and redis backed db.&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/jjf2EapymLQ" height="1" width="1"/&gt;</content><feedburner:origLink>http://del.icio.us/ideamonk#2010-10-01</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EGRXo8fyp7ImA9Wx5WFks.&quot;"><id>tag:blogger.com,1999:blog-5777290109635933739.post-4483703678616295162</id><published>2010-09-28T14:43:00.001+05:30</published><updated>2010-09-28T14:50:24.477+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-28T14:50:24.477+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="hazenet" /><category scheme="http://www.blogger.com/atom/ns#" term="scam" /><category scheme="http://www.blogger.com/atom/ns#" term="hosting" /><category scheme="http://www.blogger.com/atom/ns#" term="vps" /><title>Reason why HazeNet is as good as hosting your website on a friend's adsl</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Jg5VhRmvVtY/TKGzL2jWdzI/AAAAAAAABOA/2QwotqugWKM/s1600/Screen+shot+2010-09-28+at+2.43.31+PM.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 86px;" src="http://1.bp.blogspot.com/_Jg5VhRmvVtY/TKGzL2jWdzI/AAAAAAAABOA/2QwotqugWKM/s400/Screen+shot+2010-09-28+at+2.43.31+PM.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5521891634336659250" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5777290109635933739-4483703678616295162?l=ideamonk.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=DIoQzZ5AZEk:kx1Lvo5gE00:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=DIoQzZ5AZEk:kx1Lvo5gE00:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=DIoQzZ5AZEk:kx1Lvo5gE00:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=DIoQzZ5AZEk:kx1Lvo5gE00:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=DIoQzZ5AZEk:kx1Lvo5gE00:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=DIoQzZ5AZEk:kx1Lvo5gE00:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=DIoQzZ5AZEk:kx1Lvo5gE00:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=DIoQzZ5AZEk:kx1Lvo5gE00:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=DIoQzZ5AZEk:kx1Lvo5gE00:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=DIoQzZ5AZEk:kx1Lvo5gE00:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=DIoQzZ5AZEk:kx1Lvo5gE00:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=DIoQzZ5AZEk:kx1Lvo5gE00:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/DIoQzZ5AZEk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ideamonk.blogspot.com/feeds/4483703678616295162/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ideamonk.blogspot.com/2010/09/reason-why-hazenet-is-as-good-as.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/4483703678616295162?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/4483703678616295162?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/DIoQzZ5AZEk/reason-why-hazenet-is-as-good-as.html" title="Reason why HazeNet is as good as hosting your website on a friend's adsl" /><author><name>Abhishek Mishra</name><uri>http://www.blogger.com/profile/12093818682511281896</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://3.bp.blogspot.com/_Jg5VhRmvVtY/SRC9s87p_uI/AAAAAAAAATQ/-OCGoybkFLo/S220/ideamonk_big.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_Jg5VhRmvVtY/TKGzL2jWdzI/AAAAAAAABOA/2QwotqugWKM/s72-c/Screen+shot+2010-09-28+at+2.43.31+PM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://ideamonk.blogspot.com/2010/09/reason-why-hazenet-is-as-good-as.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIDSH04eCp7ImA9Wx5WEEQ.&quot;"><id>tag:blogger.com,1999:blog-5777290109635933739.post-2007816389725744081</id><published>2010-09-22T00:45:00.000+05:30</published><updated>2010-09-22T00:46:19.330+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-22T00:46:19.330+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="python" /><category scheme="http://www.blogger.com/atom/ns#" term="pycon" /><title>Speaking at PyCon this weekend :)</title><content type="html">Here are the slides for talk at the upcoming PyCon India 2010. See you this weekend.&lt;br /&gt;&lt;div id="__ss_5171849" style="width: 425px;"&gt;&lt;strong&gt;&lt;a title="Scraping with Python for Fun and Profit - PyCon India 2010" href="http://www.slideshare.net/ideamonk/scraping-with-python-for-fun-and-profit-pycon-india-2010"&gt;Scraping with Python for Fun and Profit - PyCon India 2010&lt;/a&gt;&lt;/strong&gt;&lt;object id="__sse5171849" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=pycon2010-scrapingwithpythonforfunandprofitideamonk-100910055740-phpapp02&amp;amp;stripped_title=scraping-with-python-for-fun-and-profit-pycon-india-2010" /&gt;&lt;param name="name" value="__sse5171849" /&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;embed id="__sse5171849" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=pycon2010-scrapingwithpythonforfunandprofitideamonk-100910055740-phpapp02&amp;amp;stripped_title=scraping-with-python-for-fun-and-profit-pycon-india-2010" name="__sse5171849" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/ideamonk"&gt;Abhishek Mishra&lt;/a&gt;.&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;See you there!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5777290109635933739-2007816389725744081?l=ideamonk.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=2FEdktRvFnQ:CI6CPGeQlPc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=2FEdktRvFnQ:CI6CPGeQlPc:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=2FEdktRvFnQ:CI6CPGeQlPc:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=2FEdktRvFnQ:CI6CPGeQlPc:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=2FEdktRvFnQ:CI6CPGeQlPc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=2FEdktRvFnQ:CI6CPGeQlPc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=2FEdktRvFnQ:CI6CPGeQlPc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=2FEdktRvFnQ:CI6CPGeQlPc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=2FEdktRvFnQ:CI6CPGeQlPc:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=2FEdktRvFnQ:CI6CPGeQlPc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=2FEdktRvFnQ:CI6CPGeQlPc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=2FEdktRvFnQ:CI6CPGeQlPc:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/2FEdktRvFnQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ideamonk.blogspot.com/feeds/2007816389725744081/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ideamonk.blogspot.com/2010/09/speaking-at-pycon-this-weekend.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/2007816389725744081?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/2007816389725744081?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/2FEdktRvFnQ/speaking-at-pycon-this-weekend.html" title="Speaking at PyCon this weekend :)" /><author><name>Abhishek Mishra</name><uri>http://www.blogger.com/profile/12093818682511281896</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://3.bp.blogspot.com/_Jg5VhRmvVtY/SRC9s87p_uI/AAAAAAAAATQ/-OCGoybkFLo/S220/ideamonk_big.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ideamonk.blogspot.com/2010/09/speaking-at-pycon-this-weekend.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMBRXc-eyp7ImA9WhZQGE4.&quot;"><id>tag:blogger.com,1999:blog-5777290109635933739.post-4706653788802810333</id><published>2010-09-18T21:10:00.000+05:30</published><updated>2011-04-26T21:10:54.953+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-26T21:10:54.953+05:30</app:edited><title>Setting up Lighttpd, PhpMyAdmin, etc</title><content type="html">Recently from a tipoff from Suryajith, I decided to try migrate to lighttpd and test it out. I was looking for some more reduction in active ram usage, so that I could also replicate the same on our 256mb vps. Here is how I went about it -&lt;br /&gt;&lt;ol&gt;&lt;br /&gt; &lt;li&gt;stop apache 2&lt;br /&gt;&lt;pre&gt;# /etc/init.d/apache2 stop&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;remove all related packages&lt;br /&gt;&lt;pre&gt;# apt-get remove apache2  apache2-utils apache2-common --purge&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Get lighttpd, mysql, php working with these &lt;a href="http://www.howtoforge.com/lighttpd_mysql_php_debian_etch"&gt;instructions for Debian&lt;/a&gt;. Debian provides &lt;a href="http://www.fastcgi.com/"&gt;FastCGI&lt;/a&gt; enabled lighttpd. How awesome!&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Now you would need to remap configs if you had virtual hosts, etc. Take a look at /etc/lighttpd/lighttpd.conf for it.&lt;br /&gt;server.document-root       = "/path/to/master/doc/root/"&lt;br /&gt;As for subdomains, I have the following -&lt;br /&gt;&lt;pre&gt;$HTTP["host"] =~ "blog.ideamonk.com" {&lt;br /&gt;        server.document-root = "/path/to/sites/blog.ideamonk.com/"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;$HTTP["host"] =~ "www.ideamonk.com" {&lt;br /&gt;        server.document-root = "/path/to/sites/ideamonk.com/"&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt; Now get phpmyadmin, if you had it setup with apache2, better remove it with a purge and reinstall. Set it to work with lighttpd when the reconfiguration menu comes up during installation.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Add a url alias for it to the lighttpd config. On Debian, it usually gets installed under /usr/share/phpmyadmin/ . I've setup the following alias globally in my config, so appending /pma/ to any subdomain pops up phpmyadmin. Its good till the while I've just myself on the machine, once you've got may websites on the same box, be prepared to explain why they can't use "/pma/" in their url, or better shift this alias to your support website.Global alias-&lt;br /&gt;&lt;pre&gt;alias.url += ( "/pma/" =&amp;gt; "/usr/share/phpmyadmin/" )&lt;/pre&gt;&lt;br /&gt;PhpMyAdmin alias attached to a subdomain -&lt;br /&gt;&lt;pre&gt;$HTTP["host"] =~ "admin.myfooservice.com" {&lt;br /&gt;        alias.url += ( "/pma/" =&amp;gt; "/usr/share/phpmyadmin/" )&lt;br /&gt;        server.document-root = "/path/to/admin.myfooservice.com/"&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Now if phpmyadmin doesn't show up, you probably have permission issues, while this works smoothly on apache2, I had to assign group id of 'www-data' to all files under /usr/share/phpmyadmin/&lt;br /&gt;&lt;pre&gt; $ sudo chown root:www-data -R /usr/share/phpmyadmin/&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Now you would notice, almost same or more amount of ram usage that your old php-mysql-apache2 setup. Don't be disappointed, Its the php5-cgi processes and their children hogging up more. And so might be the mysql server. You need to limit the php5-cgi processes. Make modification for this in lighttpd.conf, here's my config -&lt;br /&gt;&lt;pre&gt;fastcgi.server = ( ".php" =&amp;gt; ((&lt;br /&gt;                "bin-path" =&amp;gt; "/usr/bin/php5-cgi",&lt;br /&gt;                "socket" =&amp;gt; "/tmp/php.socket",&lt;br /&gt;                "max-procs" =&amp;gt; 1,&lt;br /&gt;                "idle-timeout" =&amp;gt; 20,&lt;br /&gt;                "bin-environment" =&amp;gt; (&lt;br /&gt;                        "PHP_FCGI_CHILDREN" =&amp;gt; "4",&lt;br /&gt;                        "PHP_FCGI_MAX_REQUESTS" =&amp;gt; "10000"&lt;br /&gt;                ),&lt;br /&gt;                "bin-copy-environment" =&amp;gt; (&lt;br /&gt;                        "PATH", "SHELL", "USER"&lt;br /&gt;                ),&lt;br /&gt;                "broken-scriptfilename" =&amp;gt; "enable"&lt;br /&gt;                 )))&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;As for tuning up mysql, have a look at the &lt;a href="http://www.linuxweblog.com/tune-my.cnf"&gt;linuxweblog tutorial&lt;/a&gt;. Here is &lt;a href="http://ideamonk.com/files/my.cnf.txt"&gt;my configuration&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;End results -&lt;br /&gt;&lt;pre&gt;top - 05:18:13 up 5 days,  2:55,  1 user,  load average: 0.07, 0.08, 0.07&lt;br /&gt;Tasks:  20 total,   1 running,  19 sleeping,   0 stopped,   0 zombie&lt;br /&gt;Cpu(s):  0.2%us,  0.0%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st&lt;br /&gt;Mem:   1048576k total,   107480k used,   941096k free,        0k buffers&lt;br /&gt;Swap:        0k total,        0k used,        0k free,        0k cached&lt;br /&gt;&lt;br /&gt;  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND&lt;br /&gt;19711 root      15   0  6800 2516 2064 S    0  0.2   0:00.01 sshd&lt;br /&gt;    1 root      15   0  1980  584  552 S    0  0.1   0:01.01 init&lt;br /&gt; 5435 www-data  18   0  8216 2148  924 S    0  0.2   0:00.02 lighttpd&lt;br /&gt; 5437 www-data  23   0 34428  10m 7288 S    0  1.0   0:00.07 php5-cgi&lt;br /&gt; 5442 www-data  15   0 50416  23m 4740 S    0  2.3   0:12.70 php5-cgi&lt;br /&gt; 5443 www-data  16   0 50368  22m 3984 S    0  2.2   0:00.70 php5-cgi&lt;br /&gt;13684 ideamonk  15   0  4344 2940 1300 S    0  0.3   0:00.16 bash&lt;br /&gt;13945 root      15   0  1692  580  484 S    0  0.1   0:02.19 syslogd&lt;br /&gt;16193 root      18   0  2352  580  576 S    0  0.1   0:00.00 xinetd&lt;br /&gt;18118 root      15   0  5272 1028  676 S    0  0.1   0:00.24 sshd&lt;br /&gt;19702 ideamonk  15   0  2256 1080  880 R    0  0.1   0:00.00 top&lt;br /&gt;19715 sshd      15   0  6616 1352  928 S    0  0.1   0:00.00 sshd&lt;br /&gt;24555 root      15   0  8264  684  520 S    0  0.1   0:02.13 sendmail-mta&lt;br /&gt;25719 root      15   0  2036  756  692 S    0  0.1   0:00.15 cron&lt;br /&gt;28000 root      16   0  8016 2648 2188 S    0  0.3   0:00.01 sshd&lt;br /&gt;28104 ideamonk  15   0  8168 1528 1052 S    0  0.1   0:00.20 sshd&lt;br /&gt;28112 ideamonk  18   0  3316 1860 1248 S    0  0.2   0:00.00 bash&lt;br /&gt;32444 root      20   0  2488 1068  956 S    0  0.1   0:00.00 mysqld_safe&lt;br /&gt;32506 mysql     15   0 45548 4848 3068 S    0  0.5   0:01.32 mysqld&lt;br /&gt;32507 root      23   0  1628  460  456 S    0  0.0   0:00.00 logger&lt;/pre&gt;&lt;br /&gt;About 90 - 107M average ram consumption on my vps :D&lt;br /&gt;You can notice php5-cgi threads taking up 10-25M, without them you can have a static page server with around ~50M ram usage!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Update&lt;/strong&gt; - Trying further more I realized that I have too many unused php5 modules installed, for instance php5-imap, php5-snmp, etc. I decided to remove then all and let phpmyadmin dependencies pull php5 and bare minimum modules. Now the php5-cgi children take from 5M to 16M with idle ram usage around 60-70M :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5777290109635933739-4706653788802810333?l=ideamonk.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=9CRCHDfO0oM:dztKAU_StjI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=9CRCHDfO0oM:dztKAU_StjI:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=9CRCHDfO0oM:dztKAU_StjI:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=9CRCHDfO0oM:dztKAU_StjI:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=9CRCHDfO0oM:dztKAU_StjI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=9CRCHDfO0oM:dztKAU_StjI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=9CRCHDfO0oM:dztKAU_StjI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=9CRCHDfO0oM:dztKAU_StjI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=9CRCHDfO0oM:dztKAU_StjI:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=9CRCHDfO0oM:dztKAU_StjI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=9CRCHDfO0oM:dztKAU_StjI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=9CRCHDfO0oM:dztKAU_StjI:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/9CRCHDfO0oM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ideamonk.blogspot.com/feeds/4706653788802810333/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ideamonk.blogspot.com/2010/09/setting-up-lighttpd-phpmyadmin-etc.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/4706653788802810333?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/4706653788802810333?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/9CRCHDfO0oM/setting-up-lighttpd-phpmyadmin-etc.html" title="Setting up Lighttpd, PhpMyAdmin, etc" /><author><name>Abhishek Mishra</name><uri>http://www.blogger.com/profile/12093818682511281896</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://3.bp.blogspot.com/_Jg5VhRmvVtY/SRC9s87p_uI/AAAAAAAAATQ/-OCGoybkFLo/S220/ideamonk_big.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ideamonk.blogspot.com/2010/09/setting-up-lighttpd-phpmyadmin-etc.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQCSXs6eip7ImA9WhZQGE4.&quot;"><id>tag:blogger.com,1999:blog-5777290109635933739.post-5529774746751703214</id><published>2010-09-11T21:11:00.001+05:30</published><updated>2011-04-26T21:26:08.512+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-26T21:26:08.512+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="pygame" /><category scheme="http://www.blogger.com/atom/ns#" term="XCode" /><category scheme="http://www.blogger.com/atom/ns#" term="pyobjc" /><category scheme="http://www.blogger.com/atom/ns#" term="pymunk" /><category scheme="http://www.blogger.com/atom/ns#" term="snow leopard" /><category scheme="http://www.blogger.com/atom/ns#" term="python" /><category scheme="http://www.blogger.com/atom/ns#" term="pybox2d" /><title>Getting Python + OS X together</title><content type="html">&lt;p&gt;Since a week I’ve been looking for ways to create Mac apps using  Python. Here are a few important tutorials/articles which got me my  setup -&lt;/p&gt; &lt;p&gt;Many tutorials show up CocoaPython option in XCode’s ‘create new  project’ wizard. It wasn’t there in XCode 3.2.3, so I made myself  believe that I need to get something, and so began my exploration.&lt;/p&gt; &lt;p&gt;At first I decided that it would be cool to be able to write a pygame app and turn it into a portable binary -&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Thanks to &lt;a href="http://thoughts.seul.in/"&gt;kontinuity&lt;/a&gt; setting up &lt;a href="http://thoughts.seul.in/2010/05/setting-up-python-2-6-5-universal-for-pyobjc-development/"&gt;PyObjC on Python 2.6.5&lt;/a&gt; is a cakewalk&lt;/li&gt;&lt;li&gt;Now you need pygame, which is another recipe in itself. Grab &lt;a href="http://programming.itcarlow.ie/pygame.html"&gt;the pdf guide here&lt;/a&gt;. Clear instructions that work&lt;/li&gt;&lt;li&gt;Py2App would fail looking for&lt;br /&gt;“/python2.6.5/lib/python2.6/site-packages/py2app-0.5.3-py2.6.egg/py2app/apptemplate/prebuilt/&lt;strong&gt;main-x86_64&lt;/strong&gt;” &lt;div id="_mcePaste"&gt; &lt;p&gt;Just  copy the &lt;strong&gt;main-fat&lt;/strong&gt; file in the same path as main-x86_64&lt;/p&gt; &lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div id="_mcePaste"&gt; &lt;div id="_mcePaste"&gt;Test py2app over a small pygame example/script. Now the app would fail to load up. Have a look at the ‘Console’ -&lt;br /&gt;&lt;a href="http://oldblog.ideamonk.com/wp-content/uploads/2010/09/Screen-shot-2010-09-11-at-5.49.27-PM.png"&gt;&lt;img class="aligncenter size-thumbnail wp-image-19" style="display: block; margin-top: 5px; margin-bottom: 5px;" title="argv_emulation failure" src="http://oldblog.ideamonk.com/wp-content/uploads/2010/09/Screen-shot-2010-09-11-at-5.49.27-PM-150x150.png" alt="" height="150" width="150" /&gt;&lt;/a&gt;&lt;/div&gt; &lt;div id="_mcePaste"&gt;If using setuptools, just set the argv_emulation under OPTIONS as False to pass through.&lt;/div&gt; &lt;div&gt;Also don’t forget to add ‘zlib’ to includes in case console shows errors related to a zlib import.&lt;/div&gt; &lt;/div&gt; &lt;/li&gt;&lt;li&gt;Now you have your working pygame+py2app setup. Also if you’re looking for Physics engines, I would recommend you go for &lt;strong&gt;PyBox2D&lt;/strong&gt;. Though PyBox2D’s documentation is sparse and examples lacking, it is something that works compatibly with py2app.&lt;br /&gt;I also tried pymunk, though it builds up and works fine, but the py2app  generated binary always dies out in a segmentation fault. Pretty  unreliable for py2app as observed on OSX 10.6.4. Also you would have to  put in libchipmunk.dylib manually into app archive after every build.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Now thats cool in case you’re an indie game-dev aligned python charmer with a mac.&lt;/p&gt; &lt;p&gt;For those of you looking for XCode+PyObjC development, the good news  is that Python2.5 and PyObjC 2.0 have been bundled in your  OS X  installation ever since 10.5. All you need to do is to follow what &lt;a href="http://ioanna.me/"&gt;Ioanna&lt;/a&gt; has to say about &lt;a href="http://ioanna.me/2009/09/installing-pyobjc-xcode-templates-in-snow-leopard/"&gt;getting the XCode templates in&lt;/a&gt;.  But remember this would use up python26-apple instead of your goody  macports versions and would have its own set of issues along (as in with  getting the 3rd party modules up and running)&lt;/p&gt; &lt;p&gt;I couldn’t get all of it working on XCode 3.2.3, OS X 10.6.4,  if you  too don’t see ‘Python’ under File Templates in XCode, when say you’re  trying to add a class through the gui, just follow these -&lt;br /&gt;Goto &lt;strong&gt;~/Library/Application\ Support/Developer/Shared/Xcode/File\ Templates/&lt;/strong&gt; where you have copied the File Templates. Create a folder named Python here and move all the “Python NS…” folders inside it.&lt;/p&gt; &lt;p&gt;Happy coding!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5777290109635933739-5529774746751703214?l=ideamonk.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=SdaflcsCqcc:cJvN-37l3hU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=SdaflcsCqcc:cJvN-37l3hU:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=SdaflcsCqcc:cJvN-37l3hU:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=SdaflcsCqcc:cJvN-37l3hU:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=SdaflcsCqcc:cJvN-37l3hU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=SdaflcsCqcc:cJvN-37l3hU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=SdaflcsCqcc:cJvN-37l3hU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=SdaflcsCqcc:cJvN-37l3hU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=SdaflcsCqcc:cJvN-37l3hU:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=SdaflcsCqcc:cJvN-37l3hU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=SdaflcsCqcc:cJvN-37l3hU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=SdaflcsCqcc:cJvN-37l3hU:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/SdaflcsCqcc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ideamonk.blogspot.com/feeds/5529774746751703214/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ideamonk.blogspot.com/2010/09/getting-python-os-x-together.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/5529774746751703214?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/5529774746751703214?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/SdaflcsCqcc/getting-python-os-x-together.html" title="Getting Python + OS X together" /><author><name>Abhishek Mishra</name><uri>http://www.blogger.com/profile/12093818682511281896</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://3.bp.blogspot.com/_Jg5VhRmvVtY/SRC9s87p_uI/AAAAAAAAATQ/-OCGoybkFLo/S220/ideamonk_big.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ideamonk.blogspot.com/2010/09/getting-python-os-x-together.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MAQ3s9fCp7ImA9Wx5RFEQ.&quot;"><id>tag:blogger.com,1999:blog-5777290109635933739.post-169686720633949299</id><published>2010-08-22T21:02:00.004+05:30</published><updated>2010-08-22T21:07:22.564+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-22T21:07:22.564+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Mac" /><category scheme="http://www.blogger.com/atom/ns#" term="ssh" /><category scheme="http://www.blogger.com/atom/ns#" term="vmware" /><title>ssh -X FTW</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Jg5VhRmvVtY/THFDiY4v5VI/AAAAAAAABNY/j1j_FfQtK9I/s1600/Screen+shot+2010-08-22+at+9.01.52+PM.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://4.bp.blogspot.com/_Jg5VhRmvVtY/THFDiY4v5VI/AAAAAAAABNY/j1j_FfQtK9I/s400/Screen+shot+2010-08-22+at+9.01.52+PM.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5508258077325911378" /&gt;&lt;/a&gt;&lt;br /&gt;Ubuntu 10.04 image on VMware Fusion with 1 Gb allocated to it gives great almost a native feel in terms of performance. But thats only when you have some ram to give to it, for other times its ssh -X and debian testing on netbook for PyQt work :)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Netbooks are one awesome solution for the need of headless boxes if you're willing to shell out 15-18k. Or even second hand ones for around 12K&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5777290109635933739-169686720633949299?l=ideamonk.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=D6YpU4pgqi0:KDLPzXAK3PM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=D6YpU4pgqi0:KDLPzXAK3PM:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=D6YpU4pgqi0:KDLPzXAK3PM:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=D6YpU4pgqi0:KDLPzXAK3PM:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=D6YpU4pgqi0:KDLPzXAK3PM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=D6YpU4pgqi0:KDLPzXAK3PM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=D6YpU4pgqi0:KDLPzXAK3PM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=D6YpU4pgqi0:KDLPzXAK3PM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=D6YpU4pgqi0:KDLPzXAK3PM:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=D6YpU4pgqi0:KDLPzXAK3PM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=D6YpU4pgqi0:KDLPzXAK3PM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=D6YpU4pgqi0:KDLPzXAK3PM:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/D6YpU4pgqi0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ideamonk.blogspot.com/feeds/169686720633949299/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ideamonk.blogspot.com/2010/08/ssh-x-ftw.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/169686720633949299?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/169686720633949299?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/D6YpU4pgqi0/ssh-x-ftw.html" title="ssh -X FTW" /><author><name>Abhishek Mishra</name><uri>http://www.blogger.com/profile/12093818682511281896</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://3.bp.blogspot.com/_Jg5VhRmvVtY/SRC9s87p_uI/AAAAAAAAATQ/-OCGoybkFLo/S220/ideamonk_big.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_Jg5VhRmvVtY/THFDiY4v5VI/AAAAAAAABNY/j1j_FfQtK9I/s72-c/Screen+shot+2010-08-22+at+9.01.52+PM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://ideamonk.blogspot.com/2010/08/ssh-x-ftw.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QCSHg-eSp7ImA9Wx5RFEU.&quot;"><id>tag:blogger.com,1999:blog-5777290109635933739.post-6420361010426967572</id><published>2010-08-22T18:17:00.001+05:30</published><updated>2010-08-22T18:19:29.651+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-22T18:19:29.651+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="fun" /><title>Mooo!</title><content type="html">&lt;pre&gt;$ aptitude moo&lt;br /&gt;$ aptitude -v moo&lt;br /&gt;$ aptitude -vv moo&lt;br /&gt;$ aptitude -vvv moo&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5777290109635933739-6420361010426967572?l=ideamonk.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=_me3ioj_Lt4:1AQ5kjp01uY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=_me3ioj_Lt4:1AQ5kjp01uY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=_me3ioj_Lt4:1AQ5kjp01uY:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=_me3ioj_Lt4:1AQ5kjp01uY:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=_me3ioj_Lt4:1AQ5kjp01uY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=_me3ioj_Lt4:1AQ5kjp01uY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=_me3ioj_Lt4:1AQ5kjp01uY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=_me3ioj_Lt4:1AQ5kjp01uY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=_me3ioj_Lt4:1AQ5kjp01uY:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=_me3ioj_Lt4:1AQ5kjp01uY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=_me3ioj_Lt4:1AQ5kjp01uY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=_me3ioj_Lt4:1AQ5kjp01uY:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/_me3ioj_Lt4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ideamonk.blogspot.com/feeds/6420361010426967572/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ideamonk.blogspot.com/2010/08/mooo.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/6420361010426967572?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/6420361010426967572?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/_me3ioj_Lt4/mooo.html" title="Mooo!" /><author><name>Abhishek Mishra</name><uri>http://www.blogger.com/profile/12093818682511281896</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://3.bp.blogspot.com/_Jg5VhRmvVtY/SRC9s87p_uI/AAAAAAAAATQ/-OCGoybkFLo/S220/ideamonk_big.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ideamonk.blogspot.com/2010/08/mooo.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUDQn4ycCp7ImA9Wx5SEk0.&quot;"><id>tag:blogger.com,1999:blog-5777290109635933739.post-8792002414675584737</id><published>2010-08-07T19:53:00.004+05:30</published><updated>2010-08-07T23:34:33.098+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-07T23:34:33.098+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="fail" /><category scheme="http://www.blogger.com/atom/ns#" term="ccp" /><category scheme="http://www.blogger.com/atom/ns#" term="python" /><title>On a dict returning None</title><content type="html">Long time ago a thought came, why does a python dict throw exception, can't it just return a None if there is no key with supplied name.&lt;br /&gt;Well now I understand the point of it, which is very obvious - if a dict has a key "foo" and the programmer has stored None into it, how would one distinguish  a non-existant key and the one with None stored into it.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;So here is the desired bad extension of dict for the Community Centric Python(CCP) Engineer:&lt;br /&gt;&lt;pre class="python" name="code"&gt;class NoneDict(dict):&lt;br /&gt;      def __getitem__(self,key):&lt;br /&gt;              try:&lt;br /&gt;                      return self.get(key)&lt;br /&gt;              except:&lt;br /&gt;                      return None&lt;br /&gt;&lt;br /&gt;l = NoneDict()&lt;br /&gt;&lt;br /&gt;l[1] = "Foo"&lt;br /&gt;l["a"] = "Bar"&lt;br /&gt;&lt;br /&gt;print l[1], l["a"]              # gives out the values&lt;br /&gt;print l[42]                     # gives out None&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5777290109635933739-8792002414675584737?l=ideamonk.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=FDCnXd84kBg:BPKCS3YOZ48:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=FDCnXd84kBg:BPKCS3YOZ48:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=FDCnXd84kBg:BPKCS3YOZ48:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=FDCnXd84kBg:BPKCS3YOZ48:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=FDCnXd84kBg:BPKCS3YOZ48:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=FDCnXd84kBg:BPKCS3YOZ48:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=FDCnXd84kBg:BPKCS3YOZ48:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=FDCnXd84kBg:BPKCS3YOZ48:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=FDCnXd84kBg:BPKCS3YOZ48:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=FDCnXd84kBg:BPKCS3YOZ48:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=FDCnXd84kBg:BPKCS3YOZ48:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=FDCnXd84kBg:BPKCS3YOZ48:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/FDCnXd84kBg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ideamonk.blogspot.com/feeds/8792002414675584737/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ideamonk.blogspot.com/2010/08/on-dict-returning-none.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/8792002414675584737?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/8792002414675584737?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/FDCnXd84kBg/on-dict-returning-none.html" title="On a dict returning None" /><author><name>Abhishek Mishra</name><uri>http://www.blogger.com/profile/12093818682511281896</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://3.bp.blogspot.com/_Jg5VhRmvVtY/SRC9s87p_uI/AAAAAAAAATQ/-OCGoybkFLo/S220/ideamonk_big.jpg" /></author><thr:total>4</thr:total><feedburner:origLink>http://ideamonk.blogspot.com/2010/08/on-dict-returning-none.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8DR3s_eyp7ImA9Wx5SEUs.&quot;"><id>tag:blogger.com,1999:blog-5777290109635933739.post-5767709154818002525</id><published>2010-08-07T00:34:00.015+05:30</published><updated>2010-08-07T12:37:56.543+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-07T12:37:56.543+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="crossroad?" /><title>Crossroads...</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Jg5VhRmvVtY/TFxknYClOBI/AAAAAAAABM0/nBfnGNlG9x4/s1600/4.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 256px; height: 220px;" src="http://1.bp.blogspot.com/_Jg5VhRmvVtY/TFxknYClOBI/AAAAAAAABM0/nBfnGNlG9x4/s400/4.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5502383472370858002" /&gt;&lt;/a&gt;Another transitory gate has presented itself in front. Again time is what is running out, people and their preconceived notions coming out aloud, saying "this way - the right way". &lt;div&gt;And I'm stuck with no wish to step into any of those. For the road not taken lies in the hourglass these days. &lt;/div&gt;&lt;div&gt;Doesn't the wind smell the way it did 3 years ago, and the desire to break free feels the same as the one from 5 years ago.&lt;br /&gt;&lt;br /&gt;The only difference is that the advisors can be convinced with evidence this time. But that is something that has to be sculpted with precision.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;While the pillars that stood tall to be hallmarks of reassurance for these days have shaken into dividends or is it just the state of my own mind? After all there are no two places from where the universe looks the same.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Reanimation ahoy!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5777290109635933739-5767709154818002525?l=ideamonk.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=3PqMnobj4D0:FSa7NweUM6s:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=3PqMnobj4D0:FSa7NweUM6s:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=3PqMnobj4D0:FSa7NweUM6s:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=3PqMnobj4D0:FSa7NweUM6s:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=3PqMnobj4D0:FSa7NweUM6s:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=3PqMnobj4D0:FSa7NweUM6s:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=3PqMnobj4D0:FSa7NweUM6s:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=3PqMnobj4D0:FSa7NweUM6s:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=3PqMnobj4D0:FSa7NweUM6s:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=3PqMnobj4D0:FSa7NweUM6s:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=3PqMnobj4D0:FSa7NweUM6s:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=3PqMnobj4D0:FSa7NweUM6s:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/3PqMnobj4D0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ideamonk.blogspot.com/feeds/5767709154818002525/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ideamonk.blogspot.com/2010/08/crossroads.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/5767709154818002525?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/5767709154818002525?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/3PqMnobj4D0/crossroads.html" title="Crossroads..." /><author><name>Abhishek Mishra</name><uri>http://www.blogger.com/profile/12093818682511281896</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://3.bp.blogspot.com/_Jg5VhRmvVtY/SRC9s87p_uI/AAAAAAAAATQ/-OCGoybkFLo/S220/ideamonk_big.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_Jg5VhRmvVtY/TFxknYClOBI/AAAAAAAABM0/nBfnGNlG9x4/s72-c/4.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://ideamonk.blogspot.com/2010/08/crossroads.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUINSH8_cCp7ImA9Wx5SEU0.&quot;"><id>tag:blogger.com,1999:blog-5777290109635933739.post-7828149356215429932</id><published>2010-07-17T06:10:00.021+05:30</published><updated>2010-08-06T20:43:19.148+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-06T20:43:19.148+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="caching" /><category scheme="http://www.blogger.com/atom/ns#" term="python" /><category scheme="http://www.blogger.com/atom/ns#" term="memoization" /><category scheme="http://www.blogger.com/atom/ns#" term="experiments" /><title>Poorly implementing caching in python - eye opener</title><content type="html">So after looking at some slides on &lt;a href="http://ejohn.org/apps/learn/#19"&gt;caching function returns&lt;/a&gt; in javascript, I was keen on trying out so in Python. And LOL I came up with this logic -&lt;br /&gt;&lt;pre&gt;fun(val):&lt;br /&gt;  if val in cache.keys():&lt;br /&gt;    return cache[val]&lt;br /&gt;  else:&lt;br /&gt;    do the right thing...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;But it seems, though "if val in cache.keys()" sounds very human friendly, it definitely would suck for a very big cache, and so it does in the following test.&lt;br /&gt;&lt;br /&gt;I guess I'm not using timeit in the classical way where I would pass some statements in string and ask it to do them for N number of times, but it seems passing some variables from existing code to statement string is a pain, tried global etc, didn't work. Hence a simple time diff test.&lt;br /&gt;&lt;pre class="python" name="code"&gt;# -*- coding: utf-8 -*-&lt;br /&gt;import random&lt;br /&gt;from timeit import Timer&lt;br /&gt;&lt;br /&gt;class PlainColorParser:&lt;br /&gt;    def parse(self,value):&lt;br /&gt;        rgb = int(value[1:], 16)&lt;br /&gt;        r = rgb &amp;gt;&amp;gt; 16 &amp; 0xff&lt;br /&gt;        g = rgb &amp;gt;&amp;gt;  8 &amp; 0xff&lt;br /&gt;        b = rgb &amp; 0xff&lt;br /&gt;        return (r,g,b)&lt;br /&gt;&lt;br /&gt;    def __call__(self,value):&lt;br /&gt;        return self.parse(value)&lt;br /&gt;&lt;br /&gt;class NoBitColorParser:&lt;br /&gt;    def __call__(self,value):&lt;br /&gt;        return (int(value[1:3],16), int(value[3:5],16), int(value[5:7],16))&lt;br /&gt;&lt;br /&gt;class PoorCachedColorParser(PlainColorParser):&lt;br /&gt;    def __init__(self):&lt;br /&gt;        self.cache = {}&lt;br /&gt;&lt;br /&gt;    def __call__(self,value):&lt;br /&gt;        if value in self.cache.keys():&lt;br /&gt;            return self.cache[value]&lt;br /&gt;        self.cache[value] = self.parse(value)&lt;br /&gt;        return self.cache[value]&lt;br /&gt;&lt;br /&gt;class CachedExceptionColorParser(PlainColorParser):&lt;br /&gt;    def __init__(self):&lt;br /&gt;        self.cache = {}&lt;br /&gt;&lt;br /&gt;    def __call__(self,value):&lt;br /&gt;        try:&lt;br /&gt;            return self.cache[value]&lt;br /&gt;        except KeyError:&lt;br /&gt;            self.cache[value] = self.parse(value)&lt;br /&gt;            return self.cache[value]&lt;br /&gt;&lt;br /&gt;class CachedColorParser(PlainColorParser):&lt;br /&gt;    def __init__(self):&lt;br /&gt;        self.cache = {}&lt;br /&gt;&lt;br /&gt;    def __call__(self,value):&lt;br /&gt;        if value in self.cache:&lt;br /&gt;            return self.cache[value]&lt;br /&gt;        else:&lt;br /&gt;            self.cache[value] = self.parse(value)&lt;br /&gt;            return self.cache[value]&lt;br /&gt;&lt;br /&gt;if __name__ == "__main__":&lt;br /&gt;    t = Timer()&lt;br /&gt;    pccParse = PoorCachedColorParser()&lt;br /&gt;    cecParse = CachedExceptionColorParser()&lt;br /&gt;    ccParse = CachedColorParser()&lt;br /&gt;    pcParse = PlainColorParser()&lt;br /&gt;    nbParse = NoBitColorParser()&lt;br /&gt;&lt;br /&gt;    # setup some random data to test&lt;br /&gt;    colors = []&lt;br /&gt;    for i in xrange(100000):&lt;br /&gt;        colors.append("#" + hex(random.randint(0xfe0000, 0xff0aff))[2:])&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    def timeDiff(obj):&lt;br /&gt;        start = t.timer()&lt;br /&gt;        for c in colors:&lt;br /&gt;            obj(c)&lt;br /&gt;        stop = t.timer()&lt;br /&gt;        return ((1000000*stop - 1000000*start)/1000000)&lt;br /&gt;&lt;br /&gt;    # ---- test poorly cached&lt;br /&gt;    print "Poorly Cached - %.2fs" % timeDiff(pccParse)&lt;br /&gt;&lt;br /&gt;    # ---- test exception cached&lt;br /&gt;    print "Exception Cached - %.2fs" % timeDiff(cecParse)&lt;br /&gt;&lt;br /&gt;    # ---- test cached&lt;br /&gt;    print "Cached - %.2fs" % timeDiff(ccParse)&lt;br /&gt;&lt;br /&gt;    # ---- test uncached&lt;br /&gt;    print "Non Cached - %.2fs" % timeDiff(pcParse)&lt;br /&gt;&lt;br /&gt;    # ---- test no bitwise, uncached&lt;br /&gt;    print "Not Bitwise, Non Cached - %.2fs" % timeDiff(nbParse)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;So we've got &lt;del&gt;4&lt;/del&gt; 5 classes to represent different ways of parsing an html hex code for color e.g. "#f00f00" into a tuple of (r,g,b) integers. PlainColorParser and NoBitColorParser could easily be functions with no need of classes over them as they do not cache, but to bring them a little equal to other two cached ones, I've bound them in classes.&lt;br /&gt;&lt;br /&gt;NoBitColorParser does string manipulations and parses 3 times before returning a tuple. PlainColorParser does better than that, it uses bit shifts and AND masks to filter out content after 1 round of parsing integer from string. PoorCachedColorParser does caching in an obvious way "if its there in cache keys... else ...", and &lt;del&gt;CachedColorParser&lt;/del&gt; CachedExceptionColorParser complies to the philosophy of &lt;a href="http://wiki.python.org/moin/PythonSpeed/PerformanceTips#InitializingDictionaryElements"&gt;"Fail early, fail often"&lt;/a&gt;, which is quite interesting :D &lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;&lt;br /&gt;but recent findings reveal that CachedColorParser is the right, fast, pythonic way.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What the test does is - generate 100000 random color codes, pick them from a range of 2816 colors (0xff0aff - 0xff0000 + 1). Obviously many colors are bound to get repeated says pigeon hole.&lt;br /&gt;&lt;br /&gt;Here's what goes on in an average run on my machine -&lt;br /&gt;&lt;pre&gt;abhishekmishra@mbp [~/code]&gt; python pycaching.py&lt;br /&gt;Poorly Cached - 340.23s&lt;br /&gt;Exception Cached - 0.30s&lt;br /&gt;Cached - 0.18s&lt;br /&gt;Non Cached - 0.15s&lt;br /&gt;Not Bitwise, Non Cached - 0.16s&lt;/pre&gt;&lt;br /&gt;"if value in self.cache.keys():" in PoorCachedColorParser gives you a thumbs down with a sucky performance, obviously not the right thing to do!!! (I was mistaken)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;CachedExceptionColorParser gives a sweet 0.30s, "Fail early, Fail often" works :)&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;But wait, CachedColorParser goes further even a bit more with just 0.18s.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;NoBitColorParser is suckier than the Non Cached PlainColorParser, which points out that string ops, parsing integers is one costly affair.&lt;br /&gt;&lt;br /&gt;So much for food to my sleeplessness. Oh I remember doing something similar in &lt;a href="http://blog.ideamonk.in/2009/11/pymos-creating-mosaics-of-your-photos.html"&gt;PyMos&lt;/a&gt; too :D.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 102, 0);"&gt;More updates - &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Looking at &lt;a href="http://mail.python.org/pipermail/bangpypers/2010-August/004911.html"&gt;Dhananjay's code&lt;/a&gt; on &lt;a href="http://mail.python.org/mailman/listinfo/bangpypers"&gt;BangPypers&lt;/a&gt;, I think I was too excited to throw in the idion of fail fast in this place, it can albeit be done in a cleaner way. So instead of -&lt;pre&gt;try:&lt;br /&gt;    return self.cache[value]&lt;br /&gt;except KeyError:&lt;br /&gt;    self.cache[value] = self.parse(value)&lt;br /&gt;    return self.cache[value]&lt;/pre&gt;&lt;br /&gt;You could just write in much cleaner way -&lt;pre&gt;if value in self.cache:&lt;br /&gt;    return self.cache[value]&lt;br /&gt;else:&lt;br /&gt;    self.cache[value] = self.parse(value)&lt;br /&gt;    return self.cache[value]&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;So the issue was with cache.keys(), which now seems like an obvious slow and shitty way.&lt;br /&gt;New stats reveal that even Try: Except:... fail fast is even not the right way.&lt;br /&gt;&lt;br /&gt;Notice the almost double time difference between "try.. except.." way and "if value in self.cache".&lt;br /&gt;&lt;br /&gt;Lesson learnt :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5777290109635933739-7828149356215429932?l=ideamonk.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=_9kvOY1Vz_0:_761b7DU6O8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=_9kvOY1Vz_0:_761b7DU6O8:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=_9kvOY1Vz_0:_761b7DU6O8:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=_9kvOY1Vz_0:_761b7DU6O8:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=_9kvOY1Vz_0:_761b7DU6O8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=_9kvOY1Vz_0:_761b7DU6O8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=_9kvOY1Vz_0:_761b7DU6O8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=_9kvOY1Vz_0:_761b7DU6O8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=_9kvOY1Vz_0:_761b7DU6O8:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=_9kvOY1Vz_0:_761b7DU6O8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=_9kvOY1Vz_0:_761b7DU6O8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=_9kvOY1Vz_0:_761b7DU6O8:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/_9kvOY1Vz_0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ideamonk.blogspot.com/feeds/7828149356215429932/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ideamonk.blogspot.com/2010/07/poorly-implementing-caching-in-python.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/7828149356215429932?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/7828149356215429932?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/_9kvOY1Vz_0/poorly-implementing-caching-in-python.html" title="Poorly implementing caching in python - eye opener" /><author><name>Abhishek Mishra</name><uri>http://www.blogger.com/profile/12093818682511281896</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://3.bp.blogspot.com/_Jg5VhRmvVtY/SRC9s87p_uI/AAAAAAAAATQ/-OCGoybkFLo/S220/ideamonk_big.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://ideamonk.blogspot.com/2010/07/poorly-implementing-caching-in-python.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEERXg9eCp7ImA9WxFaEU4.&quot;"><id>tag:blogger.com,1999:blog-5777290109635933739.post-2750796248405510101</id><published>2010-07-15T00:43:00.008+05:30</published><updated>2010-07-15T01:30:04.660+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-15T01:30:04.660+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="rants" /><title>अपने घर के चोर</title><content type="html">&lt;pre style="background:black;color:green;font-weight:bold;"&gt;You find it to be a sorry ass pussy system &lt;br /&gt;that fails to respond to situations in time, &lt;br /&gt;you read up, watch stuff and blame on them for "not doing anything", &lt;br /&gt;but hardly would it strike to your conditioned imagination &lt;br /&gt;that they might just be so pre-occupied in doing something else &lt;br /&gt;that you could have never imagined. &lt;br /&gt;&lt;br /&gt;And yet you passive cunt, you take it all for granted&lt;br /&gt;and sleep for the next day to come by,&lt;br /&gt;expecting everything to be normal.&lt;br /&gt;&lt;br /&gt;Who knows for everything,&lt;br /&gt;that you quoted the system to be pussy about,&lt;br /&gt;over your cup of tea and a morning newspaper,&lt;br /&gt;there were these "अपने घर के चोर",&lt;br /&gt;thiefs, filling their pockets.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;On a side note,&lt;br /&gt;Now that things have become so well connected,&lt;br /&gt;the systems are so well informed, fed by numerous channels,&lt;br /&gt;and fingers just like the ones that typed out this piece of brainf*ck,&lt;br /&gt;clicking out zillions of preferences,&lt;br /&gt;we're not far from the point when&lt;br /&gt;it would be possible to crunch these into&lt;br /&gt;a whole new understanding, meaning, life.&lt;br /&gt;&lt;br /&gt;Just that in this spiderweb,&lt;br /&gt;analyzing nodes, reaching from one to another,&lt;br /&gt;predicting their minds and way of thinking has become easier.&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5777290109635933739-2750796248405510101?l=ideamonk.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=wNaun7F-M3o:65XfPGjuUco:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=wNaun7F-M3o:65XfPGjuUco:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=wNaun7F-M3o:65XfPGjuUco:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=wNaun7F-M3o:65XfPGjuUco:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=wNaun7F-M3o:65XfPGjuUco:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=wNaun7F-M3o:65XfPGjuUco:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=wNaun7F-M3o:65XfPGjuUco:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=wNaun7F-M3o:65XfPGjuUco:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=wNaun7F-M3o:65XfPGjuUco:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=wNaun7F-M3o:65XfPGjuUco:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=wNaun7F-M3o:65XfPGjuUco:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=wNaun7F-M3o:65XfPGjuUco:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/wNaun7F-M3o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ideamonk.blogspot.com/feeds/2750796248405510101/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ideamonk.blogspot.com/2010/07/blog-post.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/2750796248405510101?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/2750796248405510101?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/wNaun7F-M3o/blog-post.html" title="अपने घर के चोर" /><author><name>Abhishek Mishra</name><uri>http://www.blogger.com/profile/12093818682511281896</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://3.bp.blogspot.com/_Jg5VhRmvVtY/SRC9s87p_uI/AAAAAAAAATQ/-OCGoybkFLo/S220/ideamonk_big.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ideamonk.blogspot.com/2010/07/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkAARHg_cCp7ImA9WxFUGEk.&quot;"><id>tag:blogger.com,1999:blog-5777290109635933739.post-795326466004612211</id><published>2010-06-30T03:14:00.004+05:30</published><updated>2010-06-30T03:29:05.648+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-30T03:29:05.648+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="scribbles" /><category scheme="http://www.blogger.com/atom/ns#" term="fun" /><category scheme="http://www.blogger.com/atom/ns#" term="distributed computing" /><title>So Distribute!</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://ideamonk.in/images/distrib1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 198px;" src="http://2.bp.blogspot.com/_Jg5VhRmvVtY/TCppWfL8pZI/AAAAAAAABK8/cj-LHp_SqeU/s400/distrib1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5488314930954020242" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Sitting with my new (in working-on-linux sense) pen tablet, with nothing much to do, I just scribbled down my newly developed understanding of why should we distribute processing and there isn't much point in increasing CPU speeds these days.&lt;br /&gt;&lt;br /&gt;Zoom it to get a clear picture of the problems with just one processor.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5777290109635933739-795326466004612211?l=ideamonk.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=NKde6tCvHvA:vdggCpLQzMk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=NKde6tCvHvA:vdggCpLQzMk:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=NKde6tCvHvA:vdggCpLQzMk:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=NKde6tCvHvA:vdggCpLQzMk:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=NKde6tCvHvA:vdggCpLQzMk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=NKde6tCvHvA:vdggCpLQzMk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=NKde6tCvHvA:vdggCpLQzMk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=NKde6tCvHvA:vdggCpLQzMk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=NKde6tCvHvA:vdggCpLQzMk:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=NKde6tCvHvA:vdggCpLQzMk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=NKde6tCvHvA:vdggCpLQzMk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=NKde6tCvHvA:vdggCpLQzMk:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/NKde6tCvHvA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ideamonk.blogspot.com/feeds/795326466004612211/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ideamonk.blogspot.com/2010/06/so-distribute.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/795326466004612211?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/795326466004612211?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/NKde6tCvHvA/so-distribute.html" title="So Distribute!" /><author><name>Abhishek Mishra</name><uri>http://www.blogger.com/profile/12093818682511281896</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://3.bp.blogspot.com/_Jg5VhRmvVtY/SRC9s87p_uI/AAAAAAAAATQ/-OCGoybkFLo/S220/ideamonk_big.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_Jg5VhRmvVtY/TCppWfL8pZI/AAAAAAAABK8/cj-LHp_SqeU/s72-c/distrib1.png" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://ideamonk.blogspot.com/2010/06/so-distribute.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIERXk8eCp7ImA9WxFUFks.&quot;"><id>tag:blogger.com,1999:blog-5777290109635933739.post-2842941723532553705</id><published>2010-06-28T00:04:00.007+05:30</published><updated>2010-06-28T00:51:44.770+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-28T00:51:44.770+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="hacks" /><category scheme="http://www.blogger.com/atom/ns#" term="python" /><title>Yet another Google Calculator shell in Python</title><content type="html">For the sake of weekend hack and getting rid of some headache of post bangpypers meetup chicken overload of today's evening -&lt;br /&gt;&lt;pre name="code" class="python"&gt;import re&lt;br /&gt;import urllib&lt;br /&gt;import mechanize&lt;br /&gt;import unittest&lt;br /&gt;&lt;br /&gt;class GCalc:&lt;br /&gt;   def __init__(self):&lt;br /&gt;       self.browser = mechanize.Browser()&lt;br /&gt;       self.browser.set_handle_robots(False)&lt;br /&gt;       self.browser.addheaders = \&lt;br /&gt;           [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]&lt;br /&gt;&lt;br /&gt;   def cleanup(self,text):&lt;br /&gt;       strip_tags = re.compile("&amp;lt;.*?&amp;gt;")&lt;br /&gt;       return strip_tags.sub('', text.replace("&amp;lt;sup&amp;gt;","^").replace("&amp;lt;/sup&amp;gt;","").replace("×","X"))&lt;br /&gt;&lt;br /&gt;   def calc(self, query):&lt;br /&gt;       try:&lt;br /&gt;           raw_result = self.browser.open("http://www.google.com/search?hl=en&amp;amp;q="+urllib.quote_plus(query)).read()&lt;br /&gt;           return self.parse(raw_result)&lt;br /&gt;       except:&lt;br /&gt;           return "Failed to reach Google"&lt;br /&gt;&lt;br /&gt;   def parse(self, raw_result):&lt;br /&gt;       try:&lt;br /&gt;           result = raw_result.split('''&amp;lt;td style="vertical-align:top" &amp;gt;''')[1].split('&amp;lt;/h2&amp;gt;')[0] + '&amp;lt;/h2&amp;gt;'&lt;br /&gt;           return self.cleanup(result)&lt;br /&gt;       except:&lt;br /&gt;           return "Not a calculator query"&lt;br /&gt;&lt;br /&gt;class TestGCalc(unittest.TestCase):&lt;br /&gt;   def setUp(self):&lt;br /&gt;       self.g = GCalc()&lt;br /&gt;&lt;br /&gt;   def test_numeric(self):&lt;br /&gt;       self.assertEqual(self.g.calc("4+5"), "4 + 5 = 9")&lt;br /&gt;&lt;br /&gt;   def test_bignumbers(self):&lt;br /&gt;       self.assertEqual(self.g.calc("234623476 * 59999999999"), "234 623 476 * 59 999 999 999 = 1.40774086 X 10^19")&lt;br /&gt;&lt;br /&gt;   def test_units(self):&lt;br /&gt;       self.assertEqual(self.g.calc("14 inch in mm"), "14 inch = 355.6 millimeters")&lt;br /&gt;       self.assertEqual(self.g.calc("one acre"), "one acre = 4\xc2\xa0046.85642 m^2")&lt;br /&gt;&lt;br /&gt;   def test_cacl(self):&lt;br /&gt;       self.assertEqual(self.g.calc("3 * PI / sin(3)"), "(3 * PI) / sin(3) = 66.7855543")&lt;br /&gt;&lt;br /&gt;   def test_facts(self):&lt;br /&gt;       self.assertEqual(self.g.calc("speed of light"), "the speed of light = 299\xc2\xa0792\xc2\xa0458 m / s")&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;if __name__=='__main__':&lt;br /&gt;   unittest.main()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Jg5VhRmvVtY/TCebRrYlRMI/AAAAAAAABKw/OUq0-p_NlG4/s1600/snapshot25.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 326px;" src="http://1.bp.blogspot.com/_Jg5VhRmvVtY/TCebRrYlRMI/AAAAAAAABKw/OUq0-p_NlG4/s400/snapshot25.png" alt="" id="BLOGGER_PHOTO_ID_5487525398980150466" border="0" /&gt;&lt;/a&gt;&lt;a style="font-weight: bold;" href="http://github.com/ideamonk/GCalc"&gt;Fork it here&lt;/a&gt;, have fun, curse me for crappy splits :)&lt;br /&gt;Just learnt unittest a bit, ah so easy and useful :D&lt;br /&gt;&lt;br /&gt;I guess you can notice the grand theme here - Its just &lt;span style="font-weight: bold;"&gt;~ 50&lt;/span&gt; lines of code packed up with a unit test and does the job!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;I suggest you better not miss &lt;/span&gt;&lt;a style="font-weight: bold;" href="http://in.pycon.org/2010/"&gt;&lt;span style="font-style: italic;"&gt;PyCon India 2010&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt; in case you too are eager to do some productivity magic with you/your employees/students/etc.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Adios&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5777290109635933739-2842941723532553705?l=ideamonk.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=0dwnn2Yh2Fg:GK5EORnBJJ0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=0dwnn2Yh2Fg:GK5EORnBJJ0:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=0dwnn2Yh2Fg:GK5EORnBJJ0:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=0dwnn2Yh2Fg:GK5EORnBJJ0:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=0dwnn2Yh2Fg:GK5EORnBJJ0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=0dwnn2Yh2Fg:GK5EORnBJJ0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=0dwnn2Yh2Fg:GK5EORnBJJ0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=0dwnn2Yh2Fg:GK5EORnBJJ0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=0dwnn2Yh2Fg:GK5EORnBJJ0:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=0dwnn2Yh2Fg:GK5EORnBJJ0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=0dwnn2Yh2Fg:GK5EORnBJJ0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=0dwnn2Yh2Fg:GK5EORnBJJ0:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/0dwnn2Yh2Fg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ideamonk.blogspot.com/feeds/2842941723532553705/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ideamonk.blogspot.com/2010/06/yet-another-google-calculator-shell-in.html#comment-form" title="16 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/2842941723532553705?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/2842941723532553705?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/0dwnn2Yh2Fg/yet-another-google-calculator-shell-in.html" title="Yet another Google Calculator shell in Python" /><author><name>Abhishek Mishra</name><uri>http://www.blogger.com/profile/12093818682511281896</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://3.bp.blogspot.com/_Jg5VhRmvVtY/SRC9s87p_uI/AAAAAAAAATQ/-OCGoybkFLo/S220/ideamonk_big.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_Jg5VhRmvVtY/TCebRrYlRMI/AAAAAAAABKw/OUq0-p_NlG4/s72-c/snapshot25.png" height="72" width="72" /><thr:total>16</thr:total><feedburner:origLink>http://ideamonk.blogspot.com/2010/06/yet-another-google-calculator-shell-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcBQHw8fip7ImA9WxFUEU0.&quot;"><id>tag:blogger.com,1999:blog-5777290109635933739.post-8554827507960821234</id><published>2010-06-21T11:58:00.003+05:30</published><updated>2010-06-21T12:04:11.276+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-21T12:04:11.276+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="archlinux" /><title>DWM-ified</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Jg5VhRmvVtY/TB8G7ycO1II/AAAAAAAABJw/EX65mwg_Ie8/s1600/screenFetch-2010-06-21.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 225px;" src="http://3.bp.blogspot.com/_Jg5VhRmvVtY/TB8G7ycO1II/AAAAAAAABJw/EX65mwg_Ie8/s400/screenFetch-2010-06-21.png" alt="" id="BLOGGER_PHOTO_ID_5485110495382787202" border="0" /&gt;&lt;/a&gt;Arch + Dwm + Conky + Dzen2 + links + vim + irssi (plus ram eaten by chrome, firefox, thunderbird, and eden) otherwise awesome at ~100MB, ideal light &amp;amp; fast setup for my netbook :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5777290109635933739-8554827507960821234?l=ideamonk.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=i-nt1xKDkT4:dGZ0uqO4jTs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=i-nt1xKDkT4:dGZ0uqO4jTs:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=i-nt1xKDkT4:dGZ0uqO4jTs:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=i-nt1xKDkT4:dGZ0uqO4jTs:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=i-nt1xKDkT4:dGZ0uqO4jTs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=i-nt1xKDkT4:dGZ0uqO4jTs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=i-nt1xKDkT4:dGZ0uqO4jTs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=i-nt1xKDkT4:dGZ0uqO4jTs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=i-nt1xKDkT4:dGZ0uqO4jTs:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=i-nt1xKDkT4:dGZ0uqO4jTs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?i=i-nt1xKDkT4:dGZ0uqO4jTs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Ideamonk?a=i-nt1xKDkT4:dGZ0uqO4jTs:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Ideamonk?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/i-nt1xKDkT4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ideamonk.blogspot.com/feeds/8554827507960821234/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ideamonk.blogspot.com/2010/06/dwm-ified.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/8554827507960821234?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5777290109635933739/posts/default/8554827507960821234?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/i-nt1xKDkT4/dwm-ified.html" title="DWM-ified" /><author><name>Abhishek Mishra</name><uri>http://www.blogger.com/profile/12093818682511281896</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://3.bp.blogspot.com/_Jg5VhRmvVtY/SRC9s87p_uI/AAAAAAAAATQ/-OCGoybkFLo/S220/ideamonk_big.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_Jg5VhRmvVtY/TB8G7ycO1II/AAAAAAAABJw/EX65mwg_Ie8/s72-c/screenFetch-2010-06-21.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://ideamonk.blogspot.com/2010/06/dwm-ified.html</feedburner:origLink></entry><entry><title type="text">Links for 2008-11-10 [del.icio.us]</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/mFzLD9QLl7A/ideamonk" /><updated>2008-11-11T00:00:00-08:00</updated><id>http://del.icio.us/ideamonk#2008-11-10</id><content type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://ideamonk.blogspot.com/2008/11/coolest-server-names.html"&gt;The Coolest Server Names&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ideamonk.blogspot.com/2003/02/natural-vegetation-of-india.html"&gt;Natural Vegetation of India&lt;/a&gt;&lt;br/&gt;
This is a presentation on Natural Vegetation of India in Flash. Its a complete educative tour of Natural Vegetation of India.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ideamonk.blogspot.com/2008/11/i-did-something-awful-tonight.html"&gt;I did something awful tonight!&lt;/a&gt;&lt;br/&gt;
But the blockbuster processing script was yet to come up... suddenly amidst creating a random color sprinkler shit, I came around something awful... go have a look yourself... words are less to describe it. Watch it at your own risk... watch it as it starts to spin your mind...&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/mFzLD9QLl7A" height="1" width="1"/&gt;</content><feedburner:origLink>http://del.icio.us/ideamonk#2008-11-10</feedburner:origLink></entry><entry><title type="text">Links for 2007-06-30 [del.icio.us]</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Ideamonk/~3/7E8cMsMhqTg/ideamonk" /><updated>2007-07-01T00:00:00-07:00</updated><id>http://del.icio.us/ideamonk#2007-06-30</id><content type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.swiss.ai.mit.edu/classes/6.001/abelson-sussman-lectures/"&gt;comp sci video lectures&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/Ideamonk/~4/7E8cMsMhqTg" height="1" width="1"/&gt;</content><feedburner:origLink>http://del.icio.us/ideamonk#2007-06-30</feedburner:origLink></entry></feed>

