<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Steven's weblog</title>
	<atom:link href="http://www.ourada.org/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ourada.org/blog</link>
	<description></description>
	<lastBuildDate>Thu, 02 Sep 2010 19:29:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>gnome-instability-daemon</title>
		<link>http://www.ourada.org/blog/archives/499</link>
		<comments>http://www.ourada.org/blog/archives/499#comments</comments>
		<pubDate>Thu, 02 Sep 2010 19:28:03 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.ourada.org/blog/?p=499</guid>
		<description><![CDATA[My commitment to bleeding-edgery leads to one weird consequence. When I upgrade Ubuntu to an alpha version (I&#8217;m running 10.10 now), there&#8217;s about an hour of readjusting configurations and dealing with obsoleted packages, then things get back to pretty stable. Except that until nearly the final release, gnome-settings-daemon crashes on me once or twice a [...]]]></description>
			<content:encoded><![CDATA[<p>My commitment to <a href="http://www.ourada.org/blog/archives/363">bleeding-edgery</a> leads to one weird consequence. When I upgrade Ubuntu to an alpha version (I&#8217;m running 10.10 now), there&#8217;s about an hour of readjusting configurations and dealing with obsoleted packages, then things get back to pretty stable. Except that until nearly the final release, gnome-settings-daemon crashes on me once or twice a day. I don&#8217;t know what&#8217;s going on in there that could be so unstable during the development phase of a distribution&#8230; it sounds like it&#8217;s basically a little client-server database for key-value trees. Thought that problem was already solved.</p>
<p>Anyway, it&#8217;s easy enough to &lt;Alt -F2&gt; gnome-set &lt;ret&gt;, and I&#8217;ve never lost any work or had an episode of Futurama ruined or anything&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ourada.org/blog/archives/499/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>1D eye</title>
		<link>http://www.ourada.org/blog/archives/492</link>
		<comments>http://www.ourada.org/blog/archives/492#comments</comments>
		<pubDate>Sat, 26 Jun 2010 18:02:49 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.ourada.org/blog/?p=492</guid>
		<description><![CDATA[Barcode scanners get a great algorithmic advantage by having a 1D scanning laser eye. Kinda cool.]]></description>
			<content:encoded><![CDATA[<p>Barcode scanners get a great algorithmic advantage by having a 1D scanning laser eye. Kinda cool.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ourada.org/blog/archives/492/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Serious omission?</title>
		<link>http://www.ourada.org/blog/archives/489</link>
		<comments>http://www.ourada.org/blog/archives/489#comments</comments>
		<pubDate>Sun, 20 Jun 2010 00:16:53 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.ourada.org/blog/?p=489</guid>
		<description><![CDATA[I&#8217;m reading The Success of Open Source, which seems to be a pretty interesting analysis of the sociopolitics of open source development models. But I just noticed what seems to be a big omission: I can&#8217;t find &#8220;BDFL&#8221;, &#8220;van Rossum&#8221;, or &#8220;Python&#8221; in the index. I have a feeling that he&#8217;ll still cover the BDFL [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m reading <a href="http://lccn.loc.gov/2003056916">The Success of Open Source</a>, which seems to be a pretty interesting analysis of the sociopolitics of open source development models. But I just noticed what seems to be a big omission: I can&#8217;t find &#8220;BDFL&#8221;, &#8220;van Rossum&#8221;, or &#8220;Python&#8221; in the index. I have a feeling that he&#8217;ll still cover the BDFL topic in there in some guise, but even if so, how can I excuse the absence of Python in a book about the SUCCESS of OPEN SOURCE? Geesh :-/.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ourada.org/blog/archives/489/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C++ error messages</title>
		<link>http://www.ourada.org/blog/archives/485</link>
		<comments>http://www.ourada.org/blog/archives/485#comments</comments>
		<pubDate>Fri, 21 May 2010 01:55:18 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.ourada.org/blog/?p=485</guid>
		<description><![CDATA[OK, one thing I don&#8217;t miss about C++ is the error messages. Here&#8217;s an incredibly obtuse way to say something: In file included from /usr/include/c++/4.4/bits/stl_algobase.h:67, from /usr/include/c++/4.4/bits/char_traits.h:41, from /usr/include/c++/4.4/ios:41, from /usr/include/c++/4.4/ostream:40, from /usr/include/c++/4.4/iostream:40, from ../src/Flipper.cpp:1: /usr/include/c++/4.4/bits/stl_iterator_base_types.h: In instantiation of ‘std::iterator_traits’: /usr/include/CGAL/centroid.h:833: instantiated from ‘CGAL::CGALi::Dispatch_centroid’ ../src/Flipper.cpp:102: instantiated from here /usr/include/c++/4.4/bits/stl_iterator_base_types.h:127: error: no type named ‘iterator_category’ in [...]]]></description>
			<content:encoded><![CDATA[<p>OK, one thing I don&#8217;t miss about C++ is the error messages. Here&#8217;s an incredibly obtuse way to say something:</p>
<pre>In file included from /usr/include/c++/4.4/bits/stl_algobase.h:67,
                 from /usr/include/c++/4.4/bits/char_traits.h:41,
                 from /usr/include/c++/4.4/ios:41,
                 from /usr/include/c++/4.4/ostream:40,
                 from /usr/include/c++/4.4/iostream:40,
                 from ../src/Flipper.cpp:1:
/usr/include/c++/4.4/bits/stl_iterator_base_types.h: In instantiation of ‘std::iterator_traits<cgal ::Point_2<CGAL::Filtered_kernel<CGAL::Simple_cartesian<double> > > >’:
/usr/include/CGAL/centroid.h:833:   instantiated from ‘CGAL::CGALi::Dispatch_centroid</cgal><cgal ::Point_2<CGAL::Filtered_kernel<CGAL::Simple_cartesian<double> > >, CGAL::Point_2</cgal><cgal ::Filtered_kernel<CGAL::Simple_cartesian<double> > > >’
../src/Flipper.cpp:102:   instantiated from here
/usr/include/c++/4.4/bits/stl_iterator_base_types.h:127: error: no type named ‘iterator_category’ in ‘class CGAL::Point_2</cgal><cgal ::Filtered_kernel<CGAL::Simple_cartesian<double> > >’
/usr/include/c++/4.4/bits/stl_iterator_base_types.h:128: error: no type named ‘value_type’ in ‘class CGAL::Point_2</cgal><cgal ::Filtered_kernel<CGAL::Simple_cartesian<double> > >’
/usr/include/c++/4.4/bits/stl_iterator_base_types.h:129: error: no type named ‘difference_type’ in ‘class CGAL::Point_2</cgal><cgal ::Filtered_kernel<CGAL::Simple_cartesian<double> > >’
/usr/include/c++/4.4/bits/stl_iterator_base_types.h:130: error: no type named ‘pointer’ in ‘class CGAL::Point_2</cgal><cgal ::Filtered_kernel<CGAL::Simple_cartesian<double> > >’
/usr/include/c++/4.4/bits/stl_iterator_base_types.h:131: error: no type named ‘reference’ in ‘class CGAL::Point_2</cgal><cgal ::Filtered_kernel<CGAL::Simple_cartesian<double> > >’</cgal></pre>
<p>Translation: you don&#8217;t need to include &#8216;centroid.h&#8217;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ourada.org/blog/archives/485/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Offsetting a polyline</title>
		<link>http://www.ourada.org/blog/archives/477</link>
		<comments>http://www.ourada.org/blog/archives/477#comments</comments>
		<pubDate>Sun, 16 May 2010 16:33:00 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.ourada.org/blog/?p=477</guid>
		<description><![CDATA[Thanks to a question on StackOverflow, I did some playing with Java&#8217;s Graphics2D. Below is some code to generate an offset of a polyline, i.e. given a polyline (a string of connected line segments), generate a polygon that represents a thick version of that line. Clearly, the Java guys took some shortcuts here, because the [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks to <a href="http://stackoverflow.com/questions/2824640/generate-a-polygon-from-line/2841459">a question on StackOverflow</a>, I did some playing with Java&#8217;s Graphics2D. Below is some code to generate an offset of a polyline, i.e. given a polyline (a string of connected line segments), generate a polygon that represents a thick version of that line.</p>
<p>Clearly, the Java guys took some shortcuts here, because the polygon ends up including a lot of interior segments that you don&#8217;t really want, etc. However, filling it using a nonzero winding rule covers a lot of sins. And I can understand why they committed those sins, since it&#8217;s kinda hard to do in general. Read the <a href="http://www.cgal.org/Manual/last/doc_html/cgal_manual/Straight_skeleton_2/Chapter_main.html">CGAL page about offsetting</a> for an intro. Sometime I&#8217;ll have to investigate the shortcut methods in the OpenJDK source; looking at this output, I&#8217;m definitely curious.</p>
<div class="wp-caption alignnone" style="width: 238px"><img alt="Unfilled" src="http://www.ourada.org/stackoverflow/unfilled.png" title="Unfilled" width="228" height="354" /><p class="wp-caption-text">Unfilled</p></div>  <div class="wp-caption alignnone" style="width: 251px"><img alt="Filled" src="http://www.ourada.org/stackoverflow/filled.png" title="Filled" width="241" height="365" /><p class="wp-caption-text">Filled</p></div>
<pre>import java.awt.BasicStroke;
import java.awt.Shape;
import java.awt.geom.Path2D;
import java.awt.geom.PathIterator;

public class StrokePath
{
    public static void main(String[] args)
    {
        // set line width to 6, use bevel for line joins
        BasicStroke bs = new BasicStroke(6.0f, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL);

        // create a path for the input
        Path2D p = new Path2D.Float();
        p.moveTo(50.0, 50.0);
        p.lineTo(65.0, 100.0);
        p.lineTo(70.0, 60.0);
        p.lineTo(120.0, 65.0);
        p.lineTo(40.0, 200.0);

        // create outline of wide lines by stroking the path with the stroke
        Shape s = bs.createStrokedShape(p);
        // output each of the segments of the stroked path for the output polygon
        PathIterator pi = s.getPathIterator(null);
        while (!pi.isDone())
        {
            pi.next();
            double[] coords = new double[6];
            int type = pi.currentSegment(coords);
            switch (type)
            {
            case PathIterator.SEG_LINETO:
                System.out.println(String.format("SEG_LINETO %f,%f", coords[0], coords[1]));
                break;
            case PathIterator.SEG_CLOSE:
                System.out.println("SEG_CLOSE");
                break;
            case PathIterator.SEG_MOVETO:
                System.out.println(String.format("SEG_MOVETO %f,%f", coords[0], coords[1]));
                break;
            default:
                System.out.println("*** More complicated than LINETO... Maybe should use FlatteningPathIterator? ***");
                break;
            }
        }
    }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ourada.org/blog/archives/477/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Elicitation</title>
		<link>http://www.ourada.org/blog/archives/475</link>
		<comments>http://www.ourada.org/blog/archives/475#comments</comments>
		<pubDate>Sun, 16 May 2010 16:19:21 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.ourada.org/blog/?p=475</guid>
		<description><![CDATA[Been playing a little bit on Stack Overflow. Got interested after a few of my web searches ended up there and there were actual answers (if you&#8217;ve searched the web for programming questions before, you know the value of the average result on a forum site tends to zero). Among the other potential positive values [...]]]></description>
			<content:encoded><![CDATA[<p>Been playing a little bit on <a href="http://stackoverflow.com/">Stack Overflow</a>. Got interested after a few of my web searches ended up there and there were actual answers (if you&#8217;ve searched the web for programming questions before, you know the value of the average result on a forum site tends to zero).</p>
<p>Among the other potential positive values of answering questions there, I noticed one today: the process tends to elicit memories of knowledge or talents that I had forgotten that I have. Should be interesting.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ourada.org/blog/archives/475/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is there a word for this?</title>
		<link>http://www.ourada.org/blog/archives/474</link>
		<comments>http://www.ourada.org/blog/archives/474#comments</comments>
		<pubDate>Sun, 16 May 2010 00:26:04 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.ourada.org/blog/archives/474</guid>
		<description><![CDATA[What&#8217;s the word for an answer to a question in an internet forum of the form &#8220;Idiot! That&#8217;s so easy! Here&#8217;s a vague description of an unworkable solution that I clearly haven&#8217;t even begun to try myself: &#8230;&#8221; I&#8217;d figure there&#8217;s a one-word description for that since it comprises about 80% of all answers on [...]]]></description>
			<content:encoded><![CDATA[<p>What&#8217;s the word for an answer to a question in an internet forum of the form &#8220;Idiot! That&#8217;s so easy! Here&#8217;s a vague description of an unworkable solution that I clearly haven&#8217;t even begun to try myself: &#8230;&#8221;</p>
<p>I&#8217;d figure there&#8217;s a one-word description for that since it comprises about 80% of all answers on any given forum.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ourada.org/blog/archives/474/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Libraries, a few things I love about</title>
		<link>http://www.ourada.org/blog/archives/471</link>
		<comments>http://www.ourada.org/blog/archives/471#comments</comments>
		<pubDate>Fri, 14 May 2010 10:44:54 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.ourada.org/blog/?p=471</guid>
		<description><![CDATA[they&#8217;re a great place to practice my particular pointillistic style of info-dabbling. that subliminal feeling of immersion in a physicalized potential-space. the cohabitation of old and new, from the ancient-obsolete to the fantastic-futuristic. the quiet. The noise. the slow unfolding of a hypercompressed universal homunculus. the smell and security of paper. knowing that these other [...]]]></description>
			<content:encoded><![CDATA[<p>they&#8217;re a great place to practice my particular pointillistic style of info-dabbling.<br />
that subliminal feeling of immersion in a physicalized potential-space.<br />
the cohabitation of old and new, from the ancient-obsolete to the fantastic-futuristic.<br />
the quiet. The noise.<br />
the slow unfolding of a hypercompressed universal homunculus.<br />
the smell and security of paper.<br />
knowing that these other people are like me in a certain way.<br />
the uncountable fragments of freedom recoalescing.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ourada.org/blog/archives/471/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Computer-generated thingy</title>
		<link>http://www.ourada.org/blog/archives/467</link>
		<comments>http://www.ourada.org/blog/archives/467#comments</comments>
		<pubDate>Fri, 07 May 2010 16:49:24 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.ourada.org/blog/?p=467</guid>
		<description><![CDATA[I didn&#8217;t quite get the effect I was looking for, but I&#8217;m kinda done messing with it. Click for a closer look.]]></description>
			<content:encoded><![CDATA[<p>I didn&#8217;t quite get the effect I was looking for, but I&#8217;m kinda done messing with it.<br />
<div id="attachment_466" class="wp-caption alignnone" style="width: 310px"><a href="http://www.ourada.org/blog/wp-content/uploads/2010/05/pil.png"><img src="http://www.ourada.org/blog/wp-content/uploads/2010/05/pil-300x300.png" alt="" title="pil" width="300" height="300" class="size-medium wp-image-466" /></a><p class="wp-caption-text">Springy thing</p></div><br />
Click for a closer look.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ourada.org/blog/archives/467/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Untitled</title>
		<link>http://www.ourada.org/blog/archives/461</link>
		<comments>http://www.ourada.org/blog/archives/461#comments</comments>
		<pubDate>Wed, 05 May 2010 02:20:16 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.ourada.org/blog/?p=461</guid>
		<description><![CDATA[I don&#8217;t know why, but I sorta like this. I better post it before I remember that it&#8217;s not very interesting at all&#8230; Click for ghastly detail.]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t know why, but I sorta like this. I better post it before I remember that it&#8217;s not very interesting at all&#8230;<br />
<a href="http://www.ourada.org/blog/wp-content/uploads/2010/05/untitled.png"><img src="http://www.ourada.org/blog/wp-content/uploads/2010/05/untitled-300x225.png" alt="" title="untitled" width="300" height="225" class="alignnone size-medium wp-image-460" /></a><br />
Click for ghastly detail.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ourada.org/blog/archives/461/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bypasses</title>
		<link>http://www.ourada.org/blog/archives/456</link>
		<comments>http://www.ourada.org/blog/archives/456#comments</comments>
		<pubDate>Tue, 04 May 2010 22:24:25 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.ourada.org/blog/?p=456</guid>
		<description><![CDATA[There&#8217;s the book I was looking for&#8230; I looked at this briefly at the library one day, found it intriguing but didn&#8217;t really pay a lot of attention to it, then yesterday found myself &#8216;discovering&#8217; the basic idea of the book again. But having since forgotten the title, and the library having moved the whole [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s the book I was looking for&#8230; I looked at this briefly at the library one day, found it intriguing but didn&#8217;t really pay a lot of attention to it, then yesterday found myself &#8216;discovering&#8217; the basic idea of the book again. But having since forgotten the title, and the library having moved the whole section to another place so I couldn&#8217;t use place-memory to find it, and failing to find it in the area where I think it should have been moved to, but remembering the general sort of books I was looking for when I did happen upon it, and using the LOC catalog browse-by-call-number feature, I finally found it again: <a href="http://lccn.loc.gov/82017364">Bypasses</a>.</p>
<p>The basic idea behind the book is that a major problem solving technique that appears in various guises is to transform the problem from one domain to another, solve the transformed problem, then transform the solution back to the original domain. In a pseudo-mathematical manner of speaking: T<sup>-1</sup>MT. The author gathered examples from different fields and made some arguments about the generalization. Don&#8217;t remember a lot about it, but I&#8217;m going to find a copy again and read a bit more&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ourada.org/blog/archives/456/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Launching URLs after Ubuntu 10.04 upgrade</title>
		<link>http://www.ourada.org/blog/archives/454</link>
		<comments>http://www.ourada.org/blog/archives/454#comments</comments>
		<pubDate>Mon, 26 Apr 2010 05:28:42 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.ourada.org/blog/?p=454</guid>
		<description><![CDATA[I recently upgraded a machine to Ubuntu 10.04, which has been an overall positive experience. But, the one bad thing was that I could no longer launch links from my emails or RSS feeds (using Thunderbird and RSSOwl, respectively). In searching for the answer, I used strace -f >trace.txt 2>&#038;1 to try to see what [...]]]></description>
			<content:encoded><![CDATA[<p>I recently upgraded a machine to Ubuntu 10.04, which has been an overall positive experience. But, the one bad thing was that I could no longer launch links from my emails or RSS feeds (using Thunderbird and RSSOwl, respectively).</p>
<p>In searching for the answer, I used<br />
<code>strace -f <application> >trace.txt 2>&#038;1</application></code><br />
to try to see what was going on. I found that somehow, something was trying to launch firefox-3.5, which no longer exists (3.5 having taken over as the default version now). Nothing in /etc/ was referring to this&#8230; Some searching on the web led me to learn about xdg-open, which calls gnome-open, which uses settings in GConf to figure out how to launch a URL. Launching gconf-editor and finding &#8216;/desktop/gnome/url-handlers/http&#8217; and &#8216;/desktop/gnome/url-handlers/https&#8217;, I saw that the command for each was &#8216;firefox-3.5&#8242;. Changed those back to &#8216;firefox&#8217; and everything was cool again.</p>
<p>Now that I see that, I think I used gconf-editor to set those the other way when I first started using firefox-3.5. So it&#8217;s sorta my fault, although it wouldn&#8217;t be a terrible thing if the install scripts looked for and repaired that sort of error.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ourada.org/blog/archives/454/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Searching for anagrams</title>
		<link>http://www.ourada.org/blog/archives/451</link>
		<comments>http://www.ourada.org/blog/archives/451#comments</comments>
		<pubDate>Sat, 17 Apr 2010 06:16:47 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.ourada.org/blog/?p=451</guid>
		<description><![CDATA[Occasionally I get on a little anagram kick. Last time, I wrote a little program that let you input a starting text, then interactively create your anagram text. As you typed the anagram text, it would complain if you used a letter that wasn&#8217;t available, or suggest words from the dictionary that were available to [...]]]></description>
			<content:encoded><![CDATA[<p>Occasionally I get on a little anagram kick. Last time, I wrote a little program that let you input a starting text, then interactively create your anagram text. As you typed the anagram text, it would complain if you used a letter that wasn&#8217;t available, or suggest words from the dictionary that were available to you. I made the search pretty fast by putting each word in the dictionary into a sort of radix tree, where both internal nodes and leaves had lists of words that could be formed with the letters used thus far on that path.</p>
<p>This time around, I wanted a bit more of an automated approach. I haven&#8217;t seen any great results yet, but here are some that are at least sorta evocative:<br />
&#8220;The Miss Rhode Island pageant&#8221; < => &#8220;The time and rags and polishes&#8221;<br />
&#8220;federal constitution&#8221; < => &#8220;failure to discontent&#8221;<br />
&#8220;that girl with sunbonnet eyes&#8221; < => &#8220;but only the greatness within&#8221;<br />
&#8220;college teaching is almost a&#8221; < => &#8220;glance at the seismological&#8221;<br />
&#8220;a cut over his left eyebrow&#8221; < => &#8220;over by the sluice of water&#8221;</p>
<p>The approach I took this time was to start with an English corpus (well, a couple, appended, totaling 3M words). For each &#8216;phrase&#8217; (sequence of consecutive words, really) of between 3 and 6 words, I stick the phrase in a list in a hashmap, where the key is the sorted list of letters used in the phrase. After eating through the whole corpus (which bloats the Python hashmap to about 4GB of RAM), I look for any lists of length longer than one, sort and filter the results to be a little more useful, and spew out the results. Even though the input comes from a nominally grammatical source, there&#8217;s still plenty of dumb junk, so it still requires a human to pick out the few good answers, and maybe do some word reordering. And even after that, you end up with what you see above, so, ya know, why bother? Just cuz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ourada.org/blog/archives/451/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Another 100-word story</title>
		<link>http://www.ourada.org/blog/archives/450</link>
		<comments>http://www.ourada.org/blog/archives/450#comments</comments>
		<pubDate>Sat, 10 Apr 2010 05:22:03 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.ourada.org/blog/archives/450</guid>
		<description><![CDATA[I&#8217;m &#8216;playing dead&#8217;, waiting for them to cut the rope off their bumper and peel away. This sort of outcome is really a drag, but I still like to see it out. I think it gives them a feeling of power. That&#8217;s close enough to success, for me. I hear my show described as &#8216;passive [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m &#8216;playing dead&#8217;, waiting for them to cut the rope off their bumper and peel away. This sort of outcome is really a drag, but I still like to see it out. I think it gives them a feeling of power. That&#8217;s close enough to success, for me. I hear my show described as &#8216;passive recruitment&#8217;. No. I mean, definitely, if someone wants to become a zombie, I&#8217;ll give &#8216;em a bite, but what I&#8217;m really trying to do is convey the ineffable sense of freedom that we feel on this side. Or give just &#8216;em a little thrill. Whatever.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ourada.org/blog/archives/450/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Link shorteners</title>
		<link>http://www.ourada.org/blog/archives/448</link>
		<comments>http://www.ourada.org/blog/archives/448#comments</comments>
		<pubDate>Thu, 01 Apr 2010 00:03:53 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.ourada.org/blog/?p=448</guid>
		<description><![CDATA[I don&#8217;t like link shorteners. Let&#8217;s not use them.]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t like link shorteners. Let&#8217;s not use them.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ourada.org/blog/archives/448/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bit rot</title>
		<link>http://www.ourada.org/blog/archives/443</link>
		<comments>http://www.ourada.org/blog/archives/443#comments</comments>
		<pubDate>Thu, 25 Mar 2010 19:10:45 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.ourada.org/blog/?p=443</guid>
		<description><![CDATA[I love bit rot. Well, OK, maybe I don&#8217;t love that it happens (then again, maybe I do). I guess I love &#8216;bit rot&#8217;. It seems to be a farcical analogy at first glance, but there&#8217;s some depth to it, and that somehow adds a certain sort of liveliness to software, in that it&#8217;s subject [...]]]></description>
			<content:encoded><![CDATA[<p>I love bit rot. Well, OK, maybe I don&#8217;t love that it happens (then again, maybe I do). I guess I love &#8216;bit rot&#8217;. It seems to be a farcical analogy at first glance, but there&#8217;s some depth to it, and that somehow adds a certain sort of liveliness to software, in that it&#8217;s subject to decay.</p>
<p>For those who aren&#8217;t aware of the term, Wikipedia <a href="http://en.wikipedia.org/wiki/Bit_rot">gives a decent definition</a>, in the &#8220;Problems with software&#8221; section. I might say it this way: if the world around it changes but your code doesn&#8217;t, it&#8217;s probably rotting. That violates our deepest wish that software could be written once and left to run forever of its own accord, but it&#8217;s simply a fact of life, or at least a good way to accumulate billable hours.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ourada.org/blog/archives/443/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>When I get a time machine</title>
		<link>http://www.ourada.org/blog/archives/440</link>
		<comments>http://www.ourada.org/blog/archives/440#comments</comments>
		<pubDate>Sun, 21 Mar 2010 23:42:47 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.ourada.org/blog/?p=440</guid>
		<description><![CDATA[When I get a time machine, I&#8217;m gonna go back to the 1600s. I&#8217;m going to gather together all the texts, blueprints, plans, code, etc. I need to get people started working on reproducing the following technologies: electric generators digital computers rockets satellites radio transmission LCD monitors video cameras and, ya know, whatever other infrastructure [...]]]></description>
			<content:encoded><![CDATA[<p>When I get a time machine, I&#8217;m gonna go back to the 1600s. I&#8217;m going to gather together all the texts, blueprints, plans, code, etc. I need to get people started working on reproducing the following technologies:</p>
<ul>
<li>electric generators</li>
<li>digital computers</li>
<li>rockets</li>
<li>satellites</li>
<li>radio transmission</li>
<li>LCD monitors</li>
<li>video cameras</li>
</ul>
<p>and, ya know, whatever other infrastructure is needed to effectively support those. When the inevitable question arises about motivation for pursuing these projects, I&#8217;ll explain to them that when this is all knit together, everyone in the known world will be able to sit in their homes and watch a bunch of strangers compete to lose the most weight.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ourada.org/blog/archives/440/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>100-word zombie story</title>
		<link>http://www.ourada.org/blog/archives/439</link>
		<comments>http://www.ourada.org/blog/archives/439#comments</comments>
		<pubDate>Sat, 20 Mar 2010 10:29:13 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.ourada.org/blog/archives/439</guid>
		<description><![CDATA[Sometimes sheer boredom, not a virus, spurs the dead into action. Dave had been dead for about 8 months when he decided to pop out for a little walk and chat with friends. Of course, in that time, he&#8217;d changed, and his friends had changed. Had they been ready to accept him back into their [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes sheer boredom, not a virus, spurs the dead into action. Dave had been dead for about 8 months when he decided to pop out for a little walk and chat with friends. Of course, in that time, he&#8217;d changed, and his friends had changed. Had they been ready to accept him back into their lives, even his closest friends couldn&#8217;t get past their prejudices, and they reverted to that old zombie script, wherein they insisted on killing him again. Anyway, his fresh perspective led him to realize that death wasn&#8217;t really any more boring than his life had been.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ourada.org/blog/archives/439/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brother MFC-9320CW</title>
		<link>http://www.ourada.org/blog/archives/436</link>
		<comments>http://www.ourada.org/blog/archives/436#comments</comments>
		<pubDate>Sun, 07 Mar 2010 23:56:17 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.ourada.org/blog/?p=436</guid>
		<description><![CDATA[Just bought a Brother MFC-9320CW. It&#8217;s good so far. I use Ubuntu 9.10 for almost everything, and Brother actually supplies Linux drivers and source for both the printer and the scanner. The printer driver is just a PPD, but the scanner driver has some code-y components. But they provide a scanner .deb, even for 64-bit. [...]]]></description>
			<content:encoded><![CDATA[<p>Just bought a <a href="http://www.brother-usa.com/MFC/ModelDetail.aspx?ProductID=mfc9320cw">Brother MFC-9320CW</a>. It&#8217;s good so far. I use Ubuntu 9.10 for almost everything, and Brother actually supplies Linux drivers and source for both the printer and the scanner. The printer driver is just a PPD, but the scanner driver has some code-y components. But they provide a scanner .deb, even for 64-bit. In addition, the scanner is smart enough to be able to scan directly to a CIFS share, so if there are ever problems with the scanner driver, there&#8217;s still a decent way to scan.</p>
<p>The onboard web-based configuration software is pretty lackluster, but it does seem to do the job if you know what you&#8217;re doing and/or are curious enough (like, if you want to set up the CIFS parameters for scanning, don&#8217;t look under &#8216;Network Configuration&#8217;, and don&#8217;t try to find a &#8216;Scanner Settings&#8217; like the &#8216;Fax Settings&#8217; and &#8216;Printer Settings&#8217;&#8230; You have to find &#8216;Administrator Settings&#8217; and the subpage &#8216;FTP/Network Scan Settings&#8217; then &#8216;FTP/Network Scan Profile&#8217;.).</p>
<p>Since it&#8217;s all network-based and the onboard computer seems to be pretty smart, I can share it with all my computers easily and with Mac or Windows when I happen to be in those sort of modes.</p>
<p>The hardware is also good; the automatic document feeder is a big reason I got this model, and it seems to be robust and fast. Prints look very nice. I like the fact that it&#8217;s a toner system rather than an ink system, because I use my printer so seldom that inks would dry out on me between uses (though I haven&#8217;t used an inkjet in about 5 years, maybe they&#8217;re better now).</p>
<p>I&#8217;m not much for writing comprehensive reviews, but I just wanted to make a note for those who use Linux and were looking at this model. I&#8217;ll answer questions should any such person come around&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ourada.org/blog/archives/436/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Unexpected/expected</title>
		<link>http://www.ourada.org/blog/archives/434</link>
		<comments>http://www.ourada.org/blog/archives/434#comments</comments>
		<pubDate>Sun, 28 Feb 2010 23:53:52 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.ourada.org/blog/?p=434</guid>
		<description><![CDATA[Have I mentioned before how much I love libraries? If there&#8217;s a single scene that summarizes me as a person, it&#8217;s me walking a couple miles to a library to read about some stuff I don&#8217;t need to know. I love the insider&#8217;s view of things. Even if I don&#8217;t want to be an insider [...]]]></description>
			<content:encoded><![CDATA[<p>Have I mentioned before how much I love libraries? If there&#8217;s a single scene that summarizes me as a person, it&#8217;s me walking a couple miles to a library to read about some stuff I don&#8217;t need to know.</p>
<p>I love the insider&#8217;s view of things. Even if I don&#8217;t want to be an insider in a particular field, I really like to immerse myself in their views and language, when I have the time to, rather than sticking to the strictly outsider accounts (popularizations). So a library (especially a university library) is a perfect place for me: it&#8217;s mostly full of insider accounts of fields and topics within those fields. If I had to go out and spend $50-$100 per technical book, I wouldn&#8217;t be able to frequently dip my nose in a field for a few dozen or few hundred pages and then put it aside again.</p>
<p>I ran across an unexpectedly interesting book in the ISU library today. I did a search for &#8220;domain specific language&#8221; in the catalog. Since their computing collection is a little slow to catch up to the outside world, they didn&#8217;t have any of the several books on domain-specific computer languages published in the last few years. But they did have one on <a href="http://www.worldcat.org/title/domain-specific-english-textual-practices-across-communities-and-classrooms/oclc/231970578">&#8220;Domain-specific English&#8221;</a>, which turns out to be pretty cool for reasons that I won&#8217;t really go into too deeply here. Go find it at your library if you want to know more about that&#8230;</p>
<p>There&#8217;s a bit in here that was particularly relevant to me:</p>
<blockquote><p>I remember one winter afternoon, mothers chirping in a corner of the playground as they waited for the bell to announce the schoolday&#8217;s end. Their talk focussed on homework &#8211;  a subject of daily comments &#8211; but the conversation sounded more lively than usual. The topic of discussion, and of much stigmatizing, was the reading assignment for that day. Since my own child was in the class, I was aware that the purpose of the assignment had been to encourage children to read for global comprehension and to guess what unfamiliar words could mean. To my surprise, most mothers had missed this point entirely and were indignant. In their opinion, the assignment featured too many difficult words. Some complained about having to consult the dictionary to help clarify the precise meaning of the new words: wasn&#8217;t it too early to face such vocabulary? How surprising from an experienced teacher like our maestra!</p></blockquote>
<p>(And yeah, I know it&#8217;s pretty meta to be quoting that in this context.)</p>
<p>I was lucky enough to have parents that would have been among the dissenters in that conversation. They never acted like or told me that some particular text might be &#8216;too hard&#8217; for me, and they never would have recoiled in shock that some assignment had caused me to use a dictionary. I don&#8217;t know that they ever positively subscribed to a pedagogic theory that included the idea of reading for global comprehension and guessing, but the fact that they didn&#8217;t discourage it allowed me to develop my own unconscious theory of learning along those lines. If I had to guess, I&#8217;d say that children tend to want to explore the world according to those principles, and only discouraging them would stop that short.</p>
<p>Anyway, what was I saying? Oh, yeah: I had fun at the library today. That&#8217;s all.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ourada.org/blog/archives/434/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
