<?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"?><!-- generator="wordpress/2.2.3" --><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:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Roshan Online</title>
	<link>http://roshan.info/blog</link>
	<description>Roshan\'s online musings</description>
	<pubDate>Mon, 25 Apr 2011 08:27:42 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.3</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/RoshanOnline" /><feedburner:info uri="roshanonline" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license><item>
		<title>Using a GeoTrust QuickSSL certificate with OpenFire</title>
		<link>http://feedproxy.google.com/~r/RoshanOnline/~3/dQPtXQtif2w/</link>
		<comments>http://roshan.info/blog/2011/04/25/using-a-geotrust-quickssl-certificate-with-openfire/#comments</comments>
		<pubDate>Sun, 24 Apr 2011 23:39:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<category><![CDATA[Computers]]></category>

		<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://roshan.info/blog/2011/04/25/using-a-geotrust-quickssl-certificate-with-openfire/</guid>
		<description><![CDATA[Download the GeoTrust DV Intermediate CA file from https://knowledge.geotrust.com/support/knowledge-base/index?page=content&#038;id=AR1422
Log in to the openfire admin UI ( http://server:9090/ ) and navigate to &#8220;Server Settings&#8221; -> &#8220;Server Certificates&#8221; and click on the &#8220;import&#8221; link ( http://server:9090/import-certificate.jsp ).  Copy the appropriate sections from your certificate into the two text fields.  Next, open the GT_QuickSSL_and_Premium_and_Trial_intermediate_bundle.pem file you [...]]]></description>
			<content:encoded><![CDATA[<p>Download the GeoTrust DV Intermediate CA file from <a href="https://knowledge.geotrust.com/support/knowledge-base/index?page=content&#038;id=AR1422">https://knowledge.geotrust.com/support/knowledge-base/index?page=content&#038;id=AR1422</a></p>
<p>Log in to the openfire admin UI ( http://server:9090/ ) and navigate to &#8220;Server Settings&#8221; -> &#8220;Server Certificates&#8221; and click on the &#8220;import&#8221; link ( http://server:9090/import-certificate.jsp ).  Copy the appropriate sections from your certificate into the two text fields.  Next, open the GT_QuickSSL_and_Premium_and_Trial_intermediate_bundle.pem file you just downloaded and paste the contents of this file into the certificate text field.  Make sure there isn&#8217;t any space between the end of your certificate and the start of the intermediate certificates.</p>
<p>Here&#8217;s what the text field should look like given the intermediate bundle as of 2011:</p>
<p><code>-----BEGIN CERTIFICATE-----<br />
<em>Your certificate</em><br />
&#8212;&#8211;END CERTIFICATE&#8212;&#8211;<br />
&#8212;&#8211;BEGIN CERTIFICATE&#8212;&#8211;<br />
MIID+jCCAuKgAwIBAgIDAjbSMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT<br />
MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i<br />
YWwgQ0EwHhcNMTAwMjI2MjEzMjMxWhcNMjAwMjI1MjEzMjMxWjBhMQswCQYDVQQG<br />
EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UECxMURG9tYWluIFZh<br />
bGlkYXRlZCBTU0wxGzAZBgNVBAMTEkdlb1RydXN0IERWIFNTTCBDQTCCASIwDQYJ<br />
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa7jnrNpJxiV9RRMEJ7ixqy0ogGrTs8<br />
KRMMMbxp+Z9alNoGuqwkBJ7O1KrESGAA+DSuoZOv3gR+zfhcIlINVlPrqZTP+3RE<br />
60OUpJd6QFc1tqRi2tVI+Hrx7JC1Xzn+Y3JwyBKF0KUuhhNAbOtsTdJU/V8+Jh9m<br />
cajAuIWe9fV1j9qRTonjynh0MF8VCpmnyoM6djVI0NyLGiJOhaRO+kltK3C+jgwh<br />
w2LMpNGtFmuae8tk/426QsMmqhV4aJzs9mvIDFcN5TgH02pXA50gDkvEe4GwKhz1<br />
SupKmEn+Als9AxSQKH6a9HjQMYRX5Uw4ekIR4vUoUQNLIBW7Ihq28BUCAwEAAaOB<br />
2TCB1jAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFIz02ZMKR7wAoErOS3VuoLaw<br />
sn78MB8GA1UdIwQYMBaAFMB6mGiNifurBWQMEX2qfWW4ysxOMBIGA1UdEwEB/wQI<br />
MAYBAf8CAQAwOgYDVR0fBDMwMTAvoC2gK4YpaHR0cDovL2NybC5nZW90cnVzdC5j<br />
b20vY3Jscy9ndGdsb2JhbC5jcmwwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzAB<br />
hhhodHRwOi8vb2NzcC5nZW90cnVzdC5jb20wDQYJKoZIhvcNAQEFBQADggEBADOR<br />
NxHbQPnejLICiHevYyHBrbAN+qB4VqOC/btJXxRtyNxflNoRZnwekcW22G1PqvK/<br />
ISh+UqKSeAhhaSH+LeyCGIT0043FiruKzF3mo7bMbq1vsw5h7onOEzRPSVX1ObuZ<br />
lvD16lo8nBa9AlPwKg5BbuvvnvdwNs2AKnbIh+PrI7OWLOYdlF8cpOLNJDErBjgy<br />
YWE5XIlMSB1CyWee0r9Y9/k3MbBn3Y0mNhp4GgkZPJMHcCrhfCn13mZXCxJeFu1e<br />
vTezMGnGkqX2Gdgd+DYSuUuVlZzQzmwwpxb79k1ktl8qFJymyFWOIPllByTMOAVM<br />
IIi0tWeUz12OYjf+xLQ=<br />
&#8212;&#8211;END CERTIFICATE&#8212;&#8211;<br />
&#8212;&#8211;BEGIN CERTIFICATE&#8212;&#8211;<br />
MIIDfTCCAuagAwIBAgIDErvmMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT<br />
MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0<br />
aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDIwNTIxMDQwMDAwWhcNMTgwODIxMDQwMDAw<br />
WjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UE<br />
AxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB<br />
CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9m<br />
OSm9BXiLnTjoBbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIu<br />
T8rxh0PBFpVXLVDviS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6c<br />
JmTM386DGXHKTubU1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmR<br />
Cw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5asz<br />
PeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo4HwMIHtMB8GA1UdIwQYMBaAFEjm<br />
aPkr0rKV10fYIyAQTzOYkJ/UMB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrM<br />
TjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjA6BgNVHR8EMzAxMC+g<br />
LaArhilodHRwOi8vY3JsLmdlb3RydXN0LmNvbS9jcmxzL3NlY3VyZWNhLmNybDBO<br />
BgNVHSAERzBFMEMGBFUdIAAwOzA5BggrBgEFBQcCARYtaHR0cHM6Ly93d3cuZ2Vv<br />
dHJ1c3QuY29tL3Jlc291cmNlcy9yZXBvc2l0b3J5MA0GCSqGSIb3DQEBBQUAA4GB<br />
AHbhEm5OSxYShjAGsoEIz/AIx8dxfmbuwu3UOx//8PDITtZDOLC5MH0Y0FWDomrL<br />
NhGc6Ehmo21/uBPUR/6LWlxz/K7ZGzIZOKuXNBSqltLroxwUCEm2u+WR74M26&#215;1W<br />
b8ravHNjkOR/ez4iyz0H7V84dJzjA1BOoa+Y7mHyhD8S<br />
&#8212;&#8211;END CERTIFICATE&#8212;&#8211;<br />
</code></p>
<p>If you don&#8217;t include the intermediate cert data in the second field or the intermediate certs don&#8217;t match you&#8217;ll see errors such as &#8220;Incomplete certificate chain in reply&#8221;, &#8220;Failed to establish chain from reply&#8221; or &#8220;Certificate chain in reply does not verify: Signature does not match.&#8221;</p>
<p>If you see the message &#8220;invalid DER-encoded certificate data&#8221; then you most likely have an empty line between one or other of the certificate lines.</p>
<p>I&#8217;ve confirmed that this works with the Openfire 3.7 server and Empathy as the IM client.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=dQPtXQtif2w:ktkx49rSxEQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=dQPtXQtif2w:ktkx49rSxEQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=dQPtXQtif2w:ktkx49rSxEQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=dQPtXQtif2w:ktkx49rSxEQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=dQPtXQtif2w:ktkx49rSxEQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=dQPtXQtif2w:ktkx49rSxEQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=dQPtXQtif2w:ktkx49rSxEQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=dQPtXQtif2w:ktkx49rSxEQ:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RoshanOnline/~4/dQPtXQtif2w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://roshan.info/blog/2011/04/25/using-a-geotrust-quickssl-certificate-with-openfire/feed/</wfw:commentRss>
		<feedburner:origLink>http://roshan.info/blog/2011/04/25/using-a-geotrust-quickssl-certificate-with-openfire/</feedburner:origLink></item>
		<item>
		<title>Transliterate to Sinhalese using Google Transliterate</title>
		<link>http://feedproxy.google.com/~r/RoshanOnline/~3/8uFvJOXY7qY/</link>
		<comments>http://roshan.info/blog/2010/04/20/transliterate-to-sinhalese-using-google-transliterate/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 20:29:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Google]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://roshan.info/blog/2010/04/20/transliterate-to-sinhalese-using-google-transliterate/</guid>
		<description><![CDATA[Google Transliterate has been available for a while, but what&#8217;s nice is that it now supports Sinhalese too.  Check it out:
http://www.google.com/transliterate/sinhalese
If you type &#8220;Roshan&#8221;, it&#8217;ll transcribe exactly as it should.  My surname is a bit trickier so you can&#8217;t type it as it&#8217;s normally written in English but you instead have to type [...]]]></description>
			<content:encoded><![CDATA[<p>Google Transliterate has been available for a while, but what&#8217;s nice is that it now supports Sinhalese too.  Check it out:</p>
<p><a href="http://www.google.com/transliterate/sinhalese">http://www.google.com/transliterate/sinhalese</a></p>
<p>If you type &#8220;Roshan&#8221;, it&#8217;ll transcribe exactly as it should.  My surname is a bit trickier so you can&#8217;t type it as it&#8217;s normally written in English but you instead have to type &#8220;sembakuttiarachchi&#8221; to get the correct transliteration.  </p>
<p>Windows Vista and Windows 7 come with Sinhala support out-of-the-box.  Windows XP doesn&#8217;t initially support Sinhala, but there&#8217;s an extra language-pack you can install to make things work.  Once you install the correct fonts, things work properly on Linux too, but it&#8217;s a different story with Mac OS X.  Even with the latest version of Snow Leopard, Mac OS X has problems rendering Sinhala properly.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=8uFvJOXY7qY:D2pimBRROS4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=8uFvJOXY7qY:D2pimBRROS4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=8uFvJOXY7qY:D2pimBRROS4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=8uFvJOXY7qY:D2pimBRROS4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=8uFvJOXY7qY:D2pimBRROS4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=8uFvJOXY7qY:D2pimBRROS4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=8uFvJOXY7qY:D2pimBRROS4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=8uFvJOXY7qY:D2pimBRROS4:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RoshanOnline/~4/8uFvJOXY7qY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://roshan.info/blog/2010/04/20/transliterate-to-sinhalese-using-google-transliterate/feed/</wfw:commentRss>
		<feedburner:origLink>http://roshan.info/blog/2010/04/20/transliterate-to-sinhalese-using-google-transliterate/</feedburner:origLink></item>
		<item>
		<title>Using Firefox 3.0+ cookies with wget/curl</title>
		<link>http://feedproxy.google.com/~r/RoshanOnline/~3/dqnpFgsw6WE/</link>
		<comments>http://roshan.info/blog/2010/03/14/using-firefox-30-cookies-with-wgetcurl/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 14:32:33 +0000</pubDate>
		<dc:creator>Roshan</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<category><![CDATA[Computers]]></category>

		<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://roshan.info/blog/2010/03/14/using-firefox-30-cookies-with-wgetcurl/</guid>
		<description><![CDATA[Firefox versions prior to 3.0 stored their cookies in a standard cookies.txt file that could be used by tools like wget or curl.  From version 3.0 onwards, Firefox uses sqlite for persistence of cookies and other data, making it slightly more difficult to use the same cookies.  Here&#8217;s an invocation you can use [...]]]></description>
			<content:encoded><![CDATA[<p>Firefox versions prior to 3.0 stored their cookies in a standard cookies.txt file that could be used by tools like wget or curl.  From version 3.0 onwards, Firefox uses sqlite for persistence of cookies and other data, making it slightly more difficult to use the same cookies.  Here&#8217;s an invocation you can use to generate a cookies.txt file from your cookies.sqlite file:</p>
<pre class="brush: bash">
sqlite3 -separator $'\t' cookies.sqlite \
    'select host, "TRUE", path, case isSecure when 0 then "FALSE" else "TRUE" end, expiry, name, value from moz_cookies' > cookies.txt
</pre>
<p>Make sure you&#8217;re in the proper <a href="http://kb.mozillazine.org/Profile_folder">profile directory</a>, and that Firefox isn&#8217;t running.  Otherwise, you&#8217;ll get a message that the database is locked.</p>
<p>I&#8217;ve tested this so far with Firefox 3.5 and 3.6.  Should work as long as the structure of the cookies.sqlite file doesn&#8217;t change.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=dqnpFgsw6WE:BlEaomTVy-o:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=dqnpFgsw6WE:BlEaomTVy-o:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=dqnpFgsw6WE:BlEaomTVy-o:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=dqnpFgsw6WE:BlEaomTVy-o:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=dqnpFgsw6WE:BlEaomTVy-o:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=dqnpFgsw6WE:BlEaomTVy-o:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=dqnpFgsw6WE:BlEaomTVy-o:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=dqnpFgsw6WE:BlEaomTVy-o:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RoshanOnline/~4/dqnpFgsw6WE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://roshan.info/blog/2010/03/14/using-firefox-30-cookies-with-wgetcurl/feed/</wfw:commentRss>
		<feedburner:origLink>http://roshan.info/blog/2010/03/14/using-firefox-30-cookies-with-wgetcurl/</feedburner:origLink></item>
		<item>
		<title>Updating the firmware of an Olimex AVR-ISP500 from Linux</title>
		<link>http://feedproxy.google.com/~r/RoshanOnline/~3/ui-HBY_HjwA/</link>
		<comments>http://roshan.info/blog/2009/11/04/updating-the-firmware-of-an-olimex-avr-isp500-from-linux/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 23:15:52 +0000</pubDate>
		<dc:creator>Roshan</dc:creator>
		
		<category><![CDATA[Electronics]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[Computers]]></category>

		<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://roshan.info/blog/2009/11/04/updating-the-firmware-of-an-olimex-avr-isp500-from-linux/</guid>
		<description><![CDATA[I recently got an Olimex AVR-ISP500 and wanted to upgrade the firmware from my Ubuntu desktop (didn&#8217;t really fancy installing any drivers on the Windows machine).  Here&#8217;s what I had to do:
First, make sure you have lrzsz available:

roshan@optimus $ sudo apt-get install lrzsz
[sudo] password for roshan:
Reading package lists&#8230; Done
Building dependency tree
Reading state information&#8230; Done
Suggested [...]]]></description>
			<content:encoded><![CDATA[<p>I recently got an <a href="http://www.olimex.com/dev/avr-isp500.html">Olimex AVR-ISP500</a> and wanted to upgrade the firmware from my Ubuntu desktop (didn&#8217;t really fancy installing any drivers on the Windows machine).  Here&#8217;s what I had to do:</p>
<p>First, make sure you have lrzsz available:</p>
<pre>
roshan@optimus $ <b>sudo apt-get install lrzsz</b>
[sudo] password for roshan:
Reading package lists&#8230; Done
Building dependency tree
Reading state information&#8230; Done
Suggested packages:
  minicom
The following NEW packages will be installed:
  lrzsz
0 upgraded, 1 newly installed, 0 to remove and 9 not upgraded.
Need to get 108kB of archives.
After this operation, 279kB of additional disk space will be used.
Get:1 http://mirror.switch.ch jaunty/universe lrzsz 0.12.21-4.1 [108kB]
Fetched 108kB in 0s (430kB/s)
Selecting previously deselected package lrzsz.
(Reading database &#8230; 293796 files and directories currently installed.)
Unpacking lrzsz (from &#8230;/lrzsz_0.12.21-4.1_amd64.deb) &#8230;
Processing triggers for man-db &#8230;
Setting up lrzsz (0.12.21-4.1) &#8230;
roshan@optimus $
</pre>
<p>The AVR-ISP500 starts in firmware-update mode if you have a jumper between pins 1 and 3 of the ICSP10 connector.  Plug in the programmer and make sure the status LED continues flashing the sequence green, red, off.  </p>
<p>Check <code>/var/log/messages</code> to see what device node is associated with the programmer.  On my machine, it turns up as <code>/dev/ttyACM0</code>.</p>
<p>Download the latest firmware from the <a href="http://www.olimex.com/dev/avr-isp500.html">Olimex AVR-ISP500</a> page.  Unzip the file, and you&#8217;ll find the firmware image <code>avr-isp500.img</code></p>
<p>Run the <code>sx</code> command as shown, making sure to adjust the firmware image file and ports to suit your system.  If all goes well, you&#8217;ll see the following:</p>
<pre>
roshan@optimus $ <b>sx -X &#8211;16-bit-crc avr-isp500.img > /dev/ttyACM0 < /dev/ttyACM0</b>
Sending avr-isp500.img, 97 blocks: Give your local XMODEM receive command now.
Bytes Sent:  12416   BPS:870                             

Transfer complete
roshan@optimus $
</pre>
<p>I found that it took a few tries to get the timing right, and that if you ran the command too soon it errored out:<br />
<code><br />
roshan@optimus $ sx -X --16-bit-crc avr-isp500.img > /dev/ttyACM0 < /dev/ttyACM0<br />
Sending avr-isp500.img, 97 blocks: Give your local XMODEM receive command now.<br />
Xmodem sectors/kbytes sent:   0/ 0kRetry 0: Got 01 for sector ACK<br />
Retry 0: Got 01 for sector ACK<br />
Retry 0: Got 01 for sector ACK<br />
Retry 0: Got 01 for sector ACK<br />
Retry 0: Got 01 for sector ACK<br />
Retry 0: Got 01 for sector ACK<br />
Retry 0: Got 01 for sector ACK<br />
Retry 0: Got 01 for sector ACK<br />
Retry 0: Got 01 for sector ACK<br />
Retry 0: Got 01 for sector ACK<br />
Retry 0: Got 01 for sector ACK<br />
Retry 0: Retry Count Exceeded</p>
<p>Transfer incomplete<br />
roshan@optimus $<br />
</code><br />
I just repeated the command every time it failed, until it finally &#8220;took&#8221;.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=ui-HBY_HjwA:SkUo-GvF9Xk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=ui-HBY_HjwA:SkUo-GvF9Xk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=ui-HBY_HjwA:SkUo-GvF9Xk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=ui-HBY_HjwA:SkUo-GvF9Xk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=ui-HBY_HjwA:SkUo-GvF9Xk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=ui-HBY_HjwA:SkUo-GvF9Xk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=ui-HBY_HjwA:SkUo-GvF9Xk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=ui-HBY_HjwA:SkUo-GvF9Xk:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RoshanOnline/~4/ui-HBY_HjwA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://roshan.info/blog/2009/11/04/updating-the-firmware-of-an-olimex-avr-isp500-from-linux/feed/</wfw:commentRss>
		<feedburner:origLink>http://roshan.info/blog/2009/11/04/updating-the-firmware-of-an-olimex-avr-isp500-from-linux/</feedburner:origLink></item>
		<item>
		<title>Using flickcurl in a script</title>
		<link>http://feedproxy.google.com/~r/RoshanOnline/~3/nfKnXrCUrfM/</link>
		<comments>http://roshan.info/blog/2009/10/27/using-flickcurl-in-a-script/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 07:58:49 +0000</pubDate>
		<dc:creator>Roshan</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<category><![CDATA[Computers]]></category>

		<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://roshan.info/blog/2009/10/27/using-flickcurl-in-a-script/</guid>
		<description><![CDATA[I&#8217;ve recently started using Flickr more than I have before, where my workflow consisted of using Lightroom to sort out the photos, process them and to give them a rating, export from lightroom, watermark, upload all the files to my photostream, and then add the photos I&#8217;d rated with at least 4 stars to a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently started using Flickr more than I have before, where my workflow consisted of using Lightroom to sort out the photos, process them and to give them a rating, export from lightroom, watermark, upload all the files to my photostream, and then add the photos I&#8217;d rated with at least 4 stars to a particular photo pool.  These steps were not as seamless to me as they could have been, so I started looking for ways to automate the process.  flickcurl came up as an obvious candidate, so I put together the following script.  </p>
<p>Pre-requisites for this script to run are</p>
<ul>
<li><a href="http://www.sentex.net/~mwandel/jhead/">jhead</a>, to extract EXIF information</li>
<li><a href="http://librdf.org/flickcurl/">flickcurl</a>, for all the flickr magic</li>
<li><a href="http://www.imagemagick.org/script/index.php">Imagemagick</a>, used for watermarking</li>
<li><a href="http://xmlstar.sourceforge.net/">XMLStarlet</a>, to execute XPath</li>
</ul>
<p>You should be able to install all the pre-requisites on a Debian-based system using <code>apt</code>:</p>
<pre class="brush: bash">
sudo apt-get install flickcurl-utils jhead imagemagick xmlstarlet
</pre>
<p>And now for the script:</p>
<pre class="brush: bash">
#!/bin/bash
if [ ! -d to_upload ]
then
  mkdir to_upload
fi

POOL_ID="1234567@N89"
FLICKCURL="/home/roshan/progs/flickcurl/bin/flickcurl"
WATERMARK="/home/roshan/graphics/watermark.png"

for img in `ls *.tif | sort -r`
do
  imgbase="${img/.tif/}"
  echo "Photo $imgbase"
  target="to_upload/${imgbase}.jpg"
  xmpfile="to_upload/${imgbase}.xmp"
  logfile="to_upload/${imgbase}.log"
  echo "  Watermarking"
  composite -gravity SouthWest "$WATERMARK" "$img" "$target"
  jhead -v "$target" 2> /dev/null | sed -n -e '/xmpmeta/,/xmpmeta/p' > "$xmpfile"
  rating=`xmlstarlet sel -N xap="http://ns.adobe.com/xap/1.0/" -t -m "//xap:Rating" -v . $xmpfile`
  echo "  Rating: $rating"
  echo "  Uploading"
  $FLICKCURL upload "$target" public 2> "$logfile"
  PHOTO_ID=`sed -n -e '/Photo ID/{s/^.*: //;p}' "$logfile"`
  echo "  Uploaded as Photo ID $PHOTO_ID"
  if [ $rating -gt 3 ]
  then
    echo "  Adding $imgbase to pool"
    $FLICKCURL groups.pools.add $PHOTO_ID $POOL_ID 2> "$logfile.zrh"
  fi
done
</pre>
<p>I found that flickcurlutils 1.3 available through the Ubuntu Jaunty repositories would consistently segfault while trying to upload any photo which I wanted to mark public.  The latest code (1.14) available on the flickcurl page doesn&#8217;t have this problem, so you might want to download and compile that yourself. </p>
<p>The script itself is relatively straightforward.  It sets up a few constants (adjust to suit your system), creates a working directory, and then starts looping over all TIFF files in the current directory.  For every TIFF file, it creates a watermarked JPG file, and extracts the XMP information that Lightroom has embedded in the image.  The XMP file is an XML file, and among the information stored in it is the image rating which we get at using XMLStarlet.  Upload the image, and depending on the rating given to the image, also add it to the pool.  </p>
<p>It&#8217;s a relatively simple script, with no error-checking at all, but it does what I need.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=nfKnXrCUrfM:-SZPtioxjKY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=nfKnXrCUrfM:-SZPtioxjKY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=nfKnXrCUrfM:-SZPtioxjKY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=nfKnXrCUrfM:-SZPtioxjKY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=nfKnXrCUrfM:-SZPtioxjKY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=nfKnXrCUrfM:-SZPtioxjKY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=nfKnXrCUrfM:-SZPtioxjKY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=nfKnXrCUrfM:-SZPtioxjKY:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RoshanOnline/~4/nfKnXrCUrfM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://roshan.info/blog/2009/10/27/using-flickcurl-in-a-script/feed/</wfw:commentRss>
		<feedburner:origLink>http://roshan.info/blog/2009/10/27/using-flickcurl-in-a-script/</feedburner:origLink></item>
		<item>
		<title>Sri Lanka on Google Maps</title>
		<link>http://feedproxy.google.com/~r/RoshanOnline/~3/iYsahuD7qok/</link>
		<comments>http://roshan.info/blog/2009/03/03/sri-lanka-on-google-maps/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 20:03:44 +0000</pubDate>
		<dc:creator>Roshan</dc:creator>
		
		<category><![CDATA[Google]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[Computers]]></category>

		<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://roshan.info/blog/2009/03/03/sri-lanka-on-google-maps/</guid>
		<description><![CDATA[The latest addition on Google Maps: Tiles for Sri Lanka, with the ability to search for any address.
View Larger Map
]]></description>
			<content:encoded><![CDATA[<p>The latest addition on Google Maps: Tiles for Sri Lanka, with the ability to search for any address.</p>
<p><iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=1st+Ln,+Colombo,+Sri+Lanka&amp;sll=7.873054,80.771797&amp;sspn=3.547217,4.328613&amp;g=Sri+Lanka&amp;ie=UTF8&amp;s=AARTsJot6VRm5daZMgn_oRC39o5OtQIJyA&amp;ll=6.876154,79.882536&amp;spn=0.007456,0.00912&amp;z=16&amp;iwloc=addr&amp;output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=q&amp;source=embed&amp;hl=en&amp;geocode=&amp;q=1st+Ln,+Colombo,+Sri+Lanka&amp;sll=7.873054,80.771797&amp;sspn=3.547217,4.328613&amp;g=Sri+Lanka&amp;ie=UTF8&amp;ll=6.876154,79.882536&amp;spn=0.007456,0.00912&amp;z=16&amp;iwloc=addr" style="color:#0000FF;text-align:left">View Larger Map</a></small></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=iYsahuD7qok:x4kvtf0veDg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=iYsahuD7qok:x4kvtf0veDg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=iYsahuD7qok:x4kvtf0veDg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=iYsahuD7qok:x4kvtf0veDg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=iYsahuD7qok:x4kvtf0veDg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=iYsahuD7qok:x4kvtf0veDg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=iYsahuD7qok:x4kvtf0veDg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=iYsahuD7qok:x4kvtf0veDg:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RoshanOnline/~4/iYsahuD7qok" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://roshan.info/blog/2009/03/03/sri-lanka-on-google-maps/feed/</wfw:commentRss>
		<feedburner:origLink>http://roshan.info/blog/2009/03/03/sri-lanka-on-google-maps/</feedburner:origLink></item>
		<item>
		<title>The insane process of filling out the online UK Visa Application Form</title>
		<link>http://feedproxy.google.com/~r/RoshanOnline/~3/8Y133izlUNA/</link>
		<comments>http://roshan.info/blog/2009/02/13/the-insane-process-of-filling-out-the-online-uk-visa-application-form/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 15:42:52 +0000</pubDate>
		<dc:creator>Roshan</dc:creator>
		
		<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://roshan.info/blog/2009/02/13/the-insane-process-of-filling-out-the-online-uk-visa-application-form/</guid>
		<description><![CDATA[I have to travel to London next month, and started the usual visa application process.  I&#8217;ve grown accustomed to filling these out, as I usually go through the visa process of some country every few months.  The Schengen visa application is a two-page affair and is not too bad.  The US application [...]]]></description>
			<content:encoded><![CDATA[<p>I have to travel to London next month, and started the usual visa application process.  I&#8217;ve grown accustomed to filling these out, as I usually go through the visa process of some country every few months.  The Schengen visa application is a two-page affair and is not too bad.  The US application application isn&#8217;t that bad either.  But then I filled out the UK online form just now - 93 questions scattered across 27 pages of an online-form!  </p>
<p>One section was about &#8220;You stated that you had made an application to the Home Office to remain in the UK in the last 10 years. &#8220;, and requesting for more information.  Under the &#8220;Granted or Refused&#8221; field, I entered &#8220;Granted&#8221;, but was then surprised to see that the form refused to proceed, instead marking the &#8220;Reason (if refused)&#8221; field as a required field. Brilliant.  </p>
<p>Other compulsory questions:</p>
<ul>
<li>Your total monthly income from all sources of work or employment after tax</li>
<li>Do you receive income from any other sources‚ including friends or family?</li>
<li>Do you have savings‚ properties or other income‚ for example‚ from stocks and shares?</li>
<li>How much of your monthly income is used to support your family member&#8217;s?</li>
<li>How much do you spend each month on living costs?</li>
<li>You stated that you have savings‚ property or income.  Please give details</li>
</ul>
<p>Then there were the usual &#8220;Are you a terrorist&#8221; type questions which are also on the US visa and entry forms.  The last question in that block: &#8220;Have you engaged in any other activities that might indicate that you may not be considered a person of good character?&#8221;  </p>
<p>Definitely the most intrusive and convoluted visa form I&#8217;ve come across.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=8Y133izlUNA:Iw8ZvUXwO8w:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=8Y133izlUNA:Iw8ZvUXwO8w:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=8Y133izlUNA:Iw8ZvUXwO8w:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=8Y133izlUNA:Iw8ZvUXwO8w:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=8Y133izlUNA:Iw8ZvUXwO8w:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=8Y133izlUNA:Iw8ZvUXwO8w:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=8Y133izlUNA:Iw8ZvUXwO8w:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=8Y133izlUNA:Iw8ZvUXwO8w:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RoshanOnline/~4/8Y133izlUNA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://roshan.info/blog/2009/02/13/the-insane-process-of-filling-out-the-online-uk-visa-application-form/feed/</wfw:commentRss>
		<feedburner:origLink>http://roshan.info/blog/2009/02/13/the-insane-process-of-filling-out-the-online-uk-visa-application-form/</feedburner:origLink></item>
		<item>
		<title>No more TwitterBlogDel.icio.us cross-posting</title>
		<link>http://feedproxy.google.com/~r/RoshanOnline/~3/kCcqgw7CVcA/</link>
		<comments>http://roshan.info/blog/2009/02/01/no-more-twitterblogdelicious-cross-posting/#comments</comments>
		<pubDate>Sun, 01 Feb 2009 12:24:15 +0000</pubDate>
		<dc:creator>Roshan</dc:creator>
		
		<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://roshan.info/blog/2009/02/01/no-more-twitterblogdelicious-cross-posting/</guid>
		<description><![CDATA[In my earlier simple attempts at aggregating my online activities, I had set up my blog to cross-post to my Twitter stream, for my Twitter tweets to post back to my blog, and for my del.icio.us bookmarks to do a nightly aggregated post back to my blog too (which would of course also generate a [...]]]></description>
			<content:encoded><![CDATA[<p>In my earlier simple attempts at aggregating my online activities, I had set up my blog to cross-post to <a href="http://twitter.com/Roshan">my Twitter stream</a>, for my Twitter tweets to post back to my blog, and for my <a href="http://delicious.com/semba">del.icio.us bookmarks</a> to do a nightly aggregated post back to my blog too (which would of course also generate a tweet).  </p>
<p>With the arrival of <a href="http://friendfeed.com/">FriendFeed</a>, though, all of this cross-linkage was unnecessary.  Even more so, it was polluting <a href="http://friendfeed.com/semba">my FriendFeed stream</a>, with multiple events from different streams, all announcing the same thing.  </p>
<p>And so, all the cross-posting is now turned off, and enjoy the simplicity of <a href="http://friendfeed.com/semba">FriendFeed</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=kCcqgw7CVcA:AMYIlr38OTQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=kCcqgw7CVcA:AMYIlr38OTQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=kCcqgw7CVcA:AMYIlr38OTQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=kCcqgw7CVcA:AMYIlr38OTQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=kCcqgw7CVcA:AMYIlr38OTQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=kCcqgw7CVcA:AMYIlr38OTQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=kCcqgw7CVcA:AMYIlr38OTQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=kCcqgw7CVcA:AMYIlr38OTQ:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RoshanOnline/~4/kCcqgw7CVcA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://roshan.info/blog/2009/02/01/no-more-twitterblogdelicious-cross-posting/feed/</wfw:commentRss>
		<feedburner:origLink>http://roshan.info/blog/2009/02/01/no-more-twitterblogdelicious-cross-posting/</feedburner:origLink></item>
		<item>
		<title>The day the internet broke?</title>
		<link>http://feedproxy.google.com/~r/RoshanOnline/~3/8MLZd5ID57Q/</link>
		<comments>http://roshan.info/blog/2009/01/31/the-day-the-internet-broke/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 22:46:28 +0000</pubDate>
		<dc:creator>Roshan</dc:creator>
		
		<category><![CDATA[Software Design]]></category>

		<category><![CDATA[Google]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://roshan.info/blog/2009/01/31/the-day-the-internet-broke/</guid>
		<description><![CDATA[That&#8217;s it - today is the day the internet broke!  People started realising something was wrong with Google when almost every search result had the accompanying text &#8220;This site may harm your computer&#8221;.  Clicking on any result led to a page warning the user that the page they wanted to visit was very [...]]]></description>
			<content:encoded><![CDATA[<p>That&#8217;s it - today is the day the internet broke!  People started realising something was wrong with Google when almost every search result had the accompanying text &#8220;This site may harm your computer&#8221;.  Clicking on any result led to a page warning the user that the page they wanted to visit was very likely a page which would try to do bad things to your computer.  Thankfully, the glitch only lasted for 30-45 minutes, and things were back to normal again, with an <a href="http://googleblog.blogspot.com/2009/01/this-site-may-harm-your-computer-on.html">explanation of what went wrong</a>.  And the world breathed a sigh of relief&#8230; or did they?  </p>
<p>A few minutes ago, I got an e-mail alert from <a href="http://www.hyperspin.com/">Hyperspin</a>.  Hyperspin monitor your servers, and e-mail you if something goes wrong.  Apparently something had - it was failing to resolve my domain name!  A few nslookups showed that this really was the case. Worse - none of my domains were being resolved.  I try to access the <a href="http://www.enom.com">eNom</a> website, and find that even THEIR website isn&#8217;t working.  </p>
<p>Ok, fine - so something&#8217;s wrong with eNom&#8217;s DNS servers - all 5 of their geographically-separated locations!  None of them respond!  A global failure of their DNS servers for more than a few minutes is really unthinkable.  They say on their web-site:</p>
<blockquote><p><i>eNom services set new standards for reliability, thanks in part to redundant name servers dispersed around world. Each server has multiple high-bandwidth Internet connections, back-up power, security, and access to three different major Internet backbones. This powerful system enables to handle millions of transactions with no interruption in service.</i></p></blockquote>
<p>I thought I&#8217;d call their tech-support to see what they have to say.  Of course, their number is listed on their web-site, and that&#8217;s completely unreachable right now.  Thankfully, the <a href="http://www.archive.org">web archive</a> was helpful to locate and find an archived contact page from their site.  So I call up the number listed, dutifully press &#8220;3&#8243; for technical support and hear the message &#8220;Please enter your support PIN - this PIN is available within the &#8216;Info&#8217; section of the &#8216;My Account&#8217; page on our site&#8221;.  AAARGH!  Ok &#8230; don&#8217;t panic.  A quick visit to <a href="http://toolbar.netcraft.com/site_report?url=http://www.enom.com">Netcraft</a>, and I&#8217;m in possession of the IP address they last switched to.  <a href="http://69.64.157.35">http://69.64.157.35</a> does the trick, and I&#8217;m greeted with the familiar Enom home page.  Login, get my phone-support PIN and call them again.  I&#8217;m not that surprised that I get through to a support drone almost immediately - most of their customers are still battling their way throgh to their phone support PIN! Unfortunately, the support drone was of no help at all.  He acknowledged that there was a problem, that their entire team of engineers was investigating what had gone wrong, but no, they don&#8217;t have an ETA as to when things will be sorted out.  </p>
<p>It&#8217;s been over half an hour since I got the initial alert mail, and nothing has changed yet.  Wonder how long this will take to fix.</p>
<p><b>Update:</b> </p>
<p>1.5 hours later, it looks as if things are recovering.  Most queries do get a valid response, although some of them do still time-out.</p>
<p>Of course, their <a href="http://outage.enom.com/">Outage reporting site</a> was also completely inaccessible.  And now, even when you are able to access it, all it says is &#8220;Unscheduled Maintenance - Our site is currently undergoing an unscheduled maintenance to upgrade our systems in order to better serve you.&#8221;</p>
<p><b>Final update:</b><br />
I just received a response to the ticket I filed with eNom.  Turns out the entire thing was due to a DDoS attack.</p>
<blockquote><p><i><br />
Hello,                                                                                                                                      </p>
<p>Thank you for contacting us regarding the recent site resolution issues you were experiencing.                                              </p>
<p>For a period of hours beginning a Noon PST on Saturday January 31, 2009, a eNom DNS servers were victim to a large Distributed Denial of Service (DDoS) attack.  This attack affected hosted customers and other services, which rely on our DNS infrastructure.  Our DNS regularly handles attack traffic during the normal course of business; however, this attack was particularly large and required additional effort by eNom Operations to counteract it.  Services were largely restored by 3:30pm PST.  By policy, eNom doesn&#8217;t detail the nature of attacks against our infrastructure.                                                                                                                </p>
<p>Thank you for your understanding and patience.                                                                                              </p>
<p>Technical Support,<br />
</i></p></blockquote>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=8MLZd5ID57Q:O6ivn0nBkn0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=8MLZd5ID57Q:O6ivn0nBkn0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=8MLZd5ID57Q:O6ivn0nBkn0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=8MLZd5ID57Q:O6ivn0nBkn0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=8MLZd5ID57Q:O6ivn0nBkn0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=8MLZd5ID57Q:O6ivn0nBkn0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=8MLZd5ID57Q:O6ivn0nBkn0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=8MLZd5ID57Q:O6ivn0nBkn0:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RoshanOnline/~4/8MLZd5ID57Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://roshan.info/blog/2009/01/31/the-day-the-internet-broke/feed/</wfw:commentRss>
		<feedburner:origLink>http://roshan.info/blog/2009/01/31/the-day-the-internet-broke/</feedburner:origLink></item>
		<item>
		<title>@TheLightroomLab wow - that’s …</title>
		<link>http://feedproxy.google.com/~r/RoshanOnline/~3/tcLZyXlGOdY/</link>
		<comments>http://roshan.info/blog/2009/01/27/thelightroomlab-wow-thats/#comments</comments>
		<pubDate>Tue, 27 Jan 2009 19:44:50 +0000</pubDate>
		<dc:creator />
		
		<category><![CDATA[Twitters]]></category>

		<guid isPermaLink="false">http://roshan.info/blog/2009/01/27/thelightroomlab-wow-thats/</guid>
		<description><![CDATA[@TheLightroomLab wow - that&#8217;s the fastest I&#8217;ve had a Twitter reply.  Thanks.
]]></description>
			<content:encoded><![CDATA[<p>@TheLightroomLab wow - that&#8217;s the fastest I&#8217;ve had a Twitter reply. <img src='http://roshan.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> Thanks.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=tcLZyXlGOdY:o9STj1AWhrk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=tcLZyXlGOdY:o9STj1AWhrk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=tcLZyXlGOdY:o9STj1AWhrk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=tcLZyXlGOdY:o9STj1AWhrk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=tcLZyXlGOdY:o9STj1AWhrk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=tcLZyXlGOdY:o9STj1AWhrk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RoshanOnline?a=tcLZyXlGOdY:o9STj1AWhrk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RoshanOnline?i=tcLZyXlGOdY:o9STj1AWhrk:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RoshanOnline/~4/tcLZyXlGOdY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://roshan.info/blog/2009/01/27/thelightroomlab-wow-thats/feed/</wfw:commentRss>
		<feedburner:origLink>http://roshan.info/blog/2009/01/27/thelightroomlab-wow-thats/</feedburner:origLink></item>
	</channel>
</rss>
