<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>Arunrocks &#187; featured</title> <atom:link href="http://www.arunrocks.com/blog/archives/tag/featured/feed/" rel="self" type="application/rss+xml" /><link>http://www.arunrocks.com/blog</link> <description>Representing Anti-monotonistic Tendencies</description> <lastBuildDate>Tue, 27 Jul 2010 14:41:38 +0000</lastBuildDate> <generator>http://wordpress.org/?v=2.8.6</generator> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>Managing Creative Assets &#8211; 3: TortoiseHg Tutorial</title><link>http://www.arunrocks.com/blog/archives/2009/12/15/managing-creative-assets-3-tortoisehg-tutorial/</link> <comments>http://www.arunrocks.com/blog/archives/2009/12/15/managing-creative-assets-3-tortoisehg-tutorial/#comments</comments> <pubDate>Wed, 16 Dec 2009 02:24:01 +0000</pubDate> <dc:creator>Arun Bhai</dc:creator> <category><![CDATA[Uncategorized]]></category> <category><![CDATA[backup]]></category> <category><![CDATA[creativity]]></category> <category><![CDATA[distributed version control]]></category> <category><![CDATA[featured]]></category> <category><![CDATA[hg]]></category> <category><![CDATA[lifehacks]]></category> <category><![CDATA[mercurial]]></category> <category><![CDATA[productivity]]></category> <category><![CDATA[tortoisehg]]></category> <category><![CDATA[version control]]></category><guid
isPermaLink="false">http://www.arunrocks.com/blog/?p=177</guid> <description><![CDATA[Managing Creative Assets is a multi-part series on how you can manage your creative works such as a novel or even blog post without impairing your creativity. It highlights the importance of using a version control system as an integral part of one&#8217;s creative workflow. Part 1 gives a good introduction to the series which [...]]]></description> <content:encoded><![CDATA[<p><em>Managing Creative Assets is a multi-part series on how you can manage your creative works such as a novel or even blog post without impairing your creativity. It highlights the importance of using a version control system as an integral part of one&#8217;s creative workflow. <a
href="/blog/archives/2009/12/13/managing-creative-assets-1/">Part 1</a> gives a good introduction to the series which is aimed at technology novices</em></p><h2>Getting started with Mercurial: A tutorial</h2><p>The concluding part of this series will be the installation and typical usage of Tortoise Mercurial, a user friendly GUI front-end for Mercurial. It is commonly referred to as TortoiseHg (the chemical symbol for mercury).</p><p>This will be a fairly simple tutorial to follow as each description is followed by a screenshot. These screenshots were taken on Windows XP, but they will be pretty similar in other OSes</p><p>Download Tortoise mercurial from the <a
href="http://tortoisehg.bitbucket.org/">Bitbucket site</a>. There are installables for Windows as well as for Linux. Installation on Windows is fairly straightforward as it is wizard-based.</p><p><span
id="more-177"></span></p><ol><li><p>Create a new folder for keeping your art assets. This will be your project folder. In this screenshot (click for a larger image), I have created a project folder for the purpose of composing this series of blog posts. Simply right-click, and select &#8216;Create Repository here&#8217; under the TortoiseHg sub-menu:</p><p><a
href="http://www.flickr.com/photos/arun_ravindran/4181869236/" title="010 - Create.png by ArunClickClick, on Flickr"><img
src="http://farm3.static.flickr.com/2717/4181869236_49236ff611.jpg" width="500" height="307" alt="010 - Create.png" /></a></p></li><li><p>The defaults in the &#8216;Create Repository&#8217; dialogs are fine. Just click Create.</p><p><a
href="http://www.flickr.com/photos/arun_ravindran/4181105481/" title="020 - Create Dialog.png by ArunClickClick, on Flickr"><img
src="http://farm3.static.flickr.com/2533/4181105481_54e6cdc708.jpg" width="500" height="307" alt="020 - Create Dialog.png" /></a></p></li><li><p>The new repository has been created. That was easy, wasn&#8217;t it?</p><p><a
href="http://www.flickr.com/photos/arun_ravindran/4181870162/" title="030 - Created.png by ArunClickClick, on Flickr"><img
src="http://farm3.static.flickr.com/2561/4181870162_5930954fe5.jpg" width="500" height="307" alt="030 - Created.png" /></a></p></li><li><p>Now, enter the project folder and view the changes. On some OSes, you might see nothing here. These files are not intended to be seen or modified, hence they might be hidden. You can safely ignore them.</p><p><a
href="http://www.flickr.com/photos/arun_ravindran/4181106163/" title="040 - Project folder.png by ArunClickClick, on Flickr"><img
src="http://farm3.static.flickr.com/2593/4181106163_032fa85c9a.jpg" width="500" height="307" alt="040 - Project folder.png" /></a></p></li><li><p>This is a screenshot of a new file that I am editing (using Emacs editor) inside the project folder. I am ready to check-in this file.</p><p><a
href="http://www.flickr.com/photos/arun_ravindran/4181106501/" title="050 - New File on Emacs.png by ArunClickClick, on Flickr"><img
src="http://farm3.static.flickr.com/2642/4181106501_2d51984a2b.jpg" width="500" height="307" alt="050 - New File on Emacs.png" /></a></p></li><li><p>Now, you will need to add this new file to your repository. Let&#8217;s skip that and directly perform a commit. We will be later given a chance to add this file.</p><p><a
href="http://www.flickr.com/photos/arun_ravindran/4181107011/" title="060 - First Commit.png by ArunClickClick, on Flickr"><img
src="http://farm3.static.flickr.com/2584/4181107011_abfcdcda18.jpg" width="500" height="307" alt="060 - First Commit.png" /></a></p></li><li><p>Here you can see our newly added file as unchecked. This means that this file is not yet under version control</p><p><a
href="http://www.flickr.com/photos/arun_ravindran/4181107577/" title="070 - Commit Dialog.png by ArunClickClick, on Flickr"><img
src="http://farm3.static.flickr.com/2640/4181107577_1b15f33da9.jpg" width="500" height="307" alt="070 - Commit Dialog.png" /></a></p></li><li><p>Go ahead and mark the check box next to this file</p><p><a
href="http://www.flickr.com/photos/arun_ravindran/4181872344/" title="080 - Commit Dialog File Added.png by ArunClickClick, on Flickr"><img
src="http://farm3.static.flickr.com/2742/4181872344_85b8b75702.jpg" width="500" height="307" alt="080 - Commit Dialog File Added.png" /></a></p></li><li><p>In the edit box above, you can add a short comment about this commit. Since this is the initial commit, my comment is simply &#8216;First Commit&#8217;</p><p><a
href="http://www.flickr.com/photos/arun_ravindran/4181872914/" title="090 - Commit Dialog Comment Added.png by ArunClickClick, on Flickr"><img
src="http://farm3.static.flickr.com/2525/4181872914_5bb16f7ef4.jpg" width="500" height="307" alt="090 - Commit Dialog Comment Added.png" /></a></p></li><li><p>Mercurial acknowledges the successful commit with the name(s) of the committed files</p><p><a
href="http://www.flickr.com/photos/arun_ravindran/4181873328/" title="100 - Commited.png by ArunClickClick, on Flickr"><img
src="http://farm3.static.flickr.com/2787/4181873328_f9b5679aa6.jpg" width="500" height="307" alt="100 - Commited.png" /></a></p></li><li><p>Notice that your file has a green tick icon indicating a successful check-in</p><p><a
href="http://www.flickr.com/photos/arun_ravindran/4181873800/" title="110 - Overlay Icons Added.png by ArunClickClick, on Flickr"><img
src="http://farm3.static.flickr.com/2694/4181873800_a8dba47e66.jpg" width="500" height="307" alt="110 - Overlay Icons Added.png" /></a></p></li><li><p>Many hours and many check-ins later, my post is nearly close to completion. I commit this version as well.</p><p><a
href="http://www.flickr.com/photos/arun_ravindran/4181110111/" title="115 - Emacs Final Screen.png by ArunClickClick, on Flickr"><img
src="http://farm5.static.flickr.com/4046/4181110111_35e674f04e.jpg" width="500" height="307" alt="115 - Emacs Final Screen.png" /></a></p></li><li><p>In the commit dialog, notice the Repository Explorer in the menu.</p><p><a
href="http://www.flickr.com/photos/arun_ravindran/4181110473/" title="120 - Going to repo explorer.png by ArunClickClick, on Flickr"><img
src="http://farm3.static.flickr.com/2782/4181110473_ea679486fb.jpg" width="500" height="307" alt="120 - Going to repo explorer.png" /></a></p></li><li><p>You can view the history of changes in reverse chronological order. You can right click on any of them to compare the changes or revert back to an earlier version.</p><p><a
href="http://www.flickr.com/photos/arun_ravindran/4181874988/" title="130 - Repo explorer.png by ArunClickClick, on Flickr"><img
src="http://farm3.static.flickr.com/2717/4181874988_7862e514c3.jpg" width="500" height="307" alt="130 - Repo explorer.png" /></a></p></li><li><p>Simply clicking on each version will show the diff (in UNIX format) between the consecutive versions in the lower right window.</p><p><a
href="http://www.flickr.com/photos/arun_ravindran/4181111117/" title="140 - Repo explorer shows changes.png by ArunClickClick, on Flickr"><img
src="http://farm5.static.flickr.com/4037/4181111117_d14c136f13.jpg" width="500" height="307" alt="140 - Repo explorer shows changes.png" /></a></p></li><li><p>You can perform a revert by selecting the Revert option.</p><p><a
href="http://www.flickr.com/photos/arun_ravindran/4181111507/" title="150 - Reverting.png by ArunClickClick, on Flickr"><img
src="http://farm5.static.flickr.com/4047/4181111507_22932a06b3.jpg" width="500" height="307" alt="150 - Reverting.png" /></a></p></li><li><p>As indicated by the warning, your current file will be overwritten to an older version. But subsequently you can revert to the latest version as well, so this is not too much of an issue.</p><p><a
href="http://www.flickr.com/photos/arun_ravindran/4181111829/" title="160 - Revert Confirm.png by ArunClickClick, on Flickr"><img
src="http://farm3.static.flickr.com/2656/4181111829_873917d61a.jpg" width="500" height="307" alt="160 - Revert Confirm.png" /></a></p></li></ol><p>That&#8217;s pretty much all you need to know to use Tortoise Hg. Hope you found this series informative!</p> ]]></content:encoded> <wfw:commentRss>http://www.arunrocks.com/blog/archives/2009/12/15/managing-creative-assets-3-tortoisehg-tutorial/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>Top 7 Inexpensive but Indispensible Things</title><link>http://www.arunrocks.com/blog/archives/2009/12/01/top-7-inexpensive-but-indispensible-things/</link> <comments>http://www.arunrocks.com/blog/archives/2009/12/01/top-7-inexpensive-but-indispensible-things/#comments</comments> <pubDate>Tue, 01 Dec 2009 07:10:36 +0000</pubDate> <dc:creator>Arun Bhai</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[gadgets]]></category> <category><![CDATA[productivity]]></category> <category><![CDATA[featured]]></category><guid
isPermaLink="false">http://www.arunrocks.com/blog/?p=157</guid> <description><![CDATA[I was shifting to a new house in Mangalore recently. I realised that some of the things that I value the most were not the typical big screen home theatre system or a luxurious jacuzzi.Without sounding too cliched, let me say that some of the best things in life are not expensive. Here are some [...]]]></description> <content:encoded><![CDATA[<p>I was shifting to a new house in Mangalore recently. I realised that some of the things that I value the most were not the typical big screen home theatre system or a luxurious jacuzzi.</p><p>Without sounding too cliched, let me say that some of the best things in life are not expensive. Here are some of the best things you can buy for less than Rs. 8K (around $160):</p><h2>Wifi Router</h2><p>This is a blessing for those with frequently off working hours calls or if you have multiple laptops. The convenience of being able to work near the balcony enjoying the quiet scenery and sipping tea is divine.</p><h2>Small Water Heater</h2><p>This is a pet peeve of mine. Hot water is absolutely essential for a bath. Even in summer. Yep. Nothing gives you a better satisfaction that a hot bath after a warm day. And in Mangalore it&#8217;s either raining in buckets or it&#8217;s hot and humid. I would recommend that you go for a 8l one if you want a good tradeoff between heating time and power consumption.</p><h2>Portable Harddisk</h2><p>I am sure most of us have tried using CDs for backing up all those wonderful photos and songs we have. The problem is &#8211; CD are not really great for organising data. It is readonly and once you burn it, there is no way to go back and change it. There are, of course, other problems like limited space
and suceptibility to scratches.</p><p>Harddisk prices have gone down&#8230; a lot. So there is really no excuse for not getting one. There are sub-terrabyte ones at throwaway prices. I recommend the Western Digital&#8217;s handy Passport 500 GB.</p><h2>Ebooks</h2><p>Can anyone guess what&#8217;s the most heaviest thing to transport? Yep, it is undoubtedly books. The weight of a carton of books can exceed that of a TV, Microwave or even a carton full of iron boxes. I think everyone who love books would have had to part with them if they have had to travel a lot. They would have given away most of it to friends or relatives, never to see them back again.</p><p>This is sad. I don&#8217;t like giving away books. Neither do I want to kill my desire to create a personal library. I suggest an eco-friendly compromise &#8211; make a digital library. Do invest in Ebooks and Audio books. I have invested heavily in a collection that I am sure I can use anywhere once ebook readers
become more cheaper. For now, I don&#8217;t mind reading them on my laptop. And yes, my library weighs less than a kilo ;)</p><h2>Gamepad</h2><p>I am a guy who is always tempted to buy game consoles. I have made up my mind a hundred times to buy a playstation or a nintendo, only to find that the latest PC is much better at it. And you know what PCs are always ahead in terms of sheer processing power. Except that they have clumsy input devices. Ever tried to play a racing game with a keyboard? Then you will know what I am talking about.</p><p>This is easily fixable. A <a
href="http://www.arunrocks.com/blog/archives/2008/01/24/gamepad-brings-new-life-to-emulated-games/" title="Full review of a Chinese gamepad available in India">USB gamepad</a> (which looks like a PS2 Gamepad) comes in for less than Rs. 500. It is a great value for money. It has all the 4 way controls, shoulder buttons and 2 joysticks. Plus it has a built-in vibrator (no batteries needed)! I am planning to go for a second one. Now you can safely give your PC to your 5-year old cousin to play Mario Kart without fearing that he with smash your keyboard to bits shouting &#8216;Maaario&#8217;:)</p><h2>Decent Mattress</h2><p>Some one rightly said that we spend one-thirds of our life on a mattress. So why not in a really good one? There are cots in the market all the way from Rs 200 to branded mattresses worth several tens of thousands. Go for a really good branded mattress. It might cost a couple of grand, but you will not lose sleep over it ;)</p><h2>Portable Home-kit</h2><p>A briefcase sized kit that contains a small drill, spanners, measuring tape, pipe wrench, screwdriver set etc costs less that Rs. 2000 these days. I think it is well worth the price.</p><hr
/><p>Those were, in my opinion, the best little things that don&#8217;t cost you a fortune. What are the ones you feel give you great value for money? Do add in your comments.</p> ]]></content:encoded> <wfw:commentRss>http://www.arunrocks.com/blog/archives/2009/12/01/top-7-inexpensive-but-indispensible-things/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>PyCon India Talk 2009: Game Programming in Pyglet</title><link>http://www.arunrocks.com/blog/archives/2009/09/27/pycon-india-talk-2009-game-programming-in-pyglet/</link> <comments>http://www.arunrocks.com/blog/archives/2009/09/27/pycon-india-talk-2009-game-programming-in-pyglet/#comments</comments> <pubDate>Sun, 27 Sep 2009 13:07:59 +0000</pubDate> <dc:creator>Arun Bhai</dc:creator> <category><![CDATA[Gaming]]></category> <category><![CDATA[General]]></category> <category><![CDATA[Python]]></category> <category><![CDATA[featured]]></category><guid
isPermaLink="false">http://www.arunrocks.com/blog/?p=154</guid> <description><![CDATA[Thanks to everyone who enjoyed and commented on my talk today titled &#8216;Accelerate Your Game Development with Pyglet&#8217;. I am happy to see so much enthusiasm within the python community for game development. This was my first lightning talk (and the first one for the day as well) and though, I slightly overshot the timelimit, [...]]]></description> <content:encoded><![CDATA[<p>Thanks to everyone who enjoyed and commented on my talk today titled &#8216;Accelerate Your Game Development with Pyglet&#8217;. I am happy to see so much enthusiasm within the python community for game development. This was my first lightning talk (and the first one for the day as well) and though, I slightly overshot the timelimit, it was a great experience.</p><p>The talk was about creating a simple casual game using Pyglet called &#8216;FruitCatch&#8217;. The source code is really small and very readable. I also compared Pyglet with Pygame and why I prefer Pyglet (in certain situations:)). The demo showed the working game in the end.</p><p>You can download the <a
href="http://www.arunrocks.com/downloads/pyconindia2009/fruitcatch-0.1.tar.gz">game source code</a> and <a
href="http://www.arunrocks.com/downloads/pyconindia2009/Accelerate%20Your%20GameDevelopment%20with%20Pyglet.pdf">presentation slides (PDF)</a> here. I&#8217;ve shared this with the organisers as well, so it will be put up at the http://in.pycon.org/ site as well</p><p>UPDATE: The video of the <a
href="http://blip.tv/file/2690880">lightning talk</a> is now available and has been added below:</p><p><span
id="more-154"></span></p><p><embed
src="http://blip.tv/play/AYGlulYC" type="application/x-shockwave-flash" width="480" height="390" allowscriptaccess="always" allowfullscreen="true"></embed></p> ]]></content:encoded> <wfw:commentRss>http://www.arunrocks.com/blog/archives/2009/09/27/pycon-india-talk-2009-game-programming-in-pyglet/feed/</wfw:commentRss> <slash:comments>8</slash:comments> </item> <item><title>Decoding Google&#8217;s First Tweet in Python</title><link>http://www.arunrocks.com/blog/archives/2009/02/28/decoding-googles-first-tweet-in-python/</link> <comments>http://www.arunrocks.com/blog/archives/2009/02/28/decoding-googles-first-tweet-in-python/#comments</comments> <pubDate>Sat, 28 Feb 2009 09:10:29 +0000</pubDate> <dc:creator>Arun Bhai</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[Python]]></category> <category><![CDATA[Technical]]></category> <category><![CDATA[featured]]></category><guid
isPermaLink="false">http://www.arunrocks.com/blog/?p=140</guid> <description><![CDATA[Most of you must have read the news that Google finally jumped into the Twitter Bandwagon. In their trademark style, they have chosen to announce this in a cryptic way. Their first tweet was essentially this:I&#8217;m 01100110 01100101 01100101 01101100 01101001 01101110 01100111 00100000 01101100 01110101 01100011 01101011 01111001 00001010I will explain in [...]]]></description> <content:encoded><![CDATA[<p>Most of you must have read the news that <a
href="http://thenextweb.com/2009/02/26/googles-tweet-official-twitter-account/" title="The news about google's tweet">Google finally jumped into the Twitter Bandwagon</a>. In their trademark style, they have chosen to announce this in a cryptic way. Their <a
href="http://twitter.com/google/status/1251523388" title="Link to Google Twitter account">first tweet</a> was essentially this:</p><blockquote><p>I&#8217;m 01100110 01100101 01100101 01101100 01101001 01101110 01100111 00100000 01101100 01110101 01100011 01101011 01111001 00001010</p></blockquote><p>I will explain in this post how to crack this simple code with the help of some Python one-liners (Google&#8217;s favourite language). If you are a Google aspirant (who isn&#8217;t? ;) ), this might help you clear the interview. So pay attention.</p><p>To most people it is immediately obvious that it is a text encoded in binary. Since each binary word is 8 characters long, it is most probably written in the extended 8-bit ASCII code. In fact, it is and you can read this with a simple <a
href="http://www.cdrummond.qc.ca/cegep/informat/Professeurs/Alain/files/ascii.htm" title="ASCII chart">ASCII chart</a>.</p><p>But they have made it slightly difficult for you by writing in binary. Since most charts would provide you a lookup from decimal or hexadecimal numbers to ASCII representations only. So how do you convert from binary to decimal? It&#8217;s quite simple:</p><pre><code>decimal = lambda s: sum(int(j) * pow(2,i) for i,j in enumerate(reversed(s)))
</code></pre><p>This line defines a function <code>decimal</code> which works in a manner similar to how we would manually convert binary numbers into decimal. Each position is multiplied by increasing powers of two from the right. Then, these numbers are added together. for e.g. &#8216;1010&#8242; will be 1 * 8 + 0 * 4 + 1 * 2 + 0 * 1 = 10.</p><p>Next, we split the binary part of the tweet string and apply the <code>decimal</code> function on each part</p><pre><code>tweet = "01100110 01100101 01100101 01101100 01101001 01101110 01100111 00100000 01101100 01110101 01100011 01101011 01111001 00001010"
print ''.join(chr(decimal(s)) for s in tweet.split())
</code></pre><p>The result is something that you might have already guessed seeing the first 2 words:</p><blockquote><p>&#8220;I&#8217;m feeling lucky\n&#8221;</p></blockquote><p>Hope you learnt some interesting python constructs. If there are other ways of decoding this in Python, please comment below.</p> ]]></content:encoded> <wfw:commentRss>http://www.arunrocks.com/blog/archives/2009/02/28/decoding-googles-first-tweet-in-python/feed/</wfw:commentRss> <slash:comments>13</slash:comments> </item> <item><title>Learning Pylons Through Tutorials</title><link>http://www.arunrocks.com/blog/archives/2008/06/26/learning-pylons-through-tutorials/</link> <comments>http://www.arunrocks.com/blog/archives/2008/06/26/learning-pylons-through-tutorials/#comments</comments> <pubDate>Thu, 26 Jun 2008 17:18:50 +0000</pubDate> <dc:creator>Arun Bhai</dc:creator> <category><![CDATA[Python]]></category> <category><![CDATA[WordPress]]></category> <category><![CDATA[featured]]></category><guid
isPermaLink="false">http://www.arunrocks.com/blog/?p=128</guid> <description><![CDATA[Web Development is now getting dominated by frameworks. After the initial hype of Rails, Python based frameworks are getting more popularity especially after the release of Google App Engine. Nobody seems to be interested in building websites using PHP, even if they are highly experienced in PHP. This could mean two things:There will be more [...]]]></description> <content:encoded><![CDATA[<p>Web Development is now getting dominated by frameworks. After the initial hype of Rails, Python based frameworks are getting more popularity especially after the release of Google App Engine. Nobody seems to be interested in building websites using PHP, even if they are highly experienced in PHP. This could mean two things:</p><ol><li>There will be more demand in Indian IT companies for PHP skills similar to Perl scripting skills these days  :mrgreen:</li><li>There will be soon be a viable competitor to the immensely popular Wordpress blogging platform from the Python/Ruby world</li></ol><p>I have nothing against Wordpress. In fact, it is one of the easiest tools to deploy. But with tools like cPanel, deployment could be no longer a deciding factor for blogging platforms.</p><p>Coming back to the topic of Python Web Frameworks, there is a multitude of options. I have used some of these framworks and found them to be &#8216;pythonic&#8217; in different ways:</p><ul><li><strong>Django</strong> Well documented. Tightly Coupled and &#8216;Batteries Included&#8217;</li><li><strong>Pylons</strong> Extremely flexibility to Plug and Play components. &#8216;Fun to Hack&#8217;</li><li><strong>web.py</strong> Great for beginners. Entire framework &#8216;fits in your head&#8217;</li></ul><p>Pylons looks most appealing to me. So far it looks like the underdog largely overshadowed by Django&#8217;s presence lacking the <a
href="http://www.jacobian.org/writing/2006/jan/27/why-django/">marketing</a> or <a
href="http://www.djangoproject.com/weblog/2006/aug/07/guidointerview/">love</a> it deserves. A few weeks back I would have complained about the lack of Pylons tutorials on the web. A google search brought up several links pointing to the wiki tutorial. As many have pointed out, the wiki tutorial is too long and complicated for beginners. It would easily put off a beginner. It took me quite some time to realise that the best place to start learning Pylons is the <a
href="http://bel-epa.com/pylonsdocs/">Pylons Documentation</a> itself and the best Pylons tutorial is the <a
href="http://bel-epa.com/pylonsdocs/tutorials/flickr_search_tutorial.html">Flickr Search</a>. Going through the documentation is almost feels like reading a book with every concept explained in detail.</p><p>Pylons currently seems to the having an edge over Django for enterprise application due to its well tested interface with SQLAlchemy. Django seems to be having a fairly recent <a
href="http://code.google.com/p/django-sqlalchemy/">branch</a> for SQLAlchemy integration. Pylons typically uses Python eggs and VirtualEnv for deployment which is might seem a little complex to beginners, but once you try it once it is actually quite convenient. Most of the installation can be done from the command-line and it will be nearly an independent sandbox for Pylons development. However it might take sometime to understand other aspects of using python eggs such as uninstallation and creation of new eggs. I haven&#8217;t had much success with making a portable version of my Pylons installation on Windows though :(</p><p>My favourite templating engine is Genshi because it is very designer friendly(which also means it works with the tools a Designer has, not just that it is easy for a Designer to learn). I can easily do all HTML designing directly on my Genshi templates because they are valid HTML or XML documents. Almost all of Genshi&#8217;s logic can be hidden away as attributes which is a great idea. In fact, the templates are even valid XML which makes the creation of valid HTML pages a much more natural experience. Almost all XML tools and even HTML tools like Tidy will work flawlessly on Genshi templates due to these reasons.</p><p>Once you get used to Genshi&#8217;s templates, you might even use them for static web site designing. I am sure it will save you a lot of time whenever those last minute &#8217;sidebar redesigns for every page&#8217; pops up.</p> ]]></content:encoded> <wfw:commentRss>http://www.arunrocks.com/blog/archives/2008/06/26/learning-pylons-through-tutorials/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>5 Indispensable Tips for Emacs on Windows</title><link>http://www.arunrocks.com/blog/archives/2008/02/20/5-indespensible-tips-for-emacs-on-windows/</link> <comments>http://www.arunrocks.com/blog/archives/2008/02/20/5-indespensible-tips-for-emacs-on-windows/#comments</comments> <pubDate>Wed, 20 Feb 2008 08:19:54 +0000</pubDate> <dc:creator>Arun Bhai</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[emacs]]></category> <category><![CDATA[featured]]></category><guid
isPermaLink="false">http://www.arunrocks.com/blog/archives/2008/02/20/5-indespensible-tips-for-emacs-on-windows/</guid> <description><![CDATA[Emacs is generally not very popular on Windows based operating systems. The default installation of Emacs leaves you with a very spartan UI and a very basic editor. However, due to Emacs&#8217; extendibility, you can create a very powerful editor by customizing your .emacs file and making some OS specific tweaks. We will be concentrating [...]]]></description> <content:encoded><![CDATA[<p>Emacs is generally not very popular on Windows based operating systems. The default installation of Emacs leaves you with a very spartan UI and a very basic editor. However, due to Emacs&#8217; extendibility, you can create a very powerful editor by customizing your .emacs file and making some OS specific tweaks. We will be concentrating on the latter as there are plenty of .emacs files floating around for your reference.</p><p>I have 5 simple yet useful tips below, which I have tested with a GNU Emacs 23.0.0.1 (i386-mingw-nt5.1.2600) running on Windows XP.</p><h4>Tip 1: Starting off With a Prettier Emacs</h4><p>Most of us customize the fonts, colours and window position of Emacs. In fact, I have found that dark backgrounds are much suited to Emacs than the default light background. However, when Emacs starts up, it annoyingly shows the default fonts and colours first. As your .emacs files load, it jumps around and changes colours quite noticeably.</p><p>You can avoid this annoyance by making a simple registry modification. Create a new .reg file say <code>set-frame-and-fonts.reg</code> and copy paste the following lines. Open the file to add the changes to the registry. Restart Emacs and enjoy the difference!</p><pre><code>REGEDIT4
[HKEY_CURRENT_USER\SOFTWARE\GNU\Emacs]
"Emacs.Foreground"="black"
"Emacs.Background"="#f5f5f5"
"Emacs.Font"="-outline-Consolas-normal-r-normal-normal-12-90-96-96-c-*-iso8859-1"
"Emacs.Geometry"="100x35+0+0"
</code></pre><p>Caveat: The lines above are my preferred colours, fonts and window positions. Your&#8217;s could be different. Please customize to your taste.</p><h4>Tip #2: Add &#8220;Open In Emacs&#8221; option to all Files</h4><p>This will be indispensable once you are more used to Emacs. You will feel like opening anything and everything with it. And being the one true swiss-army-chainsaw it is, you will be delighted at the enormous no: of filetypes that Emacs supports out of the box.</p><p>This .reg file add an &#8220;Open in Emacs&#8221; option in Windows Explorer when you right click on any file. Copy the following lines to a .reg file say <code>Add-Emacs-To-Open-Any-File.reg</code> and open it to add the changes to the registry. Make sure that you have modified the path below to point to your emacs installation path (mine is in D: drive). The <code>emacsclientw.exe</code> resides in the same place where your <code>runemacs.exe</code> resides (right-clicking on the emacs icon, generally shows you this).</p><pre><code>Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\Shell\Open In Emacs\Command]
@="\"D:\\Program Files\\Emacs23\\bin\\emacsclientw.exe\" -a \"D:\\Program Files\\Emacs23\\bin\\runemacs.exe\" \"%1\""
</code></pre><h4>Tip #3: Goodbye Capslock</h4><p>If you use Emacs a lot, you will find that you have to use the Ctrl key a lot. You might find your left thumb getting strained after prolonged use. The easiest solution for this is to reassign a less used key as the Ctrl key. Most people choose the Caps Lock key for this purpose. It is surprisingly not that much useful and soon you will forget that such a key ever existed.</p><p><img
class="alignright" src="http://farm1.static.flickr.com/77/166430479_6c71422feb_m_d.jpg"></p><p>Whenever I searched, I found that most people swap the Ctrl and Caps Lock keys. However, this is irritating as I might still want to use the old Ctrl key if I press it accidentally. Here is how to <em>replace</em> Caps Lock with the Ctrl Key.</p><p>Copy the following lines to a .reg file say <code>replace_caps.reg</code> and open it to add the changes to the registry. Now just reboot and you are done!</p><pre><code>REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,1d,00,3a,00,00,00,00,00
</code></pre><p>Yes, it takes some time to &#8220;unlearn&#8221; and &#8220;learn&#8221; the new key position, but trust me it&#8217;s worth the effort.</p><h4>Tip #4: Use a Spell Checker</h4><p>A spell checker is something I feel should be a part of any editor. Here is how to enable on the fly spell checking in Emacs.</p><ol><li>Install <a
href="http://aspell.net/win32/">aspell</a></li><li>Add the following lines to your .emacs file (adjust the path to aspell accordingly)</li></ol><p>Elisp:</p><pre><code>;; aspell is the spell checker that works for me
(setq-default ispell-program-name "D:\\Arun\\Home\\bin\\aspell.exe")
(setq text-mode-hook '(lambda()
                         (flyspell-mode t)       ; spellchek (sic) on the fly
                         ))
