<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>The ByteBaker</title>
	<atom:link href="http://bytebaker.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://bytebaker.com</link>
	<description>Computer Science isn&#039;t a science and it&#039;s not about computers</description>
	<lastBuildDate>Fri, 20 Jan 2012 14:00:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='bytebaker.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/6d47d9dd6b113f7f539237c5cff8cd54?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>The ByteBaker</title>
		<link>http://bytebaker.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://bytebaker.com/osd.xml" title="The ByteBaker" />
	<atom:link rel='hub' href='http://bytebaker.com/?pushpress=hub'/>
		<item>
		<title>Software Tailors</title>
		<link>http://bytebaker.com/2012/01/20/software-tailors/</link>
		<comments>http://bytebaker.com/2012/01/20/software-tailors/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 14:00:00 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=1820</guid>
		<description><![CDATA[I came upon an article a few days ago relating software developers to tailors. The author (Patrick Rhone) wishes to have software tailors: people who will customize (or custom-make) software for you, for a price. It&#8217;s an interesting idea and not without its practical merits. In particular, given how most software today is &#8220;mass-produced&#8221; and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&amp;blog=8123270&amp;post=1820&amp;subd=bytebaker&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I came upon <a href="http://patrickrhone.com/2012/01/17/bespoke/">an article a few days ago</a> relating software developers to tailors. The author (<a href="http://patrickrhone.com/">Patrick Rhone</a>) wishes to have software tailors: people who will customize (or custom-make) software for you, for a price. It&#8217;s an interesting idea and not without its practical merits. In particular, given how most software today is &#8220;mass-produced&#8221; and customization options are in general, limited at best, a cottage industry of software-tailors might not be a bad idea. But for all its merits I think the idea is somewhat short-sighted. Software is sufficiently different from physical goods (including clothes) that applying the same concepts and processes to software and clothes is fundamentally flawed.</p>
<p>Operationally, software is much easier to change than physical matter. There&#8217;s no physical matter to change and if you make a mistake you can revert and go back to what you had. Undo is your friend. That means that even new programmers can create things of values, make mistakes and learn quickly by doing. However, conceptually, making software is as hard, if not harder than manipulating physical objects. I&#8217;m not a tailor, but I would wager that hacking on a complex piece of software requires as much skill as making alteration to a jacket. In fact, understanding million-line codebases might well be harder than tailoring a suit to custom dimensions.</p>
<p>The second flaw in the software tailor argument is that our software needs are far more varied than our clothing needs. Humans all have the same general body plans, you only need a handful of numbers to make a shirt fit. But our software requirements are far more varied. The text editing requirements for a novelist are different than that of a blogger which in turn are different from that of a programmer. To really understand what each person needs the programmer needs to have a pretty thorough understanding of what the problem domain is. This in turn means that the programmer either needs to be using that specalized software on a regular basis or the customer needs to able to communicate very clearly what they want. As anyone who&#8217;s written software for clients knows, getting proper requirements is often the hardest part of the project. This is why the best software is often &#8220;dogfooded&#8221; – the developers have been using what they&#8217;ve been developing. Furthermore making changes to any part of a codebase often requires understanding more than just the component you&#8217;re changing. What might be &#8220;just a few changes&#8221; to Mr. Rhone would probably end up be hours of diving into foreign source code (or at least learning an API). Writing good software is hard, writing good custom software is harder still. I don&#8217;t want to dismiss the idea of software tailors out of hand, but I want to make it clear that the job would not be like the analogy that Mr. Rhone provides.</p>
<p>If we can&#8217;t have neighbourhood software tailors, then what can we have? Customized software is good, because as I&#8217;ve said, people have very varied software needs that standardized software often falls short of accomodating. What I think we need is twofold: a technological shift where developers write extensible software by default and a cultural shift by which users are no longer afraid to modify their own software. Programmers (especially open source developers) are used to modifying and extending their own tools, I want to see common software users modifying their word processors and email filters.</p>
<p>But, but, but, does this mean we should make our own clothes and do the servicing on our cars ourselves? No, of course not. Like I said, the tailor (and the mechanic) analogy is not the right one. A better analogy is cooking. You can eat your meals at restaurants and fast food places (use standard consumer software) or you can cook your own. If you can spend an hour or two a day putting together ingredients in exact proportions and heating them at specific temperatures for specific times, you can spend half an hour a day typing some some code to make your software work the way you want it to.</p>
<p>Now this cultural shift is only possible if the software supports it and right now most of our software doesn&#8217;t. But that can change. Text editors like Emacs and shells like Bash and Zsh are meant to be customized and its not hard to do so once someone shows you how. Browsers are also customizable, though not quite as easily. Luckily software is malleable and with more and more people being software literate I think this is a feasible change in the not-too-distant future. Mr. Rhone wants a shift to developers making it easier for software to be extended, but those some changes could just as easily make it easier for <em>users</em> to adapt their software.</p>
<p>So with all due respect to Mr. Rhone, I don&#8217;t want a culture of software tailors. That&#8217;s not any different from the programmer-priesthood we have today. Unlike our clothes, our computers are incredibly powerful machines and we&#8217;re increasingly dependent on them in both general and very specific ways. I want a culture of citizen hackers: a generation of people who can mix and match their software just as we can develop our own dressing or cooking styles.</p>
<p>As programmers, our job isn&#8217;t to write code or be better craftsmen. It&#8217;s to solve problems, everything else is tangential. I believe the best way to do that is by empowering users to better solve their own problems. We fight for the users so that they can fight for themselves.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/1820/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/1820/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/1820/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/1820/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bytebaker.wordpress.com/1820/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bytebaker.wordpress.com/1820/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bytebaker.wordpress.com/1820/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bytebaker.wordpress.com/1820/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/1820/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/1820/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/1820/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/1820/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/1820/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/1820/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&amp;blog=8123270&amp;post=1820&amp;subd=bytebaker&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2012/01/20/software-tailors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ccb1217c46b31b7b232878d355f7f4e4?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	</item>
		<item>
		<title>My Brain on Information</title>
		<link>http://bytebaker.com/2012/01/17/my-brain-on-information/</link>
		<comments>http://bytebaker.com/2012/01/17/my-brain-on-information/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 14:00:00 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=1810</guid>
		<description><![CDATA[I&#8217;ve read two things recently that have made me think about and reconsider the role of information in our lives and particularly the way in which I consume and process it. We live in an information-dense era of human history. In the western world (and increasingly, the world in general) the tools to access, consume, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&amp;blog=8123270&amp;post=1810&amp;subd=bytebaker&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve read two things recently that have made me think about and reconsider the role of information in our lives and particularly the way in which I consume and process it. We live in an information-dense era of human history. In the western world (and increasingly, the world in general) the tools to access, consume, produce and distribute vasts amounts of information are available to almost everyone at just a moments&#8217; notice. In many ways, we are living in a Golden Age of Information. The problem is, this Golden Age first crept up on us stealthily and then rammed into us headlong at full speed. As a result I think most of us, even those considered &#8220;digital natives&#8221; (myself included), seem to be perpetually ill-equipped to deal with both the challenges and opportunities of an increasingly information-rich existence.</p>
<p>Last week I read <a href="http://www.antipope.org/charlie/blog-static/fiction/accelerando/accelerando-intro.html">Accelerando</a>, a set of short stories by British science fiction author <a href="http://www.antipope.org/charlie/blog-static/fiction/faq.html">Charlie Stross</a>. The stories start from the near future (almost the present) and extend to a distant post-<a href="#Singularity">Singularity</a> future where humanity lives among the stars, but in the shadows of godlike intellects. Though the entire collection is worth reading (and available for free), the first few stories about a world not too different from our own were particularly interesting. At one point one of the main characters, a very intelligent serial entrepreneur (and &#8220;venture altruist&#8221;) name Manfred Macx claims to consume a megabyte of text and several gigabytes of multimedia a day just to keep current.</p>
<p>That&#8217;s a lot of information for any person to consume in a day – a megabyte is roughly half a million English words. Though this is science fiction, I think we&#8217;re quickly getting to the point where people who want to stay current with the pace of science and technology will be required to consume enormous amounts of information regularly. Half a million words a day may be too much for an unaugmented human (Macx has an array of cybernetic implants and software agents forming a &#8220;exocortex&#8221; for information processing) but I think tens of thousands of words a day will soon become par for the course. And that&#8217;s just text. I&#8217;m not including understanding diagrams, source code, operations manuals or even video or audio. If we&#8217;re supposed to be assimilating such huge quantities of information on a regular basis how are we supposed to make sense of it all?</p>
<p>That brings me to a piece on The Atlantic website dramatically titled &#8220;<a href="http://www.theatlantic.com/magazine/archive/2008/07/is-google-making-us-stupid/6868/">Is Google Making Us Stupid?</a>&#8220;. It&#8217;s about how the use of search engines and similar fast information retrieval systems is supposedly rewiring our brains. While some parts of the piece are overly sentimental and melodramatic, the core point is sound: the tools we have access to and the way we use them plays a role in shaping the functionality of our brains. I also sympathize that a habit of continually sampling little bites of information can be deeply unsatisfying. It&#8217;s easy to get hooked on to a Facebook or Twitter stream but as you stay hooked you can feel your brainpower wither as you lose the ability to concentrate longer than 140 characters. When I get stuck on Hacker News or Reddit for hours I feel terrible by the end of the day. Though I love good stories and movies it&#8217;s easy to get hooked on Netflix, passively consuming information but not really <em>doing</em> anything. But I&#8217;d like to believe that we can train our brains to be not quite so helpless in the face of endless streams of juicy tidbits.</p>
<p>A growing body of research is showing that the human brain is an incredibly flexible organ. <a href="http://ieet.org/index.php/IEET/more/kuszewski20110720r">Neuroplasticity is the norm</a>, not the exception. As the amount of information we need to process increases (and our tools to do so get better) our brains change to accomodate it all. That of course begs the question: how far can we push ourselves? Can we train our brains to not just flit from hyperlink to hyperlink but actually digest and understand large amounts of interconnected material with greater efficiency and accuracy? Can we ensure that Google makes us smarter and wiser, not stupider?</p>
<p>Though our reading habits (and by extension our general thought patterns) might be changing, the change is not accidental nor is it inevitable. Instead of bemoaning the loss of the slow reading habits of yesteryear I think we should be trying to embrace the information-dense world around us. In particular, we need to stop thinking of deep reading and skimming as antagonistic to each other. Perhaps what we need to do is not to read slower, but rather separate the physical act of reading from the mental act of comprehending what we have read. I would love to be able to read text fast, look up links and references and then let the mass of information &#8220;ferment&#8221; in my brain. I&#8217;d like to be able to train my brain to think of what I&#8217;ve read after I&#8217;m done looking at the text forming connection betweens concepts and ideas while I&#8217;m walking down the street or taking a shower.</p>
<p>Perhaps this is an exceedingly computer-science centric way of thinking about the brain and thought processes. To be honest, I&#8217;ve been writing code and processing data algorithmically far longer than I&#8217;ve been learning about how the brain works. I do tend to think of the brain primarily as an information processor. Unlike the author of The Atlantic article I&#8217;m not nearly as attached to the so-called &#8220;human&#8221; aspect of my intelligence (but that&#8217;s a matter for another blog post). I like settling down with a cup of coffee and a good book in a nice armchair as much as the next guy, but only on the weekends. During the week I&#8217;d like to come up with six impossible things before breakfast and figure out how to make them possible through the course of the day. To do that I need to keep the information machine fed, creativity doesn&#8217;t happen in a vacuum. I&#8217;d love to know how to do that better.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/1810/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/1810/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/1810/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/1810/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bytebaker.wordpress.com/1810/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bytebaker.wordpress.com/1810/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bytebaker.wordpress.com/1810/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bytebaker.wordpress.com/1810/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/1810/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/1810/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/1810/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/1810/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/1810/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/1810/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&amp;blog=8123270&amp;post=1810&amp;subd=bytebaker&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2012/01/17/my-brain-on-information/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ccb1217c46b31b7b232878d355f7f4e4?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	</item>
		<item>
		<title>Screenplays for the Web</title>
		<link>http://bytebaker.com/2012/01/13/screenplays-for-the-web/</link>
		<comments>http://bytebaker.com/2012/01/13/screenplays-for-the-web/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 18:00:00 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Writing]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=1806</guid>
		<description><![CDATA[Yesterday I sat down to put some of my old screenplays online. Screenplays have a very specific format – monospaced fonts, fixed directions for margins, etc. Unfortunately all those rules are for paper and if there&#8217;s one thing I really don&#8217;t plan on doing, it&#8217;s distributing my writing on dead trees. But I still wanted [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&amp;blog=8123270&amp;post=1806&amp;subd=bytebaker&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Yesterday I sat down to put some of my old screenplays online. Screenplays have a very specific format – monospaced fonts, fixed directions for margins, etc. Unfortunately all those rules are for paper and if there&#8217;s one thing I really don&#8217;t plan on doing, it&#8217;s distributing my writing on dead trees. But I still wanted to put my work online and have it look like a screenplay.</p>
<p>When I was taking my creative writing class last semester I used LaTeX to output nicely formatted PDFs to submit and I wrote directly in LaTeX. Though PDFs are great for class submissions and printing I&#8217;m very much an HTML fanboy when it comes to publishing online. Unfortunately LaTeX doesn&#8217;t seem to export directly to HTML. That&#8217;s understandable, HTML still has a way to go before it supports all the beautiful typographic nuances that LaTeX is capable of. There are some LaTeX-to-HTML converters out there, but I couldn&#8217;t them to compile on my Macbook. Instead of trying to debug the compile process I threw some regexes at the existing LaTeX source and turned it into fairly semantic hypertext.</p>
<p>HTML is a flexible markup language, but there was some abuse of existing HTML elements involved in coming up with a structure that worked for screenplays. Each piece of dialog becomes a section tag and I&#8217;ve really abused the header and paragraph tags. If you can come up with a more semantically &#8220;correct&#8221; interpretation, I&#8217;d love to see it. Anyways, the translation went quickly and with some CSS the result isn&#8217;t bad, in my opinion. I converted one of my shorter pieces and <a title="Five Minutes" href="http://basus.me/writing/screenplays/five-minutes.html">put it on my website</a>, if you care to take a look. The whole process took about half an hour including fiddling with regexes and CSS.</p>
<p>So much for taking a LaTeX screenplay and translating it to HTML. But what about writing a screenplay for the web first? By way of inspiration, <a href="#hthttp-storiesandnovels.com">Stories and Novels</a> is a beautiful site that features complete stories and novels in a beautiful web format (as well as Kindle editions). I&#8217;d love to see something similar for screenplays. Now admittedly, people don&#8217;t usually read screenplays the same way they read novels or stories, but who&#8217;s to say that once the trend starts it won&#8217;t pick up (and it would be a interesting experiment regardless)?</p>
<p>Of course, writing HTML (or any form of XML) by hand is not something I would wish on my worst enemy. It&#8217;s ok when working on a design and layout but I&#8217;d rather not write entire screenplays (or stories or novels or even blog posts) in HTML by hand. Recently, lightweight markup languages such as Markdown and Textile have become popular. They&#8217;re designed to be easily converted to HTML and they feel natural to write in. Maybe we could come up with something similar for screenplays? Sounds like an interesting weekend project, I&#8217;ll let you know how it goes on Monday.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/1806/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/1806/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/1806/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/1806/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bytebaker.wordpress.com/1806/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bytebaker.wordpress.com/1806/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bytebaker.wordpress.com/1806/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bytebaker.wordpress.com/1806/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/1806/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/1806/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/1806/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/1806/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/1806/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/1806/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&amp;blog=8123270&amp;post=1806&amp;subd=bytebaker&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2012/01/13/screenplays-for-the-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ccb1217c46b31b7b232878d355f7f4e4?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	</item>
		<item>
		<title>Looking ahead</title>
		<link>http://bytebaker.com/2012/01/10/looking-ahead/</link>
		<comments>http://bytebaker.com/2012/01/10/looking-ahead/#comments</comments>
		<pubDate>Tue, 10 Jan 2012 05:00:00 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=1801</guid>
		<description><![CDATA[It is now just about a third of the way through the first month of the year. I&#8217;m not really one for resolutions so I didn&#8217;t make any. In fact, I didn&#8217;t do anything by way of preparing for the start of a new year. However there is one thing that I&#8217;ve been wanting to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&amp;blog=8123270&amp;post=1801&amp;subd=bytebaker&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It is now just about a third of the way through the first month of the year. I&#8217;m not really one for resolutions so I didn&#8217;t make any. In fact, I didn&#8217;t do anything by way of preparing for the start of a new year. However there is one thing that I&#8217;ve been wanting to do for years that I hope to finally get around to doing: concentrate more on my writing, in particular, paying more attention to this blog.</p>
<p>I&#8217;ve never really wanted to be a full-time blogger, not even a technology blogger. I&#8217;ve always preferred to be someone who wrote code (or at least studied writing code) and wrote about those experiences on the side. By and large, that&#8217;s been true. However the thing is that I really like writing. It&#8217;s a good break from coding and thinking about computer science research and I enjoy communicating directly with people instead of machines for a change (which is why I refuse to pander to search engines and write SEO-directed stuff). Anyways, despite my not being a very regular writer this blog has been moving along nicely. I get around 400 hits on an average weekday and that number has been going up steadily. I&#8217;ve been on Hacker News more than once and that&#8217;s always generated a good burst of traffic.</p>
<p>I&#8217;ve also been discovering technologists and scientist writing interesting and very useful blogs. These are people like <a title="Zephoria" href="http://www.zephoria.org/">danah boyd</a> (Senior Researcher at Microsoft), <a href="http://matt.might.net">Matt Might</a> (CS Professor at the University of Utah) and <a title="Andrea Kuszewski" href="https://plus.google.com/108998673146368660257">Andrea Kuszewski</a> (a researcher at the George Greenstein Institute). I admire their blogs and their writing but I also admire them for being dedicated scientists and researchers. These blogs reaffirm my belief that writing on a regular basis is important (and healthy) for everyone especially if you&#8217;re involved in research and development of new technologies.</p>
<p>All that is a way of saying that I would like to blog more. Looking over my archives for last year I&#8217;ve only made about one post a week. Ideally I would like to increase that to two or three a week, not including the Sunday Selection link posts (I doubt I could keep up quality for anything more than that). I also want to start tackling more technical subjects. I&#8217;ve been talking a lot about the intersection of technology and productivity for a while now, but I&#8217;m starting to get a tired of the productivity aspect. Long story short, I&#8217;ve found the small set of everyday tools and environments that I need to get work done. For the foreseeable future it&#8217;s more a question of being able to stick to habits and schedules than of using the right tools. When I do speak of tools I want to give concrete examples (like my post on showing Git information in your Bash prompt) rather than handwavey suggestions.</p>
<p>On a related note I&#8217;ve been considering moving off WordPress.com. WordPress is great if you&#8217;re using their web-based interface but is harder to use if you live in Emacs. I&#8217;m starting to itch for a writing system that integrates well with Emacs. I&#8217;d like to be able to include my own HTML, CSS and JavaScript in my posts and be able to customize things a bit more than WordPress.com allows. I haven&#8217;t given much thought to this matter, but I&#8217;m looking at alternate systems such as <a href="http://jekyllrb.com">Jekyll</a> and <a href="http://octopress.org">Octopress</a>. Whatever I decide to do I&#8217;ll probably test it out at my personal website before doing anything over here.</p>
<p>While this blog is definitely my most serious writing project, it&#8217;s not the only one. I took a few creative writing classes in college and enjoyed them immensely. I would like to be able to continue writing fiction (and maybe even get in shape for NaNoWriMo 2012). But for I&#8217;ll be content with just regular blogging output. Glad to have you all along for the ride.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/1801/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/1801/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/1801/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/1801/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bytebaker.wordpress.com/1801/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bytebaker.wordpress.com/1801/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bytebaker.wordpress.com/1801/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bytebaker.wordpress.com/1801/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/1801/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/1801/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/1801/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/1801/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/1801/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/1801/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&amp;blog=8123270&amp;post=1801&amp;subd=bytebaker&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2012/01/10/looking-ahead/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ccb1217c46b31b7b232878d355f7f4e4?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	</item>
		<item>
		<title>Show Git information in your prompt</title>
		<link>http://bytebaker.com/2012/01/09/show-git-information-in-your-prompt/</link>
		<comments>http://bytebaker.com/2012/01/09/show-git-information-in-your-prompt/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 14:00:00 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=1763</guid>
		<description><![CDATA[I&#8217;ve been a sworn fan of version control for a good few years now. After a brief flirtation with Subversion I am currently in a long term and very committed relationship with the Git version control system. I use Git to store all my code and writing and to keep everything in sync between my machines. Almost everything I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&amp;blog=8123270&amp;post=1763&amp;subd=bytebaker&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been a sworn fan of version control for a good few years now. After a brief flirtation with Subversion I am currently in a long term and very committed relationship with the Git version control system. I use Git to store all my code and writing and to keep everything in sync between my machines. Almost everything I do goes into a repository.</p>
<p>When I&#8217;m working I spend most of my time in three applications: a text editor (generally Emacs), a terminal (either iTerm2 or Gnome Terminal) and a browser (Firefox or Safari). When in Emacs I use the excellent Magit mode to keep track of the status of my current project repository. However my interaction with git is generally split between Emacs and the terminal. There&#8217;s no real pattern, just what&#8217;s easiest and open at the moment. Unfortunately when I&#8217;m in the terminal there&#8217;s no visible cue as to what the status of the repo is. I have to be careful to run <code>git status</code> regularly to see what&#8217;s going. I need to manually make sure that I&#8217;ve committed everything and pushed to the remote server. Though this isn&#8217;t usually a problem, every now and then I&#8217;ll forget to commit and push something on one of my machines, go to another and then realized I&#8217;ve left behind all my work. It&#8217;s annoying and kills productivity.</p>
<p>Over the last few days I decided to sit down and give my terminal a regular indicator of the state of the current repository. So without further ado, here&#8217;s how I altered my Bash prompt to show relevant Git information.</p>
<h2>Extracting Git information</h2>
<p>There are generally three things I&#8217;m concerned about when it comes the Git repo I&#8217;m currently working on:</p>
<ol>
<li>What is the current branch I&#8217;m on?</li>
<li>Are there any changes that haven&#8217;t been committed?</li>
<li>Are there local commits that haven&#8217;t been pushed upstream?</li>
</ol>
<p>Git provides a number of tools that gives you a lot of very detailed information about the state of the repo. Those tools are just a few commands away and I don&#8217;t want to be seeing everything there is to be seen at every step. I just want the minimum information to answer the above question.</p>
<p>Since the bash prompt is always visible (and updated after each command) I can put a small amount of text in the prompt to give me the information I want. In particular my prompt should show:</p>
<ol>
<li>The name of the current branch</li>
<li>A &#8220;dirty&#8221; indicator if there are files that have been changed but not committed</li>
<li>The number of local commits that haven&#8217;t been pushed</li>
</ol>
<h2>What is the current branch?</h2>
<p>The <code>symbolic-ref</code> command shows the branch that the given reference points to. Since HEAD is the symbolic reference for the current state of the working tree, we can use git <code>symbolic-ref HEAD</code> to get the full branch. If we were on the <code>master</code> branch we would get back something like <code>refs/heads/master</code>. We use a little Awk magic to get rid of everything but the part after the last /. Wrapping this into a litte function we get:</p>
<p><pre class="brush: bash;">

function git-branch-name
{
    echo $(git symbolic-ref HEAD 2&gt;/dev/null | awk -F/ {'print $NF'})
}
</pre></p>
<h2>Has everything been committed?</h2>
<p>Next we want to know if the branch is dirty, i.e. if there are uncommitted changes. The <code>git status</code> command gives us a detailed listing of the state of the repo. For our purposes is the very last line of the output. If there are no outstanding changes it says &#8220;nothing to commit (working directory clean)&#8221;. We can isolate the last line using the Unix <code>tail</code> utility and if it doesn&#8217;t match the above message we print a small asterisk (*). This is just enough to tell us that there is something we need to know about the repo and should run the full <code>git status</code> command.</p>
<p>Again, wrapping this all up into a little function we have:</p>
<p><pre class="brush: bash;">
function git-dirty {
    st=$(git status 2&gt;/dev/null | tail -n 1)
    if [[ $st != &quot;nothing to commit (working directory clean)&quot; ]]
    then
        echo &quot;*&quot;
    fi
}
</pre></p>
<h2>Have all commits been pushed?</h2>
<p>Finally we want to know if all commits to the respective remote branch. We can use the <code>git branch -v</code> command to get a verbose listing of all the local branches. Since we already know the name of the branch we&#8217;re on, we use <code>grep</code> to isolate the line that tells us about our branch of interest. If we have local commits that haven&#8217;t been pushed the status line will say something like &#8220;[ahead X]&#8220;, where X is the number of commits not pushed. We want to get that number.</p>
<p>Since what we&#8217;re looking for is a very well-defined pattern I decided to use BASH&#8217;s built-in regular expressions. I provide a pattern that matches =&#8221;[ahead X]&#8221; where X is a number. The matching number is stored in the <code>BASH_REMATCH</code> array. I can then print the number or nothing if no such match is present in the status line. The function we get is this:</p>
<p><pre class="brush: bash;">
function git-unpushed {
    brinfo=$(git branch -v | grep git-branch-name)
    if [[ $brinfo =~ (&quot;[ahead &quot;([[:digit:]]*)]) ]]
    then
        echo &quot;(${BASH_REMATCH[2]})&quot;
    fi
}
</pre></p>
<p>The =~ is the BASH regex match operator and the pattern used follows it.</p>
<h2>Assembling the prompt</h2>
<p>All that&#8217;s left is to tie together the functions and have them show up in the BASH prompt. I used a little function to check if the current directory is actually part of a repo. If the =git status= command only returns an error and nothing else then I&#8217;m not in a git repo and the functions I made would only give nonsense results. This functions checks the =git status= and then calls the other functions or does nothing.</p>
<p><pre class="brush: bash;">
function gitify {
    status=$(git status 2&gt;/dev/null | tail -n 1)
    if [[ $status == &quot;&quot; ]]
    then
        echo &quot;&quot;
    else
        echo $(git-branch-name)$(git-dirty)$(git-unpushed)
    fi
}
</pre></p>
<p>Finally we could put together prompt. BASH allows for some common system information to be displayed in the prompt. I like to see the current hostname (to know which machine I&#8217;m on if I&#8217;m working over SSH) and the path to the directory I&#8217;m in. That&#8217;s what the <code>\h</code> and the <code>\w</code> are for. The Git information comes after that (if there is any) followed by a &gt;. I also like to make use of BASH&#8217;s color support.</p>
<p><pre class="brush: bash;">
function make-prompt
{
    local RED=&quot;\[033[0;31m\]&quot;
    local GREEN=&quot;\[033[0;32m\]&quot;
    local LIGHT_GRAY=&quot;\[033[0;37m\]&quot;
    local CYAN=&quot;\[033[0;36m\]&quot;

    PS1=&quot;${CYAN}\h\
${GREEN} \w\
${RED} \$(gitify)\
${GREEN} &gt;\
${LIGHT_GRAY} &quot;

}
</pre></p>
<h2>Conclusion</h2>
<p>I like this prompt because it gives me just enough information at a glance. I know where I am, if any changes have been made and how much I&#8217;ve diverged from the remote copy of my work. When I&#8217;m not in a Git repo the git information is gone. It&#8217;s clean simple and informative.</p>
<p>I&#8217;ve borrowed heavily from both <a title="Jon Maddox" href="http://www.jonmaddox.com/2008/03/13/show-your-git-branch-name-in-your-prompt/">Jon Maddox</a> and <a title="Zach Holman" href="https://github.com/holman/dotfiles/blob/master/zsh/prompt.zsh">Zach Holman</a> for some of the functionality. I didn&#8217;t come across anyone showing the commit count, but I wouldn&#8217;t be surprised if lots of other people have it too. There are probably other ways to get the same effect, this is just what I&#8217;ve found and settled on. The whole setup is available as a gist so feel free to use or fork it.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/1763/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/1763/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/1763/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/1763/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bytebaker.wordpress.com/1763/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bytebaker.wordpress.com/1763/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bytebaker.wordpress.com/1763/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bytebaker.wordpress.com/1763/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/1763/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/1763/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/1763/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/1763/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/1763/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/1763/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&amp;blog=8123270&amp;post=1763&amp;subd=bytebaker&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2012/01/09/show-git-information-in-your-prompt/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ccb1217c46b31b7b232878d355f7f4e4?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	</item>
		<item>
		<title>Where is the computation?</title>
		<link>http://bytebaker.com/2012/01/04/where-is-the-computation/</link>
		<comments>http://bytebaker.com/2012/01/04/where-is-the-computation/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 20:34:00 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[cloud computing]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=1755</guid>
		<description><![CDATA[I&#8217;m pretty happy with my Nexus S so far. It&#8217;s a decent phone with some solid apps and services. More importantly, it&#8217;s a well-equipped little pocket computer. However the more I use smartphones (and similar devices like the iPod Touch) the more I feel a nagging sense that I&#8217;m not really these devices well, at [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&amp;blog=8123270&amp;post=1755&amp;subd=bytebaker&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m pretty happy with <a href="http://bytebaker.com/2012/01/02/a-new-year-a-new-phone/">my Nexus S</a> so far. It&#8217;s a decent phone with some solid apps and services. More importantly, it&#8217;s a well-equipped little pocket computer. However the more I use smartphones (and similar devices like the iPod Touch) the more I feel a nagging sense that I&#8217;m not really these devices well, at least not to their full potential.</p>
<p>While the devices in our pockets might be increasingly powerful general purpose computers I feel like we use them more for communication than for <em>computation</em>. That&#8217;s not to say that communication does not require computation (it does, lots of it), but we&#8217;re not using our devices with the goal of solving problems via computation.</p>
<p>This is perhaps a very programmer-centric viewpoint of mobile technology, but one that is important to consider. Even someone like me, who writes code on a regular basis to solve a variety of both personal and research problems, does very little computation on mobile devices. In fact, the most I&#8217;ve been using my Nexus for is email, RSS reading, Twitter, Facebook and Foursquare. While all those services definitely have good uses, they are all cases where most of the computation happens far away on massive third-party datacenters. The devices themselves act as terminals (or portals if you prefer a more modern-sounding term) onto the worlds these services offer.</p>
<p>Just to be clear, I&#8217;m not saying that I want to write programs on these devices. Though that would certainly be neat, I can&#8217;t see myself giving up a more traditional computing environment for the purposes of programming anytime soon. However, I do want my device to do more than help me keep in touch with my friends (again, that&#8217;s a worthy goal but just the beginning). So the question is, what kind of computation do we want our mobile devices to do?</p>
<p>Truth be told, I&#8217;m not entirely sure. One way to go is to have our phones become capable personal assistants. For example, I would like to be able to launch an app when I walk into a meeting (or better yet, have it launch itself based on my calendar and geolocation). The app would listen in on the conversation, apply natural language processing and generate a list of todos, reminders and calendar items automatically based on what was said in the meeting. Of course there are various issues (privacy, technology, politics, corporations playing nicely with each other) but I think it&#8217;s a logical step forward.</p>
<p>As payment systems in phones become more popular, I&#8217;d like my phone to become my banker too (and I&#8217;m not just talking about budgeting and paying bills on time). For example if I walk into a coffee shop my phone should check if I&#8217;m on budget as far as coffee shops go and check coffee shops around the area to suggest a cheaper (or better, for some definition of better) alternative. And it doesn&#8217;t just have to be limited to coffee shops.</p>
<p>Mobile technology is sufficiently new that most of us don&#8217;t have a very clear idea of what to do with it (or a vision of what it should do). Most so-called &#8220;future vision&#8221; videos focus more on interfaces than actual capabilities. However this technology is evolving fast enough that I think we&#8217;re going to see the situation improving quickly. With geolocation-based services, NFC and voice commands becoming more ubiquitous and useful the stage is becoming set for us to make more impactful uses of the processors in our pockets. As a programmer I would love to be able to hook up my phone to any cloud services or private servers I&#8217;m using and be able to interact with them. The mobile future promises to be interesting and I&#8217;m definitely looking forward to it.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/1755/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/1755/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/1755/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/1755/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bytebaker.wordpress.com/1755/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bytebaker.wordpress.com/1755/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bytebaker.wordpress.com/1755/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bytebaker.wordpress.com/1755/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/1755/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/1755/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/1755/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/1755/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/1755/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/1755/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&amp;blog=8123270&amp;post=1755&amp;subd=bytebaker&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2012/01/04/where-is-the-computation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ccb1217c46b31b7b232878d355f7f4e4?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	</item>
		<item>
		<title>A New Year, A New Phone</title>
		<link>http://bytebaker.com/2012/01/02/a-new-year-a-new-phone/</link>
		<comments>http://bytebaker.com/2012/01/02/a-new-year-a-new-phone/#comments</comments>
		<pubDate>Mon, 02 Jan 2012 14:00:00 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Nexus S]]></category>
		<category><![CDATA[T-mobile]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=1749</guid>
		<description><![CDATA[This year I&#8217;ve decided to make a foray into the future by finally getting myself a proper smartphone. I&#8217;ve had an iPod Touch for a while but also had a simple Nokia not-smart phone to make actual phone calls. It&#8217;s always been somewhat annoying to have to manage two devices: a real phone for calls [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&amp;blog=8123270&amp;post=1749&amp;subd=bytebaker&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This year I&#8217;ve decided to make a foray into the future by finally getting myself a proper smartphone. I&#8217;ve had an iPod Touch for a while but also had a simple Nokia not-smart phone to make actual phone calls. It&#8217;s always been somewhat annoying to have to manage two devices: a real phone for calls or texts and the iPod for any Internet and data-related work. A large part of my resistance to getting an actual smartphone was that I simply didn&#8217;t want to spend a lot of money on a cell phone plan when I was surrounded by wi-fi all the time and barely made actual phone calls. But now that there are finally both reasonably cheap unlocked smartphones and contract-free data plans I decided to bite the bullet.</p>
<p>The unlocked iPhone 4S would end up costing me a tad over $800 after tax and Applecare. I was also getting bored of the iOS ecosystem and its closed, silo system for apps. So instead I got myself a much cheaper unlocked Android phone – the Google/Samsung Nexus S. I&#8217;m pairing that with a $30 a month T-Mobile data and phone plan. I&#8217;m still waiting for a new SIM card to show up but till then I&#8217;m making use of the ample wifi coverage that&#8217;s a side-effect of living in a college town. For now, I&#8217;m only going to talk about my first impressions on the Nexus S itself.</p>
<div class="wp-caption aligncenter" style="width: 317px"><a href="http://en.wikipedia.org/wiki/Nexus_S"><img title="Google Nexus S" src="http://upload.wikimedia.org/wikipedia/commons/thumb/f/fe/Nexus_S.png/307px-Nexus_S.png" alt="Google Nexus S" width="307" height="599" /></a><p class="wp-caption-text">Google Nexus S (via Wikipedia)</p></div>
<p>The Nexus S is Google&#8217;s previous flagship phone. Its current flagship is the Galaxy Nexus which Google is also selling unlocked. However it&#8217;s almost twice the price I paid for the Nexus S and in my opinion, isn&#8217;t sufficient of an upgrade to justify the price. Even though it&#8217;s about a year old by now (and technically running the old version of Android), I haven&#8217;t had a problem with it so far.</p>
<p>It looks pretty different from the iPhone and the plastic feel takes some getting used it. I also think it slips more easily, but that might just be a personal problem. The back of the phone has something of a ridge at the bottom which I guess is supposed to make it easier to hold. Though the build quality does feel inferior as compared to the iPhone, I like it and have no major complaints.</p>
<p>The Android sofware feels like a breath of fresh air as compared to the iPhone. It is considerably more customizable and I like the presence of both tradiiontal apps as well as &#8220;widgets&#8221; that add functionality directly to your home screens. I&#8217;ve found widgets great for quickly looking up data like the weather, Twitter mentions or what system services are currently running.</p>
<p>The tinkerer in me loves how customizable the Android system is. Changing the look and feel is just the beginning. There are a lot of bells and whistles and options and sometimes it can be a rather confusing. For now I&#8217;ve only stuck to the usual set of apps (Twitter, Foursquare, Camera) but I&#8217;m looking forward to trying out new and interesting apps in the future. More than that I feel like Android would be a really good platform if I decide to get into mobile dev anytime soon.</p>
<p>There are a few things about the Nexus S that I&#8217;m concerned with. I think the battery life is a tad too short, especially with the geolocation services on all the time. Luckily, the battery monitor widget makes it simple to turn off services with a touch so maybe some manual management might make it better. While the Google apps are really well integrated (especially Google Voice) and apps from large companies are well done, third-party apps seem to be of considerably less quality than iOS equivalents. I don&#8217;t really blame the developers given the multitude of devices but it does mean that finding good apps for simple things like RSS is more difficult than it should be.</p>
<p>Despite the glitches and minor annoyances I really like the Nexus S. The hardware is pretty solid and I like Android so far. Right now having a fully functional smartphone is still pretty new to me, but I&#8217;m hoping that when the novelty wears off I&#8217;ll dive into actually programming the powerful computer in my pocket.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/1749/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/1749/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/1749/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/1749/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bytebaker.wordpress.com/1749/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bytebaker.wordpress.com/1749/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bytebaker.wordpress.com/1749/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bytebaker.wordpress.com/1749/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/1749/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/1749/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/1749/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/1749/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/1749/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/1749/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&amp;blog=8123270&amp;post=1749&amp;subd=bytebaker&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2012/01/02/a-new-year-a-new-phone/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ccb1217c46b31b7b232878d355f7f4e4?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>

		<media:content url="http://upload.wikimedia.org/wikipedia/commons/thumb/f/fe/Nexus_S.png/307px-Nexus_S.png" medium="image">
			<media:title type="html">Google Nexus S</media:title>
		</media:content>
	</item>
		<item>
		<title>Happy New Year</title>
		<link>http://bytebaker.com/2012/01/01/happy-new-year/</link>
		<comments>http://bytebaker.com/2012/01/01/happy-new-year/#comments</comments>
		<pubDate>Sun, 01 Jan 2012 21:00:50 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[2012]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=1746</guid>
		<description><![CDATA[Happy New Year Everyone! Hope you all have a great year ahead of you. Apparently the world is supposed to end sometime this year but I&#8217;m sure there will be enough time for crazy hacks, awesome technology and interesting new happenings before then. Personally I&#8217;m looking forward to branching into serious functional programming, learning more [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&amp;blog=8123270&amp;post=1746&amp;subd=bytebaker&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Happy New Year Everyone! Hope you all have a great year ahead of you. Apparently the world is supposed to end sometime this year but I&#8217;m sure there will be enough time for crazy hacks, awesome technology and interesting new happenings before then. Personally I&#8217;m looking forward to branching into serious functional programming, learning more about networks and networked applications, experimenting with cool new programming languages and maybe even making a few forays into mobile development. I hope there&#8217;s going to be a lot of learning, lots more programming and even more personal projects that I can release to the public. Glad to have you all along for the ride!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/1746/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/1746/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/1746/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/1746/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bytebaker.wordpress.com/1746/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bytebaker.wordpress.com/1746/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bytebaker.wordpress.com/1746/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bytebaker.wordpress.com/1746/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/1746/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/1746/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/1746/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/1746/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/1746/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/1746/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&amp;blog=8123270&amp;post=1746&amp;subd=bytebaker&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2012/01/01/happy-new-year/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ccb1217c46b31b7b232878d355f7f4e4?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	</item>
		<item>
		<title>Beat Procrastination with Science</title>
		<link>http://bytebaker.com/2011/12/13/beat-procrastination-with-science/</link>
		<comments>http://bytebaker.com/2011/12/13/beat-procrastination-with-science/#comments</comments>
		<pubDate>Tue, 13 Dec 2011 14:00:00 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=1732</guid>
		<description><![CDATA[Another day and another poor soul on Hacker News grieving about losing the day to procrastination. I&#8217;ve been there, done that. Too many times to count. And I&#8217;ve heard the story retold in many variations. But the one thing that struck me about this particular story was that the author says, &#8220;I&#8217;ve still no clue [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&amp;blog=8123270&amp;post=1732&amp;subd=bytebaker&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Another day and another poor soul on Hacker News <a href="http://removed.posterous.com/at-the-end-of-a-procrastinated-day">grieving about losing the day</a> to procrastination. I&#8217;ve been there, done that. Too many times to count. And I&#8217;ve heard the story retold in many variations. But the one thing that struck me about this particular story was that the author says, &#8220;I&#8217;ve still no clue why humans procastrinate (sic).&#8221;</p>
<p>Now that strikes me as strange because it&#8217;s not like procrastination is some deep mystery of the universe. There are people who actually study procrastination and why humans do it (and by extension, how to fight it). They&#8217;re called scientists, more accurately, neuroscientists and psychologists. What&#8217;s even better is that <a href="http://lukeprog.com/index.html">someone else</a> has gone and done the work of curating much of the available research in the area and tried to offer a coherent, <a href="http://lesswrong.com/lw/3w3/how_to_beat_procrastination/">scientific strategy for beating procrastination</a>. That article (and the references) are a veritable treasure trove of information, but here&#8217;s the quick start version to get you up and fighting procrastination right now.</p>
<p>Essentially beating procrastination comes down to three steps:</p>
<div id="outline-container-1" class="outline-3">
<h3 id="sec-1">1. Increase your expectancy of success</h3>
<div id="text-1" class="outline-text-3">
<p>Do this by starting properly on small tasks that you can finish easily. This helps to build success spirals where one victory gives you the mental boost to make it to the next. Join groups (like Toastmasters) and create situations that will improve your chance of success. Visualize your goals but be honest about your current situation so that you can plan a realistic strategy to what you want.</p>
</div>
</div>
<div id="outline-container-2" class="outline-3">
<h3 id="sec-2">2. Increase value</h3>
<div id="text-2" class="outline-text-3">
<p>Engage in tasks that are meaningful to you and provide you with ample opportunities for entering a state of flow. Reduce errands and other short, distracting tasks so that you can focus on the things that really matter to you.</p>
</div>
</div>
<div id="outline-container-3" class="outline-3">
<h3 id="sec-3">3. Control impulsiveness</h3>
<div id="text-3" class="outline-text-3">
<p>Set clear and frequent goals. Measure repeatedly and correct course accordingly. Acknowledge that humans are creatures of habits and set ones that are biased towards putting you in a favorable position to get work done.</p>
</div>
</div>
<div id="outline-container-4" class="outline-3">
<h3 id="sec-4">In conclusion</h3>
<div id="text-4" class="outline-text-3">
<p>The breadth and depth of human knowledge can be very surprising, especially when it comes to knowledge about yourselves. If you ever catching yourself saying &#8220;I don&#8217;t know why I do this&#8221; consider the possibility that someone else does know (and has published about it). Science and rationalities can be powerful allies when we are our own worst enemies.</p>
</div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/1732/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/1732/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/1732/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/1732/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bytebaker.wordpress.com/1732/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bytebaker.wordpress.com/1732/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bytebaker.wordpress.com/1732/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bytebaker.wordpress.com/1732/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/1732/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/1732/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/1732/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/1732/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/1732/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/1732/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&amp;blog=8123270&amp;post=1732&amp;subd=bytebaker&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2011/12/13/beat-procrastination-with-science/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ccb1217c46b31b7b232878d355f7f4e4?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	</item>
		<item>
		<title>Sunday Selection 2011-12-11</title>
		<link>http://bytebaker.com/2011/12/11/sunday-selection-2011-12-11/</link>
		<comments>http://bytebaker.com/2011/12/11/sunday-selection-2011-12-11/#comments</comments>
		<pubDate>Sun, 11 Dec 2011 14:00:00 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[diet]]></category>
		<category><![CDATA[health]]></category>
		<category><![CDATA[literate programming]]></category>
		<category><![CDATA[motivation]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=1735</guid>
		<description><![CDATA[Around the Internet More shell, less egg It&#8217;s alway a joy to see two masters at the top of their craft engaged in a respectful, but determined duel. This is a short commentary on Donald Knuth and Doug McIlroy&#8217;s approaches to literate programming. Worth reading even if you&#8217;re not a big fan of literate programming. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&amp;blog=8123270&amp;post=1735&amp;subd=bytebaker&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="outline-container-1" class="outline-3">
<h3 id="sec-1">Around the Internet</h3>
<div id="text-1" class="outline-text-3">
<p><a href="http://www.leancrew.com/all-this/2011/12/more-shell-less-egg/">More shell, less egg</a> It&#8217;s alway a joy to see two masters at the top of their craft engaged in a respectful, but determined duel. This is a short commentary on Donald Knuth and Doug McIlroy&#8217;s approaches to literate programming. Worth reading even if you&#8217;re not a big fan of literate programming.</p>
<p><a href="http://www.johndcook.com/blog/2011/12/08/selective-use-of-technology-2/">Selective use of technology</a> I firmly believe that science and technology is a good thing and that our world is better because of them. However I also understand that technology cannot do everything for us. In particular there are a lot of decisions it cannot make for us (yet). I also tend to get a lot of my best work when I am least partially disconnected and can hold at bay the full force of the Internet. All things in moderation.</p>
<p><a href="http://www.wired.com/wiredscience/2011/12/why-sugar-makes-us-sleepy-and-protein-wakes-us-up/">Why sugar makes us sleepy (and protein wakes us up)</a> As much as many of us would like to live as if we disembodied brains surviving on anything that barely resembled food, that is definitely not the case. Since we are stuck with our flesh-and-blood physical bodies for the foreseeable future, it is a good idea to figure out how it all works and make the most of it.</p>
</div>
</div>
<div id="outline-container-2" class="outline-3">
<h3 id="sec-2">From the Bookshelf</h3>
<div id="text-2" class="outline-text-3">
<p><a href="http://www.amazon.com/gp/product/1936719010?qid=1322772409&amp;ref_=sr_1_1&amp;s=books&amp;sr=1-1">Do the Work</a> While I&#8217;m not entrely a fan of Steven Pressfield&#8217;s use of vaguely &#8220;spiritual&#8221; ideas and terms, this book is still worth reading for everyone. It&#8217;s especially useful if you have that big project you&#8217;ve been thinking about but never got around to actually starting. At $1.99 for the Kindle edition, it&#8217;s a steal.</p>
</div>
</div>
<div id="outline-container-3" class="outline-3">
<h3 id="sec-3">Video</h3>
<div id="text-3" class="outline-text-3">
<p><a href="http://vimeo.com/9270320">What we actually know about software development</a> Despite the importance of software development, most developers are acutely unaware of the scientific studies in the area and rely mostly on anecdote. Luckily there is an increasing amount of research in software development (not to be confused with computer science) and it&#8217;s worth knowing what we actually know about the field and what is myth.</p>
</div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/1735/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/1735/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/1735/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/1735/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bytebaker.wordpress.com/1735/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bytebaker.wordpress.com/1735/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bytebaker.wordpress.com/1735/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bytebaker.wordpress.com/1735/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/1735/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/1735/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/1735/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/1735/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/1735/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/1735/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&amp;blog=8123270&amp;post=1735&amp;subd=bytebaker&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2011/12/11/sunday-selection-2011-12-11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ccb1217c46b31b7b232878d355f7f4e4?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	</item>
	</channel>
</rss>
