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

<channel>
	<title>Serendipitous altruism &#187; Systems</title>
	<atom:link href="http://serendipity.ruwenzori.net/index.php/category/systems/feed" rel="self" type="application/rss+xml" />
	<link>http://serendipity.ruwenzori.net</link>
	<description>Pseudo-random experience capitalization by Jean-Marc Liotier, just in case...</description>
	<lastBuildDate>Mon, 04 Mar 2013 10:29:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/><atom:link rel="hub" href="http://ayup.us/"/><cloud domain='serendipity.ruwenzori.net' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>The mobile telecommunications industry does not follow the specifications and suffers the consequences</title>
		<link>http://serendipity.ruwenzori.net/index.php/2010/11/19/the-mobile-telecommunications-industry-does-not-follow-the-specifications-and-suffers-the-consequences</link>
		<comments>http://serendipity.ruwenzori.net/index.php/2010/11/19/the-mobile-telecommunications-industry-does-not-follow-the-specifications-and-suffers-the-consequences#comments</comments>
		<pubDate>Fri, 19 Nov 2010 15:32:48 +0000</pubDate>
		<dc:creator>Jean-Marc Liotier</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Mobile computing]]></category>
		<category><![CDATA[Networking & telecommunications]]></category>
		<category><![CDATA[Systems]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://serendipity.ruwenzori.net/?p=883</guid>
		<description><![CDATA[In France, at least two mobile networks operators out of three (I won&#8217;t tell you which ones) have relied on Cell ID alone to identify cells&#8230; A mistake because contrary to what the &#8220;Cell ID&#8221; moniker suggests, it can&#8217;t identify a cell on its own. A cell is only fully identified by combining with the [...]]]></description>
			<content:encoded><![CDATA[<p>In France, at least two <a href="http://en.wikipedia.org/wiki/Mobile_network_operator">mobile networks operators</a> out of <a href="http://en.wikipedia.org/wiki/List_of_mobile_network_operators_of_Europe#France">three</a> (I won&#8217;t tell you which ones) have relied on <a href="http://en.wikipedia.org/wiki/Cell_ID">Cell ID</a> alone to identify cells&#8230; A mistake because contrary to what the &#8220;Cell ID&#8221; moniker suggests, it can&#8217;t identify a cell on its own.</p>
<p>A cell is only fully identified by combining with the <a href="http://en.wikipedia.org/wiki/Location_Area_Identity">Location Area Identity (LAI)</a>. The LAI is an aggregation of <a title="Mobile Country Code" href="http://en.wikipedia.org/wiki/Mobile_Country_Code">Mobile Country Code (MCC)</a>, <a title="Mobile Network Code" href="http://en.wikipedia.org/wiki/Mobile_Network_Code">Mobile Network Code (MNC</a> &#8211; which identifies the <a href="http://en.wikipedia.org/wiki/Public_land_mobile_network">PLMN</a> in that country) and the <a href="http://en.wikipedia.org/wiki/Mobility_management#Location_area">Location Area</a> Code (LAC &#8211; which identifies <a href="http://en.wikipedia.org/wiki/Mobility_management#Location_area">Location Area</a> within the PLMN). The whole aggregate is called Cell Global Identification (CGI) &#8211; a rarely encountered term, but this <a href="http://gnuradio.org/redmine/wiki/1/OpenBTSNetwork_Architecture">GNU Radio GSM architecture document mentions it with details</a>.</p>
<p>Since operators run their networks in their own context, they can consider that MCC and MNC are superfluous. And since the GSM and 3G specifications defines the Cell ID as a 16 bit identifier, the operators have believed that they had plenty for all the cells they could imagine, even taking multiple sectors into account &#8211; but that was many years ago. Even nowadays there are not that many cells in a French GSM network, but the growth in the number of bearer channels was not foreseen and each of them requires a different CellID &#8211; which multiplies the number of cells by their number.</p>
<p>So all  those who in the beginnings of <a href="http://en.wikipedia.org/wiki/Global_System_for_Mobile_Communications">GSM</a> and in the prehistory of <a href="http://en.wikipedia.org/wiki/3GPP">3GPP</a> decided that 65536 identifiers ought to be enough for everyone are now fixing their information systems in a hurry as they run out of available identifiers &#8211; not something anyone likes to do on a large critical production infrastructure.</p>
<p>Manufacturers and operators are together responsible for that, but alas this is just one occurrence of common shortsightedness in information systems design. Choosing unique identifiers is a basic modeling task that happens early in the life of a design &#8211; but it is a critical one. Here is what Wikipedia says about <a href="http://en.wikipedia.org/wiki/Unique_identifier">unique identifiers</a> :</p>
<p style="padding-left: 30px;">&#8220;With reference to a given (possibly implicit) set of objects, a <a href="http://en.wikipedia.org/wiki/Unique_identifier">unique identifier</a> (UID) is any <a href="http://en.wikipedia.org/wiki/Identifier">identifier</a> which is guaranteed to be unique among all identifiers used for those objects and for a specific purpose.&#8221;</p>
<p>The &#8220;specific purpose&#8221; clause could be interpreted as exonerating the culprits from responsibility : given their knowledge at the time, the use of Cell ID alone was reasonable for their specific purpose. But they sinned by not making the <a href="http://en.wikipedia.org/wiki/Unique_identifier">unique identifier</a> as unique as it possibly could. And even worst, they sinned by not following the full extent of the <a href="http://en.wikipedia.org/wiki/Specification_%28technical_standard%29">specification</a>.</p>
<p>But I won&#8217;t be the one casting the first stone &#8211; <a href="http://www.urbandictionary.com/define.php?term=Hindsight%20is%2020%2F20">hindsight is 20/20</a> and I doubt that any of us would have done better.</p>
<p>But still&#8230; Remember kids : make unique identifiers as unique as possible and follow the <a href="http://en.wikipedia.org/wiki/Specification_%28technical_standard%29">specifications</a> !</p>
]]></content:encoded>
			<wfw:commentRss>http://serendipity.ruwenzori.net/index.php/2010/11/19/the-mobile-telecommunications-industry-does-not-follow-the-specifications-and-suffers-the-consequences/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A critical opinion of Nokia&#8217;s &#8220;Experimental Study of Home Gateway Characteristics&#8221;</title>
		<link>http://serendipity.ruwenzori.net/index.php/2010/09/25/a-critical-opinion-of-nokias-experimental-study-of-home-gateway-characteristics</link>
		<comments>http://serendipity.ruwenzori.net/index.php/2010/09/25/a-critical-opinion-of-nokias-experimental-study-of-home-gateway-characteristics#comments</comments>
		<pubDate>Sat, 25 Sep 2010 09:50:39 +0000</pubDate>
		<dc:creator>Jean-Marc Liotier</dc:creator>
				<category><![CDATA[Networking & telecommunications]]></category>
		<category><![CDATA[Systems]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://serendipity.ruwenzori.net/?p=826</guid>
		<description><![CDATA[If you can read French and if you are interested in networking technologies, then you must read Stephane Bortzmeyer&#8217;s blog &#8211; interesting stuff in every single article. Needless to say I&#8217;m a fan. Stéphane commented an article by Nokia people : « An Experimental Study of Home Gateway Characteristics » &#8211; it exposes the results of [...]]]></description>
			<content:encoded><![CDATA[<p>If you can read French and if you are interested in networking technologies, then you must read <a href="http://www.bortzmeyer.org/">Stephane Bortzmeyer&#8217;s blog</a> &#8211; interesting stuff in every single article. Needless to say I&#8217;m a fan.</p>
<p><a href="http://www.bortzmeyer.org/home-gateway.html">Stéphane commented an article by Nokia people</a> : « <em><a hreflang="en" href="https://fit.nokia.com/lars/papers/2010-imc-hgw-study.pdf">An Experimental Study of Home Gateway Characteristics</a></em> » &#8211; it exposes the results of networking performance tests on  34 residential Internet access <a href="http://en.wikipedia.org/wiki/Customer-premises_equipment">CPE</a>. For a condensed and more clearly illustrated version, you&#8217;ll appreciate <a href="http://www.ietf.org/proceedings/78/slides/behave-8.pdf">the slides of « An Experimental Study of Home Gateway Characteristics »</a> presented at the <a href="http://www.ietf78.nl/">IETF 78&#8242;th meeting</a>.</p>
<p>The study shows bad performance and  murky non-compliance issues on every device tested. The whole thing was not really surprising, but it still sounded rather depressing to me.</p>
<p>But my knowledge of those devices is mostly from the point of few of an user and from the point of view of an information systems project manager within various <a href="http://en.wikipedia.org/wiki/Internet_service_provider">ISP</a>. I don&#8217;t have the depth of knowledge required for a critical look at this Nokia study. So I turned to a friendly industry expert who shall remain anonymous &#8211; here is his opinion :</p>
<p style="padding-left: 30px;">[The study] isn&#8217;t  really scientific enough testing IMHO. Surely most routers aren&#8217;t high  performance due to cost reasons and most DSL users (Telco environments  don&#8217;t have more than 8 Mbit/s (24 Mbit/s is max).</p>
<p style="padding-left: 30px;">[Nokia] should check with real highend/flagshi<span class="text_exposed_show">ps  routers such as Linksys E3000. Other issues are common NAT issues or  related settings or use of the box DNS Proxy&#8217;s. Also no real testing  method explained here so useless IMHO. Our test plan has more than 500  pages with full description and failure judgment&#8230; :)</span></p>
<p><span class="text_exposed_show">So take </span>« <em><a hreflang="en" href="https://fit.nokia.com/lars/papers/2010-imc-hgw-study.pdf">An Experimental Study of Home Gateway Characteristics</a></em> » with a big grain of salt. Nevertheless, in spite of its faults I&#8217;m glad that such studies are conducted &#8211; anything that can prod the consumer market into raising its game is a good thing !</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;">
<h3 class="UIIntentionalStory_Message"><span class="UIStory_Message">Experimental study on 34 residential CPE by Nokia: <a rel="nofollow" href="http://j.mp/abqdf6" target="_blank">http://j.mp/abqdf6</a> &#8211; Bad performance and murky non-compliance all ove</span></h3>
<h3 class="UIIntentionalStory_Message"><span class="UIStory_Message">Experimental study on 34 residential CPE by Nokia: <a rel="nofollow" href="http://j.mp/abqdf6" target="_blank">http://j.mp/abqdf6</a> &#8211; Bad performance and murky non-compliance all over</span></h3>
<h3 class="UIIntentionalStory_Message"><span class="UIStory_Message">r</span></h3>
</div>
]]></content:encoded>
			<wfw:commentRss>http://serendipity.ruwenzori.net/index.php/2010/09/25/a-critical-opinion-of-nokias-experimental-study-of-home-gateway-characteristics/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Consensus on acceptable response times for man-machine interfaces</title>
		<link>http://serendipity.ruwenzori.net/index.php/2010/04/14/consensus-on-acceptable-response-times-for-man-machine-interfaces</link>
		<comments>http://serendipity.ruwenzori.net/index.php/2010/04/14/consensus-on-acceptable-response-times-for-man-machine-interfaces#comments</comments>
		<pubDate>Wed, 14 Apr 2010 10:04:36 +0000</pubDate>
		<dc:creator>Jean-Marc Liotier</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Systems]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://serendipity.ruwenzori.net/?p=759</guid>
		<description><![CDATA[A colleague asked me about acceptable response times for the graphical user interface of a web application. I was surprised to find that both the Gnome Human Interface Guidelines and the Java Look and Feel Design Guidelines provide exactly the same values and even the same text for the most part&#8230; One of them must [...]]]></description>
			<content:encoded><![CDATA[<p>A colleague asked me about acceptable response times for the graphical user interface of a web application. I was surprised to find that both <a href="http://library.gnome.org/devel/hig-book/stable/feedback-response-times.html.en">the Gnome Human Interface Guidelines</a> and the <a href="http://java.sun.com/products/jlf/at/book/Responsiveness5.html">Java Look and Feel Design Guidelines</a> provide exactly the same values and even the same text for the most part&#8230; One of them must have borrowed the other&#8217;s guidelines. I suspect that the ultimate source of their agreement is <a href="http://www.useit.com/papers/responsetime.html">Jakob Nielsen&#8217;s advice</a> :</p>
<p style="padding-left: 30px;"><strong>0.1 second</strong> is about the limit for having the user feel that the system is reacting instantaneously, meaning that no special feedback is necessary except to display the result.</p>
<p style="padding-left: 30px;"><strong>1.0 second</strong> is about the limit for the user&#8217;s flow of thought to stay uninterrupted, even though the user will notice the delay. Normally, no special feedback is necessary during delays of more than 0.1 but less than 1.0 second, but the user does lose the feeling of operating directly on the data.<strong></strong></p>
<p style="padding-left: 30px;"><strong>10 seconds</strong> is about the limit for keeping the user&#8217;s attention focused on the dialogue. For longer delays, users will want to perform other tasks while waiting for the computer to finish, so they should be given feedback indicating when the computer expects to be done. Feedback during the delay is especially important if the response time is likely to be highly variable, since users will then not know what to expect.</p>
<p>Jakob cites Miller&#8217;s &#8220;Response time in man-computer conversational transactions&#8221; &#8211; a paper that dates back to 1968. It seems like in more than forty years the consensus about acceptable response times has not moved substantially &#8211; which could be explained by the numbers being determined by human nature, independently of technology.</p>
<p>But still, I am rattled by such unquestioned consensus &#8211; the absence of dissenting voices could be interpreted as a sign of methodological complacency.</p>
]]></content:encoded>
			<wfw:commentRss>http://serendipity.ruwenzori.net/index.php/2010/04/14/consensus-on-acceptable-response-times-for-man-machine-interfaces/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>From L1 to disk : memory access timings hierarchy &#8211; and why you don&#8217;t want to hit the disk</title>
		<link>http://serendipity.ruwenzori.net/index.php/2010/04/13/from-l1-to-disk-memory-access-timings-hierarchy-and-why-you-dont-want-to-hit-the-disk</link>
		<comments>http://serendipity.ruwenzori.net/index.php/2010/04/13/from-l1-to-disk-memory-access-timings-hierarchy-and-why-you-dont-want-to-hit-the-disk#comments</comments>
		<pubDate>Tue, 13 Apr 2010 15:27:09 +0000</pubDate>
		<dc:creator>Jean-Marc Liotier</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Systems]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://serendipity.ruwenzori.net/?p=747</guid>
		<description><![CDATA[Following a link from @Bortzmeyer, I was leafing through Felix von Leitner&#8217;s &#8220;Source Code Optimization&#8221; &#8211; a presentation demonstrating how unreadable code is rarely worth the hassle considering how good at optimizing compilers have become nowadays. I have never written a single line of C or Assembler in my whole life &#8211; but I like [...]]]></description>
			<content:encoded><![CDATA[<p>Following <a href="http://identi.ca/notice/28386292">a link from @Bortzmeyer</a>, I was leafing through <a href="http://www.linux-kongress.org/2009/slides/compiler_survey_felix_von_leitner.pdf">Felix von Leitner&#8217;s &#8220;Source Code Optimization&#8221;</a> &#8211; a presentation demonstrating how unreadable code is rarely worth the hassle considering how good at optimizing compilers have become nowadays. I have never written a single line of C or Assembler in my whole life &#8211; but I like to keep an understanding of what is going on at low level so I sometimes indulge in code tourism.</p>
<p>I got the author&#8217;s point, though I must admit that the details of his demonstration flew over my head. But I found the memory access timings table particularly evocative :</p>
<table style="text-align: left; width: 100%;" border="1" cellspacing="2" cellpadding="2">
<tbody>
<tr>
<td style="text-align: center; font-weight: bold;">Access</td>
<td style="text-align: center; font-weight: bold;">Cost</td>
</tr>
<tr>
<td>Page Fault, file on IDE disk</td>
<td>1.000.000.000 cycles</td>
</tr>
<tr>
<td>Page Fault, file in buffer cache</td>
<td>10.000 cycles</td>
</tr>
<tr>
<td>Page Fault, file on ram disk</td>
<td>5.000 cycles</td>
</tr>
<tr>
<td>Page Fault, zero page</td>
<td>3.000 cycles</td>
</tr>
<tr>
<td>Main memory access</td>
<td>200 cycles (Intel says 159)</td>
</tr>
<tr>
<td>L3 cache hit</td>
<td>52 cycles (Intel says 36)</td>
</tr>
<tr>
<td>L1 cache hit</td>
<td>2 cycles</td>
</tr>
</tbody>
</table>
<p></p>
<p>Of course you know that swapping causes a huge performance hit and you have seen the benchmarks where throughput is reduced to a trickle as soon as the disk is involved. But still I find that quantifying the number of cycles wasted illustrates the point even better. Now you know <a href="http://en.wikipedia.org/wiki/Thrashing_%28computer_science%29">why programmers insist on keeping memory usage tight</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://serendipity.ruwenzori.net/index.php/2010/04/13/from-l1-to-disk-memory-access-timings-hierarchy-and-why-you-dont-want-to-hit-the-disk/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tags, labels, folders&#8230; To the end user, the difference is merely technical and should be abstracted</title>
		<link>http://serendipity.ruwenzori.net/index.php/2010/04/09/tags-labels-folders-to-the-end-user-the-difference-is-merely-technical-and-should-be-abstracted</link>
		<comments>http://serendipity.ruwenzori.net/index.php/2010/04/09/tags-labels-folders-to-the-end-user-the-difference-is-merely-technical-and-should-be-abstracted#comments</comments>
		<pubDate>Fri, 09 Apr 2010 13:41:24 +0000</pubDate>
		<dc:creator>Jean-Marc Liotier</dc:creator>
				<category><![CDATA[Email]]></category>
		<category><![CDATA[Knowledge management]]></category>
		<category><![CDATA[Systems]]></category>

		<guid isPermaLink="false">http://serendipity.ruwenzori.net/?p=721</guid>
		<description><![CDATA[In the digital world, the folder metaphor has perpetuated the single dimensional limitations of the physical world : each message is present in one and only one folder. The problem of adding more dimensions to the classification has been solved ages ago &#8211; whether you want to go hardcore with a full thesaurus or just [...]]]></description>
			<content:encoded><![CDATA[<p>In the digital world, the folder metaphor has perpetuated the single dimensional limitations of the physical world : each message is present in one and only one folder. The problem of adding more dimensions to the classification has been solved ages ago &#8211; whether you want to go hardcore with a full thesaurus or just use your little folksonomy the required technical foundation is the same : tags, labels &#8211; or whatever you want to call your multiple index keys.</p>
<p><a href="http://serendipity.ruwenzori.net/index.php/2006/01/31/breaking-out-of-single-dimension-filtering-imap-keywords">Noticing how Google has been successful with email tagging, I started exploring free implementation four years ago</a>, aiming to complement my folder hierarchy with tags. But inertia affects all, and I actually never went beyond happy experimentation. <a href="http://www.cloudave.com/link/google-gmail-finally-ends-the-folder-vs-label-war-what-next-find-the-answer-here">As Zoli Erdos puts it in his eloquent description of Google&#8217;s 2009 breakthrough in ending the tags vs. folders war</a> :</p>
<p style="padding-left: 30px;">Those who “just can’t live without folders”, mostly legacy users of Yahoo Mail, Hotmail and mostly Outlook. They are used to folders and won&#8217;t learn new concepts, don&#8217;t want to change, but are happy spending their life “organizing stuff” and even feel productive doing so.</p>
<p>Ouch &#8211; that hits a little too close to home. And even if I had gone forward with tags, that would have been pussyfooting : as Google illustrates, the distinction between tags and folders is a technical one &#8211; from a user point of view it should be abstracted. Of course <a href="http://www.joelonsoftware.com/articles/LeakyAbstractions.html">the abstraction is somewhat leaky</a> if you consider what folders mean for local storage, but in the clouds you can get away with that.</p>
<p>For cranky folder-addicted users like myself, born to the Internet with early versions of <a href="http://art-bin.com/art/or_weltypostoff.html">Eudora</a>, later <a href="http://en.wikipedia.org/wiki/Microsoft_Outlook">sucking at the  Microsoft tit</a> and nowadays a major fan <a href="http://en.wikipedia.org/wiki/Mozilla_Thunderbird">Mozilla Thunderbird</a>, there is definitely a user interface habit involved &#8211; and one that is hard to break after all those years. It is not about the graphics &#8211; I use <a href="http://en.wikipedia.org/wiki/Mutt_%28e-mail_client%29">Mutt</a> regularly; it is about the warm fuzzy feeling of believing that the folder is a direct and unabstracted representation of something tangible on a file system.</p>
<p>Software objects are all abstractions anyway but, with time, the familiar abstraction becomes something that feels tangible. This is why, while I acknowledge the need to get the tagging goodness, I still have desire toward the good old folder look and feel with features such as drag-n-drop and hierarchies. Google seems to know that audience : <a href="http://www.enterpriseirregulars.com/16118/now-tell-the-difference-between-folders-and-labels/">all those features are now part of Gmail. Now tell the difference between folders and labels</a> !</p>
<p>To make a smooth transition, I want Mozilla Thunderbird to <a href="http://www.profarius.com/content/moving-personal-mail-server-gmail">display tags as folders. It looks like it is possible using Gmail with Claws through IMAP</a>. I have yet to learn if I can do that on my own systems using <a href="http://www.courier-mta.org/imap/">Courier</a> or <a href="http://www.dovecot.org/">Dovecot</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://serendipity.ruwenzori.net/index.php/2010/04/09/tags-labels-folders-to-the-end-user-the-difference-is-merely-technical-and-should-be-abstracted/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Five months with Android on the HTC Magic &#8211; I&#8217;m barely convinced</title>
		<link>http://serendipity.ruwenzori.net/index.php/2009/10/19/five-months-with-android-on-the-htc-magic-im-barely-convinced</link>
		<comments>http://serendipity.ruwenzori.net/index.php/2009/10/19/five-months-with-android-on-the-htc-magic-im-barely-convinced#comments</comments>
		<pubDate>Mon, 19 Oct 2009 00:18:37 +0000</pubDate>
		<dc:creator>Jean-Marc Liotier</dc:creator>
				<category><![CDATA[Consumption]]></category>
		<category><![CDATA[Free software]]></category>
		<category><![CDATA[Knowledge management]]></category>
		<category><![CDATA[Mobile computing]]></category>
		<category><![CDATA[Networking & telecommunications]]></category>
		<category><![CDATA[Systems]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://serendipity.ruwenzori.net/?p=543</guid>
		<description><![CDATA[Five months have elapsed since that first week-end when my encounter with Android was a severe case of culture shock. With significant daily experience of the device, I can now form a more mature judgement of its capabilities and its potential &#8211; of course from my own highly subjective point of view. I still hate [...]]]></description>
			<content:encoded><![CDATA[<p>Five months have elapsed since <a href="http://http://serendipity.ruwenzori.net/index.php/2009/06/17/first-week-end-with-android-frustration-and-culture-shock">that first week-end when my encounter with Android was a severe case of culture shock</a>. With significant daily experience of the device, I can now form a more mature judgement of its capabilities and its potential &#8211; of course from my own highly subjective point of view.</p>
<p>I still hate having to use Google Calendar and Google Contacts for synchronization.  I hope that <a href="http://en.wikipedia.org/wiki/SyncML">SyncML</a> synchronization will appear in the future, make Android a better desktop citizen and provide more choice of end points. Meanwhile I use Google. With that out of the way, let&#8217;s move on to my impressions of Android itself.</p>
<p>I am grateful for features such as a decent web browser on a mobile device, for a working albeit half baked packaging and distribution system, and for Google Maps which I consider both a superlative application in its own right and the current killer albeit proprietary infrastructure for location enabled applications. But the rigidly simple interface that forces behaviours upon its user feels like a straitjacket : the overbearing feeling when using Android is that its designers have decided that simplicity is to be preserved at all costs regardless of what the user prefers.</p>
<p>Why can&#8217;t I select a smaller font for my list items ? Would a parameter somewhere in a customization menu add too much complication ? Why won&#8217;t you show me the raw configuration data ? Is it absolutely necessary to arbitrarily limit the number of virtual desktops to three ? From the point of a user who is just getting acquainted with such a powerful platform, those are puzzling questions.</p>
<p>I still don&#8217;t like the Android &#8216;s logic, and moreover I still don&#8217;t quite understand it. Of course I manage to use that system, but after five month of daily use it still does not feel natural. Maybe it is just a skin-deep issue or maybe I am just not the target audience &#8211; but some features are definitely backwards &#8211; package management for example. For starters, the &#8220;My Downloads&#8221; list is not ordered alphabetically nor in any apparently meaningful order. Then for each upgradeable package, one must first browse to the package, then manually trigger the upgrade package, then acknowledge system privileges the upgraded package and finally clear the download notification and the update notification. Is this a joke ? This almost matches the tediousness of upgrading Windows software &#8211; an impressive feat considering that the foundations of Android package management seem serious enough. Where is my <a href="http://en.wikipedia.org/wiki/Advanced_Packaging_Tool">APT</a> ?</p>
<p>Like any new user on a prosperous enough system, I am lost in choices &#8211; but that is an embarrassment of riches. Nevertheless, I wonder why basics such as a task manager are not installed by default. In classic Unix spirit, even the most basic system utilities are independent applications. But what is bearable and even satisfying on a system with a decent shell and package management with dependencies becomes torture when installing a package is so clumsy and upgrading it so tedious.</p>
<p>Tediousness in package management in particular and user interaction in general makes taming the beast an experience in frustration. When installing a bunch of competing applications and testing them takes time and effort. Experimenting is not the pleasure it normally is on a Linux system. The lack of decent text entry compounds the feeling. Clumsy text selection makes cut and paste a significant effort &#8211; something Palm did make quick, easy and painless more than ten years ago. Not implementing pointer-driven selection &#8211; what were the developers thinking ?</p>
<p>PIM integration has not progressed much. For a given contact, there is no way to look at a communications log that spans mail, SMS and telephony: each of them is its own separate universe. There is no way to have a list of meetings with a given contact or at given location.</p>
<p>But there basic functionality has been omitted too. For example when adding a phone number to an existing contact, search is disabled &#8211; you have to scroll all the way to the contact. There is no way to search the SMS archive and SMS to multiple recipients is an exercise left to applications.</p>
<p>Palm OS may have been unstable, incapable of contemporary operating system features, offering only basic functionality and generally way past its shelf date. But in the mind of users, it remains the benchmark against which all PIM systems are judged. And to this day I still don&#8217;t see anything beating Palm OS on its home turf of  PIM core features and basic usability.</p>
<p><a href="http://en.wikipedia.org/wiki/Palm_OS">Palm OS</a> was a poster child for responsiveness, but on the Android everything takes time &#8211; even after I have identified and killed the various errant applications that make it even slower. Actually, the system is very fast and capable of feats such as full-motion video that were far beyond the reach of the Palm OS. But the interaction is spoilt by gratuitous use of animations for everything. Animations are useful for graphically hinting the novice user about what is going on &#8211; but then hey are only a drag. But please let me disable animations as I do on every desktop I use !</p>
<p>The choice of a virtual keyboard is my own mistake and I am now aware that I need a physical keyboard. After five months, I can now use the virtual keyboard with enough speed and precision for comfortable entry of a couple of sentences. But beyond that it is tiring and feels too clumsy for any meaningful work. This is a major problem for me &#8211; text entry is my daily bread and butter. I long for the <a href="http://en.wikipedia.org/wiki/Palm_Treo">Treo</a>&#8216;s keyboard or even the one on the <a href="http://en.wikipedia.org/wiki/Nokia_E71">Nokia E71</a> &#8211; they offered a great compromise of typing speed and compacity. And no multitouch on the soft keyboard means no keyboard shortcuts which renders many console applications unusable &#8211; sorry <a href="http://en.wikipedia.org/wiki/Emacs">Emacs</a> users.</p>
<p>The applications offering is still young and I cannot blame it for needing time to expand and mature. I also still need to familiarize myself with Android culture an develop the right habits to find my way instinctively and be more productive. After five months, we are getting there &#8211; one handed navigation has been done right. But I still believe that a large part of the user interface conventions used on the Android does not match the expectations for general computing.</p>
<p>It seems like everything has been meticulously designed to bury under a thick layer of <a href="http://en.wikipedia.org/wiki/Dalvik_virtual_machine">Dalvik</a> and Google plaster anything that could remind anyone of Unix. It is very frustrating to know that there is a Linux kernel under all that, and yet to suffer wading knee-deep in the marshes of toyland. The more I use Android an study it, the more I feel that Linux is a mere hardware abstraction layer and the <a href="http://en.wikipedia.org/wiki/POSIX">POSIX</a> world a distant memory. This is not the droid I&#8217;m looking for.</p>
]]></content:encoded>
			<wfw:commentRss>http://serendipity.ruwenzori.net/index.php/2009/10/19/five-months-with-android-on-the-htc-magic-im-barely-convinced/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>laconica2IRC.pl &#8211; Forward your dents to an IRC channel</title>
		<link>http://serendipity.ruwenzori.net/index.php/2009/05/18/laconica2ircpl-forward-your-dents-to-an-irc-channel</link>
		<comments>http://serendipity.ruwenzori.net/index.php/2009/05/18/laconica2ircpl-forward-your-dents-to-an-irc-channel#comments</comments>
		<pubDate>Mon, 18 May 2009 11:15:57 +0000</pubDate>
		<dc:creator>Jean-Marc Liotier</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Free software]]></category>
		<category><![CDATA[Knowledge management]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[Social networking]]></category>
		<category><![CDATA[Systems]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://serendipity.ruwenzori.net/?p=319</guid>
		<description><![CDATA[If you want to skip the making-of story, you can go straight to the laconica2IRC.pl script download. Or in case anyone is interested, here is the why and how&#8230; Some of my best friends are die-hard IRC users that make a point of not touching anything remotely looking like a social networking web site, especially [...]]]></description>
			<content:encoded><![CDATA[<p>If you want to skip the making-of story, you can go straight to the <a href="http://www.ruwenzori.net/code/laconica2IRC/">laconica2IRC.pl</a> script download. Or in case anyone is interested, here is the why and how&#8230;</p>
<p>Some of my best friends are die-hard <a href="http://en.wikipedia.org/wiki/Internet_Relay_Chat">IRC</a> users that make a point of not touching anything remotely looking like a social networking web site, especially if anyone has ever hinted that it could be tagged as &#8220;<a href="http://en.wikipedia.org/wiki/Web_2.0">Web 2.0</a>&#8221; (whatever that means). As much as I enjoy hanging out with them in our favorite IRC channel, conversations there are sporadic. Most of the time, that club house increasingly looks like an asynchronous forum for short updates posted infrequently on a synchronous medium&#8230; Did I just describe microblogging ? Indeed it is a very similar use case, if not the same. And I don&#8217;t want to choose between talking to my close accomplices and opening up to the wider world. So I still want to hang out in IRC for a nice chat from time to time, but while <a href="http://identi.ca/liotier/all">I&#8217;m out broadcasting dents</a> I want my paranoid autistic friends to get them too. To satisfy that need, I need to have my IRC voice say my dents on the old boys channel.</p>
<p>The data source could be an <a href="http://openmicroblogging.org/">OpenMicroblogging</a> endpoint, but being lazy I found a far easier solution : use <a href="http://laconi.ca/">Laconi.ca</a>&#8216;s <a href="http://en.wikipedia.org/wiki/Web_feed">Web feeds</a>. Such solution looked easier because there are already heaps of code out there for consuming Web feeds, and it was highly likely that I would find one I could bend into doing my bidding.</p>
<p>To talk on IRC, I had previously had the opportunity to peruse the <a href="http://search.cpan.org/dist/Net-IRC/IRC.pm">Net::IRC library</a> with great satisfaction &#8211; so it was an obvious choice. In addition, in spite of being quite incompetent with it, I appreciate Perl and I was looking for an excuse to hack something with it.</p>
<p>With knowledge of the input, the output and the technology I wanted to use, I could start implementing. Being lazy and incompetent, I of course turned to Google to provide me with reusable code that would spare me building the script from the ground up. My laziness was of course quick to be rewarded as I found <a href="http://afs.eecs.harvard.edu/user/goodell/etc/rssbot.pl">rssbot.pl by Peter Baudis</a> in the <a href="http://en.wikipedia.org/wiki/Public_domain">public domain</a>. That script fetches a RSS feed and says the new items in an IRC channel. It was very close to what I wanted to do, and it had no exotic dependancies &#8211; only <a href="http://search.cpan.org/dist/Net-IRC/IRC.pm">Net::IRC library</a> (alias <a href="http://packages.debian.org/search?keywords=libnet-irc-perl">libnet-irc-perl in Debian</a>) and <a href="http://perl-rss.sourceforge.net/">XML::RSS</a> (alias <a href="http://packages.debian.org/search?keywords=libxml-rss-perl">libxml-rss-perl in Debian</a>).</p>
<p>So I set upon hacking this script into the shape I wanted. I added IRC password authentication (courtesy of Net::IRC), I commented out a string sanitation loop which I did not understand and whose presence cause the script to malfunction, I pruned out the Laconi.ca user name and extraneous punctuation to have my IRC user &#8220;say&#8221; <a href="http://identi.ca/liotier/all">my own Identi.ca entries</a> just as if I was typing them myself, and after a few months of testing I finally added an option for @replies filtering so that my IRC buddies are not annoyed by the noise of remote conversations.</p>
<p>I wanted my own IRC user &#8220;say&#8221; the output, and that part was very easy because I use the <a href="http://bip.t1r.net/">Bip an IRC proxy</a> which supports multiple clients on one IRC server connection. This script was just going to be another client, and that is why I added password authentication. <a href="http://packages.debian.org/sid/bip">Bip is available in Debian</a> and is very handy : I usually have an IRC client at home, one in the office, occasionally a <a href="http://cgiirc.org/">CGI-IRC</a>, rarely a mobile client and now this script &#8211; and to the dwellers of my favorite IRC channel there is no way to tell which one is talking. And whichever client I choose, I never missing anything thanks to logging and replay on login. <a href="http://en.wikipedia.org/wiki/GNU_Screen">Screen</a> with a command-line IRC client provides part of this functionality, but the zero maintainance Bip does so much more and is so reliable that one has to wonder if my friends cling to <a href="http://irssi.org/">Irssi</a> and Screen out of sheer traditionalism.</p>
<p>All that remained to do was to launch the script in a sane way. To control this sort of simple and permanently executed piece of code and keep it from misbehaving, <a href="http://www.libslack.org/daemon/">Daemon</a> is a good way. <a href="http://packages.debian.org/unstable/utils/daemon">Available in Debian, Daemon</a> proved its worth when the RSS file went missing during the Identi.ca upgrade and the script crashed everytime it tried to access it for lack of exception catching. Had I simply put it in an infinite loop, it would have hogged significant ressources just by running in circles like a headless chicken. Daemon not only restarted it after each crash, but also killed it after a set number of retries in a set duration &#8211; thus preventing any interference with the rest of what runs on our server. Here is the Daemon launch command that I have used :</p>
<p>#!/bin/bash<br />
path=/usr/local/bin/laconica2IRC<br />
daemon -a 16 -L 16 -M 3 -D $path -N -n laconica2IRC_JML -r -O $path/laconica2IRC.log -o $path/laconica2IRC.log $path/laconica2IRC.pl</p>
<p>And that&#8217;s it&#8230; Less cut and paste from <a href="http://identi.ca/">Identi.ca</a> to my favorite IRC channel, and my IRC friends who have not yet adopted microblogging don&#8217;t feel left out of my updates anymore. And I can still jump into IRC from time to time for a real time chat. I have the best of both worlds &#8211; what more could I ask ?</p>
<p>Sounds good to you ? Grab the <a href="http://www.ruwenzori.net/code/laconica2IRC/">laconica2IRC.pl</a> script !</p>
]]></content:encoded>
			<wfw:commentRss>http://serendipity.ruwenzori.net/index.php/2009/05/18/laconica2ircpl-forward-your-dents-to-an-irc-channel/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft Windows disgraceful public failure mode</title>
		<link>http://serendipity.ruwenzori.net/index.php/2008/06/09/microsoft-windows-disgraceful-public-failure-mode</link>
		<comments>http://serendipity.ruwenzori.net/index.php/2008/06/09/microsoft-windows-disgraceful-public-failure-mode#comments</comments>
		<pubDate>Mon, 09 Jun 2008 12:35:28 +0000</pubDate>
		<dc:creator>Jean-Marc Liotier</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Systems]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://serendipity.ruwenzori.net/?p=172</guid>
		<description><![CDATA[Who these days has not witnessed the embarrassing failure modes of Microsoft Windows ? Blue screens of all hues and an assortment of badged dialog boxes make each crash into a very public display of incompetence. I will not argue that Windows is more prone to failure than other operating systems &#8211; that potential war [...]]]></description>
			<content:encoded><![CDATA[<p>Who these days has not witnessed the <a href="http://www.flickr.com/search/?q=bsod">embarrassing failure modes of Microsoft Windows</a> ? Blue screens of all hues and an <a href="http://www.flickr.com/search/?q=atm+crash&amp;m=text">assortment of badged dialog boxes</a> make each crash into a very public display of incompetence.</p>
<p>I will not argue that Windows is more prone to failure than other operating systems &#8211; that potential war of religion is best left alone. What I am arguing is that failure modes should be graceful, or at least more discreet.</p>
<p>A black screen is neutral : the service is not delivered, but at least the most trafficked billboard in town is not hammering everyone with a random pseudo-technical message that actually means &#8220;my owners are clueless morons&#8221;.</p>
<p>Even better than a black screen : a low level routine that in case of system failure may display something harmless. Anything but an error message.</p>
<p>With so many information screens in the transportation industry, automated teller machines of all sorts and a growing number of advertising screens on roadsides, a properly and specifically configured system is necessary. What about &#8220;Microsoft Windows &#8211; Public Display Edition&#8221; ? Of course, users of <a href="http://en.wikipedia.org/wiki/Free_software">Free Software</a> don&#8217;t have to wait for a stubborn editor to understand the problems its customers are facing.</p>
<p>When the stakes are high enough, the costs of not managing risk through g<a href="http://en.wikipedia.org/wiki/Fault-tolerant_system">raceful degradation</a> cannot be ignored. But let&#8217;s not underestimate the power of user inertia&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://serendipity.ruwenzori.net/index.php/2008/06/09/microsoft-windows-disgraceful-public-failure-mode/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Can Xen create a level ground for SSI clustering ?</title>
		<link>http://serendipity.ruwenzori.net/index.php/2008/05/04/can-xen-create-a-level-ground-for-ssi-clustering</link>
		<comments>http://serendipity.ruwenzori.net/index.php/2008/05/04/can-xen-create-a-level-ground-for-ssi-clustering#comments</comments>
		<pubDate>Sun, 04 May 2008 14:23:46 +0000</pubDate>
		<dc:creator>Jean-Marc Liotier</dc:creator>
				<category><![CDATA[Brain dump]]></category>
		<category><![CDATA[Systems]]></category>

		<guid isPermaLink="false">http://serendipity.ruwenzori.net/?p=158</guid>
		<description><![CDATA[The openMosix Project has officially closed as of March 1st 2008. This brings nostalgia of the toy OpenMosix cluster I once had running for a few years, assembled using the ailing collection of dusty hardware heating my apartment and infrequently put to productive use for large batch jobs. Soon I found that a single less [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://openmosix.sourceforge.net/">The openMosix Project</a> has officially closed as of March 1st 2008. This brings nostalgia of the toy <a href="http://en.wikipedia.org/wiki/OpenMosix">OpenMosix</a> cluster I once had running for a few years, assembled using the ailing collection of dusty hardware heating my apartment and infrequently put to productive use for large batch jobs. Soon I found that a single less ancient machine could perform about as fast if not faster for less electricity, and batch jobs being what they are I could  just as well let them run during my sleep. But in an age when I had more time than money (I now have neither&#8230;) and when compression jobs were measured in hours, <a href="http://en.wikipedia.org/wiki/OpenMosix">OpenMosix</a> was a fun and useful patch for which I foresaw a bright future.</p>
<p>A few years later the efficient scheduler in recent Linux releases lets me load my workstation to high values with barely any consequence for interactive tasks, so I don&#8217;t really feel like I&#8217;m starved for processing power. But I still spend too much time staring at progress bars when editing photos, so more available CPU could definitely speed up my workflow. This is why I look longingly at the servers in the corridor who spend most of their lives at fractional loads while the workstation is struggling. Manual load balancing by executing heavy tasks on remote hosts is a bit of a chore, so I go browsing for <a href="http://en.wikipedia.org/wiki/Single-system_image">single-system image clustering</a> news, wondering why easily pooling local system resources is not yet a standard feature of modern operating systems.</p>
<p>One of the major obstacles to the generalization of <a href="http://en.wikipedia.org/wiki/Single-system_image">SSI clustering</a> outside of dedicated systems is that software such as <a href="http://en.wikipedia.org/wiki/OpenMosix">OpenMosix</a> or <a href="http://en.wikipedia.org/wiki/Kerrighed">Kerrighed</a> require an homogeneous environment : you can&#8217;t just mix whatever hosts happen to live on your LAN. For most users, homogenizing their systems using one Linux kernel version, let alone one type of operating system is not an option.</p>
<p>But nowadays, <a href="http://en.wikipedia.org/wiki/Virtualization">virtualization</a> systems such as <a href="http://en.wikipedia.org/wiki/Xen">Xen</a> are common enough that they may represent a viable path to homogenization. So I envision using it to extend my workstation to the neighboring hosts. I would run the workstation as a normal &#8220;on the metal&#8221; host, but on each of the hosts I want to assist the workstation I would run a <a href="http://en.wikipedia.org/wiki/Xen">Xen</a> guest domain running a bare bones operating system compatible with taking part in a single system image with the workstation. Adding capacity to the cluster would be as simple as copying the Xen guest domain image to an additional host and running it as <em>nice</em> as desired, with no impact on the host apart from the CPU load and allocated memory.</p>
<p>This approach looks sane to me on paper, but strangely I can&#8217;t find much about it on the web. Is there an hidden caveat ? Did I make an obviously wrong assumption ? Tell me if you have heard of other users extending their workstation with SSI using Xen guest domains on random local hosts.<a href="http://en.wikipedia.org/wiki/Kerrighed"> </a>Meanwhile, since <a href="http://en.wikipedia.org/wiki/OpenMosix">OpenMosix</a> is now unsupported, I guess I&#8217;ll have to dive into <a href="http://en.wikipedia.org/wiki/Kerrighed">Kerrighed</a>&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://serendipity.ruwenzori.net/index.php/2008/05/04/can-xen-create-a-level-ground-for-ssi-clustering/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Radeon HD 2600 XT : &#8220;setup did not recognize compatible drivers&#8221;</title>
		<link>http://serendipity.ruwenzori.net/index.php/2008/04/13/radeon-hd-2600-xt-setup-did-not-recognize-compatible-drivers</link>
		<comments>http://serendipity.ruwenzori.net/index.php/2008/04/13/radeon-hd-2600-xt-setup-did-not-recognize-compatible-drivers#comments</comments>
		<pubDate>Sun, 13 Apr 2008 13:30:17 +0000</pubDate>
		<dc:creator>Jean-Marc Liotier</dc:creator>
				<category><![CDATA[Systems]]></category>

		<guid isPermaLink="false">http://serendipity.ruwenzori.net/index.php/2008/04/13/radeon-hd-2600-xt-setup-did-not-recognize-compatible-drivers</guid>
		<description><![CDATA[Fan failure is a common life-ending event for electronic hardware, and so did I send my three years old HIS Radeon 9800 Pro IceQ to the retirement drawer when overheat crashes helped me discover it was not pushing much air anymore since the fan motor seized. This was an excellent pretext to acquire a faster [...]]]></description>
			<content:encoded><![CDATA[<p>Fan failure is a common life-ending event for electronic hardware, and so did I send my three years old <a href="http://www.digit-life.com/articles2/radeon/his-1.html">HIS Radeon 9800 Pro IceQ</a> to the retirement drawer when overheat crashes helped me discover it was not pushing much air anymore since the fan motor seized.</p>
<p>This was an excellent pretext to acquire a faster graphical adapter. I chose a <a href="http://images.dailytech.com/nimage/4968_large_HD2600_AGP.jpg">Sapphire HD 2600 XT AGP</a> 512 DDR3 (reference 100229L) because it is currently an excellent performance for money at €85, and also because that is one of the few remaining choices for upgrading my aging <a href="http://en.wikipedia.org/wiki/Accelerated_Graphics_Port">AGP</a> system significantly. It is such a rarity that I can&#8217;t even find a decent review to link to and the picture shows the 256 MB version which nevertheless looks exactly the same.</p>
<p>With Linux, all is mostly well : the <a href="http://www.radeonhd.org/">RadeonHD</a> driver provided me with the basic functionality I need, and I was hopeful it would make me forget the lacking <a href="http://www.x.org/">Xorg</a> 3D  support with my former card. But alas for now <a href="http://www.radeonhd.org/">RadeonHD</a> does not support 3D for graphic adapters with a <a href="http://en.wikipedia.org/wiki/PCI_Express">PCIE</a> to <a href="http://en.wikipedia.org/wiki/Accelerated_Graphics_Port">AGP</a> bridge &#8211; and that includes the <a href="http://images.dailytech.com/nimage/4968_large_HD2600_AGP.jpg">Sapphire HD 2600 XT AGP</a>. Users are <a href="http://www.phoronix.com/forums/showthread.php?t=7350">ranting about the lack support for ATI HD 2600 AGP support</a> so at least I am not the only one. In that conversation, <a href="http://www.phoronix.com/forums/showpost.php?p=31309&amp;postcount=164">someone with apparent insider information noted that &#8220;Linux support for AGP HD2xxx cards has not yet been released, but is being worked on&#8221;</a>. So maybe I&#8217;ll have Linux 3D some day&#8230;</p>
<p>I then executed <a href="http://ati.amd.com/support/driver.html">ATI Catalyst installer</a> to upgrade my dusty Windows XP drivers in case we manage to throw a LAN party for the first time in months since we all let family and professional duties creep on our schedule, I was faced with this message : &#8220;setup did not recognize compatible drivers&#8221;. And the installation process would abort.</p>
<p>The <a href="http://en.wikipedia.org/wiki/Radeon_R600#Windows">Wikipedia entry for the Radeon R600 series mentions this issue</a> :</p>
<blockquote><p>Note that Catalyst drivers 7.10, 7.11 and 7.12 do not yet support the AGP versions of Radeon HD 2000 series cards with RIALTO bridge. Installing Catalyst drivers 7.10, 7.11 or 7.12 on those cards will yield the following error message: &#8220;setup did not find a driver compatible with your current hardware or operating system.&#8221; The cards, which are yet to be supported, with their PCI vendor ID are listed below:<sup id="cite_ref-45" class="reference"><a href="http://en.wikipedia.org/wiki/Radeon_R600#cite_note-45">[46]</a></sup></p></blockquote>
<blockquote>
<table class="wikitable" style="text-align: center" border="0">
<tbody>
<tr>
<th>GPU core</th>
<th>Product</th>
<th>PCI device ID</th>
</tr>
<tr>
<td>RV610</td>
<td>Radeon HD 2400 Pro</td>
<td>94C4</td>
</tr>
<tr>
<td>RV630</td>
<td>Radeon HD 2600 Pro</td>
<td>9587</td>
</tr>
<tr>
<td>RV630</td>
<td align="left">Radeon HD 2600 XT</td>
<td>9586</td>
</tr>
</tbody>
</table>
</blockquote>
<p>Niiice ! ATI lets manufacturers produce hardware it does not provide drivers for&#8230; At least this teaches me that they can even do worse than their proprietary binary drivers.</p>
<p>The solution is to head to <a href="http://www.sapphiretech.com/uk/support/drivers.php">Sapphire&#8217;s archive of old drivers</a> which contains the 10th March 2008 release of the &#8220;<a href="http://www.sapphiretech.com/en/driverfiles/429.exe">Hotfix Driver for AGP version of ATI RADEON HD 2400Pro/2600Pro/2600XT/HD3850 Windows XP(32-bit)</a>&#8221; which contains the old AGP support I needed.</p>
<p>On installation, the system complains about that driver not being &#8220;Windows certified&#8221;. The lack of that fairy dust does not hinder normal operation the slightest bit, but it does hint that this driver was rushed as a stop-gap.</p>
<p>I was competent enough to sort it out, but this is the sort of problem I would expect from cutting edge hardware, not from a mass market product designed to appeal to the value-for-money segment which is less technically aware than the free spending enthusiast segment. I can imagine many better ways for ATI to show respect toward its users.</p>
]]></content:encoded>
			<wfw:commentRss>http://serendipity.ruwenzori.net/index.php/2008/04/13/radeon-hd-2600-xt-setup-did-not-recognize-compatible-drivers/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Free GPL and BSD licensed charts and graphs generator libraries</title>
		<link>http://serendipity.ruwenzori.net/index.php/2007/10/19/free-gpl-and-bsd-licensed-charts-and-graphs-generator-libraries</link>
		<comments>http://serendipity.ruwenzori.net/index.php/2007/10/19/free-gpl-and-bsd-licensed-charts-and-graphs-generator-libraries#comments</comments>
		<pubDate>Fri, 19 Oct 2007 09:12:24 +0000</pubDate>
		<dc:creator>Jean-Marc Liotier</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Systems]]></category>

		<guid isPermaLink="false">http://serendipity.ruwenzori.net/index.php/2007/10/19/free-gpl-and-bsd-licensed-charts-and-graphs-generator-libraries</guid>
		<description><![CDATA[PHP : Sparkline is a PHP library that produces Edward Tufte inspired &#8220;intense, simple, wordlike graphics&#8221;. I like the way sparklines spruce up text without interrupting its flow. Libchart is a simple PHP charting library that reminds me of the core functionality of the Jpgraph. Simple to deploy and does the basics well. Jpgraph can [...]]]></description>
			<content:encoded><![CDATA[<p> PHP :</p>
<ul>
<li><a href="http://sparkline.org/">Sparkline</a> is a PHP library that produces <a href="http://www.edwardtufte.com/">Edward Tufte</a> inspired &#8220;intense, simple, wordlike graphics&#8221;. I like the way sparklines spruce up text without interrupting its flow.</li>
<li><a href="http://naku.dohcrew.com/libchart/pages/introduction/">Libchart</a> is a simple PHP charting library that reminds me of the core functionality of the <a href="http://www.aditus.nu/jpgraph/">Jpgraph</a>. Simple to deploy and does the basics well.</li>
<li><a href="http://www.aditus.nu/jpgraph/">Jpgraph</a> can be used to create numerous types of graphs either on-line or written to a file. The range of functionality is very impressive and new features get added all the time. But basic use remains simple. <a href="http://www.aditus.nu/jpgraph/">Jpgraph</a> is used by many Free software projects such as <a href="http://www.mantisbt.org/">Mantis</a>.</li>
<li><a href="http://pear.veggerby.dk/">PEAR::Image_Graph</a> was formerly known as GraPHPite. It supports a good choice of graph types, five types of data sources and many output formats.</li>
<li><a href="http://www.artichow.org/">Artichow</a> is yet another small PHP charting library. Functionality is limited but it does look clean. The downside is that everything about it is in French&#8230; But that may be an upside if you are a French speaker !</li>
</ul>
<p>Command-line and CGI :</p>
<ul>
<li><a href="http://ploticus.sourceforge.net/doc/welcome.html">Ploticus</a> provides a C and Python API, and a Perl command line that can be called from CGI. It is a mature solution that is no longer on the cutting edge but still satisfy many users.</li>
</ul>
<p>DHTML and Javascript :</p>
<ul>
<li><a href="http://simile.mit.edu/timeplot/">Timeplot</a> is a DHTML-based AJAXy widget for plotting time series and overlay        time-based events over them (with the same data formats that <a href="http://simile.mit.edu/timeline/">Timeline</a> supports). It has limited functionnality, but what it does looks very good and easy to integrate.</li>
<li><a href="http://www.liquidx.net/plotkit/">Plotkit</a> is aimed at web    applications that require plotting series of data in modern web    browsers. It requires <a href="http://mochikit.com/">MochiKit</a> and supports HTML Canvas and SVG, which makes it a cutting edge way to render graphics. It supports graphing from a dynamic table.</li>
<li><a href="http://solutoire.com/plotr/">Plotr</a> is a fork of <a href="http://www.liquidx.net/plotkit/">Plotkit</a> with no need for MochiKit. The result is an incredibly lightweight charting framework : only 12 KB !</li>
</ul>
<p>Multiplatform :</p>
<ul>
<li><a href="http://timepedia.org/ChronoscopeHome.html">Chronoscope</a> aims  	to bring something like the experience of Google Maps or Google Earth to 	time series data. It is quite flexible as it supports <a href="http://timepedia.org/ChronoscopeAuthoring.html">three authoring models</a> : <a href="http://code.google.com/webtoolkit/">GWT</a> Widget using Java, Javascript widget, pure HTML+CSS using microformats. In addition it is capable of <a href="http://timepedia.org/ChronoscopeLarge.htm">smart handling of large datasets, even on the client side</a>.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://serendipity.ruwenzori.net/index.php/2007/10/19/free-gpl-and-bsd-licensed-charts-and-graphs-generator-libraries/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>30 useful free sotfware packages to make a default Microsoft Windows workstation setup more functional</title>
		<link>http://serendipity.ruwenzori.net/index.php/2007/10/17/30-useful-free-sotfware-packages-to-make-a-default-microsoft-windows-workstation-setup-more-functional</link>
		<comments>http://serendipity.ruwenzori.net/index.php/2007/10/17/30-useful-free-sotfware-packages-to-make-a-default-microsoft-windows-workstation-setup-more-functional#comments</comments>
		<pubDate>Wed, 17 Oct 2007 10:49:39 +0000</pubDate>
		<dc:creator>Jean-Marc Liotier</dc:creator>
				<category><![CDATA[Systems]]></category>

		<guid isPermaLink="false">http://serendipity.ruwenzori.net/index.php/2007/10/17/30-useful-free-sotfware-packages-to-make-a-default-microsoft-windows-workstation-setup-more-functional</guid>
		<description><![CDATA[A new job generally mean a new computer. In most old big companies, a computer is still synonymous with having to suffer using Microsoft Windows. But despair not : a good selection of additional software will make Windows more functional and your workstation experience more bearable. Here is a list of the ones I setup [...]]]></description>
			<content:encoded><![CDATA[<p>A new job generally mean a new computer. In most old big companies, a computer is still synonymous with having to suffer using Microsoft Windows. But despair not : a good selection of additional software will make Windows more functional and your workstation experience more bearable.</p>
<p>Here is a list of the ones I setup most of the time. It covers most of the indispensable everyday utilities :</p>
<p>- <a href="http://www.jxplorer.org/">Jxplorer</a> LDAP client<br />
- <a href="http://filezilla-project.org/">Filezilla</a> FTP client<br />
- <a href="http://www.xchat.org/">Xchat</a> IRC client<br />
- <a href="http://notepad-plus.sourceforge.net/">Notepad++</a> text editor<br />
- <a href="http://psi-im.org/">Psi</a> Jabber client<br />
- <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">Putty</a> SSH client<br />
- <a href="http://winscp.net/">WinSCP</a> SCP client<br />
- <a href="http://www.irfanview.com/">Irfanview</a> image viewer<br />
- <a href="http://www.palm.com/us/software/desktop/">PalmOne Palm Desktop</a><br />
- <a href="http://virt-dimension.sourceforge.net/">Virtual Dimension</a> virtual desktop<br />
- <a href="http://winmerge.org/">Winmerge</a> diff and merge utility<br />
- <a href="http://www.7-zip.org/">7zip</a> archive manager<br />
- <a href="http://en.www.mozilla.com/en/firefox/">Mozilla Firefox</a> Web browser<br />
- <a href="http://www.vmware.com/products/player/">VMware player</a><br />
- <a href="http://www.foxitsoftware.com/pdf/rd_intro.php">Foxit</a> PDF reader<br />
- <a href="http://tortoisesvn.tigris.org/">Tortoise</a> SVN client<br />
- <a href="http://en.www.mozilla.com/en/thunderbird/">Thunderbird</a> mail client<br />
- <a href="http://kompozer.net/">Kompozer</a> HTML editor<br />
- <a href="http://www.cis.upenn.edu/~bcpierce/unison/">Unison</a> file synchronization tool<br />
- <a href="http://www.lavasoftusa.com/products/ad_aware_free.php">AdAware</a> system cleanser<br />
- <a href="http://www.gimp.org/windows/">Gimp</a> image editor<br />
- <a href="http://www.openoffice.org/">Openoffice</a> suite<br />
- <a href="http://www.gpg4win.org/">GPG4Win</a><br />
- <a href="http://tora.sourceforge.net/">Tora</a> Oracle SQL client</p>
<p>Of course that will not get you anywhere near as far as a half decent setup of <a href="http://www.ubuntu.com/">Ubuntu</a> or <a href="http://www.debian.org/">Debian</a>, and once you will have hunted down, downloaded and installed each of those independant packages with no centralized package management you will have a much better understanding of what <a href="http://en.wikipedia.org/wiki/Advanced_Packaging_Tool">super cow powers</a> are all about. But at least it is a start and you can quite comfortably survive with that kit.</p>
<p>As a bonus, here are the few useful <a href="http://en.www.mozilla.com/en/thunderbird/">Thunderbird</a> that I use all the time :</p>
<p>- <a href="https://addons.mozilla.org/en-US/thunderbird/addon/556">Attachment Extractor</a><br />
- <a href="https://addons.mozilla.org/thunderbird/addon/1489">Headers Toggle</a><br />
- <a href="https://addons.mozilla.org/thunderbird/addon/2220">Rewrap Button</a><br />
- <a href="https://addons.mozilla.org/firefox/addon/956">Remove Duplicate Messages</a><br />
- <a href="http://enigmail.mozdev.org/">Enigmail</a></p>
]]></content:encoded>
			<wfw:commentRss>http://serendipity.ruwenzori.net/index.php/2007/10/17/30-useful-free-sotfware-packages-to-make-a-default-microsoft-windows-workstation-setup-more-functional/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
