<?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 administration</title>
	<atom:link href="http://serendipity.ruwenzori.net/index.php/category/systems-administration/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>Which Firefox tab&#8217;s rogue Javascript is hogging the CPU ? Here is the answer…</title>
		<link>http://serendipity.ruwenzori.net/index.php/2013/03/02/which-firefox-tabs-rogue-javascript-is-hogging-the-cpu-here-is-the-answer</link>
		<comments>http://serendipity.ruwenzori.net/index.php/2013/03/02/which-firefox-tabs-rogue-javascript-is-hogging-the-cpu-here-is-the-answer#comments</comments>
		<pubDate>Sat, 02 Mar 2013 10:27:11 +0000</pubDate>
		<dc:creator>Jean-Marc Liotier</dc:creator>
				<category><![CDATA[Systems administration]]></category>

		<guid isPermaLink="false">http://serendipity.ruwenzori.net/?p=1130</guid>
		<description><![CDATA[Chrome isolates the content of each domain&#8217;s tabs in a separate process &#8211; which lets the user manage each of them with the operating system&#8217;s native process management tools. Firefox does not &#8211; so when it starts hogging 100% CPU, users are clueless. Among the usual suspects is Flash, but Flash is innocent on my [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.howtogeek.com/124218/why-does-chrome-have-so-many-open-processes/">Chrome isolates the content of each domain&#8217;s tabs in a separate process</a> &#8211; which lets the user manage each of them with the operating system&#8217;s native process management tools. Firefox does not &#8211; so when it starts hogging 100% CPU, users are clueless.</p>
<p>Among the usual suspects is Flash, but Flash is innocent on my workstation&#8217;s <a href="http://en.wikipedia.org/wiki/Iceweasel">Iceweasel</a> : I entirely removed any Flash interpreter from it and I am now clean from this filth.</p>
<p>Next in the suspect row is misbehaving Javascript, unless you are my friend Lerouge and surf with <a href="http://noscript.net/">NoScript</a> buttoned-up. But how to identify it&nbsp;?</p>
<p>As I expected, the answer was awaiting me among debugging tools&nbsp;-&nbsp;but it took longer than I estimated because it laid in the misleadingly named <a href="https://addons.mozilla.org/en-us/firefox/addon/javascript-deobfuscator/">Javascript Deobfuscator extension</a>&#8230; It does deobfuscate somewhat but as a commenter suggested it should really be named Javascript Execution Monitor because its major value addition is actually telling you what runs and when.</p>
<p>In the Javascript Deobfuscator dialog&#8217;s second tab, watch the &#8220;Number of calls&#8221; field &#8211; that is all you need. It is not a direct measure of CPU usage, but a close enough proxy : find the function with a runaway number of calls and you will likely have caught the culprit.</p>
<p><a href="http://www.ruwenzori.net/blog_images/20130301-Javascript_Deobfuscator.png"><img class="alignnone" src="http://www.ruwenzori.net/blog_images/20130301-Javascript_Deobfuscator.png" alt="" width="675" height="500" /></a></p>
<p>And that&#8217;s it &#8211; Iceweasel&#8217;s CPU usage is back to near zero, where it belongs. In my case, among the ocean of open tabs in on my virtual desktop&#8217;s many open windows, the culprit was <a href="http://geoffhollingworth.com/2012/05/06/telecom-and-apis/">this page</a> to whose incompetence I grant some <a href="http://en.wikipedia.org/wiki/PageRank">Pagerank</a> as a token of appreciation for having led me to discover a solution to this problem !</p>
<p>Now, what I would love the Javascript <del>Execution Monitor</del>Deobfuscator to acquire is a list of the top call rates, by page and by script &#8211; updated every second. Make that a separate extension and call it the Javascript Execution Monitor !</p>
]]></content:encoded>
			<wfw:commentRss>http://serendipity.ruwenzori.net/index.php/2013/03/02/which-firefox-tabs-rogue-javascript-is-hogging-the-cpu-here-is-the-answer/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to maintain reliable IPv6 in IPv4 tunnel connectivity when your Internet access provider inflicts a dynamic IPv4 address on you</title>
		<link>http://serendipity.ruwenzori.net/index.php/2012/06/06/how-to-maintain-reliable-ipv6-in-ipv4-tunnel-connectivity-when-your-internet-access-provider-inflicts-a-dynamic-ipv4-address-on-you</link>
		<comments>http://serendipity.ruwenzori.net/index.php/2012/06/06/how-to-maintain-reliable-ipv6-in-ipv4-tunnel-connectivity-when-your-internet-access-provider-inflicts-a-dynamic-ipv4-address-on-you#comments</comments>
		<pubDate>Wed, 06 Jun 2012 10:48:59 +0000</pubDate>
		<dc:creator>Jean-Marc Liotier</dc:creator>
				<category><![CDATA[Networking & telecommunications]]></category>
		<category><![CDATA[Systems administration]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://serendipity.ruwenzori.net/?p=1075</guid>
		<description><![CDATA[Today is IPv6 party time so let&#8217;s celebrate with a blog post ! Reliable IPV6 connectivity is no longer just nice to have &#8211; it is a necessity. If your Internet access provider still does not offer proper native IPv6 connectivity, your next best choice is to use an IPv4 tunnel to an IPv6 point [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.worldipv6launch.org/">Today is IPv6 party time</a> so let&#8217;s celebrate with a blog post !</p>
<p>Reliable IPV6 connectivity is no longer just nice to have &#8211; it is a necessity. If your Internet access provider still does not offer proper native IPv6 connectivity, your next best choice is to use an <a href="http://tunnelbroker.net/">IPv4 tunnel to an IPv6 point of presence</a>. It works and on the client side it only requires this sort of declaration in <a href="http://man.he.net/man5/interfaces">/etc/network/interfaces :</a></p>
<pre>auto ipv6-tunnel-he
  iface ipv6-tunnel-he inet6 v4tunnel
  address 2001:170:1f12:425::2
  netmask 64
  endpoint 216.66.84.42
  gateway 2001:170:1f12:425::1</pre>
<p>Of course, the same sort of configuration is required at the other endpoint &#8211; which means that, among other parameters, you must inform the IPv6 tunnel server of the IPv4 address of the client endpoint. <a href="http://tunnelbroker.net/">Hurricane Electric, my tunnel broker</a> lets me do that manually through its web interface &#8211; which is fine for a static configuration done once, but inadequate if your Internet access provider won&#8217;t supply you with a static IPv4 address. By the way, even if, after a few weeks of use, you believe you have a static address, you might just have a dynamic address with a rather long DHCP lease&#8230;</p>
<p>But <a href="http://ipv4.tunnelbroker.net/ipv4_end.php">Hurricane Electric also provides a primitive HTTP API that lets you inform the tunnel broker of IPv4 address changes</a> &#8211; that is all we need to do it automatically every time our Internet access goes up. Adding this <a href="http://www.gnu.org/software/wget/">wget</a> command to the uplink configuration stanza in <a href="http://man.he.net/man5/interfaces">/etc/network/interfaces</a> does the trick :</p>
<pre>auto eth3
iface eth3 inet dhcp
  up wget -O /dev/null https://USERNAME:PASSWORD@ipv4.tunnelbroker.net/ipv4_end.php?tid=34764</pre>
<p>That&#8217;s it &#8211; you now can count on IPv6 connectivity, even after a dynamic IPv4 address change.</p>
<p>And after you are done, go <a href="http://test-ipv6.com/">test your IPv6 configuration</a> and your <a href="http://ipv6-test.com/speedtest/">IPv6 throughput</a> !</p>
]]></content:encoded>
			<wfw:commentRss>http://serendipity.ruwenzori.net/index.php/2012/06/06/how-to-maintain-reliable-ipv6-in-ipv4-tunnel-connectivity-when-your-internet-access-provider-inflicts-a-dynamic-ipv4-address-on-you/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Contorsions toward an IPv6-only vhost on Debian Apache through whacky multiple IPv6 addresses configuration</title>
		<link>http://serendipity.ruwenzori.net/index.php/2011/10/17/contorsions-toward-an-ipv6-only-vhost-through-whacky-multiple-ipv6-adresses-configuration</link>
		<comments>http://serendipity.ruwenzori.net/index.php/2011/10/17/contorsions-toward-an-ipv6-only-vhost-through-whacky-multiple-ipv6-adresses-configuration#comments</comments>
		<pubDate>Mon, 17 Oct 2011 10:03:02 +0000</pubDate>
		<dc:creator>Jean-Marc Liotier</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Networking & telecommunications]]></category>
		<category><![CDATA[Systems administration]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://serendipity.ruwenzori.net/?p=1055</guid>
		<description><![CDATA[I just wanted to create an Apache virtual host responding to queries only over IPv6. That should have been most trivial considering that I had already been running a dual-stacked server, with all services accessible over both IPv4 and IPv6. Following the established IPv4 practice, I set upon configuring the virtual host to respond only [...]]]></description>
			<content:encoded><![CDATA[<p>I just wanted to create an Apache virtual host responding to queries only over IPv6. That should have been most trivial considering that I had already been running a dual-stacked server, with all services accessible over both IPv4 and IPv6.</p>
<p>Following the established IPv4 practice, I set upon configuring the virtual host to respond only to queries directed to a specific IPv6 address. That is done by inserting the address in the opening of the VirtualHost stanza : &lt;VirtualHost [2001:470:1f13:a4a::1]:80&gt; &#8211; same as an IPv4 configuration, but with brackets around the address. It is simple and after adding an <a href="http://www.zytrax.com/books/dns/ch8/aaaa.html">AAAA record</a> for the name of the virtual host, it works as expected.</p>
<p>I should rather say it works even better than expected : all sub-domains of the second-level domain I&#8217;m using for this virtual host are now serving the same content that the new IPv6-only virtual host is supposed to serve&#8230; Ungood &#8211; cue SMS and mail from pissed-off users and a speedy rollback of the changes; the joys of cowboy administration in a tiny community-run host with no testing environment. As usual, <a href="http://www.sixxs.net/forum/?msg=apps-1155448">I am not the first user to fall into the trap</a>. Why Apache behaves that way with an IPv6-only virtual host is beyond my comprehension for now.</p>
<p>Leaving aside the <a href="http://www.sixxs.net/forum/?msg=apps-1155448">horrible name-based hack proposed by a participant in the Sixxs thread</a>, the solution is to give each IPv6-only virtual host his own IPv6 address. Since this server has been allocated <a href="http://en.linuxreviews.org/Why_you_want_IPv6#Know_your_prefix">a /64 subnet yielding him 18,446,744,073,709,551,616 addresses, that&#8217;s quite doable, especially since I can trivially get a /48 in case I need 1,208,925,819,614,629,174,706,176 more addresses</a>. Remember when you had to fill triplicate forms and fight a host of mounted trolls to justify the use of just one extra IPv4 address ? Yes &#8211; another good reason to love IPv6 !</p>
<p>So let&#8217;s add an extra IPv6 address to this host &#8211; another trivial task : just create an aliased interface, like :</p>
<pre>auto eth0:0
    iface eth0:0 inet6 static
    address 2001:470:1f13:a4a::1
    netmask 64
    gateway 2001:470:1f12:a4a::2</pre>
<p>The result :</p>
<pre>SIOCSIFFLAGS: Cannot assign requested address
Failed to bring up eth0:0.</pre>
<p>This is not what we wanted&#8230; You may have done it dozens of time in IPv4, but in IPv6 your luck has ran out.</p>
<p>Stop the hair pulling right now : <a href="https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/617978">this unexpected behavior is bug</a> &#8211; this one documented in Ubuntu, but I confirm it is also valid on my mongrel Debian system. <a href="http://techblog.roethof.net/ubuntudebian-and-multiple-ipv6-addresses/">Thanks to Ronny Roethof for pointing me in the right direction</a> !</p>
<p>The solution : declare the additional address in a post-up command of the main IPv6 interface (and don&#8217;t forget to add the post-down command to kee things clean) :</p>
<pre>auto he-ipv6
iface he-ipv6 inet6 v4tunnel
    address 2001:470:1f12:a4a::2
    netmask 64
    endpoint 216.66.84.42
    local 212.85.152.17
    gateway 2001:470:1f12:a4a::1
    ttl 64
    <strong>post-up ip -f inet6 addr add 2001:470:1f13:a4a::1 dev he-ipv6
    pre-down ip -f inet6 addr del 2001:470:1f13:a4a::1 dev he-ipv6
</strong></pre>
<p>And now the IPv6-only virtual hosts serves as designed and the other virtual hosts are not disturbed. The world is peaceful and harmonious again &#8211; except maybe for that ugly post-up declaration in lieu of declaring an aliased interface the way the Unix gods intended.</p>
<p>All that just for creating an IPv6 virtual host&#8230; Systems administration or sleep ? Systems administration is more fun !</p>
]]></content:encoded>
			<wfw:commentRss>http://serendipity.ruwenzori.net/index.php/2011/10/17/contorsions-toward-an-ipv6-only-vhost-through-whacky-multiple-ipv6-adresses-configuration/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Rooting, CyanogenMod, bricking &amp; re-flashing&#8230; A beginner&#8217;s adventures in Android firmware administration &#8211; part one</title>
		<link>http://serendipity.ruwenzori.net/index.php/2011/08/09/rooting-cyanogenmod-bricking-re-flashing-a-beginners-adventures-in-android-firmware-administration-part-one</link>
		<comments>http://serendipity.ruwenzori.net/index.php/2011/08/09/rooting-cyanogenmod-bricking-re-flashing-a-beginners-adventures-in-android-firmware-administration-part-one#comments</comments>
		<pubDate>Tue, 09 Aug 2011 10:17:24 +0000</pubDate>
		<dc:creator>Jean-Marc Liotier</dc:creator>
				<category><![CDATA[Free software]]></category>
		<category><![CDATA[Mobile computing]]></category>
		<category><![CDATA[Systems administration]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://serendipity.ruwenzori.net/?p=1028</guid>
		<description><![CDATA[Oh noes &#8211; I&#8217;m writing about a Google product, again. The omnipresence of the big G in my daily environment is becoming a bit excessive, so I&#8217;m stepping up my vigilance about not getting dependent on their services &#8211; though I don&#8217;t mind them knowing everything about me. In that light, acquiring another Android communicator [...]]]></description>
			<content:encoded><![CDATA[<p>Oh noes &#8211; I&#8217;m writing about a Google product, again. The omnipresence of the big G in my daily environment is becoming a bit excessive, so I&#8217;m stepping up my vigilance about not getting dependent on their services &#8211; though I don&#8217;t mind them knowing everything about me. In that light, acquiring another Android communicator may not seem logical, but I&#8217;m afraid that it is currently the choice of reason : I would have paid pretty much any price for a halfway decent <a href="http://en.wikipedia.org/wiki/MeeGo_(operating_system)">Meego</a> device, but Nokia&#8217;s open rejection of its own offspring is just too disgusting to collude with. The <a href="http://projects.goldelico.com/p/gta04-main/">Openmoko GTA04</a> is tempting, but it is not yet available and I need a device right now.</p>
<p>Android does not quite mean I have to remain attached to the Google tit : thanks to <a href="http://www.cyanogenmod.com">CyanogenMod</a> there is now an Android distribution free of Google applications  &#8211; and it also offers a variety features and enhancements&#8230; <a href="http://en.wikipedia.org/wiki/Free_software">Free software</a> is so sweet !</p>
<p>As a bonus, <a href="http://www.cyanogenmod.com/">CyanogenMod</a> is also free of the hardware manufacturer&#8217;s pseudo-improvements or the carrier&#8217;s dubious customizations &#8211; those people just can&#8217;t keep themselves from mucking with software&#8230; Please keep to manufacturing hardware and providing connectivity &#8211; it is hard enough to do right that you don&#8217;t have to meddle and push software that no one wants !</p>
<p>So when I went shopping for a new Android device after my one year old daughter disappeared my three year-old HTC Magic, I made sure that the one I bought was compatible with CyanogenMod. I chose the <a href="http://en.wikipedia.org/wiki/Motorola_Defy">Motorola Defy</a> because it is water-resistant, somewhat rugged and quite cheap too. By the way, I bought it free from access provider <a href="http://en.wikipedia.org/wiki/SIM_lock">SIM lock</a> &#8211; more expensive upfront, but the era of subsidized devices is drawing to an end and I&#8217;m going to enjoy the cheaper subscriptions.</p>
<p>On powering-on the Defy, the first hurdle is to get past the mandatory <a href="http://en.wikipedia.org/wiki/Motoblur">Motoblur</a> account creation &#8211; not only does Motorola insist on foisting its fat supplements on you, but it won&#8217;t let you access your device until you give it an email address&#8230; In case I was not already convinced that I wanted to get rid of this piece of trash, that was a nice reminder.</p>
<p>This Defy was saddled with some Android 2.2.2 firmware &#8211; I don&#8217;t remember the exact version. I first attempted to <a href="http://www.addictivetips.com/mobile/z4root-is-one-click-root-app-for-samsung-galaxy-s-android-phones/">root it using Z4root</a>, but found no success with that method. Then I tried with <a href="http://www.addictivetips.com/mobile/how-to-root-motorola-defy-with-superoneclick">SuperOneClick</a> and it worked, after some fooling around to find that USB debugging must not be enabled until after the Android device is connected to the PC &#8211; RTFM !  There are many Android rooting methods &#8211; try them until you find the one that works for you : there is much variety in the Android ecosystem, so <a href="http://www.catb.org/jargon/html/Y/Your-mileage-may-vary.html">your mileage may vary</a>.</p>
<p>Now that I have gained control over a piece of hardware that I bought and whose usage  should therefore never have been restricted by its manufacturer in the first place, the next step is to put CyanogenMod on it. Long story short : I fumbled with transfers and Android <a href="http://en.wikipedia.org/wiki/Booting#Boot_loader">boot loader</a> functionalities that I don&#8217;t yet fully understand, so I failed and bricked my device. In the next installment of this adventure, I&#8217;m sure I&#8217;ll have a nice tale of success to tell you about &#8211; meanwhile this one will be a tale of recovery.</p>
<p>This brick situation is a Motorola Defy with blank screen and a lit white diode on its front. The normal combination of the power and volume keys won&#8217;t bring up the boot loader&#8217;s menu on start. But thanks to Motorola&#8217;s hardware restrictions designed to keep the user from modifying the software, the user is also kept from shooting himself in the foot and the Defy is only semi-bricked and therefore recoverable. Saved by Motorola&#8217;s hardware restrictions&#8230; Every cloud has a silver lining. But had the device been completely open and friendly to alien software, I would not have had to hack at it in the first place, I would not had bricked it and there would have been no need for saving the day &#8211; so down with user-hostile hardware anyway !</p>
<p>With the <a href="http://www.motorola.com/Support/US-EN/Support-Homepage/Software_and_Drivers/USB-and-PC-Charging-Drivers">Motorola Defy USB drivers</a> installed since the SuperOneClick rooting, I launched <a href="http://forum.xda-developers.com/attachment.php?attachmentid=525696">RSD lite 4.9</a> which is the Motorola utility for flashing Motorola Android devices. Here is the <a href="http://www.droidforums.net/forum/droid-rooted-help/73579-using-rsd-lite-flash-sbf-file-correctly.html">method for using RSD lite correctly</a>. RSD lite immediately recognized the device connected across the USB cord. The trick was finding a suitable firmware in .sbf format. After a few unsuccessful attempts with French Android versions, I found that <a href="http://www.multiupload.com/1KBO24F4CR">JRDNEM_U3_3.4.2_117-002_BLUR_SIGN_SIGNED<br />
_USAJRDNEMARAB1B8RTGB035.0R_USAJRDNFRYORTGB_P003_A002_HWp3_Service1FF</a> worked fine and promptly booted me back to some factory default &#8211; seeing the dreaded Motoblur signup screen was actually a relief, who would have thought ?</p>
<p>After re-flashing with RSD Lite, I found that there is a <a href="http://blog.opticaldelusion.org/search/label/sbf_flash">Linux utility for flashing Motorola Android devices :  sbf_flash</a> &#8211; that would have saved me from borrowing my girlfriend&#8217;s Windows laptop&#8230; But I would have needed it for SuperOneClick though &#8211; isn&#8217;t it strange that support tools for Android are Windows-dependent ?</p>
<p>With CyanogenMod in place, my goal will be to make my <a href="http://en.wikipedia.org/wiki/Personal_information_manager">personal information management system</a> as <a href="http://autonomo.us/about/">autonomous</a> as possible &#8211; for example I&#8217;ll <a href="http://identi.ca/conversation/77650018">replace Google Contacts synchronization with Funambol</a>. CyanogenMod is just the starting point of trying to make the Android system somewhat bearable &#8211; it is still the strange and very un-<a href="http://en.wikipedia.org/wiki/Unix">Unixy</a> world of Android, but is a pragmatic candidate for mobile software freedom with opportunities wide open.</p>
<p>But first I have to successfully transfer it to my Android device&#8217;s flash memory&#8230; And that will be for another day.</p>
<p>If you need further information about hacking Android devices, great places are <a href="http://www.droidforums.net/">Droid Forums</a> and <a href="http://forum.xda-developers.com/">the XDA-Developpers forum</a> &#8211; if you don&#8217;t go directly, the results of your searches will send you there anyway.</p>
]]></content:encoded>
			<wfw:commentRss>http://serendipity.ruwenzori.net/index.php/2011/08/09/rooting-cyanogenmod-bricking-re-flashing-a-beginners-adventures-in-android-firmware-administration-part-one/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Second monitor works but wrong resolution is detected&#8230; Guess what caused that !</title>
		<link>http://serendipity.ruwenzori.net/index.php/2011/03/02/second-monitor-works-but-wrong-resolution-is-detected-guess-what-caused-that</link>
		<comments>http://serendipity.ruwenzori.net/index.php/2011/03/02/second-monitor-works-but-wrong-resolution-is-detected-guess-what-caused-that#comments</comments>
		<pubDate>Wed, 02 Mar 2011 21:13:50 +0000</pubDate>
		<dc:creator>Jean-Marc Liotier</dc:creator>
				<category><![CDATA[Systems administration]]></category>

		<guid isPermaLink="false">http://serendipity.ruwenzori.net/?p=960</guid>
		<description><![CDATA[Today I landed my mandatory corporate Windows laptop at a desk supporting a nice 24&#8243; monitor. Willing to take advantage of the available extra display real estate, I plug the DE-15F cable into the laptop&#8217;s D-subminiature video port and proceed to set the extra monitor&#8217;s resolution in the &#8220;Settings&#8221; tab of the &#8220;Display Properties&#8221; dialog. [...]]]></description>
			<content:encoded><![CDATA[<p>Today I landed my mandatory corporate Windows laptop at a desk supporting a nice 24&#8243; monitor. Willing to take advantage of the available extra display real estate, I plug the DE-15F cable into the laptop&#8217;s <a href="http://en.wikipedia.org/wiki/D-subminiature">D-subminiature</a> video port and proceed to set the extra monitor&#8217;s resolution in the &#8220;Settings&#8221; tab of the &#8220;Display Properties&#8221; dialog. Alas 1280&#215;800 pixels is the most I can set &#8211; it is the laptop&#8217;s main display&#8217;s resolution and it is far below the 1920&#215;1200 pixels the secondary display is capable of. Shutting off and on the monitor, disconnecting and reconnecting the cable on the laptop&#8217;s port, putting the laptop to sleep and even rebooting&#8230; Nothing worked : it seemed that the system was not detecting the monitor properly and chose to handle it with some sort of default resolution. I even uninstalled the operating system&#8217;s monitor drivers &#8211; with no visible result.</p>
<p>Suspecting a hardware problem I decided to check all the connections. A quarter of a century of experience has taught me that connections are the most frequent cause of incidents. I reseated and properly screwed the cable to the monitor&#8230; And I was mildly surprised to see the display properties settings tab let me choose the monitor&#8217;s nominal resolution at last. My instincts had been vindicated.</p>
<p>What happened was a loose <a href="http://en.wikipedia.org/wiki/VGA_connector">VGA cable.</a> All the pins necessary for display were making contact, but some of the ones necessary for <em>plug&#8217;n'pray</em> detection were not. Mere visual inspection could not have found that &#8211; only reseating the connector makes the problem evident by solving it. I&#8217;m not sure I would be able to misconnect the cable just right to reproduce this situation if I wanted to&#8230;</p>
<p>And that&#8217;s how I learned about <a href="http://en.wikipedia.org/wiki/Display_Data_Channel">Display Data Channel</a>, a collection of digital communication protocols between a computer display and a graphics adapter that enables the display to communicate its supported display modes to the adapter. I&#8217;m sure you won&#8217;t resist following this link to learn about DDC1, DDC2, DDC/CI and E-DDC to understand some basic technology working in the shadows, taken for granted until it stops functioning&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://serendipity.ruwenzori.net/index.php/2011/03/02/second-monitor-works-but-wrong-resolution-is-detected-guess-what-caused-that/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IRC nick or keyword mention notification by mail for Bip IRC proxy</title>
		<link>http://serendipity.ruwenzori.net/index.php/2011/03/01/irc-nick-or-keyword-mention-notification-by-mail-for-bip-irc-proxy</link>
		<comments>http://serendipity.ruwenzori.net/index.php/2011/03/01/irc-nick-or-keyword-mention-notification-by-mail-for-bip-irc-proxy#comments</comments>
		<pubDate>Tue, 01 Mar 2011 19:06:13 +0000</pubDate>
		<dc:creator>Jean-Marc Liotier</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Free software]]></category>
		<category><![CDATA[Networking & telecommunications]]></category>
		<category><![CDATA[Systems administration]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://serendipity.ruwenzori.net/?p=954</guid>
		<description><![CDATA[I loathe Facebook and its repressive user-hostile policy that provides no value to the rest of the Web. But like that old IRC channel known by some of you, I keep an account there because some people I like &#38; love are only there. I seldom go to Facebook unless some event, such as a [...]]]></description>
			<content:encoded><![CDATA[<p>I loathe Facebook and its repressive user-hostile policy that provides no value to the rest of the Web. But like that old <a href="http://en.wikipedia.org/wiki/Internet_Relay_Chat">IRC</a> channel known by some of you, I keep an account there because some people I like &amp; love are only there. I seldom go to Facebook unless some event, such as a comment on one of the posts that I post there through <a href="http://pixelpipe.com/">Pixelpipe</a>, triggers a notification by mail. I would like to treat IRC that way: keeping an IRC application open and connected is difficult when mobile or when using the stupid locked-down mandatory corporate Windows workstation, and I&#8217;m keen to eliminate that attention-hogging stream from my environment &#8211; especially when an average of two people post a dozen lines a day, most of which are greetings and mealtimes notifications. But when a discussion flares up there, it is excellent discussion&#8230; And you never know when that will happen &#8211; so you need to keep an eye on the channel. Let&#8217;s delegate the watching to some automation !</p>
<p>So let me introduce to you to my latest short script : <a href="http://www.ruwenzori.net/code/bipIRCnickmailnotify/">bipIRCnickmailnotify.sh</a> &#8211; it sends IRC log lines by mail when a specific string is mentioned by other users. Of course in the present use case I set it up to watch for occurrences of my nickname, but I could have set it to watch any other string. The IRC logging is done by the <a href="http://bip.milkypond.org/">bip IRC proxy</a> that among other things keeps me permanently present on my IRC channels of choice and provides me with the full backlog whenever I join with a regular IRC client.</p>
<p>This <a href="http://en.wikipedia.org/wiki/Shell_scripts">Unix shell script</a> also uses <a href="http://welz.org.za/projects/since">&#8216;since&#8217;</a> &#8211; a <a href="http://en.wikipedia.org/wiki/Unix-like">Unix</a> utility similar to &#8216;<a href="http://en.wikipedia.org/wiki/Tail_(Unix)">tail&#8217;</a> that unlike &#8216;tail&#8217; only shows the lines appended since the last execution. I&#8217;m sure that <a href="http://welz.org.za/projects/since">&#8216;since&#8217;</a> will come handy in the future !</p>
<p>So there&#8230; I no longer have to monitor IRC &#8211; <a href="http://www.ruwenzori.net/code/bipIRCnickmailnotify/">bipIRCnickmailnotify.sh</a> does it for me.</p>
<p>With trivial modification and the right library it could soon do <a href="http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol">XMPP</a> notifications too &#8211; send me an instant message if my presence is &#8216;available&#8217; and mail otherwise. See you next version !</p>
]]></content:encoded>
			<wfw:commentRss>http://serendipity.ruwenzori.net/index.php/2011/03/01/irc-nick-or-keyword-mention-notification-by-mail-for-bip-irc-proxy/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Accidental IPv6 connectivity</title>
		<link>http://serendipity.ruwenzori.net/index.php/2011/02/07/accidental-ipv6-browsing</link>
		<comments>http://serendipity.ruwenzori.net/index.php/2011/02/07/accidental-ipv6-browsing#comments</comments>
		<pubDate>Mon, 07 Feb 2011 12:04:52 +0000</pubDate>
		<dc:creator>Jean-Marc Liotier</dc:creator>
				<category><![CDATA[Networking & telecommunications]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Systems administration]]></category>

		<guid isPermaLink="false">http://serendipity.ruwenzori.net/?p=941</guid>
		<description><![CDATA[I work for a very large corporation. That sort of companies is not inherently evil, but it is both powerful and soulless &#8211; a dangerous combination. Thus when dealing with it, better err on the side of caution. For that reason, all of my browsing from the obligatory corporate Microsoft Windows workstation is done trough [...]]]></description>
			<content:encoded><![CDATA[<p>I work for a very large corporation. That sort of companies is not inherently evil, but it is both powerful and soulless &#8211; a dangerous combination. Thus when dealing with it, better err on the side of caution. For that reason, all of my <a href="http://www.devdaily.com/unix/edu/putty-ssh-tunnel-firefox-socks-proxy/">browsing from the obligatory corporate Microsoft Windows workstation is done trough a SSH tunnel established using Putty to a trusted host and used by Mozilla Firefox as a SOCKS proxy</a>. If you do that, don&#8217;t forget to <a href="http://kb.mozillazine.org/Network.proxy.socks_remote_dns"><em>set network.proxy.socks remote DNS</em> to true</a> so that you don&#8217;t leak queries to the local DNS server.</p>
<p>In addition to the privacy benefits, a tunnel also gets you around the immensely annoying arbitrary filtering or throttling of perfectly reasonable sites which mysterious bureaucracies add to <a href="http://en.wikipedia.org/wiki/Content-control_software">opaquely managed exclusion lists used by censorship systems</a>. The site hosting the article you are currently reading is filtered by the <a href="http://en.wikipedia.org/wiki/Websense">brain-damaged Websense filtering gateway</a> as part of the &#8220;violence&#8221; category &#8211; go figure !</p>
<p>Anyway, back on topic &#8211; this morning my browsing took me to <a href="http://ipv6.internode.on.net/">Internode&#8217;s IPv6 site</a> and to my great surprise I read &#8220;Congratulations! You&#8217;re viewing this page using IPv6 (  2001:470:1f12:425::2 ) !!!!!&#8221;. A quick visit to <a href="http://www.kame.net/">the KAME turtle</a> confirmed : the turtle was dancing. The surprising part is that our office LAN is <a href="http://en.wikipedia.org/wiki/IPv4">IPv4</a> only and the obligatory corporate Microsoft Windows workstation has no clue about <a href="http://en.wikipedia.org/wiki/IPv6">IPv6</a> &#8211; how could those sites believe I was connecting through <a href="http://en.wikipedia.org/wiki/IPv6">IPv6</a> ? A quick &#8216;dig -x 2001:470:1f12:425::2&#8242; cleared the mystery : the reverse DNS record reminded me that this address is the one my trusted host gets from <a href="http://ipv6.he.net/">Hurricane Electric&#8217;s IPv6 tunnel server</a>.</p>
<p>So browsing trough a <a href="http://en.wikipedia.org/wiki/SOCKS">SOCKS proxy</a> backed by a <a href="http://en.wikipedia.org/wiki/Secure_Shell">SSH</a> tunnel to a host with both <a href="http://en.wikipedia.org/wiki/IPv4">IPv4</a> and <a href="http://en.wikipedia.org/wiki/IPv6">IPv6 </a>connectivity will use <a href="http://en.wikipedia.org/wiki/IPv6">IPv6</a> by default and IPv4 if no <a href="http://en.wikipedia.org/wiki/IPv6#IPv6_in_the_Domain_Name_System">AAAA record</a> is available for the requested address. This behaviour has many implications &#8211; good or bad depending on how you look at it, and fun in any case. As we are all getting used to <a href="http://en.wikipedia.org/wiki/IPv6">IPv6</a>, we are going to encounter many more surprises such as this one. From a security point of view, surprises are of course not a good thing.</p>
<p>All that reminds me that I have not yet made this host available trough <a href="http://en.wikipedia.org/wiki/IPv6">IPv6</a>&#8230; I&#8217;ll get that done before the <a href="http://isoc.org/wp/worldipv6day/">World IPv6 Day which will come on 8th June 2011</a> &#8211; a good motivating milestone !</p>
]]></content:encoded>
			<wfw:commentRss>http://serendipity.ruwenzori.net/index.php/2011/02/07/accidental-ipv6-browsing/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Linux distributions&#8230; &#8220;For us, by us&#8221; vs. &#8220;For us, by them&#8221;</title>
		<link>http://serendipity.ruwenzori.net/index.php/2010/11/17/linux-distributions-for-us-by-us-vs-for-us-by-them</link>
		<comments>http://serendipity.ruwenzori.net/index.php/2010/11/17/linux-distributions-for-us-by-us-vs-for-us-by-them#comments</comments>
		<pubDate>Wed, 17 Nov 2010 18:54:12 +0000</pubDate>
		<dc:creator>Jean-Marc Liotier</dc:creator>
				<category><![CDATA[Brain dump]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Free software]]></category>
		<category><![CDATA[Systems administration]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://serendipity.ruwenzori.net/?p=868</guid>
		<description><![CDATA[On Identi.ca I stumbled upon this dent by @fabsh quoting @nybill : &#8220;Linux was always by us, for us. Ubuntu is turning it into by THEM, for us&#8220;. It definitely relates to my current feelings. When I set up an Ubuntu host, I can&#8217;t help feeling like I&#8217;m installing some piece of proprietary software. Or [...]]]></description>
			<content:encoded><![CDATA[<p>On <a href="http://identi.ca/">Identi.ca</a> <a href="http://identi.ca/user/liotier">I</a> stumbled upon this dent by <a href="http://identi.ca/fabsh">@fabsh</a> quoting <a href="http://identi.ca/user/172996">@nybill</a> : &#8220;<a href="http://identi.ca/conversation/57662611">Linux was always by us, for us. Ubuntu is turning it into by THEM, for us</a>&#8220;.</p>
<p>It definitely relates to my current feelings.</p>
<p>When I set up an <a href="http://www.ubuntu.com/">Ubuntu</a> host, I can&#8217;t help feeling like I&#8217;m installing some piece of proprietary software. Or course that is not the case : Ubuntu is (mostly) free software and as controversial as <a href="http://www.canonical.com/">Canonical</a>&#8216;s ambitions, inclusion of non-free software or commercial services may be, no one can deny its significant contributions to the advancement of free software &#8211; making it palatable to the desktop mass market not being the least&#8230; I&#8217;m thankful for all the free software converts that saw the light thanks to Ubuntu. But nevertheless, in spite of all the Ubuntu community outreach propaganda and the involvement of many volunteers, I&#8217;m not feeling the love.</p>
<p>It may just be that I have not myself taken the steps to contribute to Ubuntu &#8211; my own fault in a way. But as I have not contributed anything to <a href="http://www.debian.org/">Debian </a>either, aside from supporting my fellow users, religiously reporting bugs and spreading the gospel, I still feel like I&#8217;m part of it. When I install Debian, I have a sense of using a system that I really own and control. It is not a matter of tools &#8211; Ubuntu is still essentially Debian and it features most of the tools I&#8217;m familiar with&#8230; So what is it ? Is it an entirely subjective feeling with no basis in consensual reality ?</p>
<p>It may have something to do with the democratic culture that infuses Debian whereas in spite of <a href="http://www.markshuttleworth.com/">Mark Shuttleworth</a>&#8216;s denials and <a href="https://launchpad.net/">actual collaborative moves</a>, he sometimes echoes the <a href="http://en.wikipedia.org/wiki/Steve_Jobs#Management_style">Steve Jobs ukase style</a> &#8211; the <a href="http://computergyan.wordpress.com/2010/10/25/is-mark-shuttelworth-becoming-the-next-steve-jobs/">&#8220;this is not a democracy&#8221; comment certainly split the audience</a>. But maybe it is an unavoidable feature of his organization: as <a href="http://linuxmafia.com/faq/Kernel/linus-im-a-bastard-speech.html">Linus Torvalds unapologetically declares</a>, being a mean bastard is an important part of the <a href="http://en.wikipedia.org/wiki/Benevolent_dictatorship">benevolent dictator</a> job description.</p>
<p>Again, I&#8217;m pretty sure that Mark Shuttleworth means well and there is no denying his personal commitment, but the way the whole Canonical/Ubuntu apparatus communicates is arguably top-down enough to make some of us feel uneasy and prefer going elsewhere. This may be a side effect of trying hard to show the polished face of a heavily marketed product &#8211; and thus alienating a market segment from whose point of view the feel of a reassuringly corporate packaging is a turn-off rather than a selling point.</p>
<p>Surely there is is more about it than the few feelings I&#8217;m attempting to express&#8230; But anyway &#8211; when I use <a href="http://www.debian.org/">Debian</a> I feel like I&#8217;m going home.</p>
<p>And before you mention I&#8217;m overly critical of Ubuntu, just wait until you hear my feelings about Android&#8230; Community &#8211; what community ?</p>
]]></content:encoded>
			<wfw:commentRss>http://serendipity.ruwenzori.net/index.php/2010/11/17/linux-distributions-for-us-by-us-vs-for-us-by-them/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Lost connection to MySQL server during query&#8221; error while using SSH tunnel [solved]</title>
		<link>http://serendipity.ruwenzori.net/index.php/2010/09/23/lost-connection-to-mysql-server-during-query-error-while-using-ssh-tunnel-solved</link>
		<comments>http://serendipity.ruwenzori.net/index.php/2010/09/23/lost-connection-to-mysql-server-during-query-error-while-using-ssh-tunnel-solved#comments</comments>
		<pubDate>Thu, 23 Sep 2010 10:27:41 +0000</pubDate>
		<dc:creator>Jean-Marc Liotier</dc:creator>
				<category><![CDATA[Systems administration]]></category>

		<guid isPermaLink="false">http://serendipity.ruwenzori.net/?p=821</guid>
		<description><![CDATA[This just cost me twenty minutes of hair pulling and from the number of unanswered forum and mailing lists mentions of this &#8220;Lost connection to MySQL server during query&#8221; error in the context of remote access through an SSH tunnel, posting the solution seems useful. Letting mysqld listen to the outside is a security risk [...]]]></description>
			<content:encoded><![CDATA[<p>This just cost me twenty minutes of hair pulling and from the number of unanswered forum and mailing lists mentions of this &#8220;Lost connection to MySQL server during query&#8221; error in the context of remote access through an <a href="http://en.wikipedia.org/wiki/Tunneling_protocol#Secure_Shell_tunneling">SSH tunnel</a>, posting the solution seems useful.</p>
<p>Letting mysqld listen to the outside is a security risk &#8211; and an unnecessary one for the common <a href="http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29">LAMP</a> setup on which the applications are executed on the same server as the database server. As a result, many Mysql servers are configured with the &#8220;<a href="http://dev.mysql.com/doc/refman/5.0/en/server-options.html#option_mysqld_skip-networking">skip-networking&#8221; option</a> which prevents it from listening for TCP/IP connections at all. Local communication is still possible through the <em>mysql.soc</em>k socket.</p>
<p>Nowadays, communicating through local sockets is rather rare &#8211; connecting locally is usually done through the <a href="http://en.wikipedia.org/wiki/Internet_Protocol_Suite">TCP/IP stack</a> which is less efficient but more flexible. So the naive user who expects TCP/IP everywhere sets up a <a href="http://en.wikipedia.org/wiki/Tunneling_protocol">tunnel</a> to the Mysql server he usually accesses locally, he provides the right connection parameters to his Mysql client &#8211; and on his connection attempt he gets the &#8220;Lost connection to MySQL server during query&#8221; error.</p>
<p>So &#8211; when connecting through ssh tunnel to a mysql daemon, you need to make sure that the &#8220;<a href="http://dev.mysql.com/doc/refman/5.0/en/server-options.html#option_mysqld_skip-networking">skip-networking&#8221; option</a> has been removed from /etc/my.cnf</p>
<p>When the &#8220;<a href="http://dev.mysql.com/doc/refman/5.0/en/server-options.html#option_mysqld_skip-networking">skip-networking&#8221; option</a> is active, network parameters are redundant. But once you remove it, for security&#8217;s sake you must make sure that mysqld does not listen to the outside &#8211; so check /etc/my.cnf so that the &#8220;bind-adress&#8221; parameter is set as &#8220;bind-address = 127.0.0.1&#8243;.</p>
]]></content:encoded>
			<wfw:commentRss>http://serendipity.ruwenzori.net/index.php/2010/09/23/lost-connection-to-mysql-server-during-query-error-while-using-ssh-tunnel-solved/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Samsung SCX-4500W advertises AES+TKIP and then silently fails at it</title>
		<link>http://serendipity.ruwenzori.net/index.php/2010/04/09/samsung-scx-4500w-advertises-aestkip-and-then-silently-fails-at-it</link>
		<comments>http://serendipity.ruwenzori.net/index.php/2010/04/09/samsung-scx-4500w-advertises-aestkip-and-then-silently-fails-at-it#comments</comments>
		<pubDate>Fri, 09 Apr 2010 00:33:46 +0000</pubDate>
		<dc:creator>Jean-Marc Liotier</dc:creator>
				<category><![CDATA[Consumption]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Systems administration]]></category>

		<guid isPermaLink="false">http://serendipity.ruwenzori.net/?p=714</guid>
		<description><![CDATA[Lexmark stubbornly refuses to make any effort toward providing, or at least letting other people provide, printer drivers for their devices &#8211; don&#8217;t buy from them if you need support for anything other than their operating system of choice. After repeatedly acquiring throwaway inkjet printers from Lexmark and repeatedly wondering why my mother&#8217;s Ubuntu laptop [...]]]></description>
			<content:encoded><![CDATA[<p>Lexmark stubbornly refuses to make any effort toward providing, or at least letting other people provide, printer drivers for their devices &#8211; don&#8217;t buy from them if you need support for anything other than their operating system of choice.</p>
<p>After repeatedly acquiring throwaway inkjet printers from Lexmark and repeatedly wondering why my mother&#8217;s <a href="http://www.ubuntu.com/">Ubuntu</a> laptop can&#8217;t use them, my father finally accepted my suggestion of studying compatibility beforehand instead of buying on impulse &#8211; years of pedagogy finally paid off !</p>
<p>My parents required a compact wireless device supporting printing and scanning from their operating systems &#8211; preferably fast and silent, if possible robust and not too unsightly. No need for color, black and white was fine - though I would have pushed them toward color if multifunction laser printing devices capable of putting out colors were not so bulky. Those requirements led us toward the <a href="http://www.samsung.com/us/consumer/office/printers-multifunction/black-and-white-multifunction-printers/SCX-4500W/XAA/index.idx?pagetype=prd_detail">Samsung SCX-4500W</a>.</p>
<p>I connected the <a href="http://www.samsung.com/us/consumer/office/printers-multifunction/black-and-white-multifunction-printers/SCX-4500W/XAA/index.idx?pagetype=prd_detail">Samsung SCX-4500W</a> on one of the Ethernet ports of my parent&#8217;s router and went through the HTTP administration interface. The printing controls are extremely basic &#8211; but the networking configuration surprised me with a wealth of supported protocols : raw TCP/IP printing, <a href="http://en.wikipedia.org/wiki/Line_Printer_Daemon_protocol">LPR/LPD</a>, <a href="http://en.wikipedia.org/wiki/Internet_Printing_Protocol">IPP</a>, <a href="http://en.wikipedia.org/wiki/Service_Location_Protocol">SLP</a>, <a href="http://en.wikipedia.org/wiki/Universal_Plug_and_Play">UPnP</a>, <a href="http://en.wikipedia.org/wiki/Simple_Network_Management_Protocol">SNMP</a> including SNMP v3, <a href="http://en.wikipedia.org/wiki/Telnet">Telnet</a>, email alert on any event you want &#8211; including levels of consumables&#8230; Anything I can think about printing on top of my mind is there. The funniest thing is that neither the product presentation, nor the specification sheet or the various reviews advertise that this device boasts such a rich set of networking features&#8230; <a href="http://en.wiktionary.org/wiki/demure">Demure</a> advertising - now that&#8217;s a novel concept !</p>
<p>I set-up wireless the printer&#8217;s <a href="http://en.wikipedia.org/wiki/IEEE_802.11">802.11</a> networking features, unplugged the Ethernet cable, rebooted the device&#8230; And nothing happened. No wireless networking, no error and, when I reconnected the Ethernet cable and got back to the administration interface, the radio networking menu was not even available anymore. After careful verification I could reliably reproduce that behaviour. At that stage, my parents were already lamenting the sorry state of the ever-unreliable modern technology &#8211; and most users would have been equally lost.</p>
<p>I pressed on and found that I was not alone in my predicament. <a href="http://www.commentcamarche.net/forum/affich-8485720-pb-imprimante-wifi#40">User experiences soon led me to the solution</a> : I had configured my parent&#8217;s radio network to use <a href="https://learningnetwork.cisco.com/thread/11207">WPA with TKIP+AES encryption</a> (the best option available on their access point) but the <a href="http://www.samsung.com/us/consumer/office/printers-multifunction/black-and-white-multifunction-printers/SCX-4500W/XAA/index.idx?pagetype=prd_detail">Samsung SCX-4500W</a> was unable to support that properly. The administration interface&#8217;s radio networking menu proposed TKIP+AES but silently failed to establish a connection and seemed to screw the whole radio networking stack. Only setting my parent&#8217;s <a href="http://www.free.fr/adsl/">Freebox</a> and all other devices on the network, to use TKIP only instead of TKIP+AES yielded a working setup with a reachable printer, at the cost of using trivially circumventable security to protect the network&#8217;s traffic from intrusion.</p>
<p>Now that is seriously bad engineering : not supporting a desirable protocol is entirely forgivable &#8211; but advertising it in a menu, then failing to connect without generating the slightest hint of an error message, and as a bonus wedging the user into an irrecoverable configuration is a grievous sin. I managed to overcome the obstacle, but this is a device aimed at the mass market and I can perfectly understand its target audience&#8217;s desire to throw it out of the window.</p>
<p>On that problem was solved, configuring the clients over the network was a breeze and pages of nice print were soon flying out quickly and silently. In summary, the <a href="http://www.samsung.com/us/consumer/office/printers-multifunction/black-and-white-multifunction-printers/SCX-4500W/XAA/index.idx?pagetype=prd_detail">Samsung SCX-4500W</a> is a stylish printing and scanning device that lives up to its promises &#8211; apart from that nasty bug that makes me doubt Samsung&#8217;s quality control over its networking features.</p>
<p>Scanning with the <a href="http://www.samsung.com/us/consumer/office/printers-multifunction/black-and-white-multifunction-printers/SCX-4500W/XAA/index.idx?pagetype=prd_detail">Samsung SCX-4500W</a> is another story entirely &#8211; <a href="http://userbase.kde.org/Troubleshooting/Samsung_scx-4500W">it should work with the xerox_mfp SANE backend, but only through USB</a>. For now I have found no hope of having it scan for a Linux host across the network.</p>
]]></content:encoded>
			<wfw:commentRss>http://serendipity.ruwenzori.net/index.php/2010/04/09/samsung-scx-4500w-advertises-aestkip-and-then-silently-fails-at-it/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Understanding how to use SSD as Hybrid Storage Pools for ZFS</title>
		<link>http://serendipity.ruwenzori.net/index.php/2010/03/09/understanding-how-to-use-ssd-as-hybrid-storage-pools-for-zfs</link>
		<comments>http://serendipity.ruwenzori.net/index.php/2010/03/09/understanding-how-to-use-ssd-as-hybrid-storage-pools-for-zfs#comments</comments>
		<pubDate>Tue, 09 Mar 2010 16:18:51 +0000</pubDate>
		<dc:creator>Jean-Marc Liotier</dc:creator>
				<category><![CDATA[Systems administration]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://serendipity.ruwenzori.net/?p=633</guid>
		<description><![CDATA[Solid state drives provide incredible IOPS compared to hard disks. But the consideration of cost rules them out as primary mass storage. But for most applications you would not consider storing everything in RAM either &#8211; yet RAM cache is part of any storage system. Why wouldn&#8217;t we take advantage of Solid state drives as [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Solid-state_drive">Solid state drives</a> provide incredible <a href="http://en.wikipedia.org/wiki/IOPS">IOPS</a> compared to hard disks. But the consideration of cost rules them out as primary mass storage. But for most applications you would not consider storing everything in <a href="http://en.wikipedia.org/wiki/Random-access_memory">RAM</a> either &#8211; yet RAM cache is part of any storage system. Why wouldn&#8217;t we take advantage of Solid state drives as an intermediary tier between RAM and hard disks ? This reasoning is what <a href="http://en.wikipedia.org/wiki/Hierarchical_storage_management">hierarchical storage management</a> is about, but <a href="http://en.wikipedia.org/wiki/Sun_Microsystems">Sun</a> took it one step further by integrating it into the file system as <a href="http://en.wikipedia.org/wiki/ZFS">ZFS</a>&#8216;s Hybrid Storage Pools.</p>
<p>You can read a <a href="http://www.sun.com/x64/intel/zfs_solution_brief.pdf">quick overview of Hybrid Storage Pools in marketing terms</a>, but you will surely find Sun&#8217;s <a href="http://blogs.sun.com/ahl/resource/leventhal_wish_2009.pdf">Adam Leventhal&#8217;s presentation</a> more substantial as a technical introduction. And most impressive are Sun&#8217;s <a href="http://blogs.sun.com/brendan/entry/l2arc_screenshots">Brendan Gregg&#8217;s benchmarks showing 5x to 40x IOPS improvement</a> !</p>
<p>Adding SSD to a ZFS storage pool is done at to locations : the ZFS intent-log (ZIL) device and the Second Level Adaptive Replacement Cache (L2ARC). Usually they are set on two separate devices, but <a href="http://blogs.sun.com/ds/entry/make_the_most_of_your">Arnaud from Sun showed that they can share a single device just fine</a>.</p>
<p>The ZIL, also known as Logzilla accelerate small, synchronous writes. It does not require a large capacity. The L2ARC, also known as Readzilla accelerates reads. <a href="http://mediacast.sun.com/users/ClaudiaHildebrandt/media/ZFS_arc.pdf">For the gory details of how Logzilla and Readzilla work, Sun&#8217;s Claudia Hildebrandt&#8217;s presentation is a great source</a>.</p>
<p><a href="http://docs.sun.com/app/docs/doc/819-5461/gffyt?l=en&amp;a=view">Creating a ZFS storage pool with one or more separate ZIL devices is dead easy,</a> but you then may want to tune your system for performance. It costs some DRAM to reference the L2ARC, at a rate proportional to record size &#8211; between 1/40th and 1/80th of the L2ARC depending on the tuning (I have seen several different estimates) &#8211; so don&#8217;t set a L2ARC larger than your DRAM affords you.</p>
<p>I hope that this sort of goodness will some day come to Linux through <a href="http://en.wikipedia.org/wiki/Btrfs">Btrfs</a>, but ZFS provides it right now &#8211; and it is <a href="http://en.wikipedia.org/wiki/Free_software">Free software</a> too&#8230; So I guess that in spite of my religious fervor toward <a href="http://en.wikipedia.org/wiki/GNU_General_Public_License">the GPL</a>, my storage server&#8217;s next operating system will be <a href="http://en.wikipedia.org/wiki/FreeBSD">a BSD licensed one</a>&#8230; Who would have thought ?</p>
]]></content:encoded>
			<wfw:commentRss>http://serendipity.ruwenzori.net/index.php/2010/03/09/understanding-how-to-use-ssd-as-hybrid-storage-pools-for-zfs/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Connecting with late adopter friends by distributing XML feeds by mail</title>
		<link>http://serendipity.ruwenzori.net/index.php/2008/11/27/connecting-with-late-adopter-friends-by-distributing-xml-feeds-by-mail</link>
		<comments>http://serendipity.ruwenzori.net/index.php/2008/11/27/connecting-with-late-adopter-friends-by-distributing-xml-feeds-by-mail#comments</comments>
		<pubDate>Thu, 27 Nov 2008 12:17:06 +0000</pubDate>
		<dc:creator>Jean-Marc Liotier</dc:creator>
				<category><![CDATA[Email]]></category>
		<category><![CDATA[Knowledge management]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[Social networking]]></category>
		<category><![CDATA[Systems administration]]></category>
		<category><![CDATA[The Web]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://serendipity.ruwenzori.net/?p=188</guid>
		<description><![CDATA[Have you tried one more time to convince you parents to switch to web feeds to get updates from the family ? Do you cringe when you see your colleague clumsily wade through a collections of sites main pages instead of having them aggregated in a single feed ? Or did your technophobe girlfriend miss the [...]]]></description>
			<content:encoded><![CDATA[<p>Have you tried one more time to convince you parents to switch to <a href="http://en.wikipedia.org/wiki/Web_feed">web feeds</a> to get updates from the family ? Do you cringe when you see your colleague clumsily wade through a collections of sites main pages instead of having them aggregated in a single feed ? Or did your technophobe girlfriend miss the latest photo album you posted ? With <a href="http://regulargeek.com/2008/10/21/newspapers-rss-for-the-mainstream-user/">a wide variety of source acknowledging that web feeds ans web feeds readers being perceived as too technical</a>, many of us have scaled back this particular evangelization effort to focus it on users ripe for transitionning from basic to advanced  tools.</p>
<p>Breaking through that resistance outright is beyond our power, but we can get around it. Electronic mail is a mature tool with well understood use cases with which even the least competent users feels comfortable thanks to how easily it maps with the deeply assimilated physical mail model. This is why <a href="http://www.louisgray.com/live/2008/10/im-evangelizing-rss-with-google-readers.html">Louis Gray has started mailing Google Reader items to promote the use of that web feed reader</a>. But we can do better than that by building a fully automated bridge from web feed to email.</p>
<p>Our hope for plugging the late adopters into the information feeds is named <a href="http://rss2email.infogami.com/">rss2email</a>. As its name suggests, Aaron Swartz&#8217;s <a href="http://en.wikipedia.org/wiki/GNU_General_Public_License">GPL</a>-licensed <a href="http://www.aaronsw.com/2002/rss2email/">rss2email</a> utility converts <a href="http://en.wikipedia.org/wiki/RSS">RSS</a> subscriptions into email messages and sends them to whatever address you specify. Despite the name, it handles <a href="http://en.wikipedia.org/wiki/Atom_%28standard%29">Ato</a><a href="http://en.wikipedia.org/wiki/Atom_%28standard%29">m</a> feeds as well, so you should be able to use it with just about any feed you like. And of course <a href="http://packages.debian.org/search?keywords=rss2email">rss2email is available from Debian</a>.</p>
<p><a href="http://www.linux.com/feature/50469">The nice introduction to rss2email</a> by <a href="http://www.dissociatedpress.net/">Joe &#8216;Zonker&#8217; Brockmeier</a> is all the documentation you need &#8211; and <a href="http://www.aaronsw.com/2002/rss2email/">rss2email</a> is so simple that you probably don&#8217;t even need that. I now have some of my favorite late adopters each plugged into his custom subset of my regular information distribution feeds. The relevant news stories get mailed to them without me having to even think about it. And the best part is that they now read them !</p>
]]></content:encoded>
			<wfw:commentRss>http://serendipity.ruwenzori.net/index.php/2008/11/27/connecting-with-late-adopter-friends-by-distributing-xml-feeds-by-mail/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
