<?xml version="1.0" encoding="utf-8"?>
<!-- If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/ -->
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:lj="http://www.livejournal.com">
  <id>urn:lj:livejournal.com:atom1:benasselstine</id>
  <title>One Fell Swoop</title>
  <subtitle>benasselstine</subtitle>
  <author>
    <name>benasselstine</name>
  </author>
  <link rel="alternate" type="text/html" href="http://benasselstine.livejournal.com/"/>
  <link rel="self" type="text/xml" href="http://benasselstine.livejournal.com/data/atom"/>
  <updated>2009-10-28T20:17:13Z</updated>
  <lj:journal userid="2731057" username="benasselstine" type="personal"/>
  <link rel="service.feed" type="application/x.atom+xml" href="http://benasselstine.livejournal.com/data/atom" title="One Fell Swoop"/>
  <link rel="hub" href="http://pubsubhubbub.appspot.com/"/>
  <entry>
    <id>urn:lj:livejournal.com:atom1:benasselstine:8589</id>
    <link rel="alternate" type="text/html" href="http://benasselstine.livejournal.com/8589.html"/>
    <link rel="self" type="text/xml" href="http://benasselstine.livejournal.com/data/atom/?itemid=8589"/>
    <title>Parcel adventure</title>
    <published>2009-10-28T20:17:13Z</published>
    <updated>2009-10-28T20:17:13Z</updated>
    <content type="html">I should really move to a country that does shipping right.&lt;br /&gt;&lt;br /&gt;It all started this morning with the package slip that the mailman dropped in the slot. "Hooray!" says me. "My wikireader is here!"  I pick up the package slip and read it over.&lt;br /&gt;&lt;br /&gt;The slip has a lot of instructions on it... it says to pick up the parcel tomorrow.  I know from experience when they say pick it up tomorrow it's almost always available today.  But there's some missing information, like... where to pick up the package.  There's a list of potential places to pick it up... and each place has an empty checkbox beside it.&lt;br /&gt;&lt;br /&gt;So I go to the post office that is across the street from where I live. "Gosh", I think.  "This sure is a small post office... too small to hold many packages."  I wait in line.  I make special note of the glass between the postmaster and customer... and there's a little hole at the bottom to exchange money.  Parcels can't fit through that hole...&lt;br /&gt;&lt;br /&gt;It's my turn and I present my package slip to the postmaster.  I ask him where I should go to pick up the package... and he tells me that I have to go to the Baldoyle post office.  "Oh", I say - "I know the place."  I thank him and leave the tiny post office.  I had already walked by the post office in Baldoyle a few times.&lt;br /&gt;&lt;br /&gt;Off I go to Baldoyle... it's just a short walk through a park that has 2 soccer fields, and a rugby field.  I go into the post office, and I realize it's merged with a supermarket... and it's only a little bigger than the first post office, and again there's the anti-parcel-giving glass in the way.&lt;br /&gt;&lt;br /&gt;This is the Baldoyle post office, so I wait in line.  There's a very old guy behind making airy breathing noises.  I hear both the inhales and the exhales.  The line moves forward, and I take the opportunity to get away from the loud breather... but he makes up the slack and stands way too close.  The person ahead of me goes up to the postmistress with a package slip in her hand.  I pay attention, as she gets turned away without a package, but she did get instructions to the postal delivery office.&lt;br /&gt;&lt;br /&gt;It's my turn and I say I'd like the same question answered.  Where can I go to pick up the parcel?  The Postmistress tells me that I have to go to the parcel delivery office that is located in the Baldoyle Industrial Estate.  She asks me if I know where that is.  I say "yes", lying for no particular reason.  I figure it's enough information for a google search.  I thank her and I leave.  I decide to go home, and check it out on goole maps.  &lt;br /&gt;&lt;br /&gt;I make my way home, thinking over the situation.  By this time I'm certain that getting a parcel works differently here than in Canada.  I figure I should call ahead and make sure my parcel is at the place.  So I lookup the phone number for baldoyle on the package slip.... and I dial it, but it doesn't go through.  Being new to the crazy irish phone numbers, I'm not sure if I even dialed it right.  I try again, with the same result.  I do some google searches and I come up with another number for Baldoyle.  I call it and I get a random irish person on the phone, who tells me that it isn't the number for the post office any longer.  Does she know the new number? no.  Does she happen to know the address?  No.  Darn.&lt;br /&gt;&lt;br /&gt;I try doing a google local search near the baldoyle industrial estate.  No hits.  I can see the baldoyle industrial estate on the map, but no hits with the word "post" in their name come up.&lt;br /&gt;&lt;br /&gt;I try calling another phone number on the package slip... Harmonstown -- a town I recognize from the light-rail route into Dublin.  I dial the number successfully and after pressing a few digits I get the customer support center.  Perfect.&lt;br /&gt;&lt;br /&gt;"Hello", I say, "Can you give me the phone number for the parcel delivery office in Baldoyle please?".  The man on the other end tells me that they don't pick up telephones any longer at the Baldoyle office, and that they'd just get re-routed to the call center that I've just called.  "Is there anything I can help you with?" he asks.&lt;br /&gt;&lt;br /&gt;"Yes, can you give me the address for the parcel delivery office in baldoyle instead?"  This is me still trying to feed google with the right information.&lt;br /&gt;&lt;br /&gt;The man says he doesn't have an address for the place (!) and tells me that the call center is coincidentally located near there.  He goes on to tell me that it's located in behind the badminton centre (!), and across the street from Tom Walsh Motors.  Incredibly these are places I know from a walk a few days earlier.  A badminton centre is a memorable place.  It makes me wish for a Ping Pong centre.  I thank the guy for his help and hang up with out an address.&lt;br /&gt;&lt;br /&gt;Off I go again, through the two soccer fields and rugby field.  The park is lined with concrete walls that very successfully separate backyards from the park.  As I walk by somebody is throwing random bits of plywood over their wall into the park.  I half-consider about throwing it back over, but I wouldn't want to throw it over and hurt somebody... even if they are a litter-er.  Litterist?  Anyway, littering is a real problem over here.&lt;br /&gt;&lt;br /&gt;I get through the park and I walk for another 10 minutes and eventually I can see the Tom Walsh Motors off in the distance.  It's good to recognize places when you're not sure where you're going.  I keep walking and I can see the badminton centre! Whoo hoo!  I must be close.  No signs though.  I ask a random person walking by where the post office is, and she tells me that it's a left (at the badminton centre), and then a right, and then I go straight through to the end.  "Thanks!" I say and I take a left.&lt;br /&gt;&lt;br /&gt;And then I take the right.  It really is an industrial place.  Lots of big trucks backed up into loading bays.  It's exactly the sort of place that UPS and Purolator like to put their depots.  As I'm running out of road I *still* don't see a sign for a post office, anything else that could be construed as a parcel delivery office.  So I ask another random person where the post office is, and he uses his thumb to point at the big building on the right.  At that point I feel a little dumb, and nod and walk in that direction.  As I get around to the front of the building, I finally see the sign.  I have arrived!&lt;br /&gt;&lt;br /&gt;At this point I'm wondering if I've made the trip for nothing... maybe the parcel isn't even here.&lt;br /&gt;&lt;br /&gt;I step inside into a medium-sized empty room.  There are tinted blue/green windows on my right, a bank of green post office boxes on my left, and an empty wall straight ahead.  To my immediate left there are a pair of closed brown wooden shutters.  It's a service window that looks closed for business.  The business-hours are posted on a sheet beside the closed window.... and it's within business hours.  And there.. right between the sheet with the hours, and the shuttered window I see a button that reads "ring for service".  I press it, and it rings for as long as I hold it down (bad design decision).  I didn't hold it down for too long, although part of me wanted to.&lt;br /&gt;&lt;br /&gt;Mercifully the wooden shutters open up.&lt;br /&gt;&lt;br /&gt;I present the slip and ask the man if my parcel is here.  He disappears with the slip and comes back with a small box that could only contain a wikireader.  He asks me for ID, so I give him my shiny new immigration card.  As he checks it, I ask if there's any money owing on it (because who knows if there are any other boxes on the slip that aren't checked)... and he says no, but I can give him a few quid if I want.  I laugh, take my card an the parcel and leave the building, feeling as proud as a peacock.&lt;br /&gt;&lt;br /&gt;As I'm walking back past the badminton center I see the same random person I asked for directions, and I thanked her again.&lt;br /&gt;&lt;br /&gt;I finally get home, eagerly open up the box and try out my brand new wikireader.  It's so great!  99 dollars, 2 AAA batteries included and it has the whole wikipedia on it.  It even has the article I submitted about the Kingston and Pembroke Railway.&lt;br /&gt;&lt;br /&gt;Yes that's right, this whole blog entry has been an advertisement for the wikireader.  Go get one at &lt;a href="http://www.thewikireader.com"&gt;www.thewikireader.com&lt;/a&gt;!</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:benasselstine:8447</id>
    <link rel="alternate" type="text/html" href="http://benasselstine.livejournal.com/8447.html"/>
    <link rel="self" type="text/xml" href="http://benasselstine.livejournal.com/data/atom/?itemid=8447"/>
    <title>Painting on Parliament Hill</title>
    <published>2009-06-14T21:37:34Z</published>
    <updated>2009-06-14T21:53:47Z</updated>
    <content type="html">The painting of the cat colony took place on the weekend of 13-14 June.  The painters were Brian Caines and myself.  We were fortunate that the weather allowed us to get the job done!&lt;br /&gt;&lt;br /&gt;Here are some pictures I took during the weekend.&lt;br /&gt;&lt;br /&gt;Here is Max, sporting a new scar from a recent fight:&lt;br /&gt;&lt;img src="http://asselstine.com/cats/20090614-pic1.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Brian started off the painting:&lt;br /&gt;&lt;img src="http://asselstine.com/cats/20090614-pic2.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;And then Bugsy and Brownie squared off, which momentarily diverted us from our job:&lt;br /&gt;&lt;img src="http://asselstine.com/cats/20090614-pic3.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;I was responsible for the right side of the cat condos:&lt;br /&gt;&lt;img src="http://asselstine.com/cats/20090614-pic4.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;And here's a picture of me, trying not to get any on me:&lt;br /&gt;&lt;img src="http://asselstine.com/cats/20090614-pic5.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Brian touches up the trim, while Max gets some rest:&lt;br /&gt;&lt;img src="http://asselstine.com/cats/20090614-pic6.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Clearly Brian enjoys painting immensely!&lt;br /&gt;&lt;img src="http://asselstine.com/cats/20090614-pic7.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Mama Raccoon stopped by and had a snack:&lt;br /&gt;&lt;img src="http://asselstine.com/cats/20090614-pic8.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Max was very curious about the painting supplies:&lt;br /&gt;&lt;img src="http://asselstine.com/cats/20090614-pic9.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Here's Brownie enjoying the new chair, while a stranger gives him some attention:&lt;br /&gt;&lt;img src="http://asselstine.com/cats/20090614-pic10.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;More touch-ups by Brian, while Ti-Gris looks on.&lt;br /&gt;&lt;img src="http://asselstine.com/cats/20090614-pic11.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;And here's the finished job.  Right side:&lt;br /&gt;&lt;img src="http://asselstine.com/cats/20090614-pic12.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;And the left side:&lt;br /&gt;&lt;img src="http://asselstine.com/cats/20090614-pic13.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Ta-da!  The cat colony is now ready for the summer tourist season.  Feel free to stop by and say hello to our furry friends!</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:benasselstine:8069</id>
    <link rel="alternate" type="text/html" href="http://benasselstine.livejournal.com/8069.html"/>
    <link rel="self" type="text/xml" href="http://benasselstine.livejournal.com/data/atom/?itemid=8069"/>
    <title>Cat Colony Cleanup</title>
    <published>2009-06-07T21:10:43Z</published>
    <updated>2009-06-07T22:27:07Z</updated>
    <content type="html">Twice a year we clean up the cat colony on Parliament Hill.  Here's how it happened this time around.  The plan was to:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Change the straw&lt;/li&gt;&lt;li&gt;Setup some shelving in the shed&lt;/li&gt;&lt;li&gt;Replace the chair&lt;/li&gt;&lt;li&gt;Fix some rotting wood on the cat houses&lt;/li&gt;&lt;li&gt;Throw out some junk, and just generally clean the place up&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Before we got started, the cats were fed and watered.  I ran into the White Mother first:&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20090607-pic1.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;And Bugsy posed for this moment:&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20090607-pic3.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Then Fluffy came over to the bench to say hello:&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20090607-pic2.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Here's a before picture of the right side of the cat houses:&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20090607-pic4.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Here's a before picture of the left side of the cat houses, with Fluffy, Bebe, Spot, Blackie and Brownie.  Also in this picture the rotting wood on the cat houses is most visible:&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20090607-pic5.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Our shed was embarassingly messy!&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20090607-pic6.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;And here's Big Mama's old chair (that was on it's last legs):&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20090607-pic7.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Here's the gang hard at work, taking the old straw out of the cat houses (Helene, Daniel, and Sally).  We used masks to ensure we didn't inhale bits of the 8-month old straw.&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20090607-pic8.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;More working (Laura, Sally, Helene, and Daniel):&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20090607-pic9.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Sally in the middle of putting some new straw into the cat houses:&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20090607-pic10.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;More working (Daniel, Fluffy, Helene, Sally, Brian):&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20090607-pic11.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Relaxing after a job well done (Sally, Helene, Laura).  Laura's using the new chair!&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20090607-pic12.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Finishing up (Helene, Laura, Brian, and Daniel).  Here you can see the wood that Lorraine's husband Daniel (also named Daniel) installed to address the rotting portions of the houses.&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20090607-pic13.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Sebastien and Brian setup the new shelving in the shed.  It's amazingly organized now:&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20090607-pic14.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Max approves of it:&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20090607-pic15.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Here's a better look at the new wood.  We'll probably paint it soon.&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20090607-pic16.jpg" alt="" /&gt;&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20090607-pic17.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;We removed a lot of junk from the back, and the Lafleur people made a special trip on Sunday to help out.  Here's how clean it looks in the back now:&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20090607-pic18.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Here's the new Adirondack chair to replace Big Mama's old chair.  We're hoping that the cats like this one as much as they liked the old one.&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20090607-pic19.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Here's a final picture of the cleaned-up cat colony:&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20090607-pic20.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Thanks to whole cleanup-crew for doing a great job.  The cleanup crew was: Brian, Helene, Sally, Daniel, Lorraine &amp; Daniel, and Sebastien.  A special thanks to Lafleur for working on a Sunday.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:benasselstine:7692</id>
    <link rel="alternate" type="text/html" href="http://benasselstine.livejournal.com/7692.html"/>
    <link rel="self" type="text/xml" href="http://benasselstine.livejournal.com/data/atom/?itemid=7692"/>
    <title>The making of a new Hurd utility</title>
    <published>2009-05-30T23:31:59Z</published>
    <updated>2009-06-01T20:24:01Z</updated>
    <content type="html">Yesterday when using my &lt;a href="http://www.gnome.org"&gt;GNOME&lt;/a&gt; desktop I made use of the "Templates" feature in &lt;a href="http://live.gnome.org/Nautilus"&gt;Nautilus&lt;/a&gt;.  This feature lets me drop a document into the @code{~/Templates} directory to be used later as a starting point for a new document.  I dropped my blank work report document into that directory and was struck with an idea:  I wanted the template document to be the previous work report that I worked on, instead of a blank page.  There are many ways to make this happen; a gnu+linux user might decide to run a cron job to automatically set a symlink to point to the right file.  A more expert user might write a program that monitors a directory for changes in files and sets the symlink appropriately.  But because I've been involved in the &lt;a href="http://www.gnu.org/software/hurd"&gt;hurd&lt;/a&gt; community the first solution that came to my mind was this:  Create a file that is a program; that when opened returns the last modified file in it's directory.&lt;br /&gt;&lt;br /&gt;This utility is a hurd translator called `&lt;code&gt;latest&lt;/code&gt;'.  Translators hook into a filesystem in the hurd.  This translator will provide a file to the filesystem that represents the file that has the latest modified time.  Take this directory listing for example:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
$ ls -l
total 12
-rw-r--r-- 1 bing bing 4 2009-05-28 15:34 bar
-rw-r--r-- 1 bing bing 4 2009-05-30 10:22 baz
-rw-r--r-- 1 bing bing 4 2009-05-28 15:34 foo
&lt;/pre&gt;&lt;br /&gt;`&lt;code&gt;baz&lt;/code&gt;' is the latest file in this directory.  The latest translator will provide the &lt;code&gt;baz&lt;/code&gt; file.  It is equivalent in many ways to a symlink pointing to &lt;code&gt;baz&lt;/code&gt;:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
$ ls -l
total 12
-rw-r--r-- 1 bing bing 4 2009-05-28 15:34 bar
-rw-r--r-- 1 bing bing 4 2009-05-30 10:22 baz
-rw-r--r-- 1 bing bing 4 2009-05-28 15:34 foo
lrwxrwxrwx 1 bing bing 3 2009-05-30 10:25 latest -&amp;gt; baz
&lt;/pre&gt;&lt;br /&gt;Instead of simply pointing to `baz', the &lt;code&gt;latest&lt;/code&gt; translator will determine the last file that was modified in this directory and will effectively point to it when somebody opens the file called `&lt;code&gt;latest&lt;/code&gt;'.&lt;br /&gt;&lt;br /&gt;The command to insert the new `&lt;code&gt;latest&lt;/code&gt;' file into the directory is:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
$ settrans -ac latest /hurd/latest
&lt;/pre&gt;&lt;br /&gt;The settrans program means `set translator'.  Here we say we want to create an active translator on a file called `&lt;code&gt;latest&lt;/code&gt;'.  The `&lt;code&gt;/hurd/latest&lt;/code&gt;' is the translator program.&lt;br /&gt;&lt;br /&gt;Yesterday afternoon I popped into &lt;code&gt;#hurd&lt;/code&gt; on &lt;code&gt;irc.freenode.net&lt;/code&gt; and I floated the idea for a `&lt;code&gt;latest&lt;/code&gt;' translator.  The response was positive and a few ideas came up:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;How will the translator realize that itself is not last modified file?  e.g. How will the translator exclude the file it provides?&lt;/li&gt;&lt;li&gt;Wouldn't it be nice to have a way to filter the translator, so that it would only apply to files named `&lt;code&gt;.doc&lt;/code&gt;' or `&lt;code&gt;.tar.gz&lt;/code&gt;'.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Wouldn't it be nice to tell the translator to monitor the files in some other directory other than this one?&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;On Saturday morning and I sat down to create this utility.  I logged into a public hurd box provided by Barry deFreese and started to work making the latest translator.  I took the existing `&lt;code&gt;hello&lt;/code&gt;' translator as a starting point, and in no time I had &lt;a href="http://www.superunprivileged.org/hurd/latest/latest1.c"&gt;this much&lt;/a&gt; working:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
$ ./latest --help
Usage: latest [OPTION...]
A translator providing the last modified file.

  -d, --dir=DIR              The directory to check for latest files in
  -p, --pattern=REGEX        Files must match this pattern
  -?, --help                 Give this help list
      --usage                Give a short usage message
  -V, --version              Print program version

Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.

Report bugs to &amp;lt;bug-hurd@gnu.org&amp;gt;.
&lt;/pre&gt;&lt;br /&gt;The next thing I did was to &lt;a href="http://www.superunprivileged.org/hurd/latest/latest2.c"&gt;change the code&lt;/a&gt; so that it opens up a file named `&lt;code&gt;baz&lt;/code&gt;' every time the file was opened.  This allowed me to focus on the opening and reading of a file, leaving the determination of the latest file for later.  I associated the opened `&lt;code&gt;baz&lt;/code&gt;' file with the `per open' hook in the translator, so that a new baz file was opened for every open of the &lt;code&gt;latest&lt;/code&gt; file.&lt;br /&gt;&lt;br /&gt;Then I changed the translator's `&lt;code&gt;trivfs_S_io_read&lt;/code&gt;' function to call `&lt;code&gt;io_read&lt;/code&gt;' on the already opened baz file associated with our per-open hook.  I did a similar thing for `&lt;code&gt;io_seek&lt;/code&gt;' and `&lt;code&gt;trivfs_modify_stat&lt;/code&gt;'.&lt;br /&gt;&lt;br /&gt;Simple!  Now the translator returns the latest file as long as it's a file named `&lt;code&gt;baz&lt;/code&gt;'.&lt;br /&gt;&lt;br /&gt;After that it was just a matter of implementing the `&lt;code&gt;open_last_modified_file&lt;code&gt;' function, and &lt;a href="http://www.superunprivileged.org/hurd/latest/latest.c"&gt;voila&lt;/a&gt;, it worked.  Let's take it for a spin:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
bing@hurdle:/tmp$ mkdir foo
bing@hurdle:/tmp$ cd foo
bing@hurdle:/tmp/foo$ echo "foo" &amp;gt; foo
bing@hurdle:/tmp/foo$ echo "bar" &amp;gt; bar
bing@hurdle:/tmp/foo$ echo "baz" &amp;gt; baz
bing@hurdle/tmp/foo$ settrans -ac ./latest /hurd/latest
bing@hurdle:/tmp/foo$ ls -l
total 12
-rw-r--r-- 1 bing bing 4 May 30 16:36 bar
-rw-r--r-- 1 bing bing 4 May 30 16:36 baz
-rw-r--r-- 1 bing bing 4 May 30 16:36 foo
-r--r--r-- 1 bing bing 4 May 30 16:36 latest
bing@hurdle:~/tmp/foo$ cat latest
baz
bing@hurdle:~/tmp/foo$ touch bar
bing@hurdle:~/tmp/foo$ cat latest
bar
bing@hurdle:/tmp/foo$ fsysopts ./latest
/hurd/latest --dir=.
&lt;/pre&gt;&lt;br /&gt;Future work on this translator could add a &lt;code&gt;--directory&lt;/code&gt; option that makes the translator work with directories instead of files.  This way you could have a latest directory that points to the most recently modified directory.  Another potential problem is that this translator only provides read-access to the latest file  It might be useful to also be able to write to the latest file.&lt;br /&gt;&lt;br /&gt;Writing translators for the hurd isn't very difficult and it's even fun.  If this has inspired you, why not check out &lt;a href="http://www.gnu.org/software/hurd/hurd/translator/wishlist_2.html"&gt;the&lt;/a&gt; &lt;a href="http://www.gnu.org/software/hurd/hurd/translator/wishlist_1.html"&gt;wishlist&lt;/a&gt; of translators and pick one to implement.   With a little perserverence you can also write a handly little utility like this `&lt;code&gt;latest&lt;/code&gt;' translator.&lt;/code&gt;&lt;/code&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:benasselstine:7459</id>
    <link rel="alternate" type="text/html" href="http://benasselstine.livejournal.com/7459.html"/>
    <link rel="self" type="text/xml" href="http://benasselstine.livejournal.com/data/atom/?itemid=7459"/>
    <title>Improving tab opening in GNOME's Epiphany</title>
    <published>2009-04-08T23:49:21Z</published>
    <updated>2009-04-08T23:53:14Z</updated>
    <content type="html">I switched to the &lt;a href="http://live.gnome.org/Epiphany"&gt;Epiphany&lt;/a&gt; web browser a few weeks ago.  One hurtle I've been dealing with is the situation with creating a new tab and going to a new web address using &lt;strong&gt;keystrokes&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Currently Epiphany makes you hit &lt;em&gt;Ctrl+T&lt;/em&gt;, wait for the homepage to load, and then you hit &lt;em&gt;Ctrl+L&lt;/em&gt;.  Waiting for the page to update the location bar is frustrating.  Coming from &lt;a href="http://firefox.com"&gt;FireFox&lt;/a&gt;, I expected a new blank page to open, and to have the focus in the location bar automagically.&lt;br /&gt;&lt;br /&gt;Because Epiphany is &lt;a href="http://www.fsf.org"&gt;Free Software&lt;/a&gt;, and I have some minor programming skills, I can change Epiphany to act the way I wish.  After a bit of work I made a &lt;a href="http://superunprivileged.org/ephy-tabs.patch"&gt;patch&lt;/a&gt; that contains my fixes for the software.&lt;br /&gt;&lt;br /&gt;The hard part is getting &lt;a href="http://blogs.gnome.org/epiphany/"&gt;the people responsible for Epiphany&lt;/a&gt; to include the change in all future versions so that everyone can have an improved experience.  To lobby for my fix, I've made a video that demonstrates why my patch is darned useful:&lt;br /&gt;&lt;a href="http://superunprivileged.org/ephy-tabs.ogv"&gt;&lt;img src="http://superunprivileged.org/ephy-tabs.png" alt="improved tab support in epiphany" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After I spent hours and hours making that video, I posted an enhancement request for Epiphany in the &lt;a href="http://launchpad.net"&gt;right place&lt;/a&gt;.  If you're interested you can check the status of the &lt;a href="https://bugs.launchpad.net/bugs/358082"&gt;bug in launchpad&lt;/a&gt;.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:benasselstine:7371</id>
    <link rel="alternate" type="text/html" href="http://benasselstine.livejournal.com/7371.html"/>
    <link rel="self" type="text/xml" href="http://benasselstine.livejournal.com/data/atom/?itemid=7371"/>
    <title>cat feeding</title>
    <published>2009-01-31T16:04:52Z</published>
    <updated>2009-01-31T16:04:52Z</updated>
    <content type="html">It was a cold morning today... -19 celsius and it felt like -28 with the wind.  When I showed up to feed the cats, I saw Fluffy waiting on the sunny path:&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20080131-pic1.jpg" alt="fluffy waits" /&gt;&lt;br /&gt;&lt;br /&gt;And Brownie was the next cat I saw:&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20080131-pic2.jpg" alt="brownie says hi" /&gt;&lt;br /&gt;&lt;br /&gt;Blackie couldn't wait until the snow was cleared off to say hello:&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20080131-pic3.jpg" alt="blackie says hi" /&gt;&lt;br /&gt;&lt;br /&gt;Once the snow was cleared, the cats had some food:&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20080131-pic4.jpg" alt="getting down to business" /&gt;&lt;br /&gt;Everybody got some food.  There was no sign of Snowball, or the White Mother when I visited their feeding area.  I left some dry food for them, and they can reach the bowls just fine in their own time.&lt;br /&gt;&lt;br /&gt;Bebe doesn't like photos but I surprised her with this one:&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20080131-pic5.jpg" alt="bebe closeup" /&gt;&lt;br /&gt;&lt;br /&gt;And here's Brownie:&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20080131-pic6.jpg" alt="brownie closeup" /&gt;&lt;br /&gt;&lt;br /&gt;Even the elusive Spot had time for a close-up picture:&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20080131-pic7.jpg" alt="spot closeup" /&gt;&lt;br /&gt;&lt;br /&gt;As I was leaving, Max and Fluffy were getting some sun:&lt;br /&gt;&lt;img src="http://www.asselstine.com/cats/20080131-pic8.jpg" alt="max and fluffy sunning" /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:benasselstine:7123</id>
    <link rel="alternate" type="text/html" href="http://benasselstine.livejournal.com/7123.html"/>
    <link rel="self" type="text/xml" href="http://benasselstine.livejournal.com/data/atom/?itemid=7123"/>
    <title>cat feeding</title>
    <published>2009-01-24T15:24:59Z</published>
    <updated>2009-01-24T15:27:37Z</updated>
    <content type="html">Around 9am I walked to parliament hill to feed the cats at the colony.  It was -20 outside, and the windchill is -30 degrees celisus.  On my way I took this picture:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://asselstine.com/cats/20090124-pic1.JPG" alt="On my way to the colony" /&gt;&lt;br /&gt;&lt;br /&gt;I was surprised to see a person already waiting there:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://asselstine.com/cats/20090124-pic2.JPG" alt="scavenge hunter andrea" /&gt;&lt;br /&gt;&lt;br /&gt;It turns out that the person was Andrea, who was on a scavenger hunt.  She wanted to get a picture of the Catman, but settled for a picture of me with a tin of cat food in my hand.  She was waiting all morning to get a picture!&lt;br /&gt;&lt;br /&gt;Max and Blackie were the first to come out and say hello:&lt;br /&gt;&lt;img src="http://asselstine.com/cats/20090124-pic3.JPG" alt="early risers max and blackie" /&gt;&lt;br /&gt;&lt;br /&gt;Of course the water dishes were frozen solid:&lt;br /&gt;&lt;img src="http://asselstine.com/cats/20090124-pic4.JPG" alt="frozen water dish" /&gt;&lt;br /&gt;&lt;br /&gt;While getting some hot water in the washroom the RCMP officer asked me when there would be more volunteers so that he could inform future scavenge hunters.  I said there would be more volunteers present around noon.&lt;br /&gt;&lt;br /&gt;With fresh water and food the cats ate well:&lt;br /&gt;&lt;img src="http://asselstine.com/cats/20090124-pic5.JPG" alt="bebe, max, blackie, and fluffy eating" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://asselstine.com/cats/20090124-pic6.JPG" alt="max, bebe, blackie, fluffy and below brownie" /&gt;&lt;br /&gt;Brunette had a little food, but I don't think Ti-Gris or Spot had any at all this morning.  They both had their chance though -- as I put a food dish in each of their cubby holes.&lt;br /&gt;&lt;br /&gt;And afterwards Max did what he does best:&lt;br /&gt;&lt;img src="http://asselstine.com/cats/20090124-pic7.JPG" alt="pretty boy max" /&gt;&lt;br /&gt;&lt;br /&gt;And Brownie and Fluffy cleaned up the rest of the food.&lt;br /&gt;&lt;img src="http://asselstine.com/cats/20090124-pic8.JPG" alt="fluffy and brownie, best friends forever" /&gt;&lt;br /&gt;&lt;br /&gt;As I was leaving the cats were all warming up in a cubby hole, except for Brownie.  No sign of Snowball, Bugsy or the White Mother.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:benasselstine:6819</id>
    <link rel="alternate" type="text/html" href="http://benasselstine.livejournal.com/6819.html"/>
    <link rel="self" type="text/xml" href="http://benasselstine.livejournal.com/data/atom/?itemid=6819"/>
    <title>Beatles Day</title>
    <published>2008-10-17T22:15:35Z</published>
    <updated>2008-10-17T22:15:35Z</updated>
    <content type="html">9 hours of beatles music has past and I have a greater appreciation for their music, and a headache.&lt;br /&gt;I turns out that knew 40 songs in total (instead of my approximation of 20), with the my best known album being "Magical Mystery Tour".  I really liked 20 other songs on first listen... most of which came from the White Album, "Revolver" and "Beatles For Sale".&lt;br /&gt;&lt;br /&gt;Unfortunately I missed some songs that were only released as singles. I didn't get to hear "Day Tripper", "We Can Work It Out", and "Paperback Writer". &lt;br /&gt;&lt;br /&gt;Here's my ranked list of Beatles albums:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;1. Sgt. Pepper's Lonely Hearts Club Band&lt;/li&gt;&lt;br /&gt;&lt;li&gt;2. Magical Mystery Tour&lt;/li&gt;&lt;br /&gt;&lt;li&gt;3. White Album&lt;/li&gt;&lt;br /&gt;&lt;li&gt;4. Revolver&lt;/li&gt;&lt;br /&gt;&lt;li&gt;5. Abbey Road&lt;/li&gt;&lt;br /&gt;&lt;li&gt;6. Beatles For Sale&lt;/li&gt;&lt;br /&gt;&lt;li&gt;7. With The Beatles&lt;/li&gt;&lt;br /&gt;&lt;li&gt;8. Rubber Soul&lt;/li&gt;&lt;br /&gt;&lt;li&gt;9. Please Please Me&lt;/li&gt;&lt;br /&gt;&lt;li&gt;10. Hard Day's Night&lt;/li&gt;&lt;br /&gt;&lt;li&gt;11. Help!&lt;/li&gt;&lt;br /&gt;&lt;li&gt;12. Let It Be&lt;/li&gt;&lt;br /&gt;&lt;li&gt;13. Yellow Submarine&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Nicest Surprises:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;"Helter Skelter" -- "my fingers are bleeding!", from the White Album.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Best Title: "Everybody's Got Something To Hide Except Me And My Monkey."&lt;/li&gt;&lt;br /&gt;&lt;li&gt;"No Reply", from "Beatles For Sale".&lt;/li&gt;&lt;br /&gt;&lt;li&gt;"Baby You're A Rich Man", from "Magical Mystery Tour".&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:benasselstine:6523</id>
    <link rel="alternate" type="text/html" href="http://benasselstine.livejournal.com/6523.html"/>
    <link rel="self" type="text/xml" href="http://benasselstine.livejournal.com/data/atom/?itemid=6523"/>
    <title>Becoming a Beatles Fan</title>
    <published>2008-10-16T17:30:18Z</published>
    <updated>2008-10-16T17:30:18Z</updated>
    <content type="html">Friday October 17th is Beatles day for me.  A few weeks ago I had the idea of listening to all of the Beatles' studio albums in one sitting.  It will be a full of nine hours of music: from I Saw Her Standing There, recorded in 1963, to Free As A Bird released in 1995.&lt;br /&gt;&lt;br /&gt;Although I've never sat down and listened to any Beatles album from start to finish, I think i could become a Beatles fan.  I've heard all the same Beatles songs that everyone else has heard (the monster hits that everybody likes and will be with us forever), but this is only the tip of the iceberg.  I am familiar with approximately  20 Beatles songs which is only 10% of their impressive stable of music.  What about the rest?&lt;br /&gt;How do the albums sound to a modern Beatles neophyte?  That's what I'm going to find out.&lt;br /&gt;&lt;br /&gt;Here are the albums I'll be listening to:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Please Please Me&lt;/li&gt;&lt;br /&gt;&lt;li&gt;With The Beatles&lt;/li&gt;&lt;br /&gt;&lt;li&gt;A Hard Day's Night&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Beatles For Sale&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Help!&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Rubber Soul&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Revolver&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Sgt. Pepper's Lonely Hearts Club Band&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Magical Mystery Tour&lt;/li&gt;&lt;br /&gt;&lt;li&gt;White Album&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Yellow Submarine&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Abbey Road&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Let It Be&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;I am largely ignorant of Beatles lore.  I know they're from Liverpool, and that Ringo is a replacement drummer.  I know that they broke up, and that Lennon was shot.  I haven't even heard of 5 of the 13 albums, and I didn't know that Yellow Submarine was a song, and an album.  There may or may not be short movies associated with A Hard Day's Night, and Sgt. Pepper's Lonely Hearts Club Band.&lt;br /&gt;&lt;br /&gt;I will begin listening to Please Please Me at 8am on Friday, and finish listening to Let It Be around 6pm.  While I'm listening to the msuic I will make notes on what I'm hearing.  I expect to hear similarities with other more modern artists who the Beatles have affected, and I hope the progression between albums will be interesting, as well as the albums themselves individually.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:benasselstine:6298</id>
    <link rel="alternate" type="text/html" href="http://benasselstine.livejournal.com/6298.html"/>
    <link rel="self" type="text/xml" href="http://benasselstine.livejournal.com/data/atom/?itemid=6298"/>
    <title>The Voltersand</title>
    <published>2007-08-15T18:44:15Z</published>
    <updated>2007-08-15T19:04:58Z</updated>
    <content type="html">I propose a new punctuation symbol to be incorporated into general use.  It is similar to the ampersand; it is, the &lt;em&gt;&lt;strong&gt;voltersand&lt;/strong&gt;&lt;/em&gt;:

