<?xml version="1.0"?>
<rss version="2.0">

<channel>
	<title>Planet Exherbo</title>
	<link>http://planet.exherbo.org/</link>
	<language>en</language>
	<description>Planet Exherbo - http://planet.exherbo.org/</description>

<item>
	<title>Alexander Færøy: Erlang foredrag</title>
	<guid>http://ahfaeroey.wordpress.com/?p=43</guid>
	<link>http://ahfaeroey.wordpress.com/2008/11/13/erlang-foredrag/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;Onsdag d. 26/11 kl. 19 - til SSLUGs onsdagsmøde på CBS, vil Jesper Louis Andersen snakke om sproget Erlang.&lt;/p&gt;
&lt;p&gt;I den virkelige verden foregår der mange ting samtidigt. Mennesker samt maskiner arbejder parallelt ved siden af hinanden &amp;#8212; det er tydeligt at interaktionen mellem forskellige computersystemer bliver større og større.&lt;/p&gt;
&lt;p&gt;Erlang er ikke det første sprog som forsøger at modellere maskinen som mange små systemer, der samarbejder om at løse en opgave &amp;#8212; men det er et system med en del success&amp;#8217;er bag sig. I dette foredrag vil jeg ikke forsøge at gå i detaljer med sproget, men i stedet forklare den model, som danner dets fundament. Jeg skal endvidere komme med et bud på hvor Erlang kan benyttes i gængse softwaresystemer allerede i dag.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Om foredragsholderen&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Jesper Louis Andersen er Bachelor i Datalogi og er i skrivende stund igang med at tage sin kandidatgrad. Han interesserer sig for programmeringssprog af alle slags, samt hvad teknologien bag også kan anvendes til uden for sprog-feltet. For tiden køres der med Ubuntu Linux, men han har tidligere kørt Redhat, Debian, FreeBSD, NetBSD og OpenBSD.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Tid og sted&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Mødet foregår på: CBS - Copenhagen Business School, Howitzvej 60, 2000 Frederiksberg og døren vil være åben fra kl. 18.00. Foredraget starter kl. 19.00.&lt;/p&gt;
&lt;p&gt;Se eventuelt &lt;a href=&quot;http://wiki.sslug.dk/index.php/LokalGruppenK%C3%B8benhavn&quot;&gt;SSLUGs wiki&lt;/a&gt;.&lt;/p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/ahfaeroey.wordpress.com/43/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ahfaeroey.wordpress.com/43/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/ahfaeroey.wordpress.com/43/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/ahfaeroey.wordpress.com/43/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/ahfaeroey.wordpress.com/43/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/ahfaeroey.wordpress.com/43/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/ahfaeroey.wordpress.com/43/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/ahfaeroey.wordpress.com/43/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/ahfaeroey.wordpress.com/43/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/ahfaeroey.wordpress.com/43/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=ahfaeroey.wordpress.com&amp;blog=3719608&amp;post=43&amp;subd=ahfaeroey&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 16 Nov 2008 17:33:32 +0000</pubDate>
</item>
<item>
	<title>Ciaran McCreesh: Why must all XML APIs suck?</title>
	<guid>http://ciaranm.wordpress.com/?p=257</guid>
	<link>http://ciaranm.wordpress.com/2008/11/04/why-must-all-xml-apis-suck/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;Given the following:&lt;/p&gt;
&lt;pre&gt;
&lt;span&gt;&amp;lt;?&lt;/span&gt;&lt;span&gt;xml&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;version&lt;/span&gt;=&lt;span&gt;&quot;1.0&quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;encoding&lt;/span&gt;=&lt;span&gt;&quot;UTF-8&quot;&lt;/span&gt;&lt;span&gt;?&amp;gt;&lt;/span&gt;
&lt;span&gt;&amp;lt;!&lt;/span&gt;&lt;span&gt;DOCTYPE&lt;/span&gt; pkgmetadata &lt;span&gt;SYSTEM&lt;/span&gt; &lt;span&gt;&quot;&lt;a href=&quot;http://www.gentoo.org/dtd/metadata.dtd&quot;&gt;http://www.gentoo.org/dtd/metadata.dtd&lt;/a&gt;&quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;
&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;pkgmetadata&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;
    &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;herd&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;blah&lt;span&gt;&amp;lt;/herd&amp;gt;&lt;/span&gt;
    &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;herd&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;foo&lt;span&gt;&amp;lt;/herd&amp;gt;&lt;/span&gt;
    &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;maintainer&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;
        &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;email&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;foo@bar&lt;span&gt;&amp;lt;/email&amp;gt;&lt;/span&gt;
        &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;name&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;Foo Bar&lt;span&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
    &lt;span&gt;&amp;lt;/maintainer&amp;gt;&lt;/span&gt;
    &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;maintainer&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;
        &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;email&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;bar@baz&lt;span&gt;&amp;lt;/email&amp;gt;&lt;/span&gt;
    &lt;span&gt;&amp;lt;/maintainer&amp;gt;&lt;/span&gt;
    &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;use&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;
        &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;flag&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;name&lt;/span&gt;=&lt;span&gt;&quot;foo&quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;Adds support for foo. Needs &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;pkg&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;cat/fooplugin&lt;span&gt;&amp;lt;/pkg&amp;gt;&lt;/span&gt; to be useful.&lt;span&gt;&amp;lt;/flag&amp;gt;&lt;/span&gt;
        &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;flag&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;name&lt;/span&gt;=&lt;span&gt;&quot;bar&quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;Adds support for bar.&lt;span&gt;&amp;lt;/flag&amp;gt;&lt;/span&gt;
    &lt;span&gt;&amp;lt;/use&amp;gt;&lt;/span&gt;
    &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;longdescription&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;lt;![&lt;/span&gt;&lt;span&gt;CDATA&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;
&lt;span&gt;        A giant space monkey has eaten my shorts.&lt;/span&gt;
&lt;span&gt;        &lt;/span&gt;&lt;span&gt;]]&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;lt;/longdescription&amp;gt;&lt;/span&gt;
    &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;longdescription&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;lang&lt;/span&gt;=&lt;span&gt;&quot;fr&quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;lt;![&lt;/span&gt;&lt;span&gt;CDATA&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;
&lt;span&gt;        Un singe géant de l'espace a mangé mes shorts.&lt;/span&gt;
&lt;span&gt;        &lt;/span&gt;&lt;span&gt;]]&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;lt;/longdescription&amp;gt;&lt;/span&gt;
&lt;span&gt;&amp;lt;/pkgmetadata&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;I want the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A set of strings called &lt;code&gt;herds&lt;/code&gt;, containing &lt;code&gt;blah&lt;/code&gt; and &lt;code&gt;foo&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;A set of pair(string, string) called &lt;code&gt;maintainers&lt;/code&gt;, containing &lt;code&gt;(&quot;foo@bar&quot;, &quot;Foo Bar&quot;)&lt;/code&gt; and &lt;code&gt;(&quot;bar@baz&quot;, &quot;&quot;)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;A map from string to string called &lt;code&gt;use&lt;/code&gt;, containing &lt;code&gt;(&quot;foo&quot; =&amp;gt; &quot;Adds support for foo. Needs cat/fooplugin to be useful.&quot;)&lt;/code&gt; and &lt;code&gt;(&quot;bar&quot; =&amp;gt; &quot;Adds support for bar&quot;)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;A string called &lt;code&gt;longdescription&lt;/code&gt; containing &lt;code&gt;&quot;A giant space monkey has eaten my shorts.&quot;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What&amp;#8217;s the least painful way of doing it? Why can&amp;#8217;t there be a solution concise enough to fit into a comment? Why must XML blow so many goats?&lt;/p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Tagged: xml&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/ciaranm.wordpress.com/257/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ciaranm.wordpress.com/257/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/ciaranm.wordpress.com/257/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/ciaranm.wordpress.com/257/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/ciaranm.wordpress.com/257/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/ciaranm.wordpress.com/257/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/ciaranm.wordpress.com/257/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/ciaranm.wordpress.com/257/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/ciaranm.wordpress.com/257/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/ciaranm.wordpress.com/257/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=ciaranm.wordpress.com&amp;blog=3715284&amp;post=257&amp;subd=ciaranm&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 04 Nov 2008 17:24:42 +0000</pubDate>
</item>
<item>
	<title>Stephen Bennett: For those wondering…</title>
	<guid>http://esspeebee.wordpress.com/?p=5</guid>
	<link>http://esspeebee.wordpress.com/2008/11/04/for-those-wondering/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;&amp;#8230;why I&amp;#8217;ve been slacking even more than usual lately, &lt;a href=&quot;http://blog.freenode.net/2008/11/help-us-test-ircd-seven/&quot;&gt;this&lt;/a&gt; might explain something. Go and play around. Cookies for anyone who finds a bug.&lt;/p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/esspeebee.wordpress.com/5/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/esspeebee.wordpress.com/5/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/esspeebee.wordpress.com/5/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/esspeebee.wordpress.com/5/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/esspeebee.wordpress.com/5/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/esspeebee.wordpress.com/5/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/esspeebee.wordpress.com/5/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/esspeebee.wordpress.com/5/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/esspeebee.wordpress.com/5/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/esspeebee.wordpress.com/5/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=esspeebee.wordpress.com&amp;blog=3745453&amp;post=5&amp;subd=esspeebee&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 04 Nov 2008 14:37:42 +0000</pubDate>
</item>
<item>
	<title>Ciaran McCreesh: MYOPTIONS: It’s like IUSE with Candy</title>
	<guid>http://ciaranm.wordpress.com/?p=252</guid>
	<link>http://ciaranm.wordpress.com/2008/11/04/myoptions-its-like-iuse-with-candy/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;The &lt;a href=&quot;http://exherbo.org/exheres-0.html&quot;&gt;exheres-0&lt;/a&gt; package format, used primarily by &lt;a href=&quot;http://exherbo.org/&quot;&gt;Exherbo&lt;/a&gt;, calls what &lt;a href=&quot;http://www.gentoo.org/&quot;&gt;Gentoo&lt;/a&gt; calls &amp;#8216;USE flags&amp;#8217; &amp;#8216;options&amp;#8217;. What &lt;a href=&quot;http://www.gentoo.org/proj/en/qa/pms.xml&quot;&gt;PMS&lt;/a&gt; EAPIs call &lt;code&gt;IUSE&lt;/code&gt;, exheres-0 calls &lt;code&gt;MYOPTIONS&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Up until recently, this has just been a differently named variable, minus support for IUSE defaults because we hateses them. But now that &lt;a href=&quot;http://paludis.pioto.org/&quot;&gt;Paludis&lt;/a&gt; has &lt;a href=&quot;http://ciaranm.wordpress.com/2008/10/24/paludis-is-about-choices/&quot;&gt;the choices API&lt;/a&gt; we&amp;#8217;re not stuck using that format. The first extension is fairly simple:&lt;/p&gt;
&lt;pre&gt;
MYOPTIONS=&quot;foo bar baz linguas: en en_GB fr&quot;
&lt;/pre&gt;
&lt;p&gt;This is much nicer than having to write out &lt;code&gt;linguas:en linguas:en_GB&lt;/code&gt; etc., and is especially important for exheres-0 because &lt;code&gt;SUBOPTIONS&lt;/code&gt; (&lt;code&gt;USE_EXPAND&lt;/code&gt;) values &lt;em&gt;must&lt;/em&gt; be explicitly listed.&lt;/p&gt;
&lt;p&gt;The next step is flag descriptions. &lt;code&gt;use.local.desc&lt;/code&gt; is rather crude, and XML is horrible, so we thought about re-using &lt;a href=&quot;http://ciaranm.wordpress.com/2008/05/13/dependency-annotations/&quot;&gt;annotations&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;
MYOPTIONS=&quot;
    X [[ description = [ Build a graphical user interface ] ]]
    python [[ description = [ Build Python language bindings ] ]]
    nls
    linguas: en en_GB fr&quot;
&lt;/pre&gt;
&lt;p&gt;Any undescribed flag falls back to the global description &amp;#8212; general consensus is to keep those, because they make it easier for a user to set up a fresh &lt;code&gt;options.conf&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Whilst we&amp;#8217;re at it, we might as well solve the conflicting options problem. In the good old days, use flags were used only when something was optional &amp;#8212; that is, if support for foo also needed support for bar, &lt;code&gt;USE=&quot;-foo bar&quot;&lt;/code&gt; would just compile without bar. Unfortunately, a few people didn&amp;#8217;t really like that, and even more unfortunately developers started doing horrible &lt;code&gt;die&lt;/code&gt; calls in &lt;code&gt;pkg_setup&lt;/code&gt; rather than coming up with a proper solution.&lt;/p&gt;
&lt;p&gt;With half of the &lt;code&gt;pkg_setup&lt;/code&gt; die calls eliminated by &lt;a href=&quot;http://ciaranm.wordpress.com/2008/09/28/eapi-2-use-dependencies/&quot;&gt;use dependencies&lt;/a&gt;, it seems a shame not to fix the other not-quite-half-because-of-a-few-obscure-things. There&amp;#8217;s already &lt;code&gt;pkg_pretend&lt;/code&gt; for exheres-0, which is a big improvement, but moving handling of the common cases into the package manager is cleaner.&lt;/p&gt;
&lt;p&gt;So, we start with the simplest case: flags requiring other flags.&lt;/p&gt;
&lt;pre&gt;
MYOPTIONS=&quot;
        X
        python
        gtk [[ requires = [ X python ] ]]
        qt [[ requires = X ]]
        motif [[ requires = X ]]
        &quot;
&lt;/pre&gt;
&lt;p&gt;We might like &lt;code&gt;SUBOPTIONS&lt;/code&gt; and negatives too:&lt;/p&gt;
&lt;pre&gt;
MYOPTIONS=&quot;
        minimal
        python [[ requires = [ -minimal ] ]]
        linguas:
            en
            en_GB [[ requires = [ linguas: en ] ]]
        &quot;
&lt;/pre&gt;
&lt;p&gt;There might be a case for &amp;#8220;if blah is not enabled then &amp;#8230;&amp;#8221; requirements:&lt;/p&gt;
&lt;pre&gt;
MYOPTIONS=&quot;
        X
        -ncurses [[ requires = [ X ] ]]
        &quot;
&lt;/pre&gt;
&lt;p&gt;although we have a nicer solution this particular case. Note that it&amp;#8217;s ok to list the same flag multiple times, so the above can be written as:&lt;/p&gt;
&lt;pre&gt;
MYOPTIONS=&quot;
        X
        ncurses
        -ncurses [[ requires = [ X ] ]]
        &quot;
&lt;/pre&gt;
&lt;p&gt;For convenience, we&amp;#8217;d like to be able to apply the same requires annotation to multiple items:&lt;/p&gt;
&lt;pre&gt;
MYOPTIONS=&quot;
        X
        python
        (
            gtk [[ requires = python ]]
            qt
            motif
        ) [[ requires = X ]]
        &quot;
&lt;/pre&gt;
&lt;p&gt;Here, &lt;code&gt;gtk&lt;/code&gt; requires both &lt;code&gt;X&lt;/code&gt; and &lt;code&gt;python&lt;/code&gt; (although excessive mixing of things is discouraged for style reasons).&lt;/p&gt;
&lt;p&gt;Sometimes, you have to select one of a number of flags:&lt;/p&gt;
&lt;pre&gt;
MYOPTIONS=&quot;
        (
            gtk
            qt
            motif
        ) [[ number-selected = exactly-one ]]
        &quot;
&lt;/pre&gt;
&lt;p&gt;Also allowed are &lt;code&gt;at-least-one&lt;/code&gt; and &lt;code&gt;at-most-one&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Sometimes requirements are conditional, too:&lt;/p&gt;
&lt;pre&gt;
MYOPTIONS=&quot;
        X
        python
        X? (
            (
                gtk [[ requires = python ]]
                qt
                motif
            ) [[
                number-selected = exactly-one
                requires = X
            ]]
        )
        &quot;
&lt;/pre&gt;
&lt;p&gt;Although, for style reasons, this would end up looking more like:&lt;/p&gt;
&lt;pre&gt;
MYOPTIONS=&quot;
        X [[ description = [ Include a GUI ] ]]
        python [[ description = [ Build Python language bindings ] ]]
        gtk
        qt
        motif

        gtk [[ requires = python ]]
        ( gtk qt motif ) [[ requires = X ]]
        X? ( ( gtk qt motif ) [[ number-selected = exactly-one ]] )
        &quot;
&lt;/pre&gt;
&lt;p&gt;As for how these are verified&amp;#8230; They&amp;#8217;re checked at &lt;code&gt;--pretend --install&lt;/code&gt; time, right before &lt;code&gt;pkg_pretend&lt;/code&gt; is run. Even if a requirement fails, though, &lt;code&gt;pkg_pretend&lt;/code&gt; is still run, allowing us to show as many notices as necessary at the same time.&lt;/p&gt;
&lt;p&gt;The failure is indicated to the user by the &lt;code&gt;pkg_bad_options&lt;/code&gt; function. This probably won&amp;#8217;t be overridden by very many packages, and those that do will almost certainly call &lt;code&gt;default&lt;/code&gt;. The default output looks like this:&lt;/p&gt;
&lt;pre&gt;
These packages will be installed:

* test-cat/test-pkg::ciaranm :1 [N 1] &amp;lt;target&amp;gt;
    X gtk -motif -python qt build_options: recommended_tests split strip
    &quot;Dummy test package&quot;

Total: 1 package (1 new)

 * The following option requirements are unmet for test-cat/test-pkg-1:
 *     Enabling option 'gtk' requires option 'python' to be enabled
 *     Exactly one of options ( gtk, qt, motif ) must be met

* Cannot continue with install due to the errors indicated above
&lt;/pre&gt;
&lt;p&gt;And just think, all that without resorting to convoluted and incomprehensible set theory.&lt;/p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Tagged: eapi, exherbo, exheres-0, paludis&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/ciaranm.wordpress.com/252/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ciaranm.wordpress.com/252/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/ciaranm.wordpress.com/252/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/ciaranm.wordpress.com/252/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/ciaranm.wordpress.com/252/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/ciaranm.wordpress.com/252/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/ciaranm.wordpress.com/252/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/ciaranm.wordpress.com/252/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/ciaranm.wordpress.com/252/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/ciaranm.wordpress.com/252/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=ciaranm.wordpress.com&amp;blog=3715284&amp;post=252&amp;subd=ciaranm&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 04 Nov 2008 14:24:15 +0000</pubDate>
</item>
<item>
	<title>Ciaran McCreesh: UIs for Parallelism</title>
	<guid>http://ciaranm.wordpress.com/?p=243</guid>
	<link>http://ciaranm.wordpress.com/2008/10/27/uis-for-parallelism/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;Getting the UI right for parallel execution is tricky.&lt;/p&gt;
