<?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>Nishith Nand</title>
	<atom:link href="http://www.nishithnand.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.nishithnand.com</link>
	<description></description>
	<lastBuildDate>Wed, 11 Jul 2012 02:22:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Python Style &#8211; Learning plan</title>
		<link>http://www.nishithnand.com/python-style-learning-plan/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=python-style-learning-plan</link>
		<comments>http://www.nishithnand.com/python-style-learning-plan/#comments</comments>
		<pubDate>Fri, 13 Apr 2012 01:25:45 +0000</pubDate>
		<dc:creator>Nishith Nand</dc:creator>
				<category><![CDATA[Craftmanship]]></category>

		<guid isPermaLink="false">http://www.nishithnand.com/?p=92</guid>
		<description><![CDATA[Here is my updated learning plan, incorporating some of the feedback that I received. Learning plan 1. Write small programs without worrying about style. (CodeEval, Topcoder) 2. When sufficient number (5) of programs has been completed, go through each of them and find the 2 most common variations from PEP8. If no differences are found [...]]]></description>
			<content:encoded><![CDATA[<p>Here is my updated learning plan, incorporating some of the feedback that I received.</p>
<p>Learning plan</p>
<p>1.	Write small programs without worrying about style. (CodeEval, Topcoder)<br />
2.	When sufficient number (5) of programs has been completed, go through each of them and find the 2 most common variations from PEP8. If no differences are found go to step 5.<br />
3.	Write more small programs, keeping in mind the 2 differences identified.<br />
4.	Go to step 2.<br />
5.	Write a medium sized c program.<br />
6.	Translate that to python.<br />
7.	Check it for variations from PEP8, if found repeat steps 2 and 3 with medium sized programs, else go to 8.<br />
8.	Start an open source project in Python. Check it thoroughly for PEP8 compliant, invite others to do this.</p>
<p>Metrics</p>
<p>Number of differences from PEP8 per 100 lines of coding.<br />
Number of surprises in the code for a python expert.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nishithnand.com/python-style-learning-plan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Gilded Rose Kata</title>
		<link>http://www.nishithnand.com/the-gilded-rose-kata/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-gilded-rose-kata</link>
		<comments>http://www.nishithnand.com/the-gilded-rose-kata/#comments</comments>
		<pubDate>Fri, 13 Apr 2012 01:16:31 +0000</pubDate>
		<dc:creator>Nishith Nand</dc:creator>
				<category><![CDATA[Craftmanship]]></category>

		<guid isPermaLink="false">http://www.nishithnand.com/?p=87</guid>
		<description><![CDATA[The problem &#8211; Gilded rose kata Solution 1 &#8211; Clean up of the provided code Solution 2 &#8211; Different and much improved approach Set of tests Gilded rose kata is a problem of special cases. The problem statement starts with a simple requirement of decreasing the value of an item as its sell by date [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://craftsmanship.sv.cmu.edu/posts/gilded-rose-kata" title="Gilded rose kata" target="_blank">The problem &#8211; Gilded rose kata</a><br />
<a href="https://github.com/Nishith/Katas/blob/master/Gilded_Rose1.py" title="first attempt at Gilded Rose" target="_blank">Solution 1 &#8211; Clean up of the provided code</a><br />
<a href="https://github.com/Nishith/Katas/blob/master/Gilded_Rose.py" title="Second attempt at the Gilded Rose Kata" target="_blank">Solution 2 &#8211; Different and much improved approach</a><br />
<a href="https://github.com/Nishith/Katas/blob/master/Gilded_Rose_tests.py" title="Tests" target="_blank">Set of tests</a></p>
<p><a href="http://craftsmanship.sv.cmu.edu/posts/gilded-rose-kata" title="Gilded rose kata" target="_blank">Gilded rose kata</a> is a problem of special cases. The problem statement starts with a simple requirement of decreasing the value of an item as its sell by date approaches. It then goes on to introduce a multitude of special cases. The kata in itself is not difficult to solve, what is difficult though is to keep the code readable and extensible. The sample code provided with the kata almost follows the problem statement completely, starting with the simple requirement and then adding a lot of conditionals to handle the special cases. This makes the code hard to understand and the behavior for a single item is broken down and handled at multiple places making it very hard to add new functionality.<br />
In my <a href="https://github.com/Nishith/Katas/blob/master/Gilded_Rose1.py" title="first attempt at Gilded Rose" target="_blank">frist attempt at the problem </a> I tried to reduce the nesting level of the original code and handle an individual item at a single place, so that if the rule for that changed then it would be easy to change it in the code. This was, I think, a fairly decent attempt and the code looked a lot friendlier then the original version. But there were still too many special cases handling conditionals embedded in the code. </p>
<p>For my <a href="https://github.com/Nishith/Katas/blob/master/Gilded_Rose.py" title="Second attempt at the Gilded Rose Kata" target="_blank">second attempt at the kata</a> I decided to take a completely different approach. I created individual functions for each of the rules that was applied to the items to handle their attributes on each update. I also added a dictionary which bound each item to the rule that it was tied to. The code is pretty self-explanatory and commented where required. This approach turned out really well and the code is now very easy to understand and very extensible.</p>
<p>Doing the kata more than once was very useful because it made me think of different ways to solve the problem, something that I might not have done other wise. That led to finding a different and much improved solution.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nishithnand.com/the-gilded-rose-kata/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apprenticeship: Journey for craft improvement</title>
		<link>http://www.nishithnand.com/apprenticeship/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=apprenticeship</link>
		<comments>http://www.nishithnand.com/apprenticeship/#comments</comments>
		<pubDate>Tue, 27 Mar 2012 03:46:47 +0000</pubDate>
		<dc:creator>Nishith Nand</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.nishithnand.com/?p=80</guid>
		<description><![CDATA[As an effort to improve my craft, I am starting an apprenticeship, as described in the very helpful book &#8220;Apprenticeship Patterns&#8221; by Hoover and Oshineye. My current goal is to improve my python coding style. While using python, I tend to write C code with python syntax, instead of using the language features which can [...]]]></description>
			<content:encoded><![CDATA[<p>As an effort to improve my craft, I am starting an apprenticeship, as described in the very helpful book <a href="http://www.amazon.com/Apprenticeship-Patterns-Guidance-Aspiring-Craftsman/dp/0596518382/ref=sr_1_1?ie=UTF8&#038;qid=1332819293&#038;sr=8-1" title="Apprenticeship Patterns" target="_blank">&#8220;Apprenticeship Patterns&#8221;</a> by Hoover and Oshineye. </p>
<p>My current goal is to improve my python coding style. While using python, I tend to write C code with python syntax, instead of using the language features which can make the task easier and my code cleaner. </p>
<p>For me Software Craftsmanship includes the notion of building higher quality products. It includes my ability to identify the correct tool for the job and to apply it to its full merit. I want to get better at utilizing the tools at my disposal to their potential. For this purpose, I have created the following learning plan.</p>
<p>Learning plan</p>
<p>1.	Write small programs without worrying about style.<br />
2.	When sufficient number (10?) of programs are complete, go through each of them and find the 2 most common variations from PEP8. If no differences are found go to step 5.<br />
3.	Write more small programs, keeping in mind the 2 differences identified.<br />
4.	Go to step 2.<br />
5.	Write a medium-sized c program.<br />
6.	Translate that to python.<br />
7.	Check it for variations from PEP8, if found repeat steps 2 and 3 with programs of medium size, else go to 8.<br />
8.	Start an open source project in Python. Check it thoroughly for PEP8 compliance, invite others to do this.</p>
<p>And my metric to measure my improvement is &#8220;the number of differences from PEP8 per 100 lines of code&#8221;.</p>
<p>I know that lines of code is generally not a good metric but since this is only for myself, there is no incentive to game the system. So, I think this should work.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nishithnand.com/apprenticeship/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing wordpress on nearly free speech</title>
		<link>http://www.nishithnand.com/installing-wordpress-on-nearly-free-speech/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=installing-wordpress-on-nearly-free-speech</link>
		<comments>http://www.nishithnand.com/installing-wordpress-on-nearly-free-speech/#comments</comments>
		<pubDate>Sun, 19 Feb 2012 23:09:11 +0000</pubDate>
		<dc:creator>Nishith Nand</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.nishithnand.com/?p=4</guid>
		<description><![CDATA[Download the wordpress package. Upload it using sftp. Create a mysql process. SSH into the site. Rename the wp-config-sample.php file to wp-config.php. Add the database details to the wp-config.php]]></description>
			<content:encoded><![CDATA[<p>Download the wordpress package.</p>
<p>Upload it using sftp.</p>
<p>Create a mysql process.</p>
<p>SSH into the site.</p>
<p>Rename the wp-config-sample.php file to wp-config.php.</p>
<p>Add the database details to the wp-config.php</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nishithnand.com/installing-wordpress-on-nearly-free-speech/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
