<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>The ByteBaker</title>
	
	<link>http://bytebaker.com</link>
	<description>Computer Science isn't a science and it's not about computers</description>
	<lastBuildDate>Fri, 20 Nov 2009 13:28:29 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain="bytebaker.com" port="80" path="/?rsscloud=notify" registerProcedure="" protocol="http-post" />
<image>
		<url>http://www.gravatar.com/blavatar/6d47d9dd6b113f7f539237c5cff8cd54?s=96&amp;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>The ByteBaker</title>
		<link>http://bytebaker.com</link>
	</image>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/bytebaker" type="application/rss+xml" /><feedburner:emailServiceId>bytebaker</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>The value of the network</title>
		<link>http://feedproxy.google.com/~r/bytebaker/~3/y_m38t48Cpk/</link>
		<comments>http://bytebaker.com/2009/11/20/the-value-of-the-network/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 13:28:29 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[networking]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=966</guid>
		<description><![CDATA[According to Metcalfe&#8217;s Law the value of any network is proportional to the square of the number of connected users. As the Web becomes an increasingly important part of our lives, it&#8217;s important to keep that in mind. It&#8217;s especially important to remember if you&#8217;re planning on running a business based on the Web or [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&blog=8123270&post=966&subd=bytebaker&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>According to <a href="http://en.wikipedia.org/wiki/Metcalfe%27s_law">Metcalfe&#8217;s Law</a> the value of any network is proportional to the square of the number of connected users. As the Web becomes an increasingly important part of our lives, it&#8217;s important to keep that in mind. It&#8217;s especially important to remember if you&#8217;re planning on running a business based on the Web or if you plan on using some web-based technology as a core part of workflow.</p>
<p>I&#8217;ve had a Google Wave account for a few weeks and I practically never use it. This is despite the fact that I communicate a  lot online. Even with Facebook, Twitter and this blog, the fact remains that the one tool I use more than anything else is email. It&#8217;s not because Email is the most efficient or powerful medium (it&#8217;s better than Facebook&#8217;s messages, but less powerful than Wave) but rather because it&#8217;s the network that has the most number of connected users and the square of that number is huge. Everyone has email. Everyone checks their email. The main reason I can see for Wave not catching on outside of internal corporate/team networks is that the email network is massively more valuable and powerful.</p>
<p>This is true even outside the Internet. Lately I&#8217;ve started  looking for people who can be creative partners &#8211; people with who I can work with on innovative and fun projects. I&#8217;ve been looking outside my friend circle (though some of my friends are my creative partners too) because I want to create a larger, well connected network with a specific purpose. Looking back, I can see trace the start of this network back to about a year or so ago. Of course, I had no idea that I was creating such a network, but now that I can see that happening, I can see the value of the network growing as I add more people to the network. As this network grows, we all benefit by having access to more opportunities and coming up with better ideas than what we would have with fewer members. We&#8217;re using technology and the Web to sustain the network, but it&#8217;s power is independent of the medium.</p>
<p>I only really started thinking about networks when I <a href="http://feeds.dashes.com/~r/AnilDash/~3/-Co5nQjcXaE/new-york-city-is-the-future-of-the-web.html">read this post</a> by Anil Dash where he talks about how he loves New York and it&#8217;s startup scene:</p>
<blockquote><p>New York City startups are as likely to be focused on the arts and crafts as on the bits and bytes, to be influenced by our unparalleled culture as by the latest browser features, and informed by the dynamic interaction of different social groups and classes that&#8217;s unavoidable in our city, but uncommon in Silicon Valley. Best of all, the support for these efforts can come from investors and supporters that are outside of the groupthink that many West Coast VC firms suffer from. When I lived in San Francisco, it was easy to spend days at a time only interacting with other web geeks; In New York, fortunately, that&#8217;s impossible.</p></blockquote>
<p>The reason that New York is becoming such a hotbed of new social technology startups is because of the networks it fosters. Similarly the reason that it&#8217;s startups are so different from Silicon Valley&#8217;s is that the composition of the network is different. Both networks have lots of nodes, lots of connections and hence are of great value, but the different compositions make them and the creations they engender very different.</p>
<p>Even when it comes to pure technology the network is powerful. The lone hacker in the basement may be the stuff of legend, but the most famous hackers are also the best networkers. Linus Torvalds put Linux out on the Internet and leveraged the power of that network. Jamie Zawinski helped build Netscape which in turn was instrumental in the creation of the modern Internet. He was also responsible for XEmacs &#8211; a text editor with a large and powerful network.</p>
<p>The moral of this article is this: don&#8217;t neglect the network. It might seem heroic and even fun at times to just lock yourself in your room and crank out code (or other works of art), but your work will only become powerful if there are lots of people using and appreciating it. And the fact this, that no matter what kind of introverted and antisocial tendencies you might have, networking is fun, <strong>if you find the right people to network with.</strong> At the same networking for networking&#8217;s sake is a mistake and can be very frustrating. Start out with a purpose &#8211; making a great free operating system for example &#8211; and then go find people who are into the same kind of thing. Happy networking.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/966/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/966/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/966/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/966/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/966/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/966/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/966/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/966/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/966/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/966/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&blog=8123270&post=966&subd=bytebaker&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2009/11/20/the-value-of-the-network/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3ff3d3b5202caab0c49d2dd713fb6fc3?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	<feedburner:origLink>http://bytebaker.com/2009/11/20/the-value-of-the-network/</feedburner:origLink></item>
		<item>
		<title>Computing is still in the dark ages</title>
		<link>http://feedproxy.google.com/~r/bytebaker/~3/3sIYJU6OVlI/</link>
		<comments>http://bytebaker.com/2009/11/18/computing-is-still-in-the-dark-ages/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 14:09:12 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[programming languages]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=962</guid>
		<description><![CDATA[Despite all the talk of Web 2.0 and the shiny multicore machines with their gigabytes of RAM and billions of cycles per second, I sometimes can&#8217;t help feel that we are still very much in the dark ages of computing. This time around my dark gloomy feelings have been brought about by this message to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&blog=8123270&post=962&subd=bytebaker&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Despite all the talk of Web 2.0 and the shiny multicore machines with their gigabytes of RAM and billions of cycles per second, I sometimes can&#8217;t help feel that we are still very much in the dark ages of computing. This time around my dark gloomy feelings have been brought about by this <a href="http://xent.com/pipermail/fork/Week-of-Mon-20091109/054578.html">message to a mailing list</a> which in turn was sparked off by the announcement of the <a href="http://golang.org/">Go Programming Language</a>. As a computer user and a programmer I feel that the actual use of computers is far below their potential.</p>
<p>As the years go by, it seems like we keep on piling layer on top of layer while the results aren&#8217;t proportional to what we have to learn to get things done. Now, I&#8217;m not proposing that we all start writing down-to-the-metal code or force everyone to become a programmer, but things are starting to look like a mess. Web programming is an interesting development, but it adds yet another layer on top of the existing kernel, operating system, libraries and GUI toolkits. Add to that the fact all browsers are still a bit different from each other and you can start to understand why I&#8217;ve yet to make a serious foray into web programming.</p>
<p>But even without the web and the many formats and barely interoperating systems out there, there&#8217;s enough on the desktop to get you depressed. Start with the fact that there are currently three major operating systems out there and if you want to write a program that runs on all three of them, you don&#8217;t have an easy task. You either embrace three different toolkits and programming methodologies and maintain 3 very different codebases, or you use something like Java which works on all three, but screams non-native on each one. Even though there are languages like Python that run on all of three, it really puts me off that there is still no top-notch multiplatform GUI library. <a href="http://www.wxwidgets.org">wxWidgets</a> tries pretty hard, but if you look at the <a href="http://www.wxwidgets.org/about/screensh.htm">screenshots</a> you can pretty easily that they don&#8217;t look quite right. It&#8217;s not very surprising that lots of smart developers are flocking to the web, where things in comparison are a lot smoother.</p>
<p>There is also the fact that programming languages, like all other pieces of major software, suck more than others. I still stand by what I said in my last post, that <a href="http://bytebaker.com/2009/11/16/its-a-great-time-to-be-a-language-buff/">it&#8217;s an exciting time for language enthusiasts</a>, but I also feel that there are some <a href="http://www.lazycoder.com/weblog/2009/11/17/we-need-a-language-for-programmers/">lessons we really need to learn</a>. I&#8217;m starting to have concerns that there may not be any true general purpose language, simply because there are so many different types of problems to be solved. I think we need to start creating broader categories: a set of systems languages similar to C going in the direction of D and Go. A set of hyper-optimizing VM-based languages designed for long-running, parallel server applications (the current JVM is a good example). A set of languages for writing end-user apps that are significantly high-level, but are still compiled to pretty fast native code (maybe not C or even optimized VM fast, but better than todays Python or Ruby). I&#8217;m thinking Python in its <a href="http://bytebaker.com/2009/09/24/why-unladen-swallow-is-important-to-pythons-future/">Unladen Swallow</a> incarnation might fill this gap.</p>
<p>As a programmer, the state of tools that we have to use is really quite depressing. Tools like Emacs and Vi are powerful and all, but let&#8217;s face it: we could really be having much more powerful IDE technology. We should be having full blown incremental compilation with autocompletion and support for rendering documentation for every major language out there. We should also have seamless version control with granularity down to the undo level. Every change I make should be saved and I should be able to visually browse all these changes, see what they are and restore to an older state (or commit them if I want to). We have the raw computing power needed to do all this, but yet we remain stuck doing mostly batch-style edit-compile-debug cycles and mucking around in plain text. Eclipse with its incremental compiler makes things much easier, but there&#8217;s so much more we could be using our machines for.</p>
<p>As a user, what irritates me is the amount of manual labor we still have to do on a daily basis. We still have to carefully name and place files so that we can file them later. I have to manually hit the save button (see version control bit above). Even with the Internet collaboration is a mess with most people throwing around emails with increasingly larger attachments. Add to that the fact that most email clients are pretty dumb pieces of software. <a href="http://wave.google.com">Google Wave</a> is a step in the right direction, if enough people get around to actually using it (and if it can integrate to some extent at least with the desktop). Also I think the web and the desktop need to be brought closer together. Ideally I would be able to sit down on any computer with a live Internet connection and have my full custom work environment (or at least the most important parts of it).</p>
<p>I&#8217;m fully aware that none of the things I&#8217;ve mentioned are trivial. In fact, they&#8217;re probably very hard projects that will take expert teams a good few years to complete. One day I would like to seriously work on some of the programmer-related issues, especially the IDE part. I love Emacs, but there are some parts of Eclipse I really like too. For the time being I&#8217;m going to have to make do with what I have, but I&#8217;ll be sure to keep an eye for interesting things and movements in the right direction.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/962/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/962/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/962/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/962/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/962/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/962/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/962/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/962/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/962/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/962/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&blog=8123270&post=962&subd=bytebaker&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2009/11/18/computing-is-still-in-the-dark-ages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3ff3d3b5202caab0c49d2dd713fb6fc3?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	<feedburner:origLink>http://bytebaker.com/2009/11/18/computing-is-still-in-the-dark-ages/</feedburner:origLink></item>
		<item>
		<title>It’s a great time to be a language buff</title>
		<link>http://feedproxy.google.com/~r/bytebaker/~3/halbSfzTWSQ/</link>
		<comments>http://bytebaker.com/2009/11/16/its-a-great-time-to-be-a-language-buff/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 13:22:22 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Common Lisp]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[programming languages]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[scala]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=958</guid>
		<description><![CDATA[I make no secret of the fact that I have a very strong interest in programming languages. So I was naturally very interested when news of the Go Programming Language hit the intertubes. Go is an interesting language. It pulls together some very powerful features with a familiar, but clean syntax and has lightning fast [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&blog=8123270&post=958&subd=bytebaker&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I make no secret of the fact that I have a very strong interest in programming languages. So I was naturally very interested when news of the Go Programming Language hit the intertubes. Go is an interesting language. It pulls together some very powerful features with a familiar, but clean syntax and has lightning fast compile times. It certainly takes a place on my to-learn list along with Haskell and Scala. But even as Go becomes the latest hot piece of language news, it dawned on me that over the past few years we&#8217;ve seen a slew of interesting languages offering compelling alternatives to the industry &#8220;mainstream&#8221;.</p>
<p>I guess it all started with the rise of scripting languages like Python, PHP, Ruby and the poster boy of scripting: Perl. Personally, these languages with their dynamic typing, &#8220;batteries included&#8221; design and interesting syntax provided a breath of fresh air from the likes of C++ and Java. Not that C++ and Java are necessarily bad languages, but they aren&#8217;t the most interesting of modern languages. In the early years of this decade  computers were just getting fast enough to write large scale software in scripting languages. Things have changed a lot since then.</p>
<p>Dynamic languages aren&#8217;t just reserved for small scripts. Software like Ruby on Rails has proved that you can write really robust back end infrastructure with them. The languages for their part have kept on growing, adding features and making changes that keep them interesting and downright fun to use. Python 3.0 was a brave decision to make a break from backwards compatibility in order to do interesting things and it goes to show that these languages are far from ossifying or degrading.</p>
<p>Then there is JavaScript which was supposed to die a slow death by attrition as web programmers moved to Flash or Silverlight. But we all know that didn&#8217;t happen. JavaScript has stayed in the background since the rise of Netscape, but it&#8217;s only recently with advances in browser technology and growing standards support that it has really come into its own. I&#8217;ve only played with it a little, but it&#8217;s a fun little language which makes me feel a lot of the same emotions I felt when discovering Python for the first time. Thanks to efforts like Rhino, you can even use JavaScript on the client side for non-web related programming.</p>
<p>Of course, if you want to do really interesting things with these languages, then performance is not optional. Within the last year or two there&#8217;s been a strong push in both academia and industry to find ways to make these languages faster and safer. Google in particular seems to be in the thick of it. Chrome&#8217;s V8 JavaScript engine is probably the fastest client side JavaScript environment and their still experimental Unladen Swallow project has already made headway in improving Python performance. V8 has already enabled some amazing projects and I&#8217;m waiting to see what Unladen Swallow will do.</p>
<p>While we&#8217;re on the topic of performance, mentioning the Java Virtual Machine is  a must. The language itself seems to have fallen from grace lately, but the JVM is home to some of the most powerful compiler technology on the planet. It&#8217;s no wonder then that the JVM has become the target for a bunch of interesting languages. There are the ports of popular languages &#8212; JRuby,  Jython and Rhino. But the more interesting ones are the JVM-centric ones. Scala is really interesting in that it was born of an academic research project but is becoming the strongest contender to Java&#8217;s position of premier JVM language. Clojure is another language that I don&#8217;t think many people saw coming. It brings the power of LISP to a modern JVM unleashing a wide range of possibilities. It has it&#8217;s detractors, but it&#8217;s certainly done a fair bit to make Lisp a well known name again.</p>
<p>Academia has always been a hot bed when it comes to language design. It&#8217;s produced wonders like Lisp and Prolog and is making waves again with creations like Haskell (whose goal is ostensibly to avoid popularity at all costs) and the ML group of languages. These powerful functional languages with wonderful type inference are a language aficionado&#8217;s dream come true in many ways and they still have years of innovation ahead of them.</p>
<p>Almost as a corollary to the theoretically grounded functional languages, systems languages have been getting some love too. D and now Go are both languages that acknowledge that C and C++ have both had their heyday and it&#8217;s time to realize that systems programming does not have to be synonymous with bit twiddling. D has gotten some flak recently for not evolving very cleanly over the last few years, but something is better than nothing. Also a real shift towards eliminating manual memory management is a welcome addition.</p>
<p>As someone who intends to seriously study language design and the related concepts in the years to come, it&#8217;s a really great time to be in getting involved in learning about languages. At the moment I&#8217;m trying to teach myself Common Lisp and I have a Scala book sitting on the shelf too. One fo these days, I plan on sitting down and making a little toy language to get used to the idea of creating a language. Till then, it&#8217;s going to be really interesting just watching how things work out in an increasingly multilingual world.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/958/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/958/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/958/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/958/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/958/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/958/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/958/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/958/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/958/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/958/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&blog=8123270&post=958&subd=bytebaker&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2009/11/16/its-a-great-time-to-be-a-language-buff/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3ff3d3b5202caab0c49d2dd713fb6fc3?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	<feedburner:origLink>http://bytebaker.com/2009/11/16/its-a-great-time-to-be-a-language-buff/</feedburner:origLink></item>
		<item>
		<title>Book Review: Coders at Work</title>
		<link>http://feedproxy.google.com/~r/bytebaker/~3/m_S37kUFuBM/</link>
		<comments>http://bytebaker.com/2009/11/04/book-review-coders-at-work/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 13:29:21 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Donald Knuth]]></category>
		<category><![CDATA[Guy Steele]]></category>
		<category><![CDATA[Jamie Zawinski]]></category>
		<category><![CDATA[Peter Seibel]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=955</guid>
		<description><![CDATA[At the outset let me just say that this is one book that every serious programmer must read at some point in their careers, preferably sooner rather than later. Coders at Work is a collection of interviews with 15 of the most brilliant programmers on the planet. You can find the full list of people [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&blog=8123270&post=955&subd=bytebaker&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>At the outset let me just say that this is one book that every serious programmer must read at some point in their careers, preferably sooner rather than later. Coders at Work is a collection of interviews with 15 of the most brilliant programmers on the planet. You can find the full list of people and some excerpts on the <a href="http://www.codersatwork.com/">book&#8217;s website</a>. As a teaser, the book includes such names as Donald Knuth, Jamie Zawinski, Guy Steele, Brendan Eich and Ken Thompson. It&#8217;s a impressive list and what&#8217;s more each interview is very well conducted giving a deep insight into both the person&#8217;s general ideas on programming and their particular area of expertise.</p>
<p>The book is the brainchild of Peter Seibel, the author of the very well written <a href="http://gigamonkeys.com/book/">Practical Common Lisp</a> which I can safely recommend as a good starting point for people starting to learn Lisp. Seibel&#8217;s interviewing style is very  effective, the questions are always short and to the point but they help guide the person in question into providing a lot of very interesting and useful information. They are also fairly open ended allowing the interviews to flow in interesting directions, unique to each person. He asks some general questions to all 15, things such as how they learned to program, what were their hardest problems or bugs, how they go about debugging and what their idea of the current state of programming is. But he also asks them things about their particular area of work. For example, with <a href="http://jwz.org">Jamie Zawinski</a> he talks a lot about Netscape and Mozilla while with <a href="http://www-cs-faculty.stanford.edu/~knuth/">Donald Knuth</a> the obvious topics are his masterpiece The Art of Computer Programming and literate programming. There are also some questions that you wouldn&#8217;t always think about, such as how to spot programming talent.</p>
<p>What makes the book very accessible is that it keeps technical jargon to a minimum. Anyone who has programming computers for a significant amount of time will have no problem in understanding most of the content. For areas that are more esoteric the programmers themselves provide very lucid explanations making it quite easy to follow along. A lot of the matter is about things that each programmer encounters: how to read someone elses code, how to debug programs, how to collaborate and pass on projects, how to improve as a programmer, what educational/personal qualifications are most helpful, etc. The book isn&#8217;t just about how awesome these people are: it&#8217;s about understanding how masters of the craft rose to that position and how us mere mortals might follow in their footsteps. Seibel does a pretty good job of asking the same question that many of us programmers would like to ask them if we had the chance.</p>
<p>Beyond the structure of the interviews, the book is made amazing by the stellar choice of programmers. Not only are they master programmers, they have very diverse experiences and interests resulting in lots of very interesting and powerful opinions. I particularly enjoyed Guy Steele&#8217;s interview which contains a fair amount of philosophy regarding programming and computer science and Fran Allen&#8217;s call for computing to become more socially relevant. At the same time, Zawinski and Thompson embodied what can be best described as the classic hacker mindset: coding for the pure joy of creation and problem solving. Many of the interviews are humorous in some way or the other and none of them degenerated into holy wars or religious diatribes.</p>
<p>There is absolutely no reason why you should not read this book. There are some areas for improvement, but these are of a presentational nature (I wish the interviews were broken in segments so that I didn&#8217;t have to read a full one at a sitting). Content wise there is nothing I have to say. Will this book help you become a master programmer? Well, not in any tangible, measurable sense. This book is not a howto or a handbook. Each person had their own ideas of how to do things and many of them disagree with what could be called &#8216;industry standards&#8217; (in particular how code should be formatted or structured). What this book will do is give a window into the minds of some of the legends of our culture. I&#8217;ve found it most useful to compare what these people have done and how they think to what I do and think myself. Essentially, read the book the same way you would read Benjamin Franklin&#8217;s autobiography. You won&#8217;t learn how to become a great statesman, inventor or Founding Father of a nation, but you can figure out some ways to live a better, more impactful life.</p>
<p>Coders at Work tells the stories of people who might be very well be considered heroes of our times. If you have an interest in becoming a better programmer, go buy this book, read it cover to cover, think about everything they say about their programming practices and experiences and see how you can use that to make your own experience better. And above all else, remember and act on what you read.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/955/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/955/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/955/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/955/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/955/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/955/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/955/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/955/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/955/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/955/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&blog=8123270&post=955&subd=bytebaker&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2009/11/04/book-review-coders-at-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3ff3d3b5202caab0c49d2dd713fb6fc3?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	<feedburner:origLink>http://bytebaker.com/2009/11/04/book-review-coders-at-work/</feedburner:origLink></item>
		<item>
		<title>Firefox’s greatest flaw: restarts</title>
		<link>http://feedproxy.google.com/~r/bytebaker/~3/eeZJF4e2Znw/</link>
		<comments>http://bytebaker.com/2009/11/02/firefoxs-greatest-flaw-restarts/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 13:58:54 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[firefox]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=951</guid>
		<description><![CDATA[I really like Firefox. Despite the new slew of browsers showing of some very impressive competing technology, Firefox is still my browser of choice. I love it because it offers a consistent experience across platforms and the large ecosystem of extensions makes it a snap to bring parts of the web (Twitter, email) directly into [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&blog=8123270&post=951&subd=bytebaker&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I really like Firefox. Despite the new slew of browsers showing of some very impressive competing technology, Firefox is still my browser of choice. I love it because it offers a consistent experience across platforms and the large ecosystem of extensions makes it a snap to bring parts of the web (Twitter, email) directly into the browser, cutting down on time spent and tabs used. Until some other browser grows a similarly impressive set of extensions I&#8217;ll keep to Firefox. With the Portable Apps versions, you can even take your personal, fully tricked-out Firefox with you wherever you may go.</p>
<p>Despite its general awesomeness, the one thing that continues to irritate me is the fact every now and then I have to stop work and restart. It&#8217;s probably not as bad as I make it sound, especially with the session management which makes it very easy to pick up where you left off. Of course, the restarts are for legitimate reasons: there&#8217;s a security update or I installed a new extension. Firefox is otherwise rock stable. However, even the once in a while restart can be very irritating, especially if like me, you are prone to the occasional bout of extension shopping. I went extension shopping when I started using Twitter a lot (to look for a good Twitter extension) and I went theme shopping to find something minimal when I got a netbook. There&#8217;s a lot of interesting stuff out there, but the problem was that every time I installed something I had to restart. That made browsing new adds-on a slow and rather painful experience.</p>
<p>I like the progress Firefox is making and commend the developers for making an awesome piece of tech but I really think that they should buckle down and just spend one point release on getting rid of the need to restart every time you install something. Some other extensible platforms (Emacs in particular and I think Eclipse too, to some extent) have support for installing extensions on the fly. Admittedly, Emacs is essentially a Lisp machine with a bunch of text editing primitives and I have no idea how Firefox is actually built. For all I know it could be a very difficult problem and might involve a significant rewrite and redesign. But difficult problems can be solved and I&#8217;m pretty sure much harder rewrites have been done in the past.</p>
<p>There is the possibility that I&#8217;m a lone minority and this restart problem doesn&#8217;t really bother anyone else. But I feel that this is more a result of people having gotten used to restarting than not really caring about the problem. Back in the day when I actually ran a Windows machine, frequent restarts were a part of everyday life. Things got considerably with Windows XP which wouldn&#8217;t suddenly freeze up at irregular intervals, but I still had to restart every now and then for a variety of reasons (mostly related to installing or updating software). Having been a full time Arch Linux user for the past 3 years, I&#8217;ve gotten used to not being forced to restart. I&#8217;ll only seriously considering rebooting my Linux laptop after doing a kernel upgrade and even then, I&#8217;ll wait for things to start not working right before I actually do restart. It&#8217;s far more likely that I forget to plug in my laptop and the battery slowly dies. Similarly, I often put off updates on my Mac Mini because I can&#8217;t stand the thought of waiting around for it download, install updates and then restart.</p>
<p>I will admit that things are probably easier to do when you have the freedom to tell the user to stop doing something and then restart. It means that you don&#8217;t have to worry about things getting overwritten or conflicts happening from trying to run the program while rewriting. As a developer, that peace of mind is something you&#8217;d be willing to pay a high price for. But that doesn&#8217;t change the fact that it is a nuisance to the user. And nuisances to users are by and large a bad thing. As developers I think we have a responsibility to give the user the best possible experience. Solving the problem of restart-free installs and updates is certainly a hard problem, but I think it&#8217;s one that is worth solving.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/951/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/951/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/951/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/951/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/951/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/951/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/951/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/951/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/951/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/951/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&blog=8123270&post=951&subd=bytebaker&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2009/11/02/firefoxs-greatest-flaw-restarts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3ff3d3b5202caab0c49d2dd713fb6fc3?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	<feedburner:origLink>http://bytebaker.com/2009/11/02/firefoxs-greatest-flaw-restarts/</feedburner:origLink></item>
		<item>
		<title>I got a tumblelog</title>
		<link>http://feedproxy.google.com/~r/bytebaker/~3/Rv2xQn1uVn0/</link>
		<comments>http://bytebaker.com/2009/10/12/i-got-a-tumblelog/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 13:46:02 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[friendfeed]]></category>
		<category><![CDATA[identi.ca]]></category>
		<category><![CDATA[tumblelog]]></category>
		<category><![CDATA[tumblr]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=947</guid>
		<description><![CDATA[I got a tumblelog. Domain wise it&#8217;s part of my static site at Basu::shr. Behind the scenes it&#8217;s a basic Tumblr weblog with a nice looking theme and little else. I already have a proper weblog (this one) and a static website. I also have Twitter and Identi.ca accounts and I have a Friendfeed which [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&blog=8123270&post=947&subd=bytebaker&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I got a <a href="http://blog.basushr.net">tumblelog</a>. Domain wise it&#8217;s part of my static site at <a href="http://basushr.net">Basu::shr</a>. Behind the scenes it&#8217;s a basic <a href="http://tumblr.com">Tumblr</a> weblog with a nice looking theme and little else. I already have a proper weblog (this one) and a static website. I also have <a href="http://twitter.com/basus">Twitter</a> and <a href="http://www.identi.ca/basus">Identi.ca</a> accounts and I have a <a href="http://friendfeed.com/basus">Friendfeed</a> which pulls in updates from lots of different services that I use. So why yet another weblog?</p>
<p>The answer is that the web, especially the so-called Web 2.0 has been becoming more UNIX-like as time goes on. There are lots of different webapps out there, and the best ones focus on doing one thing and doing it well. It&#8217;s up to others to pull these webapps together via their APIs in a manner similar to the way UNIX shell scripts work. While this is in general a good thing, it can be a hassle for someone like me who would like to keep together all his/her online activity.</p>
<p>For a while I really wished there was One Great Webapp to Rule Them All. It would be this one great system into which I could put all my status updates, my pictures, videos, links, conversations and it would automatically send them out to whichever specific webapp they needed to go to. And much to my delight I found one just like that: <a href="http://posterous.com">Posterous</a>. You send an email to Posterous containing whatever you want to post and Posterous can be setup to direct to a number of different webapps. This is a really cool thing, using email as a web equivalent of UNIX pipes. I tried it for a few days, and while I was happy for to start with, I came to realize some interesting things.</p>
<p>The first thing that I realized was email for all it&#8217;s flexibility and usefulness, it can be a bit tedious for some activities. If all you want to do is send out a 140 character update or post a video, it&#8217;s just a bit too much to switch to a mail client, copy/paste a link or type a message, select a recipient and then hit &#8216;Send&#8217;. Secondly, for conversation oriented media like Twitter, sending out your message is only half the problem and it makes no sense to use one tool to send out a message (email) and another to see incoming messages (another app or webapp). Add in the fact there are lots of small applications or browser extensions that do a really good job of putting on an easy-to-use layer on top of web services and email starts to lose its silver lining.</p>
<p>However, the greater realization I had was I that I didn&#8217;t necessarily wanted all my online activity pulled into one place. For example, this blog is about technology and my experiences with it and it&#8217;s not something that my liberal arts friends particularly care about. On the other hand, readers coming to this site to read about my adventures with programming languages probably don&#8217;t want to know all that much about what how the dining hall food is today or how tired I am after my creative writing class (things that go into my Twitter stream). I wouldn&#8217;t want to mix those two because the result would simply be a mess. I also don&#8217;t want to add things like cool videos, art or articles I find to either of these two unless I do want to blog about it (in which case I will write a post about it) or I really want my friends to know about it (in which case I&#8217;ll twitter it). By yesterday morning I decided that I still wanted to have an online, accessible record of stuff I found interesting (if anyone else really wanted to see) but I didn&#8217;t want to just dump it into the other streams.</p>
<p>Thus came about the tumblelog. I could have just stuck to my Posterous but I like Tumblr better, in part because of the gorgeous themes (which I hear can be used with Posterous, but I couldn&#8217;t find an easy way to do it) but also because it seems that Tumblr, especially the bookmarklet, processes excerpts from websites in a smarter way than Posterous. And I already had a Tumblr account that I started a few months ago, but I really didn&#8217;t use till now.</p>
<p>The way things stand now, here is how I currently use my multiple web services:</p>
<ul>
<li><a href="http://bytebaker.com">The ByteBaker</a> for long-form tech-oriented articles</li>
<li><a href="http://twitter.com/basus">Twitter</a> and <a href="http://www.identi.ca/basus">Identi.ca</a> for really short observations, ideas and messages</li>
<li><a href="http://blog.basushr.net/">Basu::Shr::Weblog</a> as a tumblelog for recording interesting things I find online, mostly videos and images</li>
<li><a href="http://www.diigo.com/basush">Diigo</a> for interesting links that I want to keep a record of, but don&#8217;t care to actively share</li>
<li><a href="http://friendfeed.com/basus">Friendfeed</a> to pull together everything about (plus a few others) for anyone who&#8217;s interested</li>
</ul>
<p>Considering that this isn&#8217;t the first time that I&#8217;ve done this dance, I won&#8217;t be too surprised if I changed this setup again soon. At the current moment, the services and the tools around seem stable and useful and I&#8217;ve been able to use them with very little mental overhead (which is very important for me). Only time will tell if this works out, but I hope it does. On a related note, I&#8217;ve also started decoupling Facebook from my online presence because I&#8217;m growing increasingly uncomfortable with their &#8220;Walled Garden&#8221; approach, but that&#8217;s a matter for another article.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/947/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/947/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/947/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/947/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/947/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/947/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/947/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/947/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/947/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/947/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&blog=8123270&post=947&subd=bytebaker&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2009/10/12/i-got-a-tumblelog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3ff3d3b5202caab0c49d2dd713fb6fc3?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	<feedburner:origLink>http://bytebaker.com/2009/10/12/i-got-a-tumblelog/</feedburner:origLink></item>
		<item>
		<title>Sunday Selection 2009-10-11</title>
		<link>http://feedproxy.google.com/~r/bytebaker/~3/PI3Mp73pxsk/</link>
		<comments>http://bytebaker.com/2009/10/11/sunday-selection-2009-10-11/#comments</comments>
		<pubDate>Sun, 11 Oct 2009 13:03:33 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=945</guid>
		<description><![CDATA[Reading
Your Blog is Your Mothership With the rise of social media, tumblelogs, vlogs, Twitter and the like, it&#8217;s easy to think that the time of full-length blogs is over. This article takes the position that your blog is still very important if you want to make the most of the internet
Media
I&#8217;m a Technical Woman A [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&blog=8123270&post=945&subd=bytebaker&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><strong>Reading</strong></p>
<p><a href="http://webworkerdaily.com/2009/08/22/your-blog-is-your-mothership/">Your Blog is Your Mothership</a> With the rise of social media, tumblelogs, vlogs, Twitter and the like, it&#8217;s easy to think that the time of full-length blogs is over. This article takes the position that your blog is still very important if you want to make the most of the internet</p>
<p><strong>Media</strong></p>
<p><a href="http://www.youtube.com/watch?v=O293-kmyUj0">I&#8217;m a Technical Woman</a> A simple but thought provoking video that came out of the latest Grace Hopper Conference.</p>
<p><a href="http://www.youtube.com/watch?v=r31cXWt_ndA">Required Viewing for All Teens and Young Adults</a> All I&#8217;ll say about this is that the title is self-explanatory</p>
<p><strong>Software</strong></p>
<p><a href="http://www.freesmug.org/portableapps/firefox/">Portable Firefox</a> The browser scene has heated up recently up with browsers like Chrome and Safari making an appearance, but Firefox is still my browser of choice. A large part of it&#8217;s appeal comes from its extension and I find its functionality reduced if I need to be at a public computer. Thankfully Portable Firefox for <a href="http://www.freesmug.org/portableapps/firefox/">OS X</a> and <a href="http://portableapps.com/apps/internet/firefox_portable">Windows</a> lets me take all my customizations with me.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/945/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/945/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/945/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/945/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/945/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/945/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/945/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/945/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/945/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/945/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&blog=8123270&post=945&subd=bytebaker&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2009/10/11/sunday-selection-2009-10-11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3ff3d3b5202caab0c49d2dd713fb6fc3?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	<feedburner:origLink>http://bytebaker.com/2009/10/11/sunday-selection-2009-10-11/</feedburner:origLink></item>
		<item>
		<title>Let the Geek Week begin</title>
		<link>http://feedproxy.google.com/~r/bytebaker/~3/WLTozGnHMMI/</link>
		<comments>http://bytebaker.com/2009/10/09/let-the-geek-week-begin/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 13:24:43 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Productivity]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=941</guid>
		<description><![CDATA[Yesterday I started my first (and hopefully recurring) Geek Week. So whats this Geek Week I speak of? As a computer lover and technology geek there are a lot of things that I would love to do, but more often than not don&#8217;t actually get around to (for a number of different reasons). But it&#8217;s [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&blog=8123270&post=941&subd=bytebaker&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Yesterday I started my first (and hopefully recurring) Geek Week. So whats this Geek Week I speak of? As a computer lover and technology geek there are a lot of things that I would love to do, but more often than not don&#8217;t actually get around to (for a number of different reasons). But it&#8217;s that time of year when colleges in the United States decide that they want to get rid of all their students for a few days and so declare Fall Break. While my fellow students will by and large be sleeping in and spending time with the folks, I&#8217;m going to totally geek out.</p>
<p>I have a number of projects on hold that I really want to make some progress on. Some, but not all of these projects are related to computers and code. Others are things which aren&#8217;t related to technology, but just that I would like to do. I wan to make it clear that this isn&#8217;t just another catch up on backed work time, I will be doing absolutely no school work (aside from implementing some algorithms) and will think as little about school as possible.</p>
<p>Another aspect of Geek Week is that I&#8217;m not working to a fixed schedule or deadline. While I want to get a lot done, I do want to enjoy myself while I&#8217;m doing it, so I won&#8217;t kill myself to be productive. I&#8217;m not ruthlessly scheduling or setting up extremely precise. Rather I&#8217;m just making a list of projects and I&#8217;ll be moving between them as I have the inclination. While working on a demanding project (especially a creatively demanding one) I&#8217;ve found that it helps to able to mode-switch to something else, if only for a while. So having a number of interesting projects at hand should be a way to get things done without burning out.</p>
<p>As you can imagine, this will also be an experiment in seeing how my creative process works. Since I&#8217;ve almost always worked in a school environment, I&#8217;ve never really been in a situation where I have the chance to do focused creative work around the clock (and even when I did I was generally more interested in relaxing or something like that). I&#8217;m going to try to keep an eye on how I&#8217;m working and see if I work best in bursts, or in long &#8216;flow&#8217; modes or something in between. Ideally I would like to do this on a time scale longer than a week, but we do what we canwitht the time that is given to us.</p>
<p>I&#8217;ve already started on one of my projects and done some preparation for another. Before I go back to geeking out, here&#8217;s the mostly complete list of what I&#8217;ll be doing:</p>
<ol>
<li>Working some more on the problem analysis that I worked at over summer</li>
<li>Building a static site generator (a la Jekyll) in Python</li>
<li>Starting on a interpreter for a BASIC-like language to explore programming language design</li>
<li>Reading Orson Scott Card&#8217;s &#8216;Shadow Puppets&#8217;</li>
<li>Catching up on some TV thanks to the wonders of the Internet</li>
</ol>
<p>Did I mention that I love Fall Break?</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/941/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/941/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/941/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/941/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/941/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/941/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/941/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/941/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/941/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/941/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&blog=8123270&post=941&subd=bytebaker&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2009/10/09/let-the-geek-week-begin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3ff3d3b5202caab0c49d2dd713fb6fc3?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	<feedburner:origLink>http://bytebaker.com/2009/10/09/let-the-geek-week-begin/</feedburner:origLink></item>
		<item>
		<title>I’m going on a Facebook diet</title>
		<link>http://feedproxy.google.com/~r/bytebaker/~3/XCK8AjXTuPo/</link>
		<comments>http://bytebaker.com/2009/10/06/im-going-on-a-facebook-diet/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 13:13:35 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[identi.ca]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=936</guid>
		<description><![CDATA[Before I say anything else, let me make it clear that I think that Facebook is a very interesting social and technological phenomenon which will continue to impact our society (for better or for worse) for years to come. However, on a personal level I have come to the conclusion that I need to go [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&blog=8123270&post=936&subd=bytebaker&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Before I say anything else, let me make it clear that I think that <a href="http://www.facebook.com">Facebook </a>is a very interesting social and technological phenomenon which will continue to impact our society (for better or for worse) for years to come. However, on a personal level I have come to the conclusion that I need to go on a Facebook diet.</p>
<p>By lowering the barrier to instant, informal communication Facebook has made it very easy to get in touch with your &#8216;friends&#8217; on the network, whether or not they want such a connection to exist. While this is a good thing in some cases, I have found that in my case at least, it encourages patterns of communication that I would otherwise avoid. At the same time, I found it difficult to use Facebook as more broadcast-oriented medium which in turn means that the ratio of time spent to people reached is rather small (especially in relation to my blog and proper forums). The net result is is that I spend an inordinate amount of time on activities that are, simply put, worthless.</p>
<p>Facebook has an almost unique ability to encourage short, but often pointed and intense discussions. But this is not its main purpose and there are far less fruitful things to do. In particular, the Chat application can be quite distracting and very irritating for users on both ends, especially since you often sign on and make yourself available without actually wanting to do so. From a technological perspective Facebook Chat is the perfect example of being just good enough and can become succesful because it is simply more insidiuous than existing IM applications. But from a personal productivity perspective, it&#8217;s a disaster waiting to happen.</p>
<p>Finally there is the fact that Facebook blurs the line between private and public like almost nothing else before it. While it can be very empowering and interesting if you consciously decide to put parts of your life on public display, it can also be very disconcerting and disturbing if you are someone who places a higher value on privacy and would prefer to be left alone. While I personally don&#8217;t mind placing significant aspects of my life on display (and am quite careful about what I do and don&#8217;t put online), I know that other people don&#8217;t feel the same way, and I continually find myself questioning whether or not I should engage in some conversation or the other.  I would rather not have to think about this. I would love to live in a world where everyone is conscious of their privacy and properly sets their privacy settings. But lacking such awareness, there are ample opportunities for misunderstanding and confusion which makes communication all that much more difficult. Once again, dealing with those difficulties is not a good use of my time.</p>
<p>Keeping all the above in mind: I can&#8217;t help but come to the conclusion that in many ways it&#8217;s best if I go on a Facebook diet, hopefully resulting in more productivity on my part and less intrusion on others&#8217; activities. In particular, I&#8217;m completely giving up on Facebook chat, most applications (including all games), messages (which are an adhoc, half-assed, proprietary reimplementation of email anyway) and photos. I&#8217;ll also be commenting only if I know the person really well and might even start removing people who I don&#8217;t really know all that well. I started mirroring my blog on Facebook Notes a few months ago, hoping it would spark more conversation, but that has not been the case and so I&#8217;m going to stop that as well. I used to check Facebook whenever I sat down at a computer, but that will stop as well.</p>
<p>What this means for my friends is:</p>
<ol>
<li>I will not be responding to any messages you send me on Facebook (use email or IM)</li>
<li>I will not be putting any photos up (though you are welcome to put my photos up</li>
<li>I will probably ignore any application/quiz invitations you send me</li>
<li>Please don&#8217;t depend on event invitations to let me know that something is happening</li>
<li>I&#8217;ll still be using my Wall, but don&#8217;t expect a response in less than a few hours</li>
</ol>
<p>I would still like to use Facebook as a discussion medium (as opposed to a communication medium) but only if the time/energy investment pays off. Without Facebook as a major time sink, I plan on refocusing time and effort on this blog, my website ( http://<a href="http://basushr.net/" target="_blank">basushr.net</a> ), email for direct communication and involved conversations and <a href="http://identi.ca/basus/all">Identi.ca</a>/<a href="http://twitter.com/basus">Twitter </a>for more informal, short length communication.</p>
<p>Communicate Away!<br />
<span style="color:#888888;"><br />
</span></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/936/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/936/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/936/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/936/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/936/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/936/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/936/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/936/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/936/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/936/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&blog=8123270&post=936&subd=bytebaker&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2009/10/06/im-going-on-a-facebook-diet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3ff3d3b5202caab0c49d2dd713fb6fc3?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	<feedburner:origLink>http://bytebaker.com/2009/10/06/im-going-on-a-facebook-diet/</feedburner:origLink></item>
		<item>
		<title>The role of the Software Toolsmaster</title>
		<link>http://feedproxy.google.com/~r/bytebaker/~3/S59rj01covs/</link>
		<comments>http://bytebaker.com/2009/10/02/the-role-of-the-software-toolsmaster/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 14:00:48 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=927</guid>
		<description><![CDATA[The first time I heard the term &#8216;Tools Master&#8217; was in Steve Yegge&#8217;s Wizard School essay a few years ago. If you haven&#8217;t read that one, go read it. Now. I&#8217;ll wait. Read it? Good, now lets go on. Yegge didn&#8217;t really talk about what a Tools Master was, or what the job entailed, but [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&blog=8123270&post=927&subd=bytebaker&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The first time I heard the term &#8216;Tools Master&#8217; was in Steve Yegge&#8217;s <a href="http://steve-yegge.blogspot.com/2006/07/wizard-school.html">Wizard School essay</a> a few years ago. If you haven&#8217;t read that one, go read it. Now. I&#8217;ll wait. Read it? Good, now lets go on. Yegge didn&#8217;t really talk about what a Tools Master was, or what the job entailed, but from the title itself and the fact that Jamie Zawinski holds it in the essay, it&#8217;s not too hard to make a rough guess. Zawinski was one of the moving forces behind the XEmacs text editor and the Netscape (later Mozilla) browser. Now, I consider both the text editor and the browser to be very important tools, both from a software user and a software maker standpoint. For the purposes of this article, let me define a Tools Master to be someone who is an expert in the software development tools (IDEs, compilers, debuggers, test frameworks) used by a particular team. I&#8217;m going to advance the hypothesis that having at least a part time Tools Master makes for a better development team.</p>
<p>I&#8217;ve been thinking about this matter on and off for a while, but what brought it to my full attention was this article on <a href="http://codemonkeyism.com/dream-development-teams/">Dream Development Teams</a>. In it the author talks about an &#8216;Operations Guy&#8217;. An operations guy would be responsible for making sure that the underlying systems used by the team (build farms and their configurations, test environments etc) are all up to date and working well. I think this is a subset of the role of Tools Master that I envision. In his classic <a href="http://en.wikipedia.org/wiki/The_Mythical_Man-Month">The Mythical Man Month</a>, Fred Brooks recommends having a tool master to reduce the burden on the rest of the team (and streamline communication).</p>
<p>Software development itself uses a lot of software and like all other software, development tools are often buggy, incomplete, poorly documented or just not designed for the specific situation they&#8217;re being used for. When I was in my software engineering class last semester, we were using the <a href="http://www.kdevelop.org/">KDevelop</a> IDE. The version we were using (which was one or two versions behind the cutting edge) only had rudimentary Subversion support. As a result, we would often have to drop into a terminal to use Subversion before moving back to KDevelop. It wasn&#8217;t exactly painful, but it was certainly something that we would have liked to have fixed. This is a perfect job for a Tools Master. Since KDevelop is open source, he or she could have patched the source to add the functionality that we wanted. Of course, this would have meant that we would be running our own internal branch of KDevelop, but we would also send the code to be merged with the upstream.</p>
<p>Having a Tools Master certainly doesn&#8217;t mean that the team should be writing their own editors and compilers and test frameworks all the time. I believe in software reuse and like free stuff as much as the next guy, but sometimes what&#8217;s out there is simply not enough. Having read about startups and successful companies, I&#8217;m coming around to the idea that if you want to launch a really innovative product, you might want to stray a little bit of the mainstream. For example, Paul Graham&#8217;s <a href="http://en.wikipedia.org/wiki/Viaweb">Viaweb</a> (which was arguably the first webapp) was <a href="http://paulgraham.com/avg.html">written in Common Lisp</a>, not a typical development environment unless you&#8217;re an AI researcher. Joel Spolsky&#8217;s company uses a custom internal language called <a href="http://www.joelonsoftware.com/items/2006/09/01b.html">Wasabi</a>. In such cases, having a Tools Master would be indispensable.</p>
<p>The Tools Master isn&#8217;t just relegated to supporting the main development or fixing bugs. The tools that a Master would create would be proper pieces of software in their own right, just as the infrastructure used by modern applications (Google File System, Ruby on Rails) are robust software systems on their own. In fact, I think being a Tools Master might be the best job on the team. Not only would you get to play with cutting edge technology (compilers often have algorithms straight from research papers), your clients would be programmer&#8217;s themselves who would have a better idea of what they want than well-meaning customers with no software development experience.</p>
<p>At the same time, being Tools Master would also be very demanding. If developers in the field are anything like the people I&#8217;ve worked with, they take their work environments pretty seriously and can be very whiny if the situation demands it. A lot of programmers (including me) have an intense desire to play with the latest and greatest piece of technology and keeping that desire in check can be a very trying experience. After writing software for a while you also learn to love some tools and hate others. I love Emacs and wasn&#8217;t very happy when I needed to use KDevelop for my software engineering class. I&#8217;m not sure how real work software shops work in terms requiring common tools, but I think  that a Tools Master is likely to get lots of complaints if the tools in use aren&#8217;t up to par with those the developers are used to.</p>
<p>Considering the very important duties that the Tools Master would have on a team, it&#8217;s important that he or she be a very competent hacker. Having systems that are broken, buggy or just a pain to use can dramatically reduce a team&#8217;s efficiency. Any software team also uses a wide variety of tools, and the Master would have to be fairly proficient at all of them. I think that a large part of the job might involve lashing together existing systems, so a good knowledge of scripting tools would be necessary. At the same time, such scripts can have a tendency to become unreadable and unmaintainable since they&#8217;re written in the heat of the moment. If such scripts eventually become the backbone of the development system they need to be cleaned up and kept in proper shape. It&#8217;s no wonder that Steve Yegge picked Jamie Zawinski to be his fictional ace Tools Master. You could easily consider him a real world Tools Master.</p>
<p>Unfortunately, I don&#8217;t know enough of software development in the real world to say how much of what I said actually happens. However, if I ever get to lead my own development team (or start a company), I&#8217;m definitely going to have a Tools Master. Considering my interest in programming languages and dev tools, I might want the job myself (if I&#8217;m good enough).</p>
<p>I envision Tools Masters as being the blacksmiths of our times. Knights with shining Mac Pros riding their trusty Quad Cores into battle might get all the glory, but skilled blacksmiths are no less important. They need to know a lot about how weapons are used and wars are fought in order to create good weapons. You can&#8217;t be a good Tools Master without knowing about software development. I&#8217;m going to be keeping a look out for examples of Tools Masters on the Internet and trying to learn from them. If you have any examples you know of or admire, you should share them in the comments. Happy Hacking!</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/927/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/927/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/927/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/927/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/927/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/927/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/927/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/927/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/927/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/927/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&blog=8123270&post=927&subd=bytebaker&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2009/10/02/the-role-of-the-software-toolsmaster/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3ff3d3b5202caab0c49d2dd713fb6fc3?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	<feedburner:origLink>http://bytebaker.com/2009/10/02/the-role-of-the-software-toolsmaster/</feedburner:origLink></item>
	</channel>
</rss>