</code></pre><h4>Tip #5: Setup a Postscript Printer</h4><p>By default, you can pretty-print all your documents directly from emacs. But this requires configuring a postscript printer. There is a nice package called Ghostscript which takes care of doing this.</p><ol><li><p>Download and install <a
href="http://pages.cs.wisc.edu/~ghost/doc/GPL/gpl860.htm">Ghostscript</a> from <a
href="http://mirror.cs.wisc.edu/pub/mirrors/ghost/GPL/gs860/gs860w32.exe">here</a> say at D:\gs</p></li><li><p>Download and install <a
href="http://pages.cs.wisc.edu/~ghost/gsview/get49.htm">GSView</a> from <a
href="http://mirror.cs.wisc.edu/pub/mirrors/ghost/ghostgum/gsv49w32.exe">here</a> say at D:\gs\gsview</p></li><li><p>Then add the following lines to your .emacs file:</p></li></ol><p>Elisp:</p><pre><code>(if (string= system-name "CORPLAPTP65") ; Works in office only
    (progn
      ;;  Windows printer
      (setq-default ps-lpr-command (expand-file-name "/gs/gsview/gsprint.exe"))
      (setq-default ps-printer-name t)
      (setq-default ps-printer-name-option nil)
      (setq ps-lpr-switches '("-query")) ; show printer dialog
      (setq ps-right-header '("/pagenumberstring load" ps-time-stamp-mon-dd-yyyy))))
</code></pre><p>Caveat: Be sure to switch to a light background color scheme before you print, else your fonts will be so light that they won&#8217;t be readable!</p> ]]></content:encoded> <wfw:commentRss>http://www.arunrocks.com/blog/archives/2008/02/20/5-indespensible-tips-for-emacs-on-windows/feed/</wfw:commentRss> <slash:comments>19</slash:comments> </item> <item><title>Decaffeination:: A Short Story</title><link>http://www.arunrocks.com/blog/archives/2006/03/03/decaffeination-a-short-story/</link> <comments>http://www.arunrocks.com/blog/archives/2006/03/03/decaffeination-a-short-story/#comments</comments> <pubDate>Fri, 03 Mar 2006 08:24:47 +0000</pubDate> <dc:creator>Arun Bhai</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[Short Stories]]></category> <category><![CDATA[featured]]></category><guid
isPermaLink="false">http://www.arunrocks.com/blog/?p=81</guid> <description><![CDATA[I&#8217;m trying my hand at fiction after a long time and probably for the first time in this blog. Well, characters, events and places are fictional and the usual legal blah, blah ;)DecaffeinationHer heavily mascaraed eyes flicked towards me across the cubicle barrier. I made a futile attempt to pretend that I didn&#8217;t notice it. [...]]]></description> <content:encoded><![CDATA[<p>I&#8217;m trying my hand at fiction after a long time and probably for the first time in this blog. Well, characters, events and places are fictional and the usual legal blah, blah ;)</p><h2>Decaffeination</h2><p>Her heavily mascaraed eyes flicked towards me across the cubicle barrier. I made a futile attempt to pretend that I didn&#8217;t notice it. Her blank glance meant only one thing &#8211; &#8216;Aren&#8217;t you ready, yet?&#8217; A meeting reminder has suddenly started flashing wildly on my computer screen. Just then somebody just slammed shut a printer tray diagonally behind me. Also the distinct soft thuds of a stilettos striding on the wooden floor again far behind me sounds like war drums. The typically inaudible chatter hundreds of fingers frantically tapping computer keys and depressing mouse buttons have suddenly become unbearably loud. A mixed feeling of sickness and growing anger is brewing in my tummy. I realize I have suddenly become perfectly still.</p><p>She stands up from her seat in one slow lazy motion. Her usual aloof expression almost certainly didn&#8217;t convey intelligence as she presumed. Rather it smacks of snobbishness. This time I don&#8217;t make a futile pretence of ignoring her, on the contrary I decide to acknowledge it. To further affirm my stubbornness in this matter, my chin dips slightly lower down my chest and my eyes dart across its breadth of my computer screen like a skilled Bharatanatyam dancer. The 12 page report I need just a mouse click away. Yet, my hand is still waving the mouse like silly as if waiting for a cue. Then suddenly I got my cue.</p><p><span
id="more-81"></span></p><p>&#8220;We have the weekly meeting now, right?&#8221;</p><p>&#8220;Hmm&#8230;. Oh, right. Just a minute, Sonia&#8221;</p><p>She tries one of her sly smiles which rather disappear in the flashes of her red glossy lips &#8220;Can you take the printouts? I&#8217;m too lazy to hunt for it&#8221;</p><p>Damn you why me? &#8211; I wonder. &#8220;Sure, no problem&#8221;</p><p>You can call it the worst part of the day for a meeting or anything for that matter. At quarter past two just after lunch. Not that a BurgerKing bean burger meal is a particularly sumptuous or satisfying lunch. It just had to weigh down in my belly enough to trigger a mid-afternoon sleep. Not that this drowsy state would affect my performance in this meeting in any manner. In fact, sleep walking would be an ideal strategy to tackle the 15 odd weekly report meetings that I have these days. An impassive reading of the itemized colour coded action points, some vague summary of the tasks performed and a quiet nod to each speaker is all that is needed. No insights, no lateral thinking and god forbid no technical jargon. Paradoxically, being in charge of an IT project the last thing anyone would like to mention in such meetings is anything technical. The &#8216;tech&#8217; stuff is usually so low level that isn&#8217;t worth mentioning. It is at end of the chain, the operational level. It&#8217;s not that you would be scoffed at or even rebuked for talking &#8216;tech&#8217;. But it would be quite apparent that it is slipping through the tunnels between everyone&#8217;s ears. More importantly it would be a career suicide for an IT consultant like me.</p><p>We never needed so many meetings. Originally there was just ONE. It was appropriately on a Wednesday morning. Everyone would promptly appear and we would kick off by reading out the consolidated 4 page report. But then Middle East project became our responsibility and they still wanted the same deadlines. We threw our hands up saying we simply didn&#8217;t have enough flack. It was true. Most of us Indians put in around 12 hours a day. We had drawn out things so tight that we would barely make it to the Haloween release. A certain German manager in fact didn&#8217;t quite appreciate this. Almost callously he claimed that we were underutilized. Like we were donkeys pulling a chariot when we could have actually galloped like horses. So he felt the best thing would be to track everything. From the code reviews to the lunch breaks. Every single bit of it. Perhaps it made him feel that he finally had the whip. Nonetheless, things were actually not improving in any manner.</p><p>The report heavy with graphs slowly loads up on my screen. I&#8217;m just a key press away from printing it. I pickup up my dark hardbound notebook in one hand and my extra strong, extra sweetened cup of tea in the other. I will badly need the latter in the next one hour. In fact I&#8217;ll actually need 3 such cups. But for now &#8211; this will do. This one was freshly brewed a minute ago. A minute ago when I punched the code 53 on the machine for the eight time today. When a Styrofoam cup popped down from within and the machine started whirring loudly. The tiny nozzles above the cup started spurting some liquids and steam in a premeditated sequence. They built up a foam which made delicious noises as it rose to the brim. Without even looking I picked up the cup timed to perfection as the last drop dripped down to the cup. One minute later, I look at the cup now, the foam is still intact. Perfecto, I murmured.</p><p>Then I catapult from my seat and press the print button and dash towards the printer. As the pages spew into the tray, my notebook appears like an enormous chainsaw and I&#8217;m mentally sawing down one big tree after another. I collect 24 pages of single sided print on bond quality paper for stapling. My stapler makes a vacant click reminding me that it was devoid of pins since last week. Without even thinking twice I pick up the nearest stapler and the deed is done.</p><p>All the while Sonia was waiting armed with her spiral bound notebook, office supplied pen and the bloody same aloof expression. She had worn her usual black jumper and black trousers. As popular wisdom goes Black can be quite flattering for women wishing to look slim. Honestly, it hardly helped much on her 150 pound frame. I gave a tiny smile indicating that I&#8217;m ready. That smile got amplified, sugar coated, mixed with a hint of a yawn and flashed back to me in bright red lips. I tried to mildly joke something about the recently proliferation of reports. She chortled in her usually highly pitched tone, which almost startled me in mid motion.</p><p>&#8220;Would anybody from CHIRP apps join us?&#8221; she mouthed in her heavily south Brit accent.</p><p>&#8220;I suppose not. Neither Jennifer or Kiran accepted the meeting request. I guess they have no outstanding tasks this week.&#8221;</p><p>&#8220;Hmmm, I suppose they don&#8217;t. But we can still dial them up from the conference room&#8221;</p><p>I didn&#8217;t quite hear her last sentence. I guess her 3 inch heels rhythmically pounding the carpeted floor was drowning it. A short tuft of hair over her forehead kept vibrating in rhythm. Her exaggerated movement came to an abrupt stop. I reached out and punched the lift button.</p><p>She kept watching impatiently at the LED display of the lift. I looked though the bright window at the end of the alley. It was a warm day in London today and a perfect time to be outdoors. I could see a group of young identically dressed balle dancers by the streets walking to the nearby park. Some were leaping and spinning with graceful ease. Further across, little chubby English children played hopscotch or sat on seesaws in the park. A pale thin young woman was sitting against a short cherry tree and was half amused by her over enthusiastic chestnut coloured Doberman. Her cheerful face couldn&#8217;t hide her longing, but right now, the sun and her life looked bright.</p><p>The lift opened with a ring. As the doors slid open, a tall slender formally dressed black Brit rushed out. He was momentarily confused which way to turn. He chose right and decided to run. Sonia stepped in almost immediately. I dragged myself in. She lifted her manicured fingers all the way up to button 14. Thanks to the extra 3 inches she didn&#8217;t have to try too hard.</p><p>&#8216;Kapil, going home for Diwali?&#8217;</p><p>I could almost feel the nausea now. &#8216;No&#8217;, I replied.</p><p>&#8216;Hmm&#8230; why?&#8217;, she enquired</p><p>In a low voice I replied, &#8216;Not that many leaves left actually&#8217;</p><p>&#8216;Bummer. Don&#8217;t worry, we can celebrate it over here this time.&#8217;</p><p>I looked at her face hoping she was joking. Hell, she wasn&#8217;t! After all it isn&#8217;t quite surprising actually. She looked unmistakable like any other Punjabi girl. Except perhaps for her bobbed silky looking hair dyed in psychedelic colours. Except perhaps for her near perfect south Brit accent. Except for her childhood, which perhaps had fleeting trips to Punjab once in a year, which would now be more of a repulsive memory of a poverty stricken country.</p><p>Of course she wasn&#8217;t an Indian. She wouldn&#8217;t know what it is like to be home at Diwali. More importantly she wouldn&#8217;t know what it is like not to be home at Diwali. An ignoramus. A cross cultural freak. A word that&#8217;s stripped of its etymology. Pathetic!</p><p>I tried to smile. She smiled back, this time more meaningfully. Did she actually peek into the mind of Kapil Sharma for a moment? I cannot say. Perhaps she did. Perhaps she did look a bit pretty now. She had wide telling eyes. I had forgotten.</p><p>The lift pulled itself to a halt. As I stepped outside I heard a familiar voice to my left. It was my project manager, Hari. Meticulously dressed in a cream pinstripe shirt and black blazer, he was slowly pacing about the walkway. To a casual observer, he could be seen as loudly talking and gesturing to an invisible person, almost like a lunatic. But, a thin wire dangling in front of him is the sole proof of his sanity. He must be speaking via his hands-free to his offshore project manager over a teleconference. His voice is barely audible but one can sense that things are not quite happy there.</p><p>As I walked the wire seemed more like a leash around Hari&#8217;s neck. The mobile he held in one hand seemed to have firmly held its other end. It seemed to have slowly tightened its grip on Hari, till his thickly mustached lips moved and muttered something out of sheer compulsion. He never saw me. I turned and realized Sonia was already entering the meeting room.</p><p>I entered the tiny room with a circular table and few plush plastic chairs. I handed over Sonia&#8217;s copy of the report to her. I placed my black notebook and tea on the mahogany table just next to her. I opened my notebook and leaved through the notes of all my earlier meetings. I found a blank page and scribbled down the date at the upper left corner. As I&#8217;m about to write, I&#8217;m now aware of a familiar feeling in me. I&#8217;m still wondering &#8211; which meeting is this?</p> ]]></content:encoded> <wfw:commentRss>http://www.arunrocks.com/blog/archives/2006/03/03/decaffeination-a-short-story/feed/</wfw:commentRss> <slash:comments>9</slash:comments> </item> </channel> </rss><!--
This site's performance optimized by W3 Total Cache. Dramatically improve the speed and reliability of your blog!

Learn more about our WordPress Plugins: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (user agent is rejected)
Database Caching 6/12 queries in 0.008 seconds using disk

Served from: mshawking.asmallorange.com @ 2010-07-31 11:27:53 -->