&lt;p&gt;Make, for example, doesn&amp;#8217;t even try. It just displays output from all the children all mixed together, and relies upon commands prefixing their output with a filename or similar identifier. This generally works for what make needs to do, but it&amp;#8217;s a bit too crude for some things.&lt;/p&gt;
&lt;p&gt;For the secret &amp;#8220;not supposed to use it&amp;#8221; parallelism in &lt;a href=&quot;http://paludis.pioto.org/&quot;&gt;Paludis&lt;/a&gt;, we&amp;#8217;re currently using something slightly more sophisticated: each line of output from each child job is prefixed by the job&amp;#8217;s name. So you&amp;#8217;ll see things like:&lt;/p&gt;
&lt;pre&gt;
sync unavailable&amp;gt; wget -T 30 -t 1 -O /var/tmp/paludis-tarsync-cvh9gX/exherbo_repositories.tar.bz2 http://git.exherbo.org/exherbo_repositories.tar.bz2
sync unavailable-unofficial&amp;gt; wget -T 30 -t 1 -O /var/tmp/paludis-tarsync-kvEzRZ/exherbo_unofficial_repositories.tar.bz2
sync unavailable-unofficial&amp;gt; --14:24:06--  http://git.exherbo.org/exherbo_unofficial_repositories.tar.bz2
sync unavailable-unofficial&amp;gt;            =&amp;gt; `/var/tmp/paludis-tarsync-kvEzRZ/exherbo_unofficial_repositories.tar.bz2'
sync unavailable&amp;gt; --14:24:06--  http://git.exherbo.org/exherbo_repositories.tar.bz2
&lt;/pre&gt;
&lt;p&gt;Something like this is necessary because the commands involved don&amp;#8217;t do their own prefixing. But whilst it&amp;#8217;s an improvement, the output&amp;#8217;s rather cluttered and it&amp;#8217;s hard to work out what&amp;#8217;s going on. I&amp;#8217;ve been experimenting with something more like this (slowdown induced artificially to make the point):&lt;/p&gt;
&lt;pre&gt;
&lt;span&gt;Starting sync&lt;/span&gt;

&lt;span&gt;Repository                    Status                Pending Active  Done&lt;/span&gt;
-&amp;gt; &lt;span&gt;alsa&lt;/span&gt;                       starting              16      1       0
-&amp;gt; &lt;span&gt;ciaranm&lt;/span&gt;                    starting              15      2       0
-&amp;gt; &lt;span&gt;ferdy&lt;/span&gt;                      starting              14      3       0
-&amp;gt; &lt;span&gt;compnerd&lt;/span&gt;                   starting              13      4       0
-&amp;gt; &lt;span&gt;arbor&lt;/span&gt;                      starting              12      5       0
-&amp;gt; &lt;span&gt;compnerd&lt;/span&gt;                   success               12      4       1
-&amp;gt; &lt;span&gt;gnome&lt;/span&gt;                      starting              11      5       1
-&amp;gt; &lt;span&gt;alsa&lt;/span&gt;                       failed                11      4       2
    ... fatal: The remote end hung up unexpectedly
-&amp;gt; &lt;span&gt;hardware&lt;/span&gt;                   starting              10      5       2
-&amp;gt; &lt;span&gt;ferdy&lt;/span&gt;                      success               10      4       3
-&amp;gt; &lt;span&gt;media&lt;/span&gt;                      starting              9       5       3
-&amp;gt; &lt;span&gt;gnome&lt;/span&gt;                      success               9       4       4
-&amp;gt; &lt;span&gt;mozilla&lt;/span&gt;                    starting              8       5       4
-&amp;gt; &lt;span&gt;hardware&lt;/span&gt;                   success               8       4       5
-&amp;gt; pioto-exheres              starting              7       5       5
-&amp;gt; &lt;span&gt;media&lt;/span&gt;                      success               7       4       6
-&amp;gt; &lt;span&gt;python&lt;/span&gt;                     starting              6       5       6
-&amp;gt; pioto-exheres              success               6       4       7
-&amp;gt; &lt;span&gt;rbrown&lt;/span&gt;                     starting              5       5       7
-&amp;gt; &lt;span&gt;mozilla&lt;/span&gt;                    success               5       4       8
-&amp;gt; &lt;span&gt;texlive&lt;/span&gt;                    starting              4       5       8
-&amp;gt; ciaranm                    active                4       5       8
-&amp;gt; &lt;span&gt;python&lt;/span&gt;                     success               4       4       9
-&amp;gt; &lt;span&gt;unavailable&lt;/span&gt;                starting              3       5       9
-&amp;gt; &lt;span&gt;texlive&lt;/span&gt;                    success               3       4       10
-&amp;gt; unavailable-unofficial     starting              2       5       10
-&amp;gt; &lt;span&gt;rbrown&lt;/span&gt;                     success               2       4       11
-&amp;gt; &lt;span&gt;unwritten&lt;/span&gt;                  starting              1       5       11
-&amp;gt; arbor                      active                1       5       11
-&amp;gt; &lt;span&gt;unwritten&lt;/span&gt;                  success               1       4       12
-&amp;gt; &lt;span&gt;x11&lt;/span&gt;                        starting              0       5       12
-&amp;gt; ciaranm                    active                0       5       12
    ... Initialized empty Git repository in /var/db/paludis/repositories/ciaranm/.git/
-&amp;gt; unavailable                active                0       5       12
    ... Literal data: 0 bytes
    ... Matched data: 0 bytes
    ... File list size: 749
    ... File list generation time: 0.001 seconds
    ... File list transfer time: 0.000 seconds
    ... Total bytes sent: 771
    ... Total bytes received: 26
    ...
    ... sent 771 bytes  received 26 bytes  1594.00 bytes/sec
    ... total size is 57557  speedup is 72.22
-&amp;gt; unavailable-unofficial     active                0       5       12
    ... Literal data: 0 bytes
    ... Matched data: 0 bytes
    ... File list size: 110
    ... File list generation time: 0.001 seconds
    ... File list transfer time: 0.000 seconds
    ... Total bytes sent: 132
    ... Total bytes received: 26
    ...
    ... sent 132 bytes  received 26 bytes  316.00 bytes/sec
    ... total size is 4013  speedup is 25.40
-&amp;gt; arbor                      active                0       5       12
-&amp;gt; &lt;span&gt;unavailable&lt;/span&gt;                success               0       4       13
-&amp;gt; unavailable-unofficial     success               0       3       14
-&amp;gt; x11                        active                0       3       14
-&amp;gt; ciaranm                    active                0       3       14
-&amp;gt; &lt;span&gt;ciaranm&lt;/span&gt;                    success               0       2       15
-&amp;gt; &lt;span&gt;x11&lt;/span&gt;                        success               0       1       16
-&amp;gt; &lt;span&gt;arbor&lt;/span&gt;                      success               0       0       17

&lt;span&gt; *&lt;/span&gt; Cleaning write cache for ebuild format repositories...
&lt;span&gt; *&lt;/span&gt; Done cleaning write cache for ebuild format repositories

&lt;span&gt; *&lt;/span&gt; No unread news items found

&lt;span&gt;Sync results&lt;/span&gt;

* &lt;span&gt;alsa:&lt;/span&gt;                       sync of '/var/db/paludis/repositories/alsa' from 'git://git.exherbo.org/demonstrate/failure/alsa.git' failed (paludis::SyncFailedError)
    Log file:                 /var/log/sync-alsa.1225118654.log
* &lt;span&gt;arbor:&lt;/span&gt;                      success
* &lt;span&gt;ciaranm:&lt;/span&gt;                    success
* &lt;span&gt;compnerd:&lt;/span&gt;                   success
* &lt;span&gt;ferdy:&lt;/span&gt;                      success
* &lt;span&gt;gnome:&lt;/span&gt;                      success
* &lt;span&gt;hardware:&lt;/span&gt;                   success
* &lt;span&gt;media:&lt;/span&gt;                      success
* &lt;span&gt;mozilla:&lt;/span&gt;                    success
* &lt;span&gt;pioto-exheres:&lt;/span&gt;              success
* &lt;span&gt;python:&lt;/span&gt;                     success
* &lt;span&gt;rbrown:&lt;/span&gt;                     success
* &lt;span&gt;texlive:&lt;/span&gt;                    success
* &lt;span&gt;unavailable:&lt;/span&gt;                success
* &lt;span&gt;unavailable-unofficial:&lt;/span&gt;     success
* &lt;span&gt;unwritten:&lt;/span&gt;                  success
* &lt;span&gt;x11:&lt;/span&gt;                        success
&lt;/pre&gt;
&lt;p&gt;In particular:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Output is automatically logged to a file, rather than dumping everything to the screen. That file can be automatically removed if the job succeeds.&lt;/li&gt;
&lt;li&gt;A summary of what&amp;#8217;s going on is displayed every time a job starts or finishes.&lt;/li&gt;
&lt;li&gt;Every ten seconds (for some value of ten), if a job hasn&amp;#8217;t finished, we automatically display the last ten (for some other value of ten) lines of its output (but not any output we&amp;#8217;ve already displayed) to the screen, along with a note that it&amp;#8217;s still active. We also tail the log if a job fails.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This seems to be a comfortable balance between not showing anything except job statuses (which for jobs that can take an hour to run might well leave you wondering whether it&amp;#8217;s hung) and just dumping everything to the screen. Now it&amp;#8217;s just a case of finding appropriate values of ten&amp;#8230;&lt;/p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Tagged: paludis&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/ciaranm.wordpress.com/243/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ciaranm.wordpress.com/243/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/ciaranm.wordpress.com/243/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/ciaranm.wordpress.com/243/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/ciaranm.wordpress.com/243/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/ciaranm.wordpress.com/243/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/ciaranm.wordpress.com/243/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/ciaranm.wordpress.com/243/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/ciaranm.wordpress.com/243/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/ciaranm.wordpress.com/243/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=ciaranm.wordpress.com&amp;blog=3715284&amp;post=243&amp;subd=ciaranm&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 27 Oct 2008 14:56:43 +0000</pubDate>
</item>
<item>
	<title>Fernando J. Pereda: Reading II</title>
	<guid>http://fpereda.wordpress.com/?p=70</guid>
	<link>http://fpereda.wordpress.com/2008/10/26/reading-ii/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;&lt;i&gt;Currently Reading&lt;/i&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.nealstephenson.com/anathem/&quot;&gt;Anathem&lt;/a&gt;, Neal Stephenson. Quite nice, though the first pages are a bit weird.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cs.sjsu.edu/~louden/cmptext/&quot;&gt;Compiler Construction: Principles and Practice&lt;/a&gt;, Kenneth C. Louden.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://aima.cs.berkeley.edu/&quot;&gt;Artificial Intelligence: A Modern Approach&lt;/a&gt;, Russel &amp;amp; Norvig. &lt;b&gt;Really&lt;/b&gt; nice book, I&amp;#8217;m really enjoying it.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sipi.usc.edu/~mendel/publications/FLS_Engr_Tutorial_Errata.pdf&quot;&gt;Fuzzy Logic Systems for Engineering: A tutorial&lt;/a&gt;, Jerry M. Mendel.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;mdash; ferdy&lt;/p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Tagged: article, book, paper, reading&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/fpereda.wordpress.com/70/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/fpereda.wordpress.com/70/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/fpereda.wordpress.com/70/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/fpereda.wordpress.com/70/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/fpereda.wordpress.com/70/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/fpereda.wordpress.com/70/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/fpereda.wordpress.com/70/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/fpereda.wordpress.com/70/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/fpereda.wordpress.com/70/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/fpereda.wordpress.com/70/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=fpereda.wordpress.com&amp;blog=3759924&amp;post=70&amp;subd=fpereda&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 26 Oct 2008 21:13:17 +0000</pubDate>
</item>
<item>
	<title>Fernando J. Pereda: Recent cool discoveries: unlockit and rlwrap</title>
	<guid>http://fpereda.wordpress.com/?p=66</guid>
	<link>http://fpereda.wordpress.com/2008/10/26/recent-cool-discoveries-unlockit-rlwrap/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;I&amp;#8217;m easily annoyed by hardware and software. Recently, I&amp;#8217;ve been annoyed by my iPhone 3G insisting on wasting my money by downloading useless shit over my cellular data network without even asking. Since I have WiFi almost everywhere and I don&amp;#8217;t want to get a data plan, I wanted to disable the feature completely. Unfortunately, the iPhone wouldn&amp;#8217;t let you do that easily. Fortunately, &lt;a href=&quot;http://unlockit.co.nz&quot;&gt;http://unlockit.co.nz/&lt;/a&gt; exists. That disables the cellular network by setting an invalid APN and can be easily reverted when you really need it. Good stuff.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve also been doing some lisp lately and was a happy &lt;a href=&quot;http://clisp.cons.org&quot;&gt;clisp&lt;/a&gt; user until I had to do some CPU and memory intensive computations. &lt;a href=&quot;http://www.sbcl.org&quot;&gt;sbcl&lt;/a&gt; works much better than clisp on OSX and has a profiler; however it lacks readline support (and I refuse to use emacs to interface with it). Without looking for it, I found this extremely cool application called &lt;a href=&quot;http://utopia.knoware.nl/~hlub/rlwrap/&quot;&gt;rlwrap&lt;/a&gt; that turns any annoying non-readline shit into a nice readline-enabled application. Yay!&lt;/p&gt;
&lt;p&gt;&amp;mdash; ferdy&lt;/p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Tagged: apple, iphone, lisp, rant, software&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/fpereda.wordpress.com/66/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/fpereda.wordpress.com/66/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/fpereda.wordpress.com/66/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/fpereda.wordpress.com/66/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/fpereda.wordpress.com/66/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/fpereda.wordpress.com/66/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/fpereda.wordpress.com/66/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/fpereda.wordpress.com/66/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/fpereda.wordpress.com/66/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/fpereda.wordpress.com/66/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=fpereda.wordpress.com&amp;blog=3759924&amp;post=66&amp;subd=fpereda&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 26 Oct 2008 21:00:14 +0000</pubDate>
</item>
<item>
	<title>Ciaran McCreesh: Paludis is about Choices</title>
	<guid>http://ciaranm.wordpress.com/?p=235</guid>
	<link>http://ciaranm.wordpress.com/2008/10/24/paludis-is-about-choices/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;http://paludis.pioto.org/&quot;&gt;Paludis&lt;/a&gt; 0.32 will include a new mechanism called &amp;#8216;choices&amp;#8217;. Examples of choices on &lt;a href=&quot;http://www.gentoo.org/&quot;&gt;Gentoo&lt;/a&gt; include use flags, the various &lt;code&gt;USE_EXPAND&lt;/code&gt; settings (&lt;code&gt;linguas&lt;/code&gt;, &lt;code&gt;video_cards&lt;/code&gt; and so on) and a shiny new setting called &lt;code&gt;build_options&lt;/code&gt;. For use flags and the &lt;code&gt;USE_EXPAND&lt;/code&gt; settings, there&amp;#8217;s no change from a user perspective, and you can carry on using &lt;code&gt;use.conf&lt;/code&gt; as normal &amp;#8212; choices are merely a more general mechanism for handling package settings.&lt;/p&gt;
&lt;p&gt;On &lt;a href=&quot;http://exherbo.org/&quot;&gt;Exherbo&lt;/a&gt;, things &lt;em&gt;do&lt;/em&gt; change a bit, and if you&amp;#8217;re one of those naughty people who ignored the &amp;#8220;Exherbo has no users&amp;#8221; warning you&amp;#8217;d better have been paying attention.&lt;/p&gt;
&lt;p&gt;So what&amp;#8217;s this &lt;code&gt;build_options&lt;/code&gt; thing? You&amp;#8217;ll see it cropping up for most packages:&lt;/p&gt;
&lt;pre&gt;
* net-print/cups::gentoo [U 1.3.8-r1 -&amp;gt; 1.3.8-r2] &amp;lt;target&amp;gt;
    Reasons: app-text/ghostscript-gpl-8.62:0::installed, net-print/foomatic-filters-3.0.20080507:0::installed, 2 more
    X acl -avahi -dbus -gnutls -java jpeg -kerberos -ldap pam perl -php png ppds python -samba
    -slp ssl -static -tiff -xinetd -zeroconf LINGUAS: -de en -es -et -fr -he -id -it -ja -pl -sv
    -zh_TW &lt;span&gt;build_options: -optional_tests split strip&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Packages using 0-based EAPIs will usually have three build options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;optional_tests&lt;/code&gt;. This handles what &lt;code&gt;--checks&lt;/code&gt; used to do. If this choice is set, &lt;code&gt;src_test&lt;/code&gt; will be run.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;split&lt;/code&gt;. This used to be &lt;code&gt;--debug-build split&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;strip&lt;/code&gt;. This used to be &lt;code&gt;--debug-build internal&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Packages using kdebuild-1 or exheres-0 will have &lt;code&gt;recommended_tests&lt;/code&gt; instead of &lt;code&gt;optional_tests&lt;/code&gt;, which defaults to being enabled rather than disabled.&lt;/p&gt;
&lt;p&gt;Despite what you might expect from older Paludis versions, these are &lt;em&gt;not&lt;/em&gt; use flags. You &lt;em&gt;can&lt;/em&gt; set them in &lt;code&gt;use.conf&lt;/code&gt;, though &amp;#8212; this means you can select whether to run tests or whether to keep debug information on a per-package basis, which was tricky to do with the old commandline options.&lt;/p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Tagged: choices, exherbo, gentoo, paludis&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/ciaranm.wordpress.com/235/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ciaranm.wordpress.com/235/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/ciaranm.wordpress.com/235/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/ciaranm.wordpress.com/235/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/ciaranm.wordpress.com/235/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/ciaranm.wordpress.com/235/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/ciaranm.wordpress.com/235/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/ciaranm.wordpress.com/235/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/ciaranm.wordpress.com/235/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/ciaranm.wordpress.com/235/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=ciaranm.wordpress.com&amp;blog=3715284&amp;post=235&amp;subd=ciaranm&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 24 Oct 2008 09:23:05 +0000</pubDate>
</item>
<item>
	<title>Ciaran McCreesh: xorg-x11 hackery for a Logitech RX1000 Mouse</title>
	<guid>http://ciaranm.wordpress.com/?p=228</guid>
	<link>http://ciaranm.wordpress.com/2008/10/23/xorg-x11-hackery-for-a-logitech-rx1000-mouse/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;The Logitech RX1000 mouse has a scroll wheel that can tilt left or right. This generates HWHEEL events by default, which are pretty much useless. I find it more useful to have the tilt generate WHEEL events (scroll up and down), so I can press and hold left or right rather than repeatedly spinning the mouse wheel.&lt;/p&gt;
&lt;p&gt;The wheel can also be pressed to get a middle click, but if I don&amp;#8217;t concentrate I end up scrolling as well as middle clicking. There&amp;#8217;s another button with a magnifying glass icon on it just below the scroll wheel which is more useful, which usually shows up as button 8. By making this button 2 we can use that for X11 paste, open-in-new-tab in Firefox and so on.&lt;/p&gt;
&lt;p&gt;So I don&amp;#8217;t forget how to get this working:&lt;/p&gt;
&lt;pre&gt;
Section &quot;InputDevice&quot;
    Identifier  &quot;Mouse1&quot;
    Driver      &quot;evdev&quot;
    Option      &quot;Name&quot; &quot;Logitech USB Optical Mouse&quot;
    Option      &quot;HWHEELRelativeAxisButtons&quot; &quot;4 5&quot;
EndSection
&lt;/pre&gt;
&lt;p&gt;Unfortunately, evdev doesn&amp;#8217;t seem to have a &lt;code&gt;ButtonMapping&lt;/code&gt; equivalent, so we have to fall back to xmodmap to do the button remapping. Doubly unfortunately, this makes pressing the middle mouse button useless.&lt;/p&gt;
&lt;pre&gt;
pointer = 1 6 3 4 5 2 7 8 9 10
&lt;/pre&gt;
&lt;p&gt;Thanks Nicolas.&lt;/p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Tagged: hardware, linux, logitech, mouse, rx1000, xorg-x11&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/ciaranm.wordpress.com/228/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ciaranm.wordpress.com/228/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/ciaranm.wordpress.com/228/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/ciaranm.wordpress.com/228/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/ciaranm.wordpress.com/228/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/ciaranm.wordpress.com/228/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/ciaranm.wordpress.com/228/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/ciaranm.wordpress.com/228/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/ciaranm.wordpress.com/228/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/ciaranm.wordpress.com/228/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=ciaranm.wordpress.com&amp;blog=3715284&amp;post=228&amp;subd=ciaranm&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 23 Oct 2008 09:00:27 +0000</pubDate>
</item>
<item>
	<title>Fernando J. Pereda: EeePC 901: Fighting the suckiness</title>
	<guid>http://fpereda.wordpress.com/?p=60</guid>
	<link>http://fpereda.wordpress.com/2008/10/19/eeepc-901-fighting-the-suckiness/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;Ok, so the machine is very nice but the software is very annoying. These are some &amp;#8216;first tweaks&amp;#8217;:&lt;/p&gt;
&lt;p&gt;Edit &lt;tt&gt;/etc/X11/xorg.conf&lt;/tt&gt; and set a bigger Virtual so that you can use a big resolution if you are going to use the Eee with an external monitor. You will still need to use xrandr by hand because their GUI has the resolutions hardcoded.&lt;/p&gt;
&lt;p&gt;Copy IceWM&amp;#8217;s config and set &lt;tt&gt;KeySysWindowList&lt;/tt&gt; and &lt;tt&gt;KeySysWinListMenu&lt;/tt&gt; to something. Don&amp;#8217;t leave it empty or the power button will open the annoying window list.&lt;/p&gt;
&lt;p&gt;Some people seem to like that shitty tabbed interface called &amp;#8216;Easy Mode&amp;#8217; that is AsusLauncher. But the thing is that I really hate it, removing it is stupidly tricky, dirty and hacky. AsusLauncher is not a proper display manager, it is an aplication that just runs on top of icewm and asks you for a password. To remove it, this is what I did:&lt;/p&gt;
&lt;p&gt;Copy &lt;tt&gt;/usr/bin/startsimple.sh&lt;/tt&gt; to &lt;tt&gt;~/.xsession&lt;/tt&gt; and remove all the useless stuff. I left mine like this:&lt;/p&gt;
&lt;pre&gt;
#!/bin/sh

BRN=`cat /etc/acpi/brn` &amp;gt;dev/null 2&amp;gt;&amp;amp;1
if [ -z &quot;$BRN&quot; ]; then
        BRN=&quot;10&quot;
fi
echo $BRN &amp;gt; /proc/acpi/asus/brn

sudo /usr/bin/sessreg -a -l :0.0 -u /var/run/utmp user
if [ -d /home/user/Desktop ]; then
    if [ -d /home/user/.Desktop.bak ]; then
        rm -rf /home/user/.Desktop.bak
    fi
    if [ -d /home/user/.Desktop ]; then
        mv /home/user/.Desktop /home/user/.Desktop.bak
    fi
    mv /home/user/Desktop /home/user/.Desktop
fi
xhost + si:localuser:root # Allow local user root only to access the diplay

xset dpms 0 0 0
sleep 2

[ -n &quot;$XIM_PROGRAM&quot; ] &amp;amp;&amp;amp; $XIM_PROGRAM &amp;amp;
[ -e /var/lock/xandros-rclock/webcam.lock ] &amp;amp;&amp;amp; sudo rm /var/lock/xandros-rclock/webcam.lock
[ -e /var/lock/xandros-rclock/webcam.owner ] &amp;amp;&amp;amp; sudo rm /var/lock/xandros-rclock/webcam.owner
sudo rm -f /tmp/nologin
rm -f /tmp/.fastlaunch

exec icewm-session&lt;/pre&gt;
&lt;p&gt;There is something racy going on with that script, the &lt;tt&gt;sleep 2&lt;/tt&gt; line seems to be important. Then some stuff has to go into &lt;tt&gt;.icewm/startup&lt;/tt&gt; to start network and battery applets and AsusLauncher (yes, AFTER icewm started&amp;#8230;.). This is hacky but seems to do a good job:&lt;/p&gt;
&lt;pre&gt;#!/bin/sh

touch /home/user/.doingLogin
/opt/xandros/bin/AsusLauncher &amp;amp;
while [ -f /home/user/.doingLogin ] ; do sleep 0.2 ; done
killall AsusLauncher

powermonitor &amp;amp;
minimixer &amp;amp;
networkmonitor2 ra0 &amp;amp;
networkmonitor2 -i eth0 &amp;amp;
networkmonitor2 -i ppp0 &amp;amp;
/usr/bin/dispwatch &amp;amp;
/usr/bin/keyboardstatus &amp;amp;
/opt/xandros/bin/start_netserv &amp;amp;
/usr/local/bin/asusosd &amp;amp;&lt;/pre&gt;
&lt;p&gt;If the order of applets in the notification area is important it is possible to tweak where they appear by adding some sleep commands. I don&amp;#8217;t particularly care though.&lt;/p&gt;
&lt;p&gt;The acpi script that reacts to the power button will check whether AsusLauncher or KDE are running and if neither is, it just sends USR2 to init. This is a bit too much, editing this file was easy, my &lt;tt&gt;/etc/acpi/powerbtn.sh&lt;/tt&gt; looks like this:&lt;/p&gt;
&lt;pre&gt;#!/bin/sh
# /etc/acpi/powerbtn.sh
# Initiates a shutdown when the power putton has been
# pressed.

if [ ! -f /home/user/.doingLogin ] ; then
        DISPLAY=:0 su -c /opt/xandros/bin/shutdown_dialog user &amp;amp;
fi&lt;/pre&gt;
&lt;p&gt;At this point, you&amp;#8217;ve lost direct access to some of the applications that were there in the EasyMode interface, the paths for those applications are in &lt;tt&gt;/opt/xandros/share/AsusLauncher/simpleui.rc&lt;/tt&gt;. Grab the ones you want and add them to IceWM&amp;#8217;s menu.&lt;/p&gt;
&lt;p&gt;I think I&amp;#8217;ve done some more tweaks but those are the big ones. I&amp;#8217;m hating this Xandros thing more and more, and I guess I&amp;#8217;ll install Debian sooner rather than later.&lt;/p&gt;
&lt;p&gt;&amp;mdash; ferdy&lt;/p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Tagged: asus, eee pc, eeepc, hacks, netbook&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/fpereda.wordpress.com/60/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/fpereda.wordpress.com/60/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/fpereda.wordpress.com/60/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/fpereda.wordpress.com/60/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/fpereda.wordpress.com/60/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/fpereda.wordpress.com/60/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/fpereda.wordpress.com/60/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/fpereda.wordpress.com/60/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/fpereda.wordpress.com/60/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/fpereda.wordpress.com/60/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=fpereda.wordpress.com&amp;blog=3759924&amp;post=60&amp;subd=fpereda&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 19 Oct 2008 13:04:08 +0000</pubDate>
</item>
<item>
	<title>Ciaran McCreesh: Path and installable-to dependencies</title>
	<guid>http://ciaranm.wordpress.com/?p=225</guid>
	<link>http://ciaranm.wordpress.com/2008/10/16/path-and-installable-to-dependencies/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;A while ago, &lt;a href=&quot;http://paludis.pioto.org/&quot;&gt;Paludis&lt;/a&gt; got &lt;a href=&quot;http://ciaranm.wordpress.com/2008/08/11/from-repository-dependencies/&quot;&gt;from-repository dependencies&lt;/a&gt;. 0.32 will extend this further with path and installable-to dependencies.&lt;/p&gt;
&lt;p&gt;Path dependencies are fairly simple: &lt;code&gt;cat/pkg::/&lt;/code&gt; will match &lt;code&gt;cat/pkg&lt;/code&gt; installed at root &lt;code&gt;/&lt;/code&gt;. A full path can be used too, so &lt;code&gt;cat/pkg::/var/mychroot&lt;/code&gt; will work (as well as anything involving non-/ roots works, anyway&amp;#8230;).&lt;/p&gt;
&lt;p&gt;Installable-to dependencies take a bit more explaining. There are two kinds of installable-to dependency: repository and path. An installable-to-repository dependency looks like &lt;code&gt;cat/pkg::repo?&lt;/code&gt; and is matched by any &lt;code&gt;cat/pkg&lt;/code&gt; that could be installed to the repository named &lt;code&gt;repo&lt;/code&gt;. An installable-to-path dependency looks like &lt;code&gt;cat/pkg::/?&lt;/code&gt; and is matched by any &lt;code&gt;cat/pkg&lt;/code&gt; that could be installed to any repository with root &lt;code&gt;/&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Installable-to dependencies will not match masked packages. To specify &amp;#8220;packages that would be installable, ignoring masks&amp;#8221;, use a double question mark, like &lt;code&gt;cat/pkg::/??&lt;/code&gt;. At present the double question mark ignores &lt;em&gt;all&lt;/em&gt; masks, even those that cannot be overridden (unsupported EAPI, &lt;a href=&quot;http://ciaranm.wordpress.com/2008/06/12/dealing-with-lots-of-repositories/&quot;&gt;unavailable&lt;/a&gt; or &lt;a href=&quot;http://ciaranm.wordpress.com/2008/10/06/dealing-with-unwritten-packages/&quot;&gt;unwritten&lt;/a&gt;). This may change to only include overridable masks; I&amp;#8217;m not sure which is better behaviour yet.&lt;/p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Tagged: paludis&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/ciaranm.wordpress.com/225/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ciaranm.wordpress.com/225/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/ciaranm.wordpress.com/225/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/ciaranm.wordpress.com/225/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/ciaranm.wordpress.com/225/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/ciaranm.wordpress.com/225/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/ciaranm.wordpress.com/225/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/ciaranm.wordpress.com/225/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/ciaranm.wordpress.com/225/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/ciaranm.wordpress.com/225/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=ciaranm.wordpress.com&amp;blog=3715284&amp;post=225&amp;subd=ciaranm&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 16 Oct 2008 14:55:44 +0000</pubDate>
</item>
<item>
	<title>Fernando J. Pereda: EeePC 901: First impressions</title>
	<guid>http://fpereda.wordpress.com/?p=54</guid>
	<link>http://fpereda.wordpress.com/2008/10/15/eeepc-901-first-impressions/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;Last friday, I got myself a shiny EeePC 901. The machine is extremely nice and the bundled software JustWorks if you have very simple needs and are happy with the very few packages that are available. Battery life is very good too with wifi constantly on.&lt;/p&gt;
&lt;p&gt;However, there are a number of oddities in the Xandros installation, some are just annoying and others really piss me off. Without any specific order:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It comes with mono, python, java, make, cpp, gdb but without gcc? And no, it is not available in their repos eiher.&lt;/li&gt;
&lt;li&gt;You can&amp;#8217;t enable/disable bluetooth without disabling the wireless card. It is possible to do it on the command line so it is just a software stupidity.&lt;/li&gt;
&lt;li&gt;The installed vim version lacks support for mouse and there&amp;#8217;s no gvim or a full vim package in their repos. Also, no indent is either installed or installable.&lt;/li&gt;
&lt;li&gt;The GUI does not support WPA2 though it is possible to use it through wpa-supplicant&lt;/li&gt;
&lt;li&gt;A Windows XP theme for icewm? Come on&amp;#8230;&lt;/li&gt;
&lt;li&gt;Stupidly big fonts and cursors, because there&amp;#8217;s so much screen space to spare.&lt;/li&gt;
&lt;li&gt;Their apt repositories are b0rked and some updates don&amp;#8217;t work.&lt;/li&gt;
&lt;li&gt;The only PDF reader available is acroread.&lt;/li&gt;
&lt;li&gt;StarOffice instead of OpenOffice? Yeah, quoting &lt;a href=&quot;http://esspeebee.wordpress.com/&quot;&gt;spb&lt;/a&gt;: &amp;#8220;&lt;i&gt;for full enterprise readiness&lt;/i&gt;&amp;#8220;.&lt;/li&gt;
&lt;li&gt;No kernel source, so building additional modules (iptables, additional filesystems, &amp;#8230;) is impossible.&lt;/li&gt;
&lt;li&gt;External, USB drives get mounted as &amp;#8216;D:&amp;#8217;, &amp;#8216;E:&amp;#8217;, &amp;#8216;F:&amp;#8217;&amp;#8230;.&lt;/li&gt;
&lt;li&gt;Your user has to be &amp;#8216;user&amp;#8217; and many things hardcode &lt;tt&gt;/home/user&lt;/tt&gt;. Yes, it is easy to change, it is just annoying&lt;/li&gt;
&lt;li&gt;Samba and parport are enabled by default and there is no way to stop or disable them from the gui.&lt;/li&gt;
&lt;li&gt;The terminal is hidden, an uxterm is available through &lt;tt&gt;Ctrl+Alt+T&lt;/tt&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That list is not complete but it is enough to ilustrate the point that the Xandros installation really sucks.&lt;/p&gt;
&lt;p&gt;First things to do to get a not stupid environment:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Edit &lt;tt&gt;/usr/sbin/services.sh&lt;/tt&gt; and &lt;tt&gt;/etc/fastservices&lt;/tt&gt; and remove stuff like samba, portmap and lindvd.&lt;/li&gt;
&lt;li&gt;Install &lt;tt&gt;xandros-wpa-supplicant&lt;/tt&gt; needed for networks such as eduroam.&lt;/li&gt;
&lt;li&gt;Copy &lt;tt&gt;/etc/X11/icewm&lt;/tt&gt; to &lt;tt&gt;~/.icewm&lt;/tt&gt; to enable multiple workspaces and remove the SOS and tips buttons.&lt;/li&gt;
&lt;li&gt;Install a proper theme (&lt;a href=&quot;http://www.gnome-look.org/content/show.php/ICEWM%3A+Thinblack?content=55648&quot;&gt;ThinBlack&lt;/a&gt; is a very good one) and a proper cursor theme such as &lt;a href=&quot;http://jimmac.musichall.cz/themes.php?skin=7&quot;&gt;DMZ-Vanilla&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Run &lt;tt&gt;sudo dpkg-reconfigure locales&lt;/tt&gt; AND edit &lt;tt&gt;/etc/kde3/kdeglobals&lt;/tt&gt; to get the system in english instead of dealing with wonky translations. Run something like aptitude or synaptic to remove locale-specific packages.&lt;/li&gt;
&lt;li&gt;Run &lt;tt&gt;kcontrol&lt;/tt&gt; to set smaller fonts&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In theory, it is possible to use the debian apt repositories using pinning, however, I&amp;#8217;m wondering if that&amp;#8217;s better than just installing &lt;a href=&quot;http://wiki.debian.org/DebianEeePC&quot;&gt;Debian on the EeePC&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;All in all, a very nice machine and hardware and a very stupid software. Fortunately, the latter can be replaced.&lt;/p&gt;
&lt;p&gt;&amp;mdash; ferdy&lt;/p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Tagged: asus, eee pc, eeepc, hardware, netbook, rant, wtf&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/fpereda.wordpress.com/54/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/fpereda.wordpress.com/54/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/fpereda.wordpress.com/54/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/fpereda.wordpress.com/54/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/fpereda.wordpress.com/54/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/fpereda.wordpress.com/54/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/fpereda.wordpress.com/54/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/fpereda.wordpress.com/54/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/fpereda.wordpress.com/54/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/fpereda.wordpress.com/54/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=fpereda.wordpress.com&amp;blog=3759924&amp;post=54&amp;subd=fpereda&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 15 Oct 2008 12:59:21 +0000</pubDate>
</item>
<item>
	<title>Ciaran McCreesh: Paludis 0.30.3 Released</title>
	<guid>http://ciaranm.wordpress.com/?p=223</guid>
	<link>http://ciaranm.wordpress.com/2008/10/10/paludis-0303-released/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;http://paludis.pioto.org/&quot;&gt;Paludis&lt;/a&gt; 0.30.3 has been released:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tests for 0.30.2 would fail on some systems. This is now fixed.&lt;/li&gt;
&lt;/ul&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Tagged: paludis, release&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/ciaranm.wordpress.com/223/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ciaranm.wordpress.com/223/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/ciaranm.wordpress.com/223/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/ciaranm.wordpress.com/223/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/ciaranm.wordpress.com/223/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/ciaranm.wordpress.com/223/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/ciaranm.wordpress.com/223/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/ciaranm.wordpress.com/223/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/ciaranm.wordpress.com/223/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/ciaranm.wordpress.com/223/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=ciaranm.wordpress.com&amp;blog=3715284&amp;post=223&amp;subd=ciaranm&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 10 Oct 2008 18:28:57 +0000</pubDate>
</item>
<item>
	<title>Ciaran McCreesh: Paludis 0.30.2 Released</title>
	<guid>http://ciaranm.wordpress.com/?p=220</guid>
	<link>http://ciaranm.wordpress.com/2008/10/09/paludis-0302-released/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;http://paludis.pioto.org/&quot;&gt;Paludis&lt;/a&gt; 0.30.2 has been released:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Work around ebuilds that treat cwd as secure.&lt;/li&gt;
&lt;/ul&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Tagged: paludis, release&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/ciaranm.wordpress.com/220/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ciaranm.wordpress.com/220/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/ciaranm.wordpress.com/220/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/ciaranm.wordpress.com/220/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/ciaranm.wordpress.com/220/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/ciaranm.wordpress.com/220/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/ciaranm.wordpress.com/220/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/ciaranm.wordpress.com/220/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/ciaranm.wordpress.com/220/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/ciaranm.wordpress.com/220/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=ciaranm.wordpress.com&amp;blog=3715284&amp;post=220&amp;subd=ciaranm&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 09 Oct 2008 22:24:12 +0000</pubDate>
</item>
<item>
	<title>Ciaran McCreesh: Dealing with Unwritten Packages</title>
	<guid>http://ciaranm.wordpress.com/?p=213</guid>
	<link>http://ciaranm.wordpress.com/2008/10/06/dealing-with-unwritten-packages/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;A while ago &lt;a href=&quot;http://exherbo.org/&quot;&gt;Exherbo&lt;/a&gt; came up with &lt;a href=&quot;http://ciaranm.wordpress.com/2008/06/12/dealing-with-lots-of-repositories/&quot;&gt;a solution for the &amp;#8220;large number of repositories&amp;#8221; problem&lt;/a&gt;. It turns out this solution works rather well, and I&amp;#8217;m now convinced that anyone rushing off and assuming that Git on its own will magically solve anything other than CVS sucking is going in the wrong direction.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://paludis.pioto.org/&quot;&gt;Paludis&lt;/a&gt; also has ways of &lt;a href=&quot;http://ciaranm.wordpress.com/2008/05/20/managing-unpackaged-packages-or-whats-this-importare-thing/&quot;&gt;tracking packages installed by hand&lt;/a&gt;. Whilst useful on &lt;a href=&quot;http://gentoo.org/&quot;&gt;Gentoo&lt;/a&gt;, this really comes into play on Exherbo, where we don&amp;#8217;t want to end up with a massive unmaintainable tree full of packages used by only two people.&lt;/p&gt;
&lt;p&gt;The logical next step is tracking packages that don&amp;#8217;t exist yet.&lt;/p&gt;
&lt;p&gt;An unimaginative person might think that the way to solve this would be to have a bug for each requested package. But that gets messy &amp;#8212; it&amp;#8217;s not integrated with the package manager, and requires considerable extra effort from the user. A while ago &lt;a href=&quot;http://lists.exherbo.org/pipermail/exherbo-dev/2008-August/000269.html&quot;&gt;Bernd suggested something more interesting&lt;/a&gt;: tracking unwritten packages in a repository in a similar way to how we do unavailable packages.&lt;/p&gt;
&lt;p&gt;The implications:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Most obviously, we can keep track of things we want that haven&amp;#8217;t been written yet in a way that doesn&amp;#8217;t involve leaving the package manager to look things up.&lt;/li&gt;
&lt;li&gt;We can also use it to track version bumps that we know will take a while. Doing &lt;code&gt;paludis --query '&amp;gt;=hugescarypackage-4'&lt;/code&gt;, say, would show that it&amp;#8217;s being worked upon.&lt;/li&gt;
&lt;li&gt;We can also depend upon things that don&amp;#8217;t exist, rather than leaving incomplete dependency strings around. This is fine in at least two cases &amp;#8212; if a dependency is conditional upon an option that should probably be implemented but isn&amp;#8217;t yet, we can add the option and make it unusable. And we can handle obscure suggested dependencies (e.g. git has lots of optional dependencies upon weird perl modules, so we can say &amp;#8220;if you want support for git-send-email with SSL, you need to write such and such a package&amp;#8221;).&lt;/li&gt;
&lt;li&gt;Bored developers could simply &lt;code&gt;paludis --query '*/*::unwritten'&lt;/code&gt; and get ideas for what to do.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Adding support to Paludis for this only took a couple of hours. So now Exherbo developers can use this:&lt;/p&gt;
&lt;pre&gt;
format = unwritten
location = /var/db/paludis/repositories/unwritten
sync = git://git.exherbo.org/unwritten.git
importance = -100
&lt;/pre&gt;
&lt;p&gt;And see this:&lt;/p&gt;
&lt;pre&gt;
$ paludis -q genesis
* sys-apps/genesis
    unwritten:               (1.0)X* {:0}
    Description:             The daddy of all init systems
    Homepage:                http://www.exherbo.org/
    Comment:                 We need an init system.
    Masked by unwritten:     Package has not been written yet
&lt;/pre&gt;
&lt;p&gt;As with unavailable, installing behaves sensibly:&lt;/p&gt;
&lt;pre&gt;
$ paludis -pi genesis
Building target list...
Building dependency list...
Query error:
  * In program paludis -pi genesis:
  * When performing install action from command line:
  * When executing install task:
  * When building dependency list:
  * When adding PackageDepSpec 'sys-apps/genesis':
  * All versions of 'sys-apps/genesis' are masked. Candidates are:
    * sys-apps/genesis-1.0:0::unwritten: Masked by unwritten (Package has not been written yet)
&lt;/pre&gt;
&lt;p&gt;Those interested in the repository format can &lt;a href=&quot;http://git.exherbo.org/?p=unwritten.git;a=tree&quot;&gt;browse the tree&lt;/a&gt;. The observant might notice that the file format is quite similar to the one used by unavailable repositories, and wonder whether I was feeling lazy and swiped a load of code rather than implementing a new repository from scratch.&lt;/p&gt;
&lt;p&gt;In the spirit of silly buzzwords, one could argue that this increases distributivity and democratisation of the repository, since there&amp;#8217;s nothing to stop motivated users from creating their own wishlist repositories. It wouldn&amp;#8217;t be hard to make a simple web interface that lets users request and vote on packages and version bumps, automatically generating a repository that anyone can use. But fortunately Exherbo is a dictatorship and has no users, so we don&amp;#8217;t have to put up with that kind of nonsense.&lt;/p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Tagged: exherbo, gentoo, paludis, unavailable, unpackaged&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/ciaranm.wordpress.com/213/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ciaranm.wordpress.com/213/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/ciaranm.wordpress.com/213/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/ciaranm.wordpress.com/213/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/ciaranm.wordpress.com/213/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/ciaranm.wordpress.com/213/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/ciaranm.wordpress.com/213/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/ciaranm.wordpress.com/213/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/ciaranm.wordpress.com/213/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/ciaranm.wordpress.com/213/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=ciaranm.wordpress.com&amp;blog=3715284&amp;post=213&amp;subd=ciaranm&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 06 Oct 2008 21:57:14 +0000</pubDate>
</item>
<item>
	<title>Fernando J. Pereda: Generated versions of PMS</title>
	<guid>http://fpereda.wordpress.com/?p=49</guid>
	<link>http://fpereda.wordpress.com/2008/10/06/generated-versions-of-pms/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;Yesterday I linked some PDF versions of &lt;a href=&quot;http://www.gentoo.org/proj/en/qa/pms.xml&quot;&gt;PMS&lt;/a&gt; in its &amp;#8216;home page&amp;#8217;. This makes PMS more accessible to those that can&amp;#8217;t or won&amp;#8217;t install a proper TeX system since reading the LaTeX sources &lt;b&gt;is&lt;/b&gt; a PITA.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ll generate and link versions approved by the Gentoo Council by checking out their signed tags and those versions that the PMS editors deem important. I&amp;#8217;ll also link to current HEAD, but this won&amp;#8217;t be automated so it might lag a bit if I&amp;#8217;m extremely busy.&lt;/p&gt;
&lt;p&gt;Also, for those that can&amp;#8217;t be bothered reading technical documentation aimed at people implementing a package manager and want to know what&amp;#8217;s new in EAPI2, &lt;a href=&quot;http://ciaranm.wordpress.com&quot;&gt;Ciaran McCreesh&lt;/a&gt; has published a series of blag posts explaining the new features and whence they came. Make sure to take a look at &lt;a href=&quot;http://ciaranm.wordpress.com/2008/09/28/whats-in-eapi-2/&quot;&gt;What&amp;#8217;s in EAPI 2?&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;mdash; ferdy&lt;/p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Tagged: eapi, eapi 2, ebuild, figurehead, gentoo, paludis, pms&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/fpereda.wordpress.com/49/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/fpereda.wordpress.com/49/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/fpereda.wordpress.com/49/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/fpereda.wordpress.com/49/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/fpereda.wordpress.com/49/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/fpereda.wordpress.com/49/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/fpereda.wordpress.com/49/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/fpereda.wordpress.com/49/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/fpereda.wordpress.com/49/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/fpereda.wordpress.com/49/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=fpereda.wordpress.com&amp;blog=3759924&amp;post=49&amp;subd=fpereda&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 06 Oct 2008 10:13:48 +0000</pubDate>
</item>
<item>
	<title>Alexander Færøy: Hello from Open Source Days</title>
	<guid>http://ahfaeroey.wordpress.com/?p=38</guid>
	<link>http://ahfaeroey.wordpress.com/2008/10/04/hello-from-open-source-days/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;First picture from Open Source Days:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://ahfaeroey.files.wordpress.com/2008/10/img_0003.jpg&quot;&gt;&lt;img src=&quot;http://ahfaeroey.files.wordpress.com/2008/10/img_0003.jpg?w=300&amp;h=225&quot; alt=&quot;Zebrapig&quot; title=&quot;img_0003&quot; width=&quot;300&quot; height=&quot;225&quot; class=&quot;size-medium wp-image-40&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/ahfaeroey.wordpress.com/38/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ahfaeroey.wordpress.com/38/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/ahfaeroey.wordpress.com/38/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/ahfaeroey.wordpress.com/38/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/ahfaeroey.wordpress.com/38/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/ahfaeroey.wordpress.com/38/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/ahfaeroey.wordpress.com/38/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/ahfaeroey.wordpress.com/38/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/ahfaeroey.wordpress.com/38/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/ahfaeroey.wordpress.com/38/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=ahfaeroey.wordpress.com&amp;blog=3719608&amp;post=38&amp;subd=ahfaeroey&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sat, 04 Oct 2008 08:10:05 +0000</pubDate>
</item>
<item>
	<title>Ciaran McCreesh: EAPI 2: doman language support</title>
	<guid>http://ciaranm.wordpress.com/?p=157</guid>
	<link>http://ciaranm.wordpress.com/2008/10/01/eapi-2-doman-language-support/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;This is the final post in &lt;a href=&quot;http://ciaranm.wordpress.com/2008/09/28/whats-in-eapi-2/&quot;&gt;a series on EAPI 2&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;doman&lt;/code&gt; helper is one of those pesky little beasts that makes specifying EAPI behaviour formally such a nuisance (although it is nowhere near as horrible as &lt;code&gt;dohtml&lt;/code&gt;). EAPI 2 makes it even peskier.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ll try that again.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;doman&lt;/code&gt; helper makes writing ebuilds substantially easier by automagically doing the right thing when installing manual pages, freeing the developer from having to care about manual sections. EAPI 2 makes &lt;code&gt;doman&lt;/code&gt; even more useful by making it aware of language codes as well as sections.&lt;/p&gt;
&lt;p&gt;The painful details are available in &lt;a href=&quot;http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git&quot;&gt;PMS&lt;/a&gt;, but basically this will now &amp;#8216;do the right thing&amp;#8217;:&lt;/p&gt;
&lt;pre&gt;
doman foo.1 foo.en.1 foo.en_GB.1
&lt;/pre&gt;
&lt;p&gt;Previously only the first of the items would go to the right place.&lt;/p&gt;
&lt;p&gt;This one&amp;#8217;s a &lt;a href=&quot;http://www.gentoo.org/&quot;&gt;Gentoo&lt;/a&gt; innovation; see &lt;a href=&quot;http://bugs.gentoo.org/show_bug.cgi?id=222439&quot;&gt;bug 222439&lt;/a&gt; for its history. It was shamelessly stolen for &lt;code&gt;exheres-0&lt;/code&gt;, but was too late for &lt;code&gt;kdebuild-1&lt;/code&gt;.&lt;/p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Tagged: eapi, eapi 2, ebuild, gentoo, paludis&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/ciaranm.wordpress.com/157/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ciaranm.wordpress.com/157/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/ciaranm.wordpress.com/157/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/ciaranm.wordpress.com/157/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/ciaranm.wordpress.com/157/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/ciaranm.wordpress.com/157/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/ciaranm.wordpress.com/157/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/ciaranm.wordpress.com/157/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/ciaranm.wordpress.com/157/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/ciaranm.wordpress.com/157/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=ciaranm.wordpress.com&amp;blog=3715284&amp;post=157&amp;subd=ciaranm&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 01 Oct 2008 10:10:23 +0000</pubDate>
</item>
<item>
	<title>Ciaran McCreesh: EAPI 2: default_ phase functions and the default function</title>
	<guid>http://ciaranm.wordpress.com/?p=153</guid>
	<link>http://ciaranm.wordpress.com/2008/09/30/eapi-2-default_-phase-functions-and-the-default-function/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;This post is part of &lt;a href=&quot;http://ciaranm.wordpress.com/2008/09/28/whats-in-eapi-2/&quot;&gt;a series on EAPI 2&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;With EAPIs 0 and 1, if you want to add something to, say, &lt;code&gt;src_unpack&lt;/code&gt;, you have to manually write out the default implementation and then add your code. This is easy to screw up &amp;#8212; developers are highly prone to getting the quoting wrong and forgetting which functions do and do not want a &lt;code&gt;|| die&lt;/code&gt; on the end.&lt;/p&gt;
&lt;p&gt;EAPI 2 makes the default implementation of phase functions available as functions themselves. These functions are named &lt;code&gt;default_src_unpack&lt;/code&gt;, &lt;code&gt;default_src_configure&lt;/code&gt; and so on.&lt;/p&gt;
&lt;p&gt;Typing out &lt;code&gt;default_src_compile&lt;/code&gt; in full is pointless, though (especially since it&amp;#8217;s illegal to call phase functions or default phase functions from other phase functions). So we also introduce the special &lt;code&gt;default&lt;/code&gt; function, which calls whichever &lt;code&gt;default_&lt;/code&gt; phase function is appropriate for the phase we&amp;#8217;re in. Thus:&lt;/p&gt;
&lt;pre&gt;
src_compile() {
    default
    if useq extras ; then
        emake extras || die &quot;splat&quot;
    fi
}
&lt;/pre&gt;
&lt;p&gt;Both features first appeared in &lt;code&gt;exheres-0&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;An alternative proposal (I think it came from the &lt;a href=&quot;http://www.pkgcore.org/&quot;&gt;Pkgcore&lt;/a&gt; camp) was to make all EAPI default implementations available through functions named like &lt;code&gt;eapi0_src_compile&lt;/code&gt;, &lt;code&gt;eapi1_src_compile&lt;/code&gt; and &lt;code&gt;eapi2_src_compile&lt;/code&gt;. This proposal was rejected because various &lt;a href=&quot;http://paludis.pioto.org/&quot;&gt;Paludis&lt;/a&gt; people moaned about it not making sense or having any legitimate use cases (the &amp;#8216;obvious&amp;#8217; use cases don&amp;#8217;t work if you think them through), and no-one stood up to defend it.&lt;/p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Tagged: eapi, eapi 2, ebuild, gentoo, paludis&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/ciaranm.wordpress.com/153/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ciaranm.wordpress.com/153/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/ciaranm.wordpress.com/153/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/ciaranm.wordpress.com/153/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/ciaranm.wordpress.com/153/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/ciaranm.wordpress.com/153/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/ciaranm.wordpress.com/153/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/ciaranm.wordpress.com/153/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/ciaranm.wordpress.com/153/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/ciaranm.wordpress.com/153/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=ciaranm.wordpress.com&amp;blog=3715284&amp;post=153&amp;subd=ciaranm&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 30 Sep 2008 10:15:19 +0000</pubDate>
</item>
<item>
	<title>Ciaran McCreesh: EAPI 2: src_configure and src_compile</title>
	<guid>http://ciaranm.wordpress.com/?p=146</guid>
	<link>http://ciaranm.wordpress.com/2008/09/30/eapi-2-src_configure-and-src_compile/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;This is post five in &lt;a href=&quot;http://ciaranm.wordpress.com/2008/09/28/whats-in-eapi-2/&quot;&gt;a series describing EAPI 2&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;EAPI 2 splits &lt;code&gt;src_compile&lt;/code&gt; into &lt;code&gt;src_configure&lt;/code&gt; and &lt;code&gt;src_compile&lt;/code&gt;. Like &lt;code&gt;src_prepare&lt;/code&gt;, it&amp;#8217;s mostly a convenience thing to reduce copying default implementations, although in this case it also makes it easier to hook in code in between configure and make being run.&lt;/p&gt;
&lt;p&gt;The default &lt;code&gt;src_configure&lt;/code&gt; implementation behaves like this:&lt;/p&gt;
&lt;pre&gt;
src_configure() {
    if [[ -x ${ECONF_SOURCE:-.}/configure ]]; then
        econf
    fi
}
&lt;/pre&gt;
&lt;p&gt;This is the first half of EAPI 1&amp;#8217;s &lt;code&gt;src_compile&lt;/code&gt;, not the non-&lt;code&gt;ECONF_SOURCE&lt;/code&gt;-aware EAPI 0 version.&lt;/p&gt;
&lt;p&gt;The default &lt;code&gt;src_compile&lt;/code&gt; implementation is reduced accordingly:&lt;/p&gt;
&lt;pre&gt;
src_compile() {
    if [[ -f Makefile ]] || [[ -f GNUmakefile ]] || [[ -f makefile ]]; then
        emake || die &quot;emake failed&quot;
    fi
}
&lt;/pre&gt;
&lt;p&gt;The split configure / compile setup was first used in &lt;code&gt;exheres-0&lt;/code&gt;, which uses more elaborate default implementations. Like &lt;code&gt;src_prepare&lt;/code&gt;, it was considered but rejected for &lt;code&gt;kdebuild-1&lt;/code&gt; because of eclass difficulties.&lt;/p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Tagged: eapi, eapi 2, ebuild, gentoo, paludis&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/ciaranm.wordpress.com/146/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ciaranm.wordpress.com/146/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/ciaranm.wordpress.com/146/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/ciaranm.wordpress.com/146/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/ciaranm.wordpress.com/146/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/ciaranm.wordpress.com/146/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/ciaranm.wordpress.com/146/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/ciaranm.wordpress.com/146/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/ciaranm.wordpress.com/146/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/ciaranm.wordpress.com/146/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=ciaranm.wordpress.com&amp;blog=3715284&amp;post=146&amp;subd=ciaranm&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 30 Sep 2008 10:10:54 +0000</pubDate>
</item>
<item>
	<title>Ciaran McCreesh: EAPI 2: src_prepare</title>
	<guid>http://ciaranm.wordpress.com/?p=143</guid>
	<link>http://ciaranm.wordpress.com/2008/09/29/eapi-2-src_prepare/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;This is post four in &lt;a href=&quot;http://ciaranm.wordpress.com/2008/09/28/whats-in-eapi-2/&quot;&gt;a series describing EAPI 2&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;EAPI 2 has a new phase function called &lt;code&gt;src_prepare&lt;/code&gt;. It is called after &lt;code&gt;src_unpack&lt;/code&gt;, and can be used to apply patches, do sed voodoo and so on. The default implementation does nothing.&lt;/p&gt;
&lt;p&gt;This function is purely for convenience. It gets rather tedious copying out the default implementation of &lt;code&gt;src_unpack&lt;/code&gt; just to add a patch in somewhere.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;src_prepare&lt;/code&gt; was first introduced in &lt;code&gt;exheres-0&lt;/code&gt; (which has a more elaborate default implementation). It was considered but rejected for &lt;code&gt;kdebuild-1&lt;/code&gt; because making best use of it requires eclass awareness, and the packages using &lt;code&gt;kdebuild-1&lt;/code&gt; had to share eclasses with the main Gentoo tree.&lt;/p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Tagged: eapi, eapi 2, ebuild, gentoo, paludis&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/ciaranm.wordpress.com/143/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ciaranm.wordpress.com/143/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/ciaranm.wordpress.com/143/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/ciaranm.wordpress.com/143/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/ciaranm.wordpress.com/143/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/ciaranm.wordpress.com/143/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/ciaranm.wordpress.com/143/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/ciaranm.wordpress.com/143/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/ciaranm.wordpress.com/143/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/ciaranm.wordpress.com/143/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=ciaranm.wordpress.com&amp;blog=3715284&amp;post=143&amp;subd=ciaranm&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 29 Sep 2008 10:02:47 +0000</pubDate>
</item>
<item>
	<title>Ciaran McCreesh: EAPI 2: !! Blockers</title>
	<guid>http://ciaranm.wordpress.com/?p=130</guid>
	<link>http://ciaranm.wordpress.com/2008/09/29/eapi-2-blockers/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;This is part three of &lt;a href=&quot;http://ciaranm.wordpress.com/2008/09/28/whats-in-eapi-2/&quot;&gt;a series of posts describing EAPI 2&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Blockers are a nuisance for end users. It&amp;#8217;s rarely obvious how to fix them or what they mean, and getting it wrong can leave systems unusable.&lt;/p&gt;
&lt;p&gt;There have been various proposals on how to fix this. For &lt;code&gt;exheres-0&lt;/code&gt;, we&amp;#8217;re going to go with something like this:&lt;/p&gt;
&lt;pre&gt;
DEPENDENCIES=&quot;
    !app-misc/superfrozbinator [[
        description = [ Can only have one frozbinator installed at once ]
        resolution = uninstall-blocked-after
        url = [ http://explain.example.org/?only-one-frozbinator ]
    ]]
    !dev-libs/icky [[
        description = [ Having icky installed breaks the build process ]
        resolution = [ manual ]
        url = [ http://explain.example.org/?myfroz-hates-icky ]
    ]]&quot;
&lt;/pre&gt;
&lt;p&gt;The user can then be presented with a list of things that would need to be uninstalled to resolve blockers, along with clear descriptions of why they need to do so. Once the user has explicitly accepted the uninstalls, the package manager could then safely perform the installs.&lt;/p&gt;
&lt;p&gt;Unfortunately, annotations aren&amp;#8217;t something that can be implemented for Portage any time soon. Instead, Portage has gone with a fairly horrible and dangerous semi-automatic block resolution system that sometimes removes blocked packages automatically (often screwing up the user&amp;#8217;s system in the process). Whilst doing so, Portage changed the meaning of EAPI 0 / 1 blockers from &amp;#8220;this must not be installed when we do the build&amp;#8221; to &amp;#8220;this must be uninstalled after we do the build&amp;#8221;.&lt;/p&gt;
&lt;p&gt;EAPI 2 introduces a new kind of blocker using double exclamation marks, like &lt;code&gt;!!app-misc/other&lt;/code&gt;. This goes back to the old meaning of &amp;#8220;this must not be installed when we do the build&amp;#8221;, keeping &lt;code&gt;!app-misc/other&lt;/code&gt; for &amp;#8220;this must be uninstalled after we do the build&amp;#8221;.&lt;/p&gt;
&lt;p&gt;This does not, unfortunately, make the user any safer, but it does allow packages that really can&amp;#8217;t have something installed at build time to say so.&lt;/p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Tagged: eapi, eapi 2, ebuild, gentoo, paludis&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/ciaranm.wordpress.com/130/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ciaranm.wordpress.com/130/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/ciaranm.wordpress.com/130/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/ciaranm.wordpress.com/130/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/ciaranm.wordpress.com/130/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/ciaranm.wordpress.com/130/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/ciaranm.wordpress.com/130/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/ciaranm.wordpress.com/130/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/ciaranm.wordpress.com/130/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/ciaranm.wordpress.com/130/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=ciaranm.wordpress.com&amp;blog=3715284&amp;post=130&amp;subd=ciaranm&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 29 Sep 2008 10:01:55 +0000</pubDate>
</item>
<item>
	<title>Anders Ossowicki: The worst thing…</title>
	<guid>http://ossowicki.com/?p=135</guid>
	<link>http://ossowicki.com/?p=135</link>
	<description>&lt;p&gt;The &lt;a href=&quot;http://blog.jespernyerup.dk/2008/09/det-v%c3%a6rste-ved-open-source-days/&quot;&gt;worst thing about Open Source Days [danish]&lt;/a&gt; isn&amp;#8217;t choosing which talks to attend (I never have time for talks anyway). The worst thing is doing weird LaTeX hacks to get their logo placed correctly in the &lt;a href=&quot;http://www.fys.ku.dk/~desu/randomstuff/osd2008programdag2.pdf&quot;&gt;agenda&lt;/a&gt;&amp;#8230;&lt;br /&gt;
Turns out there&amp;#8217;s this cool environment for wrapping figures in text named &amp;#8216;wrapfig&amp;#8217; (gee, who thinks up all these names) that you can use for positioning an image a little more intelligently than the default, left-aligned placement. Alas, said environment (or something else - I am by no means a LaTeX guru), doesn&amp;#8217;t play nicely with tables and as the majority of the page is made up by the actual agenda in a table, that means the logo ends up whereever it fits; in this case smack in the middle of the page. A lost cause? Of course not! &amp;lt;leonidas&amp;gt;This is LaTeX!&amp;lt;/leonidas&amp;gt;. Take a look at this beauty:&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;
\AddToShipoutPicture{
 \put(0,0){
  \parbox[b][420mm]{530mm}{
   \vfill
   \centering
   \includegraphics[width=60mm]{logo2008_small}
   \vfill
  }
 }
}
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;&lt;i&gt;[courtesy of the same guy who wrote the aforementioned blagpost, Jesper Nyerup]&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Of course, you might have to fiddle with the actual placement of the parbox but as far as I could tell from my experiments, this will place the image whereever you want it, no matter what is above or below it layerwise. At the point where Jesper pasted that, I had been driven to the nastier corners, fiddling with boundingboxes and another parbox-hack, none of which worked remotely as well as this solution.&lt;br /&gt;
An ugly hack, nonetheless, don&amp;#8217;t use it if you can avoid it.&lt;/p&gt;
&lt;p&gt;Also, this requires you to include the eso-pic package in your preamble.&lt;/p&gt;
&lt;p&gt;Also, if you happen to attend Open Source Days on saturday, by all means come by the Exherbo user stand where we will be happy to act like the elistist bastards people assume we are and tell you exactly why you shouldn&amp;#8217;t use Exherbo just yet.&lt;/p&gt;</description>
	<pubDate>Sun, 28 Sep 2008 21:42:04 +0000</pubDate>
</item>
<item>
	<title>Ciaran McCreesh: EAPI 2: Use Dependencies</title>
	<guid>http://ciaranm.wordpress.com/?p=125</guid>
	<link>http://ciaranm.wordpress.com/2008/09/28/eapi-2-use-dependencies/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;This is the second post in &lt;a href=&quot;http://ciaranm.wordpress.com/2008/09/28/whats-in-eapi-2/&quot;&gt;a series of posts describing EAPI 2&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Use dependencies &lt;a href=&quot;http://bugs.gentoo.org/2272&quot;&gt;have been needed for a very long time&lt;/a&gt;. They eliminate most of the &lt;code&gt;built_with_use&lt;/code&gt; errors you see during &lt;code&gt;pkg_setup&lt;/code&gt;, replacing them with an error that is seen at pretend-install time.&lt;/p&gt;
&lt;p&gt;The first two real world trials of use dependencies were with &lt;a href=&quot;http://exherbo.org/&quot;&gt;Exherbo&lt;/a&gt;&amp;#8217;s &lt;code&gt;exheres-0&lt;/code&gt; and &lt;a href=&quot;http://www.gentoo.org/&quot;&gt;Gentoo&lt;/a&gt;&amp;#8217;s &lt;code&gt;kdebuild-1&lt;/code&gt;. It became apparent that an awful lot of packages would end up with dependencies like:&lt;/p&gt;
&lt;pre&gt;
blah? ( app-misc/foo[blah] ) !blah? ( app-misc/foo )
monkey? ( app-misc/foo[monkey] ) !monkey? ( app-misc/foo[-monkey] )
fnord? ( app-misc/foo ) !fnord? ( app-misc/foo[-fnord] )
&lt;/pre&gt;
&lt;p&gt;Syntactically, that&amp;#8217;s rather inconvenient. For &lt;code&gt;exheres-0&lt;/code&gt; and &lt;code&gt;kdebuild-1&lt;/code&gt;, we added the following syntax:&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;[opt]&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The flag must be enabled.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;[opt=]&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The flag must be enabled if the flag is enabled for the package with the dependency, or disabled otherwise.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;[opt!=]&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The flag must be disabled if the flag is enabled for the package with the dependency, or enabled otherwise.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;[opt?]&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The flag must be enabled if the flag is enabled for the package with the dependency.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;[opt!?]&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The flag must be enabled if the use flag is disabled for the package with the dependency.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;[-opt]&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The flag must be disabled.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;[-opt?]&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The flag must be disabled if the flag is enabled for the package with the dependency.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;[-opt!?]&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The flag must be disabled if the flag is disabled for the package with the dependency.&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;Dependencies could be combined by specifying multiple blocks, as in &lt;code&gt;foo/bar[baz][monkey?]&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;For EAPI 2, Zac decided to go with an arbitrarily different syntax:&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;[opt]&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The flag must be enabled.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;[opt=]&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The flag must be enabled if the flag is enabled for the package with the dependency, or disabled otherwise.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;[!opt=]&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The flag must be disabled if the flag is enabled for the package with the dependency, or enabled otherwise.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;[opt?]&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The flag must be enabled if the flag is enabled for the package with the dependency.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;[!opt?]&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The flag must be disabled if the use flag is disabled for the package with the dependency.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;[-opt]&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The flag must be disabled.&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;And to combine use dependencies, one uses a comma, as in &lt;code&gt;foo/bar[baz,monkey?]&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;In both cases, the slot dependency must go &lt;em&gt;before&lt;/em&gt; the dependency, so &lt;code&gt;foo/bar:1[baz]&lt;/code&gt;, not &lt;code&gt;foo/bar[baz]:1&lt;/code&gt;. The use dependency goes &lt;em&gt;after&lt;/em&gt; any version restrictions, so &lt;code&gt;&amp;gt;=foo/bar-2.1:2[baz]&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;In both cases, it is illegal to reference a use flag that does not exist (including &lt;code&gt;USE_EXPAND&lt;/code&gt; flags that are not explicitly listed in &lt;code&gt;IUSE&lt;/code&gt;). So &lt;code&gt;foo/bar[opt]&lt;/code&gt; when any version of &lt;code&gt;foo/bar&lt;/code&gt; does not have &lt;code&gt;opt&lt;/code&gt; in &lt;code&gt;IUSE&lt;/code&gt; is illegal and has undefined behaviour, as is &lt;code&gt;foo/baz[opt?]&lt;/code&gt; if either the owning package or &lt;code&gt;foo/baz&lt;/code&gt; has no &lt;code&gt;opt&lt;/code&gt;. For cases where only some versions of a package have a flag, use dependencies can be combined with version or slot restrictions.&lt;/p&gt;
&lt;p&gt;From an implementation perspective: the package manager should not try to automatically solve unmet use dependencies. The package manager doesn&amp;#8217;t know the impact of changing a use flag (changing some flags makes a system unbootable), so it can&amp;#8217;t simply override the user&amp;#8217;s choice. (&lt;a href=&quot;http://paludis.pioto.org/&quot;&gt;Paludis&lt;/a&gt; &lt;em&gt;will&lt;/em&gt; suggest an automatic reinstall if and only if the user has already modified their &lt;code&gt;use.conf&lt;/code&gt;, so you don&amp;#8217;t need to manually reinstall a dependency if you&amp;#8217;re ok with altering the flags with which it is built.)&lt;/p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Tagged: eapi, eapi 2, ebuild, gentoo, paludis&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/ciaranm.wordpress.com/125/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ciaranm.wordpress.com/125/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/ciaranm.wordpress.com/125/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/ciaranm.wordpress.com/125/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/ciaranm.wordpress.com/125/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/ciaranm.wordpress.com/125/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/ciaranm.wordpress.com/125/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/ciaranm.wordpress.com/125/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/ciaranm.wordpress.com/125/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/ciaranm.wordpress.com/125/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=ciaranm.wordpress.com&amp;blog=3715284&amp;post=125&amp;subd=ciaranm&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 28 Sep 2008 18:46:38 +0000</pubDate>
</item>
<item>
	<title>Ciaran McCreesh: EAPI 2: SRC_URI Arrows</title>
	<guid>http://ciaranm.wordpress.com/?p=115</guid>
	<link>http://ciaranm.wordpress.com/2008/09/28/eapi-2-src_uri-arrows/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;This is the first item in &lt;a href=&quot;http://ciaranm.wordpress.com/2008/09/28/whats-in-eapi-2/&quot;&gt;a series of posts describing EAPI 2&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Some upstreams use annoyingly named tarballs. Most commonly, they don&amp;#8217;t include either the package name or the version in the filename. Because &lt;code&gt;DISTDIR&lt;/code&gt; is a flat directory, this causes problems &amp;#8212; the tree must not use two different tarballs with the same name. Previously, the solution to horrible upstream naming was to manually mirror the tarball with a new filename; this was considered excessively icky.&lt;/p&gt;
&lt;p&gt;There have been two sane solutions proposed for this over time. The one we didn&amp;#8217;t use was to define a &lt;code&gt;DISTDIR_SUBDIR&lt;/code&gt; variable, and do all downloads into there. This would have made the &lt;code&gt;A&lt;/code&gt; variable quite a bit messier, and complicated sharing certain tarballs between packages.&lt;/p&gt;
&lt;p&gt;The arrows solution was something I came up with for early Paludis experimental EAPIs, and was adopted for &lt;code&gt;kdebuild-1&lt;/code&gt; and from there into &lt;code&gt;2&lt;/code&gt;; it&amp;#8217;s also always been present in &lt;code&gt;exheres-0&lt;/code&gt;. It works like this:&lt;/p&gt;
&lt;pre&gt;
SRC_URI=&quot;http://example.com/stupid-named/1.23/stupid.tar.bz2 -&amp;gt; stupid-1.23.tar.bz2&quot;
&lt;/pre&gt;
&lt;p&gt;or using variables:&lt;/p&gt;
&lt;pre&gt;
SRC_URI=&quot;http://example.com/stupid-named/${PV}/${PN}.tar.bz2 -&amp;gt; ${P}.tar.bz2&quot;
&lt;/pre&gt;
&lt;p&gt;This tells the package manager to look at the URL on the left of the arrow, but save to the filename on the right.&lt;/p&gt;
&lt;p&gt;Mirroring effects are slightly subtle. Consider:&lt;/p&gt;
&lt;pre&gt;
SRC_URI=&quot;mirror://foo/${PN}/${PV}.tar.bz2 -&amp;gt; ${P}.tar.bz2&quot;
&lt;/pre&gt;
&lt;p&gt;The package manager will look both on &lt;code&gt;mirror://foo/&lt;/code&gt; and &lt;code&gt;mirror://gentoo/&lt;/code&gt; for the download. When looking on &lt;code&gt;foo&lt;/code&gt;, the raw filename must be used, but when looking on &lt;code&gt;gentoo&lt;/code&gt;, the &lt;em&gt;rewritten&lt;/em&gt; filename is used.&lt;/p&gt;
&lt;p&gt;Anyone using arrows on &lt;code&gt;mirror://gentoo/&lt;/code&gt; URIs gets stabbed.&lt;/p&gt;
&lt;p&gt;Arrows make another proposed but rejected EAPI feature irrelevant: there was a proposal floating around (I &lt;em&gt;think&lt;/em&gt; it originated with &lt;a href=&quot;http://www.funtoo.org/&quot;&gt;drobbins&lt;/a&gt;, but I can&amp;#8217;t find an original source) to make &lt;code&gt;unpack&lt;/code&gt; ignore &lt;code&gt;;sf=tbz2&lt;/code&gt; and &lt;code&gt;;sf=tgz&lt;/code&gt; suffixes on filenames, for interoperability with gitweb. Arrows are a more general solution.&lt;/p&gt;
&lt;p&gt;Implementation-wise, anyone still using a lexer-based parser will need a single token of lookahead for this. Apparently this causes minor inconveniences in some broken programming languages that only support what C++ calls input iterators; I consider this a good thing, because it might make people either use a better iterator model or stop using lexers.&lt;/p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Tagged: eapi, eapi 2, ebuild, gentoo, paludis&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/ciaranm.wordpress.com/115/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ciaranm.wordpress.com/115/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/ciaranm.wordpress.com/115/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/ciaranm.wordpress.com/115/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/ciaranm.wordpress.com/115/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/ciaranm.wordpress.com/115/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/ciaranm.wordpress.com/115/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/ciaranm.wordpress.com/115/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/ciaranm.wordpress.com/115/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/ciaranm.wordpress.com/115/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=ciaranm.wordpress.com&amp;blog=3715284&amp;post=115&amp;subd=ciaranm&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 28 Sep 2008 15:18:18 +0000</pubDate>
</item>
<item>
	<title>Ciaran McCreesh: What’s in EAPI 2?</title>
	<guid>http://ciaranm.wordpress.com/?p=110</guid>
	<link>http://ciaranm.wordpress.com/2008/09/28/whats-in-eapi-2/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;EAPI 2 has been &lt;a href=&quot;http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=tag;h=67c90768db531424331cdfcbb0e6965992d9a2a9&quot;&gt;approved&lt;/a&gt; by the &lt;a href=&quot;http://www.gentoo.org/proj/en/council/&quot;&gt;Gentoo Council&lt;/a&gt; and so can now be used in ebuilds. The first package manager with support was &lt;a href=&quot;http://paludis.pioto.org/&quot;&gt;Paludis&lt;/a&gt; 0.30.1; Portage support came along with 2.2_rc11.&lt;/p&gt;
&lt;p&gt;EAPI 2 consists purely of extensions to EAPI 1. The new features are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://ciaranm.wordpress.com/2008/09/28/eapi-2-src_uri-arrows/&quot;&gt;&lt;code&gt;SRC_URI&lt;/code&gt; arrows&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://ciaranm.wordpress.com/2008/09/28/eapi-2-use-dependencies/&quot;&gt;Use dependencies&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://ciaranm.wordpress.com/2008/09/29/eapi-2-blockers/&quot;&gt;&lt;code&gt;!!&lt;/code&gt; blockers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://ciaranm.wordpress.com/2008/09/29/eapi-2-src_prepare/&quot;&gt;&lt;code&gt;src_prepare&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://ciaranm.wordpress.com/2008/09/30/eapi-2-src_configure-and-src_compile/&quot;&gt;&lt;code&gt;src_configure&lt;/code&gt;, and a different default &lt;code&gt;src_compile&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://ciaranm.wordpress.com/2008/09/30/eapi-2-default_-phase-functions-and-the-default-function/&quot;&gt;&lt;code&gt;default_&lt;/code&gt; phase functions and the &lt;code&gt;default&lt;/code&gt; function&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://ciaranm.wordpress.com/2008/10/01/eapi-2-doman-language-support/&quot;&gt;&lt;code&gt;doman&lt;/code&gt; language support&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Formal definitions can be found in &lt;a href=&quot;http://www.gentoo.org/proj/en/qa/pms.xml&quot;&gt;PMS&lt;/a&gt;; an overview of each feature will follow in subsequent posts.&lt;/p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Tagged: eapi, eapi 2, ebuild, gentoo, paludis&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/ciaranm.wordpress.com/110/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ciaranm.wordpress.com/110/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/ciaranm.wordpress.com/110/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/ciaranm.wordpress.com/110/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/ciaranm.wordpress.com/110/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/ciaranm.wordpress.com/110/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/ciaranm.wordpress.com/110/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/ciaranm.wordpress.com/110/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/ciaranm.wordpress.com/110/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/ciaranm.wordpress.com/110/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=ciaranm.wordpress.com&amp;blog=3715284&amp;post=110&amp;subd=ciaranm&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 28 Sep 2008 15:08:17 +0000</pubDate>
</item>
<item>
	<title>Ciaran McCreesh: Paludis 0.30.1 Released</title>
	<guid>http://ciaranm.wordpress.com/?p=107</guid>
	<link>http://ciaranm.wordpress.com/2008/09/25/paludis-0301-released/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;http://paludis.pioto.org/&quot;&gt;Paludis&lt;/a&gt; 0.30.1 has been released:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;EAPI 2 support.&lt;/li&gt;
&lt;/ul&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Tagged: paludis, paludis releases&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/ciaranm.wordpress.com/107/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ciaranm.wordpress.com/107/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/ciaranm.wordpress.com/107/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/ciaranm.wordpress.com/107/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/ciaranm.wordpress.com/107/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/ciaranm.wordpress.com/107/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/ciaranm.wordpress.com/107/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/ciaranm.wordpress.com/107/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/ciaranm.wordpress.com/107/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/ciaranm.wordpress.com/107/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=ciaranm.wordpress.com&amp;blog=3715284&amp;post=107&amp;subd=ciaranm&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 25 Sep 2008 21:55:14 +0000</pubDate>
</item>
<item>
	<title>Bryan Østergaard: Software Freedom Day + Planet Larry</title>
	<guid>http://kloeri.livejournal.com/7384.html</guid>
	<link>http://kloeri.livejournal.com/7384.html</link>
	<description>Tomorrow is&amp;nbsp;&lt;a href=&quot;http://www.softwarefreedomday.org/&quot;&gt;Software Freedom Day&lt;/a&gt; - a yearly event where people all over the world get together to celebrate free software, enjoy talks related to free software and just as importantly get to meet lots of people.&lt;br /&gt;&lt;br /&gt;If you happen to be in Copenhagen tomorrow you can meet myself and several other people from SSLUG at Copenhagen Business school. &lt;a href=&quot;http://sslug.dk/emailarkiv/announce/2008_09/msg00000.html&quot;&gt;SSLUG's SFD&amp;nbsp;program&lt;/a&gt; includes talks on Free Software, Linux, Open Office and GIMP. Everybody else can &lt;a href=&quot;http://www.softwarefreedomday.org/teams&quot;&gt;look up their local&lt;/a&gt; Software Freedom Day events - there's more than 500 teams registered all over the world so there's probably going to be an event nearby.&lt;br /&gt;&lt;br /&gt;And regarding &lt;a href=&quot;http://planet.larrythecow.org/&quot;&gt;Planet Larry&lt;/a&gt;.. Steve Dibb just &lt;a href=&quot;http://wonkabar.org/archives/464&quot;&gt;announced&lt;/a&gt; that he's setting up a feed for retired Gentoo developers which is very good news in my opinion. Lots of retired developers blog and they often have interesting comments on things related to Gentoo or tips that other people can benefit from. And this way people can know whether the blog posts they're reading comes from a normal user or a retired developer. &lt;strike&gt;I would probably have prefered marking retired developers another way instead of having multiple feeds but I can see why some people wants to know who's who and I'd much rather have a seperate feed than nothing at all.&lt;/strike&gt; Oops, I was a bit too quick - Exdevs are now going in the main feed instead and will be marked using colour or some other way instead of a seperate feed.&lt;br /&gt;&lt;br /&gt;And since I've been having this discussion with Steve on and off for quite some time:&amp;nbsp;Thank you Steve :)&lt;br /&gt;</description>
	<pubDate>Fri, 19 Sep 2008 18:51:05 +0000</pubDate>
</item>
<item>
	<title>Fernando J. Pereda: iPhoto movies in FrontRow</title>
	<guid>http://fpereda.wordpress.com/?p=44</guid>
	<link>http://fpereda.wordpress.com/2008/09/15/iphoto-movies-in-frontrow/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;Ok, so we all know that Apple makes software, and that its software is sometimes full of fail:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://fpereda.files.wordpress.com/2008/09/mail-app-crap.png&quot;&gt;&lt;img src=&quot;http://fpereda.files.wordpress.com/2008/09/mail-app-crap.png?w=389&amp;h=99&quot; alt=&quot;&quot; title=&quot;Mail.app fails&quot; width=&quot;389&quot; height=&quot;99&quot; class=&quot;aligncenter size-full wp-image-45&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Even if their software usually integrates nicely, it really irritates me that some details are completely left out. For instance, iPhoto will import and manage movies from a digital camera. Then, when you are going to show the photos to the family with, for instance, FrontRow, the movies won&amp;#8217;t come up. They&amp;#8217;ll be ignored in the &amp;#8216;Photos&amp;#8217; tab, and nothing will show up on the &amp;#8216;Movies&amp;#8217; tab either.&lt;/p&gt;
&lt;p&gt;Oh well, bash comes to the rescue:&lt;/p&gt;
&lt;pre&gt;iphoto2imovie()
{
	local DEST=&quot;${HOME}/Movies/iPhoto Movies/&quot; d
	rm -rf &quot;${DEST}&quot;
	mkdir &quot;${DEST}&quot;
	find &quot;${HOME}/Pictures/iPhoto Library/Originals/&quot; \
		-iname '*.avi' -or -iname '*.mov' | while read f ; do
		d=&quot;${f%/*}&quot;
		d=&quot;${DEST}/${d##*/}&quot;
		mkdir &quot;${d}&quot; 2&amp;gt;/dev/null
		ln &quot;${f}&quot; &quot;${d}&quot;
	done
}&lt;/pre&gt;
&lt;p&gt;I just hate to have to do this by hand.&lt;/p&gt;
&lt;p&gt;&amp;mdash; ferdy&lt;/p&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/categories/fpereda.wordpress.com/44/&quot; /&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/tags/fpereda.wordpress.com/44/&quot; /&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/fpereda.wordpress.com/44/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/fpereda.wordpress.com/44/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/fpereda.wordpress.com/44/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/fpereda.wordpress.com/44/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/fpereda.wordpress.com/44/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/fpereda.wordpress.com/44/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/fpereda.wordpress.com/44/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/fpereda.wordpress.com/44/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/fpereda.wordpress.com/44/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/fpereda.wordpress.com/44/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=fpereda.wordpress.com&amp;blog=3759924&amp;post=44&amp;subd=fpereda&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 15 Sep 2008 15:33:19 +0000</pubDate>
</item>
<item>
	<title>Fernando J. Pereda: GMandel meets Julia sets</title>
	<guid>http://fpereda.wordpress.com/?p=35</guid>
	<link>http://fpereda.wordpress.com/2008/09/08/gmandel-meets-julia-sets/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;I was bored and decided to hack support for viewing &lt;a href=&quot;http://en.wikipedia.org/wiki/Julia_set&quot;&gt;Julia sets&lt;/a&gt; into &lt;a href=&quot;http://git.ferdyx.org/?p=gmandel.git;a=summary&quot;&gt;GMandel&lt;/a&gt;. The code could be nicer, but that will come tomorrow. I should really stop slacking and make a proper hierarchy of widgets (&lt;tt&gt;GFractMandel&lt;/tt&gt; and &lt;tt&gt;GFractJulia&lt;/tt&gt; should inherit a common &lt;tt&gt;GFractWidget&lt;/tt&gt;) to make the code more manageable but this will do for now.&lt;/p&gt;
&lt;p&gt;These are some examples of Julia sets generated with GMandel:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://fpereda.files.wordpress.com/2008/09/gmandel-julia.png&quot;&gt;&lt;img src=&quot;http://fpereda.files.wordpress.com/2008/09/gmandel-julia.png?w=300&amp;h=183&quot; alt=&quot;&quot; title=&quot;Julia sets generated with GMandel&quot; width=&quot;300&quot; height=&quot;183&quot; class=&quot;aligncenter size-medium wp-image-36&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I strongly recommend &lt;a href=&quot;http://mitpress.mit.edu/books/FLAOH/cbnhtml/&quot;&gt;The Computational Beauty of Nature&lt;/a&gt; to those interested or curious about this kind of stuff. It is a nice book that can even be read without too much mathematical or computer science background. One of the nice things about fractals and chaos is that you can see most the stuff yourself through &lt;i&gt;pretty pictures&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;&amp;mdash; ferdy&lt;/p&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/categories/fpereda.wordpress.com/35/&quot; /&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/tags/fpereda.wordpress.com/35/&quot; /&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/fpereda.wordpress.com/35/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/fpereda.wordpress.com/35/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/fpereda.wordpress.com/35/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/fpereda.wordpress.com/35/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/fpereda.wordpress.com/35/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/fpereda.wordpress.com/35/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/fpereda.wordpress.com/35/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/fpereda.wordpress.com/35/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/fpereda.wordpress.com/35/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/fpereda.wordpress.com/35/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=fpereda.wordpress.com&amp;blog=3759924&amp;post=35&amp;subd=fpereda&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 08 Sep 2008 01:08:54 +0000</pubDate>
</item>
<item>
	<title>Ciaran McCreesh: Paludis 0.30.0 Released</title>
	<guid>http://ciaranm.wordpress.com/?p=104</guid>
	<link>http://ciaranm.wordpress.com/2008/09/03/paludis-0300-released/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;http://paludis.pioto.org/&quot;&gt;Paludis&lt;/a&gt; 0.30.0 has been released:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Paludis no longer includes wrappers for GNU awk, make, patch, and sed. Users of systems where the default versions are not the GNU versions must use PATH manipulation or aliases in /etc/paludis/bashrc to ensure that the GNU versions are used.  (This is not necessary on typical Linux systems; check &lt;code&gt;&amp;lt;command&amp;gt; --version&lt;/code&gt; if in doubt.)&lt;/li&gt;
&lt;li&gt;Support for from- and in- repository deps.&lt;/li&gt;
&lt;li&gt;Wildcards are now allowed for paludis &amp;#8211;qu