&lt;blockquote&gt;&lt;img src="http://www.asselstine.com/voltersand.png" height="100" width="89" alt="The Voltersand" /&gt;&lt;/blockquote&gt;

Whereas the ampersand means a logical `AND', the voltersand means `OR'.
&lt;br&gt;
&lt;br&gt;

The two lines in the voltersand represent two options.  It means one or the other must be chosen, but not both or neither.
&lt;br&gt;
&lt;br&gt;

In popular use it can be used in the designation on envelopes:
&lt;blockquote&gt;
  Mr &lt;img src="http://www.asselstine.com/voltersand12pt.png" height="12" width="10" alt="" /&gt; Mrs Tullius&lt;br&gt;
  36 Tiro Drive
&lt;/blockquote&gt;

Or it can be used in a sentence:
&lt;blockquote&gt;I would like the colour to be beige &lt;img src="http://www.asselstine.com/voltersand12pt.png" height="12" width="10" alt="" /&gt; white.&lt;/blockquote&gt;
  
The voltersand is not merely to be used as a replacement for the word `or'.  It is meant to juxtapose two similar terms and imply a choice between them.  For example it is considered &lt;strong&gt;bad&lt;/strong&gt; grammar to write:
&lt;blockquote&gt;Please comply with the order &lt;img src="http://www.asselstine.com/voltersand12pt.png" height="12" width="10" alt="" /&gt; face the consequences.&lt;/blockquote&gt;

However it would be very &lt;strong&gt;good&lt;/strong&gt; grammar to write:
&lt;blockquote&gt;Experts predict that the voltersand will be in common usage within 6 &lt;img src="http://www.asselstine.com/voltersand12pt.png" height="12" width="10" alt="" /&gt; 7 years.&lt;/blockquote&gt;

To encourage it's use, the voltersand shall replace the CAPS-Lock key on all modern keyboards, and it will be a featured punctuation symbol on at least 3 episodes of Sesame Street per month until it catches on.

&lt;br&gt;
&lt;br&gt;

Also, today is Voltersand Day.  This day marks the first appearance of the voltersand.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:benasselstine:5909</id>
    <link rel="alternate" type="text/html" href="http://benasselstine.livejournal.com/5909.html"/>
    <link rel="self" type="text/xml" href="http://benasselstine.livejournal.com/data/atom/?itemid=5909"/>
    <title>toilets in public bathrooms, and their gouged toilet seats</title>
    <published>2007-02-19T21:30:42Z</published>
    <updated>2007-02-19T21:30:42Z</updated>
    <content type="html">All too often when I use a toilet in a public bathroom I see that my toilet seat is gouged with a shallow indentation the size of a quarter.  Dearest Lazyweb, why is this?&lt;br /&gt;&lt;br /&gt;Am I missing out on something?  Is there a purpose to it?  Should we all be defacing toilet seats?  Why don't any of my friends have any gouges in their toilet seats?  Should we all move on to the next stall?&lt;br /&gt;&lt;br /&gt;My best guess is that there's a supervillain out there with super-acidic urine.  And seeing how he's a villain, he pees on the seat.&lt;br /&gt;&lt;br /&gt;The next time you're in a mall and you have an emergency situation that means you have to use one of the stalls there, keep an eye out for the mysterious toilet seat gouge.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:benasselstine:5814</id>
    <link rel="alternate" type="text/html" href="http://benasselstine.livejournal.com/5814.html"/>
    <link rel="self" type="text/xml" href="http://benasselstine.livejournal.com/data/atom/?itemid=5814"/>
    <title>A Command-line Option repository</title>
    <published>2006-10-11T22:08:06Z</published>
    <updated>2006-10-16T16:57:09Z</updated>
    <content type="html">All good programs have command-line options.  More often than not, programmers write them from scratch because they're thought to be simple.  Anyone who's written a large program knows that this isn't the case; every option needs the right validation, the right error messaging, and then there's i18n and l10n issues.  Now there's a huge collection of command-line options out there in the wild, and they're rock solid, and they're translated and there's great error-handling already included.&lt;br /&gt;&lt;br /&gt;So what if every option, every argument was reusable?&lt;br /&gt;What if you could just pick from a huge ready-made library of options when creating your program?&lt;br /&gt;The options would be rock solid, complete with the right error messaging in a myriad of languages.&lt;br /&gt;How would it work?  What are some properties of such a system?&lt;br /&gt;What about uniqueness problems?  Can there be more than one -L option?&lt;br /&gt;Clearly the repository can have more than one -L option, but the program that uses the option repository cannot.&lt;br /&gt;What about groups of options.  those need to be in the repository too.  Instead of selecting a single option, maybe the programmer can select a pre-defined group of options that just go together.&lt;br /&gt;How does a programmer include this options in his program?&lt;br /&gt;Does she download something?  the source?  is it &lt;a href="http://www.gnu.org/software/autoconf"&gt;autoconf&lt;/a&gt;'d? &lt;a href="http://www.gnu.org/software/automake"&gt;automake&lt;/a&gt;'d?&lt;br /&gt;Or is it more like a &lt;a href="http://sv.gnu.org/p/gnulib"&gt;gnulib&lt;/a&gt; module maybe?&lt;br /&gt;How would a programmer find a suitable option in the repository?&lt;br /&gt;How would one integrate option modules into their program?&lt;br /&gt;Options and arguments would not have interdependencies (like gnulib modules do).&lt;br /&gt;Maybe an option requires some sort of external resource (like a shared object), but this would be unfortunate, and a special case.&lt;br /&gt;&lt;h3&gt;A user's story:&lt;/h3&gt;&lt;br /&gt;The programmer looks at a manual to determine the available option modules, and she carefully selects the ones she wants.  Then she uses a tool similar to gnulib-tool to download modules.  The tool then assembles the modules into a libtool library that she links to her program.  The parsing part of the module is performed by an argp parser, and the library exports several struct argp symbols that the user adds as argp_children to her existing argp parser (one struct argp for every option).  &lt;br /&gt;She then adds the necessary hooks to her ARGP_KEY_INIT section in her existing argp parser to pass the right data pointers (that will be filled up with parsed values) to the right parsers.  She checks the documentation for each module to know the data type that the parser is expecting.&lt;br /&gt;The gettext portions of the modules are assembled into a ${PACKAGE}-options.mo file for installation.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Discussion&lt;/h3&gt;&lt;br /&gt;The cool thing here is reusability, but it comes at a cost.  The cost is making the repository and making the tools that make it go.&lt;br /&gt;&lt;br /&gt;It's easy to see how the module could include a header file that defines a struct that holds the parsed options.  Then the parser for an option group could parse many options, instead of just one.  The drawback is that this is not very good for reusing a single option from the set.  The advantage is that current argp parsers are usually written this way.&lt;br /&gt;&lt;br /&gt;This pan-project repository of options wouldn't be used by many people, because argp isn't used by many projects.  Getopt is usually used in it's place.  Argp lends itself to this kind of "librarification" of option parsing.  It could be useful for a specific project that has a lot of command-line arguments.&lt;br /&gt;It doesn't make a lot of sense to manually cull option parsing from the myriad of projects out there, just so that a repository can exist.  It would only have to be updated manually anyway, and the problem doesn't lend itself to automation.&lt;br /&gt;&lt;br /&gt;gnulib-tool could be adopted to implement this but it lacks the concept of modules having translations with them.&lt;br /&gt;&lt;br /&gt;Another drawback that relates to using argp is that the option would have an existing argp group value -- and reusing options from different groups could lead to a schizophrenic display of options in --help.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Final Thoughts&lt;/h3&gt;&lt;br /&gt;This idea probably isn't useful in a pan-project sense, but it could work for new projects, or a project that desperately needs more code reuse.  Maybe some automation can be done with respect to changing argp groups, or OPTION_HIDDEN on the fly.&lt;br /&gt;&lt;br /&gt;Here's a more formal description of what I've already described:&lt;br /&gt;&lt;br /&gt;repository:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;has options (not unique)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;has option groups (unique) composed of options&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;program:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;has zero or more options (unique)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;has zero or more option groups&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;module:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;is an option module&lt;/li&gt;&lt;br /&gt;&lt;li&gt;or an option group module&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;option module:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;has metadata about the option (author, assertions, programs that use this option)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;has an option&lt;/li&gt;&lt;br /&gt;&lt;li&gt;translation information&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;option group module:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;has metadata about the option group (author, assertions, programs that use this option group)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;has a unique option group identifier&lt;/li&gt;&lt;br /&gt;&lt;li&gt;has an option group&lt;/li&gt;&lt;br /&gt;&lt;li&gt;translation information&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;option group:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;has one or more options&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;option:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;has data about the option (short name, long name, argument name, description, etc)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;has code for translation of strings (e.g. &lt;a href="http://www.gnu.org/software/gettext"&gt;gettext&lt;/a&gt;)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;has code for error checking&lt;/li&gt;&lt;br /&gt;&lt;li&gt;has code for option parsing (e.g. making an int from the string)&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Interaction Boundaries:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;option / repository : how does a repository include an option?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;repository / program : how does the program (or programmer) interface with the repository of options?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;option / program : how does the program interface with an option from the repository?&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Update:&lt;br /&gt;Some GNU people pointed me to the GNU standards section about &lt;a href="http://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces"&gt;command line interfaces&lt;/a&gt;.  It describes a long list of long options that GNU programs respect.  This set of options would be a great place to start for a command line option repository.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:benasselstine:5461</id>
    <link rel="alternate" type="text/html" href="http://benasselstine.livejournal.com/5461.html"/>
    <link rel="self" type="text/xml" href="http://benasselstine.livejournal.com/data/atom/?itemid=5461"/>
    <title>goodbye psychobabble, hello yammer</title>
    <published>2006-09-16T21:18:14Z</published>
    <updated>2006-09-17T23:13:14Z</updated>
    <content type="html">In early August, Seattle-based &lt;a href="http://popcap.com"&gt;Popcap&lt;/a&gt; games pulled the plug on three semi-popular games; one of which was called psychobabble.&lt;br /&gt;&lt;br /&gt;One of the unfortunate things about proprietary web-based services is that the service can just &lt;strong&gt;disappear&lt;/strong&gt;, and there's no way to get it back.  In this case Popcap patrons lost access to a source of entertainment that they could ONLY get from that site, in the form of a game called psychobabble.&lt;br /&gt;&lt;br /&gt;Finding this socially irresponsible, I decided to make a &lt;a href="http://www.fsf.org"&gt;free-software&lt;/a&gt; clone of the game.  I've made some progress on it, and I call it &lt;a href="http://www.asselstine.com/yammer"&gt;yammer&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;About psychobabble:&lt;br /&gt;A multiplayer web-based voting game, where players make funny or amazing sentences from available words within a short amount of time, and then vote blindly on the best sentence.  Points are allocated based on the election results.  All the action took place in a web-browser, and players could chat with each other while they played.&lt;br /&gt;&lt;br /&gt;About yammer:&lt;br /&gt;Implemented in C as an IRC bot that mediates a psychobabble-like game in an IRC chat room.&lt;br /&gt;&lt;br /&gt;I've ran into a couple of difficulties in the making of this game.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;freenode throttles the bandwidth of the bot, such that text appears very slowly.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;adding word particles isn't supported.   eg.  adding &lt;strong&gt;-ed&lt;/strong&gt; to &lt;strong&gt;keep&lt;/strong&gt; should yeild &lt;strong&gt;kept&lt;/strong&gt; as a valid sentence word.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;So if you're a hacker and you want to help out on something fun, please drop me a line.  testing happens in #yammer on freenode.net.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Update on 17 Sep 06: Good news!  &lt;a href="http://directory.fsf.org/WordNet.html"&gt;wordnet&lt;/a&gt; is a package that can do word morphing for the english language.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:benasselstine:5259</id>
    <link rel="alternate" type="text/html" href="http://benasselstine.livejournal.com/5259.html"/>
    <link rel="self" type="text/xml" href="http://benasselstine.livejournal.com/data/atom/?itemid=5259"/>
    <title>not a normal weekend</title>
    <published>2006-02-28T02:05:15Z</published>
    <updated>2006-02-28T02:05:15Z</updated>
    <content type="html">I get up, make some eggs.&lt;br /&gt;Eat eggs.&lt;br /&gt;Check email.&lt;br /&gt;I make throw some things into a regional pre-paid envelope to send to my brother Bill in Peterborough.&lt;br /&gt;Fill out address form... which happens to be on the back of the envelope.  This is odd.&lt;br /&gt;The plan is to mail the envelope, go see the cats on parliament hill, and then get some groceries.&lt;br /&gt;All on foot of course.&lt;br /&gt;So I leave my apartment.  Lock my door.&lt;br /&gt;On my way out I put on my touque.&lt;br /&gt;Gloves stay off while carrying envelope.&lt;br /&gt;Leave building.&lt;br /&gt;Get to Post box.  Mail envelope. Job 1 done.&lt;br /&gt;put on gloves, proceed to cats.  It's a long walk, and cold.&lt;br /&gt;I get there and the cats are all in their houses, still sleeping.&lt;br /&gt;I sit on the bench.&lt;br /&gt;I watch a squirrel cautiously approach a bowl of catfood sitting outside of the cathouses (think doghouse but for cats).  It's staring into the blackness of each house, wondering if a cat is going to pounce on it.  The coast seems clear so it goes for the food.  In doing so it moves the bowl so it makes a sound. The squirrel backs off and frantically checks the holes for angry cats.  Still no cats.  I chuckle and leave.&lt;br /&gt;I start for the grocery store.&lt;br /&gt;Before leaving the parliamentary grounds I do up my boot laces, as they've come undone.&lt;br /&gt;I walk a long way back to the grocery store which is near my apartment.&lt;br /&gt;I enter the grocery store.&lt;br /&gt;I take my touque and gloves off.&lt;br /&gt;I get some pork, some steak, more eggs, and a bunch of things to make some soup.&lt;br /&gt;I pay for the groceries and leave.&lt;br /&gt;I put on my touque, then the gloves.&lt;br /&gt;I get back to my building, and I'm fumbling with groceries trying to get at my keys.&lt;br /&gt;Another person is going inside anyway so he lets me in also.&lt;br /&gt;By the time I get inside the elevator, I realize that I don't have my keys.  So I tell the guy this, like he can do anything at all.&lt;br /&gt;I get to my door.  Maybe I left it open.  No, it's locked.&lt;br /&gt;No cell phone, no extra keys.&lt;br /&gt;Go to neighbours.  They graciously take my groceries and give me a fob so i can get back into the building after i go searching for my keys.&lt;br /&gt;They must be outside somewhere -- I keep them in the same pocket as my touque and gloves.  When I took my touque or gloves out of my pocket they must have fallen out.  But why didn't I hear it?&lt;br /&gt;Start backtracking.&lt;br /&gt;Check mail room bulletin board.  No keys.&lt;br /&gt;Check underneath furniture in lobby.  No keys.&lt;br /&gt;Check near building entrance.  Maybe when I put on my touque they fell out.  No keys.&lt;br /&gt;Go to hair salon in bottom of building.  Inquire about keys.  No keys.&lt;br /&gt;Check near the Post box.  Maybe when I put on my gloves they fell out.  No keys.&lt;br /&gt;Inquire at cafe near the Post box.  No keys.&lt;br /&gt;Maybe they fell out randomly on the walk towards the cats on parliament hill.&lt;br /&gt;Inquire at nearby hotel.  no keys.&lt;br /&gt;Inquire at fish market. no keys.&lt;br /&gt;Inquire at the old new RO "A Station". no keys.&lt;br /&gt;Switch modes, thinking that it's more likely I lost my keys while I was shopping.&lt;br /&gt;Go to grocery store.  no keys.&lt;br /&gt;Switch back to backtracking my way towards the cats.&lt;br /&gt;Re-check building entrance area.  no keys.&lt;br /&gt;Re-check Post box area.  no keys.&lt;br /&gt;Did I mention it's snowing?&lt;br /&gt;Inquire at another cafe in the market.  no keys.&lt;br /&gt;Walk towards parliament.&lt;br /&gt;Realized my keys weren't jingling all morning.  Usually I hear them.&lt;br /&gt;I get to the cats, and check the bench where I sat down. no keys.&lt;br /&gt;A cat comes out to say hello.  The cat sits on my lap for a while.&lt;br /&gt;Realized that my keychain is irreplaceable as it was my grandfathers.&lt;br /&gt;It's still snowing.&lt;br /&gt;My last hope is that they fell out while I tied up my bootlaces.  So I head for there.&lt;br /&gt;no keys.&lt;br /&gt;I go inside, inquire at the commisionaire.  no keys.  he suggests I check with the main staff.&lt;br /&gt;I backtrack and go inside to the visitor's centre.&lt;br /&gt;Go through magnetic security.&lt;br /&gt;Forgot to remove a coin in my pocket, so I get the extra-special treatment.&lt;br /&gt;i do my belt back up and continue.&lt;br /&gt;inquire about keys at the security desk.  no keys.  he suggests I ask the RCMP outside.&lt;br /&gt;so i go outside and along the way I ask a random snow-shoveler.  no keys.&lt;br /&gt;I ask the RCMP.  no keys.&lt;br /&gt;I realize I have truly lost my keys.&lt;br /&gt;I walk home, following the same route.&lt;br /&gt;I'm not really searching at this point.&lt;br /&gt;I decide that hot chocolate from Tim Horton's is a great idea, so I do that.&lt;br /&gt;I go home, missing one stretch of a block that I walked over earlier, but I'm not really searching for keys anyway.&lt;br /&gt;As I go into the building I check the front entrance area again.  no keys.&lt;br /&gt;I go inside, with the fob from my gracious neighbors.&lt;br /&gt;I check the mail room bulletin board.&lt;br /&gt;I go up to my apartment door.  Still locked.  (of course, but I tired the door anyway)&lt;br /&gt;Go to neighbours.  &lt;br /&gt;Suggest climbing around the barrier on the balcony to get into my unlocked balcony door.  The eleven storey fall deters me.&lt;br /&gt;They let me use their phone.&lt;br /&gt;They had the building management company on speed dial.  I called the manager on her personal cell phone and boy was she surprised to get a random request for help.  She said it would be $50 for a new fob, and no she couldn't let me into my apartment.  I had to call a locksmith.  She gave me the number.  I wrote it down.&lt;br /&gt;I dialed the number.  Realized I wrote the number down wrong.&lt;br /&gt;Ben is flustered.&lt;br /&gt;The neighbours look up the right number in an actual phone book.  I flipped two numbers.&lt;br /&gt;I dial the right number.  We talk and I say that we have Schlage locks in the buildling.&lt;br /&gt;The locksmith it's $75/hr and that he'll be over in 15 minutes.&lt;br /&gt;Leave my neighbours.  They're great neighbours.&lt;br /&gt;Wait in lobby to let him in.&lt;br /&gt;Random condo people talk about last night's earthquake.&lt;br /&gt;It's news to me.&lt;br /&gt;Time passes.  Feeling guilty for losing keys.&lt;br /&gt;See red van.  It could only be a locksmith's van.&lt;br /&gt;I let him in.  He starts to work.&lt;br /&gt;I'm completely enthralled by locksmithing.&lt;br /&gt;I ask the best questions my money can buy, as I distract him from the main task of opening my door.&lt;br /&gt;How do you know it's my apartment?  I mean I could be a creative thief.  he asks for id.  i say it's in my apartment.  he tells me a story of when he had to call the police on a creative thief once.&lt;br /&gt;Can he open my mail box?  Are there different rules about that?  his answer: nope.&lt;br /&gt;What's his picking success? his answer: 50/50, but less on a Schlage.&lt;br /&gt;What do you do when you can't pick.  his answer:  we drill.&lt;br /&gt;How long has he been doing this?  38 years. Wow.&lt;br /&gt;Do you have any apprentices? no.  he's in retirement mode.&lt;br /&gt;There were a million more question, and I think I might want to retire and become a locksmith.&lt;br /&gt;The picking doesn't work.  So he drills.&lt;br /&gt;He has a little more trouble getting the door open.  Finally he opens the door.&lt;br /&gt;He tells me to get ID right away.  So I do.  Passport + bank statement.&lt;br /&gt;He replaces the lock.  I pay cash and get a special deal.&lt;br /&gt;Locksmith tells me if I write down the number that's engraven on my key, and the kind of lock that my door has, that any locksmith can just cut a new key for my door, and not pick or drill.  I can't decide if it's a good idea or not to keep that kind of info in my wallet.&lt;br /&gt;I get a bunch of keys made up.  I pay $85.&lt;br /&gt;I still can't get into my mailbox.  My work key and fob are gone, my apartment fob is gone.  My grandfather's keychain is gone.&lt;br /&gt;Brother Bill calls while I'm searching for my spare apartment fob.&lt;br /&gt;I go over these events with him.&lt;br /&gt;I make a "Better Off Dead" movie reference where Lane Myer (John Cusack) says "KEYYYYYSSSS!".&lt;br /&gt;I find my spare fob.  I hang up.&lt;br /&gt;I return the borrowed fob to my neighbours.  I get my groceries back.&lt;br /&gt;I make soup.  It's now 2pm Saturday.&lt;br /&gt;I wallow in the loss of my keys.&lt;br /&gt;I search ebay for new keychains.  Nothing good.&lt;br /&gt;Fast forward to 5pm on Sunday.&lt;br /&gt;I'm about to leave to catch a train for work in Kingston the next day.&lt;br /&gt;A knock on my door.&lt;br /&gt;Another neighbour has my keys in his hands.&lt;br /&gt;He found them on the bulletin board in the mail room, and then tried the mail key in every single mailbox.  Eventually it opened mine, and he marched the keys up to me.  I thanked him over and over again.&lt;br /&gt;I don't know who found them or where.&lt;br /&gt;Thank you whoever you are for finding my keys!  Thanks to my wonderful neighbours too.  I'm just so happy to have my keys back!!</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:benasselstine:5050</id>
    <link rel="alternate" type="text/html" href="http://benasselstine.livejournal.com/5050.html"/>
    <link rel="self" type="text/xml" href="http://benasselstine.livejournal.com/data/atom/?itemid=5050"/>
    <title>sunflower seeds</title>
    <published>2005-11-20T01:12:32Z</published>
    <updated>2005-11-20T01:12:32Z</updated>
    <content type="html">How many sunflower seeds have you eaten in your life?&lt;br /&gt;&lt;br /&gt;Me?  I'm at zero.  And the lowest-score wins!</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:benasselstine:4641</id>
    <link rel="alternate" type="text/html" href="http://benasselstine.livejournal.com/4641.html"/>
    <link rel="self" type="text/xml" href="http://benasselstine.livejournal.com/data/atom/?itemid=4641"/>
    <title>autoblogger</title>
    <published>2005-10-26T00:44:34Z</published>
    <updated>2005-10-26T00:44:34Z</updated>
    <content type="html">What's an autoblogger?&lt;br /&gt;&lt;br /&gt;It records fun and interesting aggregate information about your life on the computer, and then syndicates it into a single RSS feed.&lt;br /&gt;&lt;br /&gt;Depending on your configuration you might decide to show things like:&lt;br /&gt;&lt;br /&gt;The average speed of your double-click this week.&lt;br /&gt;The most open windows you've had, if it exceeds your all time high.&lt;br /&gt;Your kernel version if it has changed.&lt;br /&gt;How many concurrent users your computer had on it this week.&lt;br /&gt;Number of Copy and Pastes today.&lt;br /&gt;Number of Copies but no Pastes today.&lt;br /&gt;Number of webpages visited this month.&lt;br /&gt;Your gaim nickname if it has changed.&lt;br /&gt;Amount of time spent online this month.&lt;br /&gt;Amount of time spent idle this hour.&lt;br /&gt;What your top 10 applications were this month.&lt;br /&gt;Minutes of video watched this year&lt;br /&gt;Most hours of audio ever listened to in a week.&lt;br /&gt;The high scores of the games you play.&lt;br /&gt;&lt;br /&gt;There would be a backend system and you select the stat, and you select when you want to see that stat updated in the autoblog.  Maybe it should be updated every day, or every day if it exceeds the highest or lowest previously known value.  Or every year, or whenever it changes.  Of course every backend could potentially have it's own configuration data.&lt;br /&gt;&lt;br /&gt;Some of these stats can be retrieved by querying an existing indexer like Beagle or Kat.&lt;br /&gt;&lt;br /&gt;To my knowledge an autoblogger doesn't exist yet.  Just imagine an RSS aggregator that takes stats of stats!  Sadly someone might try and use such an infrastructure to measure productivity.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:benasselstine:4561</id>
    <link rel="alternate" type="text/html" href="http://benasselstine.livejournal.com/4561.html"/>
    <link rel="self" type="text/xml" href="http://benasselstine.livejournal.com/data/atom/?itemid=4561"/>
    <title>What's in a word?</title>
    <published>2005-08-09T01:08:51Z</published>
    <updated>2005-08-12T00:06:55Z</updated>
    <content type="html">There is a new phrase that's entered the public vernacular from the world of the internet.  As usual when this happens, it's not pretty.  It has to do with when newscasters try to get around the problem of vocalizing cumbersome internet addresses.&lt;br /&gt;&lt;br /&gt;They try a lot of things to make it easier:&lt;br /&gt;1) They fix the problem by making the address not so cumbersome.  Instead of saying hockeynightincanada@cbc.ca, they just change it to hnic@cbc.ca.&lt;br /&gt;2) They fix the problem by not saying it at all.  They say "here's our email address" and then show it as text on the bottom of the screen.&lt;br /&gt;3) Or they say North America's fastest-growing new catch-phrase, "That's all one word".  "Send your comments via email to Evening News at CBS dot com, and that's ALL ONE WORD." [Editor's emphasis]&lt;br /&gt;&lt;br /&gt;Congratulations on clearing up the confusion Dan!  &lt;br /&gt;&lt;br /&gt;Okay, you can call me Andy Rooney on this one, but "EveningNews" is not a word.  Neither is eveningnews@cbs.com.  How many words do you know that have periods in the MIDDLE of them?&lt;br /&gt;&lt;br /&gt;This nasty little phrase takes up valuable air time -- instead of telling us the news, they're making sure we grasp the concept of an email address.    Unfortunately this phrase is really catching on.  Try googling for "That's all one word", and you'll see what I mean.  Sometimes they even slip it in very quickly before finishing the pronunciation of the address.  Eg. "the address is wtcsitememorial -- that's all one word -- dot org. "&lt;br /&gt;&lt;br /&gt;The technocrats of the internet might have us believe that a word is anything delimited by white space.  And now they have the trusted faces of America backing them up.  What a word to redefine!  "Word".  Nevermind the implications for urban-speak, this is a tragedy!&lt;br /&gt;&lt;br /&gt;At least the newscasters have learned not to say double-you-double-you-double-you when pronouncing their website's address.  Now they have a new lesson to learn.&lt;br /&gt;&lt;br /&gt;The good news is that you can help.  When you're pronouncing your email address to a friend, don't say "that's all one word."  When they ask you if your email address is in fact, all one word, tell them that email addresses can't contain spaces.  Then make fun of that person for being stupid.  After that when they ask if your email address has any extra hyphens or dots in it, tell them that you would've pronounced it that way in the first place had it had any.  Then make fun of them some more.  A little more harsh this time.&lt;br /&gt;&lt;br /&gt;Reward and punishment I say.  Okay, mostly punishment.  To do my bit, I might sign up for the "thatsallonewordnohyphensordashes@gmail.com" email address.  Or quite possibly "ireallyprefermyemailaddresstobeasentence@hotmail.com".&lt;br /&gt;&lt;br /&gt;If you have any comments on this blog entry, you can send them to benasselstine@canada.com.  Yeah that's right -- that's all one word.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:benasselstine:4275</id>
    <link rel="alternate" type="text/html" href="http://benasselstine.livejournal.com/4275.html"/>
    <link rel="self" type="text/xml" href="http://benasselstine.livejournal.com/data/atom/?itemid=4275"/>
    <title>Poppy Season</title>
    <published>2004-11-11T05:13:45Z</published>
    <updated>2004-11-11T05:13:45Z</updated>
    <content type="html">Today it's Remembrance Day in Canada, a day that marks fallen Canadian soldiers.  One of the customs on this day is to wear a poppy on one's left side, near the heart in memory of the dead.&lt;br /&gt;&lt;br /&gt;Of course the poppies are very cheap and quite fake.  These little things consist of 3 parts; the red flowerish part that's 4cm in diameter, soft on one side and plastic on the other, the black pupil in the centre of the flower, and the pin.  This pin is a very simple pin -- think "needle".  People pay anywhere from a quarter to two dollars for a poppy, and the money goes to help veterans.&lt;br /&gt;&lt;br /&gt;Recently we've stepped up the realism here in Canada with regard to the poppies we wear... in the past 2 years we've switched from green pupils to black pupils.  It's said they look more real, and it also shows who keeps their poppy from year to year instead of buying a new one.&lt;br /&gt;&lt;br /&gt;It is simply not possible to keep a poppy a whole poppy-wearing season (about 2 weeks), without applying some sort of strategy to keep the poppy fastened.  Some might say that these little things are designed to become unattached during normal daily life.  One wonders if the number of poppies sold exceeds the population of the country.  Here are some of the strategies to keep your poppy fastened in this poppy season:&lt;br /&gt;&lt;br /&gt;1) Use a small pin with a clasp instead of the normal poppy pin.  Some people use a small Canadian flag pin.  Works wonderfully on shirts and sweaters, but winter coats can prove to be too cumbersome for some pins with clasps.&lt;br /&gt;&lt;br /&gt;2) Use a bit of eraser to clasp the normal pin.  Somewhat unslightly, but highly effective.  This method is not in high use.&lt;br /&gt;&lt;br /&gt;3) Treat your poppy as a tiny child who needs constant attention.  Always check your poppy.  How's it doing now?  Coming undone a bit?  There you go.  All fixed.  Is it dirty?  Better clean it up some.  Come inside, take it off the winter coat, and fasten it on the sweater.  Indoors and outdoors, many employ this drill with little success.  Another poppy can easily be purchased, nullifying the amount of effort given to keeping one in this fashion.  Even though it is a highly ineffective strategy, it is by far the most widely used.&lt;br /&gt;&lt;br /&gt;4) Pay a lot of money for your poppy, and treat it as an investment.  A poppy worth a quarter is more likely to be lost than a poppy worth ten dollars.  Sure it's the same poppy, but it's a ten dollar poppy as soon as you fork over the dough.  You'll be checking your poppy like you used to check that long lost Nortel or Air Canada stock.  Frequently, to say the least.&lt;br /&gt;&lt;br /&gt;5) Bend the poppy pin.  Works well but is not foolproof.  Beware for your poppy pin has just become a poppy hook, and it's close to the skin.  Not in widespread use.  Requires the use of tools.&lt;br /&gt;&lt;br /&gt;6) Buy spare poppies at the start.  No this strategy doesn't technically help you keep your poppy, but it makes it SEEM like you have.  Have one on your sweater for when you're inside, one on your winter coat for when you're outside, and another in your purse or wallet for poppy emergencies.  It is unknown how many people employ this strategy.  Outwardly these persons appear to be poorly employing strategy #3, yet only suffer a fraction of the stress.&lt;br /&gt;&lt;br /&gt;Poppy etiquette is all around us.  It is polite to notify someone that they've lost their poppy, but it can be greeted with great relief or mild scorn.  Example:&lt;br /&gt;  "Person 1: Excuse me!  You've dropped your poppy!"&lt;br /&gt;  "Person 2: Oh Gracious!  Thank you for telling me!"&lt;br /&gt;    --or--&lt;br /&gt;  "Person 1: Excuse me!  You've dropped your poppy!"&lt;br /&gt;  "Person 2: Gah!  Leave it there.  I SAID LEAVE IT THERE!!"&lt;br /&gt;&lt;br /&gt;Seeing someone without a poppy can mean that they've lost a poppy and don't know it already, or maybe they're new and need to be informed of the cultural phenomenon of poppies and Remembrance Day.  Of course it's impolite to ask a stranger why he or she isn't wearing a poppy, so in this case it is advisable to do a Mr Bean imitation, and flaunt your poppy in front of these people.  Bring as much attention as possible to your poppy without saying a word.  Give it a light dusting.  Maybe a fluffing.  Point at somebody else's poppy and smile.  Public transit vehicles are perfect for this kind of display.&lt;br /&gt;&lt;br /&gt;Look with scorn at anyone wearing a real poppy.  They shouldn't get out of the game that easily.  Even if we don't have hockey we still have this.&lt;br /&gt;&lt;br /&gt;Have you seen any other techniques of retaining a poppy through the season?  Tell me about them!  Let's hear your poppy stories!</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:benasselstine:3889</id>
    <link rel="alternate" type="text/html" href="http://benasselstine.livejournal.com/3889.html"/>
    <link rel="self" type="text/xml" href="http://benasselstine.livejournal.com/data/atom/?itemid=3889"/>
    <title>Naming Systems</title>
    <published>2004-10-07T00:15:51Z</published>
    <updated>2004-10-07T00:18:00Z</updated>
    <content type="html">Setting aside the idea that some names are better than others, there are limits on what names are &lt;i&gt;allowed&lt;/i&gt; for a given thing.&lt;br /&gt;&lt;br /&gt;There are names for everything we collectively know of, and every one of those names has traversed a system of naming to be here.&lt;br /&gt;&lt;br /&gt;Most people don't realize that they use a naming system.  Some proud parents would &lt;b&gt;never&lt;/b&gt; name their child "kick me", it's absurd.  It's outside of the category of allowable child names.  An entrepreneur wouldn't name a new restaurant "food, tables, urinals, crappers, etc".  Descriptive yes, but pointless.&lt;br /&gt;&lt;br /&gt;Good programmers relish names and naming.  It's a veritable bonanza, we get to name programs, libraries, functions, variables, classes, members, types, files, menus, forms, objects, labels, everything.  With so many things to name there is no doubt that programming is a creative process.  It's like a work of fiction, nevermind that there's a plot, themes and subtexts -- but just coming up with all of the names for people and places is an intensely creative experience.&lt;br /&gt;&lt;br /&gt;Bad programmers on the other hand, don't care about naming and have functions named "do_it_now()".  Oh the humanity!  Clearly they've exceeded a natural limit, and they need to be stopped.  We need a law to change their names to "kick me".  They can keep their surnames.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:benasselstine:3697</id>
    <link rel="alternate" type="text/html" href="http://benasselstine.livejournal.com/3697.html"/>
    <link rel="self" type="text/xml" href="http://benasselstine.livejournal.com/data/atom/?itemid=3697"/>
    <title>Driving</title>
    <published>2004-09-04T02:17:18Z</published>
    <updated>2004-09-04T02:17:18Z</updated>
    <content type="html">Ladies and gentleman, I'm pleased to announce that this verb has a new meaning in the common vernacular.  It now means "to operate".&lt;br /&gt;&lt;br /&gt;The person flipping slides in a powerpoint presentation is apparently now "driving".  A person operating a mouse on a computer is now "driving" the mouse.  Keep your ear to the ground for more examples.  I'm guessing that a person sitting in front of the TV with the clicker is also driving, although I haven't heard it said in the wild yet.&lt;br /&gt;&lt;br /&gt;As I don't drive a car, I'm pleased to see that I can now "drive" other things, without having to have a license!&lt;br /&gt;Can you imagine a graduated licensing programme for mouse driving?  I'd pass that test for sure on my first try.  What's next, mouse driving insurance?  What would it cover?  Click and run accidents?  Ouch.&lt;br /&gt;&lt;br /&gt;My apologies for your loss.  This has been a waste of your time.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:benasselstine:3369</id>
    <link rel="alternate" type="text/html" href="http://benasselstine.livejournal.com/3369.html"/>
    <link rel="self" type="text/xml" href="http://benasselstine.livejournal.com/data/atom/?itemid=3369"/>
    <title>The olympics and flags</title>
    <published>2004-08-29T02:39:35Z</published>
    <updated>2004-08-29T02:39:35Z</updated>
    <content type="html">Flags are hugely important at the olympics.  They serve many roles:&lt;br /&gt;  they go up the flagpole during the medal ceremony,&lt;br /&gt;  crowds wave them in support of athletes,&lt;br /&gt;  and the athletes wave them when they win.&lt;br /&gt;&lt;br /&gt;You've Won, Get Out Your Flag&lt;br /&gt;&lt;br /&gt;When the American men won the 4x400 relay by a wide margin, 4 brand new and crisp flags appeared &lt;i&gt;very&lt;/i&gt; quickly from someplace closeby.  So quickly that they could only have been brought by the athletes for the purpose of post-race celebration.  These boy scouts were prepared.&lt;br /&gt;Is it disingenuous?  Surely there's nothing wrong with celebrating.  They worked too hard for this moment to be stuck without a flag when it's their day in the sun.&lt;br /&gt;&lt;br /&gt;Flag draping at the moment of victory is conspicuously absent from other olympic sports.  Like equestrian.  (Does the horse get a medal?)  Like rowing sports. (Maybe the cox should bring one?)  Like diving.  One Chinese diver was so far ahead that he could have dove with a flag and still won gold.&lt;br /&gt;&lt;br /&gt;Drape It Right&lt;br /&gt;&lt;br /&gt;Some flags are the same backwards as forwards.   Some are the same upside down, like the Japanese flag.  Yet another sign of Japanese ingenuity.&lt;br /&gt;But some aren't, and this raises some issues.&lt;br /&gt;&lt;br /&gt;First of all, make sure it's right side up.  Yeesh.&lt;br /&gt;But now what?  Who are you wearing the flag for?  If it's for the thousands of people in the stadium, then you drape it like a cape -- with the flag facing outwards from your back.  If it's for the photographers and the millions of people in TV-land, you wear it so the flag appears as a backdrop behind you -- facing the camera that's in your face.  The bottom line is that you can't win in your moment of winning.  Maybe they should make special 2-sided flags that are always left-to-right for the vanity-conscious athlete, who wants his day in the sun to go perfectly.  You've heard of a wedding-coordinator?  Well how about a winning-coordinator!  Why take chances.&lt;br /&gt;&lt;br /&gt;About the author:&lt;br /&gt;Lobbying to be Canada's first olympic winning-coorindator.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:benasselstine:3270</id>
    <link rel="alternate" type="text/html" href="http://benasselstine.livejournal.com/3270.html"/>
    <link rel="self" type="text/xml" href="http://benasselstine.livejournal.com/data/atom/?itemid=3270"/>
    <title>10 pizza toppings you'll never see</title>
    <published>2004-08-25T23:49:38Z</published>
    <updated>2004-08-25T23:49:38Z</updated>
    <content type="html">10. coffee beans&lt;br /&gt;9. black eyed peas&lt;br /&gt;8. turnip&lt;br /&gt;7. sushi&lt;br /&gt;6. mustard&lt;br /&gt;5. granola&lt;br /&gt;4. mayonaise&lt;br /&gt;3. watermelon&lt;br /&gt;2. a 20 dollar bill&lt;br /&gt;&lt;br /&gt;and the number one pizza topping you'll never see...&lt;br /&gt;&lt;br /&gt;1. pizza!</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:benasselstine:2847</id>
    <link rel="alternate" type="text/html" href="http://benasselstine.livejournal.com/2847.html"/>
    <link rel="self" type="text/xml" href="http://benasselstine.livejournal.com/data/atom/?itemid=2847"/>
    <title>Good Radio At A Loss</title>
    <published>2004-08-13T00:55:46Z</published>
    <updated>2004-08-13T00:55:46Z</updated>
    <content type="html">Radio Stations Suck.  Too much talk and advertisements, not enough music.&lt;br /&gt;&lt;br /&gt;The Solution:&lt;br /&gt;&lt;br /&gt;Take a cable music station like Galaxy and pump it over the airwaves.&lt;br /&gt;No production.  No commericals.  No Deejays.&lt;br /&gt;&lt;br /&gt;Run the radio station at a loss -- the radio license, equipment, royalties, and electricity cost something.  The Galaxy folks could possibly fund it, because people can hear a low quality version of their cable product -- which is advertising.&lt;br /&gt;&lt;br /&gt;It's not a way to make money, but it's a way to get loyal radio listeners.&lt;br /&gt;&lt;br /&gt;How much of a loss would the radio station run at?  How few people are really required to run a station like this?  Who knows.  Many of these kind of radio stations could be co-located to save money.&lt;br /&gt;&lt;br /&gt;If anybody out there crunches the number on this... let me know what you come up with.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:benasselstine:2780</id>
    <link rel="alternate" type="text/html" href="http://benasselstine.livejournal.com/2780.html"/>
    <link rel="self" type="text/xml" href="http://benasselstine.livejournal.com/data/atom/?itemid=2780"/>
    <title>Switchboarding</title>
    <published>2004-08-04T20:19:55Z</published>
    <updated>2005-05-31T23:21:37Z</updated>
    <content type="html">A Switchboard is a common place that people can contact, to receive a service.  Combine some recent events in my life with this, and add in some leftist thinking and you get two new ideas:&lt;br /&gt;  A Taxi Switchboard.&lt;br /&gt;  A Real Estate Appraiser Switchboard.&lt;br /&gt;&lt;br /&gt;A Taxi Switchboard.&lt;br /&gt;In Ottawa, they're already unionized, so why do I have to remember a company's phone number?  (Incidentally I always call 239-1111 for Blue Line, instead of 238-1111.  That poor poor person.)&lt;br /&gt;Why oh why should I wait for a single taxi company to have a car become free?  I want to put in a request to ANY taxi company, and get the first available car QUICKLY.&lt;br /&gt;A Switchboard lets this happen.  When a company is too busy to receive more customers, another company gets the run-off.  Obviously the big taxi companies benefit more because they have more cars.  The smaller companies get the bonus of being known by a single well-known phone number.  But I'm happy because I get a cab sooner.  It's worth noting that I'm being robbed of my time while I wait for a cab, and that I demand to wait less.  This switchboard idea gives me a cab in the quickest time.&lt;br /&gt;&lt;br /&gt;A Real Estate Appraisal Switchboard&lt;br /&gt;&lt;br /&gt;Imagine two people paying for the same appraisal on the same darn property.  Is the apprasial company obliged to tell you that they've already done an appraisal for the site in question?  No.  Why shouldn't the second appraisal be worth the same amount as the first appraisal right?  Alright children, that's called highway robbery.&lt;br /&gt;A Real Estate Appraisal Switchboard keeps all appraisals done by CRAs, for some number of years... say 5 years.  Any person can see previous apprasials on any property for a fee -- a fee LESS than what it takes to produce a frickin' report.  Why the heck not!  Banks are the recipients of these things, and they're already regulated to the nines.... so give 'em up starting now, and watch your property-buying citizens spend their money on more important things.&lt;br /&gt;&lt;br /&gt;Can you think of another switchboard for another industry?  Does this centralist thinking make you angry?  Does it make you want to shake some right-wing sense into me?  Why would I want to stand in the way of free enterprise??&lt;br /&gt;&lt;br /&gt;Because I wait too long for taxies that's why.  And Real Estate Appraisers are theives.&lt;br /&gt;Don't even get me started on Meat Packers.&lt;br /&gt;&lt;br /&gt;Update:&lt;br /&gt;I found out today that most of the taxi companies use the SAME dispatch service, yet they don't put all of the requests into the same pool.  Unbelieveable.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:benasselstine:2442</id>
    <link rel="alternate" type="text/html" href="http://benasselstine.livejournal.com/2442.html"/>
    <link rel="self" type="text/xml" href="http://benasselstine.livejournal.com/data/atom/?itemid=2442"/>
    <title>waterproof TVs</title>
    <published>2004-07-15T00:11:03Z</published>
    <updated>2004-07-15T00:11:03Z</updated>
    <content type="html">The world needs more waterproof televisions.  Given the amount of water on the planet, it's amazing that the majority our electronics are NOT water-friendly.  And when our electronics happen to be water-friendly, we pay dearly for them.  Even the tiniest bit of water will ruin extremely expensive electronics, yet we do nothing to protect against this possibility.  Usually a manual for a water-intolerant product will caution against the dire consequences of the product coming into contact with water.  Is this enough?  Not by half.  Not by three-quarters!  We demand better engineering.  We demand electronics that can properly coexist in a world with water.&lt;br /&gt;&lt;br /&gt;  Some products, like larger televisions are impossible to get in a water-resistant model, let alone water-proof.  If it were available, it would probably be only available in bright yellow.  Oh joy.  Waterproof or water-resistance in televisions and electronics shouldn't be a special case warranting the use of a special colour and a special price, it should be the normal case.&lt;br /&gt;&lt;br /&gt;  How many TVs have succumbed to water damage?  How many millions of dollars have insurance companies paid out to replace TVs that should have been waterproof in the first place?  Hundreds of millions of dollars.  By raising the bar on water tolerance in electronics, our insurance premiums will go down -- the cost of which we'll all pay in higher electronics prices -- until the waterproof components are sufficiently mass-produced and then prices will fall back down to comparable levels.&lt;br /&gt;&lt;br /&gt;  Once we have waterproof TVs and other waterproof electronics, the world will be a better place.  Rain through a carelessly open window will not wreck a DVD player.  A beverage spilled over an AM/FM clock-radio will no longer be cause for alarm.  A toaster thrown into a bathtub, will only make things more toasty -- not deadly.  Stereos with speakers will be perfectly okay to have in the shower, or outside, or attached to flotations devices in the lake at the cottage.  And televisions, yes our beloved TVs will be able to withstand the minor amounts of water that inevitably occur in the normal swing of daily life.  And the world will be a better place.&lt;br /&gt;&lt;br /&gt;About the author:&lt;br /&gt;  The author is the owner of a brand new 36-inch TV that's not waterproof.  He lost his last TV to water damage -- by over-watering a favourite plant that used to live (until recently), on top of his TV.  It should also be said that the author finds swimming rather difficult, and is himself not very water-friendly.</content>
  </entry>
</feed>
