<?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>Hitesh Sarda &#187; Education</title>
	<atom:link href="http://hitesh.in/category/education/feed/" rel="self" type="application/rss+xml" />
	<link>http://hitesh.in</link>
	<description>Thoughts on life, technology, education and entrepreneurship</description>
	<lastBuildDate>Thu, 29 Mar 2012 17:13:06 +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>Machine Learning: My notes.</title>
		<link>http://hitesh.in/2011/machine-learning-my-notes/</link>
		<comments>http://hitesh.in/2011/machine-learning-my-notes/#comments</comments>
		<pubDate>Sat, 24 Dec 2011 15:00:44 +0000</pubDate>
		<dc:creator>Hitesh</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[ml-class]]></category>

		<guid isPermaLink="false">http://hitesh.in/?p=641</guid>
		<description><![CDATA[I recently finished the machine learning class offered online by Stanford. It was a great experience. Since I would not be using ML any time soon, I plan to make a few blog posts to capture my learning while they &#8230; <a href="http://hitesh.in/2011/machine-learning-my-notes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I recently finished the <a href="http://www.ml-class.org/">machine learning class</a> offered online by Stanford. It was a great experience. Since I would not be using ML any time soon, I plan to make a few blog posts to capture my learning while they are still current. This should help me recollect the concepts on a later date. If someone finds these notes useful, that is an added benefit.</p>
<h2>Machine learning</h2>
<p>Arthur Samuel (1959): Field of study that gives computers the ability to learn without being explicitly programmed.</p>
<p><span id="more-641"></span>Machine learning algorithms (covered in the class):</p>
<ul>
<li>­Supervised learning
<ul>
<li><a title="Linear regression" href="http://hitesh.in/2011/linear-regression/">Linear Regression</a></li>
<li>Logistic Regression (Classification)</li>
<li>Neural Networks</li>
<li>Support Vector Machine</li>
</ul>
</li>
</ul>
<ul>
<li>­Unsupervised learning
<ul>
<li>k-Means clustering</li>
<li>Principal Component Analysis</li>
</ul>
</li>
</ul>
<h3>My understanding of machine learning:</h3>
<p>Given a set of examples with certain features; the ability of  a computer to approach, and surpass, the ability of a human expert at analysing and extracting meaning out of the given data.</p>
<h3>Important points about ML:</h3>
<ol>
<li value="1">If a human expert does not find the data sufficient to come up with a conclusion, then the computer is unlikely to perform any better.</li>
<li value="2">All machine learning algorithms are based on mathematics, and thus expect all data to be numbers.</li>
<li value="3">Usually more data is better, but not if the data is redundant. That is, duplicate examples or features.</li>
</ol>
<p>More to come in future posts.</p>
]]></content:encoded>
			<wfw:commentRss>http://hitesh.in/2011/machine-learning-my-notes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coding is like cricket</title>
		<link>http://hitesh.in/2011/coding-is-like-cricket/</link>
		<comments>http://hitesh.in/2011/coding-is-like-cricket/#comments</comments>
		<pubDate>Sun, 03 Apr 2011 07:46:59 +0000</pubDate>
		<dc:creator>Hitesh</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Everything else]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[cricket]]></category>
		<category><![CDATA[India]]></category>

		<guid isPermaLink="false">http://hitesh.in/?p=617</guid>
		<description><![CDATA[With the stunning world cup victory behind us, it&#8217;s time to reflect on what lessons we can learn from it. I am sure cricket needs no introduction, so let me get on with what I have learnt from mostly watching, &#8230; <a href="http://hitesh.in/2011/coding-is-like-cricket/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>With the stunning world cup victory behind us, it&#8217;s time to reflect on what lessons we can learn from it. I am sure cricket needs no introduction, so let me get on with what I have learnt from mostly watching, and very little playing, cricket.</p>
<h3>Uncertainty, the name of the game</h3>
<p>Cricket is the game glorious of uncertainties, and developers&#8217; lives are no less uncertain, just not glorious. Both cricketers and developers need to be flexible and adjust to new situations. Be it change in requirements or the target score. Deal with the uncertainties of the pitch or the legacy code base.</p>
<h3><span id="more-617"></span>Team work is important</h3>
<p>Although there could be solo efforts that can steal the limelight, the fact remains that you need a team to win. You might think that a solo developer can deliver, but I will like to remind that, invariably this solo developer is building on works of thousands of other developers by using other libraries or frameworks.</p>
<h3>Different skills make the difference</h3>
<p>It takes all type to win the game. You might have all-rounders which add value, but specialists are also needed as there are very few all-rounder that are better than the best specialists. Similarly all kinds of skills are needed for coding, and rarely is there a dev with all skills. Talking of skills, I believe, you are born with the needed skills, but it takes years of practise to master those skills.</p>
<p>With skills you need attitude, that state of mind, which drives your actions. These are the common and opposing personalities that we encounter and each is needed as much as the other.</p>
<ul>
<li>
<div>The blaster and the wall</div>
</li>
<li>
<div>The meticulous and the flamboyant</div>
</li>
<li>
<div>The artist and the scientist</div>
</li>
</ul>
<h3>The Game Play</h3>
<p>There is a definite need to be agile, to take stock of the burn-down or the run-rate after each over, and to revise your strategy accordingly. Breaking the target into sprints or sessions and finally, being time bound.</p>
<h3>How to succeed</h3>
<p>Like any thing in life, both coding and cricket need passion and commitment to succeed. There are only a few professions, where you do in the weekend, what you do during the week. You need continuously work on your skills even when not in office or a tournament.</p>
<p>There is a need for continuous improvement and to keep abreast with changed rules and strategies. The core tools remain the same, but the way you yield them differ over time.</p>
<h3>One more thing</h3>
<p>Both are literally back-breaking works but both pay well!</p>
<p>There is a conscious effort to remove the &#8216;male only&#8217; label and involve the women as well, with good success.</p>
]]></content:encoded>
			<wfw:commentRss>http://hitesh.in/2011/coding-is-like-cricket/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programming for kids</title>
		<link>http://hitesh.in/2010/programming-for-kids/</link>
		<comments>http://hitesh.in/2010/programming-for-kids/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 21:09:35 +0000</pubDate>
		<dc:creator>Hitesh</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Kids]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://hitesh.in/?p=557</guid>
		<description><![CDATA[We spent the long Easter weekend, lazing happily indoors since the weather did not permit going out. I wondered if the time could have been spent better, and started researching if my older daughter is old enough to start programming. &#8230; <a href="http://hitesh.in/2010/programming-for-kids/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="display: inline; border: 0px initial initial;" title="logo-easter" src="http://hitesh.in/wp-content/uploads/2010/04/logoeaster.png" border="0" alt="logo-easter" width="206" height="70" /> We spent the long Easter weekend, lazing happily indoors since the weather did not permit going out. I wondered if the time could have been spent better, and started researching if my older daughter is old enough to start programming.</p>
<h3>Little background</h3>
<p>My daughter will soon be six and she can use the computer very well for the usual tasks and I think she is a bit ahead of the curve, but that might just be a father speaking <img src='http://hitesh.in/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The big bottleneck, I see, is her poor English skills. English not being our native tongue and she going to a German kindergarten, has limited her knowledge of English to a few words and phrases. Thus reading and writing code is going to be a challenge.</p>
<h3>Visual programming</h3>
<p>Given the language &#8216;handicap&#8217;, I started looking out for what the best way to visually teach programming, which does not involve much reading and writing. A little research resulted in 3 options, 2 of which are old and I had come across and one that is pretty new.<span id="more-557"></span></p>
<h4>Alice</h4>
<p><a href="http://www.alice.org/" target="_blank">Alice</a> is project from Carnegie Mellon University, with a lot of industry backing. It is quite mature, but does not seem to be actively developed. for example Alice 3.0 is under development for over 4 years and still in a beta state. The recommended documentation is to buy the &#8216;Learning to Program with Alice&#8217; book.</p>
<p>In addition, it is targeted towards high school students, although and interesting, but unsupported side project, <a href="http://www.alice.org/kelleher/storytelling/index.html">Storytelling Alice</a> is targeted towards younger children.</p>
<p>For now, I have decided to give it a slip and will revisit once Alice 3.0 is more stable.</p>
<h4>Scratch</h4>
<p><a href="http://scratch.mit.edu/" target="_blank">Scratch</a> is a project from MIT. It has a smaller learning curve, but is more limited compared to Alice. I <em>think</em> it only supports 2D compared to 3D support from Alice. This makes it more approachable for younger kids. In addition there are tons of lesson plans, documentation and samples available. Scratch has built-in sharing and there are literally a million user submitted projects.</p>
<p>All in all, I think Scratch will be a good starting point for my daughter. But, there&#8217;s more</p>
<h4>Kodu</h4>
<p>The latest entrant on the scene is <a href="http://fuse.microsoft.com/kodu/" target="_blank">Kodu</a>, a Microsoft Research project. originally written for Xbox as a meta game (a game builder), a technical preview for PC has recently being released. It is a very visually engaging and has a polished feel to it. Given that it is a fairly new project, the documentation is lacking, save for the in <em>game</em> help and sample, and a few blog posts. Let&#8217;s see how it goes. There is always Scratch to fall back on.</p>
<p><img style="display: block; float: none; margin-left: auto; margin-right: auto; border: 0px;" title="image" src="http://hitesh.in/wp-content/uploads/2010/04/image.png" border="0" alt="image" width="644" height="364" /></p>
<h5>And</h5>
<p>Oh yes, there are a few more options, especially Logo and Lego Mindstorms NXT.</p>
]]></content:encoded>
			<wfw:commentRss>http://hitesh.in/2010/programming-for-kids/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Kid Project: Making paper</title>
		<link>http://hitesh.in/2010/kid-project-making-paper/</link>
		<comments>http://hitesh.in/2010/kid-project-making-paper/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 21:22:29 +0000</pubDate>
		<dc:creator>Hitesh</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Kids]]></category>
		<category><![CDATA[paper]]></category>
		<category><![CDATA[skills]]></category>

		<guid isPermaLink="false">http://hitesh.in/?p=447</guid>
		<description><![CDATA[I was trying to explain paper-recycling to my daughter, then thought it is best we do it together. Thus came about a weekend project to make paper from waste papers. Although the end result was not that great, I think &#8230; <a href="http://hitesh.in/2010/kid-project-making-paper/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was trying to explain paper-recycling to my daughter, then thought it is best we do it together. Thus came about a weekend project to make paper from waste papers. Although the end result was not that great, I think she understood the concepts.</p>
<p>She was super excited and did most of the steps herself, including taking the pictures.</p>
<p>Here is a pictorial guide to making your own &#8216;hand-made&#8217; paper.</p>

<a href='http://hitesh.in/2010/kid-project-making-paper/attachment/001/' title='Cut some waste paper'><img width="300" height="225" src="http://hitesh.in/wp-content/uploads/2010/01/001-300x225.jpg" class="attachment-thumbnail" alt="Cut some waste paper" title="Cut some waste paper" /></a>
<a href='http://hitesh.in/2010/kid-project-making-paper/attachment/009/' title='Put in a blender'><img width="300" height="225" src="http://hitesh.in/wp-content/uploads/2010/01/009-300x225.jpg" class="attachment-thumbnail" alt="Put the paper and some water in a blender" title="Put in a blender" /></a>
<a href='http://hitesh.in/2010/kid-project-making-paper/attachment/010/' title='Make a smooth pulp'><img width="300" height="225" src="http://hitesh.in/wp-content/uploads/2010/01/010-300x225.jpg" class="attachment-thumbnail" alt="Make a smooth pulp" title="Make a smooth pulp" /></a>
<a href='http://hitesh.in/2010/kid-project-making-paper/attachment/011/' title='Add some corn flour'><img width="300" height="225" src="http://hitesh.in/wp-content/uploads/2010/01/011-300x225.jpg" class="attachment-thumbnail" alt="Add some corn flour or glue for binding" title="Add some corn flour" /></a>
<a href='http://hitesh.in/2010/kid-project-making-paper/attachment/012/' title='Pour it'><img width="300" height="225" src="http://hitesh.in/wp-content/uploads/2010/01/012-300x225.jpg" class="attachment-thumbnail" alt="Pour in a sieve to remove excess water" title="Pour it" /></a>
<a href='http://hitesh.in/2010/kid-project-making-paper/attachment/014/' title='Pat it'><img width="300" height="225" src="http://hitesh.in/wp-content/uploads/2010/01/014-300x225.jpg" class="attachment-thumbnail" alt="Use a sponge to remove as much water a possible" title="Pat it" /></a>
<a href='http://hitesh.in/2010/kid-project-making-paper/attachment/016/' title='Flatten it'><img width="300" height="225" src="http://hitesh.in/wp-content/uploads/2010/01/016-300x225.jpg" class="attachment-thumbnail" alt="Flatten it" title="Flatten it" /></a>
<a href='http://hitesh.in/2010/kid-project-making-paper/attachment/018/' title='Dry it'><img width="300" height="225" src="http://hitesh.in/wp-content/uploads/2010/01/018-300x225.jpg" class="attachment-thumbnail" alt="Dry it on a non stick surface" title="Dry it" /></a>
<a href='http://hitesh.in/2010/kid-project-making-paper/attachment/020/' title='Press it'><img width="300" height="225" src="http://hitesh.in/wp-content/uploads/2010/01/020-300x225.jpg" class="attachment-thumbnail" alt="Press it,weigh it down and let it dry." title="Press it" /></a>
<a href='http://hitesh.in/2010/kid-project-making-paper/attachment/021/' title='Done'><img width="300" height="225" src="http://hitesh.in/wp-content/uploads/2010/01/021-300x225.jpg" class="attachment-thumbnail" alt="When it dries, you have your own home made paper." title="Done" /></a>

]]></content:encoded>
			<wfw:commentRss>http://hitesh.in/2010/kid-project-making-paper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3 Idiots &#8211; The nitpicking</title>
		<link>http://hitesh.in/2010/3-idiots-the-nitpicking/</link>
		<comments>http://hitesh.in/2010/3-idiots-the-nitpicking/#comments</comments>
		<pubDate>Fri, 01 Jan 2010 12:20:09 +0000</pubDate>
		<dc:creator>Hitesh</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Everything else]]></category>
		<category><![CDATA[3idiots]]></category>
		<category><![CDATA[movie]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://hitesh.in/?p=415</guid>
		<description><![CDATA[I watched 3 Idiots yesterday, and could not resist reviewing it. This review is not about how great the movie is. There are several of those on the net. Let me be quick in saying that my family and I &#8230; <a href="http://hitesh.in/2010/3-idiots-the-nitpicking/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://hitesh.in/wp-content/uploads/2010/01/3idiots.jpg"><img style="display: inline; margin-left: 0px; margin-right: 0px; border-width: 0px;" title="3 idiots" src="http://hitesh.in/wp-content/uploads/2010/01/3idiots_thumb.jpg" border="0" alt="3 idiots" width="320" height="279" align="right" /></a> I watched 3 Idiots yesterday, and could not resist reviewing it. This review is not about how great the movie is. There are <a href="http://www.google.co.in/search?q=3+idiots+review" target="_blank">several of those</a> on the net.</p>
<p>Let me be quick in saying that my family and I loved the film and think it is one of the best movie. It is a good take on the state of education in the country, a subject I feel strongly about. This is also not about Chetan Bhagat, although the nit-picking could apply to Five Point Someone as well. But I haven&#8217;t read it, so can&#8217;t say.</p>
<h3>I expected more from Aamir, the perfectionist.</h3>
<p>I was born in 1978, the same year that Farhan Qureshi (Madhavan) was born. So I felt more connected to the movie than the current generation. This also means that the college period depicted in the movie was the same period I was in college, which is roughly 1995-1999.</p>
<h3>So what?</h3>
<p>Well you see, a few of the things shown in the movie are, let&#8217;s say, futuristic.</p>
<h4>Mobile Phones</h4>
<p>Mobile phones were launched in India after 1994. The call charges in a &#8216;scheme&#8217; were 16 Rs. incoming/outgoing. They were not mainstream until 2000 when charges began to drop. Even then, in 2000, I was the only one in my MBA college to have a mobile phone, and that too was given to me by my employer.</p>
<p>So showing engineering college students carrying a phone, pre 1999, was a bit of a stretch.</p>
<h4>Mobile Internet</h4>
<p>Even if you think &#8216;chote&#8217; (Rancho) was rich enough to carry a mobile, the movie shows mobile internet being used in the hospital for video conferencing.</p>
<ul>
<li>Internet in 1999 was the good old modem based dialup internet at blazing speeds of 56 kbps. Broadband Internet was unheard of until 2005.</li>
<li>Mobile Data Cards / USB Modems were launched in 2008/2009.</li>
<li>Even then, I don&#8217;t think the speed that Airtel EDGE gives is insufficient for video conferencing. I don&#8217;t know for sure, since I am not using one.</li>
</ul>
<h4>Scooter</h4>
<p>The scooter that Pia (Kareena) drives looks most certainly like Kinetic Flyte, which was only <a href="http://autonewsjunction.blogspot.com/2009/05/mahindra-kinetic-flyte-125cc-scooter.html" target="_blank">launched in 2009</a>.</p>
<h4>Bottomline</h4>
<p>With a little research, which Aamir Khan is known for, the film could have been more realistic. Anyways, if you haven&#8217;t seen the movie, please do, it is really good.</p>
<p><em>P.S. Happy New Year.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://hitesh.in/2010/3-idiots-the-nitpicking/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Django Flowchart</title>
		<link>http://hitesh.in/2009/django-flow/</link>
		<comments>http://hitesh.in/2009/django-flow/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 12:18:05 +0000</pubDate>
		<dc:creator>Hitesh</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[flowchart]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://hitesh.in/?p=396</guid>
		<description><![CDATA[Based on my current understanding of Django, this is how a user request is responded to. User requests a page Request reaches Request Middlewares, which could manipulate or answer the request The URLConffinds the related View using urls.py View Middlewares &#8230; <a href="http://hitesh.in/2009/django-flow/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Based on my current understanding of Django, this is how a user request is responded to. </p>
<p><img src="http://hitesh.in/wp-content/uploads/2009/12/120909_1217_DjangoFlowc1.png" alt="Django Flowchart" /></p>
<ol>
<li>User requests a page</li>
<li>Request reaches <em>Request Middlewares</em>, which could manipulate or answer the request</li>
<li>The <em>URLConf</em>finds the related View using urls.py</li>
<li><em>View Middlewares</em> are called, which could manipulate or answer the request</li>
<li>The <em>view</em> function is invoked</li>
<li>The view could optionally access data through models</li>
<li>All <em>model</em>-to-DB interactions are done via a <em>manager</em></li>
<li>Views could use a special <em>context </em>if needed</li>
<li>The context is passed to the <em>Template </em>for rendering</li>
</ol>
<ol style="list-style-type:lower-alpha">
<li>Template uses <em>Filters</em> and <em>Tags</em> to render the output</li>
<li>Output is returned to the view</li>
<li><em>HTTPResponse</em> is sent to the <em>Response Middlerwares</em></li>
<li>Any of the response middlewares can enrich the response or return a completely new response</li>
<li>The response is sent to the user&#8217;s browser.</li>
</ol>
<p>Please leave a comment if I have got something wrong. </p>
]]></content:encoded>
			<wfw:commentRss>http://hitesh.in/2009/django-flow/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Week with python &amp; Django</title>
		<link>http://hitesh.in/2009/week-with-python-django/</link>
		<comments>http://hitesh.in/2009/week-with-python-django/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 13:00:40 +0000</pubDate>
		<dc:creator>Hitesh</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[pinax]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://hitesh.in/?p=386</guid>
		<description><![CDATA[Spent the last week picking up Python and Django. Notes to self and anyone else who wants a quick start on Python/Django on Windows. Most Linux flavours already come with most tools needed for python development. Requirements: Installed ActivePython 2.6 &#8230; <a href="http://hitesh.in/2009/week-with-python-django/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Spent the last week picking up Python and Django. Notes to self and anyone else who wants a quick start on Python/Django on Windows. Most Linux flavours already come with most tools needed for python development.</p>
<h3>Requirements:</h3>
<ul>
<li><span style="background-color: #ffffff;">Installed <a href="http://downloads.activestate.com/ActivePython/windows/2.6/ActivePython-2.6.4.8-win32-x86.msi" target="_blank">ActivePython 2.6</a></span></li>
<li><span style="background-color: #ffffff;">Installed <a href="http://downloads.activestate.com/Komodo/releases/5.2.3/Komodo-Edit-5.2.3-4312.msi" target="_blank">Komodo Edit</a></span></li>
<li><span style="background-color: #ffffff;">Installed <a href="http://sourceforge.net/projects/pywin32/files/" target="_blank">Python Win32 Extensions</a> (not sure why, but was recommended in some blog post and the project itself does not say much of what it does. Stuff like this gives me the heebie-jeebies.)</span></li>
<li><span style="background-color: #ffffff;">Installed <a href="http://downloads.pinaxproject.com/Pinax-0.7.1-bundle.zip" target="_blank">Pinax</a>, which in turn installed Django.</span></li>
<li><span style="background-color: #ffffff;"><span style="text-decoration: line-through;">Installed </span><a href="http://www.riverbankcomputing.com/software/pyqt/download" target="_blank"><span style="text-decoration: line-through;">PyQt4</span></a></span></li>
<li><span style="background-color: #ffffff;"><span style="text-decoration: line-through;">Installed </span><a href="http://eric-ide.python-projects.org/eric4-download.html" target="_blank"><span style="text-decoration: line-through;">Eric4</span></a> (uninstalled after using it for 10 minutes)</span></li>
</ul>
<h3>Problems faced:</h3>
<ul>
<li>Pinax installation was a bit flawed, it could not install all dependencies. Worked around by manually installing (pip install else easy_install)</li>
<li>Windows 7 was not passing command line arguments to .py scripts. Had to hack registry and add <strong>%*</strong> to the end to make it work. See the Key and value below.</li>
</ul>
<p><a href="http://hitesh.in/wp-content/uploads/2009/12/image.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Registry screenshot" src="http://hitesh.in/wp-content/uploads/2009/12/image_thumb.png" border="0" alt="Registry screenshot" width="640" height="158" /></a></p>
<h3>Getting started:</h3>
<p><strong>Python</strong>: Like everyone else, I followed and recommend <a href="http://diveintopython.org/toc/index.html" target="_blank">&#8216;Dive Into Python&#8217;</a>. But more importantly, this <a href="http://diveintopython.org/appendix/tips.html" target="_blank">page of titbits</a> is amazing extract from the book and quickly brings a Java dev up to speed. I should blog about &#8216;Python for Java developers&#8217;. Time spent 4 hrs.</p>
<p><strong>Pinax</strong>: Stopped at the <a href="http://pinaxproject.com/docs/0.7/install.html" target="_blank">installation step</a>. Will delve further after understanding Django better.</p>
<p><strong>Django</strong>: Followed <a href="http://docs.djangoproject.com/en/dev/intro/tutorial01/" target="_blank">the tutorial</a>, then the <a href="http://www.djangobook.com/" target="_blank">Django Book</a>, and finally the <a href="http://docs.djangoproject.com/en/dev/" target="_blank">Django Docs</a> for a deep dive. Time spent 8 hrs.</p>
<p>Django is surely one on the best documented project and also very straight forward. It suits my style of writing code and I did not feel like giving up in few hours, like the experience I had with RoR. Will surely blog about Django more.</p>
]]></content:encoded>
			<wfw:commentRss>http://hitesh.in/2009/week-with-python-django/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What they don&#8217;t teach you at Engineering school</title>
		<link>http://hitesh.in/2009/what-they-dont-teach-you-at-engineering-school/</link>
		<comments>http://hitesh.in/2009/what-they-dont-teach-you-at-engineering-school/#comments</comments>
		<pubDate>Sun, 08 Nov 2009 22:23:14 +0000</pubDate>
		<dc:creator>Hitesh</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[skills]]></category>

		<guid isPermaLink="false">http://hitesh.in/?p=330</guid>
		<description><![CDATA[This is an experimental post. If it doesn&#8217;t render correctly, leave a comment. I was brainstorming on the skills a software developer does not learn at school, which are essential for work and some which are needed for career growth. &#8230; <a href="http://hitesh.in/2009/what-they-dont-teach-you-at-engineering-school/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="warning">This is an experimental post. If it doesn&#8217;t render correctly, leave a comment.</div>
<p>I was brainstorming on the skills a software developer does not learn at school, which are essential for work and some which are needed for career growth.</p>
<p>Below is an embedded mind map, followed by an embedded public wave. Please feel free to contribute to the wave. If you do not have a wave account, here is the <a href="http://hitesh.in/static/devskills.html">static version.</a></p>
<p>You can pan / zoom / expand / collapse the map below to get a better understanding.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="900" height="700" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="visorFreemind" /><param name="bgcolor" value="#333399" /><param name="src" value="http://hitesh.in/static/visorFreemind.swf" /><param name="quality" value="high" /><param NAME="FlashVars" VALUE="initLoadFile=http://hitesh.in/static/map.mm&#038;startCollapsedToLevel=2&#038;mainNodeShape=rectangle"/><embed type="application/x-shockwave-flash" width="900" height="700" src="http://hitesh.in/static/visorFreemind.swf" quality="high" bgcolor="#333399" name="visorFreemind" FlashVars="initLoadFile=http://hitesh.in/static/map.mm&#038;startCollapsedToLevel=2&#038;mainNodeShape=rectangle"></embed></object><br />
<span id="more-330"></span><br />
<script type="text/javascript"
  src="http://wave-api.appspot.com/public/embed.js"> 
</script></p>
<div id="wave" style="border: 1px dashed; width: 780px; height: 700px"></div>
<p><script type="text/javascript"> 
  var wave =
    new WavePanel('https://wave.google.com/wave/');
  wave.setUIConfig('white', 'black', 'Arial', '13px');
  wave.loadWave('googlewave.com!w+kh83-Q1aG');
  wave.init(document.getElementById('wave'));
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://hitesh.in/2009/what-they-dont-teach-you-at-engineering-school/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Boo gotchas for beginners</title>
		<link>http://hitesh.in/2009/boo-gotchas-for-beginners/</link>
		<comments>http://hitesh.in/2009/boo-gotchas-for-beginners/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 17:53:02 +0000</pubDate>
		<dc:creator>Hitesh</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Boo]]></category>
		<category><![CDATA[gotchas]]></category>

		<guid isPermaLink="false">http://hitesh.in/2009/boo-gotchas-for-beginners/</guid>
		<description><![CDATA[Unlike what I mentioned in my previous post, I ended up trying Boo first. I will delve on the reason in another post. The objective of this post is to document the problems I had getting used to Boo syntax. &#8230; <a href="http://hitesh.in/2009/boo-gotchas-for-beginners/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Unlike what I mentioned in my previous post, I ended up trying Boo first. I will delve on the reason in another post. The objective of this post is to document the problems I had getting used to Boo syntax. None of the problems were big, just some missing punctuations <img src='http://hitesh.in/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  And I did not face any issues with the significant space.</p>
<h3>Empty array vs. Empty list</h3>
<p>An empty list is</p>
<pre><code>[]</code></pre>
<p>and an empty map is</p>
<pre><code>{}</code></pre>
<p>And empty array is</p>
<pre><code>(,)</code></pre>
<p>as it would cause ambiguity with a function / closure.</p>
<p><span id="more-215"></span></p>
<h3>Type declaration vs. Initialisation</h3>
<p><em>Declaration: </em></p>
<p><span style="font-family:Consolas; font-size:10pt"><span style="color:black">_myDict </span><span style="color:darkgreen"><span style="background-color:#548dd4">as</span></span><span style="color:black"> Dictionary</span><span style="color:darkgreen">[</span><strong><span style="color:blue">of </span><span style="color:purple">string</span></strong><span style="color:darkgreen">, </span><span style="color:purple"><strong>object</strong></span><span style="color:darkgreen">]<br />
</span></span></p>
<p><em>Initialisation: </em></p>
<p><span style="font-family:Consolas; font-size:10pt"><span style="color:black">_myDict </span><span style="color:darkgreen">= </span><span style="color:black">Dictionary</span><span style="color:darkgreen">[</span><strong><span style="color:blue">of </span><span style="color:purple">string</span></strong><span style="color:darkgreen">, </span><span style="color:purple"><strong>object</strong></span><span style="color:darkgreen">]<span style="background-color:#548dd4"><strong>()</strong></span></span></span></p>
<h3>Assigning a Type vs. invoking a function</h3>
<p>When you are calling a function don&#8217;t forget the brackets at the end.</p>
<p><em>Wrong: </em></p>
<p><span style="font-family:Consolas; font-size:10pt"><span style="color:black">fs </span><span style="color:darkgreen">= </span><span style="color:black">file</span><span style="color:darkgreen">.</span><span style="color:midnightblue">OpenRead</span><span style="color:darkgreen"><br />
</span></span></p>
<p><em>Correct: </em></p>
<p><span style="font-family:Consolas; font-size:10pt"><span style="color:black">fs </span><span style="color:darkgreen">= </span><span style="color:black">file</span><span style="color:darkgreen">.</span><span style="color:midnightblue">OpenRead</span><span style="color:darkgreen"><span style="background-color:#548dd4">()</span><br />
</span></span></p>
<p>If you make this mistake you will get errors like:</p>
<p><span style="font-family: monospace, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">&#8216;&lt;method/property&gt;&#8217; is not a member of &#8216;&lt;some type&gt;&#8217;.  (BCE0019)</span></p>
<p><strong>Colon is the new semicolon</strong></p>
<p>Remember the times when a missing semicolon used to be causing most compile errors, well, in boo it will be the missing colon which signifies a beginning of a block.</p>
<p><em>Wrong: </em></p>
<p><span style="color:blue"><strong>while </strong></span><span style="color:darkgreen">((</span><span style="color:black">line </span><span style="color:darkgreen">= </span><span style="color:black">filestream</span><span style="color:darkgreen">.</span><span style="color:midnightblue">ReadLine</span><span style="color:darkgreen">()) != </span><span style="color:black"><strong>null</strong></span><span style="color:darkgreen">)<br />
</span></p>
<p><span style="color:black"> m</span><span style="color:darkgreen">.</span><span style="color:midnightblue">parse</span><span style="color:darkgreen">(</span><span style="color:black">line</span><span style="color:darkgreen">)</span></p>
<p><em>Correct: </em></p>
<p><span style="color:blue"><strong>while </strong></span><span style="color:darkgreen">((</span><span style="color:black">line </span><span style="color:darkgreen">= </span><span style="color:black">filestream</span><span style="color:darkgreen">.</span><span style="color:midnightblue">ReadLine</span><span style="color:darkgreen">()) != </span><span style="color:black"><strong>null</strong></span><span style="color:darkgreen">)<span style="background-color:#548dd4">:</span><br />
</span></p>
<p><span style="color:black"> m</span><span style="color:darkgreen">.</span><span style="color:midnightblue">parse</span><span style="color:darkgreen">(</span><span style="color:black">line</span><span style="color:darkgreen">)</span></p>
<p>If you forget the colon, you will get an error like:</p>
<p><code><br />
Unexpected token: m. (BCE0043)<br />
Unexpected token: &lt;INDENT&gt;. (BCE0043)<br />
expecting "EOF", found '&lt;DEDENT&gt;'. (BCE0044)<br />
</code></p>
<h3>Function definition in a script file</h3>
<p>Maybe a no-brainer for python gurus, but if you have a script file, i.e. a file with no class, just instructions; functions are to be defined near the top of the script and called after it is <span style="font-family: monospace, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">def<span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: 13px;">&#8216;ed.</span></span></p>
<h3>You can&#8217;t mix Boo with C# in same project</h3>
<p>This is my mistake, but looking at samples having groovy and java files in same project; I blindly assumed that the same applies to Boo as well.</p>
<h3>Intellisense / auto-complete does not work well.</h3>
<p>Given the dynamic nature of Boo and maybe some bugs in SharpDevelop, it is not a great experience if you rely heavily on intellisense.</p>
<p><img src="http://hitesh.in/wp-content/uploads/2009/08/083009_1753_Boogotchasf1.png" alt="" /></p>
<h3>Embedding special characters in a string</h3>
<p>Boo follows the python way of embedding special characters in string and not c#.</p>
<p>Wrong:</p>
<p><span style="font-family:Consolas; font-size:10pt"><span style="color:black">s </span><span style="color:darkgreen">= </span><span style="color:black">@</span><span style="color:blue">&#8220;C:\path\to\dir\&#8221;</span></span></p>
<p>Correct:</p>
<p><span style="font-family:Consolas; font-size:10pt"><span style="color:#04abab">s </span><span style="color:darkgreen">= </span><span style="color:green">&#8220;&#8221;"C:\path\to\dir\&#8221;"&#8221;</span></span></p>
<h3>Embedding values in strings</h3>
<p>The syntax is slightly weird, but useful nonetheless. You need to use both $ and enclose the variable in curly braces.</p>
<p><span style="font-family:Consolas; font-size:10pt"><span style="color:purple">print </span><span style="color:blue">&#8220;processing </span><span style="color:#993366">${dir.Name}</span><span style="color:blue">&#8220;</span></span></p>
<h3>Still can&#8217;t find a way to pattern match and assign in the same line</h3>
<p>I think this is possible, but I can&#8217;t figure a way to match a strung and assign the values to 2 variables.</p>
<p>I am trying to do something like, below and a few variations without luck:</p>
<p><span style="font-family:Consolas; font-size:10pt"><span style="color:black">key</span><span style="color:darkgreen">, </span><span style="color:black">val </span><span style="color:darkgreen">= </span><span style="color:#ff6600">/(?&lt;key&gt;[^=\s]+)\s*=\s*&#8221;(?&lt;value&gt;.+)&#8221;\s*$/</span><span style="color:darkgreen">.</span><span style="color:midnightblue">Match</span><span style="color:darkgreen">(</span><span style="color:black">line</span><span style="color:darkgreen">)<br />
</span></span></p>
<p>If the regex would have been simpler I could have used the <span style="color:midnightblue; font-family:Consolas; font-size:10pt">Split</span> instead of <span style="color:midnightblue; font-family:Consolas; font-size:10pt">Match</span> and things would have worked.</p>
<p>I ended up with something like:</p>
<p><span style="font-family:Consolas; font-size:10pt"><span style="color:#04abab">data </span><span style="color:darkgreen">= </span><span style="color:#ff6600">/(?&lt;key&gt;[^=\s]+)\s*=\s*&#8221;(?&lt;value&gt;.+)&#8221;\s*$/</span><span style="color:darkgreen">.</span><span style="color:midnightblue">Match</span><span style="color:darkgreen">(</span><span style="color:black">line</span><span style="color:darkgreen">)<br />
</span></span></p>
<p><span style="font-family:Consolas; font-size:10pt"><span style="color:darkgreen"> </span><span style="color:black">key</span><span style="color:darkgreen">, </span><span style="color:black">val </span><span style="color:darkgreen">= </span><span style="color:black">data</span><span style="color:darkgreen">.</span><span style="color:black">Groups</span><span style="color:darkgreen">[</span><span style="color:blue">"key"</span><span style="color:darkgreen">].</span><span style="color:black">Value</span><span style="color:darkgreen">, </span><span style="color:black">data</span><span style="color:darkgreen">.</span><span style="color:black">Groups</span><span style="color:darkgreen">[</span><span style="color:blue">"value"</span><span style="color:darkgreen">].</span><span style="color:black">Value</span></span></p>
<h3>Embedding spaces in a regular expression patterns</h3>
<p>As seen in the regex sample above, take extra care when you want to match a space. Use \s instead of a literal space.</p>
]]></content:encoded>
			<wfw:commentRss>http://hitesh.in/2009/boo-gotchas-for-beginners/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The great runtime shootout</title>
		<link>http://hitesh.in/2009/the-great-runtime-shootout/</link>
		<comments>http://hitesh.in/2009/the-great-runtime-shootout/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 21:32:58 +0000</pubDate>
		<dc:creator>Hitesh</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Boo]]></category>
		<category><![CDATA[CLI]]></category>
		<category><![CDATA[CLR]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JVM]]></category>
		<category><![CDATA[TOTW]]></category>

		<guid isPermaLink="false">http://hitesh.in/?p=196</guid>
		<description><![CDATA[It is becoming more and more obvious that there are just two runtimes left to execute code, the Java Virtual Machine (JVM) and the Common Language Infrastructure (CLI). So, I decided to see how they stack up. Looks like both &#8230; <a href="http://hitesh.in/2009/the-great-runtime-shootout/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It is becoming more and more obvious that there are just two runtimes left to execute code, the <em>Java Virtual Machine</em> (JVM) and the <em>Common Language Infrastructure</em> (CLI). So, I decided to see how they stack up. Looks like both environments have something for everyone.</p>
<p>Here is a list of programming languages available on these runtimes.</p>
<p><a href="http://hitesh.in/wp-content/uploads/2009/08/slide0001_image001_thumb.png"><img style="display: inline; border: 0px initial initial;" title="JVM vs. CLR" src="http://hitesh.in/wp-content/uploads/2009/08/slide0001_image001_thumb.png" border="0" alt="JVM vs CLI" width="650" height="518" /></a></p>
<ol>
<li>Can run on CLI using IKVM.NET</li>
<li>Can run on JVM using Mainsoft solution</li>
<li>Not yet usable</li>
<li>Can run on CLR, but is behind the JVM implementation</li>
</ol>
<p>The main reason for the research was to identify a new language I should pick-up. I looked at Python and Ruby, but both have some sore thumbs that I just can&#8217;t stand. I really liked Boo and Groovy; they are similar to C#/Java in syntax and incorporate the good things from Python. Although I like Boo&#8217;s syntax and approach more than Groovy, Groovy has a more mature implementation and ecosystem. I will try to use Groovy for some hobby project and get a feel to things.</p>
]]></content:encoded>
			<wfw:commentRss>http://hitesh.in/2009/the-great-runtime-shootout/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

