<?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:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>sandipb.net</title>
	
	<link>http://blog.sandipb.net</link>
	<description>&gt; yours truly.</description>
	<lastBuildDate>Thu, 22 Jul 2010 12:18:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/SandipBhattacharya" /><feedburner:info uri="sandipbhattacharya" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><image><link>http://www.sandipb.net/blog/</link><url>http://www.sandipb.net/blog-images/sandip_face.jpg</url><title>sandipb.net - Sandip Bhattacharya</title></image><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site.</feedburner:browserFriendly><item>
		<title>The constant conflict between the Maker’s Schedule and Manager’s Schedule</title>
		<link>http://feedproxy.google.com/~r/SandipBhattacharya/~3/KyxCZyLrdLI/</link>
		<comments>http://blog.sandipb.net/2010/07/22/the-constant-conflict-between-the-makers-schedule-and-managers-schedule/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 12:18:55 +0000</pubDate>
		<dc:creator>Sandip Bhattacharya</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[productivity]]></category>

		<guid isPermaLink="false">http://blog.sandipb.net/?p=455</guid>
		<description><![CDATA[This is something that has bothered me always for the past several years, especially in the period when I was working on my own. Paul Graham has managed to put this so eloquently into words: &#8230; There are two types &#8230; <a href="http://blog.sandipb.net/2010/07/22/the-constant-conflict-between-the-makers-schedule-and-managers-schedule/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This is something that has bothered me always for the past several years, especially in the period when I was working on my own. Paul Graham has managed to <a href="http://www.paulgraham.com/makersschedule.html">put this so eloquently into words</a>:</p>
<blockquote><p>
&#8230;<br />
There are two types of schedule, which I&#8217;ll call the <em>manager&#8217;s schedule</em> and the <em>maker&#8217;s schedule</em>. </p>
<p>The manager&#8217;s schedule is for bosses. Its embodied in the traditional appointment book, with each day cut into one hour intervals. You can block off several hours for a single task if you need to, but by default you change what you are doing every hour.When you use time that way, its merely a practical problem to meet with someone. Find an open slot in your schedule, book them, and you are done. Most powerful people are on the managers schedule. Its the schedule of command. </p>
<p>But there is another way of using time thats common among people who make things, like programmers and writers. They generally prefer to use time in units of half a day at least. You can&#8217;t write or program well in units of an hour. That&#8217;s barely enough time to get started. When youre operating on the makers schedule, meetings are a disaster.<br />
&#8230;
</p></blockquote>
<img src="http://feeds.feedburner.com/~r/SandipBhattacharya/~4/KyxCZyLrdLI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.sandipb.net/2010/07/22/the-constant-conflict-between-the-makers-schedule-and-managers-schedule/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.sandipb.net/2010/07/22/the-constant-conflict-between-the-makers-schedule-and-managers-schedule/</feedburner:origLink></item>
		<item>
		<title>Quick local DNS caching for your workstation in Ubuntu</title>
		<link>http://feedproxy.google.com/~r/SandipBhattacharya/~3/8-pcN_hkmf4/</link>
		<comments>http://blog.sandipb.net/2010/06/14/quick-local-dns-caching-for-your-workstation-in-ubuntu/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 09:26:45 +0000</pubDate>
		<dc:creator>Sandip Bhattacharya</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[10.04]]></category>
		<category><![CDATA[daemontools]]></category>
		<category><![CDATA[djb]]></category>
		<category><![CDATA[djbdbs]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[dnscache]]></category>
		<category><![CDATA[lucid lynx]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.sandipb.net/?p=396</guid>
		<description><![CDATA[The latest Ubuntu releases makes it real easy to set up a local DNS cache for your workstation using dnscache from the well-known djbdns software by D. J. Bernstein. For those who have historically installed djbdns/ucspi-tcp/daemontools from source because of &#8230; <a href="http://blog.sandipb.net/2010/06/14/quick-local-dns-caching-for-your-workstation-in-ubuntu/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The latest Ubuntu releases makes it real easy to set up a local DNS cache for your workstation using <code>dnscache</code> from the well-known <a href="http://cr.yp.to/djbdns.html">djbdns</a> software by <a href="http://en.wikipedia.org/wiki/Daniel_J._Bernstein">D. J. Bernstein</a>.</p>
<p>For those who have historically installed djbdns/ucspi-tcp/daemontools from source because of distribution restrictions, things changed really for the better after <a href="http://cr.yp.to/distributors.html">DJB placed all these software in the public domain in 2007</a>. You can now setup all this in about one minute! (depending on your Internet connection though. <img src='http://blog.sandipb.net/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' />  )</p>
<p>To setup a local dns cache in Ubuntu (specifically, 10.04 Lucid Lynx on which I tried this), right now you need to do:</p>
<ol>
<li><strong>Install the necessary packages:</strong> <br />
        <code><br />
        sudo apt-get install daemontools daemontools-run djbdns dnscache-run ucspi-tcp<br />
        </code><br />
         This installs all the necessary packages using Debian&#8217;s filesystem layout (not DJB&#8217;s). So all services are symlinked in <code>/etc/service</code> (and not in <code>/service</code>). dnscache files are supposed to be accessed in <code>/etc/dnscache</code>, and are already configured to use the root servers.
</li>
<li> <strong>Start daemontools:</strong> The daemontools scripts (actually just <code>svscan</code>) are setup in Ubuntu to be run using <a href="http://upstart.ubuntu.com/">upstart</a> and not <code>/etc/inittab</code>. So all you need to do now is run: <br />
<code>sudo start svscan</code>.
</li>
<li><strong>Making the computer use the local cache permanently.</strong> The install scripts actually replace your dns servers in <code>/etc/resolv.conf </code>with the loopback address on which dnscache runs. So you would have already started using the dns cache already. However, if you are using DHCP with Network Manager, these changes will be overwritten the next time NetworkManager modifies <code>resolv.conf</code>, e.g. when the lease is renewed or you plug-in a DHCP interface again. To make this permanent, edit <code>/etc/dhcp3/dhclient.conf</code>, and uncomment/add a line saying <code>prepend domain-name-servers 127.0.0.1;</code>. Disconnect and connect to your DHCP interface again, and see the loopback address (127.0.0.1) being added at the top of the name servers in <code>/etc/resolv.conf </code>. <br />That is it.
</li>
</ol>
<p>As usual, here are the other commands that you would be doing to manage dnscache. Read the docs for more details.</p>
<ul>
<li> <strong>View dnscache logs</strong>:<br />
            <code>tail -F /etc/dnscache/log/main/current | tai64nlocal</code>
        </li>
<li><strong>Start dnscache:</strong>  <code>svc -u /etc/service/dnscache</code></li>
<li><strong>Stop dnscache:</strong>  <code>svc -d /etc/service/dnscache</code></li>
<li><strong>Restart dnscache:</strong>  <code>svc -t /etc/service/dnscache</code></li>
<li><strong>Edit root servers:</strong> Edit <code>/etc/dnscache/root/servers/@</code></li>
</ul>
<img src="http://feeds.feedburner.com/~r/SandipBhattacharya/~4/8-pcN_hkmf4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.sandipb.net/2010/06/14/quick-local-dns-caching-for-your-workstation-in-ubuntu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.sandipb.net/2010/06/14/quick-local-dns-caching-for-your-workstation-in-ubuntu/</feedburner:origLink></item>
		<item>
		<title>The magical moment that made me a FOSS guy forever</title>
		<link>http://feedproxy.google.com/~r/SandipBhattacharya/~3/kkOtn0L7_4o/</link>
		<comments>http://blog.sandipb.net/2010/05/12/the-magical-moment-that-made-me-a-foss-guy-forever/#comments</comments>
		<pubDate>Tue, 11 May 2010 22:53:03 +0000</pubDate>
		<dc:creator>Sandip Bhattacharya</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[foss]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php3]]></category>
		<category><![CDATA[rasmus]]></category>
		<category><![CDATA[rasmus lerdorf]]></category>

		<guid isPermaLink="false">http://blog.sandipb.net/?p=379</guid>
		<description><![CDATA[11 years back, I was just yet another guy out of college with a background of Turbo C/C++ and Pascal as most other batchmates of mine. My software career could have gone anywhere. PC Quest Linux was just a toy &#8230; <a href="http://blog.sandipb.net/2010/05/12/the-magical-moment-that-made-me-a-foss-guy-forever/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>11 years back, I was just yet another guy out of college with a background of Turbo C/C++ and Pascal as most other batchmates of mine. My software career could have gone anywhere. PC Quest Linux was just a toy with which I was playing with but wasn&#8217;t too much attached to yet.</p>
<p>A stroke of good luck helped me get an opportunity to work with one of my close school friends &#8211; Inder, who introduced me to PHP 3. I hadn&#8217;t heard of it, but he assured me that it is going to catch up, and is great for making web sites. So I struggled through Apache and PHP 3 with the smattering of documentation available at the time.</p>
<p>One day, frustrated with my inability to set PHP up, I shot off a mail to the PHP 3 mailing list of the time, hoping I get some direction to see what I am doing wrong. To my utter disbelief, <a href="http://en.wikipedia.org/wiki/Rasmus_lerdorf">Rasmus Lerdorf</a> himself replied to my question and gave me a step by step solution to my problem. And I was hooked to the Open Source community forever.</p>
<p>I finally managed to track down <a href="http://www.phpbuilder.com/lists/php3-list/199912/0551.php">the reply by Rasmus </a>to my newbie query 11 years back. I was blown away by the commitment of the Open Source leaders, and kept wondering &#8220;The guy codes all this and even then spends such quality time helping people out selflessly, no matter that others are making money out of his software!&#8221;.</p>
<p>To a person just out of college in India who haven&#8217;t ever interacted with the community before, the personal dedication of FOSS (free &#038; open source software) leaders like the founder of PHP himself was a revelation. Today it is taken for granted, I feel.</p>
<p>I never found the same level of involvement among the closed source community, the last time I looked at it, and yes, at that time, Java included.</p>
<img src="http://feeds.feedburner.com/~r/SandipBhattacharya/~4/kkOtn0L7_4o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.sandipb.net/2010/05/12/the-magical-moment-that-made-me-a-foss-guy-forever/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.sandipb.net/2010/05/12/the-magical-moment-that-made-me-a-foss-guy-forever/</feedburner:origLink></item>
		<item>
		<title>Quick tip: Merging photos from two different cameras</title>
		<link>http://feedproxy.google.com/~r/SandipBhattacharya/~3/iW1D71jDlyQ/</link>
		<comments>http://blog.sandipb.net/2010/01/14/quick-tip-merging-photos-from-two-different-cameras/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 11:48:38 +0000</pubDate>
		<dc:creator>Sandip Bhattacharya</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[camera]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[photos]]></category>

		<guid isPermaLink="false">http://blog.sandipb.net/?p=367</guid>
		<description><![CDATA[This time when we went to Pondicherry on the year end, we took two cameras &#8211; I took my Rebel XTi and my wife the LX3. While uploading our photos to Flickr, we had a problem. We wanted to merge &#8230; <a href="http://blog.sandipb.net/2010/01/14/quick-tip-merging-photos-from-two-different-cameras/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This time when we went to <a href="http://en.wikipedia.org/wiki/Puducherry">Pondicherry</a> on the year end, we took two cameras &#8211; I took my Rebel XTi and my wife the LX3. While uploading our photos  to Flickr, we had a problem. We wanted to merge our photo sets, but because of the different photo naming conventions of the two cameras, the photos won&#8217;t be sorted according to time taken. The solution, as I found out after a bit of digging and trying out different exif tools, was simple enough. Install <a href="http://www.sentex.net/~mwandel/jhead/">jhead</a> and run:</p>
<p><code>jhead -n%Y%m%d-%H%M%S -ft *.JPG</code></p>
<p>This would rename all the photos dumped in the current directory using the YYYYMMDD-HHMMSS format. And even if some app you have doesn&#8217;t sort by the file name, this command would change the modification time of all the photos to the time the photo was taken.</p>
<p>And yes, it is a good idea of using this time format and not the default MMDD-HHSS format, else trips on the year end (like ours, this time) would get messed up while sorting.</p>
<img src="http://feeds.feedburner.com/~r/SandipBhattacharya/~4/iW1D71jDlyQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.sandipb.net/2010/01/14/quick-tip-merging-photos-from-two-different-cameras/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.sandipb.net/2010/01/14/quick-tip-merging-photos-from-two-different-cameras/</feedburner:origLink></item>
		<item>
		<title>Adding new CA certificates in Ubuntu (Jaunty)</title>
		<link>http://feedproxy.google.com/~r/SandipBhattacharya/~3/Kwhcv71xCwk/</link>
		<comments>http://blog.sandipb.net/2009/08/08/adding-new-ca-certificates-in-ubuntu-jaunty/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 21:33:31 +0000</pubDate>
		<dc:creator>Sandip Bhattacharya</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[dreamhost]]></category>
		<category><![CDATA[fetchmail]]></category>
		<category><![CDATA[jaunty]]></category>
		<category><![CDATA[openssl]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.sandipb.net/?p=359</guid>
		<description><![CDATA[A quick tip. I couldn&#8217;t find this from a quick search when I really needed it. The problem &#8211; command line programs like fetchmail use the system wide openssl CA certificates to verify the authenticity of the server certificates they &#8230; <a href="http://blog.sandipb.net/2009/08/08/adding-new-ca-certificates-in-ubuntu-jaunty/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A quick tip. I couldn&#8217;t find this from a quick search when I really needed it.</p>
<p>The problem &#8211; command line programs like <a href="http://fetchmail.berlios.de/">fetchmail</a> use the system wide openssl CA certificates to verify the authenticity of the server certificates they are provided when they connect to an SSL server like POP3 or IMAP.</p>
<p>Sometimes, you will have providers like <a href="http://dreamhost.com/">Dreamhost</a>, who will <a href="http://www.dreamhoststatus.com/2007/06/17/ssl-certificate-renewal-for-most-customers/">get smart and ditch</a> the atrocious certificate issuing set up we have right now, and <a href="http://wiki.dreamhost.com/NDN_Certificate">give you a self-signed certificate</a> to verify their servers.</p>
<p>So fetchmail will, for example, belch out this error message every time they connect to Dreamhost&#8217;s mail servers:</p>
<p><code><br />
	$ fetchmail -v --nosyslog<br />
	fetchmail: 6.3.9-rc2 querying homie.mail.dreamhost.com (protocol POP3) at Saturday 08 August 2009 02:12:28 AM IST: poll started<br />
	Trying to connect to 208.97.132.208/995...connected.<br />
	fetchmail: Issuer Organization: New Dream Network, LLC<br />
	fetchmail: Issuer CommonName: New Dream Network Certificate Authority<br />
	fetchmail: Server CommonName: *.mail.dreamhost.com<br />
	fetchmail: homie.mail.dreamhost.com key fingerprint: 17:F7:F2:FF:4A:9D:C3:D3:2B:8A:E9:12:47:C4:A4:28<br />
	fetchmail: Server certificate verification error: unable to get local issuer certificate<br />
	fetchmail: Server certificate verification error: certificate not trusted<br />
	fetchmail: Server certificate verification error: unable to verify the first certificate<br />
</code></p>
<p>While you can mostly ignore this (Dreamhost itself <a href="http://wiki.dreamhost.com/NDN_Certificate#Why_not_get_a_REAL_certificate_signed_by_VeriSign.3F">says</a> they don&#8217;t care much about the &#8220;chain of trust&#8221; &#8211; all they care about is the encryption), you might want to be a little more careful and use the &#8220;<code>sslcertck</code>&#8221; keyword while connecting to your mail servers. This keyword will force fetchmail to only attempt fetching the mail if the issuer of the server certificate strictly matches a CA in your local CA certificates.</p>
<p>Note that this strict certificate check is going to be the default setting in fetchmail any day now. So you might want to pay more attention to these fetchmail warnings right now before they bite you later.</p>
<p>Dreamhost provides the CA certificate which issues their server SSL certificates <a href="http://wiki.dreamhost.com/NDN_Certificate">here</a>. </p>
<p>Installing this in Ubuntu was pretty simple once you know the program involved. So while this example is about Dreamhost, you can similarly install any CA certificates (even your own).</p>
<p>Steps are:</p>
<ol>
<li>Create a directory for the issuer under <code>/usr/share/ca-certificates/</code>. <br />
	<code>mkdir /usr/share/ca-certificates/dreamhost  </code>
	</li>
<li> Copy the CA certificate file into this directory. Use this directory to consolidate all the CA certificates of the common entity. <br />
	<code>sudo cp ~/ndn.ca.crt  /usr/share/ca-certificates/dreamhost </code>
    </li>
<li> Update the CA certificate hash symlinks used by openssl. This will open a text dialog asking you to confirm the CA certificates to be marked as trusted. Out of the box, a typical modern Linux distro would have a long list of certificates which would already be marked as trusted. You have to search for the authority you just copied (it would be unmarked), mark it and select OK.<br />
	     <code>sudo dpkg-reconfigure ca-certificates</code>
    </li>
</ol>
<p>That is it! Next time your run fetchmail, the CA warnings should have gone.</p>
<p>Note that GUI programs like Firefox and Thunderbird have their own CA storages and therefore their own process of adding CA certificates. Modern versions of these programs make it pretty easy to add them using a just a few clicks. This post was about installing them for mostly CLI based programs like fetchmail.</p>
<p>Another note, it seems that on Ubuntu, Postfix needs the config parameters <code>smtp_tls_CApath</code> and <code>smtpd_tls_CApath</code> to be set to /etc/ssl/certs to verify server and client certificates respectively.</p>
<img src="http://feeds.feedburner.com/~r/SandipBhattacharya/~4/Kwhcv71xCwk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.sandipb.net/2009/08/08/adding-new-ca-certificates-in-ubuntu-jaunty/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.sandipb.net/2009/08/08/adding-new-ca-certificates-in-ubuntu-jaunty/</feedburner:origLink></item>
		<item>
		<title>Using the official Flickr uploadr on Ubuntu</title>
		<link>http://feedproxy.google.com/~r/SandipBhattacharya/~3/qlRuLVrRWCU/</link>
		<comments>http://blog.sandipb.net/2009/07/06/using-the-official-flickr-uploadr-on-ubuntu/#comments</comments>
		<pubDate>Sun, 05 Jul 2009 20:26:51 +0000</pubDate>
		<dc:creator>Sandip Bhattacharya</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[wine]]></category>
		<category><![CDATA[winetricks]]></category>

		<guid isPermaLink="false">http://blog.sandipb.net/?p=337</guid>
		<description><![CDATA[I normally use jUploader for uploading photos to Flickr from my Ubuntu Jaunty box. However, since I got the amazing Panasonic DMC-LX3 compact camera, I have been uploading HD videos too to Flickr. Now none of the FOSS tools that &#8230; <a href="http://blog.sandipb.net/2009/07/06/using-the-official-flickr-uploadr-on-ubuntu/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I normally use <a href="http://juploadr.org/">jUploader</a> for uploading photos to <a href="http://flickr.com">Flickr</a> from my Ubuntu Jaunty box. However, since I got the amazing <a href="http://www.dpreview.com/reviews/panasonicdmclx3/">Panasonic DMC-LX3</a> compact camera, I have been uploading HD videos too to Flickr. Now none of the FOSS tools that I know of support video right now. Since I insist on uploading photos in the order that I have taken them, it makes my photo upload workflow really messy &#8211; <em>upload a few photos from jUploader, go to flickr.com and upload the video in the sequence, go back to jUploader for the next few photos, back to flickr.com for the videos</em>, and so on. Disgusting, but I don&#8217;t know anything better, and if you do, please tell me.</p>
<p>So I decided to do the next best thing &#8211; I have started using the latest official Flickr Uploadr for Windows in Ubuntu using Wine. No, it doesn&#8217;t work out of the box. It just takes an additional step.</p>
<ol>
<li>Install wine. (<code>apt-get install wine</code>)</li>
<li>Download <code>winetricks</code> from <a href="http://wiki.winehq.org/winetricks">http://wiki.winehq.org/winetricks</a>. This is a small script which automates installation of common wine program dependencies.</li>
<li> Install MS Visual C++ 2005 libraries. (<code>sh winetricks vcrun2005</code>). Some messages which look like errors come on screen. Ignore these.</li>
<li>Download Flickr Uploadr Windows executable from <a href="http://www.flickr.com/tools/uploadr/">http://www.flickr.com/tools/uploadr/</a>.</li>
<li>Install it! (<code>wine FlickrUploadr-3.2.1-2009.06.02.01-en.exe</code>)
</ol>
<p>That is it! Find Flickr Uploadr installed in your menu at <em>Applications-&gt;Wine-&gt;Programs</em>.</p>
<img src="http://feeds.feedburner.com/~r/SandipBhattacharya/~4/qlRuLVrRWCU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.sandipb.net/2009/07/06/using-the-official-flickr-uploadr-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://blog.sandipb.net/2009/07/06/using-the-official-flickr-uploadr-on-ubuntu/</feedburner:origLink></item>
		<item>
		<title>Akamai awesomeness and Opendns lameness</title>
		<link>http://feedproxy.google.com/~r/SandipBhattacharya/~3/GwYCfCnhWR0/</link>
		<comments>http://blog.sandipb.net/2009/04/23/akamai-awesomeness-and-opendns-lameness/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 20:42:30 +0000</pubDate>
		<dc:creator>Sandip Bhattacharya</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[akamai]]></category>
		<category><![CDATA[cdn]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[dnscache]]></category>
		<category><![CDATA[opendns]]></category>

		<guid isPermaLink="false">http://blog.sandipb.net/?p=327</guid>
		<description><![CDATA[Akamai footprint awesomeness. My IP address. sandipb@pluto:~$ wget -O - -q http://www.whatismyip.com/automation/n09230945.asp;echo 122.167.0.79 sandipb@pluto:~$ host 122.167.0.79 79.0.167.122.in-addr.arpa domain name pointer ABTS-KK-Dynamic-079.0.167.122.airtelbroadband.in. Akamai CDN for downloading Adobe AIR. sandipb@pluto:~$ host airdownload.adobe.com airdownload.adobe.com is an alias for airdownload.wip3.adobe.com. airdownload.wip3.adobe.com is an alias &#8230; <a href="http://blog.sandipb.net/2009/04/23/akamai-awesomeness-and-opendns-lameness/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Akamai footprint awesomeness.</p>
<p>My IP address.</p>
<p><code>sandipb@pluto:~$ wget -O - -q http://www.whatismyip.com/automation/n09230945.asp;echo<br />
122.167.0.79<br />
sandipb@pluto:~$ host 122.167.0.79<br />
79.0.167.122.in-addr.arpa domain name pointer ABTS-KK-Dynamic-079.0.167.122.airtelbroadband.in.<br />
</code></p>
<p>Akamai CDN for downloading Adobe AIR.</p>
<p><code>sandipb@pluto:~$ host airdownload.adobe.com<br />
airdownload.adobe.com is an alias for airdownload.wip3.adobe.com.<br />
airdownload.wip3.adobe.com is an alias for airdownload.adobe.com.edgesuite.net.<br />
airdownload.adobe.com.edgesuite.net is an alias for a1396.g.akamai.net.<br />
a1396.g.akamai.net has address 203.101.62.10<br />
a1396.g.akamai.net has address 203.101.62.11<br />
sandipb@pluto:~$ host 203.101.62.10<br />
10.62.101.203.in-addr.arpa domain name pointer dsl-KK-static-010.62.101.203.airtelbroadband.in.<br />
</code></p>
<p>I am downloading from a server co-located at my ISP. Industry standard in US, but I feel really great for this to be happening in India. <img src='http://blog.sandipb.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Imagine. Download server in India, three hops, 25 ms away!</p>
<p><code>sandipb@pluto:~$ mtr  -i 10  203.101.62.10<br />
My traceroute  [v0.73]<br />
pluto (0.0.0.0)                                                               Thu Apr 23 01:41:38 2009<br />
Packets               Pings<br />
Host                                                        Loss%   Snt   Last   Avg  Best  Wrst StDev<br />
1. 192.168.1.1                                               0.0%     1    1.1   1.1   1.1   1.1   0.0<br />
2. ABTS-KK-Dynamic-001.0.167.122.airtelbroadband.in          0.0%     1   25.4  25.4  25.4  25.4   0.0<br />
3. ABTS-KK-Static-173.32.166.122.airtelbroadband.in          0.0%     1   24.9  24.9  24.9  24.9   0.0<br />
4. ABTS-KK-static-008.32.144.59.airtelbroadband.in           0.0%     1   39.0  39.0  39.0  39.0   0.0<br />
5. dsl-KK-static-010.62.101.203.airtelbroadband.in           0.0%     1   25.0  25.0  25.0  25.0   0.0<br />
</code></p>
<ul><b>Lesson learnt: OpenDNS hurts all this goodness</b></ul>
<p>Thank goodness, I moved off <a title="Opendns" href="http://www.opendns.com/">opendns</a> today. This is what opendns was giving me all this past year that I was using it.</p>
<p><code>sandipb@pluto:~$ dig @208.67.222.222 airdownload.adobe.com<br />
...<br />
;; ANSWER SECTION:<br />
airdownload.adobe.com.	85521	IN	CNAME	airdownload.wip3.adobe.com.<br />
airdownload.wip3.adobe.com. 218	IN	CNAME	airdownload.adobe.com.edgesuite.net.<br />
airdownload.adobe.com.edgesuite.net. 20721 IN CNAME a1396.g.akamai.net.<br />
a1396.g.akamai.net.	20	IN	A	204.2.160.24<br />
a1396.g.akamai.net.	20	IN	A	204.2.160.34</p>
<p></code><br />
<code><br />
sandipb@pluto:~$ host 204.2.160.24<br />
24.160.2.204.in-addr.arpa domain name pointer a204-2-160-24.deploy.akamaitechnologies.com.<br />
sandipb@pluto:~$ ping -c 1 204.2.160.24<br />
PING 204.2.160.24 (204.2.160.24) 56(84) bytes of data.<br />
64 bytes from 204.2.160.24: icmp_seq=1 ttl=54 time=259 ms<br />
</code></p>
<p>A download server 260ms and 11 hops away in US.</p>
<p>Using opendns is breaking anything which uses CDN. Now I have used opendns for a while and it is nice at its work. But believe me, we spend more time downloading videos and text than querying DNS, and if you have a DNS cache at home (like djbdns) or even your ISP&#8217;s DNS, it works a lot as well.</p>
<img src="http://feeds.feedburner.com/~r/SandipBhattacharya/~4/GwYCfCnhWR0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.sandipb.net/2009/04/23/akamai-awesomeness-and-opendns-lameness/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://blog.sandipb.net/2009/04/23/akamai-awesomeness-and-opendns-lameness/</feedburner:origLink></item>
		<item>
		<title>Getting more printable PDFs from texinfo manuals</title>
		<link>http://feedproxy.google.com/~r/SandipBhattacharya/~3/ft0MvQksra8/</link>
		<comments>http://blog.sandipb.net/2009/02/12/getting-more-printable-pdfs-from-texinfo-manuals/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 07:22:13 +0000</pubDate>
		<dc:creator>Sandip Bhattacharya</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[fsf]]></category>
		<category><![CDATA[gnu]]></category>
		<category><![CDATA[gnupress]]></category>
		<category><![CDATA[tex]]></category>
		<category><![CDATA[texinfo]]></category>

		<guid isPermaLink="false">http://blog.sandipb.net/?p=318</guid>
		<description><![CDATA[Texinfo manuals are used primarily by various GNU projects like Glibc, gcc, gdb, etc. Texinfo is an extremely powerful format for writing high quality professional documentation and can be easily converted to HTML, PDF, Docbook XML and various other formats. &#8230; <a href="http://blog.sandipb.net/2009/02/12/getting-more-printable-pdfs-from-texinfo-manuals/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a title="Texinfo project home page" href="http://www.gnu.org/software/texinfo/">Texinfo</a> manuals are used primarily by various GNU projects like Glibc, gcc, gdb, etc. Texinfo is an extremely powerful format for writing high quality professional documentation and can be easily converted to HTML, PDF, Docbook XML and various other formats. The language features tex macros which are quite easy to pick up, and much easier to hand write as compared to the new fangled XML formats.</p>
<p>However, my pet grouse for a long time was that the PDFs, which look excellent on screen don&#8217;t seem to print too well on paper. A close examination and various posts on mailing lists <a title="Post mentioning the paleness of CM fonts" href="http://article.gmane.org/gmane.comp.tex.pdftex/3384">like this</a> made me discover the fact that this is primarily because of the Computer Modern fonts used by default by texinfo.</p>
<p>Interestingly, the GNU Press folks which print FSF manuals <a title="Font cusomization detail by gnu press" href="http://article.gmane.org/gmane.comp.tex.texinfo.bugs/795">customize the PDF by modifying font</a>s etc. so that they print better. At the very minimum, they replace the Computer Modern font with Palatino which prints better. And in the FSF&#8217;s spirit of sharing code, these customizations are available for download at the <a title="savannah gnu press project" href="https://savannah.gnu.org/projects/gnupress/">Savannah Gnupress project</a> cvs repository. A look here and at some brief instructions <a title="GNU doc team docs" href="http://www.gnu.no/doc/doc-team.html" class="broken_link">here</a> let me arrive at these simple steps to generate a texinfo PDF with palatino fonts.</p>
<ol>
<li>Check out the CVS sources of GNU Press from the savannah repository. Here I am checking out in my home directory.<br />
              <code>cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/gnupress co gnupress</code>
        </li>
<li>Download the texinfo sources that you want to generate PDF from. </li>
<li>The first time, generate a pdf the normal way using texi2pdf. <br />
              <code><br />
               texi2pdf --clean gdb.texinfo<br />
              </code><br />
              This step is important as sometimes the document is broken and cannot be parsed by texinfo. Trying to use the gnupress&#8217;s code will only make it more difficult to troubleshoot and will introduce an unnecessary variable to consider while debugging. I have seen the downloadable libc texinfo sources as broken. So this i a realistic possibility.
        </li>
<li>
        Modify the texinfo source code by adding just this one line immediately after the line containing <code>\input texinfo</code> at the top of the file.<br />
        <code><br />
        @input palatino<br />
        </code></p>
<p>         So effectively, this would the how the top of the document looks after you added the line.<br />
        <code><br />
        \input texinfo      @c -*-texinfo-*-<br />
        @input palatino<br />
        @c Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998,<br />
        @c 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006<br />
        @c Free Software Foundation, Inc.<br />
        @c<br />
        @c %**start of header<br />
        @c makeinfo ignores cmds prev to setfilename, so its arg cannot make use<br />
        @c of @set vars.  However, you can override filename with makeinfo -o.<br />
        @setfilename gdb.info<br />
        ...<br />
        </code>
        </li>
<li>Generate the pdf using texi2pdf and the gnupress code. I checked out their code in my home directory. If you checked out elsewhere, adjust paths accordingly.<br />
              <code><br />
               texi2pdf --clean   -I ~/gnupress/texpress/ -I ./ gdb.texinfo<br />
              </code>
</li>
</ol>
<p>That is it!</p>
<img src="http://feeds.feedburner.com/~r/SandipBhattacharya/~4/ft0MvQksra8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.sandipb.net/2009/02/12/getting-more-printable-pdfs-from-texinfo-manuals/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.sandipb.net/2009/02/12/getting-more-printable-pdfs-from-texinfo-manuals/</feedburner:origLink></item>
		<item>
		<title>Removing encryption from (legitimate!) PDF files on Ubuntu</title>
		<link>http://feedproxy.google.com/~r/SandipBhattacharya/~3/d5v5UEhiAyE/</link>
		<comments>http://blog.sandipb.net/2009/01/10/removing-encryption-from-legitimate-pdf-files-on-ubuntu/#comments</comments>
		<pubDate>Sat, 10 Jan 2009 09:22:53 +0000</pubDate>
		<dc:creator>Sandip Bhattacharya</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[pdftk]]></category>
		<category><![CDATA[qpdf]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.sandipb.net/?p=308</guid>
		<description><![CDATA[Many service providers have started encrypting the statements that they send you. While at some level, it does add some amount of security when the path to your inbox is not very secure. However, it is sometimes a major pain &#8230; <a href="http://blog.sandipb.net/2009/01/10/removing-encryption-from-legitimate-pdf-files-on-ubuntu/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Many service providers have started encrypting the statements that they send you. While at some level, it does add some amount of security when the path to your inbox is not very secure. However, it is sometimes a major pain when you want to archive your emails. This is because every provider has decided on a different secret to encrypt your PDF. So if one day you wish to access a statement of your phone bill from three months back, you have to look up the bill from your archive <strong>and</strong> read the mail to find out what they used to encrypt it. With my credit card statements, phone bills etc coming in as encrypted PDFs, archiving them all becomes a major pain.</p>
<p>So I decided to only archive un-encrypted PDF statements from now on. I consider this as a very legitimate reason to bypass PDF encryption and do not see any legal (or at least moral) reason for doing so. So you corporate lawyers looking for a DMCA victim, get out of my face.</p>
<p>For years, I have been using <a title="PDFtk home page" href="http://www.accesspdf.com/pdftk/">pdftk</a> on my Ubuntu systems to manipulate PDFs. However, it being written in Java, installing it pulls in, among other things, the gcj runtime, etc. It was a minor irritation all this while. However, things finally came to a head when it refused to decrypt my credit card statement. PDFs have the concept of an <em>owner password</em> and an <em>user password</em>. The person who creates the PDF can set either one or both. Apparently, the ICICI credit card statements come with an owner password apart from an user password., and pdftk refused to decrypt the pdf without the owner password while all I had was the user password.</p>
<p>I searched around the net, and discovered another pdf manipulation gem, lying in the Ubuntu repositories no less, which can do what I want: <a title="QPDF home page on Sourceforge" href="http://qpdf.sourceforge.net/">QPDF</a>.</p>
<p>So here is how I went around decrypting my statement.</p>
<pre>$ sudo apt-get install qpdf
$ qpdf --decrypt --password=<strong>mypassword</strong> <strong>input.pdf</strong> <strong>output.pdf</strong>
$ evince output.pdf <span style="color:#808080;">#to check if it asks for password</span></pre>
<p>That is it!</p>
<img src="http://feeds.feedburner.com/~r/SandipBhattacharya/~4/d5v5UEhiAyE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.sandipb.net/2009/01/10/removing-encryption-from-legitimate-pdf-files-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		<feedburner:origLink>http://blog.sandipb.net/2009/01/10/removing-encryption-from-legitimate-pdf-files-on-ubuntu/</feedburner:origLink></item>
		<item>
		<title>One liner to convert Maildir/ to mbox using mutt</title>
		<link>http://feedproxy.google.com/~r/SandipBhattacharya/~3/fjNxS5PpZD8/</link>
		<comments>http://blog.sandipb.net/2009/01/07/one-liner-to-convert-maildir-to-mbox-using-mutt/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 13:59:57 +0000</pubDate>
		<dc:creator>Sandip Bhattacharya</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[mutt]]></category>
		<category><![CDATA[one-liner]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://blog.sandipb.net/?p=293</guid>
		<description><![CDATA[If .news/ is the maildir that you want to convert to the mbox news, this one-liner will do the job for you. mutt -f .news/ -e 'set confirmcreate=no; set delete=no; push "T.*&#60;enter&#62;;snews&#60;enter&#62;&#60;quit&#62;"' (Gleaned from this mailing list post )]]></description>
			<content:encoded><![CDATA[<p>If <code><span style="color:blue;">.news/</span></code> is the maildir that you want to convert to the mbox <code><span style="color:blue;">news</span></code>, this one-liner will do the job for you.</p>
<p><code><br />
mutt -f <span style="color:blue;">.news/</span> -e 'set confirmcreate=no; set delete=no; push "T.*&lt;enter&gt;;s<span style="color:blue;">news</span>&lt;enter&gt;&lt;quit&gt;"'<br />
</code></p>
<p>(Gleaned from <a title="Source" href="http://newsgroups.derkeiler.com/Archive/Comp/comp.mail.mutt/2006-06/msg00005.html">this</a> mailing list post )</p>
<img src="http://feeds.feedburner.com/~r/SandipBhattacharya/~4/fjNxS5PpZD8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.sandipb.net/2009/01/07/one-liner-to-convert-maildir-to-mbox-using-mutt/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://blog.sandipb.net/2009/01/07/one-liner-to-convert-maildir-to-mbox-using-mutt/</feedburner:origLink></item>
	</channel>
</rss>
