<?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>Structured Procrastination &#187; Linux</title>
	<atom:link href="http://blog.adamspiers.org/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.adamspiers.org</link>
	<description>because there's always something more interesting than what you should be doing</description>
	<lastBuildDate>Sat, 05 May 2012 16:47:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Tool-building hacks #1: audible pings</title>
		<link>http://blog.adamspiers.org/2012/02/11/tool-building-hacks-1-audible-pings/</link>
		<comments>http://blog.adamspiers.org/2012/02/11/tool-building-hacks-1-audible-pings/#comments</comments>
		<pubDate>Sat, 11 Feb 2012 19:07:56 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[hidden]]></category>
		<category><![CDATA[audible]]></category>
		<category><![CDATA[diagnostics]]></category>
		<category><![CDATA[IP]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[ping]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://blog.adamspiers.org/?p=659</guid>
		<description><![CDATA[I think I&#8217;m genetically a tool-builder. My dad and uncle both take great pleasure in carefully selecting and buying or building tools for their workshops, my mum&#8217;s an expert woodcarver with a fair array of sharp pointy things, and these are not the only examples in the family. For me, the habit has manifested in [...]]]></description>
			<content:encoded><![CDATA[<p>I think I&#8217;m genetically a tool-builder.  My dad and uncle both take great pleasure in carefully selecting and buying or building tools for their workshops, my mum&#8217;s an expert woodcarver with a fair array of sharp pointy things, and these are not the only examples in the family.  For me, the habit has manifested in electronic form, and I really enjoy programming new scripts etc. to help me work more efficiently.  In fact I&#8217;ve collected such a vast array of them over the years that <a href="https://github.com/aspiers/shell-env/commit/666833bf592f">I had to start tracking them under version control back in 1999</a>.  (CVS did me proud for many years, but it did not age well, and I finally migrated them to git a few months ago.)</p>
<p>I can&#8217;t claim to be remotely unusual in this respect though &#8211; there&#8217;s <a href="http://en.wikipedia.org/wiki/Hack_(programmer_subculture)">a whole subculture of programmers (&#8220;hackers&#8221;)</a> who can relate to this mindset.  Sometimes when I build a new tool, I get the impulse to share it with the world in case it turns out to be of use to anyone else.  In the past, these hacks have ended up on <a href="http://adamspiers.org/computing/my-software.html">my software web page</a>, but I think this blog might be a better medium.</p>
<p>So, without further ado, here&#8217;s a cute hack I just built: <a href="https://github.com/aspiers/shell-env/blob/master/bin/bping">bping</a>, a wrapper around <a href="http://en.wikipedia.org/wiki/Ping"><code>ping(8)</code></a> which makes it do a lot of beeping <img src='http://blog.adamspiers.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  &#8211; one beep per packet received, with pitch going up an octave for every doubling of the response latency.  (See below for installation instructions.) Why did I want this?  </p>
<p>I use <a href="http://en.wikipedia.org/wiki/Ping">ethernet over power</a> to connect the machines in my bedroom to the equipment in the lounge.  In a high-rise apartment block with about 100 wireless networks fighting over the same spectrum band, this is (normally) a much more reliable option.  However yesterday the connections in my home network started behaving very weirdly.  I tried pinging various machines on the network from each other to narrow down the problem, but it was annoying to have to keep going between rooms to visually monitor the output from the various pings when it would have been quicker to be able to <em>hear</em> the quality of the connections being tested.  So I wrote <a href="https://github.com/aspiers/shell-env/blob/master/bin/bping"><code>bping</code></a>, which also turns a laptop into a sort of <a href="http://en.wikipedia.org/wiki/Geiger_counter">Geiger counter</a> for wifi.  </p>
<p>Currently <code>bping</code> uses <a href="https://github.com/aspiers/shell-env/blob/master/bin/bip">bip</a> (here&#8217;s  <a href="https://github.com/aspiers/shell-env/#install">a suggested approach to installation</a>) which in turns uses <a href="http://sox.sourceforge.net/sox.html">sox</a> to make the beeps.  This works fine on Fedora 15 but unfortunately for some reason takes longer than one second to run on Ubuntu 11.10 and openSUSE 12.1, regardless of how short the beep is.  I think it&#8217;s something to do with pulseaudio, but I haven&#8217;t bothered to figure it out yet.  Answers on a e-postcard please &#8230;</p>
<p>By the way, many of my hacks are already publically available on <a href="https://github.com/aspiers">my github account</a>, but most aren&#8217;t documented yet.  The current exceptions are:</p>
<ul>
<li><a href="https://github.com/aspiers/shell-env#readme">my UNIX shell environment and tools</a>, and</li>
<li><a href="https://github.com/aspiers/git-config#readme">my utilities and configuration files for git</a>.</li>
</ul>
<p>I&#8217;ll try to document some of the others soon.  Watch this space!</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.adamspiers.org%2F2012%2F02%2F11%2Ftool-building-hacks-1-audible-pings%2F&amp;title=Tool-building%20hacks%20%231%3A%20audible%20pings" id="wpa2a_2"><img src="http://blog.adamspiers.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.adamspiers.org/2012/02/11/tool-building-hacks-1-audible-pings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>port redirection from kvm host to guest</title>
		<link>http://blog.adamspiers.org/2012/01/23/port-redirection-from-kvm-host-to-guest/</link>
		<comments>http://blog.adamspiers.org/2012/01/23/port-redirection-from-kvm-host-to-guest/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 01:58:03 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[hidden]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[DNAT]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[kvm]]></category>
		<category><![CDATA[libvirt]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[NAT]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[port redirection]]></category>
		<category><![CDATA[QEMU]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[virsh]]></category>
		<category><![CDATA[virtualization]]></category>

		<guid isPermaLink="false">http://blog.adamspiers.org/?p=636</guid>
		<description><![CDATA[I&#8217;ve just started using kvm in earnest, and immediately ran into the challenge of how to access my guest via ssh. My first instinct was to configure the guest in bridged mode, but this doesn&#8217;t work well (or at all) with wireless interfaces. So plan B was to set up port redirection from the host [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just started using <a href="http://www.linux-kvm.org/">kvm</a> in earnest, and immediately ran into the challenge of how to access my guest via ssh.  My first instinct was to configure the guest in bridged mode, but this <a href="http://www.linux-kvm.org/page/Networking#public_bridge">doesn&#8217;t work well (or at all) with wireless interfaces</a>.</p>
<p>So plan B was to set up port redirection from the host to the guest, e.g. so that ssh&#8217;ing to localhost port 2222 would redirect to the guest&#8217;s port 22.</p>
<p>After a quick google, <a href="http://serverfault.com/questions/170079/forwarding-ports-to-guests-in-libvirt-kvm">some fiddling with iptables</a>, and a glance at <a href="http://wiki.libvirt.org/page/Networking">the libvirt Networking wiki page</a>, I was still having no luck.  Then it hit me &#8211; my guest was using <a href="http://doc.opensuse.org/products/draft/openSUSE_Factory/opensuse-kvm_sd_draft/cha.qemu.running.html#cha.qemu.running.networking.usermode">user-mode networking</a>, and rather than getting its DHCP-allocated IP from the libvirtd-launched <code>dnsmasq</code> instance on the host, was receiving a <a href="http://doc.opensuse.org/products/draft/openSUSE_Factory/opensuse-kvm_sd_draft/cha.qemu.running.html#cha.qemu.running.networking.usermode">hardcoded allocation of <code>10.0.2.15</code> from the host which is on <code>10.0.2.2</code></a>.  This can be extremely puzzling at first, because no network commands run on the host (such as <code>ifconfig</code>, <code>iptables</code>, <code>brctl</code>, <code>route</code>) will reveal this magic address, yet the host is still accessible from the guest via it. </p>
<p>After a lot more googling, I stumbled across a technique for <a href="http://www.linux-kvm.com/content/host-guest-port-redirection-fly">configuring host to guest port redirection on a running VM</a>.  This sounded very promising, but <code>virt-manager</code> refused to accept the magic <code>Control-Alt-2</code> key combination to switch to QEMU monitor mode.  It turns out that <a href="http://wiki.libvirt.org/page/FAQ#Can_I_connect_to_the_QEMU_monitor_with_libvirt.3F">this is no accident</a>.  However, since <code>libvirt 0.8.8</code>, <a href="http://blog.vmsplice.net/2011/03/how-to-access-qemu-monitor-through.html">the QEMU monitor can be accessed via <code>virsh</code></a>.<br />
Note that the <code>--hmp</code> option is required, otherwise <a href="http://blog.devnu11.net/2011/05/libvirt-qemu-monitor-protocol-qmp-2/">the monitor expects the command in JSON format</a>, so omitting it leads to errors like <code>error: internal error cannot parse json ... lexical error: invalid char in json text</code>.</p>
<p>The final hurdle was figuring out the correct monitor command.  The <code>host_net_redir</code> command as mentioned in the above article is no longer recognized.  Luckily the QEMU monitor interface helped me out here &#8211; I spotted an encouraging sounding command <code>hostfwd_add</code>:</p>
<pre class="brush: bash; title: ; notranslate">
# virsh qemu-monitor-command --hmp sles11 'help hostfwd_add'
hostfwd_add [vlan_id name] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport -- redirect TCP or UDP connections from host to guest (requires -net user)
</pre>
<p>and <a href="http://www.google.co.uk/search?q=hostfwd_add+host_net_redir">google confirmed that the latter had superceded the former</a>.</p>
<p>So finally we have the complete solution:</p>
<pre class="brush: bash; title: ; notranslate">
# virsh qemu-monitor-command --hmp sles11 'hostfwd_add ::2222-:22'
# ssh -p 2222 localhost
Password:
Last login: Mon Jan 23 00:37:44 2012
linux-mnsh:~ #
</pre>
<p>Hooray!</p>
<p><span style="color: red">UPDATE:</span> just found another very simple solution &#8211; add a new NIC to the VM which doesn&#8217;t use user-mode networking. Then it will get a IP (on 192.168.100.0/24 by default) which is still NAT&#8217;d but also routable via <code>virbr0</code> on the host, meaning no redirection is necessary; just ssh directly to the guest&#8217;s IP from the host.  A minor disadvantage of this is that the guest won&#8217;t be directly reachable from outside the host, but that&#8217;s unlikely to be an issue in most scenarios.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.adamspiers.org%2F2012%2F01%2F23%2Fport-redirection-from-kvm-host-to-guest%2F&amp;title=port%20redirection%20from%20kvm%20host%20to%20guest" id="wpa2a_4"><img src="http://blog.adamspiers.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.adamspiers.org/2012/01/23/port-redirection-from-kvm-host-to-guest/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux desktop community &#8220;outraged&#8221; by latest Torvalds comments</title>
		<link>http://blog.adamspiers.org/2011/11/29/linux-desktop-community-outraged-by-latest-torvalds-comments/</link>
		<comments>http://blog.adamspiers.org/2011/11/29/linux-desktop-community-outraged-by-latest-torvalds-comments/#comments</comments>
		<pubDate>Tue, 29 Nov 2011 15:40:38 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[fun]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[hidden]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Canonical]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[Ebay]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[joke]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MacOS X]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[Sony]]></category>
		<category><![CDATA[Torvalds]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[Unity]]></category>

		<guid isPermaLink="false">http://blog.adamspiers.org/?p=609</guid>
		<description><![CDATA[Once again, users and developers all around the Linux desktop community have been provoked by controversial comments from Linus Torvalds, creator and long-time maintainer of the Linux kernel. Back in October, Linus dubbed GNOME 3 an &#8220;unholy mess&#8221;, referring to one of the changes as &#8220;crazy crap&#8221; and demanding &#8220;I want my sane interfaces back&#8221;. Since [...]]]></description>
			<content:encoded><![CDATA[<p>Once again, users and developers all around the Linux desktop community have been provoked by controversial comments from Linus Torvalds, creator and long-time maintainer of the Linux kernel.  Back in October, <a href="http://www.theregister.co.uk/2011/08/05/linus_slams_gnome_three/">Linus dubbed GNOME 3 an &#8220;unholy mess&#8221;</a>, referring to one of the changes as &#8220;crazy crap&#8221; and demanding &#8220;I want my sane interfaces back&#8221;.  Since then he has gone even further, contending that &#8220;for some people, a stable, flexible functional desktop environment is far more important than the latest eye candy or trendy minimalist UI design.&#8221;</p>
<p>Reaction from the desktop development community has been swift and mostly unapologetic.  <a href="http://en.wikipedia.org/wiki/Mark_Shuttleworth">Mark Shuttleworth</a>, the founder of <a href="http://en.wikipedia.org/wiki/Canonical_Ltd">Canonical</a>, responded &#8220;Once again, Linus is underestimating the importance of aesthetics in computing. You only have to look at Apple to see that people place more importance on visual beauty than the kind of efficient work processes that a flexible and reliable desktop environment enable.  This is why we&#8217;re pushing our new Unity launcher as a mandatory part of Ubuntu.  We&#8217;re confident that people will quickly overcome the initial shock of <a href="http://www.linuxjournal.com/video/unity-3-rants-and-tip">everything taking longer to find and access</a> because they&#8217;ll be too busy admiring how beautiful it looks.&#8221;  He then cited the latest 11.10 release as an example of this.  &#8220;If you look in the <a href="https://wiki.ubuntu.com/OneiricOcelot/ReleaseNotes">release notes for [Oneiric Ocelot]</a>, you&#8217;ll see a new Alt+Tab switcher at the top of the list of highlights, and below it other radical changes such as renaming &#8216;Places&#8217; to &#8216;Lenses&#8217;.  Frankly, most people lap up this whizzbang shit, and as long as it looks cooler than their friend&#8217;s Windows 7 netbook they&#8217;ll be willing to tolerate <a href="http://goo.gl/caerL">some minor annoyances</a> which are unavoidable when making <a href="http://www.pcpro.co.uk/blogs/2011/05/03/ubuntu-unity-the-great-divider/">immature software</a> a critical component of the desktop.  Sure, we could prioritise boring bug-fixing over innovation, but that just doesn&#8217;t excite the teenagers on the web forums, and we have to think about the next generation of users.  Besides, if you want a dumbed down system that mostly works, there&#8217;s always Mac OS X.&#8221;</p>
<p><a href="http://en.wikipedia.org/wiki/Havoc_Pennington">Havoc Pennington</a>, a GNOME developer well-known for initiating the war on Linux desktop flexibility by <a href="http://ometer.com/free-software-ui.html">drastically reducing the number of preferences</a> and replacing GNOME&#8217;s default window manager, the high-performance scriptable <a href="http://en.wikipedia.org/wiki/Sawfish_(window_manager)">Sawfish</a>, with <a href="http://en.wikipedia.org/wiki/Twm">Metacity</a>, commented: &#8220;It&#8217;s about achieving the right work/play balance. If your desktop allowed you to get stuff done too quickly, it would just increase your stress levels.  <a href="http://mail.gnome.org/archives/usability/2005-December/msg00021.html">Some &#8216;power&#8217; users think they want to be able to stream-line their workflows</a>, but we know better, so <a href="http://www.christoph-wickert.de/blog/2011/06/25/gnome-developer-quote-of-the-day/">we are doing them a favour by making this customizability harder</a>.  After all, everyone needs basically the same things.  Rather than trying to be different, <a href="http://goo.gl/pTCZy">these people</a> should instead learn to enjoy the cute visuals and focus more on having fun.  Life&#8217;s more than just work, work, work, you know.&#8221;</p>
<p>The KDE camp has been slightly less vociferous, perhaps because it&#8217;s old hat for them &#8211; back in 2008 they pioneered the concept of intrusive redesigns and ended up <a href="http://linuxhelp.blogspot.com/2009/01/linus-torvalds-ditches-kde-4-for-gnome.html">the wrong end of one of Linus&#8217; rants</a> as a result.  &#8220;With KDE 4.0, we did our best to prevent people achieving real work, and I think we largely succeeded&#8221;, one of the KDE team leaders recalls.  &#8220;I mean, there was a significant period of time where neither the KDE3 version of knetworkmanager nor its KDE4 rewrite worked properly, so for many wireless networks, the only way you could connect was to disable NetworkManager and write a shell-script to interface directly with wpa-supplicant and ifup.  And that&#8217;s just one small example.&#8221;</p>
<p>Despite Torvalds&#8217; comments, the move towards form over function has been witnessed elsewhere outside the desktop software space.  For example, Apple have introduced <a href="http://www.theonion.com/video/apple-introduces-revolutionary-new-laptop-with-no,14299/">the MacWheel</a>, a move so bold that it makes innovations such as Unity and the GNOME Shell look positively conservative.  However there is no clear industry-wide consensus; in fact companies such as <a href="http://goo.gl/wydGJ">Ebay</a> and <a href="http://goo.gl/CQhe">Sony</a> are beginning to experiment with rejecting both form <em>and</em> function, turning conventional wisdom on its head.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.adamspiers.org%2F2011%2F11%2F29%2Flinux-desktop-community-outraged-by-latest-torvalds-comments%2F&amp;title=Linux%20desktop%20community%20%E2%80%9Coutraged%E2%80%9D%20by%20latest%20Torvalds%20comments" id="wpa2a_6"><img src="http://blog.adamspiers.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.adamspiers.org/2011/11/29/linux-desktop-community-outraged-by-latest-torvalds-comments/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Running Amazon MP3 downloader on 64-bit Ubuntu 11.04 (Natty Narwhal)</title>
		<link>http://blog.adamspiers.org/2011/09/25/running-amazon-mp3-downloader-on-64-bit-ubuntu-11-04-natty-narwhal/</link>
		<comments>http://blog.adamspiers.org/2011/09/25/running-amazon-mp3-downloader-on-64-bit-ubuntu-11-04-natty-narwhal/#comments</comments>
		<pubDate>Sun, 25 Sep 2011 14:00:18 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[hidden]]></category>
		<category><![CDATA[64-bit]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MP3]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.adamspiers.org/?p=594</guid>
		<description><![CDATA[Amazon MP3 store &#8211; a phenomenonly popular online music store. Ubuntu &#8211; a phenomenonly popular version of Linux. 64-bit x86_64 CPUs &#8211; been around for years. You&#8217;d think this was a good combination, wouldn&#8217;t you? Wrong Amazon, along with Spotify and countless others, is dismally failing to support its rapidly growing set of customers who [...]]]></description>
			<content:encoded><![CDATA[<p>Amazon MP3 store &#8211; a phenomenonly popular online music store.  Ubuntu &#8211; a phenomenonly popular version of Linux. 64-bit x86_64 CPUs &#8211; been around for years.  You&#8217;d think this was a good combination, wouldn&#8217;t you?  Wrong <img src='http://blog.adamspiers.org/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' />   Amazon, along with <a href="http://getsatisfaction.com/spotify/topics/will_there_be_rpm_or_spotify_repository_for_other_distros#reply_6670641">Spotify</a> and countless others, is dismally failing to support its rapidly growing set of customers who run Linux.  As I&#8217;ve said elsewhere, even if 2% of your customers use Linux, that can still be a huge number.  Hopefully some day these big companies will acquire some common sense.</p>
<p>Anyway, in the mean time a quick google brought up the following solution:</p>
<ul>
<li><a href="http://www.dgf64art.com/2011/07/05/installing-amazon-mp3-downloader-on-ubuntu-11-04/">http://www.dgf64art.com/2011/07/05/installing-amazon-mp3-downloader-on-ubuntu-11-04/</a> (unfortunately this link no longer works)
</ul>
<p>Unfortunately it doesn&#8217;t work &#8211; the step which installs the manually downloaded .deb files fails due to broken dependencies.  However further googling found a <a href="http://jonathonhill.net/2008-12-26/installing-32-bit-programs-on-64-bit-ubuntu-linux/">post from 2008</a> which revealed a technique based on the very useful <code>getlibs</code> utility.</p>
<p>So here&#8217;s my solution:</p>
<ol>
<li>Download the 32-bit Amazon downloader app for Ubuntu 9.10.
<li>Run <code>sudo dpkg -i --force-all AmazonMP3DownloaderInstall.deb</code>
<li>Run <code>sudo apt-get install getlibs</code> if you don&#8217;t already have <code>getlibs</code> installed.
<li>Run <code>sudo getlibs /usr/bin/amazonmp3</code> and answer yes to the confirmation.
</ol>
<p>At this point if you try to run <code>/usr/bin/amazonmp3</code> you&#8217;ll probably hit <a href="https://bugs.launchpad.net/ubuntu/+source/ia32-libs/+bug/781870">Ubuntu bug 781870</a>.  The workaround is as follows:</p>
<pre class="brush: bash; title: ; notranslate">
export GDK_PIXBUF_MODULE_FILE=/usr/lib32/gdk-pixbuf-2.0/2.10.0/loaders.cache
/usr/bin/amazonmp3
</pre>
<p>You&#8217;ll still get an error that it&#8217;s trying to load the 64-bit version of <code>libgvfsdbus.so</code> thanks to <a href="https://bugs.launchpad.net/ubuntu/+source/ia32-libs/+bug/369498">Ubuntu bug 369498</a>.  I had hopes that <a href="https://answers.launchpad.net/ubuntu/+source/ia32-libs/+question/98762"><code>export GIO_EXTRA_MODULES=/usr/lib32/gio/modules</code> would fix this</a>, but it seems that this variable only gets honoured too late. However, apparently this issue doesn&#8217;t stop the program working so can be ignored.</p>
<p>Another option is to use Banshee&#8217;s built-in Amazon downloader, but even without all the <a href="http://www.networkworld.com/community/banshee-amazon-store-disabled-by-canonical-in-ubuntu">politics surrounding Ubuntu&#8217;s version of Banshee</a> this didn&#8217;t suit my tastes.</p>
<p><span style="color: red">UPDATE:</span> Wow.  Just found out <a href="http://www.amazon.com/Can-I-re-download/forum/Fx3P42S75I9N8FX/Tx1JQUC3VCLTLS0/1?_encoding=UTF8&#038;asin=B0035DH9GC">Amazon doesn&#8217;t support re-downloading stuff you&#8217;ve already bought</a>.  This is truly pathetic, especially considering their Android app kind of implements a locker service.  From now on I&#8217;ll be using <a href="http://7digital.com">7digital</a> whenever I can &#8211; unfortunately their selection isn&#8217;t as big though.  The quest for the perfect music services continues &#8230; :-/</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.adamspiers.org%2F2011%2F09%2F25%2Frunning-amazon-mp3-downloader-on-64-bit-ubuntu-11-04-natty-narwhal%2F&amp;title=Running%20Amazon%20MP3%20downloader%20on%2064-bit%20Ubuntu%2011.04%20%28Natty%20Narwhal%29" id="wpa2a_8"><img src="http://blog.adamspiers.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.adamspiers.org/2011/09/25/running-amazon-mp3-downloader-on-64-bit-ubuntu-11-04-natty-narwhal/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>CompuTrainer on Linux</title>
		<link>http://blog.adamspiers.org/2009/06/20/computrainer-on-linux/</link>
		<comments>http://blog.adamspiers.org/2009/06/20/computrainer-on-linux/#comments</comments>
		<pubDate>Sat, 20 Jun 2009 18:13:45 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[hidden]]></category>
		<category><![CDATA[training]]></category>
		<category><![CDATA[CompuTrainer]]></category>
		<category><![CDATA[cycling]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[turbo]]></category>
		<category><![CDATA[VMware]]></category>

		<guid isPermaLink="false">http://wordpress.adamspiers.org/?p=104</guid>
		<description><![CDATA[Finally started using my CompuTrainer a bit more. Just rode 20km in the lounge with the computer pacing me at 200 Watts. After so much riding with guys way stronger than me, the temptation to draft the computer is difficult to resist. However in the last 500 metres it spontaneously decided to make a sprint [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.racermateinc.com/computrainer.asp"><img class="alignright size-medium wp-image-128" src="http://blog.adamspiers.org/wp-content/uploads/2009/06/img_compu_trainer-300x214.gif" alt="" width="300" height="214" /></a></p>
<p>Finally started using my <a href="http://www.racermateinc.com/computrainer.asp">CompuTrainer</a> a bit more.  Just rode 20km in the lounge with the computer pacing me at 200 Watts.  After so much riding with guys way stronger than me, the temptation to draft the computer is difficult to resist.  However in the last 500 metres it spontaneously decided to make a sprint for the finish line &#8211; the bloody cheek!  Obviously I couldn&#8217;t allow a bunch of transistors to beat me so I sprinted after it and hit the finish line 0.05 seconds ahead, narrowly avoiding embarassment.  Next step is to start doing <a href="http://www.triathlontrainingguide.com/brick-workouts-for-triathlon-prep/">brick sessions</a> &#8230;<br />
<span id="more-104"></span><br />
By the way, in case anyone googles for <a href="http://www.google.com/search?q=computrainer linux">computrainer linux</a>, I am actually running it under <a href="http://www.vmware.com/products/ws/">VMware Workstation</a> on <a href="http://linuxmce.org/">LinuxMCE</a> <a href="http://wiki.linuxmce.org/index.php/Version_0710">0710</a> which is based on <a href="http://www.ubuntu.com/">Ubuntu</a> <a href="https://wiki.ubuntu.com/GutsyGibbon">Gutsy</a>.  It works great with the unfortunate exception of the <a href="http://www.computrainer.com/rm_inc/IRCVideos.htm">Interactive Real Course Videos (IRCV)</a>, which seems to be due to missing support in <a href="http://www.vmware.com/products/ws/">VMware Workstation</a> for VMR9.  I&#8217;ve posted about this in both <a href="http://communities.vmware.com/message/1178743#1178743">VMware Communities</a> and the <a href="http://www.racermate.net/forum/viewtopic.php?f=29&amp;t=2159">RacerMate Forum</a> but noone has been able to suggest a solution so far.</p>
<p>UPDATE 15th February 2010 &#8211; great news! Check out this <a href="golden-cheetah/">fantastic new piece of software called Golden Cheetah</a>!</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.adamspiers.org%2F2009%2F06%2F20%2Fcomputrainer-on-linux%2F&amp;title=CompuTrainer%20on%20Linux" id="wpa2a_10"><img src="http://blog.adamspiers.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.adamspiers.org/2009/06/20/computrainer-on-linux/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>farewell KDE, hello GNOME</title>
		<link>http://blog.adamspiers.org/2009/05/11/farewell-kde-hello-gnome/</link>
		<comments>http://blog.adamspiers.org/2009/05/11/farewell-kde-hello-gnome/#comments</comments>
		<pubDate>Mon, 11 May 2009 13:13:40 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[hidden]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://wordpress.adamspiers.org/?p=55</guid>
		<description><![CDATA[Sad to say, I&#8217;ve jumped on the Torvalds bandwagon and switched from KDE 4 to GNOME. Sorry to all the hard-working KDE developers, but I just don&#8217;t have time to put up with a desktop plagued by numerous regressions, and worse, a crippled front-end to NetworkManager. There appear to be two versions of knetworkmanager &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>Sad to say, I&#8217;ve jumped on the <a href="http://itmanagement.earthweb.com/osrc/article.php/3798396/Torvalds-KDE-4-and-the-Media-Circus.htm">Torvalds bandwagon</a> and switched from <a href="http://kde.org/">KDE</a> 4 to <a href="http://www.gnome.org/">GNOME</a>.  Sorry to all the hard-working KDE developers, but I just don&#8217;t have time to put up with a desktop <a href="https://bugs.kde.org/show_bug.cgi?id=158556">plagued</a> by <a href="https://bugs.kde.org/show_bug.cgi?id=164386">numerous</a> <a href="https://bugs.kde.org/show_bug.cgi?id=168914">regressions</a>, and worse, <a href="http://bugzilla.novell.com/show_bug.cgi?id=458933">a crippled front-end to NetworkManager</a>.  There appear to be two versions of knetworkmanager &#8211; the 3.5.x branch which for some reason went under a significant UI redesign and is now harder to use and more buggy, and the 4.x branch which AFAIK is still unfinished and unreleased.  That was the last straw for me &#8211; the NM front-end is arguably the most important component of any modern Linux desktop (from the point of view of laptop users anyway), so I find it fairly staggering that KDE still doesn&#8217;t have one which is stable, polished, and well-designed with respect to usability.</p>
<p>There were other things, like korganizer getting slower and more buggy, phonon not working right, plasma&#8217;s bizarre customisation UI and tendency to leak memory like a sieve, a device notifier pop-up which often makes new devices invisible and unclickable &#8230; but enough is enough, life is too short.  GNOME does what I need (which isn&#8217;t much, thanks to the flexibility of <a href="http://icculus.org/openbox/">openbox</a>).</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.adamspiers.org%2F2009%2F05%2F11%2Ffarewell-kde-hello-gnome%2F&amp;title=farewell%20KDE%2C%20hello%20GNOME" id="wpa2a_12"><img src="http://blog.adamspiers.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.adamspiers.org/2009/05/11/farewell-kde-hello-gnome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

