<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Tau Leaping</title>
    <link rel="alternate" type="text/html" href="http://caulfield.info/emmet/" />
    <link rel="self" type="application/atom+xml" href="http://caulfield.info/emmet/atom.xml" />
    <id>tag:caulfield.info,2008-04-12:/emmet//1</id>
    <updated>2008-11-11T02:52:17Z</updated>
    <subtitle>Emmet&apos;s ramblings about scientific computing and other stuff</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Open Source 4.1</generator>

<entry>
    <title>Installing &apos;killfile&apos; in Firefox</title>
    <link rel="alternate" type="text/html" href="http://caulfield.info/emmet/2008/11/installing-killfile-in-firefox.html" />
    <id>tag:caulfield.info,2008:/emmet//1.27</id>

    <published>2008-11-11T02:37:02Z</published>
    <updated>2008-11-11T02:52:17Z</updated>

    <summary>Over at Pharyngula people often ask how to install killfile, which selectively hides comments in blogs. Here&apos;s how. First, it&apos;s assumed that you&apos;re running Firefox. AFAIK, there is no analogous functionality for other browsers (please comment below if you know...</summary>
    <author>
        <name>Emmet Caulfield</name>
        <uri>http://caulfield.info/emmet/</uri>
    </author>
    
        <category term="English" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Technology" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="firefox" label="firefox" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="pharyngula" label="pharyngula" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://caulfield.info/emmet/">
        <![CDATA[<p>Over at <a href="http://scienceblogs.com/pharyngula">Pharyngula</a> people often ask how to install <i>killfile</i>, which selectively hides comments in blogs.</p>
<p>Here's how.</p>
<p>First, it's assumed that you're running <a href="http://www.mozilla.com/firefox/">Firefox</a>. AFAIK, there is no analogous functionality for other browsers (please comment below if you know otherwise).</p>
<p>Now:</p>
<ol>
  <li>Install the <a href="https://addons.mozilla.org/firefox/addon/748">Greasemonkey</a> user script extension.</li>
  <li>Restart <i>Firefox</i></li>
  <li>Install the <a href="http://userscripts.org/scripts/show/4107">killfile</a> script by clicking on the large black <i>Install this script</i> button at the top of the page.</li>
</ol>
<p>Now, when you load a page on <a href="http://scienceblogs.com/">ScienceBlogs</a> (and any of several other blogs) each post will have two new bits of hot text in the <b>Posted by:</b> line: <tt>[kill]</tt>, which hides all comments by this poster in every thread; and <tt>[hide comment]</tt>, which hides only the single comment.</p>
<p>In place of a hidden comment, a one-line notice appears saying &#8220;<tt>Comment by User Foo blocked [unkill] [show comment]</tt>&#8221;. Clicking on <tt>[unkill]</tt> reveals all of the posts by that user; clicking on <tt>[show comment]</tt> reveals just the single comment.</p>

]]>
        
    </content>
</entry>

<entry>
    <title>Formatting Comments in Movable Type</title>
    <link rel="alternate" type="text/html" href="http://caulfield.info/emmet/2008/09/formatting-comments-in-movable.html" />
    <id>tag:caulfield.info,2008:/emmet//1.24</id>

    <published>2008-09-25T07:42:17Z</published>
    <updated>2008-11-09T19:08:26Z</updated>

    <summary> Over at Pharyngula, people regularly ask how to format posts in particular ways. Here&apos;s a rough guide to the half-dozen most common things people want to do. In all cases, you use HTML (or HTML-like) tags, which (with a...</summary>
    <author>
        <name>Emmet Caulfield</name>
        <uri>http://caulfield.info/emmet/</uri>
    </author>
    
        <category term="English" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Technology" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://caulfield.info/emmet/">
        <![CDATA[ <p>Over at <a href="http://scienceblogs.com/pharyngula/">Pharyngula</a>, people regularly ask how to format posts in particular ways. Here's a rough guide to the half-dozen most common things people want to do.</p>

<p>In all cases, you use HTML (or HTML-like) tags, which (with a few exceptions) occur in opening/closing pairs with your text in between, like this (for an imaginary tag &#8220;foo&#8221;): &lt;foo&gt;some text&lt;/foo&gt;. You have to be very careful to get the syntax right or you will get unexpected results. <em>Preview</em> is your friend.</p>

<h3>Quoting</h3>
<p>In order to quote a previous text, use <tt>&lt;blockquote&gt;</tt>. If you write <p>&#8220;&lt;blockquote&gt;John McCain is a tool.&lt;/blockquote&gt;&#8221;</tt>, it comes out looking like this (indented and possibly with other decoration, such as a bar down the left):</p>

<blockquote>John McCain is a tool.</blockquote>

<h3>Italics</h3>

<p>You can get italics with <tt>&lt;em&gt;</tt> or <tt>&lt;i&gt;</tt>, like this: &#8220;<tt>John McCain is &lt;em&gt;definitely&lt;/em&gt a tool</tt>&#8221; produces &#8220;John McCain <em>definitely</em> a tool&#8221;.</p>

<h3>Bold</h3>

<p>You can get bold with <tt>&lt;strong&gt;</tt> or <tt>&lt;b&gt;</tt>, like this: &#8220;<tt>John McCain is &lt;strong&gt;definitely&lt;/strong&gt a tool</tt>&#8221; produces &#8220;John McCain <strong>definitely</strong> a tool&#8221;.</p>

<h3>Strikethrough</h3>

<p>You can strike text with <tt>&lt;s&gt;</tt>, like this: &#8220;<tt>John McCain is &lt;s&gt;not&lt;/s&gt a tool</tt>&#8221; produces &#8220;John McCain is <s>not</s> a tool&#8221;.</p>

<h3>Underline</h3>

<p>You can underline text with <tt>&lt;u&gt;</tt>, like this: &#8220;<tt>John McCain is &lt;u&gt;such&lt;/u&gt a tool</tt>&#8221; produces &#8220;John McCain is <u>such</u> a tool&#8221;.</p>

<h3>Links</h3>

<p>You can produce links with <tt>&lt;a&gt;</tt>. The text to be linked appears between the elements, and the URL appears in the <tt>href</tt> attribute. &#8220;&lt;a href="http://www.google.com/"&gt;Google&lt;/a&gt;&#8221; comes out as &#8220;<a href="http://www.google.com/">Google</a>&#8221;. Note that the quotes around the URL and the <tt>http://</tt> are <em>not</em> optional. Also, including more than a certain number (2 or 3) links may result in your comment being held for moderation as an anti-spam measure. <em>Preview</em> is your friend.</p>

<h3>Physical vs. Logical Markup</h3>

<p>Not that it makes much difference in the tag soup that is the blogosphere, but to satisfy the pedants, I should note that the <tt>&lt;em&gt;</tt> element is preferred for emphasis and <tt>&lt;i&gt;</tt> for non-emphatic italics. Similarly, <tt>&lt;strong&gt;</tt> is preferred for strong emphasis and <tt>&lt;b&gt;</tt> for non-emphatic emboldening.</p>
]]>
        
    </content>
</entry>

<entry>
    <title>Manually Removing Diversions with dpkg-divert</title>
    <link rel="alternate" type="text/html" href="http://caulfield.info/emmet/2008/07/manually-removing-diversions-w.html" />
    <id>tag:caulfield.info,2008:/emmet//1.23</id>

    <published>2008-07-25T15:09:15Z</published>
    <updated>2008-07-25T15:28:59Z</updated>

    <summary>In an earlier post I said that I&apos;d post details on how to manually remove stale diversions with dpkg-divert if anyone wanted them. Uwe Koch asked, so here it is! Solution The first problem is to find the stale diversions....</summary>
    <author>
        <name>Emmet Caulfield</name>
        <uri>http://caulfield.info/emmet/</uri>
    </author>
    
        <category term="English" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Ubuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="atidriversubuntulinux" label="ATI drivers ubuntu linux" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="bash" label="bash" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="dpkgdivert" label="dpkg-divert" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://caulfield.info/emmet/">
        <![CDATA[<p>In <a href="/emmet/2008/04/fix-ati-catalyst-84-driver-pac.html">an earlier post</a> I said that I'd post details on how to manually remove stale diversions with <tt>dpkg-divert</tt> if anyone wanted them. Uwe Koch asked, so here it is!

<h2>Solution</h2>

<p>The first problem is to find the stale diversions. If you type something like:</p>

<pre class="console">
$ dpkg-divert --list
</pre>

You'll get several lines like this:

<pre class="console">
diversion of /usr/lib/libGL.so.1.2 to /usr/lib/fglrx/libGL.so.1.2.xlibmesa by xorg-driver-fglrx
</pre>

<p>Since you want to filter out the ones that apply to the ATI drivers, and all of them contain <em>fglrx</em>, you can do this:</p>

<pre class="console">
$ dpkg-divert --list | grep fglrx
</pre>

<p>The bit you want is the first path. You can extract that with either:</p>

<pre class="console">
$ dpkg-divert --list | grep fglrx | cut -d' ' -f3
</pre>

<p>or</p>

<pre class="console">
$ dpkg-divert --list | awk '/fglrx/ {print $3}'
</pre>

<p>You should get a list like this:</p>

<pre class="console">
/usr/lib/libGL.so.1.2
/usr/X11R6/lib/libGL.so.1.2
/usr/X11R6/lib32/libGL.so.1.2
/usr/X11R6/lib32/libGL.so.1
/usr/lib32/libGL.so.1.2
/usr/lib32/libGL.so.1
</pre>

<p>You can then manually go through the list, removing the diversions one-by-one:</p>

<pre class="console">
$ sudo dpkg-divert --remove /usr/lib/libGL.so.1.2
</pre>

<p>Alternatively, if you're highly confident in your own bash-fu skills:</p>

<pre class="console">
$ dpkg-divert --list | awk '/fglrx/ {print $3}' | \
> while read; do \
>    sudo dpkg-divert --remove $REPLY; \
> done
</pre>

<p>The above is shown broken over four lines just so that it isn't too wide for the web-page: in practice, I would type it all on one line. This is what is &#8220;really looks like&#8221; completely: the backslashes (\) are typed in and escape the newline which must follow immediately. Bash supplies the &gt; character at the start of each line, which is the secondary shell prompt.</p>

<p>Job done!</p>

]]>
        
    </content>
</entry>

<entry>
    <title>Crackergate Redux</title>
    <link rel="alternate" type="text/html" href="http://caulfield.info/emmet/2008/07/crackergate-redux.html" />
    <id>tag:caulfield.info,2008:/emmet//1.21</id>

    <published>2008-07-24T21:26:31Z</published>
    <updated>2008-07-25T14:53:30Z</updated>

    <summary>The purpose of this post is to briefly explain the background to PZ Myers&apos;s involvement in Crackergate. This is a quick post, and lacks both links and detail. As an atheist ex-Catholic who posts regularly on PZ&apos;s site and has...</summary>
    <author>
        <name>Emmet Caulfield</name>
        <uri>http://caulfield.info/emmet/</uri>
    </author>
    
        <category term="Crackpottery" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="English" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="blogging" label="blogging" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="catholicism" label="Catholicism" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://caulfield.info/emmet/">
        <![CDATA[<p>The purpose of this post is to briefly explain the background to <a href="http://www.scienceblogs.com/pharyngula/">PZ Myers's</a> involvement in <i>Crackergate</i>. This is a quick post, and lacks both links and detail. As an atheist ex-Catholic who posts regularly on PZ's site and has followed the story, I'm reasonably informed, but I'm not unbiased.</p>

<p>The reason for this post is to inform the staggering number of Catholics who are indignantly posting on <a href="">PZ's <em>Pharyngula</em> blog</a> without understanding the background. It's as if they're assuming that PZ woke up one morning and decided to piss off Catholics for no reason.</p>

<h2>Crackergate</h2>

<p>A 19 year-old <em>Catholic</em> student at UCF went to a mass organised on campus. He brought a non-Catholic friend, who was interested in Catholicism, to the mass. During the mass, he explained various aspect of the proceedings to his friend. His friend was curious to see the Eucharist, so at communion, Webster tried to bring the Eucharist back to his seat before consuming it. In Webster's church, this wouldn't have been a big deal as, apparently, in some Catholic traditions, it is quite normal to pray back in the pew before consuming the Eucharist.</p>

<p>Another student, with whom Webster had had some previous disagreements, spotted him walking away from the altar without having immediately consumed the wafer, apparently the norm in most Catholic congregations, and grabbed hold of him, creating a scene. Webster shook off his assailant and went back to his seat. She pursued him, trying to take the Host from his hands. Webster tried to fend her off, putting the Host in his pocket, but ultimately fled the church.</p>

<p>Webster demanded an apology from the other student, holding on to the Host in his student dorm for almost a week before returning it.</p>

<p>Now, there's no doubt that Webster had a rush of blood to the head and behaved unwisely in his anger, but who can say they never made a mistake?</p>

<p>In the mean-time, the offended student made complaints to the university authorities, the student council, and the Catholic League. Bill Donohue weighed in with a fatwa condemning Webster Cook. As a result, Webster received 1000's of condemnatory emails including threats of violence and a couple of death-threats from the lunatic fringe of the Catholic church. Ultimately, Webster believed that he was in danger, which contributed to his decision to return the Eucharistic wafer.</p>

<p>A couple of media outlets picked up on the story.</p>

<p>PZ blogged about this crazy storm-in-a-teacup. Now, one may think that what Webster did was wrong, but it was a religious wrong and the penalty should be religious. If his priest had given him a dressing-down for his behaviour, no problem, but Webster did not deserve threats of violence and death, nor did he deserve to be subject to a witch-hunt in his secular life, with people demanding that he be dismissed from the student senate at UCF and expelled from the university. Separation of church and state: remember?</p>

<p>PZ was, I guess, pretty angry. In defence of this kid, he said &#8220;You think that's desecration? I'll show you desecration&#8221;. Not being a Catholic, he said &#8220;if anyone can score me some crackers, I'll desecrate them&#8221;, which was interpreted by some as inciting disruption of religious services, but the point is that ruining a kids life over a magic cracker is grossly excessive.</p>

<p>Now all hell breaks loose as Bill Donohue issues a second fatwa against PZ. PZ receives tens of thousands of condemnatory emails including a number of threats of violence and even a few death threats.</p>

<p>A fairly common feature in the tens of thousands of posts at <em>Pharyngula</em> was &#8220;you wouldn't dare desecrate the Qur'an, you pussy&#8221; from Catholic posters. PZ received several communion wafers and two Qur'ans in the mail.</p>

<p>Today, PZ posted a photograph of some communion wafers, some pages from the Qur'an, and some pages from Richard Dawkins's <i>The God Delusion</i> in the bin. He held off on posting the photograph until after the garbage collection, presumably so there would be no question of the religious artifacts being anywhere other than the city landfill.</p>

]]>
        
    </content>
</entry>

<entry>
    <title>What about the SCOTUS?</title>
    <link rel="alternate" type="text/html" href="http://caulfield.info/emmet/2008/06/what-about-the-scotus.html" />
    <id>tag:caulfield.info,2008:/emmet//1.20</id>

    <published>2008-06-12T17:55:35Z</published>
    <updated>2008-06-17T15:16:29Z</updated>

    <summary>Over at Pharyngula, there&apos;s an ongoing discussion about Barack Obama vs. John McCain (This is how Obama could make me happy to vote for him). I see a huge, if not the, important issue in this election being the balance...</summary>
    <author>
        <name>Emmet Caulfield</name>
        <uri>http://caulfield.info/emmet/</uri>
    </author>
    
        <category term="English" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Politics" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="election2008" label="Election2008" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mccain" label="McCain" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="obama" label="Obama" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://caulfield.info/emmet/">
        <![CDATA[<p>Over at <a href="http://scienceblogs.com/pharyngula/">Pharyngula</a>, there's an ongoing discussion about Barack Obama vs. John McCain (<a href="http://scienceblogs.com/pharyngula/2008/06/this_is_how_obama_could_make_m.php">This is how Obama could make me happy to vote for him</a>).</p>

<p>I see a huge, if not <em>the</em>, important issue in this election being the balance of the SCOTUS. The new President is going to appoint at least one liberal judge almost immediately (Stevens, I think, is hanging on until there's a Democrat in the Whitehouse), and maybe two (+Ginsburg?) in his first term. If McCain gets in, I see one or two more Nino Scalias being appointed, tipping the balance firmly to the right for a long time (Scalia won't be the same age as Stevens is now for almost 20 years). The consequences could be church/state separation being compromised, Roe vs. Wade overturned, gay marriage being torpedoed, and even successful appeals to recent judgements disallowing educational crapola in schools. It could be devastating.</p>

<p>As an international spectator, I selfishly want Obama because I think he'll be able to use his mixed-race, mixed-heritage, international background, foreign policy education, and civil rights record to help build peace and rehabilitate America's overseas reputation in a way that another old militarist Republican WASP, up to his oxters in political debt to the hawks and the religious right, simply couldn't do. From an international perspective, Obama is damn-near perfect: realistically, the international community couldn't ask for a better prospective President.</p>

<p>But it strikes me that, from an American and, ultimately, even an international perspective, the SCOTUS issue could be even bigger in the long term: I really don't want American core values (1st Amendment, particularly) and education compromised for a generation.</p>

<p>Thoughts?</p>

]]>
        
    </content>
</entry>

<entry>
    <title>Get the Subversion Revision Number into Autoconf&apos;s PACKAGE_VERSION</title>
    <link rel="alternate" type="text/html" href="http://caulfield.info/emmet/2008/05/get-the-subversion-revision-nu.html" />
    <id>tag:caulfield.info,2008:/emmet//1.18</id>

    <published>2008-05-16T10:19:37Z</published>
    <updated>2008-05-16T11:25:46Z</updated>

    <summary>Here&apos;s the problem: you have a software package in a Subversion repository and you&apos;re using the GNU Autotools build-chain. You&apos;d really like to have the revision number from subversion as the subminor revision in the PACKAGE_VERSION preprocessor object macro #define-d...</summary>
    <author>
        <name>Emmet Caulfield</name>
        <uri>http://caulfield.info/emmet/</uri>
    </author>
    
        <category term="English" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Programming" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="autoconf" label="autoconf" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="subversion" label="subversion" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://caulfield.info/emmet/">
        <![CDATA[<p>Here's the problem: you have a software package in a <a href="http://subversion.tigris.org/">Subversion</a> repository and you're using the <a href="http://www.gnu.org/software/autoconf/#family">GNU Autotools</a> build-chain. You'd really like to have the revision number from subversion as the subminor revision in the <tt>PACKAGE_VERSION</tt> preprocessor object macro <tt>#define</tt>-d in <tt>config.h</tt> so that it automatically appears in your software.</p>

<p>Sounds easy enough, but it's both surprisingly difficult and surprisingly easy to achieve.</p>

<p>The problem is that the ways of achieving this I've found online embed something in the distribution files that require that the person building the software for installation has to have <tt>subversion</tt> or the Autotools or both installed in order to get a meaningful version number. That's a pain.</p>

<p>This solution requires only that the <em>developer</em> is working on a Unix-like system with <tt>sh</tt>, <tt>tr</tt> and a recent version of <tt>subversion</tt> installed.</p>

<h2>The Solution</h2>

<p>The solution is really this easy. Put the following in <tt>configure.ac</tt>:</p>
<pre class="console">
define([svnversion], esyscmd([sh -c "svnversion|tr -d '\n'"]))dnl
AC_INIT([myprog], [0.1.svnversion], [myprog@example.com])
</pre>

<p>I also include a line like this so I can get the SVN version seperately:</p>
<pre class="console">
AC_DEFINE(SVN_REVISION, "svnversion", [SVN Revision])
</pre>

<p>This assumes that you have a recent version of subversion installed with the <tt>svnversion</tt> program and you're developing on a Unix-like platform with <tt>sh</tt> and <tt>tr</tt> (which includes pretty well every flavour of Unix/Linux).</p>

<p>What this does is use <a href="http://www.gnu.org/software/m4/">m4</a>, the macro language <tt>autoconf</tt> is built on, to define a macro, <tt>svnversion</tt> which uses the <tt>m4</tt> function <tt>esyscmd</tt> (which calls a program and captures its <tt>stdout</tt>) to call the <tt>svnversion</tt> program and trim the bothersome trailing newline from its output using <tt>tr</tt>.</p>

<p>Now, one apparent shortcoming turns out to be a feature, not a bug. If you run <tt>autoreconf</tt> in a directory that's been modified from the repository version, the subminor revision number obtained from <tt>svnversion</tt> is non-numeric &mdash; it embeds information about the revisions used, not just the topmost revision &mdash; so you get a subminor revision like &#8220;42:43M&#8221;. This causes some difficulty building because the <tt>SVN_VERSION</tt> macro (if you include it), which should be be a valid C literal, is not an integer literal. So why is this a feature and not a bug? Because you <em>shouldn't</em> be building the software for distribution from a stale repository and this ensures that you're not doing that. In practice, it turns out to be <em>very</em> useful, rather than a pain, since it helps makes sure that <tt>make distcheck</tt> will fail if you've modified files and not done a <tt>svn commit</tt> and/or <tt>svn update</tt>.</p>

]]>
        
    </content>
</entry>

<entry>
    <title>Fix ATI Catalyst 8.4 Driver Package on Ubuntu Hardy</title>
    <link rel="alternate" type="text/html" href="http://caulfield.info/emmet/2008/04/fix-ati-catalyst-84-driver-pac.html" />
    <id>tag:caulfield.info,2008:/emmet//1.17</id>

    <published>2008-04-26T00:39:20Z</published>
    <updated>2008-05-03T00:37:13Z</updated>

    <summary> On Ubuntu 8.04 &#8220;Hardy&#8221;, the ATI Catalyst 8.4 Driver .deb packages for amd64 will build from the ATI download, but one of the four packages, xorg-driver-fglrx_8.476, will not install out of the box when you try to install the...</summary>
    <author>
        <name>Emmet Caulfield</name>
        <uri>http://caulfield.info/emmet/</uri>
    </author>
    
        <category term="English" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Technology" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Ubuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="atidriversubuntulinux" label="ATI drivers ubuntu linux" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://caulfield.info/emmet/">
        <![CDATA[<p>
  On <a href="http://www.ubuntu.com/">Ubuntu 8.04 &#8220;Hardy&#8221;</a>, the <a href="http://ati.amd.com/support/drivers/linux64/previous/linux64-rf-cat84.html">ATI Catalyst 8.4 Driver</a> <tt>.deb</tt> packages for <i>amd64</i> will build from <a href="http://www2.ati.com/drivers/linux/ati-driver-installer-8-4-x86.x86_64.run">the ATI download</a>, but one of the four packages, <tt>xorg-driver-fglrx_8.476</tt>, will not install out of the box when you try to <a href="http://wiki.cchtml.com/index.php/Ubuntu_Hardy_Installation_Guide">install the packages in the usual way</a>.
</p>

<p>
  The problem is an error in the preinstall script for the package. In a <a href="http://www.debian.com/">Debian</a> package, one of the things that a package script sometimes does is &#8220;divert&#8221; files. The idea is that a package can specify that any attempt by a future package to install a file having a particular name is to be handled by renaming the file to something else, or diverting it. In this way, a package can protect files from being overwritten without causing another package to fail to install. If you have customised a package-supplied file,  which might be overwritten by a package upgrade, you can use <tt>dpkg-divert</tt> to protect your version.
</p>

<p>
The <i>ATI</i> <a href="http://www.x.org/">xorg</a> driver package uses this facility to stop <a href="http://www.mesa3d.org/">MesaGL</a>, a software <a href="http://www.opengl.org/">Open GL</a> renderer, from overwriting the <i>ATI</i> hardware drivers. That's a good thing, but the problem is that the preinstall script diverts two files to the same target. In other words, it says &#8220;instead of installing <tt>/foo/bar</tt>, rename it <tt>/foo/quux</tt>&#8221; then a second later, &#8220;instead of installing <tt>/foo/baz</tt>, rename it <tt>/foo/quux</tt> as well&#8221;. That's not allowed (because it's obviously stupid).</p>

<p>This accounts for the seemingly bizarre error-message that <tt>xorg-driver-fglrx_8.476</tt> is trying to divert to a file target that it, itself, has already diverted another file to!</p>

<p>
I suspect that the person who wrote the script copy'n'pasted the line, remembered to edit the filename to divert, but forgot to change where it was diverted <em>to</em>. An easy, if silly, mistake to make. <i>ATI</i> have made a lot of progress in providing decent <i>Linux</i> driver, maybe we shouldn't be too hard on them for lousy QA.
</p>

<p>The fix follows below the fold&hellip;</p>
]]>
        <![CDATA[<h2>The Fix</h2>

<p class="disclaimer">
  IF THIS BREAKS, YOU GET TO KEEP BOTH PARTS
</p>

<p>In principle, the fix is very easy:</p>

<ol>
<li>Unpackage the <tt>.deb</tt> archive.</li>
<li>Edit the <tt>preinst</tt> script to fix the error.</li>
<li>Repackage the <tt>.deb</tt> archive.</li>
</ol>

<p>In practice, it's a little tricky to do manually, so I've provided a shell script to help make it easier: <a href="/emmet/src/fix-cat84.sh">fix-cat84.sh</a>. 

<p>It seems that the <tt>postrm</tt> script is similarly "challenged", but I didn't know this until Chris (below) brought it to my attention. I've done the best I can to fix the <tt>postrm</tt> script too (it's straightforward), but I would have to remove the existing package, install the new one, and then remove it in order to test the new <tt>postrm</tt> script, and that's a bit too much like hard work, so <em>I haven't tested it</em>. When an update to the driver appears, I'm going to have a problem removing the old package and I'll post my solution when that happens.</p>

<p>If you decide to go ahead, here's the instructions:</p>

<ul>
<li>Build the packages, but don't install them.</li>
<li>Create a new empty directory.</li>
<li>Copy <a href="http://caulfield.info/emmet/src/fix-cat84.sh">the script</a> into the directory and make it executable.</li>
<li><em>Copy</em> the <tt>xorg-driver-fglrx_8.476-0ubuntu1_amd64.deb</tt> package into the directory.</li>
<li>From the shell-prompt, <tt>cd</tt> into the new directory and run the script.</li>
</ul>

<p>For example (if you like to live a little dangerously):</p>

<pre class="console">
$ mkdir tmp
$ cd tmp
$ wget http://www2.ati.com/drivers/linux/ati-driver-installer-8-4-x86.x86_64.run
$ sh ati-driver-installer-8-4-x86.x86_64.run --buildpkg Ubuntu/hardy
$ wget http://caulfield.info/emmet/src/fix-cat84.sh
$ sh fix-cat84.sh
</pre>

<p>
  You should now be able to <a href="http://wiki.cchtml.com/index.php/Ubuntu_Hardy_Installation_Guide">install the packages in the usual way</a>.
</p>
]]>
    </content>
</entry>

<entry>
    <title>Group Velocity and Stability on Arbitrary Meshes</title>
    <link rel="alternate" type="text/html" href="http://caulfield.info/emmet/2008/04/stability-of-ibvps.html" />
    <id>tag:caulfield.info,2008:/emmet//1.5</id>

    <published>2008-04-15T22:31:36Z</published>
    <updated>2008-04-17T16:18:34Z</updated>

    <summary>In reading Nick Trefethen&apos;s Group velocity interpretation of the stability theory of Gustafsson, Kreiss, and Sundström and Group velocity in finite difference schemes, the thought occurred to me that if instability is a result of reflections at boundaries, can the...</summary>
    <author>
        <name>Emmet Caulfield</name>
        <uri>http://caulfield.info/emmet/</uri>
    </author>
    
        <category term="English" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Scientific Computing" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://caulfield.info/emmet/">
        <![CDATA[<p>In reading Nick Trefethen's <a href="http://www.comlab.ox.ac.uk/people/nick.trefethen/publication/PDF/1983_7.pdf">Group velocity interpretation of the stability theory of Gustafsson, Kreiss, and Sundström</a> and <a href="http://www.comlab.ox.ac.uk/people/nick.trefethen/publication/PDF/1982_6.pdf">Group velocity in finite difference schemes</a>, the thought occurred to me that if instability is a result of reflections at boundaries, can the theory be extended to meshes? This is somewhat analogous to reading a wave-theoretical exposition of Snell's Law and asking if the theory can be extended to anisotropic inhomogeneous media. I suspect that it can, but I don't know if it's worthwhile.</p>

<p>Now, the velocity of propogation of light in a medium is determined by the permittivity and permeability of that medium. From these quantities, we can also calculate the characteristic impedance of the medium. We generally think of media as linear, isotropic, and homogeneous, but this is not the case in general. We often think of monochromatic light but, again, this is not the case in general. When light passes from one medium to another, a difference in the characteristic impedance of the media leads to reflections at the boundary.</p>

<p>What Trefethen started me thinking was, is there a kind of &#8220;permittivity&#8221; of a grid and a &#8220;permeability&#8221; for a method which would give a wavenumber-dependent &#8220;characteristic impedance&#8221; for the grid/method combination and a different characteristic impedance for boundaries, owing to either imposed or numerically necessary boundary conditions, and allowing instability to be determined easily?</p>

<p>Generalising to an irregular mesh, the mesh analogue of permittivity would be a wavenumber-dependent discrete tensor. However intimidating it might sound, and however intractable it might be for a human to calculate, it would surely allow a computer to predict, given a mesh and a method, what Fourier modes would cause instability and, perhaps more importantly, where in the mesh this might arise. A potential end-product might be a software tool which takes a mesh from, say, <i>COMSOL Multiphysics</i>, and identifies &#8220;hot spots&#8221; (analogous to &#8220;shiny lumps&#8221; in an optical medium) where particular Fourier modes would reflect, giving rise to instability. Given the Fourier transform of a particular initial condition or forcing function, instability might be predicted and avoided by mesh refinement.</p>

<p>Now, it may be that this analysis would end up being equivalent to solving the problem on the mesh in full generality, or be obscenely computationally costly for some other reason, in which case, I admit, the entire idea is utterly worthless, but there's no harm in asking, right?</p>
]]>
        
    </content>
</entry>

<entry>
    <title>Intelligent Design Is Only Theology, IDIOT</title>
    <link rel="alternate" type="text/html" href="http://caulfield.info/emmet/2008/04/intelligent-design-is-only-the.html" />
    <id>tag:caulfield.info,2008:/emmet//1.3</id>

    <published>2008-04-13T18:31:42Z</published>
    <updated>2008-07-25T14:50:23Z</updated>

    <summary>Someone mentioned the idea of handing out flyers outside screenings of Expelled: No Intelligence Allowed, so I drew up a list of bullet-points that I&apos;d like to include. Of course, it&apos;s too long for a flyer, but maybe it might...</summary>
    <author>
        <name>Emmet Caulfield</name>
        <uri>http://caulfield.info/emmet/</uri>
    </author>
    
        <category term="Crackpottery" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="English" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Politics" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Science" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="cdesignproponentsists" label="cdesign proponentsists" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="exposed" label="Exposed" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="idiot" label="IDIOT" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://caulfield.info/emmet/">
        <![CDATA[<p>Someone mentioned the idea of handing out flyers outside screenings of <a href="http://www.expelledexposed.com/">Expelled: No Intelligence Allowed</a>, so I drew up a list of bullet-points that I'd like to include. Of course, it's too long for a flyer, but maybe it might give someone ideas or they might pick out a few of them.</p>

<p>I intend to annotate this with hyperlinks to relevant online documents and other media. If you can suggest links, please do. I'm particularly interesting in a video of one of Stephen Meyer's lectures: in the Q&amp;A at the end, an evolutionary biologist makes a fool of Meyer by describing a half-dozen precursor structures to the rotary bacterial flagellum beloved by cdesign proponentsists.</p>

<p>This post is dedicated to the public domain. Do with it as you wish.</p>
]]>
        <![CDATA[<h2>The List</h2>

<ul><li>Evolution is an empirically observed phenomenon, like gravity, not &#8220;just a theory&#8221;. In common language: evolution is a fact.</li>
<li>Just as &#8220;port&#8221; has a specific technical meaning with respect to computers
(nothing to do with boats or wine), &#8220;theory&#8221; has a specific technical
meaning in science: it does not mean &#8220;conjecture&#8221;, &#8220;speculation&#8221;, or
&#8220;guess&#8221;.</li>
<li>Darwin's theory of evolution by natural selection is a
scientific theory which explains the observed phenomenon of evolution
in nature.</li>
<li>Darwin's theory has been rigourously tested by real
biologists for over 150 years, greatly enhanced in detail by
generations of scientists, and has not been contradicted or found
wanting.</li>
<li>According to the <a href="http://www.pamd.uscourts.gov/kitzmiller/kitzmiller_342.pdf">United States District Court judgement in Kitzmiller vs. Dover</a>, &#8220;ID is not science&#8221; (p.64) and &#8220;ID is creationism re-labeled&#8221; (p.33).</li>
<li>ID
is part in the leaked &#8220;Wedge Project&#8221; of the Discovery Institute, which
seeks to subvert science education by smuggling Biblical Creationism
into schools using ID as the "thin end".</li>
<li>The ultimate goal of
the "Wedge Project" is to have a right-wing Christian theocracy in
power in the United States. They are known by opponents, only
half-jokingly, as "The Christian Taliban".</li>
<li>The Discovery Institute is a "respectable" front organisation for the Christian Taliban.</li>
<li>Evolution
by natural selection is one of the fundamental theories in biology. It
is extremely well-corroborated by experimental and other evidence, more
than any other theory in biology. It is one of the most successful
theories in all science.</li>
<li>ID is a sugar-coated version of
Biblical Creation, a fundamental dogma of the Christian Taliban. It is
not corroborated by <em>any</em> experimental or other evidence.</li>
<li>A very
simple lab experiment, taking only a few days, using <a href="http://www.newscientist.com/channel/life/dn13611-darwin-chip-brings-evolution-into-the-classroom.html?feedId=online-news_rss20">a kit developed
for schools costing less than $100</a>, clearly demonstrates the phenomenon
of evolution and corroborates the theory of evolution.</li>
<li>ID/Creationism
is <em>not</em> corroborated by any experiment, simple or otherwise. No ID
proponent has ever conducted a single experiment to test their
"scientific theory".</li>
<li>Agreement with experiment is a necessary characteristic of a scientific theory. ID/Creationism is not science.</li>
<li>The
appearance of the antibiotic-resistant &#8220;superbugs&#8221;, like MRSA,&nbsp; from
their non-resistant ancestors are examples of evolution in nature which
have happened entirely in living memory.</li>
<li>ID/Creationism does
not explain the appearance of superbugs in living memory, nor the
development of species on a longer timescale. It has no explanatory
power whatever.</li>
<li>Explanatory power is a necessary characteristic of a scientific theory. ID/Creationism is not science.</li>
<li>There
are approximately 120,000,000 fossils which support evolution by
natural selection, and extensive DNA evidence. No fossil or DNA
evidence contradicts evolution. All of the available evidence supports
evolution.</li>
<li>There is no fossil evidence or DNA evidence which supports ID/Creationism.</li><li>Being supported, not contradicted, by <i>all</i> of the available evidence is a necessary characteristic of a scientific theory. ID/Creationism is not science.</li>
<li>All
examples of Behe's &#8221;irreducible complexity&#8221; proposed by the
ID/Creationist movement have been comprehensively debunked by real
evolutionary biologists. <a href="http://www.youtube.com/watch?v=JVRsWAjvQSg">Ken Miller on ID</a> (39:37 - 50:17)</li>
<li>Leading ID proponents have been
publically humiliated both in <a href="http://www.google.com/search?q=%22Kitzmiller+v.+Dover%22+%22humiliating+defeat%22">Federal Court</a> and <a href="http://video.google.com/videoplay?docid=-7754930969863150790">at their own public
lectures</a> (03:45+) by evolutionary biologists' explanations of the evolution of
bacterial flagella.</li>
<li>In science, truth is not determined by
counting votes. Having &#8220;100 scientists&#8221; who support ID/Creationism is
irrelevant to the truth value of the &#8220;theory&#8221;.</li>
<li>As a joke to
poke fun at such specious head-counting, <a href="http://www.talkorigins.org/faqs/steve/">Project Steve</a> lists over 875
scientists, all named Steve, who support evolution and reject
Creationism.</li>
<li>There is no &#8220;controversy&#8221; outside the Christian
Taliban: evolution is a superbly well-corroborated and useful theory.
Intelligent Design is sugar-coated Creationism, a religious dogma
without any of the characteristics of a real scientific theory.</li>
<li>ID/Creationism
is rejected by most scientists, all reputable journals, and all
reputable universities because it is not science. It is not a
&#8220;conspiracy&#8221; for science to exclude theology from science: everything
that is not science is excluded from science.</li>
<li>Although the
Christian Taliban oppose <em>any</em> science which contradicts a literal
interpretation of the Bible, including archaeology, geology,
anthropology, and biology, they particularly despise evolution.</li>
<li><a href="http://www.expelledexposed.com/">Expelled:
No Intelligence Allowed</a> is a propaganda film of the Christian Taliban
produced to undermine the real science of evolutionary biology and
promote religious dogma as science.</li>
<li><a href="http://www.expelledexposed.com/">Expelled</a> uses
time-honoured techniques of propaganda to associate modern evolutionary
biology, which the Christian Taliban call &#8220;Darwinism&#8221;, with the Nazi
Holocaust.</li>
<li>No historian outside the Christian Taliban supports
this mendacious slur on biologists, Darwin, or the memory of the
Holocaust victims.</li>
<li>The real scientists in <i>Expelled</i> (Richard Dawkins, P.Z. Myers) were tricked into participating in the film.</li>
<li>Ironically, even though he is thanked in the credits, <a href="http://scienceblogs.com/pharyngula/2008/03/expelled.php">PZ Myers was expelled by armed security</a> from a pre-release
screening on the instruction of producers and <a href="http://www.sltrib.com/arts/ci_8903065">no ordinary film critics have been allowed to review it</a>. Afraid of criticism? Hypocrisy, much?</li>
<li>The &#8220;inside a cell&#8221; computer animation
(with the "tight-rope walking" motor protein) is a direct reproduction
of an <a href="http://multimedia.mcb.harvard.edu/">Harvard educational animation</a> made by <a href="http://www.xvivo.net/">XVIVO Inc.</a> for
Harvard University. For educational reasons, it omits and simplifies
the real activity inside a cell. In reality, the inside of a cell is
crowded and messy. Real motor proteins do not plod along steadily like
&#8220;little men&#8221;.</li>
<li>Science teachers who teach their own religious dogma, ID/Creationism, instead of science <em>deserve</em> to be fired.</li>
<li>Professors who teach their own religious dogma, ID/Creationism, instead of science do <em>not</em> deserve tenure.</li>
<li>Reputable science journals are <em>right</em> to publish only scientific articles and reject theological speculation.</li>
<li>University science departments
<em>should</em> prefer candidates who publish real scientific research in real
scientific journals over candidates who publish theological
speculations in pretend science journals run by the Christian Taliban.</li>
<li>The central messages of <i>Expelled: No Intelligence Allowed</i> are lies.</li>
<li>Ben Stein is a lawyer, actor, and comedian. He is not a scientist and he is unqualified to evaluate scientific theories. Indeed, he is so profoundly ignorant that he thinks that intelligent design explains &#8220;<a href="http://www.youtube.com/watch?v=MbxaT_m8daw">why the planets don't just fall down</a>&#8221; (@2:40).</li>
<li>Ancient
peoples each had their own creation myth. Biblical Creation is the
creation story of the nomadic Jewish tribes of bronze-age Palestine. It
cannot replace the cornerstone theory of modern biology.</li></ul>

<h2>Help</h2>

<ul><li>I can't remember for the life of me where I read about an ambitious project to put 120,000,000 fossils into a single online database.</li><li>Subtlety and impact are enemies. You may think some of the straight-talking is "too straight" like "evolution is a fact", but I owe that one to Dawkins, so take it up with him :o)</li></ul>
]]>
    </content>
</entry>

<entry>
    <title>A Trans-Atlantic Political Lexicon</title>
    <link rel="alternate" type="text/html" href="http://caulfield.info/emmet/2008/04/a-transatlantic-political-lexi.html" />
    <id>tag:caulfield.info,2008:/emmet//1.4</id>

    <published>2008-04-13T14:27:35Z</published>
    <updated>2008-04-16T00:28:43Z</updated>

    <summary>For Europeans engaging in online political discussion with Americans, it is crucial to understand American political terminology. Provided that you know the political disposition of your correspondent, this is quite easy. Using the following table, look up the term in...</summary>
    <author>
        <name>Emmet Caulfield</name>
        <uri>http://caulfield.info/emmet/</uri>
    </author>
    
        <category term="English" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Humour" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Politics" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://caulfield.info/emmet/">
        <![CDATA[<p>For Europeans engaging in online political discussion with Americans, it is crucial to understand American political terminology. Provided that you know the political disposition of your correspondent, this is quite easy. Using the following table, look up the term in column 1 (Republican) or column 2 (Democrat), depending on the political disposition of your correspondent. You can then conveniently find the equivalent European term in column 3.</p>]]>
        <![CDATA[<div class="tabular">
  <table class="zebra">
    <thead>
       <tr><th>Republican</th><th>Democrat</th><th>European Term</th></tr>
    </thead>
    <caption>Trans-Atlantic Political Lexicon</caption>
    
    <tbody>
      <tr class="odd"><td>socialist</td><td>moderate</td><td>conservative</td></tr>
      <tr><td>ordinary person</td><td>wingnut</td><td>Republican</td></tr>
      <tr class="odd"><td>Godless</td><td>atheist</td><td>secular</td></tr>
      <tr><td>moonbat</td><td>rational person</td><td>Democrat</td></tr>
      <tr class="odd"><td>democracy<br /></td><td>majority rules</td><td>corporate puppetry</td></tr>
      <tr><td>Libertarian</td><td>Libertarian</td><td>demented fruitcake</td></tr>
      <tr class="odd"><td>pinko</td><td>socialist</td><td>centre/moderate</td></tr>
      <tr><td>Godless commie bastard</td><td>communist</td><td>socialist</td></tr>
      <tr class="odd"><td>fair and balanced</td><td>right-biased</td><td>blatantly bigoted</td></tr>
      <tr><td>commie propaganda</td><td>left-leaning media</td><td>media</td></tr>
      <tr class="odd"><td>leftist grant whore</td><td>college professor</td><td>university lecturer</td></tr>
      <tr><td>God-given right</td><td>war</td><td>illegal invasion</td></tr>
      <tr class="odd"><td>President</td><td>asshole</td><td>war criminal</td></tr>
      <tr><td>fair election victory</td><td>narrow loss</td><td>bloodless <i>coup d'etat</i></td></tr>
      <tr class="odd"><td>communism</td><td>socialism</td><td>social democracy</td></tr>
      <tr><td>Marxist pipe-dream</td><td>universal healthcare</td><td>healthcare</td></tr>
      <tr class="odd"><td>fellow American</td><td>religious right</td><td>Christian Taliban</td></tr>
      <tr><td>small government</td><td>libertarianism</td><td>anarchy</td></tr>
      <tr class="odd"><td>help ally</td><td>foreign policy initiative</td><td>bankroll tinpot dictator</td></tr>
      <tr><td>Ann Coulter</td><td>that Coulter bitch</td><td>fascist fundy bigot (female)</td></tr>
      <tr class="odd"><td>Bill O'Reilly</td><td>douchemonkey</td><td>fascist fundy bigot (male)</td></tr>
    </tbody>
 </table>
</div>
]]>
    </content>
</entry>

<entry>
    <title>Finally, I succumb</title>
    <link rel="alternate" type="text/html" href="http://caulfield.info/emmet/2008/04/this-is-a-test-post.html" />
    <id>tag:caulfield.info,2008:/emmet//1.2</id>

    <published>2008-04-11T23:26:11Z</published>
    <updated>2008-04-13T20:00:57Z</updated>

    <summary>OK, I&apos;ve finally succumbed. Movable Type is just so damn easy to install and use that I can&apos;t really justify maintaining my personal website with hand-crafted XML, XSL-T, and Perl any more. Eventually I will tart it up, customise it,...</summary>
    <author>
        <name>Emmet Caulfield</name>
        <uri>http://caulfield.info/emmet/</uri>
    </author>
    
        <category term="English" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Français" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Gaeilge" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Ramblings" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Svenska" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://caulfield.info/emmet/">
        <![CDATA[<p>OK, I've finally succumbed. <a href="http://movabletype.org/">Movable Type</a> is just so damn easy to install and use that I can't really justify maintaining my personal website with hand-crafted XML, XSL-T, and Perl any more.</p>

<p>Eventually I will tart it up, customise it, and move stuff over from <a href="http://emmetcaulfield.net/">emmetcaulfield.net</a>, but until I find my way around <i>Movable Type</i>, this default skin will have to do.</p>

<p xml:lang="sv">Jag bor i Uppsala, men efter halvannan år, min svenska är ännu jätte dalig. Ibland ska jag skriva nagonting på svenska också och jag hoppas att det skulle hjälpa mig lite när jag försöka att förbättra min svenska. Just nu kan jag läsa ganska bra, men min riktig problemerna med språket är att förstår talat svenska och att skriva. Om du ar svensk, inte vara buskablyg, och snälla hjälp mig: korrigera felen i texten!</p>

<p xml:lang="fr">De temps en temps, c'est possible que je vais écrire quelquechose en Français. J'espére que ça m'assisterai pendant que j'améliore mon Français, mais maintenant, j'habite en Suede et je veux apprendre la Suedois surtout. Si vous êtes un francophone, s'il vous plaît corrigez mon Français.</p>

<p xml:lang="ga">Anois is arís, b'fhéidir go scríofaidh mé cúpla focail as Gaeilge. Chaith mé trí mhí sa ghaeltacht Chonamara nuair a bhí mé óg, ach rinne mé dearmad ar an cuid is mó den ghaeilge a bhí agam san am sin. Tá fhios agam nach bhfuil mo gramadach lán ceart. Tá spéis agam mo chuid Ghaeilge a chur ar fheabhas, ach mar tá cónaí orm i tSualainn anois, táim chun an Sualainís a fhoglaim mar  tosaíocht. Anseo, do chuala siad faoi teanga "Éireannach", ach ceapann an tromlach dóibh gur saghas Béarla é: bíonn iontas oraibh nach bhfuil.<br /></p>
]]>
        
    </content>
</entry>

<entry>
    <title>Add a text-only runlevel to Ubuntu Gutsy</title>
    <link rel="alternate" type="text/html" href="http://caulfield.info/emmet/2008/03/add-a-textonly-runlevel-to-ubu.html" />
    <id>tag:caulfield.info,2008:/emmet//1.9</id>

    <published>2008-03-16T14:43:03Z</published>
    <updated>2008-04-17T15:29:00Z</updated>

    <summary>Ubuntu/gutsy and (apparently) even the venerable Debian have badly broken ideas about runlevels: runlevels 2-5 are the same, all of them start the GUI (via gdm, kdm, or whatever), 2 is the default, and it&apos;s ridiculously difficult to get a...</summary>
    <author>
        <name>Emmet Caulfield</name>
        <uri>http://caulfield.info/emmet/</uri>
    </author>
    
    <category term="bootprocess" label="boot process" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="inittab" label="inittab" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="runlevel" label="runlevel" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ubuntu" label="ubuntu" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="upstart" label="upstart" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://caulfield.info/emmet/">
        <![CDATA[<p><a href="http://releases.ubuntu.com/7.10/">Ubuntu/gutsy</a> and
      (apparently) even the venerable <a href="http://www.debian.org/">Debian</a> have <em>badly
      broken</em> ideas about runlevels: runlevels 2-5 are the same,
      all of them start the GUI (via <tt>gdm</tt>, <tt>kdm</tt>, or
      whatever), 2 is the default, and it's ridiculously difficult to
      get a sane runlevel configuration working. Sorry,
      <em>Ubuntu</em>, but this is one that <a href="http://www.redhat.com/">RedHat</a> got right at least 11
      years ago.
</p>

<p><em>Ubuntu</em> has abandoned <tt>inittab</tt> in favour of
      their homegrown <a href="http://upstart.ubuntu.com/">upstart</a>, not in itself a
      bad thing. <tt>inittab</tt> was cryptic, nobody understood it,
      and everyone who ever edited their <tt>inittab</tt> did so with
      fear and trepidation, but kernel boot options should override
      defaults, not the other way around.
</p>

<p>
      The &#8220;sane runlevels&#8221; solution presented herein actually
      works and has been tested, unlike a lot of what I read, and
      tried, in &#8220;help&#8221; forums.
</p>
]]>
        <![CDATA[<h2>Solution</h2>
<p class="disclaimer">
  DON'T DO THIS UNLESS YOU KNOW WHAT YOU'RE DOING
  <em>AND</em> HAVE ANOTHER WAY OF BOOTING YOUR BOX. DON'T BLAME
  ME IF IT GOES WRONG: IF IT BREAKS, YOU GET TO KEEP BOTH
  PARTS.
</p>

<p>
  I'm assuming that you already know what runlevels are and how to
  configure them on something that has ordinary <tt>inittab</tt>
  behaviour, like <em>RedHat</em>, <a href="http://www.centos.org/">CentOS</a> or, it seems, any
  non-<em>Ubuntu</em> distro.
</p>

<p>
  With that assumption, the solution is easy, you just do the following:
</p>

<ul>
  <li>Replace <tt>/etc/event.d/rc-default</tt> with <a href="http://caulfield.info/emmet/src/rc-default/rc-default">my version of rc-default</a>.</li>
  <li>Edit <tt>/boot/grub/menu.lst</tt></li>
  <li>Run <tt>update-grub</tt></li>
  <li>Install <tt>sysv-rc-conf</tt> and use it to configure your runlevels.</li>
  <li>Reboot!</li>
</ul>

<h2>Replace <tt>rc-default</tt></h2>

        <p>
        Stash a copy of <tt>/etc/event.d/rc-default</tt> away
        somewhere and replace it with <a href="http://caulfield.info/emmet/src/rc-default/rc-default">my
        version of rc-default</a>.
      </p>
        <h3>The Difference</h3>
        <p>
	  The version presented here scans the kernel command line for
	  a numerical runlevel or "S" after the word <tt>init</tt>,
	  not just for an instruction to enter single-user mode like
	  the <em>Ubuntu</em> version.
        </p>

        <p>
          In the <em>Ubuntu</em> shipping version, unfortunately, the
	  presence of an <tt>inittab</tt> file (only one line of which
	  counts) actually <em>overrides</em> anything on the kernel
	  command-line, which is almost certainly not a good idea.
        </p>
        <h2>Edit <tt>grub</tt> Configuration File</h2>

        <p>
        Edit <tt>/boot/grub/menu.lst</tt> in your favourite editor.
      </p>
        <p>
        If you're using the <em>Ubuntu</em> way of doing things, just
        add <tt>init 5</tt> to the end of the <tt># defoptions</tt>

        line, so that your default runlevel becomes 5:
      </p>
        <pre class="console"># defoptions=quiet splash init 5
</pre>
        <p>
        Now, find the line <tt>altoptions</tt> line that configures
        single-user mode (there's only one by default), change it to
        say <tt>init S</tt> (capital letter &#8220;S&#8221; for sierra),
        rather than <tt>single</tt>, and add a new line for text mode,
        like this:
      </p>

        <pre class="console"># altoptions=(text mode) init 3
# altoptions=(recovery mode) init S
</pre>

<h3>Run <tt>update-grub</tt></h3>
        <p>
          Now, make sure to run <tt>update-grub</tt> as root, so that
          the <tt>grub</tt> configuration really changes (the
          <tt>altoptions</tt> lines are comments ignored by
          <tt>grub</tt>, but are recognised by <tt>update-grub</tt>

          which updates the non-comment lines that <tt>grub</tt>
          actually uses).
        </p>
        <h2>Test It</h2>
        <p>
        Now is a good time to test. Reboot the machine: it will go
        into GUI mode as usual. Type <tt>runlevel</tt> at the
        shell-prompt: it should tell you that the runlevel is 5, not 2
        (<em>Ubuntu</em>'s default).
      </p>

        <p>
        Now, reboot again. This time, hit <tt>Esc</tt> during the
        <tt>grub</tt> countdown at boot-time, and pick &#8220;text
        mode&#8221;. It will still boot into the GUI, but
        <tt>runlevel</tt> should tell you that you're now in runlevel
        3, not 2 or 5. Remember, all the runlevels still behave the
        same because you haven't changed the symlinks in
        <tt>/etc/rcX.d</tt> yet.
      </p>

<h2>Install and Use <tt>sysv-rc-conf</tt></h2>

<p>
  Install <tt>sysv-rc-conf</tt> (with <tt>sudo apt-get install
  sysv-rc-conf</tt>). It's a natty little tool which alleviates
  the tedium of manually renaming the symlinks in the
  <tt>/etc/rcX.d</tt> directories with an intuitive curses-based
  interface. Run it, and you can disable all the GUI-related
  stuff in runlevel 3. You can configure runlevels 2 and 4 any
  way you want, but don't touch 0, 1, S, or 6 (unless you
  <em>really</em> know what you're doing!)
</p>

<h2>Notes and Tips</h2>
<h3>Where's The Login Prompt?</h3>
        <p>
        In text mode, the gettys (terminal emulators on each virtual
        terminal) are started pretty early. So, some startup console
        log messages come <em>after</em> the login prompt. This might
        give the impression that the boot procedure has hung at the
        last log message (from <tt>rc.local</tt>), but it hasn't: you
        just have to hit Enter and the login prompt will
        appear.
      </p>
        <p>

      In fact, if you watch the log messages streaming down the
      console carefully, you'll see the login prompt being presented
      and scrolling off the top of the screen.
    </p>
<h3>Starting X</h3>
        <p>
        From a virtual terminal, you can start a GUI session under the
        current user account with: 
      </p>
<pre class="console">$ startx
</pre>
<p>
  Alternatively, you can get a graphical login by starting GDM
</p>
<pre class="console">$ sudo /etc/init.d/gdm start
</pre>
]]>
    </content>
</entry>

<entry>
    <title>SC420 and Cedar Mill</title>
    <link rel="alternate" type="text/html" href="http://caulfield.info/emmet/2008/03/sc420-and-cedar-mill.html" />
    <id>tag:caulfield.info,2008:/emmet//1.25</id>

    <published>2008-03-13T13:21:30Z</published>
    <updated>2008-09-26T07:25:07Z</updated>

    <summary> Can a Dell® PowerEdge® SC420 be upgraded with Cedar Mill Pentium® 4 processors? Until Steve Ketchem sent me a screenshot showing a &apos;631 running in a SC420 (I blurred details that named the machine, etc., or that I thought...</summary>
    <author>
        <name>Emmet Caulfield</name>
        <uri>http://caulfield.info/emmet/</uri>
    </author>
    
        <category term="English" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Hardware" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://caulfield.info/emmet/">
        <![CDATA[        <p>
      Can a <a href="http://www.dell.com/content/products/productdetails.aspx/pedge_sc420?c=us&amp;l=en&amp;s=corp">Dell®
      PowerEdge® SC420</a> be upgraded with <a href="http://en.wikipedia.org/wiki/Pentium_IV#Cedar_Mill">Cedar
      Mill Pentium® 4</a> processors?
    </p>
        <p>

      Until Steve Ketchem sent me <a href="/img/SC420w631.jpg">a
      screenshot showing a '631 running in a SC420</a> (I blurred
      details that named the machine, etc., or that I thought might
      otherwise leak information), it seemed very, very unlikely
      indeed: there is only one report online of a SC420 being
      upgraded with a '631 and the preponderance of evidence suggested
      otherwise. It appeared that the <a href="http://www.intel.com/products/chipsets/e7221/index.htm">Intel®
      E7221</a> northbridge used in the SC420 simply doesn't support
      the <em>Cedar Mill</em> processors, making BIOS support a moot
      point, but Steve's email complicates the picture.
    </p>
 ]]>
        <![CDATA[       <h2>Why Would I Want To?</h2>
        <p>Simply: value for money and not needing a heatsink/fan assembly
    the size of Texas.</p>

        <p>
      The <a href="http://en.wikipedia.org/wiki/Socket_T">LGA775</a>-packaged 
      <a href="http://www.intel.com/products/processor_number/chart/pentium4.htm">Intel
      Pentium 4</a> family can be divided into those with the 65nm
      <em>Cedar Mill</em> core, which include all of the 6x1
      (e.g. 631, 641, 651, and 661) sequence; those with 90nm
      <em>Prescott</em> core, including the 5xx sequence (e.g. 521,
      522, 524, 531, 541, and 551); and those with the 90nm
      <em>Prescott 2M</em> core, which includes all of 6x0 sequence
      (e.g. 630, 640, 650, 660, and 670). The ancient
      <em>Williamette</em> and <em>Northwood</em> cores predate LGA775
      and <a href="http://www.intel.com/products/processor_number/">Intel's
      current 3-digit numbering scheme</a>.
    </p>

        <p>
      The problem is that the 90nm <em>Prescott</em> cores gobbled
      power and, <a href="http://www.tomshardware.com/2004/11/14/the_p4/">infamously,
      ran as hot as the hob of hell</a>. They were sold at a time when
      <em>Intel</em> were having their asses handed to them by <a href="http://www.amd.com/">AMD™</a> and the only thing
      <em>Intel</em> could do, in advance of releasing the 65nm
      dual-core processors, was ramp up the clock-speed on their aging
      <a href="http://www.intel.com/cd/ids/developer/asmo-na/eng/44004.htm">NetBurst™
      processor architecture</a> and put giant cooling assemblies on
      top. The TDP (thermal design power) of <em>Prescott</em> cores
      is 115W compared to 86W for a comparable <em>Cedar Mill</em>
      core, representing at least one third more energy having to be
      dissipated as heat. If you think 29W doesn't sound like much,
      try gripping a 25W lightbulb.
    </p>
        <p>
      Now that both <em>Prescott</em> cores are obsolete, the
      <em>Cedar Mill</em> processors are, cycle for cycle and cache
      for cache, <em>much</em> better value for money, use less
      energy, and need less cooling. Only a fool would use either
      <em>Prescott</em> when he could use <em>Cedar Mill</em>.
    </p>

        <h2>The Case</h2>
        <h3>The Charges</h3>
        <p>
        The <em>Dell PowerEdge SC420</em> stands accused of failure
        to support <em>Cedar Mill</em> processors.
      </p>

        <h3>Stipulated Facts</h3>
        <p>
        The SC420 uses the <em>Intel</em> E7221 northbridge, according to <a href="http://www.dell.com/downloads/global/products/pedge/en/sc420_specs.pdf">the
        published specifications</a> (PDF). This is confirmed by <a href="http://www.cpuid.com/cpuz.php">CPU-Z</a> which reports a
        chip ID of <a href="http://pci-ids.ucw.cz/iii/?i=80862588">2588</a>

        consistent with the E7221.
      </p>
        <p>
        Both the Intel E7221 northbridge, and the Dell SC420 which uses
        it, were developed long before the advent of the 65nm <em>Cedar
        Mill</em> core. The E7221 <em>definitely</em> supports the
        <em>Prescott</em> and <em>Prescott 2M</em> 90nm cores, since
        they are listed on Intel's <a href="http://developer.intel.com/support/motherboards/server/sb/cs-012690.htm">Supported
        Processors page for their SE7221BK1 server platform</a>, which
        uses the E7221 northbridge.
      </p>

        <h3>Case for the Prosecution</h3>
        <p>
        The <a href="http://developer.intel.com/support/motherboards/server/sb/cs-012690.htm">list
        of supported processors for the <em>Intel</em> SE7221BK1-E
        motherboard</a> does <em>not</em> include <em>any</em> 65nm/6x1 series
        processors.
      </p>

        <p>
        The online product information for the <a href="http://www.supermicro.com/products/motherboard/p4/e7221/p8sc8.cfm">SuperMicro
        P8SC8</a> and its siblings, the <a href="http://www.supermicro.com/products/motherboard/p4/e7221/p8sci.cfm">P8SCi</a>
        and <a href="http://www.supermicro.com/products/motherboard/p4/e7221/p8sct.cfm">P8SCT</a>
        motherboards, also based on the same chipset, explicitly
        state: &#8220;Supports an Intel® Pentium® 4 processor 6x0
        or 5x0 sequence on 90nm process ONLY...&#8221; (<em>their</em>
        capitals).
      </p>
        <p>
        Although the <a href="http://www.poweredgeforums.com/">PowerEdge forums</a>
        contain <a href="http://www.poweredgeforums.com/showthread.php?t=1954">conflicting and confusing suggestions and
        opinions</a>, there is not <em>one</em> single report of a
        working 6x1 processor. On the contrary there are at least two
        posts which report failure: <a href="http://www.poweredgeforums.com/showpost.php?p=21366&amp;postcount=4">this
        post</a> and <a href="http://www.poweredgeforums.com/showpost.php?p=21364&amp;postcount=3">this
        one</a> in which the poster also says that multiple similar failures
        are reported on a Japanese SC420 site.
     </p>

        <h3>Case for the Defence</h3>
        <p><em>Dell</em> says that you can <a href="http://support.dell.com/support/edocs/systems/pe420sc/en/it/y3141c60.htm#wp1055218">upgrade
       the processor in the SC420</a> and <a href="http://support.us.dell.com/support/edocs/systems/pe420sc/en/ug/c4180c10.htm#wp1053574">stipulates
       the processor requirements</a> as &#8220;Intel® Pentium® 4
       processor with a minimum clock speed of at least 2.8 GHz, and
       front-side bus speed of at least 800 MHz and at least 1 MB of
       internal cache&#8221;. The <em>Cedar Mill</em> processors meet
       these requirements.
     </p>

        <p><em>Dell</em> released <a href="http://tinyurl.com/32jgh8">BIOS Update
       A02 for the SC420</a> on the 13th of February 2006, which
       &#8220;Added support for newer CPUs&#8221;, this was after the
       release of the <em>Cedar Mill Pentium 4</em> on the 3rd of
       January.
     </p>
        <p>
       The <a href="http://www.newegg.com/Product/ProductReview.aspx?Item=N82E16819116004">customer
       reviews of the 631 processor on newegg.com</a> include one
       which states &#8220;Workes great in my Dell
       Poweredge sc420&#8221;.
     </p>

        <h3>The Prosecution Responds</h3>
        <p>
        The quotes from the <em>Dell</em> literature are accurate and
        <em>were</em> correct when it was written. They did not
        anticipate <em>Intel</em> developing and marketing a processor as a
        &#8220;Pentium 4&#8221; when it was not compatible with the
        E7221. How could they? You cannot expect that either <em>Dell</em> or
        <em>Intel</em> would plaster this incompatibility all over the place:
        their silence is deafening.
      </p>

        <p>
        Yes, <em>Dell</em> did indeed produce that BIOS update and it
        was, indeed, after the release of <em>Cedar
        Mill</em>. However, it was also after the release of the
        <em>Prescott 2M</em> cores which <em>are</em> supported.  They
        say &#8220;added support for <em>newer</em> CPUs&#8221;, not
        &#8220;added support for <em>all of the latest 65nm</em>

        CPUs&#8221;, now <em>that</em> would be convincing!

      </p>
        <p>
        Now, let's examine that customer review again. It says
        &#8220;Workes <em>(sic)</em> great in my Dell Poweredge
        <em>(sic)</em> sc420 <em>(sic)</em>&#8221;. Could someone who
        made all those spelling and capitalisation errors not have
        typed 420 where he meant <em>430</em> ? Or, perhaps, posted a
        review to the 631 thread when he actually bought a
        <em>630</em>, just going on the speed and other parts of the
        description?
      </p>

        <h3>The Verdict</h3>
        <p>
        In light of Steve's email, I might try a <a href="http://processorfinder.intel.com/details.aspx?sSpec=SL9KG">SL9KG</a>
        Cedar Mill processor (<a href="/img/SC420w631.jpg">Steve's
        screenshot</a> shows a 631 with D0 stepping, which can only be
        the SL9KG) in one of my four SC420s, but it's still pretty
        clear that you can't sling in any Cedar Mill processor and
        expect it to work.
      </p>
        <p>

        The best &#8220;definitely&#8221; SC420 compatible processor, as
        far as I can tell, is one from the a 6x0 sequence. The <a href="http://www.intel.com/cd/channel/reseller/asmo-na/eng/products/desktop/processor/processors/pentium-4/feature/index.htm">6x0s
        have two advantages over the 5xx sequences</a>: having the
        &#8220;enhanced <em>Intel SpeedStep</em> technology&#8221;, so the
        processor can be clocked down when under lighter load; and
        having 2MiB of L2 cache.
      </p>
        <h2>Share Your Experience</h2>
        <p>
      If you have used a Cedar Mill processor in an SC420 or any other
      board with the E7221 northbridge, please comment below.
    </p>
]]>
    </content>
</entry>

<entry>
    <title>Fix the build problem with ATI drivers on Ubuntu/Gutsy</title>
    <link rel="alternate" type="text/html" href="http://caulfield.info/emmet/2008/03/fix-the-build-problem-with-ati-1.html" />
    <id>tag:caulfield.info,2008:/emmet//1.15</id>

    <published>2008-03-10T12:03:11Z</published>
    <updated>2008-04-19T13:44:29Z</updated>

    <summary> The later &#8220;Catalyst&#8221; version of the ATI proprietary drivers, 8.2 (8.45.5), 8.1 (8.45.2), and 7.11 (8.43.3) do not have this problem, so this page is now obsolete. The previous non-Catalyst version, 8.42.3, solved a long-standing problem with the ATI...</summary>
    <author>
        <name>Emmet Caulfield</name>
        <uri>http://caulfield.info/emmet/</uri>
    </author>
    
        <category term="English" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Ubuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="ati" label="ATI" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="graphics" label="graphics" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="linux" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ubuntu" label="Ubuntu" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://caulfield.info/emmet/">
        <![CDATA[        <p>
      The later &#8220;Catalyst&#8221; version of the <a href="http://ati.amd.com/support/driver.html">ATI proprietary
      drivers</a>,  8.2 (8.45.5), 8.1
      (8.45.2), and 7.11 (8.43.3) do not have this problem, so
      <strong>this page is now obsolete</strong>.
    </p>
        <p>
      The <em>previous</em> non-<em>Catalyst</em> version, 8.42.3,
      solved a long-standing problem with the ATI proprietary drivers
      for the first time: not being able to run <em>Compiz</em> or
      <em>Beryl</em> easily because of lack of support for
      compositing.
    </p>

        <p>
      The driver packages, for all versions, allow you to build
      <tt>.deb</tt> packages for a variety of distributions, including
      <em>Ubuntu/gutsy</em>, like this:
    </p>
        <pre class="console">
$ sh ./ati-driver-installer-8.42.3-x86.x86_64.run --buildpkg Ubuntu/gutsy
</pre>
        <p>
      Unfortunately, on x86_64 (aka amd64), building the 8.42.3
      package failed with an error message about missing files in
      <tt>X11R6/lib</tt>:
    </p>

        <pre class="console">
# amd64 needs some library redirection
</pre>
        <p>[snip]</p>
        <pre class="console">
dh_install -pxorg-driver-fglrx "usr/X11R6/lib/modules/dri"     "usr/lib32"
cp: cannot stat `./usr/X11R6/lib/modules/dri': No such file or directory
dh_install: command returned error code 256
make: *** [binary] Error 1
Removing temporary directory: fglrx-install.E10832
</pre>
        <p>
      The problem was that ATI's build script looked for some 32-bit
      libraries, common to both the 64bit and 32bit drivers, in the
      wrong place.
    </p>
 
        <h2>Solution</h2>

        <p>
      The solution is very easy, you just do the following:
    </p>
        <ul>
          <li>Extract the package</li>
          <li>Copy missing files to their correct location</li>
          <li>Build the package</li>
        </ul>

        <p>
      Assuming that you've downloaded the package into the
      &#8220;current&#8221; directory, all you do is:
    </p>
        <pre class="console">
$ bash ati-driver-installer-8.42.3-x86.x86_64.run --extract ati-driver
$ cd ati-driver
$ cp -r arch/x86/usr/X11R6/lib arch/x86_64/usr/X11R6/
$ ./packages/Ubuntu/ati-packager.sh --buildpkg gutsy
</pre>
        <p>
      The packages should build correctly.
    </p>
        <p>
      After doing this, I was able to install the packages and follow <a href="http://wiki.cchtml.com/index.php/Ubuntu_Gutsy_Installation_Guide">this
      guide</a> to get Compiz working on Ubuntu/gutsy on an Athlon64
      with an ATI X1550.
    </p>
]]>
        
    </content>
</entry>

<entry>
    <title>Problems with Upstart in Ubuntu Gutsy</title>
    <link rel="alternate" type="text/html" href="http://caulfield.info/emmet/2008/02/problems-with-upstart-in-ubunt.html" />
    <id>tag:caulfield.info,2008:/emmet//1.7</id>

    <published>2008-02-22T12:35:20Z</published>
    <updated>2008-04-17T14:15:23Z</updated>

    <summary> Boot Process Ubuntu has abandoned inittab in favour of their homegrown upstart, not in itself a bad thing, but as shipped it is not configured in such a way that some very useful behaviour of inittab is replicated....</summary>
    <author>
        <name>Emmet Caulfield</name>
        <uri>http://caulfield.info/emmet/</uri>
    </author>
    
        <category term="English" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Linux" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Technology" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Ubuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="bootprocess" label="boot process" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="inittab" label="inittab" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="problems" label="problems" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="telinit" label="telinit" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ubuntu" label="ubuntu" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="upstart" label="upstart" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://caulfield.info/emmet/">
        <![CDATA[         <h2>Boot Process</h2>
        <p><a href="http://www.ubuntu.com/">Ubuntu</a> has abandoned
      <tt>inittab</tt> in favour of their homegrown <a href="http://upstart.ubuntu.com/">upstart</a>, not in itself a
      bad thing, but as shipped it is not configured in such a
      way that some very useful behaviour of <tt>inittab</tt> is
      replicated.
    </p>
]]>
        <![CDATA[
        <p>
      The configuration files for <tt>upstart</tt> are in
      <tt>/etc/events.d</tt>. The most important of these is
      <tt>rc-default</tt> which determines what runlevel is entered at
      boot-time. Here's the version that ships with <a href="http://releases.ubuntu.com/7.10/">Ubuntu/gutsy</a> with
      line numbers added for reference.
    </p>
        <pre class="console">
01|# rc - runlevel compatibility
02|#
03|# This task guesses what the "default runlevel" should be and starts the
04|# appropriate script.
05|
06|start on stopped rcS
07|
08|script
09|   runlevel --reboot || true
10|
11|   if grep -q -w -- "-s\|single\|S" /proc/cmdline; then
12|      telinit S
13|   elif [ -r /etc/inittab ]; then
14|       RL="$(sed -n -e "/^id:[0-9]*:initdefault:/{s/^id://;s/:.*//;p}" \<br />--|             /etc/inittab || true)"
15|       if [ -n "$RL" ]; then
16|          telinit $RL
17|       else
18|            telinit 2
19|       fi
20|   else
21|       telinit 2
22|   fi
23|end script
<br /></pre>
        <p>
      Now, the content of this file means that if single-mode is
      specified on the kernel command line with <tt>-s</tt>,
      <tt>single</tt>, or <tt>S</tt>, then the system goes into
      single-user mode [11-12].
    </p>
        <p>
      Otherwise, if a runlevel is specified in the usual way in
      <tt>/etc/inittab</tt>, then that runlevel is used [13-16]. only
      the line that sets the default runlevel is important, the rest
      of the <tt>inittab</tt> is ignored.
    </p>

        <p>
      If neither of the above work, the runlevel is 2. [17-22]
    </p>
        <p>
      Line [09] just records the boot time in <tt>utmp</tt>, it does
      not affect what runlevel is chosen.
    </p>
        <p>
      In summary, the choices are (in priority order):
    </p>

        <ol>
          <li>Single user mode, if specified on the kernel command-line</li>
          <li>The runlevel specified in <tt>/etc/inittab</tt>, if any</li>
          <li>Runlevel 2</li>
        </ol>
        <p>

      What this means is that there is <em>no way whatsoever</em> of
      choosing amongst alternative runlevels at boot-time. Even by
      editing the kernel command-line at the boot prompt, your choices
      are single-user mode or whatever has been &#8220;hard-wired&#8221;
      into the configuration files.
    </p>
        <p>
      Furthermore, runlevels 2 to 5 are <em>identical</em>, and all of
      the tools that ship with <em>Ubuntu</em> by default, change
      <em>all of them</em>.
    </p>

        <h1>Why It's Bad</h1>
        <p>
      Well the &#8220;graphics mode or bust&#8221; model is broken. I get
      to see the break because I use my desktop in a number of
      different ways:
    </p>
        <ul>
          <li>As a regular desktop (GUI needed)</li>
          <li>For scientific computing (GUI not wanted)</li>
          <li>To <tt>ssh</tt> into when I'm away from home (GUI not needed).</li>

        </ul>
        <p>
      In addition, I use proprietary drivers for my graphics
      card. Every time I update the drivers, it's advised that I
      remove the previous version, and I have to recompile and install
      the kernel module interface. It's <em>much</em> cleaner to do
      all of this in text-only mode, and very convenient for the
      network to be operational while I'm doing it so I can fetch any
      new packages that I might need. It's also a very good idea to be
      able to fall back to text-mode <em>with networking</em> if the
      new driver doesn't work.
    </p>
        <p>
      In short, I want to be able to choose a <tt>text-only</tt>

      runlevel at boot-time that is <em>not</em> the crippled
      single-user mode, and it takes far too much effort to get that
      working under <em>Ubuntu</em>.
    </p>
        <h2>What About <tt>telinit</tt></h2>
        <p>
        There are far too many flies in <em>that</em> ointment!
      </p>

        <p>
        In 11 years of using <em>Linux</em>, I have never known
        <tt>telinit</tt> to switch runlevels cleanly and without
        something whacky happening. The notion that you can seamlessly
        switch runlevels on-the-fly by typing <tt>telinit X</tt> is
        only proposed by people who've never actually done
        it.
      </p>
        <p>
        Secondly, many graphics cards have problems switching from
        graphics-mode to text-mode.
      </p>

        <p>
        Thirdly, when booting for the first time with a new graphics
        driver, you <em>don't</em> want to be inexorably committed to
        graphics mode.
      </p>
]]>
    </content>
</entry>

</feed>
