<?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; rants</title>
	<atom:link href="http://blog.adamspiers.org/tag/rants/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>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_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/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_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/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>An email I just sent to BT</title>
		<link>http://blog.adamspiers.org/2011/07/25/an-email-i-just-sent-to-bt/</link>
		<comments>http://blog.adamspiers.org/2011/07/25/an-email-i-just-sent-to-bt/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 18:31:18 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[hidden]]></category>
		<category><![CDATA[BT]]></category>
		<category><![CDATA[incompetence]]></category>
		<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://blog.adamspiers.org/?p=511</guid>
		<description><![CDATA[Dear Sir/Madam, This is absolutely appalling support &#8211; all FIVE methods I tried for contacting BT regarding this issue failed: I responded to the email regarding incident number [CENSORED] providing a time and method for calling me as requested, but noone ever called back. I rang 0800 731 0286 and selected option 1 &#8211; it rang for several minutes with no answer [...]]]></description>
			<content:encoded><![CDATA[<p>Dear Sir/Madam,</p>
<p>This is absolutely appalling support &#8211; all FIVE methods I tried for contacting BT regarding this issue failed:</p>
<ol>
<li>I responded to the email regarding incident number [CENSORED] providing a time and method for calling me as requested, but noone ever called back.</li>
<li>I rang <a href="tel:0800%20731%200286">0800 731 0286</a> and selected option 1 &#8211; it rang for several minutes with no answer then hung me up.</li>
<li>There is a bug with your login process on <a href="http://btvoip.custhelp.com/" target="_blank">btvoip.custhelp.com</a> where the password dialog box is not shown alongside the username dialog box, so I could not log in.  Additionally  requesting a new password failed, as did re-registration.</li>
<li>Clicking &#8220;Contact Us&#8221; on <a href="http://btvoip.custhelp.com/" target="_blank">btvoip.custhelp.com</a> does nothing.</li>
<li>Clicking &#8220;Live Chat&#8221; on <a href="http://btvoip.custhelp.com/" target="_blank">btvoip.custhelp.com</a> results in the error &#8221;There was a problem connecting to the Chat Server&#8221;.</li>
</ol>
<p>All this is in regard to attempting to switch my landline back from Orange to BT.  Now I am beginning to wonder why I should bother.  At least I can talk to Orange, even if they get everything wrong.</p>
<p>If this ever reaches a human being, please call me as requested in my original email!</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%2F07%2F25%2Fan-email-i-just-sent-to-bt%2F&amp;title=An%20email%20I%20just%20sent%20to%20BT" 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/07/25/an-email-i-just-sent-to-bt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maven fail</title>
		<link>http://blog.adamspiers.org/2010/10/07/maven-fail/</link>
		<comments>http://blog.adamspiers.org/2010/10/07/maven-fail/#comments</comments>
		<pubDate>Thu, 07 Oct 2010 19:18:37 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[hidden]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[dependencies]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[make]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://blog.adamspiers.org/?p=277</guid>
		<description><![CDATA[In my recent work I have encountered Apache Maven, and I think the following snippet of real-world Maven code nicely sums up why Maven is not the idea replacement for the horror that is ant: Dear god. 34 lines and a plug-in, just to change the permissions on a file in a platform-specific way?? I [...]]]></description>
			<content:encoded><![CDATA[<p>In my recent work I have encountered <a href="http://maven.apache.org/">Apache Maven</a>, and I think the following snippet of real-world Maven code nicely sums up why Maven is <strong>not</strong> the idea replacement for <a href="http://blog.adamspiers.org/ant-dependency-fail/">the horror that is ant</a>:</p>
<pre class="brush: xml; title: ; notranslate">
  &lt;profiles&gt;
    &lt;profile&gt;
      &lt;id&gt;unix&lt;/id&gt;
      &lt;activation&gt;
        &lt;os&gt;
          &lt;family&gt;unix&lt;/family&gt;
        &lt;/os&gt;
      &lt;/activation&gt;
      &lt;build&gt;
        &lt;plugins&gt;
          &lt;plugin&gt;
            &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
            &lt;artifactId&gt;exec-maven-plugin&lt;/artifactId&gt;
            &lt;executions&gt;
              &lt;execution&gt;
                &lt;id&gt;set-run-file-perms&lt;/id&gt;
                &lt;phase&gt;generate-resources&lt;/phase&gt;
                &lt;goals&gt;
                  &lt;goal&gt;exec&lt;/goal&gt;
                &lt;/goals&gt;
                &lt;configuration&gt;
                  &lt;executable&gt;chmod&lt;/executable&gt;
                  &lt;arguments&gt;
                    &lt;argument&gt;0755&lt;/argument&gt;
                    &lt;argument&gt;${project.build.directory}/foo.sh&lt;/argument&gt;
                  &lt;/arguments&gt;
                &lt;/configuration&gt;
              &lt;/execution&gt;
            &lt;/executions&gt;
          &lt;/plugin&gt;
        &lt;/plugins&gt;
      &lt;/build&gt;
    &lt;/profile&gt;
  &lt;/profiles&gt;
</pre>
<p>Dear god.  34 lines and a plug-in, just to change the permissions on a file in a platform-specific way??</p>
<p>I should add that the above was written by an extremely smart guy who is a top-notch programmer; no, I don&#8217;t think the author is at fault here.  Even if there&#8217;s a more concise/portable way of achieving the same result in Maven (and there might well be &#8211; I admit I&#8217;m still a Maven newbie), there&#8217;s still the undeniable fact that XML is horrendously verbose, and any code written in it is by nature unnecessarily difficult to maintain.  To this end I applaud the <a href="http://github.com/mrdon/maven-yamlpom-plugin/wiki">ongoing efforts supporting the use of YAML to implement the Maven POM</a>.</p>
<p>It&#8217;s worth seeing what the above would look like if we wrote it in <a href="http://rake.rubyforge.org/">rake</a>:</p>
<pre class="brush: ruby; title: ; notranslate">
require 'pathname'

desc &quot;Make binary executable&quot;
task :chmod do
  File.new(Pathname.new(build_dir) + &quot;foo.sh&quot;).chmod(0755)
end
</pre>
<p>I don&#8217;t think I need to make a case for which is more legible or maintainable.  Oh, <em>and</em> the Ruby version is cross-platform.</p>
<p>To continue an anti-XML rant which has been made <a href="http://www.google.co.uk/search?q=xml+sucks">countless times already</a>: what the ant and Maven people don&#8217;t seem to realise is that XML is not a real programming language and is therefore not expressive enough to deal with many cases that a build system needs.  The clue&#8217;s <a href="http://en.wikipedia.org/wiki/Xml">in the name</a>, guys!  &#8220;M&#8221; is for &#8220;markup&#8221; not &#8220;<a href="http://en.wikipedia.org/wiki/Turing_completeness">Turing-complete</a>&#8220;.  That&#8217;s why every time you need to do something vaguely unusual for which there isn&#8217;t an ant <code>taskdef</code> or Maven plugin, you have to write hundreds of lines more Java/XML just to cope with that case.  That&#8217;s why Maven needs so many damn plugins.</p>
<p>The accidental silver lining to this is that because it takes so much effort to accomplish simple tasks, Maven developers find themselves compelled to reuse and share plugins, and to be fair, Maven has some good ideas on how to do this, even if the implementation isn&#8217;t always the best.  For example, the built-in <a href="http://maven.apache.org/repository-management.html">plug-in repository management</a> and <a href="http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html">plug-in dependency management</a> seem to work nicely, but unfortunately for some reason it has a propensity to download plug-ins on most runs, far more frequently than any sensible caching layer should.</p>
<p><a href="http://en.wikipedia.org/wiki/Domain-specific_language">DSL</a> issues aside, I&#8217;m not convinced by <a href="http://en.wikipedia.org/wiki/Apache_Maven#Build_Lifecycles">the fixed lifecycle philosophy behind Maven</a> either.  I wonder if it was borne out of frustration with <a href="http://blog.adamspiers.org/ant-dependency-fail/">the lack of proper dependency checking in ant</a>.</p>
<p>That said, I do like how Maven encourages standardization of the build lifecycle and phase namespace thereof, since newcomers to a project immediately know some familiar entry points.  But the same could be said of 99% of projects which use Make and use standard rule target names such as <code>install</code> and <code>clean</code>.  And I suspect that many developers suffer when they try to shoe-horn their own project&#8217;s build requirements into Maven&#8217;s standard lifecycle.</p>
<p>My concern with this phased approach is that it is too linear.  The expectation is that a build process is a one-dimensional sequence of steps, and you get to choose your starting point but not much else.  This seems fundamentally wrong to me.  A build dependency tree is well understood to be a <a href="http://en.wikipedia.org/wiki/Directed_acyclic_graph">DAG</a>, and any build system which doesn&#8217;t model this properly seems to me to be burying its head in the sand.  On the other hand, if it does model it properly, which includes implementing proper dependency resolution, the required build lifecycle should emerge naturally without having to dictate that <code>generate-sources</code> comes before <code>compile</code> which comes before <code>test</code> and so on.</p>
<p>I&#8217;ve had some ideas of what the ideal build system looks like, and how to get there from the conventional Java world.  More on that soon.</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%2F2010%2F10%2F07%2Fmaven-fail%2F&amp;title=Maven%20fail" 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/2010/10/07/maven-fail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>get (no) satisfaction FAIL</title>
		<link>http://blog.adamspiers.org/2010/03/02/get-no-satisfaction-fail/</link>
		<comments>http://blog.adamspiers.org/2010/03/02/get-no-satisfaction-fail/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 10:17:44 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[hidden]]></category>
		<category><![CDATA[fail]]></category>
		<category><![CDATA[getsatisfaction]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://blog.adamspiers.org/?p=243</guid>
		<description><![CDATA[I only just realised how lame getsatisfaction.com is: You can&#8217;t sort search results by popularity You can&#8217;t restrict search results to answered or unanswered questions Well, that pretty much renders it totally useless right there, for both customers and companies, unless the community you&#8217;re searching is tiny, in which case why would you need the [...]]]></description>
			<content:encoded><![CDATA[<p>I only just realised how lame <a href="http://getsatisfaction.com/">getsatisfaction.com</a> is:</p>
<ul>
<li>You can&#8217;t sort search results by popularity</li>
<li>You can&#8217;t restrict search results to answered or unanswered questions</li>
</ul>
<p>Well, that pretty much renders it totally useless right there, for both customers and companies, unless the community you&#8217;re searching is tiny, in which case why would you need the site anyway?</p>
<p>Oh yeah, and the <a href="http://getsatisfaction.com/getsatisfaction/topics/is_there_any_way_to_search_for_all_words_not_just_any">undocumented boolean AND searches don&#8217;t work</a>.</p>
<p>Staggering.  (I&#8217;m praying someone will tell me I&#8217;m wrong about at least one of these.)</p>
<p><strong>Update 2010/03/07:</strong> got a <a href="http://getsatisfaction.com/getsatisfaction/topics/sort_ideas_by_number_of_followers">reply from getsatisfaction</a> on search results sorting &#8211; I was right but there is a kind of lame alternative.</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%2F2010%2F03%2F02%2Fget-no-satisfaction-fail%2F&amp;title=get%20%28no%29%20satisfaction%20FAIL" 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/2010/03/02/get-no-satisfaction-fail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ant dependency FAIL</title>
		<link>http://blog.adamspiers.org/2010/01/05/ant-dependency-fail/</link>
		<comments>http://blog.adamspiers.org/2010/01/05/ant-dependency-fail/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 01:28:03 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[hidden]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[ant]]></category>
		<category><![CDATA[dependencies]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[make]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://blog.adamspiers.org/?p=196</guid>
		<description><![CDATA[Oh wow, that&#8217;s four hours of my life I won&#8217;t get back. Four hours trying to figure out why the hell my changes to .java source files weren&#8217;t showing up in the compiled binaries, debugging an unholy mess of ant XML files, before I finally realised how badly ant&#8217;s dependency checking sucks &#8230; Then 5 [...]]]></description>
			<content:encoded><![CDATA[<p>Oh wow, that&#8217;s four hours of my life I won&#8217;t get back.</p>
<p>Four hours trying to figure out why the hell my changes to .java source files weren&#8217;t showing up in the compiled binaries, debugging an unholy mess of ant XML files, before I finally realised how badly ant&#8217;s dependency checking sucks &#8230; Then 5 minutes of googling for &#8216;ant sucks&#8217; and I find two <a href="http://andreas-krey.blogspot.com/2009/01/ant-bad.html">excellently written</a> <a href="http://olsner.se/2008/03/29/ant-sucks/">rants</a> which confirm my discovery (you might need to consult google&#8217;s cache for the latter).</p>
<p>I shouldn&#8217;t have been surprised.  Anything which uses XML as a domain-specific language should have already set the alarm bells ringing, but my excitement at learning something new initially blotted out the dull headache caused by hacking in XML.  Bah!</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%2F2010%2F01%2F05%2Fant-dependency-fail%2F&amp;title=ant%20dependency%20FAIL" 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/2010/01/05/ant-dependency-fail/feed/</wfw:commentRss>
		<slash:comments>0</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_14"><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>

