<?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"
	>

<channel>
	<title>dready blog v2.0</title>
	<atom:link href="http://dready.org/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://dready.org/blog</link>
	<description></description>
	<pubDate>Fri, 21 Nov 2008 16:07:21 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>Java SSL Implementation does not detect disconnected socket</title>
		<link>http://dready.org/blog/2008/11/22/java-ssl-implementation-does-not-detect-disconnected-socket/</link>
		<comments>http://dready.org/blog/2008/11/22/java-ssl-implementation-does-not-detect-disconnected-socket/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 16:05:10 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[hacks]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[jdk]]></category>

		<category><![CDATA[JVM]]></category>

		<category><![CDATA[networking]]></category>

		<category><![CDATA[socket]]></category>

		<category><![CDATA[ssl]]></category>

		<category><![CDATA[tls]]></category>

		<guid isPermaLink="false">http://dready.org/blog/?p=183</guid>
		<description><![CDATA[To be exact, Sun&#8217;s JSSE SSL/TLS implementation ignores the EOFException that is generated when its underlying socket was closed properly (that is if the server initiates a proper shutdown) and you try to write to it.
This is what you get when debug is turned on (using the -Djavax.net.debug=ssl switch):

Thread, WRITE: TLSv1 Application Data, length = [...]]]></description>
			<content:encoded><![CDATA[<p>To be exact, Sun&#8217;s JSSE SSL/TLS implementation <strong>ignores</strong> the <code>EOFException</code> that is generated when its underlying socket was closed properly (that is if the server initiates a proper shutdown) and you try to write to it.</p>
<p>This is what you get when debug is turned on (using the <code>-Djavax.net.debug=ssl</code> switch):</p>
<pre>
Thread, WRITE: TLSv1 Application Data, length = 499
Thread, received EOFException: ignoredThread, called closeInternal(false)
Thread, SEND TLSv1 ALERT:  warning, description = close_notify
Thread, WRITE: TLSv1 Alert, length = 18
</pre>
<p>In order to detect the closed connection, you actually need to perform a read on the SSLSocket&#8217;s input stream:</p>
<pre>
Socket sock = factory.createSocket(host, port);
// factory is an SSLSocketFactory() instance
// ...
// ...
// At some point, peer has already shutdown the connection
// ...
// write a byte
OutputStream out = socket.getOutputStream();
out.write(32);
// no exception here
out.flush();
// still no exception
// read something from it
InputStream in = socket.getInputStream();
int n = in.read();
// n becomes -1 here
</pre>
<p>One would expect the <code>write</code> to throw an exception, since the underlying socket was closed. It seems that the <a href="http://hc.apache.org/httpclient-3.x/sslguide.html">Apache HttpClient</a> folks did discover this:</p>
<blockquote><p>
Due to what appears to be a bug in Sun&#8217;s older (below 1.4) implementation of Java Virtual Machines or JSSE there&#8217;s no reliable way of telling if an SSL connection is &#8217;stale&#8217; or not. For example, the HTTP 1.1 specification permits HTTP servers in &#8216;keep-alive&#8217; mode to drop the connection to the client after a given period inactivity without having to notify the client, effectively rendering such connection unusable or &#8217;stale&#8217;. For the HTTP agent written in Java there&#8217;s no reliable way to test if a connection is &#8217;stale&#8217; other than attempting to perform a read on it. However, a read operation on an idle SSL connection on Sun JVM older than 1.4 returns &#8216;end of stream&#8217; instead of an expected read timeout. That effectively makes the connection appear &#8217;stale&#8217; to HttpClient, which leaves it with no other way but to drop the connection and to open a new one, thus defeating HTTP 1.1 keep-alive mechanism and resulting in significant performance degradation (SSL authentication is a highly time consuming operation). The problem appears to have been fixed in Sun&#8217;s Java 1.4 SSL implementation. Sockets which are not using HTTPS are unaffected on any JVM.
</p></blockquote>
<p>However, in many network protocols, there is a fixed command-response sequence so reading from the socket before writing does pose a problem. What the Apache HttpClient folks did was to wrap the socket <code>InputStream</code> in a <code>BufferedInputStream</code>, then mark the stream position, try to read a single byte from it with a timeout of 1ms. If read() returns <code>-1</code> the socket is considered stale, and it resets the stream to the marked position. This is less than ideal, but probably works.</p>
<p>As far as I know, this problem exists on JDK versions 1.4 and 1.5.</p>
<p>There you go, I just wanted to throw it out there for anyone who happens to stumble on the same problem. Personally, I&#8217;ve spent a good afternoon chasing down this problem, from googling to hunting for the JSSE source code (which I gave up finding after discovering that the JDK 1.6 source doesn&#8217;t include it.)</p>
]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2008/11/22/java-ssl-implementation-does-not-detect-disconnected-socket/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ditching RememberTheMilk</title>
		<link>http://dready.org/blog/2008/10/28/ditching-rememberthemilk/</link>
		<comments>http://dready.org/blog/2008/10/28/ditching-rememberthemilk/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 10:18:20 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[rant]]></category>

		<category><![CDATA[FAIL]]></category>

		<category><![CDATA[rtm]]></category>

		<category><![CDATA[todo]]></category>

		<guid isPermaLink="false">http://dready.org/blog/?p=180</guid>
		<description><![CDATA[I&#8217;ve always liked Remember The Milk, the &#8220;web 2.0&#8243; online task manager that is so well syndicated over channels such as Google Calendar, Twitter,  mobile apps, etc. Also, the RTM team is situated in Chatswood, Sydney which is a place that I fondly recall inhabitating while in Australia. Because of this, and the fact [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve always liked <a href="http://www.rememberthemilk.com/">Remember The Milk</a>, the &#8220;web 2.0&#8243; online task manager that is so well syndicated over channels such as Google Calendar, Twitter,  mobile apps, etc. Also, the <acronym title="Remember The Milk">RTM</acronym> team is situated in Chatswood, Sydney which is a place that I fondly recall inhabitating while in Australia. Because of this, and the fact that no one can resist the cuteness of their moo-moo cow logo and their mascot, Bob T. Monkey, I have a natural affinity towards the service.</p>
<p>It didn&#8217;t take long for me to find out that this affinity is uni-directional. <strong>RTM&#8217;s seeming openness is only superficial.</strong></p>
<p>The story began almost a year ago.<br />
<span id="more-180"></span></p>
<p>I have been using <a href="http://mojipage.com/">MojiPage</a> (my startup) daily for checking weather, reading news, and interacting with social media sites. Knowing that RTM has an API (who doesn&#8217;t these days?), I thought to myself: &#8220;how great would it be if I could write an RTM widget for MojiPage?&#8221;</p>
<p>So, I looked up what I need to achieve the idea, and found out that RTM issues API keys to non-commercial developers, but commercial arrangement is possible with prior arrangement. Quoting <a href="http://www.rememberthemilk.com/services/api/" rel="nofollow">their API page</a>:</p>
<blockquote><p>
The Remember The Milk API allows anyone to write applications that interact with Remember The Milk. At this time, the API is available for non-commercial use by outside developers (however, commercial use is possible by prior arrangement). The design of the Remember The Milk API was inspired by the Flickr API.
</p></blockquote>
<p>I&#8217;m not averse to working out an arrangement with RTM. Given that the Flickr API had similar licensing restrictions and yet they granted us a license, I couldn&#8217;t imagine it&#8217;ll be too much of a problem. So, I applied for an API key outlining my proposal to RTM. </p>
<p>A day, two days, god knows how many days passed.. no response. </p>
<p>Thinking that my message could have ended up in their spam box, I re-applied for it. Again, weeks passed without any answer, not even an acknowledgement email. I cannot recall if there was a third message that I sent, but I also tried calling the number gotten from their domain whois record, only to reach a voicemail box always. Leaving voicemail didn&#8217;t elicit any response either.</p>
<p>Now, I can understand that RTM is a subscription-based service, and they need to protect their revenue stream but is a response too much to ask?</p>
<p>For this reason, I&#8217;m migrating my personal TODO list over to <a href="http://www.evernote.com/">Evernote</a>, which looks more feature-complete over what RTM offers. I&#8217;m looking forward to it.</p>
]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2008/10/28/ditching-rememberthemilk/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FoXRI Updated for Firefox 3</title>
		<link>http://dready.org/blog/2008/10/18/foxri-updated-for-firefox-3/</link>
		<comments>http://dready.org/blog/2008/10/18/foxri-updated-for-firefox-3/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 18:05:22 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[firefox]]></category>

		<category><![CDATA[foxri]]></category>

		<category><![CDATA[openid]]></category>

		<category><![CDATA[xri]]></category>

		<guid isPermaLink="false">http://dready.org/blog/?p=178</guid>
		<description><![CDATA[Prompted by Emanuel in a comment to my post on i-names, I&#8217;ve finally tended to the long-overdue item in my TODO queue, i.e. update FoXRI to work with Firefox 3.
The request from Emanuel came almost serendipitously 2 days after =les nonchalantly asked me if I had plans to update it to FF3, to which I [...]]]></description>
			<content:encoded><![CDATA[<p>Prompted by <a href="http://jaudo.com/">Emanuel</a> in a comment to <a href="http://dready.org/blog/2006/07/10/whats-in-an-i-name/">my post on i-names</a>, I&#8217;ve finally tended to the long-overdue item in my TODO queue, i.e. update <a href="http://foxri.sourceforge.net/">FoXRI</a> to work with Firefox 3.</p>
<p>The request from Emanuel came almost serendipitously 2 days after <a href="xri://=les">=les</a> nonchalantly asked me if I had plans to update it to FF3, to which I answered &#8220;one of these days.&#8221;</p>
<p>New in this version are 2 patches from <a href="http://www.plaxo.com/directory/profile/90194353111/1159c0c6/Michael/Krelin">Michael Krelin</a> which adds detection of URIs for more OpenID versions, and the handling of <code>append</code> attribute values. Changelog for the patches are available at <a href="http://git.klever.net/view/cgit/patchwork/foxri.git/">his git repository</a>.<br />
Thanks, Michael!</p>
<p>Due to what seems like a new security restriction that protocol handlers are not allowed to link to chrome URIs, I can&#8217;t seem to get it to load the CSS and icons from the chrome any more. Therefore, those files are now hosted remotely at <a href="http://xrid.net/">xrid.net</a> so if you see requests to that host, please don&#8217;t be alarmed.</p>
]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2008/10/18/foxri-updated-for-firefox-3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Domain Tool for iPhone &#8212; whois on the move</title>
		<link>http://dready.org/blog/2008/10/03/domain-tool-for-iphone-whois-on-the-move/</link>
		<comments>http://dready.org/blog/2008/10/03/domain-tool-for-iphone-whois-on-the-move/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 10:32:14 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[dns]]></category>

		<category><![CDATA[domaintool]]></category>

		<category><![CDATA[icann]]></category>

		<category><![CDATA[idn]]></category>

		<category><![CDATA[mobile]]></category>

		<category><![CDATA[domain]]></category>

		<category><![CDATA[iphone]]></category>

		<category><![CDATA[whois]]></category>

		<guid isPermaLink="false">http://dready.org/blog/?p=173</guid>
		<description><![CDATA[Introducing DomainTool — an iPhone application for querying domain name whois information. I wrote this to learn iPhone programming (with a certain killer app in mind) as well as to scratch my own itch.
Occasionally, I find myself needing to think of a product name or domain name for a web site. Ideas can knock on [...]]]></description>
			<content:encoded><![CDATA[<p>Introducing <a href="http://mdomaintool.com/">DomainTool</a> — an iPhone application for querying domain name whois information. I wrote this to learn iPhone programming (with a certain killer app in mind) as well as to scratch my own itch.</p>
<p>Occasionally, I find myself needing to think of a product name or domain name for a web site. Ideas can knock on my head at any time: at lunch, in the toilet or waiting in the queue. I could note it down on a generic note taker on the phone, or jot it down on a piece of paper, but nothing beats being able to instantly find out if the domain is available and keep track of it in a dedicated app. Hence, DomainTool was born.</p>
<p>As with any great app, it should be simple to use, and addresses a focused need. Thus, you&#8217;ll find the following grand feature list:</p>
<ul>
<li>Query <a href="http://en.wikipedia.org/wiki/WHOIS" title="WHOIS" rel="wikipedia" class="zem_slink">WHOIS</a> servers to find out if a domain name is taken. Similar to the command line whois tool</li>
<li>Bookmark a domain name, and query it again anytime</li>
<li>Supports all TLD that has a published WHOIS server: COM, NET, ORG, BIZ, INFO, CC, JP, CN, TW, KR, MY, SG, PR, DE, EU, and many more!</li>
<li>Supports Internationalized Domain Names (IDN)</li>
</ul>
<p>Some screenshots:</p>
<p><img alt="" src="http://mdomaintool.com/m/images/shot1.jpg" class="alignnone" width="320" height="460" /></p>
<p><img alt="" src="http://mdomaintool.com/m/images/shot2.jpg" class="alignnone" width="320" height="460" /></p>
<p><img alt="" src="http://mdomaintool.com/m/images/shot3.jpg" class="alignnone" width="320" height="460" /></p>
<p><img alt="" src="http://mdomaintool.com/m/images/shot4.jpg" class="alignnone" width="320" height="460" /></p>
<p>By now, I suppose you&#8217;re dying to try it out on your iPhone, and I can certainly sympathize with that. It can be yours for USD0.99 (or the equivalent in your currency) &#8212; 70% of which goes to my coffee bank, and the rest goes to Mr. Jobs.</p>
<p><a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=288873100&#038;mt=8"><strong><big>Get it here!</big></strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2008/10/03/domain-tool-for-iphone-whois-on-the-move/feed/</wfw:commentRss>
		</item>
		<item>
		<title>iPhone-blogging</title>
		<link>http://dready.org/blog/2008/07/31/iphone-blogging/</link>
		<comments>http://dready.org/blog/2008/07/31/iphone-blogging/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 00:02:21 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[blogging]]></category>

		<category><![CDATA[mobile]]></category>

		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://dready.org/blog/2008/07/31/iphone-blogging/</guid>
		<description><![CDATA[I&#8217;ve always wanted to post to my own blog from the mobile phone rather than using third party blogging platforms. Well, here it is - wordpress for iphone! Now, if only I can copy and paste the URL for you.
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve always wanted to post to my own blog from the mobile phone rather than using third party blogging platforms. Well, here it is - wordpress for iphone! Now, if only I can copy and paste the URL for you.</p>
]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2008/07/31/iphone-blogging/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FriendFeed Comments Incorporated</title>
		<link>http://dready.org/blog/2008/06/14/friendfeed-comments-incorporated/</link>
		<comments>http://dready.org/blog/2008/06/14/friendfeed-comments-incorporated/#comments</comments>
		<pubDate>Sat, 14 Jun 2008 08:36:24 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[blogging]]></category>

		<category><![CDATA[friendfeed]]></category>

		<guid isPermaLink="false">http://dready.org/blog/2008/06/14/friendfeed-comments-incorporated/</guid>
		<description><![CDATA[Thanks to Louis Gray&#8217;s Tip #5, I&#8217;ve installed Glenn Saven&#8217;s FriendFeed Comments WordPress Plugin bringing FriendFeed comments into the blog entries.
]]></description>
			<content:encoded><![CDATA[<p>Thanks to <a href="http://www.louisgray.com/live/2008/06/friendfeed-friday-tips-5-bringing.html">Louis Gray&#8217;s Tip #5</a>, I&#8217;ve installed <a href="http://blog.slaven.net.au/archives/2008/03/27/friendfeed-comments-wordpress-plugin/">Glenn Saven&#8217;s FriendFeed Comments WordPress Plugin</a> bringing FriendFeed comments into the blog entries.</p>
]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2008/06/14/friendfeed-comments-incorporated/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Advantages of User-Centric Identity</title>
		<link>http://dready.org/blog/2008/03/23/advantages-of-user-centric-identity/</link>
		<comments>http://dready.org/blog/2008/03/23/advantages-of-user-centric-identity/#comments</comments>
		<pubDate>Sat, 22 Mar 2008 20:25:25 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[data-portability]]></category>

		<category><![CDATA[identity]]></category>

		<category><![CDATA[openid]]></category>

		<category><![CDATA[vrm]]></category>

		<guid isPermaLink="false">http://dready.org/blog/2008/03/23/advantages-of-user-centric-identity/</guid>
		<description><![CDATA[In a world of increasing openness and user-centric -ness (user-centric identity, increasing user-choice, user-controlled data), how do you convince enterprises to give up the data that they guard so dearly? One way to put it may be &#8220;it&#8217;s happening whether you like it or not, so you might as well go with the flow&#8221;. While [...]]]></description>
			<content:encoded><![CDATA[<p>In a world of increasing openness and user-centric -ness (user-centric identity, increasing user-choice, user-controlled data), how do you convince enterprises to give up the data that they guard so dearly? One way to put it may be &#8220;it&#8217;s happening whether you like it or not, so you might as well go with the flow&#8221;. While companies can certainly go with the flow, more forward-thinking corporations may decide to do it more pro-actively, rather than being <a href="http://news.vzw.com/news/2007/11/pr2007-11-27.html">forced to react</a>.</p>
<p>There were some <a href="http://drstarcat.com/archives/29">talks</a> about how <a href="http://cyber.law.harvard.edu/projectvrm/Main_Page">VRM</a> relates to DataPortability on the <a href="http://groups.google.com/group/dataportability-public/browse_thread/thread/efd9b892a6507d0c?hl=en">DataPortability-Public</a> mailing list. In particular, this excerpt of a <a href="http://www.mediainfluencer.net/2008/02/vrm-one-pager">blog post from Adriana Lukas</a> sums up the &#8220;What&#8217;s in it for business&#8221; aspect very well:</p>
<blockquote><p>
<strong>What’s in it for businesses?</strong></p>
<p>We live in an increasingly decentralized world with more customer choice, yet vendors continue to fiercely collect and control customer data and exploit the opportunities therein. The ultimate goal of VRM is better relationships between customers and vendors, by considering and constructing tools that put the customer in control of their data and ultimately their relationships with other individuals, companies and institutions.</p>
<p><strong>Benefits of ‘letting go’ of customer data:</strong></p>
<ul>
<li>Customers share the burden of storing and protecting the data - eases compliance, privacy &#038; security concerns</li>
<li>Increased access to information about customers - direct benefits to the customer to share more data rather than less.</li>
<li>New services from previously unavailable access to customer data</li>
</ul>
</blockquote>
<p>The first bullet is a good point that I had never thought about, and is a very practical benefit. The second point is a classic example of &#8220;less-is-more&#8221;; maintain less control, and gain more in return. The third point being direct consequence of the second.</p>
<p>When will we see the first product that presents a holistic solution with tangible benefits of VRM to companies, as well as integration with / transition from their existing CRM systems?</p>
]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2008/03/23/advantages-of-user-centric-identity/feed/</wfw:commentRss>
		</item>
		<item>
		<title>OpenID真的很難記</title>
		<link>http://dready.org/blog/2008/02/13/openid%e7%9c%9f%e7%9a%84%e5%be%88%e9%9b%a3%e8%a8%98/</link>
		<comments>http://dready.org/blog/2008/02/13/openid%e7%9c%9f%e7%9a%84%e5%be%88%e9%9b%a3%e8%a8%98/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 04:47:36 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[openid]]></category>

		<category><![CDATA[xri]]></category>

		<guid isPermaLink="false">http://dready.org/blog/2008/02/13/openid%e7%9c%9f%e7%9a%84%e5%be%88%e9%9b%a3%e8%a8%98/</guid>
		<description><![CDATA[I monitor a few keywords on Twitter, and get instant notification on Jabber whenever someone mentions any of them. &#8220;OpenID&#8221; is one of those. Today, I got one notification which caught my attention, not just because it is in Chinese, but that I think it&#8217;s an important point:

jchristabelle: OpenID真的很難記，我又忘了我的。

which translates to:

OpenID is really hard to [...]]]></description>
			<content:encoded><![CDATA[<p>I monitor a few keywords on Twitter, and get instant notification on Jabber whenever someone mentions any of them. &#8220;OpenID&#8221; is one of those. Today, I got one notification which caught my attention, not just because it is in Chinese, but that I think it&#8217;s an important point:</p>
<blockquote><p>
<a href="http://twitter.com/jchristabelle">jchristabelle</a>: OpenID真的很難記，我又忘了我的。
</p></blockquote>
<p>which translates to:</p>
<blockquote><p>
OpenID is really hard to remember, I forgot mine again.
</p></blockquote>
<p>I have shared that sentiment before, when I tried to login to my Plaxo account and couldn&#8217;t for the life of me remember which one it was that I first used to associate my account. Granted that, in my case, I have many OpenID URIs because I&#8217;ve been so involved in the implementation. However, it is true that the OP:RP ratio is still too high (counting Blogger as a single RP rather than thousands of OpenID-ready spam blogs.) </p>
<p>I think it is inevitable that in future most users will have at least a handful of OpenID URIs. One can easily imagine getting one from each webmail/IM provider, personal i-name or domain name, social networks, etc. It may just be one of those annoyances we have to live with. Or maybe users will just remember the brands that stick, and click on the &#8220;Sign in with my Yahoo! ID&#8221; button instead.</p>
<p>I don&#8217;t have a solution here, just relaying the message.</p>
<p>p.s. Incidentally, geeks are of course still able to use URIs within their control (personal domain) to delegate to another OP (e.g. Yahoo) and switch OP at anytime while keeping the original URIs. For example, <a href="http://dready.org/openid/yahoo/">here&#8217;s what I use</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2008/02/13/openid%e7%9c%9f%e7%9a%84%e5%be%88%e9%9b%a3%e8%a8%98/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Memcached on Solaris</title>
		<link>http://dready.org/blog/2008/02/07/memcached-on-solaris/</link>
		<comments>http://dready.org/blog/2008/02/07/memcached-on-solaris/#comments</comments>
		<pubDate>Thu, 07 Feb 2008 03:56:30 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[hacks]]></category>

		<guid isPermaLink="false">http://dready.org/blog/2008/02/07/memcached-on-solaris/</guid>
		<description><![CDATA[If you observe memcached exhibiting strange behavior while running under Solaris, you should try upgrading to the latest version of libevent.
I experienced a problem while testing my application on the excellent Joyent Facebook Accelerator, which runs Solaris Nevada snv_67 X86, has memcached 1.2.2 with libevent 1.3b2 installed by default.
My memcached usage is pretty low and [...]]]></description>
			<content:encoded><![CDATA[<p>If you observe <a href="http://www.danga.com/memcached/">memcached</a> exhibiting strange behavior while running under Solaris, you should try upgrading to the latest version of <a href="http://monkey.org/~provos/libevent/">libevent</a>.</p>
<p>I experienced a problem while testing my application on the excellent <a href="http://joyent.com/developers/facebook/">Joyent Facebook Accelerator</a>, which runs <code>Solaris Nevada snv_67 X86</code>, has memcached 1.2.2 with libevent 1.3b2 installed by default.</p>
<p>My memcached usage is pretty low and I refresh the cache often to keep it from going stale, but somehow I still get lots of cache misses. By elimination, I ruled out the possibility of faults on the python memcache module, or memcached version (tried the latest 1.2.4 compiled against the libevent-1.3b2 and it still had the same problem.) When I connected my app to the memcached instance running on my FreeBSD box, though, the problem doesn&#8217;t exist.</p>
<p>Eventually, it turns out that memcached disconnects the client and all I got from the python memcache module was:</p>
<pre>
  File "/opt/local/lib/python2.5/site-packages/memcache.py", line 846, in recv
    'read returned 0 length bytes' % ( len(buf), foo ))
</pre>
<p>Well, that&#8217;s another bug. The above <code>foo</code> should really be <code>rlen</code>, but fixing that only proved that memcached always disconnects the client after sending 66887 bytes in response to a get.</p>
<p>After some poking around (by inserting prints and running memcached in foreground mode), it was apparent to me that memcached was getting an error from libevent, so I upgraded libevent and problem was solved.</p>
<p>Hope this helps anyone who may run into the same problem (as I couldn&#8217;t find any clue in the googs.)</p>
]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2008/02/07/memcached-on-solaris/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Haiku ads don&#8217;t work</title>
		<link>http://dready.org/blog/2008/02/02/haiku-ads-dont-work/</link>
		<comments>http://dready.org/blog/2008/02/02/haiku-ads-dont-work/#comments</comments>
		<pubDate>Sat, 02 Feb 2008 06:21:03 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[fun]]></category>

		<guid isPermaLink="false">http://dready.org/blog/2008/02/02/haiku-ads-dont-work/</guid>
		<description><![CDATA[Actually they do! I couldn&#8217;t resist but to click on the following when it showed up on my Gmail interface (even though I have heard of Woot before):

This goes to show that when it comes to ads, creativity pays off.
]]></description>
			<content:encoded><![CDATA[<p>Actually they do! I couldn&#8217;t resist but to click on the following when it showed up on my Gmail interface (even though I have heard of Woot before):</p>
<p><img src='http://dready.org/blog/wp-content/uploads/2008/02/we-are-woot.png' alt='Woot’s Haiku Ad' /></p>
<p>This goes to show that when it comes to ads, creativity pays off.</p>
]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2008/02/02/haiku-ads-dont-work/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
