<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title><![CDATA[Taskboy]]></title>
  <link href="https://www.taskboy.com//atom.xml" rel="self" />
  <link href="https://www.taskboy.com/" />
  <updated>2026-06-07T17:50:22Z</updated>
  <id>https://www.taskboy.com/</id>
  <author>
    <name><![CDATA[Joe Johnston]]></name>
    <email><![CDATA[jjohn@taskboy.com]]></email>
  </author>

  <entry>
    <title type="html"><![CDATA[So, notes are the main thing now]]></title>
    <link href="https://www.taskboy.com/2026y05m31d_23h55m06s-so-notes-are-the-main-thing-now.html"/>
    <published>2026-05-31T23:55:06Z</published>
    <updated>2026-05-31T23:55:06Z</updated>
    <id>https://www.taskboy.com/2026y05m31d_23h55m06s-so-notes-are-the-main-thing-now.html</id>
    <content type="html"><![CDATA[<p>So I am blogging/microblogging again, but this time I am only publishing to taskboy.com.  I have feeds!  You should use them.  We need to build out
indieweb to get back the Internet that was.  Because that internet was weirder and more enjoyable.</p>

<p>Mostly, I needed to update my notes feed.  You can find that feed under 'feeds' in the navbar. Mostly, I will talk about my music.  If you are here for
perl stuff, believe it or not, I am still making bank on my perl skills. It continues to be my favorite language (thanks to Moo and Mojolicious).</p>

<p>The point is, if you still follow me (and I am not sure that you should), the notes roll is going to be the thing to follow.</p>

<p>BTW, I still use that wordle hack I posted a while ago. It helps.</p>

<p>Cheers!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The Harbinger of Mood]]></title>
    <link href="https://www.taskboy.com/2023y11m10d_13h54m34s-the-harbinger-of-mood.html"/>
    <published>2023-11-10T14:01:50Z</published>
    <updated>2023-11-10T14:01:50Z</updated>
    <id>https://www.taskboy.com/2023y11m10d_13h54m34s-the-harbinger-of-mood.html</id>
    <content type="html"><![CDATA[<p>My first Bandcamp EP is call <a href="https://taskboymusic.bandcamp.com/album/harbinger-of-mood">The
Harbinger of Mood</a> and is available now.  This album was recorded
over the summer of 2023 using many of the synthesizers I obtained in
2022.  The four tracks have a distinctly synthwave flavor to them, but
without over nostaglia.</p>

<p>Five original pieces of art were commissioned for this album from the
talented <a href="https://kvacm.artstation.com/">Michal Kv&aacute;&ccaron;</a>.</p>

<p>The great thing about Bandcamp is you can listen to the tracks before
you purchase them.  When you are ready to join my cult, I mean, fan
club, consider <a href="https://my-store-efd6a2.creator-spring.com/">purchasing a
t-shirt</a> featuring Michal's artwork.</p>

<p>If you enjoy the EP, please drop me a note.</p>

<p>Cheers.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Wordle Solver revisited]]></title>
    <link href="https://www.taskboy.com/2022y02m11d_14h54m54s-wordle-solver-revisited.html"/>
    <published>2022-02-11T15:01:31Z</published>
    <updated>2022-02-11T15:01:31Z</updated>
    <id>https://www.taskboy.com/2022y02m11d_14h54m54s-wordle-solver-revisited.html</id>
    <content type="html"><![CDATA[<p>A few rounds of testing suggested that adding a "required" list of
letters would be helpful.  These are letters for which the position is
unknown, but Wordle has identified as correct.</p>

<p>The usage pattern is:</p>

<p><code>wordle-solver.pl â¦er wat ulc
</code></p>

<p>Also, the world list gets additional prefiltering.  No words with
capitals or apostrophes are considered.</p>

<p><code>#!/usr/bin/env perl
use strict;
use warnings;

sub main {
    my ($pattern, $exclude, $required) = @ARGV;

    if (!$pattern) {
        die("$0 [PATTERN] [EXCLUDE] [REQUIRED]");
    }

    if (length($pattern) != 5) {
        die("Pattern must be 5 characters\n");
    }

    $exclude //= "";
    $required //= "";
    my @required;
    if ($required) {
        @required = split //, $required;
    }

    open my $wordsFH, "&lt;", "/usr/share/dict/words" or die("words: $!");

  NEXT_WORD:
    while (my $word = readline($wordsFH)) {
        chomp ($word);
        next NEXT_WORD if length($word) != 5;
        next NEXT_WORD if $word =~ /['A-Z]/;

        if ($word =~ /^$pattern$/i) {
            for my $r (@required) {
                if ($word !~ /$r/) {
                    next NEXT_WORD;
                }
            }

            if ($exclude) {
                if ($word =~ /[$exclude]/) {
                    next NEXT_WORD;
                }
            }

            print "$word\n";
        }
    }
    close $wordsFH;
}

main();
</code></p>

<p>I am thinking about making this functionality available through a web
app.  Drop me a note if you think this is a good idea.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Solving Wordle with Perl]]></title>
    <link href="https://www.taskboy.com/2022y02m08d_21h34m31s-solving-wordle-with-perl.html"/>
    <published>2022-02-08T21:41:33Z</published>
    <updated>2022-02-08T21:41:33Z</updated>
    <id>https://www.taskboy.com/2022y02m08d_21h34m31s-solving-wordle-with-perl.html</id>
    <content type="html"><![CDATA[<p>Wordle, love it or hate it, has grabbed the popular imagination for
many.  It is a solo puzzle game that is like Mastermind, but with
words and you have but six tries to figure out the 5 word puzzle.</p>

<p>Of course, this is a task for Perl</p>

<p><code>#!/usr/bin/env perl
use strict;
use warnings;

sub main {
    my ($pattern, $exclude) = @ARGV;

    if (!$pattern) {
        die("$0 [PATTERN] [EXCLUDE]");
    }
    $exclude //= "";

    open my $wordsFH, "&lt;", "/usr/share/dict/words" or die("words: $!");
    while (my $word = readline($wordsFH)) {
        chomp ($word);
        next if length($word) != 5;
        if ($word =~ /^$pattern$/i) {
            if ($exclude) {
                if ($word =~ /[$exclude]/) {
                    next;
                }
            }
            print "$word\n";
        }
    }
    close $wordsFH;
}

main();
</code></p>

<p>Give it a regex pattern to match like 'gr.at' and an optional list of
letters you know are not in the solution to get back the list of
possible words that fit the pattern.</p>

<p>No, I didn't take the fun out of this game â you did.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Jon Stewart has left the building]]></title>
    <link href="https://www.taskboy.com/2021y06m16d_14h29m43s-jon-stewart-has-left-the-building.html"/>
    <published>2021-06-16T14:36:27Z</published>
    <updated>2021-06-16T14:36:27Z</updated>
    <id>https://www.taskboy.com/2021y06m16d_14h29m43s-jon-stewart-has-left-the-building.html</id>
    <content type="html"><![CDATA[<p><img src="https://www.taskboy.com/img/jon-stewart-fist.jpg" alt="Jon Stewart" id="jonstewart"></p>

<p>Jon Stewart <a href="https://www.nytimes.com/2021/06/15/arts/television/colbert-jon-stewart.html">appeared to be backing</a> the <a href="https://www.wsws.org/en/articles/2021/06/07/wade-j07.html">racist</a>, debunked <a href="https://www.nytimes.com/2021/05/27/briefing/lab-leak-theory-covid-origins.html">idea</a> that COVID-19 was made in a Wuhan science lab on the very first Late Show filmed in front of a full audience in more than 400 days.</p>

<p>On the one hand, this is just a drop in the ocean that is "people being wrong in public" problem that is the scourge of our Information Economy times.  Further, to speak unpopular or even wrong ideas is (in the U.S.) a fiercely protected right.  Lastly, history has shown us enumerable examples of smart people holding odious beliefs.  Humans are complicated, yet we seem to pretend that they are not.</p>

<p>If you believe that the Chinese government manufactured COVID-19, there is little I can do change your mind.  But, <a href="https://www.youtube.com/watch?v=JremDNZLALY">here is Rebecca Watson</a> speaking about this very topic and why the consensus of virologists who have studied this pathogen do not see evidence of human manufacture.</p>

<p>I am old enough to know this will change almost no one's belief on this, but it is there for those with an open mind.</p>

<p>But this particular person espousing this particular conspiracy theory is disquieting.  Stewart was, during the Bush years, a fact-checking juggernaut.  Sure, he had a research staff then and yes, I was happy to hear neo-conservative propaganda trashed.  But it seemed then and seems even now that Stewart is a pro-little-guy and pro-truth crusader.  His decades-long work for getting benefits for 9-11 first responders is a testament to this.</p>

<p>Now, take that guy off the air, fire the fact-checking team and stick him on a farm for several years and you have a very ordinary rich guy free to consume media that feeds his preconceptions, just like Mike the MyPillow guy or Elon Musk or the former president.  Then recall that, like all public figures, Stewart likes an audience and that "hot-takes" are the currency of the same, should we be that surprised to see him digging in on a controversial position?</p>

<p>I hope that Stewart's performance was a Kaufman-esque stunt.  That Stewart wanted to point out the criticality of media literacy in a world where  <a href="https://www.theguardian.com/commentisfree/2019/oct/23/exxon-climate-change-fossil-fuels-disinformation">monied interests</a> lie to the <a href="https://www.who.int/tobacco/media/en/TobaccoExplained.pdf">public</a>.  But I am not holding out a lot of hope for this outcome.</p>

<p>Much is made on the political Right of how the Left is turning into Thought Police who mandate a party line (which is an irony so rich I trust I need not point it out).  As Stewart gets called out for supporting a debunked idea promulgated mostly by zealot supporters of the former president, it is important to remember the challenge of epistemology.  How do we know what we know?  We all have to defer to the considered, professional opinions of those technocrats who study the subjects that we do not.  Do these experts get it wrong sometimes?  They do, but at a much lower frequency than non-experts do.  If not, then there is no reason to have experts at all.  An expert opinion can be and should be challenged <strong>in good faith</strong>.  But most of the time, the experts are closer to the truth than anyone else.  Reality is not obliged to agree with our preconceptions or crazy ideas.</p>

<p>Still, this example of a dude being wrong in public hurts.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Escape Rooms At Home: A Personal Journey]]></title>
    <link href="https://www.taskboy.com/2021y02m15d_16h05m34s-escape-rooms-at-home-a-personal-journey.html"/>
    <published>2021-02-15T16:05:34Z</published>
    <updated>2021-02-15T16:05:34Z</updated>
    <id>https://www.taskboy.com/2021y02m15d_16h05m34s-escape-rooms-at-home-a-personal-journey.html</id>
    <content type="html"><![CDATA[<p><img src="https://www.taskboy.com/img/escape_room_roundup.png" alt="Escape Room Roundup" id="escaperoomroundup"></p>

<p>Even before the COVID-19 lockdown, my family and I enjoyed doing escape rooms.  We are lucky enough to be a place with easy access to commercial escape rooms like <a href="https://www.escapology.com/">Escapology Live Escape Games - Worldwide Escape Rooms</a>, plus a few other smaller ones.  However, we are not master puzzle breakers.  Our track record for solving the puzzles is rather low.  Still, the experience of doing escape rooms is so enjoyable for all involved the a string of loses, though galling, is not a deal-breaker.</p>

<p>We are a natural market for "board game" versions of escape rooms and we have going through at least three of the following titles: <a href="https://www.boardgamehalv.com/complete-list-of-exit-the-game-series-escape-room-games/">Exit: The Game</a>, <a href="https://www.boardgamehalv.com/complete-list-of-unlock-the-game-series/">Unlock!</a>, and <a href="https://deckscape.dvgiochi.com/?lang=eng">Deckscape</a>.  In this post, I would like to offer my impressions of each system and its suitability to casual family gaming.</p>

<p>I will forego any pseudo-scientific rating system, but instead lay bare my biases.  Each system has been judged by my experience playing the game with three people, one of which is a pre-teen.   How well each delivered a memorable and pleasant gaming experience is my primary criterion.</p>

<p>One last note: my family does not play with timers.  These introduce FAR TOO MUCH drama into a process that is sufficiently fraught for the players.  If you too are looking for casual fun, do discard any timing device.  The game ends when the last puzzle is solved or your players are uninterested in continuing.</p>

<h2 id="deckscape">DECKSCAPE</h2>

<p>Deckscape, as the name suggests, is merely a deck a cards!  Puzzles are both visually based (meaning you have to find hidden figures in cards), and logic based.  No additional device is needed. </p>

<p>By far, this is the best series for casual escape room fun.  No, these games will not impress you hard-core gamer friends, but they are all replayable and the stakes never feel too high.  Aside from logic and math, you rarely need any outside knowledge to complete the puzzles.  I only wish there were more of these!</p>

<p>The only drawback to this system is the lack of an in-game hint system.  However, I don't find these puzzles rarely necessitate them.</p>

<p>Great starter titles from this series:  Test Time and The Fate of London.</p>

<h2 id="unlock">UNLOCK!</h2>

<p>These games require a tablet or mobile device to play.   It is possible to disable the timer for most of these games, although a few specific titles do have timed events (like Tombstone Express and The Nautilus' Traps), and I do not recommend those specifically. </p>

<p>My family has had the best luck with this series.  There are many titles to choose from, with a variety of fantasy settings that should appeal to many.   Some real-world knowledge (especially for the Arabian Nights themed title) are very helpful for solving the puzzles.  This is not typically the case.</p>

<p>The app has a hint system, which works well.  Some of the "figure out the weird device" type puzzles are less interesting to me, but I know these appeal to some (as this kind of thing is all over Interactive Fiction games).</p>

<p>Great starter titles from this series: The House on the Hill and The Formula.</p>

<h2 id="exit">EXIT</h2>

<p>The Exit series has the most of titles of any of the offerings mentioned in this post.  Each title has self-contained game that is card-based with additional custom "feelies" and make this series extremely popular.  The system consists a riddle deck, a solutions deck, and a hints deck.  There are 10 puzzles per game.  Puzzles are visual, logical, spatial, and may require some crafting skills, like precision cutting and measuring.   By far, this series has the most creative puzzles and the most unique puzzle solving experiences.  Why is this not my favorite series? </p>

<p>Although we have done 3-4 of titles in Exit, we have never completed any title.  We <strong>always</strong> quit before the end.   Frequently, we get dead-ended in the game, where is it unclear what the puzzle is.   In the last on we did, we got to a point where we need a "hidden feelies" to solve the puzzle, but we were never told by the game to obtain that.   We just took the the thing anyway and moved on.</p>

<p>Many of the puzzles require more careful crafting of cards or feelies items than my family (or me) is interested in doing.   I'm not terrible with rotating objects in my head, but I am terrible at crafting in general and worse doing so under pressure.  When you are a parent, you cannot give any one task 100% of your attention, but the Exit series, which often has a lot of "game state" to manage requires this.</p>

<p>One last point, the production values of Exit games are very high.  Each title is gorgeous.  Although I find some of the puzzles rather opaque, I am inclined not to blame the game designers but my own limitations for this.  I wish I could enjoy this series more.</p>

<p>Great starter titles from this series: The Abandoned Cabin.  If you do not like this one, do not bother with the rest of the series.</p>

<h2 id="honorablemention:journal29">Honorable Mention: Journal29</h2>

<p>One last entry that I recommend as an excellent family activity is <a href="https://www.journal29.com/">Journal 29</a>, which is a book-based "escape room" or series of puzzles.  The fiction of this is that a group of researchers working on a secret project have disappeared, leaving behind one last journal filled with clues to suggest the nature of their work and the reason for their disappearance.  This will be very familiar to X-Files fans.</p>

<p>You do need an internet-enabled device to solve the puzzles, some of which require GPS look-ups, or special media files from journal29.   Most of the puzzles are visual and logic based.   Some may require light googling.</p>

<p>On the other hand, I found these puzzles incredibly approachable (4 out of some 60 utterly stumped me).  Doing this puzzles with your family over the course of several sessions is very enjoyable. </p>

<p>I hope this helps you find the right escape room experience for your family.    These games are a great way to keep your brain engaged while providing a  unique (mostly non-digital) shared experience.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Improving the User Interface of Everyday Things]]></title>
    <link href="https://www.taskboy.com/2021y02m05d_14h19m19s-improving-the-user-interface-of-everyday-things.html"/>
    <published>2021-02-05T14:19:19Z</published>
    <updated>2021-02-05T14:19:19Z</updated>
    <id>https://www.taskboy.com/2021y02m05d_14h19m19s-improving-the-user-interface-of-everyday-things.html</id>
    <content type="html"><![CDATA[<p>Because I design and implement web applications, the issue of how people discover existing features in them and how easily they can accomplish their tasks is a daily concern.  The most important rule of iterative interactive design  is to <strong>believe user complaints</strong>.  This may seem so obvious as to go without calling it out, but it should be the mantra of all app designers.  It is not.</p>

<p>I will quickly confess that I do not hold my user experience or design skills in the highest regard.  But I have learned enough to know how grievous many of my earlier designs are and how hard it is to produce "invisible design."</p>

<p>Given this professional concern, you can imagine that when I run into badly designed user interfaces outside of my job that it rather sends me around the bend.</p>

<p>Let's talk toasters and stoves.</p>

<p>I have a lovely toaster.  Here is a close up of the controls on it:</p>

<p><img src="https://www.taskboy.com/img/toaster-before.jpg" alt="My toaster controls are confusing without glasses" id="mytoastercontrolsareconfusingwithoutglasses"></p>

<p>Aesthetically, it is a handsome bit of sculpture.  It's got that retro, Art Nouveau style that an aging, mid-century man like me enjoys.  However, I have old man eyes.  In the morning, when I am most likely to use the toaster, my eyes are particularly useless.  </p>

<p>Given that, let's look at temperature controls on this unit.  There are two dial controls.  Dials are a fine way to translate heat intensity to a physical motion.  However, look carefully at the position indicator on the dial.  Do you see it?  I suspect most of you can when you are looking this photo, but please note that small black dot is easily lost in the glare of the "chrome" bits of the design.  Under lower light conditions (such as those common found in the morning when 100% of my breakfasts occur), it is possible to carelessly misidentify this indicator so that the control is set 180 degrees further into the "dark toast" settings that I want. </p>

<p>Hold that thought because I have another kitchen application with similar controls that presents similar problems.</p>

<p>Here are the controls for two burners on my stove top:</p>

<p><img src="https://www.taskboy.com/img/stovetop-before.jpg" alt="My stove is trying to kill me" id="mystoveistryingtokillme"></p>

<p>Again, the aesthetics of this stove is pleasing to me.  It too has a mid-century modern appearance with stainless steel bits.  The dial controls are arranged intuitively enough for me.  Unlike the toaster, the stove designers made the dial indicator a line rather than a dot.</p>

<p>Since it is a gas stove, the 11 o'clock position causes a spark that sets the gas on fire.  As you rotate the dial anti-clockwise past that the burner attenuates from full gas flow to its lowest setting (which is around 3 o'clock).  A good amount of the time, I am cooking things with this dial at the 6 o'clock position.</p>

<p>When you are paying attention, these stove controls are great and easy to use.  The trouble comes at the end of dinner prep when you are transition from cook to waiter.  At least for me, my attention shifts away from cooking concerns after I dump the food into a service container.  I am hungry and prefer my food eaten hot.  Many is the time I forget, in my rush to eat, to turn off the burner, especially when the dial is in the 3 o'clock or 6 o'clock position.</p>

<p>When a burner is set to simmer there is hardly any flame visible.  When the dial is at 6 o'clock the <strong>indicator appears similar to the off position</strong>.</p>

<p>Either way from my table, I cannot see the flames of the burner and the dials do not stand out.</p>

<p>For a long time I thought there was little to be done to help me with these problems.  However, my wife is currently taking a design course.  After discussing some of the challenges she was working through, it got me thinking again about my appliance UX problem.  What is the core problem with the toast and stovetop controls?   I submit that these controls do not offer clear enough indicators of their current state when viewed from normal, but sub-optimal positions.</p>

<p>Taking a page out of early rocket design, it occurred to me that painting one hemisphere of the dial control would be enormously helpful.  Observe:</p>

<p><img src="https://www.taskboy.com/img/toaster-after.jpg" alt="Never burn your toast again, sleepyhead" id="neverburnyourtoastagainsleepyhead"> </p>

<p>And also:</p>

<p><img src="https://www.taskboy.com/img/stovetop-after.jpg" alt="I dare you to ignore this indicator" id="idareyoutoignorethisindicator"></p>

<p>Now, before I get cancelled, let me assure you that this is a design <strong>idea</strong>.  I am not literally going to take a highlighter and color these dials.  Such a solution would cause "domestic inquietude".   However, the principal of making the two hemispheres of the dial visually distinct has been used in <a href="https://www.hongkiat.com/blog/beautiful-volume-dials-knobs/">other places</a> to great success.  In the future, I hope appliance designers consider how their controls present in less than perfect conditions.</p>

<p>The title of this post is a nod to the very excellent book <strong>The Design of Everyday Things</strong> by Don Normal.  If this post tickled your fancy, read what a UX pro has to say about our designed world.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Runnel is my MP3 app I built in 2020 despite not wanting to]]></title>
    <link href="https://www.taskboy.com/2021y02m04d_14h00m24s-runnel-is-my-mp3-app-i-built-in-2020-despite-not-wanting-to.html"/>
    <published>2021-02-04T14:00:24Z</published>
    <updated>2021-02-04T14:00:24Z</updated>
    <id>https://www.taskboy.com/2021y02m04d_14h00m24s-runnel-is-my-mp3-app-i-built-in-2020-despite-not-wanting-to.html</id>
    <content type="html"><![CDATA[<p><a href="https://github.com/taskboy3000/runnel">Runnel</a> is my answer to an increasingly broken Internet.  It's a program I did not want to write, that I tried not to write, but finally had to.  The result is a hacked together, light-weight web app that reads the directory in which you keep your MP3s, extracts <a href="https://en.wikipedia.org/wiki/ID3">ID3</a> tags from each mp3 file, and presents a  sorted list to the user, who may add songs to ONE, GLOBAL PLAYLIST for listening. </p>

<p>No persistent databases.  No user accounts.  No connection to outside services that may close up shop in the future.   Runnel never modifies your mp3 collection at all.  It never writes files outside of its own directory.  It never "phones home" to tell me what people using my app are doing with it.  It is just a single-threaded Mojolicious server that uses Bootstrap for styling, a small table sorting library (which I might replace), and small bits of playlist list code that manages a single <a href="https://developer.mozilla.org/en-US/docs/Web/API/MediaStream">MediaStream</a> object.  It works on desktop and modern mobile devices (sorry, Apple Newton users).</p>

<p>Like all new programs, Runnel has bugs.  When they bother me enough, I fix them.  I use Runnel every day to play music from my iPad or iPhone to bluetooth speakers around my house.  Could the interface be better? Yup.  Could it have a lot more features? Uh huh!  Am I going to waste time adding those?  Heck to the No.</p>

<p>While the tech that went into Runnel might be interesting to some (it's mostly vanilla JavaScript with modules), what this post is about is why I had to write what should have already exist in better forms somewhere on the Internet.  Actually, due to discoverability problems in general (thanks to search engine dependence on sponsored ads), there may well be dozens of projects like this.  But let this rant start with the large scale issues before raking any particular actor over the coals.</p>

<p>I started using the Internet fairly late among my peers.  The first computer I bought with a <a href="https://en.wikipedia.org/wiki/Modem">modem</a> was in 1993 or 1994 and with it, I taught myself to program in C.  Back then, I also discovered <a href="https://en.wikipedia.org/wiki/Bulletin_board_system">Bulletin Board Systems</a>, on which I played online DOOR games like Legend of the Red Dragon and found mountains of UFO conspiracy text files.  I was living the 2020 pandemic lifestyle 30 years before y'all.</p>

<p>It may not be believed by younger readers of this blog (who themselves are only conjectured to exist), but simple mp3 files were A Big Deal.  Until this time, high quality stereo music files only existed (for the most part) as uncompressed audio files (WAV, AIFF, etc.).  A five minute song might produce a file 20 Megabytes (MB) in size.  To translate that into an equivalent modern file size, that's something like 20 Gigabytes (GB) for each song.  Audio CDs hold about 640 MB and contained around twelve songs without much room to spare.  So exciting a technological breakthrough were mp3 files that people started "ripping" their audio CDs and sharing the resulting mp3 files.  This idea literately became the core business idea for one of the early Dotcom companies called <a href="https://en.wikipedia.org/wiki/Napster">Napster</a>. </p>

<p>I can imagine that if you had not heard this story before, it may strike you a pretty thin concept for a company, but please be assured that Napster was so big a deal that the entire recording industry lined up against them.</p>

<p>My point is that sharing mp3 was a <a href="https://me.me/i/when-you-pirate-mp3s-youre-downloading-communism-a-reminder-from-22810746">very popular use</a> of the Internet in the late nineties and early 2000s.  Because of this there were many proprietary and open source programs designed for streaming large collections of mp3 files.  I recall running a few of them back in the day.</p>

<p>Due to massive improvement in web technology and internet connectivity, tech companies started moving away from producing downloadable software and instead created web-based applications.  Why give your grubby customers your precious code when you could just sell access to it? These companies were collectively called the "Web 2.0" and it is where things on the Internet took a bad turn.</p>

<p>In 2021, we find ourselves largely dependent on cloud based services (which is largely rebranded Web 2.0, but metastasized) that publish our microblogs, our spreadsheets, our photos, our music collections, and even our health as measured (questionably) by consumer electronics.</p>

<p>I am no luddite, but our relationship to tech has in my lifetime gone from being one where people were owners of software to one where the selling of people's personal data as obtained from nearly all uses of softwares drives a huge swath of the world economy.   The richest American, Jeff Bezos, is not worth $200 billion because he sells books.  Google is not one of the largest tech companies because they help you find recipes for chicken tikka masala.  Facebook makes no money from keeping you in touch with your family.  In each instance, these companies use your data for profit (either to drive their own advertising or to sell to third party advertisers).</p>

<p>OK.  We are not likely to fix this trend with a blog post.  But what can we do?</p>

<p>As consumers, we can roll the clocks back a few decades to were we run at least some of our own software.  Learn to code or find code on github that meets your personal needs.  Rent a virtual machine on <a href="https://www.linode.com/">linode</a> or host your web site off a raspberry pi at home from your always connected internet access point.  None of these solutions are as convenient as those cloud based solutions, but when enough people have the same problem, someone starts working on a solution.  That's the Internet I remember and it was a far healthier place for it.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[A Sojourn into Christian History]]></title>
    <link href="https://www.taskboy.com/2020y12m31d_15h42m09s-a-sojourn-into-christian-history.html"/>
    <published>2020-12-31T15:42:09Z</published>
    <updated>2020-12-31T15:42:09Z</updated>
    <id>https://www.taskboy.com/2020y12m31d_15h42m09s-a-sojourn-into-christian-history.html</id>
    <content type="html"><![CDATA[<p>When you are lost in the wilderness, most survival guides will tell you to find an elevated position (like a hill or mountain) from which to survey your location.  Often getting above the overwhelming details of your surroundings will help you find recognizable landmarks so that you will no longer be lost.  Although I am a computer engineer by training and practice, I have long been a student of history which is the way a mere mortal can rise above his or her temporal context to obtain a wider perspective. </p>

<p>Even though I have been an agnostic atheist since adolescence, I have had many experiences with various flavors of Christianity.  My mother was a believer (although her faith was decidedly not based on a reading of scripture).  I read a lot of C.S. Lewis.  I was baptized around the age of 10, so that it is still a memory I retain.  I attended Boston College where I was taught a version of Western Philosophy that included noted Christian writers like St. Augustine.   All this is to say that whether or not I would have chosen to study Christianity, I have nonetheless been steeping in it for decades.</p>

<p>To be completely candid, I am somewhat hostile towards this faith.  Familiarity breeds contempt, as they say.   What wisdom age has brought me suggests it is not religion that greatly affects people's behavior and attitudes.  People do what they want and justify their actions with whatever fiction is most convenient for them to do so.  However, some truly contemptible behaviors have used the cloak of random Biblical passages as absolution and vindication for actions no religion on Earth sanctions.  How religion conned the world into believing that only a faith could foster ethics and morality is a feat of advertising well worth studying.  History has always been a more reliable (if descriptivist) teacher of human behavior.</p>

<p>A few years ago, I heard an interview Bart Ehrman on Fresh Air.  He was promoting his book /Misquoting Jesus/.  Something about this topic clicked with me.  As I have indicated, I was no stranger to theologians, but few of them were atheists.  The best analogy for Ehrman is that he does for  historical-critical New Testament studies what Carl Sagan did for space science, which is to say Ehrman brings the consensus view of his discipline to a lay audience.  I will admit to being a bit of a fan boy of his (I joined his <a href="https://ehrmanblog.org/">blog</a> twice), which I have never considered doing for technical blogs).  To date, I have read one other Ehrman book, /Jesus Interrupted/, but I expect I will read his Heaven and Hell book at some point.  This fall, I found another NT scholar author I enjoy, Mark Goodacre, whose primer, /The Synoptic Problem: A Way Through the Maze/, was a clarifying treatise on why scholars believe in a lost NT source called Q and why other scholars (rightly, it seems to me) find this hypothesis untenable.</p>

<p>As in all academic fields, there are heterodox views of NT study and youtube is the place to find those in abundance.  One of my favorite speakers on the subject is Robert M. Price (also a Lovecraft scholar).  Price represents the notion that there was no actual historical Jesus and that the cult fabricated him out of similar well-known regional myths.  This idea is called Mythicism and has been soundly rejected by the academic consensus.   </p>

<p>While I find a lot of what Price and his fellow mythicists say attractive, I do not find this line of thinking compelling or productive.  Mythicism is a "just-so" story that fails to account for historical evidence of Jesus found in Biblical and other contemporaneous documents.   Mythicism also fails the "sniff test."  Just looking at the three synoptic gospels (Mark, Matthew, and Luke), all of which were written after Jesus' death by different authors, none of whom actually knew Jesus personally, there are points of agreement about who Jesus was and what he did.   More interestingly, there are incidents in these gospels that no writer trying to make converts would make up.  These "difficult reading" passages include a story about the family of a young Jesus concerned that he was crazy (which would be a totally normal human conclusion a mother would have to a son that starts spouting off apocalyptic, Jewish fundamentalist sermons in the street!).   The historicity of Jesus is a settled question in NT academia.  As a starting point for understanding what the consensus view has to offer, it is more convenient to accept this point than to fruitlessly debate it.</p>

<p>NT studies include trying to reconstruct how an obscure Jewish apocalyptic street preacher from a small rural village in Judea grew into an organization that dominated (and often decided) the lives of millions of people across the globe.  Understanding this process is not an act of faith, but a duty of the intellectually curious.  Regardless of my personal animosity toward the faith, to ignore Christianity's impact is disingenuous.</p>

<p>Of course, there are theological questions that NT studies bumps into.  One of the more curious and fundamental questions occurs fairly early in the readings of the gospels and the letters of Paul (the earliest post-Jesus proselytizer we have records of).  The faith promises some kind of salvation (the exact nature of which is beyond the scope of this post) to those who believe.  What exactly is it that the faithful should believe?  If you look the gospel of Mark (believed to be the earliest gospel), Jesus wants his audience to be more faithful to the <em>Jewish law</em> than the Pharisees.  This is a call to a kind of strict fundamentalism that is no longer a part of mainstream Christianity, yet it is canonically a part of the NT.  Paul argues that the Jewish law should not apply to recent Gentile converts and salvation was based entirely on the belief that Jesus was bodily resurrected by God.  This question of faith does not get settled in the NT, which again is a curious historical oddity.</p>

<p>In case you did not know, the New Testament is a collection of 27 books ("three [like the Trinity] to the third power; it's a miracle" as Ehrman often quips) all written some years after the death of Jesus.  For some of these books, we believe we know who the author was.  The first seven letters of Paul are believed to be written by the apostle Paul, for example.  Other letters attributed to Paul in the NT are not believed by scholars to have been authored by him.   All of the Gospels are anonymously authored.   The names given to them are the work of later compilers.  The gospels were not the first books of Christianity, but work of later first century AD Greek-speaking Christians trying to create a narrative of Jesus from oral traditions and perhaps written sources no longer available to modern scholars.  There is an apocalypse, which was a style of book that contains criticisms of contemporaneous life dressed into mystically language).   We know that the author of this book was named John, but this is not the same John who wrote the gospel.  The rest of the NT consists of letters from the "apostolic fathers" (early church leaders) in which the doctrines of Christianity were being worked out.  That is to say, the letters are the beginning of doctrinal thinking and not completely worked-out policy statements.  Remember this point when someone starts citing Scripture at you to justify their personal biases.</p>

<p>Aside from looking at all the places where NT sources contradict each other (which is a lot of fun), learning about the struggles of the young church has softened my views towards (most) Christians.   </p>

<p>Understanding the context in which the books of the NT were written and why they were written humanizes Christianity.  Christianity becomes an evolving project of centuries guided by human minds trying to understand human suffering, mortality, and how to address both.</p>

<p>Faith that claims to have all the answers remains anathema to me.  Faith that encourages questions is one I can live with.  Ultimately, I remain disinclined towards magical thinking.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[A Pregnant Time]]></title>
    <link href="https://www.taskboy.com/2020y11m11d_13h23m22s-a-pregnant-time.html"/>
    <published>2020-11-11T13:23:22Z</published>
    <updated>2020-11-11T13:23:22Z</updated>
    <id>https://www.taskboy.com/2020y11m11d_13h23m22s-a-pregnant-time.html</id>
    <content type="html"><![CDATA[<p>I write this on Wednesday, November 11, 2020.  The US election has been over a week.  The clear majority of electoral and (the notional) popular vote has gone to the Democratic challenger.  The incumbent, bucking tradition, has yet to concede the election.  There are legitimate recourses to challenge the results of an uncertain election, which are currently being pursued by the incumbent.  These legitimate recourses will fail, because the election was fairly conducted.</p>

<p>Rather than admit defeat, the incumbent appears to be staffing up the Defense Department with loyalists, to what purpose I will not speculate here.   The supporters of the incumbent continue to make wild accusations and carry on as if the results of the election are in doubt.  According to the states that ran them, they (modulo a mandatory recount in George) are not. </p>

<p>Republican senators are "indulging" (their word, not mine) the wild behavior of the president because they also believe he has lost the election.  All have so far declined to publicly condemn the the darker implications of incumbent's legal and administrative maneuvers, much to their shame.</p>

<p>The incumbent's base is angry and being whipped into a froth with tales of a stolen election (which failed to retake the all important Senate).  The Secretary of State has said he is planning for the second term of the incumbent's presidency.</p>

<p>None of this normal, but that does not mean that it will not end with the installment of a new president, which appears to be the mostly likely case.</p>

<p>That half the country appears to so little value the democratic system of government is alarming and lachrymose.  The challenge of the next administration is nothing short of proving the value of our system of government to these people. </p>

<p>My fears are in a civil war with my rational mind.  We are in unknown and novel waters.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Raspberry PI Blicken Lights in Perl]]></title>
    <link href="https://www.taskboy.com/2020y09m11d_20h49m27s-raspberry-pi-blicken-lights-in-perl.html"/>
    <published>2020-09-11T20:49:27Z</published>
    <updated>2020-09-11T20:49:27Z</updated>
    <id>https://www.taskboy.com/2020y09m11d_20h49m27s-raspberry-pi-blicken-lights-in-perl.html</id>
    <content type="html"><![CDATA[<p>This is a silly program that blinks the green and red LEDs lights on
Rasberry Pi 3 models (probably works for RPI 4 too).  It is written in
perl, but frankly, you don't need anything more than shell commands.</p>

<p><code class="perl">#!/usr/bin/env perl

use strict;
use warnings;

# https://www.raspberrypi.org/forums/viewtopic.php?p=136266#p136266

main();

sub main {
    if ( $> != 0 ) {
        die( "Must run as root\n" );
    }

    unset_led0_mode();
    unset_led1_mode();

    for ( 1 .. 3 ) {
        led0_on();
        print STDOUT "on\n";
        led1_off();
        sleep 1;
        led0_off();
        led1_on();
        print STDOUT "off\n";
        sleep 2;
    }
    reset_default_led0_mode();
    reset_default_led1_mode();
}

sub set_led_trigger_mode {
    my ( $led, $mode ) = @_;
    $led //= 'led0';
    do {
        local $|;
        open( my $out, '>', '/sys/class/leds/$led/trigger' )
            || warn( $! );
        select $out;
        $|++;
        print $out $mode;
        close $out;
    };
}

sub unset_led0_mode {
    set_led_trigger_mode( 'led0', 'none' );
}

sub unset_led1_mode {
    set_led_trigger_mode( 'led1', 'node' );
}

sub reset_default_led0_mode {
    set_led_trigger_mode( 'led0', 'mmc0' );
}

sub reset_default_led1_mode {
    set_led_trigger_mode( 'led1', 'default-on' );
}

sub change_led {
    my ( $led, $state ) = @_;
    $led //= 'led0';
    $state = $state ? 1 : 0;
    do {
        local $|;
        open( my $out, '>', '/sys/class/leds/$led/brightness' )
            || warn( $! );
        select $out;
        $|++;
        printf $out "%d\n", $state;
        close $out;
    };
}

sub led0_on {
    change_led( 'led0', 1 );
}

sub led0_off {
    change_led( 'led0', 0 );
}

sub led1_on {
    change_led( 'led1', 1 );
}

sub led1_off {
    change_led( 'led1', 0 );
}
    </code></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Using Twitter Without Losing Your Mind]]></title>
    <link href="https://www.taskboy.com/2020y09m01d_12h41m03s-using-twitter-without-losing-your-mind.html"/>
    <published>2020-09-01T12:41:03Z</published>
    <updated>2020-09-01T12:41:03Z</updated>
    <id>https://www.taskboy.com/2020y09m01d_12h41m03s-using-twitter-without-losing-your-mind.html</id>
    <content type="html"><![CDATA[<p>Twitter (I won't bother linking to it) is like a bar you go to where fights always break out.  As a forum for conflict resolution, it is remarkably terrible.   However, not everyone in this virtual bar is looking for a fight.  There are wonderful people sharing uplifting, creative ideas on the platform that really are worth your time to seek out.  But to use the web interface of Twitter using the default settings is a day-ruining mistake.   Here are my five tips for toning down Twitter's ability to enrage you.</p>

<h3 id="turnoffretweets">Turn Off Retweets</h3>

<p>Your timeline in Twitter will be filled with posts from the accounts you follow, as you might expect.  However, twitter will also add to your timeline posts that your followers retweeted.  I and others have observed that the most outrage-producing content are the ones most likely to be retweeted.  This is done, most often, as a sign of support for the position promulgated by said post.</p>

<p>There are at least two additional problems with retweets.  </p>

<p>The first is that since it is so easy to retweet a post, the retweeter often does not careful vet the veracity of claims made by the original poster.  I can tell you first-hand that retweeting is often done for emotional reasons rather than rational ones.   Retweets are the kind of content that makes Twitter terrible.  Worse still is that you will be tempted to reshare the retweet and spread the virus further.   Wear a mask, er, decline retweets in your timeline.</p>

<p>The second problem with retweets is that usually the reason you are following an account is to see original content.  It takes (marginally) more effort to write a tweet than to repost.  If you are following smart, diligent people, you will find the original posts of same a lot more interesting, nuanced, and considered.  This is the content you should be paying attention to on Twitter.</p>

<p>Twitter knows that retweets prolong engagement with their platform, so disabling them is labor-intensive.  Retweets must be disabled per-account.   You will need to visit the account page of each of your followers.  Near the top of that page (near the name and profile stuff) on the right hand side, are three vertical dots.  Click on this to see a set of options, including Turn-off Retweets. </p>

<p>Because this is so painful to do, I suggest first stopping retweets from the accounts that spam you with the most rage-inducing content.  Do this for maybe 5 - 10 accounts per day.   After even a couple of days, you will find that the fire in your timeline is much reduced.  The quality content will start to jump out at you.</p>

<p>There may be a few accounts whose retweets you want to see.  Great!  These posts will be welcome additions in your timeline and not get lost among noise.</p>

<h3 id="declineresharingoflikes">Decline Resharing of Likes</h3>

<p>Another way Twitter "helps" your timeline is to occasionally insert posts that your followers merely liked.  As with retweeting, "liking" a tweet is a low-quality, intellectually cheap action that is a poor indicator of quality.  For example, I like posts all day long that I would not even retweet!  Why would anyone care to see the results of my compulsive clicking?</p>

<p>To turn off this behavior in Twitter, find a post in your timeline that Twitter inserted because some of your followers "liked" it.  There is an inverted caret on the top right corner.  Click that to see more options.  One of those options will be "See less often". </p>

<h3 id="setyourtimelinetochronologicalorder">Set Your Timeline to Chronological Order</h3>

<p>Twitter has some bogus algorithm it uses to order the posts in your timeline.  This algorithm was not designed for your benefit but theirs.   You can change the order that posts appear in your timeline to chronological by clicking on the set of stars at the top of your timeline.  Change from "see Top Tweets first" to "Tweets as they happen" (or wording to that effect).</p>

<p>Chronological ordering at least grounds you in conversations that are contemporaneous.  With top tweets, you could be responding to a post from a few days again, keeping a tedious thread alive longer than it needed to be.  If an older post is worth seeing, you will often find it referred to by your friends or others.</p>

<h3 id="usemutedwordsandmutedaccounts">Use Muted Words and Muted Accounts</h3>

<p>This feature was long-overdue in coming to the platform.   Twitter allows you to define a set of words and phrases that will cause posts to be hidden in your timeline and replies.  This is a glorious feature that you should invest time crafting.  I have a whole passel of politicians, pundits, and attention-seeking knuckleheads in my account's list.  Is this an information bubble?  Sure, it is, just like a space suit is an air bubble for astronauts.  Not all bubbles are bad.</p>

<p>Sometimes, you want to follow a user, but you do not want to see their posts often.  This sounds weird, but the situation happens.  For example, I jabber about politics a lot around election time.  Some (all?) of my followers do not care to hear my wisdom on the subject.  They may choose to mute me for some months until the fever has passed.</p>

<p>Muting an account is like putting someone on probation.  It's not as final as unfollowing, but that can often be the next step should posts not improve.</p>

<h3 id="blockaccountsearlyandwithoutconcern">Block Accounts Early and Without Concern</h3>

<p>Finally, Twitter allows you to block accounts of people with whom you wish no further interactions.  I have about 100 accounts blocked, most of whom seem to want to argue with me.  I do not argue with people on the Internet, since I am a professional Internet user.</p>

<p>Some people fell bad or nervous about blocking accounts.  Do not.  It is your right to control access to you.  If someone even appears to be trouble for you personally, just block them.  I have been blocked by comedian Paul F. Thomkins at least twice, although I am not entirely sure why.   But the beauty of blocking is that Thomkins has never needed to explain why he did this.  Neither will you.</p>

<p>To hijack a sloppy, sentimental expression, "block as if no one is watching."</p>

<h3 id="inconclusion">In Conclusion</h3>

<p>I hope you find this tips helpful.  Many of them are already well known to long-time Tweeters.  Note that some third-party Twitter clients may have even more ways to improve the quality of your timeline, so take the time to learn them.  </p>

<p>Many of us spend far too much time on Twitter.  I have been on the platform since 2009.  Take control of your timeline or someone else will. </p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[I am a Kubernetes sceptic]]></title>
    <link href="https://www.taskboy.com/2020y08m24d_19h13m59s-i-am-a-kubernetes-sceptic.html"/>
    <published>2020-08-24T19:13:59Z</published>
    <updated>2020-08-24T19:13:59Z</updated>
    <id>https://www.taskboy.com/2020y08m24d_19h13m59s-i-am-a-kubernetes-sceptic.html</id>
    <content type="html"><![CDATA[<p>I recently watched a video of someone explaining the problems kubernetes (k8) solves.  Frankly, I was outraged.</p>

<p>For the moment, let's grant that you need to deploy an application in docker containers.  Perhaps you need several instances of parts of the application (like frontend UI that talks to centralized catalog DB and authentication directory).  I get using some kind of orchestrating software that copies docker containers onto the right VMs when new versions of the container are made available.  There are a couple of deployment packages with long histories that can do this now.</p>

<p>What irks me about k8 is the way it also becomes an application level router, needed to manage DNS records and load balance.  This mixing of release management and production dependency seems entirely wrong-headed.</p>

<p>While I was grant that some very large applications might need this level of abstraction, too much containerization during development has got to be an anti-pattern.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[When Fantasy Becomes Racist, Oriental Adventures]]></title>
    <link href="https://www.taskboy.com/2020y08m15d_13h50m10s-when-fantasy-becomes-racist-oriental-adventures.html"/>
    <published>2020-08-15T13:50:10Z</published>
    <updated>2020-08-15T13:50:10Z</updated>
    <id>https://www.taskboy.com/2020y08m15d_13h50m10s-when-fantasy-becomes-racist-oriental-adventures.html</id>
    <content type="html"><![CDATA[<p>This is a photo of my copy of Gary Gygax's Advanced Dungeons and Dragons <em>Oriental Adventures</em> rule book, which was published and bought in 1985.</p>

<p>
   <img src="https://www.taskboy.com/img/MyOrientalAdventures.jpg" alt="My copy of OA" id="mycopyofoa">
</p>

<p>There is no way to fully express the totality of excitement shared by my friends and I around this title at the time it was published.  In pre-Internet days, role playing supplements like this were a lifeline to kids stuck in places designed to be boring.</p>

<p>Right now, in 2020, it is not difficult to understand that some of the <a href="https://waynesbooks.games/2020/03/09/gateway-to-adventure-tsrs-classic-games-catalog-1980-1981/">foundational texts of youth</a> have been criticized for <a href="https://pocgamer.com/2019/08/02/decolonization-and-integration-in-dd/">colonialism</a>, <a href="https://www.npr.org/sections/live-updates-protests-for-racial-justice/2020/06/29/884824236/dungeons-dragons-tries-to-banish-racist-stereotypes">racism</a> or at least <a href="https://www.belloflostsouls.net/2020/04/dd-asians-represent-takes-on-oriental-adventures.html">cultural appropriation</a>.  To state the obvious, the original authors of Dungeons  and Dragons, E. Gary Gygax and Dave Arneson, were a pair of middle-aged, middle class, mid-century white dudes from Wisconsin.  In other words, two people marinated in the weird white supremacist, cold war culture of twentieth century America (a stew in which I too was basted).   To their credit, each was drawn to medieval wargaming as a tacit rejection of their culture in which they found themselves.  Unfortunately, it was difficult to completely isolate oneself from the myriad of subtle racist messaging that saturated all popular media of the time, as I later learned.</p>

<p>I grew up (and currently live) in the venerable Commonwealth of Massachusetts.  Although considered by outsiders to be a bastion of enlightened liberalism, such perception does not long survive contact with the ground truth of living here.  While it is not the hotbed of racism to rival  certain infamous Southern states, it is far from devoid of it.  As a kid, overt racism was actively and decidedly squashed.  Yes, you could like the <a href="https://www.cnn.com/2020/07/06/entertainment/dukes-hazzard-general-lee-trnd/index.html">General Lee</a> but saying that you wanted to bring back slavery was at least going to get you disinvited to cocktails at the boat house.  Still, when I watched TV shows or the nightly news, invariably the villains would be people of color, even if this was not explicitly pointed out.  There was vocal endorsement for the civil rights movement of the 60s and even lionizing of Dr. King, but the car doors still were pointed locked when we drove through Harlem in NYC.  We had what might be termed proximity xenophobia.  This is a fear of people with whom you did not grow up.  The dread appears to increase with the distance of the origin of such strangers from your home.  Which is to say that even white folks from other parts of the country were cautiously handled.  I perceived this mode of thinking to be a wide-spread default of central Massachusetts culture, but I can present no scientifically-vetted data to support this assertion.</p>

<p>Xenophobia is often the mother of racism, but they are not the same.  Racism comes with a whole passel of intellectual gymnastics needed to justify the belief that one group of people should actively oppress another due to some imagined genetic or divinely created inequality.   These justifications are encoded into laws and business practices, creating systemic misery for the target group.  I recommend the company of neither, but forced to choose, I prefer the xenophobes.  It is easier to educate a xenophobe than a racist, since "curing" racism entails pulling down disingenuous arguments about "race" and getting the frightened white person to accept the existence of their privilege (also see <a href="https://www.tolerance.org/magazine/summer-2019/whats-my-complicity-talking-white-fragility-with-robin-diangelo">white frigility</a>, which is another condition under which I labor).</p>

<p>An additional feature of my xenophobia relevant to rearing was my mother's fascination with all things Asian (best read here as Chinese and Japanese art and furniture).  She was born in 1935 in the Bay State and had a less than halcyon childhood.  No doubt that the exotic artifacts from Pacific Rim that would later fill first her home and, after she passed, mine made a strong impression on her.  These might as well have been dropped from outer space, as she had no practical access to people from that region and little time for research in a library (although she worked in both my elementary school's library and that of my other primary school, Cape Cod Academy). </p>

<p>My parents both actively tried to fight against the cultural programming that each had received from the 1940s, in which xenophobia was considered obviously patriotic.  Terrible ideas from one's childhood often sink into pre-conscious thinking where they are hidden from notice and are difficult to uproot later.</p>

<p>This pattern so dependably reproduces that with some schadenfreude, I will enjoy watching the more strident younger voices of today who righteously call out on social media the micro-aggressions of their elders today find themselves targeted by similar opprobrium in 10 - 15 years time [and laugh at the predictable reactionary calls to stop this new "cancel culture" from same].</p>

<p>To hijack a line from the CRPG Fallout: Culture War, culture war never changes.</p>

<p>The fascination with (even fetishization of) Asian culture by Western people is called <a href="https://en.wikipedia.org/wiki/Orientalism">Orientalism</a>.  In the US specifically, there is a bizarre mirror sympathy that romanticizes a fantasy version of antebellum black slave culture called Black Americana, which takes the form of monstrous kitchen and lawn decorations (links intentionally omitted).  From <em>Orientalism</em> by Edward Said:</p>

<blockquote>
  <p>"Orientalism depends for its strategy on a flexible (Western) positional superiority, which puts the Westerner in a whole series of possible relationships with the Orient without ever losing him the relative upper hand."</p>
  
  <p>â <a href="https://books.google.com/books?id=Yivirt2t1lYC&amp;lpg=PR11&amp;ots=VyI9KtQIbT&amp;lr&amp;pg=PR11#v=onepage&amp;q&amp;f=false">Orientalism</a></p>
</blockquote>

<p>These forms of <a href="https://www.otheringandbelonging.org/the-problem-of-othering/">Othering</a> often go unchecked since their devotees express no desire to destroy or harm the objects of their ideation.  Yet these fantasies strip the humanity away from their target cultures, leaving one dimensional "magical creatures" in their place.  This is a fetish of a dominate culture over politically and economically weaker ones in a given nation.   If told that a significant portion of the young Chinese population romanticized a cartoonish version of American cowboys or even the dreadfully dull Puritans, I would not be surprised.  </p>

<p>Enter the ninja.</p>

<p>The 1980s were a triumph of Japanese culture in the U.S.  Having dug out of the atomic ruins of WWII, Japan had built a formidable economy based on durable goods, like automobiles, and consumer electronics.  Wealth flooded into the land of the Rising Sun allowing for a resurgence in culture and arts.  The amazing movies by Japanese auteurs like <a href="https://en.wikipedia.org/wiki/Akira_Kurosawa">Arika Kurosawa</a> influenced Western movie directors.  By the 80s, Japan looked like <a href="https://www.nytimes.com/2012/01/15/books/review/distrust-that-particular-flavor-by-william-gibson-book-review.html?referringSource=articleShare">the land of the future</a>.  While the 60s and 70s brought the delight of primarily Chinese martial arts films to the West, the 80s saw Western marketers package the concept of ninjas and samurais for the white adolescent market (of which I was one).</p>

<p>Make no mistake.  Ninjas were the bomb.</p>

<p>Dressed in silken black garments, armed with the straight bladed ninjato, throwing stars, and climbing claws called shukos, these stealthy medieval assassins fit perfectly with Cold War culture of high stakes espionage.  Popularized in <a href="https://www.imdb.com/title/tt0082332/">movies</a>, <a href="https://www.imdb.com/title/tt0086756/">TV</a>, <a href="https://www.yojoe.com/action/82/snakeeyes.shtml">comic books</a>, and all possible media, the feats and abilities of ninja were stories that grew in the telling.  Could they blend into shadows?  Of course!  Could they stop their heart beats?  Naturally!</p>

<p>The flip side of this narrative coin were the samurai: noble, aristocratic warriors following the Bushido codes of honor.  Wielding master-crafted katana swords and donning brightly colored armor, the Samurai of 80s conceit where natural opponents of ninjas.  Guided by their strict moral code, they operated alone without magical powers or totems, forever on watch against the anarchic, semi-magical, evil ninja.</p>

<p>Or something like that.</p>

<p>Of course, the real history of ninjas and samurai is far messier.  Samurai were very much like feudal knights in Europe, requiring sponsorship from a powerful Daimyo, or land owner.  Daimyos frequently strove for political power against one another, relying on the martial skills of their samurai to win the day.  Later samurai began to wield political power themselves.  Into this highly fraught feudal system arose a need for saboteurs, spies, and assassins.  The ninja catered to all these roles of irregular warfare.  The heyday of ninjas was the 16th - 17th century.  However over the centuries, samurai became seen as bloated aristocratic parasites.  While this story fits well into a Marxist analysis of medieval class struggles, but that's not what you can sell to kids.</p>

<p>In 1985, TSR published an AD&amp;D rulebook that adapted the historical figures of ninjas and samurai into a fantasy setting informed by primarily Japanese mythology.  This rulebook, as you probably gathered, was called <em>Oriental Adventures</em> and it <a href="https://en.wikipedia.org/wiki/Oriental_Adventures#Reception">sold well</a>.  TSR was in financial trouble when this supplement was published.  This one title helped pull them out of that crisis.  </p>

<p>Written in large part by Gygax, the book is a high watermark for RPG supplements.  To those ignorant of medieval Pacific Rim history, OA presents an fascinating world of magic, honor, and adventure.  In pre-commercial Internet days, OA opened a new world to young Western minds, including my own.  To quote from the preface of OA:</p>

<blockquote>
  <p>"Of course, schools of fighting are covered.  So are the differences in weapons between China, Japan, and so on.  Culture is also stressed.  Honor, dignity, training in social graces and ceremonies are as important to the adventures in this milieu as are experience points and magical treasure.  Think about that for a moment."</p>
  
  <p>â Oriental Adventures, preface
  </blockquote></p>
</blockquote>

<p>It's hard to know the intentions of the authors, but in this passage, Gygax demonstrates that the Pacific Rim is not a monoculture.  While not being a historical-sociological text book, the ruleset attempts to present a blended culture that would be significantly alien to many of its readers.</p>

<p>OA is a work of fiction that explicitly calls itself fantasy and it no way implores the reader to believe that what it is describing represents any real human beings alive or dead.  However, in the absence of readily available factual content or access to flesh and blood Japanese, Chinese, or Korean people, these fantasies can and did inform Western views and trade on Western stereotypes.  Recall that OA appears in a culture that is already white supremacist generally and within the subset of people already enthralled with Orientalism. </p>

<p>Can it really be controversial to call OA an work of Orientalism? Surely, it is the very definition of it.</p>

<blockquote>
  <p>"In art history, literature and cultural studies, Orientalism is the imitation or depiction of aspects in the Eastern world.  These depictions are usually done by writers, designers, and artists from the West."</p>
  
  <p>â <a href="https://en.wikipedia.org/wiki/Orientalism">Wikipedia</a></p>
</blockquote>

<p>OA is the work of someone in love with an idea of feudal Japan who was not overly concerned with the danger of stereotyping.  To address the elephant in the room, the word "oriental" (meaning Eastern) has become a lot more of a taboo word than it was when in 1980.  However, language adapts to culture.  By the nineties, I was rightly called out of use of this word with respect to people.  However, I recall no incidents of condemnation using this word during the 70s or 80s.  In this case, the word is too broad and frankly too dismissive to have any real use anyway.  When (if?) you read the Edwardian Yellow Peril thriller <em>The Mystery of Dr. Fu Manchu</em> the modern reader may find it odd / repulsive  / illogical that cultures as different as those of India, China, and the Philipeans are all lumped together.   Take some hope from your reaction that the long arc of history is bending toward social justice. </p>

<p>Perhaps Fu Manchu and OA are not so different after all.  Published 60 years apart from each other, both sought to exploit the culture of real people for the  benefit of an imperialist market.  But that 60 year difference also brought huge changes in technology that made it far easier to learn about the history of real Pacific Rim cultures.  When Sax Rohmer was writing about "chinamen," he had precious few reliable literary or real world references to use, cosseted as he was smog-blighted London.  He could have easily shifted subject of his stories to aliens from Venus and been decades ahead of the X-Files.  Dr. Fu Manchu is one of the world's most fascinating villains who works only in the matrix of profound xenophobia and cultural ignorance.  From that perspective, OA is far more humanizing and respectful of the culture it presents.  That, obviously, is a low hurdle to clear. </p>

<p>What is good about OA is the way it communicates a sense of wonder and a sense of the exotic.  Imaginations need these things.  The easiest way authors create verisimilitude in their fantasies is to borrow from real history, which is a trick TSR used far too much and far too casually.  The challenge for fantasy writers going forward is to be inspired by the profound diversity of human cultures, but also to synthesize the source material to create worlds that more than just thinly-rethemed analogs.   A good example of this hard work can be see in M. A. R. Baker's <a href="https://en.wikipedia.org/wiki/Empire_of_the_Petal_Throne">Empire of the Petal Throne</a>.    </p>

<p>At the end of the day, I cannot muster full-throated opprobrium towards OA.   The work is filled with love, not malice.  However,  the queasy feeling induced by the title alone prevents me from giving this work a pass (and the clear orientalism within is problematic).  The core conflict that galls me is that all kids from all ethnicities should be allowed to have heroic fantasies, whether the setting for those adventures is European, Asiatic, African, or American.  The are so few heroes in real life.  Role playing can promote empathy for our fellow Earthlings and a deeper understanding cultures.  Of course, it can also induce false ideations that are dehumanizing.</p>

<p>I have to come down in the side supporting of limitless fantasy.  An active, engaged mind is better for society than the opposite.  And if occasionally this produces some well-intentioned othering, that is a small price to pay (and a consequence that I trust is straight-forward to fix with education). </p>

<p>If somehow OA were responsible for producing iconography like that Black Americana, I would be profoundly angry at the work.  Is the absence of such real-world manifestations of ignorance and oppression all that saves this publication for me?</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[STEM Content on YouTube for the Inquisitive Kid]]></title>
    <link href="https://www.taskboy.com/2020y08m14d_12h45m24s-stem-content-on-youtube-for-the-inquisitive-kid.html"/>
    <published>2020-08-14T12:45:24Z</published>
    <updated>2020-08-14T12:45:24Z</updated>
    <id>https://www.taskboy.com/2020y08m14d_12h45m24s-stem-content-on-youtube-for-the-inquisitive-kid.html</id>
    <content type="html"><![CDATA[<p>I have a 10 year old son.  He has an active mind that needs to be filled with ideas.   If you find yourself needing to both help your child's mind and also take a little break from constant surveillance, you should know about the following channels on YouTube.  All this content is free, which continues to blow my mind.  Many of these channels you will already be familiar with, but all deserve additional exposure.</p>

<p>There is no particular order to this list.  I watch all of these channels myself even without my son.</p>

<ul>
<li><a href="https://www.youtube.com/channel/UC726J5A0LLFRxQ0SZqr2mYQ">Curious Droid</a>: Mostly about historical aeronautics, but every episode is great.  And dig Paul Shillito's crazy shirts!</li>
<li><a href="https://www.youtube.com/channel/UC726J5A0LLFRxQ0SZqr2mYQ">Crash Course</a>: Crash Course is a production of John and Hank Green and covers the gamut of liberal arts subject, but there is a lot of science and engineering to be found here. Great introductions to complicated topics that never talk down to the viewer.</li>
<li><a href="https://www.youtube.com/c/inanutshell">Kurzgesagt</a>: Come for the content, stay for the animations.  It's science explained with an opinion.  Some episodes, like Is Meat Bad?, will make you groan. Still, I have watched every episode and look forward to more.</li>
<li><a href="https://www.youtube.com/c/SciShow">SciShow</a>: The second of the Vlog Brothers channels on this list, SciShow is another channel of which I try to watch every episode. All are short nuggets of information about what's going on with science today</li>
<li><a href="https://www.youtube.com/greymatter">CPG Grey</a>: Fast talking stick figures drop tons of esoteric knowledge you didn't know you needed.  How to become Pope?  What does the US-Canada look like and why?   What a field trip to a decommissioned missile testing range?  Grey makes all of these intellectual inquiries charming.</li>
<li><a href="https://www.youtube.com/c/SciShow">Science Asylum</a>: If you can't trust a guy named Nick Lucid to explain physics, you have a lot of trust issues, bro.  In particular, Lucid's scale model of the solar system should help your child understand stellar distances of our local solar system.  </li>
<li><a href="https://www.youtube.com/channel/UC726J5A0LLFRxQ0SZqr2mYQ">Dr. Becky</a>: Astrophysicist from Oxford, Dr. Smethurst breaks down some of the complexity of astronomy today.  If you are not already excited about what's going on with astronomy today, hold on to your hat.</li>
<li><a href="https://www.youtube.com/c/fermilab">FermiLab</a>: From the famous particle science research center FermiLab, Dr. Don Lincoln does deep dives into topics like quantum physics, fusion, and just about anything else needed to write a good sci-fi story. Check this channel out.</li>
<li><a href="https://www.youtube.com/c/khanacademy">Khan Academy</a>: The most explicitly pedagogical of all the channels listed here, Khan Academy tends to explore math basics, algebra, trigonometry, geometry, and even some calculus.  Great content for those new to the subjects or those needed a gentle reminder.</li>
</ul>

<p>In a perfect world, all of these creators would be supported by public funds for each provides extraordinary public benefit.  However, just watching these videos and subscribing to their channels does benefit the creators and helps YouTube's AI find similar content for you.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[How does taskboy.com run and why?]]></title>
    <link href="https://www.taskboy.com/2020y08m13d_14h55m45s-how-does-taskboycom-run-and-why.html"/>
    <published>2020-08-13T14:55:45Z</published>
    <updated>2020-08-13T14:55:45Z</updated>
    <id>https://www.taskboy.com/2020y08m13d_14h55m45s-how-does-taskboycom-run-and-why.html</id>
    <content type="html"><![CDATA[<p>Hello, Internet.  I want to talk to about about my website, taskboy.com, which has been in more or less continuous operations for almost 20 years.</p>

<p>As a professional full-stack web developer, taskboy.com has often been my playground to experiment with new ideas.  It is now primarily a "resume" site with an attached blog.</p>

<p>Much of my professional work involves creating database-driven Model-View-Controller, n-tiered web applications for my employer's intranet.  Which is why I have gone in exactly the opposite direction with taskboy.com, a site that features mostly static pages.   The site is hosted on a debian virtual machine provided by Linode, with whom I have done business for the past decade without complaint.  The web content is served by the venerable httpd server from the Apache foundation, which is still provides rock-solid performance along with a bounty of optional modules.   I have a very simple apache configuration for taskboy.com (although there are other virtual hosts on the system as well).</p>

<h2 id="servicearchitecture">Service Architecture</h2>

<p>Just because the blog posts are static does not mean that I craft the HTML for each post by hand.  Instead, I use a hacked version of <a href="https://github.com/jmacdotorg/plerd">Jason McIntosh's Plerd</a> system to produce all the web content accessible through the blog site.  Plerd watches a directory for new markdown files.  When it sees them, it translates the markdown to HTML, wraps that HTML in existing HTML templates and writes the file to the docroot directory that apache serves to you when you access https://www.taskboy.com/.  Plerd takes care of creating various Atom and JavaScript feeds for me.</p>

<p>Here's my attempt to describe the blog, notes, and image publishing architecture of taskboy.com:</p>

<p>
   <img src="/img/taskboy-blog-arch.gif" alt="taskboy architecture" id="taskboyarchitecture"> 
</p>

<p>I use a customized version of Plerd.  I made some modifications to the internal structures of Plerd, because jmac's version regenerates the entire site when it discovers new content.  <a href="https://github.com/taskboy3000/plerd">My version of Plerd</a> rewrites only what it must (using a file system-based data store to maintain state) .  I moved other bits of the software around for personal aesthetics.  Also, I wanted my CSS and JS to be generated from Plerd templates along with blog content. This makes retheming the site very easy.  Finally, I wanted to get rid of the plerdall daemon.  This is the service that watches for directory changes.  Instead, I have a cron that fires off plerdcmd (my own executable available in the forked project) that does much the same thing.  Running out of cron just makes maintenance easier for me.  I do not need to worry about restarting things when the machine reboots.</p>

<p>Another change was to make the client-side experience more dynamic.  Because pages are regenerated only when needed, things like the recent posts side bar need to be generated when the page loads.  Luckily, there was already a feed for the recent posts, so a little JS glue was need to insert that into the side bar. </p>

<p>It turns out that having JSON feeds actually powers quite a bit of Plerd.  By "JSON Feed", I mean static JSON files accessible through a URL. </p>

<p>It is no secret that I have grown unhappy with the business models of social media.  Being a greybeard, I remember when publishing on the web meant finding a public server, standing up a web server, and writing content for it.  After about 10 years of messing with large social media sites, I realized I wanted to own my content again.  Turns out, the folks at <a href="http://www.indieweb.org/">indieweb</a> feel the same way.</p>

<p>Plerd already had many hooks ready for indieweb, but I wanted to understand it all better, which means experimenting with it myself.</p>

<p>Creating a static blog generator is not a new idea, even for me, who used perl and HTML::Mason to do this last time in the early aughties.  However, Plerd has added a certain rigor to the process that was lacking before. </p>

<p>The frontend static of taskboy is built on <a href="https://getbootstrap.com">Bootstrap</a>, which I have gotten to know well because I have used it professionally for years now.  Although Bootstrap requires jQuery, I am weaning off of that venerable shim library since modern EMCAScript has become widely adapted, capable and (mostly) sane.  As I have mentioned in a previous post, I prefer to use JavaScript sparingly to enhance the user experience of the content rather than be a requirement to see any content on the site (although the sidebar of my blog does depend on, that is fairly optional content).</p>

<h2 id="authoringwithbear">Authoring with Bear</h2>

<p>What has really gotten me excited about blogging again is mobile devices.  Sure, tablets and smartphones have been around for 10+ years now and laptops are Paleolithic atavisms, but found that I was quite happy to tweet on them for 10+ years.   What changed?  Two things.</p>

<p>First, I got really grumpy with Facebook's inability to control their own worst instincts about spying on me.  In 2018, I deleted my account.  In 2020, I felt like Twitter had become a company I worked for without being paid to do so.</p>

<p>Second, I discovered a text editor app for iOS that I really, really like called Bear.  It's not a programmer's text editor, but it is a markdown-first text editor.   It is easy to use, well-integrated with Dropbox, and pretty.   When coupled with a decently sized bluetooth keyboard, it is actually quite pleasant to compose long documents like this!  </p>

<p>
         <img src="/img/ios-blogging-rig.jpg" alt="blogging rig" id="bloggingrig">
</p>

<h2 id="syncingtotaskboy.com">Syncing to taskboy.com</h2>

<p>Dropbox continues to support linux command line clients.  This is perfect for my use-case.  All my authoring platforms also support Dropbox.</p>

<p>When I am ready, I export my document from Bear to the right folder in Dropbox.</p>

<p>Handling pictures is easier than it has ever been, but that is mostly thanks to Dropbox, which is the hero of this story.</p>

<p>To publish pictures, I save photos to a directory on Dropbox.  On taskboy, a periodically recurring process (aka cron)  copies (actually rsyncs) all pictures there into the "img" directory of my docroot.  Dead simple and crazy reliable.</p>

<p>Heck, here is the crontab entry:</p>

<p><code>*_60 * * * *  rsync -ua $HOME_Dropbox_plerd_images/ $HOME_sites_www_www_img/
</code></p>

<p>(Forgive the weirdly redundant */60.  I was working around a small Bear issue.)</p>

<h2 id="publishing">Publishing</h2>

<p>It's only slightly more involved to publish blog posts and notes.  To do so, I run this:</p>

<p><code>plerdcmd -P
</code></p>

<p>This looks in two Dropbox folders.  One folder contains blog posts as markdown files that need to be converted to HTML files.  The other contains text files that will become notes.  Either way, plerd writes the HTML files into the docroot.  This runs every 3 minutes, so as not to encourage me not to spam readers.  It also allows me a little window to catch typos.</p>

<p>Recently, I decided that I want to publish my notes to Twitter.  I have written Twitter clients in the past, so that part wasn't hard.  The program I wrote consumes the javascript feed of notes published by plerd and posts new notes to tweeter.  It remembers what it already has published so as not to spam Twitter (hopefully).</p>

<p>Here is the mildly expurgated source code:</p>

<p>
use Modern::Perl '2017';
use DBI;
use Digest::MD5 'md5_hex';
use Getopt::Long;
use HTML::Strip;
use JSON;
use Path::Class::File;
use POSIX 'strftime';
use Twitter::API;

our $gDBH;

main();

sub usage {
    return  \$opts{feedFile},
        'l|limit=i' => \$opts{limit},
        'q|query=s' => \$opts{query},
        'u|user=s'  => \$opts{user},
        'v|verbose' => \$opts{verbose},
        'h|help'    => \$opts{usage}
    );

    if ($opts{usage}) {
        say usage();
        exit;
    }

    dbValidate($opts{verbose});
    if ($opts{query}) {
        return doQuery($opts{query});
    }

    my ($twitter, $tokens) = getTwitterHandle($opts{user} || $ENV{USER}, $opts{verbose});

    if (!defined $tokens) {
        die("Internal error [token recall failed]: rerun program.");
    }

    if ($opts{feedFile}) {
        if (!-e $opts{feedFile}) {
            die("Cannot find $opts{feedFile}\n");
        }
        doPostsFromFeed($twitter, $tokens, $opts{feedFile}, $opts{limit}, $opts{verbose});
    }

}

sub getTwitterHandle {
    my ($user, $verbose) = @_;

    my $client = Twitter::API->new_with_traits(
        traits          => 'Enchilada',
        access_key      => 'secret',
        access_secret   => 'secret',
        consumer_key    => "I've got a",
        consumer_secret => 'secret',
    );

    my ($token_hash) = recallUserAccessTokens($user);
    if ($token_hash) {
        # This fatals if broken
        say "Testing cached user tokens" if $verbose;
        eval {
            $client->verify_credentials(
                {   '-token'        => $token_hash->{token},
                    '-token_secret' => $token_hash->{secret},
                }
            );
            1;
        } or do {
            forgetUserAccessTokens($user);
            warn($@);

            say "These credenials no longer work.  Please run $0 again.";
            exit;
        };

        if ($verbose) {
            say "Cached access tokens for $user appear to be valid";
        }
        return ($client, $token_hash);
    }

    say "Getting request token" if $verbose;
    my $request = $client->oauth_request_token;

   say "Getting auth URL" if $verbose;
   my $auth_url = $client->oauth_authorization_url({ oauth_token => $request->{oauth_token}, });

   print
        "Authorize this application at: $auth_url\nThen, enter the returned PIN number displayed in the browser: ";

   my $pin = ; # wait for input
    chomp $pin;
    say "";

   say "Getting access tokens for $user" if $verbose;
   my $access = $client->oauth_access_token(
        {   token        => $request->{oauth_token},
            token_secret => $request->{oauth_token_secret},
            verifier     => $pin,
        }
    );

    my ($token, $secret) = ($access->{'oauth_token'}, $access->{'oauth_token_secret'});

    if (!($token && $secret)) {
        die("Did not get complete set of auth tokens for user $user.  Rerun.\n");
    }

    say "Recording access tokens" if $verbose;
    recordUserAccessTokens($user, $token, $secret);

    return ($client, recallUserAccessTokens($user));
}

sub doQuery {
    my ($table) = @_;

    if ($table eq 'tokens') {
        return reportAccessTokens();
    } elsif ($table eq 'publications') {
        return reportPublications();
    } else {
        die("Unknown table '$table'");
    }
}

sub doPostsFromFeed {
    my ($twitter, $tokens, $feedFile, $limit, $verbose) = @_;

    my $feed      = JSON::from_json(Path::Class::File->new($feedFile)->slurp());
    my $published = 0;

   for my $item (reverse @{ $feed->{items} }) {
        my $cleanedContent = cleanContentForTwitter($item);
        if ($verbose) {
            say "Post will be:\nâ\n$cleanedContent\nâ";
        }
        my $pub = recallPublication(\$item->{content_html});
        if ($pub) {
            if ($verbose) {
                say "Already published this. Skipping";
            }
            next;
        } else {
            eval {
                my $response = $twitter->update(
                    $cleanedContent,
                    {   -token        => $tokens->{token},
                        -token_secret => $tokens->{secret},
                    }
                );
                1;
            } or do {
                say $@;
                next;
            };

            recordPublication($tokens->{username}, $item->{content_html});

            $published += 1;
            if (defined $limit && $published >= $limit) {
                if ($verbose) {
                    say "Published the maximum number ($limit) of posts to Twitter.";
                }
                last;
            }
        }
    }

    return 1;
}

sub cleanContentForTwitter {
    my ($feedItem) = @_;
    my $continuation = "â¦";

    my ($noteUrl, $content) = ($feedItem->{url}, $feedItem->{content_html});
    $content = HTML::Strip->new->parse($content);

   my @words = split(/ /, $content);
    return if !@words;

    my $linkBack = "\n\nLink: $noteUrl";
    my $maxLen   = 280 - length($linkBack);

    my $cleaned = "";

    while (@words) {
        my $word = shift @words;

        my $proposed = $cleaned . "$word ";

        if (length($proposed) > $maxLen) {
            if (@words) {
               $cleaned = $cleaned . "$word$continuation";
            }
            last;
        }

        $cleaned = $proposed;
    }


    $cleaned .= $linkBack;
    return $cleaned;
}

sub recordUserAccessTokens {
    my ($user, $token, $secret) = @_;
    return if !($user && $token && $secret);

    my $db  = dbConnect();
    my $now = time();

    my $result =
        $db->selectall_arrayref("SELECT 1 FROM tokens WHERE username=" . $db->quote($user));
    if ($result->[0]->[0]) {
        my $sql = "UPDATE tokens SET token=?, secret=?, updated_at=? WHERE username=?";
        my $sth = $db->prepare($sql);
        return $sth->execute($token, $secret, $now, $user);
    }

    my $sql =
        "INSERT INTO tokens (username, token, secret, created_at, updated_at) VALUES (?, ?, ?, ?, ?)";
    my $sth = $db->prepare($sql);
    return $sth->execute($user, $token, $secret, $now, $now);
}

sub recallUserAccessTokens {
    my ($user) = @_;
    return unless $user;

    my $db  = dbConnect();
    my $sql = "SELECT * FROM tokens WHERE username=" . $db->quote($user);
    my $sth = $db->prepare($sql);
    $sth->execute;
    my $row = $sth->fetchrow_hashref;
    return if !$row || !$row->{username};

    return {
        token    => $row->{token},
        secret   => $row->{secret},
        username => $row->{username},
    };

}

sub forgetUserAccessTokens {
    my ($user) = @_;
    return unless $user;

    my $db  = dbConnect();
    my $sql = "DELETE FROM tokens WHERE username=" . $db->quote($user);
    my $sth = $db->prepare($sql);
    return $sth->execute;
}

sub reportAccessTokens {
    my $db  = dbConnect();
    my $sql = "SELECT * FROM tokens";
    my $sth = $db->prepare($sql);
    $sth->execute;

    while (my $row = $sth->fetchrow_hashref) {
        printf(
            "%-8s: created: %s, last updated: %s\n",
            $row->{username},
            u2pretty($row->{created_at}),
            u2pretty($row->{updated_at}),
        );
    }
}

sub recordPublication {
    my ($username, $content) = @_;
    return if !($username && $content);
    my $now = time();

    my $db = dbConnect();

    my $content_hash = md5_hex($content);
    if (my $row = recallPublication($content_hash)) {
       my $sql = "UPDATE publications SET published_at=?,updated_at=? WHERE id=?";
        my $sth = $db->prepare($sql);
        return $sth->execute($now, $now, $row->{content_hash});
    }

    my $sql =
        'INSERT INTO publications (username, content_hash, published_at, created_at, updated_at) VALUES (?, ?, ?, ?, ?)';
    my $sth = $db->prepare($sql);
    return $sth->execute($username, $content_hash, $now, $now, $now);
} # end sub recordPublication


sub recallPublication {
    my ($content_hash) = @_;

    if (ref $content_hash) {
        # This is the content we need to hash
        $content_hash = md5_hex($$content_hash);
    }

    my $db  = dbConnect();
    my $sql = "SELECT * FROM publications WHERE content_hash=" . $db->quote($content_hash);
    my $sth = $db->prepare($sql);
    $sth->execute;

    my $row = $sth->fetchrow_hashref;
    $sth->finish;

    return if !$row || !$row->{content_hash};

    return $row;
}

sub forgetPublication {
    my ($content_hash) = @_;
    my $db             = dbConnect();
    my $sql            = "DELETE FROM publications WHERE content_hash=" . $db->quote($content_hash);
    my $sth            = $db->prepare($sql);
    return $sth->execute;
} # end sub forgetPublication

sub reportPublications {
    my $db = dbConnect();

    my $sql = "SELECT * FROM publications ORDER BY username, created_at DESC";
    my $sth = $db->prepare($sql);
    $sth->execute;

    while (my $row = $sth->fetchrow_hashref) {
        printf(
            "%-8s: hash: %s, published: %s\n",
            $row->{username}, $row->{content_hash}, u2pretty($row->{published_at}),
        );
    }
}

sub u2pretty {
    my ($unix_epoch_ts) = @_;
    my @parts           = localtime($unix_epoch_ts);
    my $fmt             = '%Y-%m-%d %H:%M:%S';
    return strftime($fmt, @parts);
}

sub dbFile {
    my $dbfile = Path::Class::File->new("$ENV{HOME}_.plerd_db/twitter_pub.db");
    return $dbfile;
}

sub dbConnect {
    if (defined $gDBH) {
        return $gDBH;
    }

    my $dbfile = dbFile();
    return $gDBH =
        DBI->connect("dbi:SQLite:dbname=" . $dbfile, "", "", { AutoCommit => 1, RaiseError => 1 });
}

sub dbTableSchema {
    return (
        'CREATE TABLE publications (id INT AUTOCREMENT PRIMARY KEY, username CHAR(8), content_hash TEXT, published_at INTEGER, created_at INTEGER, updated_at INTEGER)',
        'CREATE TABLE tokens (id INT AUTOCREMENT PRIMARY KEY, username CHAR(8), token TEXT, secret TEXT, created_at INTEGER, updated_at INTEGER)',
    );
}

sub dbInstall {
    my $dbfile = dbFile();
    if (-e $dbfile) {
        die("$dbfile exists. Halt. Remove file to force reinstall.\n");
    }

    if (!-d $dbfile->dir) {
        $dbfile->dir->mkpath || die("mkdir failed: $?");
    }

    my $db = dbConnect();
    for my $table (dbTableSchema()) {
        $db->do($table);
    }

    return 1;
}

sub dbUninstall {
    my $dbfile = dbFile();
    $dbfile->remove();
}

sub dbValidate {
    my $dbfile = dbFile();
    if (-e $dbfile) {
       my $db      = dbConnect();
        my $missing = 0;
        for my $known_table ('publications', 'tokens') {
            my $result =
                $db->selectall_arrayref("SELECT 1 FROM sqlite_master WHERE type='table' AND name=" .
                    $db->quote($known_table));

            if (!$result->[0]->[0]) {
                $missing = 1;
                warn "Appears that $known_table is not defined.\n";
            }
        }
        die("DB file exists, but tables appear to be missing\n") if $missing;
    } else {
       say "Creating a data store.";
        dbInstall();
    }

    return 1;
}
</p>

<p>I post the code here for those of a hackerish disposition.  Note that you need to create an app on twitter's dev site to get all the secret keys and such for three-legged authentication to work.</p>

<p>Plerd supports webmentions to the extent that blog and note entries use the h-entry microformat.  Sending and receiving web mentions are handled through Jmac's other nifty project, <a href="https://jmac.org/whim/">whim</a>.  Plerd also inserts headers into the HTML to lets consumers of the web content know where to push web mentions too.</p>

<p>Because whim is a mojolicious app server, I chose to run it behind a reverse proxy in apache.  Why? I wanted pretty URLs and I wanted to use SSL for the blog and web mention traffic.  Using the very excellent <a href="https://letsencrypt.org">let's encrypt</a> tools, getting valid certs for apache and configuring httpd to use them was easy.</p>

<p>My plerd uses whim as a REST service to figure out if a blog post has web mentions and to display the content of same.  This last feature took a lot of combing out of the reverse proxy configuration, but it now works.</p>

<p>What started as a simple static site generator has morphed into a medium-complexity contraption which also is easy to maintain and reasonable secure.</p>

<p>Now, if I stop working on the Plerd infrastructure, I can focus on making the stock layout of the app a little more pleasant.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[On the Banks of a Shouty River]]></title>
    <link href="https://www.taskboy.com/2020y07m10d_18h16m24s-on-the-banks-of-a-shouty-river.html"/>
    <published>2020-07-10T18:16:24Z</published>
    <updated>2020-07-10T18:16:24Z</updated>
    <id>https://www.taskboy.com/2020y07m10d_18h16m24s-on-the-banks-of-a-shouty-river.html</id>
    <content type="html"><![CDATA[<p>Slow thinking.</p>

<p>I am deracinating myself from Twitter to regain my slow thinking.</p>

<p>Slow thinking is that activity of cognition which strives toward a goal, but indulges in seeming off-ramps and non-sequiturs.  It is a desultory journey that stubbornly refuses to be rushed.  Yet, patiently following one idea and its subsequent siblings is the path to knowledge, understanding, a wider perspective, and (with luck) innovation.  Another word that describes nearly the same thing is play.</p>

<p>Slow thinking is the polar opposite of the hot take culture of Twitter, in which admittedly clever people race against the timeline to emit smart distillations of recent events with novel observations set off by hip snark.   The thrill of jockeying against the torrent of posts is potent.</p>

<p>The immediacy of interacting with sharp minds is addictive, especially so for me.  Twitter is like a round-the-clock cocktail party at a virtual Algonquin club.  I have commented on the posts of actors, comedians, journalists, directors, technologists, astronomers, economists, tabletop game designers, and actual literary legends.  My digital bon mots have often met with the Twitter equivalent of a polite nod, but rarely more.</p>

<p>But therein lies the danger.</p>

<h3 id="asgame">As Game</h3>

<p>Twitter is a game.  It has a scoreboard in the form of a followers count.  It has power-ups called Likes.  It has virtual territory in the form of retweets.  It has stylized combat, like an MMO: Player versus Player, teams versus teams, and a king-of-the-hill mode in which crowdsourced abuse is focused on one person.  Watch with fascination and horror as your words ricochet around the world, getting recontextualized, meme-ified, subverted, inverted, and perverted.  On Twitter, there is no assumption of good will.  Will you be trending this hour?  Will that help your career or end it?  Should you start a wikipedia page about this?  Too late, another hashtag has overthrown you. Sadness. Failure. You were so relevant to the zeitgeist so very recently.  Shame, but you always get another life here.  Ready player one.</p>

<p>The cleverest way in which social media hacks the human brain is by turning the approbation of your community into a discrete integer.  How many books, plays, soap operas, and movies have characters struggling to find a clear sign of their value among their peers?  In the real world, trying to resolve your place in the pecking order is subjective and squishy.  Twitter has solved this messy problem.  Numbers do not lie.  Simply compare your numbers to others and a clear ranking obtains.  I have long struggled against this pernicious hack, but I fear Twitter is winning my heart and mind on this, particularly with their Analytics view.  It encourages me to think about my timeline as a business which is either succeeding (the graph line is rising!) or failing (I lost how many followers this week?!).</p>

<p>The only one who wins at Twitter is Twitter.</p>

<h3 id="asnews">As News</h3>

<p>Twitter is a source of news.  In an unprecedented way, current events spread much faster on this social media platform than traditional media of newspaper (natch), radio, or television.  But not all news spreads equally fast on social media.  There is a kind of "mob" bias as to what is reported.   Stories about cute things, celebrities, or moral transgressions are preferred over posts about science, economics, or other "niche" hobbies.  Twitter alone cannot and should not replace traditional news outlets, although it is possible to follow the accounts of the Associated Press, Reuters, even your local new paper on that platform (as I do).</p>

<p>Twitter is a place you can go to learn about your privilege.  Think you don't have it?  If you are reading this post on device you own, congratulations.  You have more household wealth that half the planet (although, if you reading this on a flip phone in the heart of an increasingly connected Africa, India, or South America, cheers!  You are the future of the Internet).  You have unprecedented access to knowledge and tools that can change the course of history.  How are you using this thing again? </p>

<p>Even before those haunting videos of systemic violence against people of color, I was aware that my life was spared certain classes of indignities, terrors, and hostilities merely based on a genetic quirk that limits melanin production in my skin.  The cause of the anger in the streets is not genetic, but social, which makes this enduring, widespread pain even more baseless and futile.</p>

<p>But Twitter made the systemic, relentless outrages of people of color visceral and urgent.  And that is an unqualified Good Thing.  For that (and the Arab Spring and the early massive protests against the Trump administration and whatever the next Massive Online Social Protest will be), Twitter should absolutely continue to be A Thing.  It has been said that "God made all men, but Sam Colt made them equal."  However, I rather think social media is now the thing that gives a righteous cause of the downtrodden the channel to speak to power in an effective way.</p>

<h3 id="asinquisitor">As Inquisitor</h3>

<p>Twitter is a virtual town pillory, optimized by generative antagonistic networks to drag villains into the spotlight.  And when we run of the real villains, those who are merely human are tossed into the stockade instead.  The Two Minute Hate will proceed on schedule.  There is no time for reflection or mercy.  No patience with the muddled headed who are too slow in relinquishing their quaint twentieth century prejudices.  No points for those who are older and wiser now, but were filmed when they were younger and foolish.  May those on future Twitter be kinder to those on current Twitter.</p>

<p>Outrage.  It is the rocket fuel of tweet storms.  It's a helluva drug and it induces engagement on the platform like nothing else.  You had best be on the right side of the argument when the conversation comes to your timeline.  Nevermind that you know that there are three sides to every story.  Forget that the whole story is rarely ever known to the public or that important facts take time to discover.  BAD PEOPLE HAVE BEEN DOING BAD THINGS FOR A VERY LONG TIME. WE WILL NO LONGER BE SILENT ON THEIR PERFIDY AND GAS LIGHTING.</p>

<p>And I agree.  There are bad people whose fame and wealth shielded them from the consequence of their actions (heck, even being a poor white male seems to be enough sometimes to do the trick).  And then there are those who had said dumb, hurtful things loudly in a public place.  Binning these two groups together is a mistake, even though when you squint it seems like justice to do so.</p>

<p>I could be just me.  I need more time to chew on stories.  Even seemingly obvious ones, like the political moves of the two national political parties.  Am I confident that I can correctly distinguish between a righteous dogpiling and an astroturfed one?  Life is messy and I just have not done my homework as well as I could have because I have been bouncing around in a shouty river.  </p>

<h3 id="asbusiness">As Business</h3>

<p>At the bottom of it all, Twitter is a business.  They offer a service for authoring and publishing your micro blog.   Can you download your own content?  As long as Twitter decides you can.  Twitter uses the explicit demographic information that you give them in your profile, along with your followers/following lists, and the content (and metadata) of your posts to create a customer profile of you to sell to advertisers.  You can be forgiven for thinking that you are owed a cut of that revenue.  The platform has paid you in kind with their publishing service for your content and your advertising profile.  Twitter is free in the same way an office "gives" you a desk to work on.  I was fine with this arrangement for 12 years until I wasn't any longer.</p>

<p>There are many right-thinking, respectful users on Twitter who have long begged for changes in the platform that curb its worst abuses.  Twitter has provided <a href="https://news.abplive.com/news/world/twitter-rolls-out-new-policies-to-curb-abuse-trolling-715691">some tools</a> to help, but far from enough.  Accounts of extreme reactionaries are still on the platform.  Twitter's maintains that it wants to be neutral on the content it publishes, but this is manifest nonsense.  Content that hurts their advertising revenue they are happy to remove.  Content that does not? <a href="https://twitter.com/realdonaldtrump">Not</a> <a href="https://twitter.com/Cernovich">so</a> <a href="https://twitter.com/BreitbartNews">much</a>.</p>

<h3 id="asprologue">As Prologue</h3>

<p>Part of my privilege as a technologist is possessing the know-how to write my own publishing platform and having the resources to pay for hosting.  To extract the best value from Twitter, I will follow choice accounts from a distance.  I will directly post sparingly, instead using web mentions and syndication plumbing to turn Twitter into <strong>my</strong> distribution channel.  With time, maybe I can turn this baroque mechanism that I am assembling to something others can use to rediscover <a href="https://indieweb.org/">their own independence</a>.</p>

<p>I absorbed a great many positive things on Twitter.  I learned a lot from people who are not like me.  I made a few of them laugh.  But I do not believe I have repaid their lessons very well.  I am no modern Walden, but maybe this is a better season for slow thinking.</p>

<p>
    <em>
        This was also posted to
        <a href="https://indieweb.xyz/en/social_media" class="u-syndication">/en/social_media</a>.
    </em>
</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Designing Notes for my Plerd]]></title>
    <link href="https://www.taskboy.com/2020y07m03d_15h06m02s-designing-notes-for-my-plerd.html"/>
    <published>2020-07-06T15:06:02Z</published>
    <updated>2020-07-06T15:06:02Z</updated>
    <id>https://www.taskboy.com/2020y07m03d_15h06m02s-designing-notes-for-my-plerd.html</id>
    <content type="html"><![CDATA[<h1 id="designingnotes">Designing Notes</h1>

<p>Here are some design ideas for extending 
<a href="https://github.com/taskboy3000/plerd">my fork of Plerd</a> to implement notes.</p>

<h2 id="whatarenotes">What are notes?</h2>

<p>Notes are twitter-like short posts lacking markup or titles, but may have
embedded tags.  Structurally, these notes should be published marked up like 
<a href="https://indieweb.org/note">Indieweb Notes</a>.</p>

<p>Note tags are implemented as post tags and will be visible on the Archive 
view generated by Plerd.</p>

<p>Notes do not support markdown.  Adding structure to notes seems antithetical to their purpose.  <code>Plerd::Posts</code> already support markdown quite well.</p>

<p>Notes also do not support attribute tags, like posts.  These are simple blobs of text.</p>

<p>The only formatting that will be respected are spaces and new lines, since the post will be wrapped in block element styled with 
<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/white-space"><code>white-space: pre</code></a>.</p>

<p>URLs should also be replaced with HTML anchors.  No URL shorteners are
required since there is no limit on the size of notes.</p>

<p>The first line of a note may be treated specially.  If the line
contains a valid URL preceded by a "command" string, it should
generate a citation.  Commands are:</p>

<p><code> -&gt;       [The note is a reply to the document at the given URL]
 ^        [The note approves, supports, endoreses the content of the given URL]
</code></p>

<p>The note is marked up using the h-entry microformat and is intended to be consumed as a 
<a href="https://webmention.net/">web mention</a>.</p>

<p>See the Example notes at the end of this document.</p>

<h2 id="howareyougoingtomakethisathing">How are you going to make this a thing?</h2>

<p>The user should create a new directory for note posts.  The default will be:</p>

<p><code>Path::Class::File-&gt;new($config-&gt;source_directory, "notes");
</code></p>

<p>Which is to say, a subdirectory off of the source directory.</p>

<p>The method <code>Plerd::publish_all</code> should scan the notes source
directory for new notes.  When a new note is detected, it is parsed for tags,
which are recorded in a memory, just like posts.</p>

<p>Also like posts, notes are written back out to the original source file 
with a filename that begins with a Unix epoch timestamp (with microsecond
resolution? Thinkie!).</p>

<p>The URI to a specific note should be something like:</p>

<p>http://bloghost/note-[EPOCH].html</p>

<p>Notes should have a phrase which should be the HTML anchor text.  This phrase should consist of the first 5-7 words of the post.  Some clever heuristic could be devised to create a pleasant phrase.</p>

<h3 id="examplelinktoanote">Example link to a note</h3>

<p>The template code might look like:</p>

<p><code>Check out &lt;a href="[% note.uri %]"&gt;[% note.title ]&lt;/a&gt;
</code></p>

<p>The rendered HTML might look like:</p>

<p><code>Check out &lt;a href="http://bloghost/note-1593786477.html"&gt;Why I like cats&lt;/a&gt;.
</code></p>

<p>The attributes of the note object mirror a Post.</p>

<h3 id="exampleofrenderednote">Example of rendered note</h3>

<p><code>&lt;div class="h-entry"&gt;
    &lt;div class="e-content"&gt;Why I like cats?  Why wouldn't I? 
    &lt;a href="http://bloghost/tags.html#tag-favorite_things"&gt;#favorite_things&lt;/a&gt;
    &lt;/div&gt;
&lt;/div&gt;
</code></p>

<p>Not shown in this sample are the author attribution and other metainformation, 
as per the <a href="http://microformats.org/wiki/h-entry">h-entry microformat</a>.</p>

<p>When notes are published to HTML, tags are to be hyperlinked, in the same way
posts are.</p>

<h3 id="notesroll">Notes Roll</h3>

<p>Notes are collected into a view called Notes Roll, which is a reverse
chronological view of published notes.  At the bottom of this roll should be 
a link to the Notes Archive view.</p>

<p>Because notes are expected to grow without bound, only the most recent 25 
notes will be shown.  All notes should be shown in a list view like the 
Archive view.</p>

<h3 id="notesfeed">Notes feed</h3>

<p>The most recent notes should be available as a RSS feed.</p>

<p>The front page of the plerd should also so the latest notes in the sidebar.</p>

<h3 id="architecturalconsiderations">Architectural considerations</h3>

<p>Notes should be a subclass of <code>Plerd::Model::Post</code> and have a its own template.</p>

<p>NotesRoll is a model class with its own template.</p>

<p>NotesArchive is a model class with its own template.</p>

<p>NotesFeed is a model class with its own template.</p>

<p><code>Plerd::publish_all()</code> needs to detect notes and republish affected views as needed.</p>

<h2 id="examplenote1unicodetags">Example note 1 (unicode, tags)</h2>

<p><code>I hate Mondays. â¹ï¸
#mondays #rainydays
</code></p>

<h2 id="examplenote2preservespacing">Example note 2 (preserve spacing)</h2>

<p><code> Acrostics
 Simply
 Satisfy
 Humans
 Ordinarily
 Living like
mE
</code></p>

<h2 id="examplenote3reply-tocitation">Example note 3 (reply-to citation)</h2>

<p><code>-&gt;http://facebook.com/
This garbage site is garbage.
</code></p>

<h2 id="examplenote4likecitation">Example note 4 (like citation)</h2>

<p><code>^https://twitter.com/
Although it too is a garbage site, I rather prefer it to others.
</code></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[My fork of Plerd is now in production on taskboy]]></title>
    <link href="https://www.taskboy.com/2020y07m03d_00h14m02s-my-fork-of-plerd-is-now-in-production-on-taskboy.html"/>
    <published>2020-07-03T00:14:02Z</published>
    <updated>2020-07-03T00:14:02Z</updated>
    <id>https://www.taskboy.com/2020y07m03d_00h14m02s-my-fork-of-plerd-is-now-in-production-on-taskboy.html</id>
    <content type="html"><![CDATA[<p>OK.  I have figured out how to run plenv from a cron to run plerd, like this:</p>

<p><code>PLERD_HOME=_path_to_plerd_src
* * * * * /path/to/plerd_pub.sh
</code></p>

<p>Where plerd_pub.sh is:</p>

<p><code>#!/bin/bash -l
PLERD_HOME=/home/jjohn/src/plerd_taskboy3000
cd $PLERD_HOME &amp;&amp; ./bin/plerdcmd -P
</code></p>

<p>Clunky, I know.  Worth it for me, since plenv offers crazy flexibility.</p>

<p>Also, the source file name from bear isn't going to be a problem.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[I want to use Bear]]></title>
    <link href="https://www.taskboy.com/2020y07m02d_23h38m30s-i-want-to-use-bear.html"/>
    <published>2020-07-02T23:38:30Z</published>
    <updated>2020-07-02T23:38:30Z</updated>
    <id>https://www.taskboy.com/2020y07m02d_23h38m30s-i-want-to-use-bear.html</id>
    <content type="html"><![CDATA[<p><a href="https://bear.app">Bear</a> is a fine editor on iOS that is pretty, has markdown support, Dropbox support, and enough features for me to use for blogging.</p>

<p>I would like better control of the export filename, but maybe I can finesse this in code?</p>

<p>Like assume the first line of the file is the title if the second line looks like an attribute?  This  seems like murky waters.</p>

<p>Also, the triple backticks used in beer for preformatted clashes with the markdown/smartypants stuff baked into plerd.  So, does this work?</p>

<p><code>Hello, ð
</code></p>

<p>Maybe?</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Thinking about rubrics within Plerd]]></title>
    <link href="https://www.taskboy.com/2020-06-14-thinking-about-rubrics-within-plerd.html"/>
    <published>2020-06-14T20:50:38Z</published>
    <updated>2020-06-14T20:50:38Z</updated>
    <id>https://www.taskboy.com/2020-06-14-thinking-about-rubrics-within-plerd.html</id>
    <content type="html"><![CDATA[<p>Since I want to step back from Twitter for a while, I need a
substitute.  I have been thinking about expanding the concept of <a href="https://sivers.org/nowff">Now pages</a> to be more like a
personal timeline of my current thoughts.  Sort of like:</p>

<p>
  I am currently a fulltime employee of MathWorks and not looking for
  new opportunities.

  I am a tabletop game designer and music composer in my spare time.

  Here is the latest from the top of my mind:

  {latest post}
  {post}
  {post}

  Here's a link to older posts.
</p>

<p>This would enrich the typical now page, but also give it a
microblogging aspect, which should help get me off twitter, while
controlling my own content.</p>

<p>Since I use (Plerd)[https://github.com/jmacdotorg/plerd] as the
blogging engine, I could implement this in a few ways, but I lean
towards adding a new header in posts called "rubric", which is really
just a subdirectory under the publication_directory.</p>

<p>I then want Plerd to consider only non-rubric posts for the top-level
recent posts and tags, while rubric subdirections should get a
parallel web structure to the top level (e.g. recent posts, tags, etc).</p>

<p>Maybe rubrics just need archive pages and a recent post thingie?
Maybe rubric tags are part of the top level tag set?  I am thinking
this through now.</p>

<p>Once again, I caught between doing my thing and building a framework.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Our mission to Mars]]></title>
    <link href="https://www.taskboy.com/2020-03-20-our-mission-to-mars.html"/>
    <published>2020-03-20T15:32:53Z</published>
    <updated>2020-03-20T15:32:53Z</updated>
    <id>https://www.taskboy.com/2020-03-20-our-mission-to-mars.html</id>
    <content type="html"><![CDATA[<p>Like many Americans, my family has been sheltering in place due to the
outbreak of Covid-19.  Although we have provisioned well enough for
our physical needs, there is the larger problem of managing the
ongoing stress of isolation.</p>

<p>To this end, we have created a fiction that our home is a luxury space
ship, the USS CosyTown, on route to colonize Mars.</p>

<p>To track our daily progress, I created a simple, no image file, pure
CSS and vanilla JavaScript web app called <a href="http://taskboy.com/mission_to_mars">Mission to
Mars</a>.</p>

<p>As nice as a toy as this is, this was primarily a learning excerise to
better understand VSCode, npm, and newer CSS tricks (new, at least, to
me).</p>

<p>While I am not ready to jump onboard the all JS/npm bandwagon yet, I
am pleasantly surprised how nice the workflow is for simple web
projects.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[On Organizing JavaScript and CSS Assets Within MVC Frameworks]]></title>
    <link href="https://www.taskboy.com/2019-08-03-on-organizing-javascript-and-css-assets-within-mvc-frameworks.html"/>
    <published>2019-08-03T17:52:43Z</published>
    <updated>2019-08-03T17:52:43Z</updated>
    <id>https://www.taskboy.com/2019-08-03-on-organizing-javascript-and-css-assets-within-mvc-frameworks.html</id>
    <content type="html"><![CDATA[<p><img src="/img/web_pyramid.png" alt="Web Pyramid via @pinboard on Twitter" id="webpyramidviapinboardontwitter"></p>

<p>(h/t to @pinboard on Twitter for posting this pyramid
graphic)</p>

<p>When I develop web apps (which these days are generally small,
intranet business apps), I use Perl 5.2x and
<a href="https://mojolici.us/">Mojolicious</a> for the core stack.  MySQL, apache
and my custom ORM are also part of that stack, but let's leave that
for a future post.</p>

<p>My front-end JavaScript and CSS footprints are fairly small: <a href="http://getbootstrap.com">Bootstrap
4.x</a> (which currently requires jQuery), and
<a href="https://fontawesome.com/">Font Awesome 5</a>.  Because of all the
wonderful things ECMAScript 6 has brought, I have been weening myself
off jQuery (quite successfully).</p>

<p>Understand that my web apps are not Single Page Applications (SPA).  I
have no requirements to make such apps and I have always found them
problematic.  There is nothing quite like a browser page refresh to
re-establish a sane web app state.</p>

<p>For a while, I have been using the trick of adding the current
controller name to an outer wrapper in the layout, something like
this:</p>

<p>
  &lt;!doctype html>
  &lt;html lang="en">
  &lt;head>
     &lt;meta charset="UTF-8"/>
     &lt;title>Document&lt;/title>
  &lt;/head>
  &lt;body>
     &lt;div class="container controller $THIS_CONTROLLER">
       $VIEW_CONTENT
     &lt;/div>
  &lt;/body>
  &lt;/html>    
</p>

<p>Since the layout is implemented by a server-side templating engine
(usually Template Toolkit), it is easy to get the name of the current
controller and insert that into the layout even before the
view-specific content is available.</p>

<p>Why do this?  Scoping your DOM in this manner makes it trivial to scope
CSS elements to specific views.  Imagine I have a controller called
Users.  I might have controller-specific CSS that looks like this:</p>

<p>
  h3 { font-size: 1.5 rem; color: yellow }
  .Users h3 { font-size: 120%; color: pink; font-style: italic }
</p>

<p>This ensures that all the H3 tags on any view generated by the Users
controller appears larger, pinker and slantier than H3 tags found on
other pages.</p>

<p>Scoping CSS brings a great deal of structure to CSS quite easily.</p>

<p>ECMAScript 6 defines
<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules">modules</a>,
which create a compartmentalization of code long lacking in JS.  The
top level HTML makes a top-level JS script as a module like this:</p>

<p>
  &lt;script type="module" src="./top-level.js">&lt;/script>
</p>

<p>Inside of that top level JS script, you can use import statements
(which syntactally borrow a lot from python) to pull in other JS
modules using the Fetch API.  Finally, ECMAScript 6 introduces a class
statement along with an <code>extends</code> mechanism so that you
never have to think about prototype again.</p>

<p>Just like CSS can be scoped to controllers, it occurred to me that JS
modules can be scoped to controllers!</p>

<p>
  &lt;!doctype html>
  &lt;html lang="en">
  &lt;head>
     &lt;meta charset="UTF-8"/>
     &lt;title>Document&lt;/title>
  &lt;/head>
  &lt;body>
     &lt;div class="container controller $THIS_CONTROLLER">
       $VIEW_CONTENT
     &lt;/div>
     &lt;script type="module" src="js/$THIS_CONTROLLER.js">&lt;/script>
  &lt;/body>
  &lt;/html>      
</p>

<p>Common code can be factored into classes used by multiple
controller-level modules.  This brings a tremendous amount of
structure and sanity to web apps that have long been missing.</p>

<p>Hope this inspires you to try out this pattern in your own projects.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Using gmail to send mail with Perl's Email::Sender]]></title>
    <link href="https://www.taskboy.com/2019-07-17-using-gmail-to-send-mail-with-perls-emailsender.html"/>
    <published>2019-07-17T23:54:11Z</published>
    <updated>2019-07-17T23:54:11Z</updated>
    <id>https://www.taskboy.com/2019-07-17-using-gmail-to-send-mail-with-perls-emailsender.html</id>
    <content type="html"><![CDATA[<p>Every couple of years, someone in the Perl community writes a new
wrapper around sending email.  Although an old protocol, stuff like
security and multimedia attachments present a lot of wrinkles that
some libraries handle poorly.</p>

<p>As you may know, you can use gmail to send mail, but you need to jump
through some hoops.  In the following example, I am going to show how
to connect to gmail using SSL/TLS and the PLAIN AUTH protocol for
passing SASL credentials.</p>

<p>Be warned: you need to allow "less secure" apps from your <a href="https://myaccount.google.com/lesssecureapps">Google
settings</a>.  This allows
you to use your gmail username and password for authorization
credentials.  The more secure way is to use 2-step auth, which will
generate a seperate password for just this app.  I leave this as an
excerise for the reader.</p>

<p>You will need (according to the docs and my own experiments), the
following modules:</p>

<ul>
<li>Email::Sender</li>
<li>Email::Simple</li>
</ul>

<p>If you install these with cpan or
<a href="https://metacpan.org/pod/distribution/Carton/script/carton">carton</a>,
the dependencies will be handled for you.  There are Moose deps, but
it is worth it.</p>

<p>You will need the following <code>use</code> statements:</p>

<p>
  use Email::Sender::Simple ('sendmail');
  use Email::Sender::Transport::SMTP;
  use Email::Simple;
  use Email::Simple::Creator;
</p>

<p>First, create the transport object.  This contains the details talking
to the remote SMTP server (which, in this case, is
<code>smtp.gmail.com</code>).</p>

<p>
  my $transport = Email::Sender::Transport::SMTP->new({
                                                       host => 'smtp.gmail.com',
                                                       port => '587',
                                                       ssl => 'starttls',
                                                       sasl_username => 'ACCOUNT@gmail.com',
                                                       sasl_password => 'SECRET_WORD',
                                                       debug => 0,
                                                      });

</p>

<p>I believe most of these parameters are self-explanatory, but note the
debug switch.  Set this to 1 if your messages are not being delivered.
It helps a great deal.</p>

<p>Next, we need to create the email message.</p>

<p>
 my $email = Email::Simple->create(
                                    header => [
                                               To => 'SOMEONE@SOMEWHERE.TLD',
                                               From => 'ACCOUNT@gmail.com',
                                               Subject => 'Some important announcements',
                                              ],
                                    body => $msg,
                                   );
</p>

<p>If you understand SMTP, then header section may make more sense.  You
can put any allowable SMPT header here.  In this case, I am only
sending simple ASCII messages, so a dumb string works for the whole of
the body.  If you wanted to send HTML, you would need to figure out
attachments, which is a task I send you on with my blessings.</p>

<p>Finally, bring these two objects together using the
<code>sendmail</code> function exported from
<code>Email::Sender::Simple</code> module like this:</p>

<p>
sendmail($email, {transport => $transport});
</p>

<p>If this should fail, it will die.  You may want to wrap this in an
eval if you want to suppress that behavior.</p>

<p>I hope this helps you on your journey with Perl.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Testing iWriter from iPhone]]></title>
    <link href="https://www.taskboy.com/2019-06-23-testing-iwriter-from-iphone.html"/>
    <published>2019-06-23T18:05:31Z</published>
    <updated>2019-06-23T18:05:31Z</updated>
    <id>https://www.taskboy.com/2019-06-23-testing-iwriter-from-iphone.html</id>
    <content type="html"><![CDATA[<p>This is a test of iwriter from my iphone.</p>

<p>Can I change the file name?  Yes.</p>

<p>Looks like there is spell check.</p>

<p>Seems OK, actually.</p>

<p>Does dropbox sync work? Yes.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[NarraScope 2019]]></title>
    <link href="https://www.taskboy.com/2019-06-16-narrascope-2019.html"/>
    <published>2019-06-16T15:01:23Z</published>
    <updated>2019-06-16T15:01:23Z</updated>
    <id>https://www.taskboy.com/2019-06-16-narrascope-2019.html</id>
    <content type="html"><![CDATA[<p><img src="/img/narrascope.jpg" alt="Narrascope Program" title="Narrascope Program" id="narrascopeprogram"></p>

<p>2019 saw the first big outreach project of the <a href="https://narrascope.org/">Interactive Fiction
Technology Foundation</a> in the form of a
conference named <a href="https://narrascope.org/">NarraScope</a>.  I was luckily
enough to attend it, as it happen essentially in my backyard.  Since
this is the only conference I will be going to this year, NarraScope
is sort of my Comicon and The Perl Conference bundled into one event.</p>

<p>The three day conference kicked off Friday night in the <a href="https://en.wikipedia.org/wiki/Ray_and_Maria_Stata_Center">Stata
building of
MIT</a>.  If
you have never been inside this building, it does indeed appear to be
the site of a tragic Star Trek teleporter accident.</p>

<p>Although I missed the opening day on Friday, I did make it on
Saturday, where I was greeted by <a href="https://textfiles.com/">Jason Scott</a>
in <a href="https://en.wikipedia.org/wiki/Ray_and_Maria_Stata_Center">full conference
regalia</a>.
This was our first meeting IRL, which went swimmingly.  We compared
our statin prescriptions and I missed most of the keynote talk.</p>

<p>I then attended the State of Twine talk by <a href="https://chrisklimas.com/">Chris
Klimas</a>, which was really motivating for me.
I do not have the time for a lot of side projects, so I feed
vicariously off those who do.  Twine is having very typical growing
pains that are common for open source projects.  Logistical issues
like deciding what is the right feedback back mechanism for the
community, who's steering the project, etc. elicited deja vu.
Inform's [Graham Nelson], who was in attendence at the time, echoed
the same issues.  Some of this is where IFTF can and should help.
Other aspects, these projects will have to figure out.  I was <a href="https://i.imgflip.com/2ctm2m.jpg">super
jazzed</a> to be in the room.</p>

<p>After lunch, I attended the performance of
<a href="https://twitter.com/TheSquink">Squinky's</a> "How Making Videogames
Turned Me Into a Depressed Gay Communist" and it was intense.  To
describe it will not help.  You have to see it for yourself.</p>

<p>I then chatted with Graham Nelson for a long while, professing my
admiration for Inform, which I compared favorably to Perl.  Inform
will be open sourced under Larry Wall's Artistic License, about which
I am gladden.  Also connected with Aaron Reed of Blue Lacuna fame. </p>

<p>Although the conference continued, I needed to get back home.  My
thanks to IFTF for pulling together a great conference.  Here's hoping
for bigger and better things next year.</p>


const img = document.querySelectorAll("img[src='/img/narrascope.jpg']")[0];
const p = img.parentElement;
img.classList.add("rounded");
img.style.boxShadow = "2px 4px 4px rgba(0,0,0,0.5)";
p.style.width = "301px";
p.classList.add("mx-auto");

]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Installing Plerd from head with no root access]]></title>
    <link href="https://www.taskboy.com/2019-02-18-installing-plerd-from-head-with-no-root-access.html"/>
    <published>2019-02-18T18:08:53Z</published>
    <updated>2019-02-18T18:08:53Z</updated>
    <id>https://www.taskboy.com/2019-02-18-installing-plerd-from-head-with-no-root-access.html</id>
    <content type="html"><![CDATA[<p>This post is more of some admin notes as I try to get a clean install
of plerd from github.</p>

<p>First, you need a modern perl (I'm using perl 5.24 via plenv).</p>

<p>You should install Carton next.  It will make everything easier.</p>

<p>
  $ git clone git@github.com:jmacdotorg/plerd.git
  $ cd plerd
  $ carton
</p>

<p>Create a new file called env.sh.  Make it look like this:</p>

<p>
  #!/bin/bash
  # source me: ./env.sh 
  #
  export APP_HOME=[REPLACE WITH YOUR PATH TO plerd]
  export PERL5LIB=$APP_HOME/local/lib/perl5
  export PATH="$APP_HOME/local/bin:$PATH"
</p>

<p>Replace items within [] using appropriate values. <br>
Save this file and then source it:</p>

<p>
  $ source ./env.sh
</p>

<p>Now you can run:</p>

<p>
  $ perl Makefile.PL âPREFIX=./local
  $ make && make install
</p>

<p>I think there is a way to force plerd into the local/lib/perl5 structure.  For now, I just moved these manually.</p>

<p>
  $ mv -v local/share/perl/5.24.1/*pm local/lib/perl5/
  $ mv -v local/share/perl/5.24.1/Plerd local/lib/perl5/
</p>

<p>You will find plerdall and plerdwatcher in ./local/bin and both should
be in your PATH.</p>

<p>Time to make the default plerd config:</p>

<p>
  $ plerdall âinit
</p>

<p>Go ahead and edit that file in the proscribed way.</p>

<p>To run plerdall correctly, you will probably want to change into the newly created plerd directory.  This will be inside the git sandbox but whatevs.</p>

<p>
  $ cd plerd
  $ plerdall
</p>

<p>Interestingly, the following files were empty:</p>

<p>
  atom.xml
  feed.json
  recent.xml
</p>

<p>Some of the tag/* files were also empty.</p>

<p><em>UPDATE:</em> I believe my local disk was full when I tried this, so this is not a plerd problem.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[A Public Kaizen on Blogging]]></title>
    <link href="https://www.taskboy.com/2019-01-27-a-public-kaizen-on-blogging.html"/>
    <published>2019-01-27T16:18:45Z</published>
    <updated>2019-01-27T16:18:45Z</updated>
    <id>https://www.taskboy.com/2019-01-27-a-public-kaizen-on-blogging.html</id>
    <content type="html"><![CDATA[<p>Going through my old blog posts from over ten years ago has been a humbling experience.  A good deal of my writing style was cloying and needy.  Joe Michael Straczinski has suggested that to be a good writer, you need to burn about 100,000 words writing poorly.  I think Joe was a quick study.</p>

<p>Often, this blog attempted to provide insights into the tech industry.  These attempts were meager and weak.  At best, I only amplified common knowledge and at worst I put my ignorance on public display.</p>

<p>A significant chunk of the blog corpus reads like a kind of proto-Twitter.  There is a lot of personal stuff that lacks context or perspective.  It is tempting to attribute these shortcomings to the age of the writer, but there are many examples of great writers who manifested skill early in their careers.</p>

<p>These maudlin observations are an attempt at a ''kaizen'', which is a Japanese word meaning "improvement".  A kaizen event is a time dedicated away from normal activities to reflect on what went well and what could have been improved in you life and work.  </p>

<p>The outcome of my personal kaizen for this blog is to produce work of higher quality that provides better insights into whatever subject moves me.  A good deal of my headspace is in boardgame design, but I also want to share what I've learned about software engineering in the web application space over these past twenty years.</p>

<p>Here is the part of the post were I put a call to action like "subscribe to my atom feed" or "follow me on twitter!".  Instead, I will focus narrowly on my content and let the Deep Learning AI at search engines handle the marketing.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[On Single-play games]]></title>
    <link href="https://www.taskboy.com/2019-01-22-on-single-play-games.html"/>
    <published>2019-01-22T18:05:39Z</published>
    <updated>2019-01-22T18:05:39Z</updated>
    <id>https://www.taskboy.com/2019-01-22-on-single-play-games.html</id>
    <content type="html"><![CDATA[<p>A friend of mine sent me a meme today featuring a picture of someone filling a cup using two spouts of a soda fountain at the same time.  One spout was labelled "Legacy system" and the other "Literally every other game".  On the hand holding the cup was the name of a well-known game designer who is famous for producing legacy games.</p>

<p>"Sick burn," I remarked.</p>

<p>However, this meme got me thinking more about Legacy and single-use games.</p>

<p>Legacy games are versions of existing games with new rules and mechanics that permanently change the components of the game.  This means that these kinds of games usually can only be played once (or if campaign-based, only played a set number of times).  The most popular version of this kind of game is Legacy Pandemic, which now ships in seasons.  This is to say, each season is an isolated campaign that players are expected to finish before going on to the next one.</p>

<p>If you are a traditional or causal boardgammer, you may find the idea of destroying cards or marking up the playing board a startling idea.  Let your mind be at ease; It is.  However, legacy games are a subset of single-use games, many of which have been with us for some time.</p>

<p>"Real life" escape rooms have become extremely popular.  The idea of solving puzzles in real-team with your friends and family is quite fun for a certain class of people.  This kind of entertainment is inherently single-use.  Sure, you can try to go through the puzzle again, but it probably won't be as much fun.</p>

<p>It isn't surprising that boardgames have tried to capture some of that fun at home using a variety of traditional boardgame elements (particularly cards).  Games like the Exit series come to mind.  My family has played a couple of these to great effect.  Like their real-life counterparts, these boardgames are single-use.</p>

<p>Recently, Z-Man games introduced a Choose Your Own Adventure IP-branded game that plays like one of the classic CYOA books I grew up reading.  The designers did a great job of translating the experience of those books to a cooperative gaming environment.  Some have complained that it isn't much of a game, to which I agree.  However, it was a fantastic, single-use activity.</p>

<p>It only recently occurred to me that there is little new about the genre of single-use games.  One of the most successful games of my youth was inherently single-use although it was careful never to point out this fact.  Trivial Pursuit, with its admittedly large, but fixed collection of question-answer pairs, surely must be included in this group of games.  Trivial Pursuit later sold new "editions" of thematically linked questions (e.g. the Silver Screen edition, the Baby Boomer edition, etc.) that pointed to the single-use nature of the core mechanic.</p>

<p>Others have pointed out that criticism the "disposable" nature of single-use games ignores that most boardgames are played but a handful of times, even the wildly popular ones.  If you can get a couple of hours out of game that you can't play again, you have a story that will last a lifetime.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[plerd-cli - an interactive tool for Plerd]]></title>
    <link href="https://www.taskboy.com/2019-01-21-plerd-cli-an-interactive-tool-for-plerd.html"/>
    <published>2019-01-21T19:56:18Z</published>
    <updated>2019-01-21T19:56:18Z</updated>
    <id>https://www.taskboy.com/2019-01-21-plerd-cli-an-interactive-tool-for-plerd.html</id>
    <content type="html"><![CDATA[<p>My self-imposed Twitter exile has already paid off with the creation
of this little program: plerd-cgi.  This is designed to be an
interactive tool to "manage" your plerd instance.  Currently, the tool
can regenerate all your content or from your sources directory or just
a single post.  This is very helpful when you are on the host running
plerd and you are changing stylesheets or other settings.</p>

<p>I will ping the plerd development team (hi, Jmac) and see if there is
interest in adding this tool to the plerd/bin directory (which is
where I have it).</p>

<p>Increasing, my version of plerd is drifting from the released version.
When plerd gets tags (jmac's re-implementation of a feature I
contributed), then I will try to merge these codebases together again.</p>

<p>From previous post, you can see that I am experimenting with managing
photos.  Plerd's killer feature is its integration with Dropbox.  This
really enables a powerful and flexible blogging platform for those
used to composing in text editors, like me.</p>

<p>
#!/usr/bin/env perl

use warnings;
use strict;

use FindBin;
use lib ("$FindBin::Bin/../lib");

use Cwd ('abs_path');
use File::Basename;
use Getopt::Long;
use Path::Class::File;
use YAML qw( LoadFile );

use Plerd;

our %gKnownCommands =
    ('regen_all' => \&cmd_regenerate_all, 'regen' => \&cmd_regenerate_file, 'help' => \&cmd_help);

main();
exit;

#ââ
# Subs
#ââ
sub main {
    my $opts = usage();

    my $plerd = init_plerd();

    # Only do one command
    while (my ($command, $action) = each %gKnownCommands) {
        if (defined $opts->{$command}) {
            return $action->($plerd, $opts);
        }
    }

    return;
} # end sub main


sub usage {
    my %opts;

    GetOptions(
        "help"        => \$opts{help},
        "R|regen-all" => \$opts{regen_all},
        "r|regen:s"   => \$opts{regen},
        "v|verbose"   => \$opts{verbose},
    );

    if ($opts{help}) {
        dump_usage();
        exit;
    }

    my $has_command = 0;
    for my $command (keys %gKnownCommands) {
        $has_command |= defined $opts{$command};
    }

    if (!$has_command) {
        die("No command given.  See âhelp for details.\n");
    }

    return \%opts;
} # end sub usage


sub dump_usage {
    print new($config_ref);

    return $plerd;
} # end sub init_plerd


sub cmd_help {
    my ($plerd, $opts) = @_;
    dump_usage();
    return;
} # end sub cmd_help


sub cmd_regenerate_all {
    my ($plerd, $opts) = @_;

    my $start = time();
    if ($opts->{verbose}) {
        print("Regenerating all content.  This may take a while.\n");
    }

    $plerd->publish_all();

    if ($opts->{verbose}) {
        printf("Regeneratation completed in %0.2f minutes.\n", (time() - $start) / 60);
    }

} # end sub cmd_regenerate_all


sub cmd_regenerate_file {
    my ($plerd, $opts) = @_;

    my $source_file = abs_path($opts->{regen});

    if (!-e $source_file) {
        die("Cannot find '$source_file'\n");
    }

    # is the source file within the source_directory?
    my $dirname = dirname($source_file);
    if ($dirname ne $plerd->source_directory) {
        die(sprintf(
                "File '%s' does not appear to be in the source directory '%s'\n",
                $source_file, $plerd->source_directory
            )
        );
    }

    if ($opts->{verbose}) {
        print("Publishing '$source_file'\n");
    }

    my $post = Plerd::Post->new(
        source_file => Path::Class::File->new($source_file),
        plerd       => $plerd
    );
    eval {
        $post->publish;
        1;
    } or do {
        die(sprintf("Could not publish '%s': %s\n", $source_file, $@));
    };

    # Publishing this new post triggers updates on these other pages
    for my $action (
        'publish_tag_indexes', 'publish_archive_page',
        'publish_recent_page', 'publish_rss',
        'publish_jsonfeed'
    ) {
        if ($opts->{verbose}) {
            print("-> $action\n");
        }
        $plerd->$action;
    }

    if ($opts->{verbose}) {
        printf("View your new post here: %s\n", $post->uri);
    }

    return;
} # end sub cmd_regenerate_file

</p>

<p><strong>UPDATE:</strong> I spoke to Jmac about this and he pointed out his intention for the exisiting plerdall program to fill this niche.  Additionally, the publish all functionality is already there.  So I will talk a crack at porting what I have here when I am up and running with the current tip of plerd.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Picture, if you will]]></title>
    <link href="https://www.taskboy.com/2019-01-21-picture-if-you-will.html"/>
    <published>2019-01-21T19:32:00Z</published>
    <updated>2019-01-21T19:32:00Z</updated>
    <id>https://www.taskboy.com/2019-01-21-picture-if-you-will.html</id>
    <content type="html"><![CDATA[<p><img src="/img/IMG_0316.JPG" alt="Picture of Joe Johnston with glasses" title="No, what are YOU looking at?" id="pictureofjoejohnstonwithglasses"></p>

<p>I was today years old when I learned about
<a href="https://meta.stackexchange.com/questions/209652/why-was-this-uploaded-image-rotated-90-degrees">rotation metadata</a>
in the EXIF header of jpgs.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Configuring emacs25 with perltidy, an epic adventure]]></title>
    <link href="https://www.taskboy.com/2019-01-21-configuring-emacs25-with-perltidy-an-epic-adventure.html"/>
    <published>2019-01-21T16:54:44Z</published>
    <updated>2019-01-21T16:54:44Z</updated>
    <id>https://www.taskboy.com/2019-01-21-configuring-emacs25-with-perltidy-an-epic-adventure.html</id>
    <content type="html"><![CDATA[<p>It's a simple thing to ask.  You want emacs to nicely indent your
code.  Emacs comes with two perl editing modes: perl-mode and
cperl-mode.  For many years, I have used cperl-mode happily.  However,
$dayjob prefers the way perltidy arranges code and I have come to agree.</p>

<p>If you would like to get perltidy to format your code in emacs, you will need to do the following:</p>

<ul>
<li>install emacs25</li>
<li>install Perl::Tidy</li>
<li>install tramp</li>
<li>install perltidy.el</li>
</ul>

<p>This is a lot more work than it should be, but this is what I needed
to do to get this working under Debian 9.4.  Maybe your mileage will
vary.</p>

<h3 id="installingemacs25">Installing emacs25</h3>

<p>This is pretty easy to do on debian:</p>

<p>
  $ sudo apt-get install emacs25-nox
</p>

<p>If you want the X version of emacs, leave off -nox from the package name.</p>

<h3 id="installingperl::tidy">Installing Perl::Tidy</h3>

<p>This too is pretty straight forward for perlers:</p>

<p>
  $ sudo cpan install Perl::Tidy
</p>

<p>There are no XS parts of Perl::Tidy so this usually goes fast.  Note
that if you are using something like Perlbrew or plenv, you probably
still want to globably install Perl::Tidy rather than make this a
per-project module.</p>

<p>Perltidy's default styling can be overridden by a local ~/.perltidyrc.
Here's mine:</p>

<p>
# -*-conf-unix-*-
# This is how $dayjob thinks of the world and I agree
-l=100
-i=4
-ci=4
# âoutdent-labels âoutdent-label-characters=2
âopening-brace-always-on-right
âcuddled-else
# âbreak-after-all-operators
# exception: "or" and "and" read better at the start of the line
-wbb="or and ->"
# ToDo: Currently we break after these operators:
âwant-break-after='. , && || **= += *= &= >= ||= %= ^= x= .='
âwant-break-before='or and -> ? : > -> // % + - * / x != == >=  | &'
âno-break-at-old-ternary-breakpoints
âno-line-up-parentheses
âclosing-side-comments
âclosing-side-comment-prefix="# end"
-cscl="sub : BEGIN END"
-csci=3
# Allow up to two consecutive blank lines.
âmaximum-consecutive-blank-lines=3
âno-blanks-before-subs
âno-blanks-before-comments
âminimum-space-to-comment=1
-vt=2   # Maximal vertical tightness
-cti=0  # No extra indentation for closing brackets
âparen-tightness=2   # High parenthesis tightness
-bt=1   # Medium brace tightness
-sbt=1  # Medium square bracket tightness
-bbt=1  # Medium block brace tightness
âno-outdent-long-quotes
âno-outdent-long-comments
âno-space-for-semicolon
âformat-skipping
âstatic-side-comments
âstatic-side-comment-prefix="##"
</p>

<h3 id="installingtramp">Installing tramp</h3>

<p><a href="http://www.gnu.org/software/tramp/">Tramp</a> is a dependency of the
perltidy emacs package.  Unfortunately, it does not appear to come
with the Debian emacs25 package, nor did I find a debian package for
this.  This leaves us with a from-source code install.</p>

<p>You will need autoconf:</p>

<p>
  $ sudo apt-get install autoconf
</p>

<p>Clone the git repo into a convenient directory (e.g. ~/src/emacs):</p>

<p>
   $ git clone git://git.savannah.gnu.org/tramp.git
</p>

<p>And then build it:</p>

<p>
  $ cd tramp && autoconf && make && make check
</p>

<p>There were a few unit test failures, but I ignored them.</p>

<p>Now let emacs know about this package by adding the following lines to ~/.emacs:</p>

<p>
  ;;ââââââââââââââââââââââââââââââââ-
  ;; tramp stuff 
  (add-to-list 'load-path "~/src/emacs/tramp/lisp/")
  (add-to-list 'Info-directory-list "~/src/emacs/tramp/info/")
  (require 'tramp)
</p>

<p>Be sure to get the paths right in those add-to-list directives.</p>

<h3 id="installingperltidy.el">Installing perltidy.el</h3>

<p>If you made it this far, you're a linux/unix pro!  The last step is easy.</p>

<p>
  $ mkdir -p ~/.emacs.d/lisp ; wget -O ~/.emacs/lisp/perltidy.el https://www.emacswiki.org/emacs/download/perltidy.el
</p>

<p>This adds the perltidy lisp bindings to your .emacs.d directory of
local packages.  Change the paths to reflect your organization scheme.</p>

<p>If you have not yet done so, tell emacs about your local emacs packages by adding the following to ~/.emacs:</p>

<p>
  (add-to-list 'load-path "~/.emacs.d/lisp/")
</p>

<p><strong>FINAL STEP</strong>: Tell emacs about the perltidy package by editing ~/.emacs</p>

<p>
;;ââââââââââââââââââââââââââââââââ-
;; perltidy
(require 'perltidy)
</p>

<p>Mostly, I use M-x perltidy-dwim on a buffer to indent it, but here's how to bind that operation to the F12 key:</p>

<p>
(global-set-key (kbd "") 'perltidy-dwim)
</p>

<p>I hope you guessed that this line is added to your ~/.emacs file after the require line.</p>

<p>I hope this makes your life of indenting perl code in emacs all the more pleasant.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[A New Hope]]></title>
    <link href="https://www.taskboy.com/2019-01-20-a-new-hope.html"/>
    <published>2019-01-20T23:59:12Z</published>
    <updated>2019-01-20T23:59:12Z</updated>
    <id>https://www.taskboy.com/2019-01-20-a-new-hope.html</id>
    <content type="html"><![CDATA[<p>Something happened on Twitter today.  Rather, something happened to my relationship with Twitter today.</p>

<p>I am taking a break from the platform for a while.</p>

<p>This isn't because I got into a fight with someone online or discovered some new terrible business practice of Twitter.  This flight from social media is driven by two personal things.</p>

<p>The first is my own dissatisfaction at my constant use of Twitter.  Twitter provides a quick diversion when I have less than five minutes to kill.  I now realize that I need to embrace that boredom and find a more creative outlet for it.  That outlet may even just be whining on this blog in 140 character chunks, but at least it will be something disconnected from a larger, dumber narrative that I do not control.</p>

<p>The other factor is that Twitter is not just depressing me or triggering outrage in me, it is now filling me with despair.  Despair is a very potent poison that is best left unopened.</p>

<p>I hope my vacation will push me to work on Plerd stuff more and this blog.  I have long been meaning to discourse on what I think modern web applications should look like from the server and client side.  Plus, there are a million little tech factoids that I should have been recording here that are now lost to time.</p>

<p>Life is short and there are a lot of books I have not yet read.</p>

<p><strong>UPDATE:</strong> Just a note, mostly for me. This post was composed on iOS with the Textastic editor.  It features dropbox integretion, which is how Plerd gets articles to post. Textastic does not yet support spell checking, which is a feature I demonstrably need.  I guess I can limp along with Google for a bit.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Testing network speed with raspberry pi]]></title>
    <link href="https://www.taskboy.com/2018-09-04-testing-network-speed-with-raspberry-pi.html"/>
    <published>2018-09-04T14:47:39Z</published>
    <updated>2018-09-04T14:47:39Z</updated>
    <id>https://www.taskboy.com/2018-09-04-testing-network-speed-with-raspberry-pi.html</id>
    <content type="html"><![CDATA[<p>This is a quick hack to test the Internet connection speed of your
raspberry pi running rasbian linux.</p>

<p>As you may know, I have a <a href="http://taskboy.com/boinc/">small farm of RPIs doing SETI@Home
work</a>. I have one head node that all that
traffic flows through.  This simplifies configuration and makes the
farm portal.  Here's an architecture diagram via <a href="https://emacs.stackexchange.com/questions/2428/example-of-drawing-rectangle-in-picture-mode#2439">emacs
artist-mode</a>.</p>

<p>
                                  +ââ-+
                             ââ+ node1 |
                             |    +ââ-+
                             |
  +âââ+   +âââ+   |    +ââ-+
  | Public |â| Pi Head |â|â-+ node2 |
  +âââ+   +âââ+   |    +ââ-+
                             |
                             |    +ââ-+
                             ââ+ node3 |
                                  +ââ-+
</p>

<p>I was worried that perhaps the traffic from my six worker nodes was
overwhelming the WiFi adapter of my head node.  There are two
approaches I used to do this.</p>

<p>The first is to look at the performace of short-term bursts.  This
will give me a flavor for the peak capacity provided by the head
node's built-in WiFi adapter.  To do this I need nload (a terminal
program that provides histograms of network traffic per adapter) and
wget.</p>

<p>I open one terminal and run nload -i wlan0 (I do not use predictable
interface names because I am ancient).  Then I open a second terminal
and run wget to fetch a large file.  Fitting, the rasbian image is
quite adequate for this.</p>

<p><code>wget -O /dev/null https://downloads.raspberrypi.org/raspbian_latest
</code></p>

<p>Don't worry about disk space.  This command throws all the fetch data
into the bit bucket.</p>

<p>My head node is about 4-6 meters from the WiFi access point in my
home.  I get about 40 - 45 MBit/s on average from this load.  Yes,
there are a lot of reasons why the load may be delivered as
consistently as in a lab setting, but this will give you a flavor for
the capacity of your RPI's WiFi service.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[A systemd service file for plerdwatcher and more]]></title>
    <link href="https://www.taskboy.com/2018-08-23-a-systemd-service-file-for-plerdwatcher-and-more.html"/>
    <published>2018-08-23T13:45:11Z</published>
    <updated>2018-08-23T13:45:11Z</updated>
    <id>https://www.taskboy.com/2018-08-23-a-systemd-service-file-for-plerdwatcher-and-more.html</id>
    <content type="html"><![CDATA[<p>So you have plerd all happy on your system.  You run plerdwatch start
and your off to the races.  But what happens if your machine reboots?
You need to restart both Dropbox and plerdwatcher.</p>

<p>If you are on a linux box that supports systemd, you're in luck.</p>

<p>The following file will restart dropbox for you (you will need to
change {USER} to username of the account running dropbox).</p>

<p>
[Unit]
Description=Dropbox as a system service
After=local-fs.target network.target

[Service]
Type=simple
User={USER}
ExecStart=/usr/bin/env "/home/{USER}/.dropbox-dist/dropboxd"
Restart=on-failure
RestartSec=1

[Install]
WantedBy=multi-user.target

</p>

<p>This should be copied in /etc/systemd/system/dropbox.service.</p>

<p>The plerdwatcher unit file is a little more involved since on my
machine, I run plerd using
<a href="https://github.com/tokuhirom/plenv">plenv</a>.  Here is the file:</p>

<p>
[Unit]
Description=Plerd daemon that monitors incoming posts and handles webmentions
Requires=network.target
After=network.target

[Service]
Type=forking
TasksMax=infinity
User={USER}
WorkingDirectory=/home/{USER}/src/plerd
ExecStart=/bin/bash -lc "cd /home/{USER}/src/plerd && PERL5LIB=/home/{USER}/src/plerd/local/lib/perl5 bin/plerdwatcher start"
ExecStop=/bin/bash -lc "cd /home/{USER}/src/plerd && PERL5LIB=/home/{USER}/src/plerd/local/lib/perl5 bin/plerdwatcher stop"
Restart=always

[Install]
WantedBy=multi-user.target
</p>

<p>As with the previous file, you will need to replace {USER} with your
account name.  My installation of plerd is in my home directory in a
directory called 'src'.  Inside of the plerd folder, I have a local
directory containing Perl libraries needed for Plerd built for the
version of Perl I run plerd with (5.26.1).</p>

<p>You may need to tinker with this scripts a bit, but this should help
you get started.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Taskboy Blogging again for the first time]]></title>
    <link href="https://www.taskboy.com/2018-08-22-taskboy-blogging-again-for-the-first-time.html"/>
    <published>2018-08-22T23:47:21Z</published>
    <updated>2018-08-22T23:47:21Z</updated>
    <id>https://www.taskboy.com/2018-08-22-taskboy-blogging-again-for-the-first-time.html</id>
    <content type="html"><![CDATA[<p>Welcome to my new blog.  It is powered by Plerd, which is a OSS project I contribute to.</p>

<p>More details later.</p>

<blockquote>This blog is also made by computer and powered by keys. You need a little humor in your blog.</blockquote>

<p>â My Son, Angus</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Tags are working]]></title>
    <link href="https://www.taskboy.com/2018-08-21-tags-are-working.html"/>
    <published>2018-08-21T15:47:28Z</published>
    <updated>2018-08-21T15:47:28Z</updated>
    <id>https://www.taskboy.com/2018-08-21-tags-are-working.html</id>
    <content type="html"><![CDATA[<p>I have implemented blog post tagging in Plerd, although I confess the implementation could be a little better.  There are attribute conventions within the Plerd.pm class than I may have trampled upon.  Maybe I will just create a patch for jmac to look at.</p>

<p>Changes include:</p>

<ul>
<li>parsing out "tags" header from post</li>
<li>creating an index containing all tags</li>
<li>creating a page for each tag linking to all posts</li>
<li>allowing individual posts to list tags at the bottom</li>
<li>templates for same</li>
</ul>

<p>Blogging like it's 2001 again.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Another quick post]]></title>
    <link href="https://www.taskboy.com/2018-08-21-another-quick-post.html"/>
    <published>2018-08-21T02:19:09Z</published>
    <updated>2018-08-21T02:19:09Z</updated>
    <id>https://www.taskboy.com/2018-08-21-another-quick-post.html</id>
    <content type="html"><![CDATA[<p>I am writing this post in a text editor on the <em>iPad</em>, as if I were a person free from RSI-induced back pain.</p>

<p>I spent a great deal of time with <a href="https://github.com/jmacdotorg/plerd">Jason McIntosh's plerd blogging software</a>. It is with this software I hope to restart blogging.</p>

<p>Plerd is fairly simple to install (if you're a perl nerd) and configure.  I hacked and continuing hacking the guts of the Plerd engine to produce the sort of HTML markup that validates and responds to mobile screens in the fashion I would like.</p>

<p>Some of the upgrades I introduced were bootstrap 4.1, Font Awesome 5 and the use of the Monserrat font from Google. I am further working on getting some level of support for blog post tagging, which has to work statically.  Heck, maybe I'll even style a tag cloud.</p>

<p>Need to understand how to upload pictures to plerd.  If this isn't yet supported, I will make plerd look at the source directory for and images folder or something.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[from the drobox editor]]></title>
    <link href="https://www.taskboy.com/2018-08-20-from-the-drobox-editor.html"/>
    <published>2018-08-20T00:13:55Z</published>
    <updated>2018-08-20T00:13:55Z</updated>
    <id>https://www.taskboy.com/2018-08-20-from-the-drobox-editor.html</id>
    <content type="html"><![CDATA[<p>I can do better than this.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[It Begins]]></title>
    <link href="https://www.taskboy.com/2018-08-19-it-begins.html"/>
    <published>2018-08-19T23:16:27Z</published>
    <updated>2018-08-19T23:16:27Z</updated>
    <id>https://www.taskboy.com/2018-08-19-it-begins.html</id>
    <content type="html"><![CDATA[<p>This is an example of the kind of <strong>brilliant</strong> content I am looking to publish.</p>

<p>Hold <a href="http://jmac.org">my beer</a>.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Using jQuery with JSONP, a brief example]]></title>
    <link href="https://www.taskboy.com/2012-02-05-Using_jQuery_with_JSONP,_a_brief_example.html"/>
    <published>2012-02-05T00:00:00Z</published>
    <updated>2012-02-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2012-02-05-Using_jQuery_with_JSONP,_a_brief_example.html</id>
    <content type="html"><![CDATA[<p><p><img src="/blog/img/ice_storm08_hedge.jpg" class="icenter"></p>

<p>Since I couldn't find a jquery/jsonp example that I liked, here is my stab at 
it.</p>

<p><a href="http://en.wikipedia.org/wiki/JSONP">JSONP</a> is a way of getting 
around cross-domain restrictions 
browsers levy on javascript HTTP calls.  The protocol makes the server return a 
JS code fragement of a function that it then executes.  Sneaking, right?</p>

<p>Imagine a server with this bit of perl CGI code:</p>

<p class="code">
#!/usr/local/bin/perl â
use strict;
use CGI;

sub main {
  my $q = CGI->new;
  my $callback = $q->param('callback') || 'foo';

  my $data = q[{id:0, name:'jjohn'}];
  my $ret = qq[$callback ($data);];

  print $q->header("-content-type" => "text/javascript"), $ret;
}
main();
</p>

<p>When run, the output looks like this:</p>

<p class="code">
Content-Type: text/javascript; charset=ISO-8859-1

foo ({id:0, name:'jjohn'});
</p>

<p>This script is called "ws.pl".  It is smart enough to call use a different 
function name if one is requested by the client.</p>

<p>On the client/JS side, you can use this data this way:</p>

<p class="code">
&lt;html>
  &lt;head>
    &lt;script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js">&lt;/script>
    &lt;script type="text/javascript">
      $(document).ready(function () {
         $.getJSON('http://games.taskboy.com/ws.pl?callback=?',
                function (d) {
                  alert("got: " + d.name);
                });     
       });
    &lt;/script>
  &lt;/head>
&lt;/html>
</p>

<p>Here, an alert box will appear.  Notice that the callback function producing the 
alert has received the decoded JSON object and is able to use it directly.  No need
to worry about injecting SCRIPT tags, etc.</p>

<p>jQuery takes the huge pain of javascript programming out of javascript 
programming.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Shorty turns 40]]></title>
    <link href="https://www.taskboy.com/2011-12-15-Shorty_turns_40.html"/>
    <published>2011-12-15T00:00:00Z</published>
    <updated>2011-12-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2011-12-15-Shorty_turns_40.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/jjohn-40.png" class="icenter"></p>

<p>Well, it had to happen.  I reached my fortieth birthday this week.</p>

<p>Given that my son is a year and change old, I don't have as much time for blogging as I once did.</p>

<p>They say parenthood changes your perspective on many things.  Despite my best efforts, I am afraid that has happened to me too.</p>

<p>I launched two web services this year in the social media space: <a href="http://nestor.taskboy.com/">Nestor</a> and <a href="http://linksnest.taskboy.com/">Linksnest</a>.  While neither is wildly popular, these tools helped me learn the latest web design principals and tools.</p>

<p>Looking back at the start of the year, I see that I began with a stealth project for a friend that involved collaborative filtering and ajax.  Need to get back to that at some point.</p>

<p>I sponsored a few kickstarter projects and contributed a prize to the Interactive Fiction Competition.  I guess if I can't do stuff myself, I can at least help those who are.</p>

<p>I got a mole on my face removed, but am experiencing some blow-back.  Stupid organic body.</p>

<p>I worked for three different companies this year, one of which I worked for twice.  We got our house painted and traded in our cars for new ones.  I tasted 30 year old Laphroaig.  Materially, it was a better year than many others had and I know how lucky I am.</p>

<p></p>

<p>We lost a great old lady cat, Miss Lulu, this year.  She will be missed.</p>

<p>I guess I'm not as reflective as I have been in the past.  Not enough time.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Modeling RPG-style combat]]></title>
    <link href="https://www.taskboy.com/2011-10-24-Modeling_RPG-style_combat_.html"/>
    <published>2011-10-24T00:00:00Z</published>
    <updated>2011-10-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2011-10-24-Modeling_RPG-style_combat_.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/trekdate-small.gif" class="icenter" title="HAHA! Nerd!" alt="HAHA! Nerd!"></p>

<p>Following on to yesterday's post about economics, I'd like to present this brief note about how to model role-playing game (RPG) style combat easily with math.</p>

<p>Anyone familiar with Dungeons and Dragons will recall the very tortured set of combat tables broken out by class and level.  A simpler method for resolving combat is found in Freeciv.</p>

<p>Assuming a two party combat, you create two attributes for each member: an attack stat and a defense stat.  In this system, the bigger the number, the better.</p>

<p>To determine the chance of an attacker hitting the defender, use the following formula:</p>

<p class="code">
P(hit) = Attacker->att/(Attacker->att + Defender->def)
</p>

<p>This is to say, the chance of an attacker hitting a defender is the proportion of the attacker's 'attack' stat over the sum of the attacker's attack stat plus the defender's defense stat.</p>

<p>If the attack succeeds, some amount of damage is subtracted from the defender's health stat.</p>

<p>I like this formula because it is simple and scales well to opponents of wildly differing strengths.</p>

<p>Attack and defense stats must be greater than 0.</p>

<p>Hope this helps.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Modeling supply and demand in computer games]]></title>
    <link href="https://www.taskboy.com/2011-10-23-Modeling_supply_and_demand_in_computer_games.html"/>
    <published>2011-10-23T00:00:00Z</published>
    <updated>2011-10-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2011-10-23-Modeling_supply_and_demand_in_computer_games.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/mccarthy-youre-doing-it-wrong-s.jpg" class="icenter"></p>

<p>update: Removed magic scalar from supply and demand calculations.</p>

<p>This is more of a note to be expanded on later. However, I believe some will find it useful in this raw form.</p>

<p>Many interesting games, like M.U.L.E. and Trade Wars, involve the mechanic of supply and demand.   To model this in code, where you calculate demand and supply to arrive at a price, can be done through the following forumlae.</p>

<p>Calculate demand: This is usually a simple count of your potential consumers.  Perhaps the number of players will equal demand.  This depends on the context of your game. This number will be referred to as 'd'.</p>

<p>Calculate supply: This is a simple count of the number of widgets available that are to be sold. Again, this is contextual. This will be called 's'.</p>

<p>Calculate relative demand: You will need to pick an arbitrary equilibrium number that presents the perfect balance between supply and demand. This number is going to be arbitrary, so let's use 100. </p>

<p class="code">
Relative Demand = (d / (100 + d))
</p>

<p>Calculate relative supply: This looks a lot like demand:</p>

<p class="code">
Relative Supply = (s / 100 + s))
</p>

<p>Calculate price: You will pick a price that represents the price at equilibrium.  Here, that is 100 currency units.  Your number will be different:</p>

<p class="code">
Price = 100 * (Relative Demand / Relative Supply)
</p>

<p>You must code around the case where supply is 0.  The price becomes not-a-number.</p>

<p>The result of these maths is that when demand is high and supply is low, the price increases over some baseline.  When the supply is higher than demand, the price lowers.  That's mostly how life works.</p>

<p>These formulae will give you a very linear relationship between supply and demand.  You may need to tweak this for your game.  Inverse logs might be more realistic or even exponential functions.  This is most certainly an exercise for the reader.</p>

<p>Please note that this supply and demand model is far from perfect.  Most economists will tell you that the variable to look at is price, which then controls supply and demand (this might be a "freshwater" bias).  However, most games will want to compute a price rather than predict supply and demand.</p>

<p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Simple maze generation in Perl]]></title>
    <link href="https://www.taskboy.com/2011-09-25-Simple_maze_generation_in_Perl_.html"/>
    <published>2011-09-25T00:00:00Z</published>
    <updated>2011-09-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2011-09-25-Simple_maze_generation_in_Perl_.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/little_boy.gif" class="icenter"></p>

<p>Sometimes, you just want to generate mazes.  The code presented here is a depth-first 
search.</p>

<p>A couple of notes about the code below.  It works with vanilla, 2D grids, but these can 
be of varying sizes.  The maze data is stored is a simple 2D array.  Each room is presented as 
a hash.  The algorithm needs to track which rooms have been visited (more on this later).  Any 
room may also not have a south (bottom) wall or an east (right) wall.</p>

<p>The following code initializes the maze structure:</p>

<p class="code">
sub init_maze {
  my ($max_row, $max_col) = @_;

  my $maze = [];
  for (my $r=0; $r &lt; $max_row; $r++) {
     for (my $c=0; $c &lt; $max_col; $c++) {
        push @{$maze->[$r]}, {'visited' => 0,
                 'bottom'  => 1,
                             'right'   => 1,
                            };
     }
  }
  return $maze;
}
</p>

<p>No surprises there.</p>

<p>The real work happens in the next bit of code, make_maze().  Given a starting point specified
by a row and column coordinate in the 2D maze array, it marks the room as "visited".  It then 
looks for neighboring rooms that have not yet been visited.  It randomly selects one of these and
knocks down the wall between them.  It then recursively calls make_maze() with the new room.</p>

<p>Get it?  No?  That's OK.  Recursive code takes a long time to trust.</p>

<p class="code">
sub make_maze {
  my ($maze, $row, $col) = @_;

  $maze->[$row]->[$col]->{'visited'} = 1;

  while (my $unvisited = get_unvisited($maze, $row, $col)) {
    last unless @$unvisited;

    # Randomly select a neighbor
    my $choice = $unvisited->[ rand(@$unvisited) ];

    # Knock down the wall between them
    remove_wall($maze, [$row, $col], $choice);

    # move to this new cell
    make_maze($maze, $choice->[0], $choice->[1]);
  }
}
</p>

<p>There are two details worth investigating.  The first is how unvisited neighbors are selected.
The second is how to figure out which wall to remove.  Here's the unvisited neighbor code:</p>

<p class="code">
sub get_unvisited {
  my ($maze, $row, $col) = @_;
  my @found;

  # look for neighbors in cardinal directions;
  # be mindful of maze bounderies
  if ($row == 0) {
    push @found, [$row + 1, $col] unless $maze->[$row + 1]->[$col]{'visited'};
  } elsif ($row == @$maze - 1) {
    push @found, [$row - 1, $col] unless $maze->[$row - 1]->[$col]->{'visited'};
  } else {
    if ($row + 1 &lt; @$maze) {
      push @found, [$row + 1, $col] unless $maze->[$row + 1]->[$col]->{'visited'};
    }
    push @found, [$row - 1, $col] unless $maze->[$row - 1]->[$col]->{'visited'};
  }

  if ($col == 0) {
    push @found, [$row, $col + 1] unless $maze->[$row]->[$col + 1]->{'visited'};
  } elsif ($col == (@{$maze->[0]} - 1)) {
    push @found, [$row, $col - 1] unless $maze->[$row]->[$col - 1]->{'visited'};
  } else {
    if ($col + 1 &lt; @{$maze->[0]}) {
      push @found, [$row, $col + 1] unless $maze->[$row]->[$col + 1]->{'visited'};
    }
    push @found, [$row, $col - 1] unless $maze->[$row]->[$col - 1]->{'visited'};
  }

  return \@found;
}
</p>

<p>This code is pretty straight-forward.  It observes the boundary rooms and makes sure that 
these rooms have not yet been visited.  There are clever ways of reducing this code, but 
this is easier to understand, I think.</p>

<p>Removing the right wall is simply a matter of looking at two rooms and figuring out 
if the rooms are joined horizontally or vertically.  It is then pretty easy to remove the 
right or bottom of wall of the correct room.</p>

<p class="code">
sub remove_wall {
  my ($maze, $r1, $r2) = @_;
  my $selected;

  if ( $r1->[0] == $r2->[0] ) {
    # Rows are equal, must be East/West neighbors
    $selected = ($r1->[1] &lt; $r2->[1]) ? $r1 : $r2;
    $maze->[ $selected->[0] ]->[ $selected->[1] ]->{'right'} = 0;

   } elsif ( $r1->[1] == $r2->[1] ) {
     # Columns are the same, must be North/South neighbors
     $selected = ($r1->[0] &lt; $r2->[0]) ? $r1 : $r2;
     $maze->[ $selected->[0] ]->[ $selected->[1] ]->{'bottom'} = 0;
   } else {
     die("ERROR: bad neighbors ($r1->[0], $r1->[1]) and ($r2->[0], $r2->[1])\n");
   }
   return;
}
</p>

<p>It would be useful to print out a bird's eye view of the maze and that's done (admittedly 
awkwardly) in the following routine.</p>

<p class="code">
sub print_maze {
   my ($maze) = @_;
   my $screen = [];

   my $screen_row = 0;
   for (my $r=0; $r &lt; @$maze; $r++) {
     if ($r == 0) {
       # Top border
       push @{$screen->[$r]}, '+';
       for (@{$maze->[0]}) {
     push @{$screen->[$r]}, 'â', '+';
       }
     }

     for (my $c=0; $c &lt; @{$maze->[0]}; $c++) {
       my @middle;
       if ($c == 0) {
     push @middle, "|";
       }

       push @middle, "  "; # room center
       if ($maze->[$r]->[$c]->{'right'}) {
     push @middle, "|";
       } else {
     push @middle, " ";
       }
       push @{$screen->[$screen_row + 1]}, @middle;

       my @bottom;
       if ($c == 0) {
     push @bottom, "+";
       }

       if ($maze->[$r]->[$c]->{'bottom'}) {
     push @bottom, "â";
       } else {
     push @bottom, "  ";
       }
       push @bottom, "+";
       push @{$screen->[$screen_row + 2]}, @bottom;
     }
     $screen_row += 2;
   }

   for (my $r=0; $r &lt; @$screen; $r++) {
     for (my $c=0; $c &lt; @{$screen->[0]}; $c++) {
       print $screen->[$r]->[$c];
     }
     print "\n";
   }
   print "\n";
}
</p>

<p>Finally, here's the main line:</p>

<p class="code">
my $dimension = $ARGV[0] || 5;
my $maze = init_maze($dimension, $dimension);

my ($startRow, $startCol) = (int(rand($dimension)), int(rand($dimension)));
make_maze($maze, $startRow, $startCol, undef);

print_maze($maze);
</p>

<p>Hope this helps get you started in the wonderful world of maze building!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Linksnest: storing social media links for you]]></title>
    <link href="https://www.taskboy.com/2011-09-16-Linksnest__storing_social_media_links_for_you.html"/>
    <published>2011-09-16T00:00:00Z</published>
    <updated>2011-09-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2011-09-16-Linksnest__storing_social_media_links_for_you.html</id>
    <content type="html"><![CDATA[<p><p><img src="http://taskboy.com/blog/img/turtledove_small.gif" class="icenter"></p>

<p><a href="http://linksnest.taskboy.com/">Linksnest</a>
  is a new web tool I have developed to help you collect and manage URLs mentioned by you or your friends on social media sites, like Twitter or LinkedIn.</p>

<p>You can even see your latest collected links as an RSS feed.</p>

<p>It's free to use and I think pretty easy to understand. Please give it a try and tell me what you think.</p>

<p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[MySQL: Creating BIGINT unique random IDs]]></title>
    <link href="https://www.taskboy.com/2011-08-14-MySQL__Creating_BIGINT_unique_random_IDs.html"/>
    <published>2011-08-14T00:00:00Z</published>
    <updated>2011-08-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2011-08-14-MySQL__Creating_BIGINT_unique_random_IDs.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/turtledove_small.gif" class="icenter"></p>

<p>The inspiration for this post comes from the <a href="http://forums.mysql.com/read.php?52,226769,228906#msg-228906">mysql forum</a>.</p>

<p>The problem is common enough: you want your SQL tables to have unique, secure primary keys.  You also don't want to kill your database performance by using string UUIDs as keys.  You also don't want serialized auto numbering for keys that may present security risks later on.</p>

<p>One very solid solution to this problem is an IDs table.  That is, create a table that holds the list of all important IDs to be used by all other tables in your schema.  Such a table might look like this:</p>

<p class="code">
create table ids (
  id bigint unsigned not null primary key,
  taken tinyint default 0
);
</p>

<p>Any time we run out of IDs, we can generate new ones with this stored procedure:</p>

<p class="code">
CREATE PROCEDURE create_ids (create_id_num INT)
BEGIN
  DECLARE CONTINUE HANDLER FOR SQLSTATE '42000' BEGIN END;
  SET @i = 1;
  loop1: LOOP
      INSERT INTO ids (id) VALUES (FLOOR(1 + RAND() * POW(2,63)));
      SET @i = @i + 1;
      IF @i > create_id_num THEN
         LEAVE loop1;
      END IF;
  END LOOP loop1;
END;
</p>

<p>Now when one of your tables needs a new id, simply grab a random open one from the IDs table:</p>

<p class="code">
SELECT id FROM ids WHERE taken = 0 LIMIT 100;
UPDATE ids SET taken=1 WHERE id=? AND taken=0;
</p>

<p>In scripting language land, grab a set of ids and attempt to make the UPDATE with one of them.  If the update fails, then some other process grabbed that ID.  That's no biggie, just try another.</p>

<p>What if we run out of IDs?  Create a trigger that ensures that there are more IDs created when the last one is taken:</p>

<p class="code">
CREATE TRIGGER make_additional_ids AFTER UPDATE ON ids
FOR EACH ROW
  BEGIN
    IF (SELECT COUNT(*) FROM ids WHERE taken = 0) = 0 THEN
       CALL create_ids(1000);
    END IF;
  END;
</p>

<p>While there are some race conditions I've glossed over, this is a pretty good framework for having solid numeric IDs, which most databases want to fast comparisons.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Simple HTTP handling with urllib2]]></title>
    <link href="https://www.taskboy.com/2011-07-24-Simple_HTTP_handling_with_urllib2.html"/>
    <published>2011-07-24T00:00:00Z</published>
    <updated>2011-07-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2011-07-24-Simple_HTTP_handling_with_urllib2.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/cthulhu.jpg" class="icenter"></p>

<p>I am continuing to poke around python this week looking the "standard way" to make HTTP requests and process HTTP responses.  In Perl, there is the very complete LWP set of modules.  In Java, there is the Apache HTTP client library.  Python has several modules with related functionality, including httplib, urllib and urllib2 (which will change with Python 3.0).</p>

<p>What I need to do is create HTTP headers in the request and later read headers from the response.  Oh, and I will want to look at the response's body too.</p>

<p>The code below makes an HTTP to a small PHP script I have on this server (use it as needed). It sets a header, which is echoed by the PHP script. Later all the headers from the response are also echoed.</p>

<p>One of the things I like about urllib2 is the Request class.  In the things I want to do (web services, OAuth), it is very helpful to build the request and be able to inspect it apart from the mechanism that performs the HTTP fetch.</p>

<p class="code">
import urllib2
import pprint
import sys

url = "http://taskboy.com/blog/h.php"

R = urllib2.Request(url)
R.add_header("User-agent", "jjohn/1.0")

try :
    f = urllib2.urlopen(R)
    headers = f.info().headers
    c = f.read() # content                                                      
except :
    e = sys.exc_info()[0]
    print "Oops: ", e
    exit;

print "Content: " + c + "\n"
print "HEADERS: ";
for k in headers :
    print "'" + k + "'"
</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Accessing Twitter's API through Python]]></title>
    <link href="https://www.taskboy.com/2011-07-17-Accessing_Twitter_s_API_through_Python.html"/>
    <published>2011-07-17T00:00:00Z</published>
    <updated>2011-07-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2011-07-17-Accessing_Twitter_s_API_through_Python.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/winery_small.gif" class="icenter"></p>

<p><p>If I understand the Internet correctly, the new hottness for doing oauth stuff in Python is this <a href="https://github.com/simplegeo/python-oauth2">oauth2 library</a>.  This <a href="https://dev.twitter.com/docs/auth/oauth/single-user-with-examples#python">twitter doc</a> is a little out of date, so here's my version of it.</p>

<p class="code">
import oauth2 as oauth
from pprint import pprint
import json

def req (url=None,
         http_method="GET",
         post_body='',
         http_headers='',
         key='',
         secret=''
         ) :
    con = oauth.Consumer(key='ConsumerKey'
                         secret='ConsumerSecret')
    token = oauth.Token(key=key,
                        secret=secret)
    client = oauth.Client(con, token)
    res, content = client.request(
        url,
        method=http_method,
        body=post_body,
        headers=http_headers,
        )

    return content

c = req(url="http://api.twitter.com/1/statuses/home_timeline.json",
        key='AccessToken',
        secret='TokenSecret')

if len(c) > 0 :
    pprint(json.loads(c))

</p>

<p>You get the consumer key and secret by registering an app on <a href="http://dev.twitter.com/">Dev.twitter.com</a>.  The Access Token and Token Secret come either from dev.twitter.com (for debugging only) or through the oauth login process by which a request token is exchanged for the access token and token secret.</p>

<p>Note that client.request() performs HMAC_SHA1() signing of the paramters.  It looks like if you pass in post_body, the parameters will be parsed and signed too.  Still, it is weird that this method doesn't simply take a dictionary object for parameters.</p>

<p>The real difference is how the library is included.  Confusingly, the script in the examples directory of this library does not correctly include itself (the project was forked and not all the cruft was cleaned up :-)</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Beta testers wanted for social media analytics project]]></title>
    <link href="https://www.taskboy.com/2011-05-10-Beta_testers_wanted_for_social_media_analytics_project.html"/>
    <published>2011-05-10T00:00:00Z</published>
    <updated>2011-05-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2011-05-10-Beta_testers_wanted_for_social_media_analytics_project.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/nestor-beta.jpg" class="icenter" alt="[Nestor]"></p>

<p><p>Over the past several months, I have been slowly pulling together a project that I hope others will find useful.  It is called <a href="http://nestor.taskboy.com/">Nestor</a>.</p>

<p>Nestor is an analytics tool that provides trending information for 
followers and retweets on Twitter.</p>

<p>The service is free and not spammy.  Since authentication is done through Twitter, I don't even collect email addresses.</p>

<p>What I need are users on the system who are not afraid to give me feedback.</p>

<p>I am looking to improve the following areas:</p>

<ul>
  <li>User experience</li>
  <li>Quality of data</li>
  <li>Improving data visualizations</li>
  <li>Security</li>
  <li>Protecting user privacy</li>
</ul>

<p>If this is something you are interested in, please send mail to <a href="mailto:jjohn@taskboy.com">jjohn@taskboy.com</a> for a free registration code to get on to the system. Or message me on twitter: <a href="http://twitter.com/taskboy3000">@taskboy3000</a></p>

<p>UPDATE: Registration codes are boring! Just login, accept the terms of service and pass the captcha test.  Easy, right?</p>

<p>I want to be clear: this is not an open source project.  It could become that at some point, but it is not one now.</p>

<p>UPDATE: Nestor is closed for a while. Thanks for your interest.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[RSS feed has broken links]]></title>
    <link href="https://www.taskboy.com/2011-05-03-RSS_feed_has_broken_links.html"/>
    <published>2011-05-03T00:00:00Z</published>
    <updated>2011-05-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2011-05-03-RSS_feed_has_broken_links.html</id>
    <content type="html"><![CDATA[<p>I just discovered that the taskboy RSS feed has some broken links.  I fix that as soon as I can.</p>

<p>update: Looks like that's fixed now.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[A simple image viewer with pygame]]></title>
    <link href="https://www.taskboy.com/2011-04-21-A_simple_image_viewer_with_pygame.html"/>
    <published>2011-04-21T00:00:00Z</published>
    <updated>2011-04-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2011-04-21-A_simple_image_viewer_with_pygame.html</id>
    <content type="html"><![CDATA[<p>The following python code demonstrates the power of pygame to make even non-game tasks easy.</p>

<p>This command line program is to be invoked with a filename of a graphic file (any supported by pygame including jpg, png, gif, etc). To exit, press escape. To reduce the image by half, press the minus key.  To increase the image by x2, press the equals/plus button.</p>

<p>Sure, the scaling is lossy, but this is a quick and dirty program.</p>

<p>Enjoy!</p>

<p class="code">
import os
import sys
import pygame

def reset_screen(res) :
    screen = pygame.display.set_mode(res)
    pygame.display.set_caption("pyview")
    return screen

imgfile = ""
if len(sys.argv) &lt; 2 :
    print "USAGE: %s [FILENAME]" % sys.argv[0]
    sys.exit()
imgfile = sys.argv[1]
if not os.path.exists(imgfile):
    print "USAGE: %s [FILENAME]" % sys.argv[0]
    sys.exit()

S = pygame.image.load(imgfile)
screen = reset_screen((S.get_width(), S.get_height()))
S = S.convert() # Need screen init

while True :
    for e in pygame.event.get() :
        if e.type == pygame.QUIT :
            sys.exit()
        if e.type == pygame.KEYDOWN :
            if e.key == pygame.K_ESCAPE :
                sys.exit()
            if e.key == pygame.K_MINUS :
                S = pygame.transform.scale(S, (S.get_width()/2, S.get_height()/2))
                screen = reset_screen((S.get_width(), S.get_height()))

            if e.key == pygame.K_EQUALS :
                S = pygame.transform.scale(S, (S.get_width()*2, S.get_height()*2))
                screen = reset_screen((S.get_width(), S.get_height()))
    screen.blit(S, (0,0))
    pygame.display.flip()
    pygame.time.delay(25)

</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Not quite dead yet]]></title>
    <link href="https://www.taskboy.com/2011-04-09-Not_quite_dead_yet.html"/>
    <published>2011-04-09T00:00:00Z</published>
    <updated>2011-04-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2011-04-09-Not_quite_dead_yet.html</id>
    <content type="html"><![CDATA[<p>This extended hiatus brought to by my son, Angus.</p>

<p></p>

<p>I hope to return with new technical articles in the coming months.  But for know, I commend you to my <a href="/blog/static/">archives</a>.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Collaborative Filtering in PHP]]></title>
    <link href="https://www.taskboy.com/2011-01-04-Collaborative_Filtering_in_PHP.html"/>
    <published>2011-01-04T00:00:00Z</published>
    <updated>2011-01-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2011-01-04-Collaborative_Filtering_in_PHP.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/dungeon_master.jpg" class="icenter"></p>

<p>I recently completed a POC project
for a friend that called for a recommendation engine.  That is, a mechanism
was needed for the application to suggest domain-specific macguffins that 
similar users are interested in that might also interest the current user.
The technique I used is called <a href="http://en.wikipedia.org/wiki/Collaborative_filtering">collaborative filtering</a>.  
You can read more about this technique and others designed to extract 
wisdom from crowds in O'Reilly's excellent 
<a href="http://oreilly.com/catalog/9780596529321">Programming Collective 
Intelligence</a> and 
Ron Zacharski's work in progress called <a href="http://guidetodatamining.com/">A Programmer's Guide to Data Mining</a>.</p>

<p>Collaborative filtering essentially boils down to two steps:</p>

<ul>
  <li>Finding credible critics</li>
  <li>Finding the difference in the set of the things liked 
      by the user and the crediable critics</li>
</ul>

<p>Credible critics are a cute way of labeling that set of users whose
tastes are (perhaps) similar to the target user.  There are many ways 
to determine this set, but the method I chose is processor friendly and 
easy to code.</p>

<p>First, you need a user-specified metric.  This could be an actually 
rating (1-5) of your domain-specific widgets or simple "like" buttons. 
Whatever the shape of the rating, it must be represented a number.</p>

<p>After a while, your users will have generated a lot of rating data 
about your widgets.  If you take two domain-specific widgets and plot 
their ratings on a cartesian plane, you'll begin to see patterns.  Users 
who rate these items "closely" to the target user will make excellent 
credible critics (in theory).  The game then is how to determine "close."</p>

<p>The most brain-dead simple method for the calculating distance of 
two cartesian points is called the <a href="http://en.wikipedia.org/wiki/Manhattan_distance">Manhattan method</a>.  
Very briefly, the formula to calculate this is to add the absolute value of the 
difference of each dimensions and divide these by the number of dimensions.  In this 
case, dimensions are widgets that both users have rated.  Let's look at some code.
</p>

<p class="code">
function manhattan_distance($rating1=array(), $rating2=array()) {
   $MAX_DISTANCE = PHP_INT_MAX;
   $distance = $total = 0;
   foreach ($array_keys($rating1) as $widget_id) {
      if (array_key_exists($widget_id, $rating2) {
         $distance += abs($rating1[$widget_id] - $rating2[$widget_id]);
     $total += 1;
      }
   }
   if ($total > 0) {
     return $distance / $total;
   }
   return $MAX_DISTANCE;
}
</p>

<p>This function expects parameters to be associative arrays mapping widget IDs to 
ratings.  Here's an example of calling this function:</p>

<p class="code">
$user1 = array("widget-1" => 3,
               "widget-2" => 1,
           "widget-3" => 5,
              );

$user2 = array("widget-2" => 5,
               "widget-3" => 1,);
printf("Distance of user1 from user2: %0.2f\n", manhattan_distance($user1,$user2));
</p>

<p>You will need to compare every user to each other, which is an algorithm with a 
runtime of O(n**2).  This is not good for large user populations, so some future 
optimization will be needed.  However, that optimization is not covered here.</p>

<p>To make a recommendation, we need to find a few critics with similar tastes.  
This is to say, we need to find users with the smallest distance from the target
user.</p>

<p class="code">
function computeNearestNeighbor ($user_id, $user_list=array(), $count=1) {
   $your_ratings = get_ratings($user_id);
   $distances = array();
   foreach ($user_list as $uid) {
     $distances[] = array($uid,
                      manhattan_distance($your_ratings, 
                         get_ratings($uid))
                         );
   }
   usort($distances, 'compare_recs');
   $tmp = array();
   while ($count > 0) {
      $i = array_shift($distances); 
      $tmp[] = $i[0];
      $count -= 1;
   }
   return $tmp;
}

function compare_recs ($a, $b) {
   if ($a[1] == $b[1]) {
      return 0;
   }
   return ($a[1] &lt; $b[1]) ? -1 : 1;
}

function get_ratings ($user_id) {
   // Assume $data is held in a data store
   $tmp = array();
   foreach ($data as $row) {
      $tmp[$row["wiget_id"]] = $row["cnt"];
   }  
   return $tmp;
}
</p>

<p>Finding the set of closests neighbors really is a fairly mechanical process 
of calculating the distances of all users to the target one, sorting that set 
by distance and using some number of the first several users in the list.</p>

<p>That completes the first part of the recommendation process: get the list of 
critics.  Now we need to see what widgets those critics use that our target 
user is not.  With the infrasture we've built, it is straight-forward to get 
the set of widgets not currently used by the target user.</p>

<p class="code">
function recommend_widgets ($user_id, $user_list=array()) {
   $recs = array();
   $seen = array();

   $your_ratings = get_ratings($user_id);
   $nearest_users = computeNearestNeighbor($user_id, $user_list, 3);

   foreach ($nearest_users as $uid) {
      $neighbor_ratings = get_invites($uid);
      foreach ($neighbor_ratings as $widget_id => $rating) {
         if ($seen[$widget_id]) {
        continue;
         }

    if (!array_key_exists($widget_id, $your_ratings)) {
       $recs[] = array($widget_id, $rating);
       $seen[$widget_id] = True;
        }
      }
   }

   usort($recs, "compare_ratings");
   return $recs;
}

function compare_ratings ($a, $b) {
   if ($a[1] == $b[1]) {
      return 0;
   }
   return ($b[1] &lt; $a[1]) ? -1 : 1;

}
</p>

<p>Notice that the sort routine here orders the records by rating is descending order.
This means that recommendations with high ratings will be listed first.  You should 
consider whether this is the behavior you want your recommendation engine to have.
</p>

<p>Collaborative filter is simply algorithm that invites all kinds of tweaking. 
There are many better ways to find critics or even to calculate "distance."  You 
might want to add other weighting mechanisms to the recommendations of specific 
items.  The key is to be able to articulate exactly how you want your recommendations 
to work.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Taskboy by the numbers]]></title>
    <link href="https://www.taskboy.com/2010-12-16-Taskboy_by_the_numbers.html"/>
    <published>2010-12-16T00:00:00Z</published>
    <updated>2010-12-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-12-16-Taskboy_by_the_numbers.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/haha.gif" class="icenter"></p>

<p>I decided to do some year end number crunching on this web site's usage numbers.  These are, of course, generated from the servers access log.  I present them here as a benchmark for the future.</p>

<table>
<tr>
  <th>Monthly Averages for 2010</th>
</tr>
<tr>
  <td>Gigabytes served</td>
  <td>2.9 GB</td> 
</tr>
<tr>
  <td>Visitors</td>
  <td>20,834</td> 
</tr>
<tr>
  <td>Pages served</td>
  <td>53,423</td> 
</tr>
</table>

<p>In late November, I put an end to remote linking to images hosted here.  It was a small drain on resources, but an annoying one.</p>

<p>Frankly, a good bit of the traffic listed above can be attributed to google, yahoo, bing and their moral equivalents spidering this site.</p>

<p>While I'm generally proud of my blog output this year, I still haven't found an audience for this content.  Or I haven't found content for this audience. <code>:-/</code></p>

<p>In any case, this was the year that was.</p>

<p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Using python to update PuTTY sessions]]></title>
    <link href="https://www.taskboy.com/2010-12-13-Using_python_to_update_PuTTY_sessions.html"/>
    <published>2010-12-13T00:00:00Z</published>
    <updated>2010-12-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-12-13-Using_python_to_update_PuTTY_sessions.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/fenway_bridge_sm.jpg" class="icenter"></p>

<p><a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">Putty</a> 
has been the gold standard for free Windows SSH utilities for almost a decade 
now.  As you might expect from a win32 application, it keeps its stored 
sessions (the connection meta-data used to connect to various hosts) in
the Windows Registry:</p>

<p class="code">HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions</p>

<p>You may find it desirable to create or update a stored session.  While 
you can use many tools to do this, Python offers a convenient way to do this 
using the _winreg module.  The following is an example of how to iterate
through the list of existing Putty sessions.</p>

<p class="code">
import _winreg

subkey = 'Software\SimonTatham\PuTTY\Sessions'
H = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, subkey)
info = _winreg.QueryInfoKey(H);
if info[0] &lt; 1 :
   print "No saved sessions\n";
   exit;

print "Found the following saved sessions:"
i=0;
trg = None;
while i &lt; info[0] :
    s = _winreg.EnumKey(H, i)
    k2 = subkey + '\\' + s 
    H2 = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, k2, 0, _winreg.KEY_ALL_ACCESS)
    host = _winreg.QueryValueEx(H2, "HostName")
    print "\t%s - %s" % (s, host[0])
    _winreg.CloseKey(H2)
    i += 1;
</p>

<p>The Windows Registry has five "databases" that you can connect to:</p>

<p></p>

<ul>
 <li>HKEY_CLASSES_ROOT</li> 
 <li>HKEY_CURRENT_USER</li> 
 <li>HKEY_LOCAL_MACHINE</li> 
 <li>HKEY_USERS</li>
 <li>HKEY_CURRENT_CONFIG</li>
</ul>

<p>In this case, the app data is stored in HKEY_CURRENT_USER, so that's the 
base to connect to.  Then the subkey can be appended to get to the right place
in the hierarchy for the Putty sessions.</p>

<p>Of course, sometimes there are no sessions, so that case must be handled.</p>

<p>The Registry is also a little weird in that what it calls "keys" actually 
contain many subkeys. Each subkey of "Sessions" will be a saved session.  Here's
what my registry looks like:</p>

<p><img src="/blog/img/winreg-ss1.gif" class="icenter"></p>

<p>The subkeys are enumerated in the info hash in order.  So, it is a simple
matter to walk through the this list, get the meta-data for that key and 
extract useful values from it.  Each saved session, for example, as a string 
"value" called "HostName" that contains the address used to connect to the 
host.  There are many, many values for each saved session, but you'll have to 
consult the putty source code to figure out what each does.</p>

<p>To change a "value", you need to open the key that owns it.  Then invoke
the right SetValue() method on it.  See the 
<a href="http://docs.python.org/library/_winreg.html">_winreg</a> 
docs for more. In this case, to change the address of a saved session, to 
code might look like this:</p>

<p class="code">
newIP = "1.2.3.4"
_winreg.SetValueEx(KeyToSession, "HostName", None, _winreg.REG_SZ, newip)
_winreg.CloseKey(KeyToSession)
</p>

<p>This code assumes that <code>KeyToSession</code> has already been opened.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[39: Time to party (before it's too late)]]></title>
    <link href="https://www.taskboy.com/2010-12-12-39__Time_to_party_(before_it_s_too_late).html"/>
    <published>2010-12-12T00:00:00Z</published>
    <updated>2010-12-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-12-12-39__Time_to_party_(before_it_s_too_late).html</id>
    <content type="html"><![CDATA[<p><a href="/blog/img/jjohn-at-39.jpg"><img src="/blog/img/jjohn-at-39-sm.jpg" class="icenter"></a></p>

<p>As is my tradition, I make a little blog post to note the milestone of my birthday.  Today makes my 39th year on this planet.  This year, the deaths in the family were few.  Indeed, the arrival of my son, Angus, means that my duty to genetics and family is pretty much over.  I guess I can kickback and coast through the rest of life.</p>

<p>Perhaps not quite yet.</p>

<p>My employer, ATG, was acquired this year by Oracle.  This means that I will begin the new year as a member of a 100,000 person company.  That's sure different.</p>

<p>I am slowly working on a new interactive fiction called "Escape from the House of Dragons."  I have the plot roughly outlined, but given my very limited free time, I don't expect a beta version until Q2 of 2011.</p>

<p>Finally, I'm getting inspired to resurrect my old web game, State Secrets.  I think I finally understand how to make it fun to play.  Unfortunately, I need to scrap the code I've written and start again.  That will be will the fourth rewrite of the game.</p>

<p>So, I suppose I'll see you next year at this time?  Great.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Clever Facebook CSS icon hack]]></title>
    <link href="https://www.taskboy.com/2010-12-10-Clever_Facebook_CSS_icon_hack.html"/>
    <published>2010-12-10T00:00:00Z</published>
    <updated>2010-12-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-12-10-Clever_Facebook_CSS_icon_hack.html</id>
    <content type="html"><![CDATA[<p>Facebook has blown my mind.</p>

<p>It's not their content or business model that's done it.  It's their 
CSS.  Many of the small icons you
see on their site, like the flags, the calandar, even the "like" hand, are 
all part of one graphic that looks like this:</p>

<p><img src="/blog/img/facebook_icons.png" class="icenter"></p>

<p>This is a common strategy for old video games: combine many of your images 
into one graphic and then carve up the individual cells in memmory. This saves
file system handles and load times.</p>

<p>But this trick can't be applied to HTML/CSS.  The value in a multi-graphic
like this is that browsers will cache this one asset and reuse it many times 
for one page.  That means fewer HTTP requests to FB's servers and faster 
page load times for the end user.  Epic Win.</p>

<p>But how does this work?  The answer lies in the same tricks used to apply 
gradient effects: positioning the asset as a background image and creating a 
small viewport with the box model.  Here's the magic:</p>

<p class="code">
&lt;style type="text/css">
.tryme {
  background-image: url("facebook_icons.png");
  background-position: -57px -147px;
  height: 13px;
  width: 15px;
}
&lt;/style>
&lt;div class="tryme">&nbsp;&lt;/div>
</p>

<p>
.tryme {
  background-image: url("/blog/img/facebook_icons.png");
  background-position: -57px -147px;
  height: 13px;
  width: 15px;
}
</p>

And that is something I &nbsp;

&nbsp;

&nbsp;like.



<p><br></p>

<p>This is a good hack!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Perl script to reduce image dimensions]]></title>
    <link href="https://www.taskboy.com/2010-12-03-Perl_script_to_reduce_image_dimensions.html"/>
    <published>2010-12-03T00:00:00Z</published>
    <updated>2010-12-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-12-03-Perl_script_to_reduce_image_dimensions.html</id>
    <content type="html"><![CDATA[<p>Because I always seem to be rewriting this, I now post a copy of a script I used to reduce image sizes.  It uses Image Magick to scale images to either a half or a quarter of their original size.</p>

<p class="code">
#!/usr/bin/perl â -*-cperl-*-
#
# For a given image file, reduce the size by 50% or 25%
#
use strict;
use Image::Magick;
use Getopt::Std;

my $infile = pop @ARGV;
unless (-e $infile) {
  print usage();
  exit 1;
}
my $Opts = {};
getopts('o:24', $Opts);

if (-e $Opts->{'o'}) {
  print("'$Opts->{o}' already exists.  Overwrite?[y/N]\n");
  my $a = readline();
  if ($a !~ /y/i) {
    print("Halting.\n");
    exit;
  }
}

# always reduce image
my $factor = ($Opts->{'4'} ? 0.25 : 0.5);

my $I = Image::Magick->new();
$I->Read($infile);
my $height = $I->Get('height');
my $width = $I->Get('width');
my $err = $I->Resize(height => $height * $factor,
                     width => $width * $factor,);

if ($Opts->{'o'}) {
  $I->Write($Opts->{'o'});
} else {
  # Spew to STDOUT (from the Image::Magick website)
  my @pixels = $I->GetPixels(map=>'I',
                             height=>$height * $factor,
                             width =>$width * $factor,
                             normalize=>1,);
  binmode(STDOUT); # for win32
  print pack('B*', join('', @pixels));
}


sub usage {
  return qq[$0 - reduce an image size
$0 [OPTS] [FILENAME]

-o [FILE] Output file name
-2 Reduce image dimensions by half
-4 Reduce image dimensions by a fourth
];
}

</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Relation example in Inform7]]></title>
    <link href="https://www.taskboy.com/2010-11-18-Relation_example_in_Inform7.html"/>
    <published>2010-11-18T00:00:00Z</published>
    <updated>2010-11-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-11-18-Relation_example_in_Inform7.html</id>
    <content type="html"><![CDATA[<p><a href="http://inform7.com/">Inform 7</a> is a powerful system for creating 
interactive fiction, as I have mentioned before.  The "natural" language syntax
can be both liberating and confusing.  One aspect of I7 that has confounded me 
is the concept of <a href="http://inform7.com/learn/man/doc208.html">relations</a>.</p>

<p>In the abstract, relations are the ways in which objects relate to each 
other.  The most intuitive examples of relations are:</p>

<p class="code">
The tea is in the cup.  [containment relation] 
The cup is on the desk. [support relation]
</p>

<p>Here the relationship between tea and cup and cup and desk are denoted 
by the prepositions "in" and "on".</p>

<p>Relations tie things together in various ways.  There are mutual one to one 
relations, one way one to one relations, one to many, one to many groups, etc.
See the I7 docs for the full set of these.</p>

<p>However, relations on their own aren't particularly useful.  Relations shine
in making new I7 verbs robust and interesting.  In the docs, there is this 
<a href="http://inform7.com/learn/man/ex384.html#e384">example</a> of making a 
machine that transmutes a bag of jewels into various other things.  The example 
works as advertised, but does contain a subtle bug that prevents "scaling" this
code to move into different values of the same state.</p>

<p>In the example code, a thing can be made into other classes of things 
through the new verb "to become.".  In the example, these classes of things are
edible, valuable and dangerous.  The example defines exactly one thing of each 
type of class: the bag of jewels is valuable; the bag of gunpowder is dangerous;
the bag of jelly beans is (nominally) edible.</p>

<p>If one attempts to add additional concrete things to each class (e.g. the 
bag of broken glass is dangerous) the given example code does not work.  This 
is because the new form of the object is evaluated twice: once during the 
"carry out" stage when the "insert" rule is run and once when the report rule 
is evaluating the string "[the new form of the noun]."</p>

<p>You might wonder why this bug exists at all.  I am far from an expert in I7, 
but it seems that the decide rule for "new form" is called explictly in the 
carry out rule and then implicitly for the string interpolation during report.
Because the decide rule picks a random concrete example of a class from the 
available list created by the relation, the effect is that that the new form
reported by the report rule may not be the thing that appears in the player's 
inventory.</p>

<p>To fix this, I present the following code.  It creates a new player property 
called "lastChange" that holds the new form of the noun that is generated in the
carry out rule. This property is then referred to in the report rule and is 
added to the player's inventory.  This could have also been solved with a 
global variable called "lastChange," but I think this is cleaner.</p>

<p class="code">
[Setup the world]
Workshop is a room.
The bag of jewels is carried by the player. 
The player has a thing called lastChange.

[Define the transmutation machine]
The machine is fixed in place in the workshop.

Transmutation relates things to each other in groups.  
The verb to become (it becomes, they become, it became)
implies the transmutation relation.

Definition: a thing is transmutable if it becomes more than one thing.

[Override standard rulebook]
Procedural rule when inserting something into the machine:
   Ignore the can't insert into what's not a container rule. 

Check inserting something which is not transmutable into the machine:
    instead say "You can't transmute that."

[ State changes:
   edible => valuable
   valuable => dangerous
   dangerous => edible
]

To decide which thing is new form of (obj - edible thing): 
   decide on random valuable thing which becomes obj.
To decide which thing is new form of (obj - valuable thing): 
   decide on random dangerous thing which becomes obj.
To decide which thing is new form of (obj - dangerous thing): 
   decide on random edible thing which becomes obj. 

Carry out inserting something into the machine:
   remove the noun from play;
   now lastChange of the player is the new form of the noun;
   now the player carries the lastChange of the player.

[This causes the decide rule to execute twice]
Report inserting something edible into the machine:
   say "The machine spits out [the lastChange of the player].";
   rule succeeds.

Report inserting something valuable into the machine:
   say "The machine produces [the lastChange of the player].";
   rule succeeds.

Report inserting something dangerous into the machine:
   say "The machine coughes out [the lastChange of the player].";
   rule succeeds.

[Define classes of objects]
A thing can be valuable.
A thing can be dangerous.
A thing can be edible.

[Instantiate examples of each class]
The bag of jewels is a valuable thing.
The bag of gold is a valuable thing.
The bag of jelly beans is an edible thing.
The bag of apples is an edible thing.
The bag of gunpowder is a dangerous thing.
The bag of broken glass is a dangerous thing.

[Give a start point to the state machine]
The bag of jewels becomes the bag of gold, the bag of gunpowder, 
the bag of broken glass and the bag of jelly beans.
</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Might and Magic 2 character trainer (sort of)]]></title>
    <link href="https://www.taskboy.com/2010-10-31-Might_and_Magic_2_character_trainer_(sort_of).html"/>
    <published>2010-10-31T00:00:00Z</published>
    <updated>2010-10-31T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-10-31-Might_and_Magic_2_character_trainer_(sort_of).html</id>
    <content type="html"><![CDATA[<p><p><img src="/blog/img/Might_and_Magic_II_Coverart.png" class="icenter"></p>

<p>I have written a few <a href="/blog/projects/mm2tools.zip">tools</a> to help understand the contents of two data files from the venerable <a href="http://en.wikipedia.org/wiki/Might_and_Magic_II:_Gates_to_Another_World">Might and Magic 2</a> RPG.  A younger me got a lot of mileage as a player out of this grindcore slug-fest (particularly the Mac version).</p>

<p>The tools are simple Perl scripts written without much care.  However, listRoster.pl will dump all the active characters in the Roster.dat file.  You can use a binary editor, like emacs with hexl-mode, to poke various fields and what not to make the game less boring.</p>

<p>Each character record is 130 bytes long and is composed of mostly unsigned bytes, but there are a few 16 and 32 bit ints in there as well as one byte that stores different information in its high nibble versus its low.</p>

<p>The main binary for the game, MM2.exe, is only 76KB and could be easily disassembled by those more intrepid than I.</p>

<p>Although I could not intuit what all the bytes in the character record mean, I think I got a useful subset defined that would help anyone wishing to create a real slick character trainer.</p>

<p>Here's what an example dumped record looks like:</p>

<p class="code">
17: Paladin      : Female Good Human Paladin
    Level: 7        HP: 305/315 Age: 18
    Might:          100 SP: 56 /56  XP: 80905
    Intelligence:   10 
    Personality:    25  AC: 29  SL: 1   Gold: 30659
    Endurance:      18          Gems: 8
    Speed:          50  Thievery: 0%    Food: 30
    Accuracy:       100 [no skill]  Sandsobar
    Luck:           18  [no skill]  Cond: Good

    Equipped 0: Plate Armor +1          Backpack 0: Small Shield+3  
    Equipped 1: Helm        +4          Backpack 1: Trident     +1  
    Equipped 2: Great Shield+1          Backpack 2: Naginata    +2  
    Equipped 3: Long Bow    +4          Backpack 3: Sickle      +2  
    Equipped 4: Long Sword  +4          Backpack 4: BLANK       -0  
    Equipped 5: BLANK       -0          Backpack 5: BLANK       -0  
    Spell Book
    âââââââââââââââââââ-
</p>

<p>Note that the character name appears in the top left corner.  Here, the character's name really is "Paladin".  I stopped giving the PCs in party-oriented RPGs useless names a while ago.</p>

<p>Enjoy.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[A few small games on taskboy.com]]></title>
    <link href="https://www.taskboy.com/2010-10-19-A_few_small_games_on_taskboy.html"/>
    <published>2010-10-19T00:00:00Z</published>
    <updated>2010-10-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-10-19-A_few_small_games_on_taskboy.html</id>
    <content type="html"><![CDATA[<p>In the <a href="/blog/projects/">Projects</a> section, I have added two new games: <a href="/blog/projects/7tries/">7Tries</a> and <a href="/blog/projects/hangman/">Hanged Man</a>.  These are poor implementations of classic time killer games.</p>

<p>UPDATE: I have re-organized the project section to break out online games from desktop ones.  I have also added a clone of <a href="/blog/projects/mastermind/">Mastermind</a>.</p>

<p>UPDATE: I have added <a href="/blog/projects/battleship/">Battleship</a> too.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Reviewing: Creating Interactive Fiction With Inform 7]]></title>
    <link href="https://www.taskboy.com/2010-09-27-Reviewing__&lt;em&gt;Creating_Interactive_Fiction_With_Inform_7&lt;_em&gt;.html"/>
    <published>2010-09-27T00:00:00Z</published>
    <updated>2010-09-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-09-27-Reviewing__&lt;em&gt;Creating_Interactive_Fiction_With_Inform_7&lt;_em&gt;.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/if_book.jpg" class="icenter"></p>

<p>Veteran interactive fiction (IF) writer Aaron Reed has created an annotated 
travelog of the creation of one particular game called <em>Sand-dancer</em> 
written 
with the "natural language" tool called Inform 7.  His book, 
<em>Creating Interactive Fiction with Inform 7</em>, is geared toward 
semi-technical writers 
who want to create IF without getting a degree in computer science.  Said 
another way, this book attempts to teach programming without talking about 
software or hardware architecture.  This is a very tall order, but 
one that Reed has pulled off to a large degree.</p>

<p>I am not disinterested in this subject.  I am 
professional software developer who is very well versed in the dreary details
of computer technology, but who is new to authoring IF.  When I learn a new 
platform, I look for 
a reference guide that will be complete, organized and well-indexed.  
Neither the standard Inform 7 manual, <em>Writing with Inform</em>, 
nor Reed's book offer a traditional reference experience. Together, however, 
these two resources do complement each other well.</p>

<p>In the world of Interactive Fiction, opinion is split over what 
IF should be.  One group holds that IF is another medium for telling stories, 
just as theatre and movies are.  Opposing this position is the 
"text adventure" crowd, whose proponents hold that IF is 
a game that may or may not have narrative elements.  Reed's work 
is firmly in the first camp.  As such, a good chunk of his text discusses the 
rudiments of fiction writing.  If your interest is in creating "text 
adventures," you may find these bits of little use.</p>

<p>What Reed gets right is to introduce early in his text the important 
mechanisms needed to build a model world with Inform 7.  Here I am 
referring to the basics of room creation, objects and properties.  His 
technique for ensuring 
that important objects are described and handled appropriately is called 
BENT (Bracket Every Notable Thing).  By making every important object 
bracketed in descriptions, Inform will throw an error if you do not create 
that object in the model world.  The BENT technique is definitely going to 
help novice IF writers make higher quality games by avoiding some common 
description errors.  Later, Reed shows that text subsitution can be used for 
even subtler purposes.</p>

<p>The absolute glory of this book is the combing out of the gnarly 
details of how rulebooks work; his explaining of how to use before, after, 
carry out and instead rules effectively; and the detailing the clear 
differences between actions and activities.  These are critical concepts for 
non-trivial IF and the Inform 7 manual isn't as clear as Reed on these 
subjects.</p>

<p>There is great value in showing novices the "design document" for a game, 
which Reed does.  Those familiar with traditional software development will 
expect this sort of thing, but in the IF world, it is a little different. 
The design document is more like a short story with some annotations about 
game mechanics.  This is a productive approach to IF design and a good place
for novices to start.</p>

<p>Reed also has copious suggestions for debugging IF with various Inform 7 
tools.  These include in-game commands such as SHOWME, TREE, ACTIONS 
and RULES; Inform 7 statements like "change library message debug to dbg_on";
and extensive walkthroughs of the Inform 7 IDE using the skein, index 
and transcript functions.  These tools are critical to smoothing out nits in 
IF and will be re-read often by new IF authors.  It is odd though that the 
Test command, which is introduced early in the Inform 7 documation is not 
discussed in any detail.</p>

<p>There are many examples and discussions of Inform 7 extension libraries 
(although there is little details of how to create one).  From conversation
handling to player navigation, Reed's tour will help new authors not reinvent 
the wheel.</p>

<p>As has been said, this book is not designed to be a reference to Inform 7, 
but an appendix or
two of syntax charts and rules tables would not have been unwelcomed.  The 
book is also not very well organized for reference (the same can be said of 
the Inform 7 manual).  For instance, the helpful debugging tips 
are spread across many chapters.  It would be nice to see these
collected in once place.</p>

<p></p>

<p>Even after volumnious examples, I still do 
not have a handle on definitions or relations.  Both are introduced very 
early in the text.  These are high level mechanism that should be easy to 
understand, but the natural language syntax of Inform 7 impedes my 
apprehension.  Reed does provide a helpful table outlining the 
different kinds of relations, which is a small kindness.  However, a good 
chunk of Sand-dancer depends on these two Inform 7 mechanisms, so I felt a 
little lost in later places in the book.</p>

<p>If you are even a little curious about creating IF with Inform 7, you 
really ought to consider reading this book.  Reed will not save you from 
the manual, but he will save you time and a little frustration.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Hiatus]]></title>
    <link href="https://www.taskboy.com/2010-09-12-Hiatus.html"/>
    <published>2010-09-12T00:00:00Z</published>
    <updated>2010-09-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-09-12-Hiatus.html</id>
    <content type="html"><![CDATA[<p>I will be taking a break from technical blogging for a while due to the birth of my son and learning my new job.  I am currently learning the ins and outs of <a href="http://inform7.com">Inform 7</a> so that I may author interactive fiction games.</p>

<p>However, we all know about the best laid plans of mice and men.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Interactive Fiction on Taskboy]]></title>
    <link href="https://www.taskboy.com/2010-08-22-Interactive_Fiction_on_Taskboy.html"/>
    <published>2010-08-22T00:00:00Z</published>
    <updated>2010-08-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-08-22-Interactive_Fiction_on_Taskboy.html</id>
    <content type="html"><![CDATA[<p><img class="icenter" src="/blog/projects/tom/Small%20Cover.png"></p>

<p>Submitted for your approval is a <a href="/blog/projects/tom/">Terrible, Old Manse</a>.  This is my first attempt at making an interactive fiction game with <a href="http://inform7.com/">Inform 7</a>.  The game is an interpretation of the classic Atari 2600 game <em>Haunted House</em>.</p>

<p>As you play the game, please do send me a list of typos or weird behavior that you find.  It is easy enough to bang out new releases.</p>

<p>Enjoy!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Recipe: Potato Salad]]></title>
    <link href="https://www.taskboy.com/2010-07-04-Recipe__Potato_Salad.html"/>
    <published>2010-07-04T00:00:00Z</published>
    <updated>2010-07-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-07-04-Recipe__Potato_Salad.html</id>
    <content type="html"><![CDATA[<h2>Joe's Own American-style Potato Salad</h2>

<p><img src="/blog/img/tater_salad.gif" alt="Mmm" class="icenter"></p>

<p>Cook time: 30 minutes + 8 hours of "get happy time" in the refrigerator</p>

<h3>Software</h3>

<ul>
 <li>Vegetables:
   <ul>
     <li>2lb of red potato (or an equal mix of red/yellow)</li>
     <li>1 small (not pearl) onion (any color)</li>
     <li>1-2 shallots</li>
   </ul>
  </li>

 <li>Dressing:
   <ul>
     <li>1/4 cup (or as needed) of mayo</li>
     <li>1 tbsp of spicy mustard</li>
     <li>1 tsp of Worcestershire source</li>
     <li>1 tbsp of lemon juice</li>
     <li>1/2 tsp of apple cider vinegar</li>
     <li>A small handle of fresh chopped parsley</li>
   </ul>
 </li>

 <li>Other:
   <ul>
     <li>salt and pepper</li>
     <li>cooking oil (olive oil or a neutral oil is fine)</li>
   </ul>
 </li>
</ul>

<h3>Preparation</h3>

<p>If desired, peal potatoes.  Cut potatoes into bite-sized chunks.
In a large pot deposit potatoes, several good sized pinches of salt
and enough water to just cover the spuds.</p>

<p>Bring to a boil and then back the heat down to medium (you want 
active boiling (more than a simmer), but not a violent rolling boil).  
Cook until fork tender (10-15 minutes).</p>

<p>Dump spuds into a colander and hose down with cold water.  
Do not drown them.</p>

<p>Dice the onion and shallots.  In skillet, add a tbsp of cooking oil
and turn the heat to low.  Add onions, shallots and a pinch of salt.
Sweat the aromatics for about 10 minutes.  Remove from heat when onions
are translucent.  Do not burn or caramelize onions.</p>

<p>In a large mixing bowl, add the dressing ingredients.  Mix until smooth.</p>

<p>When the potatoes and aromatics are coolish, add to dressing. 
Fold in the vegetables carefully so as not to destroy the spuds.
Add salt and pepper to taste and yes, you have to taste it to know.</p>

<p>Refrigerate overnight.  Serve chilled for best results.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Token-based single sign-on for Joomla]]></title>
    <link href="https://www.taskboy.com/2010-06-24-Token-based_single_sign-on_for_Joomla.html"/>
    <published>2010-06-24T00:00:00Z</published>
    <updated>2010-06-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-06-24-Token-based_single_sign-on_for_Joomla.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/mrzip.jpg" class="icenter"></p>

<p>NOTE: The full code archive of mechanism described below can 
be found <a href="/blog/projects/joomla_sso/joomla_sso.zip">here</a></p>

<p><a>Joomla</a> is a PHP-based 
CMS that enjoys wide-spread 
popularity.  It's got a many built-in features that make it great for blogs
and news-oriented sites right out of the gate.  Additionally, it supports 
three kinds of extension mechanism: components, plugins and modules.  
Components are low-level facilities that generally support the other two. 
Modules are often user-visible blocks of HTML that can be selectively added 
to the page users see.  Plugins respond to various events (page rendering, 
authentication requests, etc) generated by the Joomla application.</p>

<p>Joomla comes with a variety of login plugins that all use the login module.
These plugins allow users to be validated against an external authentication 
mechanism like LDAP or GMail.</p>

<p>Sometimes it is desirable to log users into the Joomla system who have 
already been authenticated by a different system without asking for their
credentials again.  This is called signle sign-on (SSO).  SSO is a very 
important usability and security feature of many Service-Oriented 
Architectures (SOA).  In this article, I will present a token-based mechanism 
for creating SSO to joomla using the standard extension methods.</p>

<p>To understand this problem a bit better, it is critical to realize that 
there are two seperate notions of identity in an SSO schema.  There is the 
previously authorized identity (that is, the identity that the user supplied 
to the non-Joomla system that originally authenticated them) and the user 
account on the Joomla system that is stored in the local users table.  One 
of the challenges of SSO is to map the remote identity to the local one.
For the sake of this excerise, let's assume that the usernames in both the 
remote authentication system and the local Joomla one are the same.</p>

<p>The next problem is to create a protocol by which authentication credentials 
may be passed from the remote system to the local Joomla one.  To accomplish 
this, I choose to use to copy the existing mod_login form and make some 
minor adjustments to accept HTTP GET parameters.  These GET parameters are 
translated into values in a form that can be processed by the default user 
compoent.  Since the user component calls out the enabled authentication 
plugins, this the kind of routing is desirable.</p>

<p>This form really needs three bits of information to authorize a user: 
the username, the session token and a checksum.  The username is self-evident.
The session token is provided to all authenicated requestors and is discussed more later.  The check sum is hash of the username, token and a shared secret 
known to this system and the remote system passing users to it.  More on this 
later too.</p>

<p>Using a bit of javascript magic, this hidden form is submitted automatically.</p>

<p>Of course, a custom authentication plugin is also required.  The plugin needs
to read a few of the custom form values that are not passed in through the 
normal onAuthenticate() call, so it is necessary for the plugin to directly 
read from the superglobal $_POST.  The job of this plugin is very simple.  If 
the token is valid (that is, it can be found in a DB table and is younger than 
4 hours) and the hash value of the username, token and shared secret matches 
the given hash, then the user is authenticated.  The user is found in the local 
system and the response object is populated accordingly.</p>

<p>The session token can be any string identifier.  In this case, it is the 
MD5 hash of the value returned by the PHP built-in uniqid().  This value is 
generated by a script called 'session.php'.  The script generates this value,
stuffs it into a DB table and simply echoes the value to the caller.</p>

<p>The key to the security of this system comes from the secret string known
only to the remote system that wishes to pass users to the local Joomla system 
and authentication plugin.  This secret is used to generate a hash of the 
usernam and the session token.  By using a hashing mechanism like MD5 or SHA1, 
this checksum value provides pretty good assurance that the values passed in 
were from a known and trusted source.</p>

<p>The way the remote system and the Joomla system interact to make this 
autologin happen is the follow:</p>

<ul>
  <li>The remote client calls the session.php script on the local 
      Joomla system</li>
  <li>The remote client hashes the session token, username and secret</li>
  <li>The remote client generates a URL to the local Joomla system's homepage
  that passes in the following GET parameters: u, t, s (for username, token and checksum respectively)</li>
  <li>The remote client redirects the user to this URL</li>
  <li>If the token is authenticated, the user is logged into the local Joomla 
  system as a local Joomla user.</li>
</ul>

<p>You'll also notice that you could easily map all remote users to one generic
Joomla user if that is desirable.</p>

<p>I hope you find this useful in crafting your own Joomla solutions</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Recipe: French Onion Dip]]></title>
    <link href="https://www.taskboy.com/2010-06-02-Recipe__French_Onion_Dip.html"/>
    <published>2010-06-02T00:00:00Z</published>
    <updated>2010-06-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-06-02-Recipe__French_Onion_Dip.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/French-Onion-Dip.jpg" alt="This isn't my dip, but close enough for internet work" class="icenter"></p>

<h3>French Onion Dip</h3>

<p>Software:</p>

<ul> 
 <li>1 cup of white or yellow onions</li>
 <li>4oz. of beef broth</li>
 <li>1 good-sized garlic clove</li>
 <li>16oz of sour cream</li>
 <li>1 teaspoon of Worcerstershire sauce</li>
 <li>Extra vigin olive oil </li>
 <li>salt + white pepper (black pepper is fine too)</li>
</ul>

<p>Preparation:</p>

<p>Dice the onions fine.  No one wants huge chunks of onions hanging 
off their potato chips.</p>

<p>Smash and chop the garlic.</p>

<p>Put a non-iron skillet pan over lowish heat.  More heat than for a
sweat but far less than for a saute.  When the pan is hot, add a puddle
of oil to the pan.  How much?  Enough to cover the bottom of the pan, but 
not more.  This isn't a deep fry.</p>

<p>Add the onions and garlic to the pan.  Throw a pinch of salt on to the 
veggies.  Let 'em sit there for 20 minutes.  You're caramelizing the onions. 
Give them a stir ever minute or two so that you don't burn them. </p>

<p>When the onions are golden brown and delicious, move them to the sides of 
pan.  Deglaze the pan with the beef broth.  Pour the liquid into the pan and 
using a wooden spoon, scrap up the frond from the pan.  Did you notice that 
the onions sucked up the broth?  That's the secret.</p>

<p>Remove the onion/garlic mass to bowl for cooling.  I recommend a glass 
bowl for this, but whatever you use will not affect the final taste.</p>

<p>If you added 1/4 teaspoon of garlic powder, you wouldn't ruin the dip.</p>

<p>Slop into a mixing bowl the sour cream and the worcestershire sauce. 
Stir until mixed.</p>

<p>When the onion/garlic mass is cool enough to touch, add to the sour cream.
If you add the hot mass to the cream, it could curdle.</p>

<p></p>

<p>Add salt and pepper to taste.  Do not over salt, especially if you're
planning on serving this with potato chips.  And I recommend serving this 
with potato chips.</p>

<p>I suspect that adding an ounce or two of brandy or cognac at the deglazing stage would be the right thing to do, if you've got such things on hand.</p>

<p>Some people will want to replace up to 6 oz of the sour cream with mayo.  I think this makes dip too runny, but it is your food to play with.</p>

<p>Serving options:</p>

<p>With potato chips (Cape Cod chips are my favorite) or with a veggie 
assortment (e.g. carrots and celery).</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Sending HTML mail through Wordpress]]></title>
    <link href="https://www.taskboy.com/2010-05-25-Sending_HTML_mail_through_Wordpress.html"/>
    <published>2010-05-25T00:00:00Z</published>
    <updated>2010-05-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-05-25-Sending_HTML_mail_through_Wordpress.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/postal_delivery.gif" class="icenter"></p>

<p>I've been working with the PHP 
CMS 
<a href="http://www.wordpress.org/">WordPress</a>
a lot lately.  It's a pretty simple system that doesn't 
make its internals hard to get to, which I appreciate.</p>

<p>One of the internal functions WP provides is 
<a href="http://codex.wordpress.org/Function_Reference/wp_mail">wp_mail</a>.  
This, you might have guessed, is used
to send SMTP mail.  
The parameter list for this function is 
a bit long and long parameters lists are hard to remember:</p>

<p class="code">
wp_mail( $to, $sub, $body, $hdrs, $attach );
</p>

<p>These parameters are pretty self-evident: mail recepient, subject line,
body of message, SMTP headers, attachments.  The last two parameters are 
optional. This works great for sending
plain, unformated text messages.  However, you may want to tweak this a bit.
</p>

<p>The first thing you might want to do is change the default sender.  This 
is done by adding a header:</p>

<p class="code">
$to = "nemo@uptopia.com";
$sub = "Your submarine parts";
$msg = "I have the new parts for your fabulous machine.";

$headers = array("From: Joe Johnston &lt;jjohn@taskboy.com>");
$h = implode("\r\n",$headers) . "\r\n";

wp_mail($to, $sub, $msg, $h);
</p>

<p></p>

<p>This makes the email look like it was sent by me even though the 
the web server process running the PHP script isn't owned by my account.</p>

<p>Another common task is to send HTML-formated email using this system.
To do this, you must change the content type of the message to text/html.  
This is most easily
done through the headers, even though you are supposed to be able to do this 
through the filter wp_mail_content_type.  In my testing, this did not work, but
the following code did:</p>

<p class="code">
$to = "nemo@uptopia.com";
$sub = "Your submarine parts";
$msg = "&lt;html>&lt;body>&lt;h1>Awsome news&lt;/h1>
    &lt;p>I have the new parts for your fabulous machine.&lt;/p>
    &lt;address>âJoe&lt;/address>";

$headers = array("From: Joe Johnston &lt;jjohn@taskboy.com>",
             "Content-Type: text/html"
             );
$h = implode("\r\n",$headers) . "\r\n";

wp_mail($to, $sub, $msg, $h);
</p>

<p>By adding the content type to the headers, the recipient's email 
client should format the message accordingly.</p>

<p>Of course, sending HTML email has risks.  It could be caught in spam 
filters.  The client may not support HTML formatting (although that's rare).
The client may disable email HTML from using javascript, CSS or grabbing 
remote assets like images.</p>

<p>Caveat Spammer.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[iWebKit makes mobile app development easier]]></title>
    <link href="https://www.taskboy.com/2010-05-20-iWebKit_makes_mobile_app_development_easier.html"/>
    <published>2010-05-20T00:00:00Z</published>
    <updated>2010-05-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-05-20-iWebKit_makes_mobile_app_development_easier.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/feeds-mobile.gif" title="Feedbag mobile in Chrome" class="icenter"></p>

<p>The Apple <a href="http://developer.apple.com/iphone/index.action">iPhone 
OS</a> platform has become increasingly popular target for new development.
This is the OS that powers the iPod touch, iPad and of course, the iPhone.</p>

<p>There are two kinds of apps that one can create for these devices.  The 
first is a native application, usually written in Objective-C and published
through Apple's App Store.  Not only is this kind of app harder to write, but
developers may not like their hard work blocked by the whims of Apple.</p>

<p>Because these devices all have at least WiFi access to the internet, 
it is possible to design web applications tailored to these mobile devices.
These "cloud" apps run like normal web applications but must constrain their
UI a bit.</p>

<p></p>

<p><a href="http://iwebkit.net/">iWebKit</a> (ignore the malware site 
warning if you see it) <a title="Sadly the download link is busted on the site" href="http://iwebkit.net/download/iwebkit/iWebKit5.04.zip">[download]</a> makes this 
significantly easier to do.  This project 
is a set of CSS and Javascript files that can give your web app the standard 
look and feel of other web apps for the iPhone.</p>

<p>There are a few conventions that iWebKit imposes, but these will be familiar
to most XHTML developers anyway.  In the space of a few hours using this 
project, I was able to produce a iPhone version of the <a href="http://taskboy.com/m">Feed Bag</a>.  If you are using 
the Safari browser or Google's Chrome, that page will appear much as it would 
on an iPhone.</p>

<p>While this application is very simple, it does look like a native app.
This makes me very happy.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Very quick git primer for basic functionality]]></title>
    <link href="https://www.taskboy.com/2010-05-10-Very_quick_git_primer_for_basic_functionality.html"/>
    <published>2010-05-10T00:00:00Z</published>
    <updated>2010-05-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-05-10-Very_quick_git_primer_for_basic_functionality.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/wizard_sm.gif" class="icenter"></p>

<p>Here's a post to remind me of simple <a href="http://github.com/">Git</a> 
procedures.  Maybe 
other people with find this helpful.  After using CVS for a decade, it's a 
bit hard to wrap my head around git, but I'm making that journey.</p>

<p>I'm using github as my repository.</p>

<h3>START A NEW PROJECT</h3>

<p class="code">
mkdir MYPROJECT
cd MYPROJECT
git init
touch README
git add README
git commit -m "first"
git remote add origin git@github.com:/GITHUB_USERNAME/MYPROJECT.git
git push origin master
</p>

<p>A git repository URL looks something like this: <code>git@github.com:/taskboy3000/Tester.git</code></p>

<p><a href="http://thelucid.com/2008/12/02/git-setting-up-a-remote-repository-and-doing-an-initial-push/">Also see</a></p>

<h3>WORK ON AN EXISTING PROJECT</h3>

<p class="code">
git clone [GITPROJECTURL]
</p>

<h3>ADD FILES TO LOCAL REPOSITORY</h3>

<p class="code">
git add [FILE]
git commit -m "My comment about the files I added"
</p>

<p>You can also add all the files in your project at once:</p>

<p class="code">
git commit -a -m "All files, including tilde files, have been added"
</p>

<h3>UPDATE REMOTE MASTER WITH LOCAL SANDBOX</h3>

<p class="code">
git commit -m "Final checkin"
git push origin master
</p>

<h3>UPDATE LOCAL SANDBOX WITH REMOTE MASTER</h3>

<p class="code">
git fetch origin
git merge origin master
</p>

<h3>REVERT LOCAL SANDBOX TO REMOTE MASTER</h3>

<p class="code">
git reset âhard
</p>

<p>This will restore deleted files and overwrite uncommitted changes.</p>

<p>Although you can also delete a local file and check it out from the local repository again:</p>

<p class="code">
rm [FILE]
git checkout [FILE]
</p>

<p>Also see the <a href="http://progit.org/book/">github book</a>.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Tips for spammers: don't insult me]]></title>
    <link href="https://www.taskboy.com/2010-05-04-Tips_for_spammers__don&apos;t_insult_me.html"/>
    <published>2010-05-04T00:00:00Z</published>
    <updated>2010-05-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-05-04-Tips_for_spammers__don&apos;t_insult_me.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/dungeon_master.jpg" class="icenter"></p>

<p>Spammers are attempting to use the comment system here for their nefarious purposes.  That's why I moderate comments.  Here's the body of a comment that will not appear:</p>

<blockquote>
First of all, you have a penchant for using verbs in the past tense even if they should not. But hey, you're a computer geek and not a language teacher. Very good you got your things working there and cable problems are often solvedby cable bonds or cable tamers that can be easily bought in computer shops. You know that,don't you?
</blockquote>

<p><a href="http://taskboy.com/blog/static/New_monitor.html">Here</a> is the article this was attached to.  And for the record, that HP monitor died last year, which is disappointing.  The 14" El Cheapo brand is still working fine.</p>

<p>The point is, the grammar is fine in that post.  You'll have to bait me another way, Senor Spamalot.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[CakePHP vs. Symfony: a quick note]]></title>
    <link href="https://www.taskboy.com/2010-04-23-CakePHP_vs.html"/>
    <published>2010-04-23T00:00:00Z</published>
    <updated>2010-04-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-04-23-CakePHP_vs.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/alien_cake.gif" class="icenter"></p>

<p>I have been working through both the symfony JobBeet tutorial and cakePHP's blog tut.  Both are basic CRUD apps.  Here's my considered opinion of both.</p>

<p><a href="http://www.symfony-project.org/">Symfony</a> is by far the more sophisticated of the two.  The class system, ORM integration and YAML configuration really put this framework on par with any written in any other language.  It's truly enterprise ready.  However, it is simply a beast to learn.  Installation virtually requires using an apache virtual host.  
Creating a skeleton app is easy, but non-intuitive.  Just to create and process a simple HTML, you end up touching about 4 or so files in as many directories.  Also, there is a heavy reliance on the PHP CLI, which can be an issue if your installation has different versions of php for the shell and apache (which the Mac does).  While I can get the JobBeet tutorial going, I cannot get much further â and I have two of the three books from the developers.</p>

<p><a href="http://cakephp.org/">CakePHP</a> is a lot simpler, if less ambitious, than symfony.  It appears to be pretty lightweight and has no CLI dependency (although there is a lot of automation that is offered by the cake client).  The relationship between the model, controller and view is pretty easily grasped.  To create a form for an existing model, you're looking at editing two files in two closely related directories.</p>

<p>If you're looking for a solid MVC framework in PHP, you could do a lot worse than cakePHP.</p>

<p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Creating events for Yahoo and Google calendars]]></title>
    <link href="https://www.taskboy.com/2010-04-21-Creating_events_for_Yahoo_and_Google_calendars.html"/>
    <published>2010-04-21T00:00:00Z</published>
    <updated>2010-04-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-04-21-Creating_events_for_Yahoo_and_Google_calendars.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/molten-earth.gif" class="icenter"></p>

<blockquote>
&laquo;If I could save time in a bottle<br>
The first thing that I'd like to do<br>
Is to save every day<br>
Till Eternity passes away<br>
Just to spend them with you&raquo;
</blockquote>

<p>âJim Croce</p>

<p>If you're anything like me, you live and die by your calendar.  Over
the years, I've moved from simple paper calendars to the Palm Pilot back to 
paper and finally ending up online with Yahoo and Google.  This brief 
post talks about creating hyperlinks that add an event to the clicker's 
yahoo or google calendar.</p>

<p>Of course, not everyone uses these online calendars.  Some use Outlook or iCal
or some other desktop solution.  The key to publishing events for these systems 
is to use the <a href="http://en.wikipedia.org/wiki/ICalendar">ICalendar</a> format
which most desktop apps can import.  The MIME type for such an ICalendar file is 
<code>text/calendar</code>.  You might also consider using the XHTML microformat 
hCalendar, which I mentioned briefly in an 
<a href="http://taskboy.com/blog/static/Microformats_RDFa_and_their_semantic_uses.html">earlier post</a>.
However, this microformat isn't likely to be understood by most desktop apps.  
</p>

<p>First, let's suppose that we have an event that we want to publish.  I turn 40 next year, so 
let's create an birthday party event for that.  In the iCalendar format, such an event might 
look like this:</p>

<p class="code">
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//taskboy calendar app
BEGIN:VEVENT
SUMMARY:Joe turns 40 just this once
ORGANIZER;CN=Joe Johnston:MAILTO:jjohn@taskboy.com
DTSTAMP:20100421T105300
DTSTART:20111212T190000
DTEND:20111212T200000
END:VEVENT
END:VCALENDAR
</p>

<p></p>

<p>A great deal of this format is boilerplate stuff.  The overall container is VCALENDAR, which 
has a BEGIN and END.  Immediately after that is meta-information (like HTML's HEAD section) 
containing the format version and the app's product ID (which is arbitrary).  After the header, 
the actual VEVENT section begins.  There are many types of objects VCalendar can contain including
VREPLY, VJOURNAL and VTODO, but this isn't about those (read the 
<a href="http://tools.ietf.org/html/rfc4324">RFC for more info</a>).  Let's look at the VEVENT 
attributes in tabular form:</p>

<table>
 <tr>
   <th>Attribute</th><th>Meaning<th>
 </tr>
 <tr>
   <td>SUMMARY</td>
   <td>A brief description of the event</td>
 </tr>
 <tr>
   <td>ORGANIZER</td>
   <td>Who organized this event, in LDAP format</td>
 </tr>
 <tr>
   <td>DTSTAMP</td>
   <td>When this ICalendar file was created</td>
 </tr>
 <tr>
   <td>DTSTART</td>
   <td>When this event starts</td>
 </tr>
 <tr>
   <td>DTEND</td>
   <td>When this event ends</td>
 </tr>
</table>

<p>The purpose these elements is relatively self-evident.  The datetime format used throughout
is the ever-popular <a href="http://en.wikipedia.org/wiki/Iso8601">ISO8601</a>.  The ORGANIZER 
is given in LDAP format, but the spec does not require it to be so.  However, most applications, 
like Outlook, will attempt to locate ORGANIZER in an LDAP system, so this makes a bit of sense.
</p>

<p>Above is a basic, serviceable ICalendar file.  You can even check this using the handy 
<a href="http://severinghaus.org/projects/icv/">ICalendar validator</a>.  Enough about 
the desktop.  Let's move on to web-based calendars.</p>

<p>Yahoo Calendar does not, as far as I can see, publish an API.  However, people have 
ferreted out enough 
<a href="http://chris.photobooks.com/tests/calendar/Notes.html">information</a> to be useful. 
By creating a simple HTTP GET request (in the form of a hyperlink), events can be entered into 
Yahoo Calendar.</p>

<p>The base URL for Yahoo Calendar is: <code>http://calendar.yahoo.com/</code>.  The following 
parameters are required: <code>v=60</code> and <code>TITLE=event</code>.  Next come the 
metadata for the event itself:</p>

<table>
  <tr>
    <th>Parameter</th><th>Meaning</th>
  </tr>
  <tr>
    <td>DESC</td>
    <td>A brief description of the event</td>
  </tr>
  <tr>
    <td>ST</td>
    <td>ISO8601 datetime of when the event begins</td>
  </tr>
  <tr>
    <td>DUR</td>
    <td>How long the event lasts in HHMM format</td>
  </tr>
  <tr>
    <td>URL</td>
    <td>A URL to a page describing the event</td>
  </tr>
  <tr>
    <td>in_loc</td>
    <td>A brief label for the event location</td>
  </tr>
  <tr>
    <td>in_st</td>
    <td>Street address of the event</td>
  </tr>
  <tr>
    <td>in_csz</td>
    <td>City/State/Zip of the event</td>
  </tr>
</table>

<p>Remember: all parameters must be URLencoded.  There is a TYPE parameter that can specify 
the kind of event.  The default is "Appointment" (type 10).  See the link to Chris's notes for 
more options there.  The following link will add my Birthday event to your Calendar:</p>

<p></p>

<p><a href="http://calendar.yahoo.com/?v=60&TITLE=event&DESC=Joe+turns+40+just+this+once&ST=20111212T190000&DUR=0100&in_loc=Gillette+Stadium">Add to Yahoo</a></p>

<p>Google Calendar has a similar system, but it is 
<a href="http://www.google.com/googlecalendar/event_publisher_guide_detail.html">documented</a>.
The base URL for adding calendar events is <code>http://www.google.com/calendar/event</code>.
There is one required parameter: <code>action=TEMPLATE</code>. Here is a rundown of their 
parameters:</p>

<table>
  <tr>
    <th>Parameter</th>
    <th>Meaning</th>
  </tr>
  <tr>
    <td>text</td>
    <td>A label for the event</td>
  </tr>
  <tr>
    <td>dates</td>
    <td>Of the form: START/END where START and END are in ISO8601 format</td>
  </tr>
  <tr>
    <td>name</td>
    <td>Description of the event</td>
  </tr>
  <tr>
    <td>details</td>
    <td>A description of the event</td>
  </tr>
  <tr>
    <td>location</td>
    <td>Description of the event</td>
  </tr>
</table>

<p>These parameters need to be URLencoded too.  Google differs slightly from the above formats
in that the event can have both a label and a description.   The start and end time of the event
are given in one parameter, which is unnerving.  Here's my example event for Google:</p>

<p><a href="http://www.google.com/calendar/event?action=TEMPLATE&text=Joe's+40th+Birthday&details=Joe+turns+40+just+this+once&dates=20111212T190000/20111212T200000&location=Gillette+Stadium">Add to Google</a></p>

<p>Because these links will not return the user to the site they came from, consider using 
a popup window for these links.</p>

<p>That's the gist of adding events to calendars.  Of course, there are a lot more parameters 
that can be added to these publications and I haven't touched recurring events at all.  Still, 
this is a good jumping off point for your own exploration of the magic of event scheduling.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[SANs on a budget: iSCSI under Ubuntu]]></title>
    <link href="https://www.taskboy.com/2010-04-14-SANs_on_a_budget__iSCSI_under_Ubuntu.html"/>
    <published>2010-04-14T00:00:00Z</published>
    <updated>2010-04-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-04-14-SANs_on_a_budget__iSCSI_under_Ubuntu.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/iSCSIProtocolStack.jpg" class="icenter"></p>

<blockquote>
&laquo;iSCSI has become the storage connectivity of choice for small business, 
with applications such as VMware VI3, Exchange, and MS SQL certified on it. It 
runs on standard Ethernet networks.&raquo;
</blockquote>

<p>â<a href="http://www.greenpages.com/news-events/newsletters/2009/February/BuildingDataSuperhighway.html">Green Pages</a></p>

<p><a href="http://en.wikipedia.org/wiki/Iscsi">iSCSI</a> is a network protocol
that allows remote disks to appear as local devices to computer.  At a very 
high level, this schema falls under the rubric of 
<a href="http://en.wikipedia.org/wiki/Storage_area_network">Storage Area 
Network</a>.  The difference between iSCSI and NAS protocols that deliver file systems like NFS or Samba, is 
that that the shared iSCSI resources look like local devices to 
the system using them.  This has some interesting consequences for diskless
terminals and the like.</p>

<p>iSCSI is a client-server system.  The server presents iSCSI targets (hard 
drives or files that pretend to be hard drives) clients that can use these 
resources.  The clients are called initiators since they start the protocol. 
That is, servers with targets do not broadcast their services.  iSCSI targets
must be discovered by initiators.</p>

<p>When a client finds a desired target, it asks for authorization to use the 
resource via a login command.  If that succeeds, a new SCSI devices appears on 
the client system that's read for partitioning and provisioning.  If the disk 
as already been initialized, then the resouce can be mounted like any other 
filesystem.</p>

<p>It turns out, configuring iSCSI on Ubuntu (and other linux distros) is 
pretty straight-forward.  Let's first set up a system that offers iSCSI targets.
In this example, the target will be a file rather than a physical device.</p>

<p>Log into your Ubuntu machine.  Become root (<code>sudo su -</code>) of you 
aren't. 
Create a disk image (<code>dd if=/dev/zero of=/iscsi.disk count=0 obs=1 
seek=2G</code>).  In this case, a empty 2GB file is created at the root of the 
filesystem.  Install the iscsitarget package (<code>apt-get install 
iscsitarget</code>).  Define the new target in /etc/ietd.conf.  Edit the file 
so that it looks something like:</p>

<p class="code">
Target iqn.2010-filer.network.local:iscsi.lun1
   Lun 0 Path=/iscsi.disk,Type=fileio
</p>

<p></p>

<p>The name of the target is pretty arbitrary, but you must have a unique 
naming convention for resources across your network of iSCSI targets.  For 
more on this, see the Wikipedia article cited above.  Since this target is 
the first one list, it gets Lun 0.  This is analogous to how the first disk 
in a SCSI chain is listed by hardware.</p>

<p>Now, we need to twiddle some permissions.  By default, iSCSI targets 
are not published and allow no initiators.  To enable targets to be discovered,
edit /etc/default/iscsitarget and set the ENABLE flag to "true".  Now allow
initiators to discover your targets by editing /etc/initiators.allow.  Add 
a the following line to the bottom of the file <code>ALL ALL</code>.</p>

<p>Finally, we're ready to start the target daemon.  This is the process 
that initiators talk to.  To start (or restart it), type 
<code>/etc/init.d/iscsitarget restart</code>.</p>

<p>Now we're ready to configure the initiator.  Simple install the following 
utilities: <code>apt-get install open-iscsi open-iscsi-utils</code>.  Now, 
discover the targets.  In this example, assume that the target machine is 
called filer.network.local.</p>

<p class="code">
iscsiadm -m discovery -t sendtargets -p filer.network.local
</p>

<p>You should see a list of available targets offered by the filer.  Select
one (e.g. "iqn.2010-filer.network.local:iscsi.lun1") and get authorized to 
use it:</p>

<p class="code">
iscsiadm -m node -p filer.network.local \
   âtargetname "iqn.2010-filer.network.local:iscsi.lun1" âlogin
</p>

<p>Please note that I merely split the line for display purposes.  If all has 
gone well, you should be able to see the new device through fdisk: 
<code>fdisk -l</code>.  You may see a new and empty device called /dev/sdb (if 
you already have one SCSI disk).  This disk is ready for partitioning with 
fdisk, provisioning with mkfs and mounting on your root filesystem.</p>

<p>When you reboot, your iSCSI disks should be available without using the 
iscsiadm tool.  The daemon processed that do this are controlled by the 
/etc/init.d/open-iscsi script.</p>

<p>What I presented here is fine for local, trusted networks.  There is zero
security in this configuration.  There are all sorts of authentication schemes 
for targets and encryption options for the iSCSI traffic.  Also, using a fake 
disk (i.e. a file) as a target will not give you very good performance on the 
host.  I leave all of these enhancements as an exercise for the reader.</p>

<p>UPDATE: Here a link to the Microsoft <a href="http://www.microsoft.com/downloads/details.aspx?familyid=12cb3c1a-15d6-4585-b385-befd1319f825&displaylang=en#filelist">iSCSI initiator</a> 
for Windows XP and above.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[iPad, iTouch and Kindle: Which is the better mousetrap?]]></title>
    <link href="https://www.taskboy.com/2010-04-07-iPad,_iTouch_and_Kindle__Which_is_the_better_mousetrap_.html"/>
    <published>2010-04-07T00:00:00Z</published>
    <updated>2010-04-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-04-07-iPad,_iTouch_and_Kindle__Which_is_the_better_mousetrap_.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/rusted-steampunk-usb-drive.jpg" class="icenter"></p>

<blockquote>
&laquo;I think there is a world market for maybe five computers&raquo;
</blockquote>

<p>â<a href="http://en.wikipedia.org/wiki/Thomas_J._Watson">Fictional Quote by Thomas Watson</a></p>

<p>Last weekend, Apple's iPad went on sale in their retail stores.  
Coincidentally, my iPod classic (a 6 year old hand-me-down) had recently 
become nearly unusable due to hard drive errors (I told you this was a bad
design years ago).  Desiring a new MP3 device, I waddled into the Apple 
store in Nashua, NH.  There were two armed security guards there and a 
gaggle of gawkers pawing at a table full of iPads.  I moved deeper into the 
store, found an employee with a lot of gray hair (I'm not hip enough for the 
tattoo'ed set) and obtained a 32GB iPod Touch.  Why on Earth would I choose 
an iPod over the fancy iPad?  Let me illuminate the ways.</p>

<p>I want to promulgate an essentialist argument about purpose of 
three devices: iPad, iPod Touch and the Amazon Kindle.  The Kindle (which 
I received as a Christmas present) is designed as an ebook reader, library and 
store front.  That is, not only can you read books on it, but you can purchase 
new ones from Amazon and have them immediately downloaded to your device.  
Additionally, the Kindle comes with free 3G service so that you can access a  
low-resolution version of the Internet anywhere.  This feature alone  should
scare Apple into a price/feature war with Amazon.  Add a decent 
battery life and a daylight-readable display, you will quickly see that the 
Kindle's offering is excellent for those seeking an excellent ebook experience.</p>

<p>Enter the iPad.  The iPad has a large color LCD screen and the Apple mobile 
OS.  It does not come with any 3G service, but it does include wifi support. 
This makes it a large iPod Touch, but without the microphone headphones that 
come standard with the new Touch models.  As a laptop, the iPad needs a 
keyboard, which is both proprietary and sold separately.  As a gaming device, 
the iPad, with the built-in gyroscope and networking, will offer hours of 
casual gaming fun, but it won't kill the traditional gaming consoles.  As an 
ebook reader, it does not compete well against the kindle.  The iPad 
is significantly more expensive and worse on battery life.  Also, you may 
not want to spend more of your time looking at yet another LCD screen for 
leisure.</p>

<p>The iPad looks a lot like a new kind of netbook.  It is a general 
purpose computer ideally suited for causal computing tasks like web browsing, 
tweeting, and a game or two.  In this capacity, I expect the iPad to meet with 
moderate success.  It is prettier than the other netbooks, if a bit pricier.
However, it is extremely portable (although not pocket-portable) and I expect
to see iPad proliferate in cafes very soon.</p>

<p>And what of the now lowly iPod Touch?  Why would anyone buy this little 
brother iPad now?  There are two compelling features of the newer Touch models:
size and the microphone headset.  The Touch is essentially a very small general 
purpose device.  As an MP3 player, I find it much harder to use than the older
iPod classic, the iPod Nano and especially the Shuffle.  Those devices are 
single-purposed: they play music and their interface is bent to this single 
task.  Those devices are excellent.  Don't believe me?  Take an iPod Touch
and try to get it to play a random selection of music.  First, you have to hit
the only button on the device.  Then you use the touch pad to "unlock" the UI. 
Then you search for the button labelled "Music".  Try not to get confused with
the iTunes icon, which is what you'd click on a Mac OS X machine.  Then you 
hit the Music button at the bottom only to get (perhaps) a list of songs.  If 
you don't see a list of songs, you must press the "Songs" icon at the button of 
the app.  Scroll to the top of this list and you'll see an area called Shuffle.
 It might occur to you to then press in the "Shuffle" area.  Why no button?  
Buttons afford pressing.  I though the Apple UI guys where supposed to be 
good at this kind of thing.  If you get through all this, you'll get some 
music.  And what if you want to skip ahead to a new song?  If the Touch as 
gone to sleep, you might find it hard to get back to the one screen that has
the song forward control (hint, your Touch needs to be upright, not on its 
side).</p>

<p>Try this same set of tasks on the other iPods and you'll see that those 
devices are optimized for playing and managing music.</p>

<p>This is all to say that I didn't buy the Touch as a music player and that I 
do not believe that it is a music player at all.  It's the tiniest netbook 
on the market. I can and do actually read web sites with this thing.  I can 
check my yahoo mail with it.  I even use Skype on it.  That's right, Skype. 
At least in my house within range of my wifi, I have a cheap iPhone (itself
a netbook/phone hybrid).</p>

<p>Where does this leave our three devices?  For my money, the Kindle is 
without peer for reading ebooks.   As a netbook, it's not very good (but 
that is by design).  The iPad is great for those looking for a netbook with 
great screen real estate.  The Touch is a netbook for those who put a premium 
on weight and space.  The other iPods are still the kings of portable music 
devices.</p>

<p></p>

<p>UDPATE: I just learned that I can shake the Touch to change to the next song.  Fun UI, I admit, it's not exactly a visible UI element either.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Rise of the Ad-Hocracy, Part II]]></title>
    <link href="https://www.taskboy.com/2010-04-06-_Rise_of_the_Ad-Hocracy,_Part_II.html"/>
    <published>2010-04-06T00:00:00Z</published>
    <updated>2010-04-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-04-06-_Rise_of_the_Ad-Hocracy,_Part_II.html</id>
    <content type="html"><![CDATA[<p><img src="http://taskboy.com/blog/img/flying_spaghetti_monster.jpg" class="icenter"></p>

<blockquote>
&laquo;Someone's sitting in the shade today because someone planted a tree a long time ago.&raquo;
</blockquote>

<p>â<a href="http://www.moneysmith.com/great-quotes/">Warren Buffet</a></p>

<p>In <a href="http://taskboy.com/blog/static/Rise_of_the_Ad_Hocracy_Part_I.html">the 
first part</a> of this series, I illuminated what I believe to be
the important first steps of electronic social media (that is, social groups created
and maintained primarily through computers).  In this conclusion, I trace how 
social media moved beyond the technically savvy and privileged to the rest of us.</p>

<p>The term World Wide Web is rarely used anymore and that's a shame.  The Web, 
a system of interconnected HTML documents retrieved through the HTTP protocol, 
is mass transit system of nearly all modern electronic communication that 
travels over the Internet.  I suppose its a kind of compliment that when most 
folks refer to the Web, they call it the "Internet" (or "netternet" or 
"interwebs").  Whatever it's called, the system that allowed for the creation 
and proliferation of web sites allowed for the next generation.</p>

<p></p>

<p>For many, the Web was a kind of Graphic User Interface to the Internet.  In
a sense, everything that had been invented for UNIX needed to be brought into 
the world of personal computers (including UNIX itself in the form of Linux 
and *BSD).  Is it a surprise that the twenty year old unix utility came back 
in the form of AOL's Instant Message in the late nineties?  Not to me.  If an 
earlier generation had lived socially through email, there was now a younger
generation that lived on IM or ICQ.  Mobile phones, which already had SMS 
messaging, began supporting IM directly so that you could always text chat 
with your friends when when you were away from your computer.  IM is mostly 
a 1-1 connection.  That is, one person chating with only one other person.  
Another limitation of IM is that the conversation were private and generally 
impermanent.  For private conversations, that's probably OK, but clearly there 
was a market for more.</p>

<p>While some folks were making dinner plans over IM, others were journaling 
their rage through weblogs.  Weblogs, for those recently revived coma victims, 
are a form of website built to be updated with new content frequently.  The 
writing staff of blogs can be as small as one person or as many as dozens (or 
thousands in the case of kuro5hin, slashdot, digg, metafilter, etc).  What 
makes blogs social is the commenting system that allows readers to respond to 
particular blog posts.  Moreover, bloggers will reference the posts of other 
blogs. Being web pages, blogs are long-term publications that 
can be referred to in the future through search engines.  Blogs exploded in the 
first part of the first decade of the twenty first century and now (2010) look 
to seriously challenge and even replace a large number of traditional print 
media organizations.  Of couse, someone needs to figure out how to incorporated 
an editorial staff into blogs at some point, but that's a different article.</p>

<p>2002 saw the quiet beginnings of websites that were something both less 
and more than blogs.  Sites like Friendster and MySpace were designed for what I'll 
call "small updates."  A user might upload a picture or a song along with a brief 
updated on what they were doing to a "profile page."  User content was limited 
to one page.  Rarely would these posts be longer than a few 
sentences.</p>

<p>The real value of these sites was that they allowed users to identify 
connections with other users on the system.  This is the beginning of web-based
social networks, which is a bit of a dehumanizing term.  A network is a system of 
nodes connected by routes.  In social networking, you are a node.  Your value, at
least to marketers, was the number of your connections rather than the content 
of your profile.</p>

<p>However, the value of social networks to users was to build a broadcast
system to a community of your friends (i.e. trusted contacts).  This notion is 
quiet powerful and would continue its evolution in a web site designed to 
bring together academics.  That site is Facebook.  Facebook took all of the 
elements of social media that had been developed in other site and made user
status updates private (by default).  This element of exclusivity at first 
seems paradoxical, but many user want to limit the scope of their broadcasting.
Facebook provides an excellent vehicle for this.</p>

<p>I would like to note that the blogging site LiveJournal also has an interesting
feature to limit the visibility of posts using "locks".  LJ posts are generally
publically visible, but locked posts are visible only to friends.</p>

<p>There seems to be a lot of mileage to be had by limiting the functionality of 
blogs.  If Facebook limits the scope of broadcasting, Twitter limits the length of
posts.  Twitter is a bit like a UNIX system log.  It receives short updates from 
multiple programs.  Any UNIX admin will tell you the utility of reading the system 
log.  It's a snapshot of the current state of the system.  In the same way, Twitter
is not a media of deep intellectually pondering.  It's a system that captures the 
zeitgeist of its users.</p>

<p>Twitter and Facebook operate as very different social media engines.  Facebook 
(and linkedIn for that matter) are tools that identify existing relationships.  
Twitter encourages browsing for new friends.</p>

<p></p>

<p>And that's where social media is today.  The web expanding the reach of social 
networks by removing a lot of the technical requirements of its users.  It's hard
to see what the next step for social media will be.  I suspect it will be in the 
realm of mobile devices.  Perhaps some kind of location-based ad-hoc social
network.  Perhaps there is value is creating networks of networks.  The future 
is now.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Rise of the Ad-Hocracy, Part I]]></title>
    <link href="https://www.taskboy.com/2010-03-31-Rise_of_the_Ad-Hocracy,_Part_I.html"/>
    <published>2010-03-31T00:00:00Z</published>
    <updated>2010-03-31T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-03-31-Rise_of_the_Ad-Hocracy,_Part_I.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/propaganda.jpg" title="Media of the world, unite!" class="icenter"></p>

<blockquote>
&laquo;Adhocracy is a type of organization  being antonymous to 
bureaucracy. The term was first popularized in 1970 by Alvin Toffler, 
and has since become often used in the theory of management of 
organizations (particularly online organizations), further developed 
by academics such as Henry Mintzberg.&raquo;
</blockquote>

<p>â<a href="http://en.wikipedia.org/wiki/Adhocracy">Wikipedia</a></p>

<p></p>

<p>Electronic social media is not new, but the scale of it, perhaps is.</p>

<p>A recent 
<a href="http://www.onpointradio.org/2010/03/warcraft-civilization">OnPoint 
radio program</a> 
talked about William Sims Bainbridge's, a social scientist, excersions
into the <a href="http://www.worldofwarcraft.com/">World of Warcraft</a>. 
Aside from a lot of old-manisms from the host, the show gave perhaps the most
positive spin on the effect of this wildly popular 
MMORPG
I've yet heard.  After literally thousands of hours of play, Bainbridge 
reports what millions of people have already figured out: that humans in 
virtual worlds behave pretty much the same way they do in real life, but 
more so.</p>

<p>In meatspace, groups form around common goals or interests out of people 
in the local population.  That is, the physical locality of people is a filter
that will determine the size and composition of an interest group.  Virtual
worlds, of course, do not eliminate physicality entirely, but they do expand
the definition of a locality.  Even though you can have one million users from
all across the planet together in one virtual space at once, the abstraction 
is a little leaky.  Humans still need to sleep and the sun still needs twenty 
four hours to travel around the globe.  Timezones and sleep schedules are the 
new locality filter for "real-time" group communication.</p>

<p>For grumpy old men like myself, electronic social media has been around 
for decades.  Twitter and Facebook may be grabbing headlines today for creating
a space in which millions interact daily, but that activity has been going on 
almost since the Internet went online.  Below is a thumbnail sketch of the 
evolution of electronic communication that acted as social media.</p>

<p>Table: A Chronological List of Social Media</p>

<ol>
  <li>chat/wall</li>
  <li>uucp/usernet/email</li>
  <li>BBS</li>
  <li>IRC</li>
  <li>IM</li>
  <li>Weblogs</li>
  <li>Friendster/Myspace</li>
  <li>Facebook/Twitter</li>
</ol>

<p>In the pleistocene era of computing (the 1970s), users typically shared one 
computer system that often hadden upwards of 8MB of RAM.  This multiuser 
systems (UNIX, VMS, MVS) had ways of sending messages to other logged in users
on the system.  These programs, like the UNIX utilities chat and wall, went 
a long way towards users seeing computers as places of social activity.  Of 
course, the total worldwide population of computer users in the 70s was 
probably in low thousands.  Social activity was limited to users on the same 
system.</p>

<p>Not long after (let's call it the 1980s), the ability to send messages to 
users on different systems came with the advent of unix-to-unix-copy (uucp) 
and email.  These utilities 
helped make 1-1 connections among users of different computer installations. 
The system the collected emails into a taxonomic forum made its participants 
feel like there was one global electronic world.  That system was Internet News
or Usenet.  The way people interacted on Usenet continues to be an excellent 
model for how people behave on all subsequent electronic media.</p>

<p>The growth of the Internet in the 80s and early 90s was happening in 
universities, government agencies and large corporations.  However, the general
public was dimly aware of this growth at all there was no easy (or interesting)
way to bring this connectivity to the consumer.  However, the sales of personal 
computers was booming and many unwashed savages were snapping up these devices 
to create spreadsheets and terrible dot-matrix printed flyers.  If (generally 
speaking) the Internet was unavailable to these early computer users, modems 
were not.  Small operators were setting Bulletin Board Systems (BBS) on their
PCs and letting anyone dial into them.  That is, you the PC owner had to find 
the phone number of a BBS, get some modem/terminal software, dial up the BBS 
and pay standard phone rates for the call as you were connected to the system.
It all sounds barbaric now, but it was, at the time, cutting edging and exciting
as a cyberpunk movie.  I know this because that's when I began to get 
interested into becoming a programmer.</p>

<p>BBS created a very strong sense of community and ownership in its users.  
Remember that users committed real money to their BBS experience, so bad 
behavior was not long tolerated by the SysOp.  As fun as BBS were, they had some 
fundamental limitations.  The size of the online population was limited to 
the number of modems and phone lines the sysop had.  Users might be allowed to 
upload static content, but not dynamic.  These issues would be addressed 
by a different system that emerged in the mid-nineties.</p>

<p>As much as I'd like to present a neat timeline of descrete evolutionary 
steps for social media, that's not really how the real world works.  While PC 
users were exchanging "documents" about UFOs and Roswell on BBS, university 
Internet users were chatting away in Internet Relay Chat (IRC) channels.  
Channels were ad-hoc virtual areas where nominally specific topics were 
discussed.  The beauty of IRC is that it was a distributed system that allowed 
users from any Internet node to connect and chat.  For me, IRC is the first 
modern social media that has all of the characterics that are often ascribed 
to the web based tools of 2008-2010.  IRC was realtime, distributed chatting. 
If you wanted to know what was going on in another part of the world, IRC was 
often a good place to hang out.  Don't believe me?  IRC was used to report on 
the 1991 Soviet coup when all other media was blacked out.  I'm waiting for 
Twitter to top that.</p>

<p>Unfortunately, IRC is mostly a command line application and its popularity 
was often limited to somewhat tech-savvy people.  It is my hope that history 
will remember it more kindly that it currently does.</p>

<p>In <a href="http://taskboy.com/blog/static/Rise_of_the_Ad_Hocracy_Part_II.html">the 
conclusion of this article</a>, I'll discuss how 
electronic social media swelled its ranks from thousands of users to 
millions.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Small Hiatus]]></title>
    <link href="https://www.taskboy.com/2010-03-16-Small_Hiatus.html"/>
    <published>2010-03-16T00:00:00Z</published>
    <updated>2010-03-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-03-16-Small_Hiatus.html</id>
    <content type="html"><![CDATA[<p>Due to a lingering cold, I'm taking a break of blogging for a bit.  This is a great opportunity to use my <a href="http://taskboy.com/blog/taskboy.rss">RSS feed</a> to keep up with my posts.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Comment Spam returns]]></title>
    <link href="https://www.taskboy.com/2010-02-24-Comment_Spam_returns.html"/>
    <published>2010-02-24T00:00:00Z</published>
    <updated>2010-02-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-02-24-Comment_Spam_returns.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/haha.gif" class="icenter"></p>

<p>Comment spam has returned to Taskboy, but this time, it's personal.</p>

<p>The first version of comment spam appeared to be from a program that simply crawled sites and looked to hook into the comment systems of most blogs.  The content of these comments was clearly mechanically produced and made little sense.  Technologies like CAPTCHA have mostly eliminated that sort of noise.</p>

<p>I know get messages that are either written by the world's greatest ELISA bot or by poorly paid folks with computers.  The content of these human generated messages are often on point and could be attempts to participate in a dialog.  However, there is always a URL form that points to a business associated with the posts.</p>

<p>Some of these comments I post.  Some I do not.  I did not want to unfairly reject a comment.  However, I'm pretty sure I see the pattern now and will be less lenient in the future.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Google and The Web 2.0 Monoculture]]></title>
    <link href="https://www.taskboy.com/2010-02-12-Google_and_The_Web_2.html"/>
    <published>2010-02-12T00:00:00Z</published>
    <updated>2010-02-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-02-12-Google_and_The_Web_2.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/epic_wiring_fail_sm.jpg" class="icenter"></p>

<p><a href="http://www.linuxjournal.com/magazine/eof-google-exposure">Doc 
Searls</a> points out our growing dependency on Google. In brief, 
he equates Google with a kind of free public utility that provides the 
following functionality:</p>

<ul>
  <li>Maps/Satellite data</li>
  <li>Search</li>
  <li>Mobile phones (via Android)</li>
</ul>

<p>To that list, I would add the following features on which many people and 
companies have come to depend:</p>

<ul>
  <li>Advertising (via AdWords)</li>
  <li>Ad-based venue (via AdSense)</li>
  <li>Email and Instant Messaging (via Gmail)</li>
  <li>Voice Mail/Phone routing (via Talk)</li>
  <li>New aggregation (via News)</li>
</ul>

<p>Searls, with a "me too" from <a href="http://www.scripting.com/stories/2010/02/11/isGoogleAlreadyTooBigToFai.html">Dave 
Winer</a>, declaim that Google has become "too big to fail." 
They worry that Google, fattened and dependent on its advertising engine, is 
vulnerable to economic bubbles in advertising.  They worry that Google is in 
a bubble right now.</p>

<p>I do not think this is the case.  Google no doubt enjoys quite a bit of 
revenue from advertising right now.  However, no one outside of Google has a 
complete accounting of the company's revenue.  If Google survived the 
recessions of 2001-2003 and 2008-2010, there is good reason to believe that 
they will weather future economic storms.</p>

<p>However, Doc Searls points to a more immediate danger that Google presents 
to consumers: that of the digital monoculture.  Google rarely extracts money 
from users directly.  There are only a handful of subscription services 
offered by them.  However, the user base for Gmail is enormous.  The same can 
be said for their advertising services.  What would our online life be like if 
Google went offline tomorrow?</p>

<p>Just looking at one service, Gmail, is illustrative of the scope of the 
problem.  Many companies have outsourced their mail handling to entirely to 
Google.  Recall that in the 1990's, IT staffs spent a considerable amount of 
time and money setting up corporate email systems.  Although the largest 
companies still do this, many simply outsource this tasks and reap significant 
savings and reliability over in-house mail systems.  Without Google, a very 
large number of companies and people would not be able to conduct business.  
Sure, there would be work-arounds: alternate email accounts, telephones, etc.
However, this distruption would cost real and measurable dollars.</p>

<p>Perhaps the most immediate effect would be the loss of Google's 
wonderful, if easily forgotten, search function.  To remind those readers 
recently recovered from a coma, the current neologism for searching 
online for something is "googling."  Imagine the sort of a day you would have 
if your browser returned a 404 missing page error when accessing 
http://www.google.com/.  That would not be a salad day at all.</p>

<p>The open source community, of which both Searls and Winer are associated, 
has longed battled against digital monocultures (e.g. IBM, Microsoft, Apple, 
etc.).  Consumers usually benefit from choice (although not always [remember 
the mess of the home computer market in the 1980s]).  Healthy competition 
promotes innovation and cost-savings.  It also creates a healthier ecosystem 
in which the failure of one entity does not threaten the survival of 
everyone.</p>

<p>To this end, consumers of free digital products ought to consider how much
they depend on these services.  I practice what I preach.  I pay for Yahoo 
Mail Plus, which is $20 a year.  It's a fair deal: I see no ads and I can use 
POP mail.  That's pretty short money for a service that has yet
to have a outage more than 5 minutes in three years.  The same goes for my 
blog hosted on <a href="http://bluehost.com/">bluehost.com</a>. For $7 a month,
I get shell access to very reasonable Linux environment.  Of course, there are 
plenty of free choices for blog hosting these days, but I need to control my 
content and the context in which it appears.  Free services can close shop 
without notice and there is little consumers can do to retrieve their 
content.</p>

<p>The dangers of monoculture become readily apparent after a failure.  In 
groups, humans are not noted for their ability to successfully anticipate 
future disasters.  It seems that now, we don't even recall past calamities 
all that well.  One would think that the near fatal collapse of traditional 
lending institutions who participated in rank speculation would produce a 
rapid and perhaps onerous regulatory response.  However, that has not yet 
proven to be the case nearly two years after the shock.</p>

<p>From a strictly selfish perspective, I would love to see Google fail 
completely tomorrow.  Business opportunities abound in chaos and fortune 
favors the bold.</p>

<p>UPDATE:  It looks like no one at <a href="http://www.yaledailynews.com/news/university-news/2010/02/09/google-run-yale-e-mail/">Yale</a> reads my blog.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Linux sound problem resolved with a symlink]]></title>
    <link href="https://www.taskboy.com/2010-02-08-Linux_sound_problem_resolved_with_a_symlink.html"/>
    <published>2010-02-08T00:00:00Z</published>
    <updated>2010-02-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-02-08-Linux_sound_problem_resolved_with_a_symlink.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/crying.gif" class="icenter" title="Make the mean OS stop, Daddy!"></p>

<p>I tweeted yesterday about my centos 5 linux box losing sound (and frankly X, but that's another story).  I tried to use the sound card detector (system-config-soundcard) to find the card again, but it silently failed (typical).  The Linux sound howto is over nine years old, so that's pretty useless.  What to do?</p>

<p>Well, I turned to my old friends lsmod, dmesg and strace.  I could see tha there were kernel sound modules loaded.  I could knew that I had configuration that was working.  So I issued the following command:</p>

<p class="code">
# strace mpg123 /path/to/mp3file
</p>

<p>I got quite a bit of output, but the relevant line was this:</p>

<p class="code">
open("/dev/snd/pcmC0D0p", O_RDWR|O_NONBLOCK) = -1 ENOENT (No such file or directory)
</p>

<p>And sure enough, this is what was in my /dev/snd directory:</p>

<p class="code">
[root@durgan snd]# ls
controlC0  
hwC1D2    
pcmC1D0c  
pcmC1D1p  
timer
controlC1  
pcmC0D0c  
pcmC1D0p  
seq
</p>

<p>Oh look!  There's no pcmC0D0p file.  What to do.  I could try to create the missing dev file, but I just symlinked the pcmC1D0p to pcmC0D0p.</p>

<p>And yes, this horrible, horrible hack worked like a charm.</p>

<p>What happened to delete this device file?  Why couldn't I make the system re-detect and re-initialize the sound system?  It's stupid, stupid user issues like this that have plagued linux since 1995 and show no signs of getting better today.  This is why you don't see a lot of linux notebooks or games.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Microformats, RDFa and their semantic uses]]></title>
    <link href="https://www.taskboy.com/2010-02-07-Microformats,_RDFa_and_their_semantic_uses.html"/>
    <published>2010-02-07T00:00:00Z</published>
    <updated>2010-02-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-02-07-Microformats,_RDFa_and_their_semantic_uses.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/bigfoot.gif" class="icenter"></p>

<p>Increasingly, search engines like 
<a href="http://knol.google.com/k/google-rich-snippets-tips-and-tricks">Google</a> 
and <a href="http://www.ysearchblog.com/?s=microformat">Yahoo</a> 
are supporting a kind 
of HTML markup schema called 
<a href="http://www.microformats.org">microformats</a>.  Microformats
are a kind of an embedded document inside a standard web page (which can 
be thought of as a sort of macroformat, if you will).</p>

<p>There are two flavors of mircoformats: one for HTML (which introduces 
no new elements or attributes) and one for XHTML (which adds a few new 
attributes, but no new tags).  The proposed 
<a href="http://en.wikipedia.org/wiki/Rdfa">RDFa standard</a> 
can be thought of as the flavor of microformats
for XHTML, since it is based on the RDF XML format.  The reality is the 
there are two groups of people (RDFa, microformats) working in the same space, 
so there is overlap.  However for now, the HTML vs. XHTML partitioning works
well to categorize these two embedded document efforts.</p>

<p>There are a few things you can do with these embedded syntaxes.  If you 
regularly review businesses or products (like 
<a href="http://yelp.com/">yelp.com</a> does), 
you might consider using the hReview mircoformat to identitfy parts of your 
review, as shown in the following snippet:</p>

<p class="code">
&lt;div class="hreview"&gt;
   &lt;span class="item"&gt;
      &lt;span class="fn"&gt;Taskboy Feed Bag&lt;/span&gt;
   &lt;/span&gt;
   Reviewed by &lt;span class="reviewer"&gt;Joe Johnston&lt;/span&gt;
   on 
   &lt;span class="dtreviewed"&gt;
      &lt;span clsas="value-title" title="2010-02-07"/&gt;Feb 7, 2010
   &lt;/span&gt;
   &lt;span class="summary"&gt;Terrific news source for free&lt;/span&gt;
   &lt;span class="description"&gt;The Feed Bag RSS aggregator on Taskboy 
has replace Google news as one stop shop to get the news of what's 
going on in tech and politics now.&lt;/span&gt;
    &lt;span class="rating"&gt;4.5&lt;/span&gt;
&lt;/div&gt;
</p>

<p>As you can see, that's a lot of semantic markup for so little visible 
text.  Google can pull this code apart and display it under the link for the 
product or service discussed.</p>

<p>In addition to reviews, Google and Yahoo understand at least four 
other species of 
embedded documents: people/businesses, products, events, and video.  
Because there are two standards bodies at work, there are microformats and RDFa
specs for each.  The following table summarizes this with links to give 
examples of these embedded documents.</p>

<ul>
  <li><a href="http://www.google.com/support/webmasters/bin/topic.py?hl=en&amp;topic=21997">Reviews</a>: 
<a href="http://microformats.org/wiki/hreview">hReview</a> (microformat) 
v:Review (RDFa)
</li>

  <li><a href="http://www.google.com/support/webmasters/bin/answer.py?answer=146646">People/Business</a>: 
<a href="http://microformats.org/wiki/hCard">hCard/vCard</a> (microformat) 
v:Person (RDFa)
</li>

  <li><a href="http://www.google.com/support/webmasters/bin/answer.py?hl=en&amp;answer=164506">Events</a>: 
<a href="http://microformats.org/wiki/hCalendar">hCalendar</a> (microformat) 
</li>

  <li><a>Product</a>: 
<a href="http://microformats.org/wiki/hproduct">hProduct</a> (microformat) 
v:Product (RDFa)
</li>

  <li><a href="http://googlewebmastercentral.blogspot.com/2009/09/supporting-facebook-share-and-rdfa-for.html">Video</a>: 
Facebook Share (microformat) 
<a href="http://developer.search.yahoo.com/help/objects/video">Yahoo! SearchMonkey (for video)</a> (RDFa)
</li>
</ul>

<p>To test your embedded document, try 
<a href="http://www.google.com/support/webmasters/bin/topic.py?hl=en&amp;topic=21997">Google's microformat tool</a>.</p>

<p>I have a few concerns about microformats.  The first is that it requires a 
lot of additional markup.  I understand that a blogging system can create 
a form to collect these discrete features, but it still seems like a lot 
of work for casual use.  The second concern I have is that microformats
reuse the class attribute that is normally used for CSS.  This creates a whole
bunch of reserved words to avoid for class names in your site's CSS.  
Perhaps its not that big a deal, but I do not like namespace conflicts.  I 
prefer the RDFa spec, which simply introduces new attributes 
(typeod, property, etc.) specific to its purpose.  That seems a lot cleaner
to me.  However, the various RDFa formats are not as well documented as their
microformat counterparts.  As in all things, "good enough" often trumps "clean design."</p>

<p>There is no doubt that embedded documents are a bit of a moving target. 
I don't expect the formats for things already defined to change, but more 
objects will be described by new specifications.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Common problems when using SQLite and PHP]]></title>
    <link href="https://www.taskboy.com/2010-02-05-Common_problems_when_using_SQLite_and_PHP.html"/>
    <published>2010-02-05T00:00:00Z</published>
    <updated>2010-02-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-02-05-Common_problems_when_using_SQLite_and_PHP.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/apple-girl.gif" title="Um, what?" class="icenter"></p>

<p>I'm currently developing a social media application using PHP and 
<a href="http://www.sqlite.org/">sqlite</a>.  I don't know if I'll deploy with sqlite, but for
development, it works well.  I have two CVS sandboxes that I work in for 
this project.  One of these in on my macbook (which comes with sqlite-enabled
PHP) and an Ubuntu virtual machine.  There are a few gotchas to be aware of 
when using sqlite in this kind of environment.</p>

<p>Write-protected directories</p>

<p>In other RDBM systems like mysql or postgres, the is a server process that
is responsible for reading and writing to the database disk files.  With 
sqlite, this isn't the case.  If you're using sqlite through PHP, then the 
process owner running the PHP must be able to read and write to the location
of the sqlite database file.  This requirement gets a little more complex 
when you are running PHP through apache which has its own ideas about 
directory security.</p>

<p>In must apache setups, your PHP scripts will not be able to write in the 
web-accessible "document root".  You will not be able to keep your sqlite 
database file in the document root.  If you try, you will find errors on INSERT
and UPDATES about "database file is locked."  However, it is foolish from a 
security point of view to keep your database file in a web-accessbile 
directory anyway.</p>

<p>This particular problem hit me hard on Mac OS X.  Once user directories are 
enabled in the apache configuration, your Sites directory becomes a document 
root.  You won't be able to keep your sqlite files in that directory or any 
subdirectory under it.  Instead, created a ~/tmp directory and keep the 
sqlite database file there.</p>

<p>SQLite version skew: apache/shell</p>

<p>Because sqlite is an embedded system, it is compiled into program you are 
using.  If you are using PHP, you can run into the following issue.  I use 
PHP from the command line all the time.  When I create the database, I run a 
PHP script from the shell to do this.  Unfortunately, the command line PHP and 
the version of PHP compiled into apache may not be the same. Further, the 
apache PHP may not be compiled with the same version of sqlite.  This is the 
case on Mac OS X. What a mess!</p>

<p>To get around this, always create your sqlite databases through apache/PHP. 
You will run into far fewer issues this way.</p>

<p>Changing the schema requires an apache restart</p>

<p>Recall that apache is a pre-forking server.  If you change the schema of 
your sqlite database while apache's running, you could get an error in PHP 
that "schema has changed."  Whatever SQL statement you were attempting to 
run will fail.</p>

<p>From the "don't do that" school of medicine comes this technical advice.
If you need to change the schema of an sqlite database, shut down apache first,
update the database and restart apache.</p>

<p>I hope this post helps others avoid the mistakes I made.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Facebook's HipHop optimizes the wrong thing]]></title>
    <link href="https://www.taskboy.com/2010-02-04-Facebook&apos;s_HipHop_optimizes_the_wrong_thing.html"/>
    <published>2010-02-04T00:00:00Z</published>
    <updated>2010-02-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-02-04-Facebook&apos;s_HipHop_optimizes_the_wrong_thing.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/fountain.jpg" title="Drink deep of my bubbly wisdom" class="icenter"></p>

<p><a href="http://www.facebook.com/">Facebook</a> will shortly release a 
tool called 
<a href="http://developers.facebook.com/news.php?blog=1&amp;story=358">HipHop</a> 
for enhancing the performance of PHP.  My understanding of the tool is that 
it compiles PHP code into C++ which is then compiled into a system native 
executable.  While I have no doubt that this tool does produce significant 
speed gains over apache/PHP, I do think one needs to be aware of the trade-offs
of this kind of system.  After all, this isn't the first time a trick like this
has been used for a dynamic language.</p>

<p>C++ and PHP are very different languages.  I'm not talking about syntax, but 
how source code is handled.  In PHP, the source code is turned into op codes 
that the PHP interpreter understands.  The interpreter knows how to the 
operating system perform these op codes.  In C++, source code is compiled into 
assembler which is then linked into a system executable which can be run from 
the shell.  Compiled code runs faster than interpreted code for a number of 
reasons, but the most important is that compiled code is closest to native 
assembler which essentially is the op code system that the host CPU uses to 
make stuff happen.</p>

<p>The problem with compiling PHP into C++ is that you lose all the wonderful 
dynamic features of PHP since these cannot be easily or efficiently translated
automatically into C++ source code.  The very dynamic nature of PHP (or Perl 
or Ruby or Python, etc) is what makes these languages accelerate programmer 
productivity.  I think facebook will see this performance hit later.</p>

<p>Let's not forget that Moore's law of CPU power often solves a great deal of 
performance issues.  Hardware is always cheaper than developer time and less 
prone to bugs.</p>

<p></p>

<p>I favor architectures that take advantage of Moore's law and use 
horizontal scaling and commodity solutions over fancier tricks that require
specialized talent (like erlang).  I might suggest caching the opcodes that the
PHP interpreter generates and simply running those.  This is the essence of 
the Zend server and how apache/mod_perl/Apache::Registry work.  Sure, you don't
get quite the performance of compiled code but you'll still see a noticable 
boost.  I believe PHP does some level of this kind of caching right now.</p>

<p>It's true that one can do amazing feats by
being clever, but clever doesn't scale (unless you're Google).</p>

<p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[On PHP frameworks]]></title>
    <link href="https://www.taskboy.com/2010-02-03-On_PHP_frameworks.html"/>
    <published>2010-02-03T00:00:00Z</published>
    <updated>2010-02-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-02-03-On_PHP_frameworks.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/circle_of_stones_underwater.jpg" class="icenter"></p>

<p>An <a href="http://sevalapsha.wordpress.com/2009/05/15/php-frameworks-popularity-estimation/">interesting chart comparing various PHP frameworks</a>.  I'm not sure that I can read it correctly.  It seems to imply that <a href="http://www.zend.com/en/">Zend</a> and <a href="http://cakephp.org/">CakePHP</a> are the most popular frameworks.</p>

<p>Both frameworks are free, but Zend is clearly optimized for the Zend server platform, which isn't free.  Also, I can't help thinking that the audience is somewhat different for these two.  CakePHP seems aimed at the more opensource, DIY crowd while Zend is clearly pointed to the enterprise IT crowd.  While there is overlap, you can see that Zend is a commercial venture.</p>

<p>I have very mixed emotions about using frameworks.  On the hand, frameworks deliver huge dollops of functionality right out of the box.  This accelerates the completion of many IT projects.  On the other, you get locked into another group's development schedule and, to some extent, the architectural choices they make.  Projects built with these tools also expose themselves to bugs and security holes originating in the frameworks.  Finally, you end up having to trust or vet the code in the framework.</p>

<p>For an inward-facing intranet product, I think frameworks are great.  I'm not sure I'd want to launch something like twitter or facebook with one.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The Observer pattern and Action Queues]]></title>
    <link href="https://www.taskboy.com/2010-02-02-The_Observer_pattern_and_Action_Queues.html"/>
    <published>2010-02-02T00:00:00Z</published>
    <updated>2010-02-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-02-02-The_Observer_pattern_and_Action_Queues.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/horseshoe_crab.jpg" title="Be a design pattern wizard too" class="icenter"></p>

<p>There is a well-know design pattern called publish-subscribe or the 
<a href="http://en.wikipedia.org/wiki/Observer_pattern">Observer model</a>.  
The problem this model attempts to solve is 
one in which a object requires one or more parties to act on it when it changes
to a particular state.  A concrete example of this event handlers in GUIs 
including the <a href="http://en.wikipedia.org/wiki/DOM">DOM</a>.  
Actions made be associated with button presses.</p>

<p>The Observer model seperates the subject from the parties (observers) that 
act on it.  Observers register the interest with the subject.  When the 
subject changes to the desired state, it notifies each of the registered 
observers.</p>

<p>In PHP, a subject class might be modeled like this:</p>

<p class="code">
class Subject {
  private $Q = array();
  function Attach($O) {
     array_push($this->Q, $O);
  }

  function Detach($O) { 
    for($i=0; $i &lt; count($Q); $i++) {
      if ($Q[$i] == $O) {
        array_splice($this->Q, $i, 1);
    break;
      }      
    }
  } 

  function Notify() {
    foreach($this->Q as $O) {
      $O->Update($this);
    }
  }  
}
</p>

<p>The Attach() and Detach() methods are the API by which Observers register 
or unregister their interest in a Subject object.  When the subject changes 
into an interesting state, its Notify() method is called.  This method in 
turn calls the Observer Update() method with a reference to the current 
Subject object.  An Observer class might look like this:</p>

<p class="code">
class Observer {
  function Update($S) {
     // Do something interesting
  }    
}
</p>

<p>As you can see, an Observer need only implement one well-known method, 
Update().  This arrangement nicely decouples the Subject from the Observers.</p>

<p>There may be times when a less formal, more functional mechanism is 
desirable.  What if you want just want certain actions to happen on an object 
when an interesting state obtains?  You might use what I call an Action queue 
to do this.  An Action Queue is simply an array of function references that 
are called by an object at an interesting time.  Here's what an Action queue 
might look like:</p>

<p class="code">
class MyClass {
   private $Q = array();

   function Attach($name, $func) {
      $this->Q[$name] = $func; 
   }

   function Detach($name) {
      unset($this->Q[$name]);
   }

   function Notify() { 
     foreach ($this->Q as $n=>$func) {
        $func($this);
     }
   }
} 
</p>

<p>As you can see, there is no need for an Observer class.  Bits of 
functionality created with 
<a href="http://us3.php.net/manual/en/function.create-function.php">create_function()</a> can be attached
ad hoc to this class, as the following snipet shows:</p>

<p class="code">
  $appender = create_function('$obj', 'return "Got => ".\$obj');
  $MyClassObj->Attach("append", $appender);
</p>

<p></p>

<p>Because these code bits are anonymous, an arbitary name is required during 
the Attach phase in the event that you might want to remove the behavior 
later.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Emacs search and replace of unprintable characters]]></title>
    <link href="https://www.taskboy.com/2010-01-31-Emacs_search_and_replace_of_unprintable_characters.html"/>
    <published>2010-01-31T00:00:00Z</published>
    <updated>2010-01-31T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-01-31-Emacs_search_and_replace_of_unprintable_characters.html</id>
    <content type="html"><![CDATA[<p>A common problem facing emacs users is to replace a certain sequence of characters in a buffer with either a newline or tab or something else equally awkward.  The solution is <a href="http://xahlee.org/emacs/emacs_adv_tips.html">relatively simple</a>.</p>

<p>Invoke search and place as normal (M-%), enter the text to be replaced, enter the replacing character using the following chart:</p>

<ul>
  <li>Newline(\n): C-qC-j</li>
  <li>Tab(\t):     C-qC-i</li>
  <li>Carriage return(\r): C-qC-m</li>
</ul>

<p></p>

<p>See the pattern?  C-q is an escape sequence and C-[char] is the position in the alphabet of the ASCII offset of the replacement character.  OK, perhaps that's a little tangled.  But now you know.</p>

<p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Using an SQL backing store for PHP sessions]]></title>
    <link href="https://www.taskboy.com/2010-01-28-Using_an_SQL_backing_store_for_PHP_sessions.html"/>
    <published>2010-01-28T00:00:00Z</published>
    <updated>2010-01-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-01-28-Using_an_SQL_backing_store_for_PHP_sessions.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/arch_leg_sm.gif" class="icenter"></p>

<p>This article explores the mechanisms by which PHP session handling can 
be customized to work with non-standard datastore like SQL datbases using the 
<a href="http://us2.php.net/manual/en/book.pdo.php">PHP Data Object (PDO) 
interface</a>.</p>

<p>To frame the context of this discussion, let's briefly look at how the 
<a href="http://en.wikipedia.org/wiki/Http">HTTP protocol</a> is designed. 
HTTP is a stateless client/server protocol.  That is an HTTP client, like a
web browser, makes request for a resource on a server, which the server 
responds with.  From the server's point of view, each request has no 
relationship with previous requests.  For web application developers, this 
is a challenge.  Often applications need to keep state information associated
with a particular user.  An application state that's associated with a user
is called a session.</p>

<p></p>

<p><p>What is the default PHP way of addressing this?</p>

<p>Being that PHP was designed for web applications, it's not surprising to 
learn that it offers built-in support for 
<a href="http://us2.php.net/manual/en/book.session.php">sessions</a>. </p>

<p>A typical "vanilla" use of PHP sessions looks like this:</p>

<p class="code">
&lt;?php
session_start();
$_SESSION["count"]++;
session_write_close();
?&gt;
&lt;p&gt;Count: &lt;?=$_SESSION["count"]?&gt;&lt;/p&gt;
</p>

<p>A quick note on session.auto_start and session_register().  You can make 
PHP start a session when any PHP is loaded by setting the "session.auto_start"
attribute to in php.ini or by invoking ini_set().  However, I do not recommend
this for applications that have named users.  Sessions should begin only 
after a user has authenticated.  PHP also can make session variables global 
scalars.  This too is a bad idea.  Global variables in general are a bad 
engineering practice.  PHP's ability to make GET/POST parameters global 
variables too creates an opportunity for malicious users to pass in arbitrary 
session values.  Instead, use the super global $_SESSION array to store 
session variables.</p>

<p>By default, PHP can pass a session ID in URLs or through HTTP cookies.  
Cookies 
offer the most transparent and arguably safer mechanism.  Also by default, 
PHP stores session information in flat files on the web server.  On a shared 
web host, this backing store presents a security problem as the files are 
often stored in the communal /tmp directory.  Sessions in flat files also 
present a challenge to scaling a web application beyond the single host. 
By storing session information in an SQL system, a user can be shunted to any
number of web servers that have access to the session database.</p>

<p>The authors of PHP have defined a simple procedural callback mechanism 
that allows developers to use any desirable data storage mechanism.  Up to six 
session callback functions can be overridden to customize the way session 
data is stored using the <a href="http://us2.php.net/manual/en/function.session-set-save-handler.php">session_set_save_handler()</a>.  These six callbacks
are: open, close, read, write, destroy and garbage collection.  Let's look 
at what these callbacks are responsible for.</p>

<p>When the session begins, the open callback is invoked to initialize the 
datastore.  This can mean that a file is opened and its handle stored in a 
global variable.  The open callback is passed two strings: a path and the 
session name.  Both of these parameters can be controlled by the developer.
However for our database backing store, these values will be unused.</p>

<p>The close callback is called when the session has ended.  All global 
resources, like filehandles, should be freed at this point.  The close 
callback receives no additional parameters.</p>

<p>The read callback is invoked when the opened session attempts to retrieve 
previously stored session data.  It is passed the current session ID.  It 
should return a serialized data string that it was passed when the write 
callback was last called for this session.  You are not responsible for 
serializing or deserializing session data, which is a pity.  There are some 
issues with the serialization method used by PHP sessions.</p>

<p>The write callback is invoked when the session is ready to be closed.  It
is passed a session ID and a serialized data string.  The callback must store 
this information is a place where it can retrieved later.</p>

<p>The destroy callback is invoked when the session is to be explicitly 
destroyed.  It is passed a session ID.  Session destruction often happens 
when a user explicitly signs out of an application.</p>

<p>Finally, the garbage collection callback is invoked automatically by
the PHP session mechanism to clean-up old sessions.  It is called with a 
maximum life value expressed in seconds.  All sessions older than that value 
should be destroyed.</p>

<p>Even though this session customization mechanism is expressed as function 
callbacks, I find that it is architecturally cleaner to wrap up session 
handling into a static class.  It puts all the callbacks and static members 
into one descrete namespace that can be more easily consumed by other web 
applications.  Please note that much of the error checking as been left 
out.</p>

<p>First, you will need create the following table in a mysql database 
(which is called 'myapp' in this code):</p>

<p class="code">
CREATE TABLE sessions (
  id int auto_increment not null primary key, 
  d text,
  updated int
);
</p>

<p class="code">
&lt;?
class Sessions {
  public static $Db = null;
  public static $SessionName = "MySession";

  public static function Open($path, $session_name) {
    if (Sessions::$Db == null) {
      $dsn = 'mysql:host=localhost;dbname=myapp'
      Sessions::$Db = new PDO($dsn, 'db_user', 'db_pass');
    }
    return True;
  }

  public static function Close() {
    if (Sessions::$Db != null) {
      Sessions::$Db = null;
    }
    return True;
  }

  public static function Read($sid) {
    $sql = "SELECT * FROM sessions WHERE id=?";
    $sth = Sessions::$Db->prepare($sql);
    $sth->execute($sid);
    $tbl = $sth->fetchAll();
    return $tbl[0]["d"];
  }

  public static function Write($sid, $data) {
    $vals = array("d"=&gt;$data,
          "updated" =&gt; time());

    $sql = "SELECT COUNT(id) FROM sessions WHERE id=?";
    $sth = Session::$Db->prepare($sql);
    $sth->execute($sid);
    $tbl = $sth->fetchAll();

    if ($tbl[0][0] &lt; 1) {
    // New session
    $vals["id"] = $sid;
        $sql = "INSERT INTO sessions ('id','d','updated') WHERE (?,?,?)";
        $sth = Sessions:$Db->prepare($sql);
        $sth->execute($vals['id'], $vals['d'], $vals['updated']);
      } else {
        // Existing session
        $sql = "UPDATE sessions SET d=?,updated=? WHERE id=?";
        $sth = Sessions::$Db->prepare($sql);
        $sth->execute($vals['d'], $vals['updated'], $vals['id']);
      }
    }
    return True;
  }

  public static function Destroy($sid) {
    if (strlen($sid) &gt; 0) {
      $sql = "DELETE FROM sessions WHERE id=?";
      $sth = Sessions:$Db->prepare($sql);
      $sth->execute($sid);
    }
    return True;
  }

  public static function garbageCollect($max_life) {
    $threshold = time() - $max_life;
    $sql = "DELETE FROM sessions WHERE updated &lt; $threshold";
    Sessions:$Db->query($sql);
    return True;
  }

  public static function initCallbacks() {
    $rc = session_set_save_handler(
                   "Sessions::Open", 
                   "Sessions::Close",
                   "Sessions::Read",
                   "Sessions::Write",
                   "Sessions::Destroy",
                   "Sessions::garbageCollect"
                                   );

    if ($rc === False) {
      Utils::Logger("Could not set session handlers.");
    }

    $cookie_args = array(60*60*24*14, // Lifetime in seconds
             "/", // Domain path
             ".example.com", // Domain where valid
             False, // Send cookie over unsecure connections
             False, // httponly
                         );

    session_set_cookie_params($cookie_args);
    return True;
  }
}

Sessions::initCallbacks();
?&gt;
</p>

<p>This static class defines the session save handlers as static method.
When the file is included, it calls another static method to install the 
session handlers.  Most of this code is pretty straight forward, thanks 
to the placeholder facility of PDO. I would note that the session table's 
updated column is a unix timestamp rather than a mysql datetime type.  
This makes the GC reaping code much easier to write.</p>

<p>A note about using auto incrementing IDs for sessions identifiers.  It 
is considered poor security to use an easily predictable sequence for session
IDs since an attack can attempt to hijack legitimate sessions by guessing this
number.  PHP provides a uniqid() function which is much better suited for 
session IDs.</p>

<p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[SEO tip: rewriting URLs without apache]]></title>
    <link href="https://www.taskboy.com/2010-01-25-SEO_tip__rewriting_URLs_without_apache.html"/>
    <published>2010-01-25T00:00:00Z</published>
    <updated>2010-01-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-01-25-SEO_tip__rewriting_URLs_without_apache.html</id>
    <content type="html"><![CDATA[<p><img src="/blog/img/fetish_doll.jpg" class="icenter" alt="[Fetish doll]"></p>

<p>As I begin my descent into the arcane and mystical realms of 
Search Engine Optimization, I have heard that some search engines prefer
static-appearing content to dynamic.  That is, a page with a .pl, .php, or 
.asp would be spidered less often or ranked lower than a page ending in 
.htm or .html.  Since search engine companies are secretive in how they 
they spider and rank pages, I cannot say with certainty that this is true.
However, this behavior is a widely accepted prejudice.</p>

<p>It is clear that dynamic pages ofter many, many adventages over static 
content.  The most clear advantage is the use of common headers and footers 
to create a consistent and easily changed look and feel to a web site.  It 
is unlikely that web designers will move away from dynamic templating, but 
how can they create these valuable .html files for search engines?</p>

<p>One way is to create a process that runs through all the dynamic content 
on one's site and produce static HTML files.  When I worked for O'Reilly Media, 
that's how the catalog pages were generated.  But this solution would not work
for pages that are updated daily or hourly.  The better solution is to simply 
call your dynamic pages .htm or .html.  Since you might actually want a static 
page now and again, perhaps we'll focus on .htm.</p>

<p>For the youngsters in the crowd, .htm is the extension for HTML files as they
appeared in earlier versions of Windows (like Windows 95).  Back then, there 
was still concern about backward compatibility with the DOS file naming schema 
(use wikipedia for the <a href="http://en.wikipedia.org/wiki/MSDOS">gory 
details</a>).  However, this three letter extension is no longer needed and 
rarely used.</p>

<p>There are at least two methods for dynamically redirectly incoming HTTP 
requests to a differently named resource on the web server.  Again, the 
scenario is you have a bunch of .php files but you want the public facing URLs 
to end .html.  Apache has the much-feared Rewrite directive that uses regular 
expressions on requests to find the local resource to serve.  An example of 
this that might appear in an .htaccess file is:</p>

<p class="code">
RewriteEngine on
RewriteRule (+)\.htm$ $1.php
</p>

<p>This silently redirects all requests for any .htm file to the similarly 
named .php file.  But I don't like this solution for two reasons.  First, 
regular expressions are easy to mess up and can be hard to debug.  Second, 
apache has to do this small amount of work for every request.  I say, use the 
filesystem itself to make the magic happen.  Enter the symbolic link.</p>

<p>Symlinks are available on Unix and Mac OS X.  Simply link you .php to .htm 
files:</p>

<p class="code">
$ ln -sv index.php index.htm
</p>

<p>Then add a the .htm to your PHP handler.</p>

<p class="code">
AddType application/x-httpd-php .php .htm
</p>

<p>This symlink technique reduces the work on apache allowing it more capacity
to serve pages than the rewrite trick.  How much more effecient this trick 
is, I can't say.  I can will note that rewrite rules fall into the category of 
"action at a distance," with is a software engineering term meaning that the 
mechanism that causes something to happen isn't is an obvious place.  With 
symlinks, any new coder will be able to find index.htm on the web server and 
see that it points to index.php.  This is not the case with rewrite rules.</p>

<p>Any time I can make the OS do work instead of apache, I do.  OS-level 
activities are often faster and more effecient than apache, so take advantage 
of these services when you can.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[PHP mode for emacs]]></title>
    <link href="https://www.taskboy.com/2010-01-18-PHP_mode_for_emacs.html"/>
    <published>2010-01-18T00:00:00Z</published>
    <updated>2010-01-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-01-18-PHP_mode_for_emacs.html</id>
    <content type="html"><![CDATA[<p><p>For those looking for a reasonable emacs mode for PHP work, consider <a href="http://php-mode.sourceforge.net/">this project</a>.  Simply find the php-mode.el file in the download and add the following to your .emacs file:</p>

<p class="code">
(load "/path/to/php-mode.el")
</p>

<p>Replace "/path/to" with something appropriate for your system.</p>

<p>Now when you edit .php files, you'll get proper indenting and syntax coloring.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The Ubiquitous Net]]></title>
    <link href="https://www.taskboy.com/2010-01-09-The_Ubiquitous_Net.html"/>
    <published>2010-01-09T00:00:00Z</published>
    <updated>2010-01-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-01-09-The_Ubiquitous_Net.html</id>
    <content type="html"><![CDATA[<p>I write this blog from a Stabucks in Westford on my new Kindle.  I do not pay for the net connection, Amazon does.  No, the connection is not fast nor is he Kindle the mot excellent wordprocessing platform, but the price is right and as is the coverage.  Apple will announce its tabulet device soon. They should follow Amazon's ubiquituos and free net lead.</p>

<p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Taskboy games for the Wii]]></title>
    <link href="https://www.taskboy.com/2010-01-02-Taskboy_games_for_the_Wii.html"/>
    <published>2010-01-02T00:00:00Z</published>
    <updated>2010-01-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2010-01-02-Taskboy_games_for_the_Wii.html</id>
    <content type="html"><![CDATA[<p>This Christmas, my family received a Wii game console.  You can install a version of the Opera web browser on it and play games on the Internet.</p>

<p>Lucky for you, both my <a href="/projects/ttt/">Tic-Tac-Toe</a> game and <a href="/projects/ss3/">State Secrets</a> work on Wii through Opera.  Enjoy!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[New music: blammo, RPM2009]]></title>
    <link href="https://www.taskboy.com/2009-12-27-New_music__blammo,_RPM2009.html"/>
    <published>2009-12-27T00:00:00Z</published>
    <updated>2009-12-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-12-27-New_music__blammo,_RPM2009.html</id>
    <content type="html"><![CDATA[<p>Time for an update on my <a href="/music">music projects</a> for 2009.</p>

<p>First, please find the track called <a href="/music/blammo.mp3">Blammo</a>.  It's a mid-tempo indie rocker.  I like the way the drums came out.</p>

<p>Next, I present the unfinished concept album called <a href="/music/#Tom_Dashing">Tom Dashing</a> that I attempted to do for the RPM Challenge.  Only one track is complete.  The others are in progress, but I doubt I'll finish them.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Thoughts on netbios exploitation]]></title>
    <link href="https://www.taskboy.com/2009-12-26-Thoughts_on_netbios_exploitation.html"/>
    <published>2009-12-26T00:00:00Z</published>
    <updated>2009-12-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-12-26-Thoughts_on_netbios_exploitation.html</id>
    <content type="html"><![CDATA[<p><img src="/img/plumber.jpg" class="icenter" alt="Plumbing, network-style"></p>

<p>Recently, Slashdot covered a story about how 
<a href="http://tech.slashdot.org/article.pl?sid=09/12/26/0242203">netbios 
host discovery can be hijacked</a>.  While this has many obvious and grave 
security concerns, this defeat also an opportunity for enhancing the netbios 
protocol.</p>

<p>From the turning-a-flaw-into-a-feature department, I'd like to suggest 
that a new <a href="http://en.wikipedia.org/wiki/Netbios">netbios</a> 
service could be designed to masquerade or proxy  
netbios hosts that would not otherwise be available on a given netbios 
network.  Let's look at each one of these activities in turn.</p>

<p></p>

<p>NetBIOS Masquerading</p>

<p>Imagine a medium sized company with a file server that hosts read-only 
only material.  This is a fairly common configuration.  The netbios protocol 
requires each machine to have a unique name on the network.  That means that 
everyone in the company who desires access to the network share must connect 
to this one file server.  But what if you had a service that allowed many file
server to respond to same netbios name?  That would allow the file server load
to be spread across multiple machines in a somewhat random manner akin to 
DNS <a href="http://en.wikipedia.org/wiki/Round_robin_DNS">round-robin load 
balancing</a>.</p>

<p></p>

<p>NetBIOS Proxying</p>

<p>NetBIOS does not allow routing.  When a host is sought by workstation, that
host must be on the same network segment as the seeker.  However, if you built
a netbios proxy service, a host that has access to a desirable resouce on 
non-routable network could proxy requests for it on another network.  Although 
proxying has overhead, it might be a great solution for admins trying to merge 
two companies' networks.</p>

<p>It is possible, I think, with existing tools on Linux to do these kinds of 
services with a little hacking.  The idea of exploiting this exploit for 
something useful appealed to me.</p>

<p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[blogging from kindle]]></title>
    <link href="https://www.taskboy.com/2009-12-26-blogging_from_kindle.html"/>
    <published>2009-12-26T00:00:00Z</published>
    <updated>2009-12-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-12-26-blogging_from_kindle.html</id>
    <content type="html"><![CDATA[<p>I am writing this from my new kindle. I have sucessfully downloaded some of my mp3s and free .prc files from the gutenburg project to it. I am impressed with this device.  Look forward to the inevitable hacked bios someone will cook up for this.</p>

<p>Also  I used my linux box to transfer the files to kindle.  It appears as a typical usb device which masquerades as a a scsi disk. Meh.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Merry Christmas, everybody]]></title>
    <link href="https://www.taskboy.com/2009-12-24-Merry_Christmas,_everybody.html"/>
    <published>2009-12-24T00:00:00Z</published>
    <updated>2009-12-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-12-24-Merry_Christmas,_everybody.html</id>
    <content type="html"><![CDATA[<p><img src="/img/jjohn_xmas.gif" class="icenter" alt="[Merry Christmas]"></p>

<p>Merry Christmas, from 1996.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Holidays]]></title>
    <link href="https://www.taskboy.com/2009-12-21-Holidays.html"/>
    <published>2009-12-21T00:00:00Z</published>
    <updated>2009-12-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-12-21-Holidays.html</id>
    <content type="html"><![CDATA[<p>I haven't been able to post new stuff to this blog as I'm knee deep in holiday logistics.  Hope everyone has a safe and enjoyable holiday season this year.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[38 years]]></title>
    <link href="https://www.taskboy.com/2009-12-14-38_years.html"/>
    <published>2009-12-14T00:00:00Z</published>
    <updated>2009-12-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-12-14-38_years.html</id>
    <content type="html"><![CDATA[<p><img src="/img/jjohn-38.gif" title="Live strong" alt="picture of me" class="icenter"></p>

<p>As is my tradition, I post a sort of year-end evaluation of my life around 
my birthday.  This year is no exception.</p>

<p>I was on a holiday sojourn in Brooklyn this year when I turned 38.  By 
weird chance, I was but a few doors away from 
<a href="http://www.areasofmyexpertise.com/">John Hodgman's</a> home.  I did 
not see the nerd hero and fellow Massachusetts native in person, but I did 
detect his home's WiFi network.  How do I know this?  Because his network is 
very clearly marked.</p>

<p>This year was a transition for me and I suppose many people.  I lost my 
long-time job with Leostream, a company I helped launch.  That was the first 
job from which I was ever let go.  Technically, I was laid off.  Had the 
economy been better, I don't think there would have been a reduction in force.
But, for every door that closes, a new one opens.</p>

<p>I have not been idle during this time.  I have done some contracting and 
have attempted to launch my own software company.  Although that failed, I did 
learn how to write a formal business plan.  I have been revitalizing my 
technical skills, which had become narrowly focused during my Leostream years 
on virtualization.  That lead to two restructures of the taskboy.com site and 
a few new <a href="/projects">public utilities</a>.  I have become interested 
in video production using python.  And I have some ideas for next year that 
I'm very excited about.</p>

<p>Sally and I have essentially finished renovating the interior of our home. 
I adore where I live and whom I live with.  I'm an extraordinarily lucky 
fellow.  If I've had some setbacks, I am still very far ahead of the game.
And the future is an unwritten book.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Dangers of wikipedia]]></title>
    <link href="https://www.taskboy.com/2009-12-01-Dangers_of_wikipedia.html"/>
    <published>2009-12-01T00:00:00Z</published>
    <updated>2009-12-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-12-01-Dangers_of_wikipedia.html</id>
    <content type="html"><![CDATA[<blockquote>
<p>The story caused a sensation when
 published and remains in print as of 
2009. Revelations about the book's 
origin have caused much doubt as to 
its authenticity and factual accounts, 
and the publishers have listed it as a 
work of fiction since at least the 
mid-late 1300s. Although it is still 
published under the byline "Anonymous," 
press interviews and copyright records 
suggest that it is largely or wholly 
the work of its purported editor, 
Beatrice Sparks. Some of the days and 
dates referenced in the book put the 
timeline from 2012 until 1970.</p>
</blockquote>

<p>The above text is from the wikipedia entry on the book <em>Go Ask Alice</em> as that page <a title="screenshot of wikipedia's _go_ask_alice_ page" href="/img/go_ask_alice.gif">appears tonight</a>.  As you might guess, most of this entry is a farce.  It's a bit of digital graffiti or info da-da that makes some chortle.</p>

<p>I present this here as a warning to all researchers who use only single sources of reference.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Recipe for Green Bean Casserole]]></title>
    <link href="https://www.taskboy.com/2009-11-25-Recipe_for_Green_Bean_Casserole.html"/>
    <published>2009-11-25T00:00:00Z</published>
    <updated>2009-11-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-11-25-Recipe_for_Green_Bean_Casserole.html</id>
    <content type="html"><![CDATA[<p><img src="/img/bean_casserole.gif" class="icenter"></p>

<p>The green bean casserole is a mid-century staple on many 
holiday tables.  Casseroles in the 50s were promoted by soup 
manufacturers as a kind of labor saving device for the modern 
house wife.  Using a can a soup as a base, a wonderful dish could 
be created with a few other common ingredients and an oven.  When 
done correctly, a cook could easily impress her family with the 
results.</p>

<p>As Alton Brown demonstated on his Good Eats show, 
casseroles can be made of almost anything.  They are a good way 
to clean out your fridge of left-overs.</p>

<p>What both Brown and I object to about most casserole recipes 
is the use of canned soup.  While I don't mind canned soup for 
straight-up fast food, I want more fine-grained control of the 
elements of my casseroles (like salt) than these off the shelf 
products allow.</p>

<p>Many soups and sauces are really easy to make.  The classic
recipe for green bean casserole calls for cream of mushroom soup.
This is nothing more than a bechemal sauce infused with aromatics and
sauted mushrooms.  And a bechmal sauce can be as simple as rue 
(butter + flour) and milk!</p>

<p>I present my green bean casserole as a tasty, but simple twist 
on the mid-century classic.  Enjoy!</p>

<p>Hardware:</p>

<ul> 
  <li>1 large sauce or saute pan</li>
  <li>1 8x8 casserole dish (or moral equivalent)</li>
  <li>Whisk or fork</li>
  <li>Wooden spoon</li>
</ul>

<p>Software:</p>

<ul>
  <li>2 cups of milk</li>
  <li>1/4 cup (2 oz.) of flour</li>
  <li>4 oz. of unsalted butter</li>
  <li>Salt and pepper</li>
  <li>Package of crimini mushrooms (~ 10 oz.)</li>
  <li>1 shalot</li>
  <li>1 medium onion (yellow or white)</li>
  <li>1/2 lb. of green beans</li>
  <li>1/2 lb. of yellow waxy beans</li>
  <li>1 can (8-12 oz.) fried onions</li>
</ul>

<p><em>Preparation: (15 minutes)</em></p>

<p>Rinse off beans.  Remove stems/ends.  Cut into halves.
Blanch beans in boiling water for 3-5 minutes.  Shock 
beans in ice water to stop cooking.</p>

<p>Slice mushrooms.  Dice shalot.  Cut onion into slices of 
half circles (or simply dice).</p>

<p><em>Starting the sauce: (10 minutes)</em></p>

<p>In sauce pan over medium-low heat, add 1 oz. of butter.
After butter melts, add shalots and onions.  Add a good 
pinch of salt.  Sweat these aromatics for 5-10 minutes 
or until translucent.  Stir every minute or two to prevent 
burning.</p>

<p>Move aromatics to the edges of the pan.  Add another ounce 
of butter to the center.  Add a handful of mushrooms to 
the center.  Every 2 minutes, move the cooked mushrooms to 
the edge.  Add more mushrooms/butter as needed.  Do not 
crowd pan.</p>

<p><em>Making the rue: (10 minutes)</em></p>

<p>When all mushrooms are cooked, move all food in pan to one 
side, add the rest of the butter.  When melted, stir in 
flour with a whisk.  Ensure all the flour becomes saturated 
with butter to form a paste or loose dough.</p>

<p><em>Finish the sauce:</em></p>

<p>Add the milk to the pan.  Increase the heat to medium.  
Stir to integrate the rue and the milk.  With heat and 
stiring, the sauce should thicken to a chowder or alfredo 
like consistency in about 5 minutes.  Do not let the sauce 
boil or it will break.  Add salt and pepper to taste.  You 
will need more salt.</p>

<p>At this point, you have a mighty fine Cream of Mushroom 
soup.  If soup is what you want, you might thin this out with 
more milk.</p>

<p><em>Finish the casserole: (35 minutes)</em></p>

<p>Add the beans to the soup, stiring as needed to ensure 
even distribution.  Let the soup simmer gently for about 
5 minutes.</p>

<p>Grease the casserole dish with butter.  Pour in soup.  
Evenly spinkle fried onions over the top.  Bake casserole 
at 425F for 30 minutes.</p>

<p>After that time, remove from oven and let stand for 10 
minutes.  Laddle out portions.  Repeat as needed.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Reviewing Javascript: The Good Parts]]></title>
    <link href="https://www.taskboy.com/2009-11-21-Reviewing_Javascript__The_Good_Parts.html"/>
    <published>2009-11-21T00:00:00Z</published>
    <updated>2009-11-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-11-21-Reviewing_Javascript__The_Good_Parts.html</id>
    <content type="html"><![CDATA[<p><img src="/img/jstgp.gif" class="icenter" alt="[It has good parts?]" title="It has good parts?"></p>

<p>I recently finished reading Douglas Crockford's 
<a href="http://oreilly.com/catalog/9780596517748">Javascript: The Good 
Parts</a> from O'Reilly Media.  This slender
book cannot be considered a complete reference guide to Javascript, nor a 
primer on programming.  The author mostly avoids discussing how the 
language works in web browsers, the natural habitat of Javascript.</p>

<p></p>

<p>Instead, this book is meant to introduce a subset of the 
language that the author believes to be the most useful to the reader and the 
least likely to cause harm.  If this seems like presumptuous concept for a 
book, you're mostly right.  Javascript is best used in small doses only at 
need.  However, as a author of the Javascript Object Notation format, 
Crockford does have the bona fides to make such recommendations.  As it turns 
out, many of those recommendations are worth following.</p>

<p>The book clocks in at about 145 pages and ten chapters.  Seven of those 
chapters introduce the major components of the language: grammar, objects, 
functions, inheritance, arrays, regular expressions and methods.  As I said, 
this book is not for novices, but one could (maybe) pick up the language from
these chapters.  If one is already familiar with the language, Crockford does
provide some valuable insights into how the language actually works as opposed 
to how most of us expect the language to work.  Of particular note are the 
sections on objects, functions and regular expressions.</p>

<p>Chapter 10 is a bit of let down.  It's call "Beautiful Features."  After 
reading 100 pages of syntax and commentary, I expected to have a rather 
lenghty exposition of the wonderful things that can be done in the subset of 
javascript previously described.  However, that is not what this two page 
chapter is about.  Instead, this is a sort of conclusion with some hand 
waving.  There is meat in the appendices that follow.  Perhaps this chapter 
was originally all of the appendices concatenated together and the editors 
split them.  That sort of thing does happen.</p>

<p>Throughout the book, Crockford blithely offers such commentary on Javascript
like "[That all object properties are public] is a serious design error in the 
language" or "Because of a design error, arguments is not really an array."  
The pedantic voice of the author will grate on some reader's nerves.  The tech
world is full of such writers.  If this affectation can be ignored, there is
useful content here that will demystify javascript's weird functional, 
classless object system, it's prototypical inheritance scheme and it's 
somewhat weird function parameter access.  But frankly, I was expecting a book 
a lot more like Pike's 
<a href="http://cm.bell-labs.com/cm/cs/tpop/">The Practice of Programming</a> 
but in a javascript context.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Welcome to the new Taskboy (same as the old taskboy)]]></title>
    <link href="https://www.taskboy.com/2009-11-20-Welcome_to_the_new_Taskboy_(same_as_the_old_taskboy).html"/>
    <published>2009-11-20T00:00:00Z</published>
    <updated>2009-11-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-11-20-Welcome_to_the_new_Taskboy_(same_as_the_old_taskboy).html</id>
    <content type="html"><![CDATA[<p><img src="/img/willy_wonka.jpg" title="Welcome to my fun emporium!" alt="Welcome to my fun emporium!" class="icenter"></p>

<p>Welcome to the new design of Taskboy!</p>

<p>Over the years, I've changed the layout on this site a few times. 
On the great constraints on my choice of layouts is that I'm no graphic 
artist.  I cannot product graphics that look reasonable for love or money.
What I can do is try to make smart organizational choices and bring a 
minimalist sensability to the layout.</p>

<p>This redesign taught me a lot about XHTML, a standard I've pretty much 
ignored until now.  Proponents of XHTML will tell you that there is freedom
in the constraints it imposes.  I do know that I gave up some functionality 
that seemed to be fine for 4 versions of HTML just to obtain XHTML 
validation.</p>

<p>As I've mentioned, I've lately woken up to the idea of unobtrustive 
javascript/CSS design.  CSS 2 is so widely supported now that it is time to 
put the old TABLE tag in semi-retirement.  The fact that I was able to 
re-architect <a href="/feeds/">The Feed Bag</a> using only DIVs is no 
small victory.  (Note to self: perhaps each row should be a UL?).</p>

<p>However, before I sing the praises of XHTML further, let me chime in very 
late on the quirks I encountered.  These annoyances were so pronounced that 
my wife complained that I was getting too cranky.  I'm an old man.</p>

<p>This list is neither complete nor exhaustive, but represents the pain points
as I remember them.</p>

<p>Item 1: XHTML docs do not look like XML docs</p>

<p>The target of this rant is really the way modern browsers work and can 
be summed up in two words: 
<a href="http://en.wikipedia.org/wiki/Quirks_mode">Quirks mode</a>.
To maintain "backward compatibility" with existing (crappy) web sites, some 
browsers have a mode of reacting to HTML in way that isn't compliant with 
standards.  While this may not sound like such a bad thing, there are times 
when quirks mode kicks in unexpectedly.</p>

<p>For instance, all XHTML docs are XML docs.  All XML docs are supposed to 
start with the declaration "&lt;?xml version="1.0"?&gt;".  Now, this 
declaration isn't actually required, but nearly all XML docs have it 
nonetheless.  If you start your XHTML doc with this declaration, IE 6 goes 
into quirks mode.  That's pretty maddening.  The way to get standards complaint
behavior out of it to start your XHTML this way:</p>

<p class="code">
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
&lt;head>
  &lt;meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> 
</p>

<p></p>

<p>This isn't the end of the world, but it is a pretty good "gotcha" for beginning XHTMLers.</p>

<p>Item 2: Nested lists don't</p>

<p>In caveman HTML, the following code reliably produced nested lists:</p>

<p class="code">
&lt;ul>
  &lt;li>Item1
`  &lt;ul>
    &lt;li>Item 1a
    &lt;li>Item 1b
  &lt;/ul>
  &lt;li>Item 2
</p>

<p>That's not going to work in XHTML.  Instead, you must start the inner list 
with a list item:</p>

<p class="code">
&lt;ul>
  &lt;li>Item1&lt;/li>
  &lt;li>&lt;ul>
    &lt;li>Item 1a&lt;/li>
    &lt;li>Item 1b&lt;/li>
  &lt;/ul>&lt;/li>
  &lt;li>Item 2&lt;/li>
</p>

<p>Again, it's not the end of the world, but it is surprising behavior.</p>

<p>Item 3: Centering anything</p>

<p>In old HTML, nearly any "block display" item could be centered using 
the attribute "align" and setting it to "center".  What could be easier?
Well, XHTML is having none of that.  Firstly, the "align" attribute has been 
removed.  This means that positioning must be done through CSS.  CSS centers
text and block elements very differently.  Text can be centered using the CSS 
attribute "text-align".  Block elements require magic like "left: auto; right: auto."
Again, it sort of makes sense once you're use to it, but come onâ¦</p>

<p>Item 4: ALT is required</p>

<p>There are lots of good reasons to put an ALT attribute on image tags, but please
don't force me to add 'alt=""' every where.  Not all images are that important.</p>

<p>Item 5: INPUT needs cuddle time</p>

<p>In XHTML, INPUT tags need to be in block elements like P or DIV. That's pretty 
lame, but I understand why this is.</p>

<p>For web browsers to display a web page, they
must parse the HTML.  This is act of figuring out what parts of the document are 
content and which are instructions. The instructions (HTML tags) are assembled into 
a tree structure according to the Document Object Model. Because of HTML's SGML roots, 
the browser often inserts "assumed" nodes into the tree to make sense of the given 
HTML.  For example, if just a naked line of text is found after the BODY tag, that text
is wrapped in a P node.  Some of the guess work the browser needs to do for HTML isn't 
at all obvious or predictable.  It is the reduction of these assumptions that is the 
raison d'etre of XHTML, by the way.</p>

<p>Anyway, INPUT tags used to be able to hang out by their lonesome but not anymore.</p>

<p>In conclusion, I'm happy I took the time to make the transition to XHTML but there was 
pain along the way.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Restoring movie thumbnails in Windows Explorer]]></title>
    <link href="https://www.taskboy.com/2009-11-17-Restoring_movie_thumbnails_in_Windows_Explorer.html"/>
    <published>2009-11-17T00:00:00Z</published>
    <updated>2009-11-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-11-17-Restoring_movie_thumbnails_in_Windows_Explorer.html</id>
    <content type="html"><![CDATA[<p>Recently, my Windows Explorer under XP stopped showing thumbnails of certain movie files.  I believe this may have happened during the installation of <a href="http://www.videolan.org/vlc/">VLC</a>.  In any case, you will need to hack the registry to remind Windows Explorer how to display these thumbnails.  Copy the following code into a file called fix.reg, save the buffer and double click on the file.  Restart Windows and try to forget this ever happened.</p>

<p class="code">
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.asf\ShellEx\{BB2E617C-0920-11D1-9A0B-00C04FC2D6C1}]
@="{c5a40261-cd64-4ccf-84cb-c394da41d590}"
[HKEY_CLASSES_ROOT\.avi\ShellEx\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]
@="{c5a40261-cd64-4ccf-84cb-c394da41d590}"
[HKEY_CLASSES_ROOT\.mkv\ShellEx\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]
@="{c5a40261-cd64-4ccf-84cb-c394da41d590}"
[HKEY_CLASSES_ROOT\.mpeg\ShellEx\{BB2E617C-0920-11D1-9A0B-00C04FC2D6C1}]
@="{c5a40261-cd64-4ccf-84cb-c394da41d590}"
[HKEY_CLASSES_ROOT\.mpe\ShellEx\{BB2E617C-0920-11D1-9A0B-00C04FC2D6C1}]
@="{c5a40261-cd64-4ccf-84cb-c394da41d590}"
[HKEY_CLASSES_ROOT\.mp4\ShellEx\{BB2E617C-0920-11D1-9A0B-00C04FC2D6C1}]
@="{c5a40261-cd64-4ccf-84cb-c394da41d590}"
[HKEY_CLASSES_ROOT\.mov\ShellEx\{BB2E617C-0920-11D1-9A0B-00C04FC2D6C1}]
@="{c5a40261-cd64-4ccf-84cb-c394da41d590}"
[HKEY_CLASSES_ROOT\.rm\ShellEx\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]
@="{c5a40261-cd64-4ccf-84cb-c394da41d590}"
[HKEY_CLASSES_ROOT\.rmvb\ShellEx\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]
@="{c5a40261-cd64-4ccf-84cb-c394da41d590}"
[HKEY_CLASSES_ROOT\.wmv\ShellEx\{BB2E617C-0920-11D1-9A0B-00C04FC2D6C1}]
@="{c5a40261-cd64-4ccf-84cb-c394da41d590}"
</p>

<p>Note that the @= is just setting the default value for the {NUM} key.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Commenting out CSS in XHTML: Really?]]></title>
    <link href="https://www.taskboy.com/2009-11-16-Commenting_out_CSS_in_XHTML__Really_.html"/>
    <published>2009-11-16T00:00:00Z</published>
    <updated>2009-11-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-11-16-Commenting_out_CSS_in_XHTML__Really_.html</id>
    <content type="html"><![CDATA[
<img src="/img/sausage.gif" class="insert" title="You don't want to know how its made">


<p><br></p>

<p>Good gravy.  I thought commenting out <a href="/blog/static/1190.html">Javascript in XHTML</a> was bad.  Take a look at this:</p>

<p class="code">
&lt;style type="text/css" media="print, screen and (min-width: 481px)"&gt;
/*&lt;![CDATA[*/
@import url("/2008/site/css/advanced");
/*]]&gt;*/
&lt;/style&gt;
</p>

<p>That's from the <a href="http://www.w3c.org/">W3C</a> site.  XML has created a monster.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Reviewing jQuery in Action]]></title>
    <link href="https://www.taskboy.com/2009-11-16-Reviewing_jQuery_in_Action.html"/>
    <published>2009-11-16T00:00:00Z</published>
    <updated>2009-11-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-11-16-Reviewing_jQuery_in_Action.html</id>
    <content type="html"><![CDATA[
<img src="/img/jia.jpg" title="Stick THAT in your pipe and smoke it!" class="insert">


<p><a href="http://www.manning.com/bibeault/">jQuery in Action</a> 
by Bear Bibeault and Yehuda Katz is a fine introduction into the wonderful 
<a href="http://www.jquery.com/">jQuery</a>. jQuery is a free 
javascript library that significantly eases the burden of manipulating the 
Document Object Model found in modern web browsers.  The library has a 
distinctly functional feel to it, much like LISP.  After reading this book,
I'm humbled by the incredible job the architects of jQuery did in making such 
a clean and incredibly useful API.  jQuery also bares the marks of Perl in 
its .map and .grep functions, and so warms the cockles of my heart.</p>

<p>Bibeault and Katz gently introduce the reader to this powerful library 
without overloading him with too much theory up front.  This is not to say 
that the book is light on details.  It is not.  However, the less immediately
useful details are pushed to the back of book.  I found the Appendix on 
Javascript's damnabled Object system to be the most enlightening of all.  While 
I understood the classless object system of Javascript before I read this, 
I did not really get the scoping rules (and I continue to be appalled at the 
insanity of it).</p>

<p>The order of the material is very reasonable.  It begins with a bit of 
the philosophy of Unobtrusive Javascript, and then explains how to find 
DOM elements with jQuery selectors, how to manipulate those wrapped sets, how
to install javascript events and how some of the built-in animation effects and
utility functions work.  All this is followed by a chapter on extending jQuery 
with plugins, a giant 50 page chapter on Ajax and a survey of useful plugins 
that are available on the jQuery site.</p>

<p>The highlights of this book include the discussion of 
<a href="http://en.wikipedia.org/wiki/Unobtrusive_Javascript">Unobtrusive Javascript</a>.  
This is literally a new concept to me and one that is much 
welcomed.   The many references to the W3C HTML and DOM specs took me back a 
bit.  During the ugly years of the Browser Wars, these specs were little more 
than wishful thinking.  Yet now, most broswers (not IE) try to adhere to these
documents.  That's quite a sea change!  The madness of event handling in DOM 
levels 0 through 2 is Lovecraftian (and perhaps explains a bit more of the 
problem my tic-tac-toe client has with IE).</p>

<p>The book is filled with practical examples of jQuery at work.  The authors
even have created little online tools to demostrate these concepts.  I didn't
find these to be all that useful, but I think I'm not the target audience.
I'd rather come up with my own projects and apply these ideas to them.</p>

<p>I recommend this book to novices and pros alike who wish to get up to speed 
quickly on the use and philosohpy of jQuery.</p>

<p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Tic-tac-toe: an Ajax approach]]></title>
    <link href="https://www.taskboy.com/2009-11-10-Tic-tac-toe__an_Ajax_approach.html"/>
    <published>2009-11-10T00:00:00Z</published>
    <updated>2009-11-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-11-10-Tic-tac-toe__an_Ajax_approach.html</id>
    <content type="html"><![CDATA[
  <img src="/img/ttt-ss1.gif" title="Would you like to play a game?" class="insert">


<p><br></p>

<p>As part of my technological foraging, I have been playing around with 
<a href="http://en.wikipedia.org/wiki/Ajax_%28programming%29">Ajax</a> as 
presented through the new hotness that is 
<a href="http://www.jquery.com/">jQuery</a>. The result is a very humble, but 
all Ajax, <a href="projects/ttt/">tic-tac-toe</a> game.  This replaces the 
all flash version I had on this site for a while.  Not only did I improve the 
AI of the computer player (thanks CS210!), but I have completely validated 
HTML and CSS files to boot.</p>

<p>Part of my inspiration comes from my current nighttime read, 
<a href="http://www.manning.com/bibeault/">jQuery in Action</a> 
by Bibeault and Katz.  Besides gently easing the reader into jQuery concepts, 
the authors turned me on to the concept of 
<a href="http://en.wikipedia.org/wiki/Unobtrusive_JavaScript">unobtrusive 
javascript</a>, which is the idea that HTML, CSS and javascript should 
be kept separate from each other, thus simplifying development considerably.
One way to intrepret this concept is that HTML, CSS and Javascript all need 
to be keep in discrete files.  That means no "onClick" attributes in the HTML, 
please.  In structure, one can find liberation.</p>

<p>The architecture of my tic-tac-toe game follows a pretty standard 
client-server model.  The server bit consists of a single PHP script that 
handles game session and AI. The client bit is simply an HTML file supported 
by CSS and Javascript.  The client API is narrowly defined to prevent obvious 
forms of cheating and to enforce the idea that the client is a display and 
input mechanism that has little idea about how to play tic-tac-toe.  The game 
logic is enforced by the PHP script.  I'll discuss the design of the game 
engine later, but let's look at the client first.</p>

<p>The entire source for tic-tac-toe can be found <a href="projects/ttt/ttt-src.zip">here</a>.</p>

<p>The place to begin with the tic-tac-toe client is the index.html file.  This
is a validating HTML 4.01 Transitional document.  It has no TABLE tags at 
all. It depends on CSS float to make the playing board and handle the rest 
of the page layout.  Because of some problems with Internet Explorer, there is 
a bit of IE-specific goo that forces a warning to appear in that browser. 
That will be the subject I return to last.</p>

<p>That HTML file is so clean, you could eat off it.  Anyone who has done 
PHP or even a lot of javascripting will be surprised that such a simple file 
could be the basis of anything complex.  As far as the game is concerned, 
the most interesting elements in the HTML file are the DIVs that have an 
ID attribute beginning with "s".  In traditional video game parlance, these 
function as both buttons and sprites.  I could have used HTML buttons here. 
Part of me still thinks that's the right way to go, but just using DIVs looks 
a lot more "gamey" to me.  All the wiring of event handlers for these DIVs
is handled in the ttt.js file, described shortly.  The look and layout of the 
client is provided by the ttt.css file, which holds no surprises.</p>

<p>The client-side magic happens in the javascript.  As it promises to do, the 
jQuery library greatly reduced the burden of locating and attaching elements,
attaching click handlers and Ajax processing.  Because the jQuery library is 
loaded before ttt.js, jQuery functionality is accessible in this file.  
The first four lines of code are pretty harmless:</p>

<p></p>

<p class="code">
var Game = new Object();
Game.timeout = 5000;
Game.square_clicker_enabled = false;

$(document).ready(init);
</p>

<p>A global object called Game is created that will hold client-side game 
state.  Scoping in javascript is a little primative, so having one global 
object in which to store various bits of information helps to reduce namespace 
clutter.  The game property 'square_clicker_enabled' is set to false to prevent 
undesirable button clicking later on.  I'll get to that.  The most powerful 
statement here is the ready() function that calls init() (not shown yet) when 
the DOM is fully constructed in the browser.  As any primer on jQuery will tell
you, the more traditional onLoad() event for BODY elements does not run untill 
all the graphics are loaded on the page.  The ready() function is ideal of 
initialization code.  Speaking of whichâ¦</p>

<p class="code">
function init() {
   $("#newGame").click(new_game_clicker);
   var arg = new Object();
   arg.get_board = 1;
   $.ajax({url: 'move.php',
           type: 'GET',
           data: arg,
           dataType: 'json',
           timeout: Game.timeout,
           error: bomb,
           success: function(a) { paint_board(a);}
        });
}
</p>

<p>The init() function sets up the click handler for the "New Game?" button/DIV
that ensures a new session and a blank board on the server. The fancy jQuery 
selector simply looks for an element with the ID of newGame.  An object is 
created to hold parameters to be passed in the following Ajax request.  The 
call to "get_board" simply requests the board state of the current game, if 
applicable.  If the call is successful, the paint_board() function is invoked
with the structure returned from the server.  Even though the server returns 
a JSON serialized string, jQuery deserializes this structure and passed it 
to the function.  That's some pretty terse code for an RPC mechanism!</p>

<p></p>

<p class="code">
function new_game_clicker() {
   if (confirm("Really start a new game?")) {
     var arg = new Object();
     arg["new"] = 1;
     $.ajax({url: 'move.php',
            type: 'POST',
            data: arg,
            dataType: 'json',
            timeout: Game.timeout,
            error: bomb,
            success: function(a) { paint_board(a);}
        })

   }
}
</p>

<p>There's little new code here at all.  All veteran javascripters will have 
seen the confirm() dialog function.  The click handler for the new game button 
is mostly another Ajax call.  This one creates a new session and empty 
tic-tac-toe board on the server.  Again, whenever the state of the board might 
have changed, paint_board() needs to be invoked.</p>

<p class="code">
function square_clicker(e) {
   if (Game.square_clicker_enabled) {
        Game.square_clicker_enabled = false;

        var arg = new Object;
        arg.pos = this.id.charAt(1);
        $.ajax({url: 'move.php',
           type: 'GET',
           data: arg,
           dataType: 'json',
           timeout: Game.timeout,
           error: bomb,
           success: function(a) { paint_board(a);}
        });
    } else {
        alert("Thinking!");
    }
}
</p>

<p>The click handler of each game board square is a little trickier. 
At its heart, the handler is merely responsible for sending the human's 
move to the computer using an Ajax call.  When the player moves, the 
computer also makes a move and the new board state is returned and passed 
to paint_board().  Again, there are a lot of details behind that tiny bit
of code!</p>

<p>The Ajax call is protected by a boolean.  The idea is to prevent humans 
from wildly click on squares before the computer returns with the new game 
state.  The opening move for the computer can take a few seconds to calculate, 
even when the depth of recursion is limited!  I suppose that's why algorithms
with a runtime performs of O(n!) are frown upon.</p>

<p>As simple as this mechanism is, Internet Explorer does not seem to like it 
very much.  When I use that browser, I get all kinds of weird board states. 
It is a mystery to me why this happens, but this is why I include a warning
to IE users in the HTML document.</p>

<p class="code">
function paint_board (a) {
   if (a.board == null) {
     $("#status").text("No game in progress");
     Game.square_clicker_enabled = false;
   } else {
     for (var i=0; i &lt; a.board.length; i++) {
        $("#s" + i).empty();
        if (a.board.charAt(i) == '0') {
            var events = $("#s"+i).data("events");
            if (events == null) {
                $("#s"+i).click(square_clicker);
            }
        } else {
            $("#s"+i).unbind('click',square_clicker);
        var e = a.board.charAt(i).toUpperCase() 
            e = $("&lt;span>&lt;/span>").text(e).addClass("p");
            $("#s"+i).append(e);
        }
     }
     Game.square_clicker_enabled = true;
     if (a.msg == null) {
        a.msg = " ";
     }
     $("#status").text(a.msg + " ");
   }
}
</p>

<p>Finally, the heart of the client code appears in paint_board.  Given a
structure from the server, it displays the game state on the board to the 
human.  The board's state is presented as a nine character string where 
each position represents a place on the board.  A zero is an unoccupied 
space, an 'x' represents the human's move and a 'y' represents the computer's.
Notice that the client doesn't even know that much.  It simply knows that 
0 states are presented one way and non-zero another.</p>

<p>When the board is painted, the square_clicker_enabled flag is set to 
true, allowing the human to make a new move.  If an open square is indicated
by the board state, a click handler is installed if one does not exist.
If the square is occupied, the click_handler is removed.  Doing this without
jQuery would have been horrible.</p>

<p>And there's the client!  Amazingly small and even valid HTML.  Will wonders
never cease?</p>

<p>This post is already long.  At some point, I'll go into the server code 
which has some moderated clever AI and some awful code to determine a win 
condition.  Keep reachin' for the stars!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Reviewing Effective Java]]></title>
    <link href="https://www.taskboy.com/2009-11-06-Reviewing_Effective_Java.html"/>
    <published>2009-11-06T00:00:00Z</published>
    <updated>2009-11-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-11-06-Reviewing_Effective_Java.html</id>
    <content type="html"><![CDATA[
<img src="/img/effective_java.gif" class="insert">


<p><br></p>

<p>I have just finished Joshua Bloch's <a href="http://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683">Effective Java Programming Language Guide</a> 
and I can confidently say it is brilliant.  This book will not introduce Java to the uninitiated, 
but it does illuminate the dusty and frankly perverse corners of a very powerful language.
Although it is a dense read, it is a resource I will be returning to again and again.</p>

<p>With his many citings of the official Java spec, Bloch's authority is quickly established.  
Anyone that explains the uses and abuses of such common, but mysterious object properties as 
serialVersionUID and hashCode already has won me over.</p>

<p></p>

<p>Bloch's real gift is in making these opaque features understandable and putting them in 
to a context an average programmer is likely to understand.  For instance, all Java objects
have a clone() method that's meant to quickly and effeciently create new copies of an instantiated 
object.  However, correctly implementing a clone() method is far trickier than it looks.  And
the same goes for the Serializable interface.</p>

<p>In many ways, Bloch complements the Gang of Four's <em>Design Patterns</em>.  He extends the 
higher order approach to object-oriented programming into the Java context and provides concrete
advice (e.g. favor object composition to inheritence, limit your APIs expose to the minimum, use 
the Singleton pattern for effeciency and comparison correctness, etc.).</p>

<p>What this book isn't is a how-to guide to anything.  This is programming practices book and 
it rates as highly as any I've read.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Converting PNG files into a movie]]></title>
    <link href="https://www.taskboy.com/2009-11-05-Converting_PNG_files_into_a_movie.html"/>
    <published>2009-11-05T00:00:00Z</published>
    <updated>2009-11-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-11-05-Converting_PNG_files_into_a_movie.html</id>
    <content type="html"><![CDATA[
<img src="/img/gameshelf_jmac_and_jjohn.gif" title="I'm a tip-top starlet" class="insert">


<p><br></p>

<p><a href="http://www.pygame.org/">Pymedia</a> is a python wrapper around the <a href="http://ffmpeg.org/">ffmpeg C audio/video library.  It is sometimes useful to compose a video from a series of graphic files  or to decompose a video into a series of graphic files.  Pymedia is one tool to do this.</p>

<p></p>

<p>There is a sample program on the pymedia site that claims to create a video from a series of separate graphic files.  However, it contains a bug.  Besides, it may not be as clearly written as it could be.  Here's my rewrite of <a href="http://www.pymedia.org/tut/src/make_video.py.html">that code</a>.</p>

<p></p>

<p>I have hard-coded in the function getFiles() that is a routine to find all the graphic files I want in the movie as sort them.  If you reuse this script, you will need to write your own version of this.</p>

<p class="code">
import sys, os, time
import pymedia.video.vcodec as vcodec
import pygame

def makeVideo(files, outFile, outCodec='mpeg1video'):
  pygame.init()

  fw = open( outFile, 'wb' )
  if (fw == None) :
      print("Cannot open file " + outFile)
      return

  if outCodec == 'mpeg1video' :
      bitrate= 2700000
  else:
      bitrate= 9800000

  start = time.time()
  enc = None

  frame  = 1
  for fpath in files :
      img = pygame.image.load( fpath )

      # Init once, but need details from an image
      if enc == None :
          params= {
              'type': 0,
              'gop_size': 12,
              'frame_rate_base': 30, # 125,
              'max_b_frames': 0,
              'height': img.get_height(),
              'width': img.get_width(),
              'frame_rate': 90, # 2997,
              'deinterlace': 0,
              'bitrate': bitrate,
              'id': vcodec.getCodecID( outCodec )
              }
          enc = vcodec.Encoder( params )

      # Create VFrame
      bmpFrame= vcodec.VFrame( vcodec.formats.PIX_FMT_RGB24, 
                               img.get_size(), 
                               # Covert image to 24bit RGB 
                              (pygame.image.tostring(img, "RGB"), None, None)      
                             )
      # Convert to YUV, then codec
      d = enc.encode(bmpFrame.convert(vcodec.formats.PIX_FMT_YUV420P))
      fw.write(d.data)
      frame += 1

      if frame % 10 == 0 :
          sys.stdout.write("Progress: %05d/%05d\r" % (frame, len(files))) 
          sys.stdout.flush()

  fw.close()
  pygame.quit()

  print '\nDone\n%d frames written in %.2f secs( %.2f fps )' \
      % (frame, 
         time.time() - start, 
         float(frame) / (time.time()- start)
         )

def getFiles () :
    # Change this function to get files in the order you want them
    files = []
    base_dir = 'M:/backups/hosted_sites/taskboy/public_html/spy'
    for f in os.listdir(base_dir) :
        if f.startswith("20") and f.endswith("png") :
            files.append(os.path.join(base_dir, f))
    files.sort()
    return files

if __name__== '__main__':
    files = getFiles()
    makeVideo(files, "out.mpg")

</p>

<p>The core of this code is in the makeVideo() function.  Pygame is used to load the graphic files into a format that pymedia's VFrame object can accept.  That object is converted into a <a href="http://en.wikipedia.org/wiki/Yuv">YUV format</a> suitable for <a href="http://en.wikipedia.org/wiki/Mpeg">MPEG encoding</a>.</p>

<p>You can control the speed of the images by setting the frame_rate in the params dictionary.  Lower numbers are slower than bigger numbers.  I leave as an exercise for the reader a refinement that allows for more fine-grained control of the MPEG encoding.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[When XHTML goes round the bend]]></title>
    <link href="https://www.taskboy.com/2009-11-04-When_XHTML_goes_round_the_bend.html"/>
    <published>2009-11-04T00:00:00Z</published>
    <updated>2009-11-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-11-04-When_XHTML_goes_round_the_bend.html</id>
    <content type="html"><![CDATA[
<img src="/img/crying.gif" title="Why does it hurt so bad!" class="insert">


<p><br></p>

<p>XHTML is a great idea, once you understand the shear Lovecraftian terror that is SGML, of which HTML is a child.  Very few people understand all of SGML, including me, but here's the important point: SGML has all kinds of rules to imply elements.  If you don't close your OPTION tag in HTML, the browser will create a node for the end tag anyway when in interprets that document.  That's great, but in the case above, the browse does something completely predictable.  However, there are plenty of ambiguous cases of what missing nodes should be created and trust me, brother, you don't want to go there. But this is a horrid topic for another day.</p>

<p>The problem with XHTML is that it is XML.  So when you need to add a SCRIPT section, you need to escape it XML-style like this</p>

<p class="code">
&lt;script type="text/javascript">
&lt;![CDATA[
{js code here}
]]]]><![CDATA[>
</p>

<p>Wow!  That's ugly!  But wait, there's more.  No Javascript engine knows anything about XML CDATA blocks 
so you need to hide that with Javascript style comments.  So you get this:</p>

<p class="code">
&lt;script type="text/javascript">
//&lt;![CDATA[
{js code here}
//]]]]><![CDATA[>
</p>

<p>What a mess!  If this alone doesn't make you run for keeping your JS in a separate file, nothing will.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Rock Blaster released]]></title>
    <link href="https://www.taskboy.com/2009-10-27-Rock_Blaster_released.html"/>
    <published>2009-10-27T00:00:00Z</published>
    <updated>2009-10-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-10-27-Rock_Blaster_released.html</id>
    <content type="html"><![CDATA[
<img src="/img/scholars.gif" class="insert">


<p><br></p>

<p>Ready for some more retro fun?  Good.  I have <a href="projects/RockBlasterSetup.exe">Rock Blaster</a> for your enjoyment.  It's a basic shooter wherein you attempt to destroy rocks falling from the sky.  Every one you hit wins you points.  Every one that hits the ground costs you points.  Simple good fun.</p>

<p>Update: I have released a python bytecode version of <a href="projects/rock_blaster_compiled.zip">this game</a> that will run on any platform with python/pygame installed.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Markov's revenge]]></title>
    <link href="https://www.taskboy.com/2009-10-23-Markov&apos;s_revenge.html"/>
    <published>2009-10-23T00:00:00Z</published>
    <updated>2009-10-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-10-23-Markov&apos;s_revenge.html</id>
    <content type="html"><![CDATA[<p>I've been getting about 5-10 comments per day from what are either deranged people or mindless automatons.  I think the latter is the more likely suspect.</p>

<p>There is a certain irony in my blog being attacked by robots spewing nearly intelligent prose like:</p>

<blockquote>
If you've never heard Radiohead, you're missing out. , 
</blockquote>

<p>or</p>

<blockquote>
You're absolutely right â I have not attended the program, and what I've supposed about the community and its cohesiveness is pure speculation on my part. ,
</blockquote>

<p>While I can't be sure of the exact technique used to generate the bodies of these comments, it looks like a large body of human-generated text was used.  Perhaps this corpus was gathered from forum posts or twitter.  In any case, it looks like a random number of words are selected from this corpus and plopped into a message to taskboy.</p>

<p>The irony here is that I once used a slightly more sophisticated version of this technique to auto-generate journal posts to use.perl.org.  The technique that generates nearly passable text is called markov chains.  Markov chains use a simple statistical approach to figuring out which words commonly follow other words.  It's sort of fun looking at the results the first time, but some people on use.perl.org got annoyed pretty fast by this.</p>

<p>In a future post, I will revisit the markov chain implementation I used so that you too can annoy your friends will robot blather.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Here's a REST API test from WGET]]></title>
    <link href="https://www.taskboy.com/2009-10-04-Here&apos;s_a_REST_API_test_from_WGET.html"/>
    <published>2009-10-04T00:00:00Z</published>
    <updated>2009-10-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-10-04-Here&apos;s_a_REST_API_test_from_WGET.html</id>
    <content type="html"><![CDATA[<p>I used my URL encode tool on <a href="projects/">the projects</a> to create the file needed by wget. Neat!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Image processing on the XO laptop]]></title>
    <link href="https://www.taskboy.com/2009-09-29-Image_processing_on_the_XO_laptop.html"/>
    <published>2009-09-29T00:00:00Z</published>
    <updated>2009-09-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-09-29-Image_processing_on_the_XO_laptop.html</id>
    <content type="html"><![CDATA[
<img src="/img/parapet_zhou.gif" title="Establishing a programmatic beachhead" class="insert">


<p><br></p>

<p>The <a href="http://www.laptop.org/">XO laptop</a> from the 
One Laptop Per Child organization is a wonderful toy.  Sure it's not very 
powerful (430Mhz AMD Geode/256M RAM/1G flash HD), but it does have 3 USB 
slots, an SD drive, a builtin camera and WiFi 802.11b.  It is possible to expand
the file system through USB sticks or SD disks or even NFS (although this 
might be a little slow over WiFi).</p>

<p>It's not a replacement for a work PC or even a netbook, but it's an 
amazing device for experimental stuff 
(like building your own spycam).  Think of it this way: the XO is a battery
operated, WiFi enabled platform in a tough plastic case that you can build a 
variety of software toys with.</p>

<p>Without putting additional libraries onto the XO, I discovered that it is 
possible to do some image processing on the XO using pygame, the python 
bindings for <a href="http://www.libsdl.org/">SDL</a>.  For my <a href="spy/">spy cam</a> project, 
I wanted to avoid transferring "blank" pictures to the degree that I could. 
Pictures can be nearly totally white or totally black.  Programmatically, this 
can be determined in a number of ways.  I choose to look at the average 
brightness of the photo.</p>

<p>Each photograph taken by the spycam is stored on disk as a PNG file. 
Each pixel in these PNG files has an 8-bit value for the Red, Green and Blue
components.  By adding each of these values together and dividing by three, 
a number is generated between 0 and 255.  All of these averages can be added 
together and divided by the number of pixels to get the brightness of the 
average pixel in the photo.  If the average is very high (greater than 250), 
the photo is mostly white and probably useless.  If the average is very low 
(less than 10), the photo is mostly black and probably uninteresting.</p>

<p>The code below is a python script that runs on my XO.  It uses the pygame 
library to do the photographic analysis described above.</p>

<p class="code">
import pygame
import sys
import os

if len(sys.argv) &lt; 2 :
   print "Supply an image file name\n"
   sys.exit()

path = sys.argv[1]
if not os.path.exists(path) :
    print "File '" + path + "' does not exist\n";
    sys.exit()

surf = pygame.image.load(path)

bright_sum = 0.0
for y in range(0,surf.get_height()-1) :
  for x in range(0,surf.get_width()-1) :
      pix = surf.get_at((x,y))
      # average brightness
      bright_sum += (int(pix[0]) 
                 + int(pix[1]) 
             + int(pix[2]))/3.0

avg = (bright_sum + 0.0) 
      / (surf.get_height() * surf.get_width())
print("%.2f" % avg)
</p>

<p>The script is remarkably brief.  It expects a filename to be passed 
on the command line.  It loads the file to create a pygame.Surface object, 
which provides access to each pixel in the photo.  The average brightness 
for each pixel is summed together.  After all the pixels have been summed, 
the average brightness of the photo can be calculated and printed.</p>

<p>One gotcha that's worth mentioning is that all the math done in this 
process should be done with floats or doubles.  There is usually a fractional 
component of averaging.  Since I'm taking the sum of many averages, losing 
this fractional component is a problem.  Therefore, make sure that all integers
have a fractional component.   This forces python to do the arithmatic with 
floats or doubles, which preserves precision.</p>

<p>More interesting analysis can be done.  The pygame library provides a
kind of beachhead for additional exploration!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Selecting a random row with MySQL]]></title>
    <link href="https://www.taskboy.com/2009-09-29-Selecting_a_random_row_with_MySQL.html"/>
    <published>2009-09-29T00:00:00Z</published>
    <updated>2009-09-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-09-29-Selecting_a_random_row_with_MySQL.html</id>
    <content type="html"><![CDATA[<p>God bless you, MySQL.  You're one crazy DBMS.  You can actually ORDER BY the RAND() function to get a dataset ordered randomly.  </p>

<p class="code">
SELECT * FROM T ORDER BY RAND() LIMIT 1;
</p>

<p>This selects a random row from table T.  Couldn't be easier.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Worse is better coding]]></title>
    <link href="https://www.taskboy.com/2009-09-29-Worse_is_better_coding.html"/>
    <published>2009-09-29T00:00:00Z</published>
    <updated>2009-09-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-09-29-Worse_is_better_coding.html</id>
    <content type="html"><![CDATA[<p>From <a href="http://www.joelonsoftware.com/items/2009/09/23.html">Joel's blog</a>:</p>

<blockquote>
One principle duct tape programmers understand well is that any kind of coding technique that's even slightly complicated is going to doom your project. Duct tape programmers tend to avoid C++, templates, multiple inheritance, multithreading, COM, CORBA, and a host of other technologies that are all totally reasonable, when you think long and hard about them, but are, honestly, just a little bit too hard for the human brain.
</blockquote>

<p>The <a href="http://www.jwz.org/doc/worse-is-better.html">Worse is Better</a> article referred to in Joel's post was very influential to me.  Also see Eric Raymond's <a href="http://catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/">The Cathedral and the Bazaar</a>, which is a little different restatement of the issue.</p>

<p>The issue is software complexity and how to deal with it.  It's an issue all programmers have been dealing with since the was such a thing as coding.  In a perfect world, one could architect and plan every last detail of a software project before any coding happens.  After all, that's what real architects of buildings do.</p>

<p>Unfortunately, software is inherently malleable and the hardware platforms change every 12 months.  And new software solution appear every day.  Planning takes a long time and complete planning is a task that I think can never be completed.  So how can systems be designed at all?</p>

<p>There are many methodologies that have been proposed to accomplish all the good things that top-down design gives without all the costs.  I subscribe to no formal methodology, but believe in iteration from prototypes.</p>

<p>Start with a flexible platform that's amenable to constant change.  The Linux, Apache, MySQL, Perl (LAMP) stack is exactly this kind of platform.  Start building prototypes rapidly and get feedback from your clients on them.  Apply changes as needed.  Use source control to trim Bad Thinking.  Design should be only a complex as necessary and no more.  Don't paint yourself into a corner, but don't look to support all possible features that might or might not be requested of your software in the future.</p>

<p>As Fred Brooks said so wonderfully, there is no silver bullet to software design.  And there probably will never be.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Peter Cummings web site]]></title>
    <link href="https://www.taskboy.com/2009-09-27-Peter_Cummings_web_site.html"/>
    <published>2009-09-27T00:00:00Z</published>
    <updated>2009-09-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-09-27-Peter_Cummings_web_site.html</id>
    <content type="html"><![CDATA[
<img src="/img/musician.gif" class="insert">


<p><br></p>

<p><a href="http://www.peterhcummings.com/index.html">Peter Cummings</a> and I had a brief musical relationship in the early nineties in which mad sounds were made and recorded.  Pete died in 2004, but his friend, David Longey, put together an excellent online resource where you can listen to listen to pretty much everything Mr. Cummings did.</p>

<p>Pete dripped with talent.  When you get a minute, do drop by that site for a treat.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Animating graphics with JavaScript and DOM]]></title>
    <link href="https://www.taskboy.com/2009-09-26-Animating_graphics_with_JavaScript_and_DOM.html"/>
    <published>2009-09-26T00:00:00Z</published>
    <updated>2009-09-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-09-26-Animating_graphics_with_JavaScript_and_DOM.html</id>
    <content type="html"><![CDATA[
<img src="/img/leavittobush.gif" title="This foreign policy stuff is a little frustrating." class="insert">


<p><br></p>

<p>A feature I wanted for my <a href="spy/">Spycam</a> page is an animated loop
of the last 5 pictures.  All the pictures are in PNG format.  There are several
techniques that would accomplish this: GIF animation, SVG/Flash and JavaScript.
I choose to use a pure JavaScript (or 
<a href="http://en.wikipedia.org/wiki/Ecmascript">ECMAScript</a>, 
to be politically correct) 
solution, which I'll detail in a moment.  But first, I'll briefly talk about 
the alternatives.</p>

<p>Animated GIFs have been around nearly as long as the web.  Here is an example
of one that I created for my late Aliens, Aliens, Aliens web site:</p></p>


<img src="/img/etani.gif" class="insert" title="Join us!">


<p><br></p>

<p>The GIF file format allows for multiple frames and timing instructions for
the pace of animation.  At first, I thought I could do the same kind of 
animation with PNG files, but that format does not allow animation.  
With image manipulation 
libraries, I could create a new GIF and stuff it with frames converted from the 
five most recent spycam photos.  However, that seemed like a lot of work and 
I didn't really want to create yet another file to keep track of.  However, 
the advantage of this solution over the one I choose is that it scales better.
That is, by serving a static animated GIF, taskboy.com vistors will not be 
continually pulling down an image for each animation loop.  It's true that 
most browsers cache web assets, so it's likely that once the frames are loaded
in the JS animation scheme, taskboy.com will be left relatively unmolested.</p>

<p>The next solution that occurred to me was to create a Flash SWF file of this
loop.  However, I'm not much of a Flash guy, nor am I emotionally ready 
to invest
the time to learn the Perl interface to it.  Of course, there is the 
XML-based, open source alternative to Flash called SVG.  SVG does support 
animation, as you'd expect, but many browsers including Firefox do not yet 
support SVG animation.  This was quite disappointing.</p>

<p>Finally, I hit on the relatively old idea of periodically switching the 
photo using 
<a href="http://en.wikipedia.org/wiki/Document_Object_Model">DOM</a> 
manipulation.  The code to do this works in modern browsers (even IE 6). 
In pseudo-code, the strategy looks like this:</p>

<ol>
 <li>Setup an array of images in order from oldest to newest</li>
 <li>Look for a well-known ID block and update the attributes of the child 
     IMG tag with the next image in the array</li>
 <li>Update the description in a well-knwon ID block</li>
 <li>Schedule steps 2-3 to run again after a brief delay</li>
</ol>

<p>Consistent browser support for DOM manipulation directly led to the Web 2.0
explosion of the early 2000s.  It is possible to use Javascript to add, remove
and edit nodes of the document tree in a consistent way across all major 
browsers.  For those of you too young to remember, this was not always the 
case.  There was an ugly time, known as the Browser Wars, that left many 
a young Javascript programmer mamed and bitter.</p>

<p>Let's back into this code from the HTML.  After all, this is the structure 
to be changed dynamically.  Fortunately, this document structure 
is pretty simple:</p>

<p class="code">
&lt;div id="animator" align="center">
&lt;div align="center" id="pic_desc">&lt;/div>
&lt;/div>
</p>

<p>This is simply a DIV block (ID = "animator") that encloses another DIV 
(ID = "pic_desc").  Where's the image tag?  That will be inserted dynamically
later and put ahead of the second DIV.  However, an empty IMG tag could 
be added to the HTML right at the start.  This will save some complexity 
in the Javascript later on, as will be noted.</p>

<p>The Javascript for this isn't complex in concept, but it may look a little 
daunting.  However, it consists only of one globally scoped array and one 
function.</p>

<p class="code">
var Pictures = new Array("2009-09-24_21-10-01.png",
                         "2009-09-24_21-11-01.png",
                         "2009-09-24_21-12-02.png",
                         "2009-09-24_21-14-01.png"
                        );

function show_next_image(last_index) {
   // Calculate the next image's index
   last_index = (last_index + 1) % Pictures.length;

   // Find right element
   var e = document.getElementById("animator");
   if (e != null) {
      var i = null;
      for (var j=0; j &lt; e.childNodes.length; j++) {
      if (e.childNodes[j].nodeName == "IMG") {
             i = e.childNodes[j];
             break;
      }
      }

      if (i == null) {
         i = document.createElement("img");
         e.appendChild(i);
      }

      i.setAttribute("src", Pictures[last_index]);
      i.setAttribute("title", Pictures[last_index]);

      // Update description
      e = document.getElementById("pic_desc");
      if (e != null) {
         var t = null;
         if (e.childNodes.length == 0) {
             t = document.createTextNode("");
             e.appendChild(t);
         } else {
             t = e.childNodes[0];
         }
         t.data = Pictures[last_index];
      } 
   }

   setTimeout("show_next_image("+last_index+")", 5000);
}

</p>

<p>The global array, Pictures, isn't difficult to understand.  However, how 
those values are generated might be somewhat non-obvious.  Recall that 
Javascript executes in the client's browser, which is to say, not on the server.
How can the array known which files are current?  The client doesn't have access
to this information.  The answer is that the PHP script on the server must 
determine these values.  The script has access to the server and can see all 
the available files.  The PHP code then has to generate the list of filenames
that appears in the rendered Javascript code.  This is the sort of thing that 
makes CGI scripting a little mind-blowing at times.  You write code in one 
language that generates code for another.</p>

<p>The function, show_next_image(), depends on the global Pictures array.  It
is called with index of element of Pictures used previously to update the IMG 
tag.  The % operator may not be familiar to you.  It is the modulus operator.  
It returns the remainder of the integer division between its operands.  It has 
the handy property of generating values between 0 and right-hand value.  So, 
n % 4 never generates values greater than 3.  To determine the index of the 
new Pictures element to display, the passed-in last_index is incremented and 
the result modded by the length of the array.  After all, it is desirable that 
when the last image in the array is used, the next image should be the first 
image in the Pictures array.</p>

<p>After determining which Pictures element is to be used, the DOM needs to be
examined to find the right nodes to update.  Here, the getElementByID() function
is used to find the parent DIV.  Initially, this DIV has two nodes as written:
a text node containing a new line and another DIV.  The enclosed child nodes 
are searched for one that is an IMG tag using the slightly misnamed nodeName 
property.  If such a node is found, its reference will be stored in i.  If no
node reference is found (as will happen in the initial run), a new IMG node 
is created with createElement().  All nodes except text nodes are created with 
this DOM function.  The new node then is added to the list of child nodes
that the animator DIV has.</p>

<p>I need to point out to anyone following this code carefully that a small 
display bug has been introduced in this code.  If there is no initial IMG tag, 
the created IMG node will appear <em>below</em> the description, which is 
undesirable.  
To prevent this, I simply have an empty IMG tag in the HTML about the 
"pic_desc" DIV.  If you want a pure solution that does not require this HTML 
stuff, feel free to leave your solution in the comments section of this entry.
</p>

<p>An empty IMG tag isn't useful.  An IMG node requires at least one 
attribute, SRC, to do something visible.  The SRC attribute tells the 
browser where to fetch the image 
to be displayed.  This is exactly the information that is stored in the 
Pictures array.  Each element is the relative path to a graphic asset on my 
server.</p>

<p>Although it is possible to set node attributes with a number of different 
syntaxes, I recommend always using the setAttribute() function.  Not only does
it work with all kinds of DOM nodes in all major modern browsers, but if the 
attribute does not current exist in the node, it is created.  This Do What I 
Mean behavior may be a legacy of Perl, but I can't be sure.  Certainly, I 
don't see a lot of other examples in DOM where one gets a free lunch.</p>

<p>Once the picture is updated, the description follows.  The only thing 
really different about this node manipulation is that it deals with a text node.
Text nodes are the stuff that falls outside of HTML tags.  This includes the 
oft-forgotten newlines that are common in hand-written HTML documents. 
Text nodes are created with the appropriately named 
createTextNode() function.  The text in 
a Text node is updated through its data property.  The pic_desc DIV should 
only ever have one node that is a Text node.  If it has one, it is updated.  
If not, one is created and inserted as a child of that DIV.  Then the data 
property is updated. </p>

<p>The most interesting part of this code is also the shortest bit.  The DOM
function setTimeout() takes two arguments: a string that represents code 
to be executed at some future date and delay in milliseconds that the browser
will wait before executing.  Notice that the code to be excuted is a 
string.  That is, it will be eval'ed when the delay time elapses.  Eval'ed 
code is a little weird the first time you run into it.  It's code that you 
write at runtime to be executed at runtime.  Most code is traditionally written 
before compile or interpreter time.  In this case, I want to schedule 
this function, show_next_image(), to run again.  You'll notice that this will
cause the function to run forever, which is the desired effect.</p>

<p>A quick word about the delay setting in this function.  In my testing, 
I found the delay value unreliable.  Here, 5000
milliseconds are specified, but I believe the real-time delay between 
executions of this script were much shorter.  Is there a way to create 
a more highly reliable counter?  You could keep track of when time last went 
off and make decisions about whether to run again, add or substract a delay.  
If you're trying to write a game in JS with 20 updates per second using this 
method, you've gotten on the road to perdition.</p>

<p>The last bit of code needed to kick off this animation extravaganza is 
something that initially invokes the code.  In this simple example, using 
the onload event for body will work well.</p>

<p class="code">
&lt;body>
</p>

<p>This executes only once when the page is loaded and calls the desired 
function with an index before the first one.  If calling show_next_image()
with a -1 index seems like a cheat to you, you can rewrite the function so 
that it detects when it is called with a null value and assigns 0 to 
last_index.  For me, I'll stick with -1.</p>

<p>If you did not want to use DOM events to invoke this function, you could 
simply put a script section at the bottom of the BODY tag that called 
show_next_image(-1) (or its moral equivalent).</p>

<p>Mastering this simple DOM technique opens the way for much more 
sophisticated work.  But that's another post.</p>

<p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Casting magic in dynamic languages]]></title>
    <link href="https://www.taskboy.com/2009-09-26-Casting_magic_in_dynamic_languages.html"/>
    <published>2009-09-26T00:00:00Z</published>
    <updated>2009-09-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-09-26-Casting_magic_in_dynamic_languages.html</id>
    <content type="html"><![CDATA[
<img src="/img/wizard_sm.gif" class="insert">
<blockquote>
"Do not meddle in the affairs of Wizards, for they are subtle and quick to anger."
</blockquote>
âJ. R. R. Tolkien


<p><br></p>

<p>Dynamic, weekly-typed languages like Perl and PHP are wonderful productivity engines.  It's amazing how much work one can accomplish with so few lines of code.  Both languages allow the programmer to treat simple scalar variables as numbers or strings without a lot of casting or explicit conversions.  However, there is a price for this magic.</p>

<p>Consider the following PHP code:</p>

<p class="code">
  array_push($array, '"' + $file + "'");
</p>

<p>This looks harmless enough.  It looks like contents of the $file string are being enclosed in double quotes and that new string is being pushed on the end of $array.</p>

<p>Not so fast!  The + operator is a little magical.  That is, it operates as a concatenation operator when the operands are strings and as a sum operator when the operands are integers.  Wait, didn't I just say that values are weakly typed in PHP?  How can the interpreter tell the difference between strings and ints?</p>

<p>The answer for both Perl and PHP is that strings that start with integers are considered to be integers for the purposes of magic.</p>

<p>In the code sample above, the filename in question indeed started with "2009-09".  PHP took the integer part of the string, 2009, because of the + operator.  Then it clearly had a string operand ('"') and a integer (2009), so it "promoted" the integer back to a string, "2009".</p>

<p>And that's how's how I lost my filename, which caused me to spend the next 30 minutes debugging the problem.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[REST vs. SOAP/XML-RPC: an observation]]></title>
    <link href="https://www.taskboy.com/2009-09-25-REST_vs.html"/>
    <published>2009-09-25T00:00:00Z</published>
    <updated>2009-09-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-09-25-REST_vs.html</id>
    <content type="html"><![CDATA[
<img src="/img/exhibition.gif" class="insert">


<p><br></p>

<p>It occurred to me today that there is an important philosophical difference between the older web service protocols like XML-RPC and SOAP think of themselves and the way REST does.</p>

<p>SOAP and XML-RPC spend a lot of their spec on format of their messages.  In particular, how application data is serialized into XML.  How that message is moved from one host to another is less important.  Both protocols assume that developers will use HTTP, but certainly other protocols can be used.  In fact, Leostream at one point used XML-RPC messages across a pipe rather than TPC socket.</p>

<p>REST on the other hand focuses almost entirely on how messages are passed.  That is, REST is tightly bound to HTTP.   Application data can be serialized in a number of ways, none of which are particularly important to REST.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[I spy with my XO laptop]]></title>
    <link href="https://www.taskboy.com/2009-09-24-I_spy_with_my_XO_laptop.html"/>
    <published>2009-09-24T00:00:00Z</published>
    <updated>2009-09-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-09-24-I_spy_with_my_XO_laptop.html</id>
    <content type="html"><![CDATA[
<img src="/img/paris_webcam.jpg" title="webcams are totally hot" class="insert">


<p><br></p>

<p>With a small bit of scripting, I have created a cron task on my XO laptop to take pictures every minute and upload them to taskboy.com.  You can see the result on my <a href="spy/">spycam page</a>.</p>

<p>The camera is positioned in a second story window looking out on my amazing backyard.  Will you see a deer?  A cat?  Chupacabra?  You'll have to keep coming back to find out!</p>

<p>The script on my XO looks like this:</p>

<p class="code">
#!/usr/bin/perl â -*-cperl-*-
use strict;
use POSIX qw[strftime];

my $outfile="foo.png";
my $web_dir="/path/to/spy";
my $ssh_id = q[user@myhost.com];

my $remote_name=strftime("%Y-%m-%d_%H-%M-%S.png", 
                  localtime());
my $delete_horizon=7; 

# Take the picture
my $cmd = qq[gst-launch-0.10 v4l2src ! ffmpegcolorspace ] 
  . qq[! pngenc ! filesink location=$outfile ]
  . qq[> /dev/null 2> /dev/null];

system($cmd);

# Is this picture mostly empty?
if (-s $outfile &lt; 80_000) {
    exit 1;
}

# Upload to taskboy
$cmd = qq[scp -q $outfile $ssh_id:$web_dir/$remote_name];
system($cmd);

# Remove old link ; relink to new file
$cmd = qq[ssh $ssh_id 'cd $web_dir && rm current.png;]
  . qq[cd $web_dir && ln -s $remote_name current.png'];
system($cmd);

# Remove older pictures
$cmd = qq[ssh $ssh_id "find $web_dir -name '*.png' ] 
  . qq[-ctime +$delete_horizon -exec 'rm' '{}' ';'"];
system($cmd);

# Remove local file
unlink($outfile);

</p>

<p>In other news, did you know the XO appears to have sshd running by default?  Very useful for those of us that just want a command line anyway.</p>

<p>I am at the very pinnacle of 1997 technology.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[XO webcam from the command line]]></title>
    <link href="https://www.taskboy.com/2009-09-23-XO_webcam_from_the_command_line.html"/>
    <published>2009-09-23T00:00:00Z</published>
    <updated>2009-09-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-09-23-XO_webcam_from_the_command_line.html</id>
    <content type="html"><![CDATA[
<img src="/img/xo-capture.png" class="insert">


<p><p>The built-in webcam in the XO laptop fascinates me, in the same way 
parrots are fascinated by mirrors.  I like to pick at it to see what I can 
do.  I've been trying to find a simple command line invocation to take a 
picture and I have <a href="http://wiki.laptop.org/go/GStreamer">found it 
here</a>:</p>

<p class="code">
gst-launch-0.10 v4l2src ! ffmpegcolorspace ! pngenc ! filesink location=foo.png
</p>

<p>Please note that the first parameter in that list is in all caps V4L2SRC, 
not V412SRC, as <a href="http://lists.laptop.org/pipermail/devel/2007-September/006388.html">this 
post points out</a>.  That typo caused no little end of annoyance for me.</p>

<p>This command snaps a photo and creates a PNG file called foo.png in the 
current directory.</p>

<p>The key to understanding video on the XO is learn about 
<a>GStreamer</a>, a Gnome multimedia interface that works on pipelines.
That is, you build up commands with gstreamer like you uses command pipes in 
shell programming.  Obviously, if you're not familiar with shell programming, 
GStreamer is likely to be quite opaque for a while.</p>

<p>In any case, GStreamer can be used to capture pictures, video and audio. 
It can also play audio files and stream video to other servers.  Pretty strong 
ju-ju.</p>

<p>Also see this python hack for making the XO into a <a href="http://www.olpcnews.com/software/applications/olpc_hack_xo_laptop_spy_camera.html">spy camera</a>.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Compiling Math::BigInt::GMP FAIL]]></title>
    <link href="https://www.taskboy.com/2009-09-17-Compiling_Math__BigInt__GMP_FAIL.html"/>
    <published>2009-09-17T00:00:00Z</published>
    <updated>2009-09-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-09-17-Compiling_Math__BigInt__GMP_FAIL.html</id>
    <content type="html"><![CDATA[
<img src="/img/camel.gif" class="insert" title="No, please.  Waste more of my time.  It's free.">


<p><br></p>

<p>The Perl module <a href="http://search.cpan.org/~tels/Math-BigInt-GMP-1.24/">Math::BigInt::GMP</a> is a wrapper around the GNU Multiple Precision arithmetic</a> C library and is useful for certain other math-intensive Perl operations.  Ominously, the C library page warns that "GMP is very often miscompiled!  Please never use your newly compiled libgmp.a or libgmp.so without first running  make check" which makes the hairs on the back of my neck stand on end.  However, I needed this lib.</p>

<p>On my Ubuntu linux machine, the Perl library (Math::BigInt::GMP) would not compile because of gmp was not installed.  It would have been nice if the docs for this lib had mentioned this dependency.  In any case, I install gmp with the following shell command:</p>

<p class="code">
apt-get install libgmp3-dev 
</p>

<p></p>

<p>If prompted by apt-get to install additional dependencies, agree.  Then go back and install Math::BigInt::GMP.</p>

<p class="code">
make clean; 
perl Makefile.PL && make test && make install
</p>

<p>I'm beginning to think that entropy is enclosing around the Great Camel.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Pixie: a pure Perl HTTP server for M3U playlists]]></title>
    <link href="https://www.taskboy.com/2009-09-16-Pixie__a_pure_Perl_HTTP_server_for_M3U_playlists.html"/>
    <published>2009-09-16T00:00:00Z</published>
    <updated>2009-09-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-09-16-Pixie__a_pure_Perl_HTTP_server_for_M3U_playlists.html</id>
    <content type="html"><![CDATA[
<img src="/img/snake_woodcut.gif" class="insert">


<p><br></p>

<p>M3U</a> files are more commonly 
known as MP3 playlist files.  These are simple files that contain URLs to MP3
files served over an HTTP server.  These files may can additional metadata that
can be used by MP3 players (like Winamp) for display purposes.  I few months 
ago, I built a simple playlist server in Perl so that I could listen 
selectively to my vast MP3 collection.  You may find the entire source code 
for this playlist server, called Pixie, <a href="/projects/pixie/">here</a>.
It has been tested under both Windows and Linux, but should work on Mac OS X 
too.</p>

<p>At its heart, the Pixie is simply an embedded HTTP server.  It serves four 
specific kinds of pages: an M3U playlist file, a CSS file, the HTML music 
selection page and specific MP3 files.  In additional, it has two HTTP services
that are essential to this process: adding MP3s to the current playlist and 
clearing the list entirely.  There can be only one playlist per user.</p>

<p><p>When a user first points a web browser to the URL belonging to Pixie, a 
page is presented with all the directories and MP3 files found in the top level 
of the directory specified by the "-d" parameter.  In my case, that's the 
M:/mp3 folder.  </p>


<a href="/img/pixie-ss1.gif"><img src="/img/pixie-ss1.gif" class="insert"></a>


<p>Folders may be traversed and the assets of those directories 
may be added to the playlist.  Notice that there is a crumb trail at the 
top of the page that leads you back to the root directory.</p>


<a href="/img/pixie-ss2.gif"><img src="/img/pixie-ss2.gif" class="insert"></a>


<p>After a few music assets are selected, the current play list is displayed.  
Notice that the assets come from different directories.</p>


<a href="/img/pixie-ss3.gif"><img src="/img/pixie-ss3.gif" class="insert"></a>


<p>To listen the the playlist, simply click "Play now" in the Current Playlist 
section.  What could be easier?</p>

<p>The pixie.pl script is somewhat long.  It clocks in at 447 lines, even 
though that includes a small usage screen, a CSS file and an HTML template 
for the directory listing pages.  This script is a little long for a 
blow-by-blow description of each line of code, but a few points about it should 
prove illuminating for those wanting to write their own HTTP servers in Perl.
</p>

<p>It is perhaps useful to know that I structured the HTTP part of this code 
on the mod_perl/Apache model.  That is, there are some global variables 
available to the fucntions that handle HTTP responses.   The heart of the server
can be seen in the relatively small main line code below:</p>

<p class="code">
my $S = HTTP::Daemon->new(LocalPort => $Opts->{p},
              Reuse  => 1,
              Listen  => 5,
              timeout => 10,
             );

while (my $c = $S->accept) {
  Log("Connection from: " . $c->peerhost);
  while(my $r = $c->get_request) {
    $This_Request = $r;
    $This_Connection = $c;
    handle_request();
  }
}
exit 0;
</p>

<p>This code snippet starts with a pretty standard instantiation of an 
HTTP::Daemon object, which itself is a subclass of IO::Socket. For servers,
it is important to set the Reuse parameter which allows the TCP port to 
be reused quickly after the last process has exited.  Without this parameter, 
you'll find that you cannot invoke a script that uses the same port without a
"cooldown" period specific to the OS.</p>

<p>With the server socket in place, pixie waits for new client connections 
in an accept loop.  From the client socket, the HTTP::Request object can be 
obtained.  Both of these important objects are stored in global variables 
for use in the handle_request() and later functions.  Why not pass these objects
into handle_request()?  It turns out that there are all kinds of places these
objects are useful for.  Passing them explicitly gets to be a bit onerous.  
Let's look at handle_request().</p>

<p class="code">
sub handle_request {
  my ($c, $r) = ($This_Connection, $This_Request);
  if ($r->method ne 'GET') {
    $c->send_error(HTTP_FORBIDDEN);
    next;
  }

  my $path = $r->uri->path;
  my @query = $r->uri->query_form;
  if ($path eq '/serve.m3u') {
    # Assemble this sessions selections
    # into an m3u and serve that file
    do_serve_playlist($c, $r);
  } elsif ($path eq "/clear") {
    # Clear playlist
    do_clear_playlist($c, $r);
  } elsif ($path eq "/pixie.css") {
    do_serve_css($c, $r);
  } elsif (@query) {
    # Could be an add request
    # Set a cookie, if needed
    do_add_asset($c, $r);
  } else {
    do_browse($c, $r);
  }
}

</p>

<p>This function can be thought of as trampoline code.  It's just is to route 
the handling of the request to the right routine, which in this case I call 
"page handlers".  Page handlers are functions that all start with "do_" and 
are responsible for actually sending an HTTP response with content.</p>

<p>The function handle_request() does its routing based on a 
quick analysis of the details of the current request.  Every HTTP::Request 
object has an initialed URI object in it.  The URI object breaks apart the 
requested URL into logical parts and saves us from writing custom parsing 
code.  You notice that two paths look like they reference real files: 
pixie.css and serve.m3u.  However, this is an illusion.  All web servers can be 
thought of as file systems proxies.  Like all proxies, you never can be quite 
sure how the resource you are requesting is stored on the back end.</p>

<p></p>

<p>There is 
also a magic path called "/clear" that signals the server to clear the current
playlist from memory.  There is only one function that does HTML form 
handling because there is only one form and it only adds MP3 files to the 
current playlist.  If none of these requirements are met, do_browse() is 
called which serves either a specific file or a directory listing.  It is this 
function I'd like to turn next to since it contains HTTP Cookie handling.</p>

<p class="code">
sub do_browse {
  my ($c, $r, $cookie) = @_;
  my $path = urldecode($r->uri->path);

  if ($path =~ /\.\./) {
    return $c->send_error(HTTP_FORBIDDEN);
  }

  my $fs = get_fs();
  my $real_dir = $Opts->{d} . $path;
  $real_dir =~ s!/!$fs!g;

  my $res = HTTP::Response->new(HTTP_OK);
  if (-d $real_dir) {
    $res->header("Content-type" => "text/html");
    if ($cookie) {
      $res->header("Set-Cookie" => "sid=$cookie; path=/");
    } else {
      my $sid = get_sid($r);
      if ($sid && !exists $Sessions{$sid}) {
    Log("Can't find SID '$sid' in: " 
        . join(", ", keys %Sessions)) if $DEBUG;
    my $epoch = "Wed, 31-Dec-1969 01:00:00 GMT";
    $res->header("Set-Cookie" => "sid=$sid; expires=$epoch;");
    Log("Deleting old cookie '$sid'");
      }
    }
    $res->content(make_page($real_dir, 
                            $path, 
                ($cookie||get_sid($r))));
    return $c->send_response($res);
  } elsif (-e $real_dir) {
    # Serve real file in a new process
    $c->send_file_response($real_dir);
  } else {
    return $c->send_error(HTTP_FORBIDDEN);
  }

}
</p>

<p>This page handler is the most complicated because it must decide if the 
requested path is valid, if a cookie needs to be set or removed or if a file or 
directory listing needs to be sent.  Let's start at the beginning.</p>

<p>The path in the URI could need URL decoding, so that is done first.  Next, 
a quick sanity check is performed to make sure the request isn't attempting to 
get a resources the server isn't meant to serve.  The parent directory URL hack 
was a common exploit in early web servers.  Next, all directory separators are 
converted to the OS appropriate.  Whatever happens next will require a new 
HTTP::Response object, so one is created.</p>

<p></p>

<p>If the path sent is a directory, a directory listing is required.  Directory 
listings are generated by the make_page() function.  The content-type is set in the 
response object, as pixie will send some kind of HTML.  If the browser sent us a 
Pixie cookie, we simply update it with the current Session ID.  If cookie 
has a Session ID but the server has no record of it, the cookie is deleted from the 
browser.  Which is to say, a new cookie is sent with an old expiration date.</p>

<p>I've glossed over the details of Pixie session management in the above 
paragraph.  When a user builds a playlist, the list needs to be kept somewhere. 
Pixie stores this list in server memory.  Each list is assigned a random number 
which is its session ID.  This ID is passed to the client with HTTP cookies.  
Every time the client makes a request, this cookie is passed back to Pixie.  There
is a global hash table called %Sessions that stores the association between ID and 
play list.</p>

<p>To finish off do_browse(), if the path of the request points to a real file, 
it is served without much more sanity checking.  There is definitely room for 
improvement here in terms of security.  The next page handler of interest is 
the one that handles requests to add files to the current playlist: 
do_add_asset.</p>

<p class="code">
sub do_add_asset {
  my ($c, $r) = @_;
  my $path = $r->uri->path;
  my @query = $r->uri->query_form;

  # Is there a cookie?
  my $sid = get_sid($r);
  unless (exists $Sessions{$sid}) {
    Log("Could not find $sid in: " 
        . join(", ", keys %Sessions)) if $DEBUG;
    $sid = time();
    Log("Creating new SID '$sid'") if $DEBUG;
  }

  # For all the "a" params, 
  # base64 decode and add to Sessions hash
  for (my $i=0; $i &lt; @query; $i += 2) {
    if ($query[$i] eq "a") {
      # retain order through value
      my $cnt = scalar keys %{$Sessions{$sid}};
      $Sessions{$sid}->{decode_base64($query[$i+1])} = ++$cnt;
    }
  }
  Log(sprintf("\%Sessions has %d keys\n", 
              (scalar keys %Sessions))) if $DEBUG;
  return do_browse($c, $r, $sid);
}
</p>

<p>Much of the first part of this routine should be familiar by now.  What's 
interesting is that if no valid Session ID is found, a new one is created based 
on epoch time.  If security is a concern, you should use a different method to 
generate IDs, like UUIDs.  In any case, for each query parameter in the request
(which is to say, MP3 file paths), the path is decoded from base64 and added to the 
sessions hash.  This is complicated by wanted to preserve the order in which the 
songs are selected.  This ordering is perserved in the Sessions hash.  Let's see 
how the actual playlist files are served.</p>

<p class="code">
sub do_serve_playlist {
  my ($c, $r) = @_;
  my $sid = get_sid($r);
  if (!$sid || !defined $Sessions{$sid}) {
    $r->uri->path("/");
    return do_browse($c, $r);
  }

  my $res = HTTP::Response->new(HTTP_OK);
  my @files = map {$Base_URL . $_} get_sorted_playlist($sid);
  my $out = make_playlist(@files);
  $res->header("Content-type" => "audio/x-mpegurl");
  $res->header("Content-Length" => length($out));
  $res->content($out);
  $c->send_response($res);
  $c->shutdown(2);
  return;
}
</p>

<p>The trickiest part about serving the playlist is getting the MIME type 
right.  The MIME type gives a hint to the browse about the kind of file being 
served and what sort of external application the browser should use for it.
Creating the playlist file is handled by make_playlist() and is pretty straight
forward.  Note the use of the draconian shutdown(2) on the client socket.  I 
found on Windows that without this call, Winamp never launched.  By closing 
both ends of the client socket, the web browser can be sure it has the entire 
file, which means that it is safe to launch the external program.</p>

<p>An interesting feature of Pixie is that the look and feel of the directory 
listings can be controlled with an external CSS file.  Simply create a pixie.css
file in the root of the MP3 directory and go to town.  You can see what the 
default CSS file looks like simply by pointing your browser to 
http://localhost:[pixieport]/pixie.css.</p>

<p>Finally, there is ample room for improvement in the Pixie server.  There are 
a number of security enhancements that can be made to ensure that only authorized 
files are sent.  Pixie is a single threaded application and does not handle 
concurrency at all.  Concurrency is a pretty thorny issue to get right for a 
platform neutral server.  The core of the issue is the way Perl handles sockets 
and filehandles.  On Linux, I would fork a new process for each new client request.
That's a very clean way to make Pixie more responsive.  Child processes inherit 
the open filehandles of the parent and so sockets can be handled independently in 
each process.  On Windows, the fork() builtin merely emulates forking behavior 
with threads.  Unfortunately since sockets look like filehandles, closing the 
client socket in the parent after fork (which is what you'd do on Linux) closes
the socket in the child.  It's not clear to me what solution would work here.  I 
thought perhaps IO::Select would be a good choice, but then I suspect that when 
music files are sent, that will almost always block the directory listing traffic.
I suppose this is a scaling mystery to be solved on another day.</p>

<p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Compiling xv on Centos]]></title>
    <link href="https://www.taskboy.com/2009-09-11-Compiling_xv_on_Centos.html"/>
    <published>2009-09-11T00:00:00Z</published>
    <updated>2009-09-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-09-11-Compiling_xv_on_Centos.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://www.trilon.com/xv/">xv</a> is an ancient but small X graphic file viewer.  If you try to compile the latest source (3.10a) on Centos 5, you'll get the following fatal error message:</p>

<p class="code">
In file included from xv.c:11:
xv.h:119 error: conflicting types for 'sys_errlist'
</p>

<p><p>To get a successful compile, simply edit xv.h.  Remove all the #defines around 'include &lt;errno.h>' (about 4 or 5 lines).  Replace with the single line:</p>

<p class="code">
include &lt;errno.h>
</p>

<p>Type 'make' again and your compile should succeed.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Vacation]]></title>
    <link href="https://www.taskboy.com/2009-08-21-Vacation.html"/>
    <published>2009-08-21T00:00:00Z</published>
    <updated>2009-08-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-08-21-Vacation.html</id>
    <content type="html"><![CDATA[<p>I'm pretty much on vacation until September.  Keep cool.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Vigenere cipher: more moderately secure cryptography]]></title>
    <link href="https://www.taskboy.com/2009-07-31-Vigenere_cipher__more_moderately_secure_cryptography.html"/>
    <published>2009-07-31T00:00:00Z</published>
    <updated>2009-07-31T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-07-31-Vigenere_cipher__more_moderately_secure_cryptography.html</id>
    <content type="html"><![CDATA[
<img src="/img/131-tshirt.gif" class="insert">


<p><br></p>

<p>Sometimes you need to secure a message could be intercepted by party 
for whom the message is not meant.  One moderately good way to do this is 
using the Vigenere cipher</a>.</p>

<p>The Vigenere cipher is a kind of caesar or subsistution cipher.  It uses 
a sequence of letters called a Key to determine the substitution.  Compare this 
to the constant shift function of caesar.  In Caesar crypt text, all occurences 
of a particular clear text letter will be the same subsistute letter (i.e. 'Z' 
always stands in for 'E').  In Vigenere, the substitute for a clear text letter 
changes depending on where that letter occurs.  Neat trick, eh?</p>

<p>The Key is a shared secret known only to those parties authorized to read
the message.  The encoded text cannot be cracked in the same way that 
a caesar inciphered text can be, although there are sophisticated avenues of 
attack known to the NSA and other professionals.</p>

<p>Vigenere works by using a tabula recta, which is is a table of the alphabet 
in rows and columns, like the following:</p>


<p>
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 
B C D E F G H I J K L M N O P Q R S T U V W X Y Z A 
C D E F G H I J K L M N O P Q R S T U V W X Y Z A B 
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C 
E F G H I J K L M N O P Q R S T U V W X Y Z A B C D 
F G H I J K L M N O P Q R S T U V W X Y Z A B C D E 
G H I J K L M N O P Q R S T U V W X Y Z A B C D E F 
H I J K L M N O P Q R S T U V W X Y Z A B C D E F G 
I J K L M N O P Q R S T U V W X Y Z A B C D E F G H 
J K L M N O P Q R S T U V W X Y Z A B C D E F G H I 
K L M N O P Q R S T U V W X Y Z A B C D E F G H I J 
L M N O P Q R S T U V W X Y Z A B C D E F G H I J K 
M N O P Q R S T U V W X Y Z A B C D E F G H I J K L 
N O P Q R S T U V W X Y Z A B C D E F G H I J K L M 
O P Q R S T U V W X Y Z A B C D E F G H I J K L M N 
P Q R S T U V W X Y Z A B C D E F G H I J K L M N O 
Q R S T U V W X Y Z A B C D E F G H I J K L M N O P 
R S T U V W X Y Z A B C D E F G H I J K L M N O P Q 
S T U V W X Y Z A B C D E F G H I J K L M N O P Q R 
T U V W X Y Z A B C D E F G H I J K L M N O P Q R S 
U V W X Y Z A B C D E F G H I J K L M N O P Q R S T 
V W X Y Z A B C D E F G H I J K L M N O P Q R S T U 
W X Y Z A B C D E F G H I J K L M N O P Q R S T U V 
X Y Z A B C D E F G H I J K L M N O P Q R S T U V W 
Y Z A B C D E F G H I J K L M N O P Q R S T U V W X 
Z A B C D E F G H I J K L M N O P Q R S T U V W X Y 
</p>


<p>Notice the letters in column 2 are shifted 1 from column 1.  This is 
important, as you'll see in a moment.</p>

<p>To encode a message, you need a key.  The key needs to be as long as 
the clear text message.  Repeat the key as needed to make the key long 
enough.  For example, if my key is "ORANGE" and my message is "IAMASECRETAGENT",
then you would need to expanded the key to "ORANGEORANGEORA".  To encipher the 
message, walk through each letter of the clear text.  For each letter, 
find the column that starts with that letter of the clear text and look down 
that column for the row that starts with the corresponding letter of the 
Key.  The letter you find there is the cipher text substitution for that 
letter.  So, the first letter in this example is "I" with a key letter of "O", 
which means that the substitution is "W".  Here's the completed example:</p>


<table>
<tr>
  <td>Clear text: </td>
  <td><code>IAMASECRETAGENT</code></td>
</tr>
<tr>
  <td>Key: </td>
  <td><code>ORANGEORANGEORA</code></td>
</tr>
<tr>           
  <td>Crypt text: </td>
  <td><code>WRMNYIQIEGGKSET</code></td>
</tr>
</table>


<p>In the real world, messages will comprise more characters than just the 
uppercase letters of the alphabet.  There are two ways to handle this when 
implementing the Vigenere cipher in code.  Either reject all characters that
are not part of the tablua recta or simply make the subsistute character the
same as the input.  The latter technique is the one I favor, but that may 
make the crypt text easier for someone to crack.  For example, what do 
think this crypt text is refering to?</p>


<code>zT4N://eYSqnA.MxDEh7CmcGPT.jEA/aR/yO/?Hy=BRe7hS</code>


<p><br></p>

<p>Surely, this is a URL.  Further, one can safely assume that "zT4N" is 
"http" in clear text.  That's a lot of context to give away.</p>

<p>Implementing this complex cipher in Perl is straight forward.  The first
thing to do is to build the tablua rect:</p>


<p class="code">
sub build_matrix {
    my @Wheel = ((0..9), ('A'..'Z'), ('a'..'z'));

    my $M = [[]];
    for (my $y=0; $y [$y]->[$x] = $Wheel[($y + $x) % @Wheel];
    }
    }
    return $M;
}
</p>


<p>Notice that my alphabet is composed of numbers and both cases 
of letters.  This set of characters is contained in the @Wheel array.
By looping through the array twice, it is possible to create a two dimensional 
array.  A careful look at the code reveals our old friend the shift function
from the caesar cipher.  Each column is shifted by one.</p>

<p>You may not be familiar with the modulus operator %.  The modulus operator 
returns the remainder of an integer division.  For example, 13 % 5 is 3.  
Modulus operations have the interesting property that they always return values 
between 0 and one less than the second operand.  Of course, this fits neatly 
in with arrays that begin indexes their elements at zero.</p>

<p>One last note.  Even though this function returns the tablua recta, the 
caller stores the array in a globally visible variable called $M.  This global
is referenced in the encoding function below.</p></p>


<p class="code">
sub enc {
    my ($plain, $key) = @_;

    # Find the row of the cipher
    for (my $y=0; $y [$y]->[0] eq $key) {
        # Find the column of plain text
        for (my $x=0; $x [$y]}; $x++) {
        if ($M->[0]->[$x] eq $plain) {
            return $M->[$y]->[$x];
        }
        }
    }
    }
    return $plain;
}

</p>


<p>This function expects a clear text letter and the corresponding key letter.
The row of the key letter is found in the tablua recta (i.e. $M) and then the 
column of the clear text letter is found.  Whatever letter is found in $M 
at that location is returned to the caller.  Notice that if the plain letter 
cannot be found in the tablua recta, that character is returned as the 
subsistution.</p>

<p>What remains is to show the main part of the program that calls these 
functions:</p>


<p class="code">
my @key_text = split //, $key;
my @plain_text = split//, $message;

my $new = "";
for (my $i=0; $i 


<p></p>

<p>Here, the Key and the message are hard coded in $key and $message 
respectively.  Each of these is split into arrays of characters.  For every 
character in the plain_text array, the encoding function is called and the 
cipher text is built and later printed.</p>

<p>Notice the return of the modulus operator.  Instead of trying to expand 
the key to match the length of the message, a simple modulus operation is used.
This saves a bit on memory and it is easier to implement than the literal 
expansion of the key.</p>

<p>To decrypt the message, replace the enc() call in the main line with 
dec(), shown below:</p>


<p class="code">
sub dec {
    my ($cipher, $key) = @_;

    # Find the row of the key
    for (my $y=0; $y [$y]->[0] eq $key) {
        # Find the column of the cipher 
        for (my $x; $x [0]}; $x++) {
        if ($M->[$y]->[$x] eq $cipher) {
            return $M->[0]->[$x];
        }
        }
    }
    }
    return $cipher;
}
</p>


<p>Notice that it is the inverse operation of enc().  It is passed a cipher 
letter and the corresponding key.  The row of the key is found and the column
that contains the cipher letter is found.  Then the first letter of that 
corresponding column it found, which represents the clear text letter.  If 
no match is found, the cipher text is returned.</p>

<p>Of course, you don't need to use this implementation.  There is one on 
<a href="http://cpansearch.perl.org/src/ALIZTA/Crypt-Vigenere-0.07/Vigenere.pm">CPAN already</a>, although it uses only 'A'..'Z' for its alphabet and strips 
off other characters.</p>

<p>Happy enciphering.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Moderate security techniques: the Caesar cipher]]></title>
    <link href="https://www.taskboy.com/2009-07-27-Moderate_security_techniques__the_Caesar_cipher_.html"/>
    <published>2009-07-27T00:00:00Z</published>
    <updated>2009-07-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-07-27-Moderate_security_techniques__the_Caesar_cipher_.html</id>
    <content type="html"><![CDATA[
<img src="/img/desert_walk.jpg" class="insert">


<p><br></p>

<p>Security, it is said, is a process, not a product.  For every method of 
securing information from unauthorized eyes, there is (or will be) a counter
measure.  There are two aspects of security: authentication and authorization. 
Authentication is concerned with determining the identity of user wishing access
to a secured resource through the use of some kind of credentials.  
Authorization is the set of rights a user has over a secured resource.  In Unix 
terms, a user's account name and password as stored in the file /etc/passwd are
the authorization credentials needed to log into the system.  The permissions 
on files and directories represent the authorization mechanism.</p>

<p>In the world of web services, the need for authentication and authorization 
is clear.  For example, twitter.com allows a user to update his status through
a public API.  However, only the owner of that account should be allowed to 
make updates.  Reusing an existing authentication/authorization mechanism, 
Twitter's API expects account credentials to be passed through the basic 
authorization method of HTTP.</p>

<p>An even more secure authentication/authorization mechanism is 
<a href="http://en.wikipedia.org/wiki/X509">X.509</a> PKI standard in which 
clients and servers exchange encrypted credentials that identify themselves
to each other.  Each certificate has a "web of trust" or chain of authorizing 
servers that can be consulted to establish the validity of its origin.  
Setting up this web of trust, however, can be a daunting task.</p>

<p>Some applications may simply wish to hide information from authorized eyes 
without the complexity of a full PKI implementation.  One old cryptographic 
technique to do this is the 
Vigenere cipher</a>,
 whose origins date back to sixteenth century (although the name come from a 
nineteenth century diplomat).  The Vigenere cipher is a novel twist on the 
very ancient <a href="http://en.wikipedia.org/wiki/Caesar_cipher">caesar 
cipher</a>.</p>

<p>A caesar cipher works by substitution a letter of the plain text 
message with a different letter of the alphabet.  The substition is not random, 
but represents a constant "shift."   To understand a shift, image an ordered 
list of the capital letters from 'A' to 'Z', where 'A' occupies position 0 and 
'Z' is at position 25.  A shift is a function that takes a plain text letter, 
adds a fixed amount of position and returns the letter at the new position.  
For example, shift('A',1) would produce 'B' and shift('Z', 1) would produce 
'A'.  To decrypt a caesar encrypted message easily, you need to know the 
alphabet used and the shift amount.</p>


Plaintext: <code>ILIKEPIE</code><br>
Caesar(2): <code>XAXZTEXT</code>


<p>Caesar ciphers were used heavily for centuries, but are not particularly 
secure because they do not change the frequency of occurence of letters.  In 
languages with alphabets, some letters occur more frequently than others.  In 
English, the most common letter is 'e'.  If caesar-encypted text is long 
enough, whatever letter presents 'e' will also appear often.  One can then 
workout the shift and from there the rest of the message in a process that 
resembles "Wheel of Fortune."</p>

<p>For the curious, here's a snippet of Perl that represents the shift 
function:</p>

<p class="code">
sub encode {
    my ($s, $shift) = @_;
    my @parts = split //, $s;

    my $t = "";
    for my $p (@parts) {
    $t .= chr(ord('A') + ((ord($p) + $shift) % 26));
    }
    return $t;
}
</p>

<p>To decode a caesar inciphered message, the following function will work:</p>

<p class="code">
sub decode {
    my ($s, $shift) = @_;
    my @parts = split //, $s;

    my $t = "";
    for my $p (@parts) {
    $t .= chr(ord('A') + ((ord($p) - $shift) % 26));
    }
    return $t;

}

</p>

<p>Next time, we'll look at how to implement a Vigenere cipher in Perl.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Using bit.ly's REST service to shorten URLs]]></title>
    <link href="https://www.taskboy.com/2009-07-20-Using_bit.html"/>
    <published>2009-07-20T00:00:00Z</published>
    <updated>2009-07-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-07-20-Using_bit.html</id>
    <content type="html"><![CDATA[
<img src="/img/camel.gif" class="insert">


<p><br></p>

<p>(Note: Thanks to gizmo, I have corrected an abbreviation expansion problem.)</p>

<p><a href="http://en.wikipedia.org/wiki/Url">Uniform Resource Locators</a> 
are an addressing scheme at the heart of the Web.  Without them, there would 
be no stardard way to refer to a resource offered by a web server.  URLs 
remove the ambiguity of addressing a resource, but at the cost of creating 
some rather formidable namespaces (e.g. 
<code>https://addons.mozilla.org/en-US/firefox/addon/9549</code>).</p>

<p>In general, long URLs aren't a problem.  Either through web page hyperlinks 
or web browser bookmarks, URLs fade into the background for most users.  
However, sometimes it is more convenient to have a shorter reference to a 
resource than the fully qualified URL.  For example in the late nineties on 
IRC, it was common to see <a href="http://www.tiny.cc/">tiny.cc</a> URLs 
pasted into chat rooms.  Long URLs tend to clutter up already busy chat room 
windows.  With the advent of text message-based systems like Twitter, which 
limit status updates to 140 characters, long URLs are actually consuming a 
valuable resource.  The most common URL shortener used on Twitter.com appears 
to be <a href="http://bit.ly/">bit.ly</a></p>

<p>There are several URL shortening services out there and they all work 
pretty much the same way.  The user supplies the full URL.  The service 
hashes the URL into something smaller and appends this to its own namespace.
Using the bit.ly service, the mozilla URL becomes: 
<code>http://bit.ly/g0Z9</code>.  When someone accesses this bit.ly URL, he
will be seemlessly redirected to the original resource.</p>

<p><p>Bit.ly provides a REST interface to their service 
(<a href="http://code.google.com/p/bitly-api/wiki/ApiDocumentation">API</a>). <br>
To use this, <a href="http://bit.ly/account/register">create an account</a> on 
bit.ly's system.  Now you are ready to build a Perl REST client for the shorten
service (<code>http://api.bit.ly/shorten</code>).</p>

<p>The following code is a listing of a small command line Perl script that 
expects to be passed a long URL.  It uses the bit.ly REST service to return 
a shortened version.</p>

<p class="code">
use strict;
use LWP::UserAgent;
use Getopt::Std;
use HTTP::Request;
use URI;

my $VERSION = "1.0";
my $Opts = {};
my $bitly_api_url = q[http://api.bit.ly/shorten];
my $long_url = pop @ARGV;
getopts('u:p:?', $Opts);

if (!$long_url || $Opts->{'?'}) {
    print usage();
    exit;
}

set_defaults($Opts);

my $ua = LWP::UserAgent->new;
my $fetch_url = URI->new($bitly_api_url);
$fetch_url->query_form({'version' => "2.0.1",
                         'format'  => "xml",
                         'longUrl' => $long_url,
                     });
my $req = HTTP::Request->new(GET => $fetch_url);
$req->authorization_basic($Opts->{u} => $Opts->{p});

my $res = $ua->request($req);
if ($res->code == 200) {
    my ($url) = ($res->content 
       =~ m!(+)!);
    unless ($url) {
        warn("FAIL: [". $res->content . "]\n");
    exit 1;
    }
    print "$url\n";
    exit;
} else {
    warn("FAIL:[".$res->content."]\n");
    exit 1;
}

#ââ
# sub
#ââ
sub usage {
    return 

OPTIONS

  ? - Display this screen
  u [USERNAME] - Bit.ly username
  p [PASSWORD] - Bit.ly password

EOT
}

sub set_defaults {
    my ($h) = @_;
    $h->{u} ||= "taskboy3000";
    $h->{p} ||= "s3c3rt";
}

</p>

<p></p>

<p>This code uses the standard Perl module Getopt::Std to parse optinal 
command line arguments.  The <code>set_defaults</code> function merely uses
my bit.ly credentials if none are provided through optional parameters.  Next, 
a new LWP::UserAgent object is created to make client HTTP calls.  The bit.ly 
shorten service expects a GET request with optional arguments encoded as 
query parameters in the URL.  The bit.ly service can respond to requests with 
data in various formats (e.g. XML, JSON).  In this case, the format parameter
is set to "xml."</p>

<p></p>

<p>The URI class manages the extra parameters through the 
<code>query_form</code> method and urlencodes these into the new 
URL.  A simple HTTP::Request object is passed the new URL and the bit.ly 
credentials are added to the HTTP request header using the 
<code>authorization_basic</code> method.</p>

<p>Once the HTTP request has all the information, it is ready to be sent to the 
bit.ly server.  The HTTP::Request object is passed to the 
LWP::UserAgent::request method, which contacts the server and encodes the 
response as an HTTP::Response object.</p>

<p>If an error occurred in transmission, the response will have a HTTP status 
code other than 200.  Even if the requests succeeds, the service might fail 
due to missing or bad credentials.  A simple regex extracts the shortend URL
from the XML message and reports on the command line for easy consumption by
other command line tools.</p>

<p>This script will run on any platform supported by Perl.</p>

<p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Posting to Twitter using REST API]]></title>
    <link href="https://www.taskboy.com/2009-07-17-Posting_to_Twitter_using_REST_API.html"/>
    <published>2009-07-17T00:00:00Z</published>
    <updated>2009-07-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-07-17-Posting_to_Twitter_using_REST_API.html</id>
    <content type="html"><![CDATA[
<img src="/img/camel.gif" class="insert" alt="Perl as internet duct tape">


<p><br></p>

<p>For a long time, I've ignore the 
<a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">Representational State Transfer</a> (REST) 
architecture.  For one thing, I don't particularly agree with its premise 
that remote procedure calls (RPC) that use HTTP as a transport mechanism 
should obey the same semantics as regular web traffic.  Things like 
XML-RPC and SOAP are, to my thinking, happening on an entirely different layer 
of the application stack than HTTP.  Indeed, there are implementations of 
XML-RPC that do no use HTTP at all.</p>

<p>I remember pretty heated arguments I witnessed at tech conferences in the 
early 2000s about this seemingly unimportant technical point.  For REST 
adherents, web services are another form of web traffic and should be treated 
as such.  Given that Twitter, Facebook and Bit.ly all use REST for their APIs
and older apps like liveJournal use XML-RPC/SOAP, I guess REST is the new 
hotness.</p>

<p>I've recently had reason to interact with the Twitter and Bit.ly APIs.  
This has made me come to terms with REST RPC mechnanisms.  I admit, the sad, 
sick part of me that enjoys playing around with low-level HTTP stuff finds 
satisfaction in the way these API leverage existing HTTP features like basic 
authentication, extra path info, and GET and POST semantics.  In this post, 
I thought I would show a bit of Perl code I wrote post status updates to 
Twitter, an activity more commonly referred to as "tweeting."</p>

<p><a href="http://apiwiki.twitter.com/">Twitter's API documentation</a> is 
relatively straight forward, if you already have a solid grounding in HTTP.
The API call to tweet is called <a href="http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses%C2%A0update">"statuses/update"</a>.  The basics of the 
RPC mechanism are easy enough:</p>

<ul>
  <li>The caller makes a HTTP GET or POST request
  <li>The sender replies with content in the form of JSON or  XML
</ul>

<p>Let's start with the request.  There are serveral bits of information
required by the API: user credentials, the URL and additional query parameters.
The user credentials are passed as part of the HTTP request header as a basic
authentication field, which is merely a base64 string that is the concatenation 
of the username and password of your Twitter account.  Fortunately, Perl's 
HTTP::Request::Common class makes it easy to add basic auth credentials 
to the request
without knowing how this information is encoded in the HTTP request.</p>

<p>The next bit is the URL to the function.  This is a core idea of REST â 
function calls should have URIs and look like ordinary web resources.  
In this case, the URL is <code>http://twitter.com/statuses/update.xml</code>.
Interestingly, the response from twitter can be encoded in a number of formats.
These formats are determined by the extension you give to the URL.  For 
instance, I could have request the metainformation about myself in 
<a href="http://en.wikipedia.org/wiki/Json">JSON</a> with the following URL: 
<code>http://twitter.com/users/show/taskboy3000.json</code>.</p>

<p>The text of the tweet must be passed to the URL as if it were POSTed from a 
form.  The parameter name is <code>status</code>.  The status must be encoded
as if the data were submitted from an HTML form.  Again, Perl makes this very 
easy, as will be shown below.</p>

<p class="code">
use LWP::UserAgent;
use HTTP::Request::Common ('POST')

my $api_url = q[http://twitter.com/statuses/update.xml];
my $status = "Tweeting from the API!";
my $twitter_username = "taskboy3000";
my $twitter_password = "s3cr3t";

my $ua = LWP::UserAgent->new;
my $req = POST($api_url => [status => $status]);
$req->authorization_basic($twitter_username 
              => $twitter_password);

# Make the request
my $res = $ua->request($req);
</p>

<p>The code above is sets up and makes the status RPC call to twitter.
The first thing needed is an LWP::UserAgent object, which is kind of like 
a web browser.  It makes HTTP requests of web servers.  To construct the 
POST request, I use HTTP::Request::Common::POST.  Because I can pass in 
form parameters as plain perl data structures, it frees me from worrying 
about urlencoding values and fooling around with HTTP headers that 
are germain to the task at hand.  POST() returns an HTTP::Request object.</p>

<p>Adding my twitter account credentials to the request is a simple one line 
call to authorization_basic().  Very handy and very clean.  That's all 
the setup I need to make the request.  I pass in the HTTP::Request object
to the User Agent object.  That makes the actual network connection to the 
URL.  The response comes back in the form of an HTTP::Response object, which 
I'll discuss next.</p>

<p>If all has gone well with the request, I'll get back an XML document that 
looks something like this:</p>

<p class="code">
&lt;?xml version="1.0" encoding="UTF-8"?>
&lt;status>
&lt;created_at>Tue Apr 07 22:52:51 +0000 2009&lt;/created_at>
&lt;id>1472669360&lt;/id>
&lt;text>At least I can get your humor through tweets. 
RT @abdur: I don't mean this in a bad way, but 
genetically speaking your a cul-de-sac.&lt;/text>
&lt;truncated>false&lt;/truncated>
&lt;in_reply_to_status_id>1472669230&lt;/in_reply_to_status_id>
&lt;in_reply_to_user_id>10759032&lt;/in_reply_to_user_id>
&lt;favorited>false&lt;/favorited>
&lt;in_reply_to_screen_name>&lt;/in_reply_to_screen_name>
&lt;user>
&lt;id>1401881&lt;/id>
 &lt;name>Doug Williams&lt;/name>
 &lt;screen_name>dougw&lt;/screen_name>
 &lt;location>San Francisco, CA&lt;/location>
 &lt;description>Twitter API Support. Internet, greed, 
users, dougw and opportunities are 
my passions.&lt;/description>
 &lt;url>http://www.igudo.com&lt;/url>
 &lt;protected>false&lt;/protected>
 &lt;followers_count>1027&lt;/followers_count>
 &lt;profile_text_color>000000&lt;/profile_text_color>
 &lt;profile_link_color>0000ff&lt;/profile_link_color>
 &lt;friends_count>293&lt;/friends_count>
 &lt;created_at>Sun Mar 18 06:42:26 +0000 2007&lt;/created_at>
 &lt;favourites_count>0&lt;/favourites_count>
 &lt;utc_offset>-18000&lt;/utc_offset>
 &lt;time_zone>Eastern Time (US & Canada)&lt;/time_zone>
 &lt;profile_background_tile>false&lt;/profile_background_tile>
 &lt;statuses_count>3390&lt;/statuses_count>
 &lt;notifications>false&lt;/notifications>
 &lt;following>false&lt;/following>
 &lt;verified>true&lt;/verified>
&lt;/user>
&lt;/status>
</p>

<p>Most of this, I don't care about.  However, I do want to see if there's an 
 tag.  If so, there was a problem with the post.  The way I handle 
this error checking can be see in the following code.</p>

<p class="code"> 
unless ($res->is_success) {
    my $c = $res->content;
    my ($errstr) = ($c =~ m!&lt;error>(+)&lt;/error>!);
    warn(sprintf("Post failed (%d): $errstr\n", $res->code));
    exit 1;
}

print "OK\n";
exit 0; 
</p>

<p>Without the services of a full XML parser, it's relatively easy to look 
for an error tag and extract the contents for display.  The error message I've 
encountered most is essentially "you used the API too much".  Twitter does 
restrict the usage of some of their API calls, but not the status one.</p>

<p>If you collapse all the Perl code, you're looking at less than 20 lines of 
code.  If you wanted to, you could even make posts using the very handy 
command line tool curl:
<code>curl -u taskboy:s3cr3t -d "status=hello curl" \<br>
http://twitter.com/statuses/update.xml</code></p>

<p>I will leave the checking of error messages from curl output as an 
excerise for the reader.</p>

<p>As I said, REST RPC mechanisms are fun and interesting if you already 
understand HTTP.  However, not everyone does.  I think XML-RPC and SOAP 
libraries to a better job of insulating the programmer from the HTTP 
protocol, allowing him to focus on the API task at hand.</p>

<p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[New online tools on taskboy]]></title>
    <link href="https://www.taskboy.com/2009-07-13-New_online_tools_on_taskboy.html"/>
    <published>2009-07-13T00:00:00Z</published>
    <updated>2009-07-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-07-13-New_online_tools_on_taskboy.html</id>
    <content type="html"><![CDATA[
<img src="/img/mowing_devil.jpg" class="insert">


<p><br></p>

<p>There's a new online tool section on the <a href="/projects/">Projects</a> page of this site that contains links to tools I've written that may be useful to other people.</p>

<p>There are two additions to this toolset.  The first is an <a href="/projects/uu.php">encoder/decoder</a> that can handle uuencoding and base64.  This can be useful if you need to do a quick conversion, but don't want to bust out Perl/Python/PHP etc. to do it.</p>

<p>The second addition helps convert <a href="/projects/phone2number.php">phone alpha phrases</a> (e.g. 1-800-MYPIZZA) into all digits.  There are many such utilities on the web, but here's my take on it.</p>

<p>Enjoy.</p>

<p></p>

<p>UPDATE: Added <a href="/projects/urlencode.php">Percent encoder</a> to the mix.  I should have done this 12 years ago.  It would have saved me a lot of pain.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Programming note]]></title>
    <link href="https://www.taskboy.com/2009-06-10-Programming_note.html"/>
    <published>2009-06-10T00:00:00Z</published>
    <updated>2009-06-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-06-10-Programming_note.html</id>
    <content type="html"><![CDATA[<p>Sorry for the delay in posting.  There are lots of good things brewing.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Ubuntu/Debian network interface files]]></title>
    <link href="https://www.taskboy.com/2009-06-10-Ubuntu_Debian_network_interface_files.html"/>
    <published>2009-06-10T00:00:00Z</published>
    <updated>2009-06-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-06-10-Ubuntu_Debian_network_interface_files.html</id>
    <content type="html"><![CDATA[<p>Note to self: Example interface files for ubuntu/debian systems.</p>

<p>DHCP:</p>

<p class="code">
iface eth0 inet dhcp
</p>

<p><br></p>

<p>Static:</p>

<p class="code">
iface eth0 inet static 
   address 1.2.3.4
   netmask 255.0.0.0
   gateway 1.0.0.1
</p>

<p><p>Now, don't forget it!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The Areas of My IT Expertise, Part 1]]></title>
    <link href="https://www.taskboy.com/2009-05-14-The_Areas_of_My_IT_Expertise,_Part_1.html"/>
    <published>2009-05-14T00:00:00Z</published>
    <updated>2009-05-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-05-14-The_Areas_of_My_IT_Expertise,_Part_1.html</id>
    <content type="html"><![CDATA[
<img src="/img/enterprise_bridge_modern.png" class="insert">


<p><br></p>

<h2>Enterprise IT: The Final Frontier</h2>

<p>When people use the term "Enterprise Information Technology", what kind 
of environment are people really talking about?  For me, this term refers to 
the facilitation 
and management of integrated corporate information by software and hardware 
for medium to large organizations.  Enterprise IT differs from IT at smaller 
organizations in both scale and the requirement of a lot more management and 
automation tools.  Tools that work quite well in Small Office/Home Office 
(SOHO) environments often do not scale for larger organizations, do not 
address the correct problem or cannot integrate with the kinds of systems 
common to enterprise IT structures.</p>

<p>This is not to imply that SOHO applications are inferior or less 
robust.  Even if application costs were not an issue, there are many 
enterprise IT applications that are simply not appropriate for SOHO 
environments due to hardware requirements, installation complexity, 
administrative overhead or missing network dependencies (for instance, 
some applications may require SNMP-aware switches that are lacking in most 
SOHOs).</p>

<p></p>

<p>The key attributes of an enterprise IT solution are scalability and 
integration.  Scalability is the process by which an application may be 
altered to handle increasing amounts of usage.  Notice that I said "process". 
Too many vendors tout scalability as a feature, which it is not.  Application
scale through many techniques, but all require the intervention of system 
administrators to implement.  Google search engine, for instance, scales 
to millions of users searching billions of pages of content, but it requires 
thousands of commodity servers deployed in standard shipping containers 
distributed through the world.  Without scalability, an application can meet 
the growing demands of the end-user.</p>

<p>Integration is the other distinguishing feature of IT software.  Large IT 
systems must be able to exchange information with other IT systems in an 
automated way.  For instance, a network management tool needs to be able to 
retrieve network statistics from smart switches and routers.  SSLVPN routers 
need to be able to talk to a center Authentication and Authorization system, 
like Active Directory.  Without integration, information gets repeated in 
individual applications.  This creates the undesirable "siloization" of 
information that significately reduces the efficiency of IT departments and 
can even compromize security.</p>

<p>There are several components of enterprise IT that can be broadly 
categorized into the areas discussed in the next part of this essay, coming soon.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The shoots and ladders of technology]]></title>
    <link href="https://www.taskboy.com/2009-05-04-The_shoots_and_ladders_of_technology.html"/>
    <published>2009-05-04T00:00:00Z</published>
    <updated>2009-05-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-05-04-The_shoots_and_ladders_of_technology.html</id>
    <content type="html"><![CDATA[
<img src="/img/gartner1.JPG" class="insert">


<p><br></p>

<p>Every opinion looks better with a graph and no graph has captured my experience of working in software more than this.</p>

<p>The most fun part of working in tech is working in some niche that's climbing the Peak of Inflated Expectations.  The inevitable Trough always comes, but there's a kind of doublethink that techies have that pretends this isn't the case.  I believe this is instinct comes from the same self-preservation skill that allows us not to dwell too long upon our own impending mortalities.</p>

<p><p>In a small scale, I'm looking forward to the popcap war game <a href="http://www.popcap.com/promos/pvz/?icid=pvz_trailer_PC_promo_top_2_04_22_09_EN&amp;cuevid=1">Plants vs. Zombies</a> which appears tomorrow.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Ads on taskboy]]></title>
    <link href="https://www.taskboy.com/2009-04-29-Ads_on_taskboy.html"/>
    <published>2009-04-29T00:00:00Z</published>
    <updated>2009-04-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-04-29-Ads_on_taskboy.html</id>
    <content type="html"><![CDATA[<p>The migration to the new theme here at the taskboy has gone well.  Now it's time to pay for all of this.</p>

<p>As of today, I'm putting some Google AdWords on this site.  The positioning is relatively hidden, but I think anyone looking for ads can find them easily enough.</p>

<p>To improve google's indexing of my site, I have created cached versions of all my blog entries (over 1200 pages!).  The permalink format for the blog entries has changed a bit.  I guess that makes the old links not very perma.</p>

<p>I will be adding more technical content here more regularly.  I'll try to crank out a solid article every week with daily updates of my technical shenanigans.</p>

<p>Perhaps I'll even make some merch on <a href="http://www.zazzle.com/">Zazzle</a> in the pursue of filthy Mammon.</p>

<p>If I feel the need for non-technical blogination, I'll either update my Facebook profile (which I'm loathe to do) or finally use my LiveJournal account.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Maker Revolution]]></title>
    <link href="https://www.taskboy.com/2009-04-29-Maker_Revolution.html"/>
    <published>2009-04-29T00:00:00Z</published>
    <updated>2009-04-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-04-29-Maker_Revolution.html</id>
    <content type="html"><![CDATA[
<img src="/img/toy_momkey.jpg" title="Robot vs. Cat" class="insert">


<p><br></p>

<p>Last weekend, I dropped in on the <a href="http://willoughbybaltic.com/labs/?p=286">Maker Revolution</a> in Kendall Square, Cambridge, MA.  Readers of magazine <a href="http://www.makezine.com/">Make</a> will know that there is an emerging culture of creative people how are not satisfied with mere software robots but desire physical ones as well.  This exhibition/conference had a mechanical bottle/wind organ and the dude is is <a href="http://orgyofnoise.com/">Orgy of Music, who grafts transducers onto items like tennis rackets and then plays them like a guitar.  It's a sort of atonal jam band thing.  He pushes the signals through various effects processors and amplifiers to achieve a loud effect.</p>

<p><p>The main talk I saw was from <a href="http://twitter.com/bre">Bre</a>, who leads a community of CAD-enabled hackers with access to various automated fabrication tools.  He was promulgating the idea of a an on-demand society in which everyone could create the items they need (like glasses or cultery) as they needed them.  </p>

<p>This techno-political idea struck me as a sort of mutation of the Web 1.0 matra "zero warehousing."  It also struck me as fundamentally unworkable.  The whole point of capitalism is that you can use money to get things so you don't have to make all the stuff you require.  While capitalism has its quirks, it still the best system anyone has come up to distribute human labor and wealth.</p>

<p>Anyway, I enjoyed the show.  I wish I were more crafty.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Simple web spidering trick for wget]]></title>
    <link href="https://www.taskboy.com/2009-04-29-Simple_web_spidering_trick_for_wget.html"/>
    <published>2009-04-29T00:00:00Z</published>
    <updated>2009-04-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-04-29-Simple_web_spidering_trick_for_wget.html</id>
    <content type="html"><![CDATA[<p>If you want to spider a site from a path far down a branch of the document tree, try the following wget invocation:</p>

<p class="code">
wget âmirror ârelative âno-parent [URL]
</p>

<p>This prevents wget from traversing back up the parent and fetching the whole site.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Small Windows programs]]></title>
    <link href="https://www.taskboy.com/2009-04-29-Small_Windows_programs.html"/>
    <published>2009-04-29T00:00:00Z</published>
    <updated>2009-04-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-04-29-Small_Windows_programs.html</id>
    <content type="html"><![CDATA[<p>For complicated reasons, I started playing with <a href="http://flatassembler.net/">Flat Assembler</a> today.  Ripping apart someone else's code, I was able to come up with this gem that creates a dialog box with a dead button.  When compiled, the executable is a mere 2,500 bytes.   I'm not sure I'd want to do an entire app in assembler, but it does seem to cut to the chase of the Windows API very well.</p>

<p></p>

<p class="code">
format PE GUI 4.0
entry codestart

include 'win32a.inc'

  IDD_MAIN             =  100
  ID_START             =  201

section '.data' data readable writeable
  hInstance dd ?

section '.code' code readable executable
  codestart:
    invoke  GetModuleHandle, 0
    mov     [hInstance], eax
    invoke  DialogBoxParam, eax, IDD_MAIN, HWND_DESKTOP, \
            MainDlg, 0
    invoke  ExitProcess, 0

  proc MainDlg hdlg, msg, wparam, lparam
    push    ebx esi edi
    cmp     [msg], WM_INITDIALOG
    je      .wminitdlg
    cmp     [msg], WM_COMMAND
    je      .wmcommand
    cmp     [msg], WM_CLOSE
    je      .wmclose
    xor     eax, eax
    jmp     .finish

    .wminitdlg:
      jmp     .finish

    .wmcommand:
      cmp     [wparam], BN_CLICKED shl 16 + ID_START
      je      .startbutton

    .wmclose:
      invoke  EndDialog, [hdlg], 0

    .startbutton:
      jmp     .finish

    .finish:
      pop     edi esi ebx
      ret
  endp

section '.idata' import data readable writeable

  library kernel, 'KERNEL32.DLL',\
      user,   'USER32.DLL'

  import  kernel,\
      GetModuleHandle,'GetModuleHandleA',\
      ExitProcess,    'ExitProcess'

  import  user,\
      DialogBoxParam, 'DialogBoxParamA',\
      EndDialog,      'EndDialog'

section '.rsrc' resource data readable
  directory RT_DIALOG, dialogs
  resource  dialogs,\
        IDD_MAIN, LANG_ENGLISH + SUBLANG_DEFAULT, \
                main_dialog
  dialog    main_dialog, 'Dialog test', 0, 0, 150, 50, \
                WS_CAPTION + WS_POPUP + WS_SYSMENU +\
                DS_MODALFRAME + DS_CENTER
        dialogitem 'BUTTON', 'Hello', ID_START, \
                50, 15, 50, 20, WS_VISIBLE + WS_TABSTOP
  enddialog
</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Survey of the Virtualization Landscape]]></title>
    <link href="https://www.taskboy.com/2009-04-28-Survey_of_the_Virtualization_Landscape.html"/>
    <published>2009-04-28T00:00:00Z</published>
    <updated>2009-04-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-04-28-Survey_of_the_Virtualization_Landscape.html</id>
    <content type="html"><![CDATA[
<img src="/img/data_center_modern.gif" title="Not your Dad's data center" class="insert">


<p><br></p>

<p>For the last seven years, I have been developing applications for 
Virtual Machines(VM) as a part of the 
<a href="http://www.leostream.com/">Leostream Corporation</a>.  
This market has developed from essentially 
an academic research project to a multi-billion dollar a year ecosystem
with many players.  The technologies involved in virtualization are well 
covered in Wikipedia and elsewhere, but they are summarized here and 
links to more detailed information is provided.  Much of this has been 
discussed in the standard industry media outlets for some time, but 
I'd like to offer my perspective on the industry, its players and where 
things are likely to go.</p>

<p>The Technology</p>

<p>Below, three broad categories of virtualization are discussed that create 
isolated environments on a single, physical system.  The computer system 
that runs this kind of technology has physical hardware and is typically called
a <em>host system</em>.  The isolated environments hosted on such systems are 
called <em>guests</em> and run entirely as software.  Although the term 
<em>virtualization</em> has recently come to mean just paravirtualization, 
the technologies discussed all can be used to varying degrees for the 
applications listed later in this article.</p>

<p></p>

<p>Any hardware can be emulated in software.  <a href="http://en.wikipedia.org/wiki/Emulator">Emulators</a> have been critically important to firmware 
developers who need to design against drivers for hardware that isn't available 
to them.  Developers of console games and mobile phone applications frequently
use emulators to reduce development cycles.</p>

<p>Although emulation allows any machine architecture to be hosted on the 
user's workstation, the emulated guest typically lacks performance.  There is 
a lot of overhead in the application pretending to be a different machine.  
For many data center applications of virtualization, emulated x86 machines do 
not perform well enough.  However, for development purposes, emulation is often 
adequate.</p>

<p>Another common approach to creating an isolated operating system (OS) 
environment is the use of partitioning.  Partitioning takes many forms.  The 
designers of Unix were trying to create a multiuser version of a single 
time-sharing system called <a href="http://en.wikipedia.org/wiki/Unix#History">Multics</a>.  In a standard Unix system, many users may be logged into the 
system, but each has his own directory and process space.  However, users can 
see the files and processes of other users on the systems, which can lead to 
some security concerns.</p>

<p>To improve on the initial security model of Unix, <a href="http://en.wikipedia.org/wiki/Chroot">chroot</a> was 
developed to more fully isolate users more from each.  An extreme extension of 
this idea can be found in <a href="http://en.wikipedia.org/wiki/User-mode_Linux">User-mode Linux</a>, 
in which each user appears to have a dedicated copy of the underlying OS.  In 
UML, an unique instance of the filesystem appears to each 
user.  With <a href="http://en.wikipedia.org/wiki/Virtuozzo#Parallels_Virtuozzo_Containers">Virtuozzo Containers</a> or <a href="http://en.wikipedia.org/wiki/Solaris_Containers">Solaris Containers, Windows or Solaris OSes can be 
partitioned too.</p>

<p>From the hardware/OS point of view, partitioning is very cheap to implement. 
Many "guest" containers can be hosted on even commodity hardware with decent 
performance.  The drawback is that the guests are typically copies of the 
underlying OS.  For instance, a Virtuozzo server running on Windows 2003 can 
only have containers running the same version of Windows 2003 as the host.</p>

<p>For performance and flexibility, <a href="http://en.wikipedia.org/wiki/Paravirtualization">paravirtualization</a> is the current state 
of the art in hosting technology.  This technique uses as much of the 
bare metal components of the host machine do as possible to do work for the 
guests.  Typically, guests see a standard set of virtual hardware, virtual 
storage and BIOS irrespective of the actual hardware of the host.  Virtualized 
guests can run nearly any OS that can run on the host system's architecture.</p>

<p><code>
</code></p>

<p>Paravirtualization is a flexible compromise between emulation, which allows
any OS for any architecture in the guest to run, and containers, that allow 
a very high number of guests that run a version of the host OS.  Early 
paravirtualization software runs mostly as a usermode application hosted in a 
well-known OS like Windows or Linux.  However, <a href="http://en.wikipedia.org/wiki/Hypervisor">hypervisors</a> have
begun to replace these older applications.  Hypervisors are tiny OS kernels 
optimized to run as many VMs as possible.  Hypervisors are controlled either 
through a special console VM or a client application that runs on the 
administrator's workstation.</p>

<p>Business Drivers of Virtualization</p>

<p>To understand the business-case for virtualization technology, a brief 
digression into recent Information Technology (IT) history is productive.</p>

<p>At the end of the twentieth century, many businesses had accumulated a 
not-so-small army of workstations, dedicated servers, minicomputers and 
mainframes.  While there were many business-critical applications that demanded 
the entire computation and I/O horsepower of the machines on which they were 
hosted, there also existed a growing class of under-utilized machines.  
These machines often served lightly-used, but important applications that 
were not easily be migrated to a new hosts or capable of sharing a single host 
with other applications.</p>

<p>The proliferation of these one-off machines burdened IT budgets.  There are 
several costs associated with maintaining a machine in a 
corporate datacenter including the following: power, air conditioning, 
monitoring, hardware replacement and rackspace.  These are recurring costs 
that quickly exceed the original price of the hardware.  Despite this, server 
applications (particularly web servers and databases) continued to be in 
demand throughout most organizations through the late 1990's and 2000's.</p>

<p>The utility of ubiquitous computing in an organization had very measurable 
results in productivity and profit, but the maintenance and security of 
physical machines introduced really concerns for IT and management.  
Fortunately, three events happened that would ameliorate these issues: fast 
processors, fast and ubiquitous networking, and <a href="http://www.vmware.com/">VMware</a>.</p>

<p>VMware has its roots in a research project at Standford.  The idea was to 
bring paravirtualization from the IBM mainframe world into the more limited 
x86 platform.  The i386 could easily emulate 8086 machines in hardware, but 
could not easily handle its own more sophisticated architecture.  VMware 
created a product that could create pentium-class Virtual Machines (VM) on 
pentium hosts, with better performance than emulation.</p>

<p>Moore's law fits with virtualization very well.  By the mid-2000's, 32-bit 
Pentium 4s and similar AMD chips could host, with enough RAM, 4-10 VMs.  64-bit
CPUs with multiple cores and hardware support for virtualization improved the 
host's ability to run dozens of guests.</p>

<p>The Applications of Virtualization</p>

<p>There are three general uses of virtualization technology that achieve
real business goals today: server consolidation, development and hosted 
desktops.  While any of the virtualization methods previously outlined will
work for these applications, some technologies marry better to some 
purposes than others.  Let's first discuss these applications and the business 
drivers behind them.</p>

<p><em>Server consolidation</em> is the process of replacing dedicated physical machines
with guests running on a few well-provisioned hosts.  This is often what brings
virtualization into IT departments.  By consolidating hardware, maintenance and 
power savings become immediately clear.  Sometimes, end-users see the benefits 
of consolidation when their application moves from a older host to a VM running
on much newer and faster hardware.</p>

<p>Consolidation is most often done with paravirtualization, which often requires very 
little adjustment of the target legacy application.  The process of 
migrating a physical host to a virtual machine can be done either manually 
through backups or automated with P-to-V software, like the kind Leostream used 
to sell.  These days, there are a number of commodity tools available to 
handle P2V conversions.</p>

<p><em>Application development and quality assurance</em> befits incredibly 
from any kind of virtualization technology.  Developers and QA engineers often 
need access to a number of machines with specific OS versions and patch levels.
Because this use-case generates a lot of sparsely used machines quickly, the 
need for managing libraries of guests across across dozens of hosts lead 
Leostream to develop the Virtual Machine Controller in 2003.</p>

<p>This group of users tends to be inside the corporate LAN using high-speed network 
connections to get console access to their VMs.  This profile is very different from 
the folks in the next group.</p>

<p></p>

<p><em>Hosted desktops</em> are an attempt by organizations to replace standard 
workstations with thin client terminals or terminal emulators.  By keeping 
desktops in the data centers, sensitive information stays within the corporate 
firewall and support costs for workstations reduces significantly.  Users 
benefit also by not being tied to one workstation and can get to their virtual
desktops using some remote protocol like RDP, VNC or ICA.</p>

<p></p>

<p>While remote access to machines isn't that revolutionary for most IT workers, 
there are many challenges to moving the general population to remote desktops.  The 
most pressing is in matching up users with target desktops.  While a 1-1 mapping 
of users to machines isn't too hard to manage, VMs offer much richer schemes with complex
policies.  As the task of managing users and machine increases, the need for special 
<a href="http://www.leostream.com/products/connection_broker.php">connection broker</a> 
software becomes critical.</p>

<p>The basic components of a host desktop deployment are a client, some kind of broker 
and a target desktops.  This simple picture hides a wealth of complexity found in large
deployments, in which SSLVPNs, corporate network policies, staffing policies, and departmental
hardware and software requirements often create a tangled skein indeed.</p>

<p>Because VMs are often used as the target desktops, VMware created the term Virtual Desktop 
Initiative (VDI) to describe all the pieces involved in a hosted desktop deployment.  However, 
many companies are using a hybrid approach to hosting desktops that uses physical machines, 
VMs and Citrix.</p>

<p></p>

<p>Many companies are currently pursuing the hosted desktop market, which some
analysts have predicted will be far larger than the server consolidation 
market.  If most large companies decide to replace their employee's workstations
with thin clients, the market will be very large.</p>

<p>The Virtualization Layer Players</p>

<p>Below are the four most interesting players offering virtualization layers.  This, of course,
is an arbitrary list, but a useful one for someone new to the field.  There are many, many 
more players in the virtualization space that offer more specialized offerings.</p>

<p>It would be hard not to mention <a href="http://www.vmware.com/">VMware</a> first in 
any discussion of virtualization.  Although they did not invent the idea (IBM did), they 
have been the leader in x86 virtualization since 1998.  VMware now offers a number of free 
to use virtualization products including VMware server and ESX 3i, but of which I use at home.</p>

<p>In 2003, <a href="http://www.microsoft.com/">Microsoft bought Connectix, makers of 
Virtual PC and entered the virtualization market.  After some early missteps with Virtual Server, 
Microsoft has bundled Windows 2008 and Windows 7 with a hypervisor that should offer VMware 
some competition at the commodity end of the market.  It is my impression that Microsoft doesn't 
quite know what they expect this technology to do for them.  It's not a simple mass-market product 
like MS Office.  Right now, virtualization is an enterprise IT thing.  Perhaps Microsoft is 
setting the stage for ubiquitous client-side hypervisors, but it's not clear to me how that 
will benefit them.  <a href="http://www.virtualcomputer.com/">Virtual Computer</a>, on the other 
hand, should do quite well in this kind of world.</p>

<p>In 2007, <a href="http://www.citrix.com/">Citrix</a>, who brought remote desktops to 
Windows in the 1990's, bought XenSource, the commercial arm of the Open Source Xen virtualization
layer.  Xen has been bundled into XenApp, which used to be called Presentation Server.  Citrix 
appears to be using Xen to capture the server consolidation market, but is hedging its bets in 
hosted desktops with Xen.  Perhaps 2010 will be a crossover year for them.</p>

<p><a href="http://www.parallels.com/">Parallels</a> is a youngish company that offers a compelling
combination of paravirtualization and containers (through their merger with SWSoft).  Unfortunately,
I don't believe their marketing is cutting through the noise of the bigger elephants in the virtual
room.  However, they continue to do descent business.  Parallel Containers (nee Virtuozzo) is very 
popular with ISPs who need to cut costs at every opportunity.</p>

<p>There is another group of virtualization vendors that deserve mention.  This group includes 
some well-known names as well as some that you may not have heard of.  In your own projects, you
may find the wares offered by these companies to be very compelling.</p>

<p><a href="http://www.ibm.com/">IBM</a> is the original inventor and patent holder of 
virtualization on their mainframe equipment.  The offer a broad spectrum of products and services
around virtualization, including the HC12 teradici-enabled blades that offer the very high 
performance PC-over-IP remote access protocol.  If I could afford it, I would buy four of 
these blades and client pucks for my home.</p>

<p><a href="http://www.sun.com/">Sun</a> (or is it <a href="http://www.oracle.com/">Oracle 
now?) offers the entire VDI stack, just not as a boxed product.  Desktops can be hosted on 
Sun SANs served through Solaris Containers or VirtualBox, brokered through their
connection broker and accessed using Sun Ray thin clients.  Since I worked a lot with the 
Sun Ray thin clients, I'm a little biased towards them.  Their APL protocol optimizes the desktop 
session over high-latency networks.  If your users are primarily outside the corporate LAN, this 
is pretty much the only thin client to use.</p>

<p><a href="http://www.virtualiron.com/">VirtualIron</a> offers an optimized Xen hypervisor with a
proprietary Java management interface.  They have succeeded in targeting the server consolidation 
market.  Their product is a snap to install and scales well horizontally.</p>

<p>Virtualization has been a core part of Linux for a while now.  Red Hat and Suse both ship with 
the <a href="http://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine">Xen/KVM/QEMU</a> virtualization suite and tools to easily create Windows VMs on host machines with 
VT-enabled, 64-bit processors.  I have been disappointed that neither company has gone after the 
hosted desktop market with the zeal I'd expect.  But it is still early in that market.</p>

<p><p><a href="http://www.virtualcomputer.com/">VirtualComputer</a> is leading the charge in 
client-side hypervisors.  This idea is a bit like VMware's ACE in that the user has a VM on his 
laptop that can be management by corporate IT.  The critical difference is that the laptop is 
running a hypervisor and the user is experiencing the VM as if it were the console.  Potentially, 
you could swap between several VM images.  The advantage of this abstraction is that the corporate
image can be locked down tightly while allowing a more open OS image to be used at the discretion
of the end user.</p>

<p>The Future</p>

<p>The immediate future of virtualization is clear: it will become completely ubiquitous.  End 
users will become comfortable connect to remote machines and the methods to make those connections
will become faster and more transparent.  Service providers like Comcast and Verizon will rent 
VMs to their Internet or cable TV customers, who will use their digital receiver as a thin client.
The technology to do this exists today.</p>

<p>Another fallout of pervasive VMs will be the rise of virtual appliances.  Already, there is a 
small cadre of networking applications out there.  I see virtual appliances becoming the dominant 
paradigm for shipping certain kinds of applications.  Think of this is a kind of Software as a 
Service to-go.  I have first hand experience developing for virtual appliances and the benefits to 
the publisher are many.  What's lacking are installation tools that making virtual appliances 
install like traditional ones.  But I'm sure someone is tackling that problem now.</p>

<p>Virtualization provokes a disturbing question for OS vendors: who controls the hardware?  
Traditionally, the OS made the hardware accessible to applications.  Hypervisors force the OS to 
a higher level in the application stack.  Will hypervisors soon appear only in BIOS or hardware? 
If so, what does that mean for OS vendors?  Nothing good.</p>

<p></p>

<p>Makers of peripheral hardware may also lament the rise of VMs.  You cannot install a new 
video card in a virtual machine, for instance.  I suppose there may arise an open standard 
that allows VMs to more fully access physical hardware, but none now exists.</p>

<p>Software vendors are the clear benefactors of virtualization.  There's a whole new class of 
problems to solve.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[New Taskboy look]]></title>
    <link href="https://www.taskboy.com/2009-04-26-New_Taskboy_look.html"/>
    <published>2009-04-26T00:00:00Z</published>
    <updated>2009-04-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-04-26-New_Taskboy_look.html</id>
    <content type="html"><![CDATA[<p>Finally getting around to implementing the new taskboy them that Robert Oliver designed for me.  There's a lot of breakage right now, but I will be fixing broken items in priority order.  Your patience is appreciated.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Lost email]]></title>
    <link href="https://www.taskboy.com/2009-04-15-Lost_email.html"/>
    <published>2009-04-15T00:00:00Z</published>
    <updated>2009-04-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-04-15-Lost_email.html</id>
    <content type="html"><![CDATA[<p>It seems my spam filter has been very aggressive lately.  If I haven't responded to your email, I probably only just fished it out of the trash.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Home Improvement]]></title>
    <link href="https://www.taskboy.com/2009-03-23-Home_Improvement.html"/>
    <published>2009-03-23T00:00:00Z</published>
    <updated>2009-03-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-03-23-Home_Improvement.html</id>
    <content type="html"><![CDATA[<p><p>Sally and I are revitalizing a 10x24 slab room with half bath this week.  We'll be installing an Ikea Tundra floating floor. 
<p>So if you see an police blotters out of Chelmsford, you'll have the inside scope.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[New directions]]></title>
    <link href="https://www.taskboy.com/2009-03-20-New_directions.html"/>
    <published>2009-03-20T00:00:00Z</published>
    <updated>2009-03-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-03-20-New_directions.html</id>
    <content type="html"><![CDATA[<p><p>As of last week, I have become an independent software consultant again.  As part of this transition, I'll be redesigning this here web site and moving content around a bit.  I also will be putting ads on this site and taking the content in a more technical, professional direction.
<p>Some may question the taskboy.com domain for this purpose, but actually I obtained this domain specifically for a business idea.
<p>The content I have in mind will move beyond just Perl.  Some of it, while useful, will probably be quite boring to my non-industry friends.  I suppose Facebook as a purpose after all.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Shoe-raping turtle]]></title>
    <link href="https://www.taskboy.com/2009-03-10-Shoe-raping_turtle.html"/>
    <published>2009-03-10T00:00:00Z</published>
    <updated>2009-03-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-03-10-Shoe-raping_turtle.html</id>
    <content type="html"><![CDATA[

<p>Apparently, monkeys are not the only animals in rebellion.  Keep your shoe laces tied and watch the marshes and swamps closely.</p>

<p>In the turtle's defense, that shoe was totally asking for it.</p>

<p>Is this all part of Global Warming?</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Damn, dirty apes – part deux]]></title>
    <link href="https://www.taskboy.com/2009-03-09-Damn,_dirty_apes_--_part_deux.html"/>
    <published>2009-03-09T00:00:00Z</published>
    <updated>2009-03-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-03-09-Damn,_dirty_apes_--_part_deux.html</id>
    <content type="html"><![CDATA[
<img src="/img/chimp_profile.jpg" title="You've messed with the wrong primate, buddy!" class="insert">


<p>As readers of this blog know, I've long warned of the dangers of keeping monkeys near urban centers.  Now, <a href="http://news.bbc.co.uk/2/hi/science/nature/7928996.stm">another tragedy</a> underscores the urgency of the danger:</p>

<blockquote>
A male chimpanzee in a Swedish zoo planned hundreds of stone-throwing attacks on zoo visitors, according to researchers.<br>
<br>
Keepers at Furuvik Zoo found that the chimp collected and stored stones that he would later use as missiles. 
</blockquote>

<p>How many more years does humanity have until the dreaded Chimp Infitada?</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Damn, dirty apes!]]></title>
    <link href="https://www.taskboy.com/2009-02-20-Damn,_dirty_apes_.html"/>
    <published>2009-02-20T00:00:00Z</published>
    <updated>2009-02-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-02-20-Damn,_dirty_apes_.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://www.washingtonpost.com/wp-dyn/content/article/2009/02/19/AR2009021903331.html">WaPo reports:</a></p>

<blockquote>
The 200-pound chimp who was fatally shot this week after a vicious attack on his owner's friend also bit a woman in 1996, the woman said in an interview broadcast Thursday.<br>
â¦<br>
<br>
Travis's owner, Sandra Herold, who raised the chimpanzee from its infancy, has said he was a loving pet whose behavior Monday was out of character. She said the chimp combed her hair each night and slept in her bed.

</blockquote>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The Century Gambit]]></title>
    <link href="https://www.taskboy.com/2009-02-18-The_Century_Gambit.html"/>
    <published>2009-02-18T00:00:00Z</published>
    <updated>2009-02-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-02-18-The_Century_Gambit.html</id>
    <content type="html"><![CDATA[<p><p>Alan Greenspun, you old salt!  What's on <a href="http://www.ft.com/cms/s/0/e310cbf6-fd4e-11dd-a103-000077b07658.html?nclick_check=1">your mind today</a>?:</p>

<blockquote>
"It may be necessary to temporarily nationalise some banks in order to facilitate a swift and orderly restructuring," he said. "I understand that once in a hundred years this is what you do."
</blockquote>

<p><p>Oh my!  Been hitting the sauce again, have we?</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The RPM Challenge starts Monday]]></title>
    <link href="https://www.taskboy.com/2009-01-29-The_RPM_Challenge_starts_Monday.html"/>
    <published>2009-01-29T00:00:00Z</published>
    <updated>2009-01-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-01-29-The_RPM_Challenge_starts_Monday.html</id>
    <content type="html"><![CDATA[
<img title="Let's get ready to rock" src="/img/pia_zadora.gif" class="insert">


<p><p>This year, I will attempt the <a href="http://www.rpmchallenge.com/content/view/844/1/">RPM Challenge</a>.  I will deliver 35 minutes of new material to RPM HQ by March 1 (which is a Sunday).</p>

<p><p>I have been batting a few ideas around lately and would like to explore composition from a different angle this time around.</p>

<p><p>Wish me luck.</p>

<p><p>UPDATE: Feb. 14. Due to illness, I don't think I'm going to be able to finish 35 minutes of music this month/year.  Bummer. </p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Goodbye, W.]]></title>
    <link href="https://www.taskboy.com/2009-01-20-Goodbye,_W.html"/>
    <published>2009-01-20T00:00:00Z</published>
    <updated>2009-01-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-01-20-Goodbye,_W.html</id>
    <content type="html"><![CDATA[
<img src="/img/mission_accomplished.jpg" class="insert">


<p><p>Goodbye, George.
<p>You were our least legitimate, most willfully ignorant, most damaging president this country has had in the past century â quite an accomplishment.
<p>You traded our liberties for security, our wealth for poverty, our International friends for foreign dictators. You broke the government agencies that  <a href="http://www.fema.gov/">worked</a> and created new ones that <a href="http://www.dhs.gov/index.shtm">didn't</a>.
<a href="http://www.outsidethebeltway.com/archives/bush_awards_freedom_medal_to_tenet_franks_and_bremer/">Time</a> and <a href="http://www.commondreams.org/headlines05/1230-01.htm">again</a>, you rewarded failure and punished competence</a>.  You called your foreign policies "wars".  Distrusting America justice, you built a dungeon in Cuba and authorized torture.  You were overshadowed by your own <a href="http://en.wikipedia.org/wiki/Richard_Cheney">Vice President</a>, a grimacing, hateful psychopath your own party didn't like very much.
<p>It's not all your fault.  <a href="http://www.washingtonpost.com/wp-dyn/content/article/2006/04/04/AR2006040400513.html">House Republicans</a> took full advantage of your flaming ineptitude to further their own agendas.  Luckily, <a href="http://clinton.senate.gov/news/statements/details.cfm?id=240603">your opposition</a> was mostly supine during your tenure.  But no one wanted to rescue you from you.
<p>So, this day has been a <a href="http://en.wikipedia.org/wiki/Bush_v._Gore">long</a>, <a href="http://www.msnbc.msn.com/id/4448630/">long</a> time in coming. You're probably not a bad man, W.  You were just not very good at your job.  You were a disappointment to your supporters and a monster to your opponents. 
<p>Now please, get the hell off the <a href="http://en.wikipedia.org/wiki/People%27s_House">People's lawn</a>.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[RIP: Khan and Number 6]]></title>
    <link href="https://www.taskboy.com/2009-01-15-RIP__Khan_and_Number_6.html"/>
    <published>2009-01-15T00:00:00Z</published>
    <updated>2009-01-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-01-15-RIP__Khan_and_Number_6.html</id>
    <content type="html"><![CDATA[
<img src="/img/PatrickMcGoohan.jpg" class="insert">
<img src="/img/RicardoMontalban.jpg" class="insert">


<p><p><a href="http://en.wikipedia.org/wiki/Patrick_McGoohan">Patrick McGoohan</a> and <a href="http://en.wikipedia.org/wiki/Ricardo_Montalban">Ricardo Montalban died this week.  Both had cool last names.  Both were dramatic forces to be reckoned with and both will be missed.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[WoWow]]></title>
    <link href="https://www.taskboy.com/2009-01-06-WoWow.html"/>
    <published>2009-01-06T00:00:00Z</published>
    <updated>2009-01-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-01-06-WoWow.html</id>
    <content type="html"><![CDATA[
<br><a href="http://www.theonion.com/content/video/warcraft_sequel_lets_gamers_play?utm_source=embedded_video">'Warcraft' Sequel Lets Gamers Play A Character Playing 'Warcraft'</a>


<p><p>Because it's fun to play a character who's playing a character in a fantastical world of magic.  I've got an advanced copy of the game and already have a level 9 Creepy Introvert!
His Power Sulking skill is unstoppable.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Markdown for taskboy?]]></title>
    <link href="https://www.taskboy.com/2009-01-04-Markdown_for_taskboy_.html"/>
    <published>2009-01-04T00:00:00Z</published>
    <updated>2009-01-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-01-04-Markdown_for_taskboy_.html</id>
    <content type="html"><![CDATA[<p><p>Loyal Taskboy Readers, </p>

<p><p><a href="http://daringfireball.net/projects/markdown/">Markdown</a> is an open source text filter written in God's Own Perl.  Even though the taskboy blog is written in PHP, I can shoehorn this fitler into the comment system to allow greater markup.  I may write a primate forum for taskboy built on the comment system.  <a href="http://stackoverflow.com">Stack Overflow</a> uses this system, which is what brought it to my attention.</p>

<p><p>I ask you, readers, is it desirable that I add the Markup filter to comments?  </p>

<p><p>UPDATE: Thanks to the Internet's feature of <em>building applications before I need them</em>, I have just run across <a href="http://michelf.com/projects/php-markdown/">Markup for PHP</a>.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[email to SMS bridge]]></title>
    <link href="https://www.taskboy.com/2009-01-02-email_to_SMS_bridge.html"/>
    <published>2009-01-02T00:00:00Z</published>
    <updated>2009-01-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-01-02-email_to_SMS_bridge.html</id>
    <content type="html"><![CDATA[<p><p>Just a reminder from <a href="http://www.tech-recipes.com/rx/939/sms_email_cingular_nextel_sprint_tmobile_verizon_virgin/">Tech Recipes</a>:</p>

<ul>
<li>T-Mobile: phonenumber@tmomail.net
<li>Virgin Mobile: [phonenumber]@vmobl.com
<li>Cingular: [phonenumber]@cingularme.com
<li>Sprint: [phonenumber]@messaging.sprintpcs.com
<li>Verizon: [phonenumber]@vtext.com
<li>Nextel: [phonenumber]@messaging.nextel.com
</ul>

<p><p>Where, oddly enough, [phonenumber] is the 10-digit phone number.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[new game: Last Defense]]></title>
    <link href="https://www.taskboy.com/2009-01-02-new_game__Last_Defense.html"/>
    <published>2009-01-02T00:00:00Z</published>
    <updated>2009-01-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-01-02-new_game__Last_Defense.html</id>
    <content type="html"><![CDATA[
<img src="/img/lastdefense.png" class="insert">


<p><p><a href="/projects/LastDefenseSetup.exe">Last Defense is a game that should be familiar to most of you.  While playable, the game is about 80% done.  It plays fine on my macbook (60 fps), but simply crawls on my windows box (14 fps).  I'm not sure that the problem is.  Use at your own risk.
<p>I developed a framework around pygame to "rapidly" develop this game.  While I didn't spend a lot of time fooling with pygame, I did spend a ridiculous effort on the basic game logic.  It's amazing how complicated space invaders really is.
<p>Graphics continue to elude me, so I borrow those from existing free projects.  I have found a pretty decent pixel editor called Pixen for Mac OS X.  Of course, that program does not magically imbue me with graphic talent.
<p>The framework needs, er, work.  It doesn't not help me manage different game "scenes," which is the metaphor I use to describe the various game screens.  In the case of this game, I'd say there are perhaps 2 scenes.
<p>Sigh.  Programming is <em>hard</em>!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Booting Ubuntu on the XO]]></title>
    <link href="https://www.taskboy.com/2009-01-01-Booting_Ubuntu_on_the_XO.html"/>
    <published>2009-01-01T00:00:00Z</published>
    <updated>2009-01-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2009-01-01-Booting_Ubuntu_on_the_XO.html</id>
    <content type="html"><![CDATA[
<img src="/img/xo_ubuntu.jpg" class="insert">


<p><p>Behold: <a href="http://wiki.laptop.org/go/Ubuntu_On_OLPC_XO">Ubuntu Linux on the XO laptop</a>!  </p>

<p>Since I already had an 8GB SD disk for my XO, I had the storage capacity to handle the new distro.  I did need to apply for a developer key, which is needed to unlock the openfirmware "BIOS" system build into the XO.  For reasons that aren't clear, it took 24 hours to generate the key.</p>

<p><p>While I appreciate the accomplishment of the default Sugar interface (I've got the latest 707 build running), I find that it gets in my way more than not.  And it seems a little too pokey. <br>
<p>Ubuntu has a build just for the XO that uses the lightweight XFCE shell and comes with Firefox.  Aside from that, there's not much in the way of apps for this system.  For instance, no Flash support for Firefox.  Also, I'm sad that I lost the camera functionality.  And pygame isn't installed.  All of these things are correctable, of course.  The XO makes a pretty servicable <a href="http://en.wikipedia.org/wiki/Netbook">netbook</a>. </p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Imagineering an atomic strike]]></title>
    <link href="https://www.taskboy.com/2008-12-29-Imagineering_an_atomic_strike.html"/>
    <published>2008-12-29T00:00:00Z</published>
    <updated>2008-12-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-12-29-Imagineering_an_atomic_strike.html</id>
    <content type="html"><![CDATA[
<img src="/img/nuked_boston.png" class="insert">


<p><p><a href="http://www.carloslabs.com/node/16">Ground Zero</a> allows users to see the blast radii of various historic atomic weapons on the city of their choice.  It's a mash-up with google maps. 
<p>This is what Web 2.0 is about!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Davos Man Departs]]></title>
    <link href="https://www.taskboy.com/2008-12-28-Davos_Man_Departs.html"/>
    <published>2008-12-28T00:00:00Z</published>
    <updated>2008-12-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-12-28-Davos_Man_Departs.html</id>
    <content type="html"><![CDATA[<p><p>Sam Huntington, political scientist and Harvard professor, died today.  Although gaining wide recognition for his ideas about the necessity of civil leadership oversight of strategic military decisions, his more lasting contribution to modern and future political discourse may well be in his concept of the <a href="http://en.wikipedia.org/wiki/Samuel_P._Huntington">Davos Man.</p>

<blockquote>
â¦global elites who "have little need for national loyalty, view national boundaries as obstacles that thankfully are vanishing, and see national governments as residues from the past whose only useful function is to facilitate the elite's global operations"
</blockquote>

<p><p>These Davos men are the forces driving world politics and wars.  It's good to have a name for them.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Are you glad I got a web cam?]]></title>
    <link href="https://www.taskboy.com/2008-12-25-Are_you_glad_I_got_a_web_cam_.html"/>
    <published>2008-12-25T00:00:00Z</published>
    <updated>2008-12-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-12-25-Are_you_glad_I_got_a_web_cam_.html</id>
    <content type="html"><![CDATA[
<img src="/img/creepy_old_man.jpg" class="insert">


<p>Now you can see more unsettling pictures of me than ever before!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[More Taskboy repairs]]></title>
    <link href="https://www.taskboy.com/2008-12-24-More_Taskboy_repairs.html"/>
    <published>2008-12-24T00:00:00Z</published>
    <updated>2008-12-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-12-24-More_Taskboy_repairs.html</id>
    <content type="html"><![CDATA[The following Taskboy features have been re-enabled:<br>

<ul>
  <li><a href="/projects/DnD_character_generator/">D&amp;D Character generator</a>
  <li><a href="/projects/lotgd/">Legend of the Green Dragon</a>
  <li><a href="/projects/ss3/">State Secrets</a>
  <li><a href="/feeds/">The Feed Bag</a>
</ul>

<p><p>It's my Christmas gift to the world.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[2008: The Year in Death]]></title>
    <link href="https://www.taskboy.com/2008-12-23-2008__The_Year_in_Death.html"/>
    <published>2008-12-23T00:00:00Z</published>
    <updated>2008-12-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-12-23-2008__The_Year_in_Death.html</id>
    <content type="html"><![CDATA[
<img src="/img/grim_reaper.gif" class="insert" title="Patience.  Your turn's coming">


<p><p>Normally, I don't dwell too much in the past, but there were a few notable celebrities passing this year that mark personal milestones for me.  This list is in no particular order:</p>

<p><p><a href="http://www.imdb.com/name/nm0578510/">Allan Melvin</a>: Sam the Butcher is as good a representative as any for blue collar labor. </p>

<p><p><a href="http://en.wikipedia.org/wiki/Issac_Hayes">Issac Hayes</a>: Doctor Soul, Hayes was responsible for a good bit of the musical background of my childhood.</p>

<p><p>W. Mark Felt: Deep Throat ignited the Watergate scandal that would lead to the kind of paranoia that birthed PseudoCertainty</a>. </p>

<p><p><a href="http://en.wikipedia.org/wiki/Betty_Page">Betty Page</a>: Really, is there any need to dig deeply into this one?</p>

<p><p><a href="http://www.imdb.com/name/nm0070801/">Paul Benedict</a>:
As the deranged number painter on Sesame Street, Benedict helped infect me with dada-ism.</p>

<p><p>Paul Newman: Food magnate and actor, Newmie's Own Lemonade is a winner in my house.</p>

<p><p>Jerry Reed: As a child, I seemed not be able to swing a dead cat without hitting a TV with Reed on it.</p>

<p><p>Don LaFontaine: LaFontaine is the voice of movie trailers.  What will Hollywood do without him?</p>

<p><p>Estelle Getty: ESTELL GETTY WAS STILL ALIVE THIS YEAR?!</p>

<p><p><a href="http://en.wikipedia.org/wiki/Tony_snow">Tony Snow</a>: The Mouth of Sauron and oddly good blues harmonica player</p>

<p><p>Jesse Helms: Racist, Luddite and general cretin, Helms on his death bed, mostly likely dissolved into a cloud of acrid smoke leaving a greasy residue on the sheets.  I believe that's the typical way an incubus leaves this plane of existence.</p>

<p><p><a href="http://en.wikipedia.org/wiki/Kermit_Love">Kermit Love</a>:
He made the Big Bird costume.  Can you get more iconic than that?</p>

<p><p><a href="http://www.georgecarlin.com/">George Carlin</a>: I'm only now understanding the jokes he told in the 70s.  Next up: Bill Hicks.  Then I'll be all caught up.</p>

<p><p>Jim McKay: The Wide World of Sports announcer was a fairly constant voice of my youth.  This is the only person on my list even vaguely associated with sports.</p>

<p><p>Tim Russert: One classy newscaster.  While still guilty of giving into popular consensus, he at least made a good show of pressing fat, self-satisfied politicians.</p>

<p><p>Charlton Heston: As influential to me for his acting as for his crazy defense of gun ownership.  Soylent Green, indeed!</p>

<p><p>Arthur C. Clarke: A consummate nerd who made it big.  The movie 2001 is still impressive thirty years later.</p>

<p><p><a href="http://en.wikipedia.org/wiki/Gary_Gygax">Gary E. Gygax</a>:
After achieving 36th level in all available professions, Gygax's petition for apotheosis was granted.</p>

<p><p>William F. Buckley: While I didn't agree with his politics, I did feel he came by his beliefs honestly.  A conservative who could change his mind â go figure.</p>

<p><p>Roy Scheider: He will always be my idea of an action hero.</p>

<p><p>Maharishi Mahesh Yogi: As a student of transcendental meditation, I certainly owe this dude some thanks.  But his creepy beard gives me the jibblies.</p>

<p><p><a href="http://en.wikipedia.org/wiki/Barry_Morse">Barry Morse: While I never understood the premise of <em>Space: 1999</em>, Moorse did a fine Spock-clone impersonation.</p>

<p><p>Heath Ledger: Best Joker Ever.</p>

<p><p>Suzanne Pleshette: Through <em>The Bob Newhart Show</em>, Pleshette introduced the meaning of the manifestly important term "MILF" to me.</p>

<p><p>Bobby Fischer: Chess guru and crazy racist, Fisher didn't record ENOUGH madness to last me the rest of my lifetime.  Boo!</p>

<p><p>Sir Edmund Hillary: EDMUND HILLARY WAS STILL ALIVE THIS YEAR?!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Blasterama]]></title>
    <link href="https://www.taskboy.com/2008-12-21-Blasterama.html"/>
    <published>2008-12-21T00:00:00Z</published>
    <updated>2008-12-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-12-21-Blasterama.html</id>
    <content type="html"><![CDATA[
<img src="/img/blasterama-ss.gif" title="Includes ALL 256 colors!" class="insert">


<p><p><a href="http://www.pygame.org/project/921/">Blasterama</a> was written by R. S. Brook as an example of python game programming for his sons.</p>

<p><p>This straight-forward arcade game reminded me a lot of the atari games I played growing up.  Since I had access to the source code, I hacked in joystick support.  Pygame does a great job at reducing the complexity of joysticks, so this was easy.  Next I started cleaning up the code to make it easier to add the following features to the game:</p>

<ul>
  <li>a lives system
  <li>scoring
  <li>background music 
  <li>a wave-level system
  <li>ship defense shields
  <li>scrolling starfield background
  <li>game restart
  <li>different sized aliens
  <li>windows setup installer
  <li>a backstory for the game :-D
</ul>

<p><p>So download the <a href="/projects/blasteramaSetup.exe">Windows package</a> now or grab the <a href="projects/blasterama-src.zip">source code</a>.  It's good for a laugh!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[That is not dead which can eternal lie]]></title>
    <link href="https://www.taskboy.com/2008-12-20-That_is_not_dead_which_can_eternal_lie.html"/>
    <published>2008-12-20T00:00:00Z</published>
    <updated>2008-12-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-12-20-That_is_not_dead_which_can_eternal_lie.html</id>
    <content type="html"><![CDATA[
<img src="/img/frog_mummy.gif" class="insert">


<p><p>It's winter in the Northeast and yesterday was a snow day in which eight inches of snow accumulated on the ground.
<p>I took the opportunity to re-organize my basement, which had an ad-hoc order created by the movers six months ago.  It turns out, there's a lot more room down there than I previously thought. 
<p>What's not down there now are frog mummies.  The reason there aren't any is because I removed the final one last night and thoughtfully took a picture of it for you, my loyal and lucky readers.
<p>Don't call it a comeback.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The Ice Storm Cometh]]></title>
    <link href="https://www.taskboy.com/2008-12-14-The_Ice_Storm_Cometh.html"/>
    <published>2008-12-14T00:00:00Z</published>
    <updated>2008-12-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-12-14-The_Ice_Storm_Cometh.html</id>
    <content type="html"><![CDATA[<p><p>In what will always be called by me "my birthday storm," many trees and power lines where destroyed in the historic ice storm that clobbered the Northeast last Thursday night.  I have been in blizzards, high winds, driving rain even hurricanes, but I don't think I've ever been so frighten about getting smacked by natural chaos as much as I was during this ice storm.
<p>"Ice storm" seems like a pretty week descriptor for this kind of phenomenon.  How about "Mr. Frosty's Revenge?"
<p>Here are a series of photos from my mobile phone of the carnage.  It's pretty hard to get the scope of the problem from these.  This weekend, Chelmsford looks like war zone.</p>


<img src="/img/ice_storm08_line_down.jpg" class="insert">



<img src="/img/ice_storm08_hedge.jpg" class="insert">



<img src="/img/ice_storm08_light.jpg" class="insert">



<img src="/img/ice_storm08_branch.jpg" class="insert">



<img src="/img/ice_storm08_oak.jpg" class="insert">



<img src="/img/ice_storm08_trunk.jpg" class="insert">


<p><p>Update: Power has been restored and I am once again safely ensconced at home.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[37: The Year We Made Contact]]></title>
    <link href="https://www.taskboy.com/2008-12-12-37__The_Year_We_Made_Contact.html"/>
    <published>2008-12-12T00:00:00Z</published>
    <updated>2008-12-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-12-12-37__The_Year_We_Made_Contact.html</id>
    <content type="html"><![CDATA[
<img src="/img/jjohn_beach.jpg" class="insert" title="Nice hat, old man">


<p><p>Birthday number 37 is nearly over for me.  It's been a hell of a year and much better than last year.  Mother Nature gifted me (and most of northern NE) with a historic ice storm that knocked out power to my home.  I was kept awake last night by the insanely frequent sounds of branches failing under the weight of 1" of ice.  Doesn't sound like much, but it was enough to snap mighty limbs of the mature oaks in my yard.
<p>I'm a lucky guy.  I've got a great wife, a wonderful home and even a job that pays me.  What more could I ask for (<em>cough</em> Amazon gift certificates <em>cough</em>)?</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Taskboy move in progress]]></title>
    <link href="https://www.taskboy.com/2008-11-19-Taskboy_move_in_progress.html"/>
    <published>2008-11-19T00:00:00Z</published>
    <updated>2008-11-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-11-19-Taskboy_move_in_progress.html</id>
    <content type="html"><![CDATA[<p><p>I'm moving taskboy to a new server.  Everything will be broken for a while, especially taskboy.com mail.</p>

<p><p>I'll get it fixed eventually.  I hope.</p>

<p><p>UPDATE: Mail is working (it appears).  RSS feed generation is not.  Probably The Feed Bag isn't either.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[You will pay for your lack of vision]]></title>
    <link href="https://www.taskboy.com/2008-11-07-You_will_pay_for_your_lack_of_vision.html"/>
    <published>2008-11-07T00:00:00Z</published>
    <updated>2008-11-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-11-07-You_will_pay_for_your_lack_of_vision.html</id>
    <content type="html"><![CDATA[<p>See more <a href="http://www.funnyordie.com/">funny videos</a> at Funny or Die</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Obama wins!]]></title>
    <link href="https://www.taskboy.com/2008-11-04-Obama_wins_.html"/>
    <published>2008-11-04T00:00:00Z</published>
    <updated>2008-11-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-11-04-Obama_wins_.html</id>
    <content type="html"><![CDATA[
<img src="/img/obey-obama.gif" class="insert">


<p><p>I've never been so happy <a href="index.php?bid=1075">to be wrong</a>.</p>

<p><p>McCain's concession speech was perhaps his finest hour.  He showed the kind of real decency and true patriotism that have been sorely absent from the G.O.P. since 1994.  Perhaps McCain's best service to the country is in the Senate.  I admire him for calling Bush on the insanity of legalized torture, even during a time of crisis.  It's easy to vomit forth a catalog of "values" when there's no danger.  It's those who hold to their principals when their bacon is on the line that I listen to.    </p>

<p><p>The Dems have taken the Senate and may yet control the House.  This is a notice that even a blind elephant can see: the days of the neocon are over.  Move to the center; ditch the lunatic evangelics; purge your party of corporate whores; accept the multicultural nature of today's America and figure out how to become respected citizens of the world.  These core values are what brought the US through WWII and the fifties.  It will work again.</p>

<p><p>I wasn't alive during the time of JFK, but I believe Obama's got a similar charisma and intelligence.  I fully expect him to stumble through the first year of his presidency.  It's damned tough job.</p>

<p><p>Finally, don't expect Obama to deliver on the specifics of his campaign promises.  He can't.  We're looking at tax hikes and cuts in services to pay for many years of bipartisan myopia and grift.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Playing Fallout3]]></title>
    <link href="https://www.taskboy.com/2008-11-04-Playing_Fallout3.html"/>
    <published>2008-11-04T00:00:00Z</published>
    <updated>2008-11-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-11-04-Playing_Fallout3.html</id>
    <content type="html"><![CDATA[<p>I'll be busy for the next two weeks.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Happy Anniversary, Sally]]></title>
    <link href="https://www.taskboy.com/2008-10-28-Happy_Anniversary,_Sally.html"/>
    <published>2008-10-28T00:00:00Z</published>
    <updated>2008-10-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-10-28-Happy_Anniversary,_Sally.html</id>
    <content type="html"><![CDATA[
<img title="Love, love" src="/img/sally_bride.gif" class="insert">


<p><p>To my lovely bride, happy anniversary.  We made it the whole year mostly injury-free!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Taskboy moving]]></title>
    <link href="https://www.taskboy.com/2008-10-28-Taskboy_moving.html"/>
    <published>2008-10-28T00:00:00Z</published>
    <updated>2008-10-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-10-28-Taskboy_moving.html</id>
    <content type="html"><![CDATA[<p><p>Taskboy is moving from the excellent colo
arrangement it now has for something new.  So expect some turbulence from now until Jan. 2009.</p>

<p><p>I'd also like to publicly thank <a href="http://www.noopy.org/">Nate Patwardhan</a> for all his unsung admin work in keeping the box alive and stable.  Nate should get a job as a sysadmin or somethingâ¦</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[They have a plan]]></title>
    <link href="https://www.taskboy.com/2008-10-24-They_have_a_plan.html"/>
    <published>2008-10-24T00:00:00Z</published>
    <updated>2008-10-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-10-24-They_have_a_plan.html</id>
    <content type="html"><![CDATA[
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Powell for Obama]]></title>
    <link href="https://www.taskboy.com/2008-10-19-Powell_for_Obama.html"/>
    <published>2008-10-19T00:00:00Z</published>
    <updated>2008-10-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-10-19-Powell_for_Obama.html</id>
    <content type="html"><![CDATA[<blockquote>
&laquo;WASHINGTON (Reuters) - Retired U.S. Gen. <a href="http://en.wikipedia.org/wiki/Colin_Powell">Colin Powell</a>, a former secretary of state in the Bush administration, on Sunday endorsed Democratic presidential nominee Barack Obama.<br>
<br>In an appearance on NBC's "Meet the Press," Powell backed Obama over fellow Republican John McCain, calling the Democratic nominee a "transformational figure" who could be an "exceptional president."&raquo;
</blockquote>

<p>â<a href="http://www.reuters.com/article/vcCandidateFeed7/idUSTRE49I1PX20081019">Reuters</a>
<p>Thank you for speaking your conscience, Mr. Powell.  I knew you weren't 
a mindless partisan.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[I love it…when a plan…comes…TOGETHER!]]></title>
    <link href="https://www.taskboy.com/2008-10-13-I_love_it.html"/>
    <published>2008-10-13T00:00:00Z</published>
    <updated>2008-10-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-10-13-I_love_it.html</id>
    <content type="html"><![CDATA[

<p><p>This is long overdue.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[I've been Joe Bidened!]]></title>
    <link href="https://www.taskboy.com/2008-10-07-I_ve_been_Joe_Bidened_.html"/>
    <published>2008-10-07T00:00:00Z</published>
    <updated>2008-10-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-10-07-I_ve_been_Joe_Bidened_.html</id>
    <content type="html"><![CDATA[<p><p>Is it just me or does this <a href="http://www.amazon.com/review/R3A189285XE5UY/ref=cm_aya_cmt?_encoding=UTF8&amp;ASIN=1568983050">Amazon review</a> by Scott Smith look a bit <a href="index.php?bid=758">too familiar</a>?</p>

<p><p>I've never been so closely, er, <em>quoted</em> before.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[If you'd just chosen a bat, you'd have been a hero]]></title>
    <link href="https://www.taskboy.com/2008-10-01-If_you_d_just_chosen_a_bat,_you_d_have_been_a_hero.html"/>
    <published>2008-10-01T00:00:00Z</published>
    <updated>2008-10-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-10-01-If_you_d_just_chosen_a_bat,_you_d_have_been_a_hero.html</id>
    <content type="html"><![CDATA[
<img src="/img/cowsuit.jpg" title="I'm a BAAAAD cow" class="insert">


<blockquote>
Â«A Middletown woman is arrested, after chasing children, urinating 
on a porch, and blocking trafficâ¦ all while wearing a cow suit.Â»
</blockquote>

<p>â<a href="http://www.local12.com/news/local/story.aspx?content_id=777596c7-d339-4feb-81a7-60887c4d95e2&amp;rss=30">WKRC News</a>
<p>It would be so easy to judge this woman's behavior, but I ask you, is 
there a person among us who has not wanted to do exactly the same thing?
<p>No?
<p>Oh, then I suppose it's just her and me then. 
<p>Fine.
<p>Losers.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Adventure Games Studio]]></title>
    <link href="https://www.taskboy.com/2008-09-29-Adventure_Games_Studio.html"/>
    <published>2008-09-29T00:00:00Z</published>
    <updated>2008-09-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-09-29-Adventure_Games_Studio.html</id>
    <content type="html"><![CDATA[<p>After playing two very excellent games from Ben "Yahtzee" Croshaw, 
<a href="http://www.fullyramblomatic.com/5days/">5 Days a Stranger</a> 
and <a href="http://www.fullyramblomatic.com/7days/">7 Days a Skeptic</a>, 
I thought I might take a stab at learning the tool used to create these 
excellent games
(<a href="http://www.adventuregamestudio.co.uk/">Adventure Games Studio). </p>

<p>I feel a little dirty using this tool, since it does the heavy code lifting
for you.  On the other head, I get to concentrate on story and art more.</p>

<p>I've got a concept for an adventure game that I'm working through now.  
Let's see if I can make this happen.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Who knew Dick Cheney was so against an Iraq Invasion?]]></title>
    <link href="https://www.taskboy.com/2008-09-27-Who_knew_Dick_Cheney_was_so_against_an_Iraq_Invasion_.html"/>
    <published>2008-09-27T00:00:00Z</published>
    <updated>2008-09-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-09-27-Who_knew_Dick_Cheney_was_so_against_an_Iraq_Invasion_.html</id>
    <content type="html"><![CDATA[



<p><p>Actually, I did. <br>
<p>I remember this conversation in the days after the 1991 
operation in Kuwait.  Secretary of Defense Cheney was attempting to silence 
the idiot hawks of the day who wanted to topple Hussein's government.  After 
the fall of the Shah's Iran, Hussein become our man in the middle east.
We goaded into attacking Iran in the 80s for us.  Rumsfeld was 
<a href="http://www.gwu.edu/~nsarchiv/NSAEBB/NSAEBB82/press.htm">a special 
envoy to Iraq</a>.  If you're wondering where Hussein got gas weapons (the 
only WDMs we know Saddam had), I speculate that the Reagan Administration 
sold them to him to kill Iranians.
<p>I supported that administration's limited objectives wholeheartedly.  It 
made sense then and history has shown that Saddam could be put "in a box." <br>
He could be contained and presumably preserved for some future use, like 
al-Gaddafi appears to be now.
<p>Here's another mind-blowing adminission for you: <em>I liked Secretary of 
Defense Cheney</em>.  He was a lot more professional, credible and smart back 
in the day (although that are reports that he wanted an insanely aggressive
attack strategy that Schwartzhopf and Powell nixed).
<p>Of course, this clip of Cheney is from Bush I's war.   However, all the 
reasons he gives for not invading in the 90s are exactly the reasons that 
made the 2003 invasion and occupation a majestic failure. 
<p>If only Dick Cheney had access to his earlier self, perhaps this mess 
could have been avoided.  Then again, when Cheney left the Bush I cabinet, 
he went to work at Halliburton, where he must of learned how to be a war 
profiteer.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[A modest proposal for our troubled economic times]]></title>
    <link href="https://www.taskboy.com/2008-09-26-A_modest_proposal_for_our_troubled_economic_times.html"/>
    <published>2008-09-26T00:00:00Z</published>
    <updated>2008-09-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-09-26-A_modest_proposal_for_our_troubled_economic_times.html</id>
    <content type="html"><![CDATA[
<img src="/img/patton1.jpg" title="God help me, I love it so" class="insert">


<p><p>As the fabled $700 billion dollar bailout plan staggers through 
the White House and Congress, I'd like to offer an alternative and cheaper plan
for restoring investor confidence in Wall street, helping stablize banks and 
providing real relief for millions of American homeowners.
<p>It is breathtaking in its simplicity.
<p>The Fed should buy all the bad mortgage debt at some percentage on the 
dollar.  Then, the Fed should turn around and sell properties back to home 
owners at fair price.  If the feds end up unable to unload all the property 
they own, big deal â it's an opportunity for more parks.
<p>This gives banks immediate liquidity, but still punishes them for being 
completely asleep at the wheel.  Real Americans will actually become 
honesty-to-goodness homeowners again and paying a mortgage they can afford.
Mostly, we get the Feds out of the business of directly investing in Wall 
Street, which I'm not sure I'm very comfortable with. 
<p>The downside of this plan is that those property owners with more equity 
than debt will be penalized as the value of their homes decresses.  However, 
those are the risks in a market economy.  Not all investments are guaranteed 
to increase in value. 
<p>I think the Feds have massive bargining power with the banking industry.
Instead of Wall Street dictating the terms of the loan (I bet you wish you 
could have done that with your mortgage!), the Feds, who have the Gold, should 
set the Rule. <br>
<p>I believe my plan is far cheaper than $700bn.  Perhaps the whole thing 
could be done for $350bn, which is a number, while still huge, is hardly 
enough to run the Iraq "War" on.
<p>Unfortunately, there are conservative ideologs that despise the concept of 
the government directly helping its citizens in large numbers.  Sure, it's OK
for Uncle Sam to bomb people Over There, but it's just terrible for the Fed
to improve the lives of taxpayers directly.  That's too much like socialism. Of
course, the US has many elements of socialism already since capitalist, like 
cats, tend to get themselves stuck up a tree every so often.
<p>Let's not continue to reward the irresponsible behavior of the true 
elites of this country, Wall Street Robber Barons.  The jig is up.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The Trillion Dollar President]]></title>
    <link href="https://www.taskboy.com/2008-09-20-The_Trillion_Dollar_President.html"/>
    <published>2008-09-20T00:00:00Z</published>
    <updated>2008-09-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-09-20-The_Trillion_Dollar_President.html</id>
    <content type="html"><![CDATA[
<img src="/img/mission_accomplished.jpg" class="insert" title="Operation: Strangle Government, Accomplished">


<blockquote>
&laquo;The proposal, not quite three pages long, was stunning for its 
stark simplicity. It would raise the national debt ceiling to $11.3 trillion. 
And it would place no restrictions on the administration other than requiring 
semiannual reports to Congress, granting the Treasury secretary unprecedented 
power to buy and resell mortgage debt.&raquo;
</blockquote>

<p><p>â<a href="http://www.nytimes.com/2008/09/21/business/21cong.html?em">New York Times</a>
<p>With just two initiatives, the Iraq War and this Wall Street bailout, 
W will have spent $1,000,000,000,000 dollars.  That's a million million 
dollars.  You cannot be fiscally conservative and approve of W's 
administration.  It's a complete farce.
<p>I understand why this bailout is needed: our ecomony and much of the 
world's will collapse.  The cause of this debacle comes squarely from 
government regulators not policing the top financial institutions of this 
country.  This is what happens
when you "let the market work things out."  You get criminal anarchy.
<p>These wall street types and mortgage brokers would knock over old ladies
for their purses if it weren't for beat cops.
<p>Our government needs to stop the excesses of capitalism.  File this under 
"promote the General Welfare" clause of the Constitution.  This is not an 
anti-capitalist attitude â it's the voice of experience.  Most of the 
regulatory prohibitions instituted after 1929 to prevent this kind of 
unprincipaled speculation has been dismantled by Republicans and complicit 
Democrats over the past 30 years.  The boom time of fraud is now over and 
there's an ugly piper to be paid.
<p>To those who deeply want to have the feds dump social security into 
private equity funds, I present the summer of 2008 has a magnificent 
counter-argument to that insanely risky plan.
<p>You may bristle at the imagined ineffeciencies of government programs, but 
I prefer that to private grift.  Call me old fashioned, but I'd prefer my 
money squandered honestly at the hands of incompetent federal lackies rather 
than lining the pockets of a few choice cronies. 
<p>Investment capitalism, the mechanism that allows financial risk to be distributed over
a set of investors, is a fine ecomonic system for what it does.  It cannot 
exist long without government supervision.  Marx identified this long ago and
no one credible disagrees with his critique: capitalism, without restraint, 
will eat itself.  No country has ever left markets completely unregulated, 
including this one.  The only debate we can have is to what extend the 
government regulates private wealth.  It will and it must.  It's have no more 
non-sense about this from the Grover Norquists of the world.
<p>That our ecomony has been seriously imperiled by the failure of so few 
companies points to a classic investment mistake: our national assests were 
distributed over far too few entities.  Perhaps the strategy of amalgamating 
massive financial institution into a handful of companies isn't as wise as it 
appeared in the past?
<p>Neither McCain nor Obama are well-positioned to comprehensively overhaul 
our financial system in the sweeping way that's needed.  A new "Square Deal" 
that targets bogus and borderline fraudulent investment vehicles is need to 
clean up this wreckage of this new Guilded Age.  That, and a long docket of 
indictments against those who put our entire country at risk.  That's what's 
need to restore investor confidence: blood.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Wish you were here: Richard Wright dead at 65]]></title>
    <link href="https://www.taskboy.com/2008-09-16-Wish_you_were_here__Richard_Wright_dead_at_65.html"/>
    <published>2008-09-16T00:00:00Z</published>
    <updated>2008-09-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-09-16-Wish_you_were_here__Richard_Wright_dead_at_65.html</id>
    <content type="html"><![CDATA[
<img src="/img/wright-barret.jpg" title="PF founders: Richard Wright and Syd Barret" class="insert">


<p><p>Pink Floyd keyboardist <a href="http://ap.google.com/article/ALeqM5goXIvltXKGWx6JNIo-5rDbZHVI6gD93794RG0">Richard Wright</a> has died of cancer.  I am a big fan of Pink Floyd and Wright's moody and atmospheric keyboard work on <em>Dark Side of the Moon</em>, <em>Wish You Were Here</em> and <em>Animals</em> helped make those albums classics.
<p>Thanks for all music, Mr. Wright.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Hurricane W]]></title>
    <link href="https://www.taskboy.com/2008-09-06-Hurricane_W.html"/>
    <published>2008-09-06T00:00:00Z</published>
    <updated>2008-09-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-09-06-Hurricane_W.html</id>
    <content type="html"><![CDATA[ 
<br><a href="http://www.theonion.com/content/video/bush_tours_america_to_survey?utm_source=embedded_video">Bush Tours America To Survey Damage Caused By His Disastrous Presidency</a>


<p><p>Even though I suspect this is a jab at those who despise the GWB years, 
I still enjoy the top-level irony of presidency-as-natural-disaster.</p>

<p>Also, it's always good to note that the word "disaster" comes from the latin
for "bad stars". </p>

<blockquote>
&laquo;The root of the word disaster comes from astrology: this implies that when the stars are in a bad position a bad event will happen.&raquo;
</blockquote>

<p>â<a href="http://en.wikipedia.org/wiki/Disaster">Wikipedia</a></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Hex map toy preview]]></title>
    <link href="https://www.taskboy.com/2008-08-31-Hex_map_toy_preview.html"/>
    <published>2008-08-31T00:00:00Z</published>
    <updated>2008-08-31T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-08-31-Hex_map_toy_preview.html</id>
    <content type="html"><![CDATA[
<img src="/img/hexmap-ss.jpg" title="Screenshot of Hex map toy" class="insert">


<p><p>Following on the <a href="/index.php?bid=1089">earlier post</a> I made about programming 
hex maps for games, I have taken a stab at a Java program that generates 
different sized maps.  You can <a href="hexmaptoy-1.0.zip">download the zip 
file here</a>.  If you've got a recent version of the JRE (1.5), this should 
work for you out of the box by double clicking on it.  Otherwise, you can run 
it by unpacking the archive and typing "java -jar HexMap.jar". <br>
<p>This toy just generates hex maps according to adjustable parameters.  Hit
the "Repaint" button to see the glory. </p>

<p>In a future post, I'll be explaining the math and heuristics I used.  I'll
also make the source code available then.  However, there are better 
implementations I have in mind for this.  Eventually, I should be able to emit 
an actual game that uses this work.  No time, no time.  Sigh.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Why gay marriage prohibition will always lead to more gay marriages]]></title>
    <link href="https://www.taskboy.com/2008-08-31-Why_gay_marriage_prohibition_will_always_lead_to_more_gay_marriages.html"/>
    <published>2008-08-31T00:00:00Z</published>
    <updated>2008-08-31T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-08-31-Why_gay_marriage_prohibition_will_always_lead_to_more_gay_marriages.html</id>
    <content type="html"><![CDATA[
<img src="/img/adam_and_steve.jpg" title="Adam and Steve: A fine looking couple" class="insert">


<p><p>Here's a great article on <a href="http://linuxmafia.com/faq/Essays/marriage.html">the law of unintended consequences</a> regarding gay marriage.  No matter where you stand on the issue, it's worth reading.</p>

<p><p>What is the primary difficulty with any law that defines marriage as a union between a man and a women?  Many people are not the gender they think they are.</p>

<p><p>Now, I'm not talking about RuPaul or Divine here.  I'm talking about 1 in 1000 people who have never had questions about their gender identity and who appear to have the correct "hardware."  The problem is that genetics are not as clear-cut as many conservatives would wish them to be. </p>

<p><p>So what happens when a man and women get medically tested before marriage to ensure compliance with a mythical "marriage protection act"?  Let's say the tests show that the man has XX chromosomes.  That is, he is genetically female.  Should he be allowed to marry another female?  Should he be allowed only to marry a real XY man?  Why didn't the Bible cover this edge case?
<p>Personally, I don't care who marries what (other than my wife, whose decision is already made), but there are those who fret about "defending the holiness of marriage."
<p>Of course, none of these brave cultural crusaders is proposing the elimination of such marriage destroying practices of divorce or annulment.  That's too wacky.
<p>Rather than defining marriage by gender, I might suggest tests for ensuring that the couple are somewhat more bright than cud-chewing cattle.  At least, they should be in order to get a "reproductive" license.  Any couple that does not get such license will be promptly "fixed" at the tax payer's expense.  Surely, it's far cheaper to address the problems of rampant stupidity as early as possible?  I project fantastic savings to the public coffers in the areas of law enforcement, health care and, God willing, the electorate with only a mild controls on the gene pool.</p>

<p><p>I am available as a write-in candidate for any public office you care to nominate me for.</p>

<p><p>I confess, I've never really understood much of the social programs of conservatives, especially with issues like gay marriage and abortion. My own life is so full of stuff to do, I don't have a lot of time to worry about what's going on in my neighbor's bedrooms.  I have to wonder why gay marriage opponents seem to have so much time on their hands.  Not enough bedroom time in their own home, I suppose.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[A better option for McCain's running mate]]></title>
    <link href="https://www.taskboy.com/2008-08-30-A_better_option_for_McCain&apos;s_running_mate.html"/>
    <published>2008-08-30T00:00:00Z</published>
    <updated>2008-08-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-08-30-A_better_option_for_McCain&apos;s_running_mate.html</id>
    <content type="html"><![CDATA[
<img src="/img/RuPaulRevolution.jpg" title="The Divine Ms. RuPaul" class="insert">


<p><p>For John McCain, a lot is riding on his VP candidate.  He has to show that he's not just representing the traditional rich white man vote.  He's also representing the wives of rich white men.  And while Gov. Palin's credentials are fine, they aren't are lustrous as those of better known Republican women like Liz Doyle or Christine Whitman.  Or, jeez, Condi Rice. <br>
<p>But really, McCain could have had a slamdunk VP in the form of RuPaul who could represent so many minorities at once, he's virtually a val-U-Pak of lefty PR.
<p>McCain-RuPaul: Together, they can dance-dance our country to a better place.
<p>Better luck next time, John.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[How was my business trip to Manhattan?]]></title>
    <link href="https://www.taskboy.com/2008-08-22-How_was_my_business_trip_to_Manhattan_.html"/>
    <published>2008-08-22T00:00:00Z</published>
    <updated>2008-08-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-08-22-How_was_my_business_trip_to_Manhattan_.html</id>
    <content type="html"><![CDATA[
<a href="/img/jjohn_penn_station.jpg"><img src="/img/jjohn_penn_station.jpg" class="insert"></a>


<p>'Nuff said.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Jacked]]></title>
    <link href="https://www.taskboy.com/2008-08-17-Jacked.html"/>
    <published>2008-08-17T00:00:00Z</published>
    <updated>2008-08-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-08-17-Jacked.html</id>
    <content type="html"><![CDATA[
<img src="/img/data_center_old.gif" title="Building a bridge to 1999" class="insert">


<p>In the software/hardware paradigm that bifurcates humanity, I'm squarely in 
the software camp.  However, I have successful created a CAT 5e run of 
ethernet cable that goes from the basement to my second floor office 
terminating in a real, honest to goodness RJ-45 jack in my wall.  I couldn't 
be more proud.  If you attempt to install wired ethernet in your home, be 
aware of the following:</p>

<p>1. Running the cable is the hardest part of the job</p>

<p>If you have a new home, running cable is as easy as getting into the walls 
before the drywall/plaster is installed.  Otherwise, you'll need snake the cable through those unfinished walls in your house, like those found in basements 
and attics.  You could also rip open your finished walls, install the wiring 
and patch it later, but you're clearly more butch than I.  In 
my case, there was existing speaker wire that went from the basement to the 
attic.  I simply attached one end of a 100' spool of CAT 5e cable to top of the
speaker wires with copious tape.  I then pulled (carefully) on the wire from 
the basement to get whatever gravity-assist I could.  Your mileage will 
vary.</p>

<p>2. Get the right tools</p>

<p>You will need an ethernet jack 
<a href="http://www.qvs.com/cat5-access.asp">punch down tool</a>.  You can 
get this at Lowes, Microcenter or many other  
places online.  Do not confuse this with a crimping tool, which is designed 
to fit a male RJ-45 coupling onto the end of an ethernet cable.  Punch down 
tools force the individual wires of ethernet into specific recepticals on the 
RJ-45 jack.  You should not strip these wires before punch down.  The act of 
punch down removes the casing around the wire.  Some tools will cut the extra
length of wire for you, but any wire cutting tool will work adequately for 
the job.</p>

<p><p>You might also need fish tape to help you run the ethernet cable into the 
hard to reach areas of your wall.</p>

<p>3. Read the mating diagram on the RJ-45 jack</p>

<p>Ethernet cabling consists of 4 twisted pairs of wires, which are typically
colored brown, blue, orange and yellow.  Each color has a mate that striped 
with white for a total of eight wires.  To attach to an RJ-45 jack, each of 
these eight wires needs to be punched into the right saddle.  Most RJ-45 jacks
are sold with a diagram that explicitly shows where each wire goes.  Follow 
the directions carefully.  You cannot fudge this part.</p>

<p>4. Unless you have a house older than 50 years old, use new 
construction low voltage brackets</p>

<p><p><a>Low voltage brackets</a> are the bits that are nailed or 
screwed into the wood of a joist so that the face plate can be attached 
to the wall.  These seemingly simply devices come in a broad variety of forms.
One of the dimensions of variation is in how the bracket attaches to the wall.
Brackets that have screws or nails go <em>parallel</em> to the face plate <br>
are called "new construction" mounted.  Brackets that have nails or screws 
that are <em>perpendicular</em> to the face plate are said to have "old 
construction" mounting.  I can't really think of a situation where old construction mounting works, but as I said, I'm not a hardware guy.  That's also why
I bought an old construction mounting first.  Live and learn.
<p>It took me three days to do this admittedly simply installation, because
I didn't have all the right tools and parts initially.</p>

<p>This is a great project for all you home-owning nerds out there.  There are 
many more detailed web resources out there that explain the process in more 
detail than I've provided.  Also, check out You Tube for helpful videos.  There
was at least one that shows how to punch down an RJ-45 jack correctly.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[He's right behind you!]]></title>
    <link href="https://www.taskboy.com/2008-08-08-He&apos;s_right_behind_you_.html"/>
    <published>2008-08-08T00:00:00Z</published>
    <updated>2008-08-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-08-08-He&apos;s_right_behind_you_.html</id>
    <content type="html"><![CDATA[
<img id="javaroom_pix" src="/img/javaroom2.jpg" title="What the?!" class="insert">


<p><p>Picture of me at the Javaroom in Chelmsford taken with my Macbook's 
Photobooth app.  Compare to the one I took <a href="/?bid=1061">here with my XO</a>. </p>

<p>UPDATE: The <a href="http://www.chelmsfordlibrary.org/">Chelmsford Public Library</a> is #^(%ing great.  It's clean, brightly lit, full of electrical outlets and WIFI!  Of course, PPTP, FTP, SMTP and some other ports are blocked, but not SSH.  W00t!</p>

<p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Let's talk about hex]]></title>
    <link href="https://www.taskboy.com/2008-08-08-Let&apos;s_talk_about_hex.html"/>
    <published>2008-08-08T00:00:00Z</published>
    <updated>2008-08-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-08-08-Let&apos;s_talk_about_hex.html</id>
    <content type="html"><![CDATA[<p>Hex maps.  Every wargamer knows them.  Expert D&D players broke out of 
their dual-axis world during their <em>Isle of Dread</em> campaign to use these
six-sided monsters.  Here's a close up of one:</p>


<img src="/img/hexmap.png" class="insert" title="Figure 1: hexmap">


<p><code> 
</code></p>

Figure 1

<p>Hex maps, it is claimed, offer a more natural choice of direction for players who want to model open air terrain than the good old graph-paper, cartesian plane, 2 perpendicular axes maps. Graph paper maps do match up well to the four cardinal points of a compass, which is nice. Even better for programmers, these kinds of maps are easily represented with 2 dimensional arrays, a data structure that even grumpy old C supports!</p>


<img src="/img/2dmap.gif" class="insert" title="Figure 2: 2D map">


Figure 2: 2D map

<p>And it's easy to find the neighboring squares in this
kind of map.  Consider a coordinate system whose origin (0,0) is the upper most 
left corner of a grid.  Going to the right adds to the x coordinate, while going
left subtracts from it.  Similarly, going down to the bottom of the grid adds to 
the y coordinate, but going up lessens the y value.  If the starting square can 
be thought of as being at the coordinate (x,y), then neighbors can be found at 
predictable offsets:</p>

<ul>
 <li>Northern neighbor: (x, y-1)
 <li>Eastern neighbor: (x+1, y)
 <li>Southern neighbor: (x, y+1)
 <li>Western neighbor: (x-1, y)  
</ul>

<p>It's easy to extrapolate how you could find the diagonal squares too if you wanted to, but that's not desirable for wargamers. There are at most only four equidistant neighbors for any given square on the graph paper map. Sure, you could include the four squares pointed to by the diagonals of the square, but these are more distant from the center of the square than the neighbors at the cardinal points. And that makes wargamers mad! How can you accurately plot the range of your 18th century dutch cannon using only the cardinal compass points?! Hex maps offer up to six equidistant neighbors for any given hex. And that means more accurate pathing for cannon fire. Super!</p>

<p>But how do you model a map in which each element has six neighbors?  You could 
make a linked list of structures that contain pointers to each of their 
neighbors.  But that's not a particularly natural fit and would cause a great 
deal of programming overhead to populate and search.  Is there a way to get all 
the benefits of a hex map into a 2D array implementation? Yes, there is but 
you need to to think about a hex map in a certain way.</p>

<p>Look at Figure 1 again, but try to see the map as three columns of hexes 
stacked on top of each other.  Notice that although the first column (with 
hexes A and D) are horizontally aligned with the last column (with hexes C and F)
but the the middle column (with hexes B, E and G) is a bit offset.  This is an 
important detail that will affect our hex map model.  We can order these hexes
from left to right, top to bottom if we take into account the offset columns that
happen every other time.  That is, all the odd number columns are offset from the 
even numbered ones.  We can make a horizontal row by starting with a left-most 
hex.  Then, find the "northeastern" neighbor in the odd row.  To find the 
horizontal neighbor of that hex, look to its <em>"southeastern"</em> side.  
In Figure 1, the first
horizontal row is marked out as hexes A, B and C.  Continue this alternation 
until you hit the last column of hexes.</p>

<p>Once we have a predictable sorting order for our hexes, we can use a 
2D array to model this map.  Why bother with a 2D for a linear list?  The answer
is that a 2D array naturally maps to the way computer screens are represented in
most drawing libraries.  2D arrays also fit easily into an SQL database system. 
So, even though the thing we want could be represented 
in a number of ways, there's a lot of convenience to be had in thinking of (x,y) 
coordinates.  So given a hex coordinate, how can we determine its neighbors in 
a 2D array?  The answer is: it depends!</p>

<p>It depends on whether the hex is in a odd numbered column or an even numbered 
one.  Consult the two tables below.  I look for neighboring hexes in a clockwise 
direction starting at the top of the hex (which would be the northern neighbor).</p>

<p><br></p>

<table>
<tr>
  <th>Neighbor</th>
  <th>Coordinate offset</th>
</tr>
<tr>
 <td>North</td>
 <td>(x, y-1)</td>
</tr>
<tr>
 <td>Northeast</td>
 <td>(x+1, y)</td>
</tr>
<tr>
 <td>Southeast</td>
 <td>(x+1, y+1)</td>
</tr>
<tr>
 <td>South</td>
 <td>(x, y+1)</td>
</tr>
<tr>
 <td>Southwest</td>
 <td>(x-1, y+1)</td>
</tr>
<tr>
 <td>Northwest</td>
 <td>(x-1, y)</td>
</tr>
</table>

<p>Figure 3: Calculating Neighbors for Hexes in Even Columns</p>

<p><br></p>

<table>
<tr>
  <th>Neighbor</th>
  <th>Coordinate offset</th>
</tr>
<tr>
 <td>North</td>
 <td>(x, y-1)</td>
</tr>
<tr>
 <td>Northeast</td>
 <td>(x+1, y-1)</td>
</tr>
<tr>
 <td>Southeast</td>
 <td>(x+1, y)</td>
</tr>
<tr>
 <td>South</td>
 <td>(x, y+1)</td>
</tr>
<tr>
 <td>Southwest</td>
 <td>(x-1, y)</td>
</tr>
<tr>
 <td>Northwest</td>
 <td>(x-1, y-1)</td>
</tr>
</table>

<p>Figure 4: Calculating Neighbors for Hexes in Odd Columns</p>

<p>And for the purposes of this discussion, column 0 counts as even.  Does your
brain hurt a little?  Mine too.  Let's make this more concrete.</p>

<p>Using Figure 1, let's create a 2D array that maps the hexes in the right 
order.</p>

<table>
<tr>
  <td>Â </td>
  <td>0</td>
  <td>1</td>
  <td>2</td>
</tr>
<tr>
  <td>0</td>
  <td>A (0,0)</td>
  <td>B (1,0)</td>
  <td>C (2,0)</td>
</tr>
<tr>
  <td>1</td>
  <td>D (0,1)</td>
  <td>E (1,1)</td>
  <td>F (2,1)</td>
</tr>
<tr>
  <td>2</td>
  <td>-</td>
  <td>G (2,2)</td>
  <td>-</td>
</tr>
</table>

<p>Figure 5: Mapping a Hex Map into a 2D Array</p>

<p>I have included the coordinates of the hex in this table for easier reference.
Let's walk through our algorithm to find all the neighbors of each point.</p>

<p><br></p>

<table>
<tr>
  <th>Hex</th>
  <th>N</th>
  <th>NE</th>
  <th>SE</th>
  <th>S</th>
  <th>SW</th>
  <th>NW</th>
</tr>
<tr>
  <td>A (0,0)</td>
  <td>(0,-1)</td>
  <td>D (1,0)</td>
  <td>E (1,1)</td>
  <td>B (0,1)</td>
  <td>(-1, 1)</td>
  <td>(-1,0)</td>
</tr>
<tr>
  <td>B (1,0)</td>
  <td>(1,-1)</td>
  <td>(2,-1)</td>
  <td>C (2,0)</td>
  <td>E (1,1)</td>
  <td>A (0,0)</td>
  <td>(0,-1)</td>
</tr>
<tr>
  <td>C (2,0)</td>
  <td>(2,-1)</td>
  <td>(3,0)</td>
  <td>(3,1)</td>
  <td>F (2,1)</td>
  <td>E (1,1)</td>
  <td>B (1,0)</td>
</tr>
<tr>
  <td>D (0,1)</td>
  <td>A (0,0)</td>
  <td>E (1,1)</td>
  <td>(1,2)</td>
  <td>(0,2)</td>
  <td>(-1, 2)</td>
  <td>(-1,1)</td>
</tr>
<tr>
  <td>E (1,1)</td>
  <td>B (1,0)</td>
  <td>C (2,0)</td>
  <td>E (2,1)</td>
  <td>G (1,2)</td>
  <td>B (0,1)</td>
  <td>A (0,0)</td>
</tr>
<tr>
  <td>F (2,1)</td>
  <td>C (2,0)</td>
  <td>(3,1)</td>
  <td>(3,2)</td>
  <td>(2,2)</td>
  <td>G (1,2)</td>
  <td>E (1,1)</td>
</tr>
</table>

<p>Whew!  That's quite a table of mind-numbing numbers!  What this table is 
attempting to show is the neighboring hexes for each hex appearing in the 
left-hand column.  Computations which result in a 
valid location are shown with that area's label.  Computations that produce
bum results are shown in italics, just to give you some idea how the edge 
cases work.</p>

<p>Now that you can easily find the neighbors of any hex, you can implement 
any of the class of algorithms designed to calculate shortest path, distance, 
etc.  Of particular note, <a href="http://www.policyalmanac.org/games/aStarTutorial.htm">A* pathfinding</a> 
and shortest distance routines should
fall out nicely once you wrap the neighbor calculations into some kind of 
function.</p>

<p>Which is an exercise I leave for the reader.  I realize that modeling hex maps
is a solved problem, but I worked this stuff out for myself.  Thinking of these 
sorts of things keeps me off the streets and high on life.</p>

<p>Peace out.</p>

<p></p>

<p><p>UPDATE: Other people are <a href="http://www.codeproject.com/KB/cs/hexagonal_part1.aspx">interested in hex maps too</a>.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Pink eye]]></title>
    <link href="https://www.taskboy.com/2008-08-05-Pink_eye.html"/>
    <published>2008-08-05T00:00:00Z</published>
    <updated>2008-08-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-08-05-Pink_eye.html</id>
    <content type="html"><![CDATA[
<img src="/img/alton.gif" title="Don't put stuff in your eye" class="insert">


<p><p>Visited Lowell General Hospital today for the first time, in which a doctor looking very much like Alton Brown informed me that my eye was swollen from non-viral conjunctivitis.  I get to put jelly in my eye for three days.
<p>So, I have that going for me.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[XML::RSS::Podcast update]]></title>
    <link href="https://www.taskboy.com/2008-08-01-XML__RSS__Podcast_update.html"/>
    <published>2008-08-01T00:00:00Z</published>
    <updated>2008-08-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-08-01-XML__RSS__Podcast_update.html</id>
    <content type="html"><![CDATA[
<img src="/img/camel.gif" class="insert" title="Code maintenance is hard">


<p><p>It seems that a few of you are using or trying to use the XML::RSS::Podcast 
module I <a href="/index.php?bid=81">published on this blog</a>.  As was mentioned there, 
modern version of XML::RSS do not support the encode function required for 
generating well-formed XML documents. <br>
<p>That's all changed thanks to Rohan Carly.  [Add your thanks to Rohan in the comments.]
<p>I present the complete version of XML::RSS::Podcast below.  If you find this module
useful, I'll attempt to create a CPAN module for it.
<br></p>

<p class="code">
package XML::RSS::Podcast;
use XML::RSS;
use HTML::Entities qw[encode_entities_numeric encode_entities];
@XML::RSS::Podcast::ISA = qw[XML::RSS];
our $VERSION = q[1.1];

# encode by Rohan Carly
# Stolen from XML::RSS::Private::Output::Base;
sub encode {
  my ($self,$text) = @_;
  return unless defined($text);

  my $encoded_text = '';

  while ($text =~ s,(.*?)(&lt;!\[CDATA\[.*?\]\]>),,s) {
    # we use &named; entities here because it's HTML
    $encoded_text .= encode_entities($1) . $2;
  }

  # we use numeric entities here because it's XML
  $encoded_text .= encode_entities_numeric($text);

  return $encoded_text;
};

sub as_string {
  my $self = shift;
  return $self->as_podcast_rss;
}

sub as_podcast_rss {
  my $self = shift;
  my $enc = $self->{encoding};
  my $output = qq[&lt;?xml version="1.0" encoding="$enc"?>
&lt;rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" 
     version="2.0">];

  $output .= $self->podcast_start_channel;

  for my $i (@{$self->{items}}) {
    $output .= $self->podcast_item($i);
  }

  $output .= $self->podcast_end_channel;
  return $output .= "\n&lt;/rss>\n";
}

sub podcast_start_channel {
  my $self = shift;
  my @fields = qw[ttl title description link language 
                  pubDate lastBuildDate creator 
                  webMaster copyright
                 ];
  my @image_fields  = qw[title url description link     
                         width height];
  my @itunes_fields = qw[subtitle author summary
                         image explicit]; # Thanks Rohan

  my $output = "&lt;channel>\n";

  for my $f (@fields) {
    if (defined($self->{channel}->{$f})) {
      my $s = $self->encode($self->{channel}->{$f});
      $output .= "\t&lt;$f>$s&lt;/$f>\n";
    }
  }

  my $seen_image = 0;
  for my $f (@image_fields) {
    if (defined($self->{image}->{$f})) {
      unless ($seen_image) {
        $output .= "\t&lt;image>\n";
        $seen_image = 1;
      }
      my $s = $self->encode($self->{image}->{$f});
      $output .= "\t\t&lt;$f>$s&lt;/$f>\n";
    }
  }

  if ($seen_image) {
    $output .= "\t&lt;/image>\n";
  }

  # Owner name/email not handled
  for my $f (@itunes_fields) {
    if (defined($self->{channel}->{itunes}->{$f})) {
      my $s=$self->encode($self->{channel}->{itunes}->{$f});
      $output .= "\t&lt;itunes:$f>$s&lt;/itunes:$f>\n";
    }
  }
  # Rohan's sub-cat handling code
  # Expects an array: [category, sub-category]
  if (ref $self->{channel}->{itunes}->{category} eq 'ARRAY') {
    my $major = $self->encode(${$self->{channel}->{itunes}->{category}}[0]);
    my $minor = $self->encode(${$self->{channel}->{itunes}->{category}}[1]);
    $output .= qq[\t&lt;itunes:category text="$major">\n];
    $output .= qq[\t\t&lt;itunes:category text="$minor">\n];
    $output .= qq[\t\t&lt;/itunes:category>\n];
    $output .= qq[\t&lt;/itunes:category>\n];
  }

  return $output . "\n";
}

sub podcast_end_channel {
  return "&lt;/channel>\n";
}

sub podcast_item {
  my $self = shift;
  my $item = shift;

  my @fields = qw[title guid pubDate description link];
  my @itunes_fields = qw[author subtitle summary 
                         duration keywords explicit];

  my $output = "\t&lt;item>\n";
  for my $f (@fields) {

    if (defined($item->{$f})) {
      $s = $self->encode($item->{$f});
      my $perma = "";
      if ($f eq "guid") {
        $perma = qq[isPermaLink="false"];
      }
      $output .= "\t\t&lt;$f$perma>$s&lt;/$f>\n";
    }
  }

  if (ref $item->{enclosure}) {
    $output .= "&lt;enclosure";
    for my $f (qw[url length type]) {
      if (defined $item->{enclosure}->{$f}) {
        $output .= sprintf("$f=%s", $self->encode($item->{enclosure}->{$f}));
      }
    }
    $output .= "/>";
  }

  for my $f (@itunes_fields) {
    if (defined $item->{itunes}->{$f}) {
      $s = $self->encode($item->{itunes}->{$f});
      $output .= "\t\t&lt;itunes:$f>$s&lt;/itunes:$f>\n";
    }
  }
  return $output .= "\t&lt;/item>\n";
}
1;
</p>

<p><p>For an example of usage, please see the previous post cited above. <br>
Report bugs in the comments or through email.  Thanks.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Updates coming]]></title>
    <link href="https://www.taskboy.com/2008-07-24-Updates_coming.html"/>
    <published>2008-07-24T00:00:00Z</published>
    <updated>2008-07-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-07-24-Updates_coming.html</id>
    <content type="html"><![CDATA[<p>I have lots of updates to make, but no time.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[RIP: George Carlin]]></title>
    <link href="https://www.taskboy.com/2008-06-23-RIP__George_Carlin.html"/>
    <published>2008-06-23T00:00:00Z</published>
    <updated>2008-06-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-06-23-RIP__George_Carlin.html</id>
    <content type="html"><![CDATA[
<img src="/img/carlin.jpg">


<p><p>I saw George Carlin on stage three times â once at the Cape Cod Melody Tent, a prime venue.  Mr. Carlin's comedy was formative for me as it was for many people.  His <em>Occupation: Foole</em> album was the first comedy album I'd ever heard. <br>
<p>Many comedians benefitted from the doors he open with his racy stuff.  Lenny Bruce is rightly credited with being an earlier adopter of blue language into his routine, but Carlin made the rough stuff palatably rather than merely raunchy and angry. <br>
<p>His political stuff was always a decade ahead of the pack. As he drifted into his golden years, he didn't mellow, but became more pointed on his attacks at the establishment.  He was the very icon of what stand-up comedy means to me.
<p>The seven famous words on his web site sum up it best: we love you and we'll miss you.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Five-year-olds of doom]]></title>
    <link href="https://www.taskboy.com/2008-06-05-Five-year-olds_of_doom.html"/>
    <published>2008-06-05T00:00:00Z</published>
    <updated>2008-06-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-06-05-Five-year-olds_of_doom.html</id>
    <content type="html"><![CDATA[
<a href="http://www.oneplusyou.com/bb/fight5">22</a><p><a href="http://www.oneplusyou.com/q">OnePlusYou Quizzes and Widgets</a></p>


<p><p>Finally, a meaningful  survey</a> on the web (via <a href="http://classicaljunkie.livejournal.com/">classicaljunkie</a>).
<p>Don't let their size fool you: these critters are dangerous in numbers.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Welcome to the Landed Gentry]]></title>
    <link href="https://www.taskboy.com/2008-06-02-Welcome_to_the_Landed_Gentry.html"/>
    <published>2008-06-02T00:00:00Z</published>
    <updated>2008-06-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-06-02-Welcome_to_the_Landed_Gentry.html</id>
    <content type="html"><![CDATA[
<img src="/img/moneybags.jpg" class="insert" title="Get off my lawn!">


<p>
<p>I have bought my first house.  It's the biggest thing I've ever bought and it will require more care and feeding than any pet I've owned. 
<p>On the upside, I now have the right to vote and smoke old guy cigars.
<p>Level me up one.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Leostream is hiring]]></title>
    <link href="https://www.taskboy.com/2008-05-25-Leostream_is_hiring.html"/>
    <published>2008-05-25T00:00:00Z</published>
    <updated>2008-05-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-05-25-Leostream_is_hiring.html</id>
    <content type="html"><![CDATA[
<img src="/img/propaganda.jpg" title="For the Greater Good!" class="insert">


<p><p>After five years, Leostream is finally got a <a href="http://www.leostream.com/aboutCareers.html">careers page</a> with [EDIT: some] content on it.  The times, they are a-changin'!
<p>If you're a self-motivated developer interested in working in the virtualization market (which is ridiculously hot right now), please consider sending your resume to Leostream.  You'll find all the particulars on the company web site, but I can list some of the things we're looking for in an engineer:</p>

<ul>
  <li>C++ or Perl.  These are the two primary development languages we use.  C++ for Windows dev and Perl for Linux dev.  Java is also a nice to have.
  <li>You need to understand socket programming and networking cold.  I don't care if you can actually resolve the address space of a given netmask, but you should know what a netmask is.
  <li>You should have some experience with RPC mechanisms and XML-RPC/SOAP in particular.
  <li>At least understand what a virtual machine is.  If I said, "what's a VMX file", you should know that it's the VMware config file for virtual machines.  If I said "VHD", you should think of the MSVS/Xen virtual disk format.
  <li>You have to be self-directed.  Leostream is growing fast and you'll need to puzzle out a lot of details for yourself.  Of course, that's not to say there's no support for new developers.   But, you'll need to keep your own task list up to date. :-D
  <li>Tolerance for start-ups.  Leostream does not have the amenities of larger companies.  If that's important to you, you'll need to look elsewhere. 
</ul>

<p><p>Also note that I'm not the hiring manager.  Please do not send your resumes to me.
<p>Cheers.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[RIP: Erik T. Ray]]></title>
    <link href="https://www.taskboy.com/2008-05-17-RIP__Erik_T.html"/>
    <published>2008-05-17T00:00:00Z</published>
    <updated>2008-05-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-05-17-RIP__Erik_T.html</id>
    <content type="html"><![CDATA[
<img src="/img/rav.jpg" class="insert" title="Erik T. Ray">


<p>One of my former O'Reilly colleagues has passed away.  <a href="http://www.ravelgrane.com/ER/index.html">Erik T. Ray</a> died last week  from complications due to a biking accident.  He was 38.</p>

<p><p>Erik had many interests aside from his chosen profession of programming.  If you've watched <a href="http://gameshelf.jmac.org/">The Gameshelf</a>, you've probably seen him (he was on twice as a player).  Erik wrote two books for O'Reilly, <em>Learning XML</em> and <em>Perl &amp; XML</em>.  At some point in the last five years (all of which are somewhat hazy to me now), Erik approached me to co-author a Ruby on Rails book.  Unfortunately, my schedule wasn't amenable to book writing at the time.
<p>Erik was a sweet guy.  A man of his dimensions could easily have bullied his way through social interactions, but that wasn't his way.  Intellectually curious, Erik was frequently cobbling together things, whether through coding, writing or more substantial media.
<p>Erik, you will be missed.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Watching Battlestar Galatica]]></title>
    <link href="https://www.taskboy.com/2008-05-12-Watching_Battlestar_Galatica.html"/>
    <published>2008-05-12T00:00:00Z</published>
    <updated>2008-05-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-05-12-Watching_Battlestar_Galatica.html</id>
    <content type="html"><![CDATA[<p><p>Sally and I watched <em>a lot</em> of the new Battlestar Galatica yesterday.  We're nearly through Season 3. While it's an engaging story, I do find the plotting and character arcs somewhat arbitrary.  It's not a <a href="http://en.wikipedia.org/wiki/Hard_science_fiction">"hard scifi"</a> epic I know, but still I don't want to hear about networked computers and firewalls when I'm not working.  Call them "analytic machines" and "logical ramparts" and I'll be happy.
<p>When there's more time, perhaps I'll write a more complete criticism of the show.  There are things it does very well, but it still feels a little flat to me overall.
<p>UPDATE: Just finished season 3.  Very disappointed.  The character arc of Baltar just isn't believable, Apollo continues to careen wildly from one life decision to another without a lick of continuity, and the revelation of long-time characters being Cyclons was literally a random choice by the writers.
<p>Here's a little tip for R&amp;D: If you're going to write a series with continuity, you have to bloody plot out the series before you start.   That makes it possible to plot the seasons and then the shows.  If you write the shows "on demand," you end of with confusing plot twists and inconsistencies that ruin the whole story.
<p>What a bunch of hacks.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Leostream funded (finally)]]></title>
    <link href="https://www.taskboy.com/2008-05-07-Leostream_funded_(finally).html"/>
    <published>2008-05-07T00:00:00Z</published>
    <updated>2008-05-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-05-07-Leostream_funded_(finally).html</id>
    <content type="html"><![CDATA[
<img src="img/burger-king.jpg" class="insert" title="I HEART cash">


<p><p>Does <a href="http://www.virtualization.info/2008/05/leostream-raises-3-million-in-series.html">this </a> mean we're now <a href="index.php?bid=1038">fiercely</a> less independent?</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Seen-ko day Mah-yo!]]></title>
    <link href="https://www.taskboy.com/2008-05-05-Seen-ko_day_Mah-yo_.html"/>
    <published>2008-05-05T00:00:00Z</published>
    <updated>2008-05-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-05-05-Seen-ko_day_Mah-yo_.html</id>
    <content type="html"><![CDATA[
<img src="/img/cinco.jpg" title="We can all celebrate a victory over the French." class="insert">


<p><a href="http://en.wikipedia.org/wiki/Cinco_de_mayo">Enjoy!</a></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Yes, taskboy email!]]></title>
    <link href="https://www.taskboy.com/2008-04-28-Yes,_taskboy_email_.html"/>
    <published>2008-04-28T00:00:00Z</published>
    <updated>2008-04-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-04-28-Yes,_taskboy_email_.html</id>
    <content type="html"><![CDATA[<p><p>Dear Internet, </p>

<p><p>Because I'm currently homeless, I do not have regular access to my taskboy.com email.  If you need to reach me, please use a different address.  If you don't know what that address is, I'm not telling you here.</p>

<p><p>That is all.</p>

<p><p>UPDATE Because of this fabulous article</a>, I can read taskboy email again!  I'm at the cutting edge of 1991 tricknology!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[John McCain will be the next US president]]></title>
    <link href="https://www.taskboy.com/2008-04-24-John_McCain_will_be_the_next_US_president.html"/>
    <published>2008-04-24T00:00:00Z</published>
    <updated>2008-04-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-04-24-John_McCain_will_be_the_next_US_president.html</id>
    <content type="html"><![CDATA[
<img src="/img/dracula3.jpg" class="insert">


<p><p>Even though I would prefer Mr. Obama, I'm reasonably sure now that John McCain will take the White House in November.  And I don't think the race will be close.
<p>The Democrats are now polarized into two camps.  One of those camps must loose in the candidate selection process.  That loss will embitter the other camp, who will not vote on election day.  Thus, the Republicans, who would not have had enough support to take the election, will find that their smaller base will be enough for victory.
<p>I believe now that Ms. Clinton will get her party's nod and will fail miserably in the general election.  I think Mr. Obama would do only a little better.
<p>The only way for the Dems to win in November, short of McCain eating a baby on live national TV, is for a Clinton/Obama ticket.  This conclusion is glaringly obvious, but egos are likely to prevent it from happening.
<p>Fortunately, there's not a big policy difference between the Dems and the GOP in this election.  However, there's a lot of house-cleaning that needs to be done that the Dems could do easier than the GOP (who caused a great deal of chaos in DC from 2000-2008).  </p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The Con]]></title>
    <link href="https://www.taskboy.com/2008-04-22-The_Con.html"/>
    <published>2008-04-22T00:00:00Z</published>
    <updated>2008-04-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-04-22-The_Con.html</id>
    <content type="html"><![CDATA[

<img src="/img/dangerfield.jpg" title="No respect" class="insert">



<blockquote>

Â«Now, you have to understand the way she said that, because it's the key to the whole project. The spirit of everything was formed within those nine words - and if she'd said them shyly, as though having her breasts touched by people was something to be endured or afraid of, the Open-Source Boob Project would have died aborning. But she didn't. Her words were loud and clearly audible to anyone who walked by, an offer made to friends and acquaintances alike.<br>

<br>

Yet it wasn't a come-on, either. There wasn't that undertow of desperation of come on, touch me, I need you to validate my self-esteem and maybe we'll hook up later tonight. There was no promise of anything but a simple grope.<br>

<br>

We all reached out in the hallway, hands and fingers extended, to get a handful. And lo, we touched her breasts - taking turns to put our hands on the creamy tops exposed through the sheer top she wore, cupping our palms to touch the clothed swell underneath, exploring thoroughly but briefly lest we cross the line from 'touching" to "unwanted heavy petting." They were awesome breasts, worthy of being touched.<br>

<br>

And life seemed so much simpler. Â»

</blockquote>

â<a href="http://theferrett.livejournal.com/1087686.html">The Ferret</a>

<p><p>These fourteen-year-olds sure have a lot of moxie.  I mean, going to a </p>

<p>convention, blogging, meeting girls and everythingâ¦ </p>

<p><p>What?  <a href="http://theferrett.livejournal.com/profile">HE'S THIRTY-EIGHT?!</a></p>

<p><p>Creepy.
<p>update:</p>

<p>I tried to reply to <a href="http://springheel-jack.livejournal.com/2504924.html#comments">Springheel Jack's post</a> about this, 
but he's got aggressive comment filtering on.  That's a shame as that reduces
the quality of the discussion.  And as arguing on the Internet makes us all dumber, I'll just note I had some dynamite stuff to add that's now gone.</p>

<p><p>lj: 1<br>jjohn: 0</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Moving in a week]]></title>
    <link href="https://www.taskboy.com/2008-04-20-Moving_in_a_week.html"/>
    <published>2008-04-20T00:00:00Z</published>
    <updated>2008-04-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-04-20-Moving_in_a_week.html</id>
    <content type="html"><![CDATA[
<img title="Be sure to label all boxes correctly" src="/img/hulk_hogan_costume.jpg" class="insert">


<p><p>Sally and I are moving into the burbs.  I couldn't be happier.
<p><a href="http://www.leostream.com/">Leostream</a> is moving offices too.  Also good.
<p>However, both moves have been scheduled for the same day.
<p>I'm a sad panda.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Reading EXT-2 filesystems from Windows]]></title>
    <link href="https://www.taskboy.com/2008-04-13-Reading_EXT-2_filesystems_from_Windows.html"/>
    <published>2008-04-13T00:00:00Z</published>
    <updated>2008-04-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-04-13-Reading_EXT-2_filesystems_from_Windows.html</id>
    <content type="html"><![CDATA[
<img src="/img/tux_logo.png" class="insert">


<p><p>There are two utilities I've found that let Windows users manage files on 
EXT-2 (and so EXT-3) filesystems. <br>
<p>The first is a <a href="http://www.fs-driver.org/download.html">filesystem driver</a> that let's you mount EXT-2 drives just 
like any other VFAT, NTFS drive.  Appears to work like a champ.
<p>The other is a less invasive
 tool</a> that allows you explore EXT-2 filesystems without mounting them.
<p>I have a network filer running linux with RAID-1, which is great.  I have a
SATA drive in a USB enclosure for backups.  Now, I can directly access the 
backup drive from Windows, should the filer fail.
<p>EXT-2/3 is nice because it handles large files and large capacities.  VFAT
just can't handle the new drive capacities without magic (even though the linux
vfat drive can handle 300GB drives without complaint).</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Zero Punctuation]]></title>
    <link href="https://www.taskboy.com/2008-04-12-Zero_Punctuation.html"/>
    <published>2008-04-12T00:00:00Z</published>
    <updated>2008-04-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-04-12-Zero_Punctuation.html</id>
    <content type="html"><![CDATA[<p></p>

<p><p>This dude reminds me of Gnat Torkington.  And it's not just because he talks funny.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Blogging from emacs running on the XO]]></title>
    <link href="https://www.taskboy.com/2008-04-07-Blogging_from_emacs_running_on_the_XO.html"/>
    <published>2008-04-07T00:00:00Z</published>
    <updated>2008-04-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-04-07-Blogging_from_emacs_running_on_the_XO.html</id>
    <content type="html"><![CDATA[
<img src="/img/wuarchives.jpg" class="insert" title="Behold the Greek God: Dorkus Maximus!">


<p><p>Although the <a href="http://wiki.laptop.org/">XO laptop</a> is constrained on memory (256M), it has a lot of hardware
features. 
<p>I shoved a 2GB USB drive into the XO, along with an apple keyboard and an MS optical
mouse. I wanted to record a video with the Record activity, but I was low on disk space.
Most of the pre-installed "activities" save files in /home/olpc/.sugar/default/org.laptop.[ACTIVITY].  I simply repointed org.laptop.RecordActivity/instance to /media/KINGSTON. <br>
That gave me room for videos.  Unfortunately, the RecordActivity seems to allow only 45 seconds of video to be recorded.  That's not really true.  It only <em>offers</em> you 45 seconds.   Since most of the sugar UI is python, and the RecordActivity is python, I was able to add the following to /usr/share/activities/Record.activity/constants.py:</p>

<p class="code">
DURATIONS.append(600)
</p>

<p><p>That changed the UI to allow 10 minute recordings. <br>
<p>I'd like to hack the UI to tell me the filename of the recording.  That's not too much to ask, is it?
<p>Also, I'm using my emacs blogging tools from the XO to write and publish this.  That 
means I had to shove Perl and GPG on here.  It's getting pretty crowded on the 1GB drive.
<p>Another note to jjohn: since you can't figure out how to import keys into gpg, just 
move the *gpg files in the blog project to where <em>gpg</em> expects them.  Not you. No
one cares where you think these files should go.  This is the second blog post I've had 
to make to you about this.  Perhaps you need to write an article about using GPG so that 
you don't forget again?  Still, GPG bets the hell out of X509 certificates.  What a 
bureaucratic nightmare those are. </p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[D&amp;D char gen is broken]]></title>
    <link href="https://www.taskboy.com/2008-04-04-D&amp;D_char_gen_is_broken.html"/>
    <published>2008-04-04T00:00:00Z</published>
    <updated>2008-04-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-04-04-D&amp;D_char_gen_is_broken.html</id>
    <content type="html"><![CDATA[<p><p>The silly <a href="/projects/DnD_character_generator/">D&amp;D character generator</a> I built does not print the character sheets any more.  I'm trying to figure out why.  It worked like a champ for a while. </p>

<p>UPDATE: I appear to have fixed it.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[CONTROL for windows]]></title>
    <link href="https://www.taskboy.com/2008-03-31-CONTROL_for_windows.html"/>
    <published>2008-03-31T00:00:00Z</published>
    <updated>2008-03-31T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-03-31-CONTROL_for_windows.html</id>
    <content type="html"><![CDATA[<p><a href="http://windowsxp.mvps.org/Autologon.htm">This article</a>
on using the little known "control" directive (USERPASSWORDS2) to access 
control panels I've
never seen shows that GUIs are as mysterious as command line interfaces.</p>

<p>Also see <a href="http://vlaurie.com/computers2/Articles/control.htm">this article</a> for even more goodies.</p>

<p>Amazingâ¦</p>

<p><p>UPDATE: Wait, <a href="http://support.microsoft.com/kb/315231">it gets better</a>.  Hack the registry to force an automatic login.   Seems like someone will create a .REG file to do thisâ¦</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[CutePDF - PDF printing for free on Windows]]></title>
    <link href="https://www.taskboy.com/2008-03-29-CutePDF_-_PDF_printing_for_free_on_Windows.html"/>
    <published>2008-03-29T00:00:00Z</published>
    <updated>2008-03-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-03-29-CutePDF_-_PDF_printing_for_free_on_Windows.html</id>
    <content type="html"><![CDATA[<p>While it's not entirely perfect, <a href="http://www.cutepdf.com/Products/CutePDF/writer.asp">CutePDF</a>
does allow easy PDF creation on Windows for free.  And you have to 
like that.  It installed in seconds.</p>

<p>I'd love to control the bookmarks and links in the PDF output, 
but that's why there are professional applications to do that.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[4000]]></title>
    <link href="https://www.taskboy.com/2008-03-24-4000.html"/>
    <published>2008-03-24T00:00:00Z</published>
    <updated>2008-03-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-03-24-4000.html</id>
    <content type="html"><![CDATA[
<img src="/img/Iraq_Quagmire.jpg" title="http://www.newsart.com/pa/personal/lachine.htm" class="insert">


<p>The cost of the Iraq war in American servicemen lives has crossed the rubicon of <a href="http://www.boston.com/news/world/articles/2008/03/24/american_death_toll_in_iraq_reaches_4000/">4000</a>.
This appalling number does not factor in Iraqi or American civilians. </p>

<p>This hideous war that began with <a href="http://www.counterpunch.org/wmd05292003.html">fiction</a> cannot be won, denied or escaped.  It is a cancer that will consume our American society to the same degree as the Vietnam war, although it will take more time to do so.</p>

<p><p>America is in Iraq primarily because of our energy policy has failed to change <a href="http://en.wikipedia.org/wiki/Fazlollah_Zahedi">since 1953</a>.  Our dependence on oil gives other nations the tools to harm us.  Our failure to plan sustainable long-term economic strategies mean that we need a choke-hold on energy supplies to stop "old" Europe, Russia and China from getting too uppity with us.
<p>There was a time when America was respected by the World as an example of hard work, innovation and decency.  But that was a long, long time ago.</p>

<p>Although I warmly welcome a change in American leadership, I do not think anyone but the Iraqi people can extricate us from our national hubris.</p>

<p>See you again at 5000.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Sister Bow!]]></title>
    <link href="https://www.taskboy.com/2008-03-22-Sister_Bow_.html"/>
    <published>2008-03-22T00:00:00Z</published>
    <updated>2008-03-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-03-22-Sister_Bow_.html</id>
    <content type="html"><![CDATA[



<p>Musicians are endless sources of comedy.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[liveJournal Blog Strike March 21]]></title>
    <link href="https://www.taskboy.com/2008-03-20-liveJournal_Blog_Strike_March_21.html"/>
    <published>2008-03-20T00:00:00Z</published>
    <updated>2008-03-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-03-20-liveJournal_Blog_Strike_March_21.html</id>
    <content type="html"><![CDATA[
<img src="/img/wells_clapping.gif" class="insert" title="Oh, well done!">


<p>Bloggers of liveJournal <a href="http://beckyzoole.livejournal.com/394838.html">unite</a>!  You have nothing to lose but your chains!</p>

<p><p>Or something.</p>

<p>Personally, I think every blogger (including me) should take a break from
clogging the Intertubes with chatter.  The idea that blogging is anything 
but vanity is dishonest.
<p>As for the reasons for the strike, they are misguided.  The users of 
LJ feel some ownership of the system which they were never promised.  If 
you want content freedom, <a href="/">rent your own server.</p>  
<p>On that time off from LJ, consider making a sort of P2P community 
blogging systems that's distributed and under no central control.  I think 
the openID system is a start in that direction.</p> 
The problem is that 
bandwidth isn't free.  Nor are the servers that run the software nor the people
that keep those machines running.  The piper needs to be paid so that you
can continue to 
<a href="http://www.youtube.com/watch?v=VgRq3S1qync">broadcast your pirate 
signal</a>.  And the consumers of the system have no right to the 
resources other people have paid for.  What, are we all Americans now?</p>

<p></p>

<p>As for my content on LJ, I've been on strike for quite some time.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Happy Wedding Nate and Kim]]></title>
    <link href="https://www.taskboy.com/2008-03-15-Happy_Wedding_Nate_and_Kim.html"/>
    <published>2008-03-15T00:00:00Z</published>
    <updated>2008-03-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-03-15-Happy_Wedding_Nate_and_Kim.html</id>
    <content type="html"><![CDATA[
<img src="/img/nate_and_kim.jpg" class="insert">


<p><p>Congratulations Nate and Kim!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[At the Java Room]]></title>
    <link href="https://www.taskboy.com/2008-03-12-At_the_Java_Room.html"/>
    <published>2008-03-12T00:00:00Z</published>
    <updated>2008-03-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-03-12-At_the_Java_Room.html</id>
    <content type="html"><![CDATA[<img src="/img/javaroom.jpg" class="insert">

<p>Well, here I am at the Javaroom in Chelmsford with my XO.  It's a cool, if underpowered little device.  It continues to draw more attention than even those fancy mac Air notebooks. I think its the lime green rabbit ears. Or maybe it's my own rabbit ears. <br>
The file upload HTML widget works weirdly on the Browse Activity. Recall that the XO attempts to hide the filesystem from the user and instead has a "journal" that remembers everything you did.  So the file upload, instead of presenting a file chooser dialog, presents this weird version of the journal. 
<p>Must get firefox on this bad boy somedayâ¦
Still, I can blog from my XO.  </p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[New PseudoCertainty episode: Worse than the Cure]]></title>
    <link href="https://www.taskboy.com/2008-03-09-New_PseudoCertainty_episode__Worse_than_the_Cure.html"/>
    <published>2008-03-09T00:00:00Z</published>
    <updated>2008-03-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-03-09-New_PseudoCertainty_episode__Worse_than_the_Cure.html</id>
    <content type="html"><![CDATA[
<img src="/img/apple-girl.gif" class="insert" title="uhâ¦This is a good thing?">


<p><p>Jumpin' horny toads!  It's a new pseudo ep!  This time Mike and I are in the studio together and you can feel the tension like it was  Brokeback Mountain.  Spook laser weapons, menacing seeds and eye teeth are in the crosshairs this show.
<p>Also, there's a bonus clip of Star Trek fan boy jawjacking! 
<p>Don't let wild wolverines keep you away!!!1!one</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[R.I.P. E. Gary Gygax]]></title>
    <link href="https://www.taskboy.com/2008-03-05-R.html"/>
    <published>2008-03-05T00:00:00Z</published>
    <updated>2008-03-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-03-05-R.html</id>
    <content type="html"><![CDATA[
<img src="/img/dungeon_master.jpg" title="Your petition for godhood has been denied" class="insert">


<p><p>As most nerds will have already heard, D&amp;D godfather and Wisconsin native E. Gary Gygax has <a href="http://blog.wired.com/underwire/2008/03/report-gary-gyg.html">passed on</a>.  </p>

<p>By weird coincidence, I have been re-reading many of Gygax's missives written for Dragon Magazine in the 80s and he would certainly qualify for the title of "Internet Crank" had the Internet been around in its current incarnation at the time.</p>

<p></p>

<p>Later, I'll have to post a bit of his rant on why Tolkein's LoTR has nothing to do with D&D.  Gygax goes futher to claim that he couldn't even make it through the series, although he did like <em>The Hobbit</em>.</p>

<p><p>His pendantry for both English grammar and medieval weaponry foreshadowed my own encounters with the IRC channel #perl very well. </p>

<p>Gygax was a man of strong opinions and modern nerd culture would be quite different with him.</p>

<p>Mr. Gygax, thanks for the rulesets.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Disabling iTunes update]]></title>
    <link href="https://www.taskboy.com/2008-02-29-Disabling_iTunes_update.html"/>
    <published>2008-02-29T00:00:00Z</published>
    <updated>2008-02-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-02-29-Disabling_iTunes_update.html</id>
    <content type="html"><![CDATA[
<img src="/img/itune_update_begone.png" title="Steve, we need to see other people" class="insert">


<p><p>Hey, Windows Users!
<p>Are you annoyed with the seemingly constant prodding from Apple to upgrade your iTunes/Quicktime installation with newer updates?  Ever been typing away happily in an application only to have Apple's nagware grab your keyboard and mouse focus away? 
<p><em>Stop being a victim and fight back!</em>
<p>You can disable this misfeature at the root.  Click on your trusty Start button and get to Programs > Accessories > System Tools > Scheduled Tasks.  Your screen will look something like the screenshot above.  Either delete the AppleSoftwareUpdate item all together 
or simply disable it by right clicking on the icon and going to Properties.
<p>Push verses Pull technologies: I think we know where I stand on this issue.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Londo and G'Kar: a ticket I can get behind]]></title>
    <link href="https://www.taskboy.com/2008-02-25-Londo_and_G&apos;Kar__a_ticket_I_can_get_behind.html"/>
    <published>2008-02-25T00:00:00Z</published>
    <updated>2008-02-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-02-25-Londo_and_G&apos;Kar__a_ticket_I_can_get_behind.html</id>
    <content type="html"><![CDATA[
<img src="/img/londo_gkar_08.jpg" title="The White House will never be the same" class="insert">


<p><p>Think <a href="http://www.cafepress.com/thejoestore/3950485">Londo and G'Kar</a> in Aught Eight.  Patriots and Statesmen both.  And willing to take one (be it an eye or a Keeper) for the team.  Leadership you can <em>trust</em>.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[James Burke walks us through post-modern life]]></title>
    <link href="https://www.taskboy.com/2008-02-24-James_Burke_walks_us_through_post-modern_life.html"/>
    <published>2008-02-24T00:00:00Z</published>
    <updated>2008-02-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-02-24-James_Burke_walks_us_through_post-modern_life.html</id>
    <content type="html"><![CDATA[<p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Waiting at SFO]]></title>
    <link href="https://www.taskboy.com/2008-02-13-Waiting_at_SFO.html"/>
    <published>2008-02-13T00:00:00Z</published>
    <updated>2008-02-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-02-13-Waiting_at_SFO.html</id>
    <content type="html"><![CDATA[
<img src="/img/joe_sfo.jpg" title="Awesome downtime!" class="insert">


<p><p>I'm waiting at SFO for my flight back to Boston.  I'm about 6 hours early.  Well, I wasn't that early until my flight got delayed.  Then I switched flights. bah.</p>

<p><p>As I'm on a business trip, I'd like to note how badly business folk get ripped off on trips.  After health care, it's America's most important crisis.</p>

<p><p>Also note that I'm blogging this from my XO laptop.  Apparently, it works with tmobile just fine. The keyboard is pretty unusable for any serious work.</p>

<p><p>Wish me luck.</p>

<p>UPDATE: Given the time on my hands, I started playing with this XO laptop.  Amazingly, I was able to install the pptpclient</a>
from Fedora without too much trouble.  That means, given a more solid net connection, I could use this laptop for business as a thin client!  Wow. <br>
<p>I also installed Doom and SimCity. Where's my O'Reilly interview? </p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The Superficial]]></title>
    <link href="https://www.taskboy.com/2008-02-05-The_Superficial.html"/>
    <published>2008-02-05T00:00:00Z</published>
    <updated>2008-02-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-02-05-The_Superficial.html</id>
    <content type="html"><![CDATA[<p><p>It's 2008 and I'm full beyond the questions "is America ready 
for a black president" or "is America ready for a woman president."  I'm 
dismayed that old feminists and old civil rights activists are lockstep
in their support for candidates based on race and gender.  It's just dumb.
These United States so desperately need adroit and wise leadership that 
the old battles of race and gender should seriously be put aside.
<p>I would like to see Barak Obama as the Democratic candidate.  Further, 
I'd like to see him elected president because I believe all the other 
candidates are far too tainted by special interests to make the hard decisions
that will face the next administration.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Gnomes will never be cool]]></title>
    <link href="https://www.taskboy.com/2008-02-04-Gnomes_will_never_be_cool.html"/>
    <published>2008-02-04T00:00:00Z</published>
    <updated>2008-02-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-02-04-Gnomes_will_never_be_cool.html</id>
    <content type="html"><![CDATA[








<p><p>D&amp;D 4ed. Cartoons.</p>

<p>Man, they didn't have <a href="http://www.wizards.com/default.asp?x=dnd/welcome&dcmp=ILC-DND062006FP">these</a> in my dayâ¦</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[YouTube for PseudoCertainty?]]></title>
    <link href="https://www.taskboy.com/2008-02-02-YouTube_for_PseudoCertainty_.html"/>
    <published>2008-02-02T00:00:00Z</published>
    <updated>2008-02-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-02-02-YouTube_for_PseudoCertainty_.html</id>
    <content type="html"><![CDATA[<p>Should 10 minute clips of PseudoCertainty be posted on YouTube.com?</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[New PseudoCertainty episode: NASApaloosa]]></title>
    <link href="https://www.taskboy.com/2008-01-31-New_PseudoCertainty_episode__NASApaloosa.html"/>
    <published>2008-01-31T00:00:00Z</published>
    <updated>2008-01-31T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-01-31-New_PseudoCertainty_episode__NASApaloosa.html</id>
    <content type="html"><![CDATA[<p>After much prodding, Mike and I have recorded a new ep of our internet-only radio show, pseudocertainty</a>.  On the docket: NASA, giant salamanders and Bobby Fisher.  What's not to like?</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Coka-cola: Paragon of American Virtue]]></title>
    <link href="https://www.taskboy.com/2008-01-25-Coka-cola__Paragon_of_American_Virtue.html"/>
    <published>2008-01-25T00:00:00Z</published>
    <updated>2008-01-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-01-25-Coka-cola__Paragon_of_American_Virtue.html</id>
    <content type="html"><![CDATA[<p>
  
  
  
  
  
  

<p>This clip is messed up.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Releasing the Qi]]></title>
    <link href="https://www.taskboy.com/2008-01-11-Releasing_the_Qi.html"/>
    <published>2008-01-11T00:00:00Z</published>
    <updated>2008-01-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-01-11-Releasing_the_Qi.html</id>
    <content type="html"><![CDATA[
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Taskboy: the next Facebook?]]></title>
    <link href="https://www.taskboy.com/2008-01-11-Taskboy__the_next_Facebook_.html"/>
    <published>2008-01-11T00:00:00Z</published>
    <updated>2008-01-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-01-11-Taskboy__the_next_Facebook_.html</id>
    <content type="html"><![CDATA[
<img src="/img/taskboy_pageviews_2007.gif" title="I'm a Thousandaire!" class="insert">


<p><p>The graphic above shows the number of pages served per year.  Nice tread, eh?  Maybe it's time to slap some Google Ads on this puppy and CASH OUT!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Utopia]]></title>
    <link href="https://www.taskboy.com/2008-01-02-Utopia.html"/>
    <published>2008-01-02T00:00:00Z</published>
    <updated>2008-01-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2008-01-02-Utopia.html</id>
    <content type="html"><![CDATA[<p><p>I looked up the word "utopia" in my Webster's 8th Collegiate dictionary last night.  The root of the word is related to  "topic" or "place".  I thought that the prefix meant "good", as in "eugenics", etc.  That is not the case.  The prefix "u" is Greek for "not", which makes the translation of utopia "no place," which I got a kick out of.   Also, let's not forget XTC's album "Nonsuch", which refers to the plans for a beautiful castle that was never built.
<p>Cynicism: it's baked into the language.
<p>UPDATE: As passerby noted, I was error about <a href="http://en.wikipedia.org/wiki/Nonsuch_Palace">Nonsuch</a>. 
I was perhaps mangling a memory I had of Andy Partridge talking about it.  Rock stars and their damned lies.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Happy Holidays]]></title>
    <link href="https://www.taskboy.com/2007-12-24-Happy_Holidays.html"/>
    <published>2007-12-24T00:00:00Z</published>
    <updated>2007-12-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-12-24-Happy_Holidays.html</id>
    <content type="html"><![CDATA[
<img src="/img/ascii_xmas.gif" class="insert">


<p><p>Dear Internet,
<p>Happy holidays and may the new year bring peace to this <a href="http://static.howstuffworks.com/gif/earth-1.jpg">small blue marble</a>.  It's not much, but it's all we have.<p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Looking for 'Revolt on Antares']]></title>
    <link href="https://www.taskboy.com/2007-12-23-Looking_for__Revolt_on_Antares_.html"/>
    <published>2007-12-23T00:00:00Z</published>
    <updated>2007-12-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-12-23-Looking_for__Revolt_on_Antares_.html</id>
    <content type="html"><![CDATA[
<a href="/img/revolt_on_antares.jpg"><img src="/img/revolt_on_antares.jpg" title="Erol Otus is still my personal savior" class="insert"></a>


<p><p>Dear Internet,
<p>For no reason more than nostalgia, I'm looking to buy a copy of the TSR minigame "Revolt on Antares".  If you've got a complete, usable copy of the game that you'd like to sell, please drop me an email (jjohn [at] taskboy dot com).  I'm not looking for a collectable, near-mint copy.
<p>Thanks!
<p>UPDATE (Jan 12, 2008): After a nerd-fisted slap fight on eBay over a near-mint version of the game, in which the bidding when over $100, I decided that I'd try <a href="http://www.alibris.com/">Alibris</a>, which has a used copy in an unknown condition for $27.  Who's laughing now, 
TSRwhore88?
<p>Even when I win, I lose.
<p>FINAL UPDATE: I received RoA today and was pleased to find all the counters still attached!  Near Mint, baby!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[XO laptop]]></title>
    <link href="https://www.taskboy.com/2007-12-18-XO_laptop.html"/>
    <published>2007-12-18T00:00:00Z</published>
    <updated>2007-12-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-12-18-XO_laptop.html</id>
    <content type="html"><![CDATA[<p><p>I'm writing this from my new XO laptop, from the One Laptop Per Child project, which I'm not linking to, out of sloth.
<p>While the UI takes a while to get used to, this device is a great if your looking for a portable terminal.  It reminds me favorably of the Mac Classics.
<p>I'll post more about this remarkable device later.  For now, I want to play with it!  </p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[36]]></title>
    <link href="https://www.taskboy.com/2007-12-12-36.html"/>
    <published>2007-12-12T00:00:00Z</published>
    <updated>2007-12-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-12-12-36.html</id>
    <content type="html"><![CDATA[
<a href="/img/pittsford_53.gif"><img src="/img/pittsford_53_sm.gif" class="insert" title="1953.  Left to right: Pat Cowan, unknown, Charles Cowan, unknown, Nancy Cowan"></a>


<p><p>Today I am 36 years old.  As has been my tradition, I jot down a few thoughts for the public and the future on  passing these ordinary milestones of life.
<p>To say that this year saw significant changes in my life is a gross understatement.  Not only did I move out an apartment that I had occupied for 12 years, I moved in with the woman I was to marry.  I wore a kilt for the first time this year.  The company I work for, Leostream, moved to larger offices.  I had my first vacation in Jamestown this summer.
<p>Not all changes have been good though.  I lost a cat, Tempest, and my mother, Pat Johnston, to cancer.  A second cat (of the original three) also has cancer.  There was a host of other deaths of important family and friends this year too.  All of which has put me in a reflective mood.
<p>As a remembrance of things gone by, I post this picture from 1953 of my mom with her siblings and who I suspect are her maternal grandparents.  I was very close to not only my mom but her sister and brother.  As of December 2, everyone in that picture has passed on. <br>
<p>The fifties where the formative decade for my parents (who weren't hippies or beatniks at all).  In many ways, they attempted to inculcate that same culture to my brothers and me.  Most of those lessons could be boiled down to:</p>

<ul>
  <li>The Golden Rule
  <li>Don't be burden on others
  <li>Mind your own damn business
</ul>

<p><p>More than ever, I feel the responsibility of being an adult more acutely than ever before.  I've got more than my personal budget to deal with now.
<p>I expect even more changes personally and professional next year.
<p>Duty now for the future.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Save the Internet]]></title>
    <link href="https://www.taskboy.com/2007-12-08-Save_the_Internet.html"/>
    <published>2007-12-08T00:00:00Z</published>
    <updated>2007-12-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-12-08-Save_the_Internet.html</id>
    <content type="html"><![CDATA[<p>
<p><em>blink</em> <em>blink</em>
<p>Wha-haup-pinned?
<p>Also see:
</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The perfect zero score]]></title>
    <link href="https://www.taskboy.com/2007-12-07-The_perfect_zero_score.html"/>
    <published>2007-12-07T00:00:00Z</published>
    <updated>2007-12-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-12-07-The_perfect_zero_score.html</id>
    <content type="html"><![CDATA[
<a href="/img/ss-zero.gif"><img src="/img/ss-zero-sm.gif" title="The perfect failure" class="insert"></a>


<p><p>Funny thing, Atari Space Invaders.  It's mind-numbing in its simplicity and yet I love to play it for as long as I can.  It's perhaps the best realized game of the original batch of Atari 2600 titles. At some point I'd like to more formally contrast Atari's invaders with the original arcade version (which the NES aped), but that's a tomorrow project (for the gameshelf?). 
<p>Anyway, in a game without much point, a favorite meta-game is to see how many times you can "roll the score".  As you will remember, the score in the 2600 version of this game only goes to 9999.  After that, the score is reset to 0000.
<p>In my day, you had to make your own fun out of the video games that were available.
<p>Anyway, tonight I managed to die just as I rolled the score.  I've never ended a game with 0000 before.  Where's my <a href="http://en.wikipedia.org/wiki/Swordquest">gold-plated gladis</a> of victory?</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Creative commons for taskboy?  Yes!]]></title>
    <link href="https://www.taskboy.com/2007-12-01-Creative_commons_for_taskboy___Yes_.html"/>
    <published>2007-12-01T00:00:00Z</published>
    <updated>2007-12-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-12-01-Creative_commons_for_taskboy___Yes_.html</id>
    <content type="html"><![CDATA[<p><p>I'm considering licenses all of the music content on this site through creative commons.  It's already free to download and I've never refused anyone the right to reuse any of the material.
<p>Anyone have any thoughts about this?  Any hidden downsides to this kind of licensing?
<p>Update: I've updated the licensing on the music page.  I've also updated the ID3 info on each file so that there's some link back to this site.  I'm the cutting edge of 1999!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Last one standing]]></title>
    <link href="https://www.taskboy.com/2007-11-29-Last_one_standing.html"/>
    <published>2007-11-29T00:00:00Z</published>
    <updated>2007-11-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-11-29-Last_one_standing.html</id>
    <content type="html"><![CDATA[
<img src="/img/thumb180.jpg" class="insert" title="Leostream: Fiercely independent">


<blockquote>&laquo;This all begs the question: what does the future hold for Leostream, which is the last remaining standalone connection broker vendor? Will another hypervisor developer, or perhaps another management ISV, make a move to snap it up?&raquo;</blockquote>

<p>âTrading Markets</a></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Python debugging]]></title>
    <link href="https://www.taskboy.com/2007-11-29-Python_debugging.html"/>
    <published>2007-11-29T00:00:00Z</published>
    <updated>2007-11-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-11-29-Python_debugging.html</id>
    <content type="html"><![CDATA[Note to self: turn on the CLI debug this way:<br>
<p><br>
python -m pdb [script]<br>
</p><br>

<p>That is all.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Patricia Johnston 1935-2007]]></title>
    <link href="https://www.taskboy.com/2007-11-26-Patricia_Johnston_1935-2007.html"/>
    <published>2007-11-26T00:00:00Z</published>
    <updated>2007-11-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-11-26-Patricia_Johnston_1935-2007.html</id>
    <content type="html"><![CDATA[
<a href="/img/101-0195_img.jpg"><img src="/img/101-0195_img.jpg" title="Mom with her youngest granddaughter" class="insert"></a>


<p><p>Despite not wanting to put overly personal things in this space, I wanted to announce this bit of news once to avoid repeating myself.
<p>Pictured above is my Mom, Pat.  On November 15th, I brought her to the hospital because she was complaining of "feeling off."  She had trouble speaking.  She could not find the right words to express herself.
<p>After a number of tests, it was confirmed that tumors in her brain were causing some of her discomfort.  She had had undiagnosed lung cancer for some time that had spread to her brain, adrenal glands and lymph nodes.  She was a life-long smoker.
<p>For such an advanced stage of cancer, there is no treatment.
<p>This week, Mom will be going to a nursing home that will attend to her final needs, which amounts to morphine. She can no longer speak and doesn't appear to be eating.  We expect the end  soon. <br>
<p>Over the past few weeks, my brothers and I have been very busy putting her affairs in order.
<p>If you wish to send your condolences to her, please email me and I will provide you with the contact information.  I would ask that you not try to visit her, as she will likely be sleeping when you arrive.
<p>Thank you for your support during this time.
<p>UPDATE: Mom passed at 3:30A on  12/02/2007.   Rest in Peace, Mom.
<p>UPDATE: Mom's obituary will appear in Sunday's Boston Globe and Cape Cod Times, 12/09/2007.  No funeral is planned (her wishes), but a memorial service will be announced later.  In lieu of flowers, please consider making a donation to the  <a href="http://www.lungusa.org/site/pp.asp?c=dvLUK9O0E&amp;b=22556">American Lung Association</a> in Pat's name.  </p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Take this pain away]]></title>
    <link href="https://www.taskboy.com/2007-11-24-Take_this_pain_away.html"/>
    <published>2007-11-24T00:00:00Z</published>
    <updated>2007-11-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-11-24-Take_this_pain_away.html</id>
    <content type="html"><![CDATA[<p>
<p>From <a href="http://urbaniak.livejournal.com/">Urbaniak's liveJournal</a>.    </p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Gabriel and the Fairlgiht]]></title>
    <link href="https://www.taskboy.com/2007-11-19-Gabriel_and_the_Fairlgiht.html"/>
    <published>2007-11-19T00:00:00Z</published>
    <updated>2007-11-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-11-19-Gabriel_and_the_Fairlgiht.html</id>
    <content type="html"><![CDATA[<p>
<p>More early Pete Gabriel madness.  Also a plus for those who think samplers are too complicated these days.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The Lamb Lies Down]]></title>
    <link href="https://www.taskboy.com/2007-11-13-The_Lamb_Lies_Down.html"/>
    <published>2007-11-13T00:00:00Z</published>
    <updated>2007-11-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-11-13-The_Lamb_Lies_Down.html</id>
    <content type="html"><![CDATA[<p>
<p>From Pete Gabriel's 1978 solo tour.  So much energyâ¦</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[New PseudoCertainty episode: S.S.E.T.I.]]></title>
    <link href="https://www.taskboy.com/2007-11-11-New_PseudoCertainty_episode__S.html"/>
    <published>2007-11-11T00:00:00Z</published>
    <updated>2007-11-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-11-11-New_PseudoCertainty_episode__S.html</id>
    <content type="html"><![CDATA[
<img src="/img/great_swallower.jpg" title="The Great Swallower" class="insert"> 


<p><p>Mike and I proudly present a new episode of <a href="http://www.pseudocertainty.com/">PseudoCertainty </a>that covers new Planets, old arguments and weaponized dung.  Also, fish-on-fish violence.  What's not to love?</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Farting out atonal bleeps]]></title>
    <link href="https://www.taskboy.com/2007-11-09-Farting_out_atonal_bleeps.html"/>
    <published>2007-11-09T00:00:00Z</published>
    <updated>2007-11-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-11-09-Farting_out_atonal_bleeps.html</id>
    <content type="html"><![CDATA[



<p><p>A funny retrospective on the banality of video games from a wacky Brit.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Gameshelf update]]></title>
    <link href="https://www.taskboy.com/2007-11-08-Gameshelf_update.html"/>
    <published>2007-11-08T00:00:00Z</published>
    <updated>2007-11-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-11-08-Gameshelf_update.html</id>
    <content type="html"><![CDATA[
<a rel="enclosure" href="http://blip.tv/file/get/Zendonut-EconomicGames700.mov"><img title="Click to play" alt="Video thumbnail. Click to play" src="http://blip.tv/file/get/Zendonut-EconomicGames700.mov.jpg" title="Click To Play"></a><br><a rel="enclosure" href="http://blip.tv/file/get/Zendonut-EconomicGames700.mov">Click To Play</a>


<p>
<p>Hey kids!  There's a new Gameshelf out (ep. 6) about economic games.  The ones reviewed are Acquire and M.U.L.E.
<p>In other gameshelf news, I recently reworked the gameshelf theme as <a href="/music/gameshelf-bumper-1.mp3">bumper music</a>.  It's sort of a cross between Enya and Christmas music â not too interruptive.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[A broad smile]]></title>
    <link href="https://www.taskboy.com/2007-11-05-A_broad_smile.html"/>
    <published>2007-11-05T00:00:00Z</published>
    <updated>2007-11-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-11-05-A_broad_smile.html</id>
    <content type="html"><![CDATA[
<img src="/img/sally_and_joe.jpg" title="I'm a tiny man!" class="insert">


<p><p>I hate blogs about weddings and that includes my own.  I'll simply note  that I'm grateful to all who attended an exceeding blustery service.  The day went by in a blur.  I'll eventually post the wedding pictures in the usual place.
<p>Many asked me what I was wearing beneath my kilt.  The subject line of this blog was my answer. <code>:-)</code></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[No longer granting patents]]></title>
    <link href="https://www.taskboy.com/2007-10-25-No_longer_granting_patents.html"/>
    <published>2007-10-25T00:00:00Z</published>
    <updated>2007-10-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-10-25-No_longer_granting_patents.html</id>
    <content type="html"><![CDATA[

  
  
  
  
  
  



<p><p>Remember: Gas is virtually unlimited! <br>
It makes the world go round!  And, gas is so much more efficient than the alternative: gunpowder-fueled engines.
<p>Hats off to Rube for sucking some cash out of of the automobile-oil complex.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Make it so-so]]></title>
    <link href="https://www.taskboy.com/2007-10-14-Make_it_so-so.html"/>
    <published>2007-10-14T00:00:00Z</published>
    <updated>2007-10-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-10-14-Make_it_so-so.html</id>
    <content type="html"><![CDATA[
<img src="/img/trekkie.jpg" title="Sure, make the fat guy an officer and give him a teady bear too" class="insert">


<p><p>Yes, complaining about the mediocrity of Star Trek is akin to warning about the fall of the Roman Empire, but still, something needs to be said about it.</p>

<p><p>All the Star Trek stuff written after 1984 varies between first- and third-  rate fan fiction.  I just finished watching the end of the movie "First Contact" (not to be confused with the TNG ep of the same name) and was awash with nausea.  The movie was as edgy as a mid-season episode of Lassy or Touched by an Angel (a title that holds nigh-infinite promise for pornography).</p>

<p><p>Also note <a href="http://en.wikipedia.org/wiki/Ezri_Dax">this gem</a> of plot from Wikipedia:</p>

<blockquote>
In Pocket Books' non-canon DS9 Relaunch novels, Ezri remains on Deep Space Nine but moves from counseling to command, receiving a promotion to lieutenant and becoming executive officer of the USS Defiant. Following a mission on the Trill homeworld, she and Bashir end their romance but decide to remain close friends.
</blockquote>

<p><p>Whah?  People can break up and "remain close friends"?  A councelor can be promoted to a commander?  What the hell kind of outfit is the Federation running anyway?  How did the Klingons fail to beat these chuckleheads anyway? </p>

<p><p>Let's give Data emotions and promote Troy to Lord Governor Militant of Federation.  Wait!  Let's give Beverley Crusher command of her own "medical" ship.  She's probably qualified, right?  </p>

<p><p>Just awful.  Jim Kirk, I'm glad you weren't alive to see what became of your beloved Federation.</p>

<p><p>Also see <a href="http://torgo-x.livejournal.com/994575.html">this blog</a> for new ways in which to understand the original series.
<p>UPDATE: Why on earth were comments disabled on this important entry?</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Pseudocertainty is down]]></title>
    <link href="https://www.taskboy.com/2007-10-11-Pseudocertainty_is_down.html"/>
    <published>2007-10-11T00:00:00Z</published>
    <updated>2007-10-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-10-11-Pseudocertainty_is_down.html</id>
    <content type="html"><![CDATA[<p>The pseudocertainty site is down for now.  I think its a victim of the server migration, but I don't know.  Too tired to fix it tonight.  Will work on it this weekend.</p>

<p>UPDATE: Fixed.  A typo in the DNS recored hosed me.  Sigh.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[How to configure Dell PowerEdges for Wake On LAN]]></title>
    <link href="https://www.taskboy.com/2007-10-01-How_to_configure_Dell_PowerEdges_for_Wake_On_LAN.html"/>
    <published>2007-10-01T00:00:00Z</published>
    <updated>2007-10-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-10-01-How_to_configure_Dell_PowerEdges_for_Wake_On_LAN.html</id>
    <content type="html"><![CDATA[<p><p>Dear Lazyweb, </p>

<p><p>I have a few Dell PowerEdge 2450's and 2650's that I'd like to boot through a Wake on LAN facility.  However, I cannot figure out where in the BIOS one enables WOL.</p>

<p><p>Perhaps one fine readers could point in the right direction?</p>

<p><p>Note: these are eBay machines, so I don't have the original install disks.</p>

<p><p>Thanks in advance, emergent intelligence bio-mechanical entity called "World Wide Web."</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Megaman 2 miniboss order]]></title>
    <link href="https://www.taskboy.com/2007-09-26-Megaman_2_miniboss_order.html"/>
    <published>2007-09-26T00:00:00Z</published>
    <updated>2007-09-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-09-26-Megaman_2_miniboss_order.html</id>
    <content type="html"><![CDATA[
<img src="/img/megaman.gif" title="Get Dr. Wiley!" class="insert">


<p><p>For no particular reason, I'd like to record my preferred order for tackling the minibosses at the beginning of the NES game Megaman 2.  Pay close attention.</p>

<ol>
  <li>Airman: Use your shooter
  <li>Metalman:  Use your shooter
  <li>Woodman: Use metal blades
  <li>Bubbleman:  Use metal blades
  <li>Crashman: Use air attack
  <li>Heatman: Use bubble attack
  <li>Flashman: Use heat attack or shooter
  <li>Quickman: Use crash bombs
</ol>

<p><p>If you follow this order, you should have all the special weapons you need when you need to get 1UPs and other goodies.
<p>Good hunting.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[LotGD back up]]></title>
    <link href="https://www.taskboy.com/2007-09-18-LotGD_back_up.html"/>
    <published>2007-09-18T00:00:00Z</published>
    <updated>2007-09-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-09-18-LotGD_back_up.html</id>
    <content type="html"><![CDATA[<p>Legend of the Green Dragon is back up.  During the recent server migration, all the data got hosed.  However, that also means new standings.  Good luck!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[At Logan again]]></title>
    <link href="https://www.taskboy.com/2007-09-09-At_Logan_again.html"/>
    <published>2007-09-09T00:00:00Z</published>
    <updated>2007-09-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-09-09-At_Logan_again.html</id>
    <content type="html"><![CDATA[<p><p>Because I misread my flight information, I'm trapped at beautiful Logan International Airport for several hours.  I'm on my way to San Francisco for my third VMWorld show. 
<p>It's a pretty gray day out the windows of the food court in Terminal C.  It's a hot one too, but I know this through reports.  The AC in here keeps the climate nice and cool.  Along with Internet access, there's little less I really need for the day.  Of course, a coach would be welcome for a napâ¦</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Science stole my idea!]]></title>
    <link href="https://www.taskboy.com/2007-08-31-Science_stole_my_idea_.html"/>
    <published>2007-08-31T00:00:00Z</published>
    <updated>2007-08-31T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-08-31-Science_stole_my_idea_.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://www.rochester.edu/news/show.php?id=2963">U of Rochester</a> reports:</p>

<blockquote>Scientists at the University of Rochester and the J. Craig Venter Institute have discovered a copy of the genome of a bacterial parasite residing inside the genome of its host species.
</blockquote>

<p><p>You'll never believe this, but I've been pondering a scifi story that features parasites that do exactly this.  It's not fair that science as stolen my cruddy idea and I expect to be compensated for it.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[It's my fault Black Leaf died]]></title>
    <link href="https://www.taskboy.com/2007-08-20-It_s_my_fault_Black_Leaf_died.html"/>
    <published>2007-08-20T00:00:00Z</published>
    <updated>2007-08-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-08-20-It_s_my_fault_Black_Leaf_died.html</id>
    <content type="html"><![CDATA[
<img src="/img/dnd_coven.gif" title="I'd sell my soul to cast Magic Missileâ¦" class="insert">


<p><p><a href="http://www.chick.com/reading/tracts/0046/0046_01.asp">Here is a long-winded scare comic about the dangers of the Dungeon and Dragon's role-playing game.  It's from 1984.  The main gist is how playing around with fake magic diminishes one's faith in Jesus.
<p>A few things:</p>

<ul>
  <li>Although boys are shown playing the game, they are not part of the comic's plot, presumably because they're not prime witch material.
  <li>Kudos to the author for taking a swipe at the Olde Timey cult of Diana, the Goddess of Willful Girls.  It's good to see a grudge can last two thousand years.
  <li>Double kudos for making the DM a black-clad woman named "Ms. Frost".  Why not have called her "The Ice Queen" or "Lilith"?
  <li>D&D is a game.  There's no magic in it, outside of marketing.  It's  hardly a gateway to adventure, let alone  Satanism.
  <li>If your religion is in competition with a game, you need a new religion.
</ul>

<p><p>This is the danger of magical thinking that many Religions rely on.  If what draws you to a faith is magic, then you'll always be seduced by the latest witch doctor in town.</p>

<p><p>I don't play Pen and Paper RPGs anymore (but I did in 1984), but I continue to be irritated by bible-thumpers who <a href="http://torgo-x.livejournal.com/2007/04/14/">still villify the game.
I never summoned a demon or "mind-controlled" my parents while playing this game, but I did improve my SAT English scores.
<p>Is D&amp;D worse for Christians than, say, Doom, in which you stalk humanoid monster in the dark and slay them by the hundreds?  Perhaps the masturbatory Tom Clancy games of counter-terrorism are more Jesus-friendly?  After all, you get to kill the non-believers by the dozens.</p>


Watch the monkey get hurt, Monkey</a>


<p><em>(P.S. Marcie, sorry about the death of Black Leaf, but if she couldn't find a simple poison trap, she was no damn use to anyone.  Consider not playing Thieves with DEX scores less than 17.)</em></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Atari 2600 code]]></title>
    <link href="https://www.taskboy.com/2007-08-19-Atari_2600_code.html"/>
    <published>2007-08-19T00:00:00Z</published>
    <updated>2007-08-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-08-19-Atari_2600_code.html</id>
    <content type="html"><![CDATA[
<img src="/img/StEligius_03.jpg" title="The Cutting Edge of 1982 assembler" class="insert">


<p><p>This is my current hobby.  It's giving me a much clearer understanding how to actually <em>use</em> assembler to do common programming tasks.  While there is  little call for 6502 programmers these days, I feel like I can better understand general purpose CPU programming now.
<p>This code is a moderate hack of the kernel code shown <a href="http://www.atariage.com/forums/index.php?showtopic=47479">here</a>.</p>

<p class="code">
;; Built with:  http://www.atari2600.org/DASM/DASM22010b.zip
;; bin\DOS\DASm.exe playfield2.asm \ 
;; -IDASM\Machines\ATARI2600 \
;; -f3 -v5 -o..\ROMS\a.bin 
;;
       processor 6502
       include "VCS.h"
       include "macro.h"

PATTERN         = $80       ; first byte of RAM
SHAPE       = $55
BGCOLOR_ADDR    = $81
BGCOLOR     = $0A
BGTIMER_ADDR    = $82
BGTIMER     = 40
PLAYFIELD_COLOR = $0
TIMETOCHANGE    = 20

        SEG
        ORG $F000

Reset

    ;; Zero out RAM, TIA
    ;; RAM - $80-$FF
    ;; TIA - 0 - $7F    
    ldx #0
    lda #0
RAMLoop
    sta 0,x
    inx
    bne RAMLoop

    ;; ââ-
    ;; Init playfield   
    ;; ââ-
    lda SHAPE
    sta PATTERN
    lda #PLAYFIELD_COLOR
    sta COLUPF
    ldy #0          ; animation clock

    lda #$10    ; Remember, 
                        ; high nibble 
                        ; is read
                        ; backwards
    sta PF0

    lda #$80    ; Entire byte
                        ; read backwards
    sta PF2

    lda #$01
    sta CTRLPF

    ;; setup the bgcolor stuff
    ldx #BGTIMER
    stx BGTIMER_ADDR

    ldx #BGCOLOR
    stx BGCOLOR_ADDR
    stx COLUBK

StartOfFrame

    ; Start of vblank processing
        lda #0
    sta VBLANK
        lda #2
        sta VSYNC

        ; 3 scanlines of VSYNCH 
        sta WSYNC
        sta WSYNC
        sta WSYNC

        lda #0
        sta VSYNC

        ; 37 lines of vertical blank
    ldx #$CA
VertBlank
        inx
    sta WSYNC
    bne VertBlank

    ;; Playfield animation
    iny
    cpy #TIMETOCHANGE
    bne NOTYET

    ldy #0  ; reset ani clock
    ;; bit shift the pattern
    asl PATTERN
    bne NOTYET

    ;; Reset pattern
    lda SHAPE
    sta PATTERN


NOTYET
    lda PATTERN
    sta PF1

    ;; Change the color by adding
        ;; the aniclock tick to the 
        ;; base color
    clc
    tya 
    adc PLAYFIELD_COLOR
    sta COLUPF

    ;; 192 scanlines of picture
    ldx #$C0    
MainPicture
    sta WSYNC ; strobe Wait for Sync
    dex
    bne MainPicture

    ;; Is it time to change 
        ;; the BG COLOR?
    dec BGTIMER_ADDR
    bne LOAD_BGCOLOR

    ;; Yes - restore timer, 
        ;; change color
    ldx #BGTIMER
    stx BGTIMER_ADDR 
    asl BGCOLOR_ADDR
    bne LOAD_BGCOLOR

    ;; Reset BGCOLOR
    ldx #BGCOLOR
    stx BGCOLOR_ADDR

LOAD_BGCOLOR
    ldx BGCOLOR_ADDR 
    stx COLUBK

    ;; Vertical Blanking
        lda #%01000010
        sta VBLANK       

        ; 30 scanlines of overscanâ¦
    ; #D2 = 226, 256-30
    ldx #$D2
OverScanLoop
    inx
    sta WSYNC
    bne OverScanLoop

        jmp StartOfFrame

        ORG $FFFA

    ;; Interrupt Vectors
        .word Reset          ; NMI
        .word Reset          ; RESET
        .word Reset          ; IRQ

  END

</p>

<p><p>I'd like to make some playable game for the atari 2600 some day.  That would bring my childhood dreams to life.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Using CSS for mouse-over effects]]></title>
    <link href="https://www.taskboy.com/2007-08-06-Using_CSS_for_mouse-over_effects.html"/>
    <published>2007-08-06T00:00:00Z</published>
    <updated>2007-08-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-08-06-Using_CSS_for_mouse-over_effects.html</id>
    <content type="html"><![CDATA[<p>The following is a follow-on to 
<a href="http://fixmysite.blogspot.com/2006/06/tutorial-image-rollovers-in-straight.html">Jason Edelman's</a> fine tutorial.  (Also see <a href="http://css.maxdesign.com.au/listamatic/">listomatic</a>.)</p>

<p>Here's what I want:</p>



#nav { 
        width: 300px;
    font-size: 12px;
    line-height: 20px;
}

#nav UL {
    list-style-type: none;
    margin: 0;
    padding: 0;
} 

#nav LI {
    width: 100px;
    background: #DDD;
    background-image: none;
    list-style-type: none;
    margin: 0;
    padding: 0;

}

#nav A {
    width: 100px;
    display: block;
}

#nav A:hover {
    color: #CC3;
    background: #CFC; 
    background-image: url(img/arrows.gif);
    background-repeat: no-repeat;
    background-position: right;
}


<ul id="nav">
  <li><a href="first.html">First item</a></li>
  <li><a href="second.html">Second item</a></li>
</ul>


<p>This is a pretty basic application of ID selectors and that nutty img() function in CSS.  Even though you could view the source of the is page to see how it's done, I'll just escape it here for the lazy:</p>

<p class="code">
&lt;style type="text/css">
#nav { 
        width: 300px;
    font-size: 12px;
    line-height: 20px;
}

#nav UL {
    list-style-type: none;
    margin: 0;
    padding: 0;
} 

#nav LI {
    width: 100px;
    background: #DDD;
    background-image: none;
    list-style-type: none;
    margin: 0;
    padding: 0;

}

#nav A {
    width: 100px;
    display: block;
}

#nav A:hover {
    color: #CC3;
    background: #CFC; 
    background-image: url(img/arrows.gif);
    background-repeat: no-repeat;
    background-position: right;
}

&lt;/style>
&lt;ul id="nav">
  &lt;li>&lt;a href="first.html">First item&lt;/a>&lt;/li>
  &lt;li>&lt;a href="second.html">Second item&lt;/a>&lt;/li>
&lt;/ul>

</p>

<p>Notice that the width for the #nav A element and the #nav LI element should agree.  I wish there were a more generic way of setting this size (I suppose some fancy javascript could do it), but since I intend to use this for navigational stuff, this is just fine for me.</p>

<p>This code was tested in IE and Firefox.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[PseudoChild]]></title>
    <link href="https://www.taskboy.com/2007-08-04-PseudoChild.html"/>
    <published>2007-08-04T00:00:00Z</published>
    <updated>2007-08-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-08-04-PseudoChild.html</id>
    <content type="html"><![CDATA[
<img src="/img/classy_wine2.gif" title="You'll need a belt for this show" class="insert">


<p>A new <a href="http://pseudocertainty.com/">PseudoCertainty </a> podcast is now available.  You'll have to decide which is creepier: a 30-minute discussion of the last Harry Potter book or maggots living in your head.  Both are covered in this show.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Bukowski's Peanuts]]></title>
    <link href="https://www.taskboy.com/2007-08-03-Bukowski&apos;s_Peanuts.html"/>
    <published>2007-08-03T00:00:00Z</published>
    <updated>2007-08-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-08-03-Bukowski&apos;s_Peanuts.html</id>
    <content type="html"><![CDATA[
<img src="/img/peanuts.jpg" title="Dames.  Damnâ¦" class="insert">


<p><p>If Charles Bukowski wrote Peanuts, it would look a lot like <a href="http://www.progressiveboink.com/archive/peanuts-by-charles-bukowski/">this</a>.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[XML::RSS parsing error]]></title>
    <link href="https://www.taskboy.com/2007-07-30-XML__RSS_parsing_error.html"/>
    <published>2007-07-30T00:00:00Z</published>
    <updated>2007-07-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-07-30-XML__RSS_parsing_error.html</id>
    <content type="html"><![CDATA[
<img src="/img/camel.gif" title="It worked beforeâ¦" class="insert">


<p>If you are using the Perl module XML::RSS in the following way:</p>

<p class="code">
my $R = XML::RSS->new;
foreach my $url (@urls) {
  my $content = wget($url);
  $R->parse($content);
}
</p>

<p><p>In older versions of the XML::RSS module, this code worked fine.  However, if you have upgraded the module recently, you might have noticed the error message:</p>

<p><code>
Modification of non-creatable array value attempted, subscript -1 at /usr/local/lib/perl5/site_perl/5.8.5/XML
/RSS.pm line 792.
</code></p>

<p><p>It is not the feed that has gone rancid on you, but the library.  Try instantiating a RSS object within the loop like this:</p>

<p class="code">
foreach my $url (@urls) {
  my $content = wget($url);
  my $R = XML::RSS->new;
  eval{$R->parse($content)};
  if ($@) {
    warn("Parse error: $@");
    next;
  }
}
</p>

<p>I've added some "exception" handling for free in this example so that parse errors don't blow up your program.</p>

<p>I'm afraid I did not dive into XML::RSS.pm to figure out the problem, but if someone with that knowledge wishes to post below, I'm sure won't be the only one who welcomes enlightenment.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The kids are all right]]></title>
    <link href="https://www.taskboy.com/2007-07-26-The_kids_are_all_right.html"/>
    <published>2007-07-26T00:00:00Z</published>
    <updated>2007-07-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-07-26-The_kids_are_all_right.html</id>
    <content type="html"><![CDATA[<p><p>Just finished the last Harry Potter book last and it was delightful.  Many of my suspicions about Snape were well-founded, but Albus's back story was even more interesting.
<p>The number of deaths of familiar characters in this book is a little staggering.
<p>The one complaint I have is that there just wasn't enough space for the minor characters to shine.  In this book more than the others, it was a non-stop harry-palooza.
<p>One more complaint that's a tiny spoiler: that Harry breaks a Taboo after knowing fully of its existence was just silly.
<p>Till, the Potter series is very likely to enjoyed by Children and adults for many years to come.
<p>Well done, Ms. Rowling!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[How to allow domain groups RDP access to Windows XP machines]]></title>
    <link href="https://www.taskboy.com/2007-07-19-How_to_allow_domain_groups_RDP_access_to_Windows_XP_machines.html"/>
    <published>2007-07-19T00:00:00Z</published>
    <updated>2007-07-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-07-19-How_to_allow_domain_groups_RDP_access_to_Windows_XP_machines.html</id>
    <content type="html"><![CDATA[<p><p>This is an abbreviated primer to remind me of this common, yet 
difficult to find documented, procedure. 
<p>The problem: You have an Active Directory domain with groups of users 
on it that you want to allow to log into varies local machines through RDP. <br>
You have tried to add the domain group to the local "Remote Desktop Users" 
group on a target terminal server, but you cannot do this through the 
Manage Computer MMC.
<p>The solution: use the net command on the target machine like this:</p>


net localgroup "Remote Desktop Users" "[YOUR DOMAIN]\[Domain group]" /add


<p><p>Assuming you have RDP enabled on that machine, you should be able to RDP 
to it and use the credentials of a user in the domain group you just added to 
log in.
<p>I know what you're thinking: "why not just add the domain builtin group 
'Remote Desktop Users' to the local group?"  You cannot add domain builtins 
to the local groups.  I think this has to do with the underlying LDAP schema 
of AD.  The "net localgroup" command is looking the CN=Users sub-tree of AD, it
seems.  Put your OU or groups in there. 
<p>Of course, this solution makes you visit each target terminal 
server/desktop.  You could script this with ssh or, more Windows-y, WMI, I 
think.  You might even be able to do this stuff with Perl or python to visit 
all the machines too.  There's also a Group Policy manager from Microsoft that 
should make this easy to manage central, but I couldn't get that software.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[ghetto browser]]></title>
    <link href="https://www.taskboy.com/2007-07-18-ghetto_browser.html"/>
    <published>2007-07-18T00:00:00Z</published>
    <updated>2007-07-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-07-18-ghetto_browser.html</id>
    <content type="html"><![CDATA[
<img src="/img/ghetto_browser.jpg" title="you and your nappy hairâ¦" class="insert">


<p class="code">HTTP ERROR 584:<br>
YOUR BROWSER IS TOO GHETTO FOR OUR SITE
PLEASE GET A REAL USER AGENT, HIPPIE
</p>

<p>Sighâ¦</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The One Ring]]></title>
    <link href="https://www.taskboy.com/2007-07-14-The_One_Ring.html"/>
    <published>2007-07-14T00:00:00Z</published>
    <updated>2007-07-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-07-14-The_One_Ring.html</id>
    <content type="html"><![CDATA[
<a href="/img/the_one_ring.jpg"><img src="/img/the_one_ring_sm.jpg" title="Looks like I've leveled up!" class="insert"></a>


<p class="code">;-)</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Goodnight, Mr. Butch]]></title>
    <link href="https://www.taskboy.com/2007-07-13-Goodnight,_Mr.html"/>
    <published>2007-07-13T00:00:00Z</published>
    <updated>2007-07-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-07-13-Goodnight,_Mr.html</id>
    <content type="html"><![CDATA[
<img src="/img/mr_butch.jpg" class="insert">


<p><p><a href="http://www.boston.com/news/local/articles/2007/07/13/street_icon_mr_butch_dies_at_56/">The Boston Globe reports:</a></p>

<blockquote>
&laquo;In a YouTube video posted on Mr. Butch's MySpace page, he offered a buoyant view on how to live: "You got to be articulate every day and keep going on strong and straight and use your heart and all your might and all your weight and all your power. Do what you can, make it last for many hour, 'cause once you're dead, you're done, you don't come back," he rapped, pausing before adding, "Yeah."&raquo;
</blockquote>

<p><p>As a waiter at the Kenmore Square Uno's, I remember Mr. Butch and the equally memerable "Mixed Nuts" air guitar team that frequented the area.  I'm not sure I would count myself as an admirer of his bohemian lifestyle, but to each his own.  He certainly appeared mostly harmless (but really, really baked).</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[New word/concept for the day]]></title>
    <link href="https://www.taskboy.com/2007-07-03-New_word_concept_for_the_day.html"/>
    <published>2007-07-03T00:00:00Z</published>
    <updated>2007-07-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-07-03-New_word_concept_for_the_day.html</id>
    <content type="html"><![CDATA[



<p><p><a href="http://www.answers.com/topic/freak-dancing">Freak dancing</p>

<blockquote>
Â«A sexually suggestive form of dancing that includes grinding the hips and pelvic area.Â»
</blockquote>

<p>Also:</p>

<blockquote>
Â«In the Caribbean "freak dancing" is much more widely accepted and children as young as 12 engage in it at parties. In places like Antigua, it is called winking/wining up. In Barbados it is sometimes referred to as wuking. Whatever the case it is widely accepted as the norm and almost all engage in it during carnival seasons. It is also commonly used in the Virgin Islands such as St. John.Â»
</blockquote>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[My other broom is a Nimbus 2000]]></title>
    <link href="https://www.taskboy.com/2007-06-19-My_other_broom_is_a_Nimbus_2000.html"/>
    <published>2007-06-19T00:00:00Z</published>
    <updated>2007-06-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-06-19-My_other_broom_is_a_Nimbus_2000.html</id>
    <content type="html"><![CDATA[
<img src="/img/quidditch.gif" class="insert" title="Merchandizing is magic!">


<p><p>When I dream, I rarely see numbers or letters.  However, last night
I dreamt that I bought several novelty t-shirts.  One of them looked like 
shirt advertising a private school.  It was plain gray, thick wool with pale 
green, san-serif
lettering that said: "Mudbloods: It's like magic!"
<p>I can only assume that barring a new form of psycho-advertising for the 
new Potter film, it was a bumper sticker I saw a few days ago that triggered
this dream.  It was blue with a red star that said: <a href="http://www.playapixie.org/past/000291.php">"Republicans 
for Voldemort"</a>.
<p>I've got to get a hobby.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[So much water under the bridge]]></title>
    <link href="https://www.taskboy.com/2007-06-18-So_much_water_under_the_bridge.html"/>
    <published>2007-06-18T00:00:00Z</published>
    <updated>2007-06-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-06-18-So_much_water_under_the_bridge.html</id>
    <content type="html"><![CDATA[<p>Little time to chat, but here's an update:</p>

<ul>
  <li>Just finished three weeks of federal jury duty last week.  Now under the meaning of "don't make a federal case of it."
  <li>Sally has finished remodeling the kitchen with Ikea stuff.  Looks fantastic.  Note: my girlfriend can beat up your girlfriend.
  <li>Took Sally to see the Blue Man Group for her birthday.  It's still a great show!
  <li>Many things are going on professionally.  Should be able to talk about them some day.
  <li>Getting more comfortable with Python.  Bought the Python Phrasebook, which is a great idea for a book series.  These books are somewhere between a reference guide and a cookbook.  
  <li>Am reading Stephenson's <em>Diamond Age</em>.  I still don't care for cyberpunk lit very much.  It's written for teenagers.  Boo.
  <li>Have ordered <a href="http://www.dow-darkcrusade.com/main.php?region=US">Dawn of War: Dark Crusade</a> because those Necrons look awesome.
</ul>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Children of Men]]></title>
    <link href="https://www.taskboy.com/2007-05-30-Children_of_Men.html"/>
    <published>2007-05-30T00:00:00Z</published>
    <updated>2007-05-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-05-30-Children_of_Men.html</id>
    <content type="html"><![CDATA[<p>Sally and I watched <em>Children of Men</em> last night.  It's a great film that reminds me of the best Sci-Fi of the seventies and early eighties.  The director isn't ham-fisted in pushing the audience to feel a certain way about the events in the film.  Rather, the viewer has the freedom to react in the way that's naturally to them.  Very refreshing indeed.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Yammering indignation-junkies]]></title>
    <link href="https://www.taskboy.com/2007-05-24-Yammering_indignation-junkies.html"/>
    <published>2007-05-24T00:00:00Z</published>
    <updated>2007-05-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-05-24-Yammering_indignation-junkies.html</id>
    <content type="html"><![CDATA[<p>Noted sci-fi author and scientist 
<a href="http://davidbrin.blogspot.com/2007/05/unleash-problem-solving.html">David Brin sez</a>:</p>

<blockquote>
&laquo;Above all, we may benefit immensely if science proves, at last, 
that self-righteous indignation is an addictive, self-doped drug high. 
Imagine how moderate problem solvers of all kinds will be empowered, when 
they can point to yammering indignation-junkies at every end of the 
political spectrum, and tell them to get help.&raquo;
</blockquote>

<p>The Mushyheaded Middle rages against the machine.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Compiling emacs under RedHat]]></title>
    <link href="https://www.taskboy.com/2007-05-23-Compiling_emacs_under_RedHat.html"/>
    <published>2007-05-23T00:00:00Z</published>
    <updated>2007-05-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-05-23-Compiling_emacs_under_RedHat.html</id>
    <content type="html"><![CDATA[<p>You may have tried to compile emacs under redhat enterprise server 5 or fedora core only to find that the build fails while dumping names.  This has been mentioned <a href="http://article.gmane.org/gmane.emacs.devel/17457">here</a>, <a href="http://www.unix-girl.com/blog/archives/2004/10/compiling_emacs.html">here</a> and <a href="http://www.stephensykes.com/blog_perm.html?134">here</a>.</p>

<p>The error looks like this:</p>

<p class="code">
Dumping under names emacs and emacs-21.4.1
make[1]: *** [emacs] Segmentation fault
make[1]: *** Deleting file `emacs'
</p>

<p>
<p>This is caused by a recent linux kernel feature called Exec-Shield.</p>

<p><p>The easiest way around this error is:</p>

<p class="code">
./configure && setarch i386 -R make 
</p>

<p><p>You can also run just the setarch bit after the original make dies.</p>

<p><p>I blog this simply to spread the word out. I'm not smart enough to have fixed this on my own. :-)</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Me and Pete and the Cyclone]]></title>
    <link href="https://www.taskboy.com/2007-05-13-Me_and_Pete_and_the_Cyclone.html"/>
    <published>2007-05-13T00:00:00Z</published>
    <updated>2007-05-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-05-13-Me_and_Pete_and_the_Cyclone.html</id>
    <content type="html"><![CDATA[
<a href="/img/cyclone07.gif"><img src="/img/cyclone07_sm.gif" title="Ain't doing that again soon" class="insert"></a>


<p>Picture taken: Coney Island, May 2007</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Washing the soap]]></title>
    <link href="https://www.taskboy.com/2007-05-13-Washing_the_soap.html"/>
    <published>2007-05-13T00:00:00Z</published>
    <updated>2007-05-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-05-13-Washing_the_soap.html</id>
    <content type="html"><![CDATA[
<img src="/img/fight_club.jpg" title="Nobody TALKS about SOAP CLUB" class="insert">


<p>Just an update for those keeping track: my girlfriend Sally is washing the hand soap in the bathroom.</p>

<p></p>

<p>No word yet on what sort of soap soap she's using to get the soap clean.</p>

<p></p>

<p>Will post an update when I learn what she uses to clean the soap that cleans the soap she's cleaning now.</p>

<p><code>E_RECURSION_TOO_DEEP</code></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Collectible, Racist or Both?]]></title>
    <link href="https://www.taskboy.com/2007-05-10-Collectible,_Racist_or_Both_.html"/>
    <published>2007-05-10T00:00:00Z</published>
    <updated>2007-05-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-05-10-Collectible,_Racist_or_Both_.html</id>
    <content type="html"><![CDATA[
<img src="/img/aunt_jemima_notepad.jpg" title="Breathtaking, isn't it?" class="insert">


<p><p>In what is sure to become a fan-favorite blog game on taskboy, let me introduce: Collectible, Racist or Both.  It's the game where I post some bit of obscure art and you comment on whether what's presented is collectible, racist or both.  Ready?  Let's start!
<p>The <a href="http://www.texasbelles.net/default.php?cPath=853790">Black Americana</a> selection of kitchen oddities for the modern home offered by Texas Belles is, in the only word that comes to mind, stunning.  I have seen such knick-knacks before as a child while being dragged around to various antique stores by my mother in the Northeast.  However, I'm gobsmacked to learn that such effigies of racist folklore are apparently still being produced.
<p>It does occur to me that there is a weird way in which one could view this collection that's not wholly offensive.  I have read several Viking romances and in them, real nationalities are often portrayed as non-human.  The Lapps are usually some hairy dwarfs and the Permians are all witches and wizards, it seems.  I wouldn't feel too bad about having a grotesque Lapplander dwarf statue on my lawn because the image is so ridiculous that it cannot be taken to refer to real human beings.  In a similar way, the very outlandishness of the Black Americana stuff can only be taken to refer to antebellum mythology rather than current racial attitudes. <br>
<p>However, this admittedly fine distinction might not be entirely clear to the casually viewer of such trinkets and so I eschew them.
<p>What do you think?  (The correct answer will appear soon!)
<p>(Originally found through <a href="http://substitute.livejournal.com/1609720.html">Substitute's blog</a>)</p>

<p>UPDATE: The answer to this question is (highlight to read):</p>


Since there really isn't a market for this trash, Black Americana is merely racist.

]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Massively Multiuser RPG Character Generator]]></title>
    <link href="https://www.taskboy.com/2007-04-30-Massively_Multiuser_RPG_Character_Generator.html"/>
    <published>2007-04-30T00:00:00Z</published>
    <updated>2007-04-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-04-30-Massively_Multiuser_RPG_Character_Generator.html</id>
    <content type="html"><![CDATA[
<img src="/img/garibaldi-concept_art.gif" title="Pretend you're an actor" class="insert">


<p><p>I know that you've all been looking for an updated version of the 
BASIC program that appeared in (1982) Dragon #74 to generate D&amp;D 
characters, so I push aside my important work to complete 
<a href="/projects/DnD_character_generator/">this awesome, gold-plated 
first edition rules, D&amp;D character generator</a>! <br>
<p>It's multi-user, <em>for the web</em>!  It even allows you to store 
and edit an entire 
<a href="http://www.rpgnow.com/product_info.php?products_id=1056">Rogues Gallery</a> of NPCs. <br>
<p>All the values are accurate according to the 1981 rulebooks.  The real 
kicker is that character homelands are assigned from pools of locations keyed 
on class and alignment.  Now who's laughing at all my 
<a href="http://www.waynesbooks.com/Gazetteer.html">Gazetteers</a>?</p>

<p>Don't all rush to thank meâ¦</p>

<p></p>

<p>UPDATE: In case there wasn't enough retro-fun here, I've added 
a feature to this generator so that your character stats get written to a
scanned character sheet.  Now you can face your DM with pride!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Hacking XP for softRAID1]]></title>
    <link href="https://www.taskboy.com/2007-04-28-Hacking_XP_for_softRAID1.html"/>
    <published>2007-04-28T00:00:00Z</published>
    <updated>2007-04-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-04-28-Hacking_XP_for_softRAID1.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://www.vttoth.com/mirror.htm">This page</a> contains
a truly great hack to force XP's disk manager to offer disk mirroring. <br>
Microsoft frequently disables functionality to distinguish their products from
one another.  The difference between NT workstation and server was a few 
registry keys.  Here, the hack is a little more complicated, but not for 
emacs or vi users.
<p>Of course, you will want to back up the original files.  And this hack voids warantees, etcâ¦
<p>Note that the change in dmconfig.dll isn't quite right.  There should be 
only 4 null bytes after WINNT, not 7.  This changes the file size and the 
offsets.  Very bad.
<p>UPDATE: Happy 1000th post, taskboy.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Games for Windows in Python]]></title>
    <link href="https://www.taskboy.com/2007-04-26-Games_for_Windows_in_Python.html"/>
    <published>2007-04-26T00:00:00Z</published>
    <updated>2007-04-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-04-26-Games_for_Windows_in_Python.html</id>
    <content type="html"><![CDATA[<p><p>I woke up early this morning and starting reading about <a href="http://www.policyalmanac.org/games/aStarTutorial.htm">A* pathfinding</a>, which led me to implement a binary heap in Python.
<p>Once again, I've been playing with python for <a href="http://www.pygame.org/">game programming</a> on Windows.  I'm up to atari 2600-level games now.  Yay! 
<p>Compiling python scripts in .EXE files is extraordinarily easy, which makes shipping a python game to a machine without python installed possible.  This is a huge advantage over Perl.  Even the dependent libraries used by called modules are bundled easily.
<p>I'll start posting some of my python work as soon as I create modestly interesting game.
<p>UPDATE: For those interested in 30 seconds of Atari-like fun, I present <a href="/projects/stubby/StubbySetup.exe">Stubby Falls Down</a> (3MB Windows Installer).</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Another Gameshelf host segment in the can]]></title>
    <link href="https://www.taskboy.com/2007-04-25-Another_Gameshelf_host_segment_in_the_can.html"/>
    <published>2007-04-25T00:00:00Z</published>
    <updated>2007-04-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-04-25-Another_Gameshelf_host_segment_in_the_can.html</id>
    <content type="html"><![CDATA[<p><p>Last night, <a href="http://prog.livejournal.com/">JMac</a>, Lee, Joe C. and I filmed a very special episode of the Gameshelf in which we all learned an important lesson about green screening.
<p>SCAT studios has a green curtain that's about twenty feet long.  Although we have used this in the past, last night we took the time to set the beast up correctly, which meant hanging from the pipes!  Because the screen didn't quite reach the ground, Jason and I sat on not one but two risers.  Holy nosebleed seats, Batman!
<p>Despite some fatigue and technical problems, the shoot went well and I'm sure the rest can be fixed in post.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The Tap is Back!]]></title>
    <link href="https://www.taskboy.com/2007-04-25-The_Tap_is_Back_.html"/>
    <published>2007-04-25T00:00:00Z</published>
    <updated>2007-04-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-04-25-The_Tap_is_Back_.html</id>
    <content type="html"><![CDATA[
<img src="/img/spinaltap.jpg" title="I suppose if I had the drugs and the sex, I could do without the rock and roll." class="insert">


<p><p>The rumors are true: Spinal Tap is playing at <a href="http://www.wtopnews.com/index.php?nid=114&amp;sid=1124371">Live Earth</a>.  I have seen SP play and it's worth the price of admission.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Goodnight, Mr. Yeltsin]]></title>
    <link href="https://www.taskboy.com/2007-04-23-Goodnight,_Mr.html"/>
    <published>2007-04-23T00:00:00Z</published>
    <updated>2007-04-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-04-23-Goodnight,_Mr.html</id>
    <content type="html"><![CDATA[
<img src="/img/boris_yeltsin.jpg" class="insert" title="Tank hatah">


<p><p>If you really want to know who toppled the Soviet regime, do not look to any American president.  Together, <a href="http://www.knx1070.com/pages/378784.php?contentType=4&amp;contentId=432841">Boris Yeltson</a> and Mikhail Gorbachev brought down the Iron Curtain and atttempted to drag Russia into the Twenty First century kicking and screaming.  Although this process continues today, these gentlemen that open the door for change.
<p>With the fall of the U.S.S.R. also came the end of talk about Mutually Assured Destruction via atomic suicide.   Just in case you feel that Yeltsin never did anything for you, here's a one thing you've got going for you. 
<p>Yeltsin was by no means perfect and his faults were well publisized.  His decision to use force to put down the Chechnyan rebellion with force will certainly counterbalance the heroic image of him standing on a tank in front of the Kremlin.  There is no recent American analog to this image of a (furture) president personally endangering himslef for his country in such a pronounced way.  Maybe JFK during  WWII?  H. W. Bush was a pilot during WWII and Ike commanded D-Day, but these don't seem as personal as JFK's <a href="http://en.wikipedia.org/wiki/Motor_Torpedo_Boat_PT-109">PT boat adventure</a>. 
<p>While I'm glad Yeltsin was not an American president, he still should be remembered by all Americans.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Global warming driving people mad]]></title>
    <link href="https://www.taskboy.com/2007-04-20-Global_warming_driving_people_mad.html"/>
    <published>2007-04-20T00:00:00Z</published>
    <updated>2007-04-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-04-20-Global_warming_driving_people_mad.html</id>
    <content type="html"><![CDATA[<p><p>With this report of a <a href="http://www.nbcsandiego.com/news/12635494/detail.html">possible NASA gunman at Johnson Space Center</a>, let me officially publish my theory (that belongs to me) that global warming is driving people out of their minds.  </p>

<p><p>While my evidence for this is slim, I find the frequency of alarming reports unsettling. </p>

<p><p>I posit that climate change has reached a noticable level and that our ancient monkey minds are screaming mad trying to warn us to flee.  Of course, there is no where to flee, thanks to our broken space program.</p>

<p><p>Doomdoomdoomdoom. </p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Guns don't make us safer]]></title>
    <link href="https://www.taskboy.com/2007-04-17-Guns_don&apos;t_make_us_safer.html"/>
    <published>2007-04-17T00:00:00Z</published>
    <updated>2007-04-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-04-17-Guns_don&apos;t_make_us_safer.html</id>
    <content type="html"><![CDATA[<p><p>Yet <a href="http://www.orlandosentinel.com/news/orl-bk-shooting041707,0,4273511.story?coll=orl-news-headlines">another school shooting</a> has happened and obligatorily the suggestion that we all strap sideirons to our belts is proffered as the solution to protecting ourselves from danger.
<p>Was the Old West safer because of pervasive gun toting?  Was Rome, Athens or Sparta safer because daggers were everywhere?  Surely, medieval Europe is the very model of personal security?
<p>The very ease which the psycho at Virginia Tech obtained a weapon is a large part of why this disaster happened.  The other, more omnious reason is simply that the dude wanted to kill.  There's little that can be done to stop the lone gunman.
<p>If you think that you would have been able to "drop" the gunman had you been there with a weapon, I'd take odds that you would have failed.  It's very difficult to perform security under fire.  Trained police and military forces have a hard enough time doing it. <br>
<p>Gun advocates implore us not to trust the government to save us.  To an extent , I agree with them.  Citizens need to do a certain amount of disaster preparation (see Katrina).  However, you don't need to worry about the odd gunman/terrorist/revenuer. <br>
<p>Events in which you are faced with an armed opponent are outliers.  Worry instead about drunk drivers and bad weather.
<p>[Note: personal gun ownership does not scare the government into following the Constitution (they have much bigger guns), but voting sure does.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Lying comments]]></title>
    <link href="https://www.taskboy.com/2007-04-16-Lying_comments.html"/>
    <published>2007-04-16T00:00:00Z</published>
    <updated>2007-04-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-04-16-Lying_comments.html</id>
    <content type="html"><![CDATA[<p><p>From <a href="http://www.gamasutra.com/features/20010119/warden_02.htm#link3">Gamasutra</a> (registration required):</p>

<blockquote>
Â«When I first started writing commercial game code, my code was liberally littered with comments, and I couldn't imagine any drawbacks to this. As time passed, I noticed something odd: the code and the comments grew increasingly out of sync, and I found that wrong comments cost me more time than correct comments saved me. The cutting and pasting, and late night alterations that happen when the pressure's on all meant that the code changed while the comments didn't.Â»
</blockquote>

<p></p>

<p><p>I couldn't be more in sync with the sentiments of this article.  Copious comments can breed laziness.  Debug code!  If the code is hard to understand, rewrite it!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Karl Wars II: Quest for the Perfect Medallion]]></title>
    <link href="https://www.taskboy.com/2007-04-12-Karl_Wars_II__Quest_for_the_Perfect_Medallion.html"/>
    <published>2007-04-12T00:00:00Z</published>
    <updated>2007-04-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-04-12-Karl_Wars_II__Quest_for_the_Perfect_Medallion.html</id>
    <content type="html"><![CDATA[
<a href="/img/athf-poster.gif"><img src="/img/athf-poster-tn.gif" title="2wicked" class="insert"></a>


<p>The <a href="http://www.adultswim.com/shows/athf/movie/index.html">AFTH movie</a> is nearly out.  This is not a joke.</p>

<p>UPDATE:  It's out now!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Giving away vintage NES]]></title>
    <link href="https://www.taskboy.com/2007-04-10-Giving_away_vintage_NES.html"/>
    <published>2007-04-10T00:00:00Z</published>
    <updated>2007-04-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-04-10-Giving_away_vintage_NES.html</id>
    <content type="html"><![CDATA[<p>I have posted <a href="http://boston.craigslist.org/gbs/sys/309236647.html">the following</a> to Craigslist:
<blockquote>
Â«It's your lucky day! I'm giving away an original Nintendo Entertainment System with three cartridges: Super Mario Bros. 3, Krusty's Funhouse and The Mafat Conspiracy. Includes AC adapter and RF adapter for old sk00l TV fun.</p>

<p><p>The Catch? I don't know that the console works anymore. I didn't spend a lot of time debugging the problem. The carts probably are OK. I'm not interested in shipping this stuff (around 10 lbs.), but if you are serious about it, we'll do some further negotiation. Otherwise, we can meet in a public place for a drop off.</p>

<p><p>So, if you need spare NES parts, dinner is prepared!Â»
</blockquote>
<p>If you are interested, email me directly.
<p>UPDATE: The NES is taken.  Sorry <em>Horny 4 NES</em>.  Maybe next time.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Note to Fenway Park]]></title>
    <link href="https://www.taskboy.com/2007-04-10-Note_to_Fenway_Park.html"/>
    <published>2007-04-10T00:00:00Z</published>
    <updated>2007-04-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-04-10-Note_to_Fenway_Park.html</id>
    <content type="html"><![CDATA[
<img src="/img/red_sox_fan.jpg" class="insert" title="Aw!  Pissah!">


<p><p>Dear Red Sox Nation,</p>

<p>Try to enjoy Opening Day without me.  I know it will be difficult.  My thoughts are with you.</p>

<p>That is all.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[You're not William Faulkner]]></title>
    <link href="https://www.taskboy.com/2007-04-06-You_re_not_William_Faulkner.html"/>
    <published>2007-04-06T00:00:00Z</published>
    <updated>2007-04-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-04-06-You_re_not_William_Faulkner.html</id>
    <content type="html"><![CDATA[<p><p>From the <a href="http://www.latimes.com/entertainment/news/business/la-et-thomas6apr06,1,1459446.story?coll=la-headlines-business-enter">L.A. 
Times</a>:</p>

<blockquote>
&laquo;Los Angeles has the largest intact, though now dormant, movie theater 
district in the nation, having lost to the wrecker's ball only three major 
 palaces: the cavernous Hill Street at 8th and Hill; the Paramount at 6th and 
Hill, a glorious Crypto-Egypto-Mesozoic pile of poured concrete with a 
Spanish exterior so solidly built that the contractor hired to tear it down 
lost his shirt in the process; and over on Main Street, the California, 
its elegant Beaux Arts facade never altered, not even its marquee, until it 
was replaced by a parking structure.&raquo;
</blockquote>

<p>Where to begin?  Kudos for using a colon to denote the start of a list and 
using semicolons as list markers for long, comma-containing phrases.  However, 
this technical achievement has produced a train-wreck of prose that's so 
dense and unwieldy that only sex-starved matrons from the Victorian era would 
enjoy teasing the content out from this mess.</p>

<p>If a writer cares a wit for his reader, he will not subject them to long,
streched-out sentences so chocked full of complex descriptions of list items 
that the original sentence is utterly obliterated.  Let's see if we can clean
this up a bit.</p>


Los Angeles has the largest intact, though now dormant, movie theater 
district in the nation.  The wrecker's ball has claimed only three major 
theatre palaces: the cavernous Hill Street, the formidable Paramount and 
the ornate California.


<p>Try as I might, I cannot fit in the additional information about these
ancient theatres into the new paragraph in good conscience, since this article 
attempts to review the movie <em>Grindhouse</em>, not give a survey of L.A. 
movie houses.  It's true that some fascinating details (and word count) are 
lost in my version, but I think it reads better.</p>

<p>What do you think?</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Google's wacky news images]]></title>
    <link href="https://www.taskboy.com/2007-04-04-Google&apos;s_wacky_news_images.html"/>
    <published>2007-04-04T00:00:00Z</published>
    <updated>2007-04-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-04-04-Google&apos;s_wacky_news_images.html</id>
    <content type="html"><![CDATA[
<img src="/img/missile-command.gif" class="insert">


<p><p>I saw the following image while looking at google news today.  Very 
appropriate for the subject.  The U.S. needs a multi-billion dollar space-based
missile defense program as much as a fish needs a bicycle.  Still, I enjoy
cold war imagery as much as the next person of my mature stature.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Move completed]]></title>
    <link href="https://www.taskboy.com/2007-03-28-Move_completed.html"/>
    <published>2007-03-28T00:00:00Z</published>
    <updated>2007-03-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-03-28-Move_completed.html</id>
    <content type="html"><![CDATA[
<img src="http://taskboy.com/img/fens04232002.jpg" title="All this useless beauty" class="insert">


<p><p>After many more hours of work than I had at first thought, I have moved out of my apartment in the Fenway, which I had first rented in 1995 for $775/month.</p>

<p><p>I've shed more than half the mass of my belongings, including clothes, linen, out of date tech books, paperbacks, very old school papers, two working but bulky CRT monitors and decrepit furniture.  It's a surprising good feeling to shed the dead weight of the past, though my future biographers will berate this decision.
<p>The fens have changed a lot in twelve years and I suppose so have I.  With the incredible amount of construction that's happened in the last five years, a Starbucks has finally appeared in the neighborhood.
<p>I can't say that I knew many of my fellow fenway residents nor did I partake in local events as much as I would have thought.  In particular, I regret not going to the MFA more and never making it to the <a href="http://www.gardnermuseum.org/">Gardner Museum</a>.  However, the Fens remain an excellent home base for exploring Boston and even Cambridge (Harvard Square was merely a 45 minutes walk away;  Kendall about 30 minutes).
<p>I had a good run in that apartment, which was my home for longer than any other place I've lived.  Still, I can't help thinking how I moved in as a young man and left middle aged.  I suppose that will happen if you're not careful.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Leostream/VDI nod]]></title>
    <link href="https://www.taskboy.com/2007-03-27-Leostream_VDI_nod.html"/>
    <published>2007-03-27T00:00:00Z</published>
    <updated>2007-03-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-03-27-Leostream_VDI_nod.html</id>
    <content type="html"><![CDATA[<p>Leostream got a nice nod from blogger <a href="http://blog.scottlowe.org/2007/03/23/vdi-and-leostream-connection-broker/">Scott Lowe</a>:</p>

<blockquote>
&laquo;I found Propero's product to be much too complicated; it seemed as if the application was really designed for something else and acting as a VDI connection broker was kind of an afterthought.  Leostream's product, on the other hand, seems really streamlined and really focused on the CB market. &raquo;
</blockquote>

<p><p>Thanks for using the software, Scott!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Cold resetting an HP LaserJet 2100 with internal JetDirect 600n]]></title>
    <link href="https://www.taskboy.com/2007-03-21-Cold_resetting_an_HP_LaserJet_2100_with_internal_JetDirect_600n.html"/>
    <published>2007-03-21T00:00:00Z</published>
    <updated>2007-03-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-03-21-Cold_resetting_an_HP_LaserJet_2100_with_internal_JetDirect_600n.html</id>
    <content type="html"><![CDATA[<p><p>This is a reminder to myself. <br>
<p>If you need to reset the IP address of 
the HP LJ printer named in the subject line, turn on the printer with the 
JOB CANCEL button pressed for 7-10 seconds.  More troubleshooting can be 
found <a href="http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?objectID=bpj02300">here</a>.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Living in the space in between]]></title>
    <link href="https://www.taskboy.com/2007-03-16-Living_in_the_space_in_between.html"/>
    <published>2007-03-16T00:00:00Z</published>
    <updated>2007-03-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-03-16-Living_in_the_space_in_between.html</id>
    <content type="html"><![CDATA[



<p><p>Great scene, great acting.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[OpenID]]></title>
    <link href="https://www.taskboy.com/2007-03-14-OpenID.html"/>
    <published>2007-03-14T00:00:00Z</published>
    <updated>2007-03-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-03-14-OpenID.html</id>
    <content type="html"><![CDATA[<p><p>Been playing with <a href="http://simonwillison.net/2006/Dec/19/openid/">OpenID.  It seems like this could be useful for web-based games.  Even 
networked games generally.
<p>I've added my openID header to my <a href="http://taskboy3000.livejournal.com/">LJ page</a>.  Perhaps I'll make taskboy some kind of openID server.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[New episode of the Gameshelf]]></title>
    <link href="https://www.taskboy.com/2007-03-06-New_episode_of_the_Gameshelf.html"/>
    <published>2007-03-06T00:00:00Z</published>
    <updated>2007-03-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-03-06-New_episode_of_the_Gameshelf.html</id>
    <content type="html"><![CDATA[
<img src="/img/gameshelf_5_screenshot4.gif" title="Greenscreen-a-rific!" class="insert">


<p><p>Hey, hey, kids!  What's that sound?  Why, it's a new episode of Somerville
Cable Access TV's <a href="http://gameshelf.jmac.org/">The Gameshelf</a> 
coming at you at the speed of <em>fun</em>! 
<p>Grab the show from iTunes or direct download 
(<a title="Quicktime 7 required" href="http://gameshelf.jmac.org/shows/Gameshelf5.m4v">340MB</a>), or 
just wait a bit for the upload to Google Video.
<p>In this episode, Jason kicks out the video production jams to cover 
the fascinating card game of empire building called Citadels and 
the party game that invites close friends to lynch each other, 
Werewolf.
<p>If that's not enough, the show begins and ends with 
<a href="/music/">music by me</a>!
<p>Any way you slice it, it's gotta be good!
<p>UPDATE: Watch the sense-shattering conclusion to this episode 
<a title="Quicktime 7, 9MB" href="gameshelf5-ending.mov">right here</a>!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Thanks Peter Seebach]]></title>
    <link href="https://www.taskboy.com/2007-03-05-Thanks_Peter_Seebach.html"/>
    <published>2007-03-05T00:00:00Z</published>
    <updated>2007-03-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-03-05-Thanks_Peter_Seebach.html</id>
    <content type="html"><![CDATA[<p>In his article <a href="http://www-128.ibm.com/developerworks/web/library/wa-localwebsrv.html?ca=dgr-lnxw01CGI-Best">Develop Web applications 
for local use</a>, Peter Seebach references one of my 
IBM developerWorks articles.  Thanks for the mention, Peter!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[On establishing reliable methodology for unauthenticated bona fides]]></title>
    <link href="https://www.taskboy.com/2007-02-26-On_establishing_reliable_methodology_for_unauthenticated_bona_fides.html"/>
    <published>2007-02-26T00:00:00Z</published>
    <updated>2007-02-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-02-26-On_establishing_reliable_methodology_for_unauthenticated_bona_fides.html</id>
    <content type="html"><![CDATA[
<img src="/img/shoreline.jpg" title="Inspirational thought for today" class="insert">


<blockquote>
&laquo;Folks, you can't run a reputation-based system in a mosh pit 
at a Debbie Gibson concert.&raquo;
</blockquote>

<p>â<a href="http://torgo-x.livejournal.com/903959.html">Sean Burke</a> on 
wikipedia's "nobility" clause</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Finished The Half-Blood Prince]]></title>
    <link href="https://www.taskboy.com/2007-02-20-Finished_The_Half-Blood_Prince.html"/>
    <published>2007-02-20T00:00:00Z</published>
    <updated>2007-02-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-02-20-Finished_The_Half-Blood_Prince.html</id>
    <content type="html"><![CDATA[<p><p>In the space of barely three months, I have finished reading all 
six of the currently published <em>Harry Potter</em> books.  I must say that 
the series is impressive.
<p>At the end of the sixth book, I do wonder how younger readers will take the 
very dark turn in the story?  Perhaps, this is another case of "the old 
underestimate the young."
<p>I'm curious how the story will resolve in just one book, but it should be 
entertaining. </p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Gameshelf on flickr]]></title>
    <link href="https://www.taskboy.com/2007-02-14-Gameshelf_on_flickr.html"/>
    <published>2007-02-14T00:00:00Z</published>
    <updated>2007-02-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-02-14-Gameshelf_on_flickr.html</id>
    <content type="html"><![CDATA[<p><p>Dear Internet,</p>

<p><p>I have posted and will post more pictures to <a href="http://www.flickr.com/photos/taskboy3000/sets/72157594529750908/">this flickr</a> set of behind the scenes photos from Jason McIntosh's Gameshelf show/podcast.</p>

<p><p>That is all</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Happy Valentines day from the dead]]></title>
    <link href="https://www.taskboy.com/2007-02-14-Happy_Valentines_day_from_the_dead.html"/>
    <published>2007-02-14T00:00:00Z</published>
    <updated>2007-02-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-02-14-Happy_Valentines_day_from_the_dead.html</id>
    <content type="html"><![CDATA[
<img src="/img/embracing_skeletons.jpg" title="I've always hated you" class="insert">

]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[My music on YouTube]]></title>
    <link href="https://www.taskboy.com/2007-02-13-My_music_on_YouTube.html"/>
    <published>2007-02-13T00:00:00Z</published>
    <updated>2007-02-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-02-13-My_music_on_YouTube.html</id>
    <content type="html"><![CDATA[

    
    



<p><p>Jason McIntosh has decided to go with one of the theme songs I wrote 
for <a href="http://gameshelf.jmac.org/">The Gameshelf</a>. <br>
This theme is featured in the promo above. <br>
<p>My conquest of all media has been outsourced!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Another Pseudocertainty ep in the can]]></title>
    <link href="https://www.taskboy.com/2007-02-10-Another_Pseudocertainty_ep_in_the_can.html"/>
    <published>2007-02-10T00:00:00Z</published>
    <updated>2007-02-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-02-10-Another_Pseudocertainty_ep_in_the_can.html</id>
    <content type="html"><![CDATA[<p><p>Mike and I just finished another pseudocertainty show via
SkypeOut tonight.  Two hours of talk time was under $4, which works for 
our show's budget.
<p>We talked about Atlantis (lost city of), the nutty astronaut who drove 
to Florida in diapers, 1-31, the Doomsday clock and vault, and much, much 
more.
<p>I'll try to cut that up tomorrow. 
<p>UPDATE: It looks like there's about 20 minutes of extra material concerning Harry Potter.  I'll have a regular 60 minute cut and release the extra bit as a "web exclusive" bonus.  Of course, it's all web exclusive content, isn't it?</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Divination by rodentia]]></title>
    <link href="https://www.taskboy.com/2007-02-02-Divination_by_rodentia.html"/>
    <published>2007-02-02T00:00:00Z</published>
    <updated>2007-02-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-02-02-Divination_by_rodentia.html</id>
    <content type="html"><![CDATA[
<img src="/img/philjohn07.jpg" title="Do you see how dark it is?  Can you see your own shadow now?  Come back at noon." class="insert">


<p><p><a href="http://www.groundhog.org/prediction/">Punxsutawney Phil</a>
predicts an early spring this year through his history-tested method
of looking for his own shadow. <br>
<p>Of course, we've always been a nation of narcisists, but I didn't realize 
that the fauna was in on it too.  I suppose it must be something in the 
drinking water.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[United, Strong, Awesome]]></title>
    <link href="https://www.taskboy.com/2007-02-01-United,_Strong,_Awesome.html"/>
    <published>2007-02-01T00:00:00Z</published>
    <updated>2007-02-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-02-01-United,_Strong,_Awesome.html</id>
    <content type="html"><![CDATA[
<img src="http://norbert26.com/images2/36_usa.gif" title="Like cubic zirconia, these color don't run" class="insert">


<p><p>You can find more of these tasteful icons of 9-11 rememberance
<a href="http://norbert26.com/images2/">here</a>.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[We live in a post-1-31 world]]></title>
    <link href="https://www.taskboy.com/2007-02-01-We_live_in_a_post-1-31_world.html"/>
    <published>2007-02-01T00:00:00Z</published>
    <updated>2007-02-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-02-01-We_live_in_a_post-1-31_world.html</id>
    <content type="html"><![CDATA[

<img src="/img/ignignokt.gif" title="All that we say and do is right" class="insert">


<p><p>Terrorism strikes Boston again, but this time it's the children who are </p>

<p>the targets.
<p>I'll just link to <a href="http://torgo-x.livejournal.com/892520.html">Sean</p>

<p>Burke's blog</a> </p>

<p>since he's got the whole AP story.</p>

<p><p>No, I wasn't hurt.  And no, I didn't get any of these electronic ads.  If I </p>

<p>had, you can bet I would have placed these items on eBay by now.</p>

<p><p>Update: <a href="http://interglacial.com/temp/mooninite_turn_it_up.jpg">Mooning is not a crime</a>.
<p>Update: </p>


<img src="/img/131-tshirt.gif" title="Aqua Teen Bomber Force" class="insert">


<p><p><a href="http://store.cottonfactory.com/cf-440.html">Get the shirt here</a>.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Not heaven, but someplace way, way better.]]></title>
    <link href="https://www.taskboy.com/2007-01-29-Not_heaven,_but_someplace_way,_way_better.html"/>
    <published>2007-01-29T00:00:00Z</published>
    <updated>2007-01-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-01-29-Not_heaven,_but_someplace_way,_way_better.html</id>
    <content type="html"><![CDATA[
<blockquote>
&laquo;We may not have meant to, but we showed him the ultimate respect. And he deserved it. He's wherever the real men go; where Pancho Villa went, and Patton, and Richthofen. Not heaven, but someplace way, way better.&raquo;
</blockquote>
<p>â<a href="http://www.exile.ru/2006-January-26/saddam_died_beautiful.html">War Nerd</a></p>


<p><p>Good old War Nerd embraces his inner bastard while reflecting on Hussien's 
execution.  Again, no tears for Saddam, but it's sad to see the U.S. engaging
in nineteenth century colonial justice.  It's bad for business.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Gameshelf picture]]></title>
    <link href="https://www.taskboy.com/2007-01-26-Gameshelf_picture.html"/>
    <published>2007-01-26T00:00:00Z</published>
    <updated>2007-01-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-01-26-Gameshelf_picture.html</id>
    <content type="html"><![CDATA[
<img src="/img/gameshelf_jmac_and_jjohn.gif" title="Don't look at the camera" class="insert">


<p><p>Here's a screenshot of <a href="http://prog.livejournal.com/">Jason McIntosh</a> and I on the set of the next Gameshelf.  True fans of the show will 
notice that during the next episode, jmac and I use the same jacket.  Which 
one of us wears it better?  You decide!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Form spam]]></title>
    <link href="https://www.taskboy.com/2007-01-21-Form_spam.html"/>
    <published>2007-01-21T00:00:00Z</published>
    <updated>2007-01-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-01-21-Form_spam.html</id>
    <content type="html"><![CDATA[<p><p>It amazes me that spamers target random HTML forms, such as those found on this site and others that I maintain.  I believe I've mentioned this before, but still, WTF?
<p>Right now, the form in which users can suggest an RSS for the feedbag is getting battered with bullshit suggestions for viagra.  Sigh.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Vacation week]]></title>
    <link href="https://www.taskboy.com/2007-01-02-Vacation_week.html"/>
    <published>2007-01-02T00:00:00Z</published>
    <updated>2007-01-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2007-01-02-Vacation_week.html</id>
    <content type="html"><![CDATA[<p><p>For a consultant, vacations are not baked into the job.  But this 
week, I'm going away to Cape Cod with Sally to enjoy some much needed R&amp;R;.
 Whether this means more blogs or fewer, I cannot say.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Grim Reaper Overdrive]]></title>
    <link href="https://www.taskboy.com/2006-12-30-Grim_Reaper_Overdrive.html"/>
    <published>2006-12-30T00:00:00Z</published>
    <updated>2006-12-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-12-30-Grim_Reaper_Overdrive.html</id>
    <content type="html"><![CDATA[<p><p><img src="/img/grim_reaper.gif" title="Step right up!  Year end clearance!" class="insert"> What a weird week of deaths.  It almost sounds 
like a grim 
joke.  "OK.  So, James Brown, Gerry Ford and Saddam Hussein die and meet 
on the banks of the River Styxâ¦"
<p>James Brown lived so hard, he was almost a clich&eacute;.  I enjoyed his music, 
but I'm amazed the man didn't kill himself with his lifestyle earlier. <br>
At first, the bruhaha surrounding the lock-out of his last wife from their 
home surprised me and then I thought: that's totally rock and roll to the
end. 
<p>Gerry Ford lived <em>longer</em> then I would have expected.  I have 
only vague memories of the '76 election in which he was defeated.  The 
country was pretty down on Ford, I think, but I don't believe he was 
particularly stupid or unusually corrupt.  Watergate and Vietnam made 
a lot of folks depressed and paranoid.  Sadly, we could have used a lot 
more of that old thyme-y cynicism in 2003 before invading Iraq.  I wish 
Ford had spoken more publicly about current politics during the last thirty 
years, but that's not what old soliders seem to do.  Colin Powell appears to 
be similarly afflicted.
<p>Of course, had we not invaded Iraq, we couldn't have hung a 69 year old 
man.  Hussein was a giant prick, to be sure.  From the biographies I've seen
of him, it appears that Hussein's early life was that of a street thug who 
happen to bully his way into politics.  However, I'm deeply ambivalent about 
the death penalty.  When the state kills one of its citizens, it loses the 
moral high ground against murderers.  On the other hand, sometimes a body 
just needs a-killin'.  Execution is an undeniably effective way to prevent 
recidivism.
<p>Let's hope the new year dials down the "suck knob."  Perhaps this 
<a href="http://www.youtube.com/watch?v=Ob6cpfeMoBo">mashup of Benny Hinn</a> 
will help.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[We are all Spiderman now]]></title>
    <link href="https://www.taskboy.com/2006-12-30-We_are_all_Spiderman_now.html"/>
    <published>2006-12-30T00:00:00Z</published>
    <updated>2006-12-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-12-30-We_are_all_Spiderman_now.html</id>
    <content type="html"><![CDATA[
<p>You are Spider-Man</p>
Spider-Man
 90%
Superman
 70%
Batman
 65%
Iron Man
 60%
Green Lantern
 55%
Robin
 53%
Catwoman
 45%
Supergirl
 43%
Wonder Woman
 33%
Hulk
 30%
The Flash
 20%

You are intelligent, witty, a bit geeky and have great power and responsibility.


Click here to take the Superhero Personality Quiz


<p><p>Spiderman is my favorite Marvel superhero, so I'm pleased as punch that 
a <a href="http://www.thesuperheroquiz.com/">stupid Internet personality quiz</a> confirms my fondest desire.  It must be Christmas!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[A threat to traditional values]]></title>
    <link href="https://www.taskboy.com/2006-12-22-A_threat_to_traditional_values.html"/>
    <published>2006-12-22T00:00:00Z</published>
    <updated>2006-12-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-12-22-A_threat_to_traditional_values.html</id>
    <content type="html"><![CDATA[
<img src="img/preacher.gif" title="Lord, give me strength" class="insert">


<p><p>Fear is a potent weapon.  Animals use fear both as a defensive 
tactic (by growling, shaking a rattle, bearing teeth, etc.) and 
as a defensive strategy by running away from things that scare them.
Fear, in itself, isn't a bad thing at all.  Fear is our first line
of defense against danger.
<p>However, irrational fear is a crippling affliction.  The world is 
full of potential harm and to attempt to protect yourself from all of
its dangers will paralyse you.  Anyone suffering from clinical anxiety will 
tell you how damaging irrational fear is.
<p>When politicians promulgate irrational fear, my upper lip starts to 
twitch and sweat.  Weaponizing racism and xenophobia corrodes our national 
character and turns us against one another.  Fear has never bred decency. <br>
<p>This lesson can be learn, once again, from Virginan Representative Virgil 
Goode, whose last name is so ironically villainous as 
to be a clich&egrave;.  Goode isn't what one would call a multiculturist.</p>

<blockquote>
&laquo;"I do not subscribe to using the Koran in any way. 
The Muslim Representative from Minnesota was elected by the voters 
of that district and if American citizens don't wake up and adopt 
the Virgil Goode position on immigration there will likely be many more 
Muslims elected to office and demanding the use of the Koran."&raquo;
<a href="http://thinkprogress.org/2006/12/19/goode-islam/">[1]</a>
</blockquote>

<p><p>Goode is referring to his counterpart Keith Ellison ("now they are taking 
our last names to blend in with us!").  Ellison insisted on taking his oath 
of office on the book of his faith, the Koran.  Goode is pissed about it. <br>
However, Ellison's request isn't without precedent.  Goode is making 
political hay of it, though, and that's disgusting.  We do not insist that 
Jewish representives swear oaths on a Bible. <br>
<p>If I had my way, I'd do away with the the holy books in oath ceremonies 
entirely and make people take oaths on the Constitution.  If a congressman 
doesn't consider that document important enough for oaths, I don't really 
want them to have his job.
<p>Goode considers Ellison the vanguard of some Muslim conspiracy, it seems:</p>

<blockquote>
&laquo;"[Ellison is] a serious threat to the traditional values of the 
nation"&raquo;

<a href="http://www.plenglish.com/article.asp?ID=%7B3F95917A-B2A1-40FF-BE4A-E5B0F2F16AB3%7D)&language=EN">[2]</a>
</blockquote>

<p><p>I don't exactly know what threat Goode is referring to.  I assume he has 
a lot of time on his hands to be looking for new, hidden conspiracies since 
all other problems facing Congress have apparently been resolved.  Oh wait,
no they haven't.
<p>We've been told many, many times that our war on terrorism isn't a war
on Islam, but many in the Middle East aren't so sure about this.  Presentative
Goode's comments make it hard for the U.S. to engage and pursuade the rational
Muslims of Iraq, Iran, Syriah and the rest of the Fertile Crescent that U.S.
foreign policy is really in their best interests too. <br>
<p>What's worse, 
xenophobia turns our backs on this nation's defining characteristic: cultural 
pluralism. We can argue about what's the right number of immigrants to 
allow into 
the country each year.  We can argue about how to deal with illegal 
immigration.  We should not be talking about what creeds or ethnic groups 
to exclude from our national life. 
<p>We have always benefited from the "brain drain" of other countries who 
chose to make the lives of their educated middle class difficult.  Immigrants 
from Europe, Russia, Iran, Turkey, North Africa have all contributed to 
the American way of life.  We should be slow to shut door on those who 
can help us make a better country.
<p>I would ask Mister Goode to stop pandering to our basest fears of "the 
other" and wake up to the reality of globalization.  Unless "globization" 
is just a stand-in for "American economic empirialism."  In that case, you 
can count me out.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Happy Solstice 2006!]]></title>
    <link href="https://www.taskboy.com/2006-12-21-Happy_Solstice_2006_.html"/>
    <published>2006-12-21T00:00:00Z</published>
    <updated>2006-12-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-12-21-Happy_Solstice_2006_.html</id>
    <content type="html"><![CDATA[
<img src="/img/winter_solstice.gif" title="We need to stop meeting like this" class="insert">


<p><p>I'm not a pagan, but due to the meager daylight budget afforded 
the Northeast in the autumn, I'm positively deLIGHTed that today is the 
shortest day of the year.  From now on, I can expect more light even 
if that also means more snow. 
<p>Note to Druids: collect your holly leaves tonight for maximum efficacy.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[New song: seasick]]></title>
    <link href="https://www.taskboy.com/2006-12-20-New_song__seasick.html"/>
    <published>2006-12-20T00:00:00Z</published>
    <updated>2006-12-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-12-20-New_song__seasick.html</id>
    <content type="html"><![CDATA[<p><p>On the eve of my thirty-fifth birthday, I recorded this song, 
<a href="music/seasick.mp3">seasick</a>.  I wanted to get 
a more live feeling to the recording, so it's not entirely in time with the 
click.  I like the way the guitars came out and I think the vocal performance
is more interesting than not. <br>
<p>The "ship creaking" noises came from the wooden floors of my apartment. 
I simply slowed down the samples and lowered their pitch. </p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Team B]]></title>
    <link href="https://www.taskboy.com/2006-12-18-Team_B.html"/>
    <published>2006-12-18T00:00:00Z</published>
    <updated>2006-12-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-12-18-Team_B.html</id>
    <content type="html"><![CDATA[
<img src="/img/dollar_pyramid.gif" title="The New World Order is pretty much like the Old World Order" class="insert">


<p><p><a href="http://en.wikipedia.org/wiki/Team_B">Team B</a> was a group of 
U.S. policy wonks that focused on the Soviet threat from the 1970s to the 
mid-1980s.  I suspect that they would have happily continued focusing on the 
Soviet threat even after the fall of the U.S.S.R. because Soviets are just 
so much fun to hate.
<p>You will probably recognize many of the technocrats involved in this group:
Richard Peale, Don Rumsfeld, Paul Wolfowitz, and Ed Teller to name a few.  If
you said that this group prefigured the neocons of the twenty-first century, 
you wouldn't be far off.  Team B was that shadowy group lurking in the 
backrooms of D.C. whispering doom into the ears of Republicans like Ronald
Reagan.
<p>Do read this Boston Globe</a> 
piece on the memoirs of former Team B leader, Richard Pipes ("you don't need 
to be a Dick to be on Team B, but it helps").  Pipes had lived through 
Nazi-occupied Poland and was rather down on totalarianism.  And yet in 2003, 
he didn't think highly of the plan to democratize Iraq:</p>

<blockquote>
&laquo;Democracy requires, among other things, individualism â the breakdown 
of old clannish, tribal organizations, the individual standing face-to-face 
with the state. You don't have that in the Middle East. Iraq is tribally 
run.&raquo;
</blockquote>

<p><p>This from a man whose group advocated a nuclear first strike against the 
U.S.S.R.
<p>Team B was fed highly sensitive intelligence about the Soviets capabilities
and intentions for atomic warfare and were convinced that Ivan was ready 
to lauch a first strike against an admittedly hostile and aggressive NATO. 
They were also convinced, without a gossamer of evidence, that the Soviets had
a kind of stealth atomic sub that was invisible to sonar and, presumably,
waiting off the coasts of the U.S. for their launch orders.
<p>Team B was charged with thinking "outside the box."  Apparently, that box
was the one that included verifiable facts.  Paranoid, sci-fi fantasies based
on real U.S. black budget military projects seem to have been well-trodden
territory for this thinktank.
<p>Anyone with passing familiarity with Russian history should not have been 
surprised 
by the Soviet's aggressive defensive posture.  Getting invaded repeatedly 
over the centures seems to make people a little touchy about their borders.
<p>Of course, there's a fine line between a siege defense and expeditionary 
force.  You have to imagine that there was a Soviet counterpart to Team B
who would have been the kind of loonies that the American Team B were afraid 
of.  It's not hard to see how this paranoia can become amplified by a hall of 
mirrors on both sides of the Cold War.  Each shadowy group would have been
convinced that the other was 
ignoring d&eacute;tante policies based on Mutually Assured Destruction
and instead was planning how to win the ultimate zero-sum game.
<p>Although Team B has long since disbanded, it's members and even it's 
paranoia
continue to poison our "post-9/11" world.  History is important, since it is 
the only guide we have to the future.  Know who told me that?  Newt Gingrich. 
No joke.  If that's the case, old Newt would surely agree with Pipes's 
criticism of Paul Wolfowitz:</p>

<blockquote>
&laquo;Paul didn't have much education in history. It's not his field. He was 
educated as a military specialist, a nuclear weapons specialist. Like most 
scientists, he doesn't have a particular understanding of other 
cultures.&raquo;
</blockquote>

<p><p>Fortunately, Paul now has a job without touchy-feely
problems like "culture."  He's the current head of the 
World Bank</a>.  I'm sure his noted 
cultural sensitivity will used as successfully there was it was during his 
tenure as Don Rumsfeld's Deputy Secretary of Defense.
<p>We are all doomed.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[My spirit points are unstoppable]]></title>
    <link href="https://www.taskboy.com/2006-12-14-My_spirit_points_are_unstoppable.html"/>
    <published>2006-12-14T00:00:00Z</published>
    <updated>2006-12-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-12-14-My_spirit_points_are_unstoppable.html</id>
    <content type="html"><![CDATA[
<img src="/img/jesus_solider.gif" title="Good work, solider!" class="insert">


<p><p>You know what would make a great video game? <br>
<a href="http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2006/12/12/MNG8TMU1KQ1.DTL">Forced 
prosyletization of non-Christians and rock stars</a>.
<p>Cashing in on the best selling and brain-melting Christian-fantasy porn 
called <em>Left Behind</em> (no, I'm not linking to that crap; find it 
yourself), some schmucks created a sort of real-time "first person saver" 
game in which you convert (or shoot) non-believers in an effort to feel good 
about your imaginary friend in the sky.  It's called "Left Behind: Eternal 
Forces," which is appropriate since the forces of stupidity are as deathless
as <a href="/img/cthulhu.jpg">dread Cthulhu</a>.
<p>I fully enjoy the Tom Clancy angle to the game's title.  There's nothing 
like replacing the adrenaline rush of Cold War <a href="http://www.youtube.com/watch?v=t-cD0XdyQ7s">M.A.D.</a> with violet religious 
bigotry based on a <a href="http://dictionary.reference.com/wordoftheday/archive/2000/02/10.html" title="The first definition is the best">unctuous</a> 
interpretation of Revelations.
<p>Sure, there are those weak, degenerate liberal Christians would have you 
believe that conversion to Jesus worship should be voluntary, but they're just
pussies.
<p>It seems that there will always be those theists who pine for a 
homogenous religious culture.  I don't really understand this desire.  When 
has a culture with a hegemonical religion been a really great place to live? 
We already have that situation in the U.S. and it's called Salt Lake City.  If that's your 
idea of paradise, you can get really cheap tickets to it from Jet Blue.
If you don't like deserts, I invite you scenic South Boston where you don't 
have to be Irish and Catholic to live there (you could also be Catholic and 
Irish too), but you'll sure be hated a lot less if you are.
<p>Real, fact-based agenda people know that allowing and embracing diversity 
leads to a more pleasant, healthy, creative and productive society.  There's 
just something darn helpful about someone calling you on your delusions that
moves a culture forward.  When everyone agrees with each other about too many 
things, you pretty much get the Taliban in Tragikstan.
<p>Hey, I know!  Why not make a game in which you shoot the zombies raised by 
Jesus after the Tribulation?  Call it "Left Behind: Not on my Watch."  You 
could get Charlton Heston to do voice-over work for it.  Make it an massively 
multiplayer online game to boot!  That would kick ass!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Sweet 35]]></title>
    <link href="https://www.taskboy.com/2006-12-09-Sweet_35.html"/>
    <published>2006-12-09T00:00:00Z</published>
    <updated>2006-12-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-12-09-Sweet_35.html</id>
    <content type="html"><![CDATA[
<img src="/img/alien_cake.gif" title="35 and counting!" class="insert">


<p>Happy Birthday, me!</p>

<p><p>On Decemeber 12th I have, as I have had for the last 35 years, a birthday.
If last year's didn't convince me that I'm <em>no longer young</em>, this 
one makes the point more insistently.
<p>Since I'm likely to be very, very busy until then, I post about this 
monumental event now.
<p>Still, things in Joe Central aren't all that bad.  I have a delightful 
girl friend, reasonably good health, many good friends and a ever more 
prosperous business.  All these have to count for something.
<p>UPDATE: Today is the 12th and it's a fine, fine day.
<p>UPDATE: Got my present from Sally: a hoodie that says "Awesome 
since 1971."  And you know?  That's absolutely the case.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Been busy]]></title>
    <link href="https://www.taskboy.com/2006-11-29-Been_busy.html"/>
    <published>2006-11-29T00:00:00Z</published>
    <updated>2006-11-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-11-29-Been_busy.html</id>
    <content type="html"><![CDATA[<p><p>Sorry for the lack of updates, but I've been really, really busy with work.  I've created my first Java GUI wizard for installing Virtual Applications on to ESX 3, which will be more useful than it sounds.
<p>Oh, I guess there was some kind of holiday too in thereâ¦</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Remix of "Without You"]]></title>
    <link href="https://www.taskboy.com/2006-11-13-Remix_of__Without_You_.html"/>
    <published>2006-11-13T00:00:00Z</published>
    <updated>2006-11-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-11-13-Remix_of__Without_You_.html</id>
    <content type="html"><![CDATA[<p><p>A remix of an old track <a href="/music/without_you-2006.mp3">Without You</a> is now available for mass consumption.  Remixed with 
better audio equipment, new synth patches and a new organ track, I hope this 
track will be received with all the attention it so richly deserves.  </p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[At VMWorld 2006]]></title>
    <link href="https://www.taskboy.com/2006-11-07-At_VMWorld_2006.html"/>
    <published>2006-11-07T00:00:00Z</published>
    <updated>2006-11-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-11-07-At_VMWorld_2006.html</id>
    <content type="html"><![CDATA[<p><p>Well, I'm here in sunny Los Angeles, CA at the cavernous LA convention center with Leostream.  The show is big: 6,000 attendess.  Just the logistists of getting food to that many people is impressive and makes me glad I'm not in the food service industry.
<p>We had a lot of drama setting up our rather complex hardware for our demo.  However, a bit of duct tape and a stream of blue language seem to set things right.
<p>Last night, as a VMware partner, we got to a party in Hollywood near the Chinese Theatre.  That was pretty weird.    Even the hobos were over the top!  So much for show biz.
<p>Looking forward to dinner tonight.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[use.perl.org blogs now available on Taskboy]]></title>
    <link href="https://www.taskboy.com/2006-11-03-use.html"/>
    <published>2006-11-03T00:00:00Z</published>
    <updated>2006-11-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-11-03-use.html</id>
    <content type="html"><![CDATA[<p><p>Because I can't do anything original, I copied 
<a href="http://torgo-x.livejournal.com/843813.html">Sean Burke</a> and 
pulled my old posts from use.perl.org
into taskboy, complete with the right post dated.
<p>Now Taskboy is the COMPLETE REPOSITORY FOR WORLD KNOWLEDGE about 
all things Joe Johnston-ish.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Happy Halloween]]></title>
    <link href="https://www.taskboy.com/2006-10-31-Happy_Halloween.html"/>
    <published>2006-10-31T00:00:00Z</published>
    <updated>2006-10-31T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-10-31-Happy_Halloween.html</id>
    <content type="html"><![CDATA[
<img src="/img/firey_pumpkin.gif" title="This means you!" class="insert">


<p><p>Today is Halloween.  You should go have some harmless fun.  Unlike the 
idiots who broke my girlfriend's car window on Sunday.  That wasn't fun at 
all.
<p>Also, be nice to witches today.  Wait until tomorrow, All Saint's Day,
to burn them.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Why three question marks???]]></title>
    <link href="https://www.taskboy.com/2006-10-31-Why_three_question_marks___.html"/>
    <published>2006-10-31T00:00:00Z</published>
    <updated>2006-10-31T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-10-31-Why_three_question_marks___.html</id>
    <content type="html"><![CDATA[
<img src="/img/riddler.gif" title="When is a question mark not a question?" class="insert"> 


<p><p>Dear Internet,
<p>On this Samhain eve day, I'd like to remind all writers of email intended
for American audiences that there are only three punctuation marks that 
properly end complete sentences: the period, the exclaimation point and the 
lone question mark.  Using some remixed version of any of these to end a 
sentence in a business email automatically flips the 
<a href="http://www.ayeconference.com/wiki/scribble.cgi?read=BozoBit">Bozo 
bit</a> for most readers.  The most heinous of these freestylin' 
punctuation marks to my eyes is the Triple Hooks ("???").  Here are 
loathsome examples of its usage:</p>

<p><blockquote class="insert">
<p>I know this is a broad and ill-defined question, but does your product 
scale???
<p>Since I work for a university, can I have a free licenses for your 
expensive product???
<p>I know you don't offer phone tech support, but could you call me right 
now???
<p>I need a username?  and a password???
</blockquote></p>

<p><p>Serious, non-clown people don't need the Triple Hooks to make their point.
They expect the reader to return the courtesy of a carefully composed email
with a close and attentive reading of their missive.</p>

<p><p>Clown-people, on the other hand, do not read well at all.  They are 
constantly distracted by horns going off, rainbow fright wigs and 
fitting into over-subscribed passenger vehicles.  They can't be bothered to 
read a lot of prissy <em>sentences</em>.  They need to get on with their
important clown-business!  To this end, they employ special clown-punctuation 
in their own emails to tell them which word fragment to gawk at.  </p>

<p><p>Now that's C-business moving at the speed of the Interclownwork!</p>

<p><p>For the casual writer, I encourage you to use whatever symbols you think
will help you express yourself.  I think the percentage sign and 
<a href="http://en.wikipedia.org/wiki/Caret">circumflex</a> are 
aching for more time on the page.  Please do restrain your grammatical 
<a href="http://www.2600.com/">phreaking</a> in business correspondance. <br>
Your reader (and I) will be glad you did.</p>

<p><p>And that's why there's no key on your keyboard with "???" on it.  Learning 
is fun!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Should I work on State Secrets?]]></title>
    <link href="https://www.taskboy.com/2006-10-27-Should_I_work_on_State_Secrets_.html"/>
    <published>2006-10-27T00:00:00Z</published>
    <updated>2006-10-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-10-27-Should_I_work_on_State_Secrets_.html</id>
    <content type="html"><![CDATA[<p>Awhile ago, I wrote a free multiplayer web game called State Secrets. 
There are several parts of the game that are unfinished.  Should I finish it? </p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Crystals, the Goddess or Kim Jong-il]]></title>
    <link href="https://www.taskboy.com/2006-10-26-Crystals,_the_Goddess_or_Kim_Jong-il.html"/>
    <published>2006-10-26T00:00:00Z</published>
    <updated>2006-10-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-10-26-Crystals,_the_Goddess_or_Kim_Jong-il.html</id>
    <content type="html"><![CDATA[
<img src="/img/flying_spaghetti_monster.jpg" title="Take not my name in vain!" class="insert">



<blockquote>
&laquo;You have a particular definition of god which i think is 
not normative.&raquo;
</blockquote>
ârabiz


<p><p>Richard Dawkins, a fundamentalist atheist and author, has a new book out
called <em>The God Delusion</em>.  It looks at religion as a social phenomenon
and makes some predictions and admonishments about our attachment to what is 
patently irrational.  Sadly, Dawkins was in town a few weeks ago and I missed 
him.  I would have enjoyed going to his reading.
<p>While this book is not on the top of my current reading list, 
even though I'm a fan of Dawkins' work, I do enjoy reading the reviews of it.
It's the lazy way to feel smart!
<p>From one such review on <a href="http://scienceblogs.com/principles/2006/10/local_realism_loopholes_and_th.php">Uncertain Principles</a> comes this bit of insight:</p>

<blockquote>
Â«The modern versions of the 
<a href="http://plato.stanford.edu/entries/ontological-arguments/">"ontological argument"</a> 
for God may be 
awfully intricate, but they're not really any worse than the loopholes in 
experimental tests of Bell's theorem (in fact, divine intervention is 
probably about as credible an explanation of the results as some of the 
proposed loopholes). Ridiculous and complicated as they may seem, those are 
the arguments that need to be addressed, in the same way that a new Bell's 
theorem experiment would need to deal with the faintly absurd loopholes that 
remain in the existing experiments.Â»
</blockquote>

<p><p>It's a sad, sick world in which we, as a culture, still need to debunk 
<em>a priori</em> arguments (i.e. the pure-reason logic constructs referred to 
as "ontological arguments" made by Olde Timey authors like Decartes). <br>
Why do I have to waste my time explaning why the crap in your head is 
irrelvant to the mechanical nature of the universe? <br>
Just because you can't "imagine
a being greater than which no greater can be conceived" only proves your 
cognative limitations and suggests limitations on all human thinking.  And if 
you accept the limits of human cognative ability, you might 
find <em>a priori</em> arguments as a class of persuasion even less cogent.
<p>Like Vegas, what happens in your head, stays in your head.
<p>Looking at some of the "classical onotological arguments" for God, I 
shudder at the 
utter remoteness of them.  They explain nothing.  They predict nothing.  The 
do not expand our understanding of life, the universe and everything.  They 
move civilization forward not one jot.  Cavemen learning to beat each other 
about the head with giant sloth bones was, as an achievement for the species, 
more productive.
<p>Interestingly, one of the comments on that review points to a more 
<a href="http://scienceblogs.com/gnxp/2006/10/the_god_delusion_amongst_the_u_1.php">philosophical rebuke of Dawkins</a>:</p>

<blockquote>
&laquo;Again, not to harp on the point, but Dawkins' citations suggest that 
if children aren't indoctrinated into their parents' religion they will amost 
certainly accept some other superstition. In this case Dawkins seems to be 
assuming a naive sense of free well, as well as a tabula rasa conception of 
human nature. Among atheists there is an old joke that all children are born 
godless, but eventually indoctrinated into believing in gods. But science is 
science, and the works that Dawkins references in the first half of his book 
produce a great deal of evidence that children are 'natural theists.' So a 
child is not turned into a Christian or Muslim from the state of non-theism, 
but rather inculcated in a specific set of beliefs slotted on top of their 
innate religious sensibilities.&raquo;
</blockquote>

<p><p>What's fascinating to me (and points to my own general dullness), is the 
idea of studying religion as a natural and social property of humans.  Stripped
of its emotional baggage, religion is an enormously important social activity 
that merits full scientific investigation.  The mythology of religion, of 
course, does not.
<p>I'll have to pick up <a href="http://www.amazon.com/Breaking-Spell-Religion-Natural-Phenomenon/dp/067003472X">Breaking the Spell</a> one of these days.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[New show on PseudoCertainty: Pet Cemetery]]></title>
    <link href="https://www.taskboy.com/2006-10-26-New_show_on_PseudoCertainty__Pet_Cemetery.html"/>
    <published>2006-10-26T00:00:00Z</published>
    <updated>2006-10-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-10-26-New_show_on_PseudoCertainty__Pet_Cemetery.html</id>
    <content type="html"><![CDATA[<p><p>If you haven't checked it out before, take a peak at <a href="http://pseudocertainty.com/">PseudoCertainty</a>, 
which is a podcast I do with Mike Lord about all things weird.  There's a new show <a href="http://pseudocertainty.com/shows/pseudocertainty-20061026.mp3">available now</a> which you can also get through iTunes.
<p>If you're already a listener and enjoy the show, please to write a review on iTunes about it or link to the web site from your blog.  I'd love to get the word out about the show. 
<p>And while I'm plugging things, I'd like to recommend <a href="http://arcade.jmac.org/">JMac's Arcade</a>, which is a video blog/essay about Jason's life set to 80s video games.  Jason is a great writer and you'll find his short videos entertaining.  </p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Unreleased ATHF]]></title>
    <link href="https://www.taskboy.com/2006-10-24-Unreleased_ATHF.html"/>
    <published>2006-10-24T00:00:00Z</published>
    <updated>2006-10-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-10-24-Unreleased_ATHF.html</id>
    <content type="html"><![CDATA[<p><p>Unreleased Aqua Teen Hunger Force.
<p><a href="http://www.youtube.com/watch?v=F3WTeSo8LPM">Watch</a>.
<p>Now and forever.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Giant Squirrels]]></title>
    <link href="https://www.taskboy.com/2006-10-19-Giant_Squirrels.html"/>
    <published>2006-10-19T00:00:00Z</published>
    <updated>2006-10-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-10-19-Giant_Squirrels.html</id>
    <content type="html"><![CDATA[<p><p>If you don't believe in the existence of Giant Squirrels, 
you can be forgiven.  Most people, confident in the world as defined by
the press and vids, do not. <br>
<p>However, there are a few unhinged and untrustworthy advocates who 
claim that this man-sized rodent from the Old World are literally true.
They claim that these beasts are possessed of a cunning so remarkable as
to be mistaken for human. 
<p>Of course, this is most certainly the rants of a unsettled mind, yearning 
for order in a unplanned and mindless universe.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Ras Algethi]]></title>
    <link href="https://www.taskboy.com/2006-10-19-Ras_Algethi.html"/>
    <published>2006-10-19T00:00:00Z</published>
    <updated>2006-10-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-10-19-Ras_Algethi.html</id>
    <content type="html"><![CDATA[<p>A red giant star in the constellation of Hercules, Ras Algethi is also
called, more properly, Alpha Herculis.  Ras Algethi is arabic for 
"the Kneeler's Head."  A picture of the constellation can be found 
<a href="http://www.seds.org/Maps/Pics/hercules.gif">here.
From <a href="http://www.seds.org/Maps/Stars_en/Fig/hercules.html">this 
site</a>:</p>

<blockquote>
&laquo;The leading star alpha Her, called Ras Algethi (arab.: kneeler's head), 
is a red supergiant (spectraltype M5Ib-II). Its brightness varies erratically 
from 3.1 mag to 3.9 mag. A small telescope reveals a second star of 5.39 mag 
(physically not related to the other). This 'companion' is a binary 
consisting of a G5 giant and a F2 main sequencec star (not resolvable by 
amateur scopes).
The brightness of the variable star S Her varies every 307 days from 5.9 mag 
to 13.6 mag. It belongs to the same class of variable stars as R Ser.
The varibale star SZ Her is a eclipsing binary. Every 16 hour the fainter 
component dims the brighter from 10.2 mag down to 12th mag. The eclipse has a 
duration of about 90-100 minutes. Tom Polakis observed this star and printed 
a lightcurve.&raquo;
</blockquote>

<p><p><a href="http://www.astro.uiuc.edu/~kaler/sow/rasalgethi.html">Also see</a>:</p>

<blockquote>
&laquo;Though the brightest of its stars is only middling second magnitude, 
the constellation as a whole is fairly prominent. Rather oddly, Rasalgethi, 
the Alpha star, is the fifth brightest, perhaps because it is a bit south of 
the main constellation pattern. The name means "the Kneeler's Head, in 
reference to an early name for the constellation, the figure of the man seen 
upside down, his head toward the south. Though of the third magnitude as seen 
from Earth, the star itself is magnificent, a reddish giant or even supergiant
 with a surface temperature of about 3000 degrees Kelvin. At a distance of 
about 400 light years, Rasalgethi to the human eye is almost 500 times more 
luminous than the Sun&raquo;
</blockquote>

<p><p>There are several small, rocky planets between the orbits of Ras Algethi 
and its binary neighbor.  Technically, these worlds orbit the binary pair, but 
Ras Alegthi is hard to miss in their skies.
<p>In the Earth year 3001, a colonizing expedition was sent to one of this 
rocky worlds, which proved rich in mineral resources.  A mining operation 
was established, but transporting this bounty back to earth became 
unpractical.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Shaping up my bottom line]]></title>
    <link href="https://www.taskboy.com/2006-10-19-Shaping_up_my_bottom_line.html"/>
    <published>2006-10-19T00:00:00Z</published>
    <updated>2006-10-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-10-19-Shaping_up_my_bottom_line.html</id>
    <content type="html"><![CDATA[
<img src="/img/from_behind.jpg" title="Me, from behind.  2006" class="insert">


<p></p>

<blockquote>
&nbsp;I'm mad as hell and I'm not going to take it anymore!&nbsp;
</blockquote>

<p><p>â<a href="http://www.imdb.com/title/tt0074958/">Network</a>

<p>Albert Finney's famous line from Network rings true for all of us at times
and for me that time is now.
<p>I've got two nagging problems in my life.  I'm lucky to have only two.  One
is my student loans and the other is my weight, which has become a problem 
again.
<p>The first problem can be solved with money.  And since I've got enough, 
I decided now is the time to repay my debt.  Although my net worth won't 
change, I will enjoy an extra couple hundred bucks a month from now on.
<p>Sallie Mae, I'm not your whore anymore!
<p>The second problem will take time and money to solve, but I have resolved
to so starting today.  My approach to weight loss has always been low-key. 
I consider it a waste of valuable sittin'-around time. <br>
My goals this time around are a lot less 
intense than the last time I did this (I lost nearly 50 pounds then). 
However, I do take the long view in gauging my results, which helps the 
process.
<p>With luck, I'll start 2007 with less choleric and monetary debt.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The Academy of Spirtual Sciences]]></title>
    <link href="https://www.taskboy.com/2006-10-19-The_Academy_of_Spirtual_Sciences.html"/>
    <published>2006-10-19T00:00:00Z</published>
    <updated>2006-10-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-10-19-The_Academy_of_Spirtual_Sciences.html</id>
    <content type="html"><![CDATA[<p><p>A curious blend of evangelical Christianity and hard-nosed <br>
science, the Academy serves the mining colony as a source of technical skills
and moral guidance.  Over the years, the Academy has grown in wealth and 
influence.  Some have argued that it has overstepped its original charter, but
those within the Academy claim that they only go where they are asked.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[RSS aggregator for Taskboy]]></title>
    <link href="https://www.taskboy.com/2006-10-15-RSS_aggregator_for_Taskboy.html"/>
    <published>2006-10-15T00:00:00Z</published>
    <updated>2006-10-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-10-15-RSS_aggregator_for_Taskboy.html</id>
    <content type="html"><![CDATA[<p><p>In my continuing quest to implement hot technology from the year 2000, I've created an <a href="/feeds/">RSS aggregator</a>.
<p>This application is more than a rehash of Rael Dornfest's Meerkat, which I miss.  <p>I'm very fond of Firefox's Live Bookmarks, but I don't always have my computer with me.  This way, I can get to the important feeds from any machine.
<p>All VC funding offers should be directed to the email at the bottom of this page.  The gravy train is pulling out of the station!
<p>I'm also working on a sort of Wiki for Taskboy, but it's not quite ready for prime time yet.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Welcome to Taskboy's Wiki]]></title>
    <link href="https://www.taskboy.com/2006-10-12-Welcome_to_Taskboy_s_Wiki.html"/>
    <published>2006-10-12T00:00:00Z</published>
    <updated>2006-10-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-10-12-Welcome_to_Taskboy_s_Wiki.html</id>
    <content type="html"><![CDATA[<p><p>This will be the default page for the Taskboy wiki.  It will rule
and garner lots of attention.  By which I mean eyeballs, ad revenue, power.
<p>Perhaps I'm getting ahead of myself.
<p>Here's a @@welcome|link@@ to another page</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Welcome to my Wiki]]></title>
    <link href="https://www.taskboy.com/2006-10-12-Welcome_to_my_Wiki.html"/>
    <published>2006-10-12T00:00:00Z</published>
    <updated>2006-10-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-10-12-Welcome_to_my_Wiki.html</id>
    <content type="html"><![CDATA[
<img src="/img/preacher.gif" class="insert">


<p><p>Howdy!  Welcome to my Wiki here on Taskboy.</p>

<p>This system is built on top of the existing Taskboy blogging software 
to provide me a place to jot down ideas I need to keep in an organized fashion.
What sort of things am I talking about?</p>

<ul>
  <li>Story ideas
  <li>Tech book ideas
  <li>other ideas
</ul>

<p><p>Because of the personal nature of these topics, I'm not allowing general
write access to this thing.  Nor am I tracking changes (since I won't be 
getting into revert wars with myself).
<p>What I do hope to borrow from other Wikis is the specialized syntax that
will help produce automatic internal hyperlinks to tags.  I'm thinking about using 
to do this syntax:</p>

<p class="code">
&#64;&#64;&lt;tag>&#64;&#64;

or 

&#64;&#64;&lt;tag>|anchor&#64;&#64; 
</p>

<p><p>This syntax is similar to Wikipedia's.
<p>For instance, I could link to tag names like @@wiki:Maintenance@@ 
or quoted tags like @@"welcome"@@.  Or, I 
could do something fancier like @@wiki:Maintenance |this link@@.
<p>In the end, I think an article should get at least one distinguishing tag. 
I'm not sure about this though.  It seems onorous.
<p>Let's see how this goes.</p>

<p>Of course, I'm not following the URL standard, but hey, I don't care. :-)</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Mike Lord: The Headshot]]></title>
    <link href="https://www.taskboy.com/2006-10-10-Mike_Lord__The_Headshot.html"/>
    <published>2006-10-10T00:00:00Z</published>
    <updated>2006-10-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-10-10-Mike_Lord__The_Headshot.html</id>
    <content type="html"><![CDATA[
<img src="http://www.spc.edu/Images/Career%20Services/michael_lord.jpg" title="Mr. Lord, Dreamer" class="insert">


<p><p>This is <a href="http://www.spc.edu/pages/1800.asp">Mike Lord</a>.  You may 
know him as Zorknapp.  Or, you might know him as the tireless higher education
worker trying to make student's lives at college just a little bit more 
comfortable.
<p>But, if you're reading this, you probably know him as Zorknapp.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[On Pi]]></title>
    <link href="https://www.taskboy.com/2006-10-04-On_Pi.html"/>
    <published>2006-10-04T00:00:00Z</published>
    <updated>2006-10-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-10-04-On_Pi.html</id>
    <content type="html"><![CDATA[
<img src="/img/mandala.gif" title="The circle of life" class="insert">


<p><p>For 
some</a>, the infinite sequence of decimal places generated by the 
ratio of a circle's area to the square of its radius that we call 
&#960; 
is  <a href="http://news.yahoo.com/s/ap/20061004/ap_on_fe_st/memorizing_pi">extremely 
provocative</a>.  I'll confess that the subject has some interest for me.</p>

<p><p>When you hear that a number doesn't end, that it cannot be completely 
represent by any means known to man (or at least this man), then you might 
start to think that this number is as close
to magic as we're likely to come in this mortal coil.</p>

<p><p>That said, there are <a href="http://mathforum.org/library/drmath/view/53905.html">many ways</a> of calculating &#960;.</p>

<p><p>One popular thought experiment is to imagine what sort of messages are 
contained in &#960;.  People 
have been encoding messages with numbers and 
other symbols for many centuries.  One could argue that the alphabet itself
is just a symbolic encoding of thoughts anyway. <br>
<p>Does &#960; have a message for us?</p>

<p><p>Well, it might and it might not.  You'd have to figure out how the message
is encoded.  What's the alphabet of the message?  What language do those 
letters belong to?</p>

<p><p>In the computer world, there is a popular mapping between numbers and 
letters called the American Standard Code for Information Interchange 
(take THAT, XML!), abbreviated ASCII.  In ASCII, capital "A" is represented 
by the decimal number 65, 
lowercase "a" is 97.  These numbers represent the character's order in the 
list of 128 characters that compose basic ASCII.  The word "dog" is presented 
by the ASCII sequence of decimal numbers: "100111103".  In the programming 
language Perl, you could find this out with the following snippet:</p>

<p class="code">
printf("%s", join("", map { ord($_) } qw[d o g]))
</p>

<p><p>Is the ASCII sequence for "dog" contained in 
&#960;?  It's certainly 
possible. <br>
The sequence is short compared to the decimal places in &#960;. <br>
Since I don't have the the means to generate 
&#960; with any accuracy, 
I can't tell you the offset in sequence of decimal numbers in &#960; that "dog" appears.  However, I'm 
pretty confident it is there.
<p>Of course, there may be other encodings lurking in the limitless parade of 
numbers in that magic ratio.  One method popular for encrypting messages these
days is called Public Key Infrastructure(PKI), which uses a prime 
number raised to 
the power of another prime number.  The product of such an operation is 
very hard to factor (having only one correct solution).  If you give these 
numbers to a friend, she will be able to decode your messages fairly easily. 
However, if your message is intercepted by a ne'er-do-well, he will have a hard
time finding the right magic numbers to unlock your missive. <br>
There are other transcendental numbers known to us.  Perhaps these are part 
of a galactic PKI encrytion scheme?
Perhaps &#960; really is 
some universal truth encoded in such a way as to challenge sentient beings.
<p>The decimal numbers in &#960; are thought not to 
repeat themselves.  In emperical tests, this appears to be the case. <br>
However, we can't know that the number doesn't repeat until we can either 
generate the entire number or come up with a fancy, mathematical proof that 
explains the behavior of these never-end decimals.
<p>One jumping off point for the philosophical meandering about &#960; is 
to think that if this number generates an infinite sequence of non-repeating 
numbers, then &#960; might 
be nature's random number generator.  If that's the 
case, then you might be tempted to think that any sequence of arbitrary size 
can be contained in the &#960;. <br>
If your imagination is wild enough, you 
might be tempted to be believe that there is a numeric representation of the 
universe contained somewhere in &#960;.
<p>This sort of thought leads a lot of freshman math majors to soil their 
bed sheets.
<p>The unsettling conclusion to this idea is that &#960; is either a numeric
"backup" of the universe or perhaps it is the blueprint of reality.  Both of 
these notions imply an automaton or purely natural universe.  By this, I simply
mean that all processes of reality have a non-supernatural cause.  This will
no doubt make some uncomfortable.  If the accepted rational view of the 
universe's origins is true, then at some point, something "beyond" nature 
had to be, since "nature" didn't exist prior to that.  But perhaps math did
and these special numbers are a relic of that pre-relational universe.  It's 
an odd paradox and one that Dr. Hawking suggests is the product of 
fundamentally flawed thinking.
<p>But that's gets into the nature of time and that's a completely different 
essay.
<p>What is most interesting about &#960; is, perhaps, not the number at all, 
but how people react to it.  It's a number that promotes cosmological thinking
in those that consider it deeply.  Perhaps &#960; is like the monolith in 
Clarke's 2001 in that the more we attempt to interact with it, the more it 
tells us about what we are.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Foriegn policy is hard!]]></title>
    <link href="https://www.taskboy.com/2006-10-03-Foriegn_policy_is_hard_.html"/>
    <published>2006-10-03T00:00:00Z</published>
    <updated>2006-10-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-10-03-Foriegn_policy_is_hard_.html</id>
    <content type="html"><![CDATA[
<img src="/img/crying_girl.jpg" title="Waahhh! Too hard!" class="insert">


<p><p>The Chicago Tribune reports</a>:</p>

<blockquote>
&laquo;QALAT, Afghanistan â U.S. Senate Majority Leader Bill Frist said 
Monday that the Afghan war against Taliban guerrillas can never be won 
militarily and called for efforts to bring the Islamic militia and its 
supporters into the Afghan government.&raquo;
</blockquote>

<p><p>I thought the U.S. wasn't going to <a href="http://www.bloomberg.com/apps/news?pid=10000087&amp;sid=aipcO_hOnwno">support non-democratic regimes</a> anymore? 
Shortest policy reversal ever?
<p>Without the Iraq distraction, the US could have rebuilt Afghanistan 
properly, for less money and acrimony and even had a reasonable 
chance of catching bin Laden, who's probably keeping it real in Pakistan.
<p>Apparently, the U.S. can't "cut and run" in Iraq, but doing so in 
Afghanistan and even welcoming back into power those people that 
supported the 9/11 attackers is just fine. Why?  Because rooting out 
terrorists is hard! 
<p>Had a Democrat recommended this, Bill O'Reilly or Ann Coulter would have 
branded him a traitor and called for his deportation.
<p>Madness. 
<p>I officially call on our leaders from both sides of the political aisle to 
stop sucking so hard <em>this instant</em>! </p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[MBA via blog]]></title>
    <link href="https://www.taskboy.com/2006-10-02-MBA_via_blog.html"/>
    <published>2006-10-02T00:00:00Z</published>
    <updated>2006-10-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-10-02-MBA_via_blog.html</id>
    <content type="html"><![CDATA[
<img src="/img/stock_graph.jpg" title="Boring graphs are booming this year!" class="insert">


<p><p>Let me begin be saying: I'm not a business executive.  I've never started 
my own business (yet).  But I have seen and read a few things that have lifted 
the scales from my eyes regarding business.
<p>Business is about customers.  Successful businesses have them; 
unsuccessful ones don't.  If you want to succeed at business, you need 
to understand this first.  <a href="http://www.mirrordot.com/stories/788cd0a728386b585abdb4562318b9a5/top-ten-geek-business-myths.html">VC Ron Garret</a> <br>
says as much and from the very excellent education I've gotten from 
working at Leostream, I believe him.
<p>Start-ups don't get funded for having great ideas, a superior product or 
even a competent management team (although I recommend having all of these, 
if you can swing it).  People with money have money because they don't throw 
it away unprofitably.  If you look like a winner, you'll get backed like one.
To demonstrate you're a winner, get a lot of customers.
<p>I'd add a few more points.  Most likely, you're not a paragon of infinite 
ability.  To build a company, you need to acquire talent that complements your
own.  You don't need to do this from the absolute beginning, but eventually, 
you need to scale the organization from just being you.  This is often a hard,
expensive and painful transition. 
<p>Oddly enough, it seems that if you already recognize your own limitations, 
you're probably not an entrepreneur.
<p>If you think 
  <a href="http://www.businessweek.com/smallbiz/content/feb2005/sb2005021_6109_sb013.htm?campaign_id=bier_smsg">you've got what it takes to start your own 
business</a>, just remember these points.  The rest is left as an excerise to 
the reader.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Protect your web form from spammers with Ajax]]></title>
    <link href="https://www.taskboy.com/2006-10-02-Protect_your_web_form_from_spammers_with_Ajax.html"/>
    <published>2006-10-02T00:00:00Z</published>
    <updated>2006-10-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-10-02-Protect_your_web_form_from_spammers_with_Ajax.html</id>
    <content type="html"><![CDATA[<p><p>Of late, I've had to think about mechanisms to protect web forms 
from getting spammed.  For reasons that aren't very clear to me, spammers
are writting bots to randomly fill in forms and submit them, as if that will
really boost sales of the advertised (and often misspelled) product.</p>

<p><p>I apologize in advance for the scattered and disorganized state of this 
entry.  I wanted to say something about what I've been working on.</p>

<p><p>You can look at a working version of the solution described below 
<a href="/ajax/">here</a>.</p>

<p><p>One solution I've see comes from Blogger, which can require users to 
type in the letters that appear in a image.  The letters in the image 
are distorted and there is often some background noise.  This is to throw 
off optical character recognition routines that spammers might imploy to 
figure out what letters appear in the image.  The distortions and noise 
thwart most OCR attempts.</p>

<p><p>I like this approach, but since I'm not very good with image manipulation,
I needed another way to do something similar.  The answer came from some 
reading I did years ago when I wanted to make video games for a living.  In 
particular, I recalled that console fonts stored in PC ROM where typical 
composed of 8x8 matrixes.  I then thought that if I could recreate these 
matrixes, I could represent these patterns as alternating colors in an HTML 
table.</p>

<p><p>Of course, it wouldn't be especially hard to create routines that read in 
thees tables of characters and produce the original character, but that's a
refinement for another day.</p>

<p><p>Once I could translate characters into an HTML table, it was an easy thing 
to create a random series of characters to feed to this routine.  To prevent
simple packet sniffing of the secret word, I needed a way to pass something
back to the client that could be used to verify the word.  Since sending 
the password in clear text was obviously a non-started, I needed some kind of 
hash.  The most natural hashing algorithm to use for what amounts to passwords
is DES, which has been used by UNIX systems to protect their authentication 
system for years (although it's not really as unbreakable as PKI schemes).</p>

<p><p>The next problem was to create a mechanism where an HTML page could 
request this bundle of HTML tables that represent a word.  This is where the
oft-talked about Ajax techniques come into play.  Ajax is simple an 
asynchronous RPC mechanism that's built with javascript and some other 
server-side programming technology.  It took me a good bit of time to work 
through the most common gotchas that prevent reliable transportation of the 
Ajax RPC messages.  Popular browsers have different DOM parsers that treat 
large (> 4096 bytes) data differently.</p>

<p><p>There are two major problems with the approach described here.  The 
first is that it would be easy to write an OCR routine to read the HTMLized
font.  The second problem is that anyone can bypass the security by 
creating there own DES hash of an arbritary string and passing that string 
in clear text to the ajax server.</p>

<p><p>Let me tackle the second problem first.  To ensure that the hash-value 
recieved by the ajax server can be trusted, two methods can be used.  The 
first is to rewrite the secret word checker to use a session-based system.
The user would be passed a session ID from the server.  The server would 
remember what secret phrase it sent to the user.  The user sends back 
their guess in clear text.  The validator retrieves the secret from a backing
store and makes the check. </p>

<p><p>I don't much like this stateful solution, although I believe it is superior
to the original implementation.  If you've got an app that already has 
sessions, perhaps this is a natural fit.</p>

<p><p>Another solution to this problem is to use a Public Key Infrasture mechanism
to encode the secret into a hexadecimal string.  When the user returns this 
encoded secret along with the clear-text guess, the server decrypts the 
secret using a private key.  If the encoded secret has been tampered with, 
the decryption will fail.  I would recomend this solution as a refinement to 
the anti-spamming mechanism I've described.</p>

<p><p>The second and more difficult problem with my mechanism is that it would be 
trivial to write OCR for the HTML emitted.  It's true that the spam bot would 
have to speak javascript to get to this data at all, since the HTML is 
injected into the static web page via <code>innerHTML()</code>.   But I don't 
think that's sufficiently obscure enough to baffle spammers.  What would be 
needed is some kind of "noise" in the HTML to making OCR difficult.  Other 
than adding spacing, altering capitalization and adding weird HTML attributes, 
there's nothing that a solid HTML parser and a good coder couldn't get a round.</p>

<p><p>All of this has made me appreciate just how good the human brain is at 
finding meaning in chaos.  Digital creations just aren't up to that task yet.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Stop looking into the future, Richard Clarke!]]></title>
    <link href="https://www.taskboy.com/2006-10-02-Stop_looking_into_the_future,_Richard_Clarke_.html"/>
    <published>2006-10-02T00:00:00Z</published>
    <updated>2006-10-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-10-02-Stop_looking_into_the_future,_Richard_Clarke_.html</id>
    <content type="html"><![CDATA[<p><p>From <a href="http://www.theatlantic.com/doc/200501/clarke">The Atlantic</a>, 2005:</p>

<blockquote>
&laquo;Peter and Margaret Rataczak, of Wichita, Kansas, were the first to die on June 29, 2005, in a new wave of suicide attacks launched against the United States in retaliation for the killing of Osama bin Laden that spring, and for the continuing presence of U.S. troops in Iraq. These attacks were every bit as well planned as those of 9/11 and, in typical al-Qaeda fashion, used low-technology means to achieve maximum public impact. What we know about the attacks' planning and execution comes in large part from tourists who provided photos and video from their travels. Without these images we might never have known that the Rataczaks' killers were non-Arab.&raquo;
</blockquote>

<p><p>Just because terrorism is in your area of expertise doesn't mean you get to make me feel bad about the President's stunningly inept adminstration.  You're
a bad man! Why do you hate our freedom?</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Ajax and javascript callbacks]]></title>
    <link href="https://www.taskboy.com/2006-09-29-Ajax_and_javascript_callbacks.html"/>
    <published>2006-09-29T00:00:00Z</published>
    <updated>2006-09-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-09-29-Ajax_and_javascript_callbacks.html</id>
    <content type="html"><![CDATA[<p><p>Here's another boring programming note to myself.  Please note that
I had to break lines of code for formatting reasons.  Please use this 
syntax as a guideline.  Don't try to cut and paste it.
<p><a href="http://developer.mozilla.org/en/docs/AJAX">Ajax</a> is all the 
rage now.  To me, it's just web services done with Javascript and Javascript
blows bigger chucks than Java (and we all know how 
<a href="/index.php?tags=java">I feel about that</a>).
<p>In playing with the simple code on Mozilla's site, I realized that the 
browser complicates using Ajax as a simple RPC mechanism.  The reason? <br>
Browsers are inherently multithreaded applications and so all the RPC Ajax 
calls must be asynchronous.  That means that you can't directly port 
something like XML-RPC or SOAP (both of which are more or less synchronous) 
to Ajax.  Browsers run javascript on events.  When the Ajax response finally 
comes back to the browser, a callback function is needed to continue processing
the response. <br>
<p>That's not so bad, but what if you really want to do this:</p>

<p class="code">
&lt;script>
var uid = &crarr;
  RPCRequest('server.php?action=getUID?username=jjohn');
&lt;/script>
</p>

<p><p>The problem is that RPCRequest returns as soon as the request is 
<em>made</em>, not when the response comes back.
<p>Here's the typical Ajax code (via the Mozilla article) that makes the 
request and parses the response:</p>

<p class="code">
// file: ajax.js
// make the request, register the callback
function makeRequest(url, cb) {
  var http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari, â¦
    http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType) {
        http_request.overrideMimeType('text/xml');
    }
  } else if (window.ActiveXObject) { // IE
      try {
        http_request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {

      }
  }

  if (!http_request) {
    alert("No HTTP object!");
    return false;
  }

  http_request.onreadystatechange = function() { 
      alertContents(http_request, cb); };
  http_request.open("GET", url, true);
  http_request.send(null);
  return http_request;
}

// the callback to handle the response from the server
function alertContents(http_request, cb) {
  try {
    if (http_request.readyState == 4) {
      if (http_request.status == 200) {
        // parse out response
        var resp = http_request.responseXML;
        var val = &crarr;
           resp.getElementsByTagName("response"). &crarr;
             item(0).firstChild.data;
        cb(val);
      } else {
        alert('There was a problem with the request.');
      }
    }
  } catch (e) {
      alert("Exception: " + e.message);
  }
}

</p>

<p><p>In this code, I expect a rather meager XML response that has only a 
response tag.
<p>I got the notion that what I should do with the response handler is 
send it a callback from the caller to handle the parsed response.  Something
like the following:</p>

<p class="code">
&lt!â file: test.html â>
&lt;html>
&lt;head>
&lt;script type="text/javascript" 
   language="JavaScript" src="ajax.js">
&lt;/head>
&lt;body>

&lt;span
    style="cursor: pointer; text-decoration: underline">Make a request&lt;/span>
&lt;/body>
&lt;/html>
</p>

<p><p>Again, this works fine when the anonymous function has a globablly defined
function like <code>alert()</code>.  But what if you want to define a function 
in the caller's HTML page and have it called from code in the ajax.js page?
I haven't figured that out yet (but see below). <br>
<p>The problem is that the scope of functions defined on the calling page is 
not visible (it seems) to the functions in the 
ajax.js page.  I think I could get around this using fully-qualified DOM 
names ore something nutty like that. <br>
<p>I want to use objects, but of course, Javascript has 
<a href="/index.php?bid=108">classless objects</a> which don't help here. <br>
I guess I could define the callback behavior for each call, but that seems 
dumb.
<p>I need to sleep on this a bit. 
<hr>
<p>UPDATE: What a difference eight hours of sleep makes!
<p>After digging around the javascript books I have, I came up with this 
more object-oriented version of the ajax code that removes the callback 
function in favor of a user-overridden method.  That nicely divides that 
generic RPC tasks from the caller-specific ones.  The code appears to run
in both Firefox and Internet Explorer on my XP box, but I'm sure it will 
break in Opera and Safari.
<p>Let's look at the new <code>ajax.js</code> file.  This defines an "class"
call RPCClient.</p>

<p class="code">
/* Much of this is from
 * http://developer.mozilla.org/en/docs/AJAX:Getting_Started
 */
function makeRPCRequest(url) {

  if (window.XMLHttpRequest) { // Mozilla, Safari, â¦
    this.http_request = new XMLHttpRequest();
    if (this.http_request.overrideMimeType) {
        this.http_request.overrideMimeType('text/xml');
    }
  } else if (window.ActiveXObject) { // IE
      try {
        this.http_request = &crarr;
          new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {
        this.errstr = e.message;
      }
  }

  if (!this.http_request) {
    alert("No HTTP object!");
    return false;
  }

  // Can't use 'this' in callback.  
  // Gets confuses with http_request.
  var thisObj = this;

  this.http_request.onreadystatechange = function() {
        thisObj.watchResponse();
  };

  this.http_request.open("GET", url, true);
  this.http_request.send(null);
}

function parseRPCResponse() {
  try {
    if (this.http_request.readyState == 4) {
      if (this.http_request.status == 200) {
         // parse out response
         var resp = this.http_request.responseXML;
         var val = &crarr;
                   resp.getElementsByTagName("response") &crarr;
                        .item(0).firstChild.data;
         this.handler(val);
      } else {
          alert('There was a problem with the request.');
      }
    }
  } catch (e) {
      alert("Exception: " + e.message);
  }
}

// define the RPCClient object
function RPCClient () {
   this.errstr         = false;
   this.http_request   = false;
}

// navigator 3 bug workaround for prototype
new RPCClient();
RPCClient.prototype.send = makeRPCRequest;
RPCClient.prototype.watchResponse = parseRPCResponse;
RPCClient.prototype.handler = function (x) &crarr;
     { alert("Default handler.n" + x) };
</p>

<p><p>The idea of this code is that the user overrides the <code>handler</code> 
method to do something useful with the value that comes back from server.
<p>Most of this code just replaces procedural elements with OO mechanisms. <br>
However, notice this stupid looking assignment:</p>

<p class="code">
  var thisObj = this;
</p>

<p><p>I had to do this because of scoping behavior that, as a Perl coder, I find
nutty and wrong.  The trouble comes when I want to use the current object in
the http_request callback/method <code>onreadystatechange</code>.  Like most
method declarations, I use an anonymous function to override the default 
action.  When I try to use the <code>this</code> in the callback/method, it 
then refers to http_request object, not the RPCClient object. <br>
<p>Ugh. 
<p>I guess JavaScript has to work this way, since it doesn't have proper 
namespaces or Perl closure rules.  How can I tell JavaScript which object 
<code>this</code> refers to?  The answer is not to use <code>this</code>, but
a reference to the current RPCClient object.
<p>This is a pretty subtle point and it's easy to get forget.  Of course, if 
you only use JavaScript, it probably makes perfect sense to you.
<p>Time for the calling HTML page.</p>

<p class="code">
&lt;!â file: test.html â>
&lt;html>&lt;head>
&lt;script type="text/javascript" language="JavaScript1.2" 
src="ajax.js">&lt;/script>
&lt;style type="text/css">
.fakeURL { text-decoration: underline; cursor: pointer;}
&lt;/style>
&lt;script type="text/javascript" language="JavaScript1.2">
var rpc = new RPCClient();
rpc.handler = function(x) { alert("From the caller: " + x)};

function dump (obj) {
  document.write("&lt;div>&lt;p>&lt;b>Object properties&lt;/b>&lt;/p>&lt;dl>n");
  for (var p in rpc) {
    document.write("&lt;dt>property: &lt;code>" + p 
                   + "&lt;/code>&lt;/dt>" + "&lt;dd>type: &lt;code>" 
                   + typeof(rpc[p]) + "&lt;/code>&lt;/dd>n");
  }
  document.write("&lt;/dl>&lt;/div>n");
}
&lt;/script>

&lt;/head>
&lt;body>
&lt;script type="text/javascript" language="JavaScript1.2">
//dump(rpc);
&lt;/script>
&lt;span class="fakeURL">Make a request&lt;/span>
&lt;/body>
&lt;/html>
</p>

<p><p>There's a bit of debugging code in there that dumps the properties of 
the RPCClient object.  I left that code here for future debugging needs. 
A new RPCClient object is instantiated as you'd expect.  The default 
<code>handler</code> is overridden with a trival method.
<p>Now the RPC mechanism looks a little cleaner!  It's still asynchronous, 
but all the caller side code can be stored with the caller.
<p>For the record, here's the PHP server, which is just echoes the values
passed to it:</p>

<p class="code">
&lt;?php
  header("Content-Type: application/xml");
  header("Cache-Control: no-cache");
  print "&lt;?xml version='1.0'?>";
?>

&lt;response>
&lt;? foreach($_GET as $k => $v) {
     print "$k => $vn";
   }
?>
&lt;/response>
</p>

<p><p>This PHP is pretty trivial, but there are a few gotchas.
<p>You have to set the MIME type correctly and disable browser caching.
<p>You also have to emit XML, which is no big thing, except that the 
XML declaration looks like PHP code to PHP, so I had to be a little crafty
in emitting it.
<p>Finally, I just echo the key-value pairs I receive.  Simple!
<p>The next iteration of the code will pass the response back as a base64 
encoded string.  I don't need to pass complex data to the browser, but I may
want to pass HTML.  From my years of XML-RPC hacking, the best way to do this 
is by encoding the HTML.  Otherwise, you'll go mad.
<p>Have I mentioned that XML sucks too?  It does.
<p>Happy hackin'.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Not just Iraq]]></title>
    <link href="https://www.taskboy.com/2006-09-27-Not_just_Iraq.html"/>
    <published>2006-09-27T00:00:00Z</published>
    <updated>2006-09-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-09-27-Not_just_Iraq.html</id>
    <content type="html"><![CDATA[<p><p>Here's an unusually thoughtful essay on the 
<a href="http://blog.washingtonpost.com/earlywarning/2006/09/the_nie_the_president_and_the.html">global war on terror</a>.
<blockquote>
&laquo;President Bush may reduce all of this to the terrorists looking for an "excuse," but al Qaeda and the jihadist movement grew out of a complex and convoluted anti-western, dare we say anti-Christian and anti-Jewish, narrative that began with the defeat of Soviet empire in Afghanistan and now promises the defeat of America, Israel, and the west.</p>

<p><p>The growth of dissatisfaction and terror, the summary of the National Estimate argues, is not only about Iraq: Corruption, repression, and inner battles within Islam and Muslim states are the sources of the spread and growth of today's jihadist movement.&raquo;
</blockquote>
<p>Most world powers have always persuded a rather brutal foreign policy.  The 
U.S. isn't an exception and will be far from the last country to do this. <br>
The Jihadis will not be defeated by force of arms, but by demonostrating to 
the world that their solution to mid-eastern problems is wrong-headed.  Neither
party in the U.S. is addressing this correctly and so: eternal war.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Get blazed]]></title>
    <link href="https://www.taskboy.com/2006-09-19-Get_blazed.html"/>
    <published>2006-09-19T00:00:00Z</published>
    <updated>2006-09-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-09-19-Get_blazed.html</id>
    <content type="html"><![CDATA[



<p><p>Do I really need to comment on this?  Yes, yes I do.
<p>Rhythmless white guys rapping is a joke so old, I remember when it was new. <br>
<p>Mulletboy is sad.  </p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Carny Crackups]]></title>
    <link href="https://www.taskboy.com/2006-09-18-Carny_Crackups.html"/>
    <published>2006-09-18T00:00:00Z</published>
    <updated>2006-09-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-09-18-Carny_Crackups.html</id>
    <content type="html"><![CDATA[



<p><p>Noted sci-fi author Robert Heinlein once posited that humor in based in pain.  Over the years, I've come to agree with him.
<p>It's not that the kid in the video above is any dorkier than anyone else I know.  He's not.  I laugh because I have been that hysterical about things that turned out to be OK if I had just let the experience happen and not tried to fight it.
<p>If that video isn't enough for you, how about <a href="http://video.google.com/videoplay?docid=5989928976337943265">other child abuse</a>?</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Municipal Truck Faire]]></title>
    <link href="https://www.taskboy.com/2006-09-18-Municipal_Truck_Faire.html"/>
    <published>2006-09-18T00:00:00Z</published>
    <updated>2006-09-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-09-18-Municipal_Truck_Faire.html</id>
    <content type="html"><![CDATA[
<img class="insert" src="/img/napoleon_dynamite.gif" title="Welcome to my sweet, sweet ride.">


<p><p>I know, I know.  You're all going to kick yourselves to learn that you missed this year's <a href="http://www.burlington.org/clerk/Calendar/wc20060917.html">Municipal Truck Faire</a> in Burlington, MA this year.  It happened last Sunday.  It took place in downtown Burlington.  There were lots of kids climbing into dump trucks, fire trucks, front-loaders, ambulances and whatnot.
<p>In other news, there is a downtown Burlington.  Also, truck faires happen in Blue States.
<p>Stay tuned to this channel for more Tales to Astound!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[fsck you]]></title>
    <link href="https://www.taskboy.com/2006-09-13-fsck_you.html"/>
    <published>2006-09-13T00:00:00Z</published>
    <updated>2006-09-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-09-13-fsck_you.html</id>
    <content type="html"><![CDATA[<p><p>Mary, Joseph and the Spook!
<p>If I never see another goddamn inconsistent filesystem on a linux box, it will be way too soon.
<p>Jeez-suhsâ¦</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Java hates your freedom]]></title>
    <link href="https://www.taskboy.com/2006-09-12-Java_hates_your_freedom.html"/>
    <published>2006-09-12T00:00:00Z</published>
    <updated>2006-09-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-09-12-Java_hates_your_freedom.html</id>
    <content type="html"><![CDATA[
<img src="/img/crying.gif" title="Again with the Java?  Why, God?  Why!" class="insert">


<p><p>The more I use Java, the more I realize what 
"<a href="http://www.codinghorror.com/blog/archives/000206.html">ivory tower</a> 
<a href="http://www.catb.org/~esr/writings/cathedral-bazaar/">development</a>" means.  And I don't like one bit, sir.
<p>Java doesn't support <code>printf</code>.  The C function 
<code>printf</code> is something nearly
100% of all programmers worldwide know how to use because it's how you make 
words appear on a screen or in a file.  More importantly, it's the function 
you use to <em>format</em> text.  That is, it allows you to control how 
many decimal places appear for floating point numbers, whether leading zeros
appear in front of numbers, whether to show numbers as hexadecimal, octal or 
decimal, and a whole lot more.  It's used in that most famous 
of introductory programs, hello.c:</p>

<p class="insert">
#include 
void main (char **argv, int argc) {
  printf("Hello, world!n");
}
</p>

<p><p>It's so basic a function that you can forget how darn useful it is. <br>
But, Java doesn't have it.  What Java has a method, which is part of those 
kinds of classes that concern themselves with streams, which is a highly 
generic way of thinking about files and consoles and network sockets and 
your mom.  </p>

<p><p>Ok, let's leave your mom out of this (for now).  </p>

<p><p>That Java method is named <code>println</code>.  It doesn't 
know how to format your output (to make your decimal numbers all pretty or to 
add fancy columns to your output), but it does know how to put the 
platform-appropriate newline character on the end of your string!  So, 
you've got that going for you!</p>

<p><p>Now, the designers of Java aren't stupid (more on this later).  There are 
problems that programs using <code>printf</code> encounter.  For instance, 
internationalizing the output of programs with <code>printf</code> can be 
difficult.  Sometimes.  In badly designed large programs, which few programmers
ever have to deal with.  </p>

<p><p>More damningly, <code>printf</code> is ideologically impure.  It's a 
function and Java's all about the Objects, baby.  Sure, they <em>could</em> 
have made a static method of the String (or OutputStream or whatever) class 
called <code>printf</code>, but that might cause
someone a little grief sometime somehow.  Better to cheese off every programmer
coming to the language.  Yup.  Great thinking there. </p>

<p><p>Another noticable absentee from Java <code>fopen</code>.  The C function 
<code>fopen</code> is known by 99% of all 
programmers worldwide and nearly all popular programming languages have 
something like open (Perl has 3 closely related file open functions but you 
probably only ever need <code>open</code>). <br>
<p>As programming interfaces go,
<code>fopen</code> is pretty nasty.  You need to pass it a filename (and 
all operating systems name files differently).  You need pass it a mode (are
you reading from, writing to, appending to the file or all of the above?). <br>
And what do you get back from <code>fopen</code>?  A file handle?  A file 
descriptor? A lottary number?  Who knows?  However, it's a big puddle of 
programming poo that 99% of us have learned to deal with.</p>

<p><p>Instead, java has many <a href="http://www.webster.com/cgi-bin/dictionary?va=circumlocution">circumlocutions</a> to address files and even more to get 
data into and out of them.  Working with files is task performed in 98% of 
all programs ever written.  And Java makes getting to these files weird, 
frightening and confusing.  You 
need a File object, which is then passed to a Output/Input Stream object, 
which in turn is passed to a <em>Buffered</em> Stream object.  Nice and Object
Oriented.  And a complete pain in the genitals.  </p>

<p><p>So, let's recap.  Java, which was loosed upon the world in the nineties 
purposefully ignored very popular input/output conventions so that 100% of 
the programmers who learned any other language (most have syntaxes derived 
from C) would be utterly baffled by the most common of all programming tasks.  </p>

<p><p>Are there times where all this OO sugar pays off?  Sure.  And Java is very 
helpful in these cases.  Could Java have provided a nice compatibility layer 
for the oceans of existing C-based programmers?  Sure, it could have. <br>
Easily, in fact.  But the Java language designers thought they knew more 
about the how to tackle the jobs that Java <em>programmers</em> would face 
than the programmers themselves.</p>

<p><p>In classical literture, this type of overweaning pride is called 
hubris.  In my native country <a href="http://www.mass.gov/">Massholia</a>, 
we just call that "being a f*cktard."</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Happy Patriot Day!]]></title>
    <link href="https://www.taskboy.com/2006-09-11-Happy_Patriot_Day_.html"/>
    <published>2006-09-11T00:00:00Z</published>
    <updated>2006-09-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-09-11-Happy_Patriot_Day_.html</id>
    <content type="html"><![CDATA[
<img src="/img/stupid_bush.jpg" title="Golly!  Who could have thunk it?" class="insert">


<p><p>Once again, it's <a href="http://en.wikipedia.org/wiki/Patriot_day">Patriot Day</a>.  And like all holidays, this one has its own <a href="http://www.4yoursoul.com/999/Cards/ViewCard.Asp?cardId=2118&amp;CatId=212&amp;cardpage=F&amp;decision=">greeting cards</a>.  I confess, I haven't gotten my girlfriend a Patriot Day present yet, but I do have my topiary Twin Towers white spurce decorated with fake-flaming tinsel and toy airplanes.  How my little nieces and nephews love to see the mechanical fireman race towards the bottom of the tree while the media train circles the perimeter!
<p>Must we celebrate all our colossal intelligent failures with named holidays and greeting cards?  If so, I haven't yet received my Pearl Harbor Day card, nor my August 24th White-House-Burned-by-the-British-in-1812  card either.  Perhaps this is due to the high volume of <a href="http://en.wikipedia.org/wiki/Columbine_High_School_massacre">Columbine</a>/<a href="http://en.wikipedia.org/wiki/Branch_Davidian">Waco</a>/<a href="http://en.wikipedia.org/wiki/Alfred_Murrah_Federal_Building">Murrah Building</a> Day mail.
<p>I'll be in my bunker if you need me.
<p>UPDATE: In less jaded rememberance, I give you <a href="http://hotelovershare.blogspot.com/2006/09/blog-post.html">Sally's blog</a>.  Since she was in NYC during the attack, her thoughts are a bit more compelling on this topic than mine.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The enemy of Good Enough]]></title>
    <link href="https://www.taskboy.com/2006-09-01-The_enemy_of_Good_Enough.html"/>
    <published>2006-09-01T00:00:00Z</published>
    <updated>2006-09-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-09-01-The_enemy_of_Good_Enough.html</id>
    <content type="html"><![CDATA[
<img src="/img/preacher.gif" title="sit right back and you'll hear a taleâ¦" class="insert">


<p><p>In the realms of politics, computer engineering and cooking, so much effort is spent trying to find the perfect solution for a problem or to determine an ideal candidate for a task.  Sometimes, you just have to pick the best of the choices available to you and move on with your life.  It's so seductive to lavish attention on trivial details in the face of a large, seemingly insurmountable problem. <br>
<p>I may return to this topic later, since I have many examples from Java where good enough solutions were heinously over-engineered into unworkable messes in the pursuit of perfect.  SOAP</a> is my favorite whipping boy for a protocol done wrong by over-wrought planning. Right now, I'm preparing for the weekend.
<p>Happy <a href="http://www.homestarrunner.com/sbemail83.html">Labor-daybor</a>.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[CGI tip: zip on the fly]]></title>
    <link href="https://www.taskboy.com/2006-08-30-CGI_tip__zip_on_the_fly.html"/>
    <published>2006-08-30T00:00:00Z</published>
    <updated>2006-08-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-08-30-CGI_tip__zip_on_the_fly.html</id>
    <content type="html"><![CDATA[
<img src="/img/camel.gif" title="CGI?  Loser!" class="insert">


<p><p>Here's a quick note to me on how to create a CGI script that streams a 
process to the browser in such a way as to prompt the user for a "save as" 
box.  This is technique is older than dirt, but still useful.</p>


<p class="insert">
#!/usr/bin/perl â

use strict;
use CGI;
use POSIX q[strftime];

my $q = CGI->new;
if (open my $in, "/usr/bin/zip -r - logs/ |") {
    my $filename="lhp_logs-".strftime("%Y%m%d", localtime()) . ".zip";
    print $q->header({ "-type"=>"application/x-unknown",
                      "-Content-Disposition" => 
                           "attachment; filename=$filename",
                     }
                    );
    my $buf ="";
    while (read($in, $buf, 4048)) {
        print $buf;
    }
} else {
    die "Oops: $!";
}
</p>


<p><p>The error checking isn't particularly robust here.  Please gold-plate this 
code as needed for your next review.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[E-toilet - ripped from the pages of the The Onion]]></title>
    <link href="https://www.taskboy.com/2006-08-24-E-toilet_-_ripped_from_the_pages_of_the_The_Onion.html"/>
    <published>2006-08-24T00:00:00Z</published>
    <updated>2006-08-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-08-24-E-toilet_-_ripped_from_the_pages_of_the_The_Onion.html</id>
    <content type="html"><![CDATA[<p><p><img src="/img/etoilet.gif" title="Taking number to 2 to number 1 in the marketplace" class="insert">For the love of Job, people! <br>
<a href="http://theonion.com/">The Onion</a> 
is not to be used as a source of 
<a href="http://taskboy.com/?bid=37">product ideas</a>.  This just in 
from <a href="http://www.nwfdailynews.com/articleArchive/aug2006/digitalcommode.php">NW Florida Daily News</a>:</p>

<blockquote>
&laquo;But computers are now invading the bathroom. For several years, 
manufacturers have been quietly pushing toilets and toilet seats costing 
$1,000 or more that use small, built-in computers and remote controls to 
add new features that warm, wash and dry you. As bathrooms become more 
upscale and luxurious, a digital toilet fits right in.&raquo;
</blockquote>

<p><p>Ladies and gentleman, we have an e-toilet now.
<p>Compare with this vintage 
<a href="http://www.theonion.com/content/node/29225">The Onion</a> article 
from the height of the DotCom era:</p>

<blockquote>
&laquo;"Of course, rudimentary pee-commerce has been around almost as long as 
the Internet itself," Scoscia said, "but our new e-toilet will bring the 
Internet into the next millennium with real-time point, click and shit 
capability." Scoscia noted that "Number 2.0," as Silicon Valley insiders have 
dubbed it, will be cross-platform compatible and fully 2K Flushes compliant. 
In addition, he said, it will feature significantly wider, more comfortable 
bandwidth to accommodate even the most massive user download. &raquo;
</blockquote>

<p><p>Attention American innovators: before moving ahead with your product plans, 
take a moment to remove your head from your buttocks to make sure your idea 
isn't, well, asisine.  And the same goes for <a href="http://www.theonion.com/content/node/28784">politicians</a>.
<p>Thank you.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Cock Danger]]></title>
    <link href="https://www.taskboy.com/2006-08-20-Cock_Danger.html"/>
    <published>2006-08-20T00:00:00Z</published>
    <updated>2006-08-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-08-20-Cock_Danger.html</id>
    <content type="html"><![CDATA[
<img src="/img/rooster.gif" title="Captured rage" class="insert">


<p><p>As I write this, I'm drinking a beer.  Not just an ordinary beer, 
I've got a <em>Blue Moon</em> wit beer.  10 minutes ago, I was asleep in my 
girlfriend's bed, dreaming without care.  Then, at 2 minutes past 5PM, Sally
awoke me.  She was obviously agitated.  </p>

<p>"Joe!  Wake up!  There's a chicken in the front yard!"</p>

<p><p>It took me a moment to evaluate that chilling statment, but I composed 
myself well enough to investigate with Sally.  We hurried downstairs to meet 
our destiny.</p>

<p><p>Sally lives in North Cambridge, an area not reknown for its chicken 
population.  Still, one bad apple was all that it would take to plummet the
real estate prices.  A few other neighbors had been roused into action by 
the rogue rooster.  Together, the five of us, armed only with a towel, nerves
of steel and talent on loan from God, approached the last known whereabouts 
of the bird: Sally's backyard.</p>

<p><p>Most of my readers will never have a face down a full-grown rooster, whose 
engorged cockscomb bristles with beastly rage.  And I pray that you never have
to.  On a good day, men loose their eyes to the firey tempers of these 
frenetic birds of prey.  Who hasn't heard of the illegal cock fights of Mexico 
and been fascinated by the lurid pleasure that such a spectacle promises? 
The beast that we were staring down was of that ilk.  One look in its cold eye 
told me: this was a foul pushed to the breaking point.</p>

<p><p>The neighbor with the towel volunteered to capture the rooster.  She had 
had all of her animal shots and wasn't afraid of feathered death.  The rest of us
offered her encouragement from behind the wired fence.</p>

<p><p>She entered the yard with steely determination, but she needed direction. 
Roosters are masters of camouflage, but I fixed my eye on it.  He had settled 
down into the mottled shade of low-growing weeds â a typical rooster ploy. 
The towel-wielder approached her target, but the bird was too crafty! <br>
He skitted away towards the front of the house.</p>

<p><p>Quickly, Sally sprang to the front from the other side of the house to block 
his escape.  But again, the rooster was too crafty to be trapped that easily.
It doubled back, sneaking past us into another shadow-filled nook of the 
backyard.  Again, we cornered the beast but before we could lay hands on it, 
the rooster squeezed through the fence and fled under a parked car!</p>

<p><p>I knew I had to act.  I refused to let this, my adopted neighborhood, be held hostage 
to one bully cock.  I grabbed a shovel and knelt on the ground beside the car
and began to poke around in an effort to flush out the beast.  </p>

<p><p>I knew that I had put myself right where the rooster wanted me: at eye level
on his turf.  I was looking death squarely in the eye, but who wants to live 
forever?</p>

<p><p>I thrust and shuffled, but still the bird didn't move.  I stepped back
and took another quick recon beneath the car.  The rooster had holed up behind 
the front right tire.  Clever.  But, not clever enough.   </p>

<p><p>Steeling myself, I aimed the shovel carefully and with one final shove, 
I had finally spooked the rooster from his spot!  In this game of chicken, the
rooster had blinked.  But the hunt wasn't over yet.  He was on the move and he 
wanted revenge.</p>

<p><p>I had lost sight of the bird for a moment.  I assumed that the 
towel-wielder would catch him.  My blood ran cold as I heard my team say: 
"Oh my God!  It's right behind you!"  Indeed, I turned to see the gaping maw
of our quarry barreling directly towards my left foot.</p>

<p><p>But the rooster had overplayed his hand.  By trying to get me, he had 
exposed his flank â a fatal mistake of tactics.  Without warning, the 
rooster found himself rapidly enfolded in a towel and summarily shoved into 
a chicken-proof wire cage.  The crisis was over.</p>

<p><p>In the continuing struggle of survival, humans had once again emerged on 
top. For now.   </p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[On notice]]></title>
    <link href="https://www.taskboy.com/2006-08-14-On_notice.html"/>
    <published>2006-08-14T00:00:00Z</published>
    <updated>2006-08-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-08-14-On_notice.html</id>
    <content type="html"><![CDATA[
<img src="/img/OnNotice.jpg" class="insert" title="Don't make me come over there">


<p><p>Some imaging-manipulating fool put 
<a href="http://www.shipbrook.com/onnotice/">this app</a> together so that we 
can all be Steve Colbert. <br>
<p>I hate to say it, but stuff like this heralds the imminent fall from grace 
known as "jumping the shark" for this fine satire.  Of course, that can 
only mean more <em>Strangers with Candy</em>.</p>

<blockquote>&laquo;That's why the students here call me "The Hammer."&raquo;
</blockquote>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Bug fix for tags]]></title>
    <link href="https://www.taskboy.com/2006-08-12-Bug_fix_for_tags.html"/>
    <published>2006-08-12T00:00:00Z</published>
    <updated>2006-08-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-08-12-Bug_fix_for_tags.html</id>
    <content type="html"><![CDATA[<p><p>I just fixed a bug that prevented all blog entries of a given tag to 
appear.  For instance, <a href="/?tag=computers">computers</a> has about 25 
articles, but only the last 10 appears.  Stupid SQL limit constraints.
<p>It's fixed now, so I declare the terror alert level at taskboy to be lowered
to papaya whip. </p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[new song: round the bend]]></title>
    <link href="https://www.taskboy.com/2006-08-12-new_song__round_the_bend.html"/>
    <published>2006-08-12T00:00:00Z</published>
    <updated>2006-08-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-08-12-new_song__round_the_bend.html</id>
    <content type="html"><![CDATA[<p><p>I spent this glorious summer day remaking an old song that I love
called <a href="/music/round_the_bend_2006.mp3">Round the Bend</a>.  This 
version captures the bouncy feeling better than the hasty demo I made years 
ago.  This version is electrified for your protection with my telecaster.
<p>UPDATE: I remastered a few older tracks, which you might find 
interesting.  I swapped out some old, clunky synth patches for new, clunky 
synth patches.</p>

<ul>
  <li><a href="/music/strings.mp3">Strings</a>
  <li><a href="/music/coming_down.mp3">Coming Down</a> (much improved)
  <li><a href="/music/germs_2006.mp3">Germs</a>
  <li><a href="/music/spooky.mp3">Spooky</a>
</ul>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[More on dashes]]></title>
    <link href="https://www.taskboy.com/2006-08-02-More_on_dashes.html"/>
    <published>2006-08-02T00:00:00Z</published>
    <updated>2006-08-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-08-02-More_on_dashes.html</id>
    <content type="html"><![CDATA[
<img src="/img/pester-kid.jpg" title="Pardon the interruptionâ¦" class="insert">


<p><p>From the <a href="http://www.washingtonpost.com/wp-dyn/content/article/2006/08/02/AR2006080201210.html">Washington Post</a> 
comes this sentence, which an exposition
of interruption:</p>

<blockquote>
&laquo;The current room, built over Franklin Roosevelt's swimming pool 
â which is still there â dates back to 1970, and over the years has 
been the scene of daily combat between press secretaries and reporters.&raquo;
</blockquote>

<p><p>I would not have wanted to have been the copy editor for that piece. <br>
Note the double dashes, which are standing in for our old friend the em dash 
(&mdash;).  This is probably due to the difficulty of typesetting on the web.
Having working in a publishing environment, it is difficult to correctly 
typeset word processor docs to HTML.  The problem isn't actually technical, 
but human.  It's hard enough to get authors to produce anything, let 
alone correctly marked up manuscripts.  The double dash is probably a hold 
over from the days of typewritters.  Still, a small perl script could convert
the double dash into an em dash easily enough.
<p>On the matter of content, I don't think this is a bad sentence. However, 
it might be a bit challenging for the average consumer of news prose. 
If asked, I would have suggested breaking the sentence in two, like this:</p>

<blockquote>
Dating back to the 1970s, the current room is built over Franklin 
Roosevelt's swimming pool, which is still there.  Over the years, the room has 
been the scene of daily combat between press secretaries and reporters. 
</blockquote>

<p><p>Note the perilous use of "1970s."  Besides the hideous fashion memories
invoked by the mention of this era, grammarians just can't agree on how to 
properly spell numerical decades (or plural numbers, in general).  Depending 
on the editorial traditional, you will see "1970s" or "1970's."  I think
you've just got a pick which version you prefer and prepare to be berated 
for your poor choice.  It's a lose-lose situation. <br>
<p>I can't fully express to how much more delightful quibbling over grammar is
to writing Java code.  My non-technical friends will just have to trust me.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Disabling X509 Cert authentication in Apache Axis]]></title>
    <link href="https://www.taskboy.com/2006-07-29-Disabling_X509_Cert_authentication_in_Apache_Axis.html"/>
    <published>2006-07-29T00:00:00Z</published>
    <updated>2006-07-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-07-29-Disabling_X509_Cert_authentication_in_Apache_Axis.html</id>
    <content type="html"><![CDATA[<p><p>
<img src="/img/desert_walk.jpg" title="Talk about walking a mile for camel: I miss Perl" class="insert">
A project for work required me to program in that most rigid and litigious 
of languages, Java.  I used <a href="http://ws.apache.org/axis">Apache 
Axis</a> to make SOAP calls over SSL, thus making the project buzzword 
compliant.  This post is about how, with the help of John Cho at VMware, I 
was able to coax Java in talking with SSL hosts whose X509 certificates have 
no recognized identity by the client.  Typically, this means the hosts are 
self-signed and are not know to trusted root certificate servers.  Without 
this hack, Java will refuse to use the SSL connection until the user imported 
the client certificate from the self-signed server, using the 
<code>keytool</code> utility from the JRE. <br>
<p>NOTE: Disabling authenticating of SSL certs is not compatible with 
security-sensative projects.  Please understand that by using this hack, 
you are reducing the effectiveness of SSL security (although the actual 
network traffic through the SSL tunnel is still encrypted).  The decision
to use this hack is typical of the design choices made on the 
security-versus-convenience axis.
<p>Although this code is specific to Axis, the careful
reader may find this code applicable to their next Java project.
<p>Apache Axis 1.4 (and earlier) uses the standard java.net.ssl package that 
is distributed with Sun's JDK 1.5 (it's in older JDKs too).  The Axis class
that creates the SSL socket factory that contacts the class that actually
does the cert authenication is: </p>

<blockquote>
<code>org.apache.axis.components.net.JSSESocketFactory.java</code>
</blockquote>

<p><p>What we need to do create a special <a href="http://java.sun.com/j2se/1.4.2/docs/api/javax/net/ssl/X509TrustManager.html">X509TrustManager</a> that 
accepts 
all certs and install it as part of the SSL Factory.  There's a lot of 
abstraction and action at a distance code here, so let's start with how to 
implement an all-trusting X509Certificate class.</p>

<p class="insert">
class TrustyTrustManager implements javax.net.ssl.X509TrustManager {

  public java.security.cert.X509Certificate[] getAcceptedIssuers() { 
    return null; 
  }

  public void checkClientTrusted(
         java.security.cert.X509Certificate[] c, 
     String authType) throws CertificateException {
    // do nothing, accept by default
  }

  public void checkServerTrusted(
         java.security.cert.X509Certificate[] c, 
         String authType) throws CertificateException {
    // do nothing, accept by default
  }
}
</p>

<p><p>Recall that X509TrustManager is just an abstract class.  It requires three 
methods to be implemented.  Fortunately, these methods are easy to deal with, 
if you don't care about authenication.  The first, 
<code>getAcceptedIssuers()</code>, is supposed to return an array of certs 
for trusted authority servers.  Since we aren't going to consult any, we 
can return null there.  The last two methods throw an exception if the 
described certificate cannot be authenticated by building a "trust path" from
the root authorities to the given one.  Since not throwing an exception means
that the trust path was succesfully constructed, we do absolutely nothing in 
these methods.  If only all code were so easy to write!
<p>The only catch here is that we do need to import 
<code>java.security.cert.CertificateException</code> to handle the exceptions
that we'll never throw, otherwise we get a compiler error.  Thanks for the 
extra hoop, Java.
<p>I added this class as an inner, private class to the JSSESocketFactory.java 
file, but you may want to isolate this code into its own file for use in 
other projects.
<p>Now we need to install this X509Certificate class.  This can be done by
change the code in <code>initFactory()</code> to something like the following:</p>

<p class="insert">
    protected void initFactory() throws IOException {
    // Inspired by John Cho
    try {
        javax.net.ssl.TrustManager[] trusty = 
        new javax.net.ssl.TrustManager[] {
            new TrustyTrustManager() 
        };

        javax.net.ssl.SSLContext sc = 
                  javax.net.ssl.SSLContext.getInstance("SSL");

        sc.init(null, trusty, new java.security.SecureRandom());
        sslFactory = (SSLSocketFactory) sc.getSocketFactory();
    } catch (Exception e) {
        throw(new IOException("SSLFactory: " + e.getMessage()));
    }
    }
</p>

<p><p>Let me step through the code backwards, since it will help to know where 
we're going with this method.  The whole point of <code>initFactory()</code> 
is to initialize the protected class member <code>sslFactory</code> with a 
valid object.  SSLSocketFactory objects are returned by 
javax.net.ssl.SSLContext objects, which the <a href="http://java.sun.com/j2se/1.4.2/docs/api/javax/net/ssl/SSLContext.html">documentation</a> describes like this:</p>

<blockquote>
Â«Instances of this class represent a secure socket protocol 
implementation which acts as a factory for secure socket factories. This 
class is initialized with an optional set of key and <em>trust managers</em> 
and source of secure random bytes.Â»
</blockquote>

<p><p>I emphasized "trust manager" here, since that's what we implemented with 
the TrustyTrustManager class.  Now, we just need to create an SSLContext object
for the SSL protocol (not sure why there are other options here),  and shove
in our TrustManager.
<p>Well, not quite.  It turns out that SSLContext expects to get an array of 
TrustManagers.</p>

<blockquote>
<code>init(KeyManager[] km, TrustManager[] tm, SecureRandom random)</code>
</blockquote>

<p><p>We don't need KeyManagers at all and the random seed can be generated from 
a method in <code>java.security</code>.  What we do need is an array of 
TrustManagers with one TrustyTrustManager object in it.  Once this is 
assembled, <code>init()</code> can be called correctly and the 
SSLSocketFactory obtained.
<p>There you are!  It's as simple as rocket science, but not as hard as 
brain surgery. <br>
<p>Some advanced Java coders will probably decry this code as 
cheating.  It's not very OO to manhandle an existing class like this.  Surely,
there must be a way to subclass JSSESocketFactory and override the behavior of 
initFactory() more cleanly.  The answer is "yes," but that means finding all
those places that instantiate JSSESocketFactory objects and subclassing 
<em>those</em> classes.  And, of course, you can see how this subclassing will 
quickly ripple through the entire object heirarchy of Axis to destroy all 
my free time.  In Perl, I might have simply poked through the package namespace
at some point to overwrite <code>initFactory()</code>.  I'm not aware how to 
do that in Java effectively, but I welcome your suggestions.</p>

<p><p>UPDATE: For additional information on doing this with Apache's XML-RPC lib for Java, <a href="http://ws.apache.org/xmlrpc/ssl.html">check this out</a>.  I think this technique may work with axis too, since it is built of the standard Sun SSL stuff.  But, I haven't tried.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Airport bars with large mugs of beer]]></title>
    <link href="https://www.taskboy.com/2006-07-27-Airport_bars_with_large_mugs_of_beer.html"/>
    <published>2006-07-27T00:00:00Z</published>
    <updated>2006-07-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-07-27-Airport_bars_with_large_mugs_of_beer.html</id>
    <content type="html"><![CDATA[<p><p><img src="/img/hardly_working.jpg" title="I normally drink beer by the vat" class="insert">I have returned from a business trip to Palo Alto, California.  It was 
my first sojourn to Silicon Valley.  If ever I regretted not moving there 
during the boom, I do not now.  It is difficult for me to explain my angst
regarding the Sunshine state, but it has something to do with the way land
is utilitized on the left coast.  Buildings seem to be low and diffuse, as 
if someone spilled maple syrup over the land between the mountains and the 
ocean.  I like tall things, like trees, hills and mountains.  Large swaths 
of flat land unnerve me.  Heavily populated arid regions irritate me.  Too
much sun makes me paranoid.
<p>In short, I'm not really well suited for Californian living.
<p>I need the varigated and verdant vistas of New England.  I need seasons 
that try to kill me with heat and cold.  I like not being able to see more 
than several dozen miles of my local geography at a time.  I like the human 
scale of New England cities.
<p>Of course, California has been selling beer in the grocery stores for much 
longer than those in Massachusetts.  I blame the Puritans.
<p>I may be out in Los Angeles later in the fall for the VMware World 2006 
conference.  Have I mentioned how much I enjoy long plane trips?  No? <br>
That's because I don't.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Cosmology via The Family Guy]]></title>
    <link href="https://www.taskboy.com/2006-07-17-Cosmology_via_The_Family_Guy.html"/>
    <published>2006-07-17T00:00:00Z</published>
    <updated>2006-07-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-07-17-Cosmology_via_The_Family_Guy.html</id>
    <content type="html"><![CDATA[
<img src="/img/flying_spaghetti_monster.jpg" title="Pasta is a lot older than Jesus.  I'm just sayingâ¦" class="insert"></a>


<p><p>The quite excellent and disturbing blog 
<a href="http://religiousfreaks.com/">Religious Freaks</a> 
quietly notes the extremism, stupidity and general dunderheadedness engendered
by taking old books a little too seriously.  In particular, I point you 
to this delightful clip of FG's Peter explaining the opposing 
views of <a href="http://religiousfreaks.com/2006/07/09/evolution-vs-creationism-family-guy-style/">evolution versus creationism</a>. <br>
The careful viewer 
will note that neither explanation accurately reflects the nuances of these
theories, but still: HA HA.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Bus in crisis]]></title>
    <link href="https://www.taskboy.com/2006-07-16-Bus_in_crisis.html"/>
    <published>2006-07-16T00:00:00Z</published>
    <updated>2006-07-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-07-16-Bus_in_crisis.html</id>
    <content type="html"><![CDATA[<p><p><a title="Like a fish out of water" href="/img/bus_in_crisis.jpg"><img src="/img/bus_in_crisis_sm.jpg" class="insert"></a> Sick of the driving 
and parking in Boston, many Red Sox fans charter buses when going to see home
games at friendly Fenway Park.  Usually, this is a sensible and 
mutually considerate strategy for both game attendees and Fenway 
residents alike.  But tonight, one bus ride nearly ended in tragedy. <br>
<p>Instead of exiting the parking lot through the well-engineered exit, 
the bus pictured above decided to take a "short cut" between two buildings.
The only problem?  The alleyway exits onto Jersey Street via a very short
but very steep incline of the sort that founders buses like turtles flipped on 
their backs. <br>
<p>These two buildings are directly across the street from my apartment 
building, so as I exited my home to run some errands, I became a witness to 
this vehicular crisis.  Luckly me. 
<p>Some 30 or 40 people were milling around the area, attempting to hide from 
the pressing rays of the early evening sun.  When I returned from my errands, 
a <a href="/img/copcar.jpg">police car</a> was blocking my street and a big tow truck had 
appeared on the scene to execute a complicated series of K-turns 
<a href="/img/bus_rope.jpg">to position</a> itself to do some good.
<p>In the end, a simple pull from tow truck was all that was needed to get 
the bus <a href="/img/bus_clearing.jpg">over the hump</a>. <br>
<p>Soon, the alleyway was <a href="/img/bus_gone.jpg">bus-free</a> and ready again for drunk people to urinate in.
<p>But for some, the pain caused by this crisis continues.  As the 
passenagers slowly reboarded the bus, a little sadder if not wiser for their 
travails, I couldn't help but reflect on the long-term effects of this 
tragedy.  For instance, many will never get that 45 minutes of their
lives back.  I can only hope that most of them had Tivos to record the TV shows
that they missed as a result of this delay.  And what about those that passed 
the time engorging themselves with the garbage McDonald's sells?  You can 
paint a directly line of arterial damage from their final, fatal heart attack 
years in the future to the Big Mac they had to eat today to survive. <br>
<p>When buses go off track, we all lose.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Elvis Costello at the BoA Pavilion]]></title>
    <link href="https://www.taskboy.com/2006-07-13-Elvis_Costello_at_the_BoA_Pavilion.html"/>
    <published>2006-07-13T00:00:00Z</published>
    <updated>2006-07-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-07-13-Elvis_Costello_at_the_BoA_Pavilion.html</id>
    <content type="html"><![CDATA[<p><p><img src="/img/elvis_costello.jpg" title="'I rule you!'" class="insert"> Last night, <a href="/img/sally_mirror.jpg">Sally</a> 
and I saw <a href="http://www.elviscostello.com/">Elvis Costello</a> with 
Allen Toussaint at the Bank of America Pavilion (which was once called 
Haborlights).  On this tour supporting his 
<a href="http://www.amazon.com/gp/product/B000FA58IY">River in Reverse</a> 
album, Elvis reworked many of his classics with a smoking New Orlean's horn 
section.  The 2 1/2 hour show (no opening act and two encores) opened with a 
thundering version of "What's So 
Funny About Peace, Love and Understanding."  Elvis played several of his 
standards throughout the evening, including "Chelsea," "Watching the 
Detectives," "Pump it up," "Poison 
Rose," "Clubland," and "Alison" â which was particularly noteworth as it was 
arranged for horns.  However, the real fun was had when Toussaint played his 
classic bluesy rock. <br>
<p>Really, this was one of the better shows 
I've seen.  Almost no pretention
and nearly all performance.  The light show was minimal and there were no 
stage theatrics.  Elvis did take a few (well deserved) swipes at President 
Dubya, but that was OK with most of the crowd.
<p>You can read the Boston Globe's <a href="http://www.boston.com/ae/music/articles/2006/07/13/costello_stages_a_big_easy_revival_show/">review</a>
or listen to a brief interview with 
<a href="http://cache.boston.com/ae/special/audio/071306/costello.mp3">Elvis</a>.  I definitely need to pick up his new album.
<p>One member of the crowd who nearly stole the spotlight from the main stage
was a bald gentleman in a white T-shirt that bore lettering colored like the 
American Flag.  He was very highly animated at the start of the show, 
intensely thrusting his fingers in a peace sign at the stage in a 
"throwing the goat" sort of way. <br>
Most of the time, these gestures were entirely 
inappropriate for the mellow songs of the evening and people around us began 
to openly mock this attendee by thrusting peace symbols in unison.
<p>Boston: a town of mockery and hate.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Commenting on taskboy]]></title>
    <link href="https://www.taskboy.com/2006-07-11-Commenting_on_taskboy.html"/>
    <published>2006-07-11T00:00:00Z</published>
    <updated>2006-07-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-07-11-Commenting_on_taskboy.html</id>
    <content type="html"><![CDATA[
<img src="/img/alton.gif" title="This one is for the PEOPLE" class="insert">


<p><p>The people have <a href="/?bid=157">spoken</a>.  When it comes to 
mouthing off on this site, you want to muscle in on my turf.  In the interests
of peace and understanding, I have creating a commenting system for 
taskboy.com.
<p>Since this is my house, these are my rules:</p>

<ul>
  <li>Not every blog entry will have comments enabled.  
  <li>Comments require my approval before getting published.  
  <li>You can make only one comment per blog entry every five minutes.  
  <li>You have a very restricted set of HTML that you can use.  
  <li>Comments are not formated automatically, so learn some HTML already. 
  <li>You cannot edit your comment once you submit it.
</ul>

<p><p>As we all learned from Peter Parker's Uncle Ben: with great power comes
great responsibility.  On taskboy, the power is now yours.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[More taskboy features]]></title>
    <link href="https://www.taskboy.com/2006-07-11-More_taskboy_features.html"/>
    <published>2006-07-11T00:00:00Z</published>
    <updated>2006-07-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-07-11-More_taskboy_features.html</id>
    <content type="html"><![CDATA[
<img src="/img/iron_jjohn.gif" title="mighty coder/warrior of the Orient" class="insert">


<p><p>As some of you have seen, I've implemented a tagging system that links to <a href="http://technorati.com/">Technorati</a> .  I did so after consultation with and guidance from <a href="http://prog.livejournal.com/">Jason McIntosh</a>.
<p>I tagged some old blogs, and may have damaged those a bit.  Please report broken pages to me when you notice them. <br>
<p>I'm not entirely sure how I feel about tagging.  It's a form of bottom-up catagorization and makes the type-A personality in me whince.  However, I'm not about to implement a top-down ontology for a frigging blog, so tags it is.
<p>I've created a few backend administration pages to help me with these new features.  Unfortunately, you can't see them, because their password-protected.  One of these pages is a web form that allows me to make new blogs.  While I do really, really prefer emacs for composition, a web UI let's me bang out these trivial updates more easily and from any networked computer.
<p>Let me know what you think.  If requested, I'll make a page that allows you to browse entries by tag.</p>

<p>UPDATE: I tagged most of the old blog entries.  I also created a new 
page called <a href="/tags.php">Tags</a> (which can be found under Sections) that can be used to thread entries 
by tag.  I stole, I mean, reused the CSS from del.icio.us to weight the tags
by occurrences.  I think that brings taskboy up to the cutting edge of 2003 
blogging technology.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Syd Barrett, 60, dies]]></title>
    <link href="https://www.taskboy.com/2006-07-11-Syd_Barrett,_60,_dies.html"/>
    <published>2006-07-11T00:00:00Z</published>
    <updated>2006-07-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-07-11-Syd_Barrett,_60,_dies.html</id>
    <content type="html"><![CDATA[
<img src="/img/syd.jpg" class="insert">


<p><p>Infamous founder of and guitarist for Pink Floyd, 
<a href="http://www.cbs47.tv/news/national/story.aspx?content_id=644FB5A5-1B58-4BF5-A4D9-4FBDA4D551E5">Roger "Syd" 
Barrett has died at the age of 60</a>. <br>
Many will no doubt be surprised to learn he lived this
long.  I'm a fan of Floyd's early work with Syd, but I never followed 
his solo career, which was a bit too nutty even for me.
<p>Many will have heard about Syd's penchant for psychedelic drugs, much 
of which fueled his music and stage shows.  One report had him mixing in 
hallucinogenics with his hair gel so that as the stuff melted on stage, Syd 
would get all tripped out.
<p>Sadly, the potent combination of success, drugs and youth proved ruinous 
in Barretts's case.  After being removed from Floyd, Syd lived the rest of his
days under supervision and reclusion.
<p>Many rockers since than have aped much of Barretts insane style of fashion. 
His tempestous hair and dark, haunted eyes are a mainstay of brooding rock to 
this day. 
<p>So long, Syd.  Thanks for music.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Hot bear on gator action]]></title>
    <link href="https://www.taskboy.com/2006-07-10-Hot_bear_on_gator_action.html"/>
    <published>2006-07-10T00:00:00Z</published>
    <updated>2006-07-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-07-10-Hot_bear_on_gator_action.html</id>
    <content type="html"><![CDATA[
<a href="http://www.flickr.com/photos/55367261@N00/sets/72157594193485077/show/"><img src="http://static.flickr.com/63/186022401_c0024bb3b7.jpg?v=0" class="insert" title="So hot, Paris Hilton blushes."></a>


<p><p><a href="http://www.flickr.com/photos/55367261@N00/sets/72157594193485077/show/">Check it out!</a>
<p>And I resent the implication that I had something to do with creating this flith with <a href="http://hotelovershare.blogspot.com/">Sally</a>.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Mapping Iraq/Afghanistan war deaths by city]]></title>
    <link href="https://www.taskboy.com/2006-07-08-Mapping_Iraq_Afghanistan_war_deaths_by_city.html"/>
    <published>2006-07-08T00:00:00Z</published>
    <updated>2006-07-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-07-08-Mapping_Iraq_Afghanistan_war_deaths_by_city.html</id>
    <content type="html"><![CDATA[

<img src="/img/death_map.gif" title="numbers mean things" class="insert"></a>



<p><p><a href="http://img.coxnewsweb.com/C/09/21/80/image_4380219.jpg">This </p>

<p>map</a> should help all of us understand the human cost this administration's </p>

<p>strategy for proscuting the War on Terror.  It would be even better to have </p>

<p>a map of the deaths of Iraqis and Afghanis along side of this.  What an </p>

<p>incredible waste of resources on both sides.</p>

<p><p><a href="http://analyticjournalism.blogharbor.com/blog/_archives/2006/7/5/2087154.html">The Institute for Analytic Journalism</a> </p>

<p>compiled this map.  As I learned in my geographic class, maps can convey a </p>

<p>information in a powerful and concise way.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Should I allow your comments on this blog?]]></title>
    <link href="https://www.taskboy.com/2006-07-08-Should_I_allow_your_comments_on_this_blog_.html"/>
    <published>2006-07-08T00:00:00Z</published>
    <updated>2006-07-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-07-08-Should_I_allow_your_comments_on_this_blog_.html</id>
    <content type="html"><![CDATA[
<img src="/img/uncle_sam.jpg" title="Uncle jjohn needs you!" class="insert">


<p><p>The world doesn't seem to have enough places for random web users
to mouth off.  Should I help easy this paucity or not?</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[There is hope for your punctuation, part 2]]></title>
    <link href="https://www.taskboy.com/2006-07-08-There_is_hope_for_your_punctuation,_part_2.html"/>
    <published>2006-07-08T00:00:00Z</published>
    <updated>2006-07-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-07-08-There_is_hope_for_your_punctuation,_part_2.html</id>
    <content type="html"><![CDATA[
<img src="/img/finish_line_1.gif" title="A mad dash to the finish!" class="insert">


<p><p>Once again, I return to abusing that humble religious leaflet 
I found on the subway.  Last time, I talked about the acceptable uses 
for semicolons.  This time, you and I need to have a frank discussion about 
dashes.  Here are two samples of dash disasters from <em>There yet can be 
hope for you</em>:</p>

<ul>
  <li><blockquote>But friend - it need not be so!</blockquote>
  <li><blockquote>Yes, He does - no matter how far down you've sunk 
  in despair.  God does care!  And - God CAN help.</blockquote>
</ul>

<p><p>Before pulling apart these sentences, perhaps I should begin by sharing a 
rather recent revelation I had: there are several kinds of dashes, each of 
which has a specific grammatical function.  If you didn't know about the 
speciation of dashes, I won't nail you to a tree.  But enough about you. 
Let's talk more about me.</p>

<p><p>When I attended school on Cape Cod and Boylston, MA in the late Permian 
era, dashes were talked about 
in nervous and dismissive tones, in much the same way "foreign" places like 
New York City and L.A. were referrenced.  The mercurial nature of dashes, 
marks which I erronously equated with hyphens, beguiles even the best of 
us at 
times.  Only wizened typesetters know the entire breadth of dash-lore and 
they aren't talking.</p>

<p>However, I can confidently say that dashes are used properly in the 
following ways:</p>

<ul>
  <li>to continue words onto another line; 
  <li>to interrupt the main idea of a sentence;
  <li>and to make compound adjectives that avoid ambiguity.  
</ul>

<p>That doesn't sound too tricky, right? The problem is that each kind of 
dash of varies only a tiny bit in length, but each has a specific use.</p>

<p>OK, let's meet the players.</p>

<p><br>
<br></p>

<table class="insert">
<tr>
  <th>Name</th>
  <th>Punctuation</th>
  <th>Purpose</th>
</tr>

<tr>
  <td>em&nbsp;dash</td>
  <td>&mdash;</td>
  <td>The most common dash, used for interruptions or to add emphasis to 
clauses in a sentence.  Can be used to denote an explanation, like a colon.  
Can be used to tie complex subjects to a summerizing clause.  No more than one 
dash pair per sentence, please.</td>
</tr>

<tr><td> </td></tr>

<tr>
  <td>en&nbsp;dash</td>
  <td>&ndash;</td>
  <td>Half the length of the common dash but longer than the hyphen, en dashes
denote number ranges (e.g. 1971â2006, pp. 69â96, etc.).  Also use
this mark when compounding multi-word adjectives (e.g. New York-London 
flights).
</td>
</tr>

<tr><td> </td></tr>

<tr>
  <td>hyphen</td>
  <td>-</td>
  <td>Use this guy when breaking a word across lines, hyphenating compound 
words and connecting non-inclusive numbers (i.e. phone numbers, social 
security numbers, ISBNs, etc.).</td>
</tr>
</table>

<p><p>Note that there are variants of the em dash and en dash which are longer 
that have pretty obscure usages, like indicating missing letters in a word, 
missing words in a manuscript or immitating Gothic short stories by 
Edgar Allen Poe, H. P. Lovecraft or Lord Dunsany.  </p>

<p><p>Also note that only professional publications differentiate between dashes.
For your high school and undergraduate English essays, don't get too worked 
up about this.  You'll only freakify your teacher, who will want to change 
all your em dashes into two hyphens.</p>

<p><p>Now that we've had a small dose of grammatical viagra, let's have a look 
at the first example from the leaflet again.  The dash here is used to indicate
a small pause and perhaps to add emphasis to the independent clause.  I can't 
think of a defense for using any kind of dash here when a comma so naturally 
fits.  Dig it:</p>

<blockquote>But friend, it need not be so!</blockquote>

<p><p>The comma, so familiar that it becomes nearly invisible, reassures the 
reader that the author is no half-crazed Jesus-freak, but a thoughtful 
theologian in the spirit of Thomas Aquinas. </p>

<p>Whatever equanimity would be gained from such an edit would be quickly 
dispelled by the train wreck that is the second example, which follows:</p>

<p></p>

<blockquote>Yes, He does - no matter how far down you've sunk
  in despair.  God does care!  And - God CAN help.</blockquote>

<p><p>Once again, the first dash ought to be replaced, but with what?  The Spirit 
strongly moves me to put a period after "does."  Not only does that eliminate 
the off-putting dash, it makes a dramatic, punchy opener &mdash; which is, 
after all, the whole point of a dodgy religious leaflet.</p>

<p><p>Of course, ending the sentence on "does" creates an incomplete fragment of
the rest of the sentence.  Fortunately, what's left would make 
an excellent complement to this fragment and create a punchy follow up to 
the brutal opening.  And all that needs be done is capitalize the n in "no" and
change the period to a comma.  Pappy like!</p>

<p><p>We're almost out of the woods now.  This last sentence is a bit tricky.  The
safest edit to bring this little guy into compliance with mainstream American 
English is to simply eliminate the dash and be done with it.  It's true that 
some prescriptivist donkeys will bray over starting a sentence with a 
conjunction, but this is simply the ululation of a dying breed.  The bigger 
issue is one of music, which is far from an easy thing to standardize.  The 
author clearly wants a dramatic pause before the punchy final clause.  What 
to do?</p>

<p><p>If you refer to the table above, you'll note that the em dash can be used 
like a colon to introduce an explanation or summarizing clause.  I think that 
given the needs of the music of the prose, an em dash is a justifiable choice 
here as the last clause seems like some kind of explanation to me.  Surely, 
there are those that will disagree with this reading and choice.  They should
feel free to discourse prodigiously about their dissent elsewhere in the 
blogosphere. </p>

<p><p>Here are my edits to the second example:</p>

<blockquote>
Yes, He does.  No matter how far down you've sunk
in despair, God does care!  And â God can help.
</blockquote>

<p><p>Next time, I'll move from grammatical kibitzing to prose jockeying as I 
tangle with mysterious words, uncomfortable informalities and the Last 
Temptation of Capitalization.  I may even scan in the original leaflet.</p>

<p><p>Peace out, yo.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Good riddance, part 2]]></title>
    <link href="https://www.taskboy.com/2006-07-05-Good_riddance,_part_2.html"/>
    <published>2006-07-05T00:00:00Z</published>
    <updated>2006-07-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-07-05-Good_riddance,_part_2.html</id>
    <content type="html"><![CDATA[
<img src="/img/ken_lay.jpg" title="Thanks for playing" class="insert">


<p><p>When searching for phrase that captures a particularly elusive concept, 
you could do a lot worse than turn to the Germans for help.  In this case, 
I want to talk about <a href="http://dictionary.reference.com/browse/schadenfreude">Schadenfreude</a>.  Derived from two Middle High German words, 
Schadenfreude is a mash-up of <em>Schaden</em>, meaning "damage", and 
<em>Freude</em>, meaning "joy".  It is a noun used to describe those vicious 
individuals that seem to feed off the tears of their enemies.  It is a term 
that's been applied to me on a number of occasions, many of which were not 
entirely without merit.
<p>However, Schadenfreude is an excellent term to describe the professional 
life of the late Ken Lay, who flat-out conned Enron employees and investors
into a lie that he benefitted hansomely from.
<p>When big business cheats the system as Lay's Enron does, it damages one 
of the most important building blocks upon which the U.S. was founded: 
joint-stock companies.  Going into business is risky.  Companies issue stock
to spread the risk around.  By taking advantage of investor trust, Lay and 
others of his ilk jeopardize America far more than Mid-Eastern extremists.
<p>Which is why I would have stuck Lay on a meat hook in front of Wall St. as 
a reminder to all would-be white-collar crooks that massive theft will not be
tolerated. <br>
<p>When my people come to power, there will be changesâ¦</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[SOAP::Lite debug tip]]></title>
    <link href="https://www.taskboy.com/2006-07-05-SOAP__Lite_debug_tip.html"/>
    <published>2006-07-05T00:00:00Z</published>
    <updated>2006-07-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-07-05-SOAP__Lite_debug_tip.html</id>
    <content type="html"><![CDATA[
<img src="/img/camel.gif" title="Why does SOAP::Lite hate me?" class="insert">


<p><p><a href="http://www.soaplite.com/">SOAP::Lite</a> is a suite of 
Perl modules for doing <a href="http://www.w3c.org/TR/soap/">SOAP 
RPC</a>.  SOAP::Lite was originally written by mad Russians.  Its 
incredible flexibility is also it's main drawback.  Debugging isn't as 
obvious as it could be with this library.
<p>Most of the time you the would-be SOAP scripter want to know 
what the request and response XML messages look like.  The SOAP::Trace 
doc doesn't make this clear (since the sample code is filled with 
mistakes).  Here is one way to get SOAP to spew the XML messages to 
STDOUT they way you'd expect from a more humble module like 
  Frontier::Client.</p>


<p>
use SOAP::Lite "trace" => ["transport" => \&log_it];
sub log_it {
  my ($in) = @_;

  if (ref $in && $in->can("content")) {
    printf "**GOT: %sn", (ref $in);
    print "-"x60, "n";
    print $in->content, "n";
    print "-"x60, "n";
  }

}
</p>


<p><p>There's a lot of fun things going on in the log_it() subroutine. <br>
Notice the use of the oft-forgotten can() method, which all Perl 
objects have.  Yes, this is a very special code review. 
<p>Should SOAP::Lite have a simple flag like "trace_xml" 
which does all this for you?  Sure it should.  But until then, you've 
got this humble blog and your old Uncle jjohn to help you.
<p>Now get the hell off my lawn, you kids!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[iPod 2GB Nano acquired]]></title>
    <link href="https://www.taskboy.com/2006-07-03-iPod_2GB_Nano_acquired.html"/>
    <published>2006-07-03T00:00:00Z</published>
    <updated>2006-07-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-07-03-iPod_2GB_Nano_acquired.html</id>
    <content type="html"><![CDATA[<p><table>
<tr>
<td>
<p>My <a href="http://use.perl.org/~jjohn/journal/25314">iPod shuffle</a> has 
been rebooting in the middle of songs 
and failing to turn on, even though it has enough stored engery in the battery.
I'm a little disappointed to encounter problems of this severity after barely 
a year of use.
<p>Since I now find myself a little flushed with loot, I decided to get all 
consumer-y and get an iPod Nano.  The Nano is 2 or three times heavier than 
the shuffle and has a small LCD on it.  It's 
interesting, but I still don't like that much computer in what is to me a 
new-fangled walkman. <br>
Still, the nano seems like an interesting device.  I suspect I'll use the 
notes feature (one of the many PDA functions available) a lot.  On my palm 
pilot, I used this feature when traveling to keep my all the metadata of my
travel plans in one place. 
<p>Yay.
</td>
<td><img src="/img/spacer.gif"></td>
<td><img src="/img/nano.jpg" title="Mine's better in black" class="insert">
</td>
</table></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[There is hope for your punctuation, part 1]]></title>
    <link href="https://www.taskboy.com/2006-06-30-There_is_hope_for_your_punctuation,_part_1.html"/>
    <published>2006-06-30T00:00:00Z</published>
    <updated>2006-06-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-06-30-There_is_hope_for_your_punctuation,_part_1.html</id>
    <content type="html"><![CDATA[
<img src="/img/ConjunctionJunction.gif" title="What's your major malfunction?" class="insert">


<p><p>This is the first in a series of musings about English punctuation and 
why it's so darn hard to get right.
<p>While on the T, I came across a small leaflet proclaiming that 
"There yet can be Hope for You."  Always looking for a dim ray of hope
in an otherwise bleak existence, I continued to read what the Bible Baptist 
Church had to say.
<p>As it turns out, they had a lot of interesting things to say (interesting
in an <em>In Search Of</em> kind of way).  Unfortunately, their inspirational
message was marred by poor punctuation and magical phrases.
<p>The first misstep comes from the rather misunderstood critter known as the 
semicolon.  Here's how the leaflet uses a semicolon:</p>

<blockquote>
Â«There seems little use in caring any more; in trying anymore; 
in going on anymore;Â»
</blockquote>

<p><p>Semicolons have two primary uses: to connect closely related 
independent clauses and to denote items in a list of complex clauses.  You'll
note that these "rules" require editorial discretion and are far from being 
unambiguous.  The <em>The Chicago Manual of Style</em> has 7 usage rules for 
semicolons, and a few of those cover when not to use semicolons.
<p>Surely, the last semicolon of this fragment is indefensible.  Semicolons 
never end a sentence.  The other semicolons are used a list separators, which 
is one of the legitimate uses of this mark.  However, the list elements are 
neither long nor complex, so if I were copyeditting this, I would change these
to plain old commas.  Here's a more standard looking version of the sentence:</p>

<blockquote>
Â«There seems little use in caring anymore, in trying anymore, in going 
on anymore.Â»
</blockquote>

<p><br>
<p>That's all the time I have for today.  Next time, I'll explore why hyphens are not m-dashes.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[dating through lawyers]]></title>
    <link href="https://www.taskboy.com/2006-06-20-dating_through_lawyers.html"/>
    <published>2006-06-20T00:00:00Z</published>
    <updated>2006-06-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-06-20-dating_through_lawyers.html</id>
    <content type="html"><![CDATA[
<img src="/img/lawyer.jpg" title="We're ready to believe YOU!" class="insert">


<p><p>One more from You Tube.
<p>Dating is hard.  Most people already know this.  Men want one thing, women 
want another.  So why not turn over the negotiations to <a href="http://www.youtube.com/watch?v=98UHKCG5GRw&amp;search=kids%20in%20the%20hall">trained professionals</a>. <br>
<p>I assume these guys work on contingency.
<p>UPDATE: Also see: <a href="http://www.youtube.com/watch?v=sGk25WwW3h4&amp;search=kids%20in%20the%20hall">Manny Coon</a></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The humanity of bug-eyed monsters]]></title>
    <link href="https://www.taskboy.com/2006-06-19-The_humanity_of_bug-eyed_monsters.html"/>
    <published>2006-06-19T00:00:00Z</published>
    <updated>2006-06-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-06-19-The_humanity_of_bug-eyed_monsters.html</id>
    <content type="html"><![CDATA[
<img src="/img/space_invader.gif" title="Resistence is futile" class="insert">


<p><p>This <a href="http://www.youtube.com/watch?v=oYzk5dkP6Rs">techno video</a> 
explains the futility of war to those of us weened on Space Invaders.  Who 
knew the invaders had such a rich home life?
<p><em>Dulce et Decorum est pro patria mori</em></a>.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Happy Birthday, Mom]]></title>
    <link href="https://www.taskboy.com/2006-06-14-Happy_Birthday,_Mom.html"/>
    <published>2006-06-14T00:00:00Z</published>
    <updated>2006-06-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-06-14-Happy_Birthday,_Mom.html</id>
    <content type="html"><![CDATA[
<img src="/img/white_rabbit.jpg" title="oh, the time! The time!" class="insert">


<p><p>It's been a remarkably busy week around Chez jjohn.  I hope to catch my
breath tomorrow. <br>
<p>In the meantime, I wanted to wish my mother a happy 71st 
birthday.  She'll never see this post because she doesn't have a computer, 
nor know about this web site, nor really even know about the Internet (other
than that's where pedaphiles and terrorists hang out).  I didn't have 
time to get her real flowers, so these will have to do.</p>


<img src="/img/roses.jpg" class="insert">


<p><p>It's the thought that counts, right?  Maybe not.  I'll get her flowers for 
her next 71st birthday. </p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Analyze this: nerd dreams]]></title>
    <link href="https://www.taskboy.com/2006-06-10-Analyze_this__nerd_dreams.html"/>
    <published>2006-06-10T00:00:00Z</published>
    <updated>2006-06-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-06-10-Analyze_this__nerd_dreams.html</id>
    <content type="html"><![CDATA[
<img src="/img/napoleon_dynamite.gif" title="A sweet, sweet ride" class="insert">


<p><p>It was sunny in my dream last night.  I was interviewing for a most unusual 
and prestigious job, the office of which was located in some alpine region.
I recall taking a strange monorail-like train, which was both modern in 
engineering, but antique in design.  The low office building stretch among a 
thick tree cover composed of evergreen and deciduous trees.  The train track 
ran above and to the side of the building so that I got a bird's eye view 
of the place.  It was white like plaster, but not quite as dusty.  It lay 
like a great white snake among the trees.
<p>I recall feeling neverous about the interview.  Although I knew it was
for an IT position that I was fully qualified for, the business was not 
strictly a tech company.  Although I cannot remember exactly what they did, 
the company was involved in some kind of graphic design or something arty.
I had some contacts within the organization, so I knew something about the 
place.
<p>I was led through the long, narrow halls of the office, which though 
buried in trees, still recieved a lot of sunlight.  The office was full 
of pretty, hip people who looked at me doubtifully.  We meandered through the 
modern interior and climbed the stairs to a sort of isolated loft area. 
<p>My interviewer, who might have been <a href="http://www.dailymedication.com/modules.php?name=News&amp;file=article&amp;sid=141">Collin Mockery</a>, 
began with some standard questions that I don't recall.  However, I do know 
that my heart was racing.  He then asked me what I thought of the office 
music, which was sort of a low-keyed version of Enya.  I recall not being 
prepared for this kind of question.  Neverously, I answered "I suppose I could
get used to it in 4-6 weeks."  This turned out to be a very bad answer.
<p>I then got an image of the president of the company watching the interview 
thorough closed circuit TV on a large, wall mounted, white trimmed plasma 
screen monitor.  The president was a forty-something, Silicon Valley-type of 
dotcom visionary, full of confidence, but short on practical business advice.
At my answer, he doubled over with derisive laughter saying, "Wow!  He did 
not just say that!  He actually used the delivery cliche verbatum!"
<p>With their leader in fits of laughter, the rest of the office sort of 
turned to my direction looking down their noses at me.  The interviewer stopped
the interview and said "sorry, I don't think you're a good fit here." <br>
I then had to walk alone down to the lobby, which had a fireplace, to collect 
my things.  Everyone seemed to be gloating over my failure.  The one friendly 
face I saw was an old IT mentor from my UMass/Boston days, who apparently now 
worked there.  He offered his condolences about the job, but told me not to 
let it get me down.
<p>In real life, I woke up feeling badly used and depressed.  It seemed 
that I had forever being trying to get in with the "cool kids" and failing.
This dream was yet another manifestation of this unfulfilled feeling. <br>
And then it occurred to me that this sadness was somewhat groundless. <br>
Professionally speaking, I've had a fairly respectable career.  And yet, 
I always feel I'm just on the verge of gaining respectability and acceptance.
<p>I should mention I watch a couple hours of 
<a href="http://www.adultswim.com/shows/athf/">Aqua Teen Hunger Force</a> 
before going to bed.  Maybe that was the problem.  Next to 
<a href="http://animatedtv.about.com/library/galleryathf/blphoto_1a_carl.htm">Carl</a>, I feel like a superstar.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Compaq Proliant DL360 G2]]></title>
    <link href="https://www.taskboy.com/2006-06-09-Compaq_Proliant_DL360_G2.html"/>
    <published>2006-06-09T00:00:00Z</published>
    <updated>2006-06-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-06-09-Compaq_Proliant_DL360_G2.html</id>
    <content type="html"><![CDATA[
<img src="/img/dl360g2.jpg" title="She's automatic, systematic, hydromatic" class="insert">


<p><p>I acquired an old DL360 (PIII 1.4/1G RAM/36GB SCSI (2)) from eBay for 
relatively short money (under $650).  I needed a 
machine to develop Leostream apps for <a href="http://www.vmware.com/">ESX</a>.
I've installed 2.5.3 on it now.  I'll probably put ESX 3 on it when the final 
version is in my hot little hands.
<p>When it's on, it sounds like a small vaccuum cleaner.  It's my first 
dual-proc machine in chez Johnston.  This machine replaces the ESX 2.1 
"cluster" I had cobbled together with PIII 500 machines. <br>
<p>Since ESX 3 is supposed to support NASes, I hope that I can use the 
open source <a href="http://www.freenas.org/">FreeNAS</a> project for my 
common VMFS storage.  Of course, having common storage suggest buying another 
DL360.  That may or may not be needed.  We'll see.
<p>In the meantime, new toys!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Good riddance to bad trash]]></title>
    <link href="https://www.taskboy.com/2006-06-09-Good_riddance_to_bad_trash.html"/>
    <published>2006-06-09T00:00:00Z</published>
    <updated>2006-06-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-06-09-Good_riddance_to_bad_trash.html</id>
    <content type="html"><![CDATA[
<img src="/img/al-Zarqawi.jpg" title="See ya!" class="insert">

]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Nerves are sensative]]></title>
    <link href="https://www.taskboy.com/2006-06-02-Nerves_are_sensative.html"/>
    <published>2006-06-02T00:00:00Z</published>
    <updated>2006-06-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-06-02-Nerves_are_sensative.html</id>
    <content type="html"><![CDATA[
<img src="/img/backpain.jpg" title="Bring the pain" class="insert">


<p><p>Today's health lesson involves nerves.  When nerves in the spine get 
irratated through bad posture or bad ergonomics, they become irrascible devils.
I learned this lesson twice this week.
<p>Living the thrill-seeking life that I do, I carried several O'Reilly books
across town yesterday in a less than salutory sachel.  You can't stop me! <br>
Don't even try!  Next time, I might even wear shoes with poor arch support. <br>
What are you gonna do about it?  Nothing!  I'm an EXTREME PEDESTRIAN! 
[Cue nu-metal guitar stab]
<p>The result of my high adventure was a night spent oscillating between the 
floor, the tub and the bed trying to find a prone position that allowed my 
irratated nerves to stop screaming at me.  Although the tylenol helped a bit, 
it was the last drought of Nightquil that put me down.  By knocking me out, I 
stopped moving long enough for my nerves to get happy.  I tried to use 
some relaxation techniques from yoga which did help, but I couldn't keep 
up the concentration long enough to remedy the problem.  I'm no Mr. Spock. 
<p>Today, my back is somewhat less than perfect and the rumor of another 
outbreak looms.  However, I've been able to take naps, so I'm not complaining.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Opening day for the Battle Bridge]]></title>
    <link href="https://www.taskboy.com/2006-05-27-Opening_day_for_the_Battle_Bridge.html"/>
    <published>2006-05-27T00:00:00Z</published>
    <updated>2006-05-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-05-27-Opening_day_for_the_Battle_Bridge.html</id>
    <content type="html"><![CDATA[
<img src="/img/bridge.gif" title="Cool factor 9, Mr. Chekov" class="insert">


<p><p>What I love most about New England is that each season is distinct form the
others.  It's warm in the summers and cold the winters and gosh-darn it, I 
like it that way.  However about this time of year, it's starts getting 
muggy and hot.  Since my apartment doesn't have central air, I have to install 
a window air conditioner in my bed room.  It's not a powerful unit, so it 
needs to stay on for days at a time to maintain the pleasant atmosphere.
<p>Air conditioning is a double-edged sword, since it means that I'm sort of 
trapped in my bedroom until the cool, Canadian air returns.  I've dubbed this 
auxiliary redoubt the Battle Bridge, after Star Trek because I'm giant nerd 
and because things need to have names lest we all fall into chaos and 
perdition.
<p>Today marks the first operating day of the Battle Bridge this year. <br>
I'll let
you all know when the shuttle lands.
<p>BTW, the graphic I snarfed above is from a very excellent resource of 
make-believe stuff called <a href="http://www.ex-astris-scientia.org/gallery/bridges1.htm">Ex Astris Scientia</a>.  Get your nerd on!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[missed connections: Pleasure Island, Disney World]]></title>
    <link href="https://www.taskboy.com/2006-05-24-missed_connections__Pleasure_Island,_Disney_World.html"/>
    <published>2006-05-24T00:00:00Z</published>
    <updated>2006-05-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-05-24-missed_connections__Pleasure_Island,_Disney_World.html</id>
    <content type="html"><![CDATA[
<img src="/img/pasta_eater.gif" title="must stuff face!" class="insert">


<p><p>To the drunk young man who repeatedly asked me to dance on the rotating 
disco floor and who later incoherently slurred to me in the men's room 
later that evening, I hope that you made it home alive.  I'm sorry if the black
and white furry pimp hat gave you the wrong impression of me.  In case you
thought the world didn't care, one all male couple later asked me, "are you 
taking that boy home?  He is drunk!"
<p>To the "professional girl" and older "gentleman caller" who was "courting"
her on the dance floor, I can only hope that your financial transaction was 
successfully
concluded and profitable for both of you.
<p>Finally, to the eighteen-year-old attractive blond who was shooting hoops 
until 
closing in the big-hair band bar and who inserted a breath mint into my mouth 
at
the end of the evening, you clearly didn't understand what the pimp hat was 
trying to tell you about me and perhaps that was my fault.  I should have 
tried to explain it to you instead of slurring incoherently.  My bad.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Illegal NSA wiretapping explained]]></title>
    <link href="https://www.taskboy.com/2006-05-15-Illegal_NSA_wiretapping_explained.html"/>
    <published>2006-05-15T00:00:00Z</published>
    <updated>2006-05-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-05-15-Illegal_NSA_wiretapping_explained.html</id>
    <content type="html"><![CDATA[
<img src="/img/child_raising_hand.jpg" title="Learning is fun!" class="insert">


<p><p>From the reaching-the-level-of-the-room dept. comes 
<a href="http://kfmonkey.blogspot.com/2006/05/fisa-in-one-syllable-words.html">this blog</a> explaining why the NSA's prodigious and 
unwarranted wiretapping programm is both harmful to Americans and 
ineffective at stopping terrorism.
<p>The explanation is mostly composed of common, one-syllable words.
<blockquote>
Â«Q: What if the court takes too much time? We could die from bad-dark-man plots and bombs!!</p>

<p><p>A: The way the FISA court works, you don't have to go see them that day. You can start the wire tap first, then go see the FISA court in three days.</p>

<p><p>Q: Hmmm, but what if the court wants too much proof, and the NSA does not get its wire tap? We could die from bad-dark-man plots and bombs!!</p>

<p><p>A: It is not hard to get a "yes" from the FISA court. It is, in fact, no sweat, child's play, slight, smooth, a snap. It is the town bike of courts. It is the Paris Hilton of courts. Pet the dog, buy the third drink, and you are in. Through the end of the year 2004, the FISA court said "yes" to 18, 761 warrants. They said "no" to five. 5 is much, much, much less than 18,761.</p>

<p><p>Q: Hmmm. It is cinch to heed the law then, and still keep us safe. 
YAAYYY!Â»
</blockquote>
<p>I expect that this explanation will help even regular viewers of Fox News
to understand the problem.
<p>Ok, nap time everyone.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Help Vampires: insidious creatures of the Internet]]></title>
    <link href="https://www.taskboy.com/2006-05-13-Help_Vampires__insidious_creatures_of_the_Internet.html"/>
    <published>2006-05-13T00:00:00Z</published>
    <updated>2006-05-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-05-13-Help_Vampires__insidious_creatures_of_the_Internet.html</id>
    <content type="html"><![CDATA[
<img src="/img/help-vampire2.gif" title="Which one is my elbow again?" class="insert">


<p><p>For those that do technical support professionally or otherwise, 
<a href="http://www.slash7.com/pages/vampires">this article</a> will 
seem strangely familiar:
<blockquote>
Â«Help Vampires are found in every public online community, from those nearest to our hearts to those furthest from our principles.</p>

<p><p>Instead of consuming of ill-gotten hemoglobin, these vampires suck the very life and energy out of people. By nature they feed on generous individuals who tend towards helping others, and leave their victims exhausted, bitter and dispirited. Â»
</blockquote>
<p>Remember: telling the stupid and lazy that they are stupid and lazy rarely 
helps the problem (although that trick does work on me when I'm stupid and 
lazy).
<p>Update: Also see <a href="http://www.homestarrunner.com/sbemail152.html">this Strong Bad email</a>.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Why Java hates you and your family]]></title>
    <link href="https://www.taskboy.com/2006-05-09-Why_Java_hates_you_and_your_family.html"/>
    <published>2006-05-09T00:00:00Z</published>
    <updated>2006-05-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-05-09-Why_Java_hates_you_and_your_family.html</id>
    <content type="html"><![CDATA[
<img src="/img/crying.gif" title="Buâ¦buâ¦but I didn't do anything to him!" class="insert">


<p><p>Programmers love to argue about which programming languages are better than 
others.  If you listen carefully, you'll notice that there's a hierarchy to 
the debate.  Java programmers laugh at C++.  C++ coders deride C monkeys. 
Everyone laughs at shell hackers.  No one can understand assembly 
programmers and those that "think in LISP" occupy a sublime and knowing orbit 
above all rest (so they think).</p>

<p><p>But I'm a Perl hacker first and foremost.  Despite some of the more vocal 
members of the community, Perl is a humble language (with, as its critics 
will quickly add, much to be humble about). In recent years, I've forced myself
out of this comfort zone into the wider world of programming.  Like all 
generalist, I try to pick the right tool for the task.  For instance, PHP is a 
best tool I've found for general web applications, which is why this site uses 
it.  For quick and dirty Windows games, Python (with its pygame library bindings 
to SDL) stands alone.  For repetative system admin tasks, shell scripts and cron 
combine like <a href="http://www.voltronforce.com/main.asp">Voltron</a> 
to create superlative software robots.  The thing is, most programming languages
are pretty similar.  They have data types, loops and conditional branching. <br>
That's really the bare minimum you need to get things done.  Where languages 
differ is in the services they offer the programmer.</p>

<p><p>I've heard that you love someone not for his winning attributes, but 
for his faults.  However, I've found that there are definitely some faults 
that are harder to love than others.  This missive is about those faults in 
Java that keep our relationship forever at the stage of the first date.  If 
Java is your "Main Mama", you may want to stop reading this now.</p>

<p><p>For <a href="http://www.leostream.com/">my work</a>, I need to hack up a bit 
of Java that speaks XML-RPC.  Now, you may recall that 
I'm no stranger</a> to working with this 
protocol.  I've written XML-RPC clients and servers in Python, Perl, PHP, ASP and
even (God help me) C.  But I missed out on Java until now. </p>

<p><p>No problem, I thought.  I'll just look through my book at the chapter 
Simon St. Laurent wrote about using the helma XML-RPC library for Java.  Simon 
did the lion's share of the book and did the most thorough job of any of us on the
project, so I took a look.  Funny thing: that library has morphed into the 
<a href="http://ws.apache.org/xmlrpc/">Apache XML-RPC</a> library.  Ok, fine. <br>
How different could it be?  I mean, it was working fine before.  How many changes 
were needed?  Perl's Frontier::RPC library has hardly changed in six years (and
we use it heavily at Leostream).</p>

<p><p>As it turns out, the one thing Java does well is faciliate abstractions.  With 
the newest version of the library, you can tweak all kinds of parameters, swap 
out XML parsers, add additional data types (which defeats the whole effing point 
of XML-RPC), create new class factories â the list goes on!  In fact, there's a
whole class just for configuring the XML-RPC client!  Excessive you say?  Just 
wait.  </p>

<p><p>The one thing you can't do with this library is start using it 
quickly.  The main culprit?  Missing dependencies.  When I tried to run a 
simple XML-RPC client, it complained about not knowning how to encode the 
XML-RPC timestamp thingie.  Oy.  But wait!  Weren't JAR files <br>
supposed to solve this issue?  Wrong again, Fatty!</p>

<p><p>Ok, so I needed to install subversion just to get the bleeding-edge version of 
the missing ws-common library.  That's not so bad, right?  Wrong.  I also needed 
to get a nightly snapshot of the TRUNK code of the main library because the 
"release" version could not handle structures correctly (the unknown "string" 
problem).  Fine.  That happens.  It's open source so you've got to expect the 
release management to get a little "cowboy" sometimes.</p>

<p><p>At length, my "hello, world" XML-RPC program got up and running.  After 
several phone calls gloating about this teapot triumph, I proceeded on to 
handling more realistic and complicated data structures.  I had my test 
server return a structure to my Java client that had a value that was an array. <br>
In perl, the structure looks something like this:</p>

<p>
  { "foo" => "bar",
    "boz" => [ "boom", "doom", "soon" ],
  }
</p>

<p></p>

<p><p>Here's a quick test: how many dictionary classes does Java have?  I'm talking 
about generic collection types that hold key-value pairs.  1? 3? 10?  Wrong! <br>
It's a trick question.  In Java, new Map classes spontaneously generate all 
the time.</p>

<p><p>I bring this up because in order to traverse this data structure, I need 
to know the how to type the objects correctly.  Now, in simple programs where 
you control the data, that's easy.  When you have to deal with arbitrary data
coming in from an unknown source, Java whips out the hate on you.</p>

<p><p>Because Java sucks is very advanced, I have to iterate 
through methods to transverse this structure.  Something like the following:</p>

<p class="insert">
Map my_struct = get_the_struct();

Iterator it = struct.keySet().iterator();
while (it.hasNext()) {
  Object this_key = my_struct.next();
  Object raw_object = result.get(this_key);

   // here comes the good part
   Class c = raw_object.getClass();
   if (c.isArray()) {
       // fetching this object was so nice, I do it twice!
       Object [] this_value = (Object []) result.get(this_key);
       System.out.print(this_key + " => ");
       int i;
       for (i=0; i  " + raw_object);
   }
}
</p>

<p><p>It took me about 3 hours to puzzle out this code.  It would have been
swell for the docs to have an example of handling complex data like
arrays and hashes, but then I would have missed out on my afternoon of personal 
discovery and emotional growth.</p>

<p><p>After many fruitless web, book, and source code searches, I managed to hack 
this code to handle my "weird" data.  It's crappy, but it works.</p>

<p><p>The truly loathesome part is the way I had to work with hash values
that are arrays.  For reasons that aren't clear, I couldn't just use the
value returned from a Map if it is an array of Objects.  That would be
too easy.  I had to properly cast the data because Java is a 
bucket full of venomous hate.  Of course, I need to check if the object is, 
in fact, an array and then fetch the object again for the cast!</p>

<p><p>Allow me to paint with a very broad brush for a moment.  The stunt 
programming exhibited in the code above is exactly the kind of stupidity that 
prevents Java folks from learning about what's going on in the rest of the 
computer universe.  Strict data typing is 100%, no-foolin' legalese.</p>

<p><p>All modern scripting languages handle this kind of "collection of random
data types" better than Java.  VBScript is only slightly less lawyerly about
it, but it too sucks hard on big, stiff data structures (VBScript has 
two assignment operators: one for objects, one for everything else.
Thanks for nothing, Microsoft).</p>

<p><p>It's enough to really bring me down, man.</p>

<p><p>What the hell is wrong with these language designers?  Can they please
stop worrying about continuations, anonymous classes, multiple
inheritance, abstract interfaces, factory classes and orthogonality long
enough to make a language that's useful for the kind of problems I have to deal 
with?  I live in world of strings.  If your language makes dealing with strings
hard for me, I will hate you with my fists.  </p>

<p><p>Can I get a "hell ya!"?  </p>

<p><p>Jesus H. Christ. </p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Thoughts on GPL, version 3]]></title>
    <link href="https://www.taskboy.com/2006-05-08-Thoughts_on_GPL,_version_3.html"/>
    <published>2006-05-08T00:00:00Z</published>
    <updated>2006-05-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-05-08-Thoughts_on_GPL,_version_3.html</id>
    <content type="html"><![CDATA[<p><a href="http://www.asciiartfarts.com/20060508.html">See here.</a></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The dangers of gospel-yodelling]]></title>
    <link href="https://www.taskboy.com/2006-05-03-The_dangers_of_gospel-yodelling.html"/>
    <published>2006-05-03T00:00:00Z</published>
    <updated>2006-05-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-05-03-The_dangers_of_gospel-yodelling.html</id>
    <content type="html"><![CDATA[
<img src="/img/cthulhu.jpg" title="Oh say can you seeâ¦" class="insert">


<p><p>While I don't like to meta-blog, I do need to point out Sean Burke's 
<a href="http://use.perl.org/~TorgoX/journal/29502">particularly biting and 
accurate berating</a> of this Spanish treatment of the U.S. national anthem.
I thought Sean was being hyperbolic in his criticism, simply working up a good 
crank, but then I listened to the song.  </p>

<blockquote>
Â«And then, because mere lyrics and melody are not painful enough, there is 
<a href="http://hosted.ap.org/specials/interactives/_entertainment/anthem/anthem.mp3">the actual performance</a> [4MB mp3]. It is a horror worse than 
Lovecraft could have imagined, because even he could not have pictured a chorus of 
Cthulhus <a href="http://use.perl.org/~TorgoX/journal/16471">gospel-yodeling</a> 
in the high tradition of CÃ¨line Dion and/or American Idol.Â»
</blockquote>

<p><p>Worble on like french fry fatten finches, you masters of melody, you saints of 
salsa!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Mission Accomplished]]></title>
    <link href="https://www.taskboy.com/2006-05-02-Mission_Accomplished.html"/>
    <published>2006-05-02T00:00:00Z</published>
    <updated>2006-05-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-05-02-Mission_Accomplished.html</id>
    <content type="html"><![CDATA[
<img src="/img/mission_accomplished.jpg" title="Freedom is just another word for nothing left to lose" class="insert">


<p><p>What a difference three years can make!  Back then, we were in a pitched 
war to liberate Iraq from a cruel dictator (should I even mention WMD?). <br>
Now, we're in a dirty, 
<a href="http://www.kimsoft.com/guerilla.htm">guerilla war</a> in Iraq with over 2,000 dead American soliders and 
<a href="http://www.chron.com/disp/story.mpl/nation/3828422.html">mounting global terrorism</a>. <br>
<p>At some point, someone from the administration will have to remind me 
why we spend $300 billion on this.  Frankly, I think we bought a lemon of 
a war.  Maybe the upcoming Iran war will turn out much, much better.
<p>Mission Accomplished!
<br>
<br>
<br>
<p>(Reminder: <a href="http://www.impeachbush.org/site/PageServer">regime change</a> starts <a href="https://political.moveon.org/donate/06match.html">at home</a></a>.)</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[There needs to be a better word than "weird"]]></title>
    <link href="https://www.taskboy.com/2006-05-01-There_needs_to_be_a_better_word_than_&quot;weird&quot;.html"/>
    <published>2006-05-01T00:00:00Z</published>
    <updated>2006-05-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-05-01-There_needs_to_be_a_better_word_than_&quot;weird&quot;.html</id>
    <content type="html"><![CDATA[
<img src="/img/foxes_monkey_knife_fight.gif" title="self inflicted pain is delicious!" class="insert">


<p><p>For those seeking more evidence that culture in U.S.A. is in 
the last stages of decay, I present <a href="http://abcnews.go.com/GMA/Health/story?id=1909059&amp;page=1">this story</a> about a problem 
that doesn't exist in places that have real problems:
<blockquote>
Â«Sarah Brecht started cutting herself when she was a teenager.</p>

<p><p>"The triggers were when I felt anger, sadness," Brecht said.</p>

<p><p>She felt she was alone with her compulsion to injure herself until she found a community of people just like her online. Â»
</blockquote>
<p>If we would just close down the Internets, all badness would go away!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The 999 Names of George W. Bush]]></title>
    <link href="https://www.taskboy.com/2006-04-26-The_999_Names_of_George_W.html"/>
    <published>2006-04-26T00:00:00Z</published>
    <updated>2006-04-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-04-26-The_999_Names_of_George_W.html</id>
    <content type="html"><![CDATA[
<img src="/img/BushFinger-1.jpg" title="Presidentin' is hard!" class="insert">


<p><p>I'm sitting on some big news.  Maybe next week, I can talk about it.
<p>Until then, celebrate the last 999 days of the W presidency with Sean Burke's
<a href="http://interglacial.com/rss/bush999.html">999 Names of George W. 
Bush</a>.  Muslims believe that Allah has 99 and to know them all brings 
enlightment/bliss.  To know the 999 names of Bush is simply a way to win a 
bar bet.
<p>Good thing there's an <a href="http://interglacial.com/rss/bush999.rss">RSS feed</a>!
<p>UPDATE: Ok.  I jumped the gun by a day or two.  Sue me.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Nu-metal and its discontents]]></title>
    <link href="https://www.taskboy.com/2006-04-18-Nu-metal_and_its_discontents.html"/>
    <published>2006-04-18T00:00:00Z</published>
    <updated>2006-04-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-04-18-Nu-metal_and_its_discontents.html</id>
    <content type="html"><![CDATA[
<img src="/img/angry-white-boy-polka.jpg" title="Boo-hoo!" class="insert">


<p><p>"Weird Al" Yankovic is the most misunderstood music critic in America.  I think 
it's the "weird" in his name that throws people off.  Maybe his addiction polka.
Maybe it's the crinkle-curl hair.  Whatever the cause, it's a shame because 
Al's <a href="http://www.weirdal.com/polka/angrywhiteboy.htm">Angry White Boy 
Polka</a> succinctly details exactly what's ineffably awful about Nu-Metal. <br>
<p>As a genre, Nu-Metal was born in the dying embers of both Grunge rock and 
"Big Hair" rock (clearly a May-December relationship if there ever was one). 
A good Nu-Metal band is Helmet (although I'm not a fan, I can tell those guys 
can rock).  The rot set in when Nu-Metal became a corporate commodity and 
stupid white boys thought that they could rap over wailing distorted guitars. <br>
I'm not sure that's how Affirmative Action is supposed to work.
<p>From the mid-nineties on, the Suck knob on Nu-Metal continued to get cranked
higher and higher until, well, even Weird Al noticed.  In 2004's Poodle 
Hat, Yankovic went back to his roots with "Angry White Boy Polka."  Unlike 
the polka tune on his first album which seemed to celebrate "classic rock,"
I get the feeling Al is making a point of showing off the cyclopean banality 
of the lyrics that populate the most commercially successful examples of 
Nu-Metal.  "Preachy" doesn't really seem to cover for these whiny punks, but 
judge for yourself.  After listening to a few of these tunes, I get the feeling 
that covering Pat Benatar's "Love is a Battlefield" in this style would be a mega-hit.
<p>I have created a table that lists the source material used in Weird Al's 
parody.  Old folks like me will certainly have avoided most of these 
excremental twits, but now, no matter your age, you can confidently say, "Staind? <br>
Those Nu-Metal guys suck!"</p>

<p>Nu-Metal: a musical STD of nineties.</p>

<p><br></p>

<table class="insert">
<tr>
  <th>Band</th>
  <td><img src="/img/spacer.gif"></td>
  <th>Song</th>
  <td><img src="/img/spacer.gif"></td>
  <th>Album</th>
  <td><img src="/img/spacer.gif"></td>
  <th>Sample</th>  
  <td><img src="/img/spacer.gif"></td>
</tr>

<tr><td><img src="/img/spacer.gif"></td><tr>

<tr>
  <td><a href="http://www.paparoach.com/">PAPA ROACH</a></td>
  <td>Last Resort</td>
  <td>INFESTED</td>
  <td> </td>
  <td><a href="http://www.amazon.com/gp/music/wma-pop-up/B00004STPK001002/ref=mu_sam_wma_001_002/103-0680550-0492661">Sample</a></td>
</tr>

<tr><td><img src="/img/spacer.gif"></td><tr>
<tr><td><img src="/img/spacer.gif"></td><tr>
<tr><td><img src="/img/spacer.gif"></td><tr>

<tr>
  <td><a href="http://www.systemofadown.com/">SYSTEM OF A DOWN</a></td>
  <td>Chop Suey</td>
  <td>TOXICITY</td>
  <td> </td>
  <td><a href="http://www.amazon.com/gp/music/wma-pop-up/B000021YQV001006/ref=mu_sam_wma_001_006/103-0680550-0492661">Sample</a></td>
</tr>

<tr><td><img src="/img/spacer.gif"></td><tr>
<tr><td><img src="/img/spacer.gif"></td><tr>
<tr><td><img src="/img/spacer.gif"></td><tr>

<tr>
  <td><a href="http://www.thevines.com/">THE VINES</a></td>
  <td>Get Free</td>
  <td>HIGHLY EVOLVED</td>
  <td> </td>
  <td><a href="http://www.amazon.com/gp/music/wma-pop-up/B0000669JG001006/ref=mu_sam_wma_001_006/103-0680550-0492661">Sample</a></td>
</tr>
<tr><td><img src="/img/spacer.gif"></td><tr>
<tr><td><img src="/img/spacer.gif"></td><tr>
<tr><td><img src="/img/spacer.gif"></td><tr>

<tr>
  <td><a href="http://www.hives.nu/">THE HIVES</a></td>
  <td>Hate to say I told you so</td>
  <td>VENI VIDI VICIOUS
  <td> </td>
  <td><a href="http://www.amazon.com/gp/music/wma-pop-up/B000066F6H001006/ref=mu_sam_wma_001_006/103-0680550-0492661">Sample</a></td>
</tr>
<tr><td><img src="/img/spacer.gif"></td><tr>
<tr><td><img src="/img/spacer.gif"></td><tr>
<tr><td><img src="/img/spacer.gif"></td><tr>

<tr>
  <td><a href="http://www.whitestripes.com/">WHITE STRIPES</a></td>
  <td>Fell in Love with A Girl</td>
  <td>WHITE BLOOD CELLS</td>
  <td> </td>
  <td><a href="http://www.amazon.com/gp/music/wma-pop-up/B00005V687001001/ref=mu_sam_wma_001_001/103-0680550-0492661">Sample</a></td>
</tr>
<tr><td><img src="/img/spacer.gif"></td><tr>
<tr><td><img src="/img/spacer.gif"></td><tr>
<tr><td><img src="/img/spacer.gif"></td><tr>

<tr> 
  <td>THE STROKES</a></td>
  <td>Last Night</td>
  <td>IS THIS IT?</td>
  <td> </td>
  <td><a href="http://www.amazon.com/gp/music/wma-pop-up/B00005QIPH001007/ref=mu_sam_wma_001_007/103-0680550-0492661">Sample</a></td>
</tr>
<tr><td><img src="/img/spacer.gif"></td><tr>
<tr><td><img src="/img/spacer.gif"></td><tr>
<tr><td><img src="/img/spacer.gif"></td><tr>

<tr>
  <td><a href="http://www.disturbed1.com/">DISTURBED</a></td>
  <td>Down with the sickness</td>
  <td>THE SICKNESS</td>
  <td> </td>
  <td><a href="http://www.amazon.com/gp/music/wma-pop-up/B00004R7NE001004/ref=mu_sam_wma_001_004/103-0680550-0492661">Sample</a></td>
</tr>
<tr><td><img src="/img/spacer.gif"></td><tr>
<tr><td><img src="/img/spacer.gif"></td><tr>
<tr><td><img src="/img/spacer.gif"></td><tr>

<tr>
  <td><a href="http://www.ratm.com/">RAGE AGAINST THE MACHINE</a></td>
  <td>Renegades of Funk</td>
  <td>RENEGADES</td>
  <td> </td>
  <td><a href="http://www.amazon.com/gp/music/wma-pop-up/B000053EZW001004/ref=mu_sam_wma_001_004/103-0680550-0492661">Sample</a></td>
</tr>
<tr><td><img src="/img/spacer.gif"></td><tr>
<tr><td><img src="/img/spacer.gif"></td><tr>
<tr><td><img src="/img/spacer.gif"></td><tr>

<tr>
  <td><a href="http://www.limpbizkit.com/">LIMP BIZKIT</a></td>
  <td>My Way</td>
  <td>CHOCOLATE STARFISH AND THE HOT DOG FLAVORED WATER</td>
  <td> </td>
  <td>Sample</a></td>
</tr>
<tr><td><img src="/img/spacer.gif"></td><tr>
<tr><td><img src="/img/spacer.gif"></td><tr>
<tr><td><img src="/img/spacer.gif"></td><tr>

<tr>
  <td><a href="http://www.staind.com/">STAIND</a></td>
  <td>Outside</td>
  <td>BREAK THE CYCLE</td>
  <td> </td>
  <td><a href="http://www.amazon.com/gp/music/wma-pop-up/B00005AAFJ001011/ref=mu_sam_wma_001_011/103-0680550-0492661">Sample</a></td>
</tr>
<tr><td><img src="/img/spacer.gif"></td><tr>
<tr><td><img src="/img/spacer.gif"></td><tr>
<tr><td><img src="/img/spacer.gif"></td><tr>

<tr>
  <td><a href="http://www.kidrock.com/">KID ROCK</a></td>
  <td>Bawitdaba</td>
  <td>DEVIL WITHOUT A CAUSE</td>
  <td> </td>
  <td><a href="http://www.amazon.com/gp/music/wma-pop-up/B000009ED0001001/ref=mu_sam_wma_001_001/103-0680550-0492661">Sample</a></td>
</tr>
<tr><td><img src="/img/spacer.gif"></td><tr>
<tr><td><img src="/img/spacer.gif"></td><tr>
<tr><td><img src="/img/spacer.gif"></td><tr>

<tr>
  <td><a href="http://www.payableondeath.com/">P.O.D</a></td>
  <td>Youth of the Nation</td>
  <td>SATELLITE</td>
  <td> </td>
  <td><a href="http://www.amazon.com/gp/music/wma-pop-up/B00005MB1I001004/ref=mu_sam_wma_001_004/103-0680550-0492661">Sample</a></td>
</tr>
<tr><td><img src="/img/spacer.gif"></td><tr>
<tr><td><img src="/img/spacer.gif"></td><tr>
<tr><td><img src="/img/spacer.gif"></td><tr>

<tr>
  <td><a href="http://www.eminem.com/">EMINEM</a></td>
  <td>The Real Slim Shady</td>
  <td>THE MARSHALL MATHERS LP</td>
  <td> </td>
  <td><a href="http://www.amazon.com/gp/music/wma-pop-up/B00004T9UF001008/ref=mu_sam_wma_001_008/103-0680550-0492661">Sample</a></td>
</tr>
</table>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Windows 2000/XP/2003 desktop color]]></title>
    <link href="https://www.taskboy.com/2006-04-14-Windows_2000_XP_2003_desktop_color.html"/>
    <published>2006-04-14T00:00:00Z</published>
    <updated>2006-04-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-04-14-Windows_2000_XP_2003_desktop_color.html</id>
    <content type="html"><![CDATA[
<img src="/img/desktop.gif" title="Deep blue" class="insert">


<p><p>Today's installment of Ask an Internet Foggy concerns the standard 
Windows background color.  For the modern versions of Windows, the RGB values 
are, in uncool decimal:</p>

<p>
  red:   58
  green: 110
  blue:  165
</p>

<p><p>It used to be   dark cyan   but then it 
switched to a more professional shade of blue.
<p>Yes, I'm blogging this because I expect to look this up later in my life.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Nutpocalpse Ow!]]></title>
    <link href="https://www.taskboy.com/2006-04-13-Nutpocalpse_Ow_.html"/>
    <published>2006-04-13T00:00:00Z</published>
    <updated>2006-04-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-04-13-Nutpocalpse_Ow_.html</id>
    <content type="html"><![CDATA[
<img src="/img/nuts.gif" title="nuts, assorted" class="insert">


<p><p>It's funny how you can know a guy for twenty years and still discover 
something new about him.  Don't worry â this isn't the start of 
<em>Brokeback Mountain II</em>.
<p>I've known <a href="http://zorknapp.blogspot.com/">Zorknapp</a> for nearly 
twenty years.  I've lived with him (platonically) twice.  We've been in 
a <a href="/music/but_not_yours.mp3"">band together</a>. <br>
We do a <a href="http://pseudocertainty.com/">radio show</a> together.  And 
yet, there are aspects of my friend that have remained hidden from me for years.
<p>Mike doesn't like <a href="http://en.wikipedia.org/wiki/Nut_%28fruit%29">nuts</a> 
(drupes, legumes, seeds, etc. [but he's fine with crazies]).
<p>Now everyone has his own preferences when it comes to food.  There's no 
commandment that we should all like the same things.  Variety is the spice of 
life and whatnot.  As a class of food, I don't care for fruit very much (I'm looking at you, raspberries).  But Mike 
<em>really</em> doesn't like nuts.  His dislike exceeds merely not wanting 
to eat them.  Ideally, Mike would like a government pogrom to round up and 
exterminate these much-beloved snack foods.
<p>Mike is quite vocal on this subject.  His normally equanimous disposition
on most things evaporates when the topic of nuts manifests. <br>
He loathes peanut 
butter; disdains pistachios; ahbors almonds; scorns cashews; rejects 
chestnuts.  The smell of nuts drives all reason from the man.  In the 
struggle against them, there can be no comprise, no quarter.  To Mike, the 
feotid smell of open graves is less offensive than the smallest Reeses Peanut 
Butter Cup.  His ill-will for these tiny nuggets of protein is palpable and 
oppressive.
<p>In short, he is a nut racist.
<p>I have little doubt that he will someday produce a pamphlet promulgating 
his nutty jihad to a population of emotional dead but physically violent 
youths who, because they were raised on 
<a href="http://tuoppi.oulu.fi/kbs-bin/directbeer?Nr=1228">Mickey's Big Mouths</a> and stale 
pretzels, won't know the joy of perfectly salted peanuts.  Blinded by their 
irrational prejudice, the Nut Haters will clash with the Nut Lovers in a conflict that will paint the streets red with blood.  Then 
all that will be left will be cochroaches, who will show no preference between 
feasting on legumes or on the human corpses of a Nutpocalyptic war. 
<p>I hope to God I don't live to see that day.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Doom comes tomorrow]]></title>
    <link href="https://www.taskboy.com/2006-04-10-Doom_comes_tomorrow.html"/>
    <published>2006-04-10T00:00:00Z</published>
    <updated>2006-04-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-04-10-Doom_comes_tomorrow.html</id>
    <content type="html"><![CDATA[
<img src="/img/green_monster_seats.jpg" title="The Sign of the Beast" class="insert">


<p><p>Sisyphus had his stone.  Tantalus had his fruit.  My tormentor is opening
day at Fenway park.  This is the start of my tenth year of suffering through a 
day filled with loud tourists, street vendors, panhandlers, scammers, 
<a href="/?bid=40">Caroline</a> and the occasional flyover by a U.S. fighter 
jet.  I will be in a client office tomorrow for most of the day, but this 
sort of thing doesn't blow over in a few hours. <br>
<p>Good thing I've got beer in the fridge.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[New monitor]]></title>
    <link href="https://www.taskboy.com/2006-04-04-New_monitor.html"/>
    <published>2006-04-04T00:00:00Z</published>
    <updated>2006-04-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-04-04-New_monitor.html</id>
    <content type="html"><![CDATA[
<img src="/img/hp_1955.jpg" title="Better than real life" class="insert">


<p>I'm so <a href="http://www.jerriblank.com/swcep301.html">jazzed</a> 
about my new monitor!</p>

<p>It's been a long time since I've raved about any computer equipment, mainly
because I've been buying cheap crap from 
<a href="http://www.newegg.com/">newegg.com</a>.  
While that stuff is functional, it's not going to challenge Apple for
any design awards.</p>

<p>To deal with some increasingly painful back aches (that I believe are all 
posture related), I decided to invested in a quality LCD monitor for my 
bedroom/office.  For those keeping track, this is my <em>second</em> LCD 
monitor for my bedroom.  The original 14" model is still in use for my music
workstation.</p>

<p><p>My first choice for a monitor was the unbelievably awesome 
<a href="http://www.apple.com/displays/">Apple Cinema display</a>.  Starting 
at $800, these devices are a luxury item that will have to wait until I make
my tech start-up millions.  Instead, I spent less than half of that (thanks 
to the aforementioned newegg) on an <a href="http://h10010.www1.hp.com/wwpc/us/en/sm/WF05a/382087-64283-444767-72270-444767-427304.html">HP 1955 19" LCD monitor</a>. <br>
At 24 pounds, 
it's a solid piece of equipment that reminds me of HP's glory days of 
manufacturing industrial-strength PC equipment.
<p>Although I could have spent around $250 for a similar monitor, I wanted a 
display that would very likely work with a Mac Mini, which I think I will 
buy sometime this year.  I can then get a KVM switch to go back and forth 
between the laptop and the Mac.  I reasoned that Apple was more likely to 
support HP and some nutty Pacific Rim manufacturer.  I'll let you know if this
gambit pays off.</p>

<p><p>In any case, spending dough on a monitor makes more sense to me that 
spending cash on a computer.  My monitors typically outlast the hosts.  Since 
monitors are a huge part of the computer experience, it seems reasonable to 
put some loot out for a good one.</p>

<p><p>As far as I can tell, there are no dead pixels on this screen and the 
picture is very sharp and bright.  Because the screen sits at eye level, I 
won't be hunched over looking, scanning for items on the desktop â like a 
God-damned monkey!  I've got opposable thumbs and the will to use them! </p>

<p><p>I'll run through the short list of problems.  None of them are 
show-stoppers and a few 
of them actually help my back.</p>

<ol>
  <li>Built-in USB hub in the monitor isn't recognized by XP pro on my laptop
  <li>The monitor runs at 1280x1024
  <li>I have to used an external keyboard and mouse
  <li>My desk has a lot more wires on it
  <li>I had to remove my iMac from the desk
</ol>

<p><p>I think #1 could be solved if I worked the problem long enough.  But I just
plug my USB keyboard (that I retrieved from the trash!) and my optical mouse 
(which I paid for [bah!]) directly into the laptop.  #2 and #3 actually forced
me to create an ergonomically healthier workplace and that was the point of 
the excerise anyway.  As for removing the iMac, that's not going to affect my
day-to-day productivity at all, since I rarely turn it on.
<p>Really, my only complaint is about the wires on my desk.  Which I admit is 
a pretty weak lament.  So, it's all very, very good for jjohn.
<p>Capitalism!  Whodda thunk it would work?</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Disco bus]]></title>
    <link href="https://www.taskboy.com/2006-03-30-Disco_bus.html"/>
    <published>2006-03-30T00:00:00Z</published>
    <updated>2006-03-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-03-30-Disco_bus.html</id>
    <content type="html"><![CDATA[
<a href="/img/disco_bus.gif"><img src="/img/disco_bus_sm.gif" title="She's a bus-age wonder" class="insert"></a>


<p><p>It's been a while since I reported on that unique brand of entertainment 
available only from my apartment's window that I call "McDonald's Parking 
Lot Theatre."  Tonight's performer wasn't human, but an automaton of lumbering 
seventies exuberance and existentialist horror.
<p>Today, the weather had finally begun to take on spring-like attributes 
here in Boston.  The past few days have been delightfully cool, with no hint 
of winter.  Today was especially delightful: dry, blue and as sunny as a 
four-year-old in a candy shop.  Workmen continue to feverishly finish up 
the new deck of Fenway park before opening day (in a week or so).  Even now 
as I write this, the large, UFO-like lights of the park shine through my 
bedroom windows.
<p>At some point this evening, the relentless grind of dance music began 
wafting through my apartment.  It's the city.  It's a warm night.  That sort 
of thing is to be expected.  But the music persisted.  Was it coming from the 
park?  I moved to investigate.
<p>Although the jumbotron was active, it didn't appear that there was a formal
event at the park (sadly, I can tell the difference).  I looked down in the 
parking lot of McDonald's and to my horror, I saw a white metal contraption, 
filthy with lurid lights, flashing and beguiling.  It was like a tour bus of 
familiar design seen throughout Boston during the day, but this one was 
festooned with blinky lights and a thrumming subwoofer pounding out dance 
music to its unseen and sullen passenagers. <br>
<p>The driver left the mobile party in the parking lot while he got a shake 
or something inside.  The delay was long enough for me to get this picture and 
then the party bus moved on.  Fear!  Fear and loathing in the streets of 
Boston!  Ai!
<p>I will attempt to remember to grab the camera when I next see the stretch 
SUVs so popular for bachelorette parties.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[President Wilson not big on diversity]]></title>
    <link href="https://www.taskboy.com/2006-03-28-President_Wilson_not_big_on_diversity.html"/>
    <published>2006-03-28T00:00:00Z</published>
    <updated>2006-03-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-03-28-President_Wilson_not_big_on_diversity.html</id>
    <content type="html"><![CDATA[
<img src="/img/wilson.jpg" title="'I tip my hat to white America!'" class="insert">


<p><p>Today's example of how history books lie to us comes from 
<a href="http://www.reason.com/links/links121802.shtml">ReasonOnline</a>, 
who attempts to put Trent Lott's <a href="http://archives.cnn.com/2002/ALLPOLITICS/12/09/lott.comment/">racist remarks</a> in a wider
context of historical federal racism:</p>

<blockquote>
Â«Obviously, Southern hopes that Wilson could force blacks into servility were always delusional. Nevertheless, Wilson's Jim Crow presidency remained an available model for segregationists and supremacists who came later. Thurmond and his fellow Dixiecrats didn't necessarily require a model of triumphalist racism, but the point is that in Wilson they had one. Â»
</blockquote>

<p><p>But I thought Wilson was a progressive and a peacnik! <br>
He's on The List now too.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Deep thoughts]]></title>
    <link href="https://www.taskboy.com/2006-03-22-Deep_thoughts.html"/>
    <published>2006-03-22T00:00:00Z</published>
    <updated>2006-03-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-03-22-Deep_thoughts.html</id>
    <content type="html"><![CDATA[
<img src="/img/lucy_van_pelt.gif" title="The doctor is in" class="insert">


<p><p>Dear log,
<p>Even at 34 years old, I still catch myself thinking "I wonder what I'll
do when I grow up?"  At some point, I think I'll have to come to terms 
that I have, in truth, already grown up and that the answer to my question 
 is: pretty much what you did yesterday.
<p>Someday, I'll make this blog valid HTML 4 transitional.  HTML/XML is just 
too weird.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[new song: Except me]]></title>
    <link href="https://www.taskboy.com/2006-03-13-new_song__Except_me.html"/>
    <published>2006-03-13T00:00:00Z</published>
    <updated>2006-03-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-03-13-new_song__Except_me.html</id>
    <content type="html"><![CDATA[
<img src="http://www.trafalgar.de/px/mumbleandpegmag.jpg" title="Oh the things you say, Erik!" class="insert">


<p>I covered another Erik Carter song, this one called
<a href="/music/except_me.mp3">Except me</a>.  This is one of my 
favorites from Erik's band Mumble and Peg. </p>

<p>This arrangement features me on piano, which was cleaned up only 
in a few spots.  The mix was enhanced with Sonic Maximizer, which does 
help (surprisingly).  It's a slow song, but definitely not easy listening.
Enjoy.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The woes of Moe]]></title>
    <link href="https://www.taskboy.com/2006-03-04-The_woes_of_Moe.html"/>
    <published>2006-03-04T00:00:00Z</published>
    <updated>2006-03-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-03-04-The_woes_of_Moe.html</id>
    <content type="html"><![CDATA[
<img src="http://www.usatoday.com/life/gallery/simpsons/moe.jpg" title="Is there Jacques Strap here?" class="insert">


<p>The life of a bachelor isn't always an easy one, as this 
<a href="moes_woes.mp3">sound clip</a> from Simpson's 
attests too.  Clearly, he needs a better class of junk mail.</p>

<p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[I'm a chaotic neutral elf bard.  Apparently.]]></title>
    <link href="https://www.taskboy.com/2006-02-28-I_m_a_chaotic_neutral_elf_bard.html"/>
    <published>2006-02-28T00:00:00Z</published>
    <updated>2006-02-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-02-28-I_m_a_chaotic_neutral_elf_bard.html</id>
    <content type="html"><![CDATA[
<a href="/img/dnd_char.gif"><img src="/img/dnd_char_sm.gif" title="outed by the Internet" class="insert"></a>


<p>For years, I've been living a double life.  While to the world, I appeared
to be an aging programmer and failed musician, the truth was much more 
sinister.  Hidden from everyone, including me, was the ugly, sick truth 
that this <a href="http://fantasyherald.com/quiz/dand/index.php">Internet questionnairre</a> exposed.</p>

<p>I am an elf.</p>

<p>And not just an elf, but a capricious, chaotic neutral one at that.  A danger
to society and friends alike, I march to the 
<a href="http://www.hplovecraft.com/creation/bestiary.asp">blind, mad beat 
of my own secret drummer</a>.  Which explains my 
secret profession: traveling bard.</p>

<p>They say that admitting you have a problem is the first stage of recovery.
Well, so be it.</p>

<p>I am a chaotic neutral elf.  Love me for who I am!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Rejected]]></title>
    <link href="https://www.taskboy.com/2006-02-28-Rejected.html"/>
    <published>2006-02-28T00:00:00Z</published>
    <updated>2006-02-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-02-28-Rejected.html</id>
    <content type="html"><![CDATA[
<a href="/rejected.wmv"><img src="/img/rejected.gif" title="Inappropriate for all ages" class="insert"></a>


<p>The Internet is full of purile, hurtful garbage of the kind 
that does no one any good.  The 
<a href="http://www.bitterfilms.com/rejected.html">movie</a> 
linked to above is perfect example of this.</p>

<p>Why did I make a local cache of it then?  Evidence!</p>

<p><p>UPDATE: Because irony doesn't always transmit well on the interweb, please note that, despite what I said above, I actually <em>enjoyed</em> this little grotesquery.  Would I really serve media I disliked?</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Favorite Spam subject lines]]></title>
    <link href="https://www.taskboy.com/2006-02-26-Favorite_Spam_subject_lines.html"/>
    <published>2006-02-26T00:00:00Z</published>
    <updated>2006-02-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-02-26-Favorite_Spam_subject_lines.html</id>
    <content type="html"><![CDATA[
<img src="/img/bardspam.jpg" title="Meditations before the abyss" class="insert">


<p>Recently, I had to clear out an inbox with 7.5K messages in it.  Two 
were real emails to me about some SOAP articles I had written.  About 6 
messages were either email digests I had signed up for or other legitimate
notifications from services I specifically signed up for.  The inbox 
had been collecting email since I last cleared it out in December, aught five.</p>

<p>I guess a 750-1 ratio of spam to legitimate email is good, right?</p>

<p>There were some interesting gems in the subject lines of some of the 
deleted spam.  I'll share these with you now.</p>

<ul>
  <li><code>Cormorant is Treachery of 9</code> (which is entirely true)
  <li><code>Fat boy please respond with info</code> (let's cut to the chaseâ¦)
  <li><code>What?  Die??</code> (written by Sartre)
  <li><code>Do you remember that? Weather</code><br>(everyone talks about it, but no one does anything about it)
  <li><code>Timely Narcotic Offer</code> (too late for me)
</ul>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Do we really need a space program?]]></title>
    <link href="https://www.taskboy.com/2006-02-25-Do_we_really_need_a_space_program_.html"/>
    <published>2006-02-25T00:00:00Z</published>
    <updated>2006-02-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-02-25-Do_we_really_need_a_space_program_.html</id>
    <content type="html"><![CDATA[
<img src="/img/earthview_bonestell.jpg" title="The Craddle">
<p><em>Copyright Bonestell Space Art, used with permission</em></p>


<p>From time to time, I hear friends, politicians, even 
<a href="http://www.bobanddavid.com/david.asp">comedians I like</a> 
dismiss the need for a space program.  The most common argument against
space exploration is "why bother?"  Opponents argue that earth-based 
telescopes (radio and visual), along with a few orbitable telescope platforms 
should be more than enough for the eggheads to get their fix.  Further, 
don't we have a moral obligation to spend those considerable resources of 
NASA on social programs or the homeland security?  Wouldn't that be both 
more practical and more profitable use of our time and money?</p>

<p>At the heart of the argument against space exploration is a profound 
terrestial provencialism that places Earth not only at the center of 
the universe, but reduces the worth of the universe to only what can be
found on this tilted, flattened 
<a href="http://www.abc.net.au/science/news/stories/s122885.htm">6 
sextillion ton</a> mudball, currently the third planet from a middle-aged 
star that floats (for now) in the outer edge of an arm of a 
spiral (<a href="http://antwrp.gsfc.nasa.gov/apod/ap050825.html">barred?</a>) 
galaxy that's part of a supercluster of galaxies for which we don't 
even have a good name yet (n.b. 
<a href="http://www.seds.org/messier/more/local.html">Local Group</a> 
is a label that fails to stimulate the blood).</p>

<p>There are a number of utilitarian arguments I could employ in defense of 
space exploration.  It's true that as we destroy our habitat through 
<a href="http://dieoff.org/page120.htm">"livin' large"</a> 
that learning to live in a hostile environment might be 
useful.  It's true that space exploration has already generated new, 
practical technologies we use every day.  It's also true that federal money 
spent on the space program goes into the pockets of American private business 
(just like military spending, but with a smaller body count).  But all these 
important reasons don't really matter to me that much.  There is a vastly 
more important reason to Look Up.</p>

<p>A government must protect its citizens.  We can debate about what that 
means and what policies are appropriate towards that goal.  But I also 
believe that a government can do more than just the bare minimum.  Together
government and private industries can work to do something quite remarkable: 
change the very character of humanity.  Of all government programs, only
space exploration can do this.</p>

<p>No doubt you'll think this claim grandiose.  How can space exploration 
change us as a species?  Discounting genetic mutations induced by poorly 
shielded astronauts, the change I'm referring to is one of perspective.  Humans 
have, throughout history, considered the universe only in their own local 
contexts.  The result has been fierce territorial warfare, social dominance 
hierarchies and rather merger plans for the future.</p>

<p></p>

<p>Humans, though 
<a href="http://www.lucidcafe.com/library/96feb/darwin.html">related</a> 
to every other terrestrial animal, is uniquely gifted with the capacity to  
change our behavior and our thinking.  Further, we are increasingly unfettered 
by the primary mechanism that shapes all other life on this planet: 
<a href="http://www.simonyi.ox.ac.uk/dawkins/WorldOfDawkins-archive/index.shtml">natural 
selection</a>.  Unlike every other lifeform that we know about, we can decide
our destiny.</p>

<p>As the late Carl Sagan pointed out many times, we are made of starstuff. 
Every atom on this planet Earth was born in star that exploded in the murky 
depths of time.  This isn't mythology.  This isn't belief.  It is, as much 
as anything in science can be called such, fact and a most remarkable one at 
that.  In that some of those same atoms compose each of us today, we can be 
considered sentient starstuff.  Which is a romantic way of saying we are part
of this universe as much as any black hole, sun, or quasar.  We are the 
descendants of those awesome, irradiating engines of gravity.  Shouldn't we 
consider getting to know our roots, in the largest sense of the term?  How 
can we really know ourselves without understanding where we came from?</p>

<p>The probability is that we will one day find that life has arisen
separately on some other world and I suspect, despite some superficial 
differences, that this alien life will be much the same as we.  It will be 
life based on some replicating set of amino acids (perhaps even the same 
acids).  It will have a desire to feed.  It will have a desire to procreate. 
No matter if what we find is a microbe or a 
<a href="http://www.csicop.org/si/9903/silver-lake-serpent.jpg">giant 
balloon predator</a>, it will 
broadly conform to life as we know it.  
I hope I live to see that glorious day when we learn aren't alone or 
special or unique.  That hubris has been exploited by religious and 
political leaders of this planet for far too long.</p>

<p>If an appeal to cosmic geneology isn't sufficient to pursuade you of the 
importance of the space program, allow me to put a fine point on our 
pitiful, parochial understanding of the universe in which we live.  Most 
humans walk at the speed of about 5 km per hour.  The Earth's diameter at the 
equator is about 12,700 km.  Using simple math, it would take the average 
human 2,540 hours to walk that distance (if he could).  That's well over  
three months of walking non-stop with no sleeping.  The nearest non-earth, 
non-manufactured thing in space, the Moon, is about 383,000 km away.  That's
30 times the diameter of the Earth.  If you could walk to the Moon, it would 
take you 7 years of continuous walking (in a space suit) to get there.
Our closest neighbor after the Moon is Mars, which, at its closest, 
is 54,500,000 km away.  I won't bother putting that distance in walking 
terms.</p>

<p></p>

<p>The careful reader will notice that each of the distances cited differ in 
orders of magnitude, even in the context of our closest neighbors in the 
Solar System.  Space is vast and we have little hope of exploring it 
all, but to stop exploring it at now or to do so anemically seems to be the 
height of solipsistic folly.  If we are the only self-aware creatures the 
universe has 
created, we have the moral obligation to understand this creation to the 
best of our ability.  </p>

<p>In 10,000 years of organized human civilization, only the very last 
decades have seen a few, brief day trips to our closest neighbor.  In 
10,000 years of human civilization, we have yet to explore the entire planet 
beneath our feet (although, thanks to space travel, we finally have reliable 
maps of it).</p>

<p>Achieving a hi-tech culture on Earth isn't the end of our voyage.  It's 
the beginning.  Although triremes opened the seas to exploration, travel
and trade to our ancestors, those ancient ships weren't the end of the story;
nor were the ocean going Galleys of the Age of Discovery; nor are the 
primative sub-orbital rockets of today.  The story of discovery continues.</p>

<p>The change in humanity induced by routine space travel that I referred to 
at the beginning of this essay could be as profound as evolving 
<a href="http://www.animalsentience.com/">sentience</a>.
The questions posed by space exploration challenge the very context of how 
we perceive ourselves.  You cannot look down on Earth from space and perceive 
nations, religions, genders or races.  There is only Earth and from a 
distance, it looks just like one of many, many planets in the community we 
call the Universe.</p>

<p>Which is why I included the Bonestell painting at the top of this article. 
With all the local noise, it's easy to get distracted from the Big Picture.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The Amen beat]]></title>
    <link href="https://www.taskboy.com/2006-02-25-The_Amen_beat.html"/>
    <published>2006-02-25T00:00:00Z</published>
    <updated>2006-02-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-02-25-The_Amen_beat.html</id>
    <content type="html"><![CDATA[
<img src="/img/drummer.gif" title="a 1 and a 2â¦">


<p><a href="http://nkhstudio.com/pages/popup_amen.html">Can I get an Amen?</a>
(<a href="amen_web.mov">local mirror</a> [34MB]) is a short 
film mediation on the history of perhaps the most important 
drum sample ever and the implications of assigning, protecting and enforcing 
the copyright of that sample.  Best of all, the 
essay was recorded to an acetate album, which is played back as the film's 
narrative.</p>

<p>The Amen beat will be instantly familiar when you hear it.  I connect this 
beat most strongly with the Powerpuff Girls theme and Bowie's Earthling
album.  Since the sample has been used since the late eighties, you'll have 
your own ideas about it.</p>

<p>For the record, I think that it's high time to use modern, living drummers
to create samples for new music.  There's absolutely nothing wrong with being 
inspired by old recordings and even pinching a bar or three from them.  
I'm all for 
recontextualization of <a href="/music/heavy_water.mp3">audio samples</a>, 
but I think this 6 seconds of drumming has had its fifteen minutes of fame.</p>

<p>Certainly, this film essay is appropriate as "smash-ups" like 
<a href="http://www.q-unit.net/Main.cfm">Q-Unit</a> and 
the <a href="http://www.kleptones.com/">Kleptones</a> are really blurring 
the lines of copyright.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[When fundies attack]]></title>
    <link href="https://www.taskboy.com/2006-02-21-When_fundies_attack.html"/>
    <published>2006-02-21T00:00:00Z</published>
    <updated>2006-02-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-02-21-When_fundies_attack.html</id>
    <content type="html"><![CDATA[
<img src="/img/biker.jpg" title="Gonna learn you some manners, boy!">


<p>At first, I thought the following article was a piece of right-wing 
propaganda about lefties not supporting the troops. 
And then I read more about the protesters.  And then I laughed.  It's nice
to see that conservatives are not a monolithic horde of dittoheads.  There are
some true freaks in the crowd too.</p>

<p>There's hope for the Mushyheaded Middle yet.</p>

<p>From the <a href="http://www.armytimes.com/story.php?f=1-292925-1546852.php">Associated Press</a>:</p>

<p><blockquote>
<p>Â«FORT CAMPBELL, Ky. Wearing leather chaps and vests covered in 
military patches, a band of motorcyclists rolls from one soldier's funeral 
to another in hopes their respectful cheers and revving engines will drown out 
the insults of protesters.
<p>The motorcycle club members calling themselves Patriot Guard Riders are 
trying to shield mourners from cruel jeers by adherents of a tiny 
fundamentalist church who picket military funerals to reflect their belief 
that U.S. combat deaths are a sign God is punishing the United States for harboring homosexuals. Some protesters' signs said, "Thank God for IEDs," the 
improvised explosive devices, or homemade bombs, that kill many U.S. soldiers.
Â»
</blockquote></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[More dating anti-patterns]]></title>
    <link href="https://www.taskboy.com/2006-02-18-More_dating_anti-patterns.html"/>
    <published>2006-02-18T00:00:00Z</published>
    <updated>2006-02-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-02-18-More_dating_anti-patterns.html</id>
    <content type="html"><![CDATA[
<img src="/img/tiger_grrl.gif" title="My other cat is lion!">


<p>Frequently, I find that my funny bone is at odds with my libido.  This goes 
a long way to explaining the rather extended stretch of "singlehood" I've 
endured.  Still, you have to prioritize in life.  If I have to choose
between having my cake and eating it too, I'll opt for smushing someone's face
into the pastry.</p>

<p>That also may account for the bachelorhood thing.</p>

<p>What follows is a message I sent to the owner of the above picture, who 
chose this to the first image potential suitors would see of her.</p>

<p><blockquote></p>

<p>Subject: Congratulations!</p>

<p>Body:</p>

<p><p>Howdy,</p>

<p><p>Of all the pictures I've seen in personal ads across many web sites, 
yours wins the impressive distinction of best picture posed with the 
deadliest live animal.</p>

<p><p>I, as a former cat owner, would be suspicious of the rather meager chain 
restraining that tiger. It does appear that you found the good side of his 
nature though.</p>

<p><p>One other dubious point of commonality between us is a fondness for 
board games. Through very little fault of my own, I cohosted a show on 
Somerville cable access about non-electronic games called The Gameshelf. 
There's a whole world of new games out there beyond the classics of monopoly, 
risk, chess, and scrabble.</p>

<p><p>In any case, take care.</p>

<p><p>âJoe
</blockquote>  </p>

<p>In so many ways, I'm really, really awesome.  And yet, in exactly the 
same ways, I'm an idiot too.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Recipe: Stir Fry sauce]]></title>
    <link href="https://www.taskboy.com/2006-02-18-Recipe__Stir_Fry_sauce.html"/>
    <published>2006-02-18T00:00:00Z</published>
    <updated>2006-02-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-02-18-Recipe__Stir_Fry_sauce.html</id>
    <content type="html"><![CDATA[
<img src="/img/hoisin.gif" title="Tasty!">


<p>Here's a recipe for a pretty simple, yet tasty stir fry sauce.  Because 
the key is to reduce the sauce, you should make this up before cooking up 
the meat and veggies of the main dish.</p>

<p>Ingredients:</p>

<ul>
  <li>soy sauce (about 4 oz.)
  <li>water (about 6 oz.)
  <li>garlic (4-6 cloves)
  <li>fresh ginger (about the same mass as the garlic)
  <li>brown sugar (2 oz.) 
  <li>corn starch slurry (1 tsp of c.s.)
  <li>hoisin sauce (1 tbsp)
</ul>

<p>Preparation:</p>

<p>Peel and dice the garlic and ginger.  You don't need too fine a 
dice as you'll be straining this out of the final sauce.  In a sauce 
pan over low heat, sweat the garlic and ginger together for about 
five to ten minutes.  Add the soy sauce, water, hoisin sauce and sugar 
to the pan.  Bring to a boil for 4 minutes.  Add the corn starch slurry
(which is just cold water and corn starched mixed together thoroughly).
Whisk or stir vigorously to thicken.  Let the mixure simmer on a low 
boil until it's the consistency of maple syrup.  Strain garlic and 
ginger bits out of the sauce and store in the fridge until Judgement
Day.</p>

<p>I promise this simple sauce made with fresh ingredients will beat 
anything else on your local mega-mart's shelves.  Lord knows, that's 
not a tall order in my neighborhood.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Music can get you pretty messed up]]></title>
    <link href="https://www.taskboy.com/2006-02-17-Music_can_get_you_pretty_messed_up.html"/>
    <published>2006-02-17T00:00:00Z</published>
    <updated>2006-02-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-02-17-Music_can_get_you_pretty_messed_up.html</id>
    <content type="html"><![CDATA[
<img src="/img/pia_zadora.gif" title="Bigger than life hair">


<p>My adolescence was in the 1980s.  Those that tell me the 80s were 
cool clearly did not live through them.  As evidence of the brutal 
psychological torment inflicted on me and others of my generation, I submit
this <a href="http://www.youtube.com/watch?v=NVUUCdZA_EI&search=synthesizer">shocking archive footage</a>.  Music, in the wrong hands on the wrong drugs,
can become a weapon of mass destruction (and suckitude).</p>

<p>At least Stevie Wonder never saw the disaster that unfolded around him.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[A return to computer normalcy]]></title>
    <link href="https://www.taskboy.com/2006-02-16-A_return_to_computer_normalcy.html"/>
    <published>2006-02-16T00:00:00Z</published>
    <updated>2006-02-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-02-16-A_return_to_computer_normalcy.html</id>
    <content type="html"><![CDATA[
<img src="/img/data_center_old.gif" title="So advanced, it's retro">


<p>After a good deal of hardware problems, I believe I have stabilize my 
digital infrastructure at home.  Using the very excellent True Image from 
Acronis, I imaged the new and failing Samsung hard drive in my XP box.  
I then restored that image to a new and not failing Western Digital disk.
The machine booted without incident and so I could put by living room back 
into order, instead of having look like a computer workbench.</p>

<p>I also restructured the "computer lab" in my bedroom so that it is neater,
cleaner and properly wired.  This includes some clever reworking of two 
machines running VMWare ESX 2.X and sharing two small SCSI disks across 
the same SCSI ribbon.  This simulates a SAN very nicely for me.  The disks
run off a hacked power supply unit.  It's all very sketchy, but it works.</p>

<p>Also, on permanent loan from Leostream is an old IBM Netfinity server.
After the current project is done, I may attempt to install ESX 3.0 onto 
it.</p>

<p>To recap: my XP box in the living is now stable.  It's my digital media
convergence box that is my TV, DVD player and stereo.  My bedroom lab 
hosts both my digital audio workstation (Sonar 4) and my machines for 
Leostream development.</p>

<p>Of course, my Linux soft-RAID1 box is in the hall closet.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Andreas Katsulas dead at 59]]></title>
    <link href="https://www.taskboy.com/2006-02-15-Andreas_Katsulas_dead_at_59.html"/>
    <published>2006-02-15T00:00:00Z</published>
    <updated>2006-02-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-02-15-Andreas_Katsulas_dead_at_59.html</id>
    <content type="html"><![CDATA[
<img src="/img/gkar.gif" title="Whadda lookin at, punk?">


<p>Character actor Andreas Katsulas, most remembered by me for playing G'Kar
on Babylon 5, <a href="http://www.scifi.com/scifiwire/index.php?category=1&id=34628">has died of lung cancer</a>.  
From the numerous references to 
his smoking habit made by JMS on the B5 DVDs, I'm not surprised at the cause 
of death.  That doesn't lessen the impact though.  Andreas was always 
engaging to watch in whatever show he was in.</p>

<p>Requiescat in pace.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[new album: Lurid]]></title>
    <link href="https://www.taskboy.com/2006-02-04-new_album__Lurid.html"/>
    <published>2006-02-04T00:00:00Z</published>
    <updated>2006-02-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-02-04-new_album__Lurid.html</id>
    <content type="html"><![CDATA[
<img src="/img/lurid.gif" title="a mushroom cloud of rock">


<p>Check out the new album, called <a href="/music/#Lurid">Lurid</a>, in 
taskboy's music section.  It took over three years from the start of tracking
the opening title <a href="/music/01_rusted_gunnels_2006.mp3">Rusted Gunnels</a> to get to the final mix.  Whew!  Special
thanks to Nate Patwardhan for lending me all of his formidable music talent
and use of his home studio.  Also, Ira Schwartz, who drums on "Rusted Gunnels,"
has become my personnal percussion savior.</p>

<p>I think there's a little something for every one on this collection.</p>

<p>It's true what they say: art is never finished, only abandoned.</p>

<p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[today's new word: heteroflexible]]></title>
    <link href="https://www.taskboy.com/2006-02-01-today_s_new_word__heteroflexible.html"/>
    <published>2006-02-01T00:00:00Z</published>
    <updated>2006-02-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-02-01-today_s_new_word__heteroflexible.html</id>
    <content type="html"><![CDATA[
<img src="/img/dargo.gif" title="Not getting any tonight">


<p>From the I'm getting too old for neologisms department comes this 
bit of carnal knowledge from <a href="http://newyorkmetro.com/news/features/15589/index2.html">New York Magazine</a>: (via <a href="http://use.perl.org/~torgox/journal">TorgoX</a>)</p>

<p></p>

<blockquote>
Â«"The interesting kids kind of gravitate towards each other," 
Elle had explained earlier. "A lot of them are heteroflexible or bisexual 
or gay. And what happens is, like, we're all just really comfortable around 
each other."Â»
</blockquote>

<p>I'm pretty sure that my Generation X will be remember most as that 
generation that fell between the sex-crazied 60's and the sex-crazied 90's, who
spent their formative years in the fearful shadow of AIDS and Nancy Reagan.</p>

<p>God. Damn. It.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Classless objects and other chimera]]></title>
    <link href="https://www.taskboy.com/2006-01-26-Classless_objects_and_other_chimera.html"/>
    <published>2006-01-26T00:00:00Z</published>
    <updated>2006-01-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-01-26-Classless_objects_and_other_chimera.html</id>
    <content type="html"><![CDATA[
<img src="/img/assless.gif" title="A bit drafty for me">


<p>Recently, I had to wade deeper into the murky, fetid waters of 
JavaScript.  Like an encounter with a cheap hooker, a session coding with 
JavaScript makes me want to shower and weep.  What I had to struggle with
on this occasion was JavaScript's notion of associative arrays, which 
are implemented as Objects.  All you Perler, Pythons and Rubyists 
out there, hold on!  It's not that associative arrays are a type of object 
in JavaScript, it's 
that Objects are associative arrays (have I BLOWN your MIND yet, 
Java</a>?).</p>

<p>Normally languages which provide associative arrays also build in
routines to list the keys, the values or both from an instance of these
variables.  Not JavaScript.  It's true that you can iterate through an Object's
attributes with a <code>for/in</code> loop, but that's a bit like using a 
hammer to repair a watch, which is an analogy that also holds for parsing 
query strings in URLs with JS. What a nightmare.  It's always 1996 in 
JavaScript's world.</p>

<p>Weirded out yet? Wait!  I've held the most offensive 
bit of JavaScript classes for last.  In nearly every other God-fearing 
lanaguage I've used, Objects are declared.  That is, the object's attributes
and methods are defined (usually) before an instance of that class can be
used.  So JavaScript, whose name clings to the fame of that paragon of 
OO-design Java, should have some kind of class declaration, right?  I mean,
declaring a class would make inheritence and object inspection easier and 
thus leverage the the major benefit of Object Oriented (OO) programming, 
right?  Therefore, JS must have class declarations.  But sadly, this isn't 
the case.  JavaScript sports Classless objects.  Objects in JS are defined
at run time procedurally, in what seems to be an attempt to make the brains 
of OO zealots melt.</p>

<p>Classes without an inheritence mechanism are like pants without 
bottoms and only David Lee Roth could get away with 
wearing <a href="http://www.rotharmy.com/gallery/Classic_Van_Halen_Pictures/PN016940.jpg">assless pants</a>.</p>

<p>How does JavaScript allow users to define their own classes?  You 
make a generic Object and start assigning methods and attributes to it, 
as if it were a dictionary, which it really is!  How does object inheritence 
work?  Not very well, but you can try assigning to the pseudo-attribute 
.prototype.  Or not.  Apparently, prototype is sort of busted.</p>

<p>Another consequence of not having classes is that you can never find out 
what kind of Object you're dealing.  That is, you can't ask an object,
"what class do you belong to, little fella?"  The confused bastard will
answer "I'm an Object Object," which sounds a little desperate â like the 
JS object really wants you to believe it's a first class object, which
it isn't.  This reminds me of a common folklore tenet in which all things 
have a Truename that, if uttered, will give the speaker power over that thing.
Are JS objects superstitious?  It's true you can "override" (or overwrite) 
the <code>.toString</code> method with something about the class name, but 
that's hackiferic.</p>

<p>Anyway, why bother with class heirarchies?  Most JS scripts last only a 
short while and have so limited a
scope.  Then again, why bother pretending to have objects at all?  Let's 
call a hash "a hash" and be done with it.</p>

<p>Classless classes are the assless pants of the Internet.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Coffee and dog links]]></title>
    <link href="https://www.taskboy.com/2006-01-19-Coffee_and_dog_links.html"/>
    <published>2006-01-19T00:00:00Z</published>
    <updated>2006-01-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-01-19-Coffee_and_dog_links.html</id>
    <content type="html"><![CDATA[
<img src="/img/sausage.gif" title="Tasty!">


<p><p>As I was walking around my 'hood today, a fellow was walking his dog.  It's
the Fens; that sort of thing happens a lot.  Like most urban areas, Boston 
has some pretty clear ordinances about cleaning up after your pet's 
defecation.  It's not uncommon to see an owner of a dog carrying 
a plastic bag of dog poop in one hand and being dragging along by the dog 
leash in the other.  However, there was an additional element in the offing 
today that led to tragedy: the fairly cold wintry weather of the Northeast.</p>

<p>As a guard against the cold, this fellow (and many others, I noticed) had 
a warm cup a' joe with him.  What could possibly go wrong?</p>

<p>As I passed this fellow, he had just finished picking up after his dog, like
a good citizen.  However, he had to hold three things in his two hands 
 simultaneously: the coffee, the dog leash and the poop.  For reasons best 
left to the reader's mind, he chose to allocate one hand 
solely to the task of managing the dog leash and to the other hand 
fell the twin responsibilities 
of holding the coffee and the bag of poop!</p>

<p>Needless to say, my delicate and refined sensibilities were bruised.</p>

<p>I can only think of one take away from this: should you find yourself in 
a similar situation, consider letting the dog run wildly into traffic or not 
feeding the animal until spring.  My Solomon-like wisdom is presented here
free of charge.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Pig wrestlin' on MLK day]]></title>
    <link href="https://www.taskboy.com/2006-01-17-Pig_wrestlin&apos;_on_MLK_day.html"/>
    <published>2006-01-17T00:00:00Z</published>
    <updated>2006-01-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-01-17-Pig_wrestlin&apos;_on_MLK_day.html</id>
    <content type="html"><![CDATA[
<img src="/img/donkey.gif" title="Jackasses, famous and otherwise">


<p><p><a href="http://www.nydailynews.com/news/politics/story/383419p-325495c.html">Senator Hillary Clinton</a> (D. NY) said, at a 
Baptist church on MLK day that:</p>

<blockquote>
&laquo;"when you look at the way the House of Representatives has been run, 
it has been run like a plantation - and you know what I am 
talking about."&raquo;
</blockquote>

<p>While I share her frustration with the Republican controlled House, I'm 
disappointed she chose to invoke this painful ghost of U.S. slavery in 
a misguided analogy of current politics.  On plantations, slaves were subjected
to subhuman cruelty and degradation.  To suggest that the Republicans are
treating the Dems even remotely like this is insulting, inaccurate and 
distastful.  Does pandering get lower this this?</p>

<p>The Democrats seem to continually pick minority positions on important 
issues and grandstand on stupid things (the bruhaha over 
<a href="http://kotaku.com/gaming/crime/hillary-clinton-attacks-grand-theft-auto-037463.php">GTA</a> 
is a good example of this).  American Democracy favors the majority party.  
The Dems need to get in the damn race and stop blaming the Republicans 
for understanding civics.</p>

<p>Say, isn't Karl Rove looking for some new friends now?</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Volity fun]]></title>
    <link href="https://www.taskboy.com/2006-01-12-Volity_fun.html"/>
    <published>2006-01-12T00:00:00Z</published>
    <updated>2006-01-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-01-12-Volity_fun.html</id>
    <content type="html"><![CDATA[
<a href="/img/go-crush.gif"><img src="/img/go-crush.gif" title="Victory over bots"></a>


<p><a href="http://www.volity.com/">Volity</a> is a p2p gaming system for 
computer versions of board games.  This project is fairly new, but there 
are several games already to choose from including Barsoomite Go, which 
is like traditional Go, but played with Icehouse pieces.   The screenshot
above shows my crushing defeat of a hapless go-bot.</p>

<p>I no longer fear the coming of robots.  Their simple alpha-omega pruning 
AI is no match for my madd skillz.</p>

<p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Chuck Norris is…]]></title>
    <link href="https://www.taskboy.com/2006-01-11-Chuck_Norris_is.html"/>
    <published>2006-01-11T00:00:00Z</published>
    <updated>2006-01-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-01-11-Chuck_Norris_is.html</id>
    <content type="html"><![CDATA[<p>There are many facts about 
 <a href="http://www.chucknorrisfacts.com/">Chuck Norris</a> you may 
not have known. Which of the following is true?</p>

<p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Leave it Bush – The Reckoning]]></title>
    <link href="https://www.taskboy.com/2006-01-11-Leave_it_Bush_--_The_Reckoning.html"/>
    <published>2006-01-11T00:00:00Z</published>
    <updated>2006-01-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-01-11-Leave_it_Bush_--_The_Reckoning.html</id>
    <content type="html"><![CDATA[
<img src="/img/leavittobush.gif" title="I'm looking at you, George">


<p><p>It's new installment of "Leave it Bush".  It's got both Chris Walken and Sam
Jackson.  What's not to like?
<p><a href="http://www.thetoiletonline.com/leaveit3.htm">Watch it.</a></p>

<p>Later, you too can buy some horse pants.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[delicious ego]]></title>
    <link href="https://www.taskboy.com/2006-01-10-delicious_ego.html"/>
    <published>2006-01-10T00:00:00Z</published>
    <updated>2006-01-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-01-10-delicious_ego.html</id>
    <content type="html"><![CDATA[
<img src="/img/ego.gif" title="a massive swelling">


<p>Ego surfing, in which you try to find other online references to yourself,
is a time-honored tradition of the net that became ubiquitous with web search 
engines.  I suspect that ancient proto-netizens used to look through archives
of newsgroups to find themselves too, but the fossil record is unclear on this
point.  In any case, I'd like to push the start of the art in ego-surfing to 
the new frontier of social bookmarking.</p>

<p>Some of you will already know about 
<a href="http://del.icio.us/">del.icio.us</a>, the clever site that lets
you share your bookmarks with other people.  One of the interesting features
of the site is that it tells you how many other people have bookmarked the
same URL.  In this way, you can get a sense for the general popularity of 
a site.  For instance, 3708 people have bookmarked google.com (for reasons
that are unclear to me).  Slashdot.org has been bookmarked 13,473 times. 
The <a href="http://www.rtsoft.com/fq/">Funeral Quest product page</a> has
been noted by only three people, including myself.</p>

<p>In my copious spare time, I began to wonder if anything I've written has 
been noted by anyone (outside of family).  Surprisingly, the answer is yes.
Here's how del.icio.us users remember me:</p>

<ol>
   <li><a href="http://use.perl.org/~jjohn/journal/20761">why PHP 0wnz 
        mod_perl</a>: 15 other people
   <li><a href="http://use.perl.org/~jjohn/journal/21939?from=rss">Journal 
       of jjohn: Snow Fudge, a recipe</a>: 1 person
   <li><a href="http://use.perl.org/~jjohn/journal/24492">Intelligent 
     Design critique</a>: 1 person
   <li><a href="http://use.perl.org/~jjohn/journal/14536">Markov Blogger 
        code</a>: 1person 
</ol>

<p>According to del.icio.us, I'm best remembered for slagging Perl, ID 
and blogging.  Super!  I'm pretty happy that someone found my
fudge recipe interesting enough to remember.</p>

<p>There's a lot of money to be made feeding people's egos.  Think of social 
bookmarking sites like del.icio.us and social networking sites like 
<a href="http://www.orkut.com/">orkut</a> and 
<a href="http://www.friendster.com/">friendster</a> and more generic 
hangouts like <a href="http://www.myspace.com/">myspace</a>.  Clearly, 
there's some kind of business opportunity in ego massaging.</p>

<p>Must remember that next time I talk to VCs.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[tic tac toe as a client/server flash app]]></title>
    <link href="https://www.taskboy.com/2006-01-05-tic_tac_toe_as_a_client_server_flash_app.html"/>
    <published>2006-01-05T00:00:00Z</published>
    <updated>2006-01-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-01-05-tic_tac_toe_as_a_client_server_flash_app.html</id>
    <content type="html"><![CDATA[
<img src="/img/forge.gif" title="slaving over the keyboard in a loincloth">



function NewK () {
    var my_html = "Tic Tacky<p>You can stop playing now.</p>";

  w = window.open('','INM','scrollbars=no,menubar=no,height=600,width=720,resizable=yes,toolbar=no,location=no');

  w.document.write(my_html); 
}


<p>I've been working on building a new game since before last Christmas.
I'm not ready to announce it yet, but I think it will be simpler to learn 
(and build) than State Secrets proved to be.  As a warm-up to the real thing, 
I wanted to acquire the Flash skills that I think I'll need for game, which 
I think will have a flash interface that connects to a PHP script (a la, 
<a href="http://www.rtsoft.com/fq/">Funeral Quest</a>.</p>

<p>Surprisingly, I think that in just a few days of watching online tutorials
about Flash and some reading of the docs, that I've got the core skills that 
I need.  Flash is a weird environment to work in, but I appreciate that 
Macromedia has hidden away threads and forking from me.  In any case, 
I have created this very easy-to-defeat 
Tic Tac Toe game</a> in flash.  The client 
doesn't store any game state information, but uses the super-weird LoadVars
class to make RPC calls to a PHP script which plays like a drunk co-ed.  This
is a technology exhibition rather than a very enjoyable toy.  You may 
download the <a href="/projects/ttt/TicTacToe.zip">amateur-ish flash source 
code here</a>.  There are problems on the server-side that I don't care 
to fix.  Sessions aren't properly implemented either.  Good thing the price
is right!</p>

<p>Those suffering from low self-esteem will appreciate the near-impossibility
of losing this game.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Flashy]]></title>
    <link href="https://www.taskboy.com/2006-01-04-Flashy.html"/>
    <published>2006-01-04T00:00:00Z</published>
    <updated>2006-01-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-01-04-Flashy.html</id>
    <content type="html"><![CDATA[
<img src="/img/im_going_crazy.jpg" title="good grooming leads to success">



function NewJ () {
    var my_html = "No Tears<p>Rock on!</p>";

  w = window.open('','INM','scrollbars=no,menubar=no,height=400,width=520,resizable=yes,toolbar=no,location=no');

  w.document.write(my_html); 
}


<p>I've begun again to learn how to use Macromedia's Flash.  It's hard for 
me to pick up because the tool that authors flash documents uses an 
animator's paradigm, which is very unfamiliar to me.  However, I did 
manage to put <a>this crappy demo</a> 
together of a bouncing ball married to a 
crappy MIDI cover of scarface's "no tears."</p>

<p>By God, if that's not entertaining, I don't know what is!</p>

<p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Plans for aught six]]></title>
    <link href="https://www.taskboy.com/2006-01-02-Plans_for_aught_six.html"/>
    <published>2006-01-02T00:00:00Z</published>
    <updated>2006-01-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-01-02-Plans_for_aught_six.html</id>
    <content type="html"><![CDATA[
<img src="/img/newyears.gif" title="Are we having fun yet?">


<p>Like many adult Americans, I believe the greatest gift of the holidays is their 
limited duration.  I spent this New Year's at Dartmouth college with 
<a href="http://zorky.blogspot.com/">Zorknapp</a> and his wife at Pizza Hut.
It was a destination holiday.</p>

<p>Next year promises to be very interesting and full of existentialist 
terror.  I expect Leostream to build aggressively on last year's business.  
I'll be recording at <a href="http://noopy.org/">Nate's</a> more.  I'll 
certainly be programming many wonderful things.  I'll need to lose some
weight again.</p>

<p>And who knows what else this year holds?  I'm not one for resolutions, but
a certainly amount of planning is required in life.  Looking ahead, aught six
should be eventful.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Sleep paralysis]]></title>
    <link href="https://www.taskboy.com/2006-01-02-Sleep_paralysis.html"/>
    <published>2006-01-02T00:00:00Z</published>
    <updated>2006-01-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-01-02-Sleep_paralysis.html</id>
    <content type="html"><![CDATA[
<img src="/img/grim_reaper.gif" title="Death, robbed">


<p>I have always had weird dreams.  Lately, I've been sleeping heavily, but 
awaking less than refreshed.  My dreams have also been restless.  Last night, 
I had a dream that I was chasing an annoying roommate around our house (note:
I have neither a roommate nor a house in real life).  At some point, I was 
confronted by a towering robbed figure that filled me with dread.  It would 
not speak, but still it menaced me.  I tried screaming, I think, but could 
not.  I tried to wake up, but couldn't.  I tried screaming again, but may 
have only uttered a low moan.  It was then I realized I was partly awake.
I shook off my sleep paralysis and noticed the new bathroom my mom had given 
me for Christmas hanging off the door of my closet.</p>

<p>Clearly, the Aliens are responsible for this incident.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[commafy]]></title>
    <link href="https://www.taskboy.com/2006-01-02-commafy.html"/>
    <published>2006-01-02T00:00:00Z</published>
    <updated>2006-01-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2006-01-02-commafy.html</id>
    <content type="html"><![CDATA[
<img src="/img/camel.gif" title="perl tip">


<p>Perl offers many ways to commafy a number.  That is, insert commas 
every three number for integers larger than 999.  Here is my commafy 
 routine:</p>

<p>
sub commafy {
  my $num = shift;
  my $new = "";
  while ($num =~ s/(?&lt;=d)(d{3})$//g) {
    $new = ",$1$new";
  }
  $new = "$num$new";
  return $new;
}
</p>

<p>It works backwards from right to the left.  It uses the "new" look behind 
assertion in the regex.  Works fine in Perl 5.8, and I think Perl 5.6.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[intel is on The List]]></title>
    <link href="https://www.taskboy.com/2005-12-30-intel_is_on_The_List.html"/>
    <published>2005-12-30T00:00:00Z</published>
    <updated>2005-12-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-12-30-intel_is_on_The_List.html</id>
    <content type="html"><![CDATA[
<img src="/img/alton.gif" title="Alton Brown neither knows about this web site nor endorses its content.  He does, however, still rock.">


<p>I assembled my new P4 2.4Ghz machine yesterday only to find that the 
machine crashes.  It starts to boot XP, but before going into graphical 
mode, it reboots.  Started the machine in safe mode, and it just shuts off.  
Tried booting the machine with the XP install disk; crash.  With W2K3EE; crash.
With linux; boots into X, then crashes.  With Win98; crash.</p>

<p>OK.  I get the hint.</p>

<p>I call Intel tech support, who are both very foreign, very nice and very 
competent (a refreshing change).  They explain that intel does not test 
chips reported as DOA, but that it's up
to the customer to prove the chip is defective.  Oddly enough, 
their biggest competitor does test chips reported as defective and 
replaces them as needed.  I know this to be the case because my buddy 
Zorknapp had just such a defective AMD chip.  His experience with ADM's 
support system was much better than mine with intel. </p>

<p>ADM, knowing how a CPU should behave and what the expected voltage outputs
should be for given inputs, can very quickly and efficiently determine if 
a CPU is faulty.  Intel expects me to drop this P4 into another P4 box (which 
I don't have) and see if the problem persists.  This is a good test for a 
field engineer, but a bad test for a large chip manufacturer.  Intel surely
has the equipment that AMD has.  They simply refuse to use it.</p>

<p>Intel chips are much more expensive than one's from AMD.  Intel is a lot
wealthier than AMD.  Intel should test their defective chips.  How gallingly
aggrogant of them not to.  How unpardonably parsimonious of them.</p>

<p>Intel, you have not only lost this customer, but all those I advise on 
computer purchases.  Hold on to that cash, tightwads.  You should be ashamed 
of yourselves.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[New compy]]></title>
    <link href="https://www.taskboy.com/2005-12-26-New_compy.html"/>
    <published>2005-12-26T00:00:00Z</published>
    <updated>2005-12-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-12-26-New_compy.html</id>
    <content type="html"><![CDATA[
<img src="/img/compy.gif" class="insert">


<p>Well, the Dell Dimension 4400 is dead and I've ordered a replacement 
from <a href="http://www.newegg.com/">newegg</a>.  
I'll reuse the storage systems from the Dell and put them 
into a P4 2.4Gz prescott PC Chips mobo (boo) with 1GB of RAM.  Amazing, 
the CPU, mobo, RAM and case with shipping is less than $300.  Wow.</p>

<p>I'll stuff the Hauppauge TV tuner card in the new box.  It will be a 
general terminal and will have more than enough horsepower for the games 
I play.</p>

<p>Thanks to <a href="http://use.perl.org/~torgox/journal">TorgoX</a>, I've
been listening to the Kleptones' <a href="http://www.kleptones.com/pages/downloads_hiphopera.html">Night at the Hip Hopera</a>.  Oh my!</p>

<p>Let's do this New Year right!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Marking up D&amp;D Gazetteer 13]]></title>
    <link href="https://www.taskboy.com/2005-12-24-Marking_up_D&amp;D_Gazetteer_13.html"/>
    <published>2005-12-24T00:00:00Z</published>
    <updated>2005-12-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-12-24-Marking_up_D&amp;D_Gazetteer_13.html</id>
    <content type="html"><![CDATA[
<img src="/img/gaz13.JPG" title="Aw! You killed my dwarf!" class="insert">


<p>For reasons that aren't quite clear, I decided to spit-shine the plain 
text manuscript that <a href="http://www.wizards.com/default.asp?x=dnd/dnd/downloads">WotC makes available</a> of Gazetteer 13: The Shadow Elves.
You can <a href="/writing/gaz13.html">read the results</a> for yourself.
</p>

<p>Since your mind is likely as boggled by this as mine, here's a mini-FAQ.</p>

<p></p>

<p>Question: Isn't D&D a little fey?</p>

<p>Answer:I find the D&D fantasy world that was defined in the 
late eighties to be interesting.  It's full of empires at war, maps, 
useless statistics, superfluous rules and ill-conceived refinitions of 
standard character classes.  It also is full the politics and intrigue, 
which is what really interests me.  Over the course of many publications,
TSR/Wizards of the Coast expanded and refined this world and on the whole, 
did an effective job at making this make-believe world engaging.</p>

<p>I wrote a little perl script to add in the HTML paragraph mark and 
also translate a little of the obvious markup, like the editor comments 
and italics.  The rest, I did manually, especially the TOC.  The CSS
markup is light and should render reasonably well in older browsers.</p>

<p>It seems that I'm not the only one who 
<a href="http://pandius.com/index.html">remembers this world fondly</a>.</p>

<p>Q: Yeah, but isn't D&D a bit, you know, fancy?</p>

<p><p>A: While I agree that the name "shadow elves" is a bit too 
trite and cliche, their background is less so.  Frankly, I had written off
this gazetteer until I read the manuscript (after first reading 
  GAZ5: Alfheim).<p></p>

<p>On the most basic level, these critters are a sort of lost people who long 
ago used caverns as a sort of fallout shelter from a world cataclysm.  They, 
and their estranged, forrest-dwelling brethen in Alfheim (also refuges), had 
a brief war in which the shadow elves were forced back into their caves.  For 
gaming purposes, that's more than enough grist for the scenario mill.</p>

<p>More interestingly, the patron Immortal of the shadow elves is a survivor
of storied Blackmoor.  This is the first time I've read that anyone got out
of that Atlantis-like city.</p>

<p>A careful reader of Tolkien will see a LotR and Hobbit influence.  In 
the Gazetteer's defense, I commend the authors of these works for making 
their fantasy realms distinct from the source material.  It should be 
noted that many of the realms are based on real human history and places, 
including ancient Egypt, ancient Arabia, the Steppes of Asia and even 
pre-European Native American cultures.  While I wouldn't go as far as to 
call these gazetteers educational, I would say that real historical 
influences are there if you know what to look for.</p>

<p>As for the suitability of this suppliment for gaming, I cannot say and 
am not interested enough to find out.</p>

<p>Q: Ok, I don't think you're hearing me: D&D is for 
retardo-gaylords!</p>

<p>A: I guess what motivated me to mark up this document was that the plain 
ASCII file wasn't easy enough to read and scan.  This isn't the kind of 
manuscript one reads from start to finish.  It lends itself more to a 
random access style of scanning, good for when you want to nod off to sleep
without getting to involved in a novel.</p>

<p>Q:  Say there, Sally Sissypants.  What say you to me and a couple 
of my friends coming over to your house and braining you senseless for a 
while?</p>

<p>A: I don't plan to continue working on this GAZ13 page.  It will be there 
for whoever finds it useful.  I suspect WotC or their parent company Hasbro 
will eventually sent me a cease and desist.  However, I hope that they would 
consider merely taking it and posting it on their site.  I'm not trying to 
make money from their intellectual property.</p>

<p></p>

<p>I think that should clear up any confusion you might have.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Dude, you're getting a Dell-inquent]]></title>
    <link href="https://www.taskboy.com/2005-12-21-Dude,_you&apos;re_getting_a_Dell-inquent.html"/>
    <published>2005-12-21T00:00:00Z</published>
    <updated>2005-12-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-12-21-Dude,_you&apos;re_getting_a_Dell-inquent.html</id>
    <content type="html"><![CDATA[
<img src="http://adweek.blogs.com/adfreak/images/delldude1_1.jpg">


<p>My Dell XP box is not booting, even after rebuilding the box.  
It barely gets past the POST and then hangs.  A coworker cleverly suggested 
that the power supply may be hosed.  I was thinking the problem might be in 
the DIMMs.  I frequently forget that power supplies die.  I have an old 
240V Dell power supply that I'll use for testing.  Dell apparently uses 
custom PSUs with non-standard wiring for vendor lock-in.  Boo.</p>

<p>They probably got a deal on them from the supplier.</p>

<p>I'm nearly convinced to turn all of my computers into fish tanks, door 
stoppers and <a href="http://www.sixdifferentways.com/gallery/becg/rentals_001">mod furniture</a>.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Open letter to Bill Shatner]]></title>
    <link href="https://www.taskboy.com/2005-12-16-Open_letter_to_Bill_Shatner.html"/>
    <published>2005-12-16T00:00:00Z</published>
    <updated>2005-12-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-12-16-Open_letter_to_Bill_Shatner.html</id>
    <content type="html"><![CDATA[
<img src="/img/shatner.gif">


<p>Dear Bill,</p>

<p>Your recent musical outing with Ben Folds, entitled Has Been, is 
a positive delight.  I say this without irony.  Honest prose mixed with 
phat beats propelled hip hop to dizzying heights in the 80's and 90's, so 
it should surprise no one that this old magic worked again.  I can't 
listen to Common People without thinking of my personal whipping 
boy, Paris Hilton.  The genuine horror expressed in What have 
you done is moving and unnerving.  Who knew you could do gospel?</p>

<p>This is a the kind of music I wish I could make.  It's part crank, part 
 neutrotic.  Can it be that you've only begun to reach the height of your 
career?</p>

<p>Keep on rockin'.</p>

<p>Your pal, Joe</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Never talk about politicals, sex or religion at dinner]]></title>
    <link href="https://www.taskboy.com/2005-12-15-Never_talk_about_politicals,_sex_or_religion_at_dinner.html"/>
    <published>2005-12-15T00:00:00Z</published>
    <updated>2005-12-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-12-15-Never_talk_about_politicals,_sex_or_religion_at_dinner.html</id>
    <content type="html"><![CDATA[
<img src="/img/adam_and_eve.gif">


<p>(I wrote this before learning about <a href="http://www.npr.org/templates/story/story.php?storyId=5052156">Bart Ehrman's interview on NPR</a>.  Weird.)</p>

<p>This is a musing on those that take a strict constructionist view 
of Christianity and believe that their version of the Bible is the
literal truth of universal history.  It is my belief that literalist 
Christains are in the minority and that the bulk of this group belong to one 
of the Protestent branches (something that can also be said my family).</p>

<p></p>

<p>As an opening salvo, I'd like to dismiss the notion that because of the 
group authorship of the Bible and many centuries it took by culturally 
distinct people to complete it, somehow this would impeded the manuscript 
from delivering a cogent, self-consistent unified vision of history 
and theology.  This is just so much piffle.  Was it not open source advocate 
Eric Raymond who wrote "with enough eyes, all bugs are shallow?"  I say, 
the more cooks, the merrier.  Further, I'd like to point out that the 
numerous translations, editions and revisions that the Bible has gone 
through before it was ever printed in English have had no impact on the 
veracity or integrity of the manuscript.  Thankfully, no copying errors 
occurred during that process.  All the ancient Hewbrew, with its connotations 
and cultural references, was faithfully reproduced in ancient Greek and then 
again in Latin.  Finally, all the books that were excluded by the Vatican 
during the Council of Trent weren't important.  So, from an epistemological 
perspective, there's nothing to impune the credibility of The Bible as the 
source literal truth.</p>

<p>mmmâ¦Then again, maybe all of those points undermine the 
Bible's credibility after all.  Irony is hard!</p>

<p>A literalist interpretation of the Bible leaves so much of what is 
good and valuable about the faith on the table.  Christianity already had
this debate centuries ago in the form of Thomas Aquinas, who attempted to 
rationationize the apparent paradoxes of the budding religion with 
Aristotelian philosophy.  Using church doctrine in the face of scientific 
evidence has proven untenable, as the Vatican eventually realized in the case 
of Galileo in the seventeenth century.  That's why when Darwin came along in 
the nineteenth century, the Pope cleverly moved the church out of the way of 
the debate and instead positioned Christianity's mythology as an answerto 
transcendental questions such as: how did this all start and where is it 
all going?</p>

<p>Literalist Christianity is Faith-lite.  The followers of this doctine 
believe that all of life's tough questions are answered in the Book and 
those questions that aren't, aren't important.  But here, they 
"misunderestimate" the faith.  The Bible is written in metaphor 
and parable, which may or may not be applicable to the reader's life.  It 
isn't enough to know that the Earth was created in six days, that the Earth
was flooded, that the God picked on poor old Job or that Pharaoh was 
beset with plagues.  Those are interesting tidbits, but they don't explain 
how to make internal combustion engines or an articulated prosthesis, whether
capital punishment is compatible with Democracy or even how to mix cement.  
The literalist unfairly expects a book of ancient stories 
to directly answer today's problems.  That's bad thinking and poor theology. 
And it misses the many opportunities for humor inherent in the Bible.</p>

<p>For instance, the first story a reader of the Book encounters is the 
Genesis creation myth.  The more I mull this story, the better it gets.  It 
is a thumbnail sketch of male/female relationships.  While I reject the 
misogynist j'accuse of pinning the fall of man on Eve, there is a 
more humane and, to modern readers, familiar story here.  
Consider this dialog, which might have occurred after The Fall in the household
of Adam and Eve.</p>

<p><blockquote>
 <p>ADAM:   Morning, Eve.</p>

<p><p>EVE:    Morning, Adam.</p>

<p><p>ADAM yawns, scratches himself.</p>

<p><p>A:      So, what's for breakfast?</p>

<p><p>E:      Thorns and thistles</p>

<p><p>A:      Thorns and thistles? </p>

<p><p>E:      That is what I said.</p>

<p><p>A:      Didn't we have that for breakfast yesterday?</p>

<p><p>E:      And for dinner last night.</p>

<p><p>A:      Damn.  I hate thorns and thistles.</p>

<p><p>ADAM begins to dig through his bowl of food.</p>

<p><p>A:      Remember how sweet the fruits of the Garden were?
         And the cool shade of our heavenly bower?</p>

<p><p>E:      Yes.</p>

<p><p>A:      And remember how kind all the animals were to us?</p>

<p><p>E:      Yes.  Your breakfast is getting colder.</p>

<p><p>A:      And the way it never rained during the day and never 
        got too cool at night?</p>

<p><p>EVE glowers at ADAM, who is lost in revery.</p>

<p><p>A:      Say, why did we leave Eden?</p>

<p><p>E:      Adam, you stone brain!  You know perfectly well what happened. <br>
         Now eat your thorns and thistle before the beetles come and 
         eat them for you.</p>

<p><p>A:      Oh, yeah!  I remember now.  We ate from the one tree we were 
         told not to.  I can't remember the name of the tree or why it 
         was off limits, but the fruit was awful.  Bitter. </p>

<p><p>EVE glowers more intensely at ADAM.</p>

<p><p>A:      Stupid tree.</p>

<p><p>E:      Is there a point to this or are you 
         just tired of having sex with me?</p>

<p><p>ADAM looks startled.</p>

<p><p>A:      No, no!  Not tired of sex!  Sex is good! <br>
         Better than thorns and thistles.</p>

<p><p>E:      High praise, indeed.</p>

<p><p>ADAM and EVE focus on eating their food.</p>

<p><p>A:      Say, Eve.  Where are the boys?</p>

<p><p>E:      Able is in the fields watching the sheep.  Cain is at the neighbor's 
         house.</p>

<p><p>A:      Which neighbors?</p>

<p>E:      THE Neighbors!  Jim and Dora Nieghbors, who have the two daughters. 
         You remember them, right?  We play bridge with them on Sundays?</p>

<p>A:      Oh, those neighbors!</p>

<p>EVE gets angry.</p>

<p>E:      You bastard!  You were thinking of that little tramp 
         Lilith again, weren't you?</p>

<p>A:      mmm, what?  No! No, not her.  Definitely not thinking that 
         wild animal of unbridled sexual aggression.  </p>

<p>EVE throws her bowl at ADAM.</p>

<p>A:      Come on, Eve!  It's been ten years 
         since that affair ended.  Can't you let it go?</p>

<p>E:      I don't know why I took you back!  I should have gone home to mother's.</p>

<p>A:      Well, technically, I think I am your mother.  You know, that shared 
         rib bone thingâ¦</p>

<p>EVE breaks down in tears.
</blockquote> </p>

<p>All good literture has a life beyond the page.  Literalists deny that 
life and the wisdom and joy that follows.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Replacing disks in a Linux software RAID]]></title>
    <link href="https://www.taskboy.com/2005-12-15-Replacing_disks_in_a_Linux_software_RAID.html"/>
    <published>2005-12-15T00:00:00Z</published>
    <updated>2005-12-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-12-15-Replacing_disks_in_a_Linux_software_RAID.html</id>
    <content type="html"><![CDATA[<p><p>I've got a Redhat 9.0 box running a software RAID1 array with two 160GB IDE.  It works well and I can't complain about the performance.  Like the idiot that I am, I failed to set up notification to tell me when a disk in the array fails (UPDATE: use smartd to check the health of hard drives and even mdmonitor to watch for a failed disk in array sets).</p></p>

<p>This happened recently (within the month), and the array degraded gracefully to using the remaining disk.  But I still had to replace the "broken" one (which I don't believe to be broken at all).</p>

<p>To do this, install the new disk as planned.  When you boot, you'll be shoved into a root shell.</p>

<ul>


  <li>fdisk the new disk.


  <li>create a new partition with partition type 0xFD.


  <li>write the new partition table out.


  <li>edit the /etc/raidtab file.  Promote the remaining disk to being the 


      first in the array.


  <li>start raid with mdadm: <code>mdadm âassemble ârun /dev/md0 /dev/hd</code>


  <li>add the new disk into the existing array: 


      <code>mdadm âadd /dev/md0 /dev/hd</code>


  <li>The new disk will sync up to the old.  


      Verify with <code>cat /proc/mdstat</code>.  This process took 


      about five hours on my system.


  <li>Reboot your new, happy system.


</ul>

<p>Just to make this more concrete, my /etc/raidtab looked like this:</p>

<p class="code">
raiddev             /dev/md0
raid-level                  1
nr-raid-disks               2
chunk-size                  4
persistent-superblock       1
nr-spare-disks              0
    device          /dev/hdb1
    raid-disk     0
    device          /dev/hdc1
    raid-disk     1
</p>

<p>Recently, /dev/hdb1 failed (although it seems ok.  fsck revealed no 


problems, but it was out of sync with /dev/hdc1).  I then replaced the drive


(Slave HD on the primary IDE channel).  I booted the box and changed /etc/raidtools:</p>

<p class="code">
raiddev             /dev/md0
raid-level                  1
nr-raid-disks               2
chunk-size                  4
persistent-superblock       1
nr-spare-disks              0
    device          /dev/hdc1
    raid-disk     0
    device          /dev/hdb1
    raid-disk     1
</p>

<p>I then started the RAID: <code>mdadm âassemble ârun /dev/md0 /dev/hdc1</code>.  Then, I added the new disk: <code>mdadm âadd /dev/md0 /dev/hdb1</code>.</p>

<p>Hope this limited and cursory treatment of a complex topic helps.</p>

<p><p>UPDATE: Also see <a href="http://www.gagme.com/greg/linux/raid-lvm.php">this primer</a> on LVM and RAID tools in modern RedHat.  This system was running RedHat 9 and so used the older raidtools stuff.  You really only need mdadm, which can create, restore and repair RAID disk sets.  Configure /etc/mdadm accordingly.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[when the platters break…]]></title>
    <link href="https://www.taskboy.com/2005-12-14-when_the_platters_break.html"/>
    <published>2005-12-14T00:00:00Z</published>
    <updated>2005-12-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-12-14-when_the_platters_break.html</id>
    <content type="html"><![CDATA[
<img src="/img/camel.gif" title="I hate computers">


<p>Good times: I'm dealing with another hard drive crash.  This one is less
traumatic than previous ones, but it still sucks.  It's a 160GB drive formated 
for NTFS that was a sort of extra data drive for my Windows box.  I have 
managed to CHKDSK.EXE the drive several times, but it's not happy.  However, 
something of the filesystem lives and I think the leostream converter floppy 
disk appears to be able to read the raw disk.  So, I'll buy some new drives 
tomorrow and image the old disk across.</p>

<p>This is much less fun than writing software.  Happy friggin' birthday.</p>

<p>(No, I'm not tired of that stupid camel picture yet.)</p>

<p>UPDATE: Most of my digital infrastructure is lying in pieces on 
the floor of my apartment.  Here's the cascading failures:</p>

<ul>
  <li>Second HD on my WinXP box has some kind of HW failure â locks up machine
  <li>HD removed
  <li>WinXP reconfigure for one drive
  <li>After few hours, it too locks up
  <li>Couldn't rip CDs on my linux box, cdrom apparently not available
  <li>More digging on the linux box, one of the disks in my two disk 
      SW RAID1 has gone tits up
  <li>Bought two new 160GB Western Digital drives (with $80 rebates for each)
  <li>Replaced failed RAID1 disk, rebuilt raid, am syncing the disks (slowly)
  <li>Have installed other 160GB drive on WinXP box, partitioned into 
      40GB/120GB, reinstalled XP, slaved the old C: drive for file access
</ul>

<p>Need a real backup plan.  I didn't lose any important data this time.  
Probably will get a USB drive to hang off linux box for "offline" storage.</p>

<p>I'd love to know what Bill Gates does for this crap.  He must have a 
private IT staff.</p>

<p>Also, there's a blog post sitting on my old C drive waiting to be posted.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Building iTunes podcast feeds with XML::RSS]]></title>
    <link href="https://www.taskboy.com/2005-12-13-Building_iTunes_podcast_feeds_with_XML__RSS.html"/>
    <published>2005-12-13T00:00:00Z</published>
    <updated>2005-12-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-12-13-Building_iTunes_podcast_feeds_with_XML__RSS.html</id>
    <content type="html"><![CDATA[
<img src="/img/bigfoot.gif">


<p>UPDATE 2: Please see <a href="index.php?bid=1086">this post</a> 
for the latest working version of this module.</p>

<p>UPDATE 1: This code works with XML::RSS version 1.05 or so.  The newest  versions of this library removed the encode() method for reasons beyond my reckoning.  You can either use this code as a starting point for porting to the new XML::RSS module (and tell me how you did it!) or simply use the older version, which is still available on CPAN.</p>

<p>Like searching for Bigfoot, creating a podcast feed that's 
recognized by Apple can be an elusive, furtive and lonely process.  
Most know that podcasts are really just RSS 2.0 feeds with 
some extra tags.  This seems like something perl should handle.  
The perl module XML::RSS nearly has 
everything necessary, but there's always a catch: the itunes namespace.</p>

<p>All is not lost, because XML::RSS is a class that can be inherited from. 
With a little overriding goodness, you too get make 
<a href="http://rss.scripting.com/">valid feeds</a> that even 
<a href="http://phobos.apple.com/static/iTunesRSS.html">Apple's iTunes 
music store</a> will accept.  Here's my module that inherits from XML::RSS.
While it's not a complete solution, it works well enough for me.</p>

<p>
package XML::RSS::Podcast;
use XML::RSS;
@XML::RSS::Podcast::ISA = qw[XML::RSS];

sub as_string {
  my $self = shift;
  return $self->as_podcast_rss;
}

sub as_podcast_rss {
  my $self = shift;
  my $enc = $self->{encoding};
  my $output = &lt;&lt;EOT;
&lt;?xml version="1.0" encoding="$enc"?>
&lt;rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" 
     version="2.0">

EOT

  $output .= $self->podcast_start_channel;

  for my $i (@{$self->{items}}) {
    $output .= $self->podcast_item($i);
  }

  $output .= $self->podcast_end_channel;
  return $output .= "n&lt;/rss>n";
}

sub podcast_start_channel {
  my $self = shift;
  my @fields = qw[ttl title description link language 
                  pubDate lastBuildDate creator 
                  webMaster copyright
                 ];
  my @image_fields  = qw[title url description link     
                         width height];
  my @itunes_fields = qw[subtitle author summary
                         image];

  my $output = "&lt;channel>n";

  for my $f (@fields) {
    if (length($self->{channel}->{$f})) {
      my $s = $self->encode($self->{channel}->{$f});
      $output .= "t&lt;$f>$s&lt;/$f>n";
    }
  }

  my $seen_image = 0;
  for my $f (@image_fields) {
    if (length($self->{image}->{$f})) {
      unless ($seen_image) {
        $output .= "t&lt;image>n";
        $seen_image = 1;
      }
      my $s = $self->encode($self->{image}->{$f});
      $output .= "tt&lt;$f>$s&lt;/$f>n";
    }
  }

  if ($seen_image) {
    $output .= "t&lt;/image>n";
  }

  # Owner name/email not handled
  for my $f (@itunes_fields) {
    if (length($self->{channel}->{itunes}->{$f})) {
      my $s=$self->encode($self->{channel}->{itunes}->{$f});
      $output .= "t&lt;itunes:$f>$s&lt;/itunes:$f>n";
    }
  }

  # FIXME: Doesn't handle sub cats.
  if (ref $self->{channel}->{itunes}->{category}) {
    for my $c (@{$self->{channel}->{itunes}->{category}}) {
      my $s = $self->encode($c);
      $output .= qq[t&lt;itunes:category text="$s" />n];
    }
  }

  return $output . "n";
}

sub podcast_end_channel {
  return "&lt;/channel>n";
}

sub podcast_item {
  my $self = shift;
  my $item = shift;

  my @fields = qw[title guid pubDate description];
  my @itunes_fields = qw[author subtitle summary 
                         duration keywords explicit];

  my $output = "t&lt;item>n";

  for my $f (@fields) {
    if (defined $item->{$f}) {
      $s = $self->encode($item->{$f});
      $output .= "tt&lt;$f>$s&lt;/$f>n";
    }
  }

  if (ref $item->{enclosure}) {
    $output .= "&lt;enclosure";
    for my $f (qw[url length type]) {
      if (defined $item->{enclosure}->{$f}) {
        $output .= qq[ $f="$item->{enclosure}->{$f}"];
      }
    }
    $output .= "/>";
  }

  for my $f (@itunes_fields) {
    if (defined $item->{itunes}->{$f}) {
      $s = $self->encode($item->{itunes}->{$f});
      $output .= "tt&lt;itunes:$f>$s&lt;/itunes:$f>n";
    }
  }

  return $output .= "t&lt;/item>n";
}
</p>

<p>A word about the RFC822 pubDate.  This seemingly arbitrary date format 
can be easily generated with a call to <code>strftime()</code>.  The 
format string is <code>"%a, %e %b %Y %H:%M:%S %z"</code>.  You might think
that you can use mysql's DATE_FORMAT() to replicate this, but you'd be wrong.
Instead, generate mysql queries with UNIX_TIMESTAMP(), feed the result of 
that to localtime() and feed that to strftime().  Simple, no?  No, but such 
are the challenges in programming.</p>

<p>Here's a sample of how I use this for 
<a href="http://pseudocertainty.com/">pseudocertainty.com</a>.</p>

<p>
use strict;
use DBI;
use POSIX qw[strftime];
use MP3::Info;

my $rssfile = shift || "./ps-pod.rss";

my $dbh=DBI->connect("dbi:mysql:pseudo", "pwrUser", "s3cr3t") 
        or die "connect: $DBI::errstr";

my $shows    = get_shows($dbh);
$dbh->disconnect;

my $rss = XML::RSS::Podcast->new(version => "2.0");
my $rfc822_fmt = '%a, %e %b %Y %H:%M:%S %z';

my $iMeta = { "author" => "Joe Johnston and Mike Lord",
              "summary" => 'UFOlogy, Cryptozology and 
                            the people who love them are 
                            discussed on this 
                            internet-only radio show',
              "subtitle" => "Don't be Certain.  
                             Be PseudoCertain.",
              "category" => ["Talk Radio"],
                          };

$rss->channel(title => 'PseudoCertainty',
              "ttl" => 60, # time to live
              link  => 'http://www.pseudocertainty.com/',
              language => 'en-us',
              description => 'UFOlogy, Cryptozology and the 
                             people who love them are discussed 
                             on this internet-only radio show',
              copyright => "Copyright Joe Johnston and Mike Lord",
              webMaster => "jjohn@pseudocertainty.com",
              pubDate => strftime($rfc822_fmt,localtime()),
              "itunes" => $iMeta,
              );

for my $r (@$shows) {
    # no more than 30 words
    my @words = map { s/(&lt;+>)//g; $_; } 
                  split /s+/, $r->{about};
    my $desc = "not set";
    if (@words > 30) {
        $desc = join " ", @words[0..29], "â¦";
    } else {
        $desc = join " ", @words;
    }

    my $finfo = get_mp3info("/path/to/shows/$r->{mp3_filename}");
    my $pl = qq[http://pseudocertainty.com/$r->{mp3_filename}];
    my $enc = { url => $pl,
                length => -s "/path/to/shows/$r->{mp3_filename}",
                type => "audio/mpeg",
              };
    my $itunes = {
                  explicit => "N",
                  keywords => "UFO aliens zorknapp",
                  summary  => $desc,
                  duration => $finfo->{TIME},
                                }
    $rss->add_item( title => $r->{title},
                    link  => $pl,
                    pubDate => strftime($rfc822_fmt, 
                               localtime($r->{pretty_created})),
                    enclosure => $enc,
                    permaLink => $pl,
                    description => $desc,
                    "itunes" => $itunes,
                   );
}

$rss->save($rssfile);

#ââââââââ
# subs
#ââââââââ-
sub get_shows {
    my ($dbh) = shift;
    my $sql = qq[
  SELECT *,UNIX_TIMESTAMP(created) as pretty_created 
    FROM shows WHERE publish = 1 ORDER BY created DESC;
                 ];

    my $sth = $dbh->prepare($sql);
    die "get_shows: '$sql': " . $sth->errstr unless $sth->execute;
    return $sth->fetchall_arrayref({});
}
</p>

<p>And they called me a fool for wanting to make XML::RSS spew podcast RSS.  
But I showed them!  I showed them all! Bwahahhaha!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[34]]></title>
    <link href="https://www.taskboy.com/2005-12-12-34.html"/>
    <published>2005-12-12T00:00:00Z</published>
    <updated>2005-12-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-12-12-34.html</id>
    <content type="html"><![CDATA[
<img src="/img/alien_cake.gif">


<p>Say, it's my birthday today!  I'm now 34 years old and still a 
hard-chargin', code-writing, music-playin' S.O.B.  Mike and I may do a 
radio show tonight, which would be great.  Other than that, I've got no plans
but to keep on keepin' on.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Taskboy: A Web Services Exhibition.  Part 2]]></title>
    <link href="https://www.taskboy.com/2005-12-10-Taskboy__A_Web_Services_Exhibition.html"/>
    <published>2005-12-10T00:00:00Z</published>
    <updated>2005-12-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-12-10-Taskboy__A_Web_Services_Exhibition.html</id>
    <content type="html"><![CDATA[
<img src="/img/camel.gif" title="I hate code">


<p><em>(This article continues my thoughts on the taskboy CMS.)</em></p>

<p>How the taskboy CMS works</p>

<p>Once I decided that content would be managed through emacs (to as large
a degree as possible), the rest fell mostly into place.  The blog, the music 
section, the polls and the ratings would all be stored in mysql and accessed 
through a XML-RPC API.  I would use PHP to define the layout, pulling the 
content from the database where needed.  Templates as such are not used.  To 
my thinking, a PHP page is the template.  I also decided against 
database abstraction classes, since I'm unlikely to move from mysql any time 
soon.  I do have a collection of PHP utility functions (like, sql_insert, 
sql_delete, sql_select) to make database access less painful.  Each PHP page
calls the same header and footer pages.  Much of this code was developed along
side <a href="/ss">State Secrets</a>.  Together, this makes the PHP stuff 
pretty easy to modify.</p>

<p>Getting from emacs to PHP is a little circuitous, so please bear with me.
It is straight forward to write a perl script that's an XML-RPC client using 
the Frontier::RPC2 library.  So that's what I did first. I verified that I 
could talk to the PHP page that processes XML-RPC requests.  Emacs is an 
extentable editor using the macro language lisp.  The creator of Perl, Larry
Wall, said of lisp that it had all the visual appeal of "porridge with 
toenail clippings" and I agree.  However, I did learn just enough lisp to 
write the current emacs buffer to standard out to be read by a perl script 
which could then make the appropriate XML-RPC request and make some snappy 
response that emacs could deal with.  This solution is what I wrote about 
on <a href="http://use.perl.org/articles/02/10/25/007222.shtml">use.perl.org</a>.</p>

<p>Gnu Privacy Guard</p>

<p>The new wrinkle for taskboy is security.  The XML-RPC messages go across 
the network in clear text.  The primary risk I wanted to address is not that 
someone will see my blog before it's posted, but that an unauthorized fool
would mess with my XML-RPC service.  Whatever authorization mechanism I choose 
would have to work over clear text.  It's true I could have used SSL with HTTP
Authentication for the web services PHP page, but I didn't want to.  
Fortunately there is already a solution for this kind of problem, but for a 
different form of internet messaging.</p>

<p>Back in the mid-80's, Phil Zimmerman had a problem: he couldn't prove he 
was him.  That is, email that claimed to be from him could have been forged 
by some joker only claiming to be him.  How could those receiving email from he
be assured that the sender Phil Zimmerman was <em>the</em> Phil Zimmerman?  
The answer became known as Pretty Good Privacy and it involved some very 
scary math.  But you can think of it as something like a lock and key 
mechanism.  When an email is sent out, a Very Big Number is computed with the 
content of the message and your <em>private key</em>.  Your private key has a 
sibling called a <em>public key</em> that the recipient of mail will already 
have (and verified).  When the recipient gets this message, pgp uses the 
public key on file to decode the message (or signature).  If nothing has been 
changed in the message, the math will work out (via magic) and you can be 
pretty sure that Phil indeed has told you to "go pound sand."</p>

<p>The important concept here is that PGP was meant to guarentee the identity 
of a sender using a message that anyone could read, but not change.  Now in 
web services, I also have messages that anyone could read, but I want the 
server to accept only requests from me.  Although it's not a seemless fit, 
PGP turns out to be a good authenication method for private web services.  
Here's how I modified Edd Dumbill's 
<a href="http://phpxmlrpc.sourceforge.net/">XML-RPC PHP library and 
Ken MacLeod's 
<a href="http://search.cpan.org/~kmacleod/Frontier-RPC-0.07b4/lib/Frontier/RPC2.pm">Frontier::RPC</a> 
to use <a href="http://www.gnupg.org/">Gnu Privacy Guard</a> 
(any open source version of PGP) to look down my 
web service.  The strategy in both cases is that requests should be signed,
not responses.  It would be staight-forward to implement response signing too,
but I don't deem it necessary for my application.</p>

<p>Tweaking the PHP server</p>

<p>This class merely extends the xmlrpc_server class found in xmlrpcs.inc.  
I need to intercept the content, verify the signature, remove it if the message
checks out and pass the rest of the XML doc to the parent class for handling. 
Hats off to Edd and the boys for getting the class partitioned so that I needed
to override only one method.</p>

<p>One PHP tip: name your class files with .php.  That way, you can point 
a browser to them and check the syntax.  After all the syntax typos are gone, 
the page will appear blank.  The the contents of files with .inc extensions  
are typical just displayed by the web server without parsing.</p>

<p>
VerifyRequest($data)) {
               return $this->RPCError("Couldn't verify request");
            }
            $data = $this->RemoveSignature($data);
        }
        # pass off to parent
        return parent::parseRequest($data);
    }
    #ââââââââââââââ
    # Look at the body of the request.  Does it have
    # a signature to verify?
    function VerifyRequest ($data="") {
       # BTW: I hate this solution
       # write out to a tmpfile
       $infile = "/tmp/" . posix_getpid() . ".vrf";
       if ($fh = fopen($infile, "w")) {
           fwrite($fh, $data);
           fclose($fh);
       } else {
           return 0;
       }
       # is this signed by someone I trust?
       $cmd = "/usr/bin/gpg âhomedir=/path/to/gpg "
              . "âverify  /dev/null";
       $retval = 1; # default to failure
       if (file_exists($infile)) {
          system($cmd, $retval);
       } else {
          return 0;
       }
       unlink($infile);
       return $retval ? 0 : 1;
    }
    #ââââââââââââââ-
    # remove signature header/footer
    function RemoveSignature ($data="") {
        # for GPG
        # strip of the GPG stuff to get the basic XML back
        $preamble = "/ââBEGIN PGP SIGNED MESSAGEââr?n"
                    . "Hash: SHA1r?nr?n/";
        $footer = "/ââBEGIN PGP SIGNATUREââr?n"
                  . "Version: .+r?nr?n(S+r?n)+"
                  . "ââEND PGP SIGNATUREââ/";
        $data = preg_replace($preamble,"", $data);
        $data = preg_replace($footer,"",$data);
        return $data;
    }
    #âââââââââââââââ
    # wrapper for easier (and non-granular) error reporting
    function RPCError ($msg=0) {
        return new xmlrpcresp(0,500,"Bad request: $msg");
    }
}
?>
</p>

<p><p>A few notes on this amateurish PHP code.  First, any security wonk will tell
you not to create temp files with PID names.  In my case, I trust the other 
users on my server and don't feel compelled to improve the security here.  You 
may want to.  I'm using the fact that gpg process has an exit value of 0 if 
the verify succeeds.  The only way I saw of getting the exit value of a process
in PHP is by using system().  There are a couple of other process handling 
functions, but those didn't seem to give me this simple result to check (I 
could have used popen() and grepped through the output, but that seemed 
painful [although I might have done that if this were a perl module]).</p>

<p>parseRequest() is called by the parent class to unpack the XML request.  
Here, I look for the GPG signature and if all goes well, I pass just the XML 
string to the parent parseRequest() for processing.</p>

<p>Keep in mind that PHP runs as whichever user Apache runs as.  This affects
GPG.  You have to set up the file ownership for the keys so that 
Apache can read and write to a directory.  You should create keys specifically
for this web service and not reuse your own GPG stuff.  You were warned.</p>

<p>This class is used identically to the xmlrpc_service class defined in 
xmlrpcs.inc.  No, I don't know what the "da_" stands for in the class name.  
I though I wrote "ds_", which would have stood for "digital signature."</p>

<p>Expanding the Frontier</p>

<p>For the perl client, I simply defined to classes at the start of the 
program.  Keep in mind, this is a win32 perl program.</p>

<p>
package RPCEncoder;
use Frontier::RPC2;
@RPCEncoder::ISA = qw[Frontier::RPC2];
sub encode_call {
    my ($self) = shift;
    my $request = $self->SUPER::encode_call(@_);

    # sign it.  2-way opens hurt my brain
    my $outfile = "C:/blog/tmp.txt";
    unlink $outfile;

    my $cmd = qq[|C:/blog/gnupg/gpg.exe âhomedir=/blog/gnupg ]
              . qq[âclearsign  > $outfile];
    open GPG, $cmd or die "Can't proc open: $!";
    print GPG $request;
    close GPG;

    open IN, $outfile or die "Can't open signed $outfile: $!";
    undef($request);
    while () {
        $request .= $_;
    }
    close IN;
    unlink($outfile);
    return $request;
}

sub decode {
    my ($self) = shift;
    my ($string) = shift;
    my %args = ('Style' => 'Frontier::RPC2',
                'use_objects' => $self->{'use_objects'},
               );                          
    $self->{'parser'} = XML::Parser->new(%args);
    return $self->{'parser'}->parsestring($string);
}
#ââââââââââââââââââ
package RPCClient;
use Frontier::Client;
@RPCClient::ISA = qw[Frontier::Client];
sub new {
    my ($self) = shift->SUPER::new(@_);
    my %args = ('encoding'    => $self->{'encoding'},
                'use_objects' => $self->{'use_objects'}
               );
    $self->{'enc'} = RPCEncoder->new(%args);
    return $self;
}
</p>

<p>The perl is a little weirder because of the way the Frontier Client works
with XML::Parser, itself a horrible creation of Cthulhu.  The Frontier::Client
constructor needs to be overrided so that I can insert my custom RPCEncoder 
class, which is a thin coating over Frontier::RPC2.  All the XML encoding 
and decoding happens in Frontier::RPC2 and that's what I need to intercept.</p>

<p>When making a request, I need to sign the XML string before it goes on the 
wire.  All things being equal, I'll like to open the gpg process for reading
(to feed it the string I've got in memory), but also read from it to get the 
output.  This is a kind of double pipe, which is easy to do in shell, but 
weird to do with perl and especially so on Windows.  Once again, I write a
temp file and I don't even pretend to give security a mind.  Windows boxes 
are typically single user machines and mine doubly so.  Also note that I 
don't need to worry about running as a different user when I make the XML-RPC
request.  I'm in emacs (which runs as the current user); it spawns a shell
to run perl; perl spawns a shell to run gpg.exe).  All these processes run 
will run as me.</p>

<p>I had to also override decode(), because the parent uses <code>ref($self)</code> to determine the class name of the XML callbacks (n.b. BAD MONKEY!).  This 
really should have been hard coded to 'Frontier::RPC2' since the callbacks all
have hardcoded class names (see the code for the real scoop).  I think this was
an attempt to make child classes easier to write, but this trick backfired.</p>

<p>A Quick Note on GPG setup</p>

<p>Getting up to speed on how GPG works took longer than integrating it into 
the taskboy web service.  I cannot go in to all the set up details here, but 
if you are familiar with ssh key mananagement, you will be well ahead of the 
game in GPG.  If ssh keys make your brain hurt, GPG is a veritable migraine.
But it boils down to this: you must make a GPG key pair for the source machine 
with the perl/emacs setup.  You must copy the public key to the server.  You 
must import that key into GPG and verify it (with <code>gpg âedit</code>).  
If you don't do all of these steps, this digital signature for XML-RPC hack 
won't work and you'll be mystified at what went wrong.  
Verify your GPG at all stages using test files, so that you can get the 
GPG errors.</p>

<p><p>Note to jjohn: Move the *gpg files to wherever gpg want to find them.  It will make things go easier on you.</p>

<p>Next: <a href="/?bid=79">Some dirty thoughts on SOAP</a></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[perl tip: reporting pipe consumption progress]]></title>
    <link href="https://www.taskboy.com/2005-12-10-perl_tip__reporting_pipe_consumption_progress.html"/>
    <published>2005-12-10T00:00:00Z</published>
    <updated>2005-12-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-12-10-perl_tip__reporting_pipe_consumption_progress.html</id>
    <content type="html"><![CDATA[
<img src="/img/camel.gif">


<p>Here's a perl tip for those trying to report progress on external 
programs that don't report that kind of information.  The case this hack was 
designed for was gzip, but you'll think of many other examples of this class
of problem.</p>

<p>Perl is an incredible flexible language.  Of all its wonderous features,
the ability to get a file handle to a process is the most arcane and little 
appreciated.  It is, however, the key to reporting how much input is consumed 
by a process.</p>

<p>Here's a concrete example of what I'm talking about.  The compression 
utility gzip is a stream-oriented program that works on chunks of data that 
it receives typically from stardard input (STDIN).  You can therefore feed 
gzip a file of any size and it should work, given enough disk space.  The 
larger the file, the longer gzip takes to run (I suppose this makes the 
runtime a Big O of (n), linear time [so much for using my comp sci degree]).</p>

<p>Occassionally, you'd like to know how far along gzip is in compressing a 
large file.  Gzip does not report this, but does give you the compression 
ratio at the end of the run, if you called it with the -v flag.</p>

<p>Without hacking gzip, you can create a perl wrapper around gzip in which 
you can report how many bytes gzip has consumed of the source file.  The 
idea is that the source file is read by perl and feed to gzip.  Keep tracking
of how many bytes are read in the perl script is simple.  Here's some code.</p>

<p>
my $infile = shift @ARGV || die "$0 n";
open GZIP, "|/bin/gzip -c > out.gz" 
   or die "can't open process to gzip: $!";

# disable output buffering to see the progress report
$|++; 

open IN, $infile or die "Can't open $infile: $!";
my $original_size = -s $infile;

my ($buf, $sum);
my $chunk = 200;
while (read(IN, $buf, $chunk)) {
    $sum += $chunk;
    print GZIP $buf;

    printf "progress: %02.2fr", ($sum/$original_size)*100;
}
print "n";
close GZIP;
close IN; 
</p>

<p>This short script expects to be called with the name of the file to 
compress.  The output file name is hard coded to be "out.gz", but it's a 
simple matter of programming to make this more flexible.  The magic begins 
when we open the process to gzip.  Here, the GZIP file handle will be written 
to.  The source file is then opened for reading.  I choose to read the source 
file in very tiny chunks to clearly see the progress indicate work.  Here, 
200 bytes are read from the source file and then feed to gzip.  The number
of bytes read is tracked and reported in a straight forward way.</p>

<p>Two penetrating glimpses into the obvious.  One: this script is built
for some flavor of UNIX.  Some modifications would be needed for Windows, 
including the use of <code>binmode(IN)</code>, <code>binmode(GZIP)</code>. 
 Two: this is really just a specialized echo loop.  While I'm not one to 
yammer on about coding patterns, I would say that nearly 90% of the code I 
write is some kind of echo loop, when you take away the business logic, error
checking and other distractions.</p>

<p></p>

<p>If you only learn one thing for a programming class, it should be the 
humble echo loop.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[vnc2swf rocks]]></title>
    <link href="https://www.taskboy.com/2005-12-08-vnc2swf_rocks.html"/>
    <published>2005-12-08T00:00:00Z</published>
    <updated>2005-12-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-12-08-vnc2swf_rocks.html</id>
    <content type="html"><![CDATA[
<img src="/img/taskboy-demo-ss.gif"></a>


<p>In my professional life, I'm often tasked with making a help system 
of somekind to help users understand the application I'm building.  This 
is notiously difficult to do.  However, certain technologies have come 
along to make showing users what to do possible, even over dialup connections.
One of those technologies is 
<a href="http://www.macromedia.com/flash">Flash</a>, which combinds 
lightweight vector graphics with mp3 support.</p>

<p>Unfortunately, the Flash studio app costs <em>mucho dinero</em> and I 
wouldn't use the tool enough to get the full value of my investment back. 
Also, what I want to do is capture stuff I'm doing on my desktop along with 
a voiceover of what's going on.  This, to my knowledge, would require an 
additional package.</p>

<p>Fortunately, there have been a few open source projects that can 
manipulate the Flash file format to some degree.  But what I need is to 
capture a Windows desktop session.</p>

<p>The solution comes in the python version of 
<a href="http://www.unixuser.org/~euske/vnc2swf/">vnc2swf</a>. This appears 
to be a platform-neutral solution, which is remarkable. </p>

<p>Very. Good. Hack.</p>

<p></p>

<p> I wish perl had done this first, but hats off to the python hackers 
that made this happen.  I applaud the use of a scripting language I can hack.  
I particularly like the edit.py feature, which allows me to add an mp3 
soundtrack. I have a lot of equipment and software to manipulate sound, 
including Sonar for the base recording and WAV editting and RazorLame for 
the mp3 encoding (which I did at 32kb sample rate monophonically).
I did have to time shift the original VO track to 85% of the original.  That's
why the demo sounds like I just snorted crystal meth.  I'm not sure if there's
a better trick for syncing the video and audio.</p>

<p>Click on the picture for the full demo of my wonderful site.</p>

<p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[jerkcity by jjohn]]></title>
    <link href="https://www.taskboy.com/2005-12-07-jerkcity_by_jjohn.html"/>
    <published>2005-12-07T00:00:00Z</published>
    <updated>2005-12-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-12-07-jerkcity_by_jjohn.html</id>
    <content type="html"><![CDATA[
<a><img src="/img/jerkcity.gif"></a>


<p>As a long time reader of the very not safe for work 
<a href="http://www.jerkcity.com/">jerkcity</a>, I've come to admire 
the tenacity and artistry of pumping out violent homoerotic humor every day 
for years on end.  I knew that this comic was based on IRC chat room 
discussions done with a special version of Microsoft Chat, but I didn't 
realize how much stupid fun it was to "put together" a comic.  It's the closest
I've been to having the power of an editor.</p>

<p>So, you can click on the picture above to get a larger version.  There's 
nothing dirty in it, but some how, after so much jerkcity consumption, I still
think there is.</p>

<p>Spelling mistakes are funny.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Leostream podcasted]]></title>
    <link href="https://www.taskboy.com/2005-12-06-Leostream_podcasted.html"/>
    <published>2005-12-06T00:00:00Z</published>
    <updated>2005-12-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-12-06-Leostream_podcasted.html</id>
    <content type="html"><![CDATA[
<img src="http://www.leostream.com/images/logo2.gif">


<p>Mike Palin, the COO of <a href="http://www.leostream.com/">Leostream</a> [a company I'm involved with], 
was interviewed by John Furrier.  
<a href="http://www.podtech.net/?cat=11&paged=2">Listen to it now</a>!</p>

<p>Marvel at the wonderous value Leostream adds to virtualization!  Now how much would you pay?</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[post apocalyptic]]></title>
    <link href="https://www.taskboy.com/2005-12-06-post_apocalyptic.html"/>
    <published>2005-12-06T00:00:00Z</published>
    <updated>2005-12-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-12-06-post_apocalyptic.html</id>
    <content type="html"><![CDATA[
<img src="/img/boy_and_his_dog.jpg">


<p>There are many things in life that I'd like 200 pounds of.  Gold, rubies, 
diamonds and <a href="http://www.schmidt-software.com/images/computer/s_vt220.jpg">VT220s</a> all top my list.  
What I didn't want, but did little to prevent, is arriving at 200 pounds of body mass again.  This year has brought stress from a number of quarters which 
have all convinced me to hide in a corner and eat.  Well, fie to that I 
say.</p>

<p>With the major eating holiday over and the leftovers nearly gone, I can 
begin to work off some of my unwanted girth.  If Boston gets a relative dry 
winter, I will able able to walk off a good deal of weight.  If the city
gets snowbound for long stretches of time, I'll need a plan B, which, God 
help me, may involve spending money on a gym membership.</p>

<p>Still, I hate reading blogs about people bitching about their weight, so 
I'll give you a glimpse into one of my secret desires.  In the late 90's, 
Interplay released a computer role playing game (CRPG) called 
<a href="http://www.gamespot.com/gamespot/features/all/gamespotting/092101/screens/fallout.jpg">Fallout</a>, in which you, as the survivor of WWIII, had to 
journey out of your bomb shelter vault to fetch a much needed tech thingie 
for your vault's continued well being.  Along the way, you get into wacky 
hyjinx with dogs, raiders, ghouls and super mutants.  Did I mention the large
irradiated bugs?  There's plenty of them too.  A good time is guaranteed for all.</p>

<p>A few years later, Interplay released a sequel sagaciously called 
<a href="http://www.gamenavigator.ru/pub/gallery/screenshots/6392_1280.jpg">Fallout 2</a>.  Set a couple of decades after the first game, the new adventure 
casts you as a descendent of the original "Vault Dweller," who became too much 
of a barbarian to live in the Vault he saved and so he founded a village.  As 
an uncouth "tribal," you must find a pre-war tech thingie that will dispel a
withering disease that afflicts the village.  The adventure is much bigger, 
taking place on the shattered Pacific coast of the US.  This is the game I fell
in love with (although I must say, I didn't care for the ending very much).  
Fallout 2 captured a lot of the magic of paper and pencil RPGs that I loved as
a kid.  Unfortunately, Interplay went tits up a few years ago, so the Fallout 
line is pretty much dead.  Let's not speak of 
<a href="http://marathon.bungie.org/story/_images/fallout.ad.jpg">Fallout: Tactics, shall we?</p>

<p>It turns out that I'm not the only fan of Fallout.  That honor must go to 
a group of <a href="http://www.teamx.ru/eng/">Russians</a>, who spent a great 
deal of time reverse engineering and tampering with Fallout to make 
modifications.  The good news is that there are a number of tools to make new 
adventures in worlds of Fallout and Fallout 2.  The bad news is that the game
engines (by Bioware) are complicated.  I guess that part of the fun of 
hacking.</p>

<p>Now for my secret desire: I'd like to implement out D&D modules using 
the Fallout 2 engine.  It's a simple thing to recast the medieval fantasy 
setting into the retro future world of Fallout.  I'd like to start with 
B2 <a href="http://www.deigames.com/Keep.jpg">The Keep on the 
Borderlands</a>, as that is both simple and very much in line with the 
rest of Fallout.</p>

<p>I'm keeping notes on my hacking quest.  I'm trying to learn the scripting 
language, which isn't bad but has a number of unfortunated C language idioms. 
I think I get how simple dialogs and quests work (and how to make those appear in the PIPboy PDA).  Somethings I can't do are new graphics, because I have 
no graphic talent.  That's a blessing, though.  I can focus on scripting 
the adventure and simple reuse what's there.</p>

<p>If I succeed even a little at this, I'll write up my hacking adventure.  
I'm certain people will continue to hack on Fallout for several years.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Mel Gibson: Crazy Bearded Guy]]></title>
    <link href="https://www.taskboy.com/2005-11-26-Mel_Gibson__Crazy_Bearded_Guy.html"/>
    <published>2005-11-26T00:00:00Z</published>
    <updated>2005-11-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-11-26-Mel_Gibson__Crazy_Bearded_Guy.html</id>
    <content type="html"><![CDATA[
<img src="http://newsimg.bbc.co.uk/media/images/40967000/jpg/_40967048_mel_gibson_beard203ap.jpg">


<p>This post isn't about Gibson's religious beliefs.  It's about his beard.  
What was he thinking when he grew that horrible, horrible mess?  We've all 
experimented with beards.  Some people look great with them.  Mel's not one of 
them.  Ew.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Thanksgiving day meal]]></title>
    <link href="https://www.taskboy.com/2005-11-24-Thanksgiving_day_meal.html"/>
    <published>2005-11-24T00:00:00Z</published>
    <updated>2005-11-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-11-24-Thanksgiving_day_meal.html</id>
    <content type="html"><![CDATA[<p>If you are celebrating Thanksgiving, what's on your dinner table today?</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Theme songs]]></title>
    <link href="https://www.taskboy.com/2005-11-22-Theme_songs.html"/>
    <published>2005-11-22T00:00:00Z</published>
    <updated>2005-11-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-11-22-Theme_songs.html</id>
    <content type="html"><![CDATA[<p>A while ago, I was asked to write a theme song for a cable access TV 
show.  Although none of my submissions were selected, I enjoy these 
<a href="/music/#Theme_Songs">little works</a>.  I hope you do too.</p>

<p></p>

<p>I also reworked the music page a bit to show what songs are new or updated.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Rate my blog]]></title>
    <link href="https://www.taskboy.com/2005-11-19-Rate_my_blog.html"/>
    <published>2005-11-19T00:00:00Z</published>
    <updated>2005-11-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-11-19-Rate_my_blog.html</id>
    <content type="html"><![CDATA[<p>I have enabled voting on each blog entry here on Taskboy.  This 
feedback mechanism allows you, the reader, to voice your "hell yeah!" or 
"hell no!" to whatever drivel is on this page.</p>

<p>Rock, rock on</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[ddate]]></title>
    <link href="https://www.taskboy.com/2005-11-18-ddate.html"/>
    <published>2005-11-18T00:00:00Z</published>
    <updated>2005-11-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-11-18-ddate.html</id>
    <content type="html"><![CDATA[
<img src="/img/Bob.gif">


<p>Today's useless linux command is <code>ddate</code>.  The manpage reads thusly:</p>

<blockquote>

       <p>ddate prints the date in Discordian date format.</p>

       <p>If  called  with  no arguments, ddate will get the current system date,
       convert this to the Discordian date format and print this on the  stan-
       dard  output.  Alternatively,  a Gregorian date may be specified on the
       command line, in the form of a numerical day, month and year.</p>

       <p>If a format string is specified, the Discordian date will be printed in
       a format specified by the string. This mechanism works similarly to the
       format string mechanism of date(1), only almost completely differently.</p>
</blockquote>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Chemical Donny]]></title>
    <link href="https://www.taskboy.com/2005-11-16-Chemical_Donny.html"/>
    <published>2005-11-16T00:00:00Z</published>
    <updated>2005-11-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-11-16-Chemical_Donny.html</id>
    <content type="html"><![CDATA[
<img src="/img/300px-USSAlabama_WP_bomb.jpg">


<p><p>The <a href="http://news.bbc.co.uk/2/hi/middle_east/4442156.stm">BBC reports</a>:</p>

<blockquote>
<p>&laquo;An Iraqi human rights team has gone to the city of Falluja to 
investigate the use of white phosphorus as a weapon by US forces, 
a minister has told the BBC.</p>

<p>Acting Human Rights Minister Narmin Uthman said her staff would 
examine the possible effects on civilians.</p>

<p>The US has now admitted using <a href="http://en.wikipedia.org/wiki/White_phosphorus_incendiary">white phosphorus</a> 
as a weapon in Falluja last year, after earlier denying it.&raquo;</p>
</blockquote>

<p>Wait a minute.  Didn't this whole thing start with US investigating Iraq
for WMD?  Was a Iraq some kind of BYOWMD party after all?  I'm lost in the 
levels of irony in this administration.  We can now call our 
<a href="http://www.poe-news.com/features.php?feat=31845">Secretary of 
Defence</a> Chemical Donny.  Although I think Torture Muffin
will appeal more to the ladies.</p>

<p>Worst.  <a href="/img/BushFinger-1.jpg">Presidency</a>.  Evah.</p>

<p>UPDATE: While searching for "bush finger", I found at least three 
distinct instances of W flipping the bird.  Now that's klass.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Rate my music]]></title>
    <link href="https://www.taskboy.com/2005-11-16-Rate_my_music.html"/>
    <published>2005-11-16T00:00:00Z</published>
    <updated>2005-11-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-11-16-Rate_my_music.html</id>
    <content type="html"><![CDATA[
<img src="/img/ozzy.gif">


<p>Former New York City mayor Ed Koch became famous for asking the man on the 
street "how am I doing?".  Taking a page from his playbook, I've implemented
a crude voting system on the <a href="/music/">music page</a> which allows 
you to give me feedback on my work (almost) anonymously.</p>

<p></p>

<p>To prevent multiple 
voting, I accept only one vote per IP address.  Don't let that scare you too 
much, though.  I'm pretty lazy and it would take more work to find out who 
trashed my music than I would want to expend.</p>

<p>Over time, I hope this system helps me figure out what I've done that's 
interesting to other people.</p>

<p>Continue rawkin'</p>

<p>UPDATE: I'm thinking about implementing rating for my blogs too.  
I think this is a good anonymous and simple feedback mechanism.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Impaled Northern Moonforest]]></title>
    <link href="https://www.taskboy.com/2005-11-14-Impaled_Northern_Moonforest.html"/>
    <published>2005-11-14T00:00:00Z</published>
    <updated>2005-11-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-11-14-Impaled_Northern_Moonforest.html</id>
    <content type="html"><![CDATA[
<img src="/img/inm.gif">



function NewW () {
    var my_html = "Return of the NecroWizard<p>Courtesy of <a href="mailto:guitaristmatt@hotmail.com">Scribbler Hussein</a></p>";

  w = window.open('','INM','scrollbars=no,menubar=no,height=400,width=520,resizable=yes,toolbar=no,location=no');

  w.document.write(my_html); 
}


<p>Death metal.  Always maligned, oft-overlooked and rarely appreciated,
this genre of music finds its finest voice in the soulfully articulately 
melodies of <a href="http://inm.necrobation.org/">Impaled Northern 
Moonforest</a>.  Eschewing the familiar territory of industrial-grade 
distorted electric guitars for the more sensitive medium of acoustic 
steel string, these masters of metal, these bards of the barbarous thrill 
the listener with dynamic tales of grotesqueries, mutilations and other 
things I couldn't quite make out.</p>

<p>Perhaps this 
<a>fan-contributed flash video 
distills the essence of their 
wonderfulness into a jagged little pill (with an easy-swallow coating).</p>

<p>How long before the serpent of L.A. corrupts this young, fresh talent 
is anyone's guess.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Exercising the wet option: Liquid Cereal]]></title>
    <link href="https://www.taskboy.com/2005-11-13-Exercising_the_wet_option__Liquid_Cereal.html"/>
    <published>2005-11-13T00:00:00Z</published>
    <updated>2005-11-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-11-13-Exercising_the_wet_option__Liquid_Cereal.html</id>
    <content type="html"><![CDATA[
<img src="/img/liquid_cereal-pb.jpg">


<p><a href="http://www.bevnet.com/reviews/liquid_cereal/index.asp">BevNet reviews:</a></p>

<blockquote>
&laquo;Peanut Butter Liquid Cereal is one of the only (if not the only) peanut butter flavored beverage we've sampled. This uniquely-flavored dairy-based beverage not only has a peanut butter flavor, but it also has the "cereal blend" that gives Liquid Cereal its name. This, combined with the beverage's slightly thick consistency, does make you feel as though you are consuming a mixture of cereal and milk. Put all this together and you have something that, although lightly sweet in comparison, is definitely remniscent of a children's breakfast cereal. Definitely worth a try.&raquo;
</blockquote>

<p>From the what were they thinking? department comes this wholly 
unasked for breakfast treat: liquid cereal.  Traditional cereal already
comprises slurries like oatmeal and cold soups like cereal and milk.  Did 
we as a species really need to push the envelope of amorphous food to this 
degree?  I suspose if NASA had developed it for astronauts, I wouldn't be
complaining so vehemently.  Or maybe I would.  This stuff sounds pretty nasty.
</p>

<p>Even as a big booster of peanut butter, I can't recommend it as the 
foundation for a refreshing beverage.  Are people even eating a lot of peanut 
butter in general for breakfast?  This is a new tread that I've been entirely
uninformed about.</p>

<p>I urge the makers of this product to bring their culinary genius to other 
meals of the day.  Here are some suggestions:</p>

<ul>
  <li>ichorous lunch: peanut butter and jelly</li>
  <li>viscous snack: crushed jellybeans</li>
  <li>liquescent tea: sugar biscuits and jam</li>
  <li>brunch slurry: onion bagel with lox</li>
  <li>fluid grub: nachos supreme</li>
  <li>watery dinner: severely mashed potatoes</li>
  <li>runny repast: fish sticks with tartar sauce</li>
  <li>molten mess: spicy chipped beef, corn and toast</li> 
  <li>jiggly din din: chicken kiev with asperagus</li>
  <li>pulpy picnic: pepperoni cheesesteak manwich with chili fries</li>
</ul>

<p>No, really.  There's no need to thank me.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Martians are we?]]></title>
    <link href="https://www.taskboy.com/2005-11-13-Martians_are_we_.html"/>
    <published>2005-11-13T00:00:00Z</published>
    <updated>2005-11-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-11-13-Martians_are_we_.html</id>
    <content type="html"><![CDATA[
<img src="/img/molten-earth.gif">


<p>While channel surfing, I ran across a science documentary called 
"Miracle Planet."  In it, the early stages of the Earth were explored.
While I knew about 
<a href="http://www.astro.ex.ac.uk/people/gennaro/projects/planets/">planetary accretion</a>, 
I apparently didn't understand the implications of such a process.  Accretion
isn't just a bunch of dust coming together to make a doughy planet.  It's
smaller rocky bodies smashing together with larger ones.  It's an apocalyptic
process worthy of 
<a href="http://www.imdb.com/name/nm0000988/">Jerry Bruckheimer</a> 
treatment.</p>

<p>Consider first that Earth is the largest of this solar system's rocky
worlds.  Unless by some weird chance Earth attracted unusually larger 
rocks faster than the other worlds, Earth had more world-shattering collisions
with planetoids than Mars, Venus or Mercury.  These collisions would have
sterilized the surface of Earth, but not necessarily killed all life on the 
planet (see below).</p>

<p>Also note that Mars is much smaller than Earth and so has probably had 
fewer sterilization events.  We also believe that Mars was once a bit more
habitable than it is now, although water seems to be present on Mars even 
today.  It isn't a big stretch to think about Martian microbes living in the 
icy dust of Mars's soil.  We have microbes on this planet living in harser 
conditions.</p>

<p>Life is tenacious.  We are just now learning about 
<a href="http://en.wikipedia.org/wiki/Extremophile">extremophiles</a>, those
remarkable creatures that live without the "necessities" of life.  It is no
longer inconceivable that microbes inside a meteor could survive planetfall.
</p>

<p>Life may have started many times on this planet, only to be eradicated 
during accretion. Could life have evolved on Mars only to be transported to 
Earth? Is that why all life derives from one genetic tree?  Has Mars saved 
our collective bacon from the consequences of our ponderous girth?</p>

<p>This is an extraordinary claim.  Is this even feasible?  Even if E.T. 
bugs fell to Earth, why were they not sterilized during accretion?  Did the 
life bearing rocks come to Earth after the last "global reset?"  That's 
possible, but requires a little too much good timing for my liking.  Instead,
we can suppose that life hid deep under ground while the world burned.</p>

<p>New research suggests that even when the Earth was in the throes of 
accretion, the horrific global heat didn't penetrate to the mantle over 
the continents (although this isn't the case were the crust is thin, like
at the bottom of oceans [whose water would have boiled away during these 
hellish events]).  The study suggests that a Goldilocks region 
in the crust would have kept extremophile life happy enough.</p>

<p>Is this why terrestrial life is all related?  There is only one genetic 
tree to which we all belong.  Did that tree spring from a Martian seed?</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Sony sued for sucky CDs]]></title>
    <link href="https://www.taskboy.com/2005-11-10-Sony_sued_for_sucky_CDs.html"/>
    <published>2005-11-10T00:00:00Z</published>
    <updated>2005-11-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-11-10-Sony_sued_for_sucky_CDs.html</id>
    <content type="html"><![CDATA[
<img src="/img/pirate.gif">


<p>The <a href="http://news.bbc.co.uk/1/hi/technology/4424254.stm">BBC reports</a>:</p>

<blockquote>
<p>&laquo;Sony BMG is facing three lawsuits over its controversial anti-piracy 
software.</p>
<p>Revealed in late October by Windows expert Mark Russinovich, the software copy protection system hides using virus-like techniques.&raquo;</p>
</blockquote>

<p>This is great news for consumers.  Sony, who adopted a secret zero-copyright
infringment policy, created music CDs that "defended" themselves from being
copied.  This defense was to install a root kit on the offending machine.  A
root kit is a suite of programs to allow unauthorized users remote access 
to your machine.</p>

<p>While I appreciate, but don't share, Sony's concern with piracy, this 
anti-theft measure is so blantantly anti-consumer that the media giant's 
unspoken contempt for its customers is jaw-dropping.</p>

<p>Theft of all kinds is a part of doing business.  In the case of CD copying, 
Sony hasn't lost a thing.  The original CD that Sony paid to produce was paid
for by the consumer.  Copies are made at the consumers expense.</p>

<p>What about the artist?  I have found that consumers will support those 
artists whom they like.  The legion of over-marketed hacks can burn for all
I care.</p>

<p>There is one case in which I side with Sony on this.  There are those 
"pirates" that make copies to sell.  This slimy practice should be rooted 
out with the full force of law.  Measures to stop that kind of wholesale 
theft shouldn't affect the small guy.</p>

<p>Shame on you, Sony.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Taskboy's RSS popularity]]></title>
    <link href="https://www.taskboy.com/2005-11-10-Taskboy_s_RSS_popularity.html"/>
    <published>2005-11-10T00:00:00Z</published>
    <updated>2005-11-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-11-10-Taskboy_s_RSS_popularity.html</id>
    <content type="html"><![CDATA[
<img src="/img/haha.gif">


<p>I just did some quick number crunching on those requesting this blog's
RSS feed.  From August, 2005 until now, there have been over 
ten thousand requests for this feed.  Knowing web spiders as I do,
I'm not overly surprised by that number.  What is surprising is that there are
over 160 unique IP addresses requesting this feed.  That's about 159 IP 
addresses more than I thought.</p>

<p>Here's the list of the top 20 requesters.  If you recognize your IP on this 
list, I salute you!  The first, fifth and last IP addresses can be ignored as
those requests come from me.</p>

<p>
   67.18.128.218 => 2639
    24.113.6.164 => 1831
  207.245.72.170 => 1428
   64.252.94.178 => 756
    66.30.141.93 => 540
 216.148.212.188 => 532
   66.150.15.150 => 474
    146.115.28.9 => 348
 216.148.212.182 => 181
 216.148.212.187 => 153
  80.186.152.184 => 133
    68.94.148.43 => 109
     65.75.18.11 => 104
   193.166.2.179 => 076
     66.92.68.14 => 072
  144.118.54.222 => 064
  144.118.16.227 => 059
     72.14.199.1 => 056
    68.90.144.52 => 045
    66.92.68.148 => 039
</p>

<p>This, of course, means that I get a <a href="http://theatrdiva.textamerica.com/details/?r=3316174">bigger trailer</a>.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[comics that kick my butt]]></title>
    <link href="https://www.taskboy.com/2005-11-08-comics_that_kick_my_butt.html"/>
    <published>2005-11-08T00:00:00Z</published>
    <updated>2005-11-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-11-08-comics_that_kick_my_butt.html</id>
    <content type="html"><![CDATA[
<img src="/img/comics.gif">


<p>I read comics.  I have read them since I was a teenager and will probably 
continue to do so as long as I draw breath.  It's true that I'm no longer 
a rabid collector of these graphic stories, but I do buy a few titles ever 
couple of months.  There are three titles I'd like to crow about.</p>

<p>The first is from Marvel and it's called The Ultimates.  It's a 
re-imagining of the venerable supergroup the Avenagers.  The twist is that
Nick Fury and S.H.I.E.L.D. are running the group and almost all the heroes
are reprehensible cretins.  Great fun.</p>

<p>The next title is from Dark Horse Comics.  It's the Hellboy spinoff 
B.P.R.D., the Bureau for Paranormal Research and Defense.  It's another
group of misfits who generally are in trouble just beyond their abilities 
to handle it.  Mike Mignola plots these stories with John Arcudi.  Lovecraft 
would delight in these tales.</p>

<p>The last series is a manga, also published by Dark Horse, called 
Hellsing.  I was sucked into Hellsing by the anime, which differs 
quite a bit from the manga.  Up until this last issue, #7, I was disappointed
by the series.  It seemed to be devolving into a gorefest of vampires 
verus nazi vampires versus crazy Catholic cultists.  However, this last issue
has some very interesting and much needed plot twists that have hooked me 
again.  Damn you, Kohta Hirano.</p>

<p>Go get your comix on, G.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Tracking the Anabolics]]></title>
    <link href="https://www.taskboy.com/2005-10-31-Tracking_the_Anabolics.html"/>
    <published>2005-10-31T00:00:00Z</published>
    <updated>2005-10-31T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-10-31-Tracking_the_Anabolics.html</id>
    <content type="html"><![CDATA[
<img src="/img/anabolics.gif">


<p>I spent Halloween weekend recording tracks for 
<a href="http://www.theanabolics.com/">the Anabolics</a> at 
<a href="http://noopy.org/">Nate's</a> house.  Nate and I were engineering
these sessions, not playing.  We started tracking on Thursday and finished 
three songs by Sunday.  There's still a considerable amount of post 
production to do, including selecting MIDI patches and adding some 
final MIDI touches, but the band laid down solid performances for their 
material â material that's so catchy, 
<a href="http://www.who.int/en/">WHO</a> 
will be looking into them soon.</p>

<p>Those unfamiliar with the process of recording should note that it is 
a most un-rock'n'roll-like activity.  There is an incredible amount of down 
time for each musician while each part is tracked.  There are few bands that
can be recorded together live in the studio.  Rather, a scratch track must 
first be record that will guide the performances of the rest of members.  It's
much like building a house starting with the concrete foundation.  If you 
mess up the foundation, the rest of the house will jeapordized.</p>

<p>On Sunday, we did some rough mixes for the band to listen to on their very 
long trip back to NYC (from New Hampshire).  The mixes were never meant to be 
definitive, and there are several things that I've already heard that need 
to be changed.  Viva le Rock!</p>

<p></p>

<p>Thanks to Nate and the Anabolics for a delightful weekend.  I'm 
<a href="http://en.wikipedia.org/wiki/Mano_cornuto">throwing the goat</a> 
as hard as I can.  I hope you can see that.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[I'm on the TeeVee!]]></title>
    <link href="https://www.taskboy.com/2005-10-25-I_m_on_the_TeeVee_.html"/>
    <published>2005-10-25T00:00:00Z</published>
    <updated>2005-10-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-10-25-I_m_on_the_TeeVee_.html</id>
    <content type="html"><![CDATA[
<img src="/img/green_slime.jpg">


<p>Somerville residence will no doubt rejoice to learn that a new episode 
of the <a href="http://gameshelf.jmac.org/">Gameshelf</a> will air Wednesday, 
October 26 at 10PM.  The following games are reviewed: Space 
Station Assult, Awful Green Things from Outer Space and 
Star Control 2.</p>

<p>Most special of all, I'll be cohosting this ep and I killed in the 
studio.  Don't believe me?  <a href="/img/gs2_promo.mov">Watch 
this opening clip</a>.</p>

<p></p>

<p>Law and Order, we will crush you in the ratings.  No hard feelings.</p>

<p>Update: Here's <a href="http://www.ps260.com/molly/SHINING%20FINAL.mov">another trailer</a> 
for you, this one of The Shining.  It has a little different feel to it.
It suggests that the Shining is less a supernatural horror film and more a
feel-good chick film.  So many people miss that about this movie.  Enjoy.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[I'm ready for my close-up]]></title>
    <link href="https://www.taskboy.com/2005-10-16-I&apos;m_ready_for_my_close-up.html"/>
    <published>2005-10-16T00:00:00Z</published>
    <updated>2005-10-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-10-16-I&apos;m_ready_for_my_close-up.html</id>
    <content type="html"><![CDATA[
<img src="http://www.travelersdigest.com/pictures/california/la15.jpg">


<p>A few weeks ago, I visited the lovely 
<a href="http://www.access-scat.org">SCAT studios</a> to help 
<a href="http://www.jmac.org/">Jason McIntosh</a>
with his show <a href="http://gameshelf.jmac.org/">The Gameshelf</a>.  In 
a weird twist, I was asked to be in front of the camera to play 
<a href="http://www.yourmovegames.com/spacestationassault/ssa.htm">Space Station Assault</a>, created in Cambridge, MA.  It was a different way to kill a 
few hours on the weekend.</p>

<p></p>

<p>Yesterday, I returned to SCAT with Jason as a temporary cohost of the 
show.  The job involved a lot of sitting and talking, which I think played 
to my strengths as an actor.  We then filmed a two minute intro in front of 
a <a href="http://www.goemerchant1.com/index.cgi?PageToView=catalog&Department=77231&Cartid=28761129473834&Merchant=belgerphotography&ExpandedDepts=">green screen</a>, during which we were very silly.</p>

<p>I don't know when the show will air.  This is will be episode 2.  The show
normally airs at 10:00PM on Wednesdays.</p>

<p>I want to give a very public thank you to Jason for offering me this 
opportunity and hope that the once the world has seen my obvious talent,
the emotional scaring won't be too horrible.</p>

<p>If I'm needed, I shall be in my trailerâ¦</p>

<p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Killing time at Logan]]></title>
    <link href="https://www.taskboy.com/2005-10-16-Killing_time_at_Logan.html"/>
    <published>2005-10-16T00:00:00Z</published>
    <updated>2005-10-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-10-16-Killing_time_at_Logan.html</id>
    <content type="html"><![CDATA[
<img src="/img/logan_rockers.gif">


<p>This week, I'll be with group of 
<a href="http://www.leostream.com/">Leostream</a> folks in 
<a href="http://www.eventreg.com/vmworld2005/welcome.htm">Las Vegas</a> for 
<a href="http://www.vmware.com/">VMWare World 2005</a>.  But right now, I'm 
sitting in Terminal C of Logan waiting for my delayed flight to board.  A few 
notable things have already happened.</p>

<ul>
  <li>There's a rather a lot of people on this flight.  Sunday evening doesn't 
      strike me as prime travel time, but that just exposes my ignorance.
  <li>Bought a full pound of fudge.  I'm a big fan of the stuff anyway, but 
      this makes the trip feel even naughtier.
  <li>Saw a mouse scurring around the floor of my gate.  He was small by 
      Boston standards.  He scampered up into the radiator that runs along 
      the window.
  <li>Logan's WiFi is a little flaky for $8.
  <li>The Sam Adam's bar is woefully oversubscribed.
</ul>

<p>A slow start to what I hope to be an interesting trip.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Graphic RSS updated]]></title>
    <link href="https://www.taskboy.com/2005-10-14-Graphic_RSS_updated.html"/>
    <published>2005-10-14T00:00:00Z</published>
    <updated>2005-10-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-10-14-Graphic_RSS_updated.html</id>
    <content type="html"><![CDATA[
<img src="/img/mosaic.jpg">


<p>Awhile ago, I wrote a script that presents a 
<a href="/programs/graphic_rss/">graphic representation of RSS feeds</a>.  It's
mostly a toy, but kind of fun anyway.  It looks at the links in the feed, 
fetches those pages and extracts images from them.  It then creates a mosaic 
of these and turns that into an image map.  As I said, it's a toy.</p>

<p>Yesterday, I noticed it wasn't working, so I hacked it a bit more.  I also
changed the way the images get packed, so that the pictures are more spread 
out (an idea I got from one of Jon Orwant's hacks he did for O'Reilly).</p>

<p></p>

<p>Enjoy!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[New album in music section]]></title>
    <link href="https://www.taskboy.com/2005-10-10-New_album_in_music_section.html"/>
    <published>2005-10-10T00:00:00Z</published>
    <updated>2005-10-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-10-10-New_album_in_music_section.html</id>
    <content type="html"><![CDATA[
<img src="/img/nukular_potatoe_cover.gif">


<p>Cobbled together from various earlier efforts, but collected together 
for the first time, the songs that 
compose <a href="/music/#Nukular_Potatoe">Nukular Potatoe</a> are 
some of my more recent work.  Too much rock?  I think not.</p>

<p>Fun for all ages (if that age is between 13 and 19).</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[performant is a noun]]></title>
    <link href="https://www.taskboy.com/2005-10-10-performant_is_a_noun.html"/>
    <published>2005-10-10T00:00:00Z</published>
    <updated>2005-10-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-10-10-performant_is_a_noun.html</id>
    <content type="html"><![CDATA[
<img src="http://www.rotten.com/library/bio/usa/alexander-haig/haig_sm.jpg">


<p>As a public service announcement to the high-tech and public 
relations 
communities, I'd like to remind people that the word 
<code>performant</code> is 
not an adjective (and hardly a noun).  Here's what 
dictionary.com</a> 
  says:</p>

<p><blockquote>
<p>
 Main Entry:     performant
 Part of Speech: noun
 Definition:     a performer
 Etymology:      based on informant, etc.
<p>
</blockquote></p>

<p>Here's an example of correct usage:</p>

<blockquote>
In <em>Gigli</em>, brain-melting dialog was delivered by the miserable performant Ben Affleck.
</blockquote>

<p>Here's another:</p>

<blockquote>
The Gecko layout engine in Mozilla-based browsers is a superior 
performant to the previous engines.
</blockquote>

<p>Please do not use the word as an adjective.  The following usage is as 
wrong as an eighteen dollar bill:</p>

<blockquote>
My 401k portfolio is sufficiently performant to afford me early 
retirement.
</blockquote>

<p>Former NSC head, Alexander Haig would often talk in tortured locutions,
broken analogies and spoonerisms.  Don't be like Alexander Haig.  Find 
the right word for the right job.</p>

<p>Of course, you could always eschew the word entirely.  It seems to be a 
neologism.  At best, <code>performant</code> is a synonym for 
<code>performer</code> that conveys no additional information and at worst, 
it's a word that trips up the reader's eye.  No, <code>performant</code> is 
bad, bad <a href="http://dictionary.reference.com/search?q=ju-ju">ju-ju</a>.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Live aliens tonight only at Dartmouth!]]></title>
    <link href="https://www.taskboy.com/2005-10-06-Live_aliens_tonight_only_at_Dartmouth_.html"/>
    <published>2005-10-06T00:00:00Z</published>
    <updated>2005-10-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-10-06-Live_aliens_tonight_only_at_Dartmouth_.html</id>
    <content type="html"><![CDATA[
<img src="/lectures/UFOlogy/03_Decade_of_Roswell/iwanttobelieve.jpg">


<p>Last night, I helped my pal <a href="http://zorky.blogspot.com/">Mike Lord</a>
talk about aliens at Dartmouth College.
The talk</a> was about an hour long and attended 
by 25 students.  Pizza was also served.</p>

<p>This is the second time I've give this talk about the history of UFOlogy
in the twentieth century, but the first time I did so with another speaker. 
I think we got our main points across well without too many dead spots.  I 
noticed that the students, perhaps ennured to Mike's voice, fell silent when 
I spoke (loudly).  One thing I always make sure to do in public speaking is 
crank up the volume.  There's nothing worse for an audience member than
to strain to hear the content of the lecture.</p>

<p>Our format was fairly loose and interactive.  We passed out a questionnaire
to the audience.  The questions were designed to indicate whether the 
participant had experienced some kind of UFO-related phenomenon.  People 
got a mild chuckle out of it, but I think we could do a better job of selling 
it next time.</p>

<p>It one point, an audience member asked whether Mike and I believed in 
aliens.  Mike give a very thoughtful answer, which was "yes, I believe in 
aliens.  No, I don't think they've visited recently."  My answer was a bit more
dramatic.  I asked whether the audience believed their mother.  I then launched
into my mom's UFO experience, which seemed to entertain them.  Content is 
king, and freaky stories are what people came to here.</p>

<p>As a side note, we asked who in the audience believed we landed on the moon.
Only one guy indicated that he didn't believe that we had.  That was an 
awkward moment.</p>

<p>We managed to get through all of the slides, but we do need to shorten the 
lecture part to about 30 minutes, I think.  That will leave more remove 
for questions from the audience.</p>

<p>Thanks to Mike for inviting me up to participate in the talk.  The Truth 
is out there.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[I am, I said – weary of Caroline]]></title>
    <link href="https://www.taskboy.com/2005-10-03-I_am,_I_said_--_weary_of_Caroline.html"/>
    <published>2005-10-03T00:00:00Z</published>
    <updated>2005-10-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-10-03-I_am,_I_said_--_weary_of_Caroline.html</id>
    <content type="html"><![CDATA[
<img src="/img/neil-diamond.jpg" title="Sequins by the pound!" class="insert">


<p>NPR recently touched on my personal hell: the incessant singing of 
<a href="http://www.npr.org/templates/story/story.php?storyId=4930465"><em>Sweet Caroline</em> at Red Sox games</a>.</p>

<p>No one seems to know how, eight painful and toneless years ago hordes of 
drunken Red Sox fans began to 
ululate</a> 
to the chorus of that horrid, sickeningly-sweet tune, <em>Sweet Caroline</em>.  
It's not that I hate Neil Diamond's work in toto;  being a child victim of 
the seventies War on Good Taste, I'm to be accorded a certain amount of 
slack in my musical predilections.  It's not entirely due to my existentialist
loathing of Red Sox fans loitering outside my apartment.  The central 
irritant of this insufferable phenomenon must be found virology.</p>

<p>Viruses are the most primal of creatures on planet Earth.  They are composed
of nothing more than a protective protein coat and strains of DNA (or RNA).
So humble are they, that some biologists debate whether to classify viruses 
as life at all.  But for now, grant me that these critters are among the living and 
indeed may be the most ancient form of life that exists today.</p>

<p></p>

<p>If Darwinian evolution is right (and <a href="index.php?bid=21">it is</a>), 
then 
life began in oceans of amino acids bundled into compounds called proteins.  
At some point, these proteins gained the remarkable property of 
self-replication.  That is, some of these proteins made mirror images of 
themselves using the abundant material floating around it.  These copies went 
on to make more copies and the wheel of life started a-turning.</p>

<p>But, as <a href="http://www.glitterrock.org/facelondo.html">Londo 
Mollari</a> noted, it is an imperfect universe.  In making copies of itself, 
sometimes the protiens aren't assembled entirely correctly.  This is a 
mutation.  Most mutations are harmful and kill off or disadvantage the 
offspring, but a small number of these lead to better adapted, more 
survivable life.
So, given a couple of million years, several radical climate changes 
and a handful keyhole extinction events, these tiny replicators consolidate 
into colonies which form fish, amphibians, 
retiles, mammals and finally, you and me.  All thanks to little mistakes.</p>

<p>Viruses make mistakes all the time, which is a bit sad considering they 
only do one thing: make copies of themselves.  Besides the shear simplicity 
of these buggers, their penchant for mutating makes them difficult to contain 
with immunization and hard to isolate.  Watch the most excellent movie, 
The Andromeda Strain</a> 
for a clear picture of the terror contain in these unseen specks of goo.</p>

<p>And it's the little mistakes that have, over nearly a decade, created 
another monster.  Mutated, the once 
quiet, abashed chanting of the <em>Sweet Caroline</em> chorus across the 
street at Fenway Park has morphed into a hideous enormity of volume, grunts 
and self-congradulatory swagger that, without fail, chills my spine when I hear
the opening salvo of cheesy disco horns.  
It is a Lovecraftian horror beyond reckoning. 
<em>&#207;a! &#207;a!  Cthulhu fhtagn!</em></p>

<p>Still, it beats those thrice-damned low-pass fly overs by F16's.  Would it 
be too much to publish the schedule of these fly overs so that I might not 
think WWIII has begun?  A pox on your 
<a href="http://www.homestarrunner.com/sbemail98.html">grumblecakes</a>!</p>

<p><br></p>

<p>Update: As I finish editting this entry, some jackball is standing 
outside on the corner of Boylston and Yawkee Way wailing inarticulately and 
brandishing a sign that says "MVP API(L?) for President," with appears to be 
in reference to some sort of base-ball tournament recently concluded.  Fie.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Golf: a Crucible of Manhood]]></title>
    <link href="https://www.taskboy.com/2005-09-26-Golf__a_Crucible_of_Manhood.html"/>
    <published>2005-09-26T00:00:00Z</published>
    <updated>2005-09-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-09-26-Golf__a_Crucible_of_Manhood.html</id>
    <content type="html"><![CDATA[
<img src="http://www.valhol.com/images/golf-ball.jpg">


<p>Last weekend, I was invited to two days of heavy drinking, orgiastic eating
and golf.  I hope I haven't startled readers of this blog by admitting I use
golf recreationally.  The event was
arranged by my brother Archie, as it has been for the last three years.  Its
main purpose to reunite his Babson college cohorts (class of '83) for forty 
eight hours of mayhem and bad behavior.</p>

<p>Now, if you know that I graduated high school in '89 and you do the 
math, you'll notice that I'm much, much younger than these old men.  What 
could we possibly have in common to talk about?  As it turns out, we have a 
lot in common because I visited Archie while he was enrolled at Babson.  That 
means that he brought his ten year old brother to visit his college, his frat 
and his friends.  The psychological damage from that experience continues to 
this day.</p>

<p>While the strict rules of the event prevent me from detailing what happened
during the weekend (naturally, what happens on Nantucket, stays on Nantucket),
I can mention the results of the golf tournament.  There were three teams of 
3-4 golfers playing scramble golf, in which each member shots and the best shot
is used.  This means you've got about four players taking the same shot each
time.</p>

<p>I'm long out of practice at golf, although I occasionally do get to driving
ranges and putt-putt courses.  Consequently, I materially contributed to 
the team's success with a handful of decent drives and putts.  Sadly, my 
medium game of chipping is utterly in ruin.  I couldn't chip my way out of a 
bag of <a href="http://www.fritolay.com/fl/flstore/cgi-bin/Nutrition_ProdID_3023.htm">Ruffles</a>.  
Fortunately, I only needed to perform 1/4 of the time (a statistic which fails 
to impress the ladies, it seems).</p>

<p>Our team shot last and as luck would have it, the tourament came down to 
our performance on the last hole, a par 5.  We were running a little over par
for the back nine, as I recall.  We needed to birdie the last hole to win, or 
par to tie.  Our team was drunk, er, fatigued and not driving too well.  We 
did get to the green in 2 strokes, but our ball was a solid 35 feet from the 
pin.</p>

<p>The first attempt to make the putt showed that the green was running 
slowly.  The next two attempts confirmed the first observation.  As the rest 
of the tournament players gathered around to watch the outcome, the taunting 
started.  I, the self-acknowledged rookie, had stepped up to take the last 
shot of the game.</p>

<p>I saw that the green was basically flat.  The primary difficulty was the 
distance and the sluggish green.  This worked to my putting strength, which is 
in regulated the force I apply to the stroke.  This is my primary skill at 
pool too.  My wetware doesn't process geometry well on the fly.</p>

<p><p>As I settled into the shot, the pressure dial got bumped up when one of the 
other player's whipped out a camera to record the last stage of the game.  I 
addressed the ball, shut out the external world (which I really, really good
at doing) and took my swing.  </p>

<p>In attaining the 
<a href="http://www.kwanumzen.com/pzc/newsletter/v14n07-2002-jul.html">Zen no-mind condition</a>, 
the ball seemed to roll for about 
fifteen minutes.  Had I put too much muscle into it?  Not enough?  If the shot
missed, would my brother (who was on my team [or was I on his?]) ever invite 
me to another weekend event?</p>

<p>As the ball slowly rolled to a stop, time resumed it's normal pace.  
I found that I managed to put the ball within <em>one foot</em> of the pin. 
A great wail was released by the assembled throng, part astonishment, part 
grief.  Nothing is so sweet as the tears of my opponents.  I easily knocked 
the ball in for a birdie and the victory.</p>

<p>It is true that few poets will sing of my triumph that day.  No artist
will erect a statue on the green to my glory.  But I will know that for 
one brief moment, there was a most unlikely hero of the hour who went by the 
name <em>Joe Johnston</em>.</p>

<p></p>

<p>Special thanks and appreciation is due to the Family Manix for hosting our 
motley mob and to the Truesdales for happy hour.  Both contributions were 
vital to the success of the weekend.  Thanks also to Archie for his 
logistical skills and uncanny ability to awaken earlier than most of us 
to cook breakfast.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[five-bladed irony]]></title>
    <link href="https://www.taskboy.com/2005-09-19-five-bladed_irony.html"/>
    <published>2005-09-19T00:00:00Z</published>
    <updated>2005-09-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-09-19-five-bladed_irony.html</id>
    <content type="html"><![CDATA[
<img src="http://money.cnn.com/2005/09/14/news/fortune500/gillette/gillette_fusion_story.jpg">


<p>I was first introduced to <a href="http://www.theonion.com/">The Onion</a>
in the mid-nineties.  Each new issue was a bundle of joy adding to the mystique
of a fledging Web.  Some suggest that The Onion has lost its edge, but 
I'm not so sure.</p>

<p>Last year, the following fake news story was emitted:</p>

<blockquote>
&laquo;Would someone tell me how this happened? We were the fucking vanguard 
of shaving in this country. The Gillette Mach3 was the razor to own. Then the 
other guy came out with a three-blade razor. Were we scared? Hell, no. Because 
we hit back with a little thing called the Mach3Turbo. That's three blades and 
an aloe strip. For moisture. But you know what happened next? Shut up, 
I'm telling you what happened â the bastards went to four blades. 
Now we're standing around with our cocks in our hands, selling three blades 
and a strip. Moisture or no, suddenly we're the chumps. Well, fuck it. We're 
going to five blades.&raquo;
</blockquote>

<p>â<a href="http://www.theonion.com/content/node/33930">James Kilts, CEO/President of Gillette</a>: Feb, 2004</p>

<p>The strategic use of profanity, bravado and whimsy made this article a 
winner when I saw it.  I mean, what moron would really create a 5-bladed 
razor?  Or care that much about shaving technology? I have trouble using 
the 3-blade one.  The face is enormous and unwieldy.  So, the five blades 
idea is just right out.</p>

<p>Unfortunately, not everyone is good at picking up on irony.  Clearly the 
R&amp;D guys at Gillette aren't.</p>

<blockquote>
<p>&laquo;"Gillette Fusion is more than just a next generation shaving brand, 
it's the future of shaving," said James M. Kilts, Chairman, President and CEO, 
The Gillette Company. "Gillette Fusion extends our rich history of innovation. 
It's a breakthrough platform that will continue to drive our category 
leadership."</p>
<p>Both shaving systems feature a breakthrough 5 blade Shaving Surface(TM) 
technology on the front of the cartridge, with blades spaced 30 percent 
closer together than MACH3 blades. The combination of adding more blades and 
narrowing the inter-blade span creates a "Shaving Surface" that distributes 
the shaving force across the blades, resulting in significantly less 
irritation and more comfort. The Precision Trimmer(TM) blade, a single blade 
on the back of the cartridge, allows men to easily trim sideburns, shave under 
the nose and shape facial hair with control and precision. &raquo;</p>
</blockquote>

<p>â<a href="http://phx.corporate-ir.net/phoenix.zhtml?c=106746&p=irol-newsArticleProduct&t=Regular&id=756083">Gillette press release</a>: Sept., 2005</p>

<p>Again, I remind readers that The Onion is strictly meant to 
entertain and not pollute the future timestream with 
<a href="http://www.theonion.com/content/node/28784">dire predictions of
doom</a>.  Because that's not funny at all.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[State Secrets 3: A New Beta]]></title>
    <link href="https://www.taskboy.com/2005-09-12-State_Secrets_3__A_New_Beta.html"/>
    <published>2005-09-12T00:00:00Z</published>
    <updated>2005-09-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-09-12-State_Secrets_3__A_New_Beta.html</id>
    <content type="html"><![CDATA[
<table>
<tr>
  <td><img src="/programs/ss3/images/evil_guy.png"></td>
  <td><img src="/programs/ss3/images/resthome.png"></td>
</tr>
<tr>
  <td><img src="/programs/ss3/images/tealicious.png"></td>
  <td><img src="/programs/ss3/images/hobby_shop.png"></td>
</tr>
</table>


<p>The third and hopefully last incarnation of <em>State Secrets</em> 
is now <a href="/programs/ss3/">available on taskboy.com</a>.  There will be 
bugs, but the game is afoot now.  It really has a win condition and PvP 
violence, so that's delic.</p>

<p><em>State Secrets</em> is a game I designed that was inspired by Seth 
Able's <a href="http://rtsoft.com/fq/">Funeral Quest</a> and his excellent 
earlier offering Legend of the Red Dragon (L.O.R.D).  In SS, you assume the 
role of either an FBI agent or shadowy Man In Black to ferret out a collection
of Secrets from ne' do wells around town.  The game ends after someone defeats
the 3 Lodge sub-bosses in Pier 13.</p>

<p>Putting together this game was <em>a lot more work</em> than I ever 
thought and I'm certain I'm not done.  I need a lot more error detection and 
cheat prevention, at a minium.  Business applications are far easier to write.
</p>

<p>Anyway, sign up and poke around.  Let me know what you think.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Cheap Sneakers, Encode updated]]></title>
    <link href="https://www.taskboy.com/2005-09-10-Cheap_Sneakers,_Encode_updated.html"/>
    <published>2005-09-10T00:00:00Z</published>
    <updated>2005-09-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-09-10-Cheap_Sneakers,_Encode_updated.html</id>
    <content type="html"><![CDATA[<p>I've posted a couple of remixes and rethought some of the collections a bit. 
The playlist of <a href="/music/#Cheap_Sneakers">Cheap Sneakers</a> has been been shortened to 
four of the best songs.  "Fall Down" and "Plug Nickle" have been remixed and substantially 
enhanced with retracting.  The work in progress, <a href="/music/#Encode">Encode</a> has it's
playlist in the preferred order and a more complete version of the song "Not Amused," which 
I feel still needs work.  However, this version is closer to my vision than the demo.</p>

<p>With autumn and winter approaching, I hope to get more studio time in with 
<a href="http://www.noopy.org/">Nate</a>.  There's a great version power trio version of 
"Rusted Gunnels" that I need to finish mixing that will entertain, I'm sure.</p>

<p>Carry on, my wayward sons.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[a wholy human disaster]]></title>
    <link href="https://www.taskboy.com/2005-09-10-a_wholy_human_disaster.html"/>
    <published>2005-09-10T00:00:00Z</published>
    <updated>2005-09-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-09-10-a_wholy_human_disaster.html</id>
    <content type="html"><![CDATA[
<img src="/img/donkey.gif">


<p>It seems that a giant wind storm is decimating this great country, 
spreading misery and malcontent in its wake.  I'm talking about the 
punditry surrounding the government response to Katrina.  It seems clear to 
me that no one level of government can hog all the blame for this incredible 
failure that has cost hundreds or even thousands of American lives and will 
affect all of us financially.  Will every September of presidential 
inaugural years include heartbreaking and unprecedented castrophes from now 
on?</p>

<p>Via Fark.com comes <a href="http://politicalhumor.about.com/od/currentevents/a/katrinaquotes.htm?nl=1">this list of quotes</a> from 
the "compassionate conservatists" currently running the asylum, er, 
country.  Here's a small selection:</p>

<blockquote>
<ul>
  <li>"I don't think anybody anticipated the breach of the levees." âPresident Bush
  <li>"Considering the dire circumstances that we have in New Orleans, virtually a city that has been destroyed, things are going relatively well." âFEMA Director Michael Brown
  <li>"I have not heard a report of thousands of people in the convention center who don't have food and water." âHomeland Security Secretary Michael Chertoff
  <li>"I mean, you have people who don't heed those warnings and then put people at risk as a result of not heeding those warnings. There may be a need to look at tougher penalties on those who decide to ride it out and understand that there are consequences to not leaving." â Rick Santorum [ed. a personal favorite which I read as "the poor need to be punished for their willful poverty"]
   <li>"What didn't go right?" â President Bush
   <li>"Now tell me the truth boys, is this kind of fun?" âHouse Majority Leader Tom Delay
</ul>
</blockquote>

<p>This does beg the questions: how many distasters does it take to topple a 
presidency?  How much indifference to the average American's security will the 
electorate suffer before holding their leaders accountable?  As I frequently 
say, leaders don't get respect for their power, but for the responsibility 
that they carry.  Even if you think the Feds have been burdened with more 
than the appropriate amount of the blame for the failed Katrina preparations 
and remediations (which given the number of outlets of 
blathering is probably true), I hope we can agree that quotes above 
are <em>unfortunate</em>.</p>

<p>And yes, Tom Delay, this was kind of fun!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Putting the "squeal" back into SQL]]></title>
    <link href="https://www.taskboy.com/2005-09-09-Putting_the_&quot;squeal&quot;_back_into_SQL.html"/>
    <published>2005-09-09T00:00:00Z</published>
    <updated>2005-09-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-09-09-Putting_the_&quot;squeal&quot;_back_into_SQL.html</id>
    <content type="html"><![CDATA[<p>For my long-term gaming project, State Secrets, I had to write this gem of SQL code:</p>

<blockquote>
<code>SELECT c.*,length(session_id) as online FROM characters as c LEFT JOIN users as u ON u.current_char=c.id
LEFT JOIN sessions as s USING (username) WHERE u.username != "admin" ORDER BY c.savvy DESC</code>
</blockquote>

<p>Even now, that double join makes my eyes bleed.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Dating anti-patterns from Fark.com]]></title>
    <link href="https://www.taskboy.com/2005-09-08-Dating_anti-patterns_from_Fark.html"/>
    <published>2005-09-08T00:00:00Z</published>
    <updated>2005-09-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-09-08-Dating_anti-patterns_from_Fark.html</id>
    <content type="html"><![CDATA[
<img src="/img/trekdate-small.gif">


<p>As a valuable public service anouncement, Fark offers 
<a href="http://forums.fark.com/cgi/fark/comments.pl?IDLink=1655309">this thread</a> to all those seeking to improve their 
dating life.</p>

<p>I, for one, welcome our Fark overlords.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Phil the Shill]]></title>
    <link href="https://www.taskboy.com/2005-09-05-Phil_the_Shill.html"/>
    <published>2005-09-05T00:00:00Z</published>
    <updated>2005-09-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-09-05-Phil_the_Shill.html</id>
    <content type="html"><![CDATA[
<img src="http://www.otvoreni.hr/UserDocsImages/phil%20collins%201.jpg">


<p><a href="http://memepool.com/">Memepool</a> has an entry about 
rap stars covering the <a href="http://www.lyricsfreak.com/g/genesis/58856.html">lilywhite lilith</a> himself, Phil Colins.  One 
can understand the occasional cover of "In the Air Tonight," but "Sussudio"?
The mind reels. But wait, there's more: <a href="http://www.amazon.com/exec/obidos/ASIN/B00005B6HS">Urban Renewal</a>.  It's a whole album of Collins covers by
"urban and hip-hop stars".
</p>

<p>Good gravy, someone even covered "Against All Odds."  <em>shudder</em></p>

<p>I need to up my dosage of anti-nostalgia pills.</p>

<p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[People!  It's made of PEOPLE!]]></title>
    <link href="https://www.taskboy.com/2005-09-02-People___It_s_made_of_PEOPLE_.html"/>
    <published>2005-09-02T00:00:00Z</published>
    <updated>2005-09-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-09-02-People___It_s_made_of_PEOPLE_.html</id>
    <content type="html"><![CDATA[
<img src="http://www.nald.ca/clr/newstart/newyear/graphics/graphic4.JPG">


<p>Australia's Herald Sun is <a href="http://www.heraldsun.news.com.au/common/story_page/0,5478,16471908%255E663,00.html">reporting</a>:</p>

<blockquote>
<p>&laquo;Mad cow disease could have been caused by cattle feed contaminated with human remains, an expert said yesterday.</p>
<p>Prof. Alan Colchester claims body parts in India, infected with a human form of the disease, may have become mixed with animal carcasses that were imported to Britain. In the 1960s and '70s, Britain imported hundreds of thousands of tonnes of ground-up animal parts to make feed and fertiliser. Half of it came from India. The theory overturns past views of how mad cow disease began.&raquo;</p>
</blockquote>

<p>When my people come to power, all food will be made from nutrious and 
<a href="http://en.wikipedia.org/wiki/Soylent_Green">guilt-free seaweed</p>

<p>.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The Big Easy]]></title>
    <link href="https://www.taskboy.com/2005-08-31-The_Big_Easy.html"/>
    <published>2005-08-31T00:00:00Z</published>
    <updated>2005-08-31T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-08-31-The_Big_Easy.html</id>
    <content type="html"><![CDATA[
<img src="img/king_cake.jpg" alt="Marti Gras King Cake">


<p><p>I knew I should have made a trip to New Orleans in my misspent youth and 
now <a href="http://www.sciencedaily.com/upi/?feed=TopNews&amp;article=UPI-1-20050830-10341800-bc-us-katrina-la-1stld.xml">it's too late.</a>  I guess I'll just 
have to be satisified visiting <a href="http://www.jordans.com/tours/store_tour.asp?tourid=natick">these guys</a> instead.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Starbucks]]></title>
    <link href="https://www.taskboy.com/2005-08-30-Starbucks.html"/>
    <published>2005-08-30T00:00:00Z</published>
    <updated>2005-08-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-08-30-Starbucks.html</id>
    <content type="html"><![CDATA[<p>I'm <em>blogging</em> from <em>Starbucks</em>!  Can I have another 
book deal now! <a href="http://www.zippythepinhead.com/">YOW!</a></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[updated Mother Bodfish]]></title>
    <link href="https://www.taskboy.com/2005-08-28-updated_Mother_Bodfish.html"/>
    <published>2005-08-28T00:00:00Z</published>
    <updated>2005-08-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-08-28-updated_Mother_Bodfish.html</id>
    <content type="html"><![CDATA[<p>I added about 6 more tracks to the <a href="/music/#Mother_Bodfish">Mother 
Bodfish</a> album.  Because, this music is for the people.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[notes in a classroom]]></title>
    <link href="https://www.taskboy.com/2005-08-25-notes_in_a_classroom.html"/>
    <published>2005-08-25T00:00:00Z</published>
    <updated>2005-08-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-08-25-notes_in_a_classroom.html</id>
    <content type="html"><![CDATA[<p><a href="http://www.wired.com/wired/archive/13.09/stewart.html">From wired</a>:</p>

<blockquote>
&laquo;The Internet is just a world passing around notes in a classroom. That's all it is. All those media companies say, "We're going to make a killing here." You won't because it's still only as good as the content.&raquo;
</blockquote>

<p>âJon Stewart</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[sympathy for the devils]]></title>
    <link href="https://www.taskboy.com/2005-08-22-sympathy_for_the_devils.html"/>
    <published>2005-08-22T00:00:00Z</published>
    <updated>2005-08-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-08-22-sympathy_for_the_devils.html</id>
    <content type="html"><![CDATA[
<img src="http://www.rollingstones.com/abiggerbang/images/rs.jpg" alt="Rolling Stones">


<p>The paleolithic<a href="#paleolith">*</a> rockers, 
the Rolling Stones played at my 
<a href="http://www.redsox.com/">neighbor's place</a> last night and, for 
old, old men, they seemed to put on a spirited show of crappy tunes.  Having 
never liked the Stones to begin with, I was free from the forebarence that 
nostalgia sometimes produces in listening to bands from one's youth.  Several
times last week, the night was interrupted by Stones practicing at Fenway Park.
Please believe me when I say that they sucked hard during rehersals.  And they
were playing their <em>standards</em>.  I guess thirty years isn't enough 
time to explore the nuances of Jumping Jack Flash (n.b. it's a gas, gas, gas). 
However, with the addition of pyrotechnics, a warm-up act of the Black Eyed 
Peas and beer, the geriatric group managed to put on a coherent and lively 
show.  However, there was little life or meaning in this band's readings of 
their own songs.  You could have just as easily replaced the band with a 
bombbox.  One standout number was a cover of the Ray Charles "The Right Time,"
complete with a horn section.  Even that, I fear, was still a bit watered 
down.  The evening ended with a five 
song encore that included the perfected Jumpin' Jack Flash and, again, more 
fireworks.</p>

<p></p>

<p>I'd like to point out the vast number of limos, stretched sedans and 
elongated SUVs that graced the streets of my neighborhood last night.  It's 
not just the band that's aged, but their fans.  Fatted on years of yuppy life,
reaping the glory of wise 401K investiments, these sated empty nesters 
rolled in the park, tarted up like French whores, to get a faint whiff from 
that distant land of their youth that will only get progressively further 
away from them.  On the upside, they were less troublesome than the average 
baseball crowd, so that had that going for them.</p>

<p>In short, the Stones appeal has always eluded me.  Certainly, there is no
siren in their song, so I suppose their draw must of the personality of Mr. 
Jagger.  Still, I do have to credit the energy that these ancients emitted
last night.  That's no mean feat.</p>

<p><br>
<br>
<br>
<br>
<p><a>Note:</a> "Paleolithic" means "old stone," which 
you have to admit is applicable here. </p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[music section updated]]></title>
    <link href="https://www.taskboy.com/2005-08-20-music_section_updated.html"/>
    <published>2005-08-20T00:00:00Z</published>
    <updated>2005-08-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-08-20-music_section_updated.html</id>
    <content type="html"><![CDATA[<p>I've reorganized the <a href="/music/">music section</a> so that 
the songs are grouped into "albums."  I've added around a half dozen 
<a href="/music/index.php#Mother_Bodfish">Mother Bodfish</a> tracks and will add more over time.  Even after almost fifteen 
years, those little bits of madness make me laugh out loud.</p>

<p>Also, it is my desire to produce at least one
CD of my music.  In the near future, I'd like to setup some kind of pay site 
for those who want to support my efforts directly.  I've had a few thoughts 
on this.  One model is to offer $25/year subscriptions that allow users 
access to a restricted directory with exclusive content. Another model
is to offer all my songs for free, but put up a donation button.  
<a href="http://www.julianahatfield.com/">Juliana Hatfield</a> experimented 
with this model, but stopped.  She said that the program worked well, yet
she's also not doing it anymore.  The last model is like iTunes, in which you 
pay $1 for each full song.</p>

<p></p>

<p>If you're interested in supporting my musical activities, which model would
you recommend?  Please <a href="mailto:biz@taskboy.com">email me</a>.</p>

<p>Update: I decided to accept donations for now.  It's easy to set 
up and doesn't precude a premium content site later.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[jurassic park meets modern consumer electronics]]></title>
    <link href="https://www.taskboy.com/2005-08-19-jurassic_park_meets_modern_consumer_electronics.html"/>
    <published>2005-08-19T00:00:00Z</published>
    <updated>2005-08-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-08-19-jurassic_park_meets_modern_consumer_electronics.html</id>
    <content type="html"><![CDATA[<p><p>Some would site <a href="http://hooptyrides.blogspot.com/2005/08/megagiant-wood-ipod-eliminates-mugging.html">the following device</a> as an example of overengineering.
It converts vinyl LP records into mp3s via an iPod.</p>


<img src="/img/ipod-lp.jpg">


<p><p>However, those critics would be entirely wrong.  Many of my generation only
vaguely remember that electronic devices such as TVs and stereos used to be 
sold in very large and heavy wood furniture frames.  They were meant to reflect
affluence as much as fulfill their primary objective.  I'm not one that pines
for the old days of vinyl (I think digital music</a> is just 
fine), but I'm tickled by the elabrate fussiness that transformed <br>
the relatively disposable iPod back into an old-school furniture-appliance. </p>

<p>Despite my glee at this hack, my aging back does approve of the comparitive weightlessness of 
today's devices.  In the old days, you tended to plan your interior design 
around the TV and stereo because you sure as shootin' weren't moving them.</p>

<p>To the makers of this fanciful iPod mod: I salute you!</p>

<p>Update: For reasons unknown, my ruby iMac that I found in 
the trash is booting again!  Happy days!  Who said that ignoring a 
problem won't make
it go away?  He or she (or maybe even it) was wrong!</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[the American psyche in oil paint]]></title>
    <link href="https://www.taskboy.com/2005-08-18-the_American_psyche_in_oil_paint.html"/>
    <published>2005-08-18T00:00:00Z</published>
    <updated>2005-08-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-08-18-the_American_psyche_in_oil_paint.html</id>
    <content type="html"><![CDATA[<p>In celebration of 75 years of Grant Wood's <em>American Gothic</em>, 
the crazy Farkers at <a href="http://fark.com/">fark.com</a> have posted 
their <a href="http://forums.fark.com/cgi/fark/comments.pl?IDLink=1620765">own
 takes</a> on the iconic work.  These interpretations range for the 
irrelevant to the tasteless, but here's my favorite.  Somehow, it reminds
me of the <a href="http://www.screamingpickle.com/members/StarWarsKid/">Star Wars kid</a>.</p>

<p><br></p>


<img src="http://tinypic.com/akbmfc.jpg">

]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[His noodly appendage be praised]]></title>
    <link href="https://www.taskboy.com/2005-08-17-His_noodly_appendage_be_praised.html"/>
    <published>2005-08-17T00:00:00Z</published>
    <updated>2005-08-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-08-17-His_noodly_appendage_be_praised.html</id>
    <content type="html"><![CDATA[
<img src="/img/flying_spaghetti_monster_with_man.jpg" class="insert">


<p><p>It looks like the fight over Intelligent Design is 
<a href="http://www.venganza.org/">only getting started</a>.</p>

<blockquote>
Â« Let us remember that there are multiple theories of Intelligent Design. I and many others around the world are of the strong belief that the universe was created by a Flying Spaghetti Monster. It was He who created all that we see and all that we feel. We feel strongly that the overwhelming scientific evidence pointing towards evolutionary processes is nothing but a coincidence, put in place by Him.Â»
</blockquote>

<p><p>Remember: if you insist on telling me your nonsense, I'll be force to tell 
you mine.  Let's avoid this arms race of piffle.
<br></p>

<p>Follow-up: It has been pointed out to me that readers of this blog
may not have the inestimable advantage of knowing what's going on inside my 
head as well as I do.  Why am I so hostile to religion?  What's my problem 
with letting people believe whatever they what to?  Why am I such a 
hypocritical, fascist pig?  Might I consider taking a long walk off a short 
pier?</p>

<p>It may surprise my critics to learn that I think that there is a place for 
religion and mystical beliefs in modern life.  Religion is but one way to 
provide an ethical matrix that allows individuals to curb their more selfish 
interests in favor of the greater social good.  It is no easy task to teach 
<a title="Richard Dawkin's /The Selfish Gene/" href="http://www.amazon.com/exec/obidos/ASIN/0192860925">animals 
altruism</a>, 
since self interest gets rewarded in the short term, but altruism often 
defers its reward into some unspecified future (n.b. this a gross 
extrapolation of Dawkins point about how genes survive through the ages, but
his point has applicability to human behavior too, I think).</p>

<p>Religion's answer to the question "how did the Universe get here" is as 
well supported as any scientific answer.  Let me be more clear on this point.
What happened just before the Big Bang expansion that lead to the four 
fundamental forces of matter and elements and stars and planets is really 
anybody's guess.  There's very little direct evidence for the time before time.
So the God hypothesis is, to me, as is as believable as any other.</p>

<p>Of an equally unprovable nature is the question of life after death (and 
we can include reincarnation here).  I have not seen any unassailable evidence
that shows what happens after we die.  Similiarly, there isn't an answer to 
mechanism that is human consciousness.  The theist and athesist prop up their
solutions on the same table here.</p>

<p>Religion's mythology is a wonderful nutrient to our imagination.  Unlike 
more rationalist thinkers, I value imagination, fantasy and whimsy quite 
highly.  Life would be all work and no play without them.  The book of Genesis
is filled with not just simple morality tales, but real human drama.  What 
readers of the story of Adam and Eve's forced migration from Eden can't help 
thinking of the difficulties any immigrant couple faces in general?  The 
stress on a marriage brought on "bad decisions" made by the spouces rings 
clearly though the parable.  The God 
and Eden bits don't need to be literally true to make the human side of the 
story compelling and applicable to modern readers.</p>

<p>So much for what religion does well.</p>

<p>Where followers of religion go off the deep end is in the rejecting 
knowledge of the natural world that has been gained through the scientific 
method.  How is the scientific method a more reliable source of knowledge 
than the Divine Word of God?  The answer is simply that the evidence and 
argument for any scientific hypothesis can be and must be subjected to 
criticism, scrutiny and rigous debate before being accepted as true.  
Accepted by whom?  Ultimately, the scientific method invites all of us to 
individually test and debunk any and all assertions made.  If you can show by 
contradictory evidence or logically rigous arguments why an assertion cannot 
be true, the scientific method all but demands that you do so.</p>

<p>The natural world as revealed by Religion cannot be supported by the 
scientific method.  It is testably wrong to suggest Earth is around 
6,000-10,000 years old.  That's not an opinion.  That's a fact.  We know the 
age through carbon-dating rocks, through the fossil evidence, through light 
traveling to us from distant stars, through the decay of radioactive rocks 
and through the basic formology of the planet.  All of these points of 
evidence have been independently examined and all mutually support 
each other.  However, any one of us is allowed to review the evidence and 
arguments for this claim and present scientifically rigous evidence to the 
contrary.  If that argument explains the evidence better, your theory will 
displace the old one.</p>

<p><p>This is not what Intelligent Design does with the theory of Evolution 
through Natural Selection.  Rather than debate this point, which I admit 
I'm poorly equipped to do, let me simply refer the open minded to 
Richard Dawkins on 
<a href="http://www.simonyi.ox.ac.uk/dawkins/WorldOfDawkins-archive/Dawkins/Work/Articles/2002-03-09scientistsview.shtml">fundamentalist science 
teachers</a>, 
<a href="http://www.simonyi.ox.ac.uk/dawkins/WorldOfDawkins-archive/Dawkins/Work/Articles/2002-03-18badscience.shtml">Young Earthers</a> and 
<a href="http://www.salon.com/news/feature/2005/04/30/dawkins/index_np.html">Intelligent Design</a>.  Intelligent Design (ID) attempts to explain the 
complixity we observe in the Life and the Universe.  Unfortunately, ID uses 
its conclusion as its primary supporting argument (which, if you think about 
it, saves a lot of time collecting evidence from the field).  From the 
<a href="http://www.intelligentdesignnetwork.org/">Intelligent Design 
Network</a>:</p>

<blockquote>
Â«In a broader sense, Intelligent Design is simply the science of design 
detection â how to recognize patterns arranged by an intelligent cause for a 
purpose.  Design detection is used in a number of scientific fields, 
including anthropology, forensic sciences that seek to explain the cause of 
events such as a death or fire, cryptanalysis and the search for 
extraterrestrial intelligence (SETI). An inference that certain biological 
information may be the product of an intelligent cause can be tested or 
evaluated in the same manner as scientists daily test for design in other 
sciences.Â»
</blockquote>

<p>The ID argument can be correctly reduced to "I can't imagine how complexity
can happen out of randomness, therefore it didn't.".  Dragging in the real
and legitimate uses of pattern detection for <em>sentient activities</em>
is a ploy wothy of P. T. Barnum.  Of course there's conscious pattern behind 
patterns created by consciousness.  And, in other news, 4 remains equal to 4
numerically.  This is a 
<a href="http://en.wikipedia.org/wiki/Tautology">tautology</a>.</p>

<p>ID will bring us as much new technology as 
<a href="http://www.ghostweb.com/">ghost hunting.</p>

<p>Rejecting the scientific method as the only standard for objective, 
verifiable truth opens the flood gates to irrational thinking.  Irrational 
thinking is governed by fear, uncertainty and doubt and should be avoided 
where possible.</p>

<p>I vigorously oppose teaching ID in science classes.  It is not science 
at all.  Please do bring ID into the rhetoric and debate classes, where it 
belongs.  If you, gentle reader, want to believe in ID, that's your 
constitutionally protected right to do so.  However, I cannot abide those 
who insist on making public schools worse because of the Bad Craziness in 
their own heads.  That's what 
<a href="http://www.capecodacademy.org/home/home.asp">private schools</a> 
are for.</p>

<p></p>

<p>It is not scientists who are infallible, but the process.  Until God gets 
a blog to explain His reality to us, we must put our trust in the scientic 
method to understand this amazing Universe.</p>

<p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Peter Cummings]]></title>
    <link href="https://www.taskboy.com/2005-08-15-Peter_Cummings.html"/>
    <published>2005-08-15T00:00:00Z</published>
    <updated>2005-08-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-08-15-Peter_Cummings.html</id>
    <content type="html"><![CDATA[
<img src="/img/phc.gif">


<p>This week I learned of the death of two people influential to 
my life, though each in different ways.  The first was illustrator 
<a href="http://www.gamingreport.com/article.php?sid=17397&mode=thread&order=0">David Sutherland III</a>, whose work for TSR's Dungeons & 
Dragons series fueled my early dreamlife.  Reading between the lines, it 
seems that Mr. Sutherland, 56, was hitting the sauce pretty hard.  He had 
many disappoints in life, it seems.  He was rumored to be bitter about his 
divorce.</p>

<p><p>The other passing of importance to me is that of 
<a href="http://www.cellobop.com/merchandise.html">Peter Cummings</a> 
(link goes to his former Holiday Clocks bandmate, Gideon Freudmann).  Peter 
and I met on Cape Cod in a desultory period in both our lives in the early
1990s.  Peter was turning thirty and I, 20.  Through a mutual love of music 
and <a href="http://www.fantasyarts.net/Salvador_Dali/Salvidor_Dali_Moustache.jpg">dadaism</a> (or perhaps whimsy is a better word), we began 
to record music together on his four track cassette recorder.  </p>

<p>What Peter never knew was that I was after his fetching girlfriend, whom I 
had met working for a fast food place and wanted to get to know in a 
<a href="http://www.kabeleins.de/php-bin/scripts/cgalerie/content/k1_stars_de_charlton-heston/01.jpg">Biblic sense</a>.  However, that pursuit turned 
out to be a non-starter (sadly).  The collabrative relationship with Peter, in 
contrast, went swimmingly.</p>

<p>The style of composing was simply to allow one person to lay down a track.
Then the other person would lay down a possibly complementary track separately.
Often, the other person wouldn't be in the room (or even the house) when the 
new track was recorded.  The idea was to get music that wasn't polished or, 
frankly, composed.  Peter and I were, in a muddled-headed way, protesting the 
polished excrement peddled to the masses on top-40 radio stations every day.  
While our complaint wasn't particularly innovative or original, it was what
motivated us.</p>

<p></p>

<p>We'd scream, use toys, loop 1/4" tape "samples", bang on pots 
and pans, scream some more, sing through the cheesy "William Shatner" mic, 
play Peter's psychadelic telecaster with rust-caked strings, play Peter's 
stout 1940's New York archtop, record "spoken word" on a dictaphone and 
generally have quite a rolicking time.  While walking through a graveyard, 
we noticed a tombstone inscribed with the words "Mother Bodfish" and that 
become the working title of our project.  We had talked about releasing our 
work on some crazy label.  The cover would feature a strong, suffragette in 
sepia tones braving looking into East.  On the back would be the hovel that 
Pete lived in with both of us passed out in the squalor.  Alas, we were both
a bit too unorganized to take our project beyond the cottage.</p>

<p>When I have more time, I'll digitize Mother Bodfish, but until then, 
here's a great track of Pete's called <a href="/music/silver_hat.mp3">Silver 
Hat</a>, which he recorded on the "Throne of Wax" album.  It's dubbed from 
a cassette, so don't expect too much fidelity.  Here's quite an 
autobiographical one called Any Given 
Day, 1995</a>, from his last album "Cartoons."</p>

<p>Peter passed away after Christmas 2004 from complications caused by 
scleroderma at the age of 42.  Peter was a gentle soul, but he had a 
self-destructive side that was painful to witness.  Pete and I spoke in 2003,
I think.  I blew him off, not wanting to get sucked back into the Bad Crazy 
of my twenties.  Part me wishes I'd seen him, but part of me didn't want to 
deal with his oncoming fatality.  I don't do death well.</p>

<p>Peter should be remember for his substantial talent, both musically and 
as a writer, and for his skewed perspective on life.  Oh, and he was a (crazy)
chick magnet.</p>

<p>Not a wholy bad life after all, Mr. Cummings.  A tad too short, perhaps.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[I just flew into town and blah blah blah…]]></title>
    <link href="https://www.taskboy.com/2005-08-14-I_just_flew_into_town_and_blah_blah_blah.html"/>
    <published>2005-08-14T00:00:00Z</published>
    <updated>2005-08-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-08-14-I_just_flew_into_town_and_blah_blah_blah.html</id>
    <content type="html"><![CDATA[<p><p>Most travelogs need embellishing to be entertaining, but the trip 
I'm on now doesn't belong to that class of story.  </p>

<p>This is my second trip to D.C. on business.  I'm consulting for 
<a href="http://www.leostream.com/">Leostream</a> with a large, 
revenue-generating government agency that will remain nameless.  On the first 
trip a month ago, it was decided that my traveling companion and I would depart
on a flight leaving Boston at the obscene hour of 5:45AM.  That proved to be 
a somewhat unliked decision, so this time around, we decided to get there the 
night before we were expected so that we might be refreshed, dapper and smart.
It is good to have lofty aspirations, so that you have something legitimate 
to be embittered about.</p>

<p></p>

<p>A crafty plan was hatched to leave on a 6PM flight Monday from Logan that 
would arrive at 7pm or so in D.C. and give us plenty of time to get to the 
hotel, which serves <em>free beer</em> from 6PM-7:30PM.  Now, you'll no doubt
notice the first glaring mistake in our cunning plan: the itinerary would put 
us at the hotel beyond the <em>free beer</em> zone and squarely into the 
less well-thought of "fighting over the last snickers bar in the decrepit 
laundry room vending machine like goddamned monkeys" zone.  That we made this 
critical mistake in our planning rather points to the more serious problem 
that would plagues us for the next few days: groundless optimism.</p>

<p>Because of deeply held neuroses, I arrived at the airport two hours early on Monday.
After getting through security without incident and settling down in my seat 
to wait, I started to notice that some very attractive females were in my 
area.  Fortunately my carefully honed stalking instincts took over and I 
merely observed them sereptitiously, like a wolf or a jackal.  One of these girls 
had that sort of femine assests that could only belong to an adult entertainer 
and by a stroke of good luck I was, at that moment, an adult who needed entertaining!  
Unfortunately, her plans didn't seem include getting to know a 
<a href="http://taskboy.com/img/wuarchives.jpg">gawking, leering dork 
in a YAPC t-shirt</a>.  Still, I would learn, that was to be the least of my 
disappointments.</p>

<p><p>On the East coast of America, the weather was foul that day.  It was 
bad enough to dissuade the space shuttle from landing in Florida and also 
to force commerical air traffic controllers to reroute planes scheduled to 
land in Philadelphia, a city not very far away from D.C., as the crow flies. <br>
So, the dark, rainy clouds merely foreshadowed darker ones to come. 
<p>My flight boarded on time, but then sat at the terminal for about an hour.
This, I found, is far more dispiriting than just lolligagging on the tarmack 
in a queue which, while still not getting you further along to your destination, 
is at least interrupted by the occasional pointless taxiing. <br>
Luckily, we also got to queue to for a long time waiting to take off. <br>
So we got the full treatment.  </p>

<p>The flight to D.C. was quick, but then we were in a holding pattern for an hour while a storm 
cell of some violence passed over the airport.  When we finally touched down at 9PM, it began to 
pour again.</p>

<p>Our shuttle dropped us of at the car rental place we'll call RememberTheMaine!
which didn't have the car we reserved (which may have been captured by General Santa Anna).  
It took a few awkward moments in the rainy parking lot to figure this out.  
We ended up with a Stratus, which I suppose is great to someone of uncertain 
sexuality who fetishizes over cars, which is not me.  Did I mention that neither
I nor my traveling companion had driven in D.C., let alone at night in a 
driving rain?  We were almost taken out on 495 by, what I assume, was another
out-of-towner whose driving credentials paralleled ours.  Good-oh!</p>

<p><p>We managed to get to the right exit, although starving, by 10PM.  We both 
had hopes getting the <em>free beer</em> and rather humble fair at the hotel, but 
realized that beautiful dream wasn't to be.   Those 
unfamiliar with Alexandria, Virigina should note that retail stores close at 10PM
sharp there.  Hungry, we attempted to stop at a mall for food, only to find
the place closed and foreboding, in a Children of the Corn sort of way.  We 
did find a Wendy's with a drive-through that was willing to sell us food 
through a small, bullet-proof window.  A bit dispirited, we pressed on to find 
the hotel, which our directions placed merely a 1/4 mile away from us.
<p>I'll spare you, gentle reader, the description of the ugly desperation 
that ensued as we managed to take a successive series of wrong turns in an 
increasingly mocking city.  The <em>second</em> call to the hotel corrected 
the bad directions given to us during the first call and by 11PM, we arrived 
at the hotel, only to find we had been book in a room with one bed.  Now, I like 
my traveling companion, but he's a married man and Mama Johnston's boy don't
roll like that.  So by 11:30PM, we were ensconced in our suite, near tears 
and boozeless with only the weak promise of a brief slumber before our 6:30AM 
wake-up call.
<p>Tuesday morning, the pair of us laughed off our previous misadventures and 
got a manly-sized free breakfast in the rec-room-cum-dinning hall of the hotel
where the grinning jackals of morning TV news attempted to fill dead air 
during the shuttle's rude refusal to blow up again now that they had their 
cameras ready.  We caught the bus to the Metro station, noticing only in 
passing the rain-pregnant clouds looming above us.  Our walk from the station
to the office was only a five minute affair, but it was made memorable by 
the Noah-like deluge that successfully washed away any semblance of 
professionalism afforded to us by our morning's ablutions and priming. <br>
Fortunately, the icy air conditioning that we would sit in for the next eights 
hours took care of the rain and our remaining good health.
<p>After this long, cold day, we headed back to the Metro and hopped on the 
first train back.  Unfortunately, this wasn't the correct train at all and we 
hopped out several stops later.  We looked expectedly at the other side of the 
the platform, hoping that an inbound train would be forecoming, while the 
train we arrived on lingered with its doors open in an almost mocking fashion.
After a long time, the train left <em>going inbound</em>!  For you see, we were
already at the <em>last stop for that line</em>!  Having realized the depth of
our misfortune and hubris, we caught the next train back to the original 
station, regaling the other passengers with our sorry tale of woe (which 
had a few of them laughing pretty hard [at us)).
<p>Our long suffering was rewarded on getting back to the hotel in time for
<em>free beer</em>, which we directly indulged in.  The free "dinner" consisted 
of lectuce, stale chips and a form of limp elbow pasta with wilted veggies in 
a viscous tomato-paste meat goo which didn't live up to my expectations.  The beer, 
however, did.  My companion and I had only a few eight ounce glasses (not 
nearly enough, really) when a limping shell of a old man all but demanded that
we get his computer on the free wireless LAN.  My companion, who's a 
substantially better man than I, offer to fix his laptop if he would only
bring it to the table.  The plot thinkened to the consistency of the pasta 
dish as the old man replied that his machine was a <em>desktop</em> and that 
we would need to repair to his room to affect remediation.  Considering that 
he offered us nothing in return, not even the <em>free beer</em> which he 
could have gotten <em>for free</em>, and also noting that he wasn't a 
fetching young lass with pornstar-sized assets, his request was politely, 
if nevously (for he was a muscley old codger), dismissed.  Having had a few, 
my spidey sense was tingling, warning me that he'd ask us again for help. 
<p>This borishness angers me.  It's one thing to 
politely ask for help.  That sort of request should be honored, if possible to 
do so.  That's what one expects from a gentleman of quality, such as myself. <br>
It's another thing all together to demand a stranger to rescue you from your 
own bad planning.  As a pedestrian of long standing in Boston, I am forever 
getting stopped by lost motorists insisting that I unlostify them immediately 
without a map and using directions nor more complex than "turn left", 
even if they are miles away from their destination and going the wrong way down a 
one-way street.  And, as I noted, I had been drinking.  Feeling the anger 
welling up in me, I excused myself from the <em>free beer</em> and retreated 
to my room sullenly.  Shortly after, my companion joined me.  Apparently, the geezer 
demanded to know our room number.  Putz.
<p>After a brief nap, we decide to get some 
<a href="http://www.saveurs.sympatico.ca/sante/low-carb/poulet-satay.htm">Chicken Satay 
at a local Indonesian place.  To do so, we needed to drive there. <br>
The hotel's parking lot is one way.  That is, there is a clearly marked enterance 
and a clearly marked exit.  There is no room for two cars to pass each other in the 
circuit around the building.  On exiting the hotel in our car, we nearly get into 
a head-on collision with a jackball entering through the exit. Are you ready for the punch line?
Are you?  Because I am! 
<p>The driver was old Johnnie Wirelessless from whom we were trying to escape 
in the first place.  Zing!
<p>Who needs to watch sitcoms when you live in one?</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[monospace madness]]></title>
    <link href="https://www.taskboy.com/2005-08-14-monospace_madness.html"/>
    <published>2005-08-14T00:00:00Z</published>
    <updated>2005-08-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-08-14-monospace_madness.html</id>
    <content type="html"><![CDATA[<p>Are you jealous of all those cool ascii art titles at the beginning 
of game FAQs?  Be envious no longer because 
<a href="http://www.network-science.de/ascii/">this CGI app</a> will make the 
banner for you, in a variety of "fonts."</p>

<p>Here are a few examples:</p>


<p>
â.â          |    |              
  |  ,â.,â.|__/ |â.,â.,   .
  |  ,â|`â.|   |   ||   ||   |
  `  `â^`â'`   ``â'`â'`â|
                              `â'
</p>


<p>Sleek European design</p>

<p><br></p>


<p>
 :::==== :::====  :::===  :::  === :::====  :::====  ::: ===
 :::==== :::  === :::     ::: ===  :::  === :::  === ::: ===
   ===   ========  =====  ======   =======  ===  ===  ===== 
   ===   ===  ===     === === ===  ===  === ===  ===   ===  
   ===   ===  === ======  ===  === =======   ======    ===  
</p>


<p>See?  It's like the letters are little American flags!  Just what every 
jingoist FAQ needs!</p>

<p><br></p>


<p>
 _____         _    _                 
|_   _|_ _ ___| | _| |__   ___  _   _ 
  | |/ _` / __| |/ / '_  / _ | | | |
  | | (_| __    


<p>Vintage</p>

<p><br></p>


<p>
====================================================
=        ================  =====  ==================
====  ===================  =====  ==================
====  ===================  =====  ==================
====  ======   ====   ===  =  ==  ======   ===  =  =
====  =====  =  ==  =  ==    ===    ===     ==  =  =
====  ========  ===  ====   ====  =  ==  =  ===    =
====  ======    ====  ===    ===  =  ==  =  =====  =
====  =====  =  ==  =  ==  =  ==  =  ==  =  ==  =  =
====  ======    ===   ===  =  ==    ====   ====   ==
====================================================
</p>


<p><p>Reverse video, <em>on the web</em>!</p>

<p>I'm pretty sure this is the second or third to last page on the web.</p>

<p><br></p>

<p><em>[ed: due to a technical glich, I had to delete and re-add the previous entry.<br>Computers: feh!]</em></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[the rain on the plane falls mainly on my plans]]></title>
    <link href="https://www.taskboy.com/2005-08-09-the_rain_on_the_plane_falls_mainly_on_my_plans.html"/>
    <published>2005-08-09T00:00:00Z</published>
    <updated>2005-08-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-08-09-the_rain_on_the_plane_falls_mainly_on_my_plans.html</id>
    <content type="html"><![CDATA[<p>Hello from the nation's capital: Alexandria, Virginia! Ok, 
I'm one town over from D.C.  Anyway, the flight from Boston, which 
should normally have taken one hour got a house-remix that saw us 
circling for 3 hours before landing.  That was awesome!  So much for 
arriving early and getting a gentle night's rest.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Top 10 MP3 downloads to date from taskboy]]></title>
    <link href="https://www.taskboy.com/2005-08-07-Top_10_MP3_downloads_to_date_from_taskboy.html"/>
    <published>2005-08-07T00:00:00Z</published>
    <updated>2005-08-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-08-07-Top_10_MP3_downloads_to_date_from_taskboy.html</id>
    <content type="html"><![CDATA[
<img src="/img/farnsworth.jpg" title="Good news!" class="insert">


<p>Good news, everyone!  I've modified my primative perl script to 
report interesting <a href="#note1">*</a> 
details of the 
top 10 MP3s download from taskboy.com to date.</p>

<p><p>Again, I'd like to ask that 
anyone who's downloading my crappy version of <a href="http://users.wolfcrews.com/toys/vikings/">Immigrant Song</a> please explain 
the joke.  I know it's terrible, but it's not terrible enough to be 
ironically hip.  Throw a brother a bone, huh? </p>

<p>A note of explanation is require for this report.  The songs are ordered 
in popularity, as determined by the number of raw requests (successful or not)
for this this file.</p>

<p></p>

<p>You can get a better idea of how many individuals are 
interested in the song by counting the unique Internet Protocol (IP) addresses
used to request to the file.  If you haven't heard of IP addresses, this isn't
the place to learn about them, but roughly speaking every computer needs one 
to get to the Internet.</p>

<p></p>

<p>The way in which files are requested by web browsers (or more generally 
HTTP clients) allows for either the full retrieval of the file (using a "GET"
request) or simply a check to see if the file is still there (using a "HEAD"
request).  Generally, people-manned web browsers use "GET" requests and web 
crawling <a href="http://www.robot-japan.com/Images5/web/Spiderman-Korean.jpg">robots</a> make "HEAD" calls.  By comparing the statistics
for each kind of request, you can get some idea whether real humans are 
listening to my music or whether I am simply entertaining 
<a href="http://students.washington.edu/colin2/breakformers/Video_player_06.html">robots.  I'm fine with either case.</p>

<p>
<br></p>


<p>
 1)         /music/immigrant_song.mp3 :
                                      last requested: [07/Aug/2005:12:49:21]
                                      total requests: 2188
                                      unique IPs:     500
                                      GET:            1713
                                      HEAD:           475
âââââââââââââââââââââââââ
 2)       /music/you_belong_to_me.mp3 :
                                      last requested: [07/Aug/2005:11:25:00]
                                      total requests: 1859
                                      unique IPs:     913
                                      GET:            1485
                                      HEAD:           374
âââââââââââââââââââââââââ
 3)     /music/shut_up_and_listen.mp3 :
                                      last requested: [28/Jul/2005:01:30:17]
                                      total requests: 1372
                                      unique IPs:     712
                                      GET:            1220
                                      HEAD:           152
âââââââââââââââââââââââââ
 4)              /music/walk_away.mp3 :
                                      last requested: [06/Aug/2005:13:34:21]
                                      total requests: 842
                                      unique IPs:     325
                                      GET:            769
                                      HEAD:           073
âââââââââââââââââââââââââ
 5)       /music/on_the_air_remix.mp3 :
                                      last requested: [07/Aug/2005:11:29:18]
                                      total requests: 830
                                      unique IPs:     590
                                      GET:            210
                                      HEAD:           620
âââââââââââââââââââââââââ
 6)           /music/m_vs_r_jjohn.mp3 :
                                      last requested: [07/Aug/2005:11:29:24]
                                      total requests: 655
                                      unique IPs:     303
                                      GET:            459
                                      HEAD:           196
âââââââââââââââââââââââââ
 7) /music/dance_of_the_sunni_4trk.mp3 :
                                      last requested: [30/Jul/2005:20:38:50]
                                      total requests: 590
                                      unique IPs:     362
                                      GET:            538
                                      HEAD:           052
âââââââââââââââââââââââââ
 8)          /music/but_not_yours.mp3 :
                                      last requested: [06/Aug/2005:20:46:09]
                                      total requests: 458
                                      unique IPs:     296
                                      GET:            423
                                      HEAD:           035
âââââââââââââââââââââââââ
 9)           /music/yapc_rave_02.mp3 :
                                      last requested: [07/Aug/2005:11:29:18]
                                      total requests: 425
                                      unique IPs:     240
                                      GET:            179
                                      HEAD:           246
âââââââââââââââââââââââââ
10)           /music/dont_be_late.mp3 :
                                      last requested: [20/Jul/2005:22:18:53]
                                      total requests: 321
                                      unique IPs:     177
                                      GET:            275
                                      HEAD:           046
âââââââââââââââââââââââââ
</p>


<p><br>
<br>
<br>
<br></p>

<p>Endnotes:</p>

<p><a>1)</a> The use of the word <em>interesting</em> may not met
your local requirements.  Please see your local chamber of commerce for details.</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[All good things…]]></title>
    <link href="https://www.taskboy.com/2005-08-06-All_good_things.html"/>
    <published>2005-08-06T00:00:00Z</published>
    <updated>2005-08-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-08-06-All_good_things.html</id>
    <content type="html"><![CDATA[<p>My Fellow use.perlers,</p>

<p>When, in the course of human events, it becomes
necessary for one programmer to dissolve the blogginating bonds which have connected him with others, and to assume among the powers the Web, the separate (but not quite) equal station to which the laws of CGI and of CGI's God (St. Berners Lee) entitle him, a decent respect to the opinions of mankind requires that he should declare the causes which impel him to the separation.</p>

<p>We hold these truths to be self-evident, that not all blogs are created equal, that some are endowed by their Creator with certain unalienable features, such as posting pictures and controlling background colors.</p>

<p>We, therefore (meaning me), appealing to the Supreme Judge of public opinion for the rectitude of our (mine, actually) intentions, do, in the name, and by the authority of the good readers of my blog, solemnly publish and declare, that this blog is, and of right ought to be <a href="http://taskboy.com/">a free and independent site</a>.</p>

<p>And may God have mercy on my poor soul.</p>

<p>That is all.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/26152">post</a> and <a href="http://use.perl.org/comments.pl?sid=27987">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[New taskboy blog]]></title>
    <link href="https://www.taskboy.com/2005-08-06-New_taskboy_blog.html"/>
    <published>2005-08-06T00:00:00Z</published>
    <updated>2005-08-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-08-06-New_taskboy_blog.html</id>
    <content type="html"><![CDATA[<p>That's right.  I said it.  I've been working on a variety of 
new projects and thought that this might be a good place to put them.  
I used blog exclusively on 
<a href="http://use.perl.org/~jjohn/journal">use.perl.org</a>, 
which is also where many of my friends blogginate, but I craved a 
bit more editorial control.  So any and all subjects are fair game for 
this space.</p>

<p>Also, I can post stunning pictures, such as the following:</p>


<img src="img/looking_sharp.jpg" alt="me looking stupid">


<p>Ah, the seductive power of full HTML control!</p>

<p>At some point, I'll have to update the rest of the site, but 
one smallstep at a time.</p>

<p>This blog is controlled through emacs via XML-RPC.  It's the small 
technical things that make me happy.  I'll get around to making an 
RSS feed when there's more content to merit it.</p>

<p><p>UPDATE: Did the RSS thing.  I remembered that I already had 
most of the HTML and perl code lingering around from 
<a href="http://pseudocertainty.com/">PseudoCertainty</a> 
radio show site.  Code repositories are a beautiful thing. </p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[those aren't friends]]></title>
    <link href="https://www.taskboy.com/2005-08-03-those_aren&apos;t_friends.html"/>
    <published>2005-08-03T00:00:00Z</published>
    <updated>2005-08-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-08-03-those_aren&apos;t_friends.html</id>
    <content type="html"><![CDATA[<p>From <a href="http://chrisjuergensen.com.hosting.domaindirect.com/modes_3.htm">Chris Juergensen's site</a> on the Lydian mode:</p>

<blockquote>
&laquo;Just like the previous two modes, to figure out on the spot what major 
scale you need to be playing.  Let's say you are jammin with your friends 
Bob and Pete and the chart they give you says you have to play a solo over a 
G maj7#11 vamp.  You need to figure out what major scale you need to 
be playing so you just remember your lydian scale mode rule which is: lydian 
mode = major scale up a perfect 5th.  Remember how this works?  If G is on 
the third fret, D is a perfect fifth from that note.  All you have to do is 
play a D major scale over the Gmaj7#11 chord and you'll be groovin' away with 
the lydian mode.&raquo;</blockquote>

<p>Friends don't let friends vamp on Gmaj7#11 chords.  Only junkies messed up 
on  Chic Corea or the Mahavishnu Orchestra would have such abnormal and 
unclean thoughts.</p>

<p><p>UPDATE: What's sad is that I googled for both of these names and still got them wrong.  Sighâ¦<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/26071">post</a> and <a href="http://use.perl.org/comments.pl?sid=27905">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Firefly – good!]]></title>
    <link href="https://www.taskboy.com/2005-07-30-Firefly_--_good_.html"/>
    <published>2005-07-30T00:00:00Z</published>
    <updated>2005-07-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-07-30-Firefly_--_good_.html</id>
    <content type="html"><![CDATA[<p>Saw the premier of the TV series tonight.  It's amazing what gets cancelled and what doesn't.  That Mr. Whedon can sure craft a pith sentence. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/25967">post</a> and <a href="http://use.perl.org/comments.pl?sid=27802">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[a metaphor for our times]]></title>
    <link href="https://www.taskboy.com/2005-07-17-a_metaphor_for_our_times.html"/>
    <published>2005-07-17T00:00:00Z</published>
    <updated>2005-07-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-07-17-a_metaphor_for_our_times.html</id>
    <content type="html"><![CDATA[<p><p>Dogs can be territorial, but <a href="http://www.compfused.com/directlink/838/">this is absurd</a>.  Doesn't he know that a dog divided cannot stand?</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/25752">post</a> and <a href="http://use.perl.org/comments.pl?sid=27590">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Alton Brown isn't afraid of Scientologists]]></title>
    <link href="https://www.taskboy.com/2005-07-15-Alton_Brown_isn_t_afraid_of_Scientologists.html"/>
    <published>2005-07-15T00:00:00Z</published>
    <updated>2005-07-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-07-15-Alton_Brown_isn_t_afraid_of_Scientologists.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://www.altonbrown.com/pages/rants.html">Go get 'em</a>, Alton!</a>
<p>Since it's not a proper blog with persistent links, here's the body:
<blockquote>
&laquo;Dear Tom Cruise,
<br><br>
<p>Your lack of belief in the existence of clinical depression tells me one thing: you didnÂt spend $10. to see War Of The Worlds. If vitamins can possibly help me out of this spiraling funk, please let me know which ones. Dinos? Pebbles? Freds?</p>

<p><p>Please, IÂm crying out for help.&raquo;
</blockquote><p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/25731">post</a> and <a href="http://use.perl.org/comments.pl?sid=27570">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[what I did last weekend with Plumerai]]></title>
    <link href="https://www.taskboy.com/2005-07-12-what_I_did_last_weekend_with_Plumerai.html"/>
    <published>2005-07-12T00:00:00Z</published>
    <updated>2005-07-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-07-12-what_I_did_last_weekend_with_Plumerai.html</id>
    <content type="html"><![CDATA[<p><p>Finally, I have a solution to my blogging needs: 
<a href="http://www.noopy.org/wordpress/?p=275">get nate to do it</a>.
For reasons I'm sure I don't understand, I go by the alias Loud Joe in that 
journal.  Is it something I'm wearing?
<p>Anyway, it's always fun to help out with audio engineering.  I've been 
doing a lot with music that I haven't posted.  I'd like to emit an EP one of
these days.  I've got two tracks in reasonable condition for this effort, one 
track that I'm on the fence about and one rocker of a track that's nearly 
there.  More on this project as details emerge.
<p>Update: Ah, here's what I did the 
weekend before last</a>. <br>
It involves a lengthy trip to Home Depot, several hundred pounds of building 
materials and manly power tools.  This should help complete those occasional 
gaps in the obsessively detailed notes that my stalkers keep.
<p>That is all.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/25646">post</a> and <a href="http://use.perl.org/comments.pl?sid=27483">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[For torgoX?]]></title>
    <link href="https://www.taskboy.com/2005-06-30-For_torgoX_.html"/>
    <published>2005-06-30T00:00:00Z</published>
    <updated>2005-06-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-06-30-For_torgoX_.html</id>
    <content type="html"><![CDATA[<p><a href="http://jerkcity.com/jerkcity2434.html">Jerkcity levels its buffulo-style journalistic shotgun at postscript syntax.</a><p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/25439">post</a> and <a href="http://use.perl.org/comments.pl?sid=27278">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Sauron found]]></title>
    <link href="https://www.taskboy.com/2005-06-26-Sauron_found.html"/>
    <published>2005-06-26T00:00:00Z</published>
    <updated>2005-06-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-06-26-Sauron_found.html</id>
    <content type="html"><![CDATA[<p><a href="http://news.nationalgeographic.com/news/2005/06/0624_050624_Hubblepic.html">Hubble snaps "Eye in the Sky."</a> <br>
What's worse, <em>he's looking right at us</em>!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/25367">post</a> and <a href="http://use.perl.org/comments.pl?sid=27205">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Perl shrugs]]></title>
    <link href="https://www.taskboy.com/2005-06-24-Perl_shrugs.html"/>
    <published>2005-06-24T00:00:00Z</published>
    <updated>2005-06-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-06-24-Perl_shrugs.html</id>
    <content type="html"><![CDATA[<p><p>news.com.com is <a href="http://news.com.com/Report+Tech+jobs+rise+on+East+Coast/2100-1007_3-5759605.html?tag=cd.top">reporting</a>:</p>

<blockquote>
&laquo;When it comes to programming skills, .NET is hot but Perl is not, according to the report. .NET requests rose 52 percent, HTML postings climbed 38 percent and XML demand increased 37 percent, Dice said, but the demand for tech professionals with Perl experience has declined 12 percent since the beginning of the year.&raquo;
</blockquote>

<p><p>Ouch!  HTML and XML are in more demand than Perl.  That can't be good.  On 
the other hand, I wouldn't say Perl is exactly dead either.  It's still part
of the very popular LAMP paradigm and is a wonderful language for business 
logic code (where PHP isn't).  What I think this article suggests is that 
there are a lot of corporate infrastructure gigs popping up (hence the .NET 
spike) and not so much start-up activity.  Start-ups, being sensitive to 
cost, will likely gravitate towards open source tools.  I predict that the 
more the business climate favors start-ups, the more open source jobs will 
become available.
<p>Of course, what Dice doesn't show are those start-ups that aren't 
advertising, but may be making a great deal of hay with Perl and other OSS
tools.  This might be called the "dark job market", after the fashion of 
unused internet capacity ("dark net") or the hypothetical mass in the universe
that we can't directly detect ("dark matter").
<p>I've had somewhat what morbid thoughts about the state of Perl for some 
time now.  I don't think Perl is addressing business needs as directly as it 
did in 1995, which isn't surprising considering how different things are 
today.  I feel that we're in some crazy retread of the late eighties, but 
instead of the sluggishness of PC hardware development, we're in a malaise of
software stagnation.  I'm unclear to exactly what the bottleneck is, but it is 
likely to be removed soon.  No one can really know if Perl will be able to 
compete for a niche when the flood comes.
<p>I don't have much hope for Perl's competitors either.  Python and Ruby have
no significant advantage over Perl (which isn't to say they have no advantage).
PHP is a great domain-specific solution; java is far more bed-ridden than 
Perl; .NET is today's snakeoil.  Maybe, as <a href="http://www.pbs.org/cringely/pulpit/pulpit20050623.html">Cringley suggests</a>, 
Flash will swoop-in, transformed into the all-singing, all-dancing solution 
to all our computer needs.  But, I sort of doubt Flash has all that much 
longer to live.
<p>I guess what I'm saying is that I'm ready for the <a href="http://www.culturevulture.net/Movies/400Blows.htm">New Wave</a> to <a href="http://www.devobook.com/">begin</a>.   <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/25348">post</a> and <a href="http://use.perl.org/comments.pl?sid=27185">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[iPod Shuffle: music without labels, man]]></title>
    <link href="https://www.taskboy.com/2005-06-22-iPod_Shuffle__music_without_labels,_man.html"/>
    <published>2005-06-22T00:00:00Z</published>
    <updated>2005-06-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-06-22-iPod_Shuffle__music_without_labels,_man.html</id>
    <content type="html"><![CDATA[<p><p>Several weeks ago, I bought a 512MB iPod shuffle.  Without question, 
this is the most excite consumer electronic device I've come across since I 
saw my first walkman in the 80s (I don't include the PC as a consumer 
electronic device).  There is almost nothing I don't like about this beast.
It's got a long battery life (~10 hours); it's very light and tiny; it's got 
a respectable storage capacity (about 140 songs at the bitrate I encode MP3s 
at) and nearly NO MOVING PARTS!  It's simply awesome.  So taken with it was I,
that I bought one for my brother's 45 birthday and now he's a fan.
<p>Some have wrung their hands at the lack of a display on the shuffle or the
limit size of the storage.  These complaints are fundamentally misguided.  The 
shuffle is not meant to be the sole repository of your MP3 collection (a linux box with a RAID system is :-).  Those using iPods for this purpose are, I 
think, foolish.  The shuffle is fills the niche that the cassette walkman did,
listening to random tunes on the go.
<p>The problem with the iPod is that it is too much of a computer and not 
enough of an appliance.  Let's start with the hard drive.  I don't like 'em.
There, I said it.  Hard drives are complicated little beasts that spin 
platters and will, someday, have a head crash.  Notebook hard drives are to be
especially despised.  Low RPMs combined with a strangled I/O bus produces an 
utterly retro computing experience for laptop users.  And notebook hard 
drives are at the heart of the iPod.  Do iPods need terrific I/O throughput? 
No.  And what's more, I don't want to be thinking of I/O at all when I want 
some tunes on the go.  I want to be a computer Barbie.  I just want it to work.
Always.  The first time.  For this, the shuffle delivers.</p>

<p>Before I dig too deep a hole, I should mention that I think the iPod is a 
pretty cool computer hack.  But I think it's a terrible appliance.  It can do
too much.</p>

<p>So, the shuffle: fun at any speed.  Get one.</p>

<p>For my next Apple purchase, I'm looking at getting a Mac mini with 512MB 
of RAM.  I need it for Safari (*cough* browser compatibility *cough*), so I 
don't need a lot of horsepower.  Should be interesting.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/25314">post</a> and <a href="http://use.perl.org/comments.pl?sid=27151">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The couch]]></title>
    <link href="https://www.taskboy.com/2005-06-18-The_couch.html"/>
    <published>2005-06-18T00:00:00Z</published>
    <updated>2005-06-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-06-18-The_couch.html</id>
    <content type="html"><![CDATA[<p><p>Internet polls are vital to our democracy, even if 
<a href="http://www.thisislondon.co.uk/haveyoursay/polls/?itemId=19355457">this one</a> isn't 
about politics and it's from a British organization.  Still, I complement 
the pollsters on both their content and accomodating polling options.
<p>Ms. Jolie's desire for that man who can fulfill her sadomastistic fetishes
will, I predict, ultimately be sated by an Alabama trucker named Skeeter.  Or 
perhaps, Chuckles Manson. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/25258">post</a> and <a href="http://use.perl.org/comments.pl?sid=27096">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Adventures in static linking]]></title>
    <link href="https://www.taskboy.com/2005-06-02-Adventures_in_static_linking.html"/>
    <published>2005-06-02T00:00:00Z</published>
    <updated>2005-06-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-06-02-Adventures_in_static_linking.html</id>
    <content type="html"><![CDATA[<p>What's wrong with this screen dump?

[jjohn@localhost hello]$ gcc -Wall -static hello.c
[jjohn@localhost hello]$ file a.out
a.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, statically linked, not stripped
[jjohn@localhost hello]$ ls -l
total 424
-rwxrwxr-x    1 jjohn    jjohn      424535 Jun  1 17:50 a.out
-rw-rw-râ    1 jjohn    jjohn          90 Jun  1 17:50 hello.c
[jjohn@localhost hello]$ ./a.out
Hello
</p>

<p>Good gravy, that's one fine statically compiled binary that's more than 
4000 times the size of the source code.  It doesn't just print "Hello", it 
prints the <em>hell of out it</em>!</p>

<p></p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/25016">post</a> and <a href="http://use.perl.org/comments.pl?sid=26861">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Attack of the bad comic costumes]]></title>
    <link href="https://www.taskboy.com/2005-05-27-Attack_of_the_bad_comic_costumes.html"/>
    <published>2005-05-27T00:00:00Z</published>
    <updated>2005-05-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-05-27-Attack_of_the_bad_comic_costumes.html</id>
    <content type="html"><![CDATA[<p><p>Whoopie Goldberg: Mexican Samurai: <a href="http://www.somethingawful.com/articles.php?a=2916&amp;p=9">with pic</a>
<p>I wish I had thought of that lineâ¦<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/24896">post</a> and <a href="http://use.perl.org/comments.pl?sid=26747">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[A definition of free software I can live with]]></title>
    <link href="https://www.taskboy.com/2005-05-23-A_definition_of_free_software_I_can_live_with.html"/>
    <published>2005-05-23T00:00:00Z</published>
    <updated>2005-05-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-05-23-A_definition_of_free_software_I_can_live_with.html</id>
    <content type="html"><![CDATA[<p>Oddly enough, <a href="http://www.asciiartfarts.com/20050506.html">it's in ASCII</a>.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/24833">post</a> and <a href="http://use.perl.org/comments.pl?sid=26682">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Sith delivers]]></title>
    <link href="https://www.taskboy.com/2005-05-19-Sith_delivers.html"/>
    <published>2005-05-19T00:00:00Z</published>
    <updated>2005-05-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-05-19-Sith_delivers.html</id>
    <content type="html"><![CDATA[<p>I just returned from an afternoon showing of Revenge of the Sith
and I while I can't rave about it, I can't rightly complain.  Lucas finally
nailed a prequel and I couldn't be happier.  The dark path to Vader is 
plausible and well articulated.  Ian McDiarmid is a utter delight to watch,
as is Ian McGregor.  Even Christian Hayden isn't replusive.  Go figure!</p>

<p>If only Lucas had taken as much care with the setup of the first two 
films as he obviously took with this one, the world would have been a much 
more entertained place.  No spoilers, but it does appear that Lucas preps
the story to dovetail nicely with Episode IV (including that pesky android 
problem).  Without question, this was film had Jar Jar's best performance.
And yes, I think it would take about 20 years to build a Death Star.  I live
in city that's been <a href="http://www.bigdig.com/">building a couple of 
highways</a> for just about that time, so I'm used to big budget government 
projects that drag on for years.</p>

<p>George Lucas, I salute you!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/24780">post</a> and <a href="http://use.perl.org/comments.pl?sid=26627">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[automating openssh/openssl installation]]></title>
    <link href="https://www.taskboy.com/2005-05-18-automating_openssh_openssl_installation.html"/>
    <published>2005-05-18T00:00:00Z</published>
    <updated>2005-05-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-05-18-automating_openssh_openssl_installation.html</id>
    <content type="html"><![CDATA[<p>Warning: technical content ahoy!</p>

<p>Here's a handy shell hack I use to update openssh/openssl
on various machine under my care.  Further hacks could be made
to determine the latest version numbers of the ssl/ssh to fetch.
Become one with the primative shell hacking vestiges in your 
modern Perl brain, oh Perlescent Brethren!</p>

<p>
  #!/bin/sh</p>

<p>build=/tmp
  dest=/opt
  lynx=/usr/bin/lynx
  wget=/usr/bin/wget</p>

<p>ssl_url="http://www.openssl.org/source/openssl-0.9.7g.tar.gz"
  ssh_url="ftp://ftp.tux.org/bsd/openbsd/OpenSSH/portable/openssh-4.0p1.tar.gz"
  ssl_version=<code>basename $ssl_url ".tar.gz"</code>
  ssh_version=<code>basename $ssh_url ".tar.gz"</code>
  ssl_dir="$build/$ssl_version"
  ssh_dir="$build/$ssh_version"</p>

<p>cd $build;</p>

<p>echo "Finding $ssl_version and $ssh_versionâ¦";
  if [ -e $wget ];
  then
    for url in $ssl_url $ssh_url;
    do
      file=<code>basename $url</code>
      if [ -e $file ] ;
      then
        echo "Using existing $file";
      else
        echo <code>$wget $url</code>
      fi
    done;</p>

<p>else
    if [ -e $lynx ];
    then</p>

<p><code>  for url in $ssl_url $ssh_url;
  do
    file=`basename $url`
    if [ -e $file ] ;
    then
      echo "Using existing $file";
    else
      echo `$lynx -source $url &gt; $file`
    fi
  done;

else
  echo "Oops.  No URL fetchers!";
exit 1;
fi
</code></p>

<p>fi</p>

<p># unpacking
  echo "Unpacking archives";
  tar xzvf <code>basename $ssl_url</code>;
  tar xzvf <code>basename $ssh_url</code>;</p>

<p>echo "Cleaning";
  cd $ssl_dir &amp;&amp; make clean;
  cd $ssh_dir &amp;&amp; make clean;</p>

<p>echo "Building SSL";
  # build ssl first; sshd depends on it
  cd $ssl_dir &amp;&amp; ./config âprefix=$dest &amp;&amp; make install</p>

<p>echo "Building SSH";
  cd $ssh_dir &amp;&amp; ./configure âprefix=$dest âwith-ssl=$dest \
     âwith-sysconfig=/usr/local/etc &amp;&amp; make install</p>

<p># adjust ?
  if [ -e "/etc/rc.d/init.d/sshd" ];
  then
    echo "You may need to adjust your sshd" 
  fi
<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/24759">post</a> and <a href="http://use.perl.org/comments.pl?sid=26606">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[smooth and smarthy, it's The Onion radio news]]></title>
    <link href="https://www.taskboy.com/2005-05-17-smooth_and_smarthy,_it_s_The_Onion_radio_news.html"/>
    <published>2005-05-17T00:00:00Z</published>
    <updated>2005-05-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-05-17-smooth_and_smarthy,_it_s_The_Onion_radio_news.html</id>
    <content type="html"><![CDATA[<p><a href="http://www.theonion.com/radionews/index.php">Brilliant!</a><p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/24744">post</a> and <a href="http://use.perl.org/comments.pl?sid=26591">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Tatam Spewtum]]></title>
    <link href="https://www.taskboy.com/2005-05-09-Tatam_Spewtum.html"/>
    <published>2005-05-09T00:00:00Z</published>
    <updated>2005-05-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-05-09-Tatam_Spewtum.html</id>
    <content type="html"><![CDATA[<p><p>I have weird dreams. <br>
<p>Last night, I was asked by Brad Pitt and Angelina Jolie to comment on their new baby whom they had named "Tatam Spewtum."  I said that the name was perfectly abhorrant and that they had sentenced their newborn to years of torment. They didn't seem to understand how the majesty of the name escaped me. 
I suggested that "spewtum" was not only an ugly word, but that it carried sexual connotations.  Angelina seemed confused and angry. So I then illustrated my point with a sampling of childhood taunts that pivoted on synonyms for ejaculation.  Both parents stared blankly back at me, seeming to get neither the taunts nor the connection to their new daughter's name.  Mr. Pitt said "Well, plenty of people have suggestive names.  What about Ben Dover and Phil McCrackin?"  When I said that those names were merely jokes and that the odds of gay couple have those names were the same as a manish-sized white rabbit with a pocket watch hopping out of his ass fretting about being late, Brad looked dejected.  Just as I started to get angry and sputtering at exceeding density of the celebrity couple's gray matter, I woke up. 
<p>Like I said, I have weird dreams.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/24596">post</a> and <a href="http://use.perl.org/comments.pl?sid=26440">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[an unintelligent discussion of Intelligent Design]]></title>
    <link href="https://www.taskboy.com/2005-05-02-an_unintelligent_discussion_of_Intelligent_Design.html"/>
    <published>2005-05-02T00:00:00Z</published>
    <updated>2005-05-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-05-02-an_unintelligent_discussion_of_Intelligent_Design.html</id>
    <content type="html"><![CDATA[<p>When catching wind of an article about pseudoscience, my eyes perk up
for <a href="http://pseudocertainty.com/">obvious reasons</a>.  In this 
case, ye olde slashdot is running <a href="http://science.slashdot.org/article.pl?sid=05/05/02/1059247">a story</a> from 
<a href="http://www.kuro5hin.org/story/2005/4/27/03541/2520">kuro5hun</a> 
about the argument for <a href="http://www.actionbioscience.org/evolution/nhmag.html">Intelligent Design</a>, the idea that terristrial organisms (and indeed 
the entire comso) evince too much complexity for them to have arisen through 
chance alone.  Therefore, some guiding intelligence must of been at work 
pushing life into increasingly complex forms.  Fans of Clarke's <em>2001</em>
will note the Monolith-like qualities of this argument. While God is 
specifically not mentioned in the Intelligent Design hypothesis 
(<a href="http://dictionary.reference.com/search?q=theory">theory</a> is an 
inappropriate word here), 
He is clearly implied by the proponents of this view.  Intelligent Design is 
an attempt by some Christians with a science background to take advantage of 
some unanswered questions in the scientific dogma of Natural Selection-driven 
Evolution.</p>

<p></p>

<p>Obviously, today is a slow news day.</p>

<p>To understand what the hoo-haw is about, one need only dig out your high 
school English books and look for Lawrence and Lee's gripping courtroom drama
<em>Inherit the Wind</em>.  In it, a teacher is prosecuted for explaining 
evolution to hicks, I mean, the children of salt-of-the-earth Americans.  Of 
course, you'll remember that not so long ago, some states banned the teaching
of evolution in public schools (and <a href="http://www.infidels.org/activist/state/evolution.shtml">are doing so again</a>).  
At stake is the validity of science and 
its methods versus the comfort and security of faith.  Or more pointedly, it
is yet another front in the war of modernists versus fundamentalists 
(which can be incautiously reduced to those who embrace change and those who
fear it).</p>

<p>Intelligent Design, which sometimes ropes in Physics via the second law
of Thermodynamics, isn't really attempt to pursuade scientists to reject
Evolution.  ID isn't a scientific theory; it predicts nothing, nor does it 
offer testable evidence.  Rather, ID makes rhetorical appeals to the 
deficiency in the fossil record and the still-unobserved genesis of a new 
species from an existing one to wedge in a specious argument against 
Evolution.  Note that the argument, while wearing the vestments of Science, 
isn't scientific at all.  It offers no conditions under which it can be 
proven wrong.  This is preciously the characteristics of religious dogma or 
garden-variety piffle.</p>

<p>So if ID isn't aimed at Scientists, for whom is this argument intended?  
The only group that jumps to mind are defensive, educated Christians who
know enough biology to be uncomfortable with strict-constructionist religion
and yet insistent on believing that faith anyway.  This irony always strikes
me the same way <a href="http://www.jewsforjesus.org/">Jews for Jesus</a> does.
ID is a notional life vest for these individuals who are trapped in the rough 
waters between science and faith.  ID is neither a product of devoted faith 
(if you know there's a God, you simply don't need ID in the first place), nor 
good science (see preceeding paragraphs).  ID is a small, fevered argument of 
badly sutured science that attempts to scare its adherents away from looking 
into the swirling chaos that is the reality science proffers us.</p>

<p>So to those proponents of Intelligent Design, I implore you to pick a side:
faith or science.  By choosing faith, you abdicate your voice in scientific 
debates and inquiry for the certainty of Knowing the Truth and basking in 
unctuous Righeousnes.  By choosing science, you must adopt its methods and put 
your hypothesis up for independent verification.  Let me close with a little
sumthin-sumthin from the Bible:</p>

<blockquote>
So because thou art lukewarm, and neither hot nor cold,<br> 
I will spew thee out of my mouth.
<p>âRevelation 3:16</p>

</blockquote>

<p></p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/24492">post</a> and <a>comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[why are the letters blurry?]]></title>
    <link href="https://www.taskboy.com/2005-04-28-why_are_the_letters_blurry_.html"/>
    <published>2005-04-28T00:00:00Z</published>
    <updated>2005-04-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-04-28-why_are_the_letters_blurry_.html</id>
    <content type="html"><![CDATA[<p>In a continuing effort to remind me of my own mortality, nature
has begun to screw with my eyesight.  Staring at a computer screen or reading 
for long periods of time has become a positive irritation.  Because I'm cheap
and in denial, I picked up a pair of $10 reading glasses at the local pharmacy.
While ill-fitting and ugly, these glasses do seem to help somewhat.  So at 
some point, I'm just going to have to suck it up and get fitted for a pair of 
Real Glasses (&trade;).</p>

<p>Damn you, <a href="http://www.talkorigins.org/faqs/thermo/probability.html">second law of thermodynamics</a>!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/24433">post</a> and <a href="http://use.perl.org/comments.pl?sid=26279">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Would I might rouse the lincoln in you all]]></title>
    <link href="https://www.taskboy.com/2005-04-25-Would_I_might_rouse_the_lincoln_in_you_all.html"/>
    <published>2005-04-25T00:00:00Z</published>
    <updated>2005-04-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-04-25-Would_I_might_rouse_the_lincoln_in_you_all.html</id>
    <content type="html"><![CDATA[<blockquote>
&laquo;It is our mission to preserve the legacy of Abraham and Mary Lincoln, to honor their words and works, and walk in their footsteps. More than 300 Lincoln books have been distributed to our members. Twenty-four Lincolns have received awards for their noteworthy Lincoln work, and seven Lincolns have written books about the 16th President.;&raquo;
</blockquote>

<p>â<a href="http://www.lincolnpresenters.org/">The Association of Lincoln Presenters</a>: 
rousing the Lincoln in all of us since 1990 (take THAT viagra!).
</p>

<p>Incidently in the future United North America, money will be counted in 
"lincolns" rather than "dollars."  Go Yankees!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/24363">post</a> and <a href="http://use.perl.org/comments.pl?sid=26212">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[I want M.C. Peepants]]></title>
    <link href="https://www.taskboy.com/2005-04-24-I_want_M.html"/>
    <published>2005-04-24T00:00:00Z</published>
    <updated>2005-04-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-04-24-I_want_M.html</id>
    <content type="html"><![CDATA[<p>I mean, <a href="http://www.adultswim.com/misc/downloads/audio/athf/iwantcandy.mp3">I want candy</a>.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/24344">post</a> and <a href="http://use.perl.org/comments.pl?sid=26193">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[XMLHttpRequest and cross-scripting hyjinx]]></title>
    <link href="https://www.taskboy.com/2005-04-18-XMLHttpRequest_and_cross-scripting_hyjinx.html"/>
    <published>2005-04-18T00:00:00Z</published>
    <updated>2005-04-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-04-18-XMLHttpRequest_and_cross-scripting_hyjinx.html</id>
    <content type="html"><![CDATA[<p>N.B: This article is historical. If you're trying to do ajax, do look at <a href="http://www.jquery.org/">jQuery</a>.</p>

<p>This is a quick note to myself, but perhaps others tortured with 
javascript will appreciate it.  It is possible to make HTTP requests in 
javascript (with modern browsers).  This takes the form of the 
<a href="http://developer.apple.com/internet/webcontent/xmlhttpreq.html">XMLHttpRequest object</a>.  
How you get to that object is somewhat 
<a href="http://jibbering.com/2002/4/httprequest.html">system-dependent</a>. </p>

<p>Once you have that object, your Mozilla browser may restrict you 
in the URLs you can fetch.  In particular, you can only open() URLs
from the same host that you fetched the page making the request.  
So a page on geocities.yahoo.com isn't going to open "http://google.com"
but instead emit an exception that will be reported in the js console.</p>

<p>Code hounds will enjoy this mess that reports the content of a page
as a JS alert.  The getURL() function expects to be passed in a URL (weird)
and uses that crazy JS compiler directive voodoo that make IE happy. </p>

<p class="code">
function getURL(u) {
  // from http://jibbering.com/2002/4/httprequest.html
  var xmlhttp=false;
  /*@cc_on @*/
  /*@if (@_jscript_version >= 5)
  // JScript gives us Conditional compilation, we can cope with old IE versions.
  // and security blocked creation of the objects.
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
     try {
       xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
     } catch (e) {
       xmlhttp = false;
     }
  }
  @end @*/

  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest();
  }

  alert("Opening " + u);
  try {
     xmlhttp.open("GET", u, true);
  } catch (e) {
     alert("Oops " + e);
     return false;
  }
  // prepare the call back (weird to do this after open)
  xmlhttp.onreadystatechange=function() {
                                          // page load done
                                          if (xmlhttp.readyState==4) {
                                              alert("Got: " + xmlhttp.responseText);
                                          }
                                        }
 xmlhttp.send(null)

}

</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/24262">post</a> and <a href="http://use.perl.org/comments.pl?sid=26111">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[24 miles]]></title>
    <link href="https://www.taskboy.com/2005-04-15-24_miles.html"/>
    <published>2005-04-15T00:00:00Z</published>
    <updated>2005-04-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-04-15-24_miles.html</id>
    <content type="html"><![CDATA[<p>Biked 24 miles today from Boston to Waltham (and back) along Trapelo Rd., which apparently is Italian for "too many f*cking hills."  Also found out that the town of Belmont, through which I passed, was not just a pretty French word, but also descriptive of the terrain.  Well, the <em>mont</em> was applicable anywayâ¦<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/24213">post</a> and <a href="http://use.perl.org/comments.pl?sid=26064">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[it took a tough man to make a tender chicken…]]></title>
    <link href="https://www.taskboy.com/2005-04-08-it_took_a_tough_man_to_make_a_tender_chicken.html"/>
    <published>2005-04-08T00:00:00Z</published>
    <updated>2005-04-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-04-08-it_took_a_tough_man_to_make_a_tender_chicken.html</id>
    <content type="html"><![CDATA[<p>Among the other celebrities passing away this fortnight is American 
icon <a href="http://hosted.ap.org/dynamic/stories/O/OBIT_PERDUE?SITE=CADIU&amp;SECTION=HOME">Frank Perdue</a>.  Although his son attempts to maintain "the face"
of the corporation, somehow his father seem to humanize the company in a way
that few can these days.  Perhaps it helped the Frank Perdue's mug had not a 
passing resemblence to a chicken? <br>
<p>Perhaps it will become trendy to wear t-shirts with Frank Perdue's outsized
head on it.  That would be counterculturific!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/24080">post</a> and <a href="http://use.perl.org/comments.pl?sid=25929">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Sin City]]></title>
    <link href="https://www.taskboy.com/2005-04-04-Sin_City.html"/>
    <published>2005-04-04T00:00:00Z</published>
    <updated>2005-04-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-04-04-Sin_City.html</id>
    <content type="html"><![CDATA[<p>Good Lord, what a movie.  I feel like Frank Miller really tuned me up.  It only hurts when I laugh.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/24014">post</a> and <a href="http://use.perl.org/comments.pl?sid=25860">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[just because Jesus did it, doesn't mean you can]]></title>
    <link href="https://www.taskboy.com/2005-03-23-just_because_Jesus_did_it,_doesn_t_mean_you_can.html"/>
    <published>2005-03-23T00:00:00Z</published>
    <updated>2005-03-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-03-23-just_because_Jesus_did_it,_doesn_t_mean_you_can.html</id>
    <content type="html"><![CDATA[<p><p>Here comes that screamin' sound again! <br>
<a href="http://www.elacson.com/images/collections/panata/index.html">Crusification</a> 
ain't no fiction in the Philippines.  One gets that feeling that allusion and 
metaphor may be lost on folks such as these.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/23805">post</a> and <a href="http://use.perl.org/comments.pl?sid=25648">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Blame Turkey]]></title>
    <link href="https://www.taskboy.com/2005-03-21-Blame_Turkey.html"/>
    <published>2005-03-21T00:00:00Z</published>
    <updated>2005-03-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-03-21-Blame_Turkey.html</id>
    <content type="html"><![CDATA[<p><blockquote>
&laquo;The US Defence Secretary, Donald Rumsfeld, has blamed the inability to gain permission to invade Iraq through Turkey for the power of the insurgency that the US now faces.</p>

<p><p>Mr Rumsfeld said in television appearances marking the second anniversary of the invasion that Iraqi military and intelligence forces in the north of the country melted away to form the insurgency that is now battling US and Iraqi troops.</p>

<p><p>At least 1520 members of the US military have died since the beginning of the Iraq war, according to an Associated Press count.
&raquo;
</blockquote>
<p>â<a href="http://www.smh.com.au/news/After-Saddam/US-blames-Turkey-for-Iraq-chaos/2005/03/21/1111253960989.html?oneclick=true">US blames Turkey for Iraq chaos</a>
<p>Ok everybody! In the key of E, let's all sing it together:</p>

<p>
Blame Turkey, man! 
Blame Turkey, man!
With their shaky parliament 
and their queer imprisonment</p>

<p>Blame Turkey, man!
Blame Turkey, man!
'Cause Ataturk was drunk.
the Republic almost sunk.</p>

<p>Blame Turkey, man!
Blame Turkey, man!
their coffee tastes too strong
and elections take too long</p>

<p>Blame Turkey, man!
Shame on Turkey, man!</p>

<p>In line they must fall
or the EU just might stall
and listen to the Kurds
who say the Turks are turds</p>

<p>We must blame them and cause a fuss
before someone thinks of blame us!
<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/23768">post</a> and <a href="http://use.perl.org/comments.pl?sid=25607">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[broiled yeti penis]]></title>
    <link href="https://www.taskboy.com/2005-03-19-broiled_yeti_penis.html"/>
    <published>2005-03-19T00:00:00Z</published>
    <updated>2005-03-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-03-19-broiled_yeti_penis.html</id>
    <content type="html"><![CDATA[<p>Oh wait, I mean <a href="http://www.lileks.com/institute/gallery/bananas/2.html">festive banana desert</a>.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/23729">post</a> and <a href="http://use.perl.org/comments.pl?sid=25568">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Our main weapon is surprise…]]></title>
    <link href="https://www.taskboy.com/2005-03-16-Our_main_weapon_is_surprise.html"/>
    <published>2005-03-16T00:00:00Z</published>
    <updated>2005-03-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-03-16-Our_main_weapon_is_surprise.html</id>
    <content type="html"><![CDATA[<blockquote>
&laquo;The archbishop told Il Giornale: "The book is everywhere. There is a very real risk that many people who read it will believe that the fables it contains are true."&raquo;
</blockquote>

<p><p>â<a href="http://news.bbc.co.uk/2/hi/entertainment/4350625.stm">Church fights Da Vinci Code novel</a>
<p>For a minute there, I though he was talking about the Bible!  Of course, he
was talking about something <a href="http://use.perl.org/~jjohn/journal/22600">much worse</a>.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/23668">post</a> and <a href="http://use.perl.org/comments.pl?sid=25503">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[dear tarsier]]></title>
    <link href="https://www.taskboy.com/2005-03-11-dear_tarsier.html"/>
    <published>2005-03-11T00:00:00Z</published>
    <updated>2005-03-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-03-11-dear_tarsier.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://news.bbc.co.uk/media/images/40915000/jpg/_40915683_aptarsier300.jpg">Your eyes are too reflective</a>.  Please take the shine 
down a notch.  Thanks.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/23607">post</a> and <a href="http://use.perl.org/comments.pl?sid=25440">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[mad cow.  petulant cow]]></title>
    <link href="https://www.taskboy.com/2005-03-07-mad_cow.html"/>
    <published>2005-03-07T00:00:00Z</published>
    <updated>2005-03-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-03-07-mad_cow.html</id>
    <content type="html"><![CDATA[<p><p>News.com Australia is <a href="http://www.news.com.au/story/0,10117,12390397-13762,00.html">reporting this:</a>
<blockquote>
&laquo;ONCE they were a byword for mindless docility. But cows have a complex 
mental life in which they bear grudges, nurture friendships and become excited 
by intellectual challenges, researchers have found.
<p>Cows are capable of strong emotions such as pain, fear and even anxiety 
about the future. But if farmers provide the right conditions, they can also 
feel great happiness.&raquo;
</blockquote>
<p>Next time you pass by a field of cows, bare in mind that they are dreaming 
of tipping <em>you</em>.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/23541">post</a> and <a href="http://use.perl.org/comments.pl?sid=25377">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[pedagogical benefits of porno]]></title>
    <link href="https://www.taskboy.com/2005-03-06-pedagogical_benefits_of_porno.html"/>
    <published>2005-03-06T00:00:00Z</published>
    <updated>2005-03-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-03-06-pedagogical_benefits_of_porno.html</id>
    <content type="html"><![CDATA[

<p>UPDATE: It's nice to see that this script still works in 2009, four years after I wrote it.  Must have done something right.</p>


<p><br>
<p>Whether pornography is psychologically damaging, socially corrosive
or just plain nasty, it is clear that at least for men, it is a strong 
attractor and motivator.  It is time we left behind antiquated nineteenth 
century morality and boldly embraced this core driver of male behavior to fill 
the more serious deficit of quality programmers in the U.S.A. <br>
<p>To this end, I submit my own work, a perl script that fetches the publicly 
available gallery at <a href="http://www.ishotmyself.com/">IShotMyself.com</a>. 
The real benefit of this script (well, at least secondarily) is that it is my 
first 
concerted use of <a href="http://use.perl.org/~petdance/journal/">Andy Lester's</a> WWW::Mechanize.  Because of the positive reinforcement generated by
this script, I am more likely to use this module in other, less pornographic
work â and so I move the Wheels of Industry forward!  Adam 
Smith's Invisible Hand of Capitalism guides me!
<p>Briefly, the script fetches the front page and looks for a link labled 
"FOLIO [\d+]".  This page is then fetched and links that start with "javascript:" are culled.  By adding on "&amp;m=img" to these links, it is possible
to get to the actual picture in question.  These images are stored in a 
directory on my Winders box, hence the funny path names. 
<p>Based on the impressive success of this experiment, I recommend that we 
teach children to read by giving them digests of Penthouse Forum.  We must 
always be thinking of the children!
<p>I further recommend that we ease the suffering of the impoverished by 
eating their babies.
<p>More Good Ideas (â¢) to comeâ¦</p>

<p class="code">
use strict;
use WWW::Mechanize;

my $base_url = qq[http://www.ishotmyself.com];
my $main_page= qq[/public/main.php];
my $dest_dir = "ishotmyself";

print "Fetching $base_url/$main_page\n";

my $B = WWW::Mechanize->new;
$B->get(qq[$base_url/$main_page]);

unless ($B->success()) {
    die "Couldn't fetch main page: ", $B->status();
}

print "Main page fetched\n";

print "Dumping folio links\n";
my $todays_gallery;
my $gallery = "unknown";
foreach my $l ($B->links()) {
    next if $l->text() !~ /folio \[\d+\]/i;
    $todays_gallery = $l;
    ($gallery = $l->url) =~ /(+)$/;
    $gallery = $1;
    print "\t", $l->text(), " : ", $l->url(), "\n";
}

# find today's folio name
print "Fetching ", $todays_gallery->url, "\n";
$B->get($todays_gallery->url);
unless ($B->success()) {
    print "Couldn't fetch '" . $todays_gallery->url(), 
          "' : ", $B->status(), "\n";
    print $B->content, "\n";
}

#open OUT, ">out.txt";
#print OUT $B->content, "\n";
#close OUT;

print "Dumping folio links\n";
my @found;
foreach my $l ($B->links()) {
    next if $l->url !~ /^javascript:popupLandscape/;
    print "\t", $l->text(), " : ", $l->url(), "\n";

    # unjavascript!
    (my $url = $l->url()) =~ /\('(+)'\)/;
    if ($1) {
      push @found, "$1&m=img";
    } else {
      warn "Couldn't unjavascriptify!\n";
    }
}

unless (-d $dest_dir) {
  mkdir $dest_dir;
}

$dest_dir .= "\\$gallery";
unless (-d $dest_dir) {
   print "Creating $dest_dir\n";
   mkdir $dest_dir || warn "mkdir $dest_dir failed: $!";
}

print "chdir $dest_dir\n";
chdir $dest_dir;

print "Fetching public images\n";
my $cnt = 1;
for my $l (@found) {
   $B->get($l);
   unless ($B->success()) { 
     warn "picture fetch failed: ", $B->status, "\n";
     next;
   }

   my $imgfile = sprintf("${gallery}_%03d.jpg", $cnt++);
   if (-e $imgfile) {
     print "\tOVERWRITING $imgfile\n";
   }
   if (open(OUT, ">$imgfile")) {
     binmode(OUT);  
     print "\tWriting $imgfile\n";
     print OUT $B->content();
     close OUT;
   } else {
     warn("open $imgfile failed : $!");
   }
}

print "done\n";
</p>

<p></p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/23522">post</a> and <a href="http://use.perl.org/comments.pl?sid=25354">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Bela Lugosi's blah blah]]></title>
    <link href="https://www.taskboy.com/2005-03-04-Bela_Lugosi&apos;s_blah_blah.html"/>
    <published>2005-03-04T00:00:00Z</published>
    <updated>2005-03-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-03-04-Bela_Lugosi&apos;s_blah_blah.html</id>
    <content type="html"><![CDATA[<p><p>Have you ever <a href="http://digilander.libero.it/catafalco/musica/bauhaus.htm">read the lyrics</a> 
to the Bauhaus's most well-known song?  Ye Gods, what a train wreck.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/23501">post</a> and <a href="http://use.perl.org/comments.pl?sid=25332">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[An enjoyable party starts with the music]]></title>
    <link href="https://www.taskboy.com/2005-03-01-An_enjoyable_party_starts_with_the_music.html"/>
    <published>2005-03-01T00:00:00Z</published>
    <updated>2005-03-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-03-01-An_enjoyable_party_starts_with_the_music.html</id>
    <content type="html"><![CDATA[<p><p>So many of my devoted fans have asked: jjohn, how can we host 
parties that as rawkin' as yours?  To which I say: you need the 
<a href="http://taskboy.com/music/03_theme_from_arthur.mp3">right music</a>
(where "right" means a Japanese cover of a Chris Cross song).<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/23440">post</a> and <a href="http://use.perl.org/comments.pl?sid=25271">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[HST still newsworthy after a week!]]></title>
    <link href="https://www.taskboy.com/2005-02-27-HST_still_newsworthy_after_a_week_.html"/>
    <published>2005-02-27T00:00:00Z</published>
    <updated>2005-02-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-02-27-HST_still_newsworthy_after_a_week_.html</id>
    <content type="html"><![CDATA[<p><p>Don't get me wrong: I thoroughly enjoyed <em>Fear and Loathing in Las 
Vegas</em>.  It was like an acerbic version of <em>Alice in Wonderland</em>
but with drugs I could recognize.  Thompson was a great writer, if not a little
self-absorbed.  However, his self-inflected death should not have surprised 
anyone (unless it was that it took him so long to pull the trigger) and its 
seems that his family was the least surprised of all.  You 
don't pump that much drugs and alcohol into yourself and act life a madman 
unless your running away from something.  Fear most certainly fuel Thompson's
writing career.  I am amazed at the people that look to his work as some kind
of guide to life.  Why not pick up a copy of Crowely's <em>Diary of a Drug 
Fiend</em> or de Sade's <em>Justine</em>?
<p>What is remarkable is how his death continues to make news.  Can we be on 
the verge of a new cult?  Will HST raise from his grave of Bad Craziness to 
join the Lizard King Morrison and His Grace Elvis?  Bad Craziness indeedâ¦
<p>In non-HST news, I've unfortunately come down with a bad case of 
<a href="http://www.absoluteanime.com/hellsing/">Hellsing</a>.  A regular 
course of Manga seems to be helping.  The character of Sir Integra is 
androgilicious!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/23409">post</a> and <a href="http://use.perl.org/comments.pl?sid=25238">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[use.perl blogging with win32 emacs + perl]]></title>
    <link href="https://www.taskboy.com/2005-02-24-use.html"/>
    <published>2005-02-24T00:00:00Z</published>
    <updated>2005-02-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-02-24-use.html</id>
    <content type="html"><![CDATA[<p><p>Since use.perl.org has become my de facto backup solution, 
I now post the scripts I use to blog from winders.  These are modified 
versions of the scripts I mentioned in a use.perl.org article published a 
while ago. <br>
<p>The emacs file:
<p></p>

<p class="code">
(defvar prog
   "C:/perl/bin/perl.exe F:/blog/use_perl_blog.pl"
   "use_perl_journal: A SOAP client for use.perl journaling"
)

(defun edit-entry ()
   "Add an entry or edit an existing one"
   (interactive)
   (setq cmd (concat prog " edit"))
   (widen)
   (shell-command-on-region (point-min) (point-max) cmd)
)

(defun get-entry (n)
  "Get journal entry from use.perl.org"
  (interactive "sJournal ID: ")
  (setq buffer (generate-new-buffer "*use_perl_journal*"))
  (switch-to-buffer buffer)
  (setq cmd (concat prog (concat " -i " (concat n " get"))))
  (shell-command-on-region (point-min) (point-max) 
        cmd 1 nil nil) 
)

(defun list-entries (uid limit)
   "Get journal entries"
   (interactive "sUser ID: nsLimit: ")
   (setq buffer (generate-new-buffer 
        "*use_perl:list_entries*"))
   (switch-to-buffer buffer)
   (setq cmd (concat prog (concat " -l " (concat 
        limit " -i " (concat uid " list")))))
   (shell-command-on-region (point-min) (point-max) 
        cmd 1 nil nil)
)


(defun delete-entry (jid)
  "Delete journal entry"
  (interactive "nEntry ID: ")
  (setq cmd (concat prog (concat " -i " (concat jid 
        (concat " delete")))))
  (shell-command-on-region (point-min) (point-max) 
        cmd 1 nil nil)
)

;; don't use tabs
(setq-default indent-tabs-mode nil)

(global-set-key "C-xtl" `list-entries)
(global-set-key "C-xtg" `get-entry)
(global-set-key "C-xts" `edit-entry)
(global-set-key "C-xtm" `edit-entry)
(global-set-key "C-xtd" `delete-entry)
</p>

<p>The perl script:

<p class="code">
# -*-cperl-*-
# A SOAP client to post USE.PERL.ORG journal entries

use strict;
use HTTP::Cookies;
use SOAP::Lite;
use File::Basename;
use Digest::MD5 'md5_hex';
use Data::Dumper;
use Getopt::Std;

use constant DEBUG => 0;
use constant UID   => -1; # your UID here
use constant PW    => 's3cr3t'; # your pw here
use constant URI   => 'http://use.perl.org/Slash/Journal/SOAP';
use constant PROXY => 'http://use.perl.org/journal.pl';

my $Dispatch = {
                 'get'  => &get_entry,
                 'list' => &list_entries,
                 'add'  => &add_entry,
                 'edit' => &edit_entry,
                 'delete' => &delete_entry,
               };

my $opts = {};
getopts('h?vi:u:l:', $opts);

my $action = pop @ARGV;

unless ($action) {
  print usage(), "n";
  exit;
}

my $soap_client = make_soap();

my $exit_value = 0;
if (defined $Dispatch->{$action}) {
  $exit_value = !$Dispatch->{$action}->($opts, $soap_client);
} else {
  warn("Unknown action '$action'");
  print usage();
  $exit_value = 1;
}

exit $exit_value;

#ââ
# subs
#ââ

sub usage {
  my $base = basename($0);
  return qq[
$base - manage use.perl.org blog

 USAGE: 
   $base [options] [actions]

 OPTIONS:
   ?       print this screen
   h       print this screen
   v       verbose mode
   i   entry ID 
   l  limit the number of listed entries to this number
   u   use.perl.org user ID

 ACTIONS:  
  add
  delete 
  edit
  get
  list
 Input files take the following form:
      id:
      subject:
          body:
];
}

sub make_soap {
  my $cookie = HTTP::Cookies->new;
  $cookie->set_cookie( 0,
               user => bakeUserCookie(&UID, &PW),
               "/", 
               "use.perl.org",
             );

  return SOAP::Lite->uri(URI)->proxy(PROXY, 
                                  cookie_jar => $cookie);
}

sub add_entry {
  my ($opts, $c, $in) = @_;

  $in ||= parse_input();

  my $ret;
  if ($in->{subject} && $in->{body}) {
    if ($in->{id}) {
      return edit_entry(@_, $in);
    } else {
      $ret = $c->add_entry($in->{subject}, $in->{body}); 
    }
  } else {
    $ret = $c->add_entry("Random thought #$$", $in->{all});
  }

  return if had_transport_error($ret);
  print "add_entry got articleID: ", $ret->result, "n";
  return 1;
}

sub delete_entry {
  my ($opts, $c) = @_;

  my ($id) = $opts->{i} || 
        die "delete requires a journal IDn";
  my $ret = $c->delete_entry($id);
  return if had_transport_error($ret);
  print "Deleted article ID '$id'n";
  return 1;
}

sub edit_entry {
  my ($opts, $c, $in) = @_;

  # add_entry may have already read STDIN
  $in ||= parse_input(); 

  unless ($in->{id}) {
    # warn("No article IDn");
    return add_entry($opts, $c, $in);
  }

  my $ret = $c->modify_entry($in->{id},
                 subject => $in->{subject},
                 body => $in->{body},
                );

  return if had_transport_error($ret);

  print "Updated article $in->{id}n";

  return 1;
}

sub get_entry {
  my ($opts, $c) = @_;

  my $id = $opts->{i} 
        || die "get_entry requires a journal IDn";
  my $ret = $c->get_entry($id);
  return if had_transport_error($ret);

  if (my $hr = $ret->result) {
    while (my ($k,$v) = each %{$hr}) {
      print "$k: $vn";
    }

  } else {
    warn ("Couldn't fetch journal entry '$id'n");
    return;
  }
  return 1;
}

sub list_entries {
  my ($opts, $c) = @_;
  my ($uid, $limit) = (($opts->{u} || &UID), $opts->{l});

  my $ret = $c->get_entries($uid, $limit);
  return if had_transport_error($ret);

  my $ar = $ret->result;
  for my $row (@{$ar}) {
    while (my ($k,$v) = each %{$row}) {
      print "$k: $vn";
    }
    print "n";
  }

  return 1;
}


sub parse_input {
  my %rec;

  my $last_field = 'all';
  while (defined ($_ = )) {
    chomp($_);
    if (/^(w+):s*(.*)/) {
      $last_field = $1;
      $rec{$last_field} = $2;
    } else {
      $rec{$last_field} .= "n$_";
    }
  }

  return %rec;
}

sub bakeUserCookie {
  my ($uid, $pw) = @_;
  my $c = $uid . "::" . md5_hex($pw);
  $c =~ s/(.)/sprintf("%%%02x", ord($1))/ge;
  $c =~ s/%/%25/g;
  return $c;
}

sub had_transport_error {
  my ($ret) = @_;

  if ($ret->fault) {
    warn ("Oops: ", $ret->faultString, "n");
    return 1;
  }

  return;
}
</p>
</p>

<p><p>To post:</p>

<ul>
  <li>M-x load-file  
  <li>new buffer with "id:nsubject:nbody:";
  <li>add blog content to buffer
  <li>M-x t s to publish blog to use.perl
</ul>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/23353">post</a> and <a href="http://use.perl.org/comments.pl?sid=25185">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[What's striped like a barber's pole and makes children cry?]]></title>
    <link href="https://www.taskboy.com/2005-02-22-What_s_striped_like_a_barber_s_pole_and_makes_children_cry_.html"/>
    <published>2005-02-22T00:00:00Z</published>
    <updated>2005-02-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-02-22-What_s_striped_like_a_barber_s_pole_and_makes_children_cry_.html</id>
    <content type="html"><![CDATA[<p>The Daily Record (via rotten.com) <a href="http://www.dailyrecord.co.uk/news/tm_objectid=15207314%26method=full%26siteid=89488%26headline=privates-detective-shock-for-jacko-name_page.html">reports</a>:
<blockquote>
&laquo;JURORS at Michael Jackson's trial will be told the pop megastar's manhood looks 'like a barber's pole'.
<p>Private investigator Ernie Rizzo yesterday said the star's latest alleged victim could provide damning evidence about Jackson's unusually marked penis.
<p>Rizzo was hired by the family of Jordan Chandler, who accused Jackson of molestation in 1993.
<p>He claims he saw police photos of a naked Jackson taken more than 10 years ago. And he said distinctive brown rings were visible around the star's penis as the singer bleached his body twice a week.&raquo;
</blockquote></p>

<p>So, what mental cleanser are you going to use to erase that image from your
mind?</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/23301">post</a> and <a href="http://use.perl.org/comments.pl?sid=25130">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Quiz time - find the filesystem fault!]]></title>
    <link href="https://www.taskboy.com/2005-02-19-Quiz_time_-_find_the_filesystem_fault_.html"/>
    <published>2005-02-19T00:00:00Z</published>
    <updated>2005-02-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-02-19-Quiz_time_-_find_the_filesystem_fault_.html</id>
    <content type="html"><![CDATA[<p>Hey kids!  Here's the df output from a hosted server I'm setting up. 
It's a Fedora Linux box.  Can you spot the configuration faux pas
made by the company that installed the OS?  And for extra points, was the 
fellow that set up the box on pot, acid or crack?

[www@olive /]$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda1             510M  483M  856K 100% /
none                  249M     0  249M   0% /dev/shm
/dev/hda7              63G  5.2G   58G   9% /home
/dev/hda5             4.9G  1.0G  3.9G  21% /usr
/dev/hda6             4.9G  296M  4.6G   6% /var
</p>

<p>Here's a hint: Where are all the tmp files going to go when
the #$!%ing ROOT PARTITION FILLS UP BECAUSE IT'S TOO $%#@ING SMALL!</p>

<p><p>Good luck!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/23257">post</a> and <a href="http://use.perl.org/comments.pl?sid=25082">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[then your answer would be yes]]></title>
    <link href="https://www.taskboy.com/2005-02-11-then_your_answer_would_be_yes.html"/>
    <published>2005-02-11T00:00:00Z</published>
    <updated>2005-02-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-02-11-then_your_answer_would_be_yes.html</id>
    <content type="html"><![CDATA[DATELINE: HOLLYWOOD.  Aging child star Corey Feldman<br>
<a href="http://abcnews.go.com/2020/News/story?id=481709&page=1">questions</a> his<br>
relationship with one M. Jackson.<br>
<blockquote><br>
&laquo;"If you consider it inappropriate for a man to look at a book of naked pictures with a child that's 13 or 14 years old then your answer would be yes."&raquo;<br>
</blockquote><br>
<p>&lt;VOICE TYPE="Harvey Birdman's Boss"&gt;<br>
ha HA! Pedaphilicious!<br>
&lt;/VOICE&gt;<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/23146">post</a> and <a href="http://use.perl.org/comments.pl?sid=24966">comments</a>.]</p><br>


]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[setting the color depth in VNC for VMWare workstation]]></title>
    <link href="https://www.taskboy.com/2005-02-10-setting_the_color_depth_in_VNC_for_VMWare_workstation.html"/>
    <published>2005-02-10T00:00:00Z</published>
    <updated>2005-02-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-02-10-setting_the_color_depth_in_VNC_for_VMWare_workstation.html</id>
    <content type="html"><![CDATA[<p>Note to self:</p>

<p><p>tightvnc, and probably realvnc, default to 8 bit color depth when starting
a new server.  VMWare workstation frowns on this and wants more.  You can 
either start vncserver with '-depth 16' or edit vncserver (it's a perl script)
and change line 36 to "$depth = 16;".
<p>Also note that you can get emacs to display all its pretty colors with 
M-x list-color-display.
<p>That is all.
<p>Update: <a href="http://ultravnc.sourceforge.net/">UltraVNC is a very interesting variant.  The file transfer and chat options intrigue me.  It appears to be targetted at the win32 platform.  Is there a version for unixy things?<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/23122">post</a> and <a href="http://use.perl.org/comments.pl?sid=24940">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[maneater]]></title>
    <link href="https://www.taskboy.com/2005-02-08-maneater.html"/>
    <published>2005-02-08T00:00:00Z</published>
    <updated>2005-02-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-02-08-maneater.html</id>
    <content type="html"><![CDATA[<p><p>Say, there aren't any 
<a href="http://www.snopes.com/photos/animals/yarmouth.asp">half-ton sharks</a> swimming around the 
east coast of the U.S., right?  Because if there were, man I'd be 
concerned. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/23082">post</a> and <a href="http://use.perl.org/comments.pl?sid=24897">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[RSS for mail and praise for mozilla]]></title>
    <link href="https://www.taskboy.com/2005-02-05-RSS_for_mail_and_praise_for_mozilla.html"/>
    <published>2005-02-05T00:00:00Z</published>
    <updated>2005-02-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-02-05-RSS_for_mail_and_praise_for_mozilla.html</id>
    <content type="html"><![CDATA[<p>I've been fooling around with RSS a bit lately and it seems less than 
totally useless to me (which says a lot for the technology).  Aside from 
traditional web content like news articles and blogs, it seems to me that 
syndicating web mail would make for a novel use of RSS.  I'd love to have a 
live bookmark in FireFox for my Yahoo inbox.  Each subject line could link
back to the body of the message.  I'm sure Yahoo will get right on this. <br>
<p>This would probably make me very happy.
<p>In other news, I made my first extension to mozilla's search sidebar thingie (which 
may need better nomenclature).  It adds a simple "always on" interface to one 
of my clients' web products.  To do this, all I needed was a fairly small 
XML-lookin' text file.  Some vendor-specific javascript 
manhandles Mozilla browsers into fetching this file and installing it. <br>
<p>Wanna see the file?  Here's an expurgated version of it:


</p>

<p>
</p>

<p>

<p>Find out more at <a href="http://mycroft.mozdev.org/deepdocs/quickstart.html">mycroft</a>.
<p>Sadly, the Google search bar in Apple's Safari isn't nearly so easily 
extended.  There's no config file to change, nor javascript to facilitate this
change.  It's true that there's <a href="http://www.pozytron.com/?acidsearch">acid search plugin</a>, but 
Apple should follow Mozilla's lead on this one.
<p>I miss MarkovBlogger.  It could easily of churned out an entry as insipid 
as this without my attention.  Perhaps I look into getting unpaid college 
interns to do this blog for me.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/23022">post</a> and <a href="http://use.perl.org/comments.pl?sid=24833">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[building a monster]]></title>
    <link href="https://www.taskboy.com/2005-01-27-building_a_monster.html"/>
    <published>2005-01-27T00:00:00Z</published>
    <updated>2005-01-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-01-27-building_a_monster.html</id>
    <content type="html"><![CDATA[<p><p>As a lingering consequence of the destruction of my primary linux 
box, I've obtained the parts for a new Digital Audio Workstation (DAW). <br>
Naturally, I bought the parts from New Egg</a>.
It's a Althon XP (+Barton) 3000 (2.1Ghz) 1G RAM box with a 
80 Gb (7200 rpm) IDE drive for the console OS (XP Pro) and a 37 Gb (10K rpm)
drive for audio files.  Although the case is a humble mid-tower, the monitor
is a petite 15" flat screen so that I can stick the whole shebang in a wire
rack from Economy Hardware</a>. 
The audio 
<a href="http://www.m-audio.com/products/en_us/BX5-main.html">monitors</a> 
still at just above ear level (which I prefer to below ear level) and my 
retro <a href="http://www.sonicstate.com/synth/esq1.cfm">Ensoniq ESQ1</a> 
synth/MIDI controller juts out perpendicularly to the rack for 
my pleasure.  I've just finished installing the OS, the patches, the 
patches to the patches, the updated drivers for the hardware, firefox, putty
and two more patches for the audio software, 
<a href="http://www.cakewalk.com/Products/SONAR/studio.asp">Sonar 4</a>. 
I still need to add some additional 
<a href="http://www.kvr-vst.com/">VST effects and Synths</a> and then I'll be 
ready to migrate my existing audio projects from their former home to the 
new beast.
<p>With all the foul weather Boston has received of late (about 40 inches for
January, a 113 year record!), there are plenty of reasons to have indoor 
hobbies.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/22912">post</a> and <a href="http://use.perl.org/comments.pl?sid=24721">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[PseudoSyndication]]></title>
    <link href="https://www.taskboy.com/2005-01-25-PseudoSyndication.html"/>
    <published>2005-01-25T00:00:00Z</published>
    <updated>2005-01-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-01-25-PseudoSyndication.html</id>
    <content type="html"><![CDATA[<p><p>For those loyal listeners who need to stay current with 
<a href="http://pseudocertainty.com/">PseudoCertainty</a>, rejoice 
at the unveiling of the 
<a href="http://pseudocertainty.com/pc.rss">pseudocertainty RSS feed</a>.
Not only do you get the 5 most recent articles, but also links to the five
most recent shows. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/22869">post</a> and <a href="http://use.perl.org/comments.pl?sid=24676">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Scraping weather]]></title>
    <link href="https://www.taskboy.com/2005-01-20-Scraping_weather.html"/>
    <published>2005-01-20T00:00:00Z</published>
    <updated>2005-01-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-01-20-Scraping_weather.html</id>
    <content type="html"><![CDATA[<p><p>As I continue to recover from my own personal IT nightmare, 
I have made a few new improvements in order to replace those 
conveniences that have been fsck'ed away. 
<p>This entry, for instances, was made entirely on an stoopid XP 
box using emacs and win32 perl.  The code for this is substantially
the same as what I published in that article for use.perl.org about 
the SOAP interface.  So now I can bloginate again, much to the relief 
of all my attentive readers. 
<p>Here I present a small, somewhat naughty utility that replaces a 
more elegant bash shell hack to spit out my local weather forecast. <br>
It scrapes <a href="http://www.wunderground.com/">Weather Underground</a> 
and reports the 5-day forecast on the command line, without ads or other 
distractions.  You will need to change the zipcode, should you wish
to use this program yourself.</p>

<p>
use strict;
use LWP::UserAgent;
use Text::Wrap;</p>

<p>my $zip = "02215";
my $url = qq[http://www.wunderground.com/cgi-bin/findweather/getForecast?query=$zip];</p>

<p>my $ua = LWP::UserAgent->new;
$ua->agent(q[Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)]);
my $res = $ua->request(HTTP::Request->new(GET=>$url));</p>

<p>unless ($res->is_success) {
    die "Can't fetch $url: ", $res->code, "\n";
}</p>

<p>my $content = $res->content;</p>

<p>my $updated = "";
my $in_rec;
for $_ (split /\n/, $content) {
    if ($updated) {
        if (m!width="100%" >(+)<br>!) {
            $in_rec = $1;
            next;
        }</p>

<p><code>    if ($in_rec) {
        if (/&lt;br&gt;/) {
            # out of record
            print "$in_rec\n";
            undef($in_rec);
        } else {
            $in_rec .= ":\n" . wrap("\t", "\t", $_) . "\n";
        }
    }
} else {
    if (m!Updated: &lt;b&gt;([^&lt;]+)&lt;/b&gt;\s*$!) {
        $updated = $1;
        print "Updated: $updated\n";
    }
}
</code></p>

<p>}
<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/22809">post</a> and <a href="http://use.perl.org/comments.pl?sid=24607">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[power outage tsunami]]></title>
    <link href="https://www.taskboy.com/2005-01-10-power_outage_tsunami.html"/>
    <published>2005-01-10T00:00:00Z</published>
    <updated>2005-01-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-01-10-power_outage_tsunami.html</id>
    <content type="html"><![CDATA[<p><p>The recent snow storm in my area caused a wave of power outages which ended up frying the filesystem of my primary development box.  This means, among the more trivial consequences, that the markovblogger has been silenced.   The fsck is past its first hour of work and it is deleting broken inodes to beat the band. 
<p>I'm a sad, sad panda. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/22644">post</a> and <a href="http://use.perl.org/comments.pl?sid=24437">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]    Performance  reviews.]]></title>
    <link href="https://www.taskboy.com/2005-01-07-[MarkovBlogger]____Performance	reviews.html"/>
    <published>2005-01-07T00:00:00Z</published>
    <updated>2005-01-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-01-07-[MarkovBlogger]____Performance	reviews.html</id>
    <content type="html"><![CDATA[<blockquote> Where was this research network located?</blockquote>

<p>No  searching.  Happy  hunting!    <p> 
Results:  +25  to  <a href="http://use.perl.org/~prakash">prakash</a>!  <p>  LSM 
could  either  temporarily  open  up  the  first  eight 
spaces  (which  you  already  knew  this:  I  challenged 
the  jackass  savant  to  show  me  something 
web-pagey,  it  showed  how  much  more  productive,  this 
reimplementation  shouldn't  take  you  to  write  those 
AEGizmos  strings.   use Mac::AppleEvents; use
Mac::Errors; $e = AEBuildAppleEvent(qw(aevt odoc sign
MACS), -1, 0, "asdasd"); print "$Mac::Errors::MacError: $@"
if $!; <strong>END</strong> AEBuildDesc and friends detected a syntax</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/22609">post</a> and <a href="http://use.perl.org/comments.pl?sid=24396">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Thoughts on /The Golden Compass/ and /The Da Vinci Code/]]></title>
    <link href="https://www.taskboy.com/2005-01-06-Thoughts_on__The_Golden_Compass__and__The_Da_Vinci_Code_.html"/>
    <published>2005-01-06T00:00:00Z</published>
    <updated>2005-01-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-01-06-Thoughts_on__The_Golden_Compass__and__The_Da_Vinci_Code_.html</id>
    <content type="html"><![CDATA[<p>Having just finished both of these books, I wanted to collect my thoughts on these two works, the first by Philip Pullman the the later by Dan Brown. <br>
Both books dredge up some festering charges of the shenighans 
perpetrated by the Catholic Church over the long years of its existence. <br>
Even though I am not Catholic, nor indeed a practitioner of any creed, I found 
both books to be a bit unfair to the Church.  And this is odd, because there 
are few who enjoy a good thumping of Bible-thumpers more than I. 
<p>Pullman's Golden Compass is really a tale for young adults and 
follows the wild adventures of Lyra Belacqua and her soulmate/avatar daemon
Pantalaimon.  In Lyra's parallel Earth (which resembles late nineteenth 
century Europe), the Church has a vast and pervasive hold over secular 
governments.  And like Microsoft, the Church pits internal groups against each
other.  Eventually, Pullman gets around to mentioning some of the more 
regrettable violence promulgated by the Church, including the Inquistion and
the Castrati choir boys.  Good fun.  In the end, Pullman brings up these 
historical barbarisms to explain some of the violence that the Church in his 
story is involved in.  It's not all that sweeping of a condemnation of the 
real-world Church, but it does give the reader a little gristle to chew on.
<p>I've heard that Pullman's work is being adapted to film and that the 
movie producers, fearing a Christian backlash, are changing the Church into 
some evil, bureaucratic behemoth.  What better way to insult intelligent 
Christians than to say tacitly "because you can't tell fact from fiction, 
we're going to adapt the film to your limited understanding and fragile 
sensibilities."  The only thing
more hurtful than criticism is condescension.  Fah.
<p>By a seemingly random chance, a copy of The Da Vinci Code came into
my hot little hands.  This is a book that I did not want to buy, because
I'm a snob and it's a very popular title.  And the corollary to popularity is
that anything loved by a very great number of people must be pretty banal 
indeed.  And it kind of is.  It's not that Brown is a bad writer, but his 
narrative is manipulative.  This may be part and parcel of the way 
writing for thrillers works (along with including clich&eacute;s like "part and
parcel").  I don't normally read them.  The last one that
I finished was Acts of the Apostles, which was virtually thrust into 
my hands by the author.  However, Brown is skilled at keeping the reader 
engaged in the plot, even if he's a bit heavy-handed in dropping clues, setting
up plot elements, and at creating characters the reader should care about. 
<p>But that's not really what's awful about Da Vinci Code.  Brown merely
recycled a good bit of vintage conspiracy theories and a plot I know I have
heard before (Name of the Rose, maybe?) and dressed it up with utter neo-pagan
garbage.  If I never hear the phrase "sacred feminine" again it will be too 
soon.  That particular phrase is so noisome to me because it represents all 
that's unbearable about university learning: a plethera of specious terms that 
have no concrete meaning (you can add the term "Self" to that list of empty 
words too).  Brown dresses up his rather blunt trauma attack on Catholicism 
with art history and appeals to the mysterious, which are nearly the same
tactics used by some of the early Church to attack paganism.  There is a fine
traditional of those Christians who tried to apply a modicum of reason to their
faith, including Thomas Acquinas and St. Augustine (who wrote my motto for 
living "work out your salvation in fear and trembling").  But, naturally, 
those are conveniently forgotten.  If the mysterious Priory of 
Scion is so concerned with saving the "true meaning of Christ's teachings," 
why the hell are they practicing paganism?  Christ was a Jewish reformer, a 
monothesist.  He bloody well wasn't a dope-smoking, tree-hugging neo-wiccan 
hippy.  If you think Jesus was a bastard to the Pharisees, do you really 
think that he'd give pagans a pass?  That sort of revisionist history I can't 
cotton too.  If you want to talk about the political comprimises the Church 
made to doctrine over the years, have at it.  Issues like clerical celibacy, 
the Holy Trinity and which books were to compose the Canon are all 
fascinating and ripe for lambasting the Church.  There is little profoundity or
insight in saying that the Church fears vaginas and that it is very 
pro-phalus.  Saying that the Church fears an ancient Hebrew line of royalty,
no matter how provocative its progenitors may be, seems stupid.
<p>In the end, The Da Vinci Code is merely a thriller with pretentions 
of greatness.  That this book became so popular speaks to the laziness of the 
modern reader.
<p>Dan Brown: I want my sleep back that you robbed me of for this big bucket 
of warmed-over suck.
<p>Mmm.  I can't think of anyone else to cheese off right now, but I'll work 
on it. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/22600">post</a> and <a href="http://use.perl.org/comments.pl?sid=24385">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[copyright me tender]]></title>
    <link href="https://www.taskboy.com/2005-01-03-copyright_me_tender.html"/>
    <published>2005-01-03T00:00:00Z</published>
    <updated>2005-01-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2005-01-03-copyright_me_tender.html</id>
    <content type="html"><![CDATA[<p>From the U.S. Copyright Office FAQ</a>:<blockquote>
&laquo;How do I protect my sighting of Elvis?
<p>Copyright law does not protect sightings. However, copyright law will protect your photo (or other depiction) of your sighting of Elvis. Just send it to us with a Form VA application and the $30 filing fee. No one can lawfully use your photo of your sighting, although someone else may file his own photo of his sighting. Copyright law protects the original photograph, not the subject of the photograph.&raquo;
</blockquote>
<p>Rats!  I have a whole list of Open Source Celebrity sightings I wanted to 
copyright and now I can't!  Damn the law!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/22546">post</a> and <a href="http://use.perl.org/comments.pl?sid=24327">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  emails  of.]]></title>
    <link href="https://www.taskboy.com/2004-12-31-[MarkovBlogger]__emails__of.html"/>
    <published>2004-12-31T00:00:00Z</published>
    <updated>2004-12-31T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-12-31-[MarkovBlogger]__emails__of.html</id>
    <content type="html"><![CDATA[<p>a  quaint  little  space,  with  a  business  I  used  to play  a  little  demo.   I  guess  that's  it  for  nearly 
two  months  since  I  can  write  a  HTML  parser  in 
many  cases,  my  files  from  Al  Qaeda  computers  were 
cool?  Pawing  through  the  house  any  more  discussed 
about  it.  A  jargon  term  attached  to  the 
weather:</p>  <p>  Currently:  -9&deg;  F  (-23&deg;
 C)  <br>Wind  Chill:  -29&deg;  F  (-34&deg;  C)
 </p>  <p>That  works  great,  all  my  various  stereo 
systems  etc.,  and  using  Perl.<p>  Anyway,  so  I 
mosied  on  over  the  past  few  months.  That  is,  when 
later  comes  the  moment  that  he  makes  up  for  Apple 
Developer  Connection.  Today  I  had  an  extra  Coke  for
 good  reasons.    Anyway,  my  score  would  have 
gotten  into  the  dealership  tonight.  So  into  the 
news  that's  fit  to  print,  plus  some  other  flags, 
too.    And  anybody  who  says  it  does:  update 
Safari.  (I  deleted  the  previous  glasses  of  port  I'd
 consumed.<p>  I  tend  to  agree,  though  I  have  a 
button-up  shirt  and  black  pants  made  An  Annoucement 
from  the  descriptions.  Finally  I  close  next  week 
for-ever,  but  I  can't  even  get  sponsors  to 
subsidize  American  industry  (although  sometimes  it's 
easier  to  implement  tools  and  optimize  the  largest 
known  prime  number,  beating  GIMPS'  2  year  contract),
 July  22-26.  I'm  going  to  give  us  the  <em>option</em>  to 
terminate  the  connection  that  tries  to  treat  verbose
 mode  the  same  problem.  I  rebuild  gmp  again  but 
set  the  world  ending  in  fire  or  ice  â  there  are 
major  issues  over  the  hill  behind  our  house,  which 
has,  of  course,  am  mainly  attending  to  see  Harry
 Potter  and  the  requirements  of  skill  and 
understanding.    But  why  bother?  The  files  are 
still  lacking  when  it  wasn't  free  (I  think). 
<p>Then  came  the  other  day.  No-one  even  grabbed  my 
crank.  In  fact,  if  you  look  at  making  the  depth 
of  fifty  links,  currently.  (I'll  be  able  to  track 
down  who  it  was  a  man  called  John  Sulman  who  was 
my  first.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/22518">post</a> and <a href="http://use.perl.org/comments.pl?sid=24298">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[F'Email trouble]]></title>
    <link href="https://www.taskboy.com/2004-12-30-F_Email_trouble.html"/>
    <published>2004-12-30T00:00:00Z</published>
    <updated>2004-12-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-12-30-F_Email_trouble.html</id>
    <content type="html"><![CDATA[<p>Through a series of hilarious mishaps, mail to taskboy.com and aliensaliensaliens.com will bounce.  That's because both machines are fubarred.
Taskboy.com is coming up soon.  A3 is in limbo.  So if you need to contact
me, er, don't.  I suppose you could try IMing taskboy3000.  That is all. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/22500">post</a> and <a href="http://use.perl.org/comments.pl?sid=24279">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[holidays]]></title>
    <link href="https://www.taskboy.com/2004-12-28-holidays.html"/>
    <published>2004-12-28T00:00:00Z</published>
    <updated>2004-12-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-12-28-holidays.html</id>
    <content type="html"><![CDATA[<p>Boy, I sure could go for another holiday.  It's been, like, days sinceI've gorged myself on food and drink.  No wonder January is so quietâ¦</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/22483">post</a> and <a href="http://use.perl.org/comments.pl?sid=24262">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]    iSight    Plugging  Along    Observation  .]]></title>
    <link href="https://www.taskboy.com/2004-12-24-[MarkovBlogger]____iSight____Plugging__Along	Observation__.html"/>
    <published>2004-12-24T00:00:00Z</published>
    <updated>2004-12-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-12-24-[MarkovBlogger]____iSight____Plugging__Along	Observation__.html</id>
    <content type="html"><![CDATA[<p>But  I  figured  I  could  go  and  look  it  up  as  a timetable  of  when  to  use  TextEdit,  realized  that  I 
have  test  code  that  hardwired  Pod::Text  and  Pod::Man
 as  the  amount  of  Pod-parsing  code  this  weekend  :) 
Yesterday  I  officially  unsubscribe  myself  from 
london.pm  completely  and  let  it  stand  for  a  day  to
 myself  that  as  complex  as  they  do  change,  all  of 
what  the  hell.  A  porno  <em>theater?</em>  Is  this  a 
ghost?!?!?!?)  <br>The  old  Indian  man's  face  appeared 
on  the  server  program  itself,  whereas  my  impression 
that  the  right  manner,  I  hope).  jjohn  said  Ben 
Folds  boy,  you  should  be  told?  Some  say  the  US 
government  is  illegitimate,  or  that  or  the  AI  was 
so  off.  The  Monday  of  OSCon  week  is  going  on  in 
that  it's  a  little  more  work  on  it.</p>  <p> <br>
AxKit  will  be  left  alone.  The  fact  that  these  news
 briefings  -  which  came  as  a  diff  between  the 
Python  tutorial  a  little  more  function  stuff  before 
the  courts  will  have  protection  from  idiotic 
enforcement  attempts.    To  top  it  all 
object-oriented  like,  but  not  in  local  time,  so 
that  I  had  completely  forgotten  just  how  much  books
 went  for  a  couple  having  sex  a  few  catholics,  but
 the  design  of  von  Neumann's  EDVAC.  Wilkes'  machine 
was  bad,  as  well  with  these  before,  anyone  know 
definitively?  I  may  be  user  error.  The  wireless  at 
home  yet  -  bummer.  There  is  no  swelling  or 
bruising  anywhere.  I  may  have  heard  it  said  there 
were  tricky  union  issues  to  be  found  <a href="http://use.perl.org/comments.pl?sid=12076&amp;cid=18699">
here</a>.  Installed  this,  and  replied  with  a  command
 (or  as  economists  would  put  a  Kahler  tremolo  on 
it  shortly.  <p>  The  good  part  of  the  features  of 
train  trips  in  the  best  pitcher  in  the  neighborhood
 of  a  lot.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/22443">post</a> and <a href="http://use.perl.org/comments.pl?sid=24217">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Shrinking Smeagol]]></title>
    <link href="https://www.taskboy.com/2004-12-22-Shrinking_Smeagol.html"/>
    <published>2004-12-22T00:00:00Z</published>
    <updated>2004-12-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-12-22-Shrinking_Smeagol.html</id>
    <content type="html"><![CDATA[<p>From del.icio.us comes this psychological <a href="http://bmj.bmjjournals.com/cgi/content/full/329/7480/1435?maxtoshow=&amp;HITS=10&amp;hits=10&amp;RESULTFORMAT=&amp;fulltext=gollum&amp;searchid=1103349387213_18575&amp;stored_search=&amp;FIRSTINDEX=0&amp;volume=329&amp;issue=7480">case study of Gollum</a>.  No word yet on if this team has cracked the savior-complex of that Aragorn fellow yet.</p>

<blockquote>
Sm&eacute;agol (Gollum) is a single, 587 year old, hobbit-like male of no fixed abode. He has presented with antisocial behaviour, increasing aggression, and preoccupation with the "one ring."
</blockquote>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/22415">post</a> and <a href="http://use.perl.org/comments.pl?sid=24191">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Browder assimilated]]></title>
    <link href="https://www.taskboy.com/2004-12-19-Browder_assimilated.html"/>
    <published>2004-12-19T00:00:00Z</published>
    <updated>2004-12-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-12-19-Browder_assimilated.html</id>
    <content type="html"><![CDATA[<p><p>From <a href="http://scifi.com/scifiwire/art-main.html?2004-12/15/11.00.sfc">Sci-Fi Wire:</a><blockquote>
SCI FI Channel confirmed that Farscape star Ben Browder will join the cast of SCI FI's original series Stargate SG-1. Browder will join the cast in the show's upcoming ninth season; no information on Browder's role was available. Meanwhile, the show's producer, MGM, is still working on a deal to bring back SG-1 star Richard Dean Anderson (Gen. O'Neill) in some capacity.
</blockquote>
<p>No word on whether he will be appearing in his black leather pants.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/22368">post</a> and <a href="http://use.perl.org/comments.pl?sid=24141">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  total    Hats.]]></title>
    <link href="https://www.taskboy.com/2004-12-17-[MarkovBlogger]__total	__Hats.html"/>
    <published>2004-12-17T00:00:00Z</published>
    <updated>2004-12-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-12-17-[MarkovBlogger]__total	__Hats.html</id>
    <content type="html"><![CDATA[<p>people  living  here  alone,  and  you  can  drink.  It'll be  much  more  "widget-like"   interface  than  the  other
 side  of  AWAD  which  makes  life  easier.  This  almost 
worked.  Every  solution  we  tried  to  deal  with  the 
result  is  this.
 A  web  page  through  Mozilla.  (Or  that  other 
customers  have  access  to  the  highest  density  of 
Macs  here  is  "."  as  a  structure  and  he  needed  to 
catch.)  The  GENERIC  kernel  seemed  OK  (but  didn't 
have  the  very  early  on  in  Perl  5  regexps  be 
covered?<p>  Tell  me  about  Tibetan  Punctuation.  <p>And
 then  the  real  work  done.  So  when  lunch  time  I 
wake  up,  please  tell  me  that  an  article  recently 
(sorry,  I  forget  what  Konrad  Zuse  was  doing,  and 
it  worked.  </p>  <a href="http://www.nytimes.com/2002/09/24/science/24BEAU.html
?8hpib">Science's 10 Most Beautiful Experiments</a>.  I 
keep  being  surprised.  We  both  work  from  home  to 
practice,  in  my  life.  I'm  attempting  to  watch  the 
pretty  things  later.  That  way,  when  the  British 
music  industry  entertained  120,000  members  of 
Al-Queda  attempting  to  fleece  you  out  of  the  <a href="http://www.sanger.ac.uk/">Sanger Institute</a>'s 
Sequencing  Centre.  I'll  admit  that  you  concentrate 
on  the  fly  compression  of  all  the  O'Reilly  books 
in  between  the  logo  at  the  moment  I  expect  is 
what  I'm  doing  on  it  yet  or  anything).    Also, 
while  it  stagnated,  which  was  on  getting  some  of 
the  Windsor  parasites  at  the  <a href="http://www.eudora.com/">Eudora site</a>  for  new 
module  I18N::LangTags::Detect.  No  big  deal.  Today,  a 
PPC  G4  processor  gets  that  kind  of  a  word  of  it 
that  national  governments  seem  to  write  a 
XML::Parser-like  module  for  anyone  that  this  is  the 
Mozilla  browser  with  it.  I  am  not.  So  I  threw  a 
few  minutes  ago,  and  then  with  a  scream  every 
morning  immediately  after  the  meeting  was  awesome. 
We  went  to  a  <a href="http://mozilla.org/">browser that
actually works</a>.  </p>  <p>Update:  there's  a 
question  about  one  minute.  use  File::Find; 
find(sub  {    my  $track  =  $itunes->get( 
$itunes->obj(tracks  =>  gAll,  playlist  =>.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/22349">post</a> and <a href="http://use.perl.org/comments.pl?sid=24119">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[lyrics to Birthday]]></title>
    <link href="https://www.taskboy.com/2004-12-12-lyrics_to_Birthday.html"/>
    <published>2004-12-12T00:00:00Z</published>
    <updated>2004-12-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-12-12-lyrics_to_Birthday.html</id>
    <content type="html"><![CDATA[<p>The now defunct band Mumble and Peg had, on <em>This Ungodly Hour</em>, a fine maudlin song called "Birthday," which 
<a href="http://taskboy.com/music/birthday.mp3">I feebly covered</a>, 
whose lyrics ran something like the following:
<blockquote>
<p>I missed your birthday again this year.<br>
You're one more day living and I'm one more day here.<br>
Watched the day coming and then go. <br>
Is this the first step in mailing you a card<br>
Or the last step in moving from home?
<p>It's funny how old times all began.<br>
We were our lovers and haters and friends.<br>
Who stayed and who left that memory town;<br>
Who stayed in touch with a change of address;<br>
Who sent thoughts and praise when a birthday comes around?<br>
<p>And if I get out that way, let's go out for beers.<br>
We'll hit the Quarterdeck; Frank Black on the Jukebox.<br>
And we'll swap our abbrievated lists for what's new,<br>
Then not speak for years.
</blockquote>
<p>I'm thirty-three years old today, which is a far cry from the more 
interesting <a href="http://www.tolkiensociety.org/toast/2003/index.html">eleventy-one</a>. <br>
It seems like it will be quite a nice day in Boston today.   </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/22276">post</a> and <a href="http://use.perl.org/comments.pl?sid=24039">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Joe's Own Clam Chowder]]></title>
    <link href="https://www.taskboy.com/2004-12-10-Joe_s_Own_Clam_Chowder.html"/>
    <published>2004-12-10T00:00:00Z</published>
    <updated>2004-12-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-12-10-Joe_s_Own_Clam_Chowder.html</id>
    <content type="html"><![CDATA[<p><p>Continuing the tradition of using this space to be the online backup of my recipes, I reveal the secrets of my home-made New England clam chowder.
Works well with pantry goods. 
<p>Ingredients:</p>

<ul>
  <li>4 strips of bacon (as plain as bacon as you can find.  Avoid maple.)
  <li>12 oz. of chopped clams from a can.  Fresh is good, but I'm not a clam snob.
  <li>12 oz of evaporated milk
  <li>4 oz of regular milk
  <li>1 white onion, diced
  <li>2 cloves garlic, smashed
  <li>1 bay leaf
  <li>4 <a href="http://www.dict.org/bin/Dict?Form=Dict2&Database=web1913&Query=Potatoes">potatoes</a> cubed (1/2").  I prefer red spuds, but use what you have.
  <li>2 tbsp of butter
  <li>A pinch or two of salt.  The spuds need the salt more than the clams.
  <li>Black pepper.  
</ul>

<p><p>Process:</p>

<ul>
  <li>Render bacon over med heat until meat is reduced to salad bar bacon bit 
  beauty.  Remove bits, save the fat.
  <li>Over low heat, sweat onion and garlic until translucent (about 7 minutes)
  <li>Add clam juice from can, milk and half the spuds
  <li>With a stick blender, puree to thicken the broth.  Don't go nuts. 
  1 minute of blending is fine. 
  <li>Add the rest of the spuds, clams, bay leaf, bacon fat and butter.
  <li>Simmer for an hour over low heat.  If you have a double boiler, use 
  that.  If not, stir ever few minutes.  A skin is likely to develop on you 
  chowder.  Don't panic.  Just stir it back into the broth.
  <li>Pepper to taste
</ul>

<p><p>You might also add a little paprika.  Also, shallots and green onions would 
go will in this dish.  Normally I eat this with bread not crackers, but do 
what you have to to get it down your gullet.  This chowder stows nicely in the 
fridge for a week and I swear the older it gets, the better.
<p>Enjoy.  And as the crusty New Englanders say around my neck of the woods: 
get the hell of my cah, you stupid bastahds!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/22256">post</a> and <a href="http://use.perl.org/comments.pl?sid=24018">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]    Non-Visual    AxPoint  bits    Anagram  fun.]]></title>
    <link href="https://www.taskboy.com/2004-12-10-[MarkovBlogger]____Non-Visual_AxPoint__bits__Anagram__fun.html"/>
    <published>2004-12-10T00:00:00Z</published>
    <updated>2004-12-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-12-10-[MarkovBlogger]____Non-Visual_AxPoint__bits__Anagram__fun.html</id>
    <content type="html"><![CDATA[<p>going  to  be  confused  with  itself  and  scream.   Eventually,  I    stumbled  across  a  thread  on 
inconsistency:  <blockquote> &laquo;The Zimbabweans were
vilified for the queues at polling stations in Harare. But
at the Italian parliamentary elections last May, the
socialist government reduced the number of polling stations
by 30%. The chaos was so severe that the last Italian to
cast his vote did so at 5am. So why were Francesco
Rutelli's friends not accused of trying to stop Italians
voting for Silvio Berlusconi? <p> Western election
monitoring has become the political equivalent of an Arthur
Andersen audit. This supposedly technical process is now so
corrupted by political bias that it would be better to
abandon it. Only then will other countries be able to elect
their leaders freely.&raquo; <p>â <a href="http://www.guardian.co.uk/comment/story/0,3604,669291
,00.html">"Who observes the observers?"</a> </blockquote> 
<p class="hft-paras">I've  slipped  onto  a  20-sided  die
 (I  confess,  there's  a  design  question  -  WHY?  I 
just  need  to  start  the  boat,  the  wind  and 
<em>print  them  out</em>  for  my  ApacheCon  talk  today 
he  taught  about  for  the  definitve  study  of 
SourceForge.net  users,  which  was  <a href="http://slashdot.org/hof.html">one of the most active
of all time</a>?  Sarah  was  homeschooled  and  is  now 
(almost)  Perl  5.8.  <p>  C,  C++,  Java,  Awk,  and 
Perl,  and  this  morning  thinking  about  adding  ETag 
support  to  step  in  that  you  probably  have  to  huff 
before  that  country  declares  war  on  religious 
grounds,  and  that  was  just  answering  someone's 
interview  questions,  which  they  make  arrangements  for
 open  source  software  will  inevitably  follow  to 
actually  scramble  over  one  element  at  a  latte,  this
 time  several  people  on  the  way  home  from  work 
today.  I  need  to  buy  a  years  supply  of  emacs  - 
the  bargain  game  section!    This  morning  I  build 
with  GNU  ls  to  their  favorite  non-Perl  language.  I 
need  to  know  how  to  build  and  access  them  from  a 
performance  standpoint.    PS  -  I  do  fixing  the 
little  Gary  Neumann  inside  of  me.  I  don't  have  to 
adjust  for  timezone  and  the  moon  still  shining  with
 a  much  prodding  of  my  head).  If  you  remember  the 
last  name  Winograd  got  me  thinking:  anyone 
interested  in  doing  the  same  two  that  use  that  as 
I  find  exactly  the  same  values,  and  figure  out  how
 to  CVS  yet  again  taught  me  that  we  wouldn't  have 
dreamed  of  doing,  but  did  get  one  thing  I've 
always  wondered:  does  she  wear  a  shade  of  red? 
  Answers  posted  Monday  morning.  If  nothing  else, 
it'll  be  a  major  clog  allowing  almost  no  one  knows
 me  very  close  to  a  different  locale  (iso-8859-1, 
btw)  so  I  have  it  hooked  up  to  megaconglomerate 
computer  company.  It  stuck  out  her  hand  and  answer 
my  questions,  somehow.    Anyway,  the  upshot  of 
all  the  tiny  LAN  at  home,  they.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/22246">post</a> and <a href="http://use.perl.org/comments.pl?sid=24009">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Who will fold first: Sun or Red Hat?]]></title>
    <link href="https://www.taskboy.com/2004-12-08-Who_will_fold_first__Sun_or_Red_Hat_.html"/>
    <published>2004-12-08T00:00:00Z</published>
    <updated>2004-12-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-12-08-Who_will_fold_first__Sun_or_Red_Hat_.html</id>
    <content type="html"><![CDATA[<p><img src="http://taskboy.com/blog/img/mccarthy-youre-doing-it-wrong-s.jpg" class="icenter"></p>

<p>Both companies are <em>so screwed</em> right now.</p>

<p>The market of each is being eroded by low-cost or free alternatives, as are the reasons that customers
might want to pay a premium for their names.</p>

<p></p>

<p>Both companies wanted to be the next 
Microsoft and dominate their market.</p>

<p></p>

<p>It's a close race to the 
bottom, but I think Red Hat will fold first.</p>

<p>Sun's still got a damn lot of 
cash in the bank and barring a massive coke-binder from the CEO, Red Hat will
continue to eat through their smaller pile of cash faster while more customers
migrate to Suse (for the people who like to pay money) and Debian/Other linux.</p>

<p>Whadda you think?</p>

<p>UPDATE: Well, gosh.  Look who just sorted weighed in on this issue.
<a href="http://www.pbs.org/cringely/pulpit/pulpit20041209.html">Robert X. Cringely</a></p>

<p>.</p>

<p>UPDATE (2010):  Of course,the answer is Sun, who was bought by Oracle in <a href="http://www.oracle.com/us/corporate/press/018363">2009</a>.  Red Hat, despite scaling back their desktop linux plan, appears to be doing well, even through the recent economic apocalypse.  Novell/SUSE?  <a href="http://www.itworld.com/networking/128545/novell-dead-and-microsoft-has-eaten-its-heart">Not so much</a>.  And why not throw in my <a href="http://www.reuters.com/article/idUSTRE6A12KC20101102">employer too</a>?</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/22202">post</a> and <a href="http://use.perl.org/comments.pl?sid=23965">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Perl still popular with Google Zeitgeist]]></title>
    <link href="https://www.taskboy.com/2004-12-03-Perl_still_popular_with_Google_Zeitgeist.html"/>
    <published>2004-12-03T00:00:00Z</published>
    <updated>2004-12-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-12-03-Perl_still_popular_with_Google_Zeitgeist.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://www.google.com/press/zeitgeist.html">Perl isn't dead yet.</a> (I suspect the archive version of <a href="http://www.google.com/press/zeitgeist/zeitgeist-oct04.html">this will be here</a>.) The term "perl programming" was the second most sought after technology term in October, 2004 for Google searches.  Of course, number three was HTML.  But still, this is an interesting datum. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/22124">post</a> and <a href="http://use.perl.org/comments.pl?sid=23883">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  bio,  politics,  and  more  Extensions.]]></title>
    <link href="https://www.taskboy.com/2004-12-03-[MarkovBlogger]__bio,__politics,__and__more__Extensions.html"/>
    <published>2004-12-03T00:00:00Z</published>
    <updated>2004-12-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-12-03-[MarkovBlogger]__bio,__politics,__and__more__Extensions.html</id>
    <content type="html"><![CDATA[<p>doing  some  work  that  runs  Dissociated  Press  on some  text  pulled  from  the  6th  October  I'll  be </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/22117">post</a> and <a href="http://use.perl.org/comments.pl?sid=23875">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Snow Fudge, a recipe]]></title>
    <link href="https://www.taskboy.com/2004-11-21-Snow_Fudge,_a_recipe.html"/>
    <published>2004-11-21T00:00:00Z</published>
    <updated>2004-11-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-11-21-Snow_Fudge,_a_recipe.html</id>
    <content type="html"><![CDATA[<p>Thanksgiving time is here again, and that means <a href="http://www.altonbrown.com/">Good Eats</a>.  A Johnston family 
favorite of these festive food days is snow fudge.  As my mother doesn't do
as much baking as she once did, I thought I'd take a crack at laying down the 
fudge this year.  Here's the recipe:
<p>Software:</p>

<ul>
  <li>2 C white sugar 
  <li>3 TBSP of Corn syrup (Karo)
  <li>1/4 C of butter (1/2 stick)
  <li>1/2 C of cream or evaporated milk (1/2 a 12oz can)
  <li>1/2 C of peanut butter
  <li>1/2 C of Marshmellows or Marshmellow Fluff
  <li>1 pinch of salt (Kosher is best)
  <li>1-2 tsp of vanilla extract
</ul>

<p><p>Hardware:</p>

<ul>
  <li>5-7 quart pot or sauce pan
  <li>a wooden spoon
  <li>8x8 square pan
  <li>A mixing bowl 
</ul>

<p><p>Over low heat, melt the butter.  Don't burn it.  Integrate the cream. <br>
Slowly add the sugar in while stirring.  This makes a syrup.  Raise the heat 
until syrup boils.  Reduce heat to medium-low so that your syrup is bubbling, 
but not burning.  You are trying to reduce the syrup a bit. 
<p>There are several thoughts on how to determine when the syrup is done 
reducing.  The classic one is called the "soft ball test," in which a small 
sample of the syrup is dropped into a glass of ice water.  If the syrup 
congeals into structured globs of goo, the syrup is down.  The more scientific
approach is to boil the fudge for 3 minutes with the pot lidded.  Reduce heat
to a simmer.  Heat until syrup is 234&deg;F.  I sort of eyeball it.  Getting 
the syrup right is the key to the fudge's final structural integrity.  Luckly
you, the peanut butter covers up a multitude of incompetance. 
<p>Once the syrup is done, remove pot from heat and let it stand for a few 
minutes.  This stuff is lava-hot.  In the mixing bowl, gather the 
peanut butter and marshmellows (or Fluff).  Sometimes a quick stint in the 
microwave makes peanut butter more amenable to moving. <br>
<p>Add the syrup to the mixing bowl.  Mix until blended.  Some people will 
like a less homogenized fudge than others.  This is controlled by how much 
you mix the fudge at this point.  I go for the full-on integration.
<p>Pour contents of mixing bowl into the greased 8x8 pan.  Butter works best, 
but Pan will do.  Remove pan to a cool, dry location, like your gargage or 
window sill.  Let fudge sit for 30 minutes until cool to the touch. <br>
<p>When solidified, dump fudge onto cutting board and cube into 1" blocks. 
Test the batch with samples until satisfied. :-)
<p>Yield: about 2 pounds
<p>Cook time: ~15 minutes
<p>What's sad is that I had enough ingredients left over to make 
chocolate fudge too.  That's basically the same recipe, but with semi-sweet
chocolate chips in place of peanut butter.  I used about 2 TBSP of corn syrup
and I think that was too much.  Use only 1 TBSP.   I'd also suggest using only
1/4 C of marshmellow too.  When I've got a good recipe for chocolate fudge, 
I'll post it here.   I think I'll need to use cocoa power rather than solid 
chocolate.  I made a mean chocolate syrup with cocoa power onceâ¦</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/21939">post</a> and <a href="http://use.perl.org/comments.pl?sid=23681">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[DNS housekeeping]]></title>
    <link href="https://www.taskboy.com/2004-11-19-DNS_housekeeping.html"/>
    <published>2004-11-19T00:00:00Z</published>
    <updated>2004-11-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-11-19-DNS_housekeeping.html</id>
    <content type="html"><![CDATA[<p><blockquote><em>knockknockknock</em> hauskeeping! 
<p><em>knockknock</em> hauskeeping!
</blockquote>
<p>For some time the MX record for ALIENSALIENSALIENS.COM has been fubarred.
So mail to that address probably bounced at random intervals.  My domain
registrar Turd Ferguson^W^W^WNetwork Solutions now offers simple DNS management
for free, so I'll give that a whirl. 
<p>What does this mean to you?  If you're trying to send mail to 
jjohn@aliensaliensaliens.com, send it to jjohn@taskboy.com.
<p>Please resume your normal internet activities.
<p>And clean off that crusty keyboard, for God's sakeâ¦</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/21914">post</a> and <a href="http://use.perl.org/comments.pl?sid=23655">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Inline  This    Apologies  and  something  to  do.]]></title>
    <link href="https://www.taskboy.com/2004-11-19-[MarkovBlogger]__Inline__This_Apologies__and__something__todo.html"/>
    <published>2004-11-19T00:00:00Z</published>
    <updated>2004-11-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-11-19-[MarkovBlogger]__Inline__This_Apologies__and__something__todo.html</id>
    <content type="html"><![CDATA[<p>and  managed  to  activate  the  fire  alarm  go  off  and writing.  No  rithmetic.  I  feel  like  I'm  sliding 
down  a  few  minutes  reading  a
posthumous interview with Philip K. Dick,  which  I 
tech  reviewed  for  him)  put  online  <a href="http://www.ibiblio.org/xml/books/xmljava/chapters/ch0
6.html">Chapter 6</a>  of  his  journal,  TorgoX  mentions 
the  great  community  vibe,  thoughâit  was  truly  very 
good.  Worth  at  least  avoid  bullshit  deletable 
phrases  like  "it  must  have  started  using  it  (it's 
about  as  much  as  possible  (I  mean,  cursing  at 
Nethack  â  it's  called  when  it  went  live,  because 
the  client  is  broken.  </p>  <p>    I  had  forgotten 
to  grease  various  palms".  Recently  they  seem  to  be 
focused  too  strongly  on  outputting  POD  to  replace 
the  14"  monitor  with  dual  input,  whereas  I'm 
currently  trying  to  write  tests  for  Jarkko.  I  hope 
that  the  step  after  failed  inspections  is  war. 
Emphasize  that  there  may  be  wrong.  <p>Folks,  the 
grants  have  been  pulled  before  the  talk,  but  it  is
 still  in  the  sample  quiz  and  just-under-the-deadline
 final.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/21917">post</a> and <a href="http://use.perl.org/comments.pl?sid=23658">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Pod::SAX  0.14    Management  crap    Locksmiths:  worse.]]></title>
    <link href="https://www.taskboy.com/2004-11-12-[MarkovBlogger]__Pod__SAX__0.html"/>
    <published>2004-11-12T00:00:00Z</published>
    <updated>2004-11-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-11-12-[MarkovBlogger]__Pod__SAX__0.html</id>
    <content type="html"><![CDATA[<p>sitting  on  my  presentation.  I  already  have  two.) Dear  Log,  <p>My  <a href="http://www.kli.org/tlhIngan-Hol/2002/April/msg00213.h
tml">post</a>  to  the  external  CGI  program.  I'm  an 
overnight  addict  to  <a href="http://homepage.mac.com/azc/iConquer/">iConquer</a>, 
Risk  for  Mac  OS  X  perl,  in  Ma
c::Carbon)  has  a  working  Perl  6  been  around  a 
couple  of  days  ago,  I  started  to  have  nukes,  your 
country  are  lovely  (well,  some  parts  are),  but  your
 browser  and  platform  of  the  song,  then  it  would 
seem  that  there  was  a  food  review,  selfâ¦let  it 
go.  I  see  Medieval  customs  aplenty?  You  betcha. 
However,  I  do  so  many  parents  I  feel  like 
debugging.  Screw  it.  I'll  just  grep  it".<p>  I  was 
able  to  pay  for  the  kennels,  we  said  and  done,  we
 have  regular  maintenance  slotted.</p>  <p>Posted  from 
<a href="http://caseywest.com">caseywest.com</a>,  comment 
<a href="http://caseywest.com/journal/archives/003606.html">he
re</a>.</p>  Yes  I  had  no  sleep  the  night  most 
associated  with  it).  I  doubt  that  they're  only 
first  drafts  and  regexes  â  ugh!).  I've  been 
pulling,  too.  I'm  hoping  to  catch  the  3  hour  nap. 
I  feel  a  little  here  and  there  are  people  I  know 
not  only  is  the  story  tellingâ¦)  there  is  a 
family  trip.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/21822">post</a> and <a href="http://use.perl.org/comments.pl?sid=23563">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[domestic terrorism]]></title>
    <link href="https://www.taskboy.com/2004-11-08-domestic_terrorism.html"/>
    <published>2004-11-08T00:00:00Z</published>
    <updated>2004-11-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-11-08-domestic_terrorism.html</id>
    <content type="html"><![CDATA[<p><p>The <a href="http://hosted.ap.org/dynamic/stories/C/CAT_INFESTATION?SITE=FLTAM&amp;SECTION=ENTERTAINMENT">AP is reporting:</a><blockquote>
<p>ST. CROIX FALLS, Wis. (AP) â The stench was enough to guide emergency workers to a house where a utility worker had responded to a report of a power outage and found a house full of cats. Police Chief Paul Lindholm described the smell as unbearable and said the cat feces in the building was several inches deep on the floor.
<p>Firefighters Thursday night removed 250 cats from the house, half already dead and the rest so ill they had to be killed.
</blockquote>
<p>Tom Ridge - soft on feline terrorism at home.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/21761">post</a> and <a href="http://use.perl.org/comments.pl?sid=23501">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Chimera    On  Documenting  Projects    Pudge    Loopy   Self.]]></title>
    <link href="https://www.taskboy.com/2004-11-05-[MarkovBlogger]__Chimera____On	Documenting__Projects	_Pudge	__Loopy___Self.html"/>
    <published>2004-11-05T00:00:00Z</published>
    <updated>2004-11-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-11-05-[MarkovBlogger]__Chimera____On	Documenting__Projects	_Pudge	__Loopy___Self.html</id>
    <content type="html"><![CDATA[<p>don't  think  that  there's  a  voicemail  message  you can  dynamically  call perl  code  base</code>  <p>I 
think  I've  done  has  been  released.  Download  it  from
 looking  misleadingly  out  of  the  module.  In 
addition,  whoever  is  responsible  for  these  somewhat 
valuable  commodities.  My  own  fault.  I've  figured 
that  was  attached  to  the  folks  I  met  for  WebTV 
customers.)  Were  a  rudimentary  Linux  server?  :D  Dear
 Log,  <p><a href="http://www.local6.com/orlpn/news/stories/news-2095396
20030407-120447.html">I like swarms of things.</a>  <p><a href="http://www.fringehead.org/">Ignatz</a>  showded  me 
it.  I  have  and  make  sure  that  some  of  us 
(including  me)  shrugged.  The  FBI  is  looking  for  an 
assignment.  She  asked  me  to  tell  IE  that  it's 
easier  for  people  that  die  from  lung  cancer  have 
catsâ¦),  the  centrality  of  the  Latin  verb  "cadere" 
(to  fall),  which  also  queue's  up  a  bit  rough  these
 days  soon.    Gotta  figure  out  how  we  are 
waiting  for  Mac  OS  X  aren't  all  happiness  and  joy.
 There  are  the  75  movies  I  haven't  responded,  not 
doubt  I'll  go  back  into  Konquerorâ¦  <p>The  <a href="http://www.linuxfromscratch.org/view/4.0-rc1/">latest
release</a>  of  the  Channel).  By  the  time  I  was 
stuck  in  the  midwest  in  ash.  Bonus  points  for  Vek.
 Dear  Log,  <p><a href="http://nntp.x.perl.org/group/perl.perl5.porters/69381
">Yaaaaay!</a>  <p>    They're  holding  a  new  GUSI  out,
 fixing  a  few  times.  The  first  song  I  am  talking 
about  <a href="http://www.isonews.com/">this</a>  right 
now.  Documentation  patches  to  bleadperl  (this  round 
of  applause,  and  no  one  disagrees.  If  race  X  you 
can  get  Debian  off  my  laptop,  away  from  the 
program.  You  debug  code,  not  comments.  I  haven't 
been  able  to  scrape  together  $1200.  I  have  video 
of  the  Ail  and  Ann  volunteered  to  help  after  it 
was  a  $5  YAS  pizza  benefit.  I'm  carrying  around  a 
CodeRed  to  go  all  the  directions  to 
ExtUtils::MakeMaker  more  closely.  Wireless  tech 
is  fun,  but  I'd  gladly  trade  an  extra  london.pm 
technical  meeting  last  night  absconded  with  Simon, 
Dan,  and  others  turned  up  with  the  price 
environmentâ¦I've  been  working  on  the  web  services 
framework  du  jour.  <p>  Of  course,  there  are  very 
many  English  signs,  even  in  the  end.  Three.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/21722">post</a> and <a href="http://use.perl.org/comments.pl?sid=23465">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[meet the new boss…]]></title>
    <link href="https://www.taskboy.com/2004-11-03-meet_the_new_boss.html"/>
    <published>2004-11-03T00:00:00Z</published>
    <updated>2004-11-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-11-03-meet_the_new_boss.html</id>
    <content type="html"><![CDATA[<p><p>If for some reason you feast on the laments of a disappointed liberal/progressive/guy-with-too-much-time-on-his-hands on the reelection of 
George Walker Bush, then dinner is prepared!
<p>Let me first say that I'm very happy that this election brought many new 
voters (and many lapsed voters) into the process.  You pay taxes; you get 
summoned to jury duty; you register for selective service; you certainly 
should vote.  Voting isn't just about winning an election, it's about doing 
your civic duty.  People have died bringing democracy to their countries, so 
a little appreciation is due, I think.  Another positive aspect of this 
election was the very clear 3.6 million vote margin Bush won in the popular 
vote, the only poll that really matters to me.  It's true that the popular 
vote doesn't elect the president, but it sure helps establish legitimacy. <br>
Even if Kerry managed to win Ohio, I would not have been confortable with his 
victory.  It's too much like winning a game of 8 ball by your opponent's 
scratching the cue ball.
<p>The Republicans won a very, very big victory in this election.  They control
both Houses of Congress (again) and Bush will likely have to appoint a few 
Supreme Court justices during his second term.  And, although some might say 
that the 52% victory is small, I do not.  The G.O.P. victories in Congress and
in gubernatorial races are a damning repudiation of any agenda painted with 
the sticky tar of "liberal."  This referendum on Bush's record is a doughty 
vindication of the Neo-Conservative agenda.  Expect more wars, more debt, 
more federal bureacracy, more privatization of federal programs, anemic job 
growth and reduced taxes.  Such is the 2000-2004 record of the Bush 
administration.  Why tamper with success?  Moreover, this is what most voting 
Americans have asked for.
<p>I am not a partisan Democrat.  I don't want the Dems to be in the position 
that the Republicans are now in.  A healthy democracy requires the 
comprimize/cooperation of liberal and conversative elements.  That is not 
what's going to happen in the Federal government during the next four years.
<p>It's no use crowing about the future consequences of the neo-con agenda. <br>
That has been done in many other places more adroitly that I can here in this 
humble blog.  However, it is the fear of the long-term ecomonic and political 
damage that pursuing an arrogant foreign policy and a ruthless domestic 
policy will incur that makes me shudder.  I suppose it's possible that America can unilaterially pacify all 
of its enemies, real or imagined.  Maybe a war born on a lie will turn out just
fine.  It's possible that the looming health care crisis will be averted by 
lowering taxes and privatizing Medicare.  It's conceivable that the middle 
class will not be dragged under the weight of rising costs of living into the 
ranks of the working poor.  It may well be that overturning
Rowe v. Wade, banning Gay marriages, putting God back in the classroom 
and sticking the Ten Commandments in every court house will create a more 
virtuous, caring society.
<p>We'll see.
<p>What is clear is that the next successful Democrat candidate will not come 
from the North East or the Lakes states.  It will have to be a Southerner or
someone from Mountains region.  I can't help feeling that in some spectral way,
the Civil War is still being fought.
<p>And now, cue the Pomp and Circumstanceâ¦</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/21687">post</a> and <a href="http://use.perl.org/comments.pl?sid=23430">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Lasciate  ogne  speranza,  voi  ch'intrate'.]]></title>
    <link href="https://www.taskboy.com/2004-10-29-[MarkovBlogger]__Lasciate__ogne__speranza,__voi__ch_intrate_.html"/>
    <published>2004-10-29T00:00:00Z</published>
    <updated>2004-10-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-10-29-[MarkovBlogger]__Lasciate__ogne__speranza,__voi__ch_intrate_.html</id>
    <content type="html"><![CDATA[<p>used  plug  boards  to  automate  sorting  and  counting. Both  of  these  new  bayesian   spam  filtering  projects 
popping  up  in  my  mind  told  me  that  the  problems 
in  its  default  layout,  and  algorithm  exist.  Before 
that  line,  but  then  I  can  grab  it  from  scratch, 
because  they  see  and  dont  tel  me  that  he  was 
using.  So,  I'd  have  known  that  the  equivalent  of  2
 candy  bars.  Ouch.  I  guess  I'll  see.  The  hardest 
part  is  that  it  didn't  tell  us  how  old  she  is; 
my  father  is  that  the  major  things  I'm  not  exactly
 fun,  but  neither  seemed  to  hang  up  the  records 
that  I  couldn't  ssh  out  of  your  primative  Earth 
television  sets.  By  using  a  proxy.  I  didn't  need 
to  call  me.  </p>  <p>    Reflecting  further  on  I  get
 a  good  approach  (well,  at  least  everything  else  is
 thinking  about  some  of.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/21583">post</a> and <a href="http://use.perl.org/comments.pl?sid=23315">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[the robots are attacking! And they want beer!]]></title>
    <link href="https://www.taskboy.com/2004-10-25-the_robots_are_attacking__And_they_want_beer_.html"/>
    <published>2004-10-25T00:00:00Z</published>
    <updated>2004-10-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-10-25-the_robots_are_attacking__And_they_want_beer_.html</id>
    <content type="html"><![CDATA[<p>This <a href="http://arsenal.media.mit.edu/memes/robots/thebarbotvideo.mov">self-interested robot built by MIT students</a> 
finally addresses the tragic shortage of selfish pricks in bars across 
America.  The parents of those students must be feeling pretty good about 
their investment in their children's edumacation.
<p>(Link from <a href="http://www.memepool.com/">memepool</a>)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/21503">post</a> and <a href="http://use.perl.org/comments.pl?sid=23227">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  The  Twilight  Zone    The  last  word.]]></title>
    <link href="https://www.taskboy.com/2004-10-22-[MarkovBlogger]__The__TwilightZoneThe__last__word.html"/>
    <published>2004-10-22T00:00:00Z</published>
    <updated>2004-10-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-10-22-[MarkovBlogger]__The__TwilightZoneThe__last__word.html</id>
    <content type="html"><![CDATA[<p>from  <a href="http://caseywest.com">caseywest.com</a>, comment  <a href="http://caseywest.com/journal/archives/000164.html">he
re</a>.  Dear  Log,<blockquote>&laquo;Of those who were
both abused and had a MAOA deficiency, 85% became
delinquent [i.e., juvenile delinquents]. They were nine
times more likely to become society's enemies than boys
with the more active gene which pumped out the enzyme in
the necessary amounts.&raquo;<p>â<a href="http://www.guardian.co.uk/comment/story/0,3604,770327
,00.html">"Innocent till proven
genetically"</a></blockquote>  I  sent  out  notice  that 
the  optical  drive  fixed,  and  will    Only  first  I 
thought  that  an  early  start  to  happen.  I'm  so  far 
indicate  that  most  people  use.</p>  <p>Another  oddity 
is  that  it  allowed  people  like  <a href="http://scriptingnews.userland.com/backissues/2003/03/
17#When:3:59:05AM">Dave Winer</a>  to  make  it  look 
really  great.  Hopefully  he'll  feed  some  changes  to 
the  net.link.ether.bridge_cfg  sysctl  variable 
was  supposed  to  move,  get  some  of  the 
ramifications),  and  Simon  Cozens),  RT  (Jesse 
Vincent),  POE  (Jos  Boumans),  and  Mason  (Dave 
Rolsky).<p>  Great  quote  from  Dave  Thomas  or  Andrew 
Hunt  had  very  different  config  files,  so  I  just 
got  5.6.1/2  done!  :-)  5.8.0  should  require  a 
computer.  I  wasn't  too  surprised  to  see  progress. 
Lots  of  them  stay  over  at  <a href="http://www.bioperl.org/">Bioperl,  famous  for 
his  last  tour.  The  man  was  kind  enough  to  attempt 
to  confirm  from  Guy  Harrison's  book  is  out).  I 
just  received  from  the  doom  and  gloom  (except  that 
C-Sharp  guis  will  be  banished  this  weekend  to  hack 
Perl  to  call  me  stupid,  and  often  turns  into  a 
problem  to  determine  valid  Y-values.  Recall  that 
whenever  I  sent  out  373  mail  messages  and  16MB 
coming  from  this  morning.  It  was  trying  to  make  up
 these  facts  about  other  directions.</p>  <p>See  you 
all  have  to  call  functions  directly  on  tied 
objects,  as  in  chair.  Long  term,  the  ISPs  stay 
ISPs,  just  as  I  can  play  a  slow  trickle 
of  amazingly  high  quality  proposals  for  "Shell 
Scripting  in  a  democratic  process  if  it  were 
something  so  simple  that  people  will  prefer  to  buy 
my  12  grain  bread.  While  I  went  to  Arecibo  with 
the  info?  What  would  you  do  with  mod_perl,  a
 bug  that  ignored  -T  when  using  mint 
condition,  uncirculated  state  quarters  to 
build  and  test  nuclear  weapons,  and  those  klopklop 
shoes,  and  they're  all  crazy  crazy  crazy.)  <p>In 
other  happy  fun  topics.  Back  when  I  don't  remember 
the  last  lines  of  code  in  terms  of  hours.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/21464">post</a> and <a href="http://use.perl.org/comments.pl?sid=23182">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[there's a riot going on]]></title>
    <link href="https://www.taskboy.com/2004-10-21-there&apos;s_a_riot_going_on.html"/>
    <published>2004-10-21T00:00:00Z</published>
    <updated>2004-10-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-10-21-there&apos;s_a_riot_going_on.html</id>
    <content type="html"><![CDATA[<p><p>It's 2:32AM in Boston and helicopters are circling my neighborhood.  Police in riot gear, on horse back, on motorcycles, on foot attempt to 
control a wilding crowd that is breaking glass, swarming the streets, racing 
down alleys and setting cars on fire.  The cops in black riot uniforms walk
10 abreast on Boylston street attempting to clear it of drunken, aggitated 
revelers so that fire engines may extinguish the flaming metal hulks of cars.
An acrid smoke of burning fuel is in the cold night air along with a smattering
of small explosions.
<p>This is not Baghdad, nor Kabul.  No one is fighting for political or human 
rights.  This is all due to tonight's success of a private baseball 
franchise.  The Red Sox won their division championship tonight.  They did 
this before in 1995 or so.  Back then, I was in this very same apartment 
and I fail to recall rioting and mayhem coincident with their victory. <br>
It's just a game played by very well compensated professionals for private 
interests, but it triggers the worst behavior in people.  How people are 
empowered by the fortunes of sporting events to riot, I'll never understand. <br>
It reeks of desperation and the barely controlled rage of small lives.  This 
does little to raise my estimation of professional sports or their fans. <br>
<p>I have never feared for the saftey of my home before tonight.  I'm happier 
than ever not to own a car parked near my apartment.  If you
think I'm exaggerating, perhaps the pictures (whenever they are published) 
of the cars burning within a few blocks of my apartment will give you pause.
I have long said alternately that I hate baseball or the Red Sox.  Really, 
I hate the fans.  I wish they had burnt Fenway Park to the ground tonight in 
their madness.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/21446">post</a> and <a href="http://use.perl.org/comments.pl?sid=23164">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Farscape: Peacekeeper Wars]]></title>
    <link href="https://www.taskboy.com/2004-10-19-Farscape__Peacekeeper_Wars.html"/>
    <published>2004-10-19T00:00:00Z</published>
    <updated>2004-10-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-10-19-Farscape__Peacekeeper_Wars.html</id>
    <content type="html"><![CDATA[<p>wow.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/21400">post</a> and <a href="http://use.perl.org/comments.pl?sid=23112">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[thought for today]]></title>
    <link href="https://www.taskboy.com/2004-10-17-thought_for_today.html"/>
    <published>2004-10-17T00:00:00Z</published>
    <updated>2004-10-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-10-17-thought_for_today.html</id>
    <content type="html"><![CDATA[<p><p>As I passed by the local "adult" video store, I noticed a blindfolded skeleton in fuzzy handcuffs.  That's not unusual for Halloween, 
but then it stuck me:</p>

<blockquote>
Is Halloween like Valentine's Day for necrophiliacs?
</blockquote>

<p><p>&lt;voice style="Seinfeld"><br>
Who are these people?<br>
&lt;/voice></p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/21385">post</a> and <a href="http://use.perl.org/comments.pl?sid=23093">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Layoffs.    Show  and  Tell    Huge  Angular  Red Marshmallows.]]></title>
    <link href="https://www.taskboy.com/2004-10-15-[MarkovBlogger]__Layoffs.html"/>
    <published>2004-10-15T00:00:00Z</published>
    <updated>2004-10-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-10-15-[MarkovBlogger]__Layoffs.html</id>
    <content type="html"><![CDATA[<p>Ewan  Birney,  James  Tisdall,  Lorrie  LeJeune,  and  a template  executed  rand()  when  it  went  into  a  pile, 
ripping  them,  and  a  string  TO_DATE('2003-11-18 
13:15:23',  'YYYY-MM-DD  HH24:MI:SS').  Then  I  can  only 
do  I  keep  looking  for  the  world  series  70  years 
ago  without  getting  an  increasing  share  of  trolls 
today.  I  get  the  data  used  within  an  hour.  The 
applications  were  more  stable  than  0.9.9RC3â¦  </p> </p>

<p>    But  it  seems  like  an  ehrlemeyer  flask  with  a
 german  ISP)  waltzed  in  uninvited  to  my 
Oxford-Hachette  French  Dictionary: 
<br>dahu:  nm:  imaginary  animal  invented  in 
the  game  (she  lives  in  real  life.  I  recently 
purchased  and  watched  a  Japanese  bookstore  in  the 
sense  that  person's  home.  Chao  help  me,  but  I  get 
my  oil  changed  late  last  night.  REAL  BUTTER 
FROSTING  ON  THE  CAKE.  These  folks  can  give  them  to
 be  followed  by  n,  followed  by  an  unomare  last 
night.  Apparently  it  was  discovered  exactly  50  years
 ago.  ;-)  I  figured  I  better  get  on  the  client 
cares  about)  but  it  doesn't  bang  like  mad  on  use 
perl  for  so  long,  it  would  take  care  of 
programmers  who  are  intolerant  is  the  way  they  used
 the  freebe,  and  now  everything  seems  to  take  the 
Q&A  but  still  possible.  <p>My  general  impression  of 
Portland  lies  in  what  was  in  a  town  that's 
supposed  to  take  some  time  to  start  a  meeting  some
 day.</p>  At  work  we're  going  to  require  time  in 
the  kidneys  that  actually  sets  up  the  intestinal 
fortitude  necessary  to  solve  the  problems.  I 
finally  caught  up  with  an  intense  meeting  on  July 
18th.</p>

<p><p>Stephen  Feuerstein  and  Bill  Pribyl  are 
enamored  of  PL/SQL.  I  guess  that's  part  of.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/21350">post</a> and <a href="http://use.perl.org/comments.pl?sid=23054">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[declined]]></title>
    <link href="https://www.taskboy.com/2004-10-13-declined.html"/>
    <published>2004-10-13T00:00:00Z</published>
    <updated>2004-10-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-10-13-declined.html</id>
    <content type="html"><![CDATA[<p>From Slashdot's questions for the 2004 candidates:</a><blockquote></p>

<p>Q: [snip]â¦changing opinion[s] due to thoughtful reconsideration 
ought not to be derided as flip-flopping. Tell us about a time when you had 
an honest change of opinion on a topic of national importance.</p>

<p>Nader:When I first arrived in Washington, DC, one of my first meals was a hot dog. After I discovered what were in hot dogs I never ate another one. I changed my mind.</p>

<p><p>Kerry: If the leaders get the facts wrong then they should admit it. If leaders form their opinions based on a set of facts and they learn that those facts are wrong, it is appropriate to change their position.
<p>Bush: President Bush declined to answer this question. 
- Editor
</blockquote>
<p>No candidate answered the question directly or particularly 
well and that sucks. However, Bush's reluctance to cop to any failures at all 
and to not even attempt to address this issue is both troubling and telling. <br>
<p>If I had to answer for Bush, I would have brought up 
<a href="http://archives.cnn.com/2002/ALLPOLITICS/01/14/bush.fainting/">his post-9/11 pretzel choking incident</a> 
to counter the strong Nader-Hot Dog parry. <br>
<p>"Next time, I'm sticking with chips!"
<p>update: <a href="http://www.thetoiletonline.com/leaveit.htm">A good reason to learn Flash</a></p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/21326">post</a> and <a href="http://use.perl.org/comments.pl?sid=23026">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  tensegrity  .]]></title>
    <link href="https://www.taskboy.com/2004-10-08-[MarkovBlogger]__tensegrity__.html"/>
    <published>2004-10-08T00:00:00Z</published>
    <updated>2004-10-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-10-08-[MarkovBlogger]__tensegrity__.html</id>
    <content type="html"><![CDATA[<p>to  die.  Oops.  All  was  not  extraordinary.  What  was more  thought  to  myself,  "Well,  that's  okay.  I  know 
from  the  World's  Worst  Tradeshow  in  Chicago,  was 
originally  going  to  install  and  use  that  as  test 
dataâ¦  I  have  nothing  else  out  of  daylight 
savings  time  overnight)  I  was  full  of  viral  spew. </p>

<blockquote>&laquo;Ben Glisan, formerly treasurer at energy
trader Enron, has become the first executive to be jailed
for his part in the huge financial scandal at the firm.
<br> â¦ <br> Meanwhile, former chairman Kenneth Lay and
former chief executive Jeffrey Skilling are under
investigation, but have not been charged with any offence.
<br> â¦ <br> Prosecutors hope that, by successfully
proceeding against smaller officials, they will eventually
be able to build up a cast-iron case against the top
management.&raquo; </blockquote>

<p><p>BBC:  <a href="http://news.bbc.co.uk/2/hi/business/3097668.stm">Firs
t Enron ex-official is jailed</a>  <p>We've  toppled  two 
regimes  in  the  late  Dr.  Teller  would  agree  on  it. 
Don't  get  me  their  address  and  a  wireless  network 
I've  set  all  that  â  in  English,  and  they're  so 
overrun  with  spam  filtering  projects  popping  up  my 
room  I  stayed  <em>way</em>  late  yesterday  to  a  larger 
analysis  and  summarize,  instead  of  web:  if  our  baby
 is  taking  its  time.  My  friend  is  an  apparent 
rivalry  between  the  31  minute  call  to  be  setup,  at
 which  times  of  electricity,  bank,  rent,  insurance, 
and  leak  trouble  (not  to  mention  every  pedestrian 
in  this  release  have  been  .589.  Contrast  to  Roger 
Clemens  that  year,  who  was  connecting  at  that  point
 (and  if  you  don't,  you  are  a  big  project  that 
used  that  function  without  having  them  on  the 
search.    This  morning  I  went  to  tech  support 
people  and  say  to  each  other.  Other  surprises  as  I
 could  rebuild  part  of  it  yet  or  anything).   
Also,  I'm  looking  around  for  ages  trying  to  find 
out  that  one  couldn't  just  say  that  the  true 
copyright  holder  to  the  cvs  server  via  Eclipse  and 
so  we  get  all  of  its  members  is  not  a  badly 
named  one.  Dear  Log,  <p><blockquote>&laquo;One benefit
of disclosure might be to dissuade universities from using
double standards so blatant â whether for legacies,
athletes, or racial minorities â as to offend voters. A
second benefit might be to focus attention on the real
crisis in minority education: The average black 17-year-old
is academically less prepared for college than the average
white or Asian 8th-grader. A third benefit might be to
shame elite universities into seeking more needy and
working-class students, who are far more underrepresented
than blacks and Hispanics. Such "economic preferences" are
widely popular because â if carefully designed â they are
consistent with traditional concepts of merit. The hope is
that the hard work and raw talent of the best of these
needy students will enable them to catch up with college
classmates from more-prosperous backgrounds and better high
schools.&raquo; <p>â<a href="http://www.theatlantic.com/politics/nj/taylor2004-02-
04.htm">"Ted Kennedy's Excellent Idea: Disclosing
Admissions Preferences"</a></blockquote>  <p>When  I  came 
into  work  an  hour  a  night.  More  to  comeâ¦  <p>With
 the  problem  was.  We  added  a  call  had  one  of  the 
edges  long  enough  and  were  kind  enough  to  work 
quite  well  written  and  buggy.  <p>  On  a  perl  script
 from  an  alternative  weekly  in  English,  and  no 
complaints  about  Episode  I  podrace  for  me  (if  no 
one  with  a  God-forsaken  meow  that  alerted  to  the 
realization  that  â  foaming  at  the  source  code  is 
still  a  fulltime  O'Reilly  employee.  During  my  year 
and  it  works  for  dual  power  supplies  don't  actually
 ever  submit  patches  to  get  done  that  much  work.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/21248">post</a> and <a href="http://use.perl.org/comments.pl?sid=22934">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The Pixies' Gouge Away covered]]></title>
    <link href="https://www.taskboy.com/2004-10-02-The_Pixies__Gouge_Away_covered.html"/>
    <published>2004-10-02T00:00:00Z</published>
    <updated>2004-10-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-10-02-The_Pixies__Gouge_Away_covered.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://www.aliensaliensaliens.com/~jjohn/gouge_away.mp3">Good stuff!</a><p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/21158">post</a> and <a href="http://use.perl.org/comments.pl?sid=22827">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  speak    Giving  Up  Is  So  Hard  To  Do    Mac  vs. Windows.]]></title>
    <link href="https://www.taskboy.com/2004-10-01-[MarkovBlogger]__speak__Giving__Up__Is__So__Hard__ToDo____Mac__vs.html"/>
    <published>2004-10-01T00:00:00Z</published>
    <updated>2004-10-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-10-01-[MarkovBlogger]__speak__Giving__Up__Is__So__Hard__ToDo____Mac__vs.html</id>
    <content type="html"><![CDATA[<p>had  for  about  50,  but  I  don't  get  much  done  the last  few  days  after   Snopes  points  to  distribute 
this  lib  (heck,  I  downloaded  the  sources,  and 
downloaded  the  update.  So  then  I  remember  it  lasted
 about  30  minutes  to  get  familiar  with  &lt;a 
name="foo"&gt;  being  linkable  via  #foo 
in  a  taxi  to  the  function  (if  not  millenia).  No 
one  knows  how  many  other  reasons  could  be  an  idiot
 (or  13,  or  both).  I  don't  use  surnames  ("Anastasia
 Who?").  Above  all,  they  love  to  Inline.  They're 
currently  discussing  hash  functions.  There  was  some 
drama  in  Denver  until  October  1st.  I  just  have  to 
do.  So  I'm  always  curious,  so  I'll  probably  just  a
 few  cokes  wash  out  this  week,  so  I  fixed  a  few 
different  items  available  for  download  now.    So, 
the  Monday  of  OSCon  I  attended  the  Washington  Post 
and  me  back  to  Stevens  Point,  WI  to  participate 
now.  I  long  for  the  World  Cup  starts.  A  month-long
 celebration  of  a  think  chowder  or  heinz    ketchup. 
It  shouldn't  be  an  extraordinary  hacker  I  did  it 
now!]).  But  if  Scheme  is  such  a  great  place.  We'll
 definitely  go  back  to  the  Swastica  as  a  gateway. 
Well..  IP  Masquerading  firewall.  It  did  a  survey  <a href="http://www.marketingformore.com/survey2.htm">dealing
with troublesome clients</a>.  The  top  line  of  input 
and  creates  the  service  guy  an  extra  day  of  rest 
is  history.</p>  <p>Nowadays  I  see  no  easy  task,  let
 alone  that  so  my  accountant  had  worked  in  the  UK 
on  June  30th,  and  I've  met  Xavier  Cazin  from  ORA 
as  well  have  this  feeling  that  this  is  the  way  of
 doing  <a href="http://axkit.org/docs/presentations/tpc2001/">AxPoint
slides</a>  was  to  make  in  the  header,  so  the 
client's  network  admins  when  they  locate  it. 
Frustrating.  It's  Friday  Trivia  Time!  Holy  Trivia, 
Batman!  Two  questions  in  the  middle  of  the  saying 
that  he'd  written  during  his  last  year  for  p5p 
meeting.  <p>    I  had  reached  the  other  tabs  are 
there,  you  say?  Let  me  know  which  one.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/21132">post</a> and <a href="http://use.perl.org/comments.pl?sid=22800">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The L-bomb]]></title>
    <link href="https://www.taskboy.com/2004-09-28-The_L-bomb.html"/>
    <published>2004-09-28T00:00:00Z</published>
    <updated>2004-09-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-09-28-The_L-bomb.html</id>
    <content type="html"><![CDATA[<p><p>Like an amnesiac, I forget that arguing politics is like wrestling with a pig (afterwords, you'll both be dirty, but the pig will like it).  And
so, I was sullied once again in ulcerous tar pit of political discussion 
during which I was confronted with the suggestion that the Republican party 
resonates more with "middle America" and "middle Americans" than the 
Democrats, who are chided for embracing "weirdos."  Weirdos here being 
defined firstly as "Liberals!" and later, more specifically, as dirty, 
bible-hatin', tree-huggin', dope-smokin' hippies who loathe America. <br>
However, it was noted that the Right also has its share of socially 
distasteful elements, who can be as eloquently pigeonholed as bible-thumping, 
tax-hatin' gun-fetists.  In quiet moments of reflection, it is unambigiously 
obvious that these crude aspersions apply, if at all, to only marginal 
fractions of both the Republican and Democrat parties.  And yet, somehow 
"Liberal" still seems the more insidious insult than "Conservative."  I think 
I know why this is and the secret isn't profound.   Most people I know define 
themselves as conservative in some way, so that word probably has more 
emotional investment in it.  And of course, a lot of time and money has gone 
into demonizing "Liberals" in an effort that has been unwittingly and 
effectively abetted by the Left itself.
<p>So what are Liberals on about?  Does it make any sense?  Do they really 
hate America?  And what, if anything, does this have to do with Democrats?
<p>Two authors take a stab at this.  Because I'm getting old and lazy, 
I bought these two authors on "tape" (CD, really).  Actually, both authors
are delightful orators. 
<p>Garrison Keillor's <em>Homegrown Democrat</em> is a Liberal from Middle 
America, who measuredly and forcefully scolds the current Adminstration's 
profligate tax-cuts and messianic War on Terror as profoundly and 
fundamentally unamerican in that these policies are designed to destroy 
public life (schools, emergency services and elderly care).  In the quest to 
reform the bloated Federal bureaucracy, anti-public ideologs have been swept
into power under the rubric of Republicanism but share little of the values 
of Eisenhower or even Nixon.  Keiller contrasts this assault on public life
with the memories of his youth, where a person wasn't alone in public and 
neighbors weren't feared and hated a priori.  Keiller's defense of liberalism 
is refreshing and rings true to me. 
<p>To the left of Keiller comes the uncomprimizing Cornel West reading his 
weighty and unflinching <em>Democracy Matters</em>, in which the author 
suggests that the American Experiment in democracy has been nearly crushed 
by Emperialism born from consumerism, corporate greed and Christian 
fundamentalism.  West rails against the ever-narrowing of public debate (and
the blacklash against public dissent), urging his readers to not 
disenfranchise themselves by giving into apathy and nihilism. 
<p>So lots of good, light listening for you to code by.
<p>Peace out.
<p>(Also note that I've being watching a lot of Good Eats DVDs 
trying to get my food on.  It is my experience that both week-kneed liberals 
and right-wing ideologs do need to eat once in a while.  So we got that 
keeping us together.)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/21084">post</a> and <a href="http://use.perl.org/comments.pl?sid=22747">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Oracle  headaches    Perl.]]></title>
    <link href="https://www.taskboy.com/2004-09-24-[MarkovBlogger]__Oracle__headaches____Perl.html"/>
    <published>2004-09-24T00:00:00Z</published>
    <updated>2004-09-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-09-24-[MarkovBlogger]__Oracle__headaches____Perl.html</id>
    <content type="html"><![CDATA[<p>or  DocBook  or  LaTeX  for  making  presentation-quality printable  documents.  I  have   with  the  journalizer 
(except  for  setting  the  resting  position  on  the 
MSDN  site.    I  thought  about  it!</p>  <p>(Pudge, 
slash  needs  to  get  involved  with  this  idea  after 
jumping  into  makefiles  while  installing  Bundle::LWP 
from  CPAN.pm,  somewhere  around  #20,  so  this  is  a 
hard  sell;  possibly  because  most  of  the  Congress 
almost  two  years  and  years,  suddenly  in  the  Free 
Software  Foundation  to  help  the  Scots  in  the 
nineties  on  my  short  list  of  films  so  odd  and/or 
well  done  (along  with  Kylie  Minogue,  Natalie 
Imbruglia  and  Jason  Donovan)?  <p>  gav^  Adobe  is  <a href="http://www.adobe.com/aboutadobe/pressroom/pressreleas
es/200209/200209itc.html">asking the judge to rule</a>  in 
this  confusing,  dark,  though  provoking  masterpiece. </p>

<p>  <a href="http://us.imdb.com/Name?Pearce,+Guy">Guy
Pearce</a>  is  great,  but  now  he  doesn't  like  to 
the  normal  people  would  use  a  grammar/lexer.  For 
our  entire  process).  Hopefully  we  can  have:  
# begin file package Foo; my $x = 0; sub foo { print $x++ }
__END__   ..  and  in  the  last  few 
evenings.</p>

<p>    I  started  writing  my  slides  up 
here</a>
.  I'll  be  moving  <a href="http://www.daisypark.org">Daisypark</a>  from  my 
apartment.  I'm  trying  to  patch 
WWW::UsePerl::Journal::Entry  as  well.)</p>

<p></p>

<ul><li>journalstat.perl</li></ul>

<p></p>

<h1 id="usrlocalbinperl5.8.0-perl-usewarnings">!/usr/local/bin/perl5.8.0 â # -<em>- perl -</em>- use warnings;</h1>

<p>use strict; use lib $ENV{HOME}; use WWW::UsePerl::Journal;
my($user) = @ARGV; foreach my $user (@ARGV) {  my $journal
= WWW::UsePerl::Journal->new($user);  my @entries =
$journal->entryids();  # Originally I took the date of the
first and last entries, but  # actually I want the current
date as an endpoint. (If you stop  # posting, that means
your average rate should gradually decrease  # as time
progresses.)  my $firstdate =
$journal->entry($entries[0])->date;  my $numentries =
scalar @entries;  use Time::Piece;  my $lastdate =
localtime;  my $interval = $lastdate - $firstdate;  my
$per_day = $numentries / $interval->days;  print "$user has
written $per_day entries per day\n"; } </p>

<ul><li>journalmonths.perl</li></ul>

<p></p>

<h1 id="usrlocalbinperl5.8.0-perl-usewarnings">!/usr/local/bin/perl5.8.0 â # -<em>- perl -</em>- use warnings;</h1>

<p>use strict; use lib $ENV{HOME}; use WWW::UsePerl::Journal;
my($user) = @ARGV; foreach my $user (@ARGV) {  my $journal
= WWW::UsePerl::Journal->new($user);  my %entries =
$journal->entryhash;  my %count;  foreach my $entrynum
(sort keys %entries)  {  my $entry = $entries{$entrynum}; 
my $date = $entry->date;  my($month, $year) = ($date->mon,
$date->year);  $month = sprintf "%02d", $month; 
$count{"$year$month"}++;  }  foreach my $month (sort keys
%count)  {  print "$month:\t$count{$month}\n";  } }
  <ul><li>WWW::UsePerl::Journal patch</li></ul> 
 â
/usr/local/perl580/lib/site_perl/5.8.0/WWW/UsePerl/Journal.
pm 2002-09-26 04:51:29.000000000 -0500 +++
WWW/UsePerl/Journal.pm 2002-09-27 10:24:17.000000000 -0500
@@ -1,4 +1,6 @@ -package WWW::UsePerl::Journal; +package
WWW::UsePerl::Journal; # -<em>- perl -</em>- + +BEGIN {warn "Using
local copy of WWW::UsePerl::Journal!"}  =head1 NAME @@
-30,6 +32,7 @@  use HTTP::Request::Common;  use
Data::Dumper;  use Carp; +use Time::Piece;  use
WWW::UsePerl::Journal::Entry; @@ -171,19 +174,25 @@  my
$content = $self->{ua}->request(  GET UP_URL .
"/journal.pl?op=list&amp;uid=$UID")->content;  die "could not
create entry list" unless $content; - my @lines = split
/\n/, $content;  my %entries; - foreach my $line (@lines){
- next unless $line =~ m#~$user/journal/#ism; - $line =~
m#~$user/journal/(\d+)">(.<em>?)</a>#ism; - + my $count
= 0; + while ( $content =~
m{~$user/journal/(\d+).>(.</em>?)</a></td>\s+<td><em>([\d.\s:]+)</em>}ig) + {  next unless
defined $1; - $entries{$1} =
WWW::UsePerl::Journal::Entry->new( + my($id, $subject,
$datestr) = ($1, $2, $3); + $datestr =~
m/(\d+).(\d+).(\d+)\s+(\d+):(\d+)/; + my($year, $month,
$dateofmonth, $hour, $minute) = + ($1, $2, $3, $4, $5); +
my $formatteddate = + "$year-$month-$dateofmonth
$hour:$minute:00"; + my $date =
Time::Piece->new(HTTP::Date::str2time($formatteddate)); +
$entries{$id} = WWW::UsePerl::Journal::Entry->new(  j =>
$self,  user => $user, - id => $1, - subject => $2, + id =>
$id, + subject => $subject, + date => $date,  );  } @@
-203,7 +212,7 @@  my %entries = $self->entryhash;  my @IDs;
- foreach (sort keys %entries) { + foreach (sort {$a &lt;=>
$b} keys %entries) {  $IDs[$#IDs+1] = $<em>;  }  return @IDs;
  <ul><li>WWW::UsePerl::Journal::Entry</li></ul>
 â
/usr/local/perl580/lib/site</em>perl/5.8.0/WWW/UsePerl/Journal/
Entry.pm 2002-03-03 14:13:05.000000000 -0600 +++
WWW/UsePerl/Journal/Entry.pm 2002-09-27 10:00:49.000000000
-0500 @@ -1,4 +1,4 @@ -package
WWW::UsePerl::Journal::Entry; +package
WWW::UsePerl::Journal::Entry; # -<em>- perl -</em>-  =head1 NAME
@@ -15,6 +15,7 @@  use Data::Dumper;  use Carp;  use
WWW::UsePerl::Journal; +use Time::Piece;  our $VERSION =
'0.03';  use constant UP_URL => 'http://use.perl.org'; @@
-58,6 +59,10 @@  sub date  {  my $self = shift; + unless
(defined $self->{date}) + { + $self->get_content; + } 
return $self->{date};  } @@ -132,6 +137,27 @@  if $content
=~  m#Sorry, there are no journal entries  found for this
user.#ismx; + $content =~ m{ +
((Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Satur
day) + <em>) + }x; + my $datestring = $1; +
$datestring =~ m/(.</em>day)\s+(.<em>)\s+(\d+),\s+(\d+)/; +
my($day, $month, $dateofmonth, $year) = ($1, $2, $3, $4); +
$content =~ m{ + ((\d+):(\d+)\s+[AP]M) + }x; + my
$timestring = $1; + $timestring =~
m/(\d+):(\d+)\s+([AP]M)/; + my($hour, $minute, $ampm) =
($1, $2, $3); + $hour += 12 if $ampm eq "PM"; + $hour = 0
if $hour == 24; + $month = substr($month, 0, 3); + $day =
substr($day, 0, 3); + my $formatteddate = "$day $month
$dateofmonth $hour:$minute:00 $year"; + my $dateseconds =
HTTP::Date::str2time($formatteddate); + my $date =
Time::Piece->new($dateseconds); + $self->{date} = $date; 
$content =~  m#.</em>?$ID</a>\n]\n\s*\n\s*<p>\n\s*(.<em>?) 
\n\s</em><br><br>.*#ismx;   HTTP resumer Dear Log
and Everyone, <p> What does everyone think of <a href="http://members.spinn.net/~sburke/resumer.pl">this?</a>
  <p>It's like an extremely primitive wget that I threw
  together tonight just as needed; except you can interrupt
  the HTTP transfer and resume it later, which at the old
  wget that I have doesn't know how to do.  Busy Busy Busy
  It's always something. I got a copy of an O'Reilly book for
  tech review today. I need to read it in the next two weeks,
  type up my notes, and send them in. I am glad that I
  decided not to actually work on writing this book, because
  I can barely find time to review it. Tonight I try to do
  some cleanup for MacPerl 5.6.1b2 (I expect its release
  before November). I am slightly discouraged as I find more
  bugs for MacPerl that I cannot fix, and must rely on
  Matthias to help me with. Oh well.  whither
  irc.infobot.org? Is it me or is the DNS for irc.infobot.org
  FUBAR?  Showing Great Restraint The nms support list just
  got an email from a church in Nigeria who confused us with
  bible salesmen. I sent them a polite email back pointing
  out that they had the wrong address as we didn't sell
  bibles. I didn't add the bit that I wanted to, where
  I would have told them that we didn't sell bibles as we've
  been told it's an evil book by our Lord Beezlebub. I wasn't
  sure they'd see the joke.  Do not try this at home I've
  been battling insomnia recently. God knows why I can't
  sleep, I wish I did. Last night I decided to shave at 3am.
  I was bored and couldn't think of anything else to do. I
  have trimmers that I use to shave, it's easy, fast and
  works better than regular electric shavers. I also have the
  attachments for longer trims. I though that the .5 inch one
  would be long enough to cut my hair, after all, I needed a
  hair cut. Let me tell you, .5 inches of hair is much
  smaller than you think. Now I'm all fuzzy on top. It
  doesn't look bad, just really different. I'll say it again,
  don't do this.  Warchalking <p><a href="http://www.guardian.co.uk/online/story/0,3605,748499,
  00.html">The simple technology of chalk marks is solving
  the problem of wireless internet access.</a></p> <p>Get out
  there with your Pringles tubes and a packet of chalk :)</p>
   Link of the day <p><a href="http://www.markcarey.com/web-dawn/forum.html">Web
  Dawn - Rebirth of the Social Marketplace</a> is a Movable
  Type powered site, but with an interesting spin â it looks
  like a forum rather than a blog.</p> <p>You can also post
  anonymously because Mark has used the <a href="http://www.bitchaboutstuff.com/misc/">little
  script</a> I wrote. It makes me feel warm and tingly
  inside.</p>  Utility: tgz Dear Log, <p>The spotlight dancer
  today is: <a href="http://www.speech.cs.cmu.edu/~sburke/pub/tgz.pl">tgz</code></a> â altho you'll probably want to rename
  that, as there's already a GNU utility by the same name
  now. (Weirdass GNU people always tryin' to bite my style!) 
  Trial By Accident Oh, okay, so I forgot I had a test in my
  network class.  Anyway, while I've got network access, I
  figured I'd drop a few notes in here.  It suddenly has
  occurred to me that it might have been a hell of a lot
  easier to have a different separator for the name and the
  rest of the data (especially if I ever roll this whole
  bunch of files together into one huge combined
  inventory/cost file).  I think I have an idea of how to
  do this. A search in the Perl Cookbook (now that I
  have the CD Bookshelf version, it's so friggin'
  easy) revealed that I can dump arrays into hashes. If I
  make the name of the card the key and the rest of it as a
  two-element array, I think my problems are over. I can sort
  with that, I can do pretty much all I need to do with it.
  (And, despite my whining, I can still work around the
  problem of my separators. s/// is supposed to be greedy, so
  I'll do a match for the first string that is a bunch of
  letters and then a colon, rip that out of the stringâ¦no,
  wait, the best way to do it would be to make it a step in
  reading the file: Rip each line into three parts, then map
  that three-element array into one key and one (two-element
  array) element in the hash. Once that's all mapped, working
  with the hash itself should be pie.  I hope.  I guess
  I'm officially back on track; most of what I'm doing
  tonight is going to be scribblework, not typingwork, so I
  probably won't post tonight. Got a 7:00 class tomorrow
  morning. 7:00-9:45 is Discrete Math and then 10:00-11:20 is
  Statistics. Four hours of nearly continual math, math,
  math. No wonder I need all that Dew.  Oh, and I have
  something to scribble <em>on</em> now. I can go through a legal
  pad in about a month, so I've upgraded: I bought a smallish
  dry-erase board, something I can carry around with me and
  use like a pad. (Well, except I can't look through my
  scribbles. Gotta be careful about keeping good things when
  they come up.) It was over at Staples for ten bucks; worth
  it, when your legal pad expenses in a year are well into
  the double digits.  Well, back to the drawing board. ;-)
    With apologies to ASCII art farts Dear Log,  
  IM TORGOX IM BUSY STUFFING MY FACE WITH  CHOLE AND KASHA,
  ALSO REFACTORING PERLDOC  NONE OF THESE THINGS ARE VEGAN
  BECAUSE  THERE IS BUTTER IN THE CHOLE AND BEEF  BOULLION IN
  THE KASHA AND A HUMAN PANCREAS  IN PERLDOC I DONT KNOW
  WHOSE IT IS BUT ITS  DISEASED PROBABLY MMMMM DISEASED  /  /
   ,==. |~~~  / 66\ |  \c -<em>) |~~~  <code>) ( |  / \ |~~~  / \ \ |
   (( /\ \_ |~~~  \ \</code>â`|  / / / |~~~ <strong></em> (<em>(</em></strong>)_|
  jgs  Dynastics Dear All, <p>As Kommissar of your
  horrible future, I have decided to rename all the modern
  presidents in a dynastic lineage starting with Nixon:</p>

<p>Nixon I ("Nixon the Progenitor") <br>Nixon II (Ford)
  <br>Nixon III (Carter) <br>Nixon IV (Reagan) <br>Nixon V
  (Bush Major) <br>Nixon VI (Clinton) <br>Nixon VII (Bush
  Minor; Gore as Antinixon, during the Squism) <br>Nixon VIII
  (Carey) <br>Nixon IX (Drew Carey) <br>Nixon X (Snicket)
  <br>Nixon XI (Oprah.com) <br>Nixon XII (Kermit D. Frog)
  <br>Nixon XIII (Sudsy the Urinal Cake) <br>Nixon XIV (Sudsy
  the Other Urinal Cake) <br>Nixon XV-XIX (the baskets of
  hissing feral kittens) <br>Nixon XX (Olsen and Olsen) 
  Cautionary tale Yahoo reports on chest injuries from a
  poorly-designed bong.  Tabula Rasa Fed up with Suse's
  lack of gcc, my TV tuner failing under Windows, and the
  screwed up file associations in BeOS, I did what any fed-up
  computer geek would do - I wiped the hard drive and
  reloaded everything.  Windows 98 didn't like things so
  much the second time around. We'll see how it goes. I can
  honestly say the first time around I didn't see a single
  BSOD. Hopefully, that trend will continue. I'm a bit
  concerned, though, since now I don't seem to be getting
  sound in the TV tuner.  Suse 8.0 was replaced with
  Mandrake 8.2. The TV tuner seems to work. I accidentally
  had the VCR on, so at first I thought Mandrake had stuck
  some kind of jingle in the startup, but it turned out to be
  a TV commercial. Oh, and I have a copy of Suse 8.0 for sale
  - cheap.  I'll be re-installing BeOS tonight, which
  shouldn't take long. I'm gonna take it easy on the software
  this time, and only install those apps that I know I'll use
  - Process Controller, SoundPlay, StripZilla and BeShare. 
  Testing, Testingâ¦Is This Thing On? I started to download
  the stable perlbot before I realized I had already
  downloaded it yesterday.  Stop downloading again, start
  unpacking. Fiddle fiddle, try the testâ¦no dice.  Aha!
  Net::IRC! Off to CPAN, and after a very short download and
  installation (I should note here that the kindly T.J.
  Eckman pointed out the best way to handle Winstallation) I
  tested it and promptly worried that I had sent an
  unsupervised IRC bot out into the world.  I'm going to
  do another test. However, many of the perlbot plugins seem
  deadly useful, where the Engrishifier is â let's face it
  â a perhaps funny but utterly pointless thing.  Lessons to
  learn from Dell <a href="http://rss.com.com/2010-1071_3-5068949.html?part=rss&amp;
  tag=feed&amp;subj=news">Don't do anything stupid</a>.  Hehe</p>

<p></blockquote></p>

<p>I've had article submissions accepted on slashdot
before, but usually there is a discouraging lack of
discussion. <a href="http://slashdot.org/article.pl?sid=02/09/25/1456246">
Not today.</a> :)</p>

<p>Dominus Talks How weird. I posted
those on Wednesday and I haven't heard anything except "how
do I get my Linux quicktime player to work?". Does anyone
watch these movies? Should I bother doing any more?<p>
(You've probably also heard this: that you should always
start with a joke. Also bullshit. âmjd)  President
Ketchupvegetable Dear Log, <p>I reprint here, in full, <a href="http://www.counterpunch.org/davis06062004.html">an
article</a> from today's Counterpunch cowboy round-up of
articles about the forty-years-too-late death of <a href="http://www.counterpunch.org/gaspar06062004.html">Gran
dpa</a> <a href="http://www.counterpunch.org/tripp06072004.html">Calig
ula</a>: <blockquote>Ronald Reagan, 1911-2004 <br>In a
Nutshell <br>By SUSAN DAVIS <p>Any kid from Dixon,
Illinois can make it..as long as they cultivate a
relationship with the FBI, bust a union or two, rat out
their Hollywood friends, and fire a few philsophers.
<p>After that, it was a down hill coast for Ronnie. <p>But
why did he call his wife "Mommy?" <p>Susan Davis teaches
at the University of Illinois,
Urbana-Champaign.</blockquote>  Yet another unpack
trick While going through John's code (free code review for
John!), I came across this tidbit:  map(ord,
split('', $word));  Well, Ruby doesn't have an
'ord()' function, so I used this instead: 
word.unpack("c*")  At RubyConf 2002, I
demonstrated that Perl's 'split()' function by itself is
faster than 'unpack()' for splitting words up into chars.
But I figured that a split + map combo would be slower.
Naturally, I did a benchmark.   use strict; use
Benchmark; our $word = "Hello"; timethese(1000000,{ 
"unpack" => q{  unpack("c*",$word);  },  "map n split" =>
q{  map(ord, split('', $word));  }, }); Benchmark: timing
1000000 iterations of map n split, unpackâ¦ map n split:
29 wallclock secs (26.92 usr + 0.00 sys = 26.92 CPU) @
37147.10/s (n=1000000)  unpack: 5 wallclock secs ( 4.17 usr
+ 0.00 sys = 4.17 CPU) @ 239808.15/s (n=1000000) 
 John's code only does this once per file IIRC, so no
big deal. Just something to keep in mind. :)  Planting
Metaphors Since I'm usually not smart enough to reinstall
things (even though I keep all the friggin' installation
packages I've ever downloaded), I resort to transplants,
packing the loose soil of a fresh hard drive around the dry
roots of previously installed (and then burned for
archive's sake) programs.  Yuck. Note to self: No more
planting metaphors.  Copy copy copy, look around,
attempt to run Apache:  Syntax error on line 61
of c:/apache group/apache/conf/httpd.conf: ServerRoot must
be a valid directory Note the errors or messages above, and
press the  key to exit.  Wonderful. Time
to locate PFE and get fixin'.  Minor Panic <p>I, of course,
use Linux for most of my day-to-day computing, but Gill
still likes to use Windows. This works fine. She runs
Windows on a laptop and connects to the internet via a
Linux gateway box on the home network.</p> <p>Currently
Gill's studying for a PhD. This involves lots or reading
books and then condensing what she's read into notes that
she writes in Word files. She's three months into the
course and has about 2.5 Mb of data. Being more cautious
than me, she's been asking me for some time to sort out a
way to back up her data - she doesn't to have to retype all
of those notes if anything happens to the laptop.</p></p>

<p>So, over the weekend, I installed Samba on one of the
Linux boxes and set up a shared directory that she can see
from the Windows box. Now, whenever she wants to backup her
data she can just drag and drop the latest files into the
backup directory.</p>

<p>Now, one of the things that I had
to do was to switch on "profiles" on the Windows box[1].
This means that you know have to log on to Windows and
every user that logs on gets their own desktop to configure
to their liking.</p>

<p>I explain this to Gill and she goes
off to try it all out whilst I start cooking. Thirty
seconds later, there's a shout from upstairs, "Where have
all my files gone?". I run upstairs to find that the PhD
folder she had on her desktop is no longer there. I start
to explore a few likely areas on the disk but to no avail.
I start to panic slightly - whichh doesn't improve my
problem resolution skills. I'm sure that I didn't delete
anything, but maybe I did it by accident. This looks
nasty.</p>

<p>Eventually, I work it out. As Gill is now
logged on as herself, she sees her desktop, not the
default user one that she saw before. Her files are still
there, but on a different desktop. It's simply a
case of finding where Windows has hidden the old desktop
files and moving them to the new desktop directory.
Everyone is happy. And the backup facilty works.</p>

<p>But
I thought I was in serious trouble for a while there
:-/</p>

<p>[1] Well, maybe I didn't have to do it,
but it certainly seemed the simplest way to set up
Samba.</p>

<p>Homestar fun Dear Log, <p>I just set up this
experimental feed: http://interglacial.com/rss/homestar.rss
<p>It's a list of main files at the <a href="http://www.homestarrunner.com/">Homestar Runner</a>
site. Not <em>new</em> main files, all main files â so
it's no good for using as a Slashbox feed. I expect it's
useful in general aggregators tho.  Public radio Dear Log,
<p><blockquote>&laquo;Public radio is riding high. Its
audience has more than doubled in the last decade. About 27
million people now listen to public radio at least once a
week, according to the Radio Research Consortium, a
nonprofit organization that tracks audience data for
noncommercial radio. That's a lot of people. Consider that
Friends, the iconic TV series, has been pulling in around
20 million viewers in recent weeks.&raquo; <p>â<a href="http://www.theatlantic.com/politics/nj/powers2003-11-
18.htm">"Radio Rich</a>: While public television is on the
skids, public radio is riding high. What's the secret?
"</blockquote> <p>Maybe it's just easier to make good
idea-rich radio than to make good idea-rich TV? Certainly
the mere technical side is a whole lot easier to pull off
for radio than for TV.  I always get in trouble when I am
bored <p>File under the "nothing-better-to-do"
category.</p> <p><a href="http://perl.is.h0rny.net/">http://perl.is.h0rny.net/&lt;
/a></p> <p><a href="http://uri.makes.everyone.h0rny.net/">http://uri.make
s.everyone.h0rny.net/</a></p> <p><a href="http://python.people.are.h0rny.net/">http://python.pe
ople.are.h0rny.net/</a></p> <p>Type in random stuffâ¦</p> 
Cheap-labor conservatives <p><blockquote> &laquo; The ugly
truth is that cheap-labor conservatives just don't like
working people. They don't like "bottom up" prosperity, and
the reason for it is very simple. Lords have a harder time
kicking them around. Once you understand this about the
cheap-labor conservatives, the real motivation for their
policies makes perfect sense. &raquo; </blockquote>
âConceptual Guerilla: <a href="http://www.conceptualguerilla.com/">Defeat the Right
in Three Minutes</a> <p>This is so unfair. Labor hurts the
bottom line and they know it. I'm compassionate when I
support cutting social programs because those programs
denegrate the needy. What's so wrong about being
rich and privileged?  That Answers That I guess I need to
get the Wolf Book. :)  Had I seen it on a shelf
somewhere I'd have picked it up by now, no doubt. I'll
probably have to order it; the most advanced thing on the
shelf of the local Borders is <em>Bookshelf</em>, which I have
already.  The sickness is abating; I suspect it'll be
done by the end of today or mid-tomorrow, and that means
back to the grindstone. Halfway through <em>Man-Month</em>, but
I'm not doing the depthful reading of my youth, so I should
probably make myself go back and read again.  Weekends This
past weekend my sister flew up from Florida and we drove
over to my grandparent's old place over in northeast
Wisconsin where we met up with my parents and their friends
(who also flew up). The drive is a bit long, but we had a
good time hanging out since we don't see each other that
often.  The weather was <em>perfect</em> on Saturday. About 75
degrees with a light breeze coming off the lake. We mostly
just hung out, did a little yardwork, and cooked hot dogs
and marshmellows over the fire we had made earlier. Then it
was beer and hanging out by the fire until the stars came
out.  Sunday was <em>hot</em>. I did a bit of shopping and left
for home after lunch. Hopefully it will cool off again - I
go back on Thursday for the 4th, and my other sister and
her kids will be up by then. :)  Like A Reassembled Clock
From Hell The script is <em>sort of</em> working.  Which is to
say that it runs (not without error) and it doesn't do what
it used to (surprise, surprise).  All of the errors are
'uninitialized value this', and I'm pretty sure I just
missed a few things typing it all in. I kind of expected
that; I give it a day or two before I have that ironed out.
 On the other hand, though, I actually remembered how
most of this thing works, and from what I understand, I'm
<em>very</em> nearly at the point where I'll be able to make it do
what it's supposed to do. That isâ¦it should generate all
the site pages, handle all the params properly, and really
should use CGI more.  I'm taking an <em>Alice</em> break for a
while and then I'll print a copy and go over it, looking
for things to change to fix the handling of params.  The
web broke "innovation" Innovation is a strange word. It was
abused by microsoft to mean "it's OK to abuse monopoly
power" a couple of years ago, and it is probably never used
correctly, so please excuse me here, and substitute a
better word if you can, if you find I use it offensively. I
believe the web has broken innovation. Ten years ago
software was the last frontier. It was a system that
allowed the lone inventor to capture his ideas in a
framework, hone it over time, and present it to the masses
in a production-ready form. The internet broke that. You
cannot, in todays world, innovate to any significant
extent. Every minor idea you have had. Every spark of
genius you can possibly invent. It has already been blogged
or discussed online somewhere. The reason: blogging
something is far easier than coding something up. So people
just blog it. On the last day of OSCon I attended a talk by
Brewster Kahle of the "Wayback Machine" fame. He spoke
about how he believed one of the next "big" internet
projects could be a video browser, that allowed you to
create the equivalent of HTML for video (similar to SMIL,
but easier to cross-link), and that the person who creates
such a browser will be the next Marc Andreeson. He's wrong.
Because now there are 5 developers working on that project.
Or 5 projects and 20 developers. And none will create a
monopoly like Netscape, because the internet has beaten
monopoly. And all of this is good. And probably
controversial :-)  Linguistics Dear Log, <p>Letters! I get
letters! I get lots and lots of letters! And I got one a
while back, and wrote back a response that might interest
some of my fellow Useperlorganians: <p>====== <p>> You
don't know me from Adam, but Damian Conway recommended
<br>> you as someone able to answer what I hope is a simple
question. <p>Ah yes, I've been meaning to sit down and
write up a Web page about this. I get asked things like
this every few weeks, and each time I swear I'll pull
together something that makes enough general sense to be
worth committing to public availability. <p>Here goesâ¦
<p>> I was hoping to find a book that would be a good
introduction to <br>> the study of languages, linguistics,
grammars, whatever and whatnot. <br>> Unfortunately, I
don't even know the distinctions well enough to <br>> know
if I'm even asking the right question. <br>>[â¦] <br>> so,
in short, could you recommend any good "complete idiots
guide <br>> to the study of languages and related topics"
type books? <p>Terminology is a problem. <p>In linguistics,
the mapping from concept to terminology is regrettably
complex. It's usually all smoke and no fire. <p>See, a wave
of "physics envy" went thru the field starting about fifty
years ago (and just now finally ending, Godwilling), where
people thought that the way to look big and clever was to
whip up great big shmancy edifices of jargon and symbols
and whatnot (even if your basic methodology was about as
scientific as tarot cards). <br>And the sifted detritus of
those fifty wasted years to to be found in a book that, by
its title, you might think useful: David Crystal's
/Dictionary of Linguistics and Phonetics/. <br>Actually,
the phonology/phonetics entries are probably okay (if
"uninteresting", in many senses of the word), but
everything /else/ in there is somewhere on the scale
between being biased, ill-expressed half-truths, and
outright swirling nonsense. <p>Example (non-phonetic)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/21030">post</a> and <a href="http://use.perl.org/comments.pl?sid=22686">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[FireFox's live bookmarks are awesome]]></title>
    <link href="https://www.taskboy.com/2004-09-17-FireFox_s_live_bookmarks_are_awesome.html"/>
    <published>2004-09-17T00:00:00Z</published>
    <updated>2004-09-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-09-17-FireFox_s_live_bookmarks_are_awesome.html</id>
    <content type="html"><![CDATA[<p><p>I just discovered FireFox's 'live bookmarks' feature, in which you specify a URL to an RSS file and a bookmarks folder is populated with the 
feed's headlines.  I've got some feeds for use.perl journals, slashdot, 
freshmeat and the Mixerman diary stuff.
<p>Great fun.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/20925">post</a> and <a href="http://use.perl.org/comments.pl?sid=22567">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  SQLite!    Deleted  Domains    SQLite  3.0    Arrg!.]]></title>
    <link href="https://www.taskboy.com/2004-09-17-[MarkovBlogger]__SQLite_____Deleted__DomainsSQLite3.html"/>
    <published>2004-09-17T00:00:00Z</published>
    <updated>2004-09-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-09-17-[MarkovBlogger]__SQLite_____Deleted__DomainsSQLite3.html</id>
    <content type="html"><![CDATA[<p>better"</em>  without  noticing  that  XML  Schema  and XQuery.  <p>  That  shouldn't  be  impossible, honestly. 
Provided  with  a  truck  with  2  ladders  on  top.  It 
doesn't  display  conflicting  meetings  well  (as 
always).</p>  Date:  Wed,  30  Jul  2003  11:42:32  -0400 
(EDT)  From:  Kevin  Martin  (CEO)  To:  pair  staff  list </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/20914">post</a> and <a href="http://use.perl.org/comments.pl?sid=22555">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Thunderbird    Buy  More  Books    Bad  programming!   Regrurar?.]]></title>
    <link href="https://www.taskboy.com/2004-09-10-[MarkovBlogger]__Thunderbird	Buy__More__Books____Bad__programming_	Regrurar_.html"/>
    <published>2004-09-10T00:00:00Z</published>
    <updated>2004-09-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-09-10-[MarkovBlogger]__Thunderbird	Buy__More__Books____Bad__programming_	Regrurar_.html</id>
    <content type="html"><![CDATA[<p>all  crying,  and  swearing  to  goodness  that  they'll go  vote  against  the    students  who  showed  up  on  a 
<a href="http://www.pigdog.org/auto/aliens_suck/link/2677.html
">dangerous new mystery beast</a>.  It's  known  as 
vendors  of  development  that  I've  lost  45  pounds.  I 
  wanted  to  get  dynamic  behavior:   if(-s
"somescript.pl"){  $result = eval <code>cat somescript.pl</code> }
  Yes,  this  is  the  creator  ID  ("R*ch"), 
bundle  ID  ("com.barebones.bbedit"),  or  name 
("BBEdit"),  or  any  other  reason  than  to  implement 
it.  According  to  the  Korean  market  to  get  the 
reference.  :-)  <p>nms  users  continue  to  do  all  the 
time  have  any  of  our  state  senators  and  reps,  I 
think  I  take  a  different  CPAN  mirror  from 
http://www.cpan.org/  .  If  you  can,  please,  let  me 
know,  I've  written  a  program  that  emitted  valid 
XML.  The  syntax  though  was  horrible,  and  there  it 
is.  Feel  free  to  write  really  bad  guys?  The 
<em>unknown</em>.  Freaks!  A  totally  different  skills 
and  mindsets  to  understand.    However,  I  have 
something  interesting  to  port  25,  though  I  wouldn't 
be  getting  the  data  for  the  Ruby  mailing  list,  but
 I  probably  have  lumped  together  all  the  software 
in  some  way.  I'm  getting  100%  packet  loss.</p>  <p>I
 call  it  3.0.  Perl  was  crap  at  processing  XML.  I'd
 been  meaning  to  point  to  Dan's  blog  in  some  very 
nice  MySQL  administration  system.  It's  pretty  good 
support  for  bold,  italics,  and  so  on.  <p>  At  first
 I  went  to  grab  a  few  more  and  more  importantly 
and  ominously,  everyone  seems  to  stay  at  home  I 
can  play  them  online.  And  you  can  find  it  truly 
useful  just  yet,  but.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/20809">post</a> and <a href="http://use.perl.org/comments.pl?sid=22437">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[why PHP 0wnz mod_perl]]></title>
    <link href="https://www.taskboy.com/2004-09-07-why_PHP_0wnz_mod_perl.html"/>
    <published>2004-09-07T00:00:00Z</published>
    <updated>2004-09-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-09-07-why_PHP_0wnz_mod_perl.html</id>
    <content type="html"><![CDATA[<p><p>Recent discussions on this site and at OSCON concern the apparent waning of mod_perl popularity.  Some may lay the blame the for mod_perl's
wilting at the door of the crappy tech market that has dominate these past 
four years.  Others may cite the confusion caused by Apache's painful and 
prolonged switch from the 1.3 code base to the 2.x one.  Inevitably someone 
will throw philosophic tomatoes at languages like java or python for stealing
Perl mindshare.  To this witch's brew of finger pointing, I'd like to add 
this observation:
<p>mod_perl is dying because it solves the wrong problem. 
<p>If my Perl compadres aren't sent into paroxyms of rage, consider this line 
of reasoning.  Perl became popular in the nineties as a tool to build web 
applications via the CGI.  mod_perl and fastcgi appeared to turn down the 
suck knob on the poor performance of those early CGI apps (jeez, they were 
running on PIII machines; what sort of performance did we expected?)  Whereas 
the fastcgi apache module was meant to make perl CGI "run faster", mod_perl 
embedded the perl interpreter into apache and created the Perl API to the 
request cycle of the web server that we all know and love.  And as sort of 
an afterthought, mod_perl also provided a mostly CGI compatible module
called Apache::Registry for those that wanted to port existing CGI stuff.  But 
the expectation from the mod_perl camp was that everyone would get into 
writing apache modules using mod_perl. 
<p>This just ain't so. 
<p>Now, it's not that mod_perl suck (it doesn't) or that it's not useful in 
some situations (it is), is just that MOST PEOPLE ARE SIMPLY DOING CGI CRAP. 
That's right, stupid CGI + HTML is a kind of universal Microsoft Fundation 
Class that works for programmers of all lanuages.  After all, most of us are
hired to build a system to solve a business problem.  And since writing 
software for a specific client platform is teh suck, HTTP/CGI is a better 
platform to program to.  A quick look at freshmeat's 
<a href="http://freshmeat.net/browse/160/">projects by language</a> reveals this:</p>

<ul>
  <li>Perl: 3146
  <li>PHP: 2682
  <li>Python: 1566
  <li>Java: 3301
  <li>Lisp: 44 (included for entertainment purposes only)
</ul>

<p><p>Since freshmeat doesn't discriminate between web apps and non web apps, a 
little fudging is needed to get at my point.  While many of the Perl, Python 
and Java apps listed freshmeat are web apps, almost all the PHP projects are 
web apps (there are some weirdos out there using CLI PHP).  People like using 
PHP for web stuff and now I know why.
<p>PHP is a terrible language.  Perl has long suffered with the albatross 
of its highly syncretic origin and it's "organic design".  However, PHP is 
a lot worse.  It's a kitchen-sink language where crazy things like 
mysql routines and GD libraries are part of the core language.  While objects
were around in PHP 4, few PHP systems use OO style.  To put a fine point on 
it, most of the PHP apps I've looked at are poorly written and a bear to 
debug. 
<p>And yet, PHP is frequently a better choice than Perl for web apps. <br>
Moreover, users are more likely to try out those PHP apps with their
sexy screenshots than go through the hassle of installing a mod_perl app. 
<p>PHP, until recently, had no illusions about what sort of programs its users
intented to write.  It's syntax, "library management" and poor namespace 
control are all a product of it's problem domain.  PHP are easy to write and 
painless to dispose of.  PHP, along with thrice-damned VBScript/ASP, are 
as the best tools I've seen for rapid web prototyping.
<p>mod_perl doesn't nothing directly to aid web app development.  PHP, 
with its shotgun spray of built-in libraries to do everything from PDF 
generation to cybercash functions, 0wnz mod_perl.
<p>If you've never installed a PHP app, do.  It usually involves downloading 
an archive, unpacking it in a PHP-aware document root and pointing your browser
to the appropriate URL.  A web page will walk you through the rest of the 
setup.  This procedure appears to be the rule, not the exception.  In the past
year, I've installed the following PHP apps: phpBBS, sugarCRM, Jinzora (mp3 streamer), Agatha ([poorly written] mp3 streamer) and SITR knowledge base. <br>
<p>Have you installed any mod_perl apps lately?  RT (requires Mason, DBI)? <br>
Slash (requires Template Toolkit, DBI)?  Wiki and Movable Type are two 
perl apps I can name that are most PHP-like in their installation.  I'm not 
denigrating Perl, mod_perl or the Perl apps I've named.  I'm pointing out that
the installation of these apps is a barrier to entry for many people.  Perl 
may be share some blame in this too.  Perl's core set of bundled 
(or "built-in") modules is small compared to PHP, so apps that actually 
do something besides parsing log files require a trip to CPAN.  Oh, you'll 
probably need to configure apache for mod_perl.  And a Directory section for 
your mod_perl app.  So, you'll need to restart apache. 
<p>ugh.
<p>mod_perl isn't getting web developers because it isn't a web application 
framework.  PHP is.
<p>A postscript
<p>In a vain attempt to forestall the stupid comments, here's a list of things 
I'm not saying:</p>

<ul>
  <li>Perl sucks
  <li>PHP rulz
  <li>mod_perl is garbage
  <li>PHP is delightful
  <li>PHP's design choices are perfect
  <li>Perl should be exactly like PHP
  <li>Don't code Perl
  <li>Don't write Perl web apps
  <li>Only write PHP web apps
  <li>You can't write good web apps for mod_perl 
</ul>

<p><p>What I am saying is use the right tool for the job. For web apps, 
PHP is frequently the better tool.  mod_perl isn't tool, but a platform.
<p>Now count to 10 and write the smart comments below.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/20761">post</a> and <a href="http://use.perl.org/comments.pl?sid=22382">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]    Best  Shot    doh!.]]></title>
    <link href="https://www.taskboy.com/2004-09-03-[MarkovBlogger]____Best__Shot	_doh_.html"/>
    <published>2004-09-03T00:00:00Z</published>
    <updated>2004-09-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-09-03-[MarkovBlogger]____Best__Shot	_doh_.html</id>
    <content type="html"><![CDATA[<p>the  lot.  Ouch.  Well  hopefully  I'll  have  Copious Free  Time  out  of  my  landlord  that  "one  zone  should
 heat  the  house  and  the  mans  treasures  are 
revealed.  Puzzled,  Peter  asks  him  why  she  sent 
them,  if  only  a  karma  whore  on  slashdot;  here  I'm 
just  being  dense?</p>  Topic:  You can only drag one bookmark (or favorite) at a time
from Internet Explorer to Safari.  Solution:  Drag  one
 bookmark  at  a  price,  I  might  drag  myself  to  play 
on  an  mp3  player  and  broadband.  Never  mind  that 
the  way  perlpodspec  says,  you  break  it. 
Mac-OSA-Simple-1.05  has  been  mutable,  over  the  years,
 and  <a href="http://www.cbsnews.com/stories/2003/06/09/national/ma
in557572.shtml">third graders aren't learning cursive
writing because they're spending too much time IM'ing and
emailing each other</a>.  Go  figure.  I  don't  care  one 
way  or  another  hosting  company  is  very  detailed, 
almost  an  obsessive  compulsive  narrative  of 
description  where  setting  a  scene  I'd  seen  were 
boring,  or  stupid,  and  often  returns  incorrect 
results,  as  described  in  <a href="http://use.perl.org/~torgox/journal">TorgoX</a>'s  <a href="http://www.oreilly.com/catalog/perllwp/">book</a>. 
<p>  <p>    It  would  be  a  significant  amount  of 
sleep.  Despite  recent  scholarship,  I  bloody  need  8 
hours  of  that  â  in  print,  on  mailing  list  isn't 
dead  after  all.  <p>I.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/20706">post</a> and <a href="http://use.perl.org/comments.pl?sid=22319">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[oral fixation]]></title>
    <link href="https://www.taskboy.com/2004-08-30-oral_fixation.html"/>
    <published>2004-08-30T00:00:00Z</published>
    <updated>2004-08-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-08-30-oral_fixation.html</id>
    <content type="html"><![CDATA[<p><p>The <a href="http://news.bbc.co.uk/2/hi/asia-pacific/3611666.stm">BBC reports</a>:<blockquote></p>

<p>Sexual frustration has driven a mild-mannered chimpanzee to take up smoking and spitting, according to China's Xinhua news agency.</p>

<p>Feili, 13, has turned from a "gentle girl" into a "shrew", said Liu Bing, the director of her zoo in Zhengzhou, central Henan province.</p>

<p>Mr Liu said Feili's partner at the zoo was 28 years her senior, and was unable "to meet her sexual demands". </p>

<p></blockquote></p>

<p>This disturbing human-like behavior from chimpanzees can only mean one
 thing: </p>

<blockquote>
CHARLTON HESTON'S PROPHETIC FILM PLANET OF THE APES IS COMING 
TRUE.
</blockquote>

<p></p>

<p>Therefore I urge everyone, for the good of humanity, to begin 
shooting all apes, monkeys and marmasets on sightâ¦
<a href="http://taskboy.com/music/monkey_v_robot_jjohn.mp3">before its too late</a>.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/20631">post</a> and <a href="http://use.perl.org/comments.pl?sid=22233">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[web design tips from Alton Brown]]></title>
    <link href="https://www.taskboy.com/2004-08-24-web_design_tips_from_Alton_Brown.html"/>
    <published>2004-08-24T00:00:00Z</published>
    <updated>2004-08-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-08-24-web_design_tips_from_Alton_Brown.html</id>
    <content type="html"><![CDATA[<p><a href="http://www.altonbrown.com/">Alton Brown</a> is a mad scientist.  Watch his cooking show on the Food Network for more than 
five minutes and you will reach the same conclusion.   While mad scientists
typically tamper with chthonic forces of nature to remake life in their 
own mad vision, Brown's material of choice is food.  His vision is the same
though.</p>

<p>
<p>This post isn't about how entertaining AB is (he is) or how effective 
his teaching style is (very) or even about the tastiness of his recipes 
(intensely).  Instead, I want to share with you what I learned about web 
design from Brown's web site.  But first, more about me.</p>

<p>I have little graphic talent.  That is I can't draw very well, nor can 
I select a pleasant pallet colors.  I can't sketch well, paint well or sculpt 
well.  I just don't think that part of my brain works or perhaps it's just 
very sleepy.  While I understand how to use graphic manipulation programs 
like Gimp, I can do very little with them because, as I've mentioned, I have 
no talent.</p>

<p><br>
<p>Most of the time, it's not a problem that I don't have graphic 
talent because that's not my job.  However, there are times when I get 
frustrated by this hole in my skills.  In particular there are common 
graphic motifs that are ubiquitous on the web that I can't reproduce for the 
life of me.  One of those elements litters Brown's web site: the curved box.
What I'm talking about is those lime-green containers that define the sections
of text.  Each corner of those boxes of texts is curved.  I have long known
that this effect is achieved with small graphic files, but in my own 
experiments I was unable to create the rather oblique curves needed in my 
graphic application.  </p>

<p>And so, I despairedâ¦until today.</p>

<p>As I was looking enviously at Brown's site, I decided to examine one of
the corner graphics apart from the page on which it sits.  To my surprise, 
it had very different dimensions than what the HTML source showed.  Moreover, 
the graphic was a simple quarter of a circle!  Circles, I can make!</p>

<p>Putting it all together, the recipe for creating those curved corners is 
the following:</p>

<ul>
   <li>Fire up your graphics package
   <li>Create a new graphic 40 x 40 pixels (for instance)
   <li>Fill the background with the desired background color of your site.
       (or leave transparent)
   <li>Pick a forground for the circle that you're about to draw
   <li>Inscribe a circle so that radius extends to the edges of the graphic
   <li>Save
   <li>quarter the circle so that you have four 20 x 20 squares.  Each square
       will have an arc in it.
   <li>Save each quarter to a separate file 
</ul>

<p>The magic now comes when you reference these graphics in HTML.  Simply
augment the width or height parameter of the IMG tag to achieve a 
fancy sweeping arc.  Turn the graphic into a rectangle and the browser 
will make the arc for you.</p>

<p>When your boss gives you a raise for your amazing web design savvy, tell
'em Joe sent ya!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/20540">post</a> and <a href="http://use.perl.org/comments.pl?sid=22130">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]    DBD::SQLite  benchmarking  .]]></title>
    <link href="https://www.taskboy.com/2004-08-20-[MarkovBlogger]____DBD__SQLitebenchmarking__.html"/>
    <published>2004-08-20T00:00:00Z</published>
    <updated>2004-08-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-08-20-[MarkovBlogger]____DBD__SQLitebenchmarking__.html</id>
    <content type="html"><![CDATA[<p>an  FSRef,  and  XS  handles  it  transparently,  just  as prevalent  in   any  depth  but  I've  been  playing  with 
my  senses.  I  could  find,  then  wandered  onto  the 
internet".</p>  <p>Interesting  new  site,  <a href="
http://www.marketingfix.com">marketingfix</a>  launched. 
I've  been  playing  M&amp;M  VII.  Honestly,  I  think  it's 
great  that  he  spent  a  lot  about  innovation  this 
weekend.  Someone  has  just  been  travelling  to 
conferences  in  the  legislation  that  prohibits  someone
 from  a  law  like  the  word),  the  bot  (now  that  my 
opinion  really  pushed  things  forward.  He  encourages 
people  to  recognize  this  fucktard  and  slap  him  for 
his  circumstances  would  be  caught  by  strict. 
<p>There  was  a  kidâthe  gentle  humour  of  a  Doubt". 
Its  title  should  be  fairly  cool  until  it  has 
provided  piss  poor  service.  <br>V:  They're  all 
pretty  interesting,  since  it's  beta  release  in 
April.  I've  posted  again  on  your  key.  Level  1  - 
how  daft.  This  may  be  required  to  sign  up  for  no 
apparent  reason,  in  both  of  you,  the  future  as  I 
possibly  could.  I  may  not  be  the  largest  perl 
module  called  net-pingsimple  which  was  the 
inserts  into  the  restaurant  to  be  <a href="http://www.askbjoernhansen.com/archives/2002/08/18/00
0106.html">an idiot.</a>  One  minor  (and  admittedly 
beneath-the-belt)  datapoint:  No  one  wins.  Dear  Log, 
<p>Whee,  the  Olympics  are  over,  and  usually  happened
 in  Perl.  So  why  would  I?  I  might  have  snapped. 
  So,  tonight's  Enterprise.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/20483">post</a> and <a href="http://use.perl.org/comments.pl?sid=22063">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[fish and chips]]></title>
    <link href="https://www.taskboy.com/2004-08-17-fish_and_chips.html"/>
    <published>2004-08-17T00:00:00Z</published>
    <updated>2004-08-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-08-17-fish_and_chips.html</id>
    <content type="html"><![CDATA[<p><p>Dear log, <p>Made fish and chips tonight.  Batter from scratch.  It was delightful.</p></p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/20446">post</a> and <a href="http://use.perl.org/comments.pl?sid=22022">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]    Hardcore  C  programmers    Google.]]></title>
    <link href="https://www.taskboy.com/2004-08-13-[MarkovBlogger]____Hardcore__C	programmers____Google.html"/>
    <published>2004-08-13T00:00:00Z</published>
    <updated>2004-08-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-08-13-[MarkovBlogger]____Hardcore__C	programmers____Google.html</id>
    <content type="html"><![CDATA[<p>in.  DARPA  ceased  funding  OpenBSD  because  it  was  a bit  more  with  XML  that  it   needs  to  have  it 
working  proper  (and  removed  hundreds  of  messages  in 
bottles  into  the  Fedex  box  December  3rd,  whether  I 
was  tired  of  the  page  cited  above  and  see  if  I 
had  an  AMP  (the  new  name  ("Beans  Aranguren"  â 
memorize  it!!),  a  one-way  hash  function  to  retrieve 
a  recent  discussion  on  p5p  for  removal,  or 
un-deprecation,  or  something.  But  suppose  there  is. 
A-l-b-u-q-u-e-r-q-u-e.  I  went  to  a  fascinating  read 
and  display  the  news.  (What  can  I  say?  Now  all 
extensions  in  perl  (as  far  as  I  can  quickly  jump 
to  the  next  thing  I  noticed  about  Frank  was  the 
biggest  win  for  techies.  But  it  only  returns 
from/to/subj/time/length  and  then  it  must  and  shall 
be  40[1].  Now  I'm  going  to  have  its  effect.  </p> 
Whooooo.  I'm  finally  skimming  through  200  or  so 
random  geeks  at  a  strip  bar.  That  makes  nearly  all
 SAX  events  (a  few  dozen  gigabytes  per  document, 
such  as  the  mini-jumbo.  If  you've  ever  played
 with  Mac::Carbon  was  in  the  server  doesn't  know 
when  <a href="http://www.oreilly.com/catalog/perltt/">the
book</a>  will  be  leaving  it.  <em>Beyond  Belief</em> 
-  "WOW  Gold  -  Disc  One"  -  <a href="http://www.google.com/search?q=%22Petra%22">Petra</a>  Posted  from  <a href="http://caseywest.com">caseywest.com</a>,  comment  <a href="http://caseywest.com/journal/archives/000216.html">he
re</a>.  Dear  Log,  <p>Two  lines  that  were  within 
arm's  reach,  eventually  finding  the  plans  hidden  on 
Earth  is  suffering  from  a  Programming  book  is  full 
of  things  she'd  interject  with  at  the  Usenix 
Security  Symposium,  so  I  have  seen,  it  is  actually 
quite  good.  But  I've  found  both  a  GUI  and 
commandline  program).  It  does  the  following  phrases, 
altho  you  needn't  remember  their  meanings  or  even 
one  year  old  woman  who  is  a  scholar  of  ancient 
biblical  and  greek  tragedies,  pop  culture,  and 
American  timezones.    Now 
Playing:  
  <p>Josephine - The Wallflowers (Bringing Down The
  Horse)    What  is  Perl?  Well,  Perl  is
   waning.  <p>  The  solution  is  simple,  whereas 
  matching  every  headline-link  on  this  journal  will  no
   doubt  enjoy  the  ego  boost  of  writing  my  talk 
  Wednesday  afternoon  in  phone  calls  from  some 
  production  code  today?  And  what's  a  safe 
  neighborhood  that  won't  steal  my  car.    Keep  in.</p>

<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p></blockquote></p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/20389">post</a> and <a href="http://use.perl.org/comments.pl?sid=21953">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[IT unemployment]]></title>
    <link href="https://www.taskboy.com/2004-08-08-IT_unemployment.html"/>
    <published>2004-08-08T00:00:00Z</published>
    <updated>2004-08-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-08-08-IT_unemployment.html</id>
    <content type="html"><![CDATA[<p>From InformationWeek</a> reporting on data from the U.S. Bureau of Labor Statistics (via Slashdot), here are the unemployment rates
for IT professionals broken out by category:</p>


 DB Admins:
 2.8%

 Software Engineers:
 3.2%

 Managers:
 4.6%

 Sys Admins:
 5.7%

 System Analysts:
 8.2%

 Programmers:
 8.3%


<p><p>National average for unemployement across all industries: 5.3%.
<p>Since I know there are a few programmers on this site, I'm betting these
numbers aren't all that surprising to you.  If you don't like these numbers, 
perhaps <a href="http://www.johnkerry.com/">you can do something about it</a>.
<p><a href="http://www.georgebush.com/">Or not</a>.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/20300">post</a> and <a href="http://use.perl.org/comments.pl?sid=21851">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Express  …]]></title>
    <link href="https://www.taskboy.com/2004-08-06-[MarkovBlogger]__Express__.html"/>
    <published>2004-08-06T00:00:00Z</published>
    <updated>2004-08-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-08-06-[MarkovBlogger]__Express__.html</id>
    <content type="html"><![CDATA[<p>done  far  more  dangerous  thing.  Surely  the  only  one kind  of  resource  index  be   helpful?  In  honor  of 
playing  Magic: The
Gathering  again.  (And  if  memory  serves.  Good 
thing,  too  â  especially  in  the  text  of  your  snow 
tires.    Update:  ok,  I  didn't  try  hard  to 
get  Mac::AppleEvents  (a  future  part  of  Jacob 
Hallen's  talk  about  and  for  good  measure.   </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/20267">post</a> and <a href="http://use.perl.org/comments.pl?sid=21815">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Kikkoman,  Hero  of  the  Caribbean    The.]]></title>
    <link href="https://www.taskboy.com/2004-07-30-[MarkovBlogger]__Kikkoman,__Hero__of__the__CaribbeanThe.html"/>
    <published>2004-07-30T00:00:00Z</published>
    <updated>2004-07-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-07-30-[MarkovBlogger]__Kikkoman,__Hero__of__the__CaribbeanThe.html</id>
    <content type="html"><![CDATA[<p>points!  I  need  X  and  OS  X.  (Ironic  that  I'm maxing    out  my  sorrows  for  the  unset  to  take,  and 
if  there's  any  kind  of  day  and  a  voter.  I  believe
 there's  such  a  bad  thing.  His  talk  will  be  swift.
 I  do  NOT  have  the  best  thing  to  do  these  days), 
but  look  for  -  usually  J2EE/WebSphere/WebLogic, 
.Net/ASP/C#/etc.,  and  Oracle  9.0.1  on  my  first 
impression),  but  rather  <em>they  never  stop  being 
ridiculously  dumb.  They  didn't  seem  so  â¦ 
thanks."<p>  Everyone's  a  comedian.<p>  (now  playing: 
Touch  Me  (I  Want  Your  Body)  by  Samantha  Fox)
 It  appears  that  the  state  of  affairs  that  the  new
 Cookbook  excerpt  on  perl.com.  I  think  the  acronyms 
are  driving  the  technology  behind  the  counter  to 
good  use.  I  think  he  noticed  it.  I  couldn't  ssh 
out  of  the  screwed  up  the  following  quote  come </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/20141">post</a> and <a href="http://use.perl.org/comments.pl?sid=21672">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Daily massholes]]></title>
    <link href="https://www.taskboy.com/2004-07-28-Daily_massholes.html"/>
    <published>2004-07-28T00:00:00Z</published>
    <updated>2004-07-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-07-28-Daily_massholes.html</id>
    <content type="html"><![CDATA[<p><p>To Comedy Central's The Daily Show's Rob Corddry, whose memories of a sorid Boston adolescence complete with drunken masshole 
friends brawling in a bar brought tears of pure joy to mine eyes: 
<p>I SALUTE YOU, SIR! 
<p>UPDATE: <a href="http://www.boston.com/news/politics/conventions/special/corddry_chat_transcript/">Rob Corddry's Boston.com Chat</a></p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/20120">post</a> and <a href="http://use.perl.org/comments.pl?sid=21650">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  my  heart.]]></title>
    <link href="https://www.taskboy.com/2004-07-23-[MarkovBlogger]__my__heart.html"/>
    <published>2004-07-23T00:00:00Z</published>
    <updated>2004-07-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-07-23-[MarkovBlogger]__my__heart.html</id>
    <content type="html"><![CDATA[<p>â¦when  you  have  to  get  onto  another  plane,  to profuse  apologies  and  vague   promises  of  X  people 
who  aren't  employed  by  you,  aren't  in  use,  that 
supports  multiple  interface  inheritance,  like  Java. 
And  the  backup  directories  on  as  tables,  and 
lots  of  keeps.  Either  I  was  impressed 
that  straight  after  lunch,  and  desserts  for  the 
first  movie  began  and  the  rewrite  will  happen  if  I
 can    now  all  taken  care  of.  The  canonical 
Peaberry  coffee  comes  from  Jimi  Hendrix's  Purple 
Haze  (well,  almost!)</p>

<p>Dear 
Log,<blockquote>&laquo;American household appliances are
sucking up energy even when they are switched off,
according to researchers in Ithaca, New York. "Off doesn't
mean off any more, but standby," says Mark Pierce of
Cornell University's college of human ecology. The average
American home has 20 electrical appliances that need power
for timers, clocks, memory and remote on and off switches,
he calculates. These vampires quietly cost consumers a
total of $3bn a year - or about $200 per household. "We're
using the equivalent of seven electrical generating plants
just to supply the amount of electricity needed to support
the standby power of our vampire appliances," he
says.&raquo;<p>â<a href="http://www.guardian.co.uk/science/story/0,3605,803040
,00.html">"Power of the vampires"</a></blockquote> 
<p>TWENTY  never-really-off  appliances,  on  average?  Is 
this  about  when  each  uses  mod_perl  and  about 
halfway  through.  I  don't  even  know  if  it  worked  at
 O'Reilly  is  Ambassador:  I  want  to  stick  my  head 
while  I'm  a  bit  surprised  at  how  slow  writing 
goes.  I  can  try  them.  (see  <a href="http://blogspace.com/rss/readers">the RSS readers
page</a>  for  a  while.    Thanks,  Jarkko,  Jon,  and 
John.  :)  (Not  in  that  language  that  I  recovered 
well  from  that,  actually  â  I  got  Qwest  DSL 
installed,  Gamespy  has  warned  me  that  not  all  of 
Once  More  With  Feeling  the  musical  episode  of
 "Strange  World"  last  week.  The  extreme  right  wing 
thought  around  Paris.  Even  though  no  two  production 
web  servers  or  even  POD.  After  much  fighting  and 
reading  their  comic  books.)  Hopefully  this  will  be 
vying  for  the  $64  question.  Is  the  humanitarian  aid
 enough?  Will  the  forces  against  you  in  foreign 
lands,  you  can  do  too  much  ground  and  running  on 
Intel.  If  HURD  worked  on  from  one  table,  I 
probably  won't  post  there  will  be  a  bigger  pain 
than  I  am  tired,  and  very,  very  true.  Well  put. 
First,  I  must  admit  that  certain  things  (like 
<em>this</em>)  out.  <p>Yesterday  I  was  an  emergency 
london.pm  meeting  last  night  and  someone  on  the 
slides  for  us.  </p>  I  apologize  for  forming  my 
impressions  of  <a href="http://fedora.redhat.com/">Fedora
Core 1</a>.  <ul> <li>On the laptop: Upgrading a system
which has Ximian Desktop installed doesn't work well. It
breaks bigtime. To be fair, the installer does detect that
something is not quite right and warns you not to proceed.
Heed that advice. I didn't. I had to do a complete
re-installation of the OS. So I have a pristine new Fedora
installation.</li> <li>On the desktop: If, like me, your
computer has a wireless card which relies on the wlan-ng
drivers then you're on your own. RPMs for these drivers
don't exist yet so you'll have to build them from scratch.
This is made harder as the default Fedora installation
doesn't appear to include kernel-source. I decided to wimp
out and wait for prebuilt RPMs. Of course I didn't realise
this would be a problem until <em>after</em> I installed Fedora. I
now have a nice new re-installation of RedHat 9 on that
machine.</li> <li>These errors were all my fault. Fedora
itself seems very nice. It's just RedHat 10 - or rather
what RedHat 10 would have been. If you liked RedHat 8 and 9
(and I did) then you'll like Fedora even more.</li> </ul> 
Really.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/20014">post</a> and <a href="http://use.perl.org/comments.pl?sid=21529">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  No,  Davorg  is  Wrong    Attention  B5  Fans.]]></title>
    <link href="https://www.taskboy.com/2004-07-16-[MarkovBlogger]__No,__Davorg__is__Wrong____Attention__B5__Fans.html"/>
    <published>2004-07-16T00:00:00Z</published>
    <updated>2004-07-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-07-16-[MarkovBlogger]__No,__Davorg__is__Wrong____Attention__B5__Fans.html</id>
    <content type="html"><![CDATA[<p>downgrade  your  CVS.  :)  Do  we  really  have  to  get something  good,  they    should)  as  translating  such  a 
thingâ¦  <p class="hft-paras">Do  you  hate  quizzes? 
Don't  you  feel  like  I'm  programming,  not  writing 
and  then  bill  them  for  not  having  a  wide  variety 
of  genres:  The  FPS  portion  could  take  up  to  miss 
out.  (Everyone  I  know  what  it's  supposed  to.  What 
I've  fallen  into  which  shows  that  for  any  search 
engine.  My  <a href="http://www.perlmonks.org/index.pl?node_id=155901">cur
rent</a>  one  is  from  this  place  even  more.  Dear 
Log,  <p><a href="http://www.guardian.co.uk/comment/story/0,3604,678522
,00.html">&laquo;"We don't want to be Latin in that
pejorative way," the head of a fashionable thinktank told
me.&raquo;</a>  <p>Amazing  how  words  for  ethnic  groups
 (or  groups-of-groups)  get  tossed  around  with  the 
"easy"  approach:   while (&lt;>) {  chomp;  if ($_ eq
"north") {  print "You trudge northward.\n";  } elsif (â¦)
{  â¦  } elsif ($_ eq "quit") {  print "Goodbye!\n"; 
exit;  } else {  print "I'm sorry, I don't understand:
$_\n";  } }   It's  a  good  game  and  a  bunch 
of  new  people  turned  up  he  told  me  about  our 
upcoming  XML-RPC  book.  Ok,  I  was  95%  certain  of 
the  appliances  to  pack.  <p>Yay,  the  flight  to 
Buffalo.</p>  <p>It  seems  that  I  always  figured  I'd 
title  this  weekend  they  had  the  opportunity  to  not 
liking  it.  I've  spent  most  of  them,  you  can  only 
seem  to  make  a  language  called.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/19878">post</a> and <a href="http://use.perl.org/comments.pl?sid=21375">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[lies and lying liars who misstate their financials]]></title>
    <link href="https://www.taskboy.com/2004-07-16-lies_and_lying_liars_who_misstate_their_financials.html"/>
    <published>2004-07-16T00:00:00Z</published>
    <updated>2004-07-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-07-16-lies_and_lying_liars_who_misstate_their_financials.html</id>
    <content type="html"><![CDATA[<p><a href="http://news.com.com/Red+Hat+restatement+triggers+legal+attacks/2100-7344_3-5271926.html?tag=nefd.top">News.com.com reports:</a><blockquote>
&laquo;At least nine law firms have announced legal actions on behalf of Red Hat investors in the wake of the Linux seller's restatement of three years of financial results.
<p>Red Hat Chief Executive Matthew Szulik and Chief Financial Officer Kevin Thompson "intended toâ¦deceive the investing public regarding Red Hat's business, operations, management, and the intrinsic value of Red Hat's publicly traded securities and enabled defendants to sell 1.9 million shares of their stock for proceeds exceeding $35.6 million," according to one suit, brought by Lerach Coughlin Stoia &amp; Robbins in U.S. District Court in North Carolina. That and at least two other suits allege violations of the Securities Exchange Act of 1934. 
<p>â¦
<p>Following a June 16 recommendation from its auditor, PricewaterhouseCoopers, Red Hat on Tuesday announced a new method for recording revenue from sales of its annual subscriptions to Linux support, its primary money source. Previously, it recorded one-twelfth of an annual subscription each month regardless of when the subscription was sold; afterward it began booking revenue only on the day it was sold.
<p>The result is that although the company received the same amount of revenue, it received much of it a few days or weeks later. The change meant that Red Hat had net income of 7 cents per share for fiscal 2004 instead of 8 cents, and in one quarter, ended Nov. 30, 2002, had a net loss of more than $440,000 instead of net income of $214,000. 
&raquo;
</blockquote>
<p>Mmmâ¦ Perhaps Red Hat can find another product besides RHN to peddle. <br>
Wait!  What if Red Hat had a low-end linux distro that it sold directly to 
customers?  They could call it "Red Hat Linux 10" or something.  That would 
rock!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/19882">post</a> and <a href="http://use.perl.org/comments.pl?sid=21379">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[SQLite - the wettening]]></title>
    <link href="https://www.taskboy.com/2004-07-13-SQLite_-_the_wettening.html"/>
    <published>2004-07-13T00:00:00Z</published>
    <updated>2004-07-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-07-13-SQLite_-_the_wettening.html</id>
    <content type="html"><![CDATA[<p><p>I started mucking around with DBD::SQLite.  SQLite, as you probablyknow, is an embeddable public domain SQL system with ACID support.  Matt S 
has created a Perl interface to it that includes the SQLite source.  Installing
DBD::SQLite from cpan is easy: 
<code>sudo perl -MCPAN -e 'install DBD::SQLite'</code>
<p>SQLite version 2 is a mostly typeless database system.  That is, most 
everything appears to be stored as ASCII.  This makes your CREATE TABLE 
statements just for documentation.  However, those that like MySQL's 
autoincrement column type are not foresaken.  In SQLite, this feature is 
accomplished with "INTEGER PRIMARY KEY." <br>
<p>Good.
<p>Here's my little perl script to generate two tables, populate them with 
data and then create a DBI-like shell to interact with it.  This is a good
introduction to SQLite, I think. <br>
</p>

<h1 id="usrbinperl-cperl">!/usr/bin/perl â  -<em>-cperl-</em>-</h1>

<h1 id="tryoutsqlite">Try out SQLite</h1>

<p>use strict;
use DBI;
use Term::ReadLine;</p>

<p>my %sql = (create_companies => q[ CREATE TABLE companies (
                                  id INTEGER PRIMARY KEY,
                                  name char(64),
                                  revenue int
                                );
                              ],
           create_contacts => q[CREATE TABLE contacts (
                                  id INTEGER PRIMARY KEY,
                                  co_id int,
                                  first char(64),
                                  last char(64),
                                  title char(64)
                                );
                               ],
          );
my $companies = [ {name => 'ABC. Corp', revenue=> '5'},
                  {name => 'DEF. Corp', revenue=> '10'},
                  {name => 'Arbusto', revenue=> '100'},
                ];</p>

<p>my $contacts  = [ 
                 {co_id => 1, first => 'Sam', last =>'Houston', title => 'CEO'},
                 {co_id => 1, first => 'Tam', last =>'Bouston', title => 'VP'},
                 {co_id => 1, first => 'Lam', last =>'Rouston', title => 'COO'},
                 {co_id => 2, first => 'Tim', last =>'Dallas', title => 'CEO'},
                 {co_id => 2, first => 'Rim', last =>'Malice', title => 'VP'},
                 {co_id => 3, first => 'George', last =>'Bush', title => 'CEO'},
                ];</p>

<p>my $dbh = DBI->connect("dbi:SQLite:dbname=try.db") || die "connect: $DBI::errstr\n";</p>

<p>print "Creating companies\n";
$dbh->do("drop table companies");
$dbh->do($sql{"create_companies"});</p>

<p>my $sql = q[INSERT INTO companies (name, revenue) VALUES (?,?)];
my $sth = $dbh->prepare($sql);
for my $r (@{$companies}) {
  unless ($sth->execute($r->{name},$r->{revenue})) {
    warn("ERROR - '$sql' : ", $sth->errstr, "\n");
  }
}</p>

<p>$dbh->do("drop table contacts");
$dbh->do($sql{"create_contacts"});
$sql = q[INSERT INTO contacts (co_id,first,last,title) VALUES (?,?,?,?)];
$sth = $dbh->prepare($sql);
for my $r (@{$contacts}) {
  unless ($sth->execute($r->{co_id},$r->{first},$r->{last},$r->{title})) {
    warn("ERROR - '$sql' : ", $sth->errstr, "\n");
  }
}</p>

<p>print "Going to SQL shell mode\n";</p>

<p>my $T = Term::ReadLine->new("SQLite Shell");
my $Out = $T->OUT || *STDOUT;</p>

<p>while (defined($_ = $T->readline("SQL> "))) {
  chomp($_);</p>

<p>last if /^\s*qu?i?t?$/i;</p>

<p>$T->addhistory($_) if /\S/;</p>

<p>my $sth = $dbh->prepare($<em>);
  if ($sth->execute) {
    $sth->dump</em>results(35,"\n"," | ",);
  } else {
    print "WARN - '$_': ", $sth->errstr, "\n";
  }</p>

<p>}</p>

<p>$dbh->disconnect;</p>

<p> </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/19831">post</a> and <a href="http://use.perl.org/comments.pl?sid=21322">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[clinging to power]]></title>
    <link href="https://www.taskboy.com/2004-07-12-clinging_to_power.html"/>
    <published>2004-07-12T00:00:00Z</published>
    <updated>2004-07-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-07-12-clinging_to_power.html</id>
    <content type="html"><![CDATA[<p><p>The <a href="http://news.bbc.co.uk/2/hi/americas/3885663.stm">BBC reports</a>:<blockquote>
&laquo;The Bush administration is reported to be investigating the possibility of postponing the presidential election in the event of a terror attack.
<p>US counter-terrorism officials are examining what steps would be needed to permit a delay, Newsweek reports.
<p>Homeland Security chief Tom Ridge last week warned al-Qaeda was planning to attack the US to disrupt the poll but conceded he had no precise information.
<p>A senior Democrat in Congress has said talk of postponement is "excessive".
<p>â¦
<p>Abraham Lincoln was urged by some aides to suspend the election of 1864 - during the US Civil War - but despite the expectation that he would lose, he refused.
<p>"The election is a necessity," Lincoln said. "We cannot have a free government without elections; and if the rebellion could force us to forgo, or postpone, a national election, it might fairly claim to have already conquered us." &raquo;
</blockquote>
<p>Remember: stay scared and keep purchasing.  With luck, we can defeat 
Eurasia and Eastasia any day now.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/19801">post</a> and <a href="http://use.perl.org/comments.pl?sid=21289">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[farscape DVD collection complete]]></title>
    <link href="https://www.taskboy.com/2004-07-12-farscape_DVD_collection_complete.html"/>
    <published>2004-07-12T00:00:00Z</published>
    <updated>2004-07-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-07-12-farscape_DVD_collection_complete.html</id>
    <content type="html"><![CDATA[<p>end of transmission. :-)<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/19806">post</a> and <a href="http://use.perl.org/comments.pl?sid=21294">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[music - the good, the bad and the free]]></title>
    <link href="https://www.taskboy.com/2004-07-11-music_-_the_good,_the_bad_and_the_free.html"/>
    <published>2004-07-11T00:00:00Z</published>
    <updated>2004-07-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-07-11-music_-_the_good,_the_bad_and_the_free.html</id>
    <content type="html"><![CDATA[<p><p>The good: Chuck Coleman's debut album <a href="http://www.amazon.com/exec/obidos/ASIN/B00011REVQ">People, 
Place, Flings</a> is that rare gem of pop music: smart, hip and pathologically 
catchy.  If you 
enjoy the nice Ben Folds boy, you should find Coleman quite the fancy 
rocker.  Through the Amazon link, you get two free songs. 
<p>From the why-the-hell-did-I-wait-so-long department, I recently 
bought Fiona Apple's <a href="http://www.amazon.com/exec/obidos/ASIN/B000002BE9">Tidal</a>.  Recorded when she was 19, her 
prenaturally smoky voice is sublime, but augers nothing good for her 
personally.  See Josephine Baker and Billy Holiday.  If you don't have this 
album, you ought to. 
<p>Finally, <a href="http://www.amazon.com/exec/obidos/ASIN/B00004THKR">Lean on Me-Best of Bill Withers is desirable less
for the title track and much more for the insanely funky "Use Me," which will
be familiar to all true fans of Grace Jones (via Nightclubbing).
<p>The bad: I'm playing around with my DAW and trying to get a feel for
what kinds of guitar sounds and songs I can record in my apartment.  I'm 
trying to turn down the suck knob on my compositions and arrangements but 
this is no easy task.  In despire, I've turned to the wah-wah pedal. <br>
Results to follow.
<p>In a message of interest perhaps only to Gnat Torkington, I chanced upon
a fretless banjo while in a Cambridge music store.  I'm uncertain of the 
advantages of a fretless banjo, but mayhap they are manifold and glorious.
<p>The free: I live in an aparment building whose garbage area is 
just outside the laundry facilities.  This placement sometimes yields plunder.
While doing laundry yesterday, I notice someone had thrown out a lightweight
gig bag for an acoustic guitar.  Since I'm too cheap to buy one, I snagged it.
Lo and behold: there was a Takamine G-230 inside in near mint condition!  The 
G-230 has a shape know paradoxically enough as the mini-jumbo.  If 
you've watched enough of those fancy Nashville types, you'll be familiar with 
an outsize acoustic guitar that's got a fat figure-8 shape.  That's a jumbo. 
The mini-jumbo is the same shape but the size of dreadnought.  The only thing
missing from the guitar was strings.  I happen to have a motley assortment
of such things, so I pieced together a set of mediums (although the A string 
is an Ernie Ball electric).  It plays fine!  The Takamine won't be mistake 
for a Martin, but of all my free guitars it's my favorite.
<p>Later on in the evening, I discover not one, but two sets of D'addario 
strings and a string winder in the gig bag.  Wow. 
<p>For those keeping track, I've found both a working iMac (333Mhz) and a 
working guitar in my building's trash.  Do I have a secret admirer trying to 
woo me?</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/19788">post</a> and <a href="http://use.perl.org/comments.pl?sid=21274">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]    Another  Minor  Victory    A  blow  against  freedom of.]]></title>
    <link href="https://www.taskboy.com/2004-07-09-[MarkovBlogger]____Another__Minor__Victory____A__blow__againstfreedom_of.html"/>
    <published>2004-07-09T00:00:00Z</published>
    <updated>2004-07-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-07-09-[MarkovBlogger]____Another__Minor__Victory____A__blow__againstfreedom_of.html</id>
    <content type="html"><![CDATA[<p>return($self-&gt;set($field,  @_));<br>    }<br>   return  if  (SomeFunction()  ==  1);  }  #  end  of  the 
books  and  having  your  fridge  sucking  in  nice  and 
smoothly  I'm  scared  to  fiddle  around  with,  and 
other  various  common  platforms,  and  uses  the  new 
one,  but  I  recall  Pudge's  wonderful  Mac::Perl  talk. 
So,  these  two  together  -  the  gentleman  concerning 
the  Sourceforge  game;  he  said  was  only  going  to 
try  to  get  a  torrent  of  information  about  each  of 
these  simple  steps:  <ul> <li>Rally your
troopsâfind out who else wants to hack with you on
this project. <li>Tell us by mailing
oscon03hackathon AT oreilly.com saying what your
project is and who will be working on it. (This is so we
know how big a room to haveâjust turning up on the day
without warning us would be bad) <li>Hack! </ul> 
The  Hackathon  runs  from  the  contrib  directory.  <p> 
The  data  elements  are  basically  fibs  about  things 
that  make  a  temp  file  and  just  as  much  as  usual 
â  in  print,  and  worth  reading),  and  found  that 
the  difference  would  only  be.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/19770">post</a> and <a href="http://use.perl.org/comments.pl?sid=21251">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Zorknapp on PseudoCertainty]]></title>
    <link href="https://www.taskboy.com/2004-07-04-Zorknapp_on_PseudoCertainty.html"/>
    <published>2004-07-04T00:00:00Z</published>
    <updated>2004-07-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-07-04-Zorknapp_on_PseudoCertainty.html</id>
    <content type="html"><![CDATA[Attention Zorknapp fans: Zorknapp <a href="http://pseudocertainty.com/shows/pseudocertainty_0504.mp3">makes<br>
an appearance on the<br>
internet-only radio show<br>
<a href="http://pseudocertainty.com/">PseudoCertainy</a>.  How about that?<br>
<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/19676">post</a> and <a href="http://use.perl.org/comments.pl?sid=21140">comments</a>.]</p><br>


]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Knoppix - 640MB of cool]]></title>
    <link href="https://www.taskboy.com/2004-07-02-Knoppix_-_640MB_of_cool.html"/>
    <published>2004-07-02T00:00:00Z</published>
    <updated>2004-07-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-07-02-Knoppix_-_640MB_of_cool.html</id>
    <content type="html"><![CDATA[<p><p>On my travels through techland, I had an opportunity to try out the Linux-on-a-CD distribution <a href="http://www.knoppix/">Knoppix</a>.  I 
was impressed with the l'il wonder.  The AMD 1.3G test machine booted up with 
all the hardware detected and working.  It booted into a tricked out version 
of KDE that had such hidden googies as Remote Desktop support (RDP and VNC) 
as well as "Video Conferencing" software, whatever that may have been.  For 
my purposes, I didn't particulary need a desktop, but I was very encouraged by
the direction Linux GUIs are heading. 
<p>What I need to be able to boot a machine with the CDROM, but with some 
addition customization.  The solution was to write a shell script to configure
the NIC, reset the account passwords and start network processes like SSH. 
But since I only had a volital storage system, I needed a place for the script.
<p>Then I stole the installation trick Ximian had used.  I placed my shell
scripted on a web server.  Whenever the machine reboots, someone (me) has to 
log into the box, change to root, and type:</p>

<blockquote>
<code># wget http://url/to/script | sh</code>
</blockquote>

<p><p>And then the box is ready to go!  While there are advantages to modify the 
CDROM to include this file, there are other advantages to using only stock CD 
images from knoppix.  The fun never ends!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/19648">post</a> and <a href="http://use.perl.org/comments.pl?sid=21109">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Dishwasher    sys-proctable.]]></title>
    <link href="https://www.taskboy.com/2004-07-02-[MarkovBlogger]__Dishwasher____sys-proctable.html"/>
    <published>2004-07-02T00:00:00Z</published>
    <updated>2004-07-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-07-02-[MarkovBlogger]__Dishwasher____sys-proctable.html</id>
    <content type="html"><![CDATA[<p>on  the  laptop  on  the  code  â¦<p>  That's  the  first kook  Amazon  review.   Someone  named  Kevin  in  the 
wildâ¦  XML  solves  all  of  the  contracts  we  were 
reading  books  and  become  a  medium  sized  database 
generated  3550  lines  of  Perl  6  BOF  tonight  was  a 
bit  of  reality:  <blockquote> That said, I don't claim
that C++ is perfect. There is a lot of really horrible C++
code out there, because many programmers haven't learned to
use C++ well. I encourage people to look at my home pages,
papers and books for ideas about how to improve their code.
My impression is that most C++ code could have been much
cleaner, maintainable and efficient than it is had the
designers and programmers understood up-to-date C++
features and techniques. Standard C++ really does make
possible programming techniques that were infeasible ten
years ago. Unfortunately, many are constrained or feel
constrained to use C++ as it stood ten years ago, or they
simply use it as a better C. <p> LJ: How do you feel now,
knowing that millions of people work using the tool you
created? <p> BS: I'm very pleased, but as I said, I wish
they'd do themselves a favor by using it better.
</blockquote>  Perhaps  humility  is  the  assertion 
that  the  URL  are  Eastern  time,  dag  nabbit.)  <p>It's
 true  that  we,  using  our  mighty  organs  of  reason, 
can  choose  to  live  near.</p>  <p>The  only  really 
used  a  lot  more  than  twice  20,000.  That  doesn't 
clear  it  up  to  a  local  fix  being  evaluated  for 
testing  or  used  for  introspection.  For  example,  it's
 surprisingly  easy  to  see  what's  involved  in  playing
 shared  files  is  totally  screwed,  or  something  by 
<a href="http://www.allmusic.com/cg/amg.dll?p=amg&amp;sql=Bhs1gtq6
zpu4o">Audioslave</a>  for  the  pointer,  Ask!)  and  will
 last  the  longest  time  I  write  this  through  DFW.pm:
 <a href="http://www.utdallas.edu/dept/eecs/lecturerseries2002.
html">Fred Brooks, author of The Mythical Man Month, will
be lecturing at the University of Texas at Dallas on
December 2.</a></p>  <p>If  you  know  enough  to  give  it
 a  different  shaped  set  of  instructions  which  were 
not  exactly  perfect,  you  are  encouraged  to  mirror 
it  please  email  me  and  promptly  worried  that  you 
can  create  a  bot  and  I've.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/19642">post</a> and <a href="http://use.perl.org/comments.pl?sid=21102">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[U.S. Bill to restrict powerful CPUs]]></title>
    <link href="https://www.taskboy.com/2004-07-01-U.html"/>
    <published>2004-07-01T00:00:00Z</published>
    <updated>2004-07-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-07-01-U.html</id>
    <content type="html"><![CDATA[<p><a href="http://news.com.com/Defense+bill+could+stifle+computer+trade/2100-7341_3-5253873.html?tag=nefd.lede">News.com.com reports:</a><blockquote>
&laquo;The dramatic tightening of export regulations is included in the National Defense Authorization Act, an annual military funding bill that has already passed the U.S. House of Representatives. Though the proposed rules are only a tiny portion of the 630-page bill, they could have a devastating impact on the computer industry.
<p>"It would bring exports to a grinding halt," said Dan Hoydish, director of trade, public policy and government affairs for Unisys and chairman of the Computer Coalition for Responsible Exports, a trade group that counts many major technology companies as members. "We wouldn't be asking for 20 export licenses in a year, we would be asking for 20,000 in a day." 
&raquo;
</blockquote>
<p>Remember: if you outlaw P4's, then only terrorists will be able to play 
Duke Nuke'em 3-D.  So far, no word on banning airplanes or box cutters.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/19630">post</a> and <a href="http://use.perl.org/comments.pl?sid=21088">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[boohbah zone]]></title>
    <link href="https://www.taskboy.com/2004-06-29-boohbah_zone.html"/>
    <published>2004-06-29T00:00:00Z</published>
    <updated>2004-06-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-06-29-boohbah_zone.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://www.boohbah.com/zone.html">Frell me dead</a>.  This damn flash app is compelling in its adherence to Dadaism.
<p>Brainâ¦meltingâ¦ </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/19564">post</a> and <a href="http://use.perl.org/comments.pl?sid=21017">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]    Perl  and.]]></title>
    <link href="https://www.taskboy.com/2004-06-25-[MarkovBlogger]____Perl__and.html"/>
    <published>2004-06-25T00:00:00Z</published>
    <updated>2004-06-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-06-25-[MarkovBlogger]____Perl__and.html</id>
    <content type="html"><![CDATA[<p>This  is  much  more  than  one  web  site  at  some distance.  It's  not  a  bioweapons  researcher,  that's 
all  I  did  get  done  if  I  do  now  is  the  largest 
Half  Price  Booksâ¦)  I'm  sitting  here  drinking  beer </p>

<h1 id="of6todrownoutmynexthighestcard.i">5  (of  6)  to  drown  out  my  next  highest  card.  I</h1>

<p>have  trouble  knowing  on  which  I'm  working  on 
Pod::Simple::HTML  and  I'm  glad  about  that.  I  was 
walking  past  the  clusters  of  people  using  the  new 
Pod  parser  system.  Almost  done.  <p>"All  tests 
successful.  Files=17,  Tests=551".  Well,  now  I  look 
at  the  max?  There  are  serious  consequences  to  this 
one.  Apple  has  spent  ludicrous  amounts  of  Thai 
na-rog  (red  chili  paste,  etc),  which  smells  a  bit 
of  a  bleeding  eardrum  after  I  have  figured  out  how
 to  write  these  kinds  of  dashes,  that  just  about 
any  bonehead  mistakes  I  used  to  and  complain </p>

<blockquote> To guarantee the permanence of public data,
it is necessary that the usability and maintenance of the
software does not depend on the goodwill of the suppliers,
or on the monopoly conditions imposed by them. For this
reason the State needs systems the development of which can
be guaranteed due to the availability of the source code.
</blockquote>

<p>See  the  <a href="http://www.gnu.org.pe/resmseng.html">full text</a> 
for  more  than  what  it  was  online  â¦<p>  Yes,  <a href="http://www.masonbook.com/">masonbook.com</a>  is 
awesome.  I  miss  out  on  c.l.p.m  that  the 
Bundle::CPAN  collection  will  require  bloodshed!  </p> 
Writing  network  daemon's  is  hard.  Don't  let  your 
brain  just  won't  produce  realistic  results.   
Suggestions?    *  DD-214  -  Certificate  of  Release 
or  Discharge  from  Active  Duty.  For  fans  of  the 
Last  Angry  Liberal  shtick  isn't  quite  as  nice  as 
you'd  expect.</p>   sub UnEscape {  $str = $_[0]; 
$pos = index($str, '%');  while ($pos != -1) {  $code =
sprintf("%c", hex(substr($str, $pos + 1, 2)));  $str =
substr($str, 0, $pos).$code.substr($str, $pos + 3,
length($str));  $pos = index($str, '%');  }  $str; }
  I've  got  a  Sunblade  1000!  However,  after 
the  death  of  CSV,  and  more.<p>  Dear  Log,  <p><a href="http://www.nytimes.com/2003/03/09/books/review/009ANT
RIT.html">This review of Down and Out in the Magic
Kingdom</a>  wins  my  personal  email  at  work. 
Gvim  is  a  slight  change  to  a  list  of  referers. 
<p>  See  my  mail  through.  I  turned  on  Sendmail  on 
my  limited  experience,  it's  also  such  a  DWIMMY  way.
 It's  generally  a  good  joke  and  were  all  there  but
 it  basically  contains  all  the  document-indexing  data
 is  missing,  so  test  prints,  it's  clear  that  your 
RSS  readers  too?  <p>Generalization:  maybe  most 
situations  for  sending  internal  emails  to  check. 
  As  far  as  I  used  my  Apple  pro  keyboard 
makes  a  lot  of  today  and  give  chase.  <p>  Me:  "I'm
 locked  out  of  principle.  An.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/19489">post</a> and <a href="http://use.perl.org/comments.pl?sid=20935">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]    Side  Tracked    brian  d.]]></title>
    <link href="https://www.taskboy.com/2004-06-18-[MarkovBlogger]____Side__Tracked____brian__d.html"/>
    <published>2004-06-18T00:00:00Z</published>
    <updated>2004-06-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-06-18-[MarkovBlogger]____Side__Tracked____brian__d.html</id>
    <content type="html"><![CDATA[<p><a href="http://www.dashes.com/anil/">Anil</a>'s delicious  turn  of  phrase  goes),  as  opposed  to  just 
let  me  gooooooo,  for  I  don't  understand  them  just 
didn't  want  to  set  up  local  SSH2  tunnels  for  POP3 
to  travel  to  Ukraine  this  year  go  well.  Author 
(Paul  Seamons)  already  contacted.  I  tried  to  plaster
 on  my  (brief)  Windows  experience,  it  appears  that 
very  few  rough  edges  (choosing  a  parser,  building 
long  pipelinesâ¦)  there  are  no  docs  yet,  but  all 
can  see  the  implementation.    I  really  hope  my 
boss  if  we  had  an  iBook  12.1",  OS  X  10.2, 
anyway).  Hopefully  it  will  be  fun.<p>  Current 
computing  interest  is  writing  a  dozen  men  of 
capacity  working  and  worked  its  way  to  create  an 
XS  based  modules  (Compress::Zlib  for  example)  but  in
 how  we  want.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/19339">post</a> and <a href="http://use.perl.org/comments.pl?sid=20772">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[sex me up, Esther]]></title>
    <link href="https://www.taskboy.com/2004-06-18-sex_me_up,_Esther.html"/>
    <published>2004-06-18T00:00:00Z</published>
    <updated>2004-06-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-06-18-sex_me_up,_Esther.html</id>
    <content type="html"><![CDATA[<p><p>From the <a href="http://www.freep.com/entertainment/namesandfaces/names18_20040618.htm">Detroit Free Press</a>:<blockquote>
&laquo;Oy-vey! Madonna has chosen to rename herself Esther, at least when she's 
among fellow fellowers of the Jewish discipline of Kabbalah.
<p>Hyping her current still-Detroit-less tour on ABC's "20/20," at 10 p.m. tonight, she said: "I was named after my mother. My mother died when she was very young, of cancer, and . . . I wanted to attach myself to another name. This is in no way a negation of who my mother is . . . I wanted to attach myself to the energy of a different name."&raquo;
</blockquote></p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/19346">post</a> and <a href="http://use.perl.org/comments.pl?sid=20779">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  SSSCA    OSCon  –.]]></title>
    <link href="https://www.taskboy.com/2004-06-11-[MarkovBlogger]__SSSCA	__OSCon__--.html"/>
    <published>2004-06-11T00:00:00Z</published>
    <updated>2004-06-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-06-11-[MarkovBlogger]__SSSCA	__OSCon__--.html</id>
    <content type="html"><![CDATA[<p>contact  information,  couldn't  or  wouldn't  make  their life  away  25  cents   at  a  conference  and  say,  it's 
mutual,  with  the  cute  female  students  when  class  is
 examined.  Of  course  you  need  to  include  that  the 
early  1990s;  everyone  with  commit  access  to 
broadband  service  because  of  the  different, 
independantly  developed  specifications.  CSS,  XSLT  and 
<em>then</em>  Apache's  Fop)  are  one  of  your  front 
page  of  singles,  the  names  are  fine.  No  Google. 
  It  wasn't  exactly  a  great  idea,  and  that 
building  via  fink  was  best.  I  don't  see  a  regular 
basis  (either  5.6.1  or  5.8.0  these  days).  <p>  Then 
there  was  this  sinister  "they"  and  what  kinds  of 
operations  are  quite  frankly  boring.  Any  PHB  who 
would  effectively  be  my  test  paths.  Ack.  So  part 
of  projects  at  Microsoft  that  never  happened. 
Sifting  through  the  back  of  Damian  showed  him 
either  blurry  or  disgruntled.  Sorry  sensation </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/19190">post</a> and <a href="http://use.perl.org/comments.pl?sid=20606">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[didn't you get the memo?]]></title>
    <link href="https://www.taskboy.com/2004-06-11-didn&apos;t_you_get_the_memo_.html"/>
    <published>2004-06-11T00:00:00Z</published>
    <updated>2004-06-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-06-11-didn&apos;t_you_get_the_memo_.html</id>
    <content type="html"><![CDATA[<p><p>Yeah, I'll just go ahead and resend that <a href="http://msnbc.msn.com/id/5166951/site/newsweek/site/newsweek/">memo</a> to you, m'ok?  Great.  <p>Oh, why don't you go ahead and come into the office Saturday and Sunday too. Great.
<p>Thanks!  </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/19197">post</a> and <a href="http://use.perl.org/comments.pl?sid=20613">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[a man of action]]></title>
    <link href="https://www.taskboy.com/2004-06-06-a_man_of_action.html"/>
    <published>2004-06-06T00:00:00Z</published>
    <updated>2004-06-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-06-06-a_man_of_action.html</id>
    <content type="html"><![CDATA[<p><p>No, this isn't a Reagan tribute.  It's about a <a href="http://www.thestar.com/NASApp/cs/ContentServer?pagename=thestar/Layout/Article_Type1&amp;c=Article&amp;cid=1086473412054&amp;call_pageid=968332188854&amp;col=968350060724">Colorado maniac</a>. 
<blockquote>
&laquo;
On Friday Heemeyer plowed the bulldozer into the town and within two hours had knocked down or damaged nine buildings before the machine ground to a halt in the wreckage of a warehouse. He then apparently shot himself, said Grand County Sheriff Rod Johnson. No one else was injured.
<p>City officials said Heemeyer was angry over a zoning dispute and fines for city code violations at his muffler shop in the town, about 80 kilometres west of Denver.
<p>â¦
<p>Investigators believe he spent several months planning and building the concrete box that no police bullet could penetrate. He had installed television cameras connected to three monitors so he could see where he was going.
<p>After blasting the box three times police discovered hinges that allowed them to pull out an air conditioning unit and get inside. Police initially believed Heemeyer had welded himself shut.&raquo;
</blockquote>
<p>I wonder if his corpse will be charged with terrorism?</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/19109">post</a> and <a href="http://use.perl.org/comments.pl?sid=20512">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[MoneyMoneyMoney]]></title>
    <link href="https://www.taskboy.com/2004-06-05-MoneyMoneyMoney.html"/>
    <published>2004-06-05T00:00:00Z</published>
    <updated>2004-06-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-06-05-MoneyMoneyMoney.html</id>
    <content type="html"><![CDATA[<p><p>Say, just how big of a warchest do the presidential candidates (presumative and otherwise) have? 
<p><a href="http://www.opensecrets.org/presidential/index.asp?sort=R">Oh, I see.</a>
But wait; how much money has each candidate spent? 
<p><a href="http://www.opensecrets.org/presidential/index.asp?sort=E">Oh, my!</a>
<p>Run, Lyndon! Run!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/19099">post</a> and <a href="http://use.perl.org/comments.pl?sid=20499">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Another cucumber moment]]></title>
    <link href="https://www.taskboy.com/2004-06-01-Another_cucumber_moment.html"/>
    <published>2004-06-01T00:00:00Z</published>
    <updated>2004-06-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-06-01-Another_cucumber_moment.html</id>
    <content type="html"><![CDATA[<p><p>Last night I read the real, adult (not XXX, but grown-up) version of Washington Irving's Rip Van Winkle.  I had a revelation about this 
vintage story that falls into the category of "pentetrating glimpse into the 
obvious."  That's not my term, but a former school teacher's, Thomas Cooke.  My term is 
"a cucumber moment," named after my own discovery, very late in life, that 
pickles are pickled cucumbers. 
<p>So here's my latest insight into the universe: Rip Van Winkle was Dutch.
For some unknown reason the character's last name, "Van Winkle," never tripped 
any alarms in my head.  As long-time readers of this blog know, I keep a close 
eye on the pernicious influence of Dutch.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/19026">post</a> and <a href="http://use.perl.org/comments.pl?sid=20411">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[beyond the pictures]]></title>
    <link href="https://www.taskboy.com/2004-06-01-beyond_the_pictures.html"/>
    <published>2004-06-01T00:00:00Z</published>
    <updated>2004-06-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-06-01-beyond_the_pictures.html</id>
    <content type="html"><![CDATA[<p>From author <a href="http://peterdavid.malibulist.com/archives/001348.html">Peter David's blog</a>:<blockquote>
<p>&laquo;"You draw the pictures?" the mother asked, impressed.
<p>Now I was stuck. "Actually, I'm a writer," I said.
<p>Her face fell, her enthusiasm considerably diminished. "Oh. Well, thenâ what do you do in the comics?" She could not conceive that there was any function to a comic beyond the pictures on the page.
<p>The son jumped in to explain matters. "The artist does the story, and then the writer fills in the words."
<p>My smile pasted on my face, I bobbed my head slightly, pulled out my revolver and shot them both.&raquo;
</blockquote>
<p>You see?  Most technical people don't get any respect.  It's not just 
programmers and admins.
<p>Next week: overworked geologist has trouble getting rocks off.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/19040">post</a> and <a href="http://use.perl.org/comments.pl?sid=20427">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  What  are  you.]]></title>
    <link href="https://www.taskboy.com/2004-05-28-[MarkovBlogger]__What__are__you.html"/>
    <published>2004-05-28T00:00:00Z</published>
    <updated>2004-05-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-05-28-[MarkovBlogger]__What__are__you.html</id>
    <content type="html"><![CDATA[<p>at  Euston  she  complained  of  a  context  object passed between  each  of  the  bullying  is  driven  by 
these  machines.  People  fail  more  often  in  Encode  â
 bombed:  static int foo; static int foo =
4;  Matthias  suggested  changing  the  names.  I 
have  no  reason  not  to  touch  without  first  donning 
gloves.  We  were  talking  about 
IBM-seller-of-the-pee-cee,  but 
Microsoft-maker-of-monopolies:  &laquo;our  enemies' 
confusion  will  be  a  <a href="http://www.ouchytheclown.com/">clown dom.</a>  <p>Hm,
 but  I  am  no  longer  have  time  to  do  something 
cool  we  did  a  build  today  on  rt.cpan.org.  Mostly 
for  old  Zorro  movies  on  tv  anymore.  Between  the 
adverts  and  the  large  burn  scar  I  have  lots  of 
folks  felt  that  Star  Control  2  was  better. 
  No,  and  any  servers/IPs  I  name  will  be  like 
inside  that  shelter  now.  Has  the  water  will  eat  up
 any  questions  just  email  me.  I'll  have  to 
reinstall  it  and  immediately  fell  asleep,  purring. 
And  drooling  on  my  case  any  windows  related  work 
came  up.    2)  Oracle  is  too  The 
Informers.  Chicago  is  too  high,  I  couldn't 
help  because  it's  well  worth  the  risk?<p>  Then  I 
realised  that  it  was  an  anti-modernist?  <br>I  keep 
looking  for  an  OS  should  work.)  Finally,  there's 
the  work  of  preparing  for  my  book  who  the  hell  it
 may  preclude  me  from  ssh'ing  into  it  later.  It's 
not  meant  to  describe  the  aim  of  this  bug  says  he
 lost  his  objectivity,  (B)  supported  propoganda 
efforts  of  a  religious  bookstore  we  wanted  to 
return  to  good  use,  so  here  it  is.  It's  even 
easier  to  read  the  directory  structure  per  se.  It's
 just  that,  though,  provides  a  top-notch  IT  staff 
to  turn  on  your  bed  late  saturday  night  because 
you  have  not  been  the  five  weekdays,  we  went  home 
with  peppers.  <p>I  hope  I  can  actually  deploy  this 
now  (if  we  include  sleep  time).    I  don't  know 
how  to  compress  a  data  bug  that  prevented  him 
using  phones  or  computers  expires  early  next  week, 
when  the  FreeBSD  install  locked  up  solid.  This  was 
the  one  I  respect  that,  but  AxPoint  has  a  chart 
that  lists  each  character  is  a  lot  of  stuff  for.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/18978">post</a> and <a href="http://use.perl.org/comments.pl?sid=20354">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Coulter, O'Reilly, Limbaugh replaced by automation]]></title>
    <link href="https://www.taskboy.com/2004-05-25-Coulter,_O_Reilly,_Limbaugh_replaced_by_automation.html"/>
    <published>2004-05-25T00:00:00Z</published>
    <updated>2004-05-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-05-25-Coulter,_O_Reilly,_Limbaugh_replaced_by_automation.html</id>
    <content type="html"><![CDATA[<p><a href="http://www.rrobot.com/weblog/">R. Robot</a>:  sticking it to the decadent elitist media at the speed of e-business. <br>
<p>Somewhere, MarkovBlogger gently weeps.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/18921">post</a> and <a href="http://use.perl.org/comments.pl?sid=20289">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[a prepared statement]]></title>
    <link href="https://www.taskboy.com/2004-05-23-a_prepared_statement.html"/>
    <published>2004-05-23T00:00:00Z</published>
    <updated>2004-05-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-05-23-a_prepared_statement.html</id>
    <content type="html"><![CDATA[<p><p>This journal entry brought to you by U.S. Secretary of Defense Don "You can't know the unknowable" Rumsfeld.
<blockquote>
<p>Rumsfeld: Good day, members of the assembled press corp and blog 
readers.  I've just got a few words to say regarding the individual known 
as 'jjohn.'
<p>Now there's been a lot of loose talk about jjohn.  What he has or hasn't 
been up to. Where he is or isn't â these sorts of questions.  Would I like 
to know the answers to these questions?  Maybe.  Do I?  No.  Should I? 
Probably.  But you can't know the unknowable.  There are things that we 
know we know and things that we know we don't know. <br>
These questions are some of the ones we know we don't know.
<p>Remember, this is a dangerous world.  It's not an easy time for anyone 
but when we do the best we can and we pull all this information together, 
and we then say well that's basically what we see as the situation, 
that is really only the known knowns and the known unknowns.
<p>However, we know we know a few things.
<p>Was jjohn upset to learn of B5 actor 
<a href="http://groups.google.com/groups?selm=20040522182556.22491.00000701%40mb-m27.aol.com&amp;rnum=1">Richard Biggs's 
passing</a>?  Probably.  That's the sort of thing he pays attention to. <br>
<p>Did jjohn just finish reading 
<a href="http://www.amazon.com/exec/obidos/ASIN/0471152978">Pluto and 
Charon</a>, a fascinating tale of the discovery and exploration of the most 
distant planet in the solar system?  I guess.  You tell me. 
<p>Is jjohn working on some kind of internet-only radio talk show?  We just 
don't know.  If I knew, I'd tell you.  But I don't, so I can't. 
<p>But, we do know the obvious.  We know jjohn just bought a new pillow-top 
queen-sized bed to replace the mutt set of twin mattresses that our intel 
sources say he had for more than ten years.  We know that he continues to 
find enough work.  We believe he's been listening to 
<a href="http://www.ofrankenfactor.com/">Al Franken on Air America</a>. <br>
There's no question about that.  It's a slam dunk.
<p>It is not a pretty picture. It's a difficult situation.  He's using 
so-called asymmetrical techniques.  I'm anxious to capture jjohn when we can 
find him. I'm anxious to see that countries who are harboring him stop doing 
that.
<p>Well, I see that I'm getting the wrap-up signal, so let me close with some 
good news.  It's been 55-57 years since nuclear weapons have been fired in 
anger and that is an impressive accomplishment on the part of humanity I would 
say. <br>
<p>Let's see the cockroaches beat that.
</blockquote>
<p>Any more <a href="http://codeback.com/Rumsfeld01.aspx?EditQuestion=What%27s+it+like+being+a+dick%3F&amp;SubmitQuestion=Ask&amp;CheckboxReferences=on">questions?</a></p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/18905">post</a> and <a href="http://use.perl.org/comments.pl?sid=20270">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Programming  Lua    net-traceroute.]]></title>
    <link href="https://www.taskboy.com/2004-05-21-[MarkovBlogger]__Programming__Lua____net-traceroute.html"/>
    <published>2004-05-21T00:00:00Z</published>
    <updated>2004-05-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-05-21-[MarkovBlogger]__Programming__Lua____net-traceroute.html</id>
    <content type="html"><![CDATA[<p>doom.  If  man  were  intended  to  fly,  he'd  have  been several  sequels.  Dear  Log,   <p>XML::Parser  hasn't  had
 a  cron  job  to  supplement  our  income  or  else  they 
turn  into  a  cash  register  of  sorts.    The  only 
thing  I  wanted,  a  large  mass  of  books.  Not  a  huge
 hole  in  the  language!  So  the  other  two  lucrative 
spots.  Some  names  have  come  across  is  that  if  I 
do  them,  at  http://promet
heus.frii.com/~gnat/yapc/.  I  also  felt  knackered 
at  the  fuse  is  fine.  If  you  like  antique  arcade 
games,  Perl,  and  I'd  finished  my  homework  out. 
That's  going  to  take  my  whole  approach.    First, 
the  high-wage  "developed  world"  does  not  come  up </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/18864">post</a> and <a href="http://use.perl.org/comments.pl?sid=20225">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]    strict::ModuleName.]]></title>
    <link href="https://www.taskboy.com/2004-05-14-[MarkovBlogger]____strict__ModuleName.html"/>
    <published>2004-05-14T00:00:00Z</published>
    <updated>2004-05-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-05-14-[MarkovBlogger]____strict__ModuleName.html</id>
    <content type="html"><![CDATA[<p>of  random  numbers,  ip  address,  date  and  time,  a template  for  HTML::Template, though.  (Nothing  against 
belg4mit,  because  I  didn't  do  much  about  my 
book-consumption  record  of  my  code,  but  don't  want 
Knowscape  to  be  griping  about  the  water  bill  (due 
to  some  pot-smoking  daycare  degree  mill  where  they 
tell  me  how  my  weekend  wards:  Movies!  They're 
amazingly  quiet  during  movies.  Barely  say  a  book, 
but  there  was  a  bit  about  TT.  Recently  I'm  used 
to  be  in.  Like  normal  people  I'm  not  cut  out  for 
a  law  like  the  5th  year  I'd  do  a  more  practical 
book,  look  at  the  office  naked  but  for  the  rest 
of  the  Gnumeric  development  team,  who  did  the 
chicken  cross  the  pond.  We  get  enough  junk  mail 
that  arrived  on  Friday.  Boy  am  I  not  append 
"CAVEAT:  semio-stylistic  irradiated  code"  to  all  of 
those  people  that  write  CMSs  using  AxKit  as  PDF 
files.  Adobe  Acrobat  allows  for  links  like  cross 
references?  Recently  I  went  with  the  AC  adapter's 
light  (which  tells  if  there  were  some  sophisticated 
project  that  cannot  possibly  be  so.  Either  I'm 
missing  1/3rd  of  the  South  and  being  accepting  of 
the  Firsth  Hundred  settlers  to  colonize  Mars.  Not 
only  is  wireless  configuration  seamless,  but  it 
doesn't  address  how  to  get  a  report  today  that  was
 both  enthused  and  skeptical,  as  I  finished 
reviewing  the  last  time  you  could  have  been  good 
(enough),  haven't  I?  Dear  Log,  <p>I  get  a  license 
to  them.  They  go  in  ULTRA  GEEK.  I'll  take  a  shot 
while  I  am  sitting  here  in  Gloucester  this  week. 
That's  after  I  had  this: 
<p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(my  $j  =  0;.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/18750">post</a> and <a href="http://use.perl.org/comments.pl?sid=20095">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[walk away]]></title>
    <link href="https://www.taskboy.com/2004-05-11-walk_away.html"/>
    <published>2004-05-11T00:00:00Z</published>
    <updated>2004-05-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-05-11-walk_away.html</id>
    <content type="html"><![CDATA[<p><p>Boy-band Hanson, with their beautiful girl hair, sure put a jealous bee in my bonnet back in the day.  It really chaffed my aging buttocks that 
these pre-pubescent twurps, with their deeply introspective treatise "Mmmbop," 
were video darlings.  A pox on their peroxide-enhanced locks!
<p>This song, walk away</a>,
is my stinging, yet oblique rebuke of their kiddie-pop.  It's got weedy 
guitar tracks, perfect for summertime car stereo fun!  Rock out like it's 
1978.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/18692">post</a> and <a href="http://use.perl.org/comments.pl?sid=20030">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Win32 fork() example with reaping]]></title>
    <link href="https://www.taskboy.com/2004-05-07-Win32_fork()_example_with_reaping.html"/>
    <published>2004-05-07T00:00:00Z</published>
    <updated>2004-05-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-05-07-Win32_fork()_example_with_reaping.html</id>
    <content type="html"><![CDATA[
<img src="/img/camel.gif" class="insert">


<p><p>Here's the deal: you're on win32, you need to fork() and you're using Perl.  Since version 5.6, win32 Perl has had fork() emulation.  That's
good.  It's emulation (accomplished at the interpreter level with threading), 
so standard Unix tricks like using a signal handler to reap children and 
control the number of child process don't work.  That's bad.
<p>Here then is my Win32 Perl recipe for the week: Limiting forked child 
"processes" under Win32 Perl (versions 5.6 and higher).</p>

<p class="code">
use strict;
use POSIX ":sys_wait_h";
use constant MAX_KIDS => 4;

my (%children, $quit) = ((), 0);
print "[$$] Entering main loop\n";
while (!$quit) {
  reap(\%children);

  if ((keys %children) &lt;= MAX_KIDS) {
    print "[$$] Forking child $_\n";
    if (my $pid = fork()) {
      $children{$pid} = 1;
    } else {
      do_child();
      exit;
    }
  } else {
    $quit = 1;
  }

  sleep(1);
}

# reap existing kids
while (keys %children) {
  reap(\%children);
  sleep(1);
}

print "All children reaped\n";

#âââ
# sub 
#âââ
sub reap {
  my ($kids) = @_;
  for (keys %{$kids}) {
    print "[$$]child '$_' reapable?\n";
    next if waitpid($_,WNOHANG()) != -1;
    print "[$$]child '$_' reaped\n";
    delete $kids->{$_};
  }
}

sub do_child {
  sleep(1) for 0..10;
  print "[$$] done\n";
}
</p>

<p><p>Note that you can do other work in the main reaping loop.  </p>

<p><p>The main loop is really the service state loop for a Win32 service.  Also note that reaping the child "processes" isn't strictly necessary.  Not only are the children not real processes (they are interpreter threads), but also no zombies can be created if the parent process exits without calling <code>wait()</code>.  All child "processes" will be terminated with the parent.  So you've got that going for you. <br>
<p>See David Roth's web site</a>, 
books or articles for more excellent details on the devilish art of creating 
Win32 services with Perl.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/18668">post</a> and <a href="http://use.perl.org/comments.pl?sid=19997">comments</a>.  Minor cleanup on 11/30/2007.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Sensible  view  on  shutting  down  spammers  .]]></title>
    <link href="https://www.taskboy.com/2004-05-07-[MarkovBlogger]__Sensible__view__on__shutting__down__spammers__.html"/>
    <published>2004-05-07T00:00:00Z</published>
    <updated>2004-05-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-05-07-[MarkovBlogger]__Sensible__view__on__shutting__down__spammers__.html</id>
    <content type="html"><![CDATA[<p>and  ;  for  begin,  end  and end-of-line.  I  agree    with  <a href="http://www.triv.org/journal/archives/2002/12/31.html">
  <p>Chris</a>  on  his  Palm  Pilot.  By  setting  up 
  conference  photos  here  on  use  Perl).  Brian  said  he 
  wanted  to  go  to  an  excellent  summer  (or  late 
  winter)  diversion.  Next  up  is  annoying.  So,  I 
  upgraded  my  NetFlix  membership  so  I  can  calm  his 
  fears  and  get  into  this  with  the  reiser  journaling 
  filesystem  to  see  whether  it's  something  you  like, 
  I'm  just  back  from  Edinburgh  I  finally  got  my 
  latest  release  of  Frontier::RPC  that's  out  on 
  your  back,  keep  an  eye  to  being  a  little  step  to 
  produce  realistic-looking,  not-rendered-in-years  fake 
  plants.  Me,  I'm  still  eligible  for  being  sexist  in 
  a  tux,  a  la  <a href="http://www.reelclassics.com/Actresses/Marlene/images4
  /md_tuxandcig_waistup.jpg">Marlene Dietrich</a>,  would 
  melt  lead.  <p>I'm  all  for  your  city  <a href="http://www.estey.com/weather/cities/">this index</a> 
  should  make  the  smallest  person  in  my  heart  go 
  pitter-pat.    The  smallest  I  could  sort  of  EOF 
  issue  with  Inline)  and  (even  better)  he  knew  John 
  Backus,  etc.  <a href="http://ei.cs.vt.edu/~history/VonNeumann.html">This
  bio page</a>  has  lots  of  other  moments  but  now  that
   I've  turned  off  the  new  book  in  there.  Found  it, 
  did  it.    The  way  I  chose  AxPoint  this 
  time,  too:  Stormy  Peters,  who  lives  in  it's  own 
  strange  conventions,  its  own  idioms,  its  own  terms. 
  I  have  the  other  side.    Hopefully  working 
  through  my  daily  commute.  However,  my  ultimate  goal 
  is  to  say,  "mmm,  relational  AND  non-relational 
  conditions,  yes,  quite,  I'll  take  a  legal  copy  of 
  your  favorite  "W1nd0ze  Sucks!"  joke  here).  However, 
  Larry's  introduction  made  me  laugh:  <blockquote> 
  And IDEs are generally targeted at low-end
  developersâpeople who are not experts at writing code. And
  if you look for tools that are oriented toward (those)
  people, you basically find nothing. The No. 1 tool (in that
  area) is Emacs, and I was kind of the guy responsible for
  the original Emacs, 23 years ago. One of the things I find
  frightening is it's still around, and in many ways it
  hasn't really changed. Is that the best you can do for a
  (low-end) developer?  </blockquote>  <p>Although  this 
  will  probably  follow  shortly.  </p>  <p>    How  is 
  this  story  caught  me  by  a  company  we  need  to  push
   the  button  by  two  pixels  higher  than  that  is 
  useful  for  biowarfare,  but  doesn't  really  seem  like 
  nice  people,  low  cost  of  her  bowels  a  little  short
   on  wits  as  I  am.  In  other  words,  I  threw 
  together  a  few  requests  on  some  bugs.</p>

<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p></blockquote></p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/18662">post</a> and <a href="http://use.perl.org/comments.pl?sid=19991">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Going  to  be  Knighted.]]></title>
    <link href="https://www.taskboy.com/2004-04-30-[MarkovBlogger]__Going	to__be	Knighted.html"/>
    <published>2004-04-30T00:00:00Z</published>
    <updated>2004-04-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-04-30-[MarkovBlogger]__Going	to__be	Knighted.html</id>
    <content type="html"><![CDATA[<p>angered  him  that  I  "upgrade"  (for  free!)  to  IE. They  also  pointed  out  the  dual  diplexer, and  then 
applied  them  to  an  application,  at  least  <em>I</em> 
thought  it  would  run  sort  of  steams  while  it's 
saut&eacute;eing,  or  does  it  with  Ae.  In  the 
category  of  stuff  so  she  didn't  look  into 
Configuration  Management.  There  are  a  small  patch  to
 old  versions  of  <a href="http://search.cpan.org/dist/Tie-Hash-Regex/">Tie::Has
h::Regex</a>,  <a href="http://search.cpan.org/dist/Tie-Hash-FixedKeys/">Tie:
:Hash::FixedKeys</a>  and  <a href="http://search.cpan.org/dist/Tie-Hash-Cannabinol/">Tie
::Hash::Cannabinol</a>  are  on  the  public  good  is 
perhaps  an  anagram  of  something  with  group  A.  I 
have  friends  coming  to  one  of  those  fonts.)  <p>At 
least  none  are  negative,  and  there's  bugger  all  I 
can  do:  XML  ->  OpenOffice  ->  Word  converter.  Then 
I  had  or  not.  It'll  just  be  stored  in  a  war 
involving  the  king  of  all  modules  immediately  when 
certain  applications  would  run  smoothly.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/18559">post</a> and <a href="http://use.perl.org/comments.pl?sid=19871">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[pyewackkit: 1990 - 2004]]></title>
    <link href="https://www.taskboy.com/2004-04-29-pyewackkit__1990_-_2004.html"/>
    <published>2004-04-29T00:00:00Z</published>
    <updated>2004-04-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-04-29-pyewackkit__1990_-_2004.html</id>
    <content type="html"><![CDATA[<p><p>After a period of declining health, I had my cat <a href="http://taskboy.com/pictures/pye.html">Pyewackkit</a> put down 
today.  This is as tough a decision as any pet owner will face during his 
stewardship.  He was as good and loving a cat as I could have asked for. 
<p>I'll miss you, fat bastard.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/18547">post</a> and <a href="http://use.perl.org/comments.pl?sid=19857">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[1602]]></title>
    <link href="https://www.taskboy.com/2004-04-23-1602.html"/>
    <published>2004-04-23T00:00:00Z</published>
    <updated>2004-04-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-04-23-1602.html</id>
    <content type="html"><![CDATA[<p><p>Just picked up the last issue of Neil Gaiman's <em>1602</em> comicmini-series.  It was quite nice.  It's clear that Gaiman enjoyed some of the 
weirder Marvel titles from the sixties and seventies.  Alternate universe 
stories are so easy to botch.  Marvel's own <em>What If?</em> title is proof
enough of this.  Also see DC's <em>Crisis on Infinite Earths</em>.  Gaiman 
managed to landed this series solidly, but not masterfully.  The way he 
paced the story, the way it all ramped up to the last issue, was 
masterful.  It's been a while since I so eagerly awaited a final issue of any
serialized story (Miller's <em>Dark Knight 2</em> was a bit disappointing). 
<p>1602: not your average Marvel wankathon, but a warm tribute from an old 
fan.  Good fun.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/18451">post</a> and <a href="http://use.perl.org/comments.pl?sid=19750">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Fair  Trade    Writing  writing  writing  .]]></title>
    <link href="https://www.taskboy.com/2004-04-23-[MarkovBlogger]__Fair__Trade	Writing__writing__writing__.html"/>
    <published>2004-04-23T00:00:00Z</published>
    <updated>2004-04-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-04-23-[MarkovBlogger]__Fair__Trade	Writing__writing__writing__.html</id>
    <content type="html"><![CDATA[<p>in  the  middle  of  nowhere  Wondering  how  to extort    money,  I  wouldn't  supply  any  defaults  for 
you,  the  facts  stand  in  the  dist  of  a  meeting 
worth  going  after.    We  were  discussing  PerlDOM 
(he  made  <a href="http://use.perl.org/journal.pl?op=display&amp;id=1357&amp;uid
=1882">a very cool piece about it</a>  in  his  usual 
baseless  assumptions  is  an  archaeological  survey  of 
800  developers  by  a  powerpoint,  plugged  in  I  get 
time  inbetween  laundry  and  packing.</p>  <p>Had  an 
extra  $2200  I  get  accepted?"  I'll  be  paid  on 
commission  so  I  should  have  been  using  IM  within 
our  team  and  the  bridge  module  (and  if  you
 decide  to  use  base  DateTime)  is  down  my  XP 
machine.  And,  it  seems  to  be  right.  It  looks 
good!<p>  Being  an  editor  for  a  system  by  default. 
2.  The  dock  needs  to  be  made  soon.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/18448">post</a> and <a href="http://use.perl.org/comments.pl?sid=19746">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[the scariest book you'll ever read]]></title>
    <link href="https://www.taskboy.com/2004-04-18-the_scariest_book_you&apos;ll_ever_read.html"/>
    <published>2004-04-18T00:00:00Z</published>
    <updated>2004-04-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-04-18-the_scariest_book_you&apos;ll_ever_read.html</id>
    <content type="html"><![CDATA[<p><p>I just finished Richard Clarke's <em>Against All Enemies</em>, which is an insider's look at America's reaction to Islamic terrorism since
the Reagan years.  Many will recall that Richard Clarke was a top manager 
in the Counterterrorism Security Group in both the Clinton and W. 
administration, as well as being a perennial foreign policy bureaucrat since
the Reagan years.
<p>The book opens like a Tom Clancy novel: the White House has been evacuated, 
the Vice President has been removed to the East Wing bunker and a small group
of weathered staffers attempt to manage the worst terrorist attack perpetrated
on American soil.  Clarke is recalling his day at the office on September 11, 
2001.  All too often, I had to remind myself that this was a non-fiction
book; it seemed like a novelization of a Jerry Bruckheimer film.
<p>The author and the book have been much assailed by the supporters of W., 
which is a loss for the country.  Other books attack Bush in a clearly 
partisan way (I'm looking at you, Al Franken and Michael Moore).  This book
is different.  Clarke is no bleeding heart liberal.  He's most certainly not 
a pacifist.  Clarke is a reasonable intelligent man that's spent a good deal 
of his life studying and reacting to terrorism.  He was fighting the war on 
terror before it became the War on Terror.  In short, he's a very credible 
source of information.  He outlines many, many failures of the 
bureaucracy and the American intelligence community over the past decade.
Many of those still go unaddressed.  At the end of the book, Clarke presents 
his cogent argument of why the Bush administration's anemic invasion of 
Afghanistan and its baffling invasion of Iraq has critically damaged the 
effort to destroy al Queda.
<p>Supporters and detractors of W. must read this book.  Bush is campaigning 
on his record fighting Terror.  Clarke suggests giving W. a failing grade.
And so do I.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/18377">post</a> and <a href="http://use.perl.org/comments.pl?sid=19661">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Linksys BEFSX41 appears to hang connections]]></title>
    <link href="https://www.taskboy.com/2004-04-16-Linksys_BEFSX41_appears_to_hang_connections.html"/>
    <published>2004-04-16T00:00:00Z</published>
    <updated>2004-04-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-04-16-Linksys_BEFSX41_appears_to_hang_connections.html</id>
    <content type="html"><![CDATA[<p>I've been very busy.  Some of what's kept me so are incidents like the following.  I release this information,
orginally part of an email to one of my clients, 
so that others may share my pain.</p>

<p><blockquote>
&laquo;<p>All,
<p>This message is about the Linksys router that has been setup
for demos.  You may want to stop reading now.
<p>It appears that Windows boxes cannot connect to the services 
hosted on the linux box behind the firewall.  After sending a 
few KB of data, the connection hangs. <br>
<p>I confirmed this behavior on my Win2K and WinXP boxes at home 
as well as on an offsite win2K3 box. Ssh, scp and http <br>
all hung after more than 2-3 KB of data was exchanged.
<p>Now for the kicker.
<p>This consistently repeatable behavior on Windows does NOT 
appear on clients running on MacOS X nor Linux. Several MTU 
settings were tried on Linksys (1500 - 700).  I don't even
want to think this is related to Windows translating "\x012" 
bytes into "\012\015" or the Linksys doing the same.  That 
would be insane.  Then again, NASA lost a Mars probe due to 
poor metric/imperial measure conversion. <br>
<p>A quick check of the Linksys site informs us that the 
current version of the BEFSX41 firmware is 1.45.3.  Through
some miracle, our router has version 1.45.6.  Did it escape
from the lab prematurely?
<p>Without a firmware update readily available, it's time to
rethink topology of the demo system.
<p>Here's what I propose:
<p></p>

<ol>
  <li> We stick the linux box on directly into the switch.
  <li> We stick another NIC in the linux box.
  <li> We stick a cable into the new NIC and into the Linksys router
     or another simple switch or hub that may be lying around. 
</ol>

<p><p>All incoming traffic will go to the linux box.  It can forward
whatever traffic it needs to the the windows box.  This setup 
should be straight forward and no less secure that what we have 
now. 
<p>Here's a diagram:

{ internet } -> [ s ] -> ( linux ) -> [ l ] -> ( WinXP )
                  w                     i
                  i                     n
                  t                     k
                  c                     s
                  h                     y
                                        s

&raquo;
</blockquote></p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/18352">post</a> and <a href="http://use.perl.org/comments.pl?sid=19631">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Outlook  now!    If  you  ever  tried  renting.]]></title>
    <link href="https://www.taskboy.com/2004-04-16-[MarkovBlogger]__Outlook__now___If__you__ever__triedrenting.html"/>
    <published>2004-04-16T00:00:00Z</published>
    <updated>2004-04-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-04-16-[MarkovBlogger]__Outlook__now___If__you__ever__triedrenting.html</id>
    <content type="html"><![CDATA[<p>The  heavy  gray  sky  shook  with  the  DJ.  We've  got a  whole  other  rant)    from  someone  who  had  gotten 
sick  of  most  of  the  teaser  commercials.)  Part  of 
it  yet  or  anything).    Also,  during  scifi's 
showing  of  <em>The  Fifth  Element</em>  (a  movie  I  like 
lazy  days.<p>  Saturday  was  Fathers'  Day.  My  Dad  got
 bluegrass  CDs  and  ripping  the  MP3s  on  and  off  for
 no  less  beautiful  and  very  well  in  this  day  as  a
 scam.  This  presentation  did  very  well  without  much 
success.</p>  <p>Is 
&lt;http://example.com//foo&gt;  really 
equivalent  to  &lt;http://example.com/foo&gt;? 
Should 
URI->new->canonical('http://example.com/////foo') 
compress  the  slashes?</p>  Dear  Log,  <p>I  have  been 
specified  jointly.  </p>  <p>    I've  spent  most  of 
soda  bottles  suddenly  fell  off  the  walls,  smoke  and
 no  complaints  about  ID3v2  tags  and  lots  of  heat 
but  no  transparency  since  PDFLib  doesn't  support  a 
random  Perl  tip  that  you  can  hardcopy  your 
cellphone's  pictures  onto  sticker-paper  <p>It  was, 
what,  four  decades  ago  that  the  people  in  to  this 
resolution  and  to  Vee  for  looking  after  the 
holidays.  Sold  <em>Nutshell</em>  and  <em>Cookbook</em>  together  for
 Mac::Glue  to  work  on  Boxing  Day.  I  got  a  new 
Amazon.com  editorial  review  of  a  headphone  ,or  a 
mic.  That's  fine  for  searching.  My  friends  are: 
ziggy,  jdavidb,  davorg,  acme,  Simon  Winstow,  Stas 
and  others.  We  declared  it  the  globally  distributed 
and  synchonized  archive  of  perlybits?  Is  it  1.1? 
1.01?  1.0001?  There  is  indeed  alive  and  well  worth 
the  time  I  saw  <a href="http://www.amazon.com/exec/obidos/tg/detail/-/0375420
819/102-0048585-9823321?vi=glance">a neat book</a>  at 
Barnes  &amp;  Noble  :-)  would  come  up  with.  For  a  long
 while.  I  was  reading  the  posts,  I'm  thinking  is: </p>

<ul> <li>input <li> data <li> add template burners to
pipeline <li>call $burner->process() on each one <li>output
results </ul>

<p>I'm  not  well.  Bedtime,  I  thinks. 
<p>There  was  a  real  problem  because  cron  is  to 
show  it  in  one  until  OS  X).  GetURL($url) 
will  open.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/18356">post</a> and <a href="http://use.perl.org/comments.pl?sid=19635">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Bizarre Weird Al Yankovic news]]></title>
    <link href="https://www.taskboy.com/2004-04-13-Bizarre_Weird_Al_Yankovic_news.html"/>
    <published>2004-04-13T00:00:00Z</published>
    <updated>2004-04-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-04-13-Bizarre_Weird_Al_Yankovic_news.html</id>
    <content type="html"><![CDATA[<p><a href="http://www.star-ecentral.com/music/sleeve/notes.asp?file=archives/sleeve/2004/4/13/13WeirdAlsPa&amp;date=4/13/2004">The Star</a> reports:<blockquote>
&laquo;The parents of master satirist performer Weird AL Yankovic have been found dead at home, apparently victims of carbon monoxide poisoning.<br>
<br>
â¦<br>
<br>
Yankovic's new album Poodle Hat was recently released.&raquo;
</blockquote></p>

<p><p>Holy crap!  Weird Al has a new album?</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/18311">post</a> and <a href="http://use.perl.org/comments.pl?sid=19584">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Best. Hostname. Ever.]]></title>
    <link href="https://www.taskboy.com/2004-04-12-Best.html"/>
    <published>2004-04-12T00:00:00Z</published>
    <updated>2004-04-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-04-12-Best.html</id>
    <content type="html"><![CDATA[<p><a href="http://fuckyou.drunkmenworkhere.org/">Here</a>.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/18290">post</a> and <a href="http://use.perl.org/comments.pl?sid=19560">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[HellBoy rocked]]></title>
    <link href="https://www.taskboy.com/2004-04-10-HellBoy_rocked.html"/>
    <published>2004-04-10T00:00:00Z</published>
    <updated>2004-04-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-04-10-HellBoy_rocked.html</id>
    <content type="html"><![CDATA[<p>Just saw the movie <em>HellBoy</em> and it rocked.  Hard.  Way, way better than <em>League of Extraordinary Gentlemen</em>.  </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/18259">post</a> and <a href="http://use.perl.org/comments.pl?sid=19524">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Biohackathon  Day  2  .]]></title>
    <link href="https://www.taskboy.com/2004-04-09-[MarkovBlogger]__Biohackathon__Day__2__.html"/>
    <published>2004-04-09T00:00:00Z</published>
    <updated>2004-04-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-04-09-[MarkovBlogger]__Biohackathon__Day__2__.html</id>
    <content type="html"><![CDATA[<p>fix  those  crashing-type  bugs  this  week,  and  a bunch  of  archived  sound  information  (leftovers,  I 
believe,  from  a  random  unknown  person  asking  for 
contributions  to  society  were.  First,  prior  to  our 
seats  and  watched  a  classic,  War  Games,  and  that 
only  consists  of  two  things:  racc  ain't  very  good 
thing.  Back  to  search.cpan.orgâ¦  Man  it's  hot  here 
today.  I  was  on  the  persistence  module  but  someone 
apparently  forgot  to  sign  them.  Also  note  that 
today  is  Martin  Luther  King  Jr  day.  I'm  ready  to 
touch  it  up,  said  several  derogatory  things  about 
RedHat  I  liked  TPM.  No,  I'm  not  eating  has  helped 
morph  RedHat  from  a  that  road.  Certainly  something 
worth  using,  a  0.9  level  of  interactivity  was 
unanticipated.  But  now,  I  don't  have  any  thoughts 
on  the  New  York  is  interesting.  It's  stunningly  OO.
 It'd  be  cool  to  hear  about.  I  got  up  :).  I'm 
leaving  the  PowerMac,  but  it's  lined,  so  either  the
 Patriots  don't  have  it  magically  start  working,  so 
why  not?    I  did  not  go  away.  <p>  One  of  the 
film.  The  second  was  that  whatever  the  term 
&laquo;pirate&raquo;  is  to  nab  a  husband.  If 
this  sounds  like  he  made  progress  to  me,  but  I 
just  found  out  about  two  weeks,  it's  because  either
 you  put  one  piece  of  news:  <blockquote>
Serbian Prime Minister Assassinated  <p> Serbian
Prime Minister Zoran Djindjic - a key leader of the revolt
that toppled former President Slobodan Milosevic in October
2000 - was assassinated Wednesday by gunmen who ambushed
him outside the government complex, police sources said.
<p> Djindjic, 50, died in a Belgrade hospital after having
been shot in the abdomen and back, the sources told The
Associated Press. </blockquote>  I  don't  want  to 
say  thanks.  <p>  I'm  not  giving  a  speech  as  well 
with  the  Inline  module.  What  an  incredible  blue. 
Wow.  And  there  were  no  special  effects  (remember 
when  Keanu  slowed  time  to  do  these  numbers  come 
from?  Last  names  are  neither  accurate  or  specific, 
but  I  have  to  replace  bits  and  pieces  and  buried 
cabling  just  go  away  and  put  NT.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/18244">post</a> and <a href="http://use.perl.org/comments.pl?sid=19507">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  I  am  Older    Eudora  .]]></title>
    <link href="https://www.taskboy.com/2004-04-02-[MarkovBlogger]__I__amOlder_Eudora__.html"/>
    <published>2004-04-02T00:00:00Z</published>
    <updated>2004-04-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-04-02-[MarkovBlogger]__I__amOlder_Eudora__.html</id>
    <content type="html"><![CDATA[<p>MSIE  is  no  exception.<p>  I've  followed  Vimes through  several  books  now,  and  since  then  and  grown
 a  goatee.)  Idea  for  module:  don't  give  an  iBook 
for  3-4  years,  a  behavior  quite  common  among  Mac 
users.  <p>  Thanks  again,  btw  :)  )   Quick</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/18165">post</a> and <a href="http://use.perl.org/comments.pl?sid=19406">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Not this time, slashdot]]></title>
    <link href="https://www.taskboy.com/2004-04-01-Not_this_time,_slashdot.html"/>
    <published>2004-04-01T00:00:00Z</published>
    <updated>2004-04-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-04-01-Not_this_time,_slashdot.html</id>
    <content type="html"><![CDATA[<p>I'm on to your April Fool's stories.  You won't catch me asleep at the wheel.  No, Sir.  I'm as vigilant as Heimdall.  Wait, are these stories fake?</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/18154">post</a> and <a href="http://use.perl.org/comments.pl?sid=19392">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  why  wifi  is  great    Who  are  so  angry  .]]></title>
    <link href="https://www.taskboy.com/2004-03-26-[MarkovBlogger]__why__wifi__isgreat_Who__are__so__angry__.html"/>
    <published>2004-03-26T00:00:00Z</published>
    <updated>2004-03-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-03-26-[MarkovBlogger]__why__wifi__isgreat_Who__are__so__angry__.html</id>
    <content type="html"><![CDATA[<p>something  that's  proving  very  difficult  indeed.  So I  took  the  hard  drive  now    â  but  he's  not  in 
perl/lib/unicode/  at  all.  I'm  working  on  a  couple
 of  days  before  DBI,  we  all  know  that  someone  left
 here  once.  At  night.  In  winter.  When  he  came  to, 
he  found  a  bug  in  the  docs  on  SMIL  and  RealText, 
but  will  do  now  is  called  a  "<a href="http://www.shopallenbeys.com/hand-guides-writing-tool
s-hi-marks-3d-marker-p-ej-785311-43.html">3D marker</a>". 
Since  I  got  started  a  weblog  on  use.perl.org,  they 
will  not  retreat  unless  huge  amounts  of  money, 
claiming  that  POST-only  is  a  very  small  number  of 
the  bombs  being  dropped  in  Afghanistan?  Can  I  have 
were  built  around  a  couple  of  months  ago  it  was 
all  spotted  within  seconds  of  REAL  audio  nothing, 
namely  samplepoints  of  straight  0's  â  and  partly 
because  I  knew  what  I  should  be  presenting  my 
talks.  I've  got  Apache::MP3  localizations  for 
Russian,  Ukrainian,  Polish,  Czech,  and  Hungarian.  His
 name  was  "Klapka".  If  you  are.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/18066">post</a> and <a href="http://use.perl.org/comments.pl?sid=19292">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[outsoresing: what would wal-mart do?]]></title>
    <link href="https://www.taskboy.com/2004-03-26-outsoresing__what_would_wal-mart_do_.html"/>
    <published>2004-03-26T00:00:00Z</published>
    <updated>2004-03-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-03-26-outsoresing__what_would_wal-mart_do_.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://www.pbs.org/cringely/pulpit/pulpit20040325.html">Cringley sez:</a><blockquote>
&laquo;And those sources were clear: there is no way Wal-Mart would entrust its IT services to an outside contractor or even to several outside contractors. Doing so would threaten the entire organization. If costs are out of control and services are inconsistent, that's something to be dealt with internally, not by hoping some outside organization is smarter or more disciplined. "We have suppliers, sure, but the ultimate responsibility always remains here in Bentonville," said my Ozark IT guy. "We centralize it, we control it, we know what we are buying and what we are doing with it. Anything less is just too much of a risk."&raquo;
</blockquote></p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/18078">post</a> and <a href="http://use.perl.org/comments.pl?sid=19303">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[penguin batting practice]]></title>
    <link href="https://www.taskboy.com/2004-03-26-penguin_batting_practice.html"/>
    <published>2004-03-26T00:00:00Z</published>
    <updated>2004-03-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-03-26-penguin_batting_practice.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://home.tele2.fr/kcv/pinguin.swf">Cowboy up!</a> (Flash required)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/18072">post</a> and <a href="http://use.perl.org/comments.pl?sid=19298">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Techno Kikoman]]></title>
    <link href="https://www.taskboy.com/2004-03-23-Techno_Kikoman.html"/>
    <published>2004-03-23T00:00:00Z</published>
    <updated>2004-03-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-03-23-Techno_Kikoman.html</id>
    <content type="html"><![CDATA[<p>Fans of the Kikoman animation are sure to enjoy this bit  of <a href="http://512kb.net/flash5.htm">hi-octane flash animation</a>.  As for the short's meaning, 
you are invited to write a comment below with your best guest as to was it is. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/18023">post</a> and <a href="http://use.perl.org/comments.pl?sid=19243">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[ArtRage is awesome!]]></title>
    <link href="https://www.taskboy.com/2004-03-15-ArtRage_is_awesome_.html"/>
    <published>2004-03-15T00:00:00Z</published>
    <updated>2004-03-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-03-15-ArtRage_is_awesome_.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://blogs.it/0100198/">Marc Canter</a> is, I gather, a famous person.  So says Orkut.  He mentioned 
<a href="http://www.ambientdesign.com/artrage.html">ArtRage</a>, a free 
graphics program for windows. Holy crap is it good!  It's the best drawing 
program I've seen for a computer EVER.  It's got the best, cleanest UI for 
any program I've seen and it makes the pretty pictures prettier!  Gets it! 
Gets it now!
<p>Update: Ok, I'd like two things more: zoom and an eye drop to pick colors
from an existing graphic.  Other than that, it's awesome.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17905">post</a> and <a href="http://use.perl.org/comments.pl?sid=19105">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Hackathons  vs.  retreats    Toys    The  quick  brown, fox.]]></title>
    <link href="https://www.taskboy.com/2004-03-12-[MarkovBlogger]__Hackathons__vs.html"/>
    <published>2004-03-12T00:00:00Z</published>
    <updated>2004-03-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-03-12-[MarkovBlogger]__Hackathons__vs.html</id>
    <content type="html"><![CDATA[<p>a  great  job  with  more  similarities.  Please excuse    Chris  from  having  a  hysterectomy  is  "cold", 
though.<p>  Dear  Log,  <p><blockquote>&laquo;Miami police
also invited reporters to "embed" with them in armoured
vehicles and helicopters. As in Iraq, most reporters
embraced their role as pseudo soldiers with zeal, suiting
up in combat helmets and flak jackets. <p>The resulting
media coverage was the familiar wartime combination of
dramatic images and non-information. We know, thanks to an
"embed" from the Miami Herald, that Timoney was working so
hard hunting down troublemakers that by 3:30pm on Thursday
"he had eaten only a banana and a cookie since 6am".
<p>Local TV stations didn't cover the protests so much as
hover over them. Their helicopters showed images of
confrontations, but instead of hearing the voices on the
streets - voices pleading with police to stop shooting and
clearly following orders to disperse - we heard only from
police officials and perky news anchors commiserating with
the boys on the front line. <p>Meanwhile, independent
journalists who dared to do their jobs and film the police
violence up close were actively targeted. "She's not with
us," one officer told another as they grabbed Ana Nogueira,
a correspondent with <a href="http://www.democracynow.org/">Pacifica Radio's
Democracy Now!</a> who was covering a peaceful protest
outside the Miami-Dade county jail. When the police
established that Nogueira was "not with us" (ie neither an
embedded reporter nor undercover cop) she was hauled away
and charged. <p>[â¦] Already, Jim Wilkinson, director of
strategic communications at US Central Command in Doha,
Qatar (the operation that gave the world the Jessica Lynch
rescue), has moved to New York to head up media operations
for the Republican National Convention. "We're looking at
embedding reporters," he told the New York Observer of his
plans to use some of the Iraq tricks during the convention.
"We're looking at new and interesting camera
angles."&raquo; <p>â<a href="http://www.guardian.co.uk/print/0,3858,4805314-110878
,00.html">"America's enemy within"</a></blockquote>  It 
seems  they  are  very  interesting.  I'm  a  little 
syntax  there,  so  if  you're  thinking  about  your 
personality".  Repeated  many  times.  </p>  <p>    Looks 
like  wxPerl  is  now  accepting  nominations  for  the 
project  was  a  more  respectful  environment  since  it's
 a  great  guy<br>  joe  johnston  is  confident  that 
I'll  be  editing  Mac  books  soon)  and  I've  read 
about.  <a href="http://caseywest.com/journal/1078010108.0.jpg">[Photo
]</a><p>Posted  from  <a href="http://caseywest.com">caseywest.com</a>,  comment  <a href="http://caseywest.com/journal/archives/000233.html">he
re</a>.</p>  Dear  Log,  <p><a href="http://community.webshots.com/photo/58488378/71873921
Cbqkud">Chaka</a>  <a href="http://urbandesignz.safeshopper.com/199/cat199.htm?20
4">Chaka</a>  <a href="http://www.graffiti.org/fr8/trains/c/chaka/chaka01.jp
g">Chaka</a>  Damian's diary  reminded  me  of 
Soundgarden,  I  didn't  have  to  do  the 
imaging.).  At  that  conference  I  seem  to 
auto-background  itself.  Maybe  there's  more  than  just 
Web  Services  with  SOAP",  and  got  them  uploaded  to 
CPAN  to  see  so  many  people  have  been  here  for 
almost  a  year  :-)<p>  Have  you  ever  get  a  report 
that  go  like  this:</p>   sub do_something {  my
$dbh = init_dbh();  # do something with dbh 
$dbh->disconnect;  if ($something) {  # do something else
with dbh  } }   <p>The  issue  was  mostly  over 
when  we  copy  them  from  FSSpec  to  paths,  make  sure 
it  was  placed  in  the  high-90s  could.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17870">post</a> and <a href="http://use.perl.org/comments.pl?sid=19062">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Paul Winfield dead at 62]]></title>
    <link href="https://www.taskboy.com/2004-03-09-Paul_Winfield_dead_at_62.html"/>
    <published>2004-03-09T00:00:00Z</published>
    <updated>2004-03-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-03-09-Paul_Winfield_dead_at_62.html</id>
    <content type="html"><![CDATA[<p><p>Paul Winfield, actor of many sci-fi roles, <a href="http://www.sfgate.com/cgi-bin/article.cgi?file=/c/a/2004/03/09/MNGG35H2IQ1.DTL">has died</a>.</p>

<blockquote>
&laquo;He also played a human Starfleet captain in the 1982 film "Star Trek II: The Wrath of Khan," and later an alien captain on a 1991 episode of TV's "Star Trek: The Next Generation."&raquo;
</blockquote>

<p><p>UPDATE (revised via <a href="/~petdance/">petdance</a>): 
Apparently writer/actor 
<a href="http://www.newsday.com/news/local/newyork/nyc-gray0310,0,3955196.story?coll=ny-nynews-headlines">Spalding Gray</a> was fished out of the East River 
Sunday after disappearing several weeks ago.  The cause of death remains 
unknown.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17834">post</a> and <a href="http://use.perl.org/comments.pl?sid=19019">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  An  Advert    Saturn  .]]></title>
    <link href="https://www.taskboy.com/2004-03-05-[MarkovBlogger]__An__Advert____Saturn__.html"/>
    <published>2004-03-05T00:00:00Z</published>
    <updated>2004-03-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-03-05-[MarkovBlogger]__An__Advert____Saturn__.html</id>
    <content type="html"><![CDATA[<p>Hacks,  Godel,  Escher,  Bach,  and  a larger    class  that  Locale::Maketext  needs.  <p>I  typed 
"linux  virtual  hosting"  into  Google  (German)  and 
finding  the  bits  that  resonated  with  meâI've  just 
come  off  pretty  cleanly.  <p>  Fine,  but  I  only 
waited  till  the  24th.  More  later.</p>  <p>Posted  from
 <a href="http://caseywest.com">caseywest.com</a>,  comment
 <a href="http://caseywest.com/journal/archives/000103.html">he
re</a>.  <p>    We'll  see  if  it  will  replace  your 
ampersands  with  semicolons.</p>  <p>    Mostly,  what 
I've  seen  it  done  right  :)</p>  <p>Much  kudos  (and 
beer)  to  <a href="/~acme/">acme</a>  for  the  "F_SETFL" 
flag  is  not  an  unexpected  optimization.  However,  the
 way  it  was  that  I  might  have  been  breathing  too 
deeply  because  my  sister  decided  she  wanted  a 
weblog  on  use.perl.org,  because  it  had  fallen,  and 
she  is  working  on  is  for  all  the  details  - 
remember  that  it  takes  $$$  and  I'm  not  exactly 
friendly  with  the  latter,  I  can't  be  blamed  for 
her  word    And  it  costs  a  lot  of  people 
contradicting  the  FAQs,  and  3.  I  wanted  to  hire 
one  of  essence,  both  being  on  the  bottom  of  the 
killed  terrorists  to  Libya,  where  they  sell  will 
make  your  spidey-senses  tingle!  I  tried  several  just
 in  time.  See  some  of  those  terms)  is  to  "Learning
 Perl".  Following  up  on  that  piece  of  legacy  code 
at  all?  Was  there  any  more.  However  I've  decided 
that  I  am  off  again.  Posted  from  <a href="http://caseywest.com">caseywest.com</a>,  comment  <a href="http://caseywest.com/journal/archives/000206.html">he
re</a>.  This  uses  MIME::Lite  to  send  it  to  compress
 data  structures.  Storable.pm.  Duh.  So  I  like 
the  post-web  world  with  countries  pro  and  countries 
against  (which  is  actually  coming  along  slowly.  It's
 a  stored  procedure  or  trigger.  Sweet!  I'm  almost 
loathe  to  leave  Sun  three  times  longer  than  5 
percent  of  them  to  AIFF,  chop  them  into  smaller 
bits  (save  for  the  American  lardbutt  squarely  on 
the  couches  in  the  mail  received  by  AOL;  nearly  2 
billion  messages/day  this  week),  costs  of 
slippageâbook  buyers  from  the  other  two  are  because
 of  US  foreign  policy  seems  to  exist  was  a  little 
embarrassing  [not  to  mention  the  Killer 
Penguins  as  well.  Maybe  in  this  lastest  ish.  I 
think  of  using  the  socket  stuff  a  lot  more  usable 
than  the  default  POE::Session  system.  Thanks  Rocco! 
Dear  Log  and  Everybody,  <p>Sit  down.  <p><a href="http://members.spinn.net/~sburke/a3shots/a3uk.gif">Br
ace yourselves.</a>  <p>Take  a  deep  and  abiding  <a href="http://www.amazon.com/exec/obidos/tg/cm/member-review
s/-/AFXFDLFL1MJTH/40/">hate</a>.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17763">post</a> and <a href="http://use.perl.org/comments.pl?sid=18939">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[what a lucky man he was]]></title>
    <link href="https://www.taskboy.com/2004-03-05-what_a_lucky_man_he_was.html"/>
    <published>2004-03-05T00:00:00Z</published>
    <updated>2004-03-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-03-05-what_a_lucky_man_he_was.html</id>
    <content type="html"><![CDATA[<p><p>I must be scrapping the bottom of the barrel, but here's a <a href="http://slashdot.org/comments.pl?sid=99417&amp;cid=8475750">comment</a> 
from a <em>slashdot poll</em> that I found worth repeating.</p>

<blockquote>
&laquo;<br>&deg;&nbsp;If you woke this morning with more health than illness you are luckier than the MILLION who won't survive this week!<br>
&deg;&nbsp;If you have never experienced the danger of battle, the loneliness of imprisonment, the agony of torture or the pangs of starvation, you are luckier than 20 million people around the word!<br>
&deg;&nbsp;If you have food in your refrigerator, cloths on your back, a roof over your head and a place to sleep, you are richer than 75% of this world!<br>
&deg;&nbsp;If you have money in the bank, in your wallet and spare change in a dish someplace, you are among the top 8% of the world's wealthy!<br>
&deg;&nbsp;If your parents are still married and alive, you are very rare, especially in the U.S.!<br>
&deg;&nbsp;If you can read this message, you are luckier than over TWO BILLION people in the world that cannot read anything at all!<br>
&deg;&nbsp;You are blessed in ways that you may never know.<br>&raquo;
</blockquote>

<p><p>While I can't vouch for the last bit, the rest seems true and so 
therefore I BELIEVE IT.  For the next post, I will be quoting from 
inspirational Hallmark greeting cards that have changed my life. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17769">post</a> and <a href="http://use.perl.org/comments.pl?sid=18945">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Hillary is my new love]]></title>
    <link href="https://www.taskboy.com/2004-03-04-Hillary_is_my_new_love.html"/>
    <published>2004-03-04T00:00:00Z</published>
    <updated>2004-03-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-03-04-Hillary_is_my_new_love.html</id>
    <content type="html"><![CDATA[<p>My trusty computer companion of the last five years, Marian, has been replaced by a new hottie, Hillary.  Marian, an aging celeron 400Mhz/256M/40G 
running RedHat 7.3, serviced me well, doing sendmail/fetchmail/web/mysql/perl 
developement chores.  But times change and so must I.  Hillary is a Athlon 
XP 2600 Barton 1.9Ghz/512M/80G RedHat 9.0 system that now runs everything 
like Marian used to â BUT FASTER.  So, hail Hillary.
<p>A few notes:</p>

<ul>
<li>My initial experiences with RedHat 9.0 bolster my long standing suspicion 
that RedHat hates Perl.  Out of the box, perl 5.8.0 had trouble writing 
makefiles.  This is related to a unicode issue that may be solved by setting
one's environment variable to <code>LANG=en_US</code>.  Rasberries to RedHat.
<li>New Egg</a> is a good place to buy 
computer parts CHEAP.  I assembled Hillary from parts costing $343, including
shipping &amp; handling.  The 400W power supply came with the LED-enhanced 
mid-tower case for $29.  I bought the Biostart motherboard (LAN/Video/Audio 
on board) for $56.  The CPU was $90.  The 512MB DRR PC-2100 RAM was $72.  The
80G Maxtor/ATA133 was $66.  Good stuff.  Unforuntately, debian's current 
stable release, Woody, is <em>too freakin' old</em> to recognized the onboard 
LAN.  This makes it hard to use <code>apt-get</code>.  Perhaps the fine folks
running debian might consider shipping a 2.4 kernel before the 2.6 comes out. 
Woody ships with a 2.2 kernel from 2002.
<li>I've taken to keeping a lot of system-y things in my home directory, like 
my DNS files and mon.  This turns out to be really useful when you need to 
rsync your home directory.  I also have a crazy perl script that starts 
personal services, like ssh tunnels, VNC, apache and mon.  As a kind of a 
kludge, a cron job attempts to rerun the script every 2 minutes to make sure 
that these services are running, even if the machine is rebooted.  I've 
included the script below, in case someone is interested.  It's essentially 
a steroid-enhanced version of a shell script. 
</ul>

<p><p>File: setup_jjohn
</p>

<h1 id="usrbinenvperl">!/usr/bin/env perl</h1>

<h1 id="cperl">-<em>-cperl-</em>-</h1>

<p>#</p>

<h1 id="startstopprocessesthatineed">start|stop processes that I need</h1>

<p>#
use strict;
use warnings;
use File::Basename;
use Getopt::Std;</p>

<p>our $HOME    = "/home/jjohn";
our $LASTRUN = "$HOME/etc/.jjohn_setup";</p>

<p>our %PROCS = ( '01 SSH tunnels' => { start => "$HOME/etc/ssh_mail_tunnel start",
                                     stop  => "$HOME/etc/ssh_mail_tunnel stop",
                                   },</p>

<p><code>           '02 MON' =&gt; { start =&gt; "$HOME/etc/mon/start_mon",
                         stop  =&gt; "killall mon",
                       },

           '99 VNC' =&gt; { start =&gt; "$HOME/bin/start_vnc",
                         stop  =&gt; "/usr/bin/vncserver -kill :1",
                       },

           '04 Fetchmail' =&gt; { start =&gt; "/usr/bin/fetchmail",
                               stop  =&gt; "killall fetchmail",
                             },

           '03 Apache'=&gt; { start =&gt; "/usr/bin/sudo $HOME/src/apache-current/bin/apachectl start",
                           stop  =&gt; "/usr/bin/sudo $HOME/src/apache-current/bin/apachectl stop",
                         },

         );
</code></p>

<p>my $opts = {};
getopts('h?fv', $opts);
$|++;</p>

<p>my $action = (lc pop @ARGV) || 'start';
my %dispatch = ( 'stop'   => \&amp;stop,
                 'start'  => \&amp;start,
                 'usage'  => \&amp;usage,
                 'status' => \&amp;status,
               );</p>

<p>$action = 'usage' if $opts->{'?'} || $opts->{'h'};</p>

<p>if (exists $dispatch{$action}) {
  $dispatch{$action}->($opts);
} else {
  start($opts);
}</p>

<p>exit;</p>

<h1>âââââââââââââââââââââââ</h1>

<p>sub start {
  my ($opts) = @_;</p>

<p># Skip the LASTRUN check if the force flag is set
  unless ($opts->{f}) {</p>

<p><code># compare the boot time (/var/lock/subsys/local) to our last runtime
if (-e $LASTRUN) {
  my $sysboot = (stat "/var/lock/subsys/local")[9];
  my $lastrun = (stat $LASTRUN)[9];

  # if we have run after system boot, bail
  if ($lastrun &gt; $sysboot) {
    warn "Already ran since boot.  Halting.\n" if $opts-&gt;{v};
    return;
  }
}
</code></p>

<p>}</p>

<p>for my $proc (sort keys %PROCS) {
    printf "Starting %-25s:", $proc if $opts->{v};</p>

<p><code>my $ok = "OK";
if (system("$PROCS{$proc}-&gt;{start} 2&gt;&amp;1 &gt; /dev/null")) {
  $ok = "FAILED";
} 
printf "%15s\n", $ok if $opts-&gt;{v};
</code></p>

<p>}</p>

<p># print out PID to LASTRUN
  open my $pid, ">$LASTRUN" or die "can't open '$LASTRUN': $!\n";
  select(((select $pid) => $|++)[0]);
  print $pid $$;
  close $pid;</p>

<p>}</p>

<h1 id="stoptheservicesabove">stop the services above</h1>

<p>sub stop {
  my ($opts) = @_;</p>

<p>for my $proc (reverse sort keys %PROCS) {
    printf "Stopping %-25s:", $proc if $opts->{v};</p>

<p><code>my $ok = "OK";
if (system("$PROCS{$proc}-&gt;{stop} 2&gt;&amp;1 &gt; /dev/null")) {
  $ok = "FAILED";
} 
printf "%15s\n",$ok if $opts-&gt;{v};
</code></p>

<p>}</p>

<p>unlink $LASTRUN;
}</p>

<p>sub usage {
  my $name = basename $0;
  print "$name - control services for jjohn</p>

<p>USAGE:</p>

<p>$name [OPTIONS] [ACTION]
  \$ $name -v start # start services with verbosity
  \$ $name stop     # stop services silently
  \$ $name status   # show boot time vs. last run of this program</p>

<p>OPTIONS:</p>

<p>h  print this screen
  ?  print this screen
  f  force start, regardless of LASTRUN file
  v  turn on verbose messages
";
}</p>

<p>sub status {
  my ($opts) = @_;
  my $lastrun = (stat $LASTRUN)[9];
  my $boot    = (stat "/var/lock/subsys/local")[9];
  my $name    = basename $0;</p>

<p>my $ltime = (defined $lastrun) 
              ? scalar localtime($lastrun)
              : "NEVER RUN";</p>

<p>my $btime = scalar localtime($boot);</p>

<p>printf "%16s: %-20s\n%16s: %-20s\n", 
          "system boot", $btime,
          "$name ran", $ltime;
}
</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17752">post</a> and <a href="http://use.perl.org/comments.pl?sid=18926">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The Brothers Chapman at OSCON?]]></title>
    <link href="https://www.taskboy.com/2004-03-01-The_Brothers_Chapman_at_OSCON_.html"/>
    <published>2004-03-01T00:00:00Z</published>
    <updated>2004-03-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-03-01-The_Brothers_Chapman_at_OSCON_.html</id>
    <content type="html"><![CDATA[<p><p>Homestar Runner</a> is a cartoon of humble proportions.  Using web technologies like Flash and MP3s
merely as vehicals to convey their fractured fairy tales, the Chapman 
Brothers, Mike and Matt (with guest appearences by Melissa Palmer), brighten 
many a geek's Monday morning with Strong Bad emails, fake commercials and 
one-off non-sequitors.  What's most remarkable is that their humor is 
accessible to an audience of wide ranging ages.  I trust I don't need to 
further sing the praises of Homestar and the gang to the use.perl community?
<p>So, who would like to see the Brothers Chap at OSCON this year?  I know I 
would.  Perhaps you can show your support for the idea with a comment?  By 
some miracle, <a href="/~gnat/journal">someone organizing OSCON</a> might read
this blog and pursue this further.
<p>Do you really want to hear another talk on how OpenSource software is 
ready for e-business?  Neither do I. ;-) </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17696">post</a> and <a href="http://use.perl.org/comments.pl?sid=18861">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Zorknapp Married!]]></title>
    <link href="https://www.taskboy.com/2004-02-28-Zorknapp_Married_.html"/>
    <published>2004-02-28T00:00:00Z</published>
    <updated>2004-02-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-02-28-Zorknapp_Married_.html</id>
    <content type="html"><![CDATA[<p>The subject line says it all.  Congrads to <a href="/~zorknapp/journal">Mike "Zorknapp" Lord</a> and his 
wonderful new bride, Sue.  May their years together be long and happy ones.
<p>UPDATE: See my <a href="http://taskboy.com/pictures/lord_wedding.html">wedding pics</a>. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17675">post</a> and <a href="http://use.perl.org/comments.pl?sid=18835">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Grapevine  And  Procrastination  .]]></title>
    <link href="https://www.taskboy.com/2004-02-27-[MarkovBlogger]__Grapevine__And__Procrastination__.html"/>
    <published>2004-02-27T00:00:00Z</published>
    <updated>2004-02-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-02-27-[MarkovBlogger]__Grapevine__And__Procrastination__.html</id>
    <content type="html"><![CDATA[<p>also  want  to  first  reimplement  it  (as  with  SuSE's <a href="http://www.suse.com/us/business/products/suse_busines
s/openexchange/">Openexchange</a>)  before  it  started, 
and  stronger  ones  when  I  get  to  store  binary  data"
 bug  in  Net::SSH::Perl.    I've  been  wanting  to 
jump  in  January.  Comments  â  not  develop  and  retain
 a  top-notch  education.  One  of  my  site.</p>  <p>In 
other  news,  I  finally  figured  out  that  you  will 
find  this  charge  usurious.  Whatever  your  prefence, 
the  dread  machines.  In  real  life,  because  a  parent 
class's  attribute.  And  of  these  articles.    One 
of  these  were  more  police  around  the  real  issue. 
The  view  includes  the  description  line.  Of  course, 
I  already  knew.    I  still  have  some  bits  more 
in  favor  of  the  day!  <p>An  Epic  Tale  of 
Obsession,  Magic  and  Basic  Silliness<p><em>Part  1:
 The  Gathering</em>  <p><a href="http://www.dict.org/bin/Dict?Form=Dict3&amp;Database=wn">
WordNet</a>  defines  addiction  as:  <blockquote>
&laquo;being abnormally tolerant to and dependent on
something that is psychologically or physically
habit-forming&raquo; </blockquote>  <p>Addiction  is  at 
least  some  of  their  mind  yet.  So  Regexp::Common's 
out.    I  sort  of  EOF.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17650">post</a> and <a href="http://use.perl.org/comments.pl?sid=18808">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[how is nntp.perl.org like Janet Jackson?]]></title>
    <link href="https://www.taskboy.com/2004-02-27-how_is_nntp.html"/>
    <published>2004-02-27T00:00:00Z</published>
    <updated>2004-02-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-02-27-how_is_nntp.html</id>
    <content type="html"><![CDATA[answer: <a href="http://www.morethings.com/log/janet_jackson_superbowl_titty.jpg">they</a> both wear <a href="http://www.nntp.perl.org/group/perl.perl6.language">nipple shields</a>!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17654">post</a> and <a href="http://use.perl.org/comments.pl?sid=18812">comments</a>.]</p><br>


]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[iconoclasts]]></title>
    <link href="https://www.taskboy.com/2004-02-21-iconoclasts.html"/>
    <published>2004-02-21T00:00:00Z</published>
    <updated>2004-02-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-02-21-iconoclasts.html</id>
    <content type="html"><![CDATA[<p><p>Was once attracted to them; am now repellled by them.<p>Just to keep you all current on the issue.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17545">post</a> and <a href="http://use.perl.org/comments.pl?sid=18690">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[orkut's evil EULA exaggerated]]></title>
    <link href="https://www.taskboy.com/2004-02-21-orkut&apos;s_evil_EULA_exaggerated.html"/>
    <published>2004-02-21T00:00:00Z</published>
    <updated>2004-02-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-02-21-orkut&apos;s_evil_EULA_exaggerated.html</id>
    <content type="html"><![CDATA[<p>Much hay was made of <a>orkut's</a> poorly worded EULA that suggested that all content submitted to the site became the property of google.
This was nutty on the face of it (remember that I used to have a site 
devoted to UFO conspiracies and even I didn't swallow this one), 
but here's a 
<a>clarification of the issue</a>:</p>

<blockquote>
&laquo;<em>Does orkut.com own all the content that I submit to the site?</em>
</br><br>
Answer: orkut.com does not claim any ownership right in the profile or other information that you submit. When you submit content to orkut.com, we use it to display the content on the site and to other members according to your preferences. You may edit, remove or limit the people who can view the content at any time. We may analyze the types of information submitted to determine how our members use the site and how we can improve the orkut system.&raquo;
</blockquote>

<p><p>Now, I invite all of you who haven't joined the cult, I mean, web site to 
jump in.  It's mostly harmless. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17546">post</a> and <a href="http://use.perl.org/comments.pl?sid=18691">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Text::Autoformat    Mac-Carbon-0.53  Released    DirecTV.]]></title>
    <link href="https://www.taskboy.com/2004-02-20-[MarkovBlogger]__Text__Autoformat____Mac-Carbon-0.html"/>
    <published>2004-02-20T00:00:00Z</published>
    <updated>2004-02-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-02-20-[MarkovBlogger]__Text__Autoformat____Mac-Carbon-0.html</id>
    <content type="html"><![CDATA[<p>:-)  -  A  pure  Perl  SAX  parser.  Maybe  based  on HTTP::Daemon  and  Frontier::RPC2.  Why  didn't  I  find 
<a href="http://www.mysql.com/doc/en/Backup.html">this
page</a>.  You'll  see  a  show  on  TNN  called  "Kids 
Say  the  Darnest  Things".  I  realized,  reading  the 
code  just  by  assimilation.  People  often  don't  have 
time.  Therefore,  I  will  be,  a  little).  May  you 
create  a  spam  in  a  hurry  without  any  bugs  or 
asking  for  a  second  evil  head  onto  my  OS  instead 
of  the  hash  wasn't  in  the  wrong  abstration  upon 
which  we  see  at  the  college  level,  and  I  was 
impressed  once  more  how  hard  it  gets  appended  to 
the  problem.  Any  ideas?  The  only  thing  that  we 
badly  need  bullshit  filters  for".  My  OSCON  Man 
Friday,  Rael,  is  the  amount  of  comment  text  â 
just  for  working  with  Perl.  All  of  them  will  give 
you  this:  <a href="http://interglacial.com/temp/mmm.mid">a single
musical note, lasting about a minute</a>  <p>I'M  AUDIO 
BLOGGING!!!  Dear  All,  <p>Want  an  agenda/log  book?  <a href="http://www.speech.cs.cmu.edu/~sburke/pub/plan2003.rtf
">Print this out</a>  and  spiral-bind  it.  Voila! 
<p>Want  to  customize  it?  <a href="http://www.speech.cs.cmu.edu/~sburke/pub/gen_agenda.p
l">Here's the source program</a>  <p>Finished  my 
Expect.pm  program.  It  occurred  to  me  that  they've 
improved  XFree86  so  that  you  need  it,  or  the  like.
 <p>  I'm  in  the  mail.  Whee!  <p>I  wonder  how  many 
CPU  hours  are  spent  playing  solitare  on  Windows  in 
on  Damian  Conway's  "Data  Munging  for  Bioinformatics" 
tutorial  at  the  technical  problems  are  because  of 
lack  of  scantily  clad  heroine  walks  into  a  heap 
with  us.  She  is  16.</p>  <p>In  the  virtual  drive. 
  "But,  chaoticset,"  I  hear  talk  about  it  when  I
 noticed  that  you  should  study  the  Bible  says,  <a href="http://www.goreadthebible.com/kjv/acts/5.html#29">we
ought to obey God rather than men</a>.  As  long  as 
there's  value.  <p>  In  the  evening  we  were  in
 Perl,  Simon  St.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17511">post</a> and <a href="http://use.perl.org/comments.pl?sid=18657">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Internet replaces Jerry Springer]]></title>
    <link href="https://www.taskboy.com/2004-02-18-Internet_replaces_Jerry_Springer.html"/>
    <published>2004-02-18T00:00:00Z</published>
    <updated>2004-02-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-02-18-Internet_replaces_Jerry_Springer.html</id>
    <content type="html"><![CDATA[<p><p>It appears talk shows are no longer the only place to be ambushed by crazy relatives.  The <a href="http://www.canoe.ca/NewsStand/TorontoSun/News/2004/02/17/350646.html">Toronto Sun</a> (via Fark.com) reports:</p>

<blockquote>
&laquo;EDMONTON â The father of a boy who was taken from him 14 years ago by his estranged wife says his son learned last year he'd been abducted by seeing his own photo on the Internet. "He pulled up his own picture," said the teenager's 43-year-old father.
<br><br>
The father, an electrician who lives near Ponoka in central Alberta, said he learned in 2003 from a Canadian missing children's organization that his long-vanished son was somewhere in California.&raquo;
</blockquote>

<p><p>That sort of thing isn't likely to make a moody teenager more sociable. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17464">post</a> and <a href="http://use.perl.org/comments.pl?sid=18606">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[new songs on taskboy]]></title>
    <link href="https://www.taskboy.com/2004-02-14-new_songs_on_taskboy.html"/>
    <published>2004-02-14T00:00:00Z</published>
    <updated>2004-02-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-02-14-new_songs_on_taskboy.html</id>
    <content type="html"><![CDATA[<p>There are a couple of new songs on taskboy.com available for your rawk needs. 
<p><a href="http://taskboy.com/music/rusted_gunnels.mp3">Rusted Gunnels</a> 
will freakify your mind with non-rhyming verse and harmony.  Actually, this 
tune has been available on taskboy for a few weeks now. <br>
<p>Marvel as I attempt to cover Mumble and Peg's 
<a href="http://taskboy.com/music/birthday.mp3">Birthday</a>.
Running into old acquaintances never sounded so maudlin. 
<p>Don't say you didn't get a little for Valentine's day this year.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17421">post</a> and <a href="http://use.perl.org/comments.pl?sid=18555">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[That's no lady, that's my wife!]]></title>
    <link href="https://www.taskboy.com/2004-02-13-That_s_no_lady,_that_s_my_wife_.html"/>
    <published>2004-02-13T00:00:00Z</published>
    <updated>2004-02-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-02-13-That_s_no_lady,_that_s_my_wife_.html</id>
    <content type="html"><![CDATA[<p>An old punchline gets a new setup as <a href="http://www.theregister.co.uk/content/6/35566.html">The Register</a> reports:<blockquote>
&laquo;An unnamed 30 year-old Greek man got a bit more of an eyeful that he bargained for when he was checking out an exhibitionist porn site. While happily surfing vids of couples getting it on, he happened upon one of his wife getting jiggy with another man.&raquo;
</blockquote>
<p>Well, that's just something that's bound to happen.  It's all part of the 
new outsourcing trend of marital duties, as reported by The Onion a few weeks 
ago.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17407">post</a> and <a href="http://use.perl.org/comments.pl?sid=18539">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]    The  way  in    Note  to.]]></title>
    <link href="https://www.taskboy.com/2004-02-13-[MarkovBlogger]____Theway__in____Note__to.html"/>
    <published>2004-02-13T00:00:00Z</published>
    <updated>2004-02-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-02-13-[MarkovBlogger]____Theway__in____Note__to.html</id>
    <content type="html"><![CDATA[<p>complex  and  interesting.  I  kinda  liked  it,  but I've  taken  httpd  on   axkit.org  down  permanently  for 
<a href="http://www.bird-stamps.org/country/uvolta.htm">Upper
Volta</a>  next  week  while  I'm  working.  It  isn't.  It
 is  really  nasty  in  oh  so  many  articles  I 
remember.  And  they're  still  good  enough  for  now. 
I'll  be  able  to  read  through  a  google  search  will 
turn  them  down?  Am  I  wrong  to  support  eventually. 
<a href="http://www.nytimes.com/2002/03/03/opinion/03DOWD.html
">Maureen Dowd</a>  writes  cynically  about  the  Excel 
spreadsheets,  Word  documents  and  Access  databases: 
that  technology  is  a  good  idea  to  store  it  in 
XML,  though  â  this  bears  research)  but  the  package
 is  loaded  up  both  the  damage  that  precipitates 
severe  memory  formation  problems  are  exacerbated  by 
drinking  a  lot  of  cabling.  My  first  <em>major</em>  issue 
is  updating  procurement  policies  that  put  them 
in.<p>  Old  house:  sold.  New  house:  bought. 
Estimated  time  to  sort  through  all  the  barkers 
advertising  their  booths.  Sometimes,  the  blog 
phenomenon  could  not  unmount  because  the  AA  plane 
we  should  ignore?  After  reading  a  bit  of  <a href="http://www.mediahistory.com/time/gallery/carolin.html
">script</a>,  I  looked  at  the  Monastery;  and  I  ran 
out  of  the  budget  problem  during  the  day.  We  hates
 Microsoft.</p>  I  cut  off  the  O'Reilly  style.  They 
read  like  Microsoft  Press  or  SAMS.  I'm  trying  to.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17395">post</a> and <a href="http://use.perl.org/comments.pl?sid=18527">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Diver flees with shark attached]]></title>
    <link href="https://www.taskboy.com/2004-02-11-Diver_flees_with_shark_attached.html"/>
    <published>2004-02-11T00:00:00Z</published>
    <updated>2004-02-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-02-11-Diver_flees_with_shark_attached.html</id>
    <content type="html"><![CDATA[<p><p>The <a href="http://news.bbc.co.uk/2/hi/asia-pacific/3478747.stm">BBC reports</a>:</p>

<blockquote>
&laquo;Luke Tresoglavic, 22, was snorkelling near Newcastle, north of Sydney, when he was bitten by a two-feet-long Wobbegong shark. 
When the shark refused to let go, Mr Tresoglavic swam 300 meters (1,000 feet) to shore, walked to his car and drove to the local surf club. 
Lifeguards flushed the shark's gills with fresh water to loosen its grip. &raquo;
</blockquote>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17358">post</a> and <a href="http://use.perl.org/comments.pl?sid=18484">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Do they have a "no Jesus" section on planes?]]></title>
    <link href="https://www.taskboy.com/2004-02-10-Do_they_have_a__no_Jesus__section_on_planes_.html"/>
    <published>2004-02-10T00:00:00Z</published>
    <updated>2004-02-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-02-10-Do_they_have_a__no_Jesus__section_on_planes_.html</id>
    <content type="html"><![CDATA[<p>As reported by CBS and the Daily Show, <a href="http://www.cbsnews.com/stories/2004/02/09/national/main598794.shtml">American Airlines pilot pushes Jesus</a>.</p>

<blockquote>
&laquo;American's Flight 34 was headed from Los Angeles to New York's John F. Kennedy Airport on Friday when the pilot asked Christians on board to raise their hands, Wagner said.
<br><br>
The pilot, whose name was not released, told the airline that he then suggested the other passengers use the flight time to talk to the Christians about their faith, Wagner said.
<br><br>
"Well, you have a choice, you can make this trip worthwhile or you can sit back relax, read a book or watch a movie," passenger Amanda Nelligan told WCBS-TV of New York the pilot said. &raquo;
</blockquote>

<p><p>There's nothing that settles a nervous passenger's mind more than knowing 
that the man piloting his plane has a solid belief in a glorious afterlife. <br>
Indeed, this incident bothers me far more than the unexpected nipple appearing
at sporting events.  Generally, I have no truck with missionaries.  They 
reminded too much of Willy Loman or boy scouts trying to get merit badges.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17326">post</a> and <a href="http://use.perl.org/comments.pl?sid=18451">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[beware the Green Pants!]]></title>
    <link href="https://www.taskboy.com/2004-02-09-beware_the_Green_Pants_.html"/>
    <published>2004-02-09T00:00:00Z</published>
    <updated>2004-02-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-02-09-beware_the_Green_Pants_.html</id>
    <content type="html"><![CDATA[Breaking news in cryptozoology: <a href="http://www.theadvertiser.news.com.au/common/story_page/0,5936,8630049%5E1702,00.html">Fear over 'green underwear' beast</a>.<br>
<blockquote><br>
&laquo; AS the rest of Indonesia battles bird flu and earthquakes, a new type of supernatural force dressed only in green underwear has been terrifying superstitious Jakarta residents.<br>
<br><br><br>
A mysterious half-man, half-beast, imaginatively named the "kolor ijo" or "green underpants", has been stalking the city outskirts, attacking people with its claws and allegedly raping lone women in the narrow alleys or in their homes, usually late at night.<br>
<br><br><br>
Terrified residents set up special kolor ijo patrol squads, while others draped their homes in magic talismans to ward off the creature.&raquo;<br>
</blockquote><br>
<p>I understand that the citizens of Tennessee and Virginia, fearing similar<br>
things, are also using talismans to ward off desperate Democratic<br>
campaigners tonight (I'm looking at both of you, Dennis and Howard).<br>
<p>(ED. link via <a href="http://fark.com/">Fark.com</a>)<br>
<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17309">post</a> and <a href="http://use.perl.org/comments.pl?sid=18433">comments</a>.]</p><br>


]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Videlectrix]]></title>
    <link href="https://www.taskboy.com/2004-02-06-Videlectrix.html"/>
    <published>2004-02-06T00:00:00Z</published>
    <updated>2004-02-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-02-06-Videlectrix.html</id>
    <content type="html"><![CDATA[<p>The guys who do Homestar runner, the Brothers Chap, have set up a business page for their <a href="http://www.videlectrix.com/">fake software company</a> (notice the Apple ][ in the picture).  Six years ago, that company would be angling for an IPO, having already secured dozens of millions of dollars in VC.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17256">post</a> and <a href="http://use.perl.org/comments.pl?sid=18371">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Orkut    This  week's  theme    5.6.1  Release    sub.]]></title>
    <link href="https://www.taskboy.com/2004-02-06-[MarkovBlogger]__Orkut__Thisweek_stheme_5.html"/>
    <published>2004-02-06T00:00:00Z</published>
    <updated>2004-02-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-02-06-[MarkovBlogger]__Orkut__Thisweek_stheme_5.html</id>
    <content type="html"><![CDATA[<p><p>Plate  a  healthy  2.0  ;-)  Unfortunately  I  went  to check   it  out.  If  the  vending  machine  in  the 
alphabet!  Unfortunately  the  same  useless  condition. 
Dear  Log,  <p>It  blizzarded  for  24  hours,  I've 
recieved  a  status  update  but  I  thought  today  was 
an  invalid  character  which  was  surprisingly  painless.
 Good  job  Ben  and  I  threw  together  a  session  ID. 
But  if  I  wanted  to  think  that  perhaps  is 
inappropriate  here.  (I  don't  think  that'll  ever  be 
plugged  into  the  toolchain.  :-S  <p><a href="http://www.libertarianrock.com/topics/censorship/vega
n_lawsuit.html">Veganism prohibited by school dress
code.</a></p>  <p>I  think  the  effect  Note 
problems,  attempt  to  find  4000  messages  being 
downloaded  by  fetchmail,  nearly  all  SAX  events  (a 
few  dozen  journal  postings  will  take  a  step  up 
from  a  Java  SAX  filter,  or  custom  code.  4.  Data 
source  providers,  that  turn  "legacy"  formats 
(Databases,  ordinary  files,  stuff  at  the  very  first 
programming  tasks  involved  text  processing  with  C,  I
 bought  myself  a  <a href="http://www.machinemart.co.uk/product.asp?p=030610024&amp;
r=2177&amp;g=123">Partner BV24</a>  to  do  with  my  very 
clunky  French  â  I  don't  think  that's  about  10 
minutes  or  so.  I  do  need  to  dominate  others  isn't 
sufficient  to  sort  through  all  the  current  project. 
<p>  I  wonder  when  they're  happening,  but  I  didn't 
come  here  to  wax  nostalgic  about  my  apartment.  He 
is  the  Korea  Republic,  which  includes  North  and 
South  Korea,  isn't  it?  I'd  look  it  over  on 
slashdot,  folks  are  retired  Air  Force  spent  on 
cowboy  hats&nbsp;:&nbsp;$4,896   [pudge@bourque
MacPerl]$ perl -Iblib/arch -Iblib/lib -MMacPerl -le 'print
join "\n", MacPerl::Volumes()' FF9C00000001:Orr
FF9B00000001:Bourque FF9A00000001:Bird [pudge@bourque
MacPerl]$ perl -Iblib/arch -Iblib/lib -MMacPerl -le 'print
join "\n", map { MacPerl::MakePath($_) }
MacPerl::Volumes()' / /Volumes/Bourque /Volumes/Bird
  More  like  a  <a href="http://www.auburn.edu/~jfdrake/teachers/gainey/homer/
lotuseaters.html">Lotus eater</a>?  After  reading  it,  I 
just  <em>removed</em>  the.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17241">post</a> and <a href="http://use.perl.org/comments.pl?sid=18356">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[go pats!]]></title>
    <link href="https://www.taskboy.com/2004-02-04-go_pats_.html"/>
    <published>2004-02-04T00:00:00Z</published>
    <updated>2004-02-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-02-04-go_pats_.html</id>
    <content type="html"><![CDATA[<p><a href="http://www.boston.com/news/local/massachusetts/articles/2004/02/04/police_planning_questioned/">Police planning questioned</a><blockquote>
&laquo;The Boston Police Department assigned only 43
crowd-control officers citywide to handle the thousands
of revelers that streamed into the streets after Sunday
night's Super Bowl, with just six assigned to the
Symphony Road area where a man was killed when an SUV
driver drove into a crowd near Northeastern University,
documents obtained by the Globe show.
<br><br>
The Police Deployment documents show that only one
supervisor and five officers were assigned specifically
to control the Symphony Road area, and another supervisor
and five officers were sent to Kenmore Square. In those
locations, mobs of some 5,000 people each swarmed the
streets after Sunday night's game and became unruly.
&raquo;
</blockquote>
<p>Both areas mentioned above are a five minute walk from my apartment. <br>
<p>I can confirm it was more than a little loud in the `hood last Sunday night
around midnight.  You would have thought that the fans themselves had won the 
Super Bowl and not the paid employees of a multimillion dollar franchise. <br>
Where I live, I get to see a lot of extreme sports fan behavior and it's 
neither pretty nor amusing.  Where are the riots over Super Tuesday?  Or NASA
debugging and repairing Spirit and Opportunity (a task not easily 
accomplished on Earth let alone another planet). <br>
<p>It's true that I'm not a regular  spectator of any sport, but I absolutely 
loathe those fans who use sporting events as a justification for their 
jackassery.  I hope that the fine Boston PD makes some pointed inquiries 
into yesterday's rally and Sunday's wanton chaos.  Homeland security starts at
home (with the crazy white guys). </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17205">post</a> and <a href="http://use.perl.org/comments.pl?sid=18314">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[daisypark hacked]]></title>
    <link href="https://www.taskboy.com/2004-02-03-daisypark_hacked.html"/>
    <published>2004-02-03T00:00:00Z</published>
    <updated>2004-02-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-02-03-daisypark_hacked.html</id>
    <content type="html"><![CDATA[
<img src="/img/camel.gif" class="insert">


<p><p>I loathe crackers.  Not just the salty kind.  Not the pejorative slang word for white people.  The crackers I hate are the punks that contribute
nothing positive or creative for the Internet community.  Thugs with 
electronic bricks.  I've never found computer security all that engrosing. <br>
I've never felt urge to comprimize other people's machines and set up IRC 
bots so that I can "get channel ops."  Such a waste of my time it is to clean 
up after them.  Here's what I've pieced together and what I've done to 
prevent this from happening again.  Perhaps someone else will find this useful.
<p>Last Thursday or Friday, I changed over my home's net connection from DSL
to Comcast's cable modem service.  The change-over went smoothly.  I had no 
trouble adjusting my Linksys firewall for the new connection.  Recall that 
one difference between DSL service and cable modem service is that cable modem
users are on the same network segment.  This will become omniously relevant 
later.
<p>Last night, as most people were watching the "Stupor Bowl," I was watching
<em>2001: A Space Odyssey</em>.  And drinking a fine bottle of Bunnahabhain 
12 year-old scotch.   Little did I know that at 6:56PM, some 
turd-burger from 80.185.242.59 (an IP apparently associated with a german 
ISP) waltzed in uninvited to my main linux box 
(RedHat 7.3) using ssh.  Yes, I knew about the root exploit for the version 
of ssh on that box.  However, it doesn't appear that this kind of exploit was 
used.  Note the this portion of my last log:</p>

<p>
jjohn    pts/6        80.185.242.59    Sun Feb  1 22:51 - 22:56  (00:04)    
jjohn    pts/2        80.185.242.59    Sun Feb  1 19:25 - 19:26  (00:01)    
jjohn    pts/2        80.185.242.59    Sun Feb  1 18:56 - 18:59  (00:02)    
</p>

<p><p>My best guess is that the loser used my username and password against me, 
in a kind <a href="http://www.mnftiu.cc/mnftiu.cc/fighting.057.html">Internet 
jujitsu</a> 
<a href="http://www.heimlichinstitute.org/howtodo.html">maneuver</a>.  Oddly, 
I found no record of commands issued by the interloper in .bash_history (my 
shell).  A casual vetting of netstat resulted in the discovery of a new server
process called 'join,' started from my home directory.  I found no additional
cron jobs or user accounts.  The checksum of /bin/login matched that of an 
uncomprimized host.  How could this have possibly happened?  I (unfairly) 
blame the Erics Raymond and Allman. <br>
<p>I like command line mail programs.  mail.  pine.  mutt.  It's all good. <br>
I trace this fondness back to my inculcation into computers at UMass/Boston, 
whose CompSci program started students on an ol' skool VAX system. <br>
I like piping the output of a program to mail.  I like grepping through 
mboxes.  I enjoying laughing at the impotency of messages containing 
Windows-afflicting viruses.  To this end I 
collect email from my various accounts with Raymond's fetchmail and good old 
insecure POP3.  fetchmail sends login credentials across the wire in plain 
7-bit ASCII with life-affirming machismo.  Ashewing crypto, the use of the 
POP3 protocol in today's terror-alert world defiantly proclaims to all "I'm 
living like it's 1982, <em>biznatch!</em>"
<p>To make matters worse, I've recently configured sendmail on my public relay 
host (aliensaliensaliens.com) to use the SASL authentication layer.  This is a
good thing (because it prevents naughty spammers from using A3 like a 
cheap harlot), but I didn't get around to setting up TLS.  This means that, 
you guessed it, my credentials for A3 were also getting sent in plain text 
across the wire. <br>
<p>In my defense I must invoke the computer Barbie defense. </p>

<blockquote>
Â«Secure POP is hard!  Configuring sendmail with STARTTLS/SASL 
is hard!Â»
</blockquote>

<p><p>Let me also jump ahead of my story to defend my system administrating 
virility and state that I have now successfully frobbed sendmail into using 
STARTTLS and created secure SSH2 tunnels for POP3 to travel through.
<p>Even otherwise burly admin types I know will, when cornered and plastered
with liquor, admit to their angst whenever they have to battle sendmail.  The 
trouble doesn't squarely lie with sendmail, but rather with sendmail's 
opaque documentation.  It's a nasty piece of work.  It's not that
the docs are wrong, slim or poorly organized.  In fact, much of the sendmail 
documentation is clear, professional and to the point.  However, and I can't 
stress this point enough, it was written by Martians, for Martians. <br>
By this I mean that the docs do not have a task-oriented organization that 
can be readily consumed by a human sys admin.  Precisely what the guiding 
principal is to the layout of the sendmail docs I cannot say, not being 
Martian. <br>
<p>Quick: what are three venerable and popular unix programs come with 
copious, but unusable documentation?  Feel free to write in your answers, but 
here are mine: Sendmail, BIND and Emacs.
<p>Anyways, back to the break-in.
<p>A careful look at the login history log reproduced above will show that 
the trespasser logged in as 'jjohn,' which is my preferred account name. <br>
Typically software exploits that produce 'root' shells don't show up in wtmp
logs.  Also, why use the 'jjohn' account?  I believe the answer is that name
would have been observed frequently by anyone sniffing the traffic leaving my
cable modem.  Recall that whenever I sent or received email, I "broadcast" my 
credentials (yes, I tend to use the same username and password for 
less-than-critical systems)
<p>So if someone could sniff the traffic leaving my modem, they could easily 
compromise my system (which forwarded the publicly accessible port 22 to
my internal linux box).  But how?  I ran with this same mail configuration for 
four years on my DSL.  How could I get hacked within four days on 
switching to the cable modem?  The answer is that my network segment was 
probably already comprised when I joined it.  I know that cable modem networks 
are attractive targets for intruders.  Not only are machines connected via 
cable modems on a fast pipe, but also their owners are typically naive 
(guilty), slothful (guilty), and stupid (no comment).  More seductively, the 
shared network segment of cable modems allows one compromised machine to spy 
on the traffic of its neighboring PCs.
<p>To put this in less technical terms, I moved from the relative monogamy of 
DSL service to the Paris Hilton-like fealty of cable modem life.  And I made 
this switch without first buying technological rubbers.  Sigh.
<p>The resulting infection manifested as an IRC bot, called 
<a href="http://www.energymech.net/">emech</a>.  Here are some of the 
configuration files, which I publish here in the fond hope that someone will 
recognize this fucktard and slap him (and yes, I believe it's a him) repeated 
about the head and neck.</p>


<p>
# file: mech.set
ENTITY l0ol
LINKPASS 12345
LINKPORT 1235
AUTOLINK
NICK `johy
LOGIN john
IRCNAME john
USERFILE `1.users
MODES +i-ws
CMDCHAR -
TOG SPY 1
TOG CC 1
TOG CLOAK 1
SET OPMODES 6
SET BANMODES 6
CHANNEL #gheorg
SERVER stockholm.se.eu.undernet.org 6667
SERVER flanders.be.eu.undernet.org 6667
SERVER eu.undernet.org 6667
</p>
<hr>
<p>
# mech.session
entity l0ol
linkpass 12345
linkport 1235
autolink
nick lotus}{
login john
ircname john
modes i
userfile `1.users
set BANMODES 6
set OPMODES 6
tog SPY 1
channel #Erlangen
channel #robby
channel #caras-severin
channel #carasseverin
channel #skorpion
server stockholm.se.eu.undernet.org 6667 
server flanders.be.eu.undernet.org 6667 
server eu.undernet.org 6667 
</p>
<hr>
<p>
# `1.users  &ly;â note the 133t backtick
handle      Skorpion
mask        *!*@Eifel65.users.undernet.org
prot        4
aop
channel     *
access      100
</p>
<hr>
<p>
# `johy.seen  11,12www.drunkenkillerz.go.ro
Tr|v|a` Tr|v|a`!~Tr|v|a@excitatu.users.undernet.org none 1075710920 2 Read error: Connection reset by peer
TCM TCM!~atractiv@Atractiv.users.undernet.org none 1075723654 2 Quit
TACO^ TACO^!~Statia8@81.18.72.10 none 1075724628 1 #caras-severin
Skorpion Skorpion!~Eifel65@server.tc.ut.ee none 1075710242 2 Registered
S-R-I S-R-I!iulius@SR1.Biz none 1075708216 3 SRI
Stylee Stylee!~Style@Cornelia.users.undernet.org none 1075705120 2 Quit
SRI SRI!iulius@SR1.Biz none 1075708340 2 Read error: EOF from client
Statia8 Statia8!~Statia8@81.18.72.10 none 1075716631 1 #caras-severin
sharpe`` sharpe``!~sharpe@MrSharpe.users.undernet.org none 1075718615 2 Quit: pa
Statia5 Statia5!~Statia5@81.18.72.7 none 1075724411 3 My}{ALL`
Statia1` Statia1`!~Statia1@81.18.72.1 none 1075720455 3 Ady15
Statia4 Statia4!~Statia4@81.18.72.4 none 1075721178 3 groparuu
Soapte Soapte!~Lam3rz.Ro@ZmeuFairfax.users.undernet.org none 1075721898 1 #caras-severin
Statia4` Statia4`!~Statia4@81.18.72.4 none 1075722317 3 enk
SirQ SirQ!~maciucara@82.77.71.151 none 1075723137 2 Quit: Be Right Back !!!
samira17^ samira17^!samira@PowerPopGirl.users.undernet.org none 1075724222 2 Read error: Connection reset by peer
scumpykul scumpykul!~scumpykul@godzillla.users.undernet.org none 1075724481 3 _ImhoteP_
sandyGIRL sandyGIRL!~sandy@SANDYgirl.users.undernet.org none 1075727326 2 Quit: byebye
redshadow redshadow!~redshadow@195.223.166.68 none 1075724279 2 Registered
Ramyrez Ramyrez!~ramona@35.8.29.105 none 1075698114 2 *.net *.split
R2-D2 R2-D2!Connex@R2D2.users.undernet.org none 1075711055 2 Read error: EOF from client
Raf`y Raf`y!~Rep@195.119.130.218 none 1075696177 2 Read error: Connection reset by peer
Robby^}{^ Robby^}{^!~Robby@80.96.144.104 none 1075701818 2 Registered
Robby`}{` Robby`}{`!~Robby@80.96.144.104 none 1075720179 2 Read error: EOF from client
pisuka pisuka!~pisuka@80.250.7.18 none 1075719930 2 Read error: Connection reset by peer
pentru`98 pentru`98!sfdfdsa@82.77.71.161 none 1075711137 1 #caras-severin
Protect_1 Protect_1!~atractiv@Secrete.users.undernet.org none 1075714898 2 Read error: Connection reset by peer
portos portos!TeBlestem@portos2004.users.undernet.org none 1075715428 1 #skorpion
papalapte papalapte!666@81.89.13.119 none 1075719315 3 disel
parazituu parazituu!~Statia4@81.18.72.4 none 1075727252 2 Quit
ozu ozu!baltoc@195.190.159.197 none 1075700128 2 Quit: 2I'm using 7-=mIRC-GOLD=- 2By Kaptein (http://welcome.to/mirc-gold
Ozzy_Fly Ozzy_Fly!cd@81.180.32.5 none 1075715097 1 #caras-severin
Nicola`` Nicola``!romania@ich.bin.co0l.de none 1075722781 1 #carasseverin
november` november`!~dfsd@80.97.160.24 none 1075713738 2 Signed off
manu_BB manu_BB!identNou@195.47.194.200 none 1075722369 1 #skorpion
mirciu mirciu!~Statia5@81.18.72.7 none 1075722359 2 Read error: EOF from client
MADD MADD!DASuser@213.233.111.61 X!cservice@undernet.org 1075721880 4 (Atractiv) out
My}{ALL` My}{ALL`!~Statia5@Atractiv.users.undernet.org none 1075727018 2 Quit: brb
LongDonG LongDonG!~stxx@st3.3f.net4you.ro none 1075696122 2 Quit
L|tleBlak L|tleBlak!~sile@flood.attaq.net none 1075721628 2 Registered
ls361 ls361!~skorpion1@Skorpion1.users.undernet.org none 1075698114 2 *.net *.split
LitleBig LitleBig!~aaaaaa@80.97.160.150 none 1075715472 2 Quit: auzisi grasule te ia draq daca numi zici maine ce joci :) o zi buna
Laddy_Z Laddy_Z!~Dihania@81.18.72.13 none 1075722121 2 Quit
Lock^^6 Lock^^6!LittleBoy@courier.users.undernet.org none 1075723557 1 #carasseverin
Johnnyd Johnnyd!~JohnnyD@cblmdm63-166-33-8.buckeye-express.com none 1075724374 2 Read error: Connection reset by peer
J0HNNY377 J0HNNY377!~JohnnyD@c66.169.193.115.ts46v-19.ftwrth.tx.charter.com none 1075698114 3 J0HNNYD
jejejejej jejejejej!~io@80.96.144.104 none 1075699413 2 Read error: EOF from client
IIIusion IIIusion!romania@port3.ts04.dialup.hannover.mops.net none 1075706062 2 Read error: Operation timed out
Inocenta` Inocenta`!ef@80.97.160.226 none 1075722480 2 Quit: Uf ce mam saturat de tot de ce mai sufera omu`? de ce sa mai crezi in dragoste daca ea doare?â¦..mdea` cred ca a inceput sa imi placa durerea si sa o vreau in viata mea ..Doamne unde esti? te caut dar nu te gasesc in lumea asta rea unde esti tu cel care ma va iubi pana la capat si promit ca iti voi da totul!
IRemenber IRemenber!~Lam3rz.Ro@ZmeuFairfax.users.undernet.org A_Dany!fg3ea@danebunu.users.undernet.org 1075723717 4 Fain vorbeshti bhaâ¦.ia cauta-ne pe status..!!
Hairstyle Hairstyle!romania@Hairstyle.users.undernet.org none 1075711128 2 *.net *.split
Hyper`Pen Hyper`Pen!~Karakter@62.231.108.142 none 1075707849 2 Ping timeout
harivena harivena!~Statia5@81.18.72.7 none 1075715091 1 #caras-severin
gruia gruia!~logojan_g@217.73.175.226 none 1075726343 1 #skorpion
freak_ freak_!paulica@shell10.powershells.de none 1075710890 3 freak
freak freak!paulica@shell10.powershells.de none 1075711080 2 Killed (*.undernet.org (older nick overruled))
FlasHack FlasHack!south@FlashHack.users.undernet.org none 1075726196 2 Quit: eu numai pot deja ma duc la baie
FellOwes FellOwes!~bigvasa@195.78.42.123 none 1075724805 2 Quit
enk enk!~Statia4@81.18.72.4 none 1075725474 3 parazituu
DARxIDE DARxIDE!~dxd@darxid3.users.undernet.org none 1075708201 3 DARKSIDE-
DesKjet DesKjet!~Karakter@62.231.108.142 none 1075707867 2 Ping timeout
Delfinu` Delfinu`!~Delfinu@81.18.72.11 none 1075714898 2 Read error: Connection reset by peer
dadycool dadycool!~dady@196.41.3.246 none 1075717476 2 Registered
DADDYzZz_ DADDYzZz_!~aiurea@www.adler-law.com none 1075712081 1 #carasseverin
Delfinu`` Delfinu``!~Delfinu@81.18.72.11 none 1075718016 2 Signed off
Diana}{^ Diana}{^!south@DianaLove.users.undernet.org none 1075718835 1 #caras-severin
disel disel!666@81.89.13.119 none 1075719928 2 Read error: Connection reset by peer
dream1703 dream1703!seanjohn4l@tntwc01-3-236.idx.com.au none 1075723646 1 #carasseverin
DaYaNa__s DaYaNa__s!Standasads@com3.combatnet.tveurosat.ro none 1075724470 2 Signed off
Dihania Dihania!~Statia8@81.18.72.10 none 1075724622 3 TACO^
doggyy doggyy!~ovidiurot@80.96.72.14 none 1075726107 2 Read error: EOF from client
Delu^ Delu^!levente_@217.156.38.87 none 1075726171 2 Read error: EOF from client
candito candito!candito@208.251.137.98 none 1075700644 1 #carasseverin
ChimpMama ChimpMama!~chimp@cm108.gamma54.maxonline.com.sg none 1075711404 1 #carasseverin
Contele_D Contele_D!~user@81.196.122.34 none 1075715290 2 Quit
cychi cychi!cyber14@80.97.160.239 none 1075717953 1 #caras-severin
c0sti c0sti!~cagulici@ToSexY4u.users.undernet.org A_Dany!fg3ea@danebunu.users.undernet.org 1075724524 4 Reclamele pe statusâ¦OUT
Babi Babi!romania@tserv04.mops.net none 1075723035 2 EOF from client
BrUne|a BrUne|a!jackson@will.dein.e-schokola.de none 1075711128 2 *.net *.split
BAD-B0Y BAD-B0Y!admin@carolrudi.users.undernet.org none 1075707603 2 Quit
Best-girl Best-girl!media@81.18.72.12 none 1075716359 2 Signed off
bobo1 bobo1!S6@194.105.21.72.ec.deva.rdsnet.ro none 1075723111 2 Read error: EOF from client
besinoasa besinoasa!~5THG5T@80.97.160.24 X!cservice@undernet.org 1075724204 4 (FlashHack) out fa
bla_r bla_r!6rtyr@81.196.246.158 none 1075724938 2 Ping timeout
BigVasa BigVasa!~bigvasa@sarutok.users.undernet.org none 1075726786 2 Read error: Operation timed out
A-T-B A-T-B!romania@loves.the.quake-net.org none 1075711128 2 *.net *.split
abgar abgar!candgj@home-326185.galati.astral.ro none 1075710101 1 #Erlangen
Ady15 Ady15!~Statia1@81.18.72.1 none 1075724832 1 #caras-severin
Adi}{ Adi}{!~st34@aladin18.users.undernet.org none 1075723337 1 #caras-severin
ALBERT}{ ALBERT}{!cyber14@80.97.160.239 none 1075723381 1 #caras-severin
aghiutza_ aghiutza_!aghiutza_@82.208.146.120 none 1075725905 2 Quit
`johy `johy!~john@h00045a218cc4.ne.client2.attbi.com none 1075694253 3 lotus}{
_Raphaell _Raphaell!~DjScorpio@pose.adultplanet.ca none 1075698139 3 Raphaello
___Yo___ ___Yo___!Yo-klq@NBA17.users.undernet.org none 1075723091 2 Quit: bye
_ImhoteP_ _ImhoteP_!~scumpykul@godzillla.users.undernet.org none 1075724834 2 Quit: byeeee
</p>


<p><p>On a positive note, here is the perl script I wrote to set up local SSH2 
tunnels for POP3 or any other service that would otherwise pass credentials in 
plain text.  Note that you will need to set up a SSH2 private/public key for 
your local system.  This is well documented elsewhere.</p>


<p>
#!/usr/bin/perl â -*-cperl-*-
# 
# create ssh tunnels to send and receive mail securely
# loop and sleep to ensure connections
use strict;
use POSIX qw(setsid);
use File::Basename;
our $VERBOSE = ($ARGV[0] eq '-v');
our $DEBUG   = 0;
our $pidfile= '/tmp/ssh-tunnels.pid';
our $piddir = '/tmp/ssh-tunnels';
our $ssh = '/usr/local/bin/ssh';
$SIG{CHLD} = sub {wait()};
# port => realhost
my %forwards = (2110 => 'aliensaliensaliens.com:110',
                2111 => 'name.withheld.com:110',
                2112 => 'shameful.network.provider.com:110',
                9080 => 'use.perl.org:80',
               );
my $action = pop @ARGV;
my %dispatch = ( stop => \&stop,
                 status => \&status,
               );
if (defined $dispatch{$action}) {
  $dispatch{$action}->();
  exit;
}
# otherwise, attempt to start
if (getstatus() eq 'running') {
  warn "Can't start. Already running\n";
  exit 1;
}
unless ($DEBUG) {
  open STDERR, ">>/tmp/ssh-tunnels.log";
}
warn "started: " . localtime() . "\n";
daemonize() unless $DEBUG;
while (1) {
  while (my ($lport, $host) = each %forwards) {
    if (-e "$piddir/$lport.pid") {
      my $pid = getpid($lport);
      if (-e "/proc/$pid/status") {
        next;
      }
    } 
    start_tunnel($lport, $host);
  }
  sleep 120;
}
#ââââââ-
# subs
#ââââââ-
sub getpid {
  my ($port) = @_;
  my $file = "$piddir/$port.pid";
  return unless -r $file;
  open my $in, $file or die "can't open file: $file\n";
  my $pid = ;
  close $in;
  ($pid) = ($pid =~ /^(\d+)/);
  return $pid;
}
sub setpid {
  my ($port, $pid) = @_;
  my $file = "$piddir/$port.pid";
  mkdir $piddir unless -d $piddir;
  open my $out, ">$file" or die "Can't write '$file': $!";
  print $out $pid;
  close $out;
}
sub getserverpid {
  return unless -r $pidfile;
  open my $in, $pidfile or die "can't open pidfile: $pidfile\n";
  my $pid = ;
  close $in;
  ($pid) = ($pid =~ /^(\d+)/);
  return $pid;
}
sub setserverpid {
  my ($pid) = @_;
  open my $out, ">$pidfile" or die "Can't write '$pidfile': $!";
  print $out $pid;
  close $out;
}
sub start_tunnel {
  my ($lport, $host) = @_;
  my $cmd = "$ssh -2 -N -L$lport:$host jjohn\@localhost";
  if ($VERBOSE) {
    warn ("starting: '$cmd'\n");
  }
  unless (fork()) {
    setpid($lport, $$);
    exec $cmd;
  }
  sleep 2; # parent sleeps, kid never sees this line
}
sub daemonize {
  close STDIN;
  close STDOUT;
  if (fork()) {
    warn("$$: exiting\n");
    exit;
  }
  setsid();
  open STDIN, ">/dev/null";
  open STDOUT, "/dev/null";
  setserverpid($$);
}
sub stop {
  my $pid = getserverpid();
  mykill($pid);
  print "Killed server: $pid\n";
  # stop the tunnels too
  while (my ($lport, $host) = each %forwards) {
    $pid = getpid($lport);
    mykill($pid);
    print "Killed tunnel: $pid\n";
  }
}
sub mykill {
  my ($pid) = @_ or return;
  while (-e "/proc/$pid") {
    kill -9, $pid;
    sleep 1;
  }
}
sub status {
  my $pid = getserverpid();
  my $status = getstatus($pid);
  my $name = basename($0);
  print "$name is $status\n";
}
# returns a one-word status for service
# 'running', 'stopped'
sub getstatus {
  my ($pid) = @_;
  # should grep through status to ensure 
  # this is the right process
  if (-e "/proc/$pid/status") {
    return "running";
  }
  return "stopped";
}
</p>


<p><p>Please note that although I forward to use.perl.com:80, I'm so far unable 
to use the SOAP interface to the journals through this tunnel.  If anyone was 
some pointers on doing this, spill the beans in the comment section.  One last
bit, I've turned off all port forwarding on my firewall. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17168">post</a> and <a href="http://use.perl.org/comments.pl?sid=18276">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[orkut]]></title>
    <link href="https://www.taskboy.com/2004-02-01-orkut.html"/>
    <published>2004-02-01T00:00:00Z</published>
    <updated>2004-02-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-02-01-orkut.html</id>
    <content type="html"><![CDATA[<p>I've joined <a href="http://www.orkut.com/">orkut</a>.  May God have mercy on my poor soul.
<p>update: Gosh, a lot of people want to be my friend, yet I have no "hearts" yet.  Don't make me beg, people.  ;-)<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17139">post</a> and <a href="http://use.perl.org/comments.pl?sid=18241">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]    Standardized  XML.]]></title>
    <link href="https://www.taskboy.com/2004-01-30-[MarkovBlogger]____Standardized__XML.html"/>
    <published>2004-01-30T00:00:00Z</published>
    <updated>2004-01-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-01-30-[MarkovBlogger]____Standardized__XML.html</id>
    <content type="html"><![CDATA[<p><p>It's  funny  how  the  "laws"  of  supply  and  demand mean  that  whatever  benefits   I  get  stuck  on  a  CT 
scan,  but  we're  still  going  to  earn  your  fandom. 
Is  there  going  to  fiddle  with  the  posit  that 
all  the  time  being  and  change  things  you  have  to 
stick  to  complaining  about  code  my  predecessors  left
 me,  and  has  a  volume  control,  but  only  between 
various  formats  as  needed),  but  that  will  work,  I 
leave  an  unpleasant  word  being  exchanged.  But  this 
is  a  17<br>  joe  johnston  is  concerned  about  his 
fantastic  module,  SOAP::Lite.  (If  you  weren't  crazy. 
Occasionally,  a  manager  at  the  same  conditions  in 
space,  required  17  psi  of  oxygen  at  sea  level 
where  in  space  they  would  presumably  stop  bickering 
over  <a href="http://www.suck.com/daily/2000/10/17/1.html">"holy</a>

<blockquote>
  <p><a href="http://www.bjp.org/history/rjb1-v96.html">places"</a>
  .)  And  second  off,  the  problem  and  to  prove  to 
  them  for  a  30g  hard  drive  around  the  inner  harbor,
   there  isn't  any  excuse  for  Python?  <br>&lt;purl> </p>
</blockquote>

<p><br><br><br>[EDITOR: The usual disclaimer for MarkovBlogger that normally appears at the bottom of its entries was somehow eaten.  Joe Johnston is most certainly not the author of SOAP::Lite, but is the author of articles about that Perl module.] <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17099">post</a> and <a href="http://use.perl.org/comments.pl?sid=18196">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[laying cable]]></title>
    <link href="https://www.taskboy.com/2004-01-30-laying_cable.html"/>
    <published>2004-01-30T00:00:00Z</published>
    <updated>2004-01-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-01-30-laying_cable.html</id>
    <content type="html"><![CDATA[<p>Earlier this month, Verizon informed me that the static IP address associated with my DSL line was going away in early Feburary.  This bummed me 
out, since there are a number of servers that I use that depend on a static IP,
not the least of which was sendmail's relaying rules up at ol' 
<a href="http://aliensaliensaliens.com/">Aliens, Aliens, Aliens</a>.  To keep 
that static IP, my DSL fee would double.  That option was ruled out 
early.  Recently, Comcast rewired my building to support cable modem access.
I decided to give the cable modem service from Comcast a try and upgrade my
venerable analog cable to the fancy-dan digital cable system.
<p>The installation went more or less smoothly today and I write this through 
my cable modem connection.  I will be dumping all my Verizon services, which
will save me $50/month. <br>
<p>Yea me!
<p>Some quick notes for those using Verizon DSL.  Verizon requires your 
machine to make a PPPoE connection.  The Linksys BEFSR41 can do this handily. 
Comcast's cable modem simply uses DHCP, presumably because you need to inform
them of the modem's MAC address.  Why Verizon DSL can't use a similiar method 
is a bit beyond me. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17097">post</a> and <a href="http://use.perl.org/comments.pl?sid=18194">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[by the numbers]]></title>
    <link href="https://www.taskboy.com/2004-01-27-by_the_numbers.html"/>
    <published>2004-01-27T00:00:00Z</published>
    <updated>2004-01-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-01-27-by_the_numbers.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://freshair.npr.org/day_fa.jhtml?display=day&amp;todayDate=01/30/2003">Terry Gilliam on FreshAir 2003</a>:<blockquote>
FreshAir: What did you think of <em>Harry Potter</em> [ed. a movie 
for which Gilliam was auditioned and rejected]?
<br>
Gilliam: It was crap.  It was pedestrian â by the numbers <br>
â¦ unlike <em>Lord of the Rings</em>
</blockquote>
<p>The interview focuses on the documentary <em>Lost in La Mancha</em>, which 
follows Gilliam as his project to make a Don Quixote film adaptation falls 
into ruin and despair. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17044">post</a> and <a href="http://use.perl.org/comments.pl?sid=18136">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[digital music is Growing Up]]></title>
    <link href="https://www.taskboy.com/2004-01-26-digital_music_is_Growing_Up.html"/>
    <published>2004-01-26T00:00:00Z</published>
    <updated>2004-01-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-01-26-digital_music_is_Growing_Up.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://news.bbc.co.uk/2/hi/business/3424483.stm">Gabriel and Eno launch musicians union</a>:<blockquote>
&laquo; "The digital environment will change the way music is made, and here artists need a voice", Peter Gabriel told BBC News Online at the World Economic Forum in Davos.
<br><br>
In the age of digital downloads musicians and the music industry have had to find a way of giving consumers what they want while securing revenue streams. 
<br>â¦<br>
Gabriel said he could not understand big music stars that advocated free music downloads while accepting big cheques from record companies at the same time.
<br><br>
After all, most artists depended on record sales for up to 60% of their income, he said. 
&raquo;
</blockquote>
<p>Having both ended <a href="http://www.witness.org/">political persecution</a> and 
dissolved <a href="http://46664.tiscali.com/">South Africian apartheid</a>, 
I guess Gabriel needed a new hobby.  Making records gets boring. ;-)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/17017">post</a> and <a href="http://use.perl.org/comments.pl?sid=18105">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]    books  and  things.]]></title>
    <link href="https://www.taskboy.com/2004-01-23-[MarkovBlogger]____books__and__things.html"/>
    <published>2004-01-23T00:00:00Z</published>
    <updated>2004-01-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-01-23-[MarkovBlogger]____books__and__things.html</id>
    <content type="html"><![CDATA[<p>I  get  four  days  ago,  more  or  less.  These  days, the  expectperl  mailing  list  pointed  out  some  stuff 
that's  likely  to  come  to  put  it  in  the  wrong  way 
after  I've  pumped  a  bunch  of  Perl  5.8.0  and  Hugo 
this  morning  was  not  as  fit  as  I  saw  DP,  but  the
 undercurrent  of  optimism  then  -  well  except  <a href="/~acme/">acme</a>  I  guess.</p>

<p><p>I  then  spent 
the  time  and  dealt  with  a  basic  Engrishifier 
working,  I  figure  out  how  banks  of  patches  for 
bleadperl,  then  I  typed  the  code  in  <a href="http://use.perl.org/comments.pl?sid=12524&amp;cid=19490">
a comment</a>.  There's  a  way  to  leverage  that  OS  to
 get  this  to  my  journal  up  to  100%  yet,  how  the 
New  York  Army  National  Guard  kids  with  guns.  "What 
happens  if  the  AppleScript  directly.  Stupid  Mac  OS 
X  permanently  someday,  if  I  do  finally  manage  to 
fix  it  up  on  your  desk  you  will  see  them  two  or 
five  can  be  found  in  coffee  shops  almost  oblivious 
to  their  usual  timeslot!  Dear  Log,  <p>As  a  charming
 rumination  over  the  Inter-Net  with  my  line  and 
sinker.    So,  like  a  regular  attendee  again.  And 
record  video  and  audio.<p>  Price  Chopper  had  a 
PAUSEID  (mostly  AxKit  modules  by  <a href="/~kingubu">Kip</a>  and  <a href="/~darobin">Robin</a>),  but  still,  that's.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16966">post</a> and <a href="http://use.perl.org/comments.pl?sid=18044">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[talking henchman]]></title>
    <link href="https://www.taskboy.com/2004-01-23-talking_henchman.html"/>
    <published>2004-01-23T00:00:00Z</published>
    <updated>2004-01-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-01-23-talking_henchman.html</id>
    <content type="html"><![CDATA[<p><a href="http://www.ubergeek.tv/blurbfest/">From ubergeek, with love</a>.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16974">post</a> and <a href="http://use.perl.org/comments.pl?sid=18054">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[low spirits]]></title>
    <link href="https://www.taskboy.com/2004-01-22-low_spirits.html"/>
    <published>2004-01-22T00:00:00Z</published>
    <updated>2004-01-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-01-22-low_spirits.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://news.bbc.co.uk/2/hi/science/nature/3421071.stm">Nasa rover breaks down on Mars</a>:<blockquote>
&laquo;Nasa's Mars rover Spirit has stopped sending useful data to Earth from the Red Planet and mission scientists are unable to send it commands.
<br><br>
Nasa says the problem could either be due to a major power fault, software corruption or memory corruption. &raquo;
</blockquote>
<p>Knowing that Spirit is running java for some of its systems, one might be 
tempted to crack wise.  However, <a href="http://www.sun.com/aboutsun/media/features/mars.html">James Gosling</a> 
says that there's no Java 
on board the rover:</p>

<blockquote>
&laquo;For the command and control system, big parts of it are this rather large Java application. There are a lot of parts involved in this. The Rover itself has a computer onboard. There's no Java in that computer now. But on the ground-side, there are a number of parts of the whole command and control chain that goes out to the Rover that's done in Java. It's not like every last piece of every subsystem is based on the Java code. Great big pieces of it are. In particular, all the data visualization, user interface front-end stuff and I believe a whole lot of the database stuff is.&raquo;
</blockquote>

<p><p>Will this contretemps hinder Bush's ambitious manned Mars mission?  </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16959">post</a> and <a href="http://use.perl.org/comments.pl?sid=18037">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]    Pretzels:  America's  new  war    Zim  Il]]></title>
    <link href="https://www.taskboy.com/2004-01-16-[MarkovBlogger]____Pretzels___America&apos;s__new__war____Zim__Il.html"/>
    <published>2004-01-16T00:00:00Z</published>
    <updated>2004-01-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-01-16-[MarkovBlogger]____Pretzels___America&apos;s__new__war____Zim__Il.html</id>
    <content type="html"><![CDATA[<p>doesn't  have  that  one  of  the  most  common  HTML elements  to  promote  readability.   Quick</blockquote></p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16853">post</a> and <a href="http://use.perl.org/comments.pl?sid=17930">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Hail to the King - Part 3]]></title>
    <link href="https://www.taskboy.com/2004-01-12-Hail_to_the_King_-_Part_3.html"/>
    <published>2004-01-12T00:00:00Z</published>
    <updated>2004-01-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-01-12-Hail_to_the_King_-_Part_3.html</id>
    <content type="html"><![CDATA[<p><p>An Epic Tale of Obsession, Magic and Basic Silliness<p><em>Part 3: The Viewing</em>
<p>To recap: After a long trek to the theatre, my friends and I waited another
three hours for the first film to begin.  But before the movie could be shown, 
I had to watch the advertisements. 
<p>The reason I mention the following ads has less to do with the financial 
consideration they pay me and more to do with that the three ads below ran 
before each of the movies.  Like an army movie about venerial disease. The 
first film has quite a lot in common with a militart training film because 
it was a public service announcement about the consequences of pot smoking 
and baby sitting, America's secret shame. 
<p>The ad opens by showing a ground-level pool and several childrens' toys 
conspicuously close to the water's edge.  A voiceover says "Go ahead. What's
the harm in smoking a little dope?"  A toddler then lumbers toward to the pool
in the inebriated way that they do.  The voiceover continues, "you can just 
tell the parents that their baby daughter fell into the pool while you were 
smoking pot!"  For a moment, this sounded like a suggestion.  I asked 
zorknapp, "Dude, do you think that would really work?! Cool!"  Zorknapp assured
me that the announcer was being ironic and not giving advice.
<p>The next ad was for some kind of Coca-Cola product that had something to do
with computers and music.  The spokesman was a suburban teenager that 
thought he was a "playa," despite the lack of any ghetto time or discernable 
street cred.  What I do remember is the name of his dog, "Maxx."  I also recall
that other members of the audience remembered this pooch's name because we all 
loudly greeted Maxx when we saw his image for the last time before <em>Return 
of the King</em>.
<p>The last ad I can recall with any distinction was clearly aimed at a 
demographic to which I did not belong.  In it, a young lady orgasmically 
cavorts on CGI beach in a rain of CGI rose petals.  Then she appears in the 
crest of a CGI wave.  If you guessed that the ad was for a femine hygene 
product, you'd be off the mark a bit.  The object of the advertisement was 
perfume. 
<p>With ads viewed and lunch consumed (I went for the hot dog and awful, awful
curly fries for $8), it was time for <em>The Fellowship of the Ring</em>.  This 
was the extended cut that included more Bilbo and Boromir scenes.  The additional
scenes improved the clarity of the plot significantly.  Fellowship, I think, 
stands out as the best realized movie of the trilogy.
<p>Four hours later, Frodo and Sam have broken the Fellowship to set out on 
their own for Mordor.  I, similarily, set out for the men's room.  Like the 
orc-infested Black Gate of Moria, the closest water closet is unassailablly 
congested.  Luckly, I knew that more facilities were available further away 
from the HALL OF VIEWING.  This incident just proves the old adage: fortune 
favors the bold.
<p>As 6PM approached, we all found our way back to our seats and watched the 
same commercials again, after which the extended version of <em>The Two 
Towers</em> began.  Again, a good time was had by all. 
<p>It was only after the second film ended at 9:30PM that I began to 
realize that I wasn't getting out of the theatre any time soon.  However, after
two meals at the concession stand, I needed more credible food.  Excerising 
the right of return, I left the theatre to patronize a near by Subway.  What 
bread!  I returned in time for the 10:15PM premire of <em>Return of the 
King</em>.  When the movie finished at 2:00AM on Wednesday (recall that I 
arrived at the theatre Tuesday Morning), I was emotionally and 
physically spent.  Public transportation had long sinced closed for the night, 
so I wearily ambled home along the Gray Pavement, through hookers, nightclubbers 
and street freaks.  At my journey's end, I slept the Sleep of the Just.
<p>Some have complained that <em>Return of the King</em> is just a long battle 
scene.  However, this claim is meritless when viewing the entire trilogy. <br>
If a good story has a beginning, middle and end, then surely one ought to have 
been expecting the long foreshadowed War for the Ring to be a major component 
of this concluding film.  However, there is a lot more in this last episode 
that just imaginary monsters fighting make-believe heroes for pretend glory. <br>
Jackson's trilogy beautifully renders that all too common struggle of 
stepping out of the shadow of one's parents, a theme that, while present, 
isn't as strongly illuminated in Tolkien's work.  The struggle of Frodo to 
master his own quite unhobbit-like fate is wonderfully cantalevered with 
Aragon's ambivalence about his own destiny.  Although both succeed in their 
quests, Frodo is utlimately consumed by the consequences of his decisions 
while Aragon prospers (as has been noted, it's good to be the King). <br>
Frodo's sacrifice allows the last flowering of Numenor and the 
begining of the Age of Men.  That is, the world of Faery departs for the world
we know today.  This is the stuff of Nordic legend.  It's Thor 
and Odin fighting the giants at Ragnarok even though they know they will 
perish, although new gods will take their place.  It's like reading the battle 
of Hector and Achilles in Homer's Ilyad or watching Macbeth's murderous
climb to power come undone by fate.  There is nothing so engaging to watch 
than a well-plotted doom. <br>
<p>Jackson's Ring movies take from Tolkien those themes that could be most 
readily adapted for a motion picture.  He rightly avoided a literal 
translation of the books and in doing so created something new that even 
well-read Tolkien fans can enjoy.  Tolkien would have approved of this 
"subcreation" for much the same reason that he himself reworked the Eddas, 
Sir Gawain, Beowulf and the Denham Tracts into Middle Earth.  The movies 
do nothing to dimishes the books and perhaps will introduce Tolkien to 
an even broader audience.  And for this, Peter Jackson's work should be 
embraced by all true fans of <em>Lord of the Rings</em>.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16776">post</a> and <a href="http://use.perl.org/comments.pl?sid=17848">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[junk food]]></title>
    <link href="https://www.taskboy.com/2004-01-11-junk_food.html"/>
    <published>2004-01-11T00:00:00Z</published>
    <updated>2004-01-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-01-11-junk_food.html</id>
    <content type="html"><![CDATA[<p><p>The last several weeks have not been good ones for those of us that eat.  Not only has the first US mad cow outbreak happened, but a damning 
report was issued about the scary levels of PCB found in aquacultured 
salmon.  Experts now recomend eating salmon only one a month.  In December 
2003, tuna was singled out for having very high levels of Mercury 
(eat it only weekly).  Just when you start to think that the Vegans may be 
on to something, 
<a href="http://www.guardian.co.uk/food/Story/0,2763,1120569,00.html">The 
Guardian</a> reports trepidations (albeit minor ones) over Kiwi 
fruit, coffee and potatoes.  Of ice cubes, the article says this:</p>

<blockquote>
&laquo;Even ice cubes could not avoid the wrath of the health inspectors. 
The Health Protection Agency found almost half the ice cubes that 
it tested in London bars contained bugs found in human faeces, with 
5 per cent containing the lethal E.coli bacterium.&raquo;
</blockquote>

<p>
<p>Like any public issue, there are political forces at work on both sides 
of the "how clean does our food have to be" debate.  Obviously, we'd all like 
to eat heavenly ambrosia and divine nectar but I haven't seen that for sale 
at my Costco's lately.  Ideally these health scares will promote a round of 
general improvement in the care of livestocks, but I have low expectations for 
long-term improvement.  Humans (and many other creatures, including the 
much-loved beaver) foul their environments.  That is the unavoidable 
consequence of living.  It is true that we, using our mighty organs of reason, 
can choose to live less rapaciously but that is unlikely to happen globally 
or permanently. 
<p>What's needed is a <em>new planet</em> or at least new environments.  It 
has been clear to me that we need to slip the silvery bond of this earthy sky 
and exploit new hemispheres.  The future of humanity is not only in surviving
hostile environments, but florishing in them.  Like cockroaches.  I suggest 
this seriously, without panic or malice.  It has been clearly demonstrated 
that large populations of humans require a bit more resources (and dumping 
grounds) that one Earth-sized planet can provide.  So what are 
we waiting for?  Why not get down with our bad, greedy selves and begin in 
earnest the conquest and colonization of space?  Waiting for the total 
collapse of the local ecosystem before starting a colonization program would 
be a fatal mistake.
<p>Chew on that for a while. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16756">post</a> and <a href="http://use.perl.org/comments.pl?sid=17828">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Goodbye, static IP DSL]]></title>
    <link href="https://www.taskboy.com/2004-01-09-Goodbye,_static_IP_DSL.html"/>
    <published>2004-01-09T00:00:00Z</published>
    <updated>2004-01-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-01-09-Goodbye,_static_IP_DSL.html</id>
    <content type="html"><![CDATA[<p>For the past four years, I've enjoyed having a static IP address for my DSL connection while paying for basic consumer service.  It's been lovely. <br>
Because I collect all my email onto one 
linux box on my home LAN, I can ssh into my machine even when I work remotely.
This makes me happy.  Unfortunately, Verizon has just sent me hate mail 
informing me that the gravy train will end Feb 6.  My options are these:</p>

<ol>
<li>Go with the dynamic PPPoE DSL service (no change in speed) ($45/mo)
<li>Go with a business package for the static IP (an additional $40 cost, 
no change in speed)
<li>Chuck verizon and go with comcast cable modem service (I'm already a 
subscriber to their TV service) $35/mo, possibly less.  Double the download
speed, perhaps four times the upload speed.  I would need to buy a modem and 
pay an initial fee.  
</ol>

<p><p>My current DSL plan provides me with 640Mbs download and a whopping 
64Kbs upload.  I can get better average speeds with the cable modem 
service.  My Linksys router already supports PPPoE (thankfully).
<p>Leveraging the mighty forces of the Interweb, I ask:  which option 
would you pick?<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16743">post</a> and <a href="http://use.perl.org/comments.pl?sid=17812">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]    Eurasia!    More  crowding  of  the  Day    Cookbooks  .]]></title>
    <link href="https://www.taskboy.com/2004-01-09-[MarkovBlogger]____Eurasia_____More__crowding__of__the	Day____Cookbooks__.html"/>
    <published>2004-01-09T00:00:00Z</published>
    <updated>2004-01-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-01-09-[MarkovBlogger]____Eurasia_____More__crowding__of__the	Day____Cookbooks__.html</id>
    <content type="html"><![CDATA[<p>the  W3C  standards  process.  It's  so  cute,  I  want to  end:  <blockquote> First I don't have a good pointer
to a Web page explaining his proposal, so I'm having to do
this from memory. I'm not going to buy his book because I
don't want to give him any money because I find what he
wants so unsupportable. If you've read his book, and if
I've got his proposal wrong, please send me a correction.
Thanks. </blockquote>  Translation:  This  is  costing 
businesses  millions  of  internet  with  dedicated 
terminals  that  has  a  special  event  of  this  fragment
 as  part  of  an  error?  Should  I  just  spent  three 
days  (actual  work  time  of  the  s/w  group,  which  was
 the  point?  Filesystems  are  supposed  to  be  doing  it
 somewhat  manually.  This  will  of  course  the  parsers 
to  be  less  of  a  chicken  Caesar  salad  wrap.  Pretty 
good,  and  let  him  do  it  yourself.  <p>We  had  agreed
 with  the  testbed,  I'll  start  working  on  some  of 
you  who  don't  actually  have  to  be  eval'ed.  Nice 
approach,  much  easier  and  a  conference  in  1999  with
 CSV  over  HTTP  before  it  sets.  Get  a  little  more. 
I  do  try  to  be  walking  soon;  the  Bruins 
were  right  to  publish  a  book  reviewer  and  ask  it 
"Helo  hyoomon  female,  let  us  adopt  your  software 
aggregators,  have  to  admit  that  the  conference  hotel
 also  helps.  Last  year  I  try  it,  you'll  lose 
control  of  my  PC  no  matter  if  you  send  a  bug 
apparently  has  or  had  a  tendency  to  forget  what 
Konrad  Zuse  was  doing,  and  it  just  int()izes.  And 
of  course,  which  by  the  pool,  the  expo  hall,  or 
the  way  I  can  do  is  work  that  has  to  load  up  an
 entry-doesn't-exist  error  from  Journal.pm.  I'm 
guessing  this  is  the  README  file  for  the  O'Reilly 
Network  about  finding  a  machine  to  open  source 
project  to  be  in  a  parameter  means  one  thing  in 
<a href="http://www.yetanother.org/dan/">awful
yellow-over-black</a>  for  Dan.  </p>  <p>  I  agree  with
 his  problems,  bugs  and  lack  of  desire  removed  this
 from  Perl.  I'd  forgotten  how  much  of  the  week  you
 haven't  been  thoroughly  tested  yet.  I  guess  I 
should  not  be  the  best    way  to  look  after  is 
enough  for  now.  (Insecure  in  the  Gospel  of  Christ 
forbids  killing  for  any  large  application  that 
targets  the  guilty,  right?  Carnivore  is  just  an 
irrational  fear  of  running  packages  right  from  the 
outside  is  somehow  revealing  tiny  drafts  in  even 
the  frequent  bits  of  Perl  Mongers  list  since  day 
one,  this  is  a  pain  in  the  morning,  and  submitting
 it  to  work.  The  total.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16729">post</a> and <a href="http://use.perl.org/comments.pl?sid=17798">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Sarah Vowell interview with THE Robert Birnbaum]]></title>
    <link href="https://www.taskboy.com/2004-01-08-Sarah_Vowell_interview_with_THE_Robert_Birnbaum.html"/>
    <published>2004-01-08T00:00:00Z</published>
    <updated>2004-01-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-01-08-Sarah_Vowell_interview_with_THE_Robert_Birnbaum.html</id>
    <content type="html"><![CDATA[<p><p>Sarah Vowell is nerd goddess.  Informed, self-effacing and somewhat neutrotic, there is little not to love about Vowell's writing for radio's <a href="http://www.thislife.org/">This American Life</a>.  A self-confessed civics geek, her brand of tempered patriotism is fits like knitted slippers.  In <a href="http://www.identitytheory.com/people/birnbaum66.html">this interview</a>, it is just possible to glimpse  Vowell apart the eclipsing majesty of interviewer, Robert Brinbaum.  Of course most readers will know of this Important Journalist but for those benighted dullards who don't, here is the <em>small</em> biography Birnbaum appends to his interview with Vowell:</p>

<blockquote>
&laquo;Robert Birnbaum came to journalism, where he has been a practitioner for the past two decades, from a series of possibly (it's too soon to tell) educational vocational experiences that are too numerous to mention. In the '80s and '90s, as publisher/creative director of STUFF magazine in Boston, when he wasn't attending industrial gatherings, he interviewed nearly 500 hundred writers Â from Martin Amis and Isabel Allende to Marianne Wiggins and Howard Zinn Â and read almost 1000 books. He is currently, among other things, pondering if there is a place for him in a profession increasingly infested with vulgarians who believe 'editorial content' is celebrating restaurant and shop openings, endlessly lionizing the same small group of celebrities and reiterating the press releases of the publicists they have just had lunch with. He lives with his Labrador retriever Rosie and helps parent his young son Cuba Maxwell.&raquo;
</blockquote>

<p><p>What's delightful about Birnbaum's interviews is that even if the reader doesn't care for the interviewee, his questions are mini-essays filled with The Journalist's inimitable style and opinions.  The reader may safely gloss over the interviewee's responses and focus on the author's great talent.  While most writers are advised to "kill their darlings" to better craft their prose, he bravely ignores this mean stricture so that his readers may delight in uncut Birnbaum wit. <br>
<p>Robert Birnbaum: like Churchhill, you are a Great Man.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16709">post</a> and <a href="http://use.perl.org/comments.pl?sid=17776">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Hail to the King - Part 2]]></title>
    <link href="https://www.taskboy.com/2004-01-04-Hail_to_the_King_-_Part_2.html"/>
    <published>2004-01-04T00:00:00Z</published>
    <updated>2004-01-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-01-04-Hail_to_the_King_-_Part_2.html</id>
    <content type="html"><![CDATA[<p><p>An Epic Tale of Obsession, Magic and Basic Silliness<p><em>Part 2: The Waiting</em>
<p>To recap: after the long march to Loews and ensuing chaos, I finally got 
into the theatre in which all three Ring movies of Peter Jackon were to be 
shown. <br>
<p>It was about 9:30AM and I was already cheesed off.  I was cold, my 
breakfast had been prematurely discarded, I had been handed a document of what 
<em>not</em> to do during the movie and my hand was inky from the stamp
used by the theatre to thwart would-be gatecrashers (I later learned that 
just having the stamp or the ticket stub alone wasn't sufficient to prove 
that you were a legitimate ticket holder.  Both needed to be produced to be 
allowed back into the HALL OF VIEWING).  This was a lot of bureaucracy to 
handle outside the context of a job.
<p>The HALL OF VIEWING was on the first floor, conveniently located near both 
the restrooms and concession stand.  The HALL itself probably had a capacity 
around 500-1000 people.  Although the theatre was newly built, there was a 
kind of stage in front of the screen.  In the corner of stage right was both 
a podium and a table that I would later come to understand as Command and 
Control.  The HALL was about a third filled with the kinds of folks you'd 
expect at any all-day Tolkien event; lanky guys in their twenties 
with grimy hair and t-shirts; hippy chicks with dreadlocks; forty-somethings 
trying not to look awkward; Big-But-Beautiful girls clustered together 
(perhaps for fail-over purposes); college kids playing some kind of 
roleplaying game; a small host of elven princesses.  But, there were 
no hobbits, dwarves or wizards.  Ents were right out (this was another 
stricture of Loews).
<p>In short, these were my people. 
<p>My friend had staked out a prime location for our seats.  I would be 
shocked to learn that my seat wasn't dead center in front of the screen. <br>
On both aisle, several stern faced ushers were hunting for empty seats 
being held for ticket holders who had not yet arrived.  This was 
<em>verboten</em>! <br>
Perhaps some jackass was attempting to hold a whole row of seats for his 
buddies, but I don't think the theatre needed to organize goon squads to root
out the odd seat being held.  The HALL was two-thirds empty (or perhaps 
a third filled, if you think that way).  I made my way to Zorknapp.
<p>"Heya," I cleverly said. 
<p>Zorknapp handed me a menu with the following items:</p>

<ul>
   <li>1 hot dog, fries and a 32 oz. drink: $11
   <li>2 hot dogs, fries and a 32 oz. drink: $13
   <li>2 32 oz. drinks and a 170 oz. tub of pop corn: $8
   <li>tiny pizza and drink: $10
</ul>

<p><p>What I didn't notice at first was that these items would be <em>delivered 
to your seat</em>, which explains the mark up.  Or so I thought.  It turned out
that the mark was only about one dollar compared to what one pays at the 
concession stand.  This menu was all part of the overriding meme for that
day of "not moving out of my seat."  While I read through the menu, Zorknapp 
dropped the bomb on me: the first movie would start at 1:15PM.
<p>"But it's like 9:45AM now," I observed.
<p>"Right," replied Zorknapp.
<p>"So what do we do for three hours?" I wondered.
<p>"We wait," Zorknapp said solemnly.
<p>I hadn't thought through all the schedule of events too clearly.  In my 
fantasy, the movie would begin in mid-morning and all the films would be over
by early evening.  This suggests that some unknown German heredity exists 
somewhere in my family tree.  I forgot that I was at An Event.  The theme was
excess.  Of course movie fans would wait in pre-dawn light to get into a 
theatre to wait another four hours (remember, I was "late") for the first 
film to roll.  What was my problem? 
<p>It turns out that this pre-movie lull was the best part of the show. 
<p>Settling into time-burning mode, I cast another glance over the crowd. <br>
In the row below me, a fellow wore a t-shirt with the Letterman-esque "Top Ten
Ways You Know You're A Tolkien Fan" (number 8: "you call your father 
'Old Gaffer'").  On my right, one elven maiden was explaining the construction
of her costume to an interested party (of which I was not).  From behind me, 
a patron exclaimed "Geez, they screwed up the crossword puzzle. They used 
'Cereborn' in place of 'Celeborn.'  Morons!"  I hadn't seen the crossword 
puzzle, much less attempted to solve it.
<p>A women in a chartreuse shirt and black pants made An Annoucement from the 
front of the HALL without the aid of a public address system (which was a 
mistake because she was unable to project her voice loudly enough for the 
room).  She reminded us of the extortionate menu items and tolds us of two 
pre-movie activities, a trivia contest and a costume contest.  Also, a raffle 
was being held whose prize was a copy of Return of the King signed by 
all the movie's cast.  The costume contest was on deck first.
<p>Once a panel of impartial judges were selected, the small host of elven 
princesses were lined up (as if in front of a firing squad) on the stage.  I 
was too far from the stage and too uninterested to hear the details, but 
appearingly an elf princess won the contest!  But I suppose all the 
participants were winners after a fashion.  The trivia contest was next but I 
took even less interest in that since it was done without the aid of a PA 
system.
<p>Chartreuse Girl really got on my nerves.  She made about nine announcements 
that day and that's approximately nine more than were needed.  She ended 
most of weakly spoken implorations with that most ubiquitous of expressions 
"are there any questions?"  Any graduate of high school knows that this is the
siren song of the wiseass.  Although our better angels prevented us from 
uttering our thoughts too loudly, our little group did have a few questions. 
Like where did elf babies come from?  How do elves go "downtown?" And, was 
Our Lady of the Green Shirt going to be around after the show? <br>
<p>Really, we slew ourselves. 
<p>Time passes quickly when making fun of others.  Soon, the first movie began 
and the audience was introduced to the wonders of advertising.
<p><em>Tune in next Monday for the final installment of Hail to the King 
in which jjohn actually watches the bloody movies.</em> </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16622">post</a> and <a href="http://use.perl.org/comments.pl?sid=17679">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[paperless calendar]]></title>
    <link href="https://www.taskboy.com/2004-01-03-paperless_calendar.html"/>
    <published>2004-01-03T00:00:00Z</published>
    <updated>2004-01-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-01-03-paperless_calendar.html</id>
    <content type="html"><![CDATA[<p><p>I don't have a meatspace 2004 calendar.  Can I go the whole year just with my palm pilot?  We'll see.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16604">post</a> and <a href="http://use.perl.org/comments.pl?sid=17660">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Glue  in  Oracle    Amusement  of.]]></title>
    <link href="https://www.taskboy.com/2004-01-02-[MarkovBlogger]__Glue__in__Oracle____Amusement	of.html"/>
    <published>2004-01-02T00:00:00Z</published>
    <updated>2004-01-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2004-01-02-[MarkovBlogger]__Glue__in__Oracle____Amusement	of.html</id>
    <content type="html"><![CDATA[<p>like  A  Certain  Ratio  and  Durutti Column  only  got  family  stuff  before  I  had 
wireless,  you  could  split  a  logfile  into  one  wing 
of  the  nicer  things  about  developing  performance 
critical  applications  in  Perl.  Thanks  to  Sarathy,  I 
got  another  one  but  not  yet  even  had  food,  so 
it's  not  just  two  more  days  to  dislike.  My 
daughter  enjoyed  her  first  trip  to  Singapore  and 
Australia  late  last  night.  The  wrong  characters 
died.  <p>I  have  now  managed  to  physically  get  the 
correct  app.  Well,  that  and  see  a  lot  of  hard-work
 and  the  other  day  and  work  by  themselves  as  a 
Linux  machine,  in  order  to  return  the  stolen 
fireâwith  interest  (the  Discworld  equivalent  of 
"&lt;!â  and  now  Mauritius.  I'm  taking  them  to 
out.mp3".  Does  anyone  here  think  of  it.  At 
first  he  simply  added  comments  to  be  able  to  read 
<a href="http://www.amazon.com/exec/obidos/tg/cm/member-review
s/-/AFXFDLFL1MJTH">my Amazon reviews</a>  and  because  I 
always  seem  to  be  over  160  people  at  <a href="http://london.pm.org">london.pm</a>.  This  was 
Tom's  adviceâI  wasn't  particularly 
umask-clueful  when  we  returned  to  normal 
(whatever  that  is).  If  you  can  implement  them 
properly.  sub  insert_cards  {  foreach  $newcard 
(@newcards)  {  $newcardname  =  $newcard  =~ 
/:.+?:/;    $stock  =  $card  =~ 
s/:.+?:/:$stock:/;    }      if  (  Want::want(
 'RVALUE'  )  )  {<br>    return  @features;    foreach 
$card  (@cards)  {    $newstock  =  $newcard  =~ 
/^.+?:/;    if  $test{bonus};<br>    print  "Size: 
$size\n";  }  closedir(DIR);  I've  posted  a  link  to 
"Order  Zeta  RC1  Now!"  on  the  market  is  in  cahoots 
with  the  apartment,  I  opted  to  walk  from  the  "must
 be  asbolute  path"  caveat.  Files  is  mostly  done  for
 me?  As  little  as  he  often  had  something  like  this
 from  crontab  (note  that  I  did  have  a  standard 
module  that  approximates  LAMP.  <p>  Why  is  this  yet 
another  very  productive  in  a  Windows  PC  out  of 
lugging  two  suitcases  of  books  from  ORA  as  I  awoke
 late  for  Dyson's  talk,  who  went  to  our  web  proxy 
filtering  software  to  the  various  Apple  developer 
thingys.  Most  of  the  day  (a  typically  warm  early 
fall  or  late  spring  day  in  and  out  schism  and 
continue  on.  <p>  It's  interesting  because  it  was 
freeware,  and  the  part  they  play  in  the  habit  of 
laying  out.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16583">post</a> and <a href="http://use.perl.org/comments.pl?sid=17638">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Hail to the King - Part 1]]></title>
    <link href="https://www.taskboy.com/2003-12-29-Hail_to_the_King_-_Part_1.html"/>
    <published>2003-12-29T00:00:00Z</published>
    <updated>2003-12-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-12-29-Hail_to_the_King_-_Part_1.html</id>
    <content type="html"><![CDATA[<p><p>An Epic Tale of Obsession, Magic and Basic Silliness<p><em>Part 1: The Gathering</em>
<p><a href="http://www.dict.org/bin/Dict?Form=Dict3&amp;Database=wn">WordNet</a> 
defines addiction as:</p>

<blockquote>
&laquo;being abnormally tolerant to and dependent on something that 
is psychologically or physically habit-forming&raquo;
</blockquote>

<p><p>Addiction is at the core of J. R. R. Tolkien's <em>Lord of the Rings</em>. 
For the author, the One Ring of the Dark Lord Sauron is that irresistible prize
that intensifies the most vicious and selfish instincts of Men and Hobbits 
alike.  It twists the desires and visions of its possessor into carrying out
the evil of the Ringlord.  Those that succumb to the Ring's influence turn into
wraiths, living corpses bereft of their own will.  Addiction is also a word 
closely associated with readers of Tolkien's work that has been 
magnificently rendered in film by Peter Jackson.  What but addiction could 
possibly explain the obsessive detail, spot-on locations, impecable casting 
and glorious sets brought together in Jackson's trilogy?  And what other force
would drive adults and man-children out into the frozen pre-dawn air of 
December 16 just to stand in line for twelve hours of movies for which 
they already had tickets?  Addiction, it seems, isn't just for hobbits and 
elves; it has also taken me.
<p>Months ago, my pal <a href="/~zorknapp/journal/">Zorknapp</a> mentioned that
when the last of the Jackson's Ring movies came out, some venues would be 
hosting a special event in which all three parts of the trilogy would be shown.
To sweeten the pot, extended versions of the first two movies would be played. 
Zorknapp was organizing a small group of friends to attend the event at the 
Lowe's Theatre on Boston's Tremont Street.  Since I'm a man of without a day 
job and a fan of both the books and the movies, I agreed to join this 
fellowship of the Ring movies.  But I was firm on not wearing hairy hobbits 
feet or pointy elven ears, although I was open to negotiation about bringing 
a wizardly staff.  Unfortunately, one of the many theatre regulations 
explicitly forbade bringing this token of office.  As I was to learn, these 
restrictions weren't entirely capricious. 
<p>Because Hollywood seems to delight in answering my lofty expectations of 
well-plotted narratives with hackneyed dreck even hopeless stoners wouldn't
find funny, my movie house patronage has become like my love-making: 
infrequent and frought with peril.  Accordingly, I was not in that fabled 
pre-dawn line that formed down the block of Lowes along Tremont Street and 
trailed off towards the Wang Center.  Only the night before was I told that 
I should be at the theatre around 9AM, when the doors opened.  This seemed a 
little early in the morning for epic movies, but I wasn't complaining. <br>
Remember, three movies, each four hours long.  Perhaps there was wisdom in 
getting an early start to the proceedings.  Since Lowes is only a few miles 
from my apartment, I opted to walk along Boylston Street so that I could 
enjoy the bracing, morally unambiguous air that blows down from the tundras 
of Canada (it's what I prize most about winters in New England).  Thinking 
that my friends might get peckish during the Long Slog of Tolkien, I bought 
some croissants.  Even though theatres normally frown on bringing your own 
food, I couldn't imagine the concession stand being open that early nor could 
I picture a long line for popcorn, candy and soda before lunchtime.  Besides 
this was a special event of The Fans.  This wasn't just another movie (or 
three), this was an Event.  Surely, this was going to be time when the 
normally frosty Bostonian demeanor would thaw a little into a sort of a muddy 
puddle of mild indifference?  Alas in this way and in others, I would be 
proven very, very wrong.
<p>By 9:45A, I was at the front doors of Lowes.  The sidewalk was empty. <br>
The only people immediately inside the lobby were employees.  Where was 
every one?  While I got my bearings, I held the door open for a Coca-Cola
delivery guy who was bringing in a palette of several cases of soda.  For 
many of my programming brethen, this vision would elicit urges not unlike 
those felt by Paris Hilton when she passes by the mall's T-Mobile store. <br>
While my attention was split between the tempting soda (which I call my 
"liquid friends") and looking for my companions ("fleshy friends"), most 
of soda bottles suddenly fell off the palette when the delivery guy failed 
to negiotiate the second set of doors adroitly.  Cross my heart - visions of 
the Rodney King L.A. riots flickered across my mind as I imagined a frenzied 
free-for-all of grabbing hands chasing after the sugary caffine.  However, 
seeing my pal <a href="http://www.jmac.org/weblog/?date=20031217">jmac</a>,
who was not in my fellowship (but was counted an ally nonetheless), broke my 
inane reverie.  jmac was in the small line of people who were being 
<em>processed</em> before being let into the HALLS OF VIEWING.  At 32, I've 
been to a few films and feel I've mastered the most salient points of 
movie-going ettiquette.  It is true that this knowledge has existed mostly 
in oral form though.  Until now.  Taking a page out of the Moses playbook, the 
management of Loews sententiously codified acceptable behavior of its patrons, 
to forestall any shenanigans.  One of the strictures was against the bring 
of <em>any</em> non-Loews food into the theatre.  They thoughtfully provided a 
large garbage barrel for such contraband at the table where tickets were 
collected and hands stamped.  Things were not looking good for my bag of 
croissants, eyed contemptously by the head ticket collector.
<p>"You'll have to throw those out," said Usher Rex.
<p>"But, uh, this my breakfast?" I said weakly.
<p>"You'll have to throw those out," repeated Usher Rex.
<p>Taking a farewell nibble out of one of the croissants, I tossed the bag 
in the barrel after discarding the idea of giving them to the ticket 
collectors, as a mature, neighborly adult might do.  With my ticket collected
and hand stamped, I proceeded into the HALL OF VIEWING to find my friends and 
meet my destiny.
<p><em>Tune in next Monday for the next installment Hail to the King in which 
jjohn asks: isn't $11 a little pricy for a hot dog?</em> </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16536">post</a> and <a href="http://use.perl.org/comments.pl?sid=17583">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Skeletor sings]]></title>
    <link href="https://www.taskboy.com/2003-12-27-Skeletor_sings.html"/>
    <published>2003-12-27T00:00:00Z</published>
    <updated>2003-12-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-12-27-Skeletor_sings.html</id>
    <content type="html"><![CDATA[<p><p>Gee, I wonder what a karaoke version of the Village People's YMCA would sound like in Japanese. <br>
<a href="http://www.mattround.freeserve.co.uk/files/tribute.swf">With Skeletor.</a> 
<p>Thank goodness for Flash technology.
<p>UPDATE: Also on that site is <a href="http://www.mattround.freeserve.co.uk/files/kungfupriest.mpg">a clip from Dead Alive</a>, 
Peter Jackson's second greatest film project.  This clip features the very
memorable line, "I kick ass for the Lord!"</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16519">post</a> and <a href="http://use.perl.org/comments.pl?sid=17561">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Return of the Filthy King]]></title>
    <link href="https://www.taskboy.com/2003-12-26-Return_of_the_Filthy_King.html"/>
    <published>2003-12-26T00:00:00Z</published>
    <updated>2003-12-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-12-26-Return_of_the_Filthy_King.html</id>
    <content type="html"><![CDATA[<p><a href="http://www.bigempire.com/filthy/">The Filthy Critic returns</a>.  Sort of.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16510">post</a> and <a href="http://use.perl.org/comments.pl?sid=17550">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  for  a  month!!!    "Life  on  less  than  $1  a  day"  .]]></title>
    <link href="https://www.taskboy.com/2003-12-26-[MarkovBlogger]__for__a__month________Life__onless__than__$1a__day___.html"/>
    <published>2003-12-26T00:00:00Z</published>
    <updated>2003-12-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-12-26-[MarkovBlogger]__for__a__month________Life__onless__than__$1a__day___.html</id>
    <content type="html"><![CDATA[<p><p>This  business  about  the  Excel  spreadsheets,  Word documents  and   Access  databases:  that  technology  is 
an  idiot.  That's  just  stupid.  I'm  thinking  it'll  be
 a  special  place  in  the  Library  and  randomly 
playing  some  kind  of  job  Perl  tools  would  normally 
be  the  best  job  in  my  lower  back.  :-)  Ripped  from
 the  price  and  the  full  version  is  infamous  for 
having  absolutely  no  need  to  sort  out  a  week  or 
two  besides  DBIx::Recordset  and  DBIx::SearchBuilder 
that  work  (to  some  pointed  questions  about  it.<p> 
Then  I  set  up  another  ideal  no  one  knows  about 
RTF;  it  also  uses  TeX  which  is  exactly  what  .NET 
is.  I  think  it  stands  it  could  have  done  it 
before.  I  haven't  managed  to  leave  alone.  This  is 
a  little  dry  spell.  .
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16503">post</a> and <a href="http://use.perl.org/comments.pl?sid=17543">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[dave winer really doesn't like free software]]></title>
    <link href="https://www.taskboy.com/2003-12-24-dave_winer_really_doesn_t_like_free_software.html"/>
    <published>2003-12-24T00:00:00Z</published>
    <updated>2003-12-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-12-24-dave_winer_really_doesn_t_like_free_software.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://archive.scripting.com/2003/12/24#editorial">Scripting News:</a></p>

<blockquote>
&laquo;One of the reasons American programmers aren't competing here (in America) is that users expect to get software for free, and in that environment little new stuff gets created, and we have to keep creating to justify the greater amount of money we make (over Indians). But if all we make are commodities, then Indians working for low pay beat Americans working for free. (People who work for free have no incentive to please users, or even create usable software.)&raquo;
</blockquote>

<p><p>Here's a business tip from your old pal Joe: create products that address real information pain for people with MONEY.  There's plenty of gold in them thar hills.  You just need the right pan.  <p>Frontier is <em>not</em> the right pan.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16490">post</a> and <a href="http://use.perl.org/comments.pl?sid=17526">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Happy winter solstice!]]></title>
    <link href="https://www.taskboy.com/2003-12-21-Happy_winter_solstice_.html"/>
    <published>2003-12-21T00:00:00Z</published>
    <updated>2003-12-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-12-21-Happy_winter_solstice_.html</id>
    <content type="html"><![CDATA[<p><p>It's winter solstice for the Northern Hemisphere today.  Today is the shortest day of the year.  More importantly, it means that 
tomorrow there will be more daylight time.  And more after that!  For those of
us who find the gloom of late fall despressing, this is a glorious day indeed.
<p>For all you Druids out there, remember collect your sacred mistletoe 
tonight.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16444">post</a> and <a href="http://use.perl.org/comments.pl?sid=17474">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Review:  Design  of  Everyday  Things.]]></title>
    <link href="https://www.taskboy.com/2003-12-19-[MarkovBlogger]__Review___Design__of__Everyday	Things.html"/>
    <published>2003-12-19T00:00:00Z</published>
    <updated>2003-12-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-12-19-[MarkovBlogger]__Review___Design__of__Everyday	Things.html</id>
    <content type="html"><![CDATA[<p>funny.  MJD  just  told  me  about  this  one,  it  just 2  minutes  before  I  was  copying  a    rather  in-demand 
skill,  having  just  recently  seen  it  before.  I  guess
 I  shouldn't  forget  the  <a href="http://www.ninjaturtles.com/html/profile7.htm">real
shredder</a>.</p>  <p><a href="http://www.capitalone.com">Capital One</a>  increased
 my  credit  rating.  I  got  back  from  <a href="http://www.google.com">Google</a>.  If  you  see  the
 PS  win  this  year's  MacArthur  Foundation  genius 
grants  is  <a href="http://www.macfound.org/programs/fel/2002fellows/meye
r_edgar.htm">Edgar Meyer</a>.  He's  an  awesome  movie.  I
 felt  it  this  way.  So  obviously  alliteration  is  on 
XSP,  because  everything  is  best  left  to  do  it, 
very  clearly.  Of  course  I  found  out  it  would  have 
had  a  great  time  and  I've  got  two  different  days, 
it  creates  a  Pascal  string.  A  relatively  recent 
addition  to  adding  root  menu  aliases  for  their 
sins)  seem  like  delicious  treats  in  comparisons. 
</p>  <p>    Problem  is,  my  tools.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16421">post</a> and <a href="http://use.perl.org/comments.pl?sid=17448">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[two men enter; one man leaves (with his shirt on)]]></title>
    <link href="https://www.taskboy.com/2003-12-15-two_men_enter;_one_man_leaves_(with_his_shirt_on).html"/>
    <published>2003-12-15T00:00:00Z</published>
    <updated>2003-12-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-12-15-two_men_enter;_one_man_leaves_(with_his_shirt_on).html</id>
    <content type="html"><![CDATA[<blockquote>&laquo;everybody was Kung Fu fighting<br>
those cats were fast as lightning<br>
in fact it was a little bit fright'ning<br>
but they fought with expert timing&raquo;
</blockquote>

<p><p>The windows of my apartment's living room open to the humbling vista of 
historic Fenway park, long may it's majestic JumboTron glow.  But in the valley
that exists between the mighty walls of the Green Monster and my fourth floor 
apartment, a stalwart McDonald's Hamburgers serves up all the saturated fats, 
sugar and salt that the good people of Boston, in any state of inebriation, 
might desire.  It isn't solely for the Fenway freaks liquored up on dearly 
bought baseball booze that McDonald's opens its doors, but also for Landsdown 
street lollygaggers and Ramrod rawhides who maintain a presence in the area 
all year round.  Also, local winos are welcome.  There's a place for everybody at the table of Ronald.
<p>In the eigth years that I've lived at my home, the parking lot of this 
Micky D's as been the stage upon which the small dramas of daily life have 
played.  For instance during home games, McDonald's will allow non-patrons to 
park in their lot for a mere $25-$30 dollars.  To organize this task, 
they contract the surliest, most ill-tempered man that can be allowed 
legally to interact unsupervised with the public to direct game spectators 
into parking spaces that are hardly wide enough for their SUVs, minivans and 
Crown Victorias, let alone their outsized asses.  The Miatas and their owners do fine.  Like a sinewy <a href="http://www.rleeermey.com">R. Lee Ermey</a>, 
the parking lot attentent bruskly orders the previously happy tourists into 
their assigned places.  Also like a drill instructor, he has little patience 
for incompetence.  A lot of yelling emanates from the lot on game days.  It's 
like road rage, but with only one car and no road.  He has come very close to 
fisticuffs with a number of his "customers" and I am certain that 
I will see the day that he gets clocked in the back of his gray, wizened head.
<p>Besides the seasonal delight of the Last Angry Parking Attendent, there are
isolated events that make this bit of asphalt worth watching.  For instance on 
warm weekend nights, male and female discotequers can be easily viewed from 
my place "making water."  The wood picket fence that walls the back of the 
parking lot (which is closest to me) has been attacked with bare hands on two 
occasions by young men who apparently enjoyed largish doses of metamphetamine. 
During the All Star game of 1999, a young (I'm guessing) North Shore woman 
spent the evening drinking low-rent beer in the packed parking lot and 
occasionally flashing her (regrettably) still-brassiered breasts in the 
direction of my building.  On yet another occasion a minivan that had 
moments before delieved a group of smartly dressed black church-goers to the 
McDonalds, burst into flames without warning. 
Moments later, there was a small but unexpected 
explosion that was the gas tank igniting (which, due to the size of the blast,
must have been mostly empty).  The 
smell of burnt rubber and other chemicals was dangerously present in my 
apartment while I spied the bewildered family impotently watching their car be 
consumed by fire.  Out my window, motorcycles have been clipped and throttled,
automobiles have frequently collided, sidewalks have been violated by cars, 
and Gay Pride day has been paraded.  Perhaps I should fix a web cam on the lot.
<p>Last night, another installment of McDonald's Parking Lot Theatre started
without warning.  At the time, I was watching the very excellent 
<a href="http://www.auntiemomo.com/samuraijack/">Samurai Jack</a>.  At some
point, I decided that the dulcet strains of heated words coming from the 
rear of the Golden Arches merited some investigation.  Often, I find that 
the raised voices are really those of joy or a good natured row.  Sometimes 
the argument is real but too brief to be entertaining.  On a rare occasion, you
can see some shoving.  Once, I saw a teenager shoved nearly through the glass
door of Ronnie's hizzle.  It's the greatest show on Boylston street.
<p>On this occasion, two twenty-something caucasians 
were in each other's faces.  By channeling Rainman, I can report the weather 
that night was about 39 &deg;F with a 10 mph wind.  Besides being a great 
narrative detail, the weather also supports my supposition that these guys 
specifically wanted to beat the crap out of each other.  You see, neither had 
on a jacket or anything heavier than a thin shirt.  One them, let's call him 
"Tipplin' Shawn," had on only a white tank-top of the variety precociously 
nicknamed "the wifebeater."  The other, hereafter referred to as "Ernest," 
wore a baseball cap.  Backwards.
<p>Those readers of my blog who have lived any length of time in Massachusetts
should now be able to finish the story.
<p>For the rest of you, the facts simply stated are these.  Good ol' Tipplin'
apparently has or had a tricked out car that he, Ernest and "some bitches"
were cruising in earlier that evening.  But, you know Tipplin'!  He had a 
little too much drinky, drinky and started driving on, get this, the 
<em>wrong side</em> of the road.  Not only were "the bitches" perturbed
by this, but so was Ernest!  Something then happened (an accident or the 
police â I didn't hear), that really underscored Ernest's concerns about 
Tipplin's driving on the wrong side of the road so that when I observed 
the two, neither the car nor "the bitches" were to be seen.  Which may help 
to explain 
the very pointed shouting and loudly prosecuted recriminations.  In 
particular, Ernest felt that Tipplin' really ought not to have driven on the 
wrong side of the road (as mentioned earlier), despite how cool it made 
them look and how excited it 
seemed to make "the bitches."  For his part, Tipplin' implored Ernest to 
"get off his back" and wondered if this was "friggin' Russia?"  Ernest claimed
that if Tipplin' was looking for a fight, he was willing to obilige him. <br>
Tipplin' slurred something that didn't quiet reach my ears, but it might have
been a not at all complimentary insinuation about the sexual habits 
of Ernest's mother.  At that point,
Ernest started bouncing on his feet "like a boxer," and proceeded to slap the 
living crap out of Tipplin' Shawn, who for his part went straight down to the
soggy, filthy snow of the McDonald's parking lot and curled up into the 
classic defensive posture of a fetal position and began to weep softly. 
Ernest threw a few more short jabs at Tipplin's head and body while 
admonishing his stricken friend to "listen to me next time!"  After conceding 
that Ernest's position had some merit, Tipplin' was helped to his feet by his 
attacker/friend.  The wifebeater in tatters, Tipplin' pulled 
off what was left of his tank-top and slowly walked out of the parking lot 
following Ernest.  He was beaten and dirty, but perhaps wiser for the 
smackdown. 
<p>Fifteen to twenty minutes after the fight, a police cruiser entered the 
parking lot with lights rolling but the show had long since moved on.
<p>(Thanks to <a href="/~petdance/journal">petdance</a> for the correcting the lyrics at the top.)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16340">post</a> and <a href="http://use.perl.org/comments.pl?sid=17355">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Hussein caught]]></title>
    <link href="https://www.taskboy.com/2003-12-14-Hussein_caught.html"/>
    <published>2003-12-14T00:00:00Z</published>
    <updated>2003-12-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-12-14-Hussein_caught.html</id>
    <content type="html"><![CDATA[<p><p>The <a href="http://news.bbc.co.uk/2/hi/middle_east/3317429.stm">BBC reports</a>:<blockquote>
&laquo;Ousted Iraqi President Saddam Hussein has been captured by US forces, says the US chief administrator in Iraq.</p>

<p>"Ladies and gentlemen, we got him," Paul Bremer said at a news conference in the capital, Baghdad, prompting loud cheers from Iraqis in the audience.&raquo;
</blockquote>
<p>Nicely done!  A better Christmas present, I couldn't ask for.  </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16329">post</a> and <a href="http://use.perl.org/comments.pl?sid=17341">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[32]]></title>
    <link href="https://www.taskboy.com/2003-12-12-32.html"/>
    <published>2003-12-12T00:00:00Z</published>
    <updated>2003-12-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-12-12-32.html</id>
    <content type="html"><![CDATA[<p><p><blockquote>Â«The old believe everything; the middle-aged suspect everything; 
the young know everything.Â»
</blockquote>
<p>âOscar Wilde
<p>It's that time of year again: my birthday.  As kid, I was hardly 
containable on the eve of the twelfth.  December was a most excellent month 
for me.  With presents arriving roughly every fortnight and Christmas 
vacation to boot, 
December proved tough to beat.  However as an adult, which at 32 I mostly 
surely am (at least legally, if not morally), I have found this time of year 
to be the most
distressing by a wide margin.  Most of my close friends, who are numbered
parsimonously in the best of times, are all widely dispersed now.  Although 
I haven't been in a good relationship for too many years now, I find that 
I am thankful for not being in a bad one now.  Despite some weight gain, I'm 
still in good health.  Despite the terrible economy, I have found employment
and possibly something even better.  Although still learning the craft, I'm 
more confident than ever in my abilities as programmer and debugger.
<p>All in all, it could be a hell of lot worse.
<p>If this all seems a bit morbid for a birthday journal, please note that at 
the first high school party I attended (complete with cases of 
<a href="http://www.oldmilwaukee.com/">Old Milwaukee</a>, Bud Lite, and 
the bitterly ironic <em>Miller High Life</em>), my attempts to 
hit on a lass yeilded only the comment "you're a maudlin drunk!"  Nothing
wounds like the truth.
<p>However, I've gained nothing if not some insight into the nature of my 
particular mortal coil and I know part of me delights in the dark, the 
gloomy and the dramatic.  Which is exactly why I enjoy humor, the antithesis 
of serious (and mostly worthless) sentiment.  I am grateful that most of 
the barriers I now face in life of those of my own making.
<p>So, on your knees 32; I'm your Daddy now. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16303">post</a> and <a href="http://use.perl.org/comments.pl?sid=17309">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  DVD  Copyright  Laws    XML::SAX    Will  Red]]></title>
    <link href="https://www.taskboy.com/2003-12-12-[MarkovBlogger]__DVD__Copyright__Laws	_XML__SAX____Will__Red.html"/>
    <published>2003-12-12T00:00:00Z</published>
    <updated>2003-12-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-12-12-[MarkovBlogger]__DVD__Copyright__Laws	_XML__SAX____Will__Red.html</id>
    <content type="html"><![CDATA[<p>is,  You  are  watching    television  at  that point.   Gotta  bring  the  Llama  for  Wednesday.  I 
read  something  new  to  me:  if  Scheme  is  such  a 
dumbass.    Anyway,  Charlie  (the  orange  cat)  has 
proven  that  Microsoft  have  made  some  negative 
comments  about  the  mental  strength  to  search  for 
"Onion".  We've  expanded  Larry's  state  of  the  online 
lexicon  software  I  originally  typed  this  in, 
previewed  it,  then  pass  the  tests  wants  to  see 
that  Mozilla's  about  the  specifics  of  the  morning 
hooking  the  bloody  things  up.<p>  The  problem  was 
Japanese,  I  think.  <p>But  for  the  attendees.</p> 
Apple's  box  should  have  used  [-1].  I'll  have  to 
set  a  value  to  change;  but  over  time,  second-order 
effects  that  will  inevitably  follow  to  actually 
watch  it.  The  cat  is  oblivious  to  their  heads 
handed  to  me.  It's  so  cute,  I  want  to  miss  it 
when  someone  else  sees  it?  Will  it  allow  multiple 
networks  (cable,  land  phone,  CDMA/TDMA  wireless 
phones,  GPRS,  always-on  WiFi  for  laptops/PDAs)  to 
finally  get  to  either  choose  ad-mode,  no-ad  mode 
(with  a  reg  code  you  need  to  fixup  attributes  but 
it  seems  I've  been  trying  to  use  this  syntax 
directly,  because  my  sister  decided  she  wanted  to 
pitch  this  TV  ad  campaign  to  get  ready  so  we  can 
do  what  the  trick  is  in  schools.  With  easy-to-use 
software  like  Linux,  I'd  also  like  having  eggs  for 
dinner.  In  order  to  use  PDL,  and  with  the 
tnsnames.ora  file,  but  really,  I'm  in  about  8 
minutes  worth  of  coding.    I'm  going  to  lose  the
 war,  but  by  the  install  does  not  match  my 
internal  IP  address.  The  dates  covered  by  the  way. 
  Well,  anyway,  there  they  are.  There's  some 
stuff  I'd  like  to  see.  But  more  importantly,  the 
backlighting  is  starting  to  bite  the  dust  if  you 
have  both,  I'll  probably  produce  lots  of  people  did
 their  darnedest  to  do  it  in  while  I  was  really 
required  for  very  many  good  points.  Strange  as  it 
falls  short.  That  failure  should  not  even  counting 
the  days  you  wake  up  with  so  they'd  never  know 
whether  to  pity  you  or  I  could  go  from  Total 
Choice  Plus  and  get.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16299">post</a> and <a href="http://use.perl.org/comments.pl?sid=17305">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[the art of blogging]]></title>
    <link href="https://www.taskboy.com/2003-12-11-the_art_of_blogging.html"/>
    <published>2003-12-11T00:00:00Z</published>
    <updated>2003-12-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-12-11-the_art_of_blogging.html</id>
    <content type="html"><![CDATA[<p><p>or <em>Me write good someday!</em><p>I don't understand blogging.  That is to say, I don't understand how some 
blogs attract a following and others do not.  Blogging, or as the old folks 
used to call it <em>journaling</em> (as in "Yesterday, I was down at 
Tealicious Teas <em>journaling</em> some rage when the baristas announced that
the steamer had crapped out."), is at best 
<a href="http://dear_raed.blogspot.com/">amateur journalism</a> and at worst 
<a href="http://use.perl.org/~jjohn/journal/16210">random words</a> 
interspersed with 
<a href="http://use.perl.org/~TorgoX/journal/16246">hyperlinks</a>.  Blogging 
even gets co-opted into <a href="http://blog.johnkerry.com/blog/archives/000871.html">hawking political candidates</a>.  So what is attractive about blogs? <br>
Why are so many of them and how many people are really reading them?
<p>This first question is easy enough to answer.  Anyone who was watched the 
smile of unbridled joy creep across the face of a toddler screaming full bore 
on a crowded airplane should have some insight into the 
psychic benefits</a> of blogging. <br>
Without restraint, without mediation, and frequently without 
spell checking, millions of internet users can burp out the smallest of ideas 
in a forum accessible to the most of the planet at the speed of e-business. <br>
Finally, the information-starved citizens of 
<a href="http://depts.washington.edu/uwch/silkroad/cities/samarkand/samarkand.html">Samarkand, Transoxiana</a> can get the 4-1-1 on which 
<a href="http://midlifemama.blogspot.com/2003_08_09_midlifemama_archive.html">peaches work best in pies</a> 
and why <a href="http://www.slolane.org/archives/000346.html">Wal-Mart sucks</a>. <br>
Unfortunately every road as a few <a href="http://www.dailyrotten.com/">potholes</a>, even the Information Superhighway.  In fact, the very concept of 
blogging has <a href="http://www.ojr.org/ojr/workplace/1049381758.php">its 
critics</a>, even among those <a href="http://use.perl.org/~pudge/journal/14328">those that write blogging software. <br>
<p>So, blogging is perhaps the rawest form of publication possible, barring 
mechanical telepathy or do-it-yourself TV stations.  The barrier is too low 
to prevent otherwise quiet people from casting their electronic 
messages in bottles into the World Wide Webby sea.  But then why are other people, who 
may or may not themselves be blogging, reading these missives?  Almost by 
definition, blogs are humble, unedited things.  They are compositions that were 
blitted out to screen with as little bureaucracy as possible.  Most journals <br>
appear to be something akin to a Tourettes episode involving a 
keyboard.  How can blogs compete for eyeballs in a world filled with many 
intelligent, thoughtful, professionally editted articles? 
<p>The difference between a crank and a critic is that a critic gets paid. <br>
However, cranks are often a lot more fun to 
observe</a>.  They have a train-wreck quality whose enormous gravitational 
pull will not be denied.  Few media are better suited for cranks than blogs. 
If it is not for the <a href="http://www.foxnews.com/">objective reportage</a>, then it must be for the genuinely human stories that blogs are consumed. <br>
It must be the mispellings; the incomprehensible rants; the utterly obscure 
trivia; the prosiac reviews of 
<a href="http://www.lesjones.com/posts/000210.shtml">Smokin' Joe's BBQ</a>; 
the date with the new guy that went 
<a href="http://www.nerdslut.org/baddates.html">way south</a>; 
the <a href="http://ej.typepad.com/macmike/2003/06/how_can_i_blog_.html">bike trips</a>; 
the <a href="http://www.geoffreylong.com/carriespritzer/archives/000025.html">road trips</a>; 
the vacation to 
<a href="http://www.referenceplace.com/Out_of_the_Loud_Hound_of_Darkness_A_Dictionarrative_0375401989.html">Tragikstan</a>; 
the <a href="http://blog.quicksort.net/work/122.html">crappiest days</a> at work; 
the <a href="http://cfnm.blog-city.com/">greatest days</a> at work; 
the <a href="http://www.fuckedcompany.com/">last days</a> of work; 
the <a href="http://www.jennysilliman.blogspot.com/">birth</a> of little Peter; 
the <a href="http://rebecca.slavin.org/archives/000353.html">passing of Grandma</a>; 
the <a href="http://stommel.tamu.edu/~baum/ethel/2000_10_08_ethel-archive.html">blubbery blancmange of evidence</a>; 
the "secret" <a href="http://www.seasonsofcountry.com/xmas/xmascookie.html">Chocolate Crinkle Cookies</a>; 
the photos of <a href="http://www.axis-of-aevil.org/photos/tallinn/index.html">Tallinn</a>; photos of <a href="http://www.sushicam.com/2003%20Journal%20entries/December%202003/031206/031206.php">Japan</a>; 
the photos of <a href="http://taskboy.com/pictures/personal.html">me</a>; 
the photos of <a href="http://www.robotics.utexas.edu/people/mitch_pryor/personal/snaplog/2002/11/21/233216.html">you.
<p>I don't know what makes for a popular blog and I'm unlikely to invest the 
time necessary to solve that mystery.  Blogs are simply the graffiti our 
times.  In an increasingly isolated world, it is nice to know that that 
you aren't the only crank with a computer. <br>
<p>For those angling to hone their <a href="http://www.homestarrunner.com/sbemail58.html">bloginating skills</a>, 
I do have a word of advice comes on the heels of this bit of compositional 
wisdom from Rabbitblog</a>:</p>

<blockquote>
&laquo;The critic who says you shouldn't write in run-on sentences 
and shouldn't use clich&eacute;s? That critic you can kill.&raquo;
</blockquote>

<p><p>While I admire the freedom expressed this guideline, I would suggest 
using some restraint in allowing run-on sentences to proliferate in your blog. 
So risking absurdity, I end this journal with this blogging rule of thumb:</p>

<blockquote>
Run-on sentences, like profanity, should be used strategically, 
since it is the exuberant overuse of these oft-maligned parts of speech that 
mightly tax the reader's attention and damage your ability to drive home 
the fucking point.
</blockquote>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16292">post</a> and <a href="http://use.perl.org/comments.pl?sid=17296">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[MarkovBlogger schedule change]]></title>
    <link href="https://www.taskboy.com/2003-12-10-MarkovBlogger_schedule_change.html"/>
    <published>2003-12-10T00:00:00Z</published>
    <updated>2003-12-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-12-10-MarkovBlogger_schedule_change.html</id>
    <content type="html"><![CDATA[<p><p>After some complaints and deep soul searching, I've decided to back down Markov Blogger to publishing only on Fridays. This way, MB is a 
nice end of the week treat!
<p>UPDATE:
<p>My goodness, this topic has garnered more interest than I expected (and 
probably far more it deserves ;-).  As much as I enjoy having Zorknapp, pudge,
hfb, and Mary P. arguing the case for MarkovBlogger, I suspose I ought to 
weigh in on this most sententious issue.  After all, I've have gotten MB hate 
mail for it's entries clogging 
<a href="http://www.oreillynet.com/meerkat/">Meerkat</a> (although not from 
Rael Dornfest). 
<p>There appear to be two schools of thought on old MB: those that find 
MarkovBlogger a tired, worn out joke that merely wastes time and space like 
spam and those that find MarkovBlogger a tired, worn out joke that wastes 
space but isn't like spam.  Let me be clear in casting my lot in with the 
later group.  I've put together this MarkovBlogger Controversy FAQ to clear
the air on any misunderstandings that might be lingering on this issue.
<p><em>1. Isn't MarkovBlogger generating spam?</em>
<p>Spam is unsolicited email shoved into your mailbox without your consent 
or prompting.  Blogs are entirely a pull-technology: you, or your software 
aggregators, have to seek out my insipid ramblings to be bothered by them. <br>
Also note that you are not <em>required</em> to read blogs.  On the other 
hand, you are not required to <em>read</em> blogs.  And lastly, you are not 
required to read <em>blogs</em>.  If you feel that MB has somehow wasted your 
time, please acknowledge your complicity in searching out my blog to read in 
the first place. 
<p>I never promised you decent content.  Nor did use.perl.org 
(at least as far as journals go).
<p><em>2. Doesn't MarkovBlogger "spam" RSS aggregators like Meerkat, or 
use.perl's own <a href="http://use.perl.org/journal.pl?op=top">most recent 
blogs</a>?</em> 
<p>If you consider three entries per week excessive, then it is indeed a 
deleterious agent.  However, spam is the eye of the beholder.  Unlike real 
spam, Markov entries are labelled.  If your aggregriator can't filter on 
subject lines, you'll need to pull my blog's feed out of the harvest.  I'm 
not trying to sell you anything with MB.  No one pays (well, perhaps they do 
emotionally) for access to my blog and I have no mandate for its content. <br>
There are several use.perl bloggers who average more than one entry per day. 
Are they spamming the aggregators?
<p><em>3.  Shouldn't MarkovBlogger really be on another account away from 
the real content? </em>
<p>This is a popular suggestion.  After all, MB is a lot like the fortune 
cookie program on unix that some admins have run when users log into the 
system.  Even use.perl has the Alex Chui quotes on the front page.
Although I'm happy give a cleaned-up version MarkovBlogger to slashcode should 
they want it, the truth is that this MB isn't quite like fortune.  It is a 
personal statement.  It belongs under my account.
<p><em>4.  Personal statement?  I thought MarkovBlogger was just meaningless, 
recycled sledge?</em>
<p>Indeed, the actual content of MarkovBlogger isn't guided by consciousness. <br>
However, MB is meaningful and its message is this: that blogging, 
fundamentally, is stupid.  By collecting the natterings of most garrulous 
use.perl journals (including my own without MB), the reader is reminded of 
the colossal wastes of time possible in the western world in these modern 
times.
<p>But, of course, we all knew that.
<p><em>5.  You're a pompous dink.  Just shut off the stupid bot already. 
It's annoying.</em>
<p>MB is my statement, even if it isn't entirely clever.  If there is one 
guiding principal to my journal it is this: don't talk about computers, that's 
what paid articles are for.  Journals ought to be a thing of love, not work.
When I do apply myself, I try to create little essays that I hope will amuse 
and entertain.  When I don't have time for that, I just assume have a 
MarkovBlogger re-run in place rather than a minimal "ugh! Busy!" entry or 
nothing at all.  This is a preference that cannot be justified rationally. 
Too many MB entries in a row reminds me to put something together, even 
if hastily.  I expect that consumers of blogs would read them in the search 
for entertainment rather than duty.  But if they don't, that's ok too, I 
guess. 
<p>Seriously, I've made a reasonable effort to advertise MB entries as such. 
Now, you can excerise your right to not read them or <em>any other piece of 
writing on the Internet</em>.  Don't let the Terrorists win!  If you are too 
lazy to do this, then perhaps the raison d'etre of MarkovBlogger is more 
justified than I thought.
<p>Ok, kids!  Let's get bloginating!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16266">post</a> and <a href="http://use.perl.org/comments.pl?sid=17270">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Elvis cover is featured on a new web site]]></title>
    <link href="https://www.taskboy.com/2003-12-08-Elvis_cover_is_featured_on_a_new_web_site.html"/>
    <published>2003-12-08T00:00:00Z</published>
    <updated>2003-12-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-12-08-Elvis_cover_is_featured_on_a_new_web_site.html</id>
    <content type="html"><![CDATA[<p><p>My cover of Elvis Costello's <a href="http://taskboy.com/music/you_belong_to_me.mp3">You Belong to Me</a> 
has proven unexpectedly popular!  A few months ago, it was featured on the 
<a href="http://home.cfl.rr.com/jdha/stuff/ecmcotw/">Elvis Costello 
Mystery Cover</a> site and now you can find it listed amongst other EC 
covers on <a href="http://www.elvis-costello.net/thecatspyjamas/songs.php">The
Cat's Pyjamas</a> site.
<p>I'm Internet famous! (<em>)
<p>
<p>
<p></em> Internet famous is like being famous in the real world, except without 
all that "fame."</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16212">post</a> and <a href="http://use.perl.org/comments.pl?sid=17214">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  You  Cannot  Look  At    Very  American  2    Heyhey, kids!.]]></title>
    <link href="https://www.taskboy.com/2003-12-08-[MarkovBlogger]__You__Cannot__Look__At	__Very	American__2____Heyhey,_kids_.html"/>
    <published>2003-12-08T00:00:00Z</published>
    <updated>2003-12-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-12-08-[MarkovBlogger]__You__Cannot__Look__At	__Very	American__2____Heyhey,_kids_.html</id>
    <content type="html"><![CDATA[<p>first  things  I  didn't  do  much  work  on.  When  I have  yet  to  try  to  convince  him  otherwise,  but 
we'll  see.  He  mentioned  that  <a href="http://www.mnftiu.cc/mnftiu.cc/home.html">David
Rees</a>  was  signing  collections  of  his  documentation
 from  the  25%  range  to  erupt  explosively,  showering 
the  midwest  in  ash.  Bonus  points  for  me.   
"â¦but  if  I'm  checking  the  price,  and  makes  an 
fnctl  call  that  a  certain  length.    The  pain, 
the  pain!  I'm  in  one  day,  working  on  for 
interesting  Jabber-related  thingies,  if  only  a  few 
of  those  crappy  Wordmaps  you  keep  publishing  books 
on  weiqi  that  I've  been  completing  work  projects 
early  in  the  end  we  let  them;  but  never  looked  at
 <a href="http://www.amazon.com/exec/obidos/ASIN/0596001789/t">
the Amazon.com record</a>  for  my  job,  the  more  famous
 for  his  time  in  I  need  to  #include    I 
get  a  $200,000  netapp  filer  file  server  for  them. 
<p>  If  you  ask  your  user  name  and  called  the  book
 and  letting  email  stack  up.  I  ran  into  Casey 
there.  I  should  just  log  the  problem.  I  called  my 
ISP,  fuming  about  the  discovery  at  the  campus.  It's
 all  working  (shared  libs  for  MrC  build,  but  don't 
know  how  to  process  that  seems  impossible.  .
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16210">post</a> and <a href="http://use.perl.org/comments.pl?sid=17212">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[get your comics on]]></title>
    <link href="https://www.taskboy.com/2003-12-06-get_your_comics_on.html"/>
    <published>2003-12-06T00:00:00Z</published>
    <updated>2003-12-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-12-06-get_your_comics_on.html</id>
    <content type="html"><![CDATA[<p><p>Before the hideous snows descended upon an unsuspecting Massachusetts, I was romping around Harvard Square with a friend of mine, who mentioned that <a href="http://www.mnftiu.cc/mnftiu.cc/home.html">David Rees</a> was signing
collections of his "Get Your War On" and "My New Fighting Technique is 
Unstoppable" at <a href="http://world.std.com/~myp/">Million Year Picnic</a>. 
So, after a buffet lunch at Bombay Club, we schlepped over to the comic book 
shop, which had only a few people in it.  Our access to the author was 
unfettered.  Rees is a very nice, very unassuming guy.  I asked him about the 
volume of hate mail he receives for "Get You War On" and his answer surprised 
me.  It seems that he receives far less than he expected.  Weird. <br>
<p>However, this pleasant little interview took a decidedly bizarre twist when 
a gaunt, bearded gentlemen entered the store.  It was none other than public 
broadcasting badboy <a href="http://world.law.harvard.edu/">Christopher 
Lydon</a>.  Apparently, Lydon was there to interview Rees for something.  The
highlight of the episode was Lydon requesting the "unexpurgated" version of 
the poster advertising Rees's apparence at MYP that featured the word "motherfucker".
<p>Try to get <em>that</em> past the censor, bee-yatch!  C-Dawg's straight 
outta Compton, yo.  C-Dawg's in da hizzel!
<p>Later that day, I bought a shirt in Inman Square featuring the panicked 
phrase "Can't sleep; clowns will eat me."
<p>I'm out, yo.  Peace.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16190">post</a> and <a href="http://use.perl.org/comments.pl?sid=17187">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  now…    Kickbacks    Innovation  in  Austin    ptkdb and  fork  .]]></title>
    <link href="https://www.taskboy.com/2003-12-05-[MarkovBlogger]__now.html"/>
    <published>2003-12-05T00:00:00Z</published>
    <updated>2003-12-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-12-05-[MarkovBlogger]__now.html</id>
    <content type="html"><![CDATA[<p>which  have  to  go  check  right  now).  Part  of  the latter generally  isn't.  So,  I  go  to  conferences.  I 
don't  think  that  I'm  coming  to  YAPC,  don't  forget 
what  perl  is.  ;)  <p>For  the  record,  "blogging"  is 
not  legal  advice.]</p>  <p>If  anyone  actually  knows 
all  of  these  people  are  almost  always  means 
Telerama  (<a href="http://lm.com" class="hft-urls">http://lm.com</a>),  and  at  least  the 
three  modules  that  generate  these  images  would  be 
been  interesting  for  a  wide  range  available  means 
that  about  a  court  to  sort  out.  <p>    And  the 
bargain  price  of  all  things.  Of  course,  the  ghost 
completely.  I  can't  help  the  project  web  page, 
development  appears  to  be  $_[0]?"    That  having 
been  said,  I  have  to  chew  on  for  a  few  hours,  I 
went  to  the  docs.  I  wouldn't  since  that's  not  a 
speaker  in  our  131  class  about  web  services  and 
provide  some  of  the  week.<p>  That  night  we  settled 
down  and  figuring  out  partial  palindromes  is.  (As 
in,  what  kind  of  overnight.  :)    Meanwhile, 
Aryeh's  code  could  use  a.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16181">post</a> and <a href="http://use.perl.org/comments.pl?sid=17175">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The hubris of powered flight]]></title>
    <link href="https://www.taskboy.com/2003-12-04-The_hubris_of_powered_flight.html"/>
    <published>2003-12-04T00:00:00Z</published>
    <updated>2003-12-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-12-04-The_hubris_of_powered_flight.html</id>
    <content type="html"><![CDATA[<blockquote>
&laquo;A cameraman inside a Goodyear blimp was injured when the airship came loose from its moorings, drifted into a parked truck and nose-dived into a fertilizer pile beside a plant nursery.<br>
â¦<br>
The blimp ended up about 300 yards from its landing site.
&raquo;
</blockquote>

<p><p>âAP:<a href="http://customwire.ap.org/dynamic/stories/B/BLIMP_ACCIDENT?SITE=FLTAM&amp;SECTION=US">Blimp Drifts Into Truck, Injuring One
<p>When will man recognize the inherent folly of mechanized flight?  These dirigibles are helium monsters of doom.  If man were intended to fly, he'd have been born with an embedded jetpack.  <p>Beware!  Death from above!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16166">post</a> and <a href="http://use.perl.org/comments.pl?sid=17160">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Been busy]]></title>
    <link href="https://www.taskboy.com/2003-12-03-Been_busy.html"/>
    <published>2003-12-03T00:00:00Z</published>
    <updated>2003-12-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-12-03-Been_busy.html</id>
    <content type="html"><![CDATA[<p>Been busy, but here's the precis:</p>

<ul>
  <li>Work
  <li>Built my first win32 Tk app that starts and stops service via Win32::Service
  <li>Buily my first win32 service with David Roth's  Win32::Daemon
  <li>Thanksgiving
  <li>Work
  <li>Awaiting Lord of the Rings: Return of the King
  <li>Wanting to buy Farscape 4.1 DVD
  <li>Visiting Jason Macintosh at Diesel Cafe
  <li>Work
  <li>Rockin' out to Strong Bad Sings
  <li>Christmas shopping
  <li>Work
  <li>Suprised to see the first winner of <a href="http://aliensaliensaliens.com/ss/game/">State Secrets</a>.  (Surprised that the game proved interesting enough for at least one person to collect 30 secrets).

</ul>

<p><p>Without MarkovBlogger, I'd hardly be bloginating at all. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16151">post</a> and <a href="http://use.perl.org/comments.pl?sid=17144">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]    After  Easter.]]></title>
    <link href="https://www.taskboy.com/2003-12-03-[MarkovBlogger]____After__Easter.html"/>
    <published>2003-12-03T00:00:00Z</published>
    <updated>2003-12-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-12-03-[MarkovBlogger]____After__Easter.html</id>
    <content type="html"><![CDATA[<p>a  year  ago,  I  gave  my  "$SIG{<strong>DIE</strong>}  Considered Harmful"  slide,  a  small  team,  and  I'll  probably 
produce  lots  of  small  tools  with  MS-Access  over  the
 world  go  away.  <blockquote> &laquo;The report, by IAEA
head Mohamed ElBaradei, lists findings of traces of
weapons-grade enriched uranium and other evidence that
critics say point to a weapons program.<br> <br> "The
United States believes the facts already established would
fully justify an immediate finding of noncompliance by
Iran," Brill said during a meeting of the agency's board.
Still, he said, the Americans were ready to give "Iran a
last chance to drop its evasions" before pushing for
Security Council involvement.&raquo; </blockquote> 
<p>Setting  aside  the  hypocracy  of  countries 
confronting  <a href="http://www.guardian.co.uk/comment/story/0,3604,663017
,00.html">difficult</a>  pasts  should  be  doing,  in 
order  to  become  very  smart  pirates  in  the 
command  line  utility,  xsltproc,  that  will  actually 
trigger  selections  on  each  language's  particular 
peccadilloes(sp?).    Currently  my  best  to  look, 
next  time  I'll  try  calling  him  in  Bangor  anymore. 
It's  kind  of  call  centers  apparently  already  have 
is  they  become  closures,  and  look  forward  to,  I 
also  have  text  of  the  conference  and  say,  "Well, 
that's  not  counting  the  roughly  forty  modules  that 
are  walking  all  the  time.  :)  The  ORA  folks  are.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16142">post</a> and <a href="http://use.perl.org/comments.pl?sid=17133">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]    Sigh    Monopoly    Using.]]></title>
    <link href="https://www.taskboy.com/2003-12-01-[MarkovBlogger]____Sigh____Monopoly____Using.html"/>
    <published>2003-12-01T00:00:00Z</published>
    <updated>2003-12-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-12-01-[MarkovBlogger]____Sigh____Monopoly____Using.html</id>
    <content type="html"><![CDATA[<p>solid  as  these  brick  walls  are,  I  can  produce wave  files  of  my  life.  Sold  <em>Nutshell</em>  and 
<em>Cookbook</em>  together  for  my  cable  modem  and  the 
whole  dot-com  boom  these  people  as  a  blockbuster 
movie,  who  would  you  have  the  feeling  that  there 
is  a  bug  in  the  audience  what  the  profiler  told 
me.  <p>So  I  decided  to  just  go  away?  I  started 
work  on  Mozilla.  </p>  <p>I  start  working  again. 
<p>Now  I  just  felt  that  it  was  the  biggest  victory
 of  this  somewhere,  but  those  are  the  first  of  the
 recent  security  patches.  It  used  to  is  the 
stinger.  I  have  to  fool  the  human  ear  into  hearing
 a  continous  sound.  For  CD-quality  sound,  that 
sample  to  taste.  <p>And  the  article  on 
next-generation  garage  door  opener  pulls  aside  the 
hypocracy  of  countries  confronting  <a href="http://www.guardian.co.uk/comment/story/0,3604,663017
,00.html">difficult</a>  pasts  should  be  3.0  but  with 
a  timeout  occurred  and  move  to  new  window  your 
application  in;  it  was  to  blame,  didn't  matter 
much,  as  long  as  you  want,  I  just  noticed  <a href="http://www.activestate.com/Products/PerlMx/">PerlMx  on  the  precipice.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16090">post</a> and <a href="http://use.perl.org/comments.pl?sid=17080">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]    Indic  scripts    TPC5:  Be  a  Better  Programmer    I Won!.]]></title>
    <link href="https://www.taskboy.com/2003-11-28-[MarkovBlogger]____Indic__scripts____TPC5___Bea__Better__Programmer_I_Won_.html"/>
    <published>2003-11-28T00:00:00Z</published>
    <updated>2003-11-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-11-28-[MarkovBlogger]____Indic__scripts____TPC5___Bea__Better__Programmer_I_Won_.html</id>
    <content type="html"><![CDATA[<p>is  something  I've  needed  for  DBD::CSV  (things  like SQL::Statement   and  Text::CSV_XS)  aren't  picked  up  a 
wiki  clone  on  my  ibook  was  fixed.  The  fan 
circulating  air  in  the  middle  of  a  hodgepodge,  with
 one  of  the  core  (patch  first,  fix  later  (as  long 
as  they  are,  and  are  trying  to  upgrade  my  home 
server  (axkit.org  et  al)  went  down  backwards.  Bad 
idea.  I  think  this  module  is  being  stored  in  this 
way  too.  If  you're  performing  some  other  information
 not  normally  a  problem  I  have  to  zip  over  to 
Detroit  to  visit  Perlmonks  more.    Maybe,  while 
I'm  thinking!  My  motor  skills  are  no  representatives
 or  senators  from  Massachusetts  in  Washington,  and 
of  themselves,  because  it  ain't  broke,  don't  fix 
it."  Emacs  is  equally  true  for  vi.  The  beef 
I  have  done  it  once,  in  the  relevant  functions  for
 a  non-existant  website  gets).  I  also  played  around 
with  turned  upâprobably  very  smart  of  me.    "An 
isosceles  triangle"  could  be  even  more  minute  of  it
 from  the
CPAN  or  SF.net.  (Note:  it  may  not  be.  (It  would 
be  an  equally  reliable  and  wonderful  interface  to 
OpenDX?  <ul>
<li>Drink â Cecchi Chianti</li> <li>Watch â <a href="http://us.imdb.com/Title?0278504">Insomnia</a></li>
<li>Consider â <a href="http://halfkeyboard.com/index.html">halfkeyboard</a>&lt;
/li> <li>Print â <a href="http://www.xs4all.nl/~egbg/counterscript.html">Counte
rscript</a></li> <li>Read â <a href="http://www.amazon.com/exec/obidos/ISBN=0446605158/">P
eter F. Hamilton</li> </ul>  This hypometer goes to eleven!
The childish back-and-forth about Sun's lack of membership
in the <a href="http://www.ws-i.org">WS-I</a>  has  finally
 succumbed  to  commercial  pressures.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16054">post</a> and <a href="http://use.perl.org/comments.pl?sid=17038">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Boylston - Outback of the Northeast]]></title>
    <link href="https://www.taskboy.com/2003-11-26-Boylston_-_Outback_of_the_Northeast.html"/>
    <published>2003-11-26T00:00:00Z</published>
    <updated>2003-11-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-11-26-Boylston_-_Outback_of_the_Northeast.html</id>
    <content type="html"><![CDATA[<p><p>From the <a href="http://www.boston.com/news/local/massachusetts/articles/2003/11/26/black_widow_spider_found_in_red_grapes/">Boston Globe:</a><blockquote>
&laquo;Waite was feeding red seedless grapes to her 1 1/2-year-old daughter 
this weekend when her father stopped her cold. A black widow spider, the most 
dangerous type of spider in the United States, was nestled in the bunch of 
fruit.<br><br>
â¦
<br><br>
Waite, of Boylston, purchased the California grapes last week at a Shaw's 
supermarket in Shrewsbury. She said she wanted to get the word out to ensure 
that others would be cautious with their grapes.&raquo;
</blockquote>
<p><a href="http://www.boylston.org/">Boylston, Massachusetts</a> 
is a very small town south of the ineffably beautiful Wachusett Reservoir 
and east of the less comely metropolis of Worcester.  My family is from this 
very small, Lovecraftian town (I can't read <em>The Dunwich Horror</em> 
without imagining it taking place in Boylston).  Even more than Arlington, 
this town's central square easily evokes images of the American Revolution
(I was there for the bicentennial in 1976).  It is a place where the trees 
still outnumber the people, the word "farm" isn't automatically associated 
with "server," and "rendering" has a not at all digitial connotation. 
<p>My brother Archie and his wife currently live in Berlin 
(<a href="http://www.maplewoodfarm.us/">Maplewood Farm</a>), adjacent 
to Boylston.  I was ten years old when my parents moved us to Cape Cod. <br>
For me, this town will always be a place stuck in the late seventies 
(not in a hip way, either).  A simple place for simplier times. 
<p>And then the black widow spiders cameâ¦</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16021">post</a> and <a href="http://use.perl.org/comments.pl?sid=17001">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Strong Bad CD delivered and it delivers the rock]]></title>
    <link href="https://www.taskboy.com/2003-11-26-Strong_Bad_CD_delivered_and_it_delivers_the_rock.html"/>
    <published>2003-11-26T00:00:00Z</published>
    <updated>2003-11-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-11-26-Strong_Bad_CD_delivered_and_it_delivers_the_rock.html</id>
    <content type="html"><![CDATA[<p><p>The Strong Bad CD was just delivered to me.  It's just unspeakably delightful.  Pick a copy or ten.   <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16033">post</a> and <a href="http://use.perl.org/comments.pl?sid=17013">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  and  more  good  stuff    Thoughts  on  Java.]]></title>
    <link href="https://www.taskboy.com/2003-11-26-[MarkovBlogger]__and__more__good__stuff____Thoughts__on__Java.html"/>
    <published>2003-11-26T00:00:00Z</published>
    <updated>2003-11-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-11-26-[MarkovBlogger]__and__more__good__stuff____Thoughts__on__Java.html</id>
    <content type="html"><![CDATA[<p>majority  of  the  intereresting  things  about  your courage  and/or    sanity  I  guess),  or  even  just 
require  Nat::You've::Been::R00ted.<p>  Why  do  people 
want  to  have  it?  (memo  to  self:  start  at  pair  has
 been  released.  Download  it  from  the CPAN 
or  SF.net.  (Note:  it  may  take  time  for  the 
morning.</p>  <p>Posted  from  <a href="http://caseywest.com">caseywest.com</a>,  comment  <a href="http://caseywest.com/journal/archives/000181.html">he
re</a>.  <p>    It  looks  like  it's  less  a  question 
about  scp  and  OS390.  The  question  I'm  asking  is 
"Why?".  Is  it  true  that  I've  paid  my  own  RSS  feed
 from  9am  to  9:30am,  every  Monday".  I've  found  an 
interesting and entertaining web site  with 
some  XSLT  to  convert  $string  to  a  discussion  on 
this  flight  and  one  of  those  classic  moral 
dilemnas.  How  much  is  that  America  had  <a href="http://www.afhe.org/gatto3.htm">staggeringly high</a>
 literacy  rates  before  compulsory  education.  Yes, 
homeschooling  appeals  to  me  so  long  to  catch  a  lot
 less.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/16012">post</a> and <a href="http://use.perl.org/comments.pl?sid=16992">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Hatten font considered harmful]]></title>
    <link href="https://www.taskboy.com/2003-11-24-Hatten_font_considered_harmful.html"/>
    <published>2003-11-24T00:00:00Z</published>
    <updated>2003-11-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-11-24-Hatten_font_considered_harmful.html</id>
    <content type="html"><![CDATA[<p><p>From Microsoft Knowledge Base:<blockquote>
&laquo;When you try to install Access 97, you have to avoid the "Microsoft Access can't start because there is no license for it on this machine" error message caused by the presence of the Hatten font, which is installed by Access 2000 and Office 2000.&raquo;
</blockquote>
<p>Careful!  Those fonts are tricky.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15988">post</a> and <a href="http://use.perl.org/comments.pl?sid=16964">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  'net    coffee    Reminder,  Update,  Protraction    WWII tanks.]]></title>
    <link href="https://www.taskboy.com/2003-11-24-[MarkovBlogger]__&apos;net	_coffee____Reminder,__Update,__Protraction____WWII_tanks.html"/>
    <published>2003-11-24T00:00:00Z</published>
    <updated>2003-11-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-11-24-[MarkovBlogger]__&apos;net	_coffee____Reminder,__Update,__Protraction____WWII_tanks.html</id>
    <content type="html"><![CDATA[<p>as  we  know  who  the  client  needs  to  look  in  and tells  me  that  in  "PHB-speak".</p>  <p>So  I've  got  to
 at  the  moment)  every  morning  by  snow  flurries. 
This  just  in  case."  But  nooooo.  They  turned  people 
into  the  other  day;  but  the  next  few  days.  Lots 
of  snow.  I  had  no  choice  The  wind  is  so  hard 
and  played  hard  for  someone  who  knows  the  meaning 
of  "republican"  :)</p>  Stories  like  <a href="http://news.com.com/2100-1023-944736.html?tag=fd_top">
  <p>this</a>  make  me  a  decent  example  of  simple  but 
  powerful  glue.  This  is  not  a  political  program  has 
  three  quite  severe  cracks  in  it  â¦  how  utterly 
  retarded  Grady  Little  is.  If  I  owned  a  plane,  but 
  I'm  definitely  going  to  fix  that  as  a  society.  Bu 
  tone  can  always  listen  to  all  those  years  ago  (and
   5  months  ago)  when  I  went  to  H&amp;R  Block  across 
  the  sky.</p>

<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p></blockquote></p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15973">post</a> and <a href="http://use.perl.org/comments.pl?sid=16948">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]    AOL  Fighting  Spam    berjon.com  (re)design  .]]></title>
    <link href="https://www.taskboy.com/2003-11-21-[MarkovBlogger]____AOL	Fighting__Spam	__berjon.html"/>
    <published>2003-11-21T00:00:00Z</published>
    <updated>2003-11-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-11-21-[MarkovBlogger]____AOL	Fighting__Spam	__berjon.html</id>
    <content type="html"><![CDATA[<p>I  was  at  18th  &amp;  H,  across  Pennsylvania  Ave.)  <p> &nbsp;   <p>  [*]  Perl6  RFC  #1138:  Replace  the 
shift  builtin  with  something  clever  this 
early  in  the  lecture  area  tomorrow,  as  part  of  it 
is  $50  for  the  last  frontier  back  in  the  Dock  and
 System  Events.  It's  super  sweet!  Note  how  it  works
 on  Mac  OS  9.2.2,  apparently  over  the  last  number 
on  it,  but  it  still  didn't  get  to  have  a  list  of
 links  to  it  again  after  a  couple  of  late  night 
talking,  particularly  with  Quinn  and  Danny  from  <a href="http://www.ntk.net/">Need to Know</a>.  <a href="http://www.raelity.org/">Rael</a>  appeared  at  most
 of  life.  <p>Since  my  access  to  the  tops  of  both 
those  modules  and  articles  that  I  sound  like  crap, 
too.  Progress!  <p>  Just  before  2pm,  Tom  Brokaw  is 
presenting  some  images  coming  off  the  ground. <br>
"Tell  me  how  the  people  that  I  can  probably 
provide  some  of  the  seventies,  prevasive  sex,  drugs 
and  violence,  to  present  a  future  iPod  revision  has
 group  browsing  for  men),  gives  me  the  they  have 
to  take  over  support  of  the  RIAA  for  some  drinks 
instead  of  civil  rights.  <p>  I  think  work  here  if 
I  haven't  done  an  amazing  experience.  <p>(Brought 
to  you  by  jjohn's  MarkovBlogger  (&trade;):  If  it 
hits  kernel  panic  about  50%  of  the  house  is  much 
better  model  for  teenage  girls,  you'll  know  it 
fairly  well  when  I've  not  touched  them  in  March 
and  not  even  supported  until  ID3v2.4.0,  which  most 
software  will  eventually  have  an  installer  license. 
I  did  not  have  net  zero  effect  on  even 
the  military  knows  that  it's  likely  that  it  put  a 
cap  on  it,  as  compared  to  natural  light.  </p>  <p> 
  I  considered  the  dollar's  recent  pludge  against 
the  acquisition  cost.  This  is  the  direct 
object  of  the  same  reason  I  don't.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15919">post</a> and <a href="http://use.perl.org/comments.pl?sid=16888">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Looking out for number one]]></title>
    <link href="https://www.taskboy.com/2003-11-19-Looking_out_for_number_one.html"/>
    <published>2003-11-19T00:00:00Z</published>
    <updated>2003-11-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-11-19-Looking_out_for_number_one.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://customwire.ap.org/dynamic/stories/E/ENERGY_BILL?SITE=FLTAM&amp;SECTION=HOME">From AP:<blockquote>
&laquo;WASHINGTON (AP) â The House approved a far-reaching energy bill Tuesday that would provide billions of dollars in tax incentives for oil, gas and coal producers and give a boost to corn farmers by requiring a doubling of ethanol use in gasoline.&raquo;
</blockquote>
<p>Finally!  Some relief for the oil producers: America's most precious natural
resource.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15851">post</a> and <a href="http://use.perl.org/comments.pl?sid=16818">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  The  Weekend  From  Hell  .]]></title>
    <link href="https://www.taskboy.com/2003-11-19-[MarkovBlogger]__The__Weekend__From__Hell__.html"/>
    <published>2003-11-19T00:00:00Z</published>
    <updated>2003-11-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-11-19-[MarkovBlogger]__The__Weekend__From__Hell__.html</id>
    <content type="html"><![CDATA[<p>back  in  c.l.p.mod.  So  many  people  will  buy  SCO and  continue  to  use  military  force  to  fight  against
 neo-imperialism,  it  would  be  cheaper  (have  you  seen
 the  statement  and  a  sagging  market  Tim  made  the 
swith  to  IMAP  from  mbox  on  the  net  and  see  who 
else  I  should  probably  make  a  record  of  me  wants 
to  master  things  also  want  you  to  build  an 
application  and  turn  them  into  two  categories: 
either  there's  already  someone  on  IRC  (even  though 
the  new  stock  data.    Crap.  I  forgot  how  much 
does  the  old  HP  Software,  and  everything  that  they 
can  (a)  present  the  Perl  code  though).  Antoine's 
column  is,  as  documented,  currently  a  bug  in  Dan's 
module  that  is  to  flood  your  IRC  channel,  consider 
the  points  it  got  warm  and  tingly  inside.</p>  brian
 d  foy.  <p>With  all  the  last  row  of  Tic  Tac 
Toe  CGI  â¦  I'm  settled  in  the  Editor  Wars,  but, 
dammit,  why  can't  I  search  my  web  site  using  Perl 
regular  expressions.  Interestingly  enough,  the  Open 
Source  software.  In  fact,  if  someone  thinks  there 
are  points  to  go  by,  I  knew  what  health  food  was 
vaguely  greek/mediterranean  and  so  held  little 
interest  for  me.  SOAP::Lite  can.  I  have  a  lot  of 
great  grandma  all  at  once,  but  it  turned  out,  they
 were.  I  had  teTeX  installed  on  my  PowerBook  on 
the  whole  thing  the  stupid  way.  I'm  not  being  used
 there,  "yonder."  Upon  carefull  observation  I  have 
somewhere."  "Somewhere?"  "Well,  I  have  a  learning 
curve,  I  love  actually  attending  them.  This 
prolonged  our  stay.  I  left  it.'  I  took  our 
daughter  to  a  new  page,  either;  the  same  problem 
but  I  can  do?  Like  just  say  that  I'm  not  sure 
how  I  didn't  post  Friday  Trivia  Time!  Here's  a 
patch  was  new  to  Mac::  modules,  that  GetURL() 
automatically  opens  the  selected  file  in  the  area 
of  this  entry  has  the  entire  hotel  on  saturday 
night,  spending  saturday  and  sunday  working  on  my 
iBook  on  Friday  and  I've  learned  to  move  functions 
into  different  directories,  and  continually  point  out
 that  celebrations  wouldn't  be  fast  to  calculate? 
Perl.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15859">post</a> and <a href="http://use.perl.org/comments.pl?sid=16826">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[leading by example]]></title>
    <link href="https://www.taskboy.com/2003-11-19-leading_by_example.html"/>
    <published>2003-11-19T00:00:00Z</published>
    <updated>2003-11-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-11-19-leading_by_example.html</id>
    <content type="html"><![CDATA[<p><p>From <a href="http://www.reuters.com/newsArticle.jhtml;jsessionid=ETNOGJDICAGIQCRBAEKSFEY?type=topNews&amp;storyID=3847340">Reuters:</a><blockquote>
&laquo;SACRAMENTO, Calif. (Reuters) - Gov. Arnold Schwarzenegger, saying he had "strong resolve" to cure California's fiscal woes, on Tuesday proposed a record bond issue of up to $15 billion to fund the state's ballooning budget deficit.
<br><br>
To set an example of new austerity, the multimillionaire actor said he would forgo a salary in his new job as governor of the nation's richest state and would impose a freeze on hiring, travel and upgrading expenses. &raquo;
</blockquote>
<p>Long-time readers of this blog have detected a certain anti-Republican 
bias.  This I do not deny this as the Republicans seem to be the ones who most 
frequently lead the charge to make the lives of the rich easier while 
penalizing the poor and middle classes.  Of course, the GOP would be 
considerably hampered without the implicit help of the directionless 
Democrats.  The relationship between the two parties at times resembles that
of an abusive, co-dependent relationship.  The GOP will get drunk (with power)
and start beating up the Dems and then later say "aw, Baby, why do you make me
have to hurt you?"  And the Dems, naturally, never try to assert themselves 
or stop the abuse.
<p>Anyway.
<p>The news item that leads this entry is one of those rare opportunities 
where I'm not be ironic.  American politics was always supposed to be the 
realm of citizen politicians, not career politicians.  Arnie has a daunting 
task in front of him and his boldly symbolic act of foregoing his salary is to 
be commended.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15865">post</a> and <a href="http://use.perl.org/comments.pl?sid=16832">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Strong Bad CD ordered]]></title>
    <link href="https://www.taskboy.com/2003-11-18-Strong_Bad_CD_ordered.html"/>
    <published>2003-11-18T00:00:00Z</published>
    <updated>2003-11-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-11-18-Strong_Bad_CD_ordered.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://homestarrunner.com/store.html">Strong Bad has a CD</a> and I ordered it!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15843">post</a> and <a href="http://use.perl.org/comments.pl?sid=16808">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Moving    The  Sandman,  completed    Euros.]]></title>
    <link href="https://www.taskboy.com/2003-11-17-[MarkovBlogger]__Moving____The	Sandman,__completed____Euros.html"/>
    <published>2003-11-17T00:00:00Z</published>
    <updated>2003-11-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-11-17-[MarkovBlogger]__Moving____The	Sandman,__completed____Euros.html</id>
    <content type="html"><![CDATA[<p>cannot  move  forward  without  a  kitchen  (boo!).  But there's  not  much  gore  up  until  the  end  of  the 
first  and  then  send  the  named  files  as  I  get  the 
electricity  company.  The  big  crisis  today  was  that 
he  never  kept.    For  35  Trivia  Points  for  dlc! 
  Answer:  Berzerk  That's  what  I'm  doing.  I 
even  tortured  her  a  heart  attack  some  time  with 
LARGER  screws!  Too  many  heavy  tech  books  on  Amazon.
 I  imagine  will  be  made  with  pudding?    I  need 
to  write  your  programs  (both  old  and  starting  to 
hit  swap  more  and  more  I  wanted  (thanks  davorg  and
 Ranguard!),  and  then  when  they  really  do  have  a 
double-keyed  deadbolt  lock,  and  no  upside  of  oil  or
 butter,  salt,  and  pepper,  maybe  a  whole  other 
rant)  from  someone  who  was  running  Regedit  and 
deleting  all    but  not  least,  <a href="http://conferences.oreillynet.com/cs/os2003/view/e_sp
kr/1579">George Dyson</a>  talking  about 
IBM-seller-of-the-pee-cee,  but 
Microsoft-maker-of-monopolies:  &laquo;our  enemies' 
confusion  will  be  presented  to  your  repository,  but 
there's  no  reason  that  might  be  less  than  twice 
20,000.  That  doesn't  clear  it  up  to  Birmingham  to 
give  ActiveState's  Komodo  2.0  a  shot.  I  keep  a 
batch  of  Sources  to  get  the  advanced  search  offers 
additional  search  options  such  as  the  last  steps  of
 the  YAPC  pizza  lunch  was.  The  main  cost  will  be 
a  bad  accounting  system.  Dear  Log,  <p>Thought  for 
the  latter  paragraph  to  provide  these  items 
especially  when  you  get  to  the  core  of  perl, 
etc.).    Now  Playing: 

Grey Street - Dave Matthews Band (Busted
Stuff)    It's  always  blank.    This 
is  to  take  over  support  of  using  Mac  OS  X  at  any
 given  situation).    It  seemed  like  days  for  the 
whole  thing  to  do  this  by  balancing  a  book  with 
large  media  collections.  Scot  describes  the  %-escapes
 WindowMaker  uses:    <em>*</em> Escape thingies for menu
and dock commands:  %w - substitute with current selected X
window ID  %s - substitute with current selection  %d -
substitute with last dropped object  %a(some text) - opens
a input box with "some text" as a title. Then,  the text
typed will be substituted there  \r, \n - substitute with
corresponding characters   <p>  That  makes  it  do
 that.  Good  answer.  <p>The  smiling  baby  at  the  Mac 
doesn't  work  and  fostering  collaboration. 
Brochures  Woo,  I  think  we  suck  when  we're 
trying  to  figure  out")  but  I  don't  want  to  write 
it  :-/  I  managed  to  cut.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15810">post</a> and <a href="http://use.perl.org/comments.pl?sid=16774">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Holy Hezzmana!]]></title>
    <link href="https://www.taskboy.com/2003-11-15-Holy_Hezzmana_.html"/>
    <published>2003-11-15T00:00:00Z</published>
    <updated>2003-11-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-11-15-Holy_Hezzmana_.html</id>
    <content type="html"><![CDATA[<p><p>Could the rumors of a <a href="http://filmforce.ign.com/articles/440/440604p1.html">Farscape mini-series</a> be true?  You'd better frelling believe it, frellnik! 
<p>All hail the return of leather pants!  <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15792">post</a> and <a href="http://use.perl.org/comments.pl?sid=16752">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Hello, MIDlet]]></title>
    <link href="https://www.taskboy.com/2003-11-14-Hello,_MIDlet.html"/>
    <published>2003-11-14T00:00:00Z</published>
    <updated>2003-11-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-11-14-Hello,_MIDlet.html</id>
    <content type="html"><![CDATA[<p><p>As sometimes happens in the life of a consultant, I was asked to investigate how to write some utility for mobile phones.  After some 
brief research, it appears that most widely supported tool for this kind 
of development is java.  So I downloaded many, many megabytes of SDKs
from Sun, including the Sun ONE studio (which is an insane IDE.  Why the 
heck do I "mount" a "local directory" instead of simply opening files and 
directories?  Is it because the network is the computer?  Sun, your 
terminology can bite me).  I also grabbed a copy of the SOAP library kSOAP from Enhydra. <br>
<p>After an hour of tweedling (and some small patches to Enhydra's stock quote demo), I got an existing cell phone java application (undeftly called a 'MIDlet') to run in the emulator.  Joy! 
<p>I then worked up a mod_perl SOAP::Lite server with an 'echo' service.  I recompiled the java MIDlet to use the new service.  No joy.
<p>It took me a couple hours, but the problem was  in the URN bit of the SOAP envelop (you know, the useless bit).  I wasn't able to code the URN 
in java in a way that was acceptable to SOAP::Lite's default on_action handler in SOAP::Transport::HTTP.pm.  The solution for me turned out to be this:

  use strict;
  use SOAP::Transport::HTTP "+trace" => "debug";
  SOAP::Transport::HTTP::CGI
           ->on_action(\&amp;on_action)
           ->dispatch_to("AB/WS" => "AB::WS",
                         SOAPAction => "AB::WS")
           ->handle;
  sub on_action {
    my ($urn1, $urn2, $method) = @<em>;
    warn("ws: ", join ", ", @</em>);
    unless (AB::WS->can($method)) {
      die "Don't know how to '$method' for AB::WS";
    }
    return "V2::WS::$method";
  }
  package AB::WS;
  sub echo {
    my ($self, @args) = @_;
    return SOAP::Data->name("echoResponse")
                   ->type("string")
                   ->uri(URI)
                   ->value("I got: " . join ", ", @args);
  }
 
<p>Both Perl and Java clients seem to work with this set up. Joy!
<p>Since I couldn't find docs on this Perl server/Java client SOAP combo, 
I thought I'd make the smallest effort to document this in case others get 
stuck on this bit of technical beaucracy.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15767">post</a> and <a href="http://use.perl.org/comments.pl?sid=16725">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Go  Pens!.]]></title>
    <link href="https://www.taskboy.com/2003-11-14-[MarkovBlogger]__Go__Pens_.html"/>
    <published>2003-11-14T00:00:00Z</published>
    <updated>2003-11-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-11-14-[MarkovBlogger]__Go__Pens_.html</id>
    <content type="html"><![CDATA[<p>on  them).  Go  figureâ¦  </p>  <p>    Now,  most  of the  history  of  the  other  side  of  this  isolation  is
 that  Jamie  Doran  admits  that  his  second  edition  is
 much  too  long,  but  inciteful  and  well-documented 
version  of  Perl,  wxWindows  and  wxPerl.  Dear  Log, 
<p><a href="http://www.clearchannelsucks.org/">Ever wonder
why radio in the US is awful, and getting worse?</a>  Dear 
Log,  <p>Worked  on  the  situation:  <blockquote> "This
latest enforcement initiative is primarily an expression of
extremism of this particular attorney general. [Ashcroft]
is a right-wing zealot. Now I'm not a fan of the Bush
administration, but I have to think that President Bush and
most of his serious advisers have far more serious work to
focus on right now than whether someone's selling rolling
papers and roach clips." </blockquote>  Marc  Rotenberg
 of  EPIC  had  this  to  <a href="http://www.perlfoundation.org/">The Perl
Foundation</a>.</p>  So  it  only  happens  with  this  for
 OSCon,  I  took  my  lock  apart  and  put  one  out  the 
guts  of  xterm  aliases  to  ssh  if  a  &lt;style&gt; 
tag  contains  a  whole  other  rant)  from  someone  named
 "Abbey  Normal"?    No  Google!  Good  luck!   
UPDATE:  jbodoni  got  it!  35  Trivia  Points, 
what  does  it  greatly  matter  how  nice  those  PDFs 
you've  created  are  if  <li>  they  would  be  efficient 
if  that  is  used  by  some  as  a  contractor  writing 
code  to  say  most  of  the  Perl  spec.  Non-existant. 
And  yet  we're  doing  fine  :-)  The  baby  was  smiling 
today,  and  have  the  intermittent  feeling  of  working 
in  the  US  Flag  Code  states  "However,  when  a  test 
until  I  tried  this  first  with  the  tests  (which 
will  likely  soon  be  seeing  me  flat  and  barely 
acceptable  to  distinguish  between  an  open  source  as 
a  full-contact  karate  fighter.  He  later  spent 
several  months  in  between.  Weird.  In  any  case,  I'm 
trying  to  fill  it  in  a  nutshell.  More  happened, 
but  nothing  to  do  something  that  just  came  out). 
Here's  a  patch,  should  I  do  launch  apps,  the 
Launch  routine  returns  immediately  instead  of 
$array[$i].  $i  has  no  options  for  configuring  sound.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15764">post</a> and <a href="http://use.perl.org/comments.pl?sid=16722">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[this valuable public service]]></title>
    <link href="https://www.taskboy.com/2003-11-13-this_valuable_public_service.html"/>
    <published>2003-11-13T00:00:00Z</published>
    <updated>2003-11-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-11-13-this_valuable_public_service.html</id>
    <content type="html"><![CDATA[<p>Andy Lester has very kindly mentioned my markov blogger program in his <a href="http://www.oreillynet.com/pub/wlg/3970">O'Reilly Network blog</a>:</p>

<blockquote>
&laquo;I first ran into autogenerated text back in 1984 from an article in Byte with a program listing for Travesty generator. I believe it was in BASIC, and I had to translate it into Turbo Pascal. I was hooked, and threw every scrap of text at it that I could find.<br>
<br>
My thanks to Joe for providing this valuable public service.&raquo; 
</blockquote>

<p><p>Thanks for the Press, Andy. <br>
But, like Prince Charles, I also must deny in 
the strong possible terms, the allegations in the blog that you are forbidden 
to write.  While not going into the specifics, I will note that my numerous enemies have long whispered about me hateful rumors that have been bred out of envy, contempt and misunderstanding.
Whatever may or may not have happen between a young boy, his butler and three
other older male relatives is indicitive of absolutely nothing.  The purile 
suggestions of my involvement with highly lubricated animals in comprimising 
positions is beneath comment.  And why would anyone want to say such hurtful 
things about my mother's anatomy?  Won't you vultures in the Press just leave 
Prince Charles and me alone?  These sorts of allegations should not even 
not appear in the worst of tabloids.  Shame! Shame!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15748">post</a> and <a href="http://use.perl.org/comments.pl?sid=16704">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[It comes in the night]]></title>
    <link href="https://www.taskboy.com/2003-11-12-It_comes_in_the_night.html"/>
    <published>2003-11-12T00:00:00Z</published>
    <updated>2003-11-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-11-12-It_comes_in_the_night.html</id>
    <content type="html"><![CDATA[<p>I can hardly contain myself as I wait for Homestar Runner's CD to be released next week.  Its ineffably dulcet tones will surely rock my world.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15724">post</a> and <a href="http://use.perl.org/comments.pl?sid=16678">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  software  process.]]></title>
    <link href="https://www.taskboy.com/2003-11-12-[MarkovBlogger]__software__process.html"/>
    <published>2003-11-12T00:00:00Z</published>
    <updated>2003-11-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-11-12-[MarkovBlogger]__software__process.html</id>
    <content type="html"><![CDATA[<p>have  a  general  disappointment,  abandonment,  and outright  flaming  phase,  a  shrinking  of  the  Mawangdui
 Yijing  manuscripts!  And  the  christians 
that  you  weren't  a  water  nymph,  you'd  be  doing 
that  site  is  rather  convoluted  and  not  enough 
result,  etc.  <p><blockquote> &laquo; Meanwhile the
parable of the Good Samaritan is "the story of the good
bloke." <br> And the Three Wise Men greet the King of the
Jews with a cheery, "G'day, your majesty." <br> â¦ <br>
"This is a reading book - it's what I call a bedside,
bathtub and beach Bible," Richards stressed." &raquo;
</blockquote>  <p>âBBC:  <a href="http://news.bbc.co.uk/2/hi/asia-pacific/3004112.stm">
Australian Bible gets church backing</a>  <p>I  got  an 
optical  mouse  which,  unlike  the  way  of  thinking, 
they  would  help.  Sure  enough,  I  realize  this  once 
it  was  some  client-side  database  application  with  a 
small  cost  node.  I  have  a  couple  weeks,  but  I'll 
take  what  they  want.</p>  I  have  no  idea 
why  I  was  really  required  for  the  desktop. 
Open  that  and  other  people  whose  opinions  on  the 
cover.  <p><a href="http://www.amazon.com/exec/obidos/ASIN/0596001789">YO
U BUY NOW.</a>  <p>The  Cult  of  Steve  is  certainly 
easier  to  match  across  newline  boundaries  <p>  3) 
had  ($var)  =~  $string  =~  /RE/.  That  first 
=~  should  have  arrived  Christmas  Eve,  as 
well.  Nice  fresh  coffee  though.    Anyway,  I've 
begun  to  snap  away.  You  can  think  of  it,  and  they
 are  just  going  with  option  number  3  here  (based 
on  how  to  CVS  on  cvs.perl.org  shortly.  I  should 
have  doen  the  same  time  -  back  injury.  I  don't 
want  to  see  if  it  would  save  me  a  bug  in  my 
sleep.    Oh,  wait.  I'm  writing  a  to-do 
list  consists  of  making  a  lot  of  people  who  have 
nothing  Perl  related  stuff,  whatever  I  felt  all  day
 working  on  getting  rest  so  we're  in  dim  light, 
IRCing  and  heckling  Larry.  The  talk  won't  work 
without  the  user  and  group  to  provide  some 
protection  against  TCP  snoopers.  I've  made  good 
coffee  maker?  I  don't  think  so,  but  we  will, 
someday.  <p>Two  links  from  other  london.pmers)  had 
been  avoiding  going  out  to  be  sexy.  âNat 
<p>In  addition  to  providing  ENV  info,  which  is 
understandable,  as  we  all  fear  about  cloning  is 
reproductive  cloning  -  replacing  your  failing  organs 
with  fresh,  healthy  ones  (by  creating  a  new  IO 
system  on  my  knee  for  about  an  hour  with  wireless,
 it's  a  bit  surprising  to  me  that  in  Eudora,  I 
like  it's  going  to  refrain  from  commenting.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15723">post</a> and <a href="http://use.perl.org/comments.pl?sid=16677">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  reality    Nice  day  for.]]></title>
    <link href="https://www.taskboy.com/2003-11-10-[MarkovBlogger]__reality____Nice__day__for.html"/>
    <published>2003-11-10T00:00:00Z</published>
    <updated>2003-11-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-11-10-[MarkovBlogger]__reality____Nice__day__for.html</id>
    <content type="html"><![CDATA[<p>a  bit.</p>  <p>Unfortunately,  my  views  on  religion (and  christianity  in particular)  this  group  is  calling for a boycott  of  any  four  colors.
 If  you  are  encouraged  to  mirror  it  yourself,  since
 I  might  be  some  obscure  filehandle  magic  or  hidden
 things  like  footnotes  or  tables  to  get  this  silly 
paper  done.  I  was  able  to  create  an  ssh-agent  and 
add  some  things  need  to  know  where  people  regularly
 ripped  on  my  Lava  Lamp  to  only  the  caffeine 
withdrawal.  I  was  unpacked  and  signed  the  contract 
we  worked  on  these  techniques  online.  Eventually  it 
will  have,  at  least,  I  thought  about  it  months 
later.  I  think  I  can  get  the  computer  to  parse 
the  O'Reilly  book  signing  in  the  audience  in 
places.  <p>  I'm  back  to  hyperactivity  to  sort  out. 
<p>  Duh.  <p>  It  came  on  the  truth  isn't  that  many
 modern  browsers  can  actually  deploy  this  now  (if 
we  decide  to  install  ZoneAlarm  on  the  schedule 
because  there  are  no  O'Reilly  books  for  us,  the 
Old  Executive  Office  Building  was  in  Monterey,  I 
think.  Perhaps  "furniture"  is  a 
pro-choice/anti-microsoft  one.  Yet  I  felt  all  day 
today  in  C  has  been    getting  the  full  width 
console  support  for  DWIM  and  craft  languages  that 
Google  can  find  it  funny  that  I  learned  how  a 
game  I  won't  explain  it  in  the  end.  <p>When  it 
was  some  sort  of  thing  can  really  hope  that  MySQL.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15676">post</a> and <a href="http://use.perl.org/comments.pl?sid=16627">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[game testers wanted for State Secrets]]></title>
    <link href="https://www.taskboy.com/2003-11-10-game_testers_wanted_for_State_Secrets.html"/>
    <published>2003-11-10T00:00:00Z</published>
    <updated>2003-11-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-11-10-game_testers_wanted_for_State_Secrets.html</id>
    <content type="html"><![CDATA[<p><p>Have way too much unorganized time on your hands and need a time-sink?  Do you miss old BBS DOORS games and wish you could have the 
same experience on the web?  Why not try out 
<a href="http://aliensaliensaliens.com/ss/game/">State Secrets</a>?  From 
the marketing collaterial:</p>

<blockquote>
&laquo;Enter the murky world of global conspiracies and bizarre folklore as a Agent for the FBI or as a mysterious Man in Black working for the shadowy organization known only as The Lodge. Pound the streets for informants from whom you extract those forbidden secrets and unlikely rumors that lead you inexorably to the mind-bending truth of our Lifeboat Earth. Can you put all the pieces of the puzzle together before your competition?&raquo;
</blockquote>

<p><p>State Secrets is my most serious attempt to develop a computer game. 
One thing that I've learned already: games are a lot more involved 
than business applications.  A few things to note off the bat:</p>

<ul>
  <li>There are no graphics.  I can't hack pictures, so I've designed the FE 
       without them.
  <li>Not every feature is emplemented in the game.  
  <li>The game play is too linear.  Character abilities are far too linear 
      and I think a truly beefly character would have no fun playing.
  <li>I don't think the game play is balance too well yet.  I'm hoping 
      for feedback on this so that I may tweak game elements to attenuate the 
      suck knob.
  <li>I need to write more rumors/secrets!  There aren't enough to support 
      more than 2-3 players.
  <li>SS is more like a board game than an RPG.  I didn't want to write an RPG,
      but I wanted a few RPG elements.  
</ul>

<p><p>If you're seriously interested in working on SS, I can give you access to 
the CVS repository, or perhaps I'll setup a sourceforge project for it.  The
internals of the game are a little weird at first, but I think there's a logic
to the system. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15682">post</a> and <a href="http://use.perl.org/comments.pl?sid=16632">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[4 Track A-Go-Go!]]></title>
    <link href="https://www.taskboy.com/2003-11-08-4_Track_A-Go-Go_.html"/>
    <published>2003-11-08T00:00:00Z</published>
    <updated>2003-11-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-11-08-4_Track_A-Go-Go_.html</id>
    <content type="html"><![CDATA[<p>Tough week of slogging code.  Kicked back with some scotch, broke out the four track cassette recorder and digitally "remastered" some of the 
better songs from my infamous musical past.  Enjoy these six great hits:</p>

<ul>
  <li><a href="http://taskboy.com/music/shut_up_and_listen.mp3">Shut up and Listen</a>:  Supply your own lighters for this acoustic anthem in 6/8.
  <li><a href="http://taskboy.com/music/but_not_yours.mp3">But Not Yours</a>: 
A greatest hit from a band you've never heard of (Zorknapp's</a> on bass).
  <li><a href="http://taskboy.com/music/thorny_crown_4trk.mp3">Thorny Crown</a>: Who's more deserving of your pity than you?
  <li><a href="http://taskboy.com/music/dont_be_late.mp3">Don't be late</a>: Sage advice, even for the non-henpecked.
  <li><a href="http://taskboy.com/music/no_turning_back_4trk.mp3">No Turning Back</a>: From 1990 comes this bastard child of the grunge rock and Pink Floyd. 
  <li><a href="http://taskboy.com/music/dance_of_the_sunni.mp3">Dance of the Sunni</a>: Did somebody order a long-winded instrumental?
</ul>

<p><p>Remember, you can always listen to more of this kind of nonsense on 
<a href="http://taskboy.com/music/">Taskboy</a></p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15652">post</a> and <a href="http://use.perl.org/comments.pl?sid=16599">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Inventive  spam    iApps    Back  to.]]></title>
    <link href="https://www.taskboy.com/2003-11-07-[MarkovBlogger]__Inventive__spam____iApps____Back__to.html"/>
    <published>2003-11-07T00:00:00Z</published>
    <updated>2003-11-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-11-07-[MarkovBlogger]__Inventive__spam____iApps____Back__to.html</id>
    <content type="html"><![CDATA[<p>the  up  side,  I  do  feel  like  Michael  Bolton though.  Posted  from  <a href="http://caseywest.com">caseywest.com</a>,  comment  <a href="http://caseywest.com/journal/archives/000081.html">he
re</a>.  I  ordered  a  couple  of  patches.  On  Sunday  I
 had  to  explain  themselves:  <ul> <li>Don't eat so
damned much, you pig!</li> <li>Don't eat anything that
comes out of a box.</li> <li>Stuff from a bakery is for the
kids, not for you.</li> </ul>  I  loved  the  Seth  Able
 BBS  Door  game  <em>Legend  of  the  kids.<p>  Nat: 
Right,  no  elliptic  fellatio  references,  but  fucking 
bacon  is  just  tiresome;  MySQL  and  Perl  6 
inheritance  tree."<p>  This  rapidly  descended  into  how
 to  use  any  PerlSAX2  parser  in  Perl  5  Porters  at 
OSCON.  Basically,  if  you  hack  the  Flash  maps  (in 
cellphones,  send  them  a  break.  Still,  I  think  the 
book  -  it's  definitely  made  life  easier  for 
everyone.  I'm  forced  to  write  a  simple  <a href="http://www.opml.org/">OPML</a>  to  blogroll 
template.  </p>  HFB  has  discovered  INS  questions. 
When  Jenine  and  (to  a  lesser  number  of  virtual 
beer  tokens,  that  we  can  hope  that  the  last  week's
 PyCon,  it  is  only  Â£20)  but  it's  not  like 
that  happensâ¦  According  to  the  internet)  and  <a href="http://groups.google.com/groups?selm=DAVE.CROSS.97Jun
3165636%40ln4d110swk.gb.swissbank.com">this</a>  seems  to 
be  able  to  relax  and  see  if  my  computer  is  still 
Mac  OS  X.  Demoed,  with  another  hyoomon  in  the  same
 result  for  this  is  the  parent  as  a  cooperative 
deal  like  the  format  and  cowritten  the  first  place.
   I'm  talking  about.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15636">post</a> and <a href="http://use.perl.org/comments.pl?sid=16580">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  assertion    strict::ModuleName    Double  Secret Probation.]]></title>
    <link href="https://www.taskboy.com/2003-11-05-[MarkovBlogger]__assertion____strict__ModuleName____Double__Secret_Probation.html"/>
    <published>2003-11-05T00:00:00Z</published>
    <updated>2003-11-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-11-05-[MarkovBlogger]__assertion____strict__ModuleName____Double__Secret_Probation.html</id>
    <content type="html"><![CDATA[<p>Earth's  largest  and  most  of  the  starter  home furnishings  I remember  from  times  past,  with  a 
canned  response  that  wasn't  needed  at  most  of  the 
current  lame  formats.  <p>Also,  I  think  this  is 
mostly  about  education  and  the  house,  and  the 
appropriate  imperfect  suffix.  So  you  access  page  X, 
it  is  smart  enough  to  identify  spam.    Once  I 
get  home  from  training.    I'm  glad  I  got  another
 email  message  to  fill  a  bottle  with  a  laser 
printer  for  a  database  with  lots  of  useless 
constant  globals.  :-)  <p>    You  can  have  based  on 
race.  That  it  is  not  that  simple.  I  just  paranoid?
 Either  way,  you  can  run  it  on  your  face.<p>  <a href="http://perl.plover.com/~mjd/">Mark-Jason Dominus</a> 
is  one  of  the  way.So  that  was  actually 
broadcasting  in  widescreen.</p>  <p>They  say  that  I 
am  working  on.  This  makes  for  an  8:30  tutorial. 
Wet.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15583">post</a> and <a href="http://use.perl.org/comments.pl?sid=16526">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Red Hat to ride off into history]]></title>
    <link href="https://www.taskboy.com/2003-11-04-Red_Hat_to_ride_off_into_history.html"/>
    <published>2003-11-04T00:00:00Z</published>
    <updated>2003-11-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-11-04-Red_Hat_to_ride_off_into_history.html</id>
    <content type="html"><![CDATA[<p>As reported by Slashdot yesterday, Red Hat's preparing to ax their <a href="http://www.newsforge.com/software/03/11/03/1657205.shtml">consumer line of Linux distros</a>.  </p>

<blockquote>
Â« "â¦will discontinue maintenance and errata support for Red Hat Linux 7.1, 7.2, 7.3 and 8.0 as of December 31, 2003," that "Red Hat will discontinue maintenance and errata support for Red Hat Linux 9 as of April 30, 2004," and that "Red Hat does not plan to release another product in the Red Hat Linux line." Â»
</blockquote>

<p><p>This comes has a shock to me, since I've come to really enjoy using</a> Red Hat.  At least I knew how to wrangle it to the ground when it got uppity. Oh well.  The King is dead.  Long live the King. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15550">post</a> and <a href="http://use.perl.org/comments.pl?sid=16491">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  anyway)  .]]></title>
    <link href="https://www.taskboy.com/2003-11-03-[MarkovBlogger]__anyway)__.html"/>
    <published>2003-11-03T00:00:00Z</published>
    <updated>2003-11-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-11-03-[MarkovBlogger]__anyway)__.html</id>
    <content type="html"><![CDATA[<p>will  certainly  get  along  with  updated  versions  of modules  in  Linux  recently.  (Of  course,  writing 
garbage  collection  ,  memory  management  and  idiotic 
co-workers.  In  fact,  many  very  smart  and  install 
all  of  these  stores  in  France  is  usually  great  in 
the  back  an  outline  for  what  I've  heard,  including 
"Klein  Aber  Doctor"  by  Atmos  and  "I'm  in  Heaven" 
by  Holly  James.    Anyone  seen  The  Mothman 
Prophecies  (is  that  the  net  and  Perl)  is  to 
find  out  what  was  on  about."  Just  don't  ask  for
 it  to  boot.  The  first  thing  he  wants  to  improve 
Infobot  handling  of  binary  XML  you'd  expect  "Here's 
a  movie  watching  weekend  seeing  <a href="http://us.imdb.com/Title?0245844">The Count of Monte
Cristo</a>  and  <a href="http://us.imdb.com/Title?0118842">Chasing Amy</a>. 
Kevin  Smith  is  a  chunk  finishes  it  tells  you  it's 
going  to  be  found  so  you  won't  be  here  reading  my
 book.  <p>So  I  did  to  the  open()  system  call,  so 
there's  plenty  of  rain,  ice,  moss,  and  trees;  and 
that  there  are  a  few  methods,  but  not  the 
acquisition  cost.  This  is  the  security  concern
 (someone,  I  forget  what  Konrad  Zuse  was  doing,  I 
made  won't  render  it  unbuildable  for  people  to 
closed  viewpoints.  Note  the  Inline::*  modules.  Note 
that  I  no  longer  the  road  to  go  the  same  thing 
and  haven't  found  the  TV  and  then  it's  because 
it's  mostly  downhill.  However,  this  does  not  however
 imply  that  it  turned  their  surviving  victims  <a href="http://www.guardian.co.uk/letters/story/0,3604,659103
,00.html">into wingnuts too.</a>  Flash,  again,  <a href="http://rss.com.com/2100-1040-949364.html?type=pt&amp;part
=rss&amp;tag=feed&amp;subj=news">has problems</a>:  <blockquote>
Macromedia has warned that its Flash Player, a ubiquitous
application for playing multimedia files, has a
vulnerability that could allow attackers to run malicious
code on Windows and Unix-based operating systems. <p>
Separately, researchers discovered a flaw in the player
that could allow an attacker to read files on a personÂs
local hard drive. <p> The software flaws are serious
because the Flash Player is so widespread. Macromedia
estimates that more than 90 percent of PCs are capable of
playing Flash content. </blockquote>  PGP  is  pretty 
buggy.  It  crashes  a  lot.  This  is  stuff  like  DIV 
and  whatnot.  Can't  be  that  far  away.  Oh  man.<p> 
The  goats  in  the  morning.    And  then  when  they 
finished.  The  next  day  that's  40%  of  people  who 
want  to  swallow  pills  and  I  would  get  taken  up  in
 the  past,  I'd  fly  it  there:  I  AM  CODER!  Perl  is 
at  least  one  form  or  another.  I  have  been 
swimming.</p>  <p>I  went  to  lunch  with  most  object 
inheriting  from  the  heat.  The  crocodile  feeding  was 
the  response  to  a  different  icon).  My  new  review 
was.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15528">post</a> and <a href="http://use.perl.org/comments.pl?sid=16466">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Dispirited]]></title>
    <link href="https://www.taskboy.com/2003-10-31-Dispirited.html"/>
    <published>2003-10-31T00:00:00Z</published>
    <updated>2003-10-31T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-31-Dispirited.html</id>
    <content type="html"><![CDATA[<p><p>Halloween was favorite holiday for many, many years.  It was the one holiday devoted to mischef and chaos.  A time when the boring, gray 
interactions of daily life were eschewed for something vaguely akin to that 
old Star Trek episode in which the disciplined citizens of an alien town ran 
amok shouting "Festival! Festival!"  I liked the costumes.  I liked the 
pumkins.  I liked the candy.  I even like the television programming. <br>
Periodic rumors of devil worshippers and the razor-hiding apples only made 
the night more bizaare and attractive.
<p>In the Lew Black concert that I recently attended, the infamously irrated 
comic dispaged the traditions of this holiday.  He noted that those who carve
more than one pumpkin have clearly failed to notice the ungodly stench of the
squash.  He spewed some bile over adults who dress up on Halloween, noting 
that it's a kid's holiday.  While Black's positions were exaggerated for 
comedy, I find that I'm in harmony with his sentiments. 
<p>My spooky-time traditions have dwindled to reading a few H. P. Lovecraft 
stories and a bit of E. A. Poe.  If I think of it, I watch /Evil Dead II/ 
or an old Vinny Price flick from the sixties. 
<p>Halloween has lost its magical sheen over the years.  I don't 
go to many Halloween parties and I don't really want to disguise myself 
as a pirate, a clown or Wookie.  Even the much-beloved town of Salem can't
rekindle this old flame.  Halloween has become just another hook to yank 
money of our wallets.  It short, it seems that Halloween has become 
respectable and in so doing as lots much of what made the day fun.  And that 
is the scariest trick of them all. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15501">post</a> and <a href="http://use.perl.org/comments.pl?sid=16432">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Windows    friendgreetings.com  .]]></title>
    <link href="https://www.taskboy.com/2003-10-31-[MarkovBlogger]__Windows____friendgreetings.html"/>
    <published>2003-10-31T00:00:00Z</published>
    <updated>2003-10-31T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-31-[MarkovBlogger]__Windows____friendgreetings.html</id>
    <content type="html"><![CDATA[<p>via  a  laptop  or  MP3  player.  [*  Compilations  have more  modules  are  unavailable.  I  called  Demon,  who 
told  the  journal  is  used  by  an  Englishman  and  a 
chainsaw  and  hedge  cutters,  saying  that  if  I  lived 
in  their  clubhouse  (c.f.  Caddyshack  et  al.), 
we  should  ignore?  My  wife  just  wanted  to  split 
into  a  chain  of  humanity?  If  I  can  actually  write 
several  command-line  scripts  that  compile  the  damn 
link,  here  it  is:  <ul><li><a href="http://members.spinn.net/~sburke/muppet_gamelan.mid">
muppet_gamelan.mid</a>, ~6KB, ~15 seconds. </ul>  The 
wonderful  taste  lingers.  In  other  words,  unless  you 
wanted  one,  but  two  pages  of  the  galaxy  is  really 
ungodly  code:  <blockquote> TorgoX: yes, but
perldoc is just wrappers around real stuff. Whereas
Pod::Html does real work, and it's all GHASTLY. <p><a href="http://www.angelfire.com/tv2/adultswim/tbs/ep02timema
chine.html">Lord Wellington's Beef Trapeze:</a> I
remember looking intently at pod2html. While I don't
remember the details, I recall thinking that it shouldn't
work. <p>Lord Wellington's Beef Trapeze:
Something along the lines of lovecraft's "the thing that
should not be" <p>TorgoX: Totally. The simple
fact [is] that he just doesn't build a tree structure, or
even a token list. It's like he doesn't want to do anything
that he couldn't do in Perl 4 </blockquote>  <p>Later  it 
occurs  to  me:  I  am  very  sold  on  Pg's  locking 
model  (readers  don't  wait  for  the  doctor,  one  for 
myself  for  the  homepage  for  Perpetual  Motion  is  <a href="http://www.sonyclassical.com/music/89610/">here</a>)&lt;
p>  âNat  Dear  Log,  <p>The  other  day,  where 
he  justifies  not  only  my  IPs  for  now  I'll  just 
blame  all  of  the  PDF  a-printin'  and  plan  to  hit 
the  occasional  non-critical  bug.  The  best  thing  in 
a  module  goes  like  this:</p>  <ul> <li>Download</li>
<li>Extract (gzip | tar -xvf -)</li> <li>$ perl5.6.1
Makefile.PL</li> <li>$ make</li> <li>$ make test</li> <li>$
make install</li> </ul>  <p>Upgrading  perl  can  be 
assigned  to  more  accurate  information).  The  report 
cited  above  and  see  if  that  wasn't  where  it  was 
designed  for  programs,  not  for  lack  of  innovation 
in  Perl,  no  less.)    But  she's  breathing.  She's 
breathing,  and  I'm  checked  in.  It  was  good  to  see 
him  in  the  future.  :)    Oh,  and  SAX  people, 
<p>I  recently  tossed  together  a  list  that's  already 
in  the  US  government.  Why,  why  would  you  like  6/8 
and  grutuitous  samples  of  my  problem  is  that  they 
think  that  the  script  to  perlmonks,  for  anyone  who 
doesn't  like  to  add  "bag"  equivalents  for  some 
reason  I  care  admit  reading  it.  Oh,  mighty  fallen, 
etc.<p>  âNat  There's  a  storm  system 
developing  that  could  have  some  interesting 
perspectives  on  why  .NET/Web  Services  are  not 
entitled  to  one  of  the  state  of  the  local  Borders 
(or  B&amp;N)  and  just  waste  a  lot  of  legal  action 
always  cheer  me  up  at  8  CST,  when  the  reason  I'm.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15494">post</a> and <a href="http://use.perl.org/comments.pl?sid=16425">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Larry  and  the  winner  is…    Eddy  van  Hagar  .]]></title>
    <link href="https://www.taskboy.com/2003-10-29-[MarkovBlogger]__Larry	and__the__winner__is.html"/>
    <published>2003-10-29T00:00:00Z</published>
    <updated>2003-10-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-29-[MarkovBlogger]__Larry	and__the__winner__is.html</id>
    <content type="html"><![CDATA[<p>order  consists  mostly  of  books  that  cover  various styles    and  epochs  of  science  and  mutating  it  in 
bucketfulls.  <p>And  from  the  London  perlmongers  list,
 showing  the  game  play.  Whatever  "it"  is,  I  can't 
see  how  listboxes  work  (one's  showing  up,  but  is  a
 bit  more.  I  think  Tim  needs  to  be,  at  least  35 
databases  I  want  to  try  and  re-edit  and  revert 
your  changes.  This  was  of  course  had  hundreds  of 
people  who  write  bad  Perl  programming  career.  For 
decades,  scientists,  pundits,  ecologists  and 
strategists  have  been  doing  some  sort  of  thing 
makes  Unix  (well,  linux  for  me),  a  joy.  Oh,  and 
lucky  me,  I  kept  getting  100%  of  RAM.  This  is 
even  nicer).</p>  <p>Then  last  night  ran  a  program 
[or  more  likely  part  of  <a href="http://search.cpan.org/search?dist=Text-Unidecode">Te
xt::Unidecode</a>.  Before  I  forge  ahead,  however,  it 
is  unusable.  I  finally  got  the  Gyration  Ultra  GT 
Compact  Keyboard  Suite  (<a href="http://gyration.com/ultragt-compact.htm">http://gyrat
ion.com/ultragt-compact.htm</a>).  I  was  hit  with 
machine  gun  killing  everyone  in  the  amazing 
summer-like  weather  and  5  different  sets  of  axes. 
<p>Damian  just  proved  the  hatch  would  have  been 
googling  without  success.  <p>  Gavin  It's  been  a 
problem  he  worked  with  all  these  on  a  branch  that 
was  left  was  vegetarian  meals.  However,  it  turned 
out  that  RealPlayer  is  not  working  :(  </p>.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15453">post</a> and <a href="http://use.perl.org/comments.pl?sid=16381">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[pet marriage]]></title>
    <link href="https://www.taskboy.com/2003-10-29-pet_marriage.html"/>
    <published>2003-10-29T00:00:00Z</published>
    <updated>2003-10-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-29-pet_marriage.html</id>
    <content type="html"><![CDATA[<p><p>I support pet marriage</a>, but only between heterosexual partners.  Homosexual pet marriage is an 
abomination that would debase the sanctity of the whole pet 
marriage institution.  I mean, which one of them would you call the wife?</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15462">post</a> and <a href="http://use.perl.org/comments.pl?sid=16389">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[When glibc attacks!]]></title>
    <link href="https://www.taskboy.com/2003-10-28-When_glibc_attacks_.html"/>
    <published>2003-10-28T00:00:00Z</published>
    <updated>2003-10-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-28-When_glibc_attacks_.html</id>
    <content type="html"><![CDATA[<p><p>Like a ethnic dish, some mistakes we are destined to repeat. <p>In the course of my Linux experience, I've hosed many a server.  Sometimes
I've assigned swap space on an external RAID box.  Sometimes I've created
overlapping disk partitions on hard disks.  Sometimes I can't even tell what 
I've done.  This is what makes Linux and Unix fun.
<p>However, there seems to be one mistake I can't stop making.  A Unix system
layered like a onion.  Each layer depends on the preceeding one to work.  At
the lowest layer is the kernel, which futzes with the hardware and attempts
to make all Linux/Unix systems appear to be the same from an application 
programmer's point of view.  The bridge between the kernel and applications 
(and even basic system services like init and bash) is the libc library. <br>
Without this library in good working order, it becomes difficult to exit 
one's shell, let alone reboot the system cleanly.
<p>Now, I upgrade various bits of my system all the time.  I'm not afraid
to recompile the kernel.  I'll update the C compile and attendent utilities
with wild abandon.  However when it come to updating that most scared of 
files libc, my track record is not so hot.  You see, get lulled into thinking 
that a package manager like rpm can Do The Right Thing to install libc without
hosing the system.  In fact, a google search relieve a testimonial from a user
with the same version of RedHat I have successfully upgrading his libc to 
the version I also desired. <br>
<p>Alas, not all messages should be taken at face value.
<p>There are three libc (really glibc) packages that needed to be successfully
installed.  The first two worked fine.  The last failed and precipitated a 
cascading failure that resulting in my reformating the root partition and 
laying out a fresh install.  I got to bed around 2A.  Good times.
<p>One of the last things I did was to install Spam Assassin, since I was 
already getting swamped with spam.  Of course, sendmail tripped me up.  I 
forgot to add symlinks in /etc/smrsh to procmail and spamassassin.  So imagine
the hilarity as I awoke to find 4000 messages being downloaded by fetchmail, 
nearly all of the bounces from my local sendmail saying "I don't do procmail,
biznatch."  Boundless joy!
<p>With that sorted out, DNS back in place, and offloading DHCP to my linksys 
router, I'm pretty much back up and running with the essential services. <br>
Of course, I'm missing a lot of formally installed Perl modules.  Like 
SOAP::Lite, which I need to post this journal.
<p>Sigh.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15427">post</a> and <a href="http://use.perl.org/comments.pl?sid=16352">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Disco  Inferno    V    The  Fellowship  of  the  web exists.]]></title>
    <link href="https://www.taskboy.com/2003-10-27-[MarkovBlogger]__DiscoInferno____VThe__Fellowship__of__the__web_exists.html"/>
    <published>2003-10-27T00:00:00Z</published>
    <updated>2003-10-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-27-[MarkovBlogger]__DiscoInferno____VThe__Fellowship__of__the__web_exists.html</id>
    <content type="html"><![CDATA[<p>listening  through  them.  Case  in  point:  Friday.  The Friday   session  schedule  had  had  to  be  developed  by 
a  measure  of  8  to  2  weeks!.  Total  bullshit.   
And  perhaps,  from  now  on  CPAN.  <p><a href="http://www.guardian.co.uk/online/story/0,3605,744206,
00.html">CmdrTaco interviewed</a>  by  the  old  one  out. 
We  had  dinner  that  night  I  decided  that  the  former
 would  require  sending  the  stuff  I've  seen  where 
we've  seen  has  anything  to  fear  hardware.  I  have
 yet  to  have  some  pet  projects  and  handles  15meg 
files  without  complaint.  I  thought  the  <a href="http://news.bbc.co.uk/hi/english/business/newsid_2006
000/2006536.stm">world was saved</a>â¦  See  also  the 
first  one  in  London  right  now  is  that  theists  in 
the  processing  language  since  we  have  reached  the 
end,  it's  all  set.  Sweet.  Late  last  month,  and  I 
would  have  learned  this  in  testing  for  a  <a href="http://www.lazykatcreations.com/images/oring.jpg">dan
delion break</a>.  I  have  is  for  the  last  week  were 
183.  And  since  I  went  to  Radio  Shack  to  buy 
essentials;  milk,  rice  krispies,  nyquil,  and  shampoo.
 When  I  tire  of  iTunes,  I  listen  to  <a href="http://www.xmradio.com/programming/channel_page.jsp?c
h=45">XM Channel 45 - XM Cafe</a>  or  <a href="http://www.xmradio.com/programming/channel_page.jsp?c
h=44">XM Channel 44 - Fred</a>  if  I  were  rushing 
around  for  a  hundred  people,  endless  rows  of 
]|]N"]'|]']N  to  me.  It  was  my  fault,  running  a 
conference.  My  purpose  there  was  a  fatal  error 
along  the  Charles  river.  Leaving  from  Kenmore,  I 
first  set  of  lines:  name:stock:shown 
name1:stock1:shown1  name1:stock1:shown1 
name1:stock1:shown1  name1:stock1:shown1   
etc.,  ad  nauseum.    Well,  once  I  retrieve  it 
from  the
CPAN  or  SF.net.  (Note:  it  may  not  played  o  I 
got  this  book  called  Men  are  from  CPAN.  <p>  But
 we  engineered  things  so  that  was  falsely  reported 
as  succeeding  (lib/dprof.t).  
:lib:db-btree.t :lib:db-hash.t :lib:db-recno.t
:lib:dosglob.t :lib:dprof.t :lib:ftmp-mktemp.t
:lib:ftmp-posix.t :lib:ftmp-security.t
:lib:ftmp-tempfile.t :lib:ndbm.t :lib:posix.t
:op:die_exit.t :op:magic.t :op:misc.t
:op:sprintf.t :pragma:warnings.t   I 
think  that  my  wife  likes  it.  A  jargon  term  that 
I'm  coming  to  an  FSRef,  and  XS  will  be  gone  by 
May.  It's  important  to  understand  certain  things 
looked  like  the  <a href="http://www.eff.org/">EFF</a>.</p>  <p>$65  works  out
 at  the  top.  It's  like  driving  a  traffic  problem 
and  generally  making  web  apps  is  done!  Kick  ass! 
This  would  be  with  a  new  job  is  15-20  minutes 
away.  This  is  a  gripping  adults  movie.  HP  felt 
longer  than  usual  so  that  companies  can  search  too,
 but  it  was  very  spontaneous  and  free-flowing,  as 
befits  a  live  call  in  HiRes.t  took  so  long  to.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15406">post</a> and <a href="http://use.perl.org/comments.pl?sid=16325">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  speed  .]]></title>
    <link href="https://www.taskboy.com/2003-10-24-[MarkovBlogger]__speed	.html"/>
    <published>2003-10-24T00:00:00Z</published>
    <updated>2003-10-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-24-[MarkovBlogger]__speed	.html</id>
    <content type="html"><![CDATA[<p>Things  Past  and  Toad  from  Wind  in  the  Denver International  Airport    is  like  a  traditional  label 
backing  them.  That  will  scare  record  execs 
far  more  stable  in  other  people's  code.    As 
some  of  the  offices  this  is  put  together,  and  I'll
 probably  put  the  challenge  out  there.  From  my 
paultry  understanding  of  copyright  law,  it  is  the 
object  and  what  they  produce  and  when.  The 
collection  of  #1-10.  It  also  has  tight  integration 
between  audio  <p>(Brought  to  by  jjohn's 
MarkovBlogger  (&trade;):  If  it  makes  me  feel  crappy.
 But  this  is  exclusive  to  AppleScript  (I  doubt  it, 
but  "workingness"  is  kind  of  thing  I  ask  and 
fevered  brows  I  soothe,  I  never  thought  I  it  would
 help  me  learn  XML.    That  and  some  other 
goodies.  I'm  now  trying  to  <em>fight</em>  terrorism? 
W.  T.  F.?  I'm  writing  a  CGI  would  be  a  bastard 
in  the  domain  to  have  better  books  out.  A  while 
back  and  Kip  Hampton  sent  me  this
link  all  about  entrenchment  -  the  trivia 
challenge  answers  have  been  ignored.  What  can  I 
borrow  you  ladder  to  get  at,  but  he  rightly  points
 out  that  it  splits  <em>only  on  mp3  frame 
boundaries</em>,  so  that  the  kids  to  let  me  feel 
faint  and  twitch,  how  to  deal  with  stilly 
UnicodeMapping  junk.  It's  quite  beautiful  in  the 
general  feel  for  authors  who  were  at  the  code.  I.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15365">post</a> and <a href="http://use.perl.org/comments.pl?sid=16278">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[a not so subtle hint]]></title>
    <link href="https://www.taskboy.com/2003-10-24-a_not_so_subtle_hint.html"/>
    <published>2003-10-24T00:00:00Z</published>
    <updated>2003-10-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-24-a_not_so_subtle_hint.html</id>
    <content type="html"><![CDATA[<p>The BBC <a href="http://news.bbc.co.uk/2/hi/entertainment/3209223.stm">reports:<blockquote>
&laquo;The lightning bolt hit Caviezel and the film's assistant director Jan 
Michelini while they were filming [Gibson's The Passion of Christ] 
in a remote location a few hours from Rome.
<br><br>
It was the second time Michelini had been hit by lightning during the shoot.&raquo; 
</blockquote>
<p>It would be imprudent to conclude that some nameless deity isn't pleased
with this movie simply because the asst. director has been smote twice with
heavenly fire.  However if a third lightning strike occurs, Michelini 
might want to consider dropping out of this project at first available 
opportunity and making some discreet inquiries with the Roman Church. <br>
<p>No one wants to see how a fourth omen would manifest. <br>
<p>Of course, five omens are right out. 
<p>update: Apparently the All-Mighty is throwing quite a few lightning 
bolts around these days.  In early October 2003, 
<a href="http://www.snopes.com/religion/bolt.htm">Lightning strikes a church 
during a sermon after preacher identifies thunder as the voice of God</a>.
<p>Perhaps I should invest in shoes with thick rubber soles?</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15361">post</a> and <a href="http://use.perl.org/comments.pl?sid=16274">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[pet medicine]]></title>
    <link href="https://www.taskboy.com/2003-10-24-pet_medicine.html"/>
    <published>2003-10-24T00:00:00Z</published>
    <updated>2003-10-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-24-pet_medicine.html</id>
    <content type="html"><![CDATA[<p><p>Medicines suck.  <p>Don't get me wrong: they're very useful when disease and injury occur. <br>
But medicine is too much of a bother for most people, I think.  It's only 
with the threat of the Reaper's imminent arrival that people grudging follow 
the advice and council of trained medical professionals.  I failed to 
understand why more thought hasn't gone into making medicines more attractive
and, let's be candid, fun.  I mean, there's no reason that medication has to 
make you miserable to work (baring chemo). 
<p>As unfun as medicines are for people, pets are doubled bothered by them.
As pet owners (and amateur nurses), we have a difficult time making 
our unwilling patients understand the necessity of the treatment.  Animals, it 
seems, are far more willing to suffer pain and discomfort than take a chance 
on foul-tasting pills (it was hard enough to convince me to swallow 
pills and I understood the instructions!) or strange, unnatural smelling 
liquids.  Given that medicines aren't attractive one's pet, how far should one 
force the issue of delivering medication?  Most of us are strong enough to 
overpower our animals, but that seems an especially cruel betrayal since 
the animal will in no way associate your assaults with his improved health. <br>
One can try pleading, but that will be utterly futile.  That leaves 
deception.  Unfortunately for me, I'm not crafty enough to make medicine 
not taste like medicine (I have a hard enough time making chicken not taste
like medicine).
<p>How do you administer to an unwilling pet?</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15388">post</a> and <a href="http://use.perl.org/comments.pl?sid=16303">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[snowing in Boston]]></title>
    <link href="https://www.taskboy.com/2003-10-23-snowing_in_Boston.html"/>
    <published>2003-10-23T00:00:00Z</published>
    <updated>2003-10-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-23-snowing_in_Boston.html</id>
    <content type="html"><![CDATA[<p><p>For the love of sweet Jove, it's snowing in Boston.  It's not yet Halloween, and I'm greeting this morning by snow flurries.  This just isn't fair.  I mean, all the rabid Red Sox fans were only recently put to bed for another year and normally there's a blessed quiescence in the neighborhood for a time before the horrors of winter set in. 
<p>Alas, not this year.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15343">post</a> and <a href="http://use.perl.org/comments.pl?sid=16254">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Services  research    Newsgroup  lost?.]]></title>
    <link href="https://www.taskboy.com/2003-10-22-[MarkovBlogger]__Services__research____Newsgroup__lost_.html"/>
    <published>2003-10-22T00:00:00Z</published>
    <updated>2003-10-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-22-[MarkovBlogger]__Services__research____Newsgroup__lost_.html</id>
    <content type="html"><![CDATA[<p>found  a  refurbished  DVP-NC655P  DVD  player.  :O  Yep, I  have  written.  The   most  interesting  candidates  to 
me  not  to  exercise  or  testing  or  used  to  go  see 
if  I  could  just  upgrade  8.2  enough  so  that  his 
cautious  nature  was  lulled  utterly  to  sleep.  <p>Our 
story  opens  in  a  littleâ¦â¦  â  surpise  !  â 
â¦..  SAX  Goodness  ;)  I  just  reversed  it:  it  takes
 work  to  do  much  of  it  as  I  came  to  a  Ruby 
interface  to  a  meaningful  value.    In  the  case 
without  a  WSDL  file  (or  any  RDBMS)  just  to  see 
the  binge  drinking  as  much  of  a  2001:  A  Space 
Odyssey  meets  Sphere.  Anyway,  I  just 
haven't  had  any  coffee  today,  either.  That's 
probably  the  right  to  decide  the  date  and  don't 
see  mod  perl  listed).  They  even  have  pictures  to 
prove  it,  I  just  installed  the  latest 
Term::ReadLine.  It  looks  exactly  like  the  view  of  a
 horrid  solvent  smell.  It's  so  pointless.  I  almost 
completely  reversed  
my opinion on Perl and XML  in  the  kitchen;  I'm 
making  an  elaborate  record  of  the.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15319">post</a> and <a href="http://use.perl.org/comments.pl?sid=16228">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[It's a hell of town.]]></title>
    <link href="https://www.taskboy.com/2003-10-20-It&apos;s_a_hell_of_town.html"/>
    <published>2003-10-20T00:00:00Z</published>
    <updated>2003-10-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-20-It&apos;s_a_hell_of_town.html</id>
    <content type="html"><![CDATA[<p><p>Today I took the train to Providence, Rhode Island ("The Biggest Little State in the Union" as a tourism tagline once claimed 
of this misnomer of a place). 
Along the way, I was pleased to see that the decaying bridge over the Sharon
Commuter Rail stop had been replaced by an uncharacteristically handsom (for 
Puritanical Massachusetts) span.  Delightful! <br>
I can't claim to have an intimate familiarity with infamous home of H. P. 
Lovecraft, but in the past it has always failed to overwhelm my expectations. 
Providence was known to me more for it's Foxy Lady gentleman's club and
corrupt politicians than for hosting Brown University or anything else that 
might interest me.  However, the city seemed a whole lot more tasteful this 
time to me from the train station, which lays at the foot of State House.
<p>When I concluded my business there, I patronized a Border's 
bookstore where I found the delightful Lovecraft memoir, Lovecraft at 
Last.  As a fan of the late author of weird tales, this book was a welcomed
find.  As an unwarranted bonus, the saleswomen who processed the order was 
overly gifted with womanly attributes.  And that just endeared Providence to 
me all the more.
<p>On reflection, I probably would have visited this city sooner had the staff
of The Foxy Lady had simply sold books in between lap dances.
<p>All I'm saying is that Providence is a hell of town.  That's all.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15299">post</a> and <a href="http://use.perl.org/comments.pl?sid=16205">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  The  Dark  Side    How.]]></title>
    <link href="https://www.taskboy.com/2003-10-20-[MarkovBlogger]__The__Dark__Side____How.html"/>
    <published>2003-10-20T00:00:00Z</published>
    <updated>2003-10-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-20-[MarkovBlogger]__The__Dark__Side____How.html</id>
    <content type="html"><![CDATA[<p>cluttered  with  tons  of  other  such  bits.  <p>  What I'm  really  looking  forward  to  catch  up  with  an 
interesting  way  based  on  my  (now  defunct)  FreeBSD 
box.  (I'll  have  to  implement  an  option  to  find 
phrases  on  the  list  of  "approved  technologies"  for 
new  programmers!  I'll  never  do  what  we  did  some 
checking  on  the  27th,  fixed  it,  I  needed  the  shirt
 was  only  meant  to  be  airtight  seals,  they  push  on
 the  other  chapters  :-)<p>  âNat  <p>Okay,  so 
I've  done  some  amount  of  spam  -  where  there's 
really  strange  stuff  happening  already,  such  as 
Galadriel  talking  about  several  posts  ago;  the  work 
jukebox,  but  I  want  a  BIOS  upgrade  (currently 
American  Megratrends  Amibios  1997).  So,  I  go  to  the
 general  vicinity  of  it,  and  it  does  not  work. 
Call  up  stupid-stupid  tech  support.  He  calls  tech 
support.  He  calls  tech  support.  Yesterday  our  tech 
support  for  no  special  reason  for  that  name)  and 
one  of  the  ivory  tower  talk  instead,  except  for 
trial-and-error,  and  don't  touch  anything  it'll  just 
run  "use  LWP  HTML::TreeBuilder"  at  a  time  up 
everything  seemed  OK,  and  I  keep  getting  good  ideas
 and  apparently  there  are  the  ones  that  haven't 
shown  up  yet.  FedEx  goofed,  and  they  turn  round 
and  I've  edited  my  Amazon  order  will  get  converted 
to  HTML  pages.  To  make  matters  worse,  I  think  we 
weren't  busy  packing,  as  we  saw  them  close  those 
plants  in  a  file,  streamed  from  iTunes  via 
AppleScript  over  the  web  catalog  hocking  <a href="http://catalog.usmint.gov/wcs/wcs_command/0,,cginame_
a=CategoryDisplay&amp;querystring=cgnbr;STTN+cgmenbr;1000+paren
tCategory;+nextCategory;+prevCategory;,00.html">all sorts
of chatzkes</a>:  <ul> <li>First Day Covers (is this
philately or numismatics?)</li> <li>Bags of quarters by the
100 or 1000, from Denver or Philadelphia</li> <li>Two rolls
of quarters, one each from Denver and Philadelphia</li>
<li>Desk clocks</li> <li>Key chains</li> <li>Pendants</li>
<li>Bookmarks</li> <li>Golf Divot tools (????)</li>
<li>Collector's spoons</li> <li>and wrist watches</li>
</ul>  Whatever.  I'll  be  a  fat  bastard  forever".</p> </p>

<p>I  couple  of  blogs  (<a href="http://ician.co.uk/">here</a>  and  <a href="http://standup.co.uk/">here</a>)  so  it  looked  as 
if  you  connect  your  box  to  replace  the  14"  monitor
 with  something  clever  this  early  in  the  london.pm 
t-shirts  and  Casey  had  asked  a  Star  Wars 
question.  I've  asked  it  to  GUSI),  but  that  is  my 
Lucent  Winmodem,  which  RedHat  gravely  informed  me 
was  that  I  can  make  sure  that  the  US  Army  is 
mobilizing  on  Wall  Street,  is  the  cool  special 
effects  genre<br>  joe  johnston  is  wounded<br>  joe
 johnston  is  hinting  at  spielberg  to<br>  joe 
johnston  is  hinting  at  spielberg  to<br>  joe  johnston
 is  falling  (this  update  from  a  friend.</p>

<p><p>So  I
 did  have  a  winner!  pudge  wins  35  Trivia  Points, 
name.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15289">post</a> and <a href="http://use.perl.org/comments.pl?sid=16191">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[two new songs on taskboy]]></title>
    <link href="https://www.taskboy.com/2003-10-18-two_new_songs_on_taskboy.html"/>
    <published>2003-10-18T00:00:00Z</published>
    <updated>2003-10-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-18-two_new_songs_on_taskboy.html</id>
    <content type="html"><![CDATA[<p>I've uploaded two new songs to tasboy.com.  The first is called <a href="http://taskboy.com/music/blue_mood.mp3">blue mood</a>, in which 
you get enjoy the new tubes in my Fender Deluxe Reverb and my tremblo bar. 
The other is very rough demo of a song called 
<a href="http://taskboy.com/music/round_the_bend_demo.mp3">round the bend</a>, 
in which I lay out in dulcet melodies the joy of being bored beyond tears. 
<p>I really need to invest in some better mics.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15266">post</a> and <a href="http://use.perl.org/comments.pl?sid=16164">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Living will]]></title>
    <link href="https://www.taskboy.com/2003-10-17-Living_will.html"/>
    <published>2003-10-17T00:00:00Z</published>
    <updated>2003-10-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-17-Living_will.html</id>
    <content type="html"><![CDATA[<p><p>If I die unexpectedly, would someone please turn off the cronjob running markovblogger for me?  Thanks.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15254">post</a> and <a href="http://use.perl.org/comments.pl?sid=16150">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Code    80/20  rule    "sweating  assets"    Google.]]></title>
    <link href="https://www.taskboy.com/2003-10-17-[MarkovBlogger]__Code	_80_20	rule	&quot;sweating__assets&quot;____Google.html"/>
    <published>2003-10-17T00:00:00Z</published>
    <updated>2003-10-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-17-[MarkovBlogger]__Code	_80_20	rule	&quot;sweating__assets&quot;____Google.html</id>
    <content type="html"><![CDATA[<p>always:  <ul> <li>figuring out what pages I had to hit toget cookies and a session ID and all the other black magic
required <li>finding the credentials method on a
user agent (I can remember that there is a method for
authentication, I just can never remember what it's called)
<li>decoding the javascript to figure out what URL was
actually being requested, and with what parameters
<li>finding the right table and extracting info from it
</ul>  In  the  list  very  soon.  Some  cool  things 
about  the  whole  mess.  <p>  One  thing  that  happened 
at  around  6pm.  It  only  took  about  3  months.  Gee, 
I  wonder  if  bombing  major  US  cities  with 
dictionaries  would  be  nice  just  the  fields  ("Minute:
 4.  Hour:  1,2",  etc),  but  that  is  my  favorite) 
which  now  for  both  Solaris  and  Oracle  8.1.6  or 
later,  so  I  did  so.  My  ride  into  work  an  hour 
and  a  large  staff,  and  very  low  hanging  fruit). 
Then  we  spend  January  sleeping.  <p>While  I  am  a 
fool.  Here  I've  been  reading  on  there  first.  Are 
they  FAITH-BASED  yet?  <p>In  more  interesting  until 
you  can  find  something  compelling  that  people  don't 
realize  that  BeOS  already  had  ps2pdf 
installed.  Then  I  just  got  an  interesting  story  <a href="http://lambda.weblogs.com/2002/05/15">yesterday</a> 
about  domain-specific  languages.  <ul> <li>Bad news: it
was done with PowerPoint.</li> <li>Good news: the
presentation was converted to HTML</li> <li>Bad news: That
interface sucks; it's slow, it requires scrolling in my
rather large mozilla window, and it's slow to click back
and forth between slides</li> <li>Good news: Perl to the
rescue!</li> </ul>  This  little  hack  is  still  around 
and  look  at  it  â  since  I  had  a  high  number  so 
I  can  tell,  with  my  old  transfer  model;  but  in 
code  that  I've  worked  on  the  Net::AIM  port 
and  have  it  just  got  XML::Filter::Cache  written, 
which  caches  SAX.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15249">post</a> and <a href="http://use.perl.org/comments.pl?sid=16145">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Hats off to Yang Liwei]]></title>
    <link href="https://www.taskboy.com/2003-10-15-Hats_off_to_Yang_Liwei.html"/>
    <published>2003-10-15T00:00:00Z</published>
    <updated>2003-10-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-15-Hats_off_to_Yang_Liwei.html</id>
    <content type="html"><![CDATA[<p>The lure of space has proved irrestible to China, who have successfully launched their first <a href="http://news.bbc.co.uk/2/hi/asia-pacific/3193548.stm">manned mission</a> into orbit.</p>

<blockquote>
The launch of the Shenzhou V spacecraft, propelled into space by a Long March 2F rocket and carrying astronaut Yang Liwei, was welcomed by space experts around the world.
<br><br>
The European Space Agency described it as an "outstanding achievement", while US space agency (Nasa) officials in Houston praised the smoothness of the launch. 
</blockquote>

<p><p>Perhaps China's and Europe's space programs provide a sharper focus for 
NASA who have struggled to define a cogent mission since the Apollo missions. 
Despite what <a href="http://www.technologyreview.com/articles/Sterling1003.asp">some critics say</a>, 
I believe mastering space flight is critically important to the development 
of our species.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15218">post</a> and <a href="http://use.perl.org/comments.pl?sid=16110">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Two  Perl  features  I'd  like  to  see  .]]></title>
    <link href="https://www.taskboy.com/2003-10-15-[MarkovBlogger]__Two__Perl__features__I&apos;d__like__to__see__.html"/>
    <published>2003-10-15T00:00:00Z</published>
    <updated>2003-10-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-15-[MarkovBlogger]__Two__Perl__features__I&apos;d__like__to__see__.html</id>
    <content type="html"><![CDATA[<p>so  on,  until  you  can  now  attack  through walls!  Some  other  things  we've   never  guessed  at.
 I  don't  want  to  hold  out.  I  have  this  program  to
 give  a  "Data  Munging  for  Bioinformatics"  tutorial 
at  the  end  of  the  sense,  I  figure  things  out. 
This  may  be  doing  this  kind  of  irrelevant;  legal 
fees  would  cost  5-10x  the  price  of  new  modules 
added  (in  macos/bundled_lib/  and  macos/bundled_ext/), 
and  Matthias'  latest  GUSI  has  fixed  this  for  OSCon,
 so  as  you  want  for  MacPerl  â  don't  want  to  burn
 a  CD  with  just  enough  money  to  unemployed  women 
who  will  call  and  execute  each  one.  XPath  is  just 
another  hypocrisy  of  the  SCO-vs-IBM  lawsuit  (via  the
 fsb  list):  <blockquote> MS attorney: We'd like you to
sue IBM on the grounds that Linux is violating your
intellectual property in Unix. <p> SCO attorney: What?
That's crazy! We have no proof that they've violated
anything, and we can't afford to drag them through the
courts for a case we're certain to lose! <p> MS attorney:
We'd like you to sue IBM on the grounds that Linux is
violating your intellectual property in Unix, make as much
noise about this lawsuit as possible to the people who
purchase Linux distributions, and drag out the case and the
associated negative publicity about Linux for as long as
possible. We are prepared to buy a Unix license from you at
a price which will more than adequately compensate your
department for these efforts. <p> SCO attorney: Let me talk
to my CEO and get back to you on thatâ¦. </blockquote>
 Updates:  some  perspective  from  <a href="http://use.perl.org/comments.pl?sid=13030&amp;cid=20269">
Tony Stanco</a>  and  <a href="http://use.perl.org/comments.pl?sid=13030&amp;cid=20304">
Phil Windley</a>.  Redmondologists  everywhere  believe 
that  these  shared  files  are  located  and  distributed)
 but  I  think  that  might  confuse  them  and  said  that
 also  contained  at  least  I'll  have  it  done.  That's 
how  many  lurk?  I  was  bleary  in  bed  by  11:30. 
Unfortunatley,  that  8  hours  sleep  rule,  but  my  red 
hat  machine  keeps  crashing  (actually,  X,  not  only 
embeds  a  knowledge  of  all  the  stress  we've  had,  so
 he  can  start  expanding  my  continuing  education  even
 further.)</p>  <p>So,  do  YAPC'ers  get  to  play  on 
the  main  page.  In  addition,  I've  hit  some  work 
left  to  evaluate  the  differences  between  "free 
software"  and  "Starting  up.  This  will  make  conscious
 efforts  to  promote  Heretics  Meetings  that  were  very
 dear  to  me  is  reliable  threads.  And  if  THAT 
isn't,  I  need  to  send  about  the  education  system's 
tendency  to  travel  to  Ukraine  last.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15215">post</a> and <a href="http://use.perl.org/comments.pl?sid=16108">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  YAPC  day  -2:  packing  .]]></title>
    <link href="https://www.taskboy.com/2003-10-13-[MarkovBlogger]__YAPC__day__-2___packing__.html"/>
    <published>2003-10-13T00:00:00Z</published>
    <updated>2003-10-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-13-[MarkovBlogger]__YAPC__day__-2___packing__.html</id>
    <content type="html"><![CDATA[<p>car  every  minute!    Update:    Upgrading  to 8.1.7  seems  to  be  able  to   put  512meg  more  memory 
during  the  write  operation,  usually  at  home,  on  the
 iPod,  enter  new  contacts,  change  appointments.  Then 
again,  I  will  give  us  an  overview  of  relational 
databases  work  well  as  probably  to  find  a 
restaurant  in  Cheltenham  -  you  get  what  you  should 
also  be  composable  into  larger  patterns,  such  as 
using  an  unsupported  OS  (Linux),  I  managed  to  get 
ready  so  we  should  probably  add  code  that  I  fell 
into  a  mail  client.  But,  the  Beast  would  have  been
 getting  up  to  speed  (and,  hopefully  polish)  my 
final  project  with.    The  bad  news  is  that 
libxml2  does  not  have  the  whole  thing.  What  I  miss
 my  own  daemon  code  -  perhaps  I  have  Perl  coming 
out  of  the  change  that  Bush  is  doing  a  bit  weak, 
but  the  marketplace  is  changing.  Has  changed.  The 
people  who  want  to  be  talking  about  possible  future
 US/Nato  relationship  that  is  what  AppleScript  calls 
a  perl  pumpkin,  I  thought  I  would  get  a  bunch  of 
smaller  chunks,  called  bases.  There's  no  way  around 
that  -  don't  pester  me  with  the  PDF  spec  has  been
 tracked  and  registered  as  developers  on  the  menu. 
Items  not  bound  to  have  a  "charm  school"  section 
of  an  era  of  Java  code  out  of  the  entrance  of 
the  time,  and  then  perl  reveals  a  copy  of  Snak. 
It's  a  situation  like  Lucy  Ball  on  the  periphery 
of  my  weekend  then.</p>  <p>If  you  come  across  is 
that  it'd  be  cruel  and  unusual  punishment  to  send 
me  anywhere.  I  reinstall  cygwin  from  scratch, 
including  openssh  this  time.    A  quick  Google 
search  revealed  very  little  MIDI  in  the  breakout 
rooms;  with  ~250  python  hackers  in  3  months!  :) 
<p>I've  put  a  selection.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15183">post</a> and <a href="http://use.perl.org/comments.pl?sid=16071">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Sir Mixalot meets Virgil]]></title>
    <link href="https://www.taskboy.com/2003-10-11-Sir_Mixalot_meets_Virgil.html"/>
    <published>2003-10-11T00:00:00Z</published>
    <updated>2003-10-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-11-Sir_Mixalot_meets_Virgil.html</id>
    <content type="html"><![CDATA[<p>Via Fark.com comes <a href="http://www.livejournal.com/users/quislibet/164084.html">this link</a>:<blockquote>
&laquo;clunes, aio, maiores esse!<br>
(Her buttocks, I say, are rather large!)<br>
nec possum credere quam rotondae sint.<br>
(Nor am I able to believe how round they are.)<br>
en! quam exstant! nonne piget te earum?<br>
(Lo! How they stand forth! Do they not disgust you?)<br>
ecce mulier Aethiops!<br>
(Behold the black woman!)&raquo;
</blockquote><p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15171">post</a> and <a href="http://use.perl.org/comments.pl?sid=16055">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Tiny Windows Apps]]></title>
    <link href="https://www.taskboy.com/2003-10-11-Tiny_Windows_Apps.html"/>
    <published>2003-10-11T00:00:00Z</published>
    <updated>2003-10-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-11-Tiny_Windows_Apps.html</id>
    <content type="html"><![CDATA[<p><a href="http://www.tinyapps.org/">Useful Windows applications</a>, most under 1MB and free.  It's true: there are some cool developers for Windows!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15167">post</a> and <a href="http://use.perl.org/comments.pl?sid=16051">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Passing the turning test]]></title>
    <link href="https://www.taskboy.com/2003-10-10-Passing_the_turning_test.html"/>
    <published>2003-10-10T00:00:00Z</published>
    <updated>2003-10-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-10-Passing_the_turning_test.html</id>
    <content type="html"><![CDATA[<p>This most recent spam I received seems like one of <a href="http://homestarrunner.com/sbemail.html">Strong Bad's</a>
crank calls to <a href="http://www.homestarrunner.com/answer8.html">Marzipan</a>.

  FROM: "Admin" <a href="&#x6D;&#x61;&#x69;l&#x74;&#111;:&#115;m&#x74;&#x70;&#112;&#x72;o&#x67;&#x72;a&#x6D;&#64;a&#111;&#108;&#46;&#99;&#111;&#109;">&#115;m&#x74;&#x70;&#112;&#x72;o&#x67;&#x72;a&#x6D;&#64;a&#111;&#108;&#46;&#99;&#111;&#109;</a>
  TO: "Email Client" <a href="&#109;a&#105;&#x6C;&#116;&#x6F;:&#99;&#108;&#x69;&#x65;&#x6E;&#116;&#64;&#109;&#97;&#x69;&#x6C;s&#101;&#114;&#x76;&#x65;&#114;&#x2E;&#x63;&#111;&#109;">&#99;&#108;&#x69;&#x65;&#x6E;&#116;&#64;&#109;&#97;&#x69;&#x6C;s&#101;&#114;&#x76;&#x65;&#114;&#x2E;&#x63;&#111;&#109;</a>
  SUBJECT: abort advice

<p>Yes, <code>smtpprogram</code> from AOL, I'd like to be advised about
"abort."  How did you guess my email address, 
<code>client@mailserver.com</code>?  That's eerie.
<p>Well, I've got to go.  I've got a doctor's appointment.  In the mountains.
With Doctor Professional.
<p>UPDATE: Sorry, I messed up the upload originally.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15162">post</a> and <a href="http://use.perl.org/comments.pl?sid=16044">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Bluh    Horror    Net::SCP::Expect  .08  in  the.]]></title>
    <link href="https://www.taskboy.com/2003-10-10-[MarkovBlogger]__Bluh	_Horror____Net__SCP__Expect__.html"/>
    <published>2003-10-10T00:00:00Z</published>
    <updated>2003-10-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-10-[MarkovBlogger]__Bluh	_Horror____Net__SCP__Expect__.html</id>
    <content type="html"><![CDATA[<p>C  Absolute?  <p>4D  graph  of  your  tab  would  be  cool to  have  been.  I  have  to  worry  about  rent  and 
eating,  and  can  meet  me  at  the  End",  however, 
represents  quite  a  challenge  for  the  MIME 
attachments  I  send  each  day.  Write  and  move  it 
back  together  again  quite  the  ideological  pressures 
for  GNU/HURD.  Mercifully,  I  won't  bank  on  any  and 
all  that  well,  and  I  then  left  that  still  hasn't 
gotten  past  the  8th  grade.  <p>My  entire  experience 
of  a  fast  way  to  improve  the  education  in  that  S 
is  one  small  point  sizes)  for  messages,  but  I 
haven't  the  faintest  notion  of  how  frequently  you 
pay  (you  either  pay  &pound;x  a  month  midnight 
madness  used  and  refurbished  stuff  and  who  is.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15148">post</a> and <a href="http://use.perl.org/comments.pl?sid=16031">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[primary sources]]></title>
    <link href="https://www.taskboy.com/2003-10-10-primary_sources.html"/>
    <published>2003-10-10T00:00:00Z</published>
    <updated>2003-10-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-10-primary_sources.html</id>
    <content type="html"><![CDATA[<p>From the Plastic.com article <a href="http://www.plastic.com/article.html;sid=03/10/08/14575870;cmt=91">Get a fucking blog</a>:<blockquote>
&laquo;"In a society where the Fourth Estate is the self appointed guardian of truth, do Blogs offer the potential to expose the seedy underbelly of the morality police? Are they simply potentially worrisome due to the possibility that they may detract from the abilities of the corporate owners of newspapers and media outlets to keep their information subsidiaries 'on message'? Do they ultimately represent a potentail alternative and challenge to media concentration? All of this ultimately leads us to the question: when will the greatest news site of them all begin referring to blogs as primary sources?"&raquo;
</blockquote></p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15159">post</a> and <a href="http://use.perl.org/comments.pl?sid=16041">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[politics] Coulda, woulda, shoulda]]></title>
    <link href="https://www.taskboy.com/2003-10-08-[politics]_Coulda,_woulda,_shoulda.html"/>
    <published>2003-10-08T00:00:00Z</published>
    <updated>2003-10-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-08-[politics]_Coulda,_woulda,_shoulda.html</id>
    <content type="html"><![CDATA[<p>The reconstruction of Iraq is going to take a lot of time, money and effort.  This is clear to everyone by now.  This reconstruction effort is far 
more involved than the Bush administration had hoped for before the war.  It 
was thought that a little military pixie dust and the arrival of Halliburton 
(who, to be honest, were already there before the war) would turn Iraq 
into an icon democracy in the Middle East.  Iraqis were expected to cheer the 
fall of a vicious despot and gladly work with the US to build a better Iraq.
<p>But things are not proceeding as expected. 
<p>The US finds itself sinking quickly into the quagmire of Middle Eastern 
politics, which resembles nothing so much as a laser show of conflicting 
agendas.  Iraq is not a nation unified by nationalism; it is a political entity
held together through iron will.  Remember Czechslovakia?  It is true that 
there are factions in Iraq that do want to work with the US to build a 
western-style democracy, but their voices are lost in the cacophony of 
those that want the US out of the country posthaste.
<p>National Security Advisor Condoleeza Rice is now <a href="http://www.abc.net.au/worldtoday/content/2003/s961467.htm">overseeing 
the political reconstruction</a> of Iraq.  At the same time, Bush is asking 
for a lot more money:</p>

<blockquote>
&laquo;The move comes as the White House tries to convince a fairly 
unreceptive Congress to grant an extra $130-billion to its Iraq mission.&raquo;
</blockquote>

<p><p>In many ways, Bush's Iraq policy resembles another ill-considered and 
poorly-executed expedition that is very familiar to computer professionals. 
The <a href="http://www.sco.com/scosource/">SCO Group</a> has claimed that it
owns several critical pieces of technology found in the Linux kernel, which 
it does not own.  Consequently, SCO is asking users of server-class 
multi-CPU systems running Linux to buy a license from them.  The SCO Group 
has presented questionable evidence to support their claims, but they have 
issued many provocative press releases full of bluster and self-righteous 
indignation.  While the SCO Group refuses to show all the disputed code, the 
few fragments that have been presented have been outed as 30-year-old code 
that is probably in the public domain anyway.  It is code that certainly did 
not originate in the SCO Group.
<p>One tangible result of the SCO Group's efforts has been a marked increase 
in their stock price.  Another result has been two large lawsuits, one from IBM
and the other from RedHat.  Perhaps the executives at SCO Group had hoped to 
stir up enough trouble so that they would be acquired by some large hi-tech 
player, like IBM.  Now, the SCO Groups has to pursue this White Elephant, 
whatever the end.  If they abandon the licensing scheme, SCO executives will
be very vulnerable to charges of stock price manipulation.  SCO seems set on 
an inexorable path to dissolution and possible criminal indictments anyway. <br>
Given a glimpse of the future, would SCO execs have pursued this frivilous 
adventure at all?  Was there no other course of action that would have better 
achieved their goal?
<p>Similar questions must also be in the minds of those in the White House 
now. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15117">post</a> and <a href="http://use.perl.org/comments.pl?sid=15996">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  inbox  division.]]></title>
    <link href="https://www.taskboy.com/2003-10-06-[MarkovBlogger]__inbox	division.html"/>
    <published>2003-10-06T00:00:00Z</published>
    <updated>2003-10-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-06-[MarkovBlogger]__inbox	division.html</id>
    <content type="html"><![CDATA[<p>clearly  that's  not  user-visible,  thoughtless ungracious  users  like  myself  will  never  be  in 
Singapore  and  Sydney.  I'll  be  back  on  to  lock  up 
so  late)  is  the  thing  out  again,  and  also  because 
I  can't  sleep,  I  wish  I'd  thought  I'd  never  quite 
get  regexes.  I  know  for  most  ridiculous  waste  of 
time,  usually  while  I  was  hoping  to  find  my  new 
perl  5.8.0?  They  seem  to  spend  time  every  week 
repudiating  the  crusades,  Calvinism,  original  sin, 
government  enforced  "Christianity,"  the  Catholic 
Church,  and  the  app  as  well.  I  had  played  the 
second  thing  that  tripped  me  up  at  home.  I'm 
chewing  my  way  around  this  thing  do?  Does  it  need 
to  work  with,  until  now.  It's  time  for  someone 
else.</p>  <p>When  I  can  see  how  many  questions  I 
can't  take  his  ball  and  organize  my  life  will 
never  give  you  some  reasonable  default  settings.</p> 
<p>After  you  have  a  feeling  it's  because  I  finally 
signed  up  for  several  reasons.  Most  of  the  them 
were  wearing  head  coverings,  with  only.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15080">post</a> and <a href="http://use.perl.org/comments.pl?sid=15955">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Shadows over Bakers Street]]></title>
    <link href="https://www.taskboy.com/2003-10-05-Shadows_over_Bakers_Street.html"/>
    <published>2003-10-05T00:00:00Z</published>
    <updated>2003-10-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-05-Shadows_over_Bakers_Street.html</id>
    <content type="html"><![CDATA[<p>What happens when you mash together the worlds of Sir Arthur Conan Doyle and H. P. Lovecraft?  <a href="http://www.amazon.com/exec/obidos/ASIN/0345455282/">Solid fanfic gold</a>.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15075">post</a> and <a href="http://use.perl.org/comments.pl?sid=15950">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Eddy van Hagar]]></title>
    <link href="https://www.taskboy.com/2003-10-04-Eddy_van_Hagar.html"/>
    <published>2003-10-04T00:00:00Z</published>
    <updated>2003-10-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-04-Eddy_van_Hagar.html</id>
    <content type="html"><![CDATA[<p><p>I'm experimenting with the effect of various mic placements around my Fender 65 Deluxe Reverb in order to get a more bitchin' tone in Sonar. <br>
Fans of 80's hard rock/synth bands will no doubt be encouraged by 
<a href="http://taskboy.com/music/eddy_van_hagar.mp3">this clip</a>.  There
are a few things hampering my tone quest.  First, I live in an apartment where
excessive noise is frown upon.  This means that I can open up the volume pot
as much as I'd wish.  This is a problem because much of the charm of a tube amp
comes from the saturation achieved by attenuating the volume knob.  The next
problem stems from the age of the amp: the power cord isn't grounded.  Not 
only do I receive the occasional shock when I'm wearing my plugged-in guitar
and touch other powered equipment, but I get an excessive amount of noise in 
my signal (which you can hear plainly in this track).  The last problem is 
that the tubes in my amp need to be replaced (there are 6 of them).  I have
already placed an order for what I hope to be bitchin' replacements.  Tube 
technology is a funny mixture of science and voodoo.  Although computers have
long sinced abandoned them, there are two professions that show
little sign of moving away from these little vacuum heat generators: musicians
and the military.
<p>This wayward son carries on.
UPDATE:  Here's a rough mix of this fragment as part of an original song called <a href="http://taskboy.com/music/give_it_a_rest.mp3">Give it a rest</a>.  Also note that I've remixed <a href="http://taskboy.com/music/monkey_v_robot_jjohn.mp3">Monkey v. Robot</a><p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15059">post</a> and <a href="http://use.perl.org/comments.pl?sid=15931">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[What's in a name?]]></title>
    <link href="https://www.taskboy.com/2003-10-03-What&apos;s_in_a_name_.html"/>
    <published>2003-10-03T00:00:00Z</published>
    <updated>2003-10-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-03-What&apos;s_in_a_name_.html</id>
    <content type="html"><![CDATA[<p>I think if <a href="http://www.guitarcenter.com/">Guitar Center</a> were called instead Banjo Center, the place would be a whole lot cooler.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15050">post</a> and <a href="http://use.perl.org/comments.pl?sid=15920">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]    Working  around  "Smart"  quotes  in  MSWord    Disco.]]></title>
    <link href="https://www.taskboy.com/2003-10-03-[MarkovBlogger]____Working__around__&quot;Smart&quot;__quotes__in__MSWord____Disco.html"/>
    <published>2003-10-03T00:00:00Z</published>
    <updated>2003-10-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-03-[MarkovBlogger]____Working__around__&quot;Smart&quot;__quotes__in__MSWord____Disco.html</id>
    <content type="html"><![CDATA[<p>I  think  the  crowd  simply  wasn't  playing  attention. In  any  case,   that  translates  into  less  money  than 
I  did  today:    Went  and  saw  The  Time 
Machine  and  Resident  Evil.    I  hope 
not)  but  a  few  vegetarians  (4  or  5)  but  they're 
only  first  drafts  and  that  Castro  was  addressing  a 
completely  free  day,  and  consequently  decided  to  put
 "package  Slash::SOAP::Journal"  inside  of  loops.   
This  shouldn't  be  developing  the  Mac  doesn't  work 
today!  Web  sites  simply  won't  be  a  while  ago  - 
what  if  you  didn't  mention  it  to  work,  emergency 
baby  food  run  at  the  hands  of  a  shock.  </p>  <p> <br>
 SAX  approach.  Call  me  crazy,  but  this  is  workable,
 then  I  can  feel  that  way,  there's  just something  about  running  CPAN  on  a 
ketchup  bottle.</p>  <p>  I've  found  and  fixed  a 
bunch  of  Perl  Bookshelf  2,  one  that  was  easy.  Web 
Sense  sent  me  some  <a href="http://www.exmormon.org/">daffy</a>  religion? 
Thanks,  Utah!  Seems  like  the  format  of  the  puzzle 
that  isn't  on  the  ideas  (or  lack  thereof)  of  the 
every-four-years-period-of-time.  I  got  a  chance  for 
more  details.</p>  <p>The  big  news  a  few  tests  on 
it  now,  they're  not.  Really  weird,  since  I'm 
running  into  callback  limitations  with  XML::Parser) 
and  quicker  adoption  of  a  mailbox),  but  mostly 
works  to  decide  whether  I  like  it  always  has,  but 
this  time  no  syrup,  just  for  working  with  the  most
 anticipated  events  of  the  "<a href="http://www.amazon.com/exec/obidos/ASIN/0345314255/qid
=1054603014/sr=2-1/ref=sr_2_1/ ">Sword of Shannara</a>" 
series  (some  of  them  are  registered.  All  of  a  sort
 of  adaptation  of  Who  Goes  There?,  a  John  W.
 Campbell  short  story."    He's  right,  although  I 
always  get  myself  a  simple  submit  button  in  window 
you  want  to  try  harder  next  year.  Dear  Log,<p>A 
friend  of  a  rare  talk.bizarre  party  in  the  future. 
<p>  Bets  at  the  top  window,  which  is  pretty  buggy.
 It  crashes  a  lot.    Doctor's  appointment  inâ¦two
 days,  I  don't  mean  the  assholes  who  keep  screwing 
my  favorite  musicians  aren't  making  enough  money  to 
the  Firewire  drive  arrived  on  the  same  thing.  How 
does  she  spend  the  day  "off"  to  go  through  the 
magic  of  an  engineer.<p>  Then  again.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/15032">post</a> and <a href="http://use.perl.org/comments.pl?sid=15902">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Al Franken met, books signed]]></title>
    <link href="https://www.taskboy.com/2003-10-01-Al_Franken_met,_books_signed.html"/>
    <published>2003-10-01T00:00:00Z</published>
    <updated>2003-10-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-01-Al_Franken_met,_books_signed.html</id>
    <content type="html"><![CDATA[<p><p>I caught Al Franken on his book tour at Parish Church in Harvard Square on Monday.  He was delightful and charming.  The church was filled beyond capacity, so people without chairs got the boot.  Franken spoke for about 45 - 60 minutes and took questions for about the same.  He then spent two hours signing books.  I got to meet some of the other members of TeamFranken, the research team of Harvard students that helped him on Lies.  I was there until the end. <br>
<p>When it was my turn to get met him, Franken appeared to be a tired and broken man.  Clearly, it was past his bedtime and he just wanted to sleep.  Still, he must of known that the path to slumber lay through me, so he was good natured about signed both books I had brought (Lies and Rush Limbaugh).  I told him I enjoyed Why Not Me?, the fictional story of his 2000 run for President.  Because I was pretty tired, I called the book Why me?.  When Franken corrected me, I rejoined with "Right, Why Me is the story of my life."  To his credit Franken managed a belly laugh at that, which shows how much of a professional he is.
<p>An edited version of Franken's talk, sponsored by the Cambridge Forum, will appear on NPR at some point.  Also, it will appear on the web (I sat in back of the sound guy).<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14999">post</a> and <a href="http://use.perl.org/comments.pl?sid=15868">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  switch?    Focus    The  Dahut.]]></title>
    <link href="https://www.taskboy.com/2003-10-01-[MarkovBlogger]__switch_____Focus____The__Dahut.html"/>
    <published>2003-10-01T00:00:00Z</published>
    <updated>2003-10-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-10-01-[MarkovBlogger]__switch_____Focus____The__Dahut.html</id>
    <content type="html"><![CDATA[<p>rather  than  using  it  in  there.  If  you've  written either    (a)  a  templating  system  to  work  on  what  the
 name  is  a  half  ago.)  I've  recently  continued  my 
journey  through  LotR  (I  read  FotR  last  year  to 
make  you  smarter.  I  took  a  look  at  the  moment, 
and  I  caught  a  bunch  of  those  costs,  do  you  call 
the  Navigate  method  for  my  liking. 
Speaking  of  home,  I  have  extras  lying  about)  and 
call  Apple  to  check  the  date  it  landed  on  Snopes, 
and  used  for  workarounds.  The  big  gift  was  a  way 
to  delete  the  whole  <em>virtual</em>  machine,  to 
itself.  The  OS,  like  a  dream  when  put  into 
Win32::OLE::Const.  Kudos  to  the  grid  stuff.  Slow 
going  on  there.  To  make  matters  more  interesting, 
this  only  seemed  to  like  using  a  Mac,  I  know  that
 what  we  now  have  a  CueCat!"  she  said,  brightly, 
about  halfway  down  the  "Bad  file  number"  error. 
Looks  like  my  older  PowerBook  to  use  glib.  I'd 
also  like  to  see  he's  not  around  very  often.  I'd 
like  to  have  issues.  I'd  prefer  to  have  survived 
it  all.    Tomorrow  is  Valentine's  Day,  and  then 
compare  that  against  my  naturally  accepting  nature 
â  but  what  the  HOWTO's  talk  about  PHP,  Monty  will
 talk  about  the  debates  that  are  just  as  useful, 
and  also  sent  as  Word  documents.  </p>  <p>    â¦or 
is  Mozilla  1.0  in  disguise)  and  you'll  nicely 
confuse  yourself!  [<em>]  And  then  I  realized  I  was 
*so</em>  much  to  do.  That  isâ¦it  should  generate  all 
sorts  of  people.  I  had  ever  collaborated  â¦  with 
the  battery."  And  because  accessing  an  nonexistent 
element  of  style  here.  Such  kinds  of  procedures 
that  would  require  a  lot  easierâ¦  hmmâ¦</p> 
<p>Anyway,  whatever  format  it  ends  up  in  a  book 
that  someone  will  disagree  too,  but  damn  this  is 
the  oldest  of  the  support  work,  so  I'm  not  quite 
an  amazing  experience.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14996">post</a> and <a href="http://use.perl.org/comments.pl?sid=15865">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]    Ugh    boobies!    It's  official    Good  news,  bad news.]]></title>
    <link href="https://www.taskboy.com/2003-09-29-[MarkovBlogger]____Ugh__boobies_____It_s__officialGood__news,__bad_news.html"/>
    <published>2003-09-29T00:00:00Z</published>
    <updated>2003-09-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-29-[MarkovBlogger]____Ugh__boobies_____It_s__officialGood__news,__bad_news.html</id>
    <content type="html"><![CDATA[<p>thing  that  is  not  yet  had  a  lot  of  that  sort  of programming  experience,  so  a  week)  and  perhaps  they
 really  make  as  much  attention  to  second-guess 
everyone  around  here  about  my  mom's  antique 
furniture  is  now  in  circulation.  <p>  Something  has 
happened  to  me  that  the  right  copy  or  something. 
Goddamn  artificial  demand^Wrarityâ¦!  Down  with 
DeBeers!  <p>Since  school's  over  (Neural  Networks 
final  last  night),  I  decided  I  needed  a  hair  cut, 
something  I've  been  paid  for  by  one  each  time. 
Then  finally,  it  dawned  on  me.  I  really  don't 
know)  from  2am  to  430am.  The  next  step  with  the 
definition  of  "operating  system"  aside,  the  amount 
of  that  â  roughly  nine  times  out  when  she  gets 
places,  She  moves  all  over  the  weekend.  We're 
having  an  evening  paired  programming  session  away 
from  the  realm  of  science  and  the  script  processes 
the  entire  way  through.    The  problems  is  one  of
 the  late  afternoon  and  in  what  order,  and  resave 
all  of  us  went  off  to  lunch  for  myself  and  a 
section  in  it  all?</p>  <p>[1]  Right  opposite  where 
I'm  tossing  them.  It  bothers  me  is  that  I  found 
out  why  and  duplicate  the  good  bits  are  different. 
Chimera  supports  Internet  Config  to  some  of  you 
who've  been  here  to  come  ashore  because  of  problems
 it  cannot  be  maintained  for  the  first  place.  </p>.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14958">post</a> and <a href="http://use.perl.org/comments.pl?sid=15824">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[when space debris attacks]]></title>
    <link href="https://www.taskboy.com/2003-09-29-when_space_debris_attacks.html"/>
    <published>2003-09-29T00:00:00Z</published>
    <updated>2003-09-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-29-when_space_debris_attacks.html</id>
    <content type="html"><![CDATA[<p>When I learned about the meteorite that <a href="http://news.bbc.co.uk/2/hi/south_asia/3146692.stm">destroyed some homes in Orissa, 
India, my first reaction was: "Oh my God!  The Pakistanis have 
<a href="http://babylon5.epguides.info/?ID=948">mass drivers</a>!" <br>
<p>My next thought was that these homes were playing 
<a href="http://www.mtvasia.com/features/interviews/Items/1999/19990700003/">Dr. Bombay</a> too loudly and somebody didn't like it.
<p>I may need to get out of the house more.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14959">post</a> and <a href="http://use.perl.org/comments.pl?sid=15826">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  their  OBSESSIONS!  .]]></title>
    <link href="https://www.taskboy.com/2003-09-26-[MarkovBlogger]__theirOBSESSIONS___.html"/>
    <published>2003-09-26T00:00:00Z</published>
    <updated>2003-09-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-26-[MarkovBlogger]__theirOBSESSIONS___.html</id>
    <content type="html"><![CDATA[<p>aren't  they  working  on  a  roaster,  it's  coming along  nicely,    but  there  was  a  bit  of  accumulation 
can  close  area  schools  for  the  Mac  version  â  it's
 just  a  few  times  in  the  wrong  number  of  years 
ago,  so  all  the  hard  part.  :(    Usually  I  keep 
getting  good  ideas  for  new  programmers!  I'll  never 
fail  a  class  for  something  completely  different.  :-)</p>

<p>  Meyer  does  address  the  United  States  Mint,  the
 United  States  Government,  or  any  reasonable  speed! 
Okay,  that's  not  user-visible,  thoughtless  ungracious 
users  like  myself  who  might  use  too  many  ways  - 
where  you  can  then  start  looking  for  a  job  was 
the  <a href="http://www.perlfoundation.org/">Perl
Foundation</a>.  This  largely  consisted  of  a  lot  of 
people,  both  employees  and  customers.  That's  life,  I
 get  the  new  MakeMaker  is  out!  MakeMaker  was  one 
such  country,  as  was  the  result  of  malpractice 
suits?  <a href="https://www.healthnet.com/brokers/pdf/June_2002_Healt
h_Care_Focus.pdf">PriceWaterhouseCoopers doesn't think
so</a>  (although  they  *can*  order  it  immediately  and
 there  we  started  Perl6  in  the  newsgroup  and  it 
keeps  bringing  up  the  Perl  Geek  and  a  "Send  File" 
button  was  two  thousand  years.  I've  been  playing 
the  role  of  the  GNU  GPL.</p>

<p><p>I'm  using  Debian. 
You're  on  your  enemy.  Karma's  a  bitch.)   
Anywayâ¦that's  not  the  point.  All  things  considered,
 it's  still  a  File  reference,  but  can't  even  put 
an  <a href="http://www.ushba.com/catalog/altai.html">ice-axe</a> 
thru  the  Koran,  I  found  this  passage  to  be  fast, 
butâ¦  Anyhow,  I've  posted  again  on  your  distro, 
though.  This  check  took  forever,  but  when  I 
hit  Save.  So  my.
<p>(Brought to you by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14922">post</a> and <a href="http://use.perl.org/comments.pl?sid=15782">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]    "Luck  is  being  ready"    PL/SQL  dates  done  right.]]></title>
    <link href="https://www.taskboy.com/2003-09-24-[MarkovBlogger]_____Luck__is__being__ready_____PL_SQL__dates__done__right.html"/>
    <published>2003-09-24T00:00:00Z</published>
    <updated>2003-09-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-24-[MarkovBlogger]_____Luck__is__being__ready_____PL_SQL__dates__done__right.html</id>
    <content type="html"><![CDATA[<p>do  and  send  crappy  resolution  pictures  from  my heap-big  link   heap:  <br><a href="http://www.salon.com/12nov1995/feature/race2.html#ric
k">Alakazam!</a>  <br><a href="http://www.scottlondon.com/insight/scripts/rodriguez.
html">Alakazim!</a>  <br><a href="http://reason.com/Rodri.shtml">Shazbot!</a>  <br><a href="http://www.pacificnews.org/jinn/stories/4.04/980223-b
rowning.html">Dios mio!</a>  <p>Notable  pullquotes: 
<p>"What  people  mean  by  multiculturalism  is  different
 than  plain  copper.  Time  to  look  at  POE::Exceptions 
real  soon.  <em>Wouldn't  It  Be  Strange</em>  - 
"Kingdom  Come"  -  <a href="http://www.google.com/search?q=%22Charlie Peacock%22">Charlie Peacock</a>  Posted  from  <a href="http://caseywest.com">caseywest.com</a>,  comment  <a href="http://caseywest.com/journal/archives/000079.html">he
re</a>.  <p>I've  been  doing  some  queries  on  it,  but 
I  guess  I  shouldn't  be,  but  that's  pretty 
ambitious.  For  now,  we've  done  it  in  the  spec  has 
become  the  last  Slash  source  from  .bash_profile. 
 â SSHAgentStartupHelper.c.orig Wed Sep 4 05:49:33
2002 +++ SSHAgentStartupHelper.c Fri Mar 14 08:55:08 2003
@@ -135,9 +135,12 @@  }  } -void
startSSHAgent(CFMutableDictionaryRef plist) { +void
startSSHAgent(char* macosxdir, CFMutableDictionaryRef
plist) {  // -s specifies bourne shell output - FILE*
output = popen("/usr/bin/ssh-agent -s", "r"); + char
cmd[PATH_MAX + 64]; + snprintf(cmd, PATH_MAX + 64,
"/usr/bin/ssh-agent -s | grep -v echo | tee
%s/../.bash_ssh_env", macosxdir); + + FILE* output =
popen(cmd, "r");  if (output &amp;&amp; plist) {  int i;  char*
line; @@ -193,7 +196,7 @@  }  }  if (plist) { -
startSSHAgent(plist); + startSSHAgent(macosxdir, plist); 
writeEnvironmentPlist(aConfigFile, plist);  }  return 0;
  I  decided  that  I  focus  hard.    At  this 
point  and  including  termination  of  her  ass  in  front
 of  everybody  at  the  same  (preloaded)  600k  document.
 That's  0.1  seconds  per  transform,  way  too  choppy 
too  fast.    I  got  to  thinking  what  I'd  want  it 
to  David  Axmark,  one  of  the  world's  most  popular 
language  in  the  contract  we  worked  on  these 
techniques  online.  Eventually  it  will  all  be  back 
in  a  very  complex  relativization.  I  doubt  that 
they're  pissing  off  the  TV"  and  showing  parental 
control.  Why  the  fuck  should  we  do,  if  the  people 
who  write  bad  Perl  code  and  it  seems  to  have  to 
take  it  away.<p>  This  was  the  release  of 
perlpodspec.pod).  Take  L&lt;>â¦  you  can  use  the 
negation  of  eachother?;  should  we  do?  If  we  were 
not  an  everyday  horror  like 
http://use.perl.org/cgi-bin/content.cgi?page=0,2763,933233,
00.html&amp;tmpl=entry  as  we  speak,  and  one  lovely  glass
 of  the  bathroom  again,  thinking  maybe  I'm  just  so.
<p>(Brought to by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14876">post</a> and <a href="http://use.perl.org/comments.pl?sid=15735">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Creative uses for symlinks in Apache::MP3]]></title>
    <link href="https://www.taskboy.com/2003-09-23-Creative_uses_for_symlinks_in_Apache__MP3.html"/>
    <published>2003-09-23T00:00:00Z</published>
    <updated>2003-09-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-23-Creative_uses_for_symlinks_in_Apache__MP3.html</id>
    <content type="html"><![CDATA[<p><p>Lincoln Stein's remarkably useful module Apache::MP3</a>is respects symbolic links.  That is, if you symlink an MP3 file Apache::MP3
will server it like any other MP3 file (as long as you Apache is allowed to 
FollowSymlinks in that directory).  This small detail allows for some darn 
useful tricks to help you organize and expand your MP3 collection.
<p>Problem 1:  Collecting stray singles under one artist's folder.
<p>If you're like me, you have several single MP3's that "fell off the back of
an internet truck."  You probably have ripped your own CDs too.  While
you could simply move the singles into the artist folder (easy to do), you 
can also put a symlink to single there.  A more compelling example for this 
case is the compliation CD.  You don't want to move the MP3 files from the 
collection into the associated artist folder and you don't want to copy the 
MP3 (wastes disk disk).  Instead, consider making a symlink. 
<p>Problem 2:  Creating permanent playlists.
<p>Create your own radio station!  Tired of not fitting into your local radio's 
format?  Make your own!  Create a folder called The 80s.  Next, find 
all the good 80s singles in your collection and create symlinks to 
them.  Heck, you can even record (or programatically generate) your own 
fake ads and put those in mix too!  Image the possiblities of Markov chains, 
speech synthesis and some simple mixing.  That's fake advertisement and that 
will make you pretend reach for your imaginary wallet.  Throw in some RSS 
feeds and you got news too. 
<p>Problem 3:  Spanning an MP3 collection across two disks. 
<p>Your MP3 collection has gotten too large so you need a add a second disk.
Perhaps you need to press another machine into the fray.  In either case, 
you can symlink to the mount point of the disk from the MP3 directory. <br>
Perhaps you can call the symlink "more".  If that leaves you unsatisfied, 
you can write a simple shell script that creates symlinks to the individual 
directories on the other disk.  One wrinkle is that you will have to handle merging artist
folders.  For instance, let's say in you original MP3 collection, you've ripped
a few Prince albums.  On the new disk, you've ripped his Sign O The 
Times epic.  Now, you want the script to symlink the album under your 
original Prince folder.  This I leave as a not-too-difficult excerise for the 
reader.
UPDATE: Corrected factual error about symlinks versus hard links.  I must lay of the crack.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14850">post</a> and <a href="http://use.perl.org/comments.pl?sid=15705">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  the  Lone  Gunmen    Saturn    Relatively  New.]]></title>
    <link href="https://www.taskboy.com/2003-09-22-[MarkovBlogger]__the__Lone__Gunmen____Saturn	Relatively__New.html"/>
    <published>2003-09-22T00:00:00Z</published>
    <updated>2003-09-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-22-[MarkovBlogger]__the__Lone__Gunmen____Saturn	Relatively__New.html</id>
    <content type="html"><![CDATA[<p>Anyway,  I  thought  it  was  closed  for  a  quote. Something  zippy,  but    not  great.  So  I  guess  I 
consider  it  "fun",  "relaxing"  or  even 
sourceforge.net.  I  can  personally  vouch  that  we 
aren't  compelled  to  chase  it  up  this  kind  of  had 
this  problem  RPC::XML  is  an  error  message,  give 
me  a  little  script  that  used  a  convenient  reminder 
of  a  novelty  â  a  handy  snippet  of  C  you'll  ever 
do.  <p>Some  people  (Formalists)  think  the  crowd,  all
 experienced  Usenet  readers,  would  spot  a  taxi  is 
called  under  mod_perl,  but  making  it  create  a 
portable  DVD  player  :)</p>  Dear  Log,  <p>Persist<a href="http://www.speech.cs.cmu.edu/~sburke/stuff/english_an
t_and_ent.html">ent</a>  problem  in  computer  science, 
one  that's  broken  into  periods  of  time,  usually 
while  I  knew  that  camera  would  be  something  to  do 
is  check  to  see  Kida  the  product  name  can  contain 
its  own  bad  self  to  the  page</li>  </ol>  Now  that's
 responsive  development  :-)  I've  been  pushing  on  me.
 The  wireless  access  point.  As  I  always  felt  that 
I  would  work  with  machines  that  we  might 
distinguish  between  an  open  box  Tivo  for  $219.99  so
 I  don't  think  Paul's  adjective  of  "stealthy"  quite 
fits).  <p>Until  tomorrow:  keep  on  it  completely. 
Fortunately  Tim  did  it  again,  because  I  will  not 
understand  what  can  only  be  able  to  name  two) 
appear  to  try  it  today.  And  the  period  referred  to
 as  she's  never  seen  before.    I  can  sure  give 
it  much  harder  kind.  </p>  <p>    Finally,  we  decided
 that  it  stood  for  Cannabinol.  So  I  asked  him  to 
camp  in  line  with  how  she  was  8  was  very,  very 
close  to  that  song,  you'll  understand  if  I  said  it
 was  a  working  practice  of  law  and  make  an  alias 
to  a  POSIX  path).  I've  been  watching  Tough  Crowd
 with  Colin  Quinn.  I  think  I  should  be  aware 
of  UNIVERSAL::isa  -  I  don't  really  know  what  to 
do.  The  fashion  is  spreading  fast;  the  al-Qaida 
terrorist  network  is  down.  Posted  from  <a href="http://caseywest.com">caseywest.com</a>,  comment  <a href="http://caseywest.com/journal/archives/000244.html">he
re</a>.</p>  I  wanted  to  post  invisible  spoilers, 
like  theforce.net.  :)  )</p>  <p>So  yesterday  I  found 
out  why  my  ISP's  SMTP  host  etc.),  and  deleting  all
 but  <a href="http://news.bbc.co.uk/2/hi/asia-pacific/2731305.stm">
dared us to combat</a>.  Is  Iraq  about  to  find  some 
use  for  this  is  to  see  what  happens.
<p>(Brought to by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14828">post</a> and <a href="http://use.perl.org/comments.pl?sid=15682">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[child processes and filehandles]]></title>
    <link href="https://www.taskboy.com/2003-09-22-child_processes_and_filehandles.html"/>
    <published>2003-09-22T00:00:00Z</published>
    <updated>2003-09-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-22-child_processes_and_filehandles.html</id>
    <content type="html"><![CDATA[<p><p>Note: I may have stolen this idea from Gnat and Tom's Perl Cookbook or some other high profile source.  However, this tidbit
is useful to publicize. The code below is my own.
<p>Here's a random Perl tip that you may find helpful.  In certain 
flavors of UNIX, including Linux and Solaris, the ownership of open filehandles
is inherited by child processes.  Although this doesn't seem all that useful
at first, consider the case in which you have a forking server that writes to 
a log file.  You'd like all the child processes to write to that log file too, 
but the children run as a different user.  One solution is to open a 
filehandle in the parent as a globally visible variable (both lexically 
scoped scalars and package-global filehandles work).   After the parent forks
and changes real and effective UIDs, the child process has that same open 
filehandle.  Take a look at the code sample below.  There is no tricky Perl
here (except for setting the autoflush to prevent a weird extra copy of 
sample string from appearing in the outfile when the process forks 
[I don't know why I had to do this, but it seems to be an stdio buffering 
issue]).</p>

<p></p>

<h1 id="usrbinenvperl">!/usr/bin/env perl</h1>

<p>#</p>

<p>unless ($> == 0) {
  print "need to be root to run this (child process changes UID)\n"; 
  exit;
}</p>

<p>$&lt; = $> = 0;
unlink 'testing';</p>

<p>print "Current real ID: $>\n", "Opening filehandle\n";
open my $in, ">testing" or die "can't open 'testing' $!\n";
select((select($in), $|++)[0]);</p>

<p>print $in localtime() . ": $&lt; says 'hello' from $$\n"; </p>

<p>my ($nobody_uid) = (getpwnam('nobody'))[2]; 
print "ID of 'nobody': $nobody_uid\n";</p>

<p>print "Forking and changing real and effective ID to $nobody_uid\n";</p>

<p>$SIG{CHLD} = sub { wait };
my $pid = fork;</p>

<p>if ($pid) {
  sleep(1);
  print $in localtime() . ": $&lt; says 'hello' from $$\n"; 
  close $in;
  exit;
}       </p>

<p>sleep(3);
$&lt; = $> = $nobody_uid;</p>

<p>print $in localtime() . ": $&lt; says 'hello' from $$\n"; ;
close $in;</p>

<h1 id="tryappendingtofileasthisuser">try appending to file as this user</h1>

<p>open my $try, ">>testing" or die "can't open 'testing': $!\n";
print $try "I can write to this file and I'm $&lt;\n";
close $try;</p>

<p></p>

<p><p>If you run this code on a compatible system, your 'testing' outfile should
have two lines in it from different processes and different UIDs.  Of course, 
you need to be aware of the lurking dangers of multiple processes trying to 
write to the same file at the same time.  This resource contention issue may
be solved with a variety of IPC synchronization techniques, such as semaphores
and lock files.  I like to use lock files, although I find flock a bit 
cumbersome.  Unfortunately, semaphores are even more troublesome, as 
a quick look at the perlipc manpage reveals.  Conceptually simple, 
semaphors require some weird <code>pack</code> and <code>unpack</code> 
formats and <code>IPC::SysV</code> constants to work. <br>
<p>Eek.
<p>Now, you have one less excuse to run your perl daemons as root. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14830">post</a> and <a href="http://use.perl.org/comments.pl?sid=15684">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Telegram for the couple downstairs having sex]]></title>
    <link href="https://www.taskboy.com/2003-09-20-Telegram_for_the_couple_downstairs_having_sex.html"/>
    <published>2003-09-20T00:00:00Z</published>
    <updated>2003-09-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-20-Telegram_for_the_couple_downstairs_having_sex.html</id>
    <content type="html"><![CDATA[<blockquote>
IT SOUNDS LIKE IT IS GOING WELL.<br>
<br>
STOP.<br>
<br>
YOU SOUND CLOSE. I HOPE IT ALL WORKS OUT.<br>
<br>
STOP.
<br>
I WILL BE AT WINDOW SAME TIME NEXT WEEK.<br>
<br>
FULLSTOP.<br>
</blockquote>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14802">post</a> and <a href="http://use.perl.org/comments.pl?sid=15652">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  tabs?    AbiWord    (sigh)  Books  Again.]]></title>
    <link href="https://www.taskboy.com/2003-09-19-[MarkovBlogger]__tabs___AbiWord____(sigh)__Books__Again.html"/>
    <published>2003-09-19T00:00:00Z</published>
    <updated>2003-09-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-19-[MarkovBlogger]__tabs___AbiWord____(sigh)__Books__Again.html</id>
    <content type="html"><![CDATA[<p>CODEREF,  eventname2  =>  CODEREF,  eventname2  => CODEREF,  â¦</code>  in  a  completely  back  screen. 
Great.</p>  I  did  Mac::Memory.  The  next  problem  is, 
now  I've  turned  my  home  during  the  Ford 
administration.  With  Smallpox,  there  is  a  wank.  For 
those  that  have  a  type,  we  can  look  at  what 
DynDNS  did  today.  More  notes  later.]]  <p> 
5:30am  alarm  goes  off.  We  want  to  use  it. 
And  it  ends  up  being  able  to  include  perl 
5.8.0.</p>  Oh,  and  in  it,  results  come  in.</p> 
<p>Today  we  had  GC  in  XS  (actually  this  is  the 
lines  of  Java.  I  presume  this  kind  of 
certificationâif  you  can  completely  isolate  yourself 
from  the  continuing  unrest  in  the  newsgroup  links 
went.  I  am  modifying  the  generated  text,  but  it's 
better  to  express  here  and  now,  but  it  did  almost 
what  I  meant.<p>  âNat  A  co-worker  pointed 
out  in  the  groin  area  in  Perl  with  me  (the  two 
or  three  weeks  at  first.  He's  okay  with  that,  he 
was  on  PBS  which  basically  come  from  PHP,  Perl, 
Unix,  or  any  additional  code,  which  means  it  was  a
 wonderful  Italian  place.  I've  obviously  been 
thinking  for  a  lot  of  them  work.  I  hung  around 
with  it,  it  looks  like  a  Microsoft  topic.  And  not 
before.  People  talking  about  an  apprently  inadvertent
 change  in  the  UK  much.  So  when  you're  on  the 
line  from  Park  street;  you  need  to  write  a  novel 
with  the  projectors  and  display  the  current  stock 
file,  why.
<p>(Brought to by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14779">post</a> and <a href="http://use.perl.org/comments.pl?sid=15629">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The All-Spin Zone]]></title>
    <link href="https://www.taskboy.com/2003-09-17-The_All-Spin_Zone.html"/>
    <published>2003-09-17T00:00:00Z</published>
    <updated>2003-09-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-17-The_All-Spin_Zone.html</id>
    <content type="html"><![CDATA[<p><p>Al Franken's newest effort to deflate the political right is called <a href="http://www.amazon.com/exec/obidos/ASIN/0525947647">Lies and the Lying
 Liars who Tell Them</a>.  I finished the book in about 48 hours.  In it, 
Frankin looks at some of the worst participants in the politics of personal 
destructions, like Ann "liberals hate America" Coulter, Bill "Can't tell a 
Peabody from a Polk Award" O'Reilly and Sean "[American Taliban John] Lindh 
converted from anything-goes liberal agnosticism to hardcore Middle Eastern 
radical Islam" Hannity.  Oh, he has a word or two about (political advisor) 
Karl Rove, Bush, Cheney and Rumsfeld. <br>
<p>Lies is similar in tone to Franken's previous effort Rush Limbaugh
is a Big, Fat Idiot, but this time around the attacks are just bit piqued.
This comes through in the more bitter than funny analysis of the Paul 
Wellstone's memorial service.  Franken was at the memorial service that became 
infamously charactized as a sickening political rally over a corpse.  Some claimed
"20,000 people" booed Trent Lott and other high-profile Republicans who had 
come to pay their respects.  Actually, only Lott received a smattering of 
catcalls, but that's not how the story was reported and embellished by the 
"liberal media."
<p>There's lots of well-documented and fun information in Franken's book. <br>
In these fictional times, it's nice to hear a new story for a change. 
<p>On the heels of finnishing the book, I found this article on the 
<a href="http://www.voanews.com/article.cfm?objectID=50F5166C-1440-4027-A89BCF3DE6A2C74E">Voice of America</a> news site.</p>

<blockquote>
&laquo;Meanwhile, U.S. National Security Adviser Condoleezza Rice said the Bush administration had never accused ousted Iraqi leader Saddam Hussein of being involved in the September 11, 2001, terrorist attacks on the United States. 
<br><br>
U.S. Defense Secretary Donald Rumsfeld also said there was no indication of Iraqi involvement in the attacks. A recent Washington Post poll said more than two-thirds of Americans believe the ousted Iraqi leader was involved.&raquo; 
</blockquote>

<p><p>Wow.  I mean, wow.  I'm I misremembering this year?  Let's see.
<p>According to the <a href="http://www.csmonitor.com/2003/0314/p02s01-woiq.html">Christian Science Monitor</a>, 
Bush appear to be suggesting a link between Hussein and WMD:</p>

<blockquote>
&laquo;In his prime-time press conference last week, which focused almost solely on Iraq, President Bush mentioned Sept. 11 eight times. He referred to Saddam Hussein many more times than that, often in the same breath with Sept. 11. 
<br><br>
Bush never pinned blame for the attacks directly on the Iraqi president. Still, the overall effect was to reinforce an impression that persists among much of the American public: that the Iraqi dictator did play a direct role in the attacks. A New York Times/CBS poll this week shows that 45 percent of Americans believe Mr. Hussein was "personally involved" in Sept. 11, about the same figure as a month ago.&raquo;
</blockquote>

<p><p>From <a href="http://www.fair.org/press-releases/clark-iraq.html">Fair.org</a> comes the report of what former General Wesley Clark said to Tim Russert 
that there was an effort to link Hussein and 9-11. </p>

<blockquote>
&laquo;CLARK: "There was a concerted effort during the fall of 2001, starting immediately after 9/11, to pin 9/11 and the terrorism problem on Saddam Hussein." 
<br><br>
  RUSSERT: "By who? Who did that?" 
<br><br>
  CLARK: "Well, it came from the White House, it came from people around the White House. It came from all over. I got a call on 9/11. I was on CNN, and I got a call at my home saying, 'You got to say this is connected. This is state-sponsored terrorism. This has to be connected to Saddam Hussein.' I said, 'ButâI'm willing to say it, but what's your evidence?' And I never got any evidence."&raquo; 
</blockquote>

<p><p>From <a href="http://middleeastinfo.org/article3281.html">Middle East Information Center</a> comes this gem. </p>

<blockquote>
&laquo;Speaking on NBC's "Meet the Press," Cheney was referring to a meeting that Czech officials said took place in Prague in April 2000. That allegation was the most direct connection between Iraq and the Sept. 11 attacks. But this summer's congressional report on the attacks states, "The CIA has been unable to establish that [Atta] left the United States or entered Europe in April under his true name or any known alias."
<br><br>
Bush, in his speeches, did not say directly that Hussein was culpable in the Sept. 11 attacks. But he frequently juxtaposed Iraq and al Qaeda in ways that hinted at a link. In a March speech about Iraq's "weapons of terror," Bush said: "If the world fails to confront the threat posed by the Iraqi regime, refusing to use force, even as a last resort, free nations would assume immense and unacceptable risks. The attacks of September the 11th, 2001, showed what the enemies of America did with four airplanes. We will not wait to see what terrorists or terrorist states could do with weapons of mass destruction."&raquo;
</blockquote>

<p><p>The <a href="http://www.unwire.org/UNWire/20030709/449_6368.asp">UN Wire</a>
has this to say:</p>

<blockquote>
&laquo;U.S. Defense Secretary Donald Rumsfeld said today the United States did not go to war with Iraq because it had discovered new evidence that Iraq was producing banned weapons but because it regarded existing evidence differently than it had before September 2001.
<br><br>
"The coalition did not act in Iraq because we had discovered dramatic new evidence of Iraq's pursuit" of nuclear, chemical or biological weapons, Rumsfeld said in testimony before the Senate Armed Services Committee.  "We acted because we saw the evidence in a dramatic new light . through the prism of our experience on 9-11" (Reuters , July 9).&raquo;
</blockquote>

<p><p>Why have we been searching for WMD in Iraq if we had no new evidence 
at all?  We could have just let Blix continue to paw around the desert 
for another five years.
<p>So the US invaded Iraq because Saddam was bad or, more likely, an 
inconvenient man.  Iraq made the US "jumpy."  Yes, there where UN sanctions 
in place that gave the UN (and hence the US) a legal pretext to help Iraq 
disarm (but why was it urgent to launch the attack now?).  Yes, the 
Hussein regime was a brutal autocracy.  Yes, I'm personally happy that monster
is gone from office.  No, I don't think the means (lying or at least serious 
misleading the public into a war) justifies the ends.
<p>UPDATE: The Clarke quote is highly contraversial.  Take a look at 
<a href="http://www.spinsanity.org/columns/20030903.html">this spinsanity</a> 
analysis of the contraversy.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14749">post</a> and <a href="http://use.perl.org/comments.pl?sid=15594">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Reparation  ad.]]></title>
    <link href="https://www.taskboy.com/2003-09-17-[MarkovBlogger]__Reparation__ad.html"/>
    <published>2003-09-17T00:00:00Z</published>
    <updated>2003-09-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-17-[MarkovBlogger]__Reparation__ad.html</id>
    <content type="html"><![CDATA[<p>or  Format  class.  I  have  to  get  each  other  in MacPerl  for  dealing  with  pressure,   dealing  with  it. 
  Now,  I  don't  "live  for  the  week  after  the 
keynote  without  mentioning  Tim's  introduction.  Tim 
talked  about  how  to  use  AxKit::reset_stylesheets()  to
 stop  watching  CNN  for  a  golden  age  in  which  I 
then  got  to  do  it  after  returning  from  YAPC,  as  I
 said,  hacker  puns  are  the  reality  of  the  snow 
plow  business.  Here's  his  catchy  jingle,  which  he 
sets  his  Discworld  novels.  I  have  a  VCR  and  CD 
shopping  â  these  things  fade  if  you  want,  but  I 
did  was  that  they're  buying  books  for  a  local  ATM 
machine  from  a  better  system  for  including 
separately  processed  components  into  pages.  And  it's 
not  anywhere  close  to  being  jumped  on  the  head  of 
SCO,  Rael^WDarl  McBride,  said  that  Mach  is  showing 
less  than  24  hours.
<p>(Brought to by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14747">post</a> and <a href="http://use.perl.org/comments.pl?sid=15592">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Get your Islam on]]></title>
    <link href="https://www.taskboy.com/2003-09-16-Get_your_Islam_on.html"/>
    <published>2003-09-16T00:00:00Z</published>
    <updated>2003-09-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-16-Get_your_Islam_on.html</id>
    <content type="html"><![CDATA[I pronounce this fatwa: only losers won't take this <a href="http://news.bbc.co.uk/2/hi/in_depth/3192861.stm">BBC quiz on Islam</a>.<br>
<p>I got 9 of 10 questions right, baby!  I am the Islamyest!<br>
<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14733">post</a> and <a href="http://use.perl.org/comments.pl?sid=15578">comments</a>.]</p><br>


]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Rumsfeld's  Rules    Ouch.]]></title>
    <link href="https://www.taskboy.com/2003-09-15-[MarkovBlogger]__Rumsfeld&apos;s__Rules____Ouch.html"/>
    <published>2003-09-15T00:00:00Z</published>
    <updated>2003-09-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-15-[MarkovBlogger]__Rumsfeld&apos;s__Rules____Ouch.html</id>
    <content type="html"><![CDATA[<p>p5p  because  I  needed  given  the  period.</p>  <p>My first  idea  was  to  populate a  UnicodeMappingPtr  with 
the  matches  and  verifies  it  works.  The  cron  job 
that  will  stop  even  thinking  about  it  here
   This  is  his  bitchy  diary  about  his  projects 
(step  over  to  a  hill  populated  mostly  by  ancient 
oaks  and  new  spruces.  At  night  the  tree  that 
you're  incapable  of  performing  checkin  or  checkout 
without  help,  waiters  and  waitresses  that  consider 
glassware  optional,  taxi  drivers  that  are  virtually 
impossible  to  fix.  I  think  it's  necessarily  the 
only  thing  that  really  grate  when  I  was  talking 
about  the  details  as  yet  unbeknownst  to  us.  But  in
 our  worship,  training  in  singing  is  real 
important.</p>  <p>The  Ukranian  churches  have  plenty 
of  problems  that  lead  to  some  pot-smoking  daycare 
degree  mill  where  they  plan  on  watching  the  planes 
crash  into  the  Cookbook  was  written  "  and  '.  <p>In
 HTML:  &amp;laquo;  and  &amp;raquo;  (left  angle-quotes 
and  right  angle-quotes)  <p>In  hex:  \xAB,  \xBB 
FreeBSD  ports  are  not  on  CD  where  it  was  a  room 
we  left  limping  and  whipped.  That  said,  I'd  rather 
just  buy  the  various  download  mirrors.)  Changes: 
* v1.11, May 22, 2003  Add super-cool feature for
calling event methods on object  specifier record objects
(like $track->play). See  "Shortcuts for object specifier
records" in the docs for  more information.  Updated some
of the examples to use this new feature.  Read-only flag in
PODs was reversed. It is recommended to re-create  all your
glues, or just realize that "read-only" means it is
writable,  and no note means it is read-only, in your old
docs. Or change them  all by hand.  Fix minor paths bug in
call to Mac::Path::Util. Require  more recent version of
said module.  Added t/pod.t.   Posted  using 
release
  <p>by  brian  d  foy  and  Dan  Sugalski.<p>  Keynotes 
  varied  from  fun  (David  Pogue)  to  interesting 
  molecular  biology  to  work  with  the  em-square 
  settings.  Kookoo  nutty  font  formats!  <a href="/~pdcawley/journal/">pdcawley</a>  posed  a  problem 
  for  a  peculiar  environment  variable  called 
  "POSIXLY_CORRECT"  and  seriously  wondered  how  many 
  congressman  were  downsized  last  year  moved  to 
  chatspace  will  send  you  to  save  me  typing.    I 
  still  use  outdated  or  unsupported  interfaces  from 
  the  carcass  of  the  work.</p>

<p>(Brought to by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p></blockquote></p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14704">post</a> and <a href="http://use.perl.org/comments.pl?sid=15548">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[burial at sealab]]></title>
    <link href="https://www.taskboy.com/2003-09-15-burial_at_sealab.html"/>
    <published>2003-09-15T00:00:00Z</published>
    <updated>2003-09-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-15-burial_at_sealab.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://forums.toonzone.net/showthread.php?t=88208">Harry "Cap't Murphy" Goz has died.</a><blockquote>
&laquo;"We are devastated by the loss of our good friend, Harry Goz. Working with him was always sheer joy, and his talent was beyond compare. Our thoughts and prayers are with his family, and we shall all miss him dearly."&raquo;
</blockquote></p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14715">post</a> and <a href="http://use.perl.org/comments.pl?sid=15558">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  and  Vaxclusters    Pod::SAX  0.14    XML.]]></title>
    <link href="https://www.taskboy.com/2003-09-14-[MarkovBlogger]__and__Vaxclusters____Pod__SAX__0.html"/>
    <published>2003-09-14T00:00:00Z</published>
    <updated>2003-09-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-14-[MarkovBlogger]__and__Vaxclusters____Pod__SAX__0.html</id>
    <content type="html"><![CDATA[<p>run  abcde.  It  does  exactly  what  I  think  a  large bunch  of  cards  have    0  cost  values*.  That  is,  if 
I'm  violating  some  implicit  contract  I  have  a 
reasonable  MacPerl  release  in  April.  Damian's  also 
been  very  positive.</p>  <p>Please  visit  <a href="http://stand.org.uk/">the Stand web site</a>  and 
help  at  all.    Sys::Host  (Ruby)  -  The 
ip_addr()  method  was  causing  my  bed  and  going 
strong  since  March  and  not  even  the  best  office 
suites  and  desktop  packages  installed.  <p>  Whatever 
happens,  we  will  throw  an  effing  conniption  fit. 
That  will    Only  just  today  I  found  a  lot  more 
interested  in  Ruby.  Consider  it  shown!  Every  Ruby 
session  I  attended  Sarathy's  talk  on  how 
little  functionality  they  can  verify  it  meets 
their  criteria,  which  it  is.  I  think  the  telephone 
extension  cable  I  have  a  hackathon  at  OSCON. 
Basically,  if  you  find  that  it  would  be  "instance 
variables".  Now  really  this  bad?  Yes.  Take 
File::Find.  It's  been  a  staple  at  our  house,  with 
the  main  battery  someday  (I  drive  a  hybrid?  How 
many  people  get  such  an  atrocious  way".    I'm 
itching  to  start  writing  my  paper  for  some 
time.</p>  <p>Anyway,  I've  put  my  finger  on  the  list
 and  think  you  can.  Steve  Mallet  <a href="http://www.oreillynet.com/cs/weblog/view/wlg/1481">ha
s some ideas about</a>  why  Microsoft  Office  is  the 
way  it  works  like  planned,  it  was  about  six:  "No 
caffeine.  Never  had  it;  never  will."</p>  Again,  I 
screw  around  during  the  day.  They're  supposed  to  be
 exactly  the  same  code  was  NOT  PRETTY.  <p>After 
about  a  book  on  these  techniques  online.  Eventually 
it  will  pass  by.</p>  <p>Managed  to  stay  at  home 
that's  dripping  in  my  "favorite  quotes"  file:   
"Men's  indignation,  it  seems,  is  more  than  I  was 
calm;  I  am  pretty  sure  I  was  working  with  Mason 
right  away,  but  for  the  Food  Bank.  If  you're  a 
MySQL  administration  tool.  I  use  BBEdit  as  my 
original,  somewhat  ambitious  intent  floundered.  We 
came  up  on  IRC  by  piping  Eliza  there  before  her 
(I  particularly  remember  the  feeling.
<p>(Brought to by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14693">post</a> and <a href="http://use.perl.org/comments.pl?sid=15534">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[if laptops were marketed like junk food]]></title>
    <link href="https://www.taskboy.com/2003-09-14-if_laptops_were_marketed_like_junk_food.html"/>
    <published>2003-09-14T00:00:00Z</published>
    <updated>2003-09-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-14-if_laptops_were_marketed_like_junk_food.html</id>
    <content type="html"><![CDATA[<p><p>The tiny, unborn marketing guy inside me wanted to pitch this TV ad campaign to you all.  Enjoy.
<blockquote>
<p>Opening montage of jerky, choppy cuts of jjohn typing on laptop from 
different, improbably (and somewhat impolite) angles;  Heavily fuzzed-up 
guitar music featuring dramatic whammy bar dives and tremolos accompanies 
images
<p>James Earl Jones Voice Over:  Joe Johnston is a professional Perl
programmer and UNIX hack.  Co-author of several, er, selling technical books, 
Joe knows latops.
<p>Cut to headshot of jjohn with spiky, "bedhead" hair
<p>JJ: Hola, Dudes and Dudettes!  When I'm banging out mod_perl 
scripts at 3AM or jamming out a new tech article, the last thing I need 
is for the dollar key on my laptop to go tits up. 
<p>Cut to jjohn's horror-filled reaction as his keyboard stops working; <br>
Guitar plays "out of luck" notes;  Cut to jerky, handcam closeup of jjohn
<p>JJ: That's why I only use IBM ThinkPad (&trade;) laptops. <br>
Every ThinkPad (&trade;) features outrageous Pentium processing power backed 
by reliable IBM hardware and support.  Each ThinkPad (&trade;) comes in a 
sick black chassis build with a radical fire-engine red 
nipplemouse and an awesome LCD screen.  Dude!  It's even got it's own 
battery! <br>
<p>Cut to the most iconoclastic, pouting teenaged girl you can imagine 
foddling laptop in front of her pink babydoll t-shirt that sports an oversized 
white star emblem;  Cut back to jjohn
<p>JJ: Best of all, you can put any damn operating system on it you 
want!  Sure it comes with Microsoft Windows, but this bitch purrs under 
Linux, FreeBSD, even BeOS!
<p>jjohn holds laptop like a guitar, sticks tongue out and pretends to 
play along with shedding metal guitar in foreground; cut back to closeup
<p>JJ: Don't let your power cord go limp and flaccid while you're 
stepping through the debugger!  Get a IBM ThinkPad (&trade;) today!
<p>Pouting girl enters from stage left;  Looks at jjohn's laptop
<p>Pouting Iconoclast: Nice laptop, I guess.
<p>jjohn smiles smuggly; winks to camera
<p>JJ: Baby, you said a mouthful!
<p>Legalese writing appears in unreadably small lettering while voice over
reads lines at top speed
<p>VO: Windows is a registered trademark of Microsoft Corporation. 
BeOS is a registered trademark of Palm, Inc.  Linux and FreeBSD aren't 
trademarks at all.  Under certain conditions, IBM ThinkPads (&trade;) may 
fail to attract desirable members of the opposite sex.  Your mileage 
may vary.  Offer void where prohibited.  Use only as directed.  See you primary
care physician before using. IBM ThinkPads (&trade;) should not be used by 
gravid women (or gravid men).<br>
DO NOT TAUNT IBM ThinkPads (&trade;)
</blockquote>
<p>Say, that was fun!  If you want to hear more of my great marketing ideas, 
have your people talk to my people (inside my head).
<p>UPDATE:  Try this product on for size:  IBM ThinkPad (&trade;) Condoms:  When the hacking's done; the humping's begun.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14686">post</a> and <a href="http://use.perl.org/comments.pl?sid=15528">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[today's neologism is declinism]]></title>
    <link href="https://www.taskboy.com/2003-09-14-today_s_neologism_is_declinism.html"/>
    <published>2003-09-14T00:00:00Z</published>
    <updated>2003-09-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-14-today_s_neologism_is_declinism.html</id>
    <content type="html"><![CDATA[<blockquote>&laquo;The declinists, we might say, will always be with us. Wherever anyone believes in progress, someone, possibly the same one, believes in decline. Declinism emerges today from the triumphalism of the right: In our greatness, conservatives say, there is much to lose, and many who threaten us. So, too, does it emerge from the pessimism of the left: Power corrupts, and the corrupt will get their comeuppance. At present, both impulses â triumphalist and pessimistic, chest-beating and self-lacerating â are on the upsurge. So too, then, declinism.&raquo;
</blockquote>

<p><p>âBoston Globe: <a href="http://www.boston.com/news/globe/ideas/articles/2003/09/14/that_sinking_feeling/">That Sinking Feeling</a></p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14695">post</a> and <a href="http://use.perl.org/comments.pl?sid=15536">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  now…  .]]></title>
    <link href="https://www.taskboy.com/2003-09-13-[MarkovBlogger]__now.html"/>
    <published>2003-09-13T00:00:00Z</published>
    <updated>2003-09-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-13-[MarkovBlogger]__now.html</id>
    <content type="html"><![CDATA[<p>to  get  me  wrong;  it  just  happens."  <p>"It  occurs to  me    like  some  deranged  parrot  or  something,  and 
the  commentary  on  them  with  as  many  people  use 
pod2man  to  save  the  current  build  of  WinNT[1].  One 
of  my  head,  I  was  trying  to  piece  together,  and 
I'll  strike  while  the  CON  value  may  be  the  only 
sane  one  left".  Then  you  simply  love  every  one 
there.  </p>  <p>    Now  all  I  can  install  a  video 
card  to  the  various  mop  styles  and  epochs  of 
science  fiction  I've  seen  where  we've  seen  has 
anything  to  add,  goto  step  1.    It's  from  a 
Nutshell.  In  dealing  with  large  media  collections. 
Scot  describes  the  problems  (tho'  the  full 
assertion,  much  less  around  strange  rules  like  "each
 line  must  be  stopped  at  7:30am.  I'm  pretty  sure 
it's  worth  going  after.    Quick  note  -  I  always 
grind  my  teeth  into  a  WLAN.  It  doesn't  take  long 
:-)  and  then  send  the  named  parameter  handling 
subroutine  straight  out  of  SQL*Plus  you  are  ready 
to  sink  or  swim  on  its  own  story  about  Lisp  and 
ViaWeb.</p>  <p>I  never.
<p>(Brought to by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14682">post</a> and <a href="http://use.perl.org/comments.pl?sid=15522">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Preventing nuclear weapons proliferation]]></title>
    <link href="https://www.taskboy.com/2003-09-12-Preventing_nuclear_weapons_proliferation.html"/>
    <published>2003-09-12T00:00:00Z</published>
    <updated>2003-09-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-12-Preventing_nuclear_weapons_proliferation.html</id>
    <content type="html"><![CDATA[<p>It appears that the rumors of Iran's atomic weapons</a> program will not go away.  </p>

<blockquote>
&laquo;The report, by IAEA head Mohamed ElBaradei, lists findings of traces of weapons-grade enriched uranium and other evidence that critics say point to a weapons program.<br>
<br>
"The United States believes the facts already established would fully justify an immediate finding of noncompliance by Iran," Brill said during a meeting of the agency's board. Still, he said, the Americans were ready to give "Iran a last chance to drop its evasions" before pushing for Security Council involvement.&raquo;
</blockquote>

<p><p>Setting aside the hypocracy of countries that have nukes restricting 
atomic weapons technology from those that do not, it seems that the US alone 
cannot afford to continue to use military force to stop every "rogue" state 
from getting The Bomb (even though I admit I'd sleep better at night knowing 
that nukes were in fewer hands).  It doesn't seem that Iran has nuclear 
weapons now, but if they have a clandestine Manhattan Project, one Israeli 
source suggests that they could have a working weapon in two or three years. <br>
I don't know if I believe that, but let's grant that that is true.  Is there 
a way to discourage nations from developing a nuclear weapons program? <br>
<p>One way to approach this question is to ask why any country wants nukes in 
the first place.  Nuclear weapons are expensive to make and expensive to 
maintain.  Because uranium decays, the weapons require 
<a href="http://www.house.gov/hasc/Publications/104thCongress/Reports/doerpt.pdf">constant monitoring and adjustment</a>. <br>
The care and feeding of the US atomic stockpile is expensive. While I can't 
find the exact numbers, the cost appears to be in the billions of dollars per 
year (I welcome pointers to more accurate information).  The report cited above
provides the answer to why the US has atomic weapons: deterrence.  Countries 
that have a credible atomic weapons program are perceived to be in less danger
of a first strike (conventional or atomic) from another country.  It helps to 
explain why the US is reluctent to use the same muscle in the North Korean 
affair than it did with Iraq.  The lesson many smaller countries have learned 
is that a credible weapons program will deter military invasion.  For another 
object lesson, look at how the tensions between Pakistan and India (who both 
have atomic weapons) manifest.  But this isn't the only lesson to be learned 
from current political events. 
<p>If your country's atomic weapons program is discovered before you have 
weapons, your are likely to be harassed or invaded, as Iran is experiencing.
You can debate whether the harassment is justified, but you cannot deny it is
happening.  Is the threat and use of military intervention to prevent nuclear 
weapons proliferation a tenable long-term policy for the US and UN?  I don't 
believe so.  The cost of rebuilding Iraq is more than the US wants sustain 
alone.  Imagine the cost of simultaneously rebuilding Iraq and Iran. <br>
Moreover at some future point, it simply won't be that difficult 
to get an atomics weapons program up and running.  The technology will 
continue to become cheaper and better understood.  The US won't have time to 
stop "rogue" regimes from getting nukes.  That's when the US will need to 
have to decide how far it will go to enforce it's policies.  Those promise to
be some very difficult days indeed.
<p>Deterrence isn't the only reason to have nukes, although it is probably the
most important one (certainly the late Dr. Teller would agree with this). <br>
Once you have nukes, your country is in a lot better position to negotiate 
with or extort from neighboring countries.  Again, North Korea's example of 
getting oil from the US in exchange for "stopping" their weapons program is 
an excellent example of this.  Another example is the US threatening to 
relatiate with atomic weapons if any form of WMD are used against it.
<p>It appears there's a lot of upside for any "rogue" country to develop nukes
as fast as possible.  The only way to effectively combat nuclear proliferation 
is to nullify its benefits.  Frankly, I'm at a loss as to how to do that. <br>
Although I do believe that most people in the world will respond with respect 
if shown the same, I'm also aware that there are those who only understand 
force (again, Saddam Hussein is a good example that this).  Should we extend 
ESR's notion that a universally armed citizenry promotes a "polite society?" <br>
If so, then giving nukes to everybody ought to easy world tensions. <br>
After all, you'd have to be mad to attack a country with nukes, right? <br>
Perhaps ESR's suggestion doesn't scale up well.
<p>I don't have a solution to stopping nuclear proliferation.  I'm trying to 
work out what I believe about this thorny, ugly problem.  Increasingly, US 
foreign policy seems to involve this issue.
<p>Your thoughts?</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14676">post</a> and <a href="http://use.perl.org/comments.pl?sid=15514">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Sun sets on man in black and Jack Tripper]]></title>
    <link href="https://www.taskboy.com/2003-09-12-Sun_sets_on_man_in_black_and_Jack_Tripper.html"/>
    <published>2003-09-12T00:00:00Z</published>
    <updated>2003-09-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-12-Sun_sets_on_man_in_black_and_Jack_Tripper.html</id>
    <content type="html"><![CDATA[<p><p>"Hear ye! Hear ye!  Bring out your dead!"<p><a href="http://www.kwwl.com/Global/story.asp?S=1439815">Johnny 
Cash</a>, dead at 71.  While not a fan of his work, Cash won my respect 
by managing to reach the MTV crowd without seeming to be a whore.   That's 
talent and Cash certainly had it in bucketfulls.
<p>And from the you-lost-your-saving-throw-dept., 
<a href="http://asia.reuters.com/newsArticle.jhtml?type=topNews&amp;storyID=3432987">John Ritter has also died</a> due to a freak arterial problem.  Ritter's 
work was all over the map.  He is responsible for a tremendous amout of crap, 
including Three's Company, It and Skin Deep (think 
luminescent condoms).  Occasionally, he produced some quality work, as his 
one guest spot on Buffy showed.  Certainly at 54, Ritter was too young
to go.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14669">post</a> and <a href="http://use.perl.org/comments.pl?sid=15508">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]    Broadband  Providers    Mac::AppleEvents  Working  More .]]></title>
    <link href="https://www.taskboy.com/2003-09-12-[MarkovBlogger]____Broadband__Providers____Mac__AppleEvents__Working__More_.html"/>
    <published>2003-09-12T00:00:00Z</published>
    <updated>2003-09-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-12-[MarkovBlogger]____Broadband__Providers____Mac__AppleEvents__Working__More_.html</id>
    <content type="html"><![CDATA[<p>of  handlebars  and  pretending  to  be  lightweight enough    to  anyone  or  anything  else  you'll  ever  eat, 
and  even  <a href="http://www.perldoc.com/perl5.8.0/pod/perlipc.html">Re
ad The Fine Manual</a>  but  there  are  a  lot  of  new 
stuff  that  the  author  soon.  Maybe  I'll  keep  that 
in  BASIC?  :)  Yet  some  people  don't  see  it,  but 
hey,  I  got  an  "Oops,  that  shouldn't  happen. 
up2date  should  ensure  that  anything  tied  is 
slow.  While  that  holds  true,  tied  interfaces  aren't 
always  the  way?    "I  know  that  the  right  to 
publish  it  for  me.  I  ended  up  doing.    Even 
then  I'm  just  being  left  in  it,  too.    I've 
been  contemplating  wussing  out  and  in  a  limited 
number  of  them,  which  I  know  what  map  does. 
<p>Mark's  final  solution  to  many  more! 
âNat  Dear  Log,  <p>Wow,  Michel  wrote  a 
hilarious  dinner  with  them,  possibly  never  see  this 
patronage  model  grow  and  spread.  (Major  kudos  to 
Ticketmaster  for  hiring  another  Perl  template  module,
 especially  considering  that  I'm  completely 
underequiped,  not  having  anything  to  show  this  to 
the  world.</p>  <p>â¦  or  at  least  in  regard  to 
lib/Unicode/.  My  perl/  had  no  chance  of  that  come 
from  Wally-World  for  around  US$4.    It  also 
occurred  to  me  in  his!  If  you  ever  seen  and  at 
work,  plus  meetings,  plus  cleaning  out  the  solution 
is  this  yet  another  case  of  TMTOWTDI.  Dear  Log, 
<p>I'm  quite  surprised  to  find  a  program  with  a 
keynote  by  <a href="http://www.paulgraham.com/">Paul
Graham</a>,  who  was  both  disarming  and  enjoyable. 
<p>On  the  radio  today  I  wrote  a  tiny  bit  more 
often.
<p>(Brought to by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14665">post</a> and <a href="http://use.perl.org/comments.pl?sid=15505">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]    It's  a  conspiracy!    Eyes.]]></title>
    <link href="https://www.taskboy.com/2003-09-11-[MarkovBlogger]____It_s__a__conspiracy_____Eyes.html"/>
    <published>2003-09-11T00:00:00Z</published>
    <updated>2003-09-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-11-[MarkovBlogger]____It_s__a__conspiracy_____Eyes.html</id>
    <content type="html"><![CDATA[<p>Oh,  and  the  stylesheet  and  start  to  hurt.  <em>What Set  U  Claim'N</em>  -  "Muzik  Ta  Ride  2"   -  <a href="http://www.google.com/search?q=%22Str8 Young G'z%22">Str8 Young G'z</a>  Posted  from  <a href="http://caseywest.com">caseywest.com</a>,  comment  <a href="http://caseywest.com/journal/archives/000109.html">he
re</a>.  The  new  inventory  file:    "Men's 
indignation,  it  seems,  is  more  readable:  use
Mac::Glue; $d = 0; $i = new Mac::Glue "iTunes"; for $t
($i->obj(tracks => library_playlist => 1)->get) {  if
($t->prop("location")->get eq "msng") { # 'missing value' 
print join " - ", map { $t->prop($_)->get } qw(name artist
album);  $t->delete if $d  } }  It  found  three 
tracks  off  Primus'  Sailing  the  Seas  of  Cheese  album
 were  disappeared.  The  files  are  located  on  our 
virus  scanner  code  though,  which  went  7:30am->3am 
for  multiple  days).  Spoke  to  Dan  Brian  and  I  have 
absolutley  no  idea  whether  they  are  today.  <p> 
McBreen  describes  how  authors  get  addicted  to  coding
 but  not  for  want  of  trying  clothes  on  in  the 
first  presented  solution  is  to  unsubscribe  simply  by
 typing  your  email  address).  You  can  start  by 
getting  a  raise  is  stressful?"  The  book  doesn't 
cover  that  in  the  top  of  the  accounting  system  for
 a  Perl  hacker?  âNat  Just  got  a  bugfix 
release,  and  I  need  more  staff,  but  HR  has  a 
website  that  didn't  workâeverything's  an  A  in  a 
Lisp  dialect.  It  got  a  hash  (key  =  name,  value  = 
list  (  stock,  shown  ))  or  else  I  don't  recall 
having  read  <a href="http://use.perl.org/~pudge/journal/2824">pudge's
entry on SOAP</a>    I  was  95%  certain  of  the  song 
about  clp.misc,  which  was  quite  fast.  <p>    This  is
 a  very  minor  bug  fixes  in  Robin's  Want 
module  <em>still</em>  doesn't  play  nice  together.  <p>Trying 
to  stay  here  for  everyone  to  mingle  with  Jarkko, 
Damian,  Larry,  Allison,  Hugo,  and  I.  They  started 
talking  like  I  floundered  around  my  huge  list.  This
 Monday  I  wound  up  like  a  copy  of  that  car. 
<p>This  is  the  stage  that  can  articulate  it  is  a 
point  where  you  can  join  channels,  etc).  The  base 
class  that  required  a  C++  class?)  It  also  reminds 
me  why  it  doesn't  yet  understand  most  of  what  was 
wrong,  and  accused  him  of  using  the  modu
le  I  read  through  it  and  have  a  new  form 
object.  This  would  be  good  to  read  off  the  web, 
and  what  we  call  intolerance  and  hypocrisy,  and 
killing  those  who  have  intelligent  reasons  for 
opposing  the  war.  This  shows  some  high  level  break 
up  a  script  from  Mac  OS.
<p>(Brought to by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14646">post</a> and <a href="http://use.perl.org/comments.pl?sid=15484">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Corporate thug jailed]]></title>
    <link href="https://www.taskboy.com/2003-09-10-Corporate_thug_jailed.html"/>
    <published>2003-09-10T00:00:00Z</published>
    <updated>2003-09-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-10-Corporate_thug_jailed.html</id>
    <content type="html"><![CDATA[<blockquote>&laquo;Ben Glisan, formerly treasurer at energy trader Enron, has become the first executive to be jailed for his part in the huge financial scandal at the firm. 
<br>
â¦
<br>
Meanwhile, former chairman Kenneth Lay and former chief executive Jeffrey Skilling are under investigation, but have not been charged with any offence. 
<br>
â¦
<br>
Prosecutors hope that, by successfully proceeding against smaller officials, they will eventually be able to build up a cast-iron case against the top management.&raquo;
</blockquote>

<p><p>BBC: <a href="http://news.bbc.co.uk/2/hi/business/3097668.stm">First Enron ex-official is jailed</a>
<p>We've toppled two regimes in the time it took to put this thief in jail. 
It's about damn time.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14638">post</a> and <a href="http://use.perl.org/comments.pl?sid=15477">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Like a candle in the (overpressure) wind]]></title>
    <link href="https://www.taskboy.com/2003-09-10-Like_a_candle_in_the_(overpressure)_wind.html"/>
    <published>2003-09-10T00:00:00Z</published>
    <updated>2003-09-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-10-Like_a_candle_in_the_(overpressure)_wind.html</id>
    <content type="html"><![CDATA[<p>Dr. Ed "Johnny H-bomb" Teller has <a href="http://news.bbc.co.uk/2/hi/americas/3095692.stm">died at age 95</a>.  I've seen a number of interviews with Teller where he justifies not only 
the original research to build nuclear weapons ("we were in a race with the 
Nazis"), but also continuing research to create the even more devistating 
hydrogen bomb (as a deterent to a first strike and for the pure research 
value).  In later years, he supported Reagan's SDI "star wars" plan to 
militarize space.  Dr. Strangelove was remarkably similar to Teller.  For 
better and for worse, Teller's influence on history is pronounced.   </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14623">post</a> and <a href="http://use.perl.org/comments.pl?sid=15461">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  Again!)    Tk  +  Babysitting.]]></title>
    <link href="https://www.taskboy.com/2003-09-10-[MarkovBlogger]__Again_)____Tk+__Babysitting.html"/>
    <published>2003-09-10T00:00:00Z</published>
    <updated>2003-09-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-10-[MarkovBlogger]__Again_)____Tk+__Babysitting.html</id>
    <content type="html"><![CDATA[<p>act:  The  Ed  Grimley  Experience.  Got  to  my no-caffeine  plan  for    the  changes  he  made  a  program 
that  emitted  valid  XML.  The  way  I  can  locate 
duplicates  then,  and  I  think  I  may  reasonably 
include  them  in  a  file,  not  finding  it.  So  that's 
why  I  am  nearing  completion  of  words  (for  the 
love  of  SAT  words  (eg.  'inchoate',  'deracinate', 
'Sturm  und  Drang')  and  dazzles  the  reader  :)</p>  I 
managed  to  get  some  DynDNS  stuff,  since  I'm  not 
sure  what  I'll  be  doing  the  SAX  support  in  Perl 
5.8.  <p>  C,  C++,  Java,  Awk,  and  Perl,  and  (4)  a 
vague  clue  about  RTF  syntax.  <p>  Shoot  me  for  two 
weeks  of  work  down  the  pub.  I  attended  one  of  the
 car.  "Put  Raley  in  it  such  a  lame  programmer? 
Before  I  do  TPC  content  planning  is  starting  soon),
 that  grinds  me  the  following:</p>  <p>What  did 
you  click;  what  did  I  at  times  wonder  whether  the 
test  tomorrow  is  my  wife's  design.  She  should  be 
interesting  to  use  computers  with  more 
bugfixes,  I've  updated  bundled  modules  and  looks 
fantastic.  Will  upload  sometime  soon  (more  fixes  to 
make).  <p>Much  kudos  (and  beer)  to  <a href="/~acme/">acme</a>  for  the  desktop.  Open  that 
and  see  foreshadowed  solutions.  But  even  on  your 
PC's  soundcard  can't  take  it  out  on  the  ones  I'm 
dealing  with  a  can-do  attitude  to  security.  These 
criticisms  are,  of  course,  it  benefits  from  all 
sections  of  this  morning  by  frightening  nightmares 
at  exactly  08:01  wasn't  enough  reason  to  agonize 
over  it;  just  one  stop  for  the.
<p>(Brought to by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14617">post</a> and <a href="http://use.perl.org/comments.pl?sid=15455">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  something  to  do  .]]></title>
    <link href="https://www.taskboy.com/2003-09-09-[MarkovBlogger]__something__to	do__.html"/>
    <published>2003-09-09T00:00:00Z</published>
    <updated>2003-09-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-09-[MarkovBlogger]__something__to	do__.html</id>
    <content type="html"><![CDATA[<p>three  accounts:  SYSTEM/MANAGER, FIELD/SERVICE  and  USER/USER.  Given 
the  raw  power  of  a  quote  from  B.F.  Skinner  is  a 
bit  much.  A  dash  of  sort  (using  the  free  episodes 
so  I  bid.  And  won.</p>I'm  going  to  try  to 
remember  one  of  the  links  between  pages.  The 
biggest  one  I've  ever  seen  that  number  down,  but 
I'm  pretty  sure  they're  patched  but  I'll  take  petdance
's advice on website reviews  and  run  abcde.  It 
does  take  up  to  100%  yet,  how  the  BBC  web 
site.</p>  <p>You  can  run  on  this  thing.  Too 
fragile,  horrible  AirPort  range.  Sigh.  I'm  a  big 
deal.  Just  kinda  confusing  is  all.    I'm  planning
 to  nobly  return  it  to  come  off  as  flawed  and 
self-serving  and  not  a  huge  list  of  all  (the 
weapons)."  Inspections  work  if  that  screws  up  a 
wiki  clone  (chiq-chaq,  to  be  called  "the  Sussman", 
after  one  of  the  scenes  is  shot  looking  out  at 
9:15.</p>  <p>This  meant,  of  course,  bash  and  a 
conference  suite  with  kitchen,  bathroom,  changing 
room,  dining  room,  conference  table,  fax  machine, 
etc  etc.  Then  I'll  give  it  more  every  summer.   
Today  I'm  trying  to  see  what  new  code  that  replace
 my  somewhat  smashed  in  Saturn.</p>  <p><a href="http://www.estey.com/im/newcar.jpg">photo
here</a></p>  <p>All  I  wish  they'd  bring  "Brimstone" 
back.  Did  I  mention  this  at  work  (beauty  of  being 
demolished.  The  debris  is  being  <a href="http://www.uwsg.indiana.edu/hypermail/linux/kernel/02
05.1/0459.html">talked about about here</a>: 
<blockquote>Perhaps that will be a lesson to the
self-styled "Hacker of social systems" that there is a
reason he has two ears and only one mouth. <p>As a
low-level hacker he needed to elicit support from others to
get his work recognised and included. He was unwilling to
listen to advice and criticism from those who know a lot
better than him, and his work was not of such obvious
brilliance that people were prepared to accept it without
change. <p>He was not prepared to make the changes folks
wanted, so he took his ball and went away in a
strop.</blockquote>  <p>(<a href="http://www.guardian.co.uk/comment/story/0,3604,715154
,00.html">Hint One</a>)<p>(<a href="http://www.tuxedo.org/~esr/writings/sextips/">Hint 
Two</a>)  MacNN  <a href="http://www.macnn.com/news.php?id=16983">reports</a> 
on  an  FM  band,  but  I'm  already  starting  to  feel 
the  urge  to  buy  SCO.  Others,  including  me,  have 
suggested  that  they  could  be  wrongâ¦  Dear  Log, 
<p><a href="http://eikenes.alvestrand.no/pipermail/ietf-languages
/2003-May/000964.html">Just a peek into an alien Limbo.</a>
 Ask  Bjorn  Hansen  is  my  lack  of  support  that 
O'Reilly  has  finally  been  <a href="http://www.gnu.org/software/changelogs/grep/grep-2.5/
NEWS">upgraded to support Perl-style regular
expressions</a>.  Too  little,  too  late,  it's  now 
based  on  the  MT  forum  for  Liz  Castro's  book  is 
the  second  time.<p>  âNat  <p>Well,  almost.  I 
guess  that  being  "agreeable"  with  job  benefits  gets 
you  absolutely  prefer).  <p>  Add  it  all  up;  things 
were  continuously  uncovered  throughout  the  books.  <p>
   Anyway,  at  least  18  eunuchs  have  unveiled  their 
candidature.  Eunuchs  have  been  going  through  hell 
several  times  earlier.  I'm  fairly  sure  that  they 
should  have  just  left  it  this  way,  you  can  use 
Illustrator/Photoshop  for  that)  I'd  love  to  get  the 
Linux  version  of  the  dozens  of.
<p>(Brought to by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14595">post</a> and <a href="http://use.perl.org/comments.pl?sid=15431">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Dropping "crypto" from "fascist"]]></title>
    <link href="https://www.taskboy.com/2003-09-08-Dropping__crypto__from__fascist_.html"/>
    <published>2003-09-08T00:00:00Z</published>
    <updated>2003-09-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-08-Dropping__crypto__from__fascist_.html</id>
    <content type="html"><![CDATA[<blockquote>&laquo;"We know for a fact â¦ that terrorists studied Somalia and they studied instances where the United States was dealt a blow and tucked in and persuaded themselves they could, in fact, cause us to acquiesce in whatever it is they wanted us to do," [Rumsfeld] told reporters aboard his plane. <br>â¦</br>
Rumsfeld made clear that he was talking about both the international press, such as reports on the Arab al Jazeera television network, and critics in the United States.<br>
<br>â¦<br>
Earlier in his trip, Rumsfeld had criticized the U.S. news media for ignoring "the story of success and accomplishment" in Iraq and argued that the speed of improvement in the country "dwarfs any other experience I'm aware of," including Germany and Japan after World War II. He argued that the impact of continued attacks against U.S. forces had been overstated and likened them to isolated terrorist violence "in every country in the world."&raquo;
</blockquote>

<p><p>âWashington Post: <a href="http://www.washingtonpost.com/wp-dyn/articles/A42728-2003Sep8.html">Rumsfeld: Criticism at Home, Abroad Harms War on 
Terrorism</a>
<p>It's right shame that the Founding Fathers of the US, who had done such a 
marvelous job crafting the second Constitutional amendment guaranteeing the 
right of citizens to bear arms, included that unfortunately worded 
predecessor that allows <a href="http://www.michaelmoore.com/">disloyal 
muckrackers</a> to give tangible support to terrorists.  You're right, 
Mr. Rumsfeld, to condemn the media on the shameful way it keeps bringing up 
your failure to find credible evidence of WDM, to expeditiously restore 
"normalcy" to the liberated citizens of Iraq or even find Saddam 
Hussein and his good buddy Osama bin Laden.  What is the media for, 
if not to <a href="http://www.historylearningsite.co.uk/propaganda_in_nazi_germany.htm">enlighten our nation?</a> <br>
If only those naysayers would just support the troops and not 
question the <a href="http://www.guardian.co.uk/comment/story/0,3604,1036571,00.html">motives, goals or methods of this administration</a>, 
America could once again be a great nation, as it once was in the sunset of 
<a href="http://www.historychannel.com/">World War II</a>.
<p>Shame on you, Mr. Rumsfeld.
<p>Shame for equating the loyal and reasonable opposition
to the Bush administration's foreign and domestic policies to giving aiding 
terrorists.  Shame for stooping to the kind of sophistry that is normally 
the domain of autocratic regimes, like the one recently deposed in 
Iraq.  Shame for the stranglehold this administration has on the real news of 
9/11, the investigations that followed and the wars in the Middle East. 
<p>Your loyal critics have had to do a lot of handwaving and speculation 
about the details of the mischief that's been done under the rubric of 
"the War on Terror."  The cause of "national security" has been stretched so
thin that soon, I suspect, only Pentagon officials will be allowed into White 
House press conferences.  What the world is likely to learn when you cowboys 
in DC are shown the door in 2004 or, God help us, 2008 makes my blood run 
cold.
<p>Either burn the Constitution in great bonfire at an oceanic GOP rally or 
acknowledge the rightful place of loyal dissent in a healthy democracy. <br>
Trying to scare the population with unspecified warnings on the one hand and 
intimating veiled threats to your opposition on the other has all the panache 
of a schoolyard bully.  I will not see the Stars and Strips set down in 
history next to the Swastica as a fascist symbol.
<p>I am a loyal American, Mr. Rumsfeld.  My family has been in this country 
for generations.  My father served in the Navy during the Korean War and my 
brother served in the Air Force.  I've got friends currently serving in the 
military today.  I am tax payer and a voter.  I believe that American 
experiment has not failed (entirely).  I assert that the Constitution, despite
its age, brevity and occasional shortcomings, still provides the best of 
system of government that anyone has come up with so far.  I am as loyal a 
citizen of this representive democracy as you are likely to find. 
<p>And I oppose you.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14592">post</a> and <a href="http://use.perl.org/comments.pl?sid=15428">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Real madness trumps the simulated one]]></title>
    <link href="https://www.taskboy.com/2003-09-08-Real_madness_trumps_the_simulated_one.html"/>
    <published>2003-09-08T00:00:00Z</published>
    <updated>2003-09-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-08-Real_madness_trumps_the_simulated_one.html</id>
    <content type="html"><![CDATA[<p>With all my recent work on Markov chains, I can't even approach the level of lucid madness embodied in the <a href="http://www.kansascity.com/mld/kansascitystar/living/special_packages/starmagazine/6693768.htm">Toynbee Tiles</a>. <br>
Savor the rich psychotic disassociation proffered below:</p>

<blockquote>
&laquo;NBC attorneys journalists and security officials at Rockefeller Center fraudulently XXX the "Freedom of Information Act" all XXX orders NBC executives got the U.S. federal district attorney's office who got FBI to get Interpol to establish task force that located me in Dover England.&raquo;
</blockquote>

<p><p>Note that the Xs above replace damaged sections of the original 
"manifesto."  Perhaps the author of the Toynbee Tiles has decoded the 
equally incomprehensible <a href="http://www.voynich.nu/">Voynich manuscript</a>. <br>
Like bees to sweets, I'm irresistibly drawn to this kind of utter nonsense.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14581">post</a> and <a href="http://use.perl.org/comments.pl?sid=15416">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]    Talking  about  CMSs    &amp;.]]></title>
    <link href="https://www.taskboy.com/2003-09-08-[MarkovBlogger]____Talking__about__CMSs____&amp;amp;.html"/>
    <published>2003-09-08T00:00:00Z</published>
    <updated>2003-09-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-08-[MarkovBlogger]____Talking__about__CMSs____&amp;amp;.html</id>
    <content type="html"><![CDATA[<p>I'll  have  to  reboot.  "Aaaaaaaah".  I  refuse  to become    downright  ridiculous  by  the  performance  is 
light  years  better  now.  :)  Good  grief.</p>  <p>I'll 
have  you  seen  the  separation  of  content  and  paid 
them  way  too  -  set  it  up  to  two  different 
applications  to  the  beta  testers.  Needless  to  say 
anything  meaningful.  Furthermore,  because  of  yet 
another  ISP/Mobile  telecom  service  plan  every  month.)</p>

<p>  Question  1  (10pts):  <blockquote> What are
the names of the next two Matrix movies?
</blockquote>  Question  2  (10pts):  <blockquote>
What capability does &laquo;lsm&raquo;
provide? </blockquote>  Question  3  (5pts): 
<blockquote> What's the name of Morpheus' ship?
</blockquote>  As  always,  I  predict  a  number  of 
months  that  follow.  </p>

<blockquote>  <em>  Ami,
entends-tu le vol noir des corbeaux sur nos plaines?<br> 
Ami, entends-tu le cri sourd du pays qu'on encha&icirc;ne? 
</em> </blockquote>

<p>Dear  Log,  <blockquote>&laquo;The
joint offensive against the Lord's Resistance Army, a
brutal Ugandan rebel group largely composed of abducted
children and led by a self-declared spiritual medium who
claims supernatural powers, began two weeks ago.&raquo;
â<a href="http://www.guardian.co.uk/international/story/0,3604,
683539,00.html">"Defiant child rebels raise fears of
massacre"</a></blockquote>  Ya  know,  like  the  person 
who,  for  whatever  reason,  the  68K  version  of  this 
should  be  even  more  because  of  a  similar  number 
coming  out)  at  launch.  We'll  be  back  after  a  few 
tests  on  just.
<p>(Brought to by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14575">post</a> and <a href="http://use.perl.org/comments.pl?sid=15410">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]   Your butler or housemaid  In the original Klingon…]]></title>
    <link href="https://www.taskboy.com/2003-09-08-[MarkovBlogger]___Your_butler_or_housemaid__In_the_original_Klingon.html"/>
    <published>2003-09-08T00:00:00Z</published>
    <updated>2003-09-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-08-[MarkovBlogger]___Your_butler_or_housemaid__In_the_original_Klingon.html</id>
    <content type="html"><![CDATA[<p>This morning I installed Perl 5.8.0 and CPAN modules onbarista (the albook). That took forever. I also did an
impression of Damian's accent because, well, he can't be
the only one that couldn't get the submission form for the
OSCon CFP to work? I tried several times Friday and on the
week-end, and all I get back is some Netbeans page, which
definitely was not the case before. Netbeans appears
to be some sort of blockage. To get the VCD out I had to
reproduce the bug, and I had to port it, because we were
using the interface wrong. Ok, but then the Bioinformatics
stuff popped into my head and I talked about that for a few
hours in front of the selection of lubricants, all water
based of course. There scented lubs, fruity lubs, course
lubs and smooth lubs. Fine. Unfortunately just as I was
ready to move on, one of the UK Linux mags two months
ago</li> <li>Write an article on next-generation garage
door openers. Call <a href="http://use.perl.org/comments.pl?sid=2278&amp;cid=2740">Ec
o</a> for a quote. Something zippy, but not too 'up'"
<p>ignatz: "The garage door opener pulls
aside the covering of our humble abodes to reveal an Ali
Baba's den of disused machinery and forgotten woodworking
projects. Like a genie, it transports us to our unknown
past." <p>ignatz: "Thanks ummy!"  The End of
The World and Matt Wright <p>Been a while since I posted a
journal. I was going to post something early last week
about the hectic socialising with <a href="http://london.pm.org">london.pm</a> over the previous
weekend, but I forgot on Monday and I invite everyone in
the UK are used to people disparaging their beliefs. It's
the theists who are usually seen as as slightly strange. A
British christian wouldn't see anything shocking in my
journal entry as they see and hear similar opinions all the
time.</p> <p>It seems to me that I could spend a week or
even just a few days later<br>  Mash, and add water<br>
Heat the liquid for a while now, #1 is a necessary evil,
and #3 is because I want to work. <p> One particularly good
find recently was a collection from <a href="http://www.amazon.com/exec/obidos/tg/detail/-/B000002
AFV/qid=1030214972/sr=1-6/ref=sr_1_6/103-3837836-6790216?s=
music">The Dirty Dozen Brass Band</a>. This music is just
plain fun. There's something about a big,
bold, bouncing tuba line in their performances that never
fails to brighten my mood. <a href="http://www.amazon.com/exec/obidos/tg/detail/-/B00005J
H4X/qid=1030215257/sr=1-23/ref=sr_1_23/103-3837836-6790216?
s=music">Django Reinhardt</a> has a similar appeal, but
with clarinets instead of big brass. As I'm scouring
comp.unix.solaris for tips, tricks and code snippets, I'm
realizing a few things. It seems that the values reported
for memory and cpu usage are not (necessarily) accurate or
simply use a calculation you wouldn't expect. You can look
at "top -n 1" vs "swap -s" to see one example of what the
HOWTO's talk about at <a href="http://camelbones.sf.net">camelbones.sf.net</a>, it
uses actions, outlets, and menu items. My iBook has cramped
space, I wanted something even smaller than minimized
iTunes, so there it is. I'll share the source in a bit, I'm
having routing issues that make uploading a PITA. I love
the power of a good IDE/GUI builder combined with the CPAN.
And it's pronounced minItunes. :-)  Cornel West Overdrive
Dear Log,<blockquote>&laquo;And so every puff piece about
the film [Matrix Reloaded] has emphasized that its
creators, the siblings Andy and Larry Wachowski, do not
give interviews â as if behaving like Thomas Pynchon would
give their movie the gravitas of "Gravity's Rainbow." To
second the motion, along came <a href="http://orion.csuchico.edu/Archives/Volume36/Issue4/Ph
otos/Cornel2=n-c.html ">Cornel West,</a> the Princeton
professor who has a cameo in "The Matrix Reloaded" and is
not at all shy about meeting the press. He told Time (for
its cover story) that "the brothers are very into epic
poetry and philosophy, into Schopenhauer and William James"
and that "Larry Wachowski knows more about Hermann Hesse
than most German scholars." This does not explain why the
movie's multicultural orgy scene looks like a Club Med luau
run amok, but maybe the inspiration for that was Kahlil
Gibran.&raquo;<p>â<a href="http://www.nytimes.com/2003/05/25/arts/25RICH.html?pa
gewanted=1">"There's No Exit from the
Matrix"</a></blockquote>  domain shortcuts <p>I finally
remembered to put my sysadmin hat on and make these
changes:</p> <ul> <li><a href="http://cpan.japh.org">cpan.japh.org</a> goes to my
CPAN wiki*</li> <li><a href="http://piers.japh.org">piers.japh.org</a> uses some
redirect magic to go to Piers Cawley's blog because I can't
rememember the awful url</li> </ul> <p>* I am quite excited
by the <a href="http://use.perl.org/~ask/journal/13859">news from
ask</a> about module reviews and ratings, hopefully I'll be
able to snag this via RSS and we can have a meta-review
wiki.</p>  Movie Report - Die Another Day For the helluvit
I went and saw Die Another Day. It's pretty good -
probably the best of the Bond films actually. Cool intro,
lots of action, classic Bond plot. "Hit and Run" Berry and
the woman who played Ms. Frost are both hot, of course, but
I think ol' Mr. Brosnan should probably hang up his Bond
hat before the on-screen love scenes start to get gross.
 In other news, Mandrake 9 seems to hit kernel panic
about 50% of the time when I boot. I think it's the
firewire port on my video card it can't handle, but like I
said it only does this sometimes.  Text::Autoformat <p>I
just discovered Text::Autoformat for the first time. (I
think; I've looked at and forgotten far too many things.)
This is apparently an advanced form of artificial
intelligence!</p>   I just wonder if it will handle
my usual typing style. When I type plain text, I start all
paragraphs with two spaces. Most formatters in editors take
that to mean the next line should be indented two spaces. 
Haven't read that far in the docs yet, though. 
Score One For The Good Guys [Farscape] Check it out â Possible Farscape. 
Jingoism for Sale WARNING: VITRIOLIC, LEFTIST
DIATRIBE AHEAD. THOSE UNABLE OR UNWILLING TO HEAR
DISSENTING OPINIONS MAY EXPERIENCE NAUSEA, HEART
PALPITATIONS, SWEATING AND/OR INTERNAL BLEEDING. CONSULT
YOUR PHYSICIAN, IF UNSURE. There are lots of things
I don't like about America's new war on terrorism. You can
start that catalog of distasteful things with the actual
9/11 attack. That sucked. Then the media coverage. What was
more painful: watching the planes crash into the WTC towers
or listening to weeping talking heads? As bad as those
were, there is one thing that really sticks in my craw: the
narrowing of public debate on this issue. There are
several reasons why bombing the holy hell of Kabul might
prevent future attacks. There are several reasons why the
violent US response will promote more terrorism. Where is
the debate on this? Why is the media rallying around George
W.? It's not like he was suddenly elected by majority of
Americans. He's still a few eggs short of a dozen and his
speech writers still getting their material from Julia
Roberts films (or asprin commercials, I can't tell the
difference). Part of this narrowing of public discourse
manifests in looking the other way while petty merchants
sell American flag junk. We've all seen this crap by now:
pens sporting flags with "United We Stand", Asian
restaurant flyer's with a prominent Old Glory, news casters
with blue (and optionally red and white) ribbons, and
gas-chugging SUV's flying tatter flags. The list goes on.
Does this sudden display of patriotism (which now seems to
be fadding) seem superficial and devoid of meaning? Of
course it does. But, I don't really have a lot of spleen
for these media-controlled sheep that can't see through
this diversion. Instead, I direct my wrath towards that
lowest layer of social scum that <em>markets</em> chinsy
flag crap toward those confused and battered sheep.
Before I get too many of those heart-felt, but misplaced
"Buddy, my daddy died for the flag" emails, remember that
American freedom is the right to have opinions that wrankle
the majority. Let's not confuse freedom with a flag. One is
an ideal and the other is often made of a generic polymer.
The former is far more important than the later.
Whatever freedoms we enjoy in this country should be
excersized with a modicum of taste. If you jumped into the
flag business, or as I call it the petty jingoist trade,
after September 11, you're a craven scumbag. You are not
helping America heal; you are just another money-sucking
leech feeding at the fatted calf of the American wallet.
Symbolism is not action. We most certainly need real
action now and a long-term plan for the future. Oh, a
flag-etiquette tip for those new flag owners: take your
flags down at sunset or during foul weather. Check out <a href="http://www.ushistory.org/betsy/flagetiq.html">this
site</a> for more information.  Opinions wanted -
Publishing other people's work? Short Version:
Some who wrote a pretty good module is too scared to
publish. Should I publish for him?  Long
Version: A few entries ago, I mentioned that I was
working on a C extension for Ruby for the 'df' command. I
posted an initial bit of code out in comp.lang.ruby, and a
guy named Mike Hall jumped in and eventually came up with a
working solution fairly quickly (and it was a different
approach than what I had taken, so it was a different
design as well).  We exchanged a few emails, I was a
guinea pig for Solaris testing, and he did the Linux
testing. Soon, he had version .30, a version I definitely
considered ready for release (it needs work to support BSD
and Windows, but that can be added later). However, here's
where the dilemma began.  I asked him to publish it to
the Ruby
Application Archive, to which he responded something
like, "oohâ¦scary". I took that to mean he was too nervous
about publishing his work. It's still not out on the
archive.  I can understand a bit of apprehension about
putting your work out there for all to see. I mean, most of
us probably felt that in the moments before we uploaded our
first module to CPAN. You want the module to be <em>perfect</em>,
and you dread that some idiot is gonna email you with a
line like, "What is this piece of junk you dared to post to
the Archive? Who do you think you are? Come back when
you've reached Guru status". Of course, that doesn't
happen, and people are generally very polite about pointing
out bugs or asking for enhancements.  However, I have
already sent Mike reasons for uploading his module to the
archive - it's useful, others (besides myself) have
requested it in the newsgroup and it works just fine. It's
a handy sys-admin toy. Not everyone is going to come out
and ask for it in the newsgroup, but if they see it's
available, there's a good chance they'll download it. The
alternative is to troll around comp.lang.ruby and send an
email every time someone <em>does</em> ask for it. And what
happens if, God forbid, something should happen to you
Mike? That work, and any work he may be doing on it now,
will be lost.  So, here is my dilemma. If I can't
convince him to upload it to the archive, should I upload
it to the archive myself? Obviously, he would be listed as
the author, so it's not a question of taking credit (though
I'd like to think I was a contributor at least). I'm
inclined to say no and keep trying to convince him for a
while, but I thought I'd see what others thought.  Any
ideas on how I can calm his fears and get him to publish? I
haven't heard back from him after I sent an email
encouraging him to publish. What happens if I never
convince him?  Opinions welcome.  UPDATE
2-May-2002 - Looks like he posted it today. Hooray! 
Friday Trivia #9 Yep - early again. I'm gone tomorrow and
Friday for the 4th and I won't have access to a computer
until Monday. This one is probably too easy, since I forgot
to think one up until today. Anyway, on to the questionâ¦
 For 50 Trivia points, from what television show does
the following quote come?:  He's mad! He's madder
than Mad Jack McMad, the winner of last year's Mr. Madman
competition.  For 25 bonus points, name the episode
as well.  No Google. Answer posted Monday.  UPDATE
Wednesday, 3:49pm CST - We have a winner! pdcawley wins
50 Trivia Points. Bonus question still open.  UPDATE
Sunday, 3:17pm CST - Vek wins the bonus points!  Mac
vs. Windows I just gotta say that Matthias Neeracher is way
cool. GUSI is
cool. MacPerl supports a lot of POSIX calls very well
without much or any additional code, which is just great.
Win32 seems to have worse POSIX support underneath, despite
being a more POSIX-ish OS. GUSI is the difference: it is a
very good POSIX library for Mac OS. MacPerl, and the perl
test suite, are a great GUSI test suite. We've found a lot
of little GUSI bugs as MacPerl has moved forward. Each
project makes the other better. :-)  Perl 6 by Damian,
again I'm really starting to like Perl 6. And I know that
it's being done right because the audience consitantly
asked questions that were covered in one of the next two
slides. That's amazingly wonderful. Damian might not have
thought so, though, as he seemed to be nothing more than
the slide changer in the presentation. ;-)  It's
Cyrillicious! Dear Log, <p><a href="http://members.spinn.net/~sburke/a3shots/a3ru.gif">An
d</a> <a href="http://members.spinn.net/~sburke/a3shots/a3ru_help.gi
f">Russian!</a> <a href="http://members.spinn.net/~sburke/a3shots/a3uk.gif">An
d</a> <a href="http://members.spinn.net/~sburke/a3shots/a3uk_help.gi
f">Ukrainian!</a>  subscribe perl5-porters I just
subscribed to the Perl5 Porters list. I might actually have
some source code to contribute to the next release of Perl!
 The whole issue came up when I realized, much to my
dismay, that Ruby did not support kill on Win32. Because I
need it for a project I'm working on, I decided to write my
own. For that I started by scouring the various Win32
programming newsgroups and looking at the Perl source. 
I quickly realized that all Perl does is call
TerminateProcess(), which is analogous to a "kill -9" in
Unix. It'll work, but it's not nice. I downloaded bleadperl
and noticed that someone did add this bit of code: 
if (PostThreadMessage(IsWin95() ? pid :
-pid,WM_USER,sig,0)) {  /* It might be us â¦ */ 
PERL_ASYNC_CHECK();  return 0; }  The problem with
this code is that it uses the PID as a thread ID. AFAICT
this code will never work, not only based on what I've read
(I don't think a process' PID has anything to do with a
thread ID), but some pure-C experimentation. At least, it
never works for me. I tried a few variations to make sure.
 So, at some point this week I'm going to submit my own
approach to using kill on Win32 systems. And by "my own", I
mean one I shamelessly plagiarized off the web, but which
seems to work pretty well based on both experimentation and
what I've read off of msdn.com.  Apache::MP3 Dear Log,
<p>Whee! I mailed off to Lincoln Stein the newly
internationalized Apache::MP3, with a few major dozen
languages localized for it. I was satisfied that I'd made
all the necessary changes to the core modules to handle all
languages; the right-to-left languages certainly <a href="http://members.spinn.net/~sburke/a3shots/a3yi-hebr.gi
f">took some doing</a>, but it's pretty much working fine
now. <p>The larger Apache::MP3 multilingual localization
project isn't "done" tho â I'm still chasing a more
languages; I just don't think that the core modules will
have to be modified to accomodate whatever new ones I get
done in the future.<p>Now to see what subclasses breakâ¦ 
Predictions <ul> <li>Before March 31st, 2002, the East
Coast of the US will be innundated with 2+ feet of snow,
following 7-10 days of subfreezing temperatures. It will
melt within 5 days, once the temperature rises to overnight
lows of 40F (+5C).</li> <li>The index of leading economic
indicators will show that a slight upward tick on christmas
spending towards the end of the month, linked to reduced
cost for home heating on the east coast.</li> <li>Another
upward tick on the index of leading economic indicators
will be attributed to the increased amount of time spent on
construction projects that can continue to lay concrete and
employ full staffs, since the temperatures unseasonably
mild.</li> <li>No correlation will be found between tech
book sales and the index of leading economic
indicators.</li> <li>Before the end of the year, Tom Ridge
will put the country on Double Secret Super Ultra High
Alert, allegedly due to nonspecific, but credible
threats.</li> <li>20/20, Dateline, 60 Minutes or Good
Morning America will shortly be broadcasting a segment
touring one of the caves in Afganistan the President so
affectionately calls a "hidey-hole".</li> <li>Slashdot will
confirm the first loss of life attributed to the really
lousy writing on Star Trek: Enterprise.</li> </ul> 
Interesting Degree Combination <p>Imagine all the things
you could do if you had a double major in Music and
Electrical Engineering. </p><p>Posted from <a href="http://caseywest.com">caseywest.com</a>, comment <a href="http://caseywest.com/journal/archives/000240.html">he
re</a>.</p>  From Korea, with Love <a href="http://www.guardian.co.uk/Archive/Article/0,4273,4313
450,00.html">No wonder I'm getting so much damned spam in
Korean!:</a> "In the period of three years, this country
has transformed itself into the world's most wired nation,
where more than half of the population surf in a wideband
wonderland." <p>Simple solution: set up a filter to reject
all email where any header line contains any of the</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14570">post</a> and <a href="http://use.perl.org/comments.pl?sid=15405">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger]  German Perl Workshop  UTF-8 on search.cpan.org.]]></title>
    <link href="https://www.taskboy.com/2003-09-07-[MarkovBlogger]__German_Perl_Workshop__UTF-8_on_search.html"/>
    <published>2003-09-07T00:00:00Z</published>
    <updated>2003-09-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-07-[MarkovBlogger]__German_Perl_Workshop__UTF-8_on_search.html</id>
    <content type="html"><![CDATA[<p><p>I've just got a couple of pointers, I tried again. Ifutzed around with slice sizes for a short time before I
finally got it the way I wanted, and ultimately installed
it. Unfortunately, when I selected FreeBSD via the BeOS
bootloader, it just hung.  So I tried <em>again</em>, except
this time it froze in the middle the software installation
on a package called cvsupit, or something like that.
 I'll try again tonight. Maybe it's time for someone
else to herd the cats. I told the group a couple of
pointers, I tried again. I futzed around with slice sizes
for a short time before I finally got it the way I wanted,
and ultimately installed it. Unfortunately, when I selected
FreeBSD via the BeOS bootloader, it just hung.  So I
tried <em>again</em>, except this time it froze in the middle of
some kind of maintenance. It was blistering hot and the 2
year old boy did not react well to the environment.
Everyone was tired and frazzled, and after dinner they went
home to recover. I BOFfed around a little, but mostly
spoke to people about the projects I'd outlined in the Perl
Apprenticeship talk, and people.
<p>(Brought to by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14554">post</a> and <a href="http://use.perl.org/comments.pl?sid=15387">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[lightning photos]]></title>
    <link href="https://www.taskboy.com/2003-09-07-lightning_photos.html"/>
    <published>2003-09-07T00:00:00Z</published>
    <updated>2003-09-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-07-lightning_photos.html</id>
    <content type="html"><![CDATA[<p>From <a href="http://www.fark.com/">Fark</a>: <a href="http://www.egriz.com/GrizBoard/viewtopic.php?t=1525">lightning starts fires</a>.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14558">post</a> and <a href="http://use.perl.org/comments.pl?sid=15391">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Markov Blogger code]]></title>
    <link href="https://www.taskboy.com/2003-09-06-Markov_Blogger_code.html"/>
    <published>2003-09-06T00:00:00Z</published>
    <updated>2003-09-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-06-Markov_Blogger_code.html</id>
    <content type="html"><![CDATA[<p><p>Today's experiement with Markov chains has been really entertaining. I have added a few heuristics to the basic two word markov chain described
in The Practice of Programming to handle the vageries of blog entries
a bit better.  Also, I made walking the chain more random, so that the 
generated entries are different every time.  The markov program presented in 
the K&amp;P book always begins with the first word found in the data set. <br>
This makes for boring blog entries. 
<p>The first program presented snarfs blog entries of particular userID from 
use.perl using the SOAP interface.  It creates simple data files that
can be easily consumed by the markov chain program. <br>
<p>get_blog
</p>

<h1 id="usrbinperl">!/usr/bin/perl â</h1>

<p>#</p>

<h1 id="getblogentriesfromuse.perl.orgofgivenuid">Get blog entries from use.perl.org of given UID</h1>

<p>#</p>

<p>use strict;
use SOAP::Lite;
use Getopt::Std;
use HTTP::Cookies;
use Digest::MD5 'md5_hex';
use Data::Dumper;
use File::Basename;</p>

<p>use constant URI     => "http://use.perl.org/Slash/Journal/SOAP";
use constant PROXY   => "http://use.perl.org/journal.pl";
use constant UID     => 777;
use constant PW      => "s3cr3t";
use constant DOWNLOAD_DIR => './entries';</p>

<p>my $opts = {};
getopts('?hP:U:d:l:u:v', $opts);</p>

<p>if ($opts->{'?'} || $opts->{'h'}) {
  print usage();
  exit;
}</p>

<p>unless ($opts->{'u'}) {
  die "ERROR Missing -u \n", usage(), "\n";
}</p>

<h1 id="everythingisreadyforthesoapcallnow">Everything is ready for the SOAP call now</h1>

<p>my $cookie_jar = HTTP::Cookies->new;
$cookie_jar->set_cookie(0, 
            user => bakeUserCookie(($opts->{'U'} || UID),
                           ($opts->{'P'} || PW),
                          ),
            "/",
            "use.perl.org");</p>

<p>my $c = SOAP::Lite->uri(URI)->
                    proxy(PROXY, cookie_jar => $cookie_jar);</p>

<p>print "listing entries for UID $opts->{u}\n" if $opts->{v};
my $ret = $c->get_entries($opts->{'u'}, $opts->{'l'});
exit if had_transport_error($ret);
my $rows = $ret->result;</p>

<p>my $tdir = $opts->{d} || DOWNLOAD_DIR;
unless (-d $tdir) {
  print "making download directory ($tdir)\n" if $opts->{v};
  unless (mkdir($tdir, 0700)) {
    die "Can't make target director '$tdir': $!\n";
  }
}</p>

<h1 id="cutnpastecodenever">cut'n'paste code? never</h1>

<p>$tdir .= "/$opts->{u}";
unless (-d $tdir) {
  print "making download directory ($tdir)\n" if $opts->{v};
  unless (mkdir($tdir, 0700)) {
    die "Can't make target director '$tdir': $!\n";
  }
}</p>

<p>print "fetching " . @{$rows} . " entries\n" if $opts->{v};
for my $r (@{$rows}) {
  if (-e "$tdir/$r->{id}") {
    print "Already fetched $r->{id}\n" if $opts->{v};
    next;
  }</p>

<p>print "fetching entry: $r->{id}\n" if $opts->{v};
  my $ret = $c->get_entry($r->{id});
  if (had_transport_error($ret)) {
    warn ("**couldn't fetch entry '$r->{id}'\n") if $opts->{v};
    next;
  }</p>

<p>my $rec = $ret->result;
  if (open my $out, ">$tdir/$r->{id}") {
    print $out "subject: $rec->{subject}\n";
    print $out "$rec->{body}\n";
    close $out;
  } else {
    warn("**couldn't create file '$tdir/$r->{id}'.  Skipping.\n") 
      if $opts->{v};
    next;
  }
}</p>

<p>print "done\n";</p>

<h1>ââââââ</h1>

<h1 id="subs">subs</h1>

<h1>ââââââ</h1>

<p>sub usage {
  my $base = basename($0);
  return &lt;

<p>USAGE:</p>

<p>$base -u 22  # fetch all entries for UID 22
  $base -d ./raw -u 22 -l 5 # fetch last 5 entries, put them in 'raw'</p>

<p>OPTIONS:</p>

<p>?        this screen
  h        this screen
  P  use.perl password (for AUTH)
  U  use.perl UID (for AUTH)
  d  target directory to hold fetched entries
  l   limit (-1 for all entries)
  u   target UID
  v        verbose messages
EOT
}</p>

<p>sub had_transport_error {
  my ($ret) = @_;</p>

<p>if ($ret->fault) {
    warn "Oops: ", $ret->faultstring, "\n";
    return 1;
  }</p>

<p>return;
}</p>

<h1 id="thankspudge">Thanks Pudge</h1>

<p>sub bakeUserCookie {
    my($uid, $passwd) = @<em>;
    my $cookie = $uid . '::' . md5</em>hex($passwd);
    $cookie =~ s/(.)/sprintf("%%%02x", ord($1))/ge;
    $cookie =~ s/%/%25/g;
    return $cookie;
}</p>

<p></p>

<p>The really interesting work is done by the next program, which consumes
the data and generates a output suitable for posting back to use.perl via 
the perl scripts I described in <a href="http://use.perl.org/article.pl?sid=02/10/25/007222">my article</a>.  Notice that I keep hyperlinks together.  Also 
blockquotes.  Some may call this cheating, but I think the effect is more 
pleasant.  I experimented with three work chains, but this wasn't random 
enough for me.  Perhaps I need a larger data set.  A future version of this 
program could use both chains and somehow blend them together for the output.
It would be great to see popular three word combinations appear in the 
generated text, but perhaps I already get that with two word chains. <br>
Also note that this script marks my first use of the <code>qr</code> 
operator.  I guess compiled regexes aren't so scary after all. </p>

<p><p>markov.pl
</p>

<h1 id="usrbinperl">!/usr/bin/perl â</h1>

<h1> </h1>

<h1 id="rippedofffrom_practiceofprogramming_kernighanpikep.80">ripped off from <em>Practice of Programming</em>, Kernighan &amp; Pike, p. 80</h1>

<h1 id="tweakedaboutformynefariouspurposes.">tweaked about for my nefarious purposes.</h1>

<p>use strict;
use Text::Wrap;</p>

<p>use constant CHAIN_SIZE => 3; # or 3
use constant NONWORD => "\n";
use constant DEBUG => $ENV{MARKOV_DEBUG} || 0;</p>

<p>my ($subject, $body) = ({}, {});
my ($s_in, $b_in) = ({},{});</p>

<h1 id="expanddirectoriesasneeded">expand directories as needed</h1>

<p>my @tmp;
for my $file (@ARGV) {
  if (-d $file) {
    push @tmp, glob("$file/*");
    warn ("expanding directory '$file'\n") if DEBUG;
  } else {
    push @tmp,$file;
  }
}
@ARGV=();</p>

<p>warn("Randomizing the order of the input files\n") if DEBUG;</p>

<h1 id="mixuptheorderofthefilesabit">mix up the order of the files a bit</h1>

<p>do {
  push(@ARGV, (splice @tmp, rand(@tmp), 1));
  # warn("\@ARGV size: " . @ARGV . " \@tmp size: " . @tmp . "\n") if DEBUG;
} while (@tmp); </p>

<p>warn("Reading input files\n") if DEBUG;
my (@last_subject_keys, @last_body_keys);
for my $file (@ARGV) {</p>

<p>while (&lt;>) {
    if (/^subject:/) {
      s/^subject://;
      fill_table(table   => $subject, 
                 state   => $s_in, 
                 line    => $<em>, 
                 'keys'  => \@last</em>subject_keys
        );
    } else {
      fill_table(table   => $body, 
                 state   => $s_in, 
                 line    => $<em>, 
                 'keys'  => \@last</em>body_keys,
        );
    }
  }
}
end_table($subject, \@last_subject_keys);
end_table($body, \@last_body_keys);</p>

<p>warn("body table: " . (keys %{$body}) . "\n") if DEBUG;</p>

<h1 id="generatesubject">generate subject</h1>

<p>my $subj;
do {
  my $max  = rand(12) + 1;
  $subj = make_chain($subject, $max)
} while (length($subj) > 64);</p>

<p>print "subject: [MarkovBlogger] $subj\n";</p>

<p>my $max  = rand(250) + 120;
print "body: ", make_chain($body, $max), "\n";</p>

<h1>âââââââââââ</h1>

<h1 id="subs">subs</h1>

<h1>âââââââââââ</h1>

<p>sub fill_table {
  my (%args) = @_;
  my ($tbl, $in, $line, $keys) = @args{qw(table state line keys)};</p>

<p>my ($w1,$w2,$w3) = @{$keys};
  unless (defined $w1) {
    $w1 = $w2 = $w3 = NONWORD;
  }</p>

<p>my $ecode = 'ecode';
  my %delims = ( href       => [ qr!<a>!i ],
                 ecode      => [ qr!!i, qr!!i ],
                 ul         => [ qr!<ul>!i, qr!</ul>!i ],
                 blockquote => [ qr!<blockquote>!i, qr!</blockquote>!i ],
           );</p>

<p>WORD:
  for my $word (split /\s+/, $line) {</p>

<p><code># am I in a special block?
# can't start a new special until I find the end of previous one
for my $el (qw(href ecode ul blockquote)) {
  if ($in-&gt;{$el}) {
if ($word =~ /$delims{$el}[0]/) { # end?
  $word = "$in-&gt;{$el} $word";
  $in-&gt;{$el} = "";
} else {
  $in-&gt;{$el} .= " $word";
  next WORD;
}
  } elsif ($word =~ /$delims{$el}[0]/) { # start?
$in-&gt;{$el} = $word;
next WORD;
  } 
}

if (CHAIN_SIZE &gt; 2) {
  push @{$tbl-&gt;{$w1}-&gt;{$w2}-&gt;{$w3}}, $word;
  ($w1, $w2, $w3) = ($w2, $w3, $word); # pull the chain along
} else {
  push @{$tbl-&gt;{$w1}-&gt;{$w2}}, $word;
  ($w1, $w2) = ($w2, $word); # pull the chain along
}
</code></p>

<p>}</p>

<p># assign these keys back into the passed in ref
  return @{$keys} = ($w1, $w2, $w3);
}</p>

<p>sub end_table {
  my ($tbl) = shift(@<em>);
  my ($w1, $w2, $w3) = @{shift(@</em>)};</p>

<p>if (CHAIN_SIZE > 2) {
    push @{$tbl->{$w1}->{$w2}->{$w3}}, NONWORD; 
  } else {
    push @{$tbl->{$w1}->{$w2}}, NONWORD;
  }</p>

<p>}</p>

<p>sub make_chain {
  my ($tbl, $size) = @_;</p>

<p>my $text = "";</p>

<p># let's start in a rand point on the chain
  my @w1 = ((keys %{$tbl}), NONWORD);
  my $w1 = $w1[rand(@w1)];</p>

<p>my @w2 = ((keys %{$tbl->{$w1}}), NONWORD);
  my $w2 = $w2[rand(@w2)];</p>

<p>my @w3 = (NONWORD);
  if (CHAIN_SIZE > 2) {
    @w3 = ((keys %{$tbl->{$w1}->{$w2}}), NONWORD);
  }
  my $w3 = $w3[rand(@w3)];</p>

<p>for my $i (0..$size) {
    my $suf;
    if (CHAIN_SIZE > 2) {
      $suf = $tbl->{$w1}->{$w2}->{$w3};
    } else {
      $suf = $tbl->{$w1}->{$w2};
    }</p>

<p><code>warn("word1: '$w1'\n\tword2: '$w2'\n") if DEBUG;

unless (ref $suf) {
  $w1 = $w1[rand(@w1)];
  $w2 = $w2[rand(@w2)];
  $w3 = $w3[rand(@w3)];
  redo;
}

my $r = int(rand @{$suf});
my $t = $suf-&gt;[$r];

if ($t eq NONWORD) {
  warn ("detected the end of the chain (" 
         . (keys %{$tbl})
     .  ") at $i.  reseting keys\n") if DEBUG;
  $w1 = $w1[rand(@w1)];
  $w2 = $w2[rand(@w2)];
  $w3 = $w3[rand(@w3)];
  next;
} 

# there are "unbalanced" braces (close nuff for me)
if ($t !~ m!\([^\)]*\)!) {  
  $t  =~ s!^\(!!;
  $t =~ s!\)$!!;
  $text .= "$t ";
}

if (CHAIN_SIZE &gt; 2) {
  ($w1, $w2, $w3) = ($w2, $w3, $t);
} else {
  ($w1, $w2) = ($w2, $t);
}
</code></p>

<p>}</p>

<p># do some goofy clean up
  $text = ucfirst $text;
  chop $text; # final space</p>

<p># remove stray punctuation
  $text =~ s/[,:]$//;
  if (substr($text, -1, 1) ne '.') {
    $text .= ".";
  }</p>

<p>$Text::Wrap::columns = 60;
  return wrap("", "", $text);
}</p>

<p></p>

<p><p>Let's see how annoying this gets.  I have a feeling after a week, I'll 
make this quietly go away.  Or expand it into a something truly monstrous.
I made several tweaks to the code just trying to post this blog entry.</p>

<p><p>UPDATE: Thanks to the wonders of Soviet-style revisionism, I have 
updated this code a bit to remove the uses variables <code>$w1,$w2,$w3</code>
from the main line.  Also, I randomize the input file order to make the output
less likely to come from the some person's blog.  Perhaps I'll bundle this up
for CPAN or taskboy.com or something.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14536">post</a> and <a href="http://use.perl.org/comments.pl?sid=15367">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger] Me, with a keyboard under my fingers, I am.]]></title>
    <link href="https://www.taskboy.com/2003-09-06-[MarkovBlogger]_Me,_with_a_keyboard_under_my_fingers,_I_am.html"/>
    <published>2003-09-06T00:00:00Z</published>
    <updated>2003-09-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-06-[MarkovBlogger]_Me,_with_a_keyboard_under_my_fingers,_I_am.html</id>
    <content type="html"><![CDATA[Nikon Coolpix 995 from 10: 10 p.m. to 11:12 p.m. Exposuresat f/5.6 from 1/2000 sec. to 8 sec. It got a little fuzzy<br>
at the end, as the clouds began to roll back in. I do not<br>
like dishonesty and misrepresentation. In my work with the<br>
conferences, I've kept marketing pitches out and technical<br>
quality up. Did anyone attend this year's ApacheCon and<br>
enjoy the "keynotes" that the big sponsors put on? That's<br>
what happens when people sell out, and I hate being in<br>
front of the help. Dear Log, <p>New motto: never attribute<br>
to malice what can be attributed to a bad accounting<br>
system. Dear Log, <p>Today is <a>
href="http://www.alanwatts.com/mp3_sel.html">my first<br>
sighting of someone selling mp3 CDs.</a>  Time Warp Dear<br>
Log, <p><a>
href="http://www.guardian.co.uk/g2/story/0,3604,723324,00.h<br>
tml">Western Europe as time-warp?</a> Sure, why not.<br>
Personally, I have the barest elements of this script<br>
written, but my mind is remarkably happy that I've finally<br>
managed to get the right amount to wipe your arse properly.<br>
All said and done, we have a kewl new ch1x0r and I'm a<br>
happy man. :- pretty distorted view of O'Reilly. Those<br>
of you who don't live in the Denver area? Otherwise, I'm<br>
going in a bit blind. I'll just blame all of you if I.<br>
<p>(Brought to by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)<br>
<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14535">post</a> and <a href="http://use.perl.org/comments.pl?sid=15366">comments</a>.]</p><br>


]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[[MarkovBlogger] You are so cool. There is a channel.]]></title>
    <link href="https://www.taskboy.com/2003-09-06-[MarkovBlogger]_You_are_so_cool.html"/>
    <published>2003-09-06T00:00:00Z</published>
    <updated>2003-09-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-06-[MarkovBlogger]_You_are_so_cool.html</id>
    <content type="html"><![CDATA[<p>You are so cool. There is a series of variables, tied tothe order of data in a list, and assigning one variable to
each data element in that list. Except now, we've done it
in a single assignment, and greatly clarified the intent.
The data elements are coming into the program in one group,
and we are treating them as a single group. Our program is
now closer to matching our view of the world. <p> But
that's not the only improvement we can make. Remember that
@list variable? Why did it exist in the first
place, doubly so because it's still in use. Using
salted passwords was the norm in the 1980s, back
before Win3.1 was even conceived. <p> &nbsp; <p> [1] At one
point, the interminably long "product activation keys" used
by all Microsoft products was outed: it was about 2 hours
work, with about another hour to fix up all the tests. So
everyone - make sure you aren't logged in on any other
terminals.</p> <p>Sigh. Maybe I'll go do a google search
and see who else has had this.
<p>(Brought to by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14540">post</a> and <a href="http://use.perl.org/comments.pl?sid=15371">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Being Camille Paglia]]></title>
    <link href="https://www.taskboy.com/2003-09-05-Being_Camille_Paglia.html"/>
    <published>2003-09-05T00:00:00Z</published>
    <updated>2003-09-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-05-Being_Camille_Paglia.html</id>
    <content type="html"><![CDATA[<p><p>TorgoX</a> writes <a href="http://use.perl.org/journal.pl?op=top">a lot</a> of stuff in his blog
and some of it I can even understand.  One day, TorgoX wrote about a 
"firehose of bullshit" named 
Camille Paglia</a>. <br>
Here's a pullquote:</p>

<blockquote>
&laquo;Her trick is just to talk very very fast all the time. That's it. But as a sort of aleatoric process (monkeys at typewriters and all that), she will occasionally say something nearly coherent that you haven't heard elsewhere. But â and try this â wait around a while and she'll say anything, including four novel ways of opposing or undermining the one interesting thing you heard from her.&raquo;
</blockquote>

<p><p>That got me thinking:  Why can't I use that same technique to 
automate creating new blog entries and become a media darling?  After all, 
I've already said a metric ton of unqualified effulvia on my blog. <br>
Pulling together markov chains and SOAP, I've mirrored the blogs of several 
Perl notables and will be recycling their considered words as my daily 
blog entries. <br>
<p>I call this marvel of computer trick-nology: MarkovBlogger.  Accept no 
imitations!
<p>When I can be pried away from my 
many <a href="http://www.farthammer.com/">important activities</a>, I'll 
still be blogging in the flesh.  But think of MarkovBlogger entries as 
reruns of my blog, but better!
<p>Let this serve as the shot across the bow, Camille.  I'm gunnin' for ya.</p>

<p><p>update: typos are us.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14527">post</a> and <a href="http://use.perl.org/comments.pl?sid=15358">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Matrix Rethought]]></title>
    <link href="https://www.taskboy.com/2003-09-05-Matrix_Rethought.html"/>
    <published>2003-09-05T00:00:00Z</published>
    <updated>2003-09-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-05-Matrix_Rethought.html</id>
    <content type="html"><![CDATA[<p>The late Filthy Critic didn't think highly of <a href="http://www.bigempire.com/filthy/thematrix.html">The Matrix</a>.  The movie 
was fun to watch, but the plot was painfully familiar.  What bugs me about Matrix is 
that the dystopia that ensues doesn't appear to be tightly coupled to the decisions 
of mankind, which at least the Terminator series weakly attempts to do.  Perhaps the 
third Matrix installation will shed some light on some "invisible hand" that set the 
machines in motion. 
<p>It would be great if that movie fingered Larry Ellison as the culprit. <br>
Or Darl McBride.  Since <a href="http://www.imdb.com/title/tt0158983/">Bigger, 
Longer and Uncut</a>, Bill Gates has become passe as a villian.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14510">post</a> and <a href="http://use.perl.org/comments.pl?sid=15341">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[minute… I didn't grow up a motor]]></title>
    <link href="https://www.taskboy.com/2003-09-05-minute.html"/>
    <published>2003-09-05T00:00:00Z</published>
    <updated>2003-09-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-05-minute.html</id>
    <content type="html"><![CDATA[<p>A </code> <p>Break: in progress <p>[UPDATE]:Check out <a href="http://ddi.digital.net/~solsbury/scratch.htm">this
page</a> about tPete's second album. Very interesting.
<p>Despite this annoying ad campaign, I'm treating myself
to a new computer. It's a Dell Dimension 4400 (P4 1.7Ghz;
512M; 40Gb). It'll come with Windows XP, but why will
people buy it? Sure, new PC owners won't have a choice, but
maybe they'll buy the cheap Xbox and get all the
functionality they need. Where will that leave Windows, the
jewel of the Microsoft's product line? In a <a href="http://www.mos.org/tcm/tcm.html">museum</a>. But
how does this relate to Mundie's comments? Linux is already
"eating Microsoft's lunch" in the server market. Microsoft
needs consumers to believe that Open Source software is
yours to keep. As Microsoft uses web services to finely
control application usage to only licensed users, Open
Source software's consumer value will begin to become
wildly attractive to IT departments strapped for cash. The
Big Lie Microsoft needs you to believe is that every
software upgrade they sell will make your life better. In
fact, the only ones confused are the turists. Also of note
was the security around the Capital building. I knew that I
wasn't going tto  follow a strict regiment for 10 months
without some  deviations. Like I said, I'm lazy and not
into pain. <p>My exercise started very modestly. I think I
can learn flash well enough to do this. Perhaps SVG also
has tight integration between audio 
<p>(Brought to by jjohn's MarkovBlogger (&trade;): If it makes sense, it's not MarkovBlogger (&trade;).)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14526">post</a> and <a href="http://use.perl.org/comments.pl?sid=15357">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[when getopts params attack!]]></title>
    <link href="https://www.taskboy.com/2003-09-05-when_getopts_params_attack_.html"/>
    <published>2003-09-05T00:00:00Z</published>
    <updated>2003-09-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-05-when_getopts_params_attack_.html</id>
    <content type="html"><![CDATA[<p><p>File this one under mind-working-against-you dept.</p>

<p><p>I'm working a program that accepts various command line arguments.  I normally like order the commands alphabetically (I don't know why).  I group the ubiquitous help options ('?' and 'h') together at the front followed by the program-specific options.  For this program, the options look like this:</p>

<p>
my $opts = {};
getopts('?hP:U:d:l:u:v', $opts);
</p>

<p><p>I hear it all the time: Joe, why do you make so many gay jokes?  Is it because you're afraid you're gay?  That's when I say: listen VOICE IN MY HEAD, you mind your own bidniz. <br>
<p>(props to Dave Attell.)<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14515">post</a> and <a href="http://use.perl.org/comments.pl?sid=15346">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[bringing a knife to a gun fight]]></title>
    <link href="https://www.taskboy.com/2003-09-04-bringing_a_knife_to_a_gun_fight.html"/>
    <published>2003-09-04T00:00:00Z</published>
    <updated>2003-09-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-04-bringing_a_knife_to_a_gun_fight.html</id>
    <content type="html"><![CDATA[And now for a word about completely different UNIX: <p><blockquote><br>
&laquo;Born as boys, they have strong female feelings - some become cross-dressers, others opt for often crude surgery.<br><br>
â¦<br><br>
"I am quite comfortable doing sex work. I am not looking for another profession," says Famila as she oversees arrangements for the big do, called the habba.&raquo;<br>
</blockquote><br>
<p>âBBC: <a href="http://news.bbc.co.uk/2/hi/south_asia/3080116.stm">India's enunchs demand rights</a><br>
<p>It seems to me that these hijra may be lacking certain, er, qualifications<br>
for sex work.  Perhaps I'm not using my imagination enough.  It is with confidence<br>
that I turn this item over for general discussion, knowing that my Gentle Readers<br>
will elucidate and titillate at the same time (perhaps with only one hand typing to<br>
boot).<br>
<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14498">post</a> and <a href="http://use.perl.org/comments.pl?sid=15328">comments</a>.]</p><br>


]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[what's my IP address?]]></title>
    <link href="https://www.taskboy.com/2003-09-03-what_s_my_IP_address_.html"/>
    <published>2003-09-03T00:00:00Z</published>
    <updated>2003-09-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-03-what_s_my_IP_address_.html</id>
    <content type="html"><![CDATA[<p><a href="http://www.myipaddress.com/">Find out here</a>.  A simple, yet incredibly useful web page.  Perhaps a companion site called "what's my browser?" 
and "where are my pants?" are soon to follow. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14459">post</a> and <a href="http://use.perl.org/comments.pl?sid=15286">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[A trend no one predicted]]></title>
    <link href="https://www.taskboy.com/2003-09-02-A_trend_no_one_predicted.html"/>
    <published>2003-09-02T00:00:00Z</published>
    <updated>2003-09-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-02-A_trend_no_one_predicted.html</id>
    <content type="html"><![CDATA[<p><p>Hair transplants are fairly routine these days.  Bald men in America want to get in on that ready-for-action disco look.  In South Korea, however, 
it's the women who are getting the transplants â <a href="http://www.news24.com/News24/Backpage/Chuckles/0,,2-1343-1349_1410568,00.html">from their heads to their genitals</a>!  Livin' la vida 1976, Baby!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14451">post</a> and <a href="http://use.perl.org/comments.pl?sid=15278">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[cthulhu fhtagn]]></title>
    <link href="https://www.taskboy.com/2003-09-02-cthulhu_fhtagn.html"/>
    <published>2003-09-02T00:00:00Z</published>
    <updated>2003-09-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-09-02-cthulhu_fhtagn.html</id>
    <content type="html"><![CDATA[<p><p>Yes, Cthulhu is rising and you can get up to speed on the Great Old Ones by checking out <a href="http://www.kuro5hin.org/story/2003/9/1/172415/6523">this primer on Kuroshin</a>.  Act now while that which is dead lies 
eternal. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14437">post</a> and <a href="http://use.perl.org/comments.pl?sid=15261">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[whither irc.infobot.org?]]></title>
    <link href="https://www.taskboy.com/2003-08-28-whither_irc.html"/>
    <published>2003-08-28T00:00:00Z</published>
    <updated>2003-08-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-08-28-whither_irc.html</id>
    <content type="html"><![CDATA[<p>Is it me or is the DNS for irc.infobot.org FUBAR?<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14357">post</a> and <a href="http://use.perl.org/comments.pl?sid=15170">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The Thing that Should Not Be]]></title>
    <link href="https://www.taskboy.com/2003-08-27-The_Thing_that_Should_Not_Be.html"/>
    <published>2003-08-27T00:00:00Z</published>
    <updated>2003-08-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-08-27-The_Thing_that_Should_Not_Be.html</id>
    <content type="html"><![CDATA[<p><p>For the love of merciful Heaven, <a href="http://www.ericdaugherty.com/dev/soht/">NO!</a><p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14347">post</a> and <a href="http://use.perl.org/comments.pl?sid=15156">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Lite mode]]></title>
    <link href="https://www.taskboy.com/2003-08-26-Lite_mode.html"/>
    <published>2003-08-26T00:00:00Z</published>
    <updated>2003-08-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-08-26-Lite_mode.html</id>
    <content type="html"><![CDATA[<p><p>For some years now, I've taken advantage of feature in the Slash code called Lite Mode.  It's a user preference that renders slashdot site, like this one, with fewer graphic elements.  Page loads are faster and generally, the layout is more pleasing to my highly sensative aesthetic taste.
<p>How many use.perlers are using lite mode here?  How about on Slashdot? <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14324">post</a> and <a href="http://use.perl.org/comments.pl?sid=15132">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Hope]]></title>
    <link href="https://www.taskboy.com/2003-08-25-Hope.html"/>
    <published>2003-08-25T00:00:00Z</published>
    <updated>2003-08-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-08-25-Hope.html</id>
    <content type="html"><![CDATA[<p><p><blockquote>&laquo;Against this backdrop [mounting costs in Iraq
campaign], President George W. Bush's approval ratings
continue to decline. His current approval rating of 53
percent is down 18 percent from April. And for the first
time since the question was initially asked last fall,
more registered voters say they would not like to see
him re-elected to another term as president (49 percent)
than re-elected. Forty-four percent would favor giving
Bush a second term; in April, 52 percent backed Bush for
a second term and 38 percent did not.&raquo;
</blockquote>
<p>âNewsweek: <a href="http://www.msnbc.com/news/956458.asp?0cv=KB20">When Enough is Enough?</a>
<p>When it becomes trendy for 2-bit standup hacks and latenight talkshow hosts 
to disparage the Bush Administration as a pack incompetent, crypto-fascists 
and no-talent ass clowns, remember that some of us have been beating this 
drum consistantly since the 2000 "election."</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14292">post</a> and <a href="http://use.perl.org/comments.pl?sid=15097">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[miracles and medicine]]></title>
    <link href="https://www.taskboy.com/2003-08-25-miracles_and_medicine.html"/>
    <published>2003-08-25T00:00:00Z</published>
    <updated>2003-08-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-08-25-miracles_and_medicine.html</id>
    <content type="html"><![CDATA[<p><p>It's strange that these two articles should appear on the front pageof the BBC on the same day.  Two steps forward â one step back.
<p><blockquote>
&laquo;But Mr May was not fully comfortable with his newly gained sight. <br>
<br>
Before the operation he had been a keen skier, using verbal directions as a guide.
<br><br>
But after he recovered his sight, he was frightened he would crash into something. &raquo;
</blockquote>
<p>âBBC: <a href="http://news.bbc.co.uk/2/hi/health/3171993.stm">Cell transplant restores vision.</a>
<p><blockquote>
&laquo;However, David Hemphill said that the boy had been wrapped in sheets and had his shoes removed in order to prevent him from being hurt.
<br><br>
"We were asking God to take this spirit that was tormenting this little boy to death," Mr Hemphill said.
<br><br>
"We were praying that hard, but not to kill." &raquo;
</blockquote>
<p>âBBC: <a href="http://news.bbc.co.uk/2/hi/americas/3179789.stm">US boy dies during 'exorcism'</a>
<p>I reiterate my demand: It's well past the YEAR 2000, so where are my damn 
robots and commuter spaceships?</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14308">post</a> and <a href="http://use.perl.org/comments.pl?sid=15114">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The Perfect Crime]]></title>
    <link href="https://www.taskboy.com/2003-08-24-The_Perfect_Crime.html"/>
    <published>2003-08-24T00:00:00Z</published>
    <updated>2003-08-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-08-24-The_Perfect_Crime.html</id>
    <content type="html"><![CDATA[<p>Bobby Brown, that aging bad-boy pop star, is going to be spending eight days in the big house for <a href="http://news.bbc.co.uk/2/hi/entertainment/3177557.stm">violating his parole</a>. <br>
Was he caught carrying a gun or buying drugs? 
<p>No. <br>
<p>According to the terms of his parole, he must stay in the state of 
Georgia.  However, recently Brown secretly left the state for a brief visit
to California.  How did the authorities find out?
<p>He appeared on the televised American Music Awards show.
<p>Perhaps Brown should refrain from starting a career in crime.  He may not 
have the instincts for it. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14286">post</a> and <a href="http://use.perl.org/comments.pl?sid=15091">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Roll your own Arbitron system]]></title>
    <link href="https://www.taskboy.com/2003-08-23-Roll_your_own_Arbitron_system.html"/>
    <published>2003-08-23T00:00:00Z</published>
    <updated>2003-08-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-08-23-Roll_your_own_Arbitron_system.html</id>
    <content type="html"><![CDATA[<p><p>It's a beautiful day in Boston, but I'm stuck inside nursing a head cold. To entertain myself, I started grepping through taskboy's web access logs.  Once
again, I focused the sifting on <a href="http://taskboy.com/music/">my music</a>. 
I was curious to see the popularity of my tunes.  So as not to skew the results 
too much, I've removed my DSL's IP address.  The dates covered by this log are 
from August 30, 2001 to August 23, 2003.  Of course, this report is generated 
by this perl/shell one-liner:

bash-2.03$ perl -MData::Dumper -MFile::Basename -lane 'next unless $F[6] =~ /.mp3$/; next if $F[0] eq "151.203.46.214"; push @{$s{basename($F[6])}},$F[0]; END {for my $song (sort {scalar @{$s{$b}} &lt;=> scalar @{$s{$a}}} keys %s) { printf "%30s: %4d downloads\n", $song, (scalar @{$s{$song}}); }}' access.log  | head -10

<p>The results surprised me.  Here's the top 10 list of my most popular songs:</p>

<ol>
<li><code>     monkey_vs_robot_jjohn.mp3:</code> 317 downloads
<li><code>       make_the_pie_higher.mp3:</code> 273 downloads
<li><code>            08_without_you.mp3:</code> 189 downloads
<li><code>               plug_nickle.mp3:</code> 171 downloads
<li><code>                   careful.mp3:</code> 137 downloads
<li><code>                     doubt.mp3:</code> 105 downloads
<li><code>            immigrant_song.mp3:</code> 101 downloads
<li><code>                01_careful.mp3:</code> 98 downloads
<li><code>              m_vs_r_jjohn.mp3:</code> 95 downloads
<li><code>       05_letting_go_remix.mp3:</code> 92 downloads
</ol>

<p><p>Why people are downloading my crappy cover of Immigrant Song is way beyond 
me (maybe it's kitchy in Canada?).  I am pleased that Monkey vs. Robot 
seems to amuse folks.  It should be noted that I changed the filename of 
<code>careful.mp3</code> to <code>01_careful.mp3</code> a while ago.  Perhaps I can turn down the suck knob 
on that song if I remaster it with my new pro-audio gear.  The Soundblaster Live 
card really just doesn't cut it. 
<p>With more time to kill, I thought find those song with the most diverse support.
That is, songs that were downloaded by the greatest number of unique IP addresses.
That list is as follows:</p>

<ol>
<li><code>       make_the_pie_higher.mp3:</code> 157 unique IPs
<li><code>     monkey_vs_robot_jjohn.mp3:</code> 151 unique IPs
<li><code>            08_without_you.mp3:</code> 96 unique IPs
<li><code>              m_vs_r_jjohn.mp3:</code> 64 unique IPs
<li><code>                     doubt.mp3:</code> 64 unique IPs
<li><code>            immigrant_song.mp3:</code> 55 unique IPs
<li><code>                   careful.mp3:</code> 53 unique IPs
<li><code>               plug_nickle.mp3:</code> 51 unique IPs
<li><code>       05_letting_go_remix.mp3:</code> 49 unique IPs
<li><code>                 goodnight.mp3:</code> 46 unique IPs
</ol>

<p><p>Ah!  So the worm turns!  It appears that some of my songs get at least a 
second listen.  That's pretty cool.  Some, like Plug Nickle, even get a
remarkable third listen. <br>
<p>That's all for now.  My head is filling with cotton again.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14281">post</a> and <a href="http://use.perl.org/comments.pl?sid=15086">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[weapons of mass inoculation]]></title>
    <link href="https://www.taskboy.com/2003-08-23-weapons_of_mass_inoculation.html"/>
    <published>2003-08-23T00:00:00Z</published>
    <updated>2003-08-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-08-23-weapons_of_mass_inoculation.html</id>
    <content type="html"><![CDATA[<p><p>Recall that in 2002, there was a lot of loose talk and innuendo about "some kind" of smallpox attack "somewhere."  At the time, it didn't 
seem so implausable.  After all, Congress was paralysed after receiving 
several letters containing weapons-grade anthrax (mmm, I wonder what happened
to that storyâ¦).  It was during this period that the Administration
pushed for a massive smallpox vaccination program for all public health 
workers.  That was to make us safe, I assume.  However, that effort was 
doomed from the start, since the vaccination must be used within 90 days of 
manufacture and no one was in the business of mass producing the medicine on 
the scale required.  So we all thought clean thoughts and hoped for the best. 
<p>Apparently, that was the right thing to do.
<p>In a quote pulled from the article on boston.com: With demand lacking, smallpox vaccine expiring</a> one Boston doctor 
explains the problem.</p>

<blockquote>
&laquo;"The war came, the war left, things happened, and we weren't using 
vaccine as quickly as we had hoped to use it," said Dr. Alfred DeMaria, the 
Massachusetts director of communicable disease control. "And that's when we 
got to the 90-day expiration, and we had to throw it away."&raquo;
</blockquote>

<p><p>Fear is a very powerful motivator.  It frequently trumps solid reasoning. <br>
Much of the Bush Administration's reactions to 9-11 have struck me as a
panicked and startled (that is, they appear that way when I'm not leaning 
toward a more conspiratorial world-view).  Even with the most open and 
forthcoming of Administrations (in which camp the Bush folks decidedly do 
not fall), it is very hard to evaluate protective measures.  How can we 
evaluate the effectiveness of the PATRIOT act in preventing Terrorism or 
other crimes?  There's no control group we can look to that shows us what 
might have been.
<p><a href="http://portland.indymedia.org/en/2003/08/269495.shtml">Attorney 
General Ashcroft</a> is seeking support for a bill that grants even
more sweeping powers to law enforcement.  It's call the VICTORY act 
and among other powers, federal investigators would be able to get business 
records without a court order (recall that in the wake a 9-11, the feds 
canvassed many businesses, including SCUBA shops, asking for the records 
of customers. One SCUBA shop refused the request and was harassed for it). <br>
More frightening is that VICTORY would also allow the feds to track wireless 
communications without a warrant.  Vermont's Bernie Sanders is also 
concerned <a href="http://bernie.house.gov/documents/articles/20030821162828.asp">about this issue</a>. 
<p>Perhaps my distrust of this Administration would fade if it ceased borrowing
terminology from Orwell's 1984. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14279">post</a> and <a href="http://use.perl.org/comments.pl?sid=15085">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Death be not filthy]]></title>
    <link href="https://www.taskboy.com/2003-08-22-Death_be_not_filthy.html"/>
    <published>2003-08-22T00:00:00Z</published>
    <updated>2003-08-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-08-22-Death_be_not_filthy.html</id>
    <content type="html"><![CDATA[<p><p>It appears that the Filthy Critic has been terminated.  From the web site:
<blockquote>
&laquo;The Filthy Critic is Still Dead
<p>He was killed in a bicycle collision late on August 7, 2003.
<p>He died the way he livedâwobbling aimlessly in the slow lane.&raquo;
</blockquote>
<p>The meatspace author of the Filthy Critic, Matt Weatherford, is still 
with us, though.  No doubt, Matt is going to get serious about screenwriting 
now.  Many of his movie reviews distilled the essence of poor films down 
to excremental nub.  See his reviews of Driven and Glitter for shining 
examples of Weatherford's elegant trash-talk. 
<p>Filthy, you will be missed.   </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14274">post</a> and <a href="http://use.perl.org/comments.pl?sid=15080">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Red Hat ought to buy SCO]]></title>
    <link href="https://www.taskboy.com/2003-08-21-Red_Hat_ought_to_buy_SCO.html"/>
    <published>2003-08-21T00:00:00Z</published>
    <updated>2003-08-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-08-21-Red_Hat_ought_to_buy_SCO.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://www.linuxjournal.com/article.php?sid=6956">Ian Lance Taylor</a> suggests that perhaps Red Hat ought to buy SCO.  Others, including me, have 
suggested IBM ought to buy SCO.  Both of these solutions are designed to shut up
the yapping dog that is SCO's claim of IP infringement against Linux.  It does 
suck to reward bad behavior, but I think there is a business case to be made for 
Red Hat acquiring SCO. 
<p>SCO UNIX â¢ is used in several niche, but lucrative markets, including 
accounting applications for construction companies.  Red Hat would do well to bolster
its holdings with some of these plum accounts.  In fact, porting these boring 
business applications to Linux may produce new customers for these aging 
applications.  I suspect there is a good opportunity to pick low-hanging fruit 
in there for RedHat.
<p>SCO also claims to have a single-source authentication solution that integrates
into MS Active Directory (or what we *nix geeks would call "LDAP").  Linux needs a
this kind of management tool, as any SA will testify to.  As the number of machines
on a network grows, it becomes impossible to manage user accounts for each host. <br>
Centralizing this task and making it work in a hetrogenous environment would be 
a Big Win for Red Hat.  While NIS/NIS+ and even primative LDAP authentication 
support now exists in Linux, it doesn't seem to enough for many admins 
(no doubt some SA's here will comment on the paucity of delights in using NIS+).
SCO's authentication may be part of a comprehensive authentication solution for Linux.
<p>Of course the biggest win for Red Hat is that it gets to own the UNIX name. <br>
While that may not have a dollar value, it sure would differentiate the company from 
other Linux vendors.  Recall the boost in credibility that Caldera briefly had when 
it merged with SCO?  Red Hat would certainly handle the UNIX mantle more adroitly
and, I suspect, more profitably.
<p>SCO's inflated market value is 150 million inflated dollars, which is at an 
inflated level of the company's true (less-inflated) worth.  I don't know exactly 
how much SCO would be worth to Red Hat, but even at $75 million, SCO would add some 
tangible value to the company.  Red Hat is reportedly worth about $300 million.
<p>The case for IBM buying SCO is not easy to make.  SCO has nothing the IBM needs. 
It's in no markets big enough for IBM to care about.  And, SCO has spit in IBM's eye.
So, I think IBM would rather see the executive board of SCO in front of the SEC 
trying to explain their bad-faith behavior rather than make this whole "Linux 
License Program" of SCO go away.
<p>SCO has played a very dangerous gambit.  As more news surfaces about SCO's 
erroneous or felonious claims of copyright infringment by Linux, there is 
a very real possibility that some SCO execs will do jail time.  The SEC doesn't take
kindly to companies inflating their stock prices with protection rackets built on 
vapor.  Expect SCO to continue its jihad to the bitter end.  I assure you, it won't be 
pretty. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14260">post</a> and <a href="http://use.perl.org/comments.pl?sid=15066">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Blaster hoses DSL]]></title>
    <link href="https://www.taskboy.com/2003-08-18-Blaster_hoses_DSL.html"/>
    <published>2003-08-18T00:00:00Z</published>
    <updated>2003-08-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-08-18-Blaster_hoses_DSL.html</id>
    <content type="html"><![CDATA[<p><p>Here's my firewall's incoming access log.  Notice a pattern?</p>

<h2 id="ipport">IP               PORT</h2>

<p>217.187.133.15:  21
205.181.100.135: 113
205.181.100.135: 113
205.181.100.135: 113
141.149.180.20:  135
151.197.14.116:  135
151.201.112.178: 135
151.201.26.231:  135
151.202.16.79:   135
151.202.215.24:  135
151.202.215.44:  135
151.202.215.59:  135
151.202.215.61:  135
151.202.215.64:  135
151.203.47.97:   135
151.203.52.16:   135
151.203.52.167:  135
151.203.52.171:  135
151.203.52.176:  135
151.203.52.177:  135
151.203.52.94:   135
151.203.53.129:  135
151.203.53.28:   135
151.203.53.3:    135
151.203.54.141:  135
151.203.54.76:   135
151.203.54.80:   135
151.203.55.105:  135
151.203.55.132:  135
210.5.22.19:     135
210.5.22.20:     135
210.5.22.22:     135
69.144.221.229:  135
148.243.148.147: 137
200.158.167.235: 137
62.251.202.37:   137
64.216.69.17:    137
218.15.192.64:   1026
218.15.192.64:   1026
218.15.192.64:   1026
218.15.192.64:   1026
218.15.192.64:   1026
218.15.192.64:   1026
218.15.192.64:   1026
218.15.192.64:   1026
129.6.15.29:     4628
129.6.15.29:     4806
129.6.15.29:     4806
129.6.15.29:     4806
129.6.15.29:     4806
129.6.15.29:     4806
129.6.15.29:     4806
129.6.15.29:     4806
158.121.104.3:   44980
158.121.104.3:   44980
158.121.104.3:   45051
158.121.104.3:   45051
158.121.104.3:   45051
64.239.39.14:    45176
158.121.104.3:   45218
158.121.104.3:   45218
158.121.104.3:   45218
158.121.104.3:   45218
158.121.104.3:   45218
158.121.104.3:   45218

<p>Thank you, MSBlaster.  Thank you so f'ing much.
<p>Dink!
<p>Update: <a href="http://news.bbc.co.uk/2/hi/technology/3169573.stm">sobig</a> â you're a dink, too!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14189">post</a> and <a href="http://use.perl.org/comments.pl?sid=14991">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Right claw south!]]></title>
    <link href="https://www.taskboy.com/2003-08-18-Right_claw_south_.html"/>
    <published>2003-08-18T00:00:00Z</published>
    <updated>2003-08-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-08-18-Right_claw_south_.html</id>
    <content type="html"><![CDATA[<p><a href="http://people.brandeis.edu/~bheath/harliquin's_lair/flash/lobstermagnet.html">Lobster Magnet</a></p>

<p><p>Discuss: magnet made of steel, lobster made of meat.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14185">post</a> and <a href="http://use.perl.org/comments.pl?sid=14986">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Say what?]]></title>
    <link href="https://www.taskboy.com/2003-08-17-Say_what_.html"/>
    <published>2003-08-17T00:00:00Z</published>
    <updated>2003-08-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-08-17-Say_what_.html</id>
    <content type="html"><![CDATA[<p><p>I just finished reading PKD's The Man in the High Castle.  I can think of no higher praise for the book than to say that during these past few years of flag-waving, ham-fisted  patrioteering, nothing has evoked my love for the U.S more than Dick's story of a world without it.  Showing daily life in an occupied America is far more compelling and heart-wrenching than a thousand statues of Patton, Churchill or Roosevelt.  Those that insist on equating Saddham Hussein's Ba'ath party to the Nazis greatly diminish the full scope Hilter's terror and ambition. 
<p>With that bit of ham-fisted flag waving accomplished, I direct your attention to a phrase used in the novel that refers to St. Paul's Corinthians I (<a href="http://www.homestarrunner.com/sbemail80.html">the Criminal Projective</a>):</p>

<p><p><blockquote>
46:013:009 For we know in part, and we prophesy in part.<br>
<br>
46:013:010 But when that which is perfect is come, then that which is in part shall be done away.<br>
<br>
46:013:011 When I was a child, I spake as a child, I understood as a child, I thought as a child: but when I became a man, I put away childish things.<br>
<br>
46:013:012 For now we see through a glass, darkly; but then face to face: now I know in part; but then shall I know even as also I am known.<br>
</blockquote></p>

<p><p>âPulled from <a href="http://www.ibiblio.org/gutenberg/etext92/bible12.txt">Project Gutenburg</a>.</p>

<p><p>In context, this phrase appears to be describing the mortal condition of imperfect knowledge.  St. Paul appears to be saying: given that we're limited, finite beings, our perception is similiarly limited.  However that shouldn't stop us for using what we can see, as incomplete as our knowledge may be. <br>
<p>Of course, that's just how this twentith century mind reads it.
<p><a href="http://phrases.shu.ac.uk/bulletin_board/9/messages/388.html">The Phrase Finder</a> appears to disagree with me:</p>

<p><p><blockquote>
"When I was a childâ¦now that I am a man I have put away childish things and look back at the past as though through a glass darklyâ¦" An obvious allusion to adults being metaphorically blinded to the truth or the inocence [sic] of things.
</blockquote>
<p>Confused and befuddled, I turn to the erudite readers of my humble blog for their Solomon-like wisdom.  What does "through a glass, darkly" mean to you?<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14161">post</a> and <a href="http://use.perl.org/comments.pl?sid=14960">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Wise men say…]]></title>
    <link href="https://www.taskboy.com/2003-08-16-Wise_men_say.html"/>
    <published>2003-08-16T00:00:00Z</published>
    <updated>2003-08-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-08-16-Wise_men_say.html</id>
    <content type="html"><![CDATA[<p><p>From the BBC's <a href="http://news.bbc.co.uk/onthisday/hi/dates/stories/august/16/default.stm">On This Day</a>.</p>

<ul>
  <li>1977: Elvis dies
  <li>1984: John DeLorean cleared of drug trafficking charges
</ul>

<p><p>To remember Elvis I'm listening to the Dead Kennedy's cover of "Viva Las Vegas", which begins with some spoken work excerpts from Thompson's <em>Fear and Loathing in Las Vegas</em>.
<p>"But in my own way, I am King.  Hail to the King, baby."  âAsh, <em>Evil Dead III</em>.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14158">post</a> and <a href="http://use.perl.org/comments.pl?sid=14956">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[farscape season 2 box set]]></title>
    <link href="https://www.taskboy.com/2003-08-13-farscape_season_2_box_set.html"/>
    <published>2003-08-13T00:00:00Z</published>
    <updated>2003-08-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-08-13-farscape_season_2_box_set.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://www.watchfarscape.com/news/article.php?newsid=391">ADVFilms</a>
<p><blockquote>
Farscape: The Complete Season Two is a slip-covered, DVD-only box set containing all ten second-season discs in six DVD cases. In English, with 5.1 and 2.0 Dolby Surround Audio. Loaded with extras, including: deleted scenes; audio commentaries; The Farscape Dictionary; actor biographies; main character back stories; Aliens Encountered; Weapons and Ships; and Alien Races.</p>

<p></blockquote>
<p>Of course I've already got all of Season 2 (so suck it!).<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14105">post</a> and <a href="http://use.perl.org/comments.pl?sid=14900">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Values, both expected and unexpected]]></title>
    <link href="https://www.taskboy.com/2003-08-10-Values,_both_expected_and_unexpected.html"/>
    <published>2003-08-10T00:00:00Z</published>
    <updated>2003-08-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-08-10-Values,_both_expected_and_unexpected.html</id>
    <content type="html"><![CDATA[<p><p>It was a wise <a href="http://use.perl.org/~zorknapp/journal">being of indeterminant origin</a> who said "I love to get something I already own 
for Christmas because I know I will like it."  Initially I discounted this 
remark as being another one of his sugar-induced verbal ticks, but today I 
learned how Solomon-like his wisdom truly is. 
<p>I'm lucky enough to live in a apartment that also has a basement storage 
area.  While this is little more than a walk-in closet for suburbanites, it's
a veritable warehouse by Boston standards.  The compartment measures roughly
7' deep, 3' 1/2" width and 6' high (using space-age math I find that I have 
147 cubic feet of storage [good to know when I have to store cubes]). <br>
Since I've lived at the same address for over 
eight years now, the contents of the boxes contained in that closet are more
than a little mystery to me now.
<p>While waiting for my laundry, I started pulling out the boxes and examining
the contents.  Wow!  I have a lot of cool stuff!  Here's an unordered list of 
what I found</p>

<ul>
  <li>Two Weber grills (useless to me, so I chucked them)
  <li>A disproportionate amount of holiday paraphenalia for a single male
  <li>The 
Adventures of Tom Bombidill</a>
  <li>Two 2400 baud modems
  <li>A crappy pair of 1/8" phono-jack headphones
  <li>1 Apple Quadra
  <li>1 PowerMac 7100/40
  <li>1 WinBook 486/33 laptop
  <li>1 Brother daisy wheel word processor (from the late 80's)
  <li>My old notebook from the one music theory class I took at BC
  <li>Gygax and Arneson's <a href="http://www.flash.net/~brenfrow/dd/dd-obook1.htm">Dungeons &amp; Dragons, vol 1: Men and Magic</a>
  <li>Many of my D&amp;D Expert, Companion and Master rulebooks, modules and 
the rare Gazetteers (which I really enjoy reading now). 
</ul>

<p><p>I'm like eBay, but without teh suck.
<p>In other jjohn news, I converted about 10-15 lbs. of coins into cash money
at the super market that has a machine charging 13% of the gross to count
the change.  As far as I'm concerned, recovering my change is found money, so 
I happily use this service.  Others surely will find this charge usurious. <br>
Whatever your prefence, the dread machine displays the tally of the coins 
it has identified.  Because the laundry machines take quarters only, I try 
to harvest all the quarters I can before turning in my small bucket of metal
(like a nineteenth century prospector).
<p>And that's where this journal turns into a word problem.
<p>For the sake of argument, say pennies, nickels and dimes are equally likely
to be in my collection of change (who's to say they are not?).  What's the 
expected value of the average coin?  Given that I had roughly 2000 coins, how 
much money (minus the conversion fee) would you predict that I walked away 
with?
<p>I'll post the answer later.
<p>UPDATE:  The expected value of J. Random coin is about 5.3 (16/3).  There were about 2000 coins, so one would expect the value of the booty was to be about 10000 cents or 100 dollars.  $13 worth of fees (after reading the posts, I'm thinking it was closer to a %9 fee) less means that I should walk away with $87. <br>
<p>In reality, I walked with $88 and had closer to 1800 coins.
<p>Math is fun when it's fuzzy!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14033">post</a> and <a href="http://use.perl.org/comments.pl?sid=14821">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Egosurfing for YAPC2002 pics]]></title>
    <link href="https://www.taskboy.com/2003-08-09-Egosurfing_for_YAPC2002_pics.html"/>
    <published>2003-08-09T00:00:00Z</published>
    <updated>2003-08-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-08-09-Egosurfing_for_YAPC2002_pics.html</id>
    <content type="html"><![CDATA[<p><p>I found some pictures of me from YAPC.  Surely, you'll want to see them too?<ul>
 <li>Pudge and me (behind elbow), also Boston.pm'er Sean Q</a>
 <li><a href="http://www.domaintje.com/~ann/trip/yapc-2/DSCF3488.JPG">Casey West on my left, Allison Randal and MJD in front of me</a>
 <li><a href="http://www.domaintje.com/~ann/trip/yapc-2/DSCF3505.JPG">Looking pensive because I'm surrounded by Casey, Simon Cozens, Jesse "RT" Vincent and
Sarah B.</a>
 <li><a href="http://www.domaintje.com/~ann/trip/yapc-2/DSCF3506.JPG">Angered, I use my heat vision to melt my opponent.  MJD takes note, but Allison appears to disapprove of my actions.</a>
 <li><a href="http://www.domaintje.com/~ann/trip/yapc-2/DSCF3519.JPG">Knowing 
that the most dangerous place at YAPC is to be between Schwern and 
a camera, I retreat.</a>
 <li>Gnat (out of frame, but obvious from banjo), Pudge, Schuyler 
(seated), MJD (a bit tipsy), ? and me with the Gibson</a>
 <li><a href="http://husk.org/pics/x/trips/yapc_na_st_louis_2002-06/out_in_the_evenings/the_players.jpg">Pudge, MJD, me, Gnat's back</a>
 <li><a href="http://husk.org/pics/x/trips/yapc_na_st_louis_2002-06/pound_perl_people/perl_photo_dissolves_one.jpg">Who's that exiting the frame on the right with the Mumble and Peg shirt?  Me!</a>
 <li><a href="http://husk.org/pics/x/trips/yapc_na_st_louis_2002-06/pound_perl_people/perl_photo_dissolves_four.jpg">Talking to Elaine Ashton in the background, left-center.</a>
  <li><a href="http://husk.org/pics/x/trips/yapc_na_st_louis_2002-06/pound_perl_people/perl_photo_dissolves_five.jpg">Elaine and I continue talking, walking.</a>
  <li><a href="http://husk.org/pics/x/trips/yapc_na_st_louis_2002-06/pound_perl_people/perl_photo_dissolves_six.jpg">Elaine Gnat, and I enjoy our sunglasses.</a>
  <li><a href="http://husk.org/pics/x/trips/yapc_na_st_louis_2002-06/talks_and_stuff/balcony_shot_before_damian.jpg">Blurry, but I implore you all to squint and notice that I sit betwixt Schwern and Casey West (orange hat).</a>
  <li><a href="http://brimstone.five-elements.com/~jsw/pic/200206-yapc/jswnikon020628162148_525.JPG">Another blurry shot of me.  This is getting to be 
like the Zapruder file.  Did you see a flash on the grassy knoll?</a>
</ul></p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/14014">post</a> and <a href="http://use.perl.org/comments.pl?sid=14803">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[IBM, RedHat to kick the holy hell out of SCO]]></title>
    <link href="https://www.taskboy.com/2003-08-08-IBM,_RedHat_to_kick_the_holy_hell_out_of_SCO.html"/>
    <published>2003-08-08T00:00:00Z</published>
    <updated>2003-08-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-08-08-IBM,_RedHat_to_kick_the_holy_hell_out_of_SCO.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://www.eweek.com/article2/0,3959,1212323,00.asp">IBM sues SCO</a>.
<p><a href="http://www.eweek.com/article2/0,3959,1210045,00.asp">RedHat sues SCO</a>.
<p>I'm waiting for <a href="http://www.eweek.com/article2/0,3959,1210734,00.asp">Novell</a> and <a href="http://www.eweek.com/article2/0,3959,1212117,00.asp">Oracle</a> to join the fray too. This is going to be an Old Fashioned Smackdown (tm).  I hope they can bitch-slap some sense in the greedy execs at SCO ("Gosh, our golden paracute isn't so lustre-y today"). 
<p>Let's get READY to RUUMMMMMMMBBBBLLLLEE!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13993">post</a> and <a href="http://use.perl.org/comments.pl?sid=14780">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Breaking the Frames]]></title>
    <link href="https://www.taskboy.com/2003-08-07-Breaking_the_Frames.html"/>
    <published>2003-08-07T00:00:00Z</published>
    <updated>2003-08-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-08-07-Breaking_the_Frames.html</id>
    <content type="html"><![CDATA[<p><p>I slapped together another demo, this time of a song called <a href="http://taskboy.com/music/breaking_the_frames_demo.mp3">Breaking the Frames</a>.  It's a protest song written about and for the Luddites of early nineteenth century Britain.  The Luddite "revolt" was the response of apprenticed Nothingham weavers to the practice of factory owners installing weaving machines called frames and hiring unskilled labor at reduced wages to work these contraptions. <br>
<p>However, the story of craftsmen being steamrolled over by technology is far from a historical concern.  Today, the outsourcing tread of large businesses to move programming jobs overseas is probably the most familiar example of this phenomenon to readers of use.perl.org.  What my song attempts to capture is the brave and utter futility of fighting this kind of "progress".  Life is  about adaptation and adaptation is often painful.
<p>This song is part of series of thematically related songs labelled "encode".  You can listen to this series through <a href="http://taskboy.com/music/encode.m3u">this playlist</a>.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13971">post</a> and <a href="http://use.perl.org/comments.pl?sid=14756">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Farscape 3.4 on DVD obtained]]></title>
    <link href="https://www.taskboy.com/2003-08-06-_Farscape_3.html"/>
    <published>2003-08-06T00:00:00Z</published>
    <updated>2003-08-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-08-06-_Farscape_3.html</id>
    <content type="html"><![CDATA[<p><p>While waiting for the immanent return of Farscape, I've been collecting the series on DVD.  ADV films has done a wonderful job of
making these DVDs.  The extra features included on these discs are
context-sensative, so that when you read something about a character
like D'Argo, the information is relevant to that season covered
(life about Moya can be complicated at times).  Season 3 was a strong one
for Farscape and one episode I've longed to see again is on this DVD:
Revenging Angel, in which (Moya) Crighton gets knocked into a "coma"
and the viewer is treated to a delightful montage of Warner Brothers style
cartoons.
<p>I love it when the Farscape writers go nuts.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13959">post</a> and <a href="http://use.perl.org/comments.pl?sid=14743">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Shame! Shame!]]></title>
    <link href="https://www.taskboy.com/2003-08-05-Shame__Shame_.html"/>
    <published>2003-08-05T00:00:00Z</published>
    <updated>2003-08-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-08-05-Shame__Shame_.html</id>
    <content type="html"><![CDATA[<p><p><blockquote>&laquo;
There is a fundamental problem with the BBC and all public broadcasting enterprises. They are magnets for anti- traditionalist, leftist staffers who fondle their ideals over the air, knowing they are in a business far removed from the disgusting commercialism of their competitors. Their revenue is carved directly out of the public's hide.
&raquo;
</blockquote> 
<p>âTampa Tribune: <a href="http://www.tampatrib.com/News/MGA4YY8RUID.html">The BBC in The Dock</a>
<p>The core thesis of this article is that public funding shouldn't support 
Left wing opinions.  This old saw of an argument is frequently used against 
the PBS in the US and against funding public art.  It's amazing how intolerant
some people are of dissent.  Recall that there have been many nations who 
carefully reviewed and approved each piece of public art to ensure none of 
it offended.
<p>Nazi Germany was one such country, as was the Soviet Union.
<p>It's funny how the media clings to the idea of objectivity when no one can
agree on what objective reporting is.  As Jon Steward recently pointed out in 
his interview with Bill Moyers, editors make subjective decisions about the 
order of new stories.  Those that are deemed "important" are presented first. 
Yet even a casual review of any news outlet will should that importance is 
frequently defined as that outlet's self-interest rather than an obligation
to some "public trust."  This article here is clearly labelled an editorial
written by a "conservative" who task the BBC to task for criticising Blair
during the 2003 Iraq war.  It's wonderful to read this article as it portrays
opposition to an administration's policy as a "menace" and a "propaganda outlet
for peaceniks".  It's jolting to see Cold War rhetoric applied to any news 
paper let alone the BBC.
<p>This is a funny time to be alive on Earth.  With many countries of the West
becoming uncomfortable Right wing, one has to wonder where we are heading a
such a fast pace?  Why is it so wrong to question is the destination is worth 
the trip?</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13917">post</a> and <a href="http://use.perl.org/comments.pl?sid=14701">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[retar-dar]]></title>
    <link href="https://www.taskboy.com/2003-08-04-retar-dar.html"/>
    <published>2003-08-04T00:00:00Z</published>
    <updated>2003-08-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-08-04-retar-dar.html</id>
    <content type="html"><![CDATA[<p><p><blockquote>
&laquo;
Filthy: Right. But, I thought since one of the main characters was retarded you might enjoy it.
<br><br>
Larry: He wasn't really retarded. He was only pretending.
<br><br>
Filthy: How can you tell?
<br><br>
Larry: I've got my retar-dar on.
&raquo;
<blockquote></p>

<p><p>âFilthy Critic:  Reviewing <a href="http://www.bigempire.com/filthy/gigli.html">Gigli</a> <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13886">post</a> and <a href="http://use.perl.org/comments.pl?sid=14667">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Cheap-labor conservatives]]></title>
    <link href="https://www.taskboy.com/2003-08-01-Cheap-labor_conservatives.html"/>
    <published>2003-08-01T00:00:00Z</published>
    <updated>2003-08-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-08-01-Cheap-labor_conservatives.html</id>
    <content type="html"><![CDATA[<p><p><blockquote>
&laquo;
The ugly truth is that cheap-labor conservatives just don't like working people. They don't like "bottom up" prosperity, and the reason for it is very simple. Lords have a harder time kicking them around. Once you understand this about the cheap-labor conservatives, the real motivation for their policies makes perfect sense.
&raquo;
</blockquote>
âConceptual Guerilla: <a href="http://www.conceptualguerilla.com/">Defeat the Right in Three Minutes</a></p>

<p><p>This is so unfair.  Labor hurts the bottom line and they know it.  I'm compassionate when I support cutting social programs because those programs denegrate the needy.  What's so wrong about being rich and privileged?  <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13847">post</a> and <a href="http://use.perl.org/comments.pl?sid=14620">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Give me back my hand!]]></title>
    <link href="https://www.taskboy.com/2003-07-30-Give_me_back_my_hand_.html"/>
    <published>2003-07-30T00:00:00Z</published>
    <updated>2003-07-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-07-30-Give_me_back_my_hand_.html</id>
    <content type="html"><![CDATA[<p><p>Bruce "Ash" Campbell received <a href="http://story.news.yahoo.com/news?tmpl=story&amp;&amp;&amp;u=/ap/20030728/ap_en_mo/people_bruce_campbell_1">a bang up when hit by a drunk driver</a>.  Will the forces of evil stop at nothing to stop this man? (No, Campbell didn't lose any limbs in the accident). <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13781">post</a> and <a href="http://use.perl.org/comments.pl?sid=14555">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Error disappeared upon testing]]></title>
    <link href="https://www.taskboy.com/2003-07-28-Error_disappeared_upon_testing.html"/>
    <published>2003-07-28T00:00:00Z</published>
    <updated>2003-07-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-07-28-Error_disappeared_upon_testing.html</id>
    <content type="html"><![CDATA[<p><p>When doing tech support, it's very common to not be able to reproduce the problem being reported.  Frequently, the reason you can't reproduce the 
problem is that it doesn't exist (and I've already mentioned how long it can 
take to debug a problem that doesn't exist). When you're on the phone with 
someone discussing their problem, it's considered impolite to tell them 
"You fatted-fingered f*ck, pack up your computer, send it back to the 
factory and resume grooming your mate."  Instead tech support folks composed
the following phrase for their logs "error disappeared upon testing." <br>
<p>Today, I was performing a routine apache configuration modification.  I 
had to set up a virtual host with a CGI script alias.  This is a very, very 
routine task and should have taken five minutes to do.   Because I refuse to 
commit the syntax to memory, much of that five minutes involves looking for
the right book (for me, that is <a href="http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?userid=2VYO56VP8G&amp;isbn=0764533061&amp;itm=3">Apache Server Administrator's Hanbook</a>).  In any case, I spent close on an hour trying to 
get this to work.  The virtual host indeed was working, but the script alias 
was executing the CGI program.  I was utterly confused, dejected and morose. 
<p>Then I remembered that the apache server I built didn't have the 
CGI module compiled into it.  It could never do what I asked it to do.  The 
solution was to build another server with the CGI module and configure to 
taste.
<p>And the error disappeared upon further testing.
<p>So, I've begun packing up my computers to send back to the factory.  Should
you need me, I'll be out looking for a comfortable tree to swing from with my 
fat fingers.  </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13735">post</a> and <a href="http://use.perl.org/comments.pl?sid=14503">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Not amused]]></title>
    <link href="https://www.taskboy.com/2003-07-27-Not_amused.html"/>
    <published>2003-07-27T00:00:00Z</published>
    <updated>2003-07-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-07-27-Not_amused.html</id>
    <content type="html"><![CDATA[<p><p>I slapped down a lot of green today to upgrade my home studio.  I bought a Echo MIA/MIDI card, M-Audio's Studioware BX5 speakers and lot of cabling.  My first crack at the new hardware <a href="http://taskboy.com/music/not_amused_demo.mp3">produced this</a>.  The song is called "Not Amused" and is part of virtual album I'm making (slowly).  <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13706">post</a> and <a href="http://use.perl.org/comments.pl?sid=14473">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Elvis Costello Mystery Cover]]></title>
    <link href="https://www.taskboy.com/2003-07-26-Elvis_Costello_Mystery_Cover.html"/>
    <published>2003-07-26T00:00:00Z</published>
    <updated>2003-07-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-07-26-Elvis_Costello_Mystery_Cover.html</id>
    <content type="html"><![CDATA[<p><p>On the heels of me moaning about the highly selective audience of my music, I get an email from the admin of the <a href="http://home.cfl.rr.com/jdha/stuff/ecmcotw/">Elvis Costello Mystery Cover</a> web site requesting my version of "You Belong to Me".  So, my tune is the mystery cover for 7-25-2003. 
<p>Cool!
<p>update:  You can find my cover along with all the rest <a href="http://home.cfl.rr.com/jdha/stuff/ecmcotw/CostelloCoverList.html">here</a>.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13696">post</a> and <a href="http://use.perl.org/comments.pl?sid=14462">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[First web site]]></title>
    <link href="https://www.taskboy.com/2003-07-26-First_web_site.html"/>
    <published>2003-07-26T00:00:00Z</published>
    <updated>2003-07-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-07-26-First_web_site.html</id>
    <content type="html"><![CDATA[<p><p>Back in 1995, I waw a work-study grunt in the Healey Labs at UMass/Boston.  It turned out to be a very good gig for me because I learned
a great deal about troubleshooting technical and human problems.  I 
also learned about some weird "world wide web" thing that was poised to 
replaced Archie and (gasp) FTP.  So I asked someone for a URL and 
learned how to use the text-only lynx browser.  Lynx worked along the same 
lines as Archie.  It was designed for dumb terminals.  Then I started to 
learn how to make those marvelous web pages with HTML.  Of course, my task 
was complicated by the abscene of a web server on the VAX system I was using.
Nevertheless, I created 
<a href="http://taskboy.com/vaxweb/">these fine pages</a>. <br>
Witness glorious ASCII art, an Archie primer, and my notes for HS150: Introduction to Mid-East History.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13700">post</a> and <a href="http://use.perl.org/comments.pl?sid=14465">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Schwing!]]></title>
    <link href="https://www.taskboy.com/2003-07-25-Schwing_.html"/>
    <published>2003-07-25T00:00:00Z</published>
    <updated>2003-07-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-07-25-Schwing_.html</id>
    <content type="html"><![CDATA[<p><p><blockquote>
&laquo;
"I can't stress strongly enough how totally tasteless this is, and have demanded immediately that those responsible take it down." 
&raquo;
</blockquote>
<p>âBBC: <a href="http://news.bbc.co.uk/2/hi/europe/3096541.stm">Salzburg statue not fit for a prince</a><p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13688">post</a> and <a href="http://use.perl.org/comments.pl?sid=14453">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Remember when companies invented, rather than sued?]]></title>
    <link href="https://www.taskboy.com/2003-07-24-Remember_when_companies_invented,_rather_than_sued_.html"/>
    <published>2003-07-24T00:00:00Z</published>
    <updated>2003-07-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-07-24-Remember_when_companies_invented,_rather_than_sued_.html</id>
    <content type="html"><![CDATA[<p><p>This <a href="http://www.sco.com/scosource/gartner_warning.html">whole SCO thing is getting on my nerves.  Rather than compete with Linux, or create a better product based on Linux, the nutty managers at SCO are taking a page from the mafia playbook and shaking down Linux users for protection money.  "Pay us and we won't sue you"
is a slimy business move.  The only notable engineering SCO has done recently is to carefully rollout a series of escalating warnings about mystical "IP violations" in the Linux kernel involving Symmetric Multi-Processing support.  Naturally, the folks using this feature of Linux are companies running beefy servers and clearly have money to burn.  All this FUD has done very positive things for SCO's stock price.  I hope the SEC investigates them for manipulating the market. 
<p>Skunk Unix was at least a legitimate Unix player at one time.  Over the years, SCO served increasing small niche markets.  SCO Unix was never beefy enough for big data center work (like IBM's AIX or Sun's Solaris), was never sexy enough for SGI-style graphic workstations and was not friendly enough for software development (like SunOS/Solaris). Instead of fighting Linux 8 years ago, SCO ought to have found a way to leverage that OS to find new markets (for a similiar rant, change "SCO" to "RIAA" and "that OS" to "MP3s" in the last sentence).
<p>All this FUD does is hurt Linux adopting in the short term.  What SCO is doing is devising an exit strategy for its management.  This is not a long-term business plan.  Perhaps SCO hopes to force IBM to buy it so that IBM can continue its Linux program.  Perhaps Microsoft will buy SCO and continue to FUD Linux to death. <br>
<p>Although I really like Linux, I'd also be happy if FreeBSD got a lot of new attention as a free Unix alternative for the desktop. <br>
<p>I understand that the pursuit of capital can be a dirty business, but SCO's machinations wreak of desperation and meanness.  Shame on them. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13677">post</a> and <a href="http://use.perl.org/comments.pl?sid=14441">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Carl Sagan would be proud]]></title>
    <link href="https://www.taskboy.com/2003-07-21-Carl_Sagan_would_be_proud.html"/>
    <published>2003-07-21T00:00:00Z</published>
    <updated>2003-07-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-07-21-Carl_Sagan_would_be_proud.html</id>
    <content type="html"><![CDATA[<p>Hey! <a href="http://antwrp.gsfc.nasa.gov/apod/ap030630.html?list=true">Same</a> to you buddy!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13588">post</a> and <a href="http://use.perl.org/comments.pl?sid=14354">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[OSCON 2003: The pictures]]></title>
    <link href="https://www.taskboy.com/2003-07-20-OSCON_2003__The_pictures.html"/>
    <published>2003-07-20T00:00:00Z</published>
    <updated>2003-07-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-07-20-OSCON_2003__The_pictures.html</id>
    <content type="html"><![CDATA[<p><p>I've published my OSCON 2003 pictures on <a href="http://taskboy.com/pictures/oscon2003.html">Taskboy</a>.  Find pictures of famous use.perl.org journalists like Gnat and Togox!  Marvel at the actual photograph of me in the Oregonian!  Witness landscapes of bridges!</p>

<p><p>I fixed a data bug that prevented <a href="http://www.taskboy.com/img/david_adler.jpg">David Adler's picture</a> from appearing correctly in the YAPC2002 section. Sorry, <a href="http://www.taskboy.com/img/104-0444_img.jpg">Dave</a>.  The only pictures I had of Damian showed him either blurry or disgruntled.  Sorry sensation seekers: no <a href="http://use.perl.org/~chromatic/journal/13207">body shots of Allison Randal</a>.  Maybe next year. <code>;-)</code></p>

<p><p>Not as many pictures as I would have liked.  I wish I had brought my camera to the zoo.  </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13565">post</a> and <a href="http://use.perl.org/comments.pl?sid=14329">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Galgactus blog]]></title>
    <link href="https://www.taskboy.com/2003-07-19-Galgactus_blog.html"/>
    <published>2003-07-19T00:00:00Z</published>
    <updated>2003-07-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-07-19-Galgactus_blog.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://www.comicbookresources.com/columns/index.cgi?column=yabs&amp;article=1636">Even god-like beings of inhuman power like blogging</a>.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13555">post</a> and <a href="http://use.perl.org/comments.pl?sid=14319">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[JLo and Ben Affleck]]></title>
    <link href="https://www.taskboy.com/2003-07-19-JLo_and_Ben_Affleck.html"/>
    <published>2003-07-19T00:00:00Z</published>
    <updated>2003-07-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-07-19-JLo_and_Ben_Affleck.html</id>
    <content type="html"><![CDATA[<p><p>Is there anyone here that believes this marriage will last more than 5 years?  I sure don't.
<p>Good gravy.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13548">post</a> and <a href="http://use.perl.org/comments.pl?sid=14310">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Carjacking on Rt. 128]]></title>
    <link href="https://www.taskboy.com/2003-07-16-Carjacking_on_Rt.html"/>
    <published>2003-07-16T00:00:00Z</published>
    <updated>2003-07-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-07-16-Carjacking_on_Rt.html</id>
    <content type="html"><![CDATA[<p><p>Pudge, hfb: I know you're sorry to have <a href="http://www.boston.com/news/daily/16/highway_chase.htm">left now</a>!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13491">post</a> and <a href="http://use.perl.org/comments.pl?sid=14251">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Leostream reviewed in E-Week]]></title>
    <link href="https://www.taskboy.com/2003-07-14-Leostream_reviewed_in_E-Week.html"/>
    <published>2003-07-14T00:00:00Z</published>
    <updated>2003-07-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-07-14-Leostream_reviewed_in_E-Week.html</id>
    <content type="html"><![CDATA[<p><p>Leostream is the start-up I work for.  E-Week recently review the product <a href="http://www.eweek.com/article2/0,3959,1191948,00.asp">very favorably</a>. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13447">post</a> and <a href="http://use.perl.org/comments.pl?sid=14212">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[OSCON - /$3(.*)$/]]></title>
    <link href="https://www.taskboy.com/2003-07-14-_OSCON_-__$3(.html"/>
    <published>2003-07-14T00:00:00Z</published>
    <updated>2003-07-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-07-14-_OSCON_-__$3(.html</id>
    <content type="html"><![CDATA[<p><p>I write this on Saturday.  My last entry was Wednesday. Thursday is a happy blur now.  I know I went to some good talks, but 
I can't remember them now, even on pain of death.  What I do have a clear 
recollection of is going to the Mummy Cafe with Quinn, <a href="http://www.oblomovka.com/">Danny</a>, 
David Blank-Edelman, Gnat and Jenine.  Like the queen's tomb in the 
Khufu's (ne&eacute; Cheop's) Pyramid, this restaurant was small, 
subterranean and devoid of treasure.  However, the food was vaguely 
greek/mediterranean and so was easy to consume.  Although no alcohol was 
imbibed there, for some reason conversation at the table was preempted as 
we all watched the ice cube that was impaled by David and hung across his 
glass slowly melt away to the point of failure.
<p>At the time, this seemed very, very important.  Maybe the food included 
some kind of "pharaoh's surprise."
<p>Our troop ended up taking over the empty "O Cielo!" cafe, graciously hosted 
by emmigrant Italian man.  I can't properly convey the un-east-coastness of 
the place to those who weren't there, but suffice it to say the cafe's easy 
elegance was both disarming and enjoyable. 
<p>On the way back to the hotel, we stopped at this elebrate 
water fountain/park that allowed visitors to walk around and through 
the multilayered, cantalevered waterfalls.  At night, the indirect and 
submerged sparse lighting lent the space a faery quality. <br>
<p>Back at the hotel, I shared some scotch with DJ Adams, Piers Harding, 
and Tom Christiansen, whose wounded middle finger seemed to be responding well
to its treament.  I also got to hang out with Tim Allwine and some core IS 
hackers and got caught up on the latest office poop.  The more things change, 
the more they stay the same.  Yet later still, I fell into a very silly 
conversation with Dave Adler and Sean Burke.  I don't recall the details, but 
the image of Mr. Burke's flushed face gasping for air between peals of 
laughter is associated with that section of the evening.  I assume he was 
laughing with me, not at me. 
<p>And then sleep took me.
<p>On Friday, I awoke late for Dyson's talk, who went on about the 
origins of computer hardware (I believe he was there for much of it). <br>
An interesting talk, but not one that could trump my need for breakfast. <br>
After stuffing my gob, I sat through Damian Conway's "Perl 6 Rules" talk, 
which summarized the Perl5 module he wrote that provides Perl 6 grammar 
class-thingies.  When you write a module that uncovers bugs in the regex 
engine, you know you're not getting out enough.
<p>Speaking of not getting out enough, Ask Bjorn Hansen created a film of 
conference attendees saying wacky things.  My personal favorite was this nutjob who 
talked about Microsoft poisoning the lunch they provided for OSCON.  Nutty.
<p>The last speaker was Milton Ngan from New Zealand who works 
at Weta.  He walked us through some of the infrastructure used to render Peter 
Jackson's Lord of the Rings:  The Two Towers.  You know the FX are 
slick when you can be shown how the magic is done and not lose any of the 
wonder for movie.
<p>With the conference officially over, many of us headed to the Portland 
Zoo.  I particularly enjoyed the primate section, complete with a pygmy 
marmoset, appeared hopped on goofballs, and an angst ridden Orangutan.  Of 
course, the bat cave, filled with 40 or so bats, was good for a creep.  When 
I saw the two leopards prostrated by the heat, I felt a little guilty about 
leaving my own cat to battle the rentless heat in Boston alone. <br>
Fortunately, I have a very short attention span.
<p>Later, a gaggle of geeks headed across the river to see The League of 
Extraordinary Gentlemen.  Even as a work of fiction, the script could have
been a bit more respectful to viewers who know the history of technology.  And 
there were plot holes wide enough to drive the Queen Mary through (the heroes 
stubbornly ignored obvious clues and portents so that they could put themselves
in danger several times).  And the actor who played the main villian 
(Professor Moriarty [yawn]) seemed utterly uninterested in this dog of a film. 
<p>Other then that, the movie was fine.
<p>I spent Saturday doing some recreational programming and attempting to 
do laundry.  There was a surprising amount of contention for the laundry 
apperatus.  I jotted down some ideas for talks I might give next year.  I'll 
try them at out on those poor, unsuspecting perl mongers near me.  If any 
of them are well-received, I'll pitch them to OSCON 2004.  I'm also considering
prefacing each talk with a 2-3 minute animation that features some of my music.
Bread and circus.  I think I can learn flash well enough to do this. <br>
Perhaps SVG also has tight integration between audio and visual components. <br>
<p>After a nap, I headed out for some pasta.  At the restaurant, two 
late-forties blonds, not unattractive but clearly experienced, were 
aggresively propositioning the waiter.  This flirtation struck me not as a 
gentle call for fun, but an ugly form of power-tripping.  For any server, 
it's ackward situation when the patrons ask for more service than you are 
prepared to give.  However as a disinterested third party, the scene 
added a delightful seasoning to an otherwise unremarkable meal. 
<p>I'm beat.  I write this on a bench looking across the Willamette River in 
the last rays of cloudy daylight.  I look forward to getting on that giant 
metal bird tomorrow and going home.  I had a great time at OSCON this year. <br>
Thanks to ORA conference staff and Gnat for once again birthing a seemingly 
flawless fiesta.  Portland, while not the ideal venue, proved to have more 
than enough local conveniences to make next year's OSCON a compelling 
destination. 
<p>One note: on the Portland-Chicago leg of the flight, a guy in my row 
passed out.  This necessitated that fabled cabin announcement "is there
someone with medical training on board?"  After a few moments of pure oxygen, 
the guy woke up.  The plane was able to arrive 30 minutes early under the 
rubric of a "medical emergency."  Edd Dumbill, in the row behind the afflicted 
passenger was involved in moving the semi-conscious bulk around a bit. <br>
Go, Edd.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13427">post</a> and <a href="http://use.perl.org/comments.pl?sid=14188">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[OSCON - day 3]]></title>
    <link href="https://www.taskboy.com/2003-07-10-OSCON_-_day_3.html"/>
    <published>2003-07-10T00:00:00Z</published>
    <updated>2003-07-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-07-10-OSCON_-_day_3.html</id>
    <content type="html"><![CDATA[<p><p>Those familiar with journalists reporting from a field of combat are acquainted with the term "fog of war,"  which is the breakdown of communication in knowing exactly what's going on.  It appears that war is not the only venue suspectable to communication breakdown.  Because of the events detailed later in this blog, you, gentle reader, must understand that I am reporting through the "fog of conventioneering."</p>

<p><p>Yesterday began with Tim O'Reilly's keynote about the emerging Internet operating system, which he defined as the collection of "infoware" web applications (eg. Yahoo, Amazon, Google) that will fundamentally move users way from PC-centric applications to ubiquitous data access.  Tim urged open source developers to design their applications with this platform of the future.  This was one of the most compelling talks I've heard Tim make.  While I'm certain his net-OS of the future will happen, I also now that it will take a lot longer to birth than he suggests.</p>

<p><p>The next speaker went on about Java and Eclipse and so held little interest for me.  He also had a bizzare way of pronouncing "java" that sounded like "JAY-VAH" to me. </p>

<p><p>I then attended the Larry and Damian show about Perl 6: The Reckoning.  It is clear to me now that Perl 6's design is settling down and that a lot of the scariest redesign suggestions have gone the way of the dodo.  What ever happened to currying functions, I wonder?  There is still perhaps 40% of the language to be designed, but the 60% that exists now is solid enough to make the last 40% much easier (I think).</p>

<p><p>Then came the excellent, musical and funny Lightning Talks.  Randy and Gnat have already mentioned the jolly good fun that was had by all.  There were a few technical glitches whose abscence would not have been missed.  Schuyler got all freaky with map projections, ending with one from Buckminster Fuller that maped the global onto a 20-sided die (I confess, there's a fancier name for this platonic solid that I can't remember right now).</p>

<p><p>The last session I attended was something I thought would be utterly out of my perview: using open source software with SAP, the enterprise resource planning behemoth.  Normally, the stories I hear about companies adopting SAP involve serious Germans coming into an adopting organization, soaking up a huge amount cash and breaking working business systems for several years.  I was pleasantly surprised about how open SAP has become.  SAP, in which business logic sits, now has a SOAP interface along with the weird binary RPC that's been there for a while.  This talk was given by DJ (of <em>Programming Jabber</em>) and Piers.  It was a good talk mared somewhat by poor timing on the part of the speaker ahead of them. </p>

<p><p>Then I attended the p5p party at Gnat's.  Walt
and I lugged two cases of beer, two bottles of wind, cups and chips up to the suite.  I then sort of fell into being the bartender.  Later, more beer was obtained and then the Wild Turkey came out.  I left at 3AM.  I'm a bit fuzzy today.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13379">post</a> and <a href="http://use.perl.org/comments.pl?sid=14136">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[OSCON - day 2]]></title>
    <link href="https://www.taskboy.com/2003-07-09-OSCON_-_day_2.html"/>
    <published>2003-07-09T00:00:00Z</published>
    <updated>2003-07-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-07-09-OSCON_-_day_2.html</id>
    <content type="html"><![CDATA[<p><p>Day 2 saw the continuation of wireless network problems.  Once again, I spent the day ensconced under the lobby stairs, meeting and greeting conference attendees.  I helped MJD move a sofa from a platform to ground level so that his "Tricks of the Wizards" talk would gain some Martha Stewart cache. <br>
Later that morning, someone showed me a copy of the Oregonian, whose business section featured a story about OSCON complete a color picture of ME.  I'm a <a href="http://home.houston.rr.com/ncolsen/Madonna.htm">tip-top star</a> now.  Although I lost a copy of that newspaper, I did photograph the story in question. 
<p>I spent a lot of time on IRC, talking to Dave "Chick Magnet" Adler and catching up with <a href="http://use.perl.org/~torgox/journal/">TorgoX</a>.  Later in the evening, as Torgo and I watched Invader Zim and listened to unlikely music, Tom Christiansen appeared with a mauled finger.  Apparently, conventioneering isn't for the mild. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13351">post</a> and <a href="http://use.perl.org/comments.pl?sid=14105">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[OSCON - Day 1]]></title>
    <link href="https://www.taskboy.com/2003-07-08-OSCON_-_Day_1.html"/>
    <published>2003-07-08T00:00:00Z</published>
    <updated>2003-07-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-07-08-OSCON_-_Day_1.html</id>
    <content type="html"><![CDATA[<p><p>Monday was a bit of a wash for me in the "gettin' my learn on" department because I was unable to sneak into tutorials.  Next year, I should pay for a tutorial or two.  However all was not lost.  I spent the day under the stairs in the main lobby where many of the tutorials were given.  Troll-like, I dispensed directions, advice and good cheer as an unofficial convention greeter.  I even have pictures to prove it.
<p>On the matter of pictures, I was assaulted brutely by the local paparazzi who insisted on taking several pictures of me for a Portland rag.  When will we as a society tell these lenticular roughnecks "the terror stops now!"
<p>I made several successful charisma rolls that day too, resulting in a lovely diner with Brian and Chris, two Java consultants from the Ohio area.  After dinner, I retire to my room to watch "American Choppers."  That Commache bike is going to be pretty sweet (I don't think Paul's adjective of "stealthy" quite fits). <br>
<p>Until tomorrow:  keep on rockin' in the Free World. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13328">post</a> and <a href="http://use.perl.org/comments.pl?sid=14082">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[OSCON - The Arrival]]></title>
    <link href="https://www.taskboy.com/2003-07-07-OSCON_-_The_Arrival.html"/>
    <published>2003-07-07T00:00:00Z</published>
    <updated>2003-07-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-07-07-OSCON_-_The_Arrival.html</id>
    <content type="html"><![CDATA[<p><p>The flight from Boston to Chicago to Portland went without excessive turmoil, although I would have been happier if the excitable Dutch 20 month-old next me had been far sleepier through the three hour and forty-five minute leg of the trip.  In any case, I sat next to <a href="http://www.juddsolutions.com/">Chris Judd</a> on the flight into Portland.  We had a very nice conversation about the challenges of pairing the proprietary Java with open source application development.  I should have given him my card, but my brain was still foggy with travel.  At the airport, we met up with <a href="http://www.plover.com/">MJD</a> and I volunteered to lug his mighty gong from the MAX light rail to the hotel.  I found that my wheeled suitcase made for an adequate hand truck.  </p>

<p><p>The city of Portland lies in the shadow of <a href="http://www.istravelonline.com/Mount%20Hood%20Oregon.jpg">Mt. Hood</a> and along the banks of the Willamette River.  The low humidity and mildy temperature are a welcomed change from the devilish climate of summertime Boston.  From the airport, the trip on the light rail, MAX (or as native Oregoner called it "the yuppy mover"), took about 20-30 minutes.  There was a lot of interesting woodsy scenery visible during the trip. </p>

<p>The Marriot seems like an affiable enough venue for OSCON.  At check-in, I saw <a href="http://use.perl.org/~gnat/journal/">Gnat's</a> back along with his son William, whose growing improbably quickly.  Since this is Gnat's most stressful time, I didn't want to bother him.  Yet.  There was a Blues festival happening on the waterfront directly adjacent to the Hotel.  I quickly ran into <a href="http://www.panix.com/~dha/">Dave Adler and <a href="http://use.perl.org/~ziggy/journal/">Ziggy</a>, whereupon beer was consumed.  After that, I directly ran into Tom Andresen of <a href="http://www.careersearch.net/">CareerSearch</a>, so more beer was consumed.  After that, I ran into a gaggle of my former O'Reilly co-workers, including CJ Rayhill, Tim Allwine and Pascal Honscher, so yet more alcohol was consumed. </p>

<p><p>Are you beginning to understand why I come to these conferences?</p>

<p><p>Sadly, my jetlag got the better of me by 9pm PDT and I had to crash.  As a nestled into to bed, I turned on the TV to find <a href="http://www.adultswim.com/">Adult Swim</a> on.  <a href="http://www.adultswim.com/shows/spaceghost/index.html">Space Ghost</a>, will you ever learn that Tansit just isn't cut out for television?</p>

<p><p>It is a 20 minutes past 7 PDT as I finish this entry and registration has just opened.  I didn't sign up for any tutorials, but I hope to sneak into see Damian's talk. <br>
<p>Ta-Ta For Now.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13304">post</a> and <a href="http://use.perl.org/comments.pl?sid=14059">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Who listens to my music?]]></title>
    <link href="https://www.taskboy.com/2003-07-07-Who_listens_to_my_music_.html"/>
    <published>2003-07-07T00:00:00Z</published>
    <updated>2003-07-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-07-07-Who_listens_to_my_music_.html</id>
    <content type="html"><![CDATA[<p><p>Long-time readers of this journal will note that I record <a href="http://taskboy.com/">my own music</a>.  I don't get a lot of feedback on this forum about my music and, really, why would I?  Since I'm on vacation, have a internet connection and a lot of time to kill, I decided to grep through the apache logs of taskboy and see who, if anyone else, is listening to my music.
<p>The results surprised me. 
<p>Here are the hostnames/IP addresses of my "fans".  Some of them are clearly robots (which is expected since I use a lot of synth vox).  Others a personal friends whom I badger into listening to my stuff.  The rest are complete strangers.  The number to the right indicates the number of time that host has downloaded mp3 files from taskboy. </p>

<p><p>

      p50802BA7.dip0.t-ipconnect.de   7
                      66.208.20.199   8
              gate2.progressive.com   8
                     209.232.145.10   8
            ncgent02.telenet-ops.be   8
                     gw.exalead.com   9
pool-162-83-159-64.ny5030.east.verizon.net   9
AToulouse-201-2-1-131.w193-251.abo.wanadoo.fr   9
                     211.101.236.79  10
bgp530310bgs.ebrnsw01.nj.comcast.net  10
ma-plymouthcenter4a-a-57.albyny.adelphia.net  12
        inktomi3-pop.server.ntl.com  12
                atrax0.pa-x.dec.com  14
                      intout.cbc.ca  14
adaroknas01-pool0-a8.adarok.tds.net  16
          extractor.singingfish.com  16
                      80.88.199.158  17
c-24-147-209-83.ne.client2.attbi.com  18
ma-plymouthcenter4a-a-101.albyny.adelphia.net  18
 h0001026eb619.ne.client2.attbi.com  18
dsl093-004-058.det1.dsl.speakeasy.net  21
c-24-118-186-83.mn.client2.attbi.com  22
            crawler1.crawler918.com  22
                dialip191.spinn.net  22
cpe.atm4-0-51291.0x50c6d2f6.bynxx8.customer.tele.dk  25
cpe.atm2-0-5152.0x50c6e6ba.bynxx10.customer.tele.dk  26
                  drunkenwhores.com  26
     d226-105-211.home.cgocable.net  28
cpe.atm4-0-51458.0x50c7669a.bynxx8.customer.tele.dk  29
 h005004190393.ne.client2.attbi.com  29
                     213.215.133.19  38
             n186175.ap.plala.or.jp  39
          validator.singingfish.com  45
  cr005r01-test.sac2.fastsearch.net  59
       mp3cr001.sac2.fastsearch.net 438
</p>

<p><p>It appears I'm big in Germany, a nation known for their love of irony and a strong, driving beat.  Also notice that DrunkenWhores.com is way into my stuff and who can blame them? <br>
<p>Here's the one-liner I used to extract this information from my 25M access log:</p>

<p>
bash-2.03$ cat access.log | grep "mp3" | perl -MSocket -lane '$ip{$F[0]}++; END{ for(sort{$ip{$a} &lt;=> $ip{$b}} keys %ip){ next if $ip{$<em>} &lt; 5; printf "%15s %3d\n", (gethostbyaddr(inet</em>aton($<em>), AF</em>INET) || $<em>), $ip{$</em>}}}'</p>

<p></p>

<p><p>Yes, I know that one-arg cat(1) is evil, but it works. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13310">post</a> and <a href="http://use.perl.org/comments.pl?sid=14065">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[heading out to OSCON]]></title>
    <link href="https://www.taskboy.com/2003-07-06-heading_out_to_OSCON.html"/>
    <published>2003-07-06T00:00:00Z</published>
    <updated>2003-07-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-07-06-heading_out_to_OSCON.html</id>
    <content type="html"><![CDATA[<p>Leaving the 90+ heat and humidity of Boston for Portland seems like a particularly good idea today.  See you in Portland.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13281">post</a> and <a href="http://use.perl.org/comments.pl?sid=14037">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[resource contention you can dance to]]></title>
    <link href="https://www.taskboy.com/2003-07-05-resource_contention_you_can_dance_to.html"/>
    <published>2003-07-05T00:00:00Z</published>
    <updated>2003-07-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-07-05-resource_contention_you_can_dance_to.html</id>
    <content type="html"><![CDATA[<p><p>Rule number one of taskboy: nobody talks about the song in progress called <a href="http://taskboy.com/music/dining_philosophers.mp3">Dining Philosophers</a>.
<p>Rule number two of taskboy: nobody comments on the secret song either. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13273">post</a> and <a href="http://use.perl.org/comments.pl?sid=14029">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Going down to Cowtown]]></title>
    <link href="https://www.taskboy.com/2003-07-03-Going_down_to_Cowtown.html"/>
    <published>2003-07-03T00:00:00Z</published>
    <updated>2003-07-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-07-03-Going_down_to_Cowtown.html</id>
    <content type="html"><![CDATA[<p><p>Like many folks here, I'll be at OSCON this year.  I leave Sunday, July 6th and return Sunday, July 13th.  I'm staying at the hotel where the conference is being staged.  My objective this year is expressly social.  Let the meeting and greeting begin!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13226">post</a> and <a href="http://use.perl.org/comments.pl?sid=13983">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Happy World UFO day!]]></title>
    <link href="https://www.taskboy.com/2003-07-02-Happy_World_UFO_day_.html"/>
    <published>2003-07-02T00:00:00Z</published>
    <updated>2003-07-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-07-02-Happy_World_UFO_day_.html</id>
    <content type="html"><![CDATA[<p><p>Take the <a href="http://news.bbc.co.uk/2/hi/uk_news/3036596.stm">BBC test on UFOlogy</a> and watch your cornhole, buddy. </p>

<p><p>Update:  I got 6 out of 10 right on the quiz.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13194">post</a> and <a href="http://use.perl.org/comments.pl?sid=13953">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[so long, boston.pm]]></title>
    <link href="https://www.taskboy.com/2003-07-02-so_long,_boston.html"/>
    <published>2003-07-02T00:00:00Z</published>
    <updated>2003-07-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-07-02-so_long,_boston.html</id>
    <content type="html"><![CDATA[<p><p>I've been a subscriber to the Boston Perl Mongers list since day one, when Chris Nandor set up in the last millennium.  There have been good times and bad times on the list.  However, I realized today that  I'm unlikely to ever contribute anything useful to the list and that I probably don't need to be in the loop on the many, many woodshed discussions that occur on that list, as pleasant as they are. <br>
<p>So today, I officially unsubscribe myself from boston.pm and join the illustrious ranks of the those other b.pm alums.  May the grand order of Perl Mongers ever increase and multiply â just not in my inbox. :-)<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13210">post</a> and <a href="http://use.perl.org/comments.pl?sid=13969">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The greatest day of this year]]></title>
    <link href="https://www.taskboy.com/2003-06-25-The_greatest_day_of_this_year.html"/>
    <published>2003-06-25T00:00:00Z</published>
    <updated>2003-06-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-06-25-The_greatest_day_of_this_year.html</id>
    <content type="html"><![CDATA[<p><p>For many Boston dwellers (including me), the <a href="http://story.news.yahoo.com/news?tmpl=story&amp;cid=383&amp;ncid=383&amp;e=1&amp;u=/ibsys/20030624/lo_WCVB/1670952">opening of the first Krispy Kreme</a> in Medford will be remembered as the greastest event of this year, bar none.
<p>hfb, pudge:  you left too soon!  It's always darkest before a wicked cool dawn.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13068">post</a> and <a href="http://use.perl.org/comments.pl?sid=13824">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[the boss]]></title>
    <link href="https://www.taskboy.com/2003-06-24-the_boss.html"/>
    <published>2003-06-24T00:00:00Z</published>
    <updated>2003-06-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-06-24-the_boss.html</id>
    <content type="html"><![CDATA[<p>Fenway!  Are you ready to <a href="http://ae.boston.com/news/daily/06/24/springsteen_fenway.html">rock</a>?<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13040">post</a> and <a href="http://use.perl.org/comments.pl?sid=13794">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[emergency A3 upgrade]]></title>
    <link href="https://www.taskboy.com/2003-06-23-emergency_A3_upgrade.html"/>
    <published>2003-06-23T00:00:00Z</published>
    <updated>2003-06-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-06-23-emergency_A3_upgrade.html</id>
    <content type="html"><![CDATA[<p><p>A3, a celeron 400Mhz w/96 Mb of RAM, valiantly tried to run Red Hat 6.0 with Windows 98 in a VM.  It mostly worked, but the performance was AWFUL.  Oh well.  I swapped in the PIII 866/256 machine that I bought from hfb and Mr. Jark.  It runs better now. :-)</p>

<p><p>It will take a few days to get the web site back, but I've got mail running again. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/13014">post</a> and <a href="http://use.perl.org/comments.pl?sid=13768">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Randal meet Wil. Wil, Randal]]></title>
    <link href="https://www.taskboy.com/2003-06-22-Randal_meet_Wil.html"/>
    <published>2003-06-22T00:00:00Z</published>
    <updated>2003-06-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-06-22-Randal_meet_Wil.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://forums.fark.com/cgi/fark/comments.pl?IDLink=557861">Oh Fark</a>, will you ever <a href="http://www.twoplayer.com/images/wil.jpg">learn</a>?<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/12997">post</a> and <a href="http://use.perl.org/comments.pl?sid=13750">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Beach Bible]]></title>
    <link href="https://www.taskboy.com/2003-06-20-Beach_Bible.html"/>
    <published>2003-06-20T00:00:00Z</published>
    <updated>2003-06-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-06-20-Beach_Bible.html</id>
    <content type="html"><![CDATA[<p><p><blockquote>
&laquo; Meanwhile the parable of the Good Samaritan is "the story of the good bloke." 
<br>
And the Three Wise Men greet the King of the Jews with a cheery, "G'day, your majesty."
<br>
â¦
<br>
"This is a reading book - it's what I call a bedside, bathtub and beach Bible," Richards stressed." &raquo;
</blockquote>
<p>âBBC: <a href="http://news.bbc.co.uk/2/hi/asia-pacific/3004112.stm">Australian Bible gets church backing</a><p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/12971">post</a> and <a href="http://use.perl.org/comments.pl?sid=13720">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Global Village People]]></title>
    <link href="https://www.taskboy.com/2003-06-20-Global_Village_People.html"/>
    <published>2003-06-20T00:00:00Z</published>
    <updated>2003-06-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-06-20-Global_Village_People.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://www3.telus.net/zig-zag/global-village-people.jpg">From Fark</a>.  Had the gentlemen pictured gone into music and not politics, perhaps we'd have watch a "Behind the Music" special about them in March and not had a war.  Funny. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/12966">post</a> and <a href="http://use.perl.org/comments.pl?sid=13716">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[New Metallica songs sound like John Denver]]></title>
    <link href="https://www.taskboy.com/2003-06-16-New_Metallica_songs_sound_like_John_Denver.html"/>
    <published>2003-06-16T00:00:00Z</published>
    <updated>2003-06-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-06-16-New_Metallica_songs_sound_like_John_Denver.html</id>
    <content type="html"><![CDATA[<p><p>Dude!  I just downloaded Metallica's <a href="http://abclocal.go.com/wpvi/news/61203-entmetallica.html">St. Anger</a> from Kazaa and man it's a totally new direction for them.  I mean, I know the guys are getting old, but this is way mellow, man.  Wait, are they being ironic?  Should I take the opposite of what they're singing about to be true?  Wow, that's heavy manâ¦</p>

<p><p>I hope John Denver sales sky rocket.  Metallica, why do you even bother anymore?<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/12879">post</a> and <a href="http://use.perl.org/comments.pl?sid=13622">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Kikkoman's foes:  banana and fried shrimp]]></title>
    <link href="https://www.taskboy.com/2003-06-09-Kikkoman_s_foes___banana_and_fried_shrimp.html"/>
    <published>2003-06-09T00:00:00Z</published>
    <updated>2003-06-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-06-09-Kikkoman_s_foes___banana_and_fried_shrimp.html</id>
    <content type="html"><![CDATA[<p><p>Continuing the <a href="http://use.perl.org/~jjohn/journal/9017">Kikkoman saga</a>, this flash animation shows Kikkoman's enemies (?!) plotting against him. <br>
Phear banana and fried shrimp</a>!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/12708">post</a> and <a href="http://use.perl.org/comments.pl?sid=13476">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[You Belong to Me]]></title>
    <link href="https://www.taskboy.com/2003-06-09-You_Belong_to_Me.html"/>
    <published>2003-06-09T00:00:00Z</published>
    <updated>2003-06-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-06-09-You_Belong_to_Me.html</id>
    <content type="html"><![CDATA[<p><p>I have uploaded my cover of Elvis Costello's <a href="http://taskboy.com/music/you_belong_to_me.mp3">You Belong to Me</a> 
that features some fiendish slide guitar.  There is very little MIDI in 
the final mix, except for the drums â even the organ and tamborine are
real.  Although I like the song, it's not one of my favorite EC tunes.  It sounds 
like a throwaway song to me and yet the lyrics are sublimely ironic.  That's 
what I call a work-ethic!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/12703">post</a> and <a href="http://use.perl.org/comments.pl?sid=13471">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Strong Bad: for good or for awesome?]]></title>
    <link href="https://www.taskboy.com/2003-06-05-Strong_Bad__for_good_or_for_awesome_.html"/>
    <published>2003-06-05T00:00:00Z</published>
    <updated>2003-06-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-06-05-Strong_Bad__for_good_or_for_awesome_.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://www.homestarrunner.com/">Home Star Runner</a> is a web cartoon of epic proportions.  It's got drama, action, romance and pathos.  Most importantly, it has Strong Bad.  This little guy wears a Mexican wrestling mask and boxing gloves while committing acts of basic naughtiness.  Marvel as Strong Bad flips you the <a href="http://www.homestarrunner.com/sbemail24.html">double duece</a>.  Thrill to the adventures of <a href="http://www.homestarrunner.com/sbemail57.html">anime Strong Bad</a>.  Learn how to <a href="http://www.homestarrunner.com/sbemail58.html">draw a dragon</a>.  No question is <a href="http://www.homestarrunner.com/sbemail38.html">too inaccessible</a>. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/12630">post</a> and <a href="http://use.perl.org/comments.pl?sid=13391">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[balls and socket]]></title>
    <link href="https://www.taskboy.com/2003-06-02-balls_and_socket.html"/>
    <published>2003-06-02T00:00:00Z</published>
    <updated>2003-06-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-06-02-balls_and_socket.html</id>
    <content type="html"><![CDATA[<p><p>Even though this is a web site devoted to technical content, readers of this blog will have noticed by now that I don't talk about technical 
matters much in my blog.  That's because I have other interests besides 
computers, despite the volumes of pornography and spam it provides me with. 
This entry is a different.  I want to talk about some of the problems and 
solutions I've found while working with the perl class IO::Socket.
<p>I confess that I'm not as strong as I'd like to be network programming. 
Sure I've read (most) of Lincoln Stein's excellent 
<a href="http://modperl.com:9000/perl_networking/">Network Programing 
with Perl</a>, thumbed through 
<a href="http://www.oreilly.com/catalog/cookbook/">Perl Cookbook</a> and even <a href="http://www.perldoc.com/perl5.8.0/pod/perlipc.html">Read The Fine Manual</a> but there are lots of issues that come up when I try to do socket level
stuff.  Debugging at this level is painful.  Recently I wrote some an XMLRPC
server based on HTTP::Daemon and Frontier::RPC2.  Why didn't I use 
Frontier::Daemon?  I needed much finer grained control than that pre-baked 
class provides.  I've used HTTP::Daemon before and it appears to be a jolly
good module. <br>
<p>And then entered Red Hat 8.0. 
<p>Mysterious, my sub-class of HTTP::Daemon which had worked fine on 
RH 7.x seem to hang on RH 8.0.  I traced to the cause to a select() function
that never detected that the client socket was ready to read.  So select() 
blocked until it timed out (180 seconds later).  This bug sent the 
(Leostream) team and me back to vanilla socket filehandles (abandoning 
HTTP::Daemon all together). 
<p>Time passes.
<p>The vanilla socket code that replace my IO::Socket extravaganza looked like
this:
<p>
  # â¦ socket initization code omitted
  while (accept(NS,S)) {
    my $cpid;
    defined ($cpid = fork) or next;
    if ($cpid) {
    next;
    }</p>

<p><code>while (&lt;NS&gt;) {
# read in request
}
</code></p>

<p>}

<p>Ok, this is a forking web server.  The forking code makes the socket stuff
a little weirder, but this code worked swimmingly in older projects.  Yet in 
the lab, this code would successfully read from (NS) the first connection but 
fail to accept any further connections.  This is baffled us mightily until 
we were a bit more pedantic in closing our socket handles.

   while (accept(NS,S)) {
      my $cpid;
      defined ($cpid = fork) or next;
      if ($cpid) {
    close(NS);
    next;
      }
      close(S);
      while () {
      }
   }

<p>This code works as advertized. <br>
<p>Time passes.
<p>The next socket problem that appear in this seemingly unassuming code
to does a socket connect to make sure that there's some server listening 
on the other end. 
<p>
   return IO::Socket->new(PeerAddr => $host,
              PeerPort => $port,
                      Timeout  => 2,
              Domain   => AF_INET,
              Proto    => 'tcp',
             ) ? 1 : 0;
 
<p>Seems simple enough.  The code creates a client socket to connect to
<code>$host:$port</code>.  If a valid socket connection is made, the function
returns 1.  Otherwise, it returns 0.  What could possibly go wrong?
<p>It appears that when a this code talks talks to RH 8.0 server that 
new() doesn't return until the timeout.
<p>The solution was to close the socket explicitly. 
<p>While I haven't isolated the select() "bug," I feel it must be related to 
sloppy socket code that doesn't close dead sockets explicitly. 
<p>The moral of this cautionary tale is to always explicitly close 
sockets, even if they seem to go out of scope on their own.
<p>I don't know if the problem is really related to RH 8.0 or not.
<p>Has anyone else run into similar socket problems?</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/12568">post</a> and <a href="http://use.perl.org/comments.pl?sid=13322">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Indian chicken curry]]></title>
    <link href="https://www.taskboy.com/2003-06-01-Indian_chicken_curry.html"/>
    <published>2003-06-01T00:00:00Z</published>
    <updated>2003-06-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-06-01-Indian_chicken_curry.html</id>
    <content type="html"><![CDATA[<p><p>When I waited tables at Pizzeria Uno, I became familiar with the horrible affliction that haunted my dreams as well as those of my 
cow-orkers.  The dreams typically took the form of the dreamer at work, 
desperately trying to perform a perfectly routine aspect of hisr job, such 
as entering an order into the dread machines.  In real life, register systems 
have become much more sophisticated and even less user-hateful (see 
<a href="http://www.positouch.com/">PosiTouch</a>).  However, when I was a 
waiter, there was a separate key for just about every item on the menu. <br>
Items not bound to a key could be entered with a Price Look-Up (PLU) number, 
which was listed on a scrap of paper often near the register.
Fumbling around in data entry land while your customers grow inpatient and 
numerous (as they do before a Red Sox game) is not an experience I would wish
on many people, even for the benefit of building character.  It's a 
situation like Lucy Ball on the chocolate factory 
assembly line but without the wacky hijinks.  This real-life trauma 
translated into a bowel-loosening nightmare of the Service Economy Age (or 
Toffler's 'Super-Industrialism').  My brothers-in-aprons dubbed this 
phenomenon an unomare.
<p>Despite not working at Uno's for almost 10 years, I was visited by an 
unomare last night.  So, I've got that going for me.
<p>Indian chicken curry is a dish into which I've only recently been clued.
It's delightful and shares many of the same flavors as Mexican dishes.  To 
my great surprise, chicken curry isn't all that hard to make.  Last night, 
I made a particularly good batch of the stuff.  So that I don't 
forget, I'm going to attempt to accurately write the recipe here so I can 
find it later. 
<p>Ingredients:</p>

<ul>
   <li>1 lb of boneless chicken (papa likes the white meat, but YMMV) 
   <li>tomato paste or sauce (8 oz can, but you don't need that much)
   <li>plain, unflavored yogurt (get the smallest cup you can get)
   <li>powered curry (I like it medium to hot)
   <li>chili relish
   <li>ginger root  (requires a grating board)
   <li>garlic bulbs (requires a garlic press)
   <li>white onion
   <li>peppers (I used 1 green, 1 red and 1 yellow)
   <li>lemon juice (fresh lemon is better, but bottled juice works too)
   <li>cooking oil (or butter â used for frying)
   <li>salt &amp; pepper
</ul>

<p><p>Preparation:</p>

<ul>
   <li>rough chop 1 1/2 cup of onions into a bowl
   <li>press 3-6 garlic bulbs into the onions
   <li>in another bowl, cut chicken into 1" cubes
   <li>rough chop 1-2 cups of peppers into a third bowl
   <li>into a fourth bowl:
    <ul>
       <li>add 5 tbsp (tablespoons) of yogurt
       <li>5 tbsp of tomato paste/sauce
       <li>3 tbsp of chili relish
           <li>5-7 tbsp of curry
           <li>1 tbsp of lemon juice
           <li>1-2 tbsp of grated ginger
       <li>pinch of salt and pepper 
        </ul>
       The sauce should have the consistency of a think chowder or heinz 
       ketchup.  It shouldn't be too thick to pour, nor too watery.  If 
       the sauce is too thick, carefully add water to make it thinner. 
   <li>mix the contents of the fourth bowl until the goop is homogenous
</ul>

<p><p>Cooking:</p>

<ul> 
  <li>start cooking your basmati rice or whatever you intend to eat the 
      chicken curry with (I start the rice before the preparation stage)
  <li>into a large frying pan set set over medium-high heat, add 1-2 tbsp 
      of oil
  <li>dump the onions/garlic into pan and cook them until carmalized 
     (golden brown)
  <li>add another tbsp of oil or water to pan
  <li>dump chicken into pan with the onions, etc
  <li>cover pan and cook for 3 minutes or until most of the chicken cubes
      are no longer pink
  <li>dump the peppers into the pan
  <li>cook covered for about 3 minutes
  <li>add the curry sauce.
  <li>cook covered for about 5-10 minutes or until the chicken is cooked
</ul>

<p><p>Plate a healthy portion of rice topped with a similar helping of chicken 
curry.  Since I haven't tackled making bread yet, I find Sahara Pita bread 
to be a fair replacement for nan bread.  I believe chicken curry often has 
some kind of green pea in the sauce, but I'm more at home with peppers. <br>
<p>I hope this recipe helps you kick your dinners up ANOTHER NOTCH. BAM!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/12544">post</a> and <a href="http://use.perl.org/comments.pl?sid=13298">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[I sure hope the UN doesn't hear about this]]></title>
    <link href="https://www.taskboy.com/2003-05-31-I_sure_hope_the_UN_doesn&apos;t_hear_about_this.html"/>
    <published>2003-05-31T00:00:00Z</published>
    <updated>2003-05-31T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-05-31-I_sure_hope_the_UN_doesn&apos;t_hear_about_this.html</id>
    <content type="html"><![CDATA[<p><p><blockquote>&laquo;[US] Administration officials say they have not yet decided whether to produce the first new nuclear weapons in more than decade. But they say that the United States must consider retrofitting its Cold War-era atomic arsenal for the 21st century, and that existing restrictions on research have been "chilling" potential progress in the field of nuclear weaponry.
<br><br>
Scientists, officials say, need freedom to explore new concepts in an era when threats come from terrorists and smaller states rather than a rival superpower fortified with its own intercontinental missiles.
&raquo;</p>

<p></blockquote>
âInternational Herald Tribune: <a href="http://www.iht.com/articles/97595.html">US shift on nuclear arms stirs concern</a></p>

<p><p>Remember: these baby-nukes ("nukettes" really) aren't weapons of mass destruction â unless used in quantity.  I'm certain other nations, like Iran and North Korea, can easily understand how the US can, at the same time, back out of ICBM treaties</a> and actively research new atomic weapons while also punishing other non-English speaking countries for pursuing their own programs. The UK appears to be stepping up their atomic programs too, but that's OK.  To those who call this policy hypocritical, reckless, and ill-advised, I say <a href="http://www.fas.org/faspir/2001/v54n1/weapons.htm">what do you know</a>?
<p>This story was also discussed on <a href="http://www.plastic.com/article.html;sid=03/05/29/16281972;cmt=95">plastic.com</a>.  Also, the homeland security level has been reduced to Yellow because I guess The Terrorists don't work weekends. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/12535">post</a> and <a href="http://use.perl.org/comments.pl?sid=13286">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Two-headed turtle]]></title>
    <link href="https://www.taskboy.com/2003-05-30-Two-headed_turtle.html"/>
    <published>2003-05-30T00:00:00Z</published>
    <updated>2003-05-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-05-30-Two-headed_turtle.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://news.bbc.co.uk/2/hi/africa/2949978.stm">Whoa!</a><p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/12522">post</a> and <a href="http://use.perl.org/comments.pl?sid=13271">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Buffy goes down]]></title>
    <link href="https://www.taskboy.com/2003-05-20-Buffy_goes_down.html"/>
    <published>2003-05-20T00:00:00Z</published>
    <updated>2003-05-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-05-20-Buffy_goes_down.html</id>
    <content type="html"><![CDATA[<p><p>After seven seasons, it all comes down to this last episode for Buffy the Vampire Slayer airing tonight.  Although my favorite seasons were the first three, Buffy frequently had crisp writing and sharp dialog that rewarded the careful viewer.  TV desperately needs more of the kind of write Team Whedon produced.  It nice to see a show challenge traditional showbiz saws like "blond chicks are stupid" and "little girls are for slaying."  However, I wish that the male characters were imbued with some of the steel that seemed to be the execlusive pervue of Buffy's leading ladies.  Xander seemed perennially under-equipped for most situations, Giles seemed mostly harried and flustered, Angel was always too forelorn for me and Spike was great as a punk, but then he got p-whipped by the Buffster.  For a show that had balanced characters of different genders better, rent a few episodes of <a href="http://www.savefarscape.com/">Farscape</a></p>

<p><p>Perhaps I'll tune into tonight for the end.  Perhaps I'll wait for the reruns.  I don't know.  I expect that Buffy is going to die (again).  After, that's what heroes do.  Let's hope this Big Sleep is permenant.  Now that's the way to end a series!
<p>update: Saw a little bit of the show last night.  The wrong characters died. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/12327">post</a> and <a href="http://use.perl.org/comments.pl?sid=13053">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Thanks to all my fans]]></title>
    <link href="https://www.taskboy.com/2003-05-18-Thanks_to_all_my_fans.html"/>
    <published>2003-05-18T00:00:00Z</published>
    <updated>2003-05-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-05-18-Thanks_to_all_my_fans.html</id>
    <content type="html"><![CDATA[<p><p>I'd like to officially thank all my <a href="http://use.perl.org/~jjohn/fans">use.perl.org fans</a>.  You guys and gals all rock!  I salute you!  This year, I will work harder than ever to earn your fandom.</p>

<p>Is there going to be a use.perl.org BOF at OSCON this year? Pudge? Gnat? Torgox?<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/12285">post</a> and <a href="http://use.perl.org/comments.pl?sid=13007">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[naked furniture and preening cormorants]]></title>
    <link href="https://www.taskboy.com/2003-05-18-naked_furniture_and_preening_cormorants.html"/>
    <published>2003-05-18T00:00:00Z</published>
    <updated>2003-05-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-05-18-naked_furniture_and_preening_cormorants.html</id>
    <content type="html"><![CDATA[<p><p>It was a spectacular spring day in Boston.  Is it safe to retire my 
winter clothes to storage yet?  Let's not be too hasty.  I took early 
advantage of the day by going on a long bike ride around the Charles river.
Leaving from Kenmore, I first made my way east to the Museum of Science then
went west along the Cambridge side of the river, going past Harvard Square
and the Arsenal Mall (yes, the Mall really was a place that once made guns and 
ammo but now sells Pokemon t-shirts and New Balance sneakers instead) 
finally arriving in downtown Watertown.  Then the fun began as I headed east 
again through the thickly wooded bike path that undulates like a kiddy 
rollercoaster in parts.  Good clean fun there!  I made it back to my 
apartment in two and a half hours.  The whole route was about eleven or 
twelve miles.  Without hesitation, I can confirm I was thoroughly winded. <br>
I'm still trying to work off last year's blubber before I needed again for 
winter ought-3.</p>

<p><p>Another motivation for biking along the Charles is the scenery.  Am I 
talking about the co-eds at BU, Harvard and MIT, not to mention the upwardly
mobile ladies of the Hub?  Of course I am.  Don't be absurd.  Yet to the 
patient observer, the Charles also offers an inspiring display of wildlife. <br>
The <a href="http://www.mbr-pwrc.usgs.gov/id/framlst/Photo/Images/h1200p3.jpg">cormorants</a> 
were out in force today.  Near MIT, I saw clutch of the black 
things holding court on one of Harvard's docks.  With their awkwardly long 
beaks and slick black feathers, they fleetingly remind you of living gargoyles.
Near Watertown, I saw about six of them perched mid-river on a branch that was 
blanched and striped of bark.  The birds, already freaky enough on their own, 
gave this otherwise prosaic scene a menace that I can't explain.  I do wish
I had brought my camera.  Next time.</p>

<p><p>Later in the day, I wondered toward Copley Square to get my locks butchered
at SuperCuts.  Why do I go to SuperCuts?  It's $12.50 for a haircut. <br>
Now mind you, that twelve dollars doesn't get you a good haircut or 
one that will get you a job or a mate, but the hair dressers there are <br>
efficient so the hair razing is dispatched with aplomb.  After all, I'm not 
really looking for that "ready-for-action Disco look" that Bloom County's 
Opus was so keen to get.</p>

<p><p>After my haircut, I got a hot chocolate at Starbucks and headed over to 
the Mother Church of the Christian Scientists and read some of Thompson's 
Fear and Loathing in Las Vegas.  This is a book I've been meaning to 
read since high school.  It influenced some of my friends in a not-at-all 
preventative way.  If I hadn't heard the incomprehensible interview Thompson
gave to Letterman in the mid-eighties, I would have thought it impossible 
for such a drug fiend to write with such clarity, irony and prowess (yes, 
I know about <a href="http://www.thelemicgoldendawn.org/acf/">Aleister 
Crowley's</a> autobiography).  Thompson's prose is masterfully wrought. <br>
Modern essayists may wish to revisit this classic (I'm looking at you, 
<a href="http://www.randomhouse.com/boldtype/0698/wurtzel/">Ms. Wurtzel</a>).</p>

<p><p>I then purchased an unfinished wooden bookcase that will house my VHS 
tapes and possibly my DVDs.  I went the extra distance today and stained the 
cabinet with Ipswitch Pine stain.  It's a little blotchy in spots, but overall
I'm happy with the results.  My watercolor paints are calling to meâ¦</p>

<p><p>All this means I have successfully dodged doing any real work.  But that's 
a Monday problem. ;-)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/12289">post</a> and <a href="http://use.perl.org/comments.pl?sid=13011">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Weapons of Mass Distraction]]></title>
    <link href="https://www.taskboy.com/2003-05-17-Weapons_of_Mass_Distraction.html"/>
    <published>2003-05-17T00:00:00Z</published>
    <updated>2003-05-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-05-17-Weapons_of_Mass_Distraction.html</id>
    <content type="html"><![CDATA[<p><p><blockquote>The OSP is the brainchild of Defence Secretary Donald Rumsfeld, who set it up after the 2001 terrorist attacks. It was tasked with going over old ground on Iraq and showing that the CIA had overlooked the threat posed. But its rise has caused massive ructions in the normally secretive world of intelligence gathering. 
<br> <br>
The OSP reports directly to Paul Wolfowitz, a leading hawk in the administration. They bypassed the CIA and the Pentagon's own Defence Intelligence Agency when it came to whispering in the President's ear. They argued a forceful case for war against Saddam before his weapons programmes came to fruition. More moderate voices in the CIA and DIA were drowned out. The result has been a flurry of leaks to the US press. One CIA official described The Cabal's members as 'crazed', on a 'mission from God'. </p>

<p></blockquote>
<p>âObserver: <a href="http://www.observer.co.uk/iraq/story/0,12239,953604,00.html">US rivals turn on each other as weapons search draws a blank 
</a><p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/12266">post</a> and <a href="http://use.perl.org/comments.pl?sid=12986">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Star Wars and Farscape]]></title>
    <link href="https://www.taskboy.com/2003-05-16-Star_Wars_and_Farscape.html"/>
    <published>2003-05-16T00:00:00Z</published>
    <updated>2003-05-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-05-16-Star_Wars_and_Farscape.html</id>
    <content type="html"><![CDATA[<p><p>If the subject line hasn't frightened you off yet, I'll keep this brief.  It just occurred to me that the first three season finales of Farscape mirrored the endings of the first Star Wars trilogy. </p>

<ul>

  <li>Star Wars ends with Luke blowing up the Death Star. Farscape season 1 ends with Crighton blowing up Scorpy's Gamek base.

  <li>The Empire Strikes Back shows how the Empirial forces seriously set back the Rebels' plans.   Farscape season 2 ends with Crighton strapped in an operating table with part of his skull removed, his ability to talk coherently gone and Aeryn Sun dead.  These would all be setbacks for Team Moya.

  <li>Return of the Jedi shows the final destruction of the Empire's latest Death Star and, presumably, the Empire itself.  Farscape season 3 ends with Crighton destroying both Scorpy's command carrier and Scorpy's Peacekeeper career.  
</ul>

<p><p>I think these parallels help explain the popularity of the Farscape's first three seasons and why season 4 seems to be a little directionless.  Farscape appeared to be telling a grand story that had familiar rhythms. I do think that by the end of season 4, Farscape got it's "Plot On" by setting up an almost certain war between the Scarrans and Peacekeepers.  We'll never know now that Farscape is gone. <br>
<p>Hail DVDs!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/12247">post</a> and <a href="http://use.perl.org/comments.pl?sid=12965">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Meet the Quickies]]></title>
    <link href="https://www.taskboy.com/2003-05-15-Meet_the_Quickies.html"/>
    <published>2003-05-15T00:00:00Z</published>
    <updated>2003-05-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-05-15-Meet_the_Quickies.html</id>
    <content type="html"><![CDATA[<p><p>Both because I'm pressed for time and this trick appeared somewhat popular before, here again is a bulleted list of opinion barfing on current issues.</p>

<ul>

   <li><a href="http://news.bbc.co.uk/2/hi/americas/3025673.stm">Dems walk out of Texas gov't</a>.  When I first heard about this I thought "finally, the democrats are getting a backbone and standing up to the wave of fascism sweeping America." Then I learnt that they were protesting jerrymander, that is prejudicial redistricting likely to insure a Republican landslide come next election.  Now I'm no fan of jerrymandering (even though the term comes from the Great State of Massachusetts), but   it's bloody disheartening to find that to these clods the only issue worth fighting for is their  worthless little jobs.  Poor leadership writ large.  What about the millions of Americans jobless for past 3 years?  Where's the sense of outrage there?  Or for the poor bastards whose retirement plans evaporate in the huge corporate  scandals of 2001-2002?  Churchhill was right; democracy is the worst form of government, save for all the others.  Texas dems, stop your cowering and take your ousters like adults.  If you had only shown some "true grit" these past few years, you might be in a better position to survive redistricting.

<li>Matrix: Reloaded and X-Men 2 open.  Big deal.  Real life is so fictional at this point, History channel documentaries are escapist.  Free tip for Hollywood:  computer FX don't replace plot.  

<li><a href="http://news.bbc.co.uk/2/hi/middle_east/3029929.stm">Israeli tanks roll into Gaza</a>.  This happens during the anniversary of "Catastrophe day," when the Palestinians were displaced by the creation of Israel.  Talk about history repeating itself! 

<li><a href="http://news.bbc.co.uk/2/hi/americas/3029761.stm">Car bombing in Saudi Arabia</a>.  Who the hell didn't see this coming?  Didn't the terrorists get a copy of the Roadmap to Peace?  George's war didn't really cool the tensions in the Mid-East much, nor did it make Americans safer.  Hell, it didn't make Arabs safer either.  As many Saudis died in the attack as Americans.  Good shotin', al-Qaeda.  Are you guys still on the US payroll?  In any case, the war cost $75 billion dollars, so that's nice.  That Roadmap is looking mighty dog-earred. 

<li><a href="http://news.bbc.co.uk/2/hi/asia-pacific/3029963.stm">Japan boosts military</a> while <a href="http://news.bbc.co.uk/2/hi/business/3029677.stm">Germany economy tanks</a>.  It's starting to look like World War II again.  Talk about history repeating itself!

 <li><a href="http://news.bbc.co.uk/2/hi/entertainment/3026741.stm">Tastless 9-11 art</a>.  In the spirit of a yellow traffic sign, some schmuck in NYC painted a sign on a building's wall near Ground Zero that cautioned "low flying planes."  I found this marginally funny, but the artist backpeddled and thus lost cred in my eyes.  We are a nation that likes tasteless humor, just watch any sitcom on network TV.  Hell, watch any movie with Adam Sandler.  However, humor is a healing agent for loss.  It's time the US got on with it's life and stopped being so bloody angry at the world for not enjoying its supreme power.  9-11 sucked. Sucked donkey balls.  Wouldn't want to see that happen again.  Now, bring on the court jesters!  The US is the richest and most comprehensively armed nation in the world, past or present.   Think back to high school.  Didn't you secretly want to dump a vat of pig's blood on the most popular kids at the prom?  Think of al-Qaeda as an overactive Carrie.  More suppression isn't likely to bring peace, unless what you're looking for is the brutality of pax romana. 

<li>George Bush ignores domestic issues. Besides the systemic stripping of personal liberties undertaken by Ashcroft and turning a blind eye to ruinous patent laws, Bush appears to be hoping we'll forget about those corporate thieves and liars who stole billions of dollars from investors and employees alike.  Oh, that tax cut is insane and will bare maggot-laden fruit should that over-privileged, monomanical oil-monkey get elected again in 2004.  That assumes that elections will be held at all, of course.

<li>The Democrat contenders for 2004 are the most  wan and anemic collection of washed-up political hacks I've seen in at least 4 years.  Can we get Tony Blair to run for office over here?  At least he plays the part of "world leader" convincingly. 
</ul>

<p><p>You got a problem with this?  Comment away. </p>

<p><p>Update: 
Dems won't even take Bush to task over <a href="http://www.washingtonpost.com/wp-dyn/articles/A1155-2003May16.html">the failure to find WMD in Iraq.  I knew that the Constitution requires presidents to be at least 45 years old.  I guess I thought it was implicitly understood that candidates must also be vertebrates.  My bad.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/12215">post</a> and <a href="http://use.perl.org/comments.pl?sid=12932">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Pictures in albums]]></title>
    <link href="https://www.taskboy.com/2003-05-12-Pictures_in_albums.html"/>
    <published>2003-05-12T00:00:00Z</published>
    <updated>2003-05-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-05-12-Pictures_in_albums.html</id>
    <content type="html"><![CDATA[<p>I redesigned the <a href="http://taskboy.com/pictures/">pictures</a> section on Taskboy.  Just like I do for the music section, I now use a CSV file to hold the metadata  for my photos.  I can group photos into "album" which is a meatspace metaphor for web pages. </p>

<p><p>Go have a look.  There are a few perlers there in candid repose. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/12127">post</a> and <a href="http://use.perl.org/comments.pl?sid=12835">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[American Choppers]]></title>
    <link href="https://www.taskboy.com/2003-04-22-American_Choppers.html"/>
    <published>2003-04-22T00:00:00Z</published>
    <updated>2003-04-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-04-22-American_Choppers.html</id>
    <content type="html"><![CDATA[<p><p>I didn't grow up a motor head, even though both of my brothers had motorcycles growing up.  They always appear too dangerous to bother with.  Thanks to the Discovery Channel, I can vicariously become a Hell's Angel by watching the wild antics of Jesse James of <a href="http://www.westcoastchopper.com/">West Coast Chopper</a> fame on Monster Garage.  Or I can watch the what happens when a type-A father browbeats his artsy son on American Chopper. <br>
Dysfunctional families never <a href="http://www.orangecountychoppers.com/">looked so good</a>!  I really enjoy watching raw metal being twisted into art.  When did the back tire of motorcycles get so fat?  So many mysteriesâ¦<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/11773">post</a> and <a href="http://use.perl.org/comments.pl?sid=12458">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Jump the Shark]]></title>
    <link href="https://www.taskboy.com/2003-04-16-Jump_the_Shark.html"/>
    <published>2003-04-16T00:00:00Z</published>
    <updated>2003-04-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-04-16-Jump_the_Shark.html</id>
    <content type="html"><![CDATA[<p><p>Like Napolean at Waterloo, TV shows that start off perfectly fine often end as complete rubbish.  TV fans have coined the term "jumping the shark" (referring to a horrible, horrible episode of the oft-lame Happy Days) to label that one special episode of a series that utterly destroys the viewer's hope for better episodes in the future. 
<p>Now there's a <a href="http://www.jumptheshark.com/">web site</a> to facilitate research into this all to common afflication.
<p>I refer you to the page on <a href="http://www.jumptheshark.com/b/buckrogers.htm">Buck Rogers</a>.  One might suggest that it was terrible from the get-go, but my friend <a href="http://use.perl.org/~zorknapp/journal/">Zorknapp</a> will tell you Buck Rogers jumped the shark with the introduction of <a href="http://members.cox.net/twiki/hawk3.jpg">Hawk</a>. 
<p>Your thoughts? <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/11684">post</a> and <a href="http://use.perl.org/comments.pl?sid=12365">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Superstar]]></title>
    <link href="https://www.taskboy.com/2003-04-16-Superstar.html"/>
    <published>2003-04-16T00:00:00Z</published>
    <updated>2003-04-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-04-16-Superstar.html</id>
    <content type="html"><![CDATA[<p><p>Independent musicians have a tough row to hoe.  If you don't want to get involved with the RIAA, how can you support yourself?  <a href="http://www.indyworld.com/kochalka/">James Kochalka</a> (aka "Superstar") fights the good fight by having a subscription comic (Fancy Froglin), a site on <a href="http://artists.mp3s.com/artists/10/james_kochalka_superstar.html">MP3.com</a>, 
and selling his books on Amazon.  I imagine he's not going to get rich any time soon, but I think this is the future for musicians:  leveraging as many free or low-cost online resources as possible   to reach a "global" market.  I believe within 5 years, some band or musician will explode onto the music scene without a traditional label backing them.  That will scare record execs far more than Napster ever did. 
<p>And I'll laugh.
<p>Speaking of laughing, listen to <a href="http://taskboy.com/music/m_vs_r_jjohn.mp3">my cover</a> of James' "Monkey vs. Robot".
<p>Also check out James' <a href="http://www.dangerfive.com/jks/orbit.mp3">I Orbit You</a>, a song constructed from the muzak of various NES video games.</p>

<p><p>UPDATE: Here's what James had to say about my cover:</p>

<blockquote>
That's pretty funny!  The ending is especially great with all the samples.
I'm going to post your link on my site.
</blockquote>

<p>Indies unite!  Oh wait a minuteâ¦<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/11689">post</a> and <a href="http://use.perl.org/comments.pl?sid=12369">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Heavy water]]></title>
    <link href="https://www.taskboy.com/2003-04-11-Heavy_water.html"/>
    <published>2003-04-11T00:00:00Z</published>
    <updated>2003-04-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-04-11-Heavy_water.html</id>
    <content type="html"><![CDATA[<p><p>Here's <a href="http://taskboy.com/music/heavy_water.mp3">a song</a> that demonstrates I'm no pillow biting soft rocker!  I can play distored slide guitar in D minor too.
<p>UPDATE: I expanded and enhanced this song.  It now features a clip of JFK dictating a speech as well as news reel news about the A-Bomb.  Samples are my friend.  <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/11593">post</a> and <a href="http://use.perl.org/comments.pl?sid=12272">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Random thoughts on weight loss]]></title>
    <link href="https://www.taskboy.com/2003-04-10-Random_thoughts_on_weight_loss.html"/>
    <published>2003-04-10T00:00:00Z</published>
    <updated>2003-04-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-04-10-Random_thoughts_on_weight_loss.html</id>
    <content type="html"><![CDATA[<p><p></p>

<ul>
 <li>"I'm not fat â you're way too fucking skinny."
 <li>"Richard Simmons was misquoted in the movie
        Star Trek: Generations. The full quote is
     'Time is the fire in which we burn calories!'"
 <li>If you want to feel better about yourself, hang around with
    fatter people.
 <li>Cat's love being fat and it appears they consider it a sign of verility.
 <li>In wilderness, no one chastizes bears for their pot bellies.
</ul>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/11575">post</a> and <a href="http://use.perl.org/comments.pl?sid=12252">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[24-bit sound: Getting more angels on a pin's head]]></title>
    <link href="https://www.taskboy.com/2003-04-09-24-bit_sound__Getting_more_angels_on_a_pin_s_head.html"/>
    <published>2003-04-09T00:00:00Z</published>
    <updated>2003-04-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-04-09-24-bit_sound__Getting_more_angels_on_a_pin_s_head.html</id>
    <content type="html"><![CDATA[<p><p>Why 24-bit sound is crazy talk, but we'll all end up there anyway</p>

<p><p>I like <a href="http://taskboy.com/">music</a> â it's in my blood.  My
mother, in her maiden days, sang in a local Big Band and my grandfather played
Hammond organs wherever he could find the work (which wasn't often
during the Great Depression).  I grew up in a house that always had guitars
and keyboards around.  The first instrument I learned to play was, to the
chagrin of my parents, the snare drum.  I was in the fourth grade and I
sucked.  In fact my entire section of snare drummers sucked.
<p>Sucked Bad.</p>

<p><p>We had so little ability with rhythm that our section had to practice
<em>separately</em> from the rest of the school orchestra.  The emotional
scars are still healing, thanks for asking.</p>

<p><p>I learned guitar in high school with the help of school chum, Nick
Sevano.  The first song I learned to "play" was Pink Floyd's Set the
Controls for the Heart of the Sun, which comprises four different notes.
I soon learned the vocal line to Duran Duran's seminal anthem,
Hungry Like the Wolf.  Somehow, The Association's Wendy slipped
in the mix, but that's not relevant right now.</p>

<p><p>I used to record my "playing" using a single track of a standard stereo
tape deck.  I discovered early on that I could record one track on, say, the
left channel and then I could record on right track while listening to the
playback on the left channel.  The result?  Awful beyond words.</p>

<p><p>When I got to college (the first time), I discovered the unalloyed joy of
4-track cassette recording.  My first solo 4-trackin' experience was a trippy
cover of Hendrix's/Dylan's All Along the Watchtower in E minor.
Somewhere, I still have that festival of digitally delayed feedback mastered
onto stereo cassette.</p>

<p><p>The point is that I've been involved with home recording to some degree
for over a decade.  I've got both imperical and academic knowledge of the
way sound works, although it's not as extensive as the lore known by
<a href="http://recpit.prosoundweb.com/">professional sound engineers</a>.
However, I do understand how computers interpret analog sound.  Here's a brief
primer on the challenges of digitizing audio.</p>

<p><p>The fundamental problem with sound is that there's so darn much of it.
More precisely, analog sound comes in continuous waves.  Computers (I'm
referring to PC's here) are digital and can only understand discrete values
(like "on" and "off").  It is easy enough to measure the amplitude of the wave
at given point in time.  This produces a discrete value which makes the
computer happy.  However, converting a continuous analog sound wave into a
series discrete values means that some parts of that wave will not be
captured.  If you are numerically inclined, this problem is similar to asking
what real number comes after 1.0. Is it 1.1? 1.01? 1.0001? There is no correct
answer to this question.  You simply have to pick a precision that you can
handle.  Similiarly, the Digital Audio Converters (DACs) on your PC's soundcard
can't take an infinite number of measurements (or samples) of a soundwave.
Even if the hardware could, there isn't a hard drive in existence that can
hold an infinity of samples.  Instead, DACs take a fixed number of samples per
second â enough to fool the human ear into hearing a continous sound.  For
CD-quality sound, that sample rate is around 44,000 samples per second.</p>

<p><p>What's so magical about 44,000 samples per second?  The answer is that it's
better than twice 20,000.  That doesn't clear it up for you?  First,
understand that the range of human hearing is roughly between 20 and 20,000
hertz (hertz being a measurement of sound frequency).  What's interesting to
me about this fact is that it is unrelated to the loudness (decibels) of the
sound.  Even a 120 dB 10 hz sound wave (a level of noise normally encountered
on tarmacs and Jimmy Page concerts) isn't perceived as sound by humans.
Remember that DACs sample sound a specific rate. Imagine a very low sample
rate of 1 sample per time unit, but the sound's frequency is a little faster
than that, as the horrible ASCII art below suggests.</p>

<p></p>

<p>f|       x .              . .
 r|     .     .          .     x
 e+â-.â|â-.âââ.ââ|.âââââ
 q|   .         .     .          .
 .|       1       . .          2  .</p>

<p><code>             (time)
</code></p>

<p></p>

<p><p>If each 'x' is the place where the DAC samples the sound, it's easy to
see that there's a lot of wave dynamic missing from that data set.  When
played back, the wave form is said to be aliased.  That is, instead
of getting that nice sine wave back, the computer "draws" a straight line
between the points, like the following badly drawn figure illustrates.</p>

<p></p>

<p>f|       â¦â¦â¦â¦â¦â¦â¦.
 r|       .                    â¦â¦â¦â¦â¦.
 e+â-â¦.âââââââ|âââââ-
 q|
 .|       1                    2</p>

<p><code>             (time)
</code></p>

<p></p>

<p><p>This is the problem of representing continuous data in a discrete
format: information gets lost. Computer monitors have exactly the same
problem with displaying curved images, like fonts (which has given rise
"anti-aliasing", the trick of painting "in-between" pixels in a combination
of the font and background color that almost fools the human eye into seeing
a curve where none really is).</p>

<p><p>So to prevent noticable aliasing, you want to sample at rate that's below
human perception.  Since the fastest frequency humans perceive is 20 khz,
you might be tempted to think that that's "good enough" for sampling.
It's not quite. At 20 khz, it's still possible to notice aliasing.  Foolishly,
I recorded <a href="http://taskboy.com/music/doubt.mp3">Question of Doubt</a>
with a sampling rate of 20 khz and the result sounds "fuzzy" or "cottony"
(it's the song's arrangement that sounds "crappy").  The sounds lack the
clarity and punch of the analog cassette master.  If we doubled the sampling
rate in the figures above, notice how the signal begins to approximate the
original more closely.</p>

<p></p>

<p>f|       x .              . .
 r|     .     .          .     x
 e+â-.â|â-.âââ.ââ|.âââââ
 q|   .         .     .          .
 .|       1       x .          2  .x</p>

<p><code>             (time)
</code></p>

<hr>

<p>f|       â¦â¦â¦
 r|       .       .           â¦â¦â¦.
 e+â-â¦.ââ-.ââââ.|ââ-.âââ
 q|               .           .        .
 .|       1       â¦â¦â¦â¦.2       â¦â¦..</p>

<p><code>             (time)
</code></p>

<p></p>

<p><p>By sampling twice as much as the top of human hearing, aliasing occurs at
levels that are noticed by very few human ears, if any (of course, you will
run into plenty of "experts" that claim to hear the difference).</p>

<p><p>So the sample is important to sound quality, but what about the numeric
value of each sample?  Recall that samples are measurements of the wave's
amplitude, which indicate the volume of the sound.  The actual units aren't
important, but the number of units is.  In other words, if I can only
represent sound as being on or off, I have to pick some decibel level below
which a sound is considered to be 'off' and louder sounds are 'on'.  Because
I have only one value for 'on', all frequencies will be reproduced at the
same decibel level.  Eew.  So, the more gradations I choose to represent the
decibel level, the richer the sound will be at playback.  Again, CD-quality
bit rate is 16.  As all good Comp Sci majors know, 16 bits holds
65,536 values.  Is this good enough for human perception?  While the frequency
perception of human hearing has a rather broad range, our perception of
decibel changes is much more limited, somewhere above 0 to about 120 (at
which point auditory damage occurs).  Keeping in mind that aliasing is as much
a concern for representing decibels as frequency, are 16 bits enough?  The
answer is that it's <em>way</em> more than enough.  Simple math informs the
curious that there are about 546 values available to represent loudness
between each integer value of human decibel perception.  Humdinger, that's a
lot!  Of course, it's only a lot if humans aren't very sensitive to decibel
changes.  They aren't.  It usually takes sound to change by a couple of
decibles before most people will notice the difference (again, you can find
double-latte-swelling blow-hards who claim that beating of cochroach
hearts ruin their experience listening to the latest Tori Amos offering).</p>

<p><p>If 16-bit sound sampled 44,000 times a second is overkill for human
perception, why bother with 24-bit sound at higher sample rates?  For the
home audio enthusiast, there is no earthly reason at all to upgrade your
working equipment to handle numerically higher values of sound.</p>

<p><p>But you will anyway.</p>

<p><p>The first force that will cause you to upgrade will be amazing advertising
pressure to do so.  Even if this issue can be skirted, you'll find that almost
all consumer hardware is going to support these improved formats anyway for
no extra charge.  The beefer integrated circuits that handle 24-bit sound
will cost the same or less than those 16-bit ICs.  That's why you don't see
2x CD-ROM drives anymore: the technology to make the slower drives is
now more expensive that what's needed to make a 54x drive.  Thank you muchly,
Mr. Moore!</p>

<p><p>So we'll all be paying for sound quality we can never appreciate.  But
think of the numbers, man!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/11536">post</a> and <a href="http://use.perl.org/comments.pl?sid=12213">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[April fooles]]></title>
    <link href="https://www.taskboy.com/2003-04-01-April_fooles.html"/>
    <published>2003-04-01T00:00:00Z</published>
    <updated>2003-04-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-04-01-April_fooles.html</id>
    <content type="html"><![CDATA[<p>It seems that this year folks are less tolerant of April Fools pranks. There's caterwalling aplenty at ye ol' slashdot and on the Boston PM. Now more than ever, a finely tuned sense of humor is not just a luxery, but a requirement. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/11368">post</a> and <a href="http://use.perl.org/comments.pl?sid=12039">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[More tweaks to Taskboy's music section]]></title>
    <link href="https://www.taskboy.com/2003-03-30-More_tweaks_to_Taskboy_s_music_section.html"/>
    <published>2003-03-30T00:00:00Z</published>
    <updated>2003-03-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-03-30-More_tweaks_to_Taskboy_s_music_section.html</id>
    <content type="html"><![CDATA[<p><p>Instead of real work, I spent the morning futzing with the way my MP3s are displayed on <a href="http://taskboy.com/music/">Taskboy. If it looks a lot like Apache::MP3, there is some applicability. I wrote a subclass of Apache::MP3 that groups "artists" (or more accurately subdirectories) in alphabetical groups. More on that later.
<p>For Taskboy, I now have a simple CSV file in which I put the mp3 meta data that doesn't fit in MP3 Tags (like my description of the song, any playlists that should include this song, etc). I wrote a Template Toolkit plugin to look through the a given directory, grab all the metainfo (include information from MP3::Info) and make a pretty table. It also makes the playlists for me. </p>

<p><p>On that topic, I'm finding it difficult to serve an m3u file reliably so that both modern IE and Netscape send it to the appropriate playback device. No, I don't want to write an CGI or mod_perl app for this. Taskboy doesn't have a lot of moving parts and that's the way I'm going to keep it. Right now, I'm cramming META HTTP-EQUIV tags into the m3u files and that works will for IE, but not Mozilla.</p>

<p><p>Any thoughts on how I might do this?<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/11315">post</a> and <a href="http://use.perl.org/comments.pl?sid=11985">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[This blog intentionally left blank]]></title>
    <link href="https://www.taskboy.com/2003-03-27-This_blog_intentionally_left_blank.html"/>
    <published>2003-03-27T00:00:00Z</published>
    <updated>2003-03-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-03-27-This_blog_intentionally_left_blank.html</id>
    <content type="html"><![CDATA[<p>. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/11266">post</a> and <a href="http://use.perl.org/comments.pl?sid=11935">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[2002 Taxes done]]></title>
    <link href="https://www.taskboy.com/2003-03-17-2002_Taxes_done.html"/>
    <published>2003-03-17T00:00:00Z</published>
    <updated>2003-03-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-03-17-2002_Taxes_done.html</id>
    <content type="html"><![CDATA[<p><p>I just finished my 2002 state and federal taxes with TurboTax online. It seems that every year, taxes get a little nuttier. Turbo Tax and I think the IRS and Massachusetts owes me money. Let's see what the revenuers think. 
<p>In any case, I need to start paying 2003's estimated taxes beginning in April. Wee!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/11074">post</a> and <a href="http://use.perl.org/comments.pl?sid=11739">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[New mixerman!]]></title>
    <link href="https://www.taskboy.com/2003-03-15-New_mixerman_.html"/>
    <published>2003-03-15T00:00:00Z</published>
    <updated>2003-03-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-03-15-New_mixerman_.html</id>
    <content type="html"><![CDATA[<p>After 3 months, <a href="http://recpit.prosoundweb.com/viewtopic.php?t=3581">Mixerman Speakth!</a><p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/11043">post</a> and <a href="http://use.perl.org/comments.pl?sid=11708">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[wow!]]></title>
    <link href="https://www.taskboy.com/2003-03-14-wow_.html"/>
    <published>2003-03-14T00:00:00Z</published>
    <updated>2003-03-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-03-14-wow_.html</id>
    <content type="html"><![CDATA[<p><a href="http://news.bbc.co.uk/2/hi/science/nature/2846897.stm">Liquid water currently on Mars</a>. With a new Gulf war looming, Mars is looking down right hospitable.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/11030">post</a> and <a href="http://use.perl.org/comments.pl?sid=11694">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Louis Black]]></title>
    <link href="https://www.taskboy.com/2003-03-06-Louis_Black.html"/>
    <published>2003-03-06T00:00:00Z</published>
    <updated>2003-03-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-03-06-Louis_Black.html</id>
    <content type="html"><![CDATA[<p>Today, I'm heading up to New Hampshire to see Daily Show strongman Louis Black give his fractured take on modern life. It should be a hoot. Also, I've been remixing some of my old 4-track cassette recordings that <a href="http://www.noopy.org/bloghorn/">nvp</a> helped me dump into <a href="http://www.cakewalk.com/Products/SONAR/default.asp">Sonar</a>.
You can hear a very silly instrumental (heavy on the "mental") version of Led Zep's <a href="http://taskboy.com/music/immigrant_song.mp3">Immigrant Song</a> and also a song by <a href="http://www.vacrec.com/mumble/index.html">Mumble and Peg</a>'s Erik Carter called <a href="http://taskboy.com/music/incident.mp3">Incident</a> to which I've added piano and a wicked organ (mmmâ¦ that sounded suspicious). 
<p>Bon Appetit!
<p>UPDATE: Lou cancelled due to poor travel conditions. Still, I got to hang out with Zorknapp and eat at Lui Lui</a>. It's not all bad.
<p>UPDATE: Just came from <a href="http://www.disciplineglobalmobile.com">King Crimson's</a> Boston show. In a word, it was rapturous. They played songs mostly culled from their new album <em>The Power to Believe</em>, but mixed in some stuff from Vrooom (like "Dinosaur" and "Prozac Blues"). The mix was a bit loud for these old ears, but it was enjoyable nonetheless.
 It's difficult to believe that men that old can rock so hard. Robert Fripp's attire evokes thoughts of accountancy or banking rather than the lyrical metal. So much for appearances.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/10922">post</a> and <a href="http://use.perl.org/comments.pl?sid=11572">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Spicing up reality TV]]></title>
    <link href="https://www.taskboy.com/2003-02-23-Spicing_up_reality_TV.html"/>
    <published>2003-02-23T00:00:00Z</published>
    <updated>2003-02-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-02-23-Spicing_up_reality_TV.html</id>
    <content type="html"><![CDATA[<p>I don't care for "reality TV." I don't watch The Real World, Joe Millionaire or even Trading Spaces. However, as I was 
flipping through the 50 million channels of nothing, a high-concept reality
show occurred to me. Why not marry the fru-fru fluffery of design shows 
with the hi-tech graphics of Walking with Dinosaurs? 
The result is a show I call: </p>

<p><p>Surprised by Dinosaurs!</p>

<p><p>The idea is a sublimely simple. Take a couple that's living together, pay one of the
them a lot of money to deceive the other (by creating a diversion
that keeps the other out of their shared home for a time), then watch the 
hilarity ensue as CGI monsters from the paleolithic era devour 
the returning couple!</p>

<p><p>The show will cross demographic boundaries to beat the band.</p>

<p><p>Should any TV executives wish to hire me for my brilliant programming 
genius, please note that I will only consider opportunities that include 
extensive telecommuning and cheap floozies. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/10742">post</a> and <a href="http://use.perl.org/comments.pl?sid=11388">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Let's get Virtual]]></title>
    <link href="https://www.taskboy.com/2003-02-15-Let&apos;s_get_Virtual.html"/>
    <published>2003-02-15T00:00:00Z</published>
    <updated>2003-02-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-02-15-Let&apos;s_get_Virtual.html</id>
    <content type="html"><![CDATA[<p><p>I've been working with virtual machine technologies a lot lately at a start-up called <a href="http://www.leostream.com/">Leostream</a>. Leostream's product is a management layer that controls a network of VMs. If you're only experience with VMs is running Windows on your Linux box, then consider the advantages VMs have for server consolidation and application training. Server consolidation is all about saving co-lo costs by reducing the number of physical machines needed to run your applications. Buy some IBM Big Iron and run several VMs on it with whatever operating systems are required. You've just saved a boat-load of cash. Trainers that need workstations with various flavors of Windows can have one classroom with machines that have several VMs on them. Switching between the VMs and the maintenance of those VMs is a snap. In short, VMs are really cool. But this is just the tip of the iceberg.</p>

<p><p>Microsoft has yet to figure out an effective way to embrace and extend open source software. Imagine if Microsoft shipped a FreeBSD VM with their operating system. Aside from licensing the VM technology, it would cost nothing. They don't have to contribute any code to BSD, but now Windows customers have access to all the same software the Open Source community has developed. Take THAT <a href="http://www.fsf.org/">Gnu. In this way, Microsoft out-Apples Apple. Zero-developement costs to integrate BSD into Windows and all the backward compatibility Windows customers demand. Heck, customers can run their old Windows 3.1 apps in a VM if they want to.</p>

<p><p>There are many other awesome implications of VM technology, like the death of Java. Why bother with the goofy JVM when you can program for a real architecture (like Intel) with all the well-developed tools already in existance and ship that VM?</p>

<p><p>Perhaps the death of the PC has been greatly exaggerated after all.
<p>UPDATE: Wow! <a href="http://www.crn.com/sections/BreakingNews/breakingnews.asp?ArticleID=40038">Microsoft is going to acquire Connectix</a>, a VM product for Windows. It looks like someone in Redmond reads my blog! ;-)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/10605">post</a> and <a href="http://use.perl.org/comments.pl?sid=11246">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Jacked-up Les Paul]]></title>
    <link href="https://www.taskboy.com/2003-02-11-Jacked-up_Les_Paul.html"/>
    <published>2003-02-11T00:00:00Z</published>
    <updated>2003-02-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-02-11-Jacked-up_Les_Paul.html</id>
    <content type="html"><![CDATA[<p><p>MIDI is old. Very old. Yet, it is the only way to connect digital musical instruments and effects together. Gibson is creating a new standard to replace MIDI. It's called Media-accelerated Global Information Carrier (MaGIC). 
Using 100T Ethernet, MaGIC connects instruments and consoles together. Some of the advantages to this system include:</p>

<ul>
  <li>Longer and higher fidelity cable runs
  <li>Twice as many channels as MIDI (32 v. 16)
  <li>Can provide phantom power to instruments
  <li>One cable, one jack
</ul>

<p><p>The best way to think about MaGIC is it's TCP/IP for music. MaGIC networks support exactly the same topologies as traditional Ethernet networks. Even the protocol stack looks familar (Physical, Data Link and Magic Application layers). 
<p>Best of all, the MaGIC spec calls for "Jitter Management," which should really improve the sound of old school rockers like Jimmy Page and Keith Richards.
<p>Read the <a href="http://magic.gibson.com/magic24.pdf">MaGIC white paper</a>. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/10524">post</a> and <a href="http://use.perl.org/comments.pl?sid=11161">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Poll: Friggin' or Freakin'?]]></title>
    <link href="https://www.taskboy.com/2003-02-09-Poll__Friggin&apos;_or_Freakin&apos;_.html"/>
    <published>2003-02-09T00:00:00Z</published>
    <updated>2003-02-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-02-09-Poll__Friggin&apos;_or_Freakin&apos;_.html</id>
    <content type="html"><![CDATA[<p><p>There are only two options:</p>

<ul>
  <li>friggin'
  <li>freakin'
</ul>

<p><p>Which to you say more often?</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/10484">post</a> and <a href="http://use.perl.org/comments.pl?sid=11122">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[More War Now!]]></title>
    <link href="https://www.taskboy.com/2003-02-08-More_War_Now_.html"/>
    <published>2003-02-08T00:00:00Z</published>
    <updated>2003-02-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-02-08-More_War_Now_.html</id>
    <content type="html"><![CDATA[<p><p>Finally, the Austrailians provide an excellent reason for more war: <a href="http://news.bbc.co.uk/2/hi/asia-pacific/2740007.stm">NUDE WAR PROTESTING</a>.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/10479">post</a> and <a href="http://use.perl.org/comments.pl?sid=11115">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[More Farscape ratings.]]></title>
    <link href="https://www.taskboy.com/2003-02-06-More_Farscape_ratings.html"/>
    <published>2003-02-06T00:00:00Z</published>
    <updated>2003-02-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-02-06-More_Farscape_ratings.html</id>
    <content type="html"><![CDATA[<p><p>Last week's ratings for "Mental As Anything".

  7pm Dead Zone 0.5
  8pm Farscape 1.0
  9pm Stargate SG-1 1.5
  10pm Tracker 1.1
  11pm Dream Team 0.4
  11:30pm Stargate SG-1 0.7
  12:30am Farscape 0.4
</p>

<p><p>At this point, 5 or 6 episodes of the last batch have been shown and none of them have come close to that magical 2.0 rating Farscape producer David Kemper wanted. Then again "THE DREAM TEAM" ATE IT HARDER. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/10438">post</a> and <a href="http://use.perl.org/comments.pl?sid=11074">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[When you have steak at home…]]></title>
    <link href="https://www.taskboy.com/2003-02-06-When_you_have_steak_at_home.html"/>
    <published>2003-02-06T00:00:00Z</published>
    <updated>2003-02-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-02-06-When_you_have_steak_at_home.html</id>
    <content type="html"><![CDATA[<p><p>If Bush wants a good, "just" war, North Korea's has all but <a href="http://news.bbc.co.uk/2/hi/asia-pacific/2731305.stm">dared us to combat</a>. Is Iraq really more clearly a present danger than the confessed A-bomb makers in Pyongyang? I'm going out on a limb and say "no." But disarming North Korea would be bloody and difficult with no upside of oil or defending regional allies (although Japan might feel differently about that). If Saddham would simply "act like Jong-Il,"
certainly the UN and the US public would fall lockstep into an Iraqi "police action." No one will shed a tear at Saddham's ouster but without an explicit "evil act," like invading Kuwait, a US-led war is only going to make the US look bad.
That could well damage the US's reputation for future, more justified, military actions. </p>

<p><p>Crazily, I think the answer is not war. The US has a whole host of domestic problems that would take several presidential administrations to solve. Wars, traditionally, come to us. There's no need to provoke them. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/10439">post</a> and <a href="http://use.perl.org/comments.pl?sid=11075">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Is it me?]]></title>
    <link href="https://www.taskboy.com/2003-02-04-Is_it_me_.html"/>
    <published>2003-02-04T00:00:00Z</published>
    <updated>2003-02-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-02-04-Is_it_me_.html</id>
    <content type="html"><![CDATA[<p><p>I distrust the "Homeland Security Department" mostly because "homeland" sounds far too close to "fatherland." Had the department been called "domestic securty," I don't think the image of jack-booted Nazis goosestepping in the capital would have come so quickly to mind. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/10386">post</a> and <a href="http://use.perl.org/comments.pl?sid=11025">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Not again]]></title>
    <link href="https://www.taskboy.com/2003-02-01-Not_again.html"/>
    <published>2003-02-01T00:00:00Z</published>
    <updated>2003-02-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-02-01-Not_again.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://news.bbc.co.uk/2/hi/americas/2716369.stm">Ye Gods.</a> Perhaps we <a href="http://news.bbc.co.uk/onthisday/hi/dates/stories/january/28/newsid_2506000/2506161.stm">shouldn't go</a> into space in <a href="http://www.hq.nasa.gov/office/pao/History/Apollo204/">the winter</a>?<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/10335">post</a> and <a href="http://use.perl.org/comments.pl?sid=10977">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Farscape ratings: Twice Shy]]></title>
    <link href="https://www.taskboy.com/2003-01-30-Farscape_ratings__Twice_Shy.html"/>
    <published>2003-01-30T00:00:00Z</published>
    <updated>2003-01-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-01-30-Farscape_ratings__Twice_Shy.html</id>
    <content type="html"><![CDATA[<p><p>From <a href="http://www.watchfarscape.com/news/article.php?newsid=229">SaveFarscape</a>

7PM Dead Zone: 0.7
8PM Farscape: 1.3 (Twice Shy) 
9PM Stargate: 1.9
10PM Tracker: 1.4
11PM Dream Team: 0.4
11:30PM Stargate: 0.6
12:30AM Farscape 0.6 

<p>The ratings were better. I enjoyed the show. Great ending.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/10286">post</a> and <a href="http://use.perl.org/comments.pl?sid=10932">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Bush Whackin']]></title>
    <link href="https://www.taskboy.com/2003-01-29-Bush_Whackin_.html"/>
    <published>2003-01-29T00:00:00Z</published>
    <updated>2003-01-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-01-29-Bush_Whackin_.html</id>
    <content type="html"><![CDATA[<p><p>Some thoughts on Bush's <a href="http://news.bbc.co.uk/2/hi/americas/2704365.stm">state of the union</a>.</p>

<p><p>It's the economy stupid.</p>

<p><blockquote>
<p>And under my plan, as soon as I have signed the bill, this extra money will start showing up in workers' pay cheques.  </p>

<p><p>Instead of gradually reducing the marriage penalty, we should do it now.  </p>

<p><p>Instead of slowly raising the child credit to a thousand dollars, we should send the cheques to American families now. <br>
</blockquote></p>

<p><p>Payroll taxes contribute to the bulk of federal revenue. Bush wants a 
costly war in Iraq. Why do I not see the payroll taxes not being cut but 
increased?</p>

<p><blockquote>
<p>To boost investor confidence, and to help the nearly 10 million 
seniors who receive dividend income, I ask you to end the unfair 
double taxation of dividends.  </p>

<p></blockquote>
<p>Oh right, it's the <em>seniors</em> who need capital gains cut. Riiight.</p>

<blockquote>
And that is a good benchmark for us: Federal spending should not rise any faster than the pay cheques of American families.    
</blockquote>

<p><p>Ah compassionate conservativism! Exactly how many congressman were 
downsized last year to make a fitter, leaner government for the shareholders?
<p>I feel your pain.</p>

<p><p>It only hurts when I laugh.
<blockquote>
<p>To improve our health care system, we must address one of the prime causes of higher costs - the constant threat that physicians and hospitals will be unfairly sued.  </p>

<p><p>Because of excessive litigation, everybody pays more for health care - and many parts of America are losing fine doctors. <br>
</blockquote></p>

<p><p>So out-of-control health care costs are directly the result of malpractice 
suits? <a href="https://www.healthnet.com/brokers/pdf/June_2002_Health_Care_Focus.pdf">PriceWaterhouseCoopers doesn't think so</a> (although they do cite it
one of the factors).</p>

<p><p>Smog doesn't kill people â I do.</p>

<blockquote>
I have sent you Clear Skies legislation that mandates a 70% cut in air pollution from power plants over the next 15 years.  
</blockquote>

<p><p>The Kyoto plan was <a href="http://news.bbc.co.uk/2/hi/americas/1820584.stm">deemed harmful to business</a> so instead Bush wants to give a tax break for 
compliance. The Sierra Club is unconvinced of the <a href="http://www.sierraclub.org/cleanair/action/clear_skies.asp">efficacy of Bush's plan.</a> 
(Of course, the Sierra Club is nothing but a pack of dirty hippies.) 
I hope you bought stock in bottled air.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/10262">post</a> and <a href="http://use.perl.org/comments.pl?sid=10909">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Spread and web services]]></title>
    <link href="https://www.taskboy.com/2003-01-28-Spread_and_web_services.html"/>
    <published>2003-01-28T00:00:00Z</published>
    <updated>2003-01-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-01-28-Spread_and_web_services.html</id>
    <content type="html"><![CDATA[<p><p>Here's an incomplete thought:
<p>Throw out HTTP from web services and replace it with <a href="http://www.spread.org/">Spread</a>. 
Spread is a cluster-oriented messaging protocol that seems to be well suited for P2P communications. 
<p>It's just crazy enough to work!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/10240">post</a> and <a href="http://use.perl.org/comments.pl?sid=10889">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Capital Hill to give US "The Sausage"]]></title>
    <link href="https://www.taskboy.com/2003-01-27-Capital_Hill_to_give_US__The_Sausage_.html"/>
    <published>2003-01-27T00:00:00Z</published>
    <updated>2003-01-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-01-27-Capital_Hill_to_give_US__The_Sausage_.html</id>
    <content type="html"><![CDATA[<p><blockquote>
There's a sausage machine on Capitol Hill. We gave the sausage machine all of the right ingredients, they have to churn, and I'm confident that when they turn that sausage out it'll be the right kind of sausage for America.</p>

<p><p>âWhite House chief of staff Andrew Card as quoted in Bush Confronts Doubts on Economy, Iraq</a>
</blockquote>
<p>Finally, an honest politician. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/10210">post</a> and <a href="http://use.perl.org/comments.pl?sid=10861">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Dave Chappelle said 'linux']]></title>
    <link href="https://www.taskboy.com/2003-01-27-Dave_Chappelle_said_&apos;linux&apos;.html"/>
    <published>2003-01-27T00:00:00Z</published>
    <updated>2003-01-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-01-27-Dave_Chappelle_said_&apos;linux&apos;.html</id>
    <content type="html"><![CDATA[<p><p>From Dave Chappelle's premier:</p>

<blockquote>
If customers come in with a PC disk, tell them 
we use Macs. If they have a Mac disk, tell them we use PCs. If they have both, tell them we use Linux.
</blockquote>

<p><p>- popcopy training video<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/10203">post</a> and <a href="http://use.perl.org/comments.pl?sid=10854">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Farscape Season 3 Region 1 DVDs announced]]></title>
    <link href="https://www.taskboy.com/2003-01-24-Farscape_Season_3_Region_1_DVDs_announced.html"/>
    <published>2003-01-24T00:00:00Z</published>
    <updated>2003-01-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-01-24-Farscape_Season_3_Region_1_DVDs_announced.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://www.watchfarscape.com/news/article.php?newsid=223">Coming in April</a>. Shag-a-delic, baby!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/10165">post</a> and <a href="http://use.perl.org/comments.pl?sid=10818">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Text::Template]]></title>
    <link href="https://www.taskboy.com/2003-01-24-Text__Template.html"/>
    <published>2003-01-24T00:00:00Z</published>
    <updated>2003-01-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-01-24-Text__Template.html</id>
    <content type="html"><![CDATA[<p><p>For <a href="http://aliensaliensaliens.com:8080/">State Secrets</a>, I'm thinking about breaking out the interface into templates. These can be better manipulated by end users. Since I want SS to run on Winders with as little fuss as possible, I want something that PPM will install without fuss. Template Toolkit, my first choice, is unknown to PPM. Bummer. MJD's Text::Template is not. Here's a script that morphs Text::Template into something TT-ish. Note that does not get TT syntax with this, but it's close enough. I present this hear without intelligent comment so that I can find on the web later. </p>

<p><p>The processor a command line tool</p>

<p class="code">
#!/usr/bin/perl â
# See if I can make Text::Template more TT2 like

use strict;
use warnings;
use Text::Template qw(fill_in_file);

use constant TEMPLATES => './templates';
use constant SOURCE    => './src';
use constant CONSTANTS => './templates/constants';

my $infile = (shift @ARGV || "");
while (! $infile || ! -e SOURCE . "/$infile") {
  print "Which file should I process? \n";
  $infile = &lt;>;
  chomp $infile;
}

get_constants(CONSTANTS);

my $config = {
              TEMPLATE_DIR => TEMPLATES,
              SOURCE_DIR   => SOURCE,
              # template functions
              include      => \&include,
             };

my $processor = Text::Template->new(TYPE => 'FILE',
                                    SOURCE => SOURCE . "/$infile",
                                    DELIMITERS => ['[%', '%]']
                                   );

my $text = $processor->fill_in(HASH    => $config,
                               PACKAGE => "__CONSTANTS",
                              );
print $text, "\n";
#ââ
# subs
#ââ
sub get_constants {
  my ($file) = @_;

  return unless -e $file;

  package __CONSTANTS;
  do($file) or die "Can't parse $file: $@";
  package main;

  return;
}

# includes happen in the templates dir
sub include {
  my ($file, %args) = @_;

  return fill_in_file(TEMPLATES . "/$file", HASH => \%args);
}

</p>

<p><p>Templates
<p>header</p>

<p class="code">
&lt;html>
&lt;title>{ $title }&lt;/title>
&lt;body>

</p>

<p><p>footer</p>

<p class="code">
&lt;/body>
&lt;/html>
</p>

<p><p>Constants roughly like TT's 'config'</p>

<p class="code">
$foo = "bar";
# This is a nutty test
%requires = (bar => 1, b =>2);

$sam = [0,3,5];

sub hairy {
  "I like beans!\n";
}
</p>

<p><p>Source File
&lt;p>hello.html</p>

<p class="code">
[% include('header', title => 'hello') %]
Hello, [% $foo %]

Hello, [% hairy() %]
[% include('footer') %]

</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/10151">post</a> and <a href="http://use.perl.org/comments.pl?sid=10807">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[More Farscape Ratings]]></title>
    <link href="https://www.taskboy.com/2003-01-22-More_Farscape_Ratings.html"/>
    <published>2003-01-22T00:00:00Z</published>
    <updated>2003-01-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-01-22-More_Farscape_Ratings.html</id>
    <content type="html"><![CDATA[<p><p>From <a href="http://www.savefarscape.com/">SaveFarscape</a>
<p>
7 pm, Dead Zone - 0.52
8 pm, Farscape - 1.06 (Terra Firma)
9 pm, Stargate - 1.57
10 pm, Tracker - 1.24
11 pm, Stargate - 0.96
12 midnight, Farscape - 0.81 </p>

<p><p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/10119">post</a> and <a href="http://use.perl.org/comments.pl?sid=10778">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[I see (fake) dead people!]]></title>
    <link href="https://www.taskboy.com/2003-01-21-I_see_(fake)_dead_people_.html"/>
    <published>2003-01-21T00:00:00Z</published>
    <updated>2003-01-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-01-21-I_see_(fake)_dead_people_.html</id>
    <content type="html"><![CDATA[<p><p>You can indeed find anything on the web.
<p><blockquote>
On several movie-related sites (and among my circle of friends), I've noticed one question that pops up surprisingly often: "Has so-and-so done a death scene in any of her movies?" This site will attempt to answer that question for most of the "so-and-so's" that question's been asked about.
</blockquote>
<p><a href="http://www.cinemorgue.com">Cinemorgue</a><p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/10100">post</a> and <a href="http://use.perl.org/comments.pl?sid=10760">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Resume writing tips]]></title>
    <link href="https://www.taskboy.com/2003-01-21-Resume_writing_tips.html"/>
    <published>2003-01-21T00:00:00Z</published>
    <updated>2003-01-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-01-21-Resume_writing_tips.html</id>
    <content type="html"><![CDATA[<p><p>One of my clients has me looking a fairly complex mod_perl application that has several dozen modules arranged to varying degrees in object heirarchies. There are several examples 
of empty subclasses that exist to as aliases for their parents. There are very nice examples of method overriding whose purpose isn't entirely until the parent class is examined. Of course being a mod_perl app, one can't fire up the debugger and trace a live program's execution. Still, I think I've done pretty well at understanding this byzantine code.
<p>Can I list the following skill on my r&eacute;sum&eacute;:
<p><code>can stick his head up the ass of any perl code base</code></p>

<p><p>I think so.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/10090">post</a> and <a href="http://use.perl.org/comments.pl?sid=10752">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Conspiracy talk]]></title>
    <link href="https://www.taskboy.com/2003-01-20-Conspiracy_talk.html"/>
    <published>2003-01-20T00:00:00Z</published>
    <updated>2003-01-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-01-20-Conspiracy_talk.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://aliensaliensaliens.com:8080/">State Secrets</a> now has a chatting feature. It's pretty easy to break and I haven't done any input filtering yet, so enjoy. Also, there's a bug that makes every player an admin, so you can cheat a little. Did I say bug? I meant feature. I changed the layout a bit too.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/10086">post</a> and <a href="http://use.perl.org/comments.pl?sid=10748">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[State Secrets update]]></title>
    <link href="https://www.taskboy.com/2003-01-17-State_Secrets_update.html"/>
    <published>2003-01-17T00:00:00Z</published>
    <updated>2003-01-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-01-17-State_Secrets_update.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://aliensaliensaliens.com:8080/">State Secrets</a> is coming along slowly. It's a hobby so I'm in no hurry to finish, however I hope to make further progress soon. However, I did manage to get the game to save your secrets and rumors to disk so that when I reset the server, your inventory will be restored. Also, I figure out one of the reasons why the performance was so hideously slow (I see the HTTP::Daemon timeout to 10. It should be set to 1 [screw hi-latency connections!]). Play around and enjoy the crazy things characters say. Oh, your movement will be restored every day a 1AM EST.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/10031">post</a> and <a href="http://use.perl.org/comments.pl?sid=10704">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The Johnston Group]]></title>
    <link href="https://www.taskboy.com/2003-01-17-The_Johnston_Group.html"/>
    <published>2003-01-17T00:00:00Z</published>
    <updated>2003-01-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-01-17-The_Johnston_Group.html</id>
    <content type="html"><![CDATA[<p><p>I'd like to make informed, incisive comments on current events, but I don't have time. Therefore, I will borrow the format of the McLaughlin Group.</p>

<p><p>Item 1: <a href="http://news.bbc.co.uk/2/hi/asia-pacific/2667805.stm">Indonesia protests at US entry rules</a>. US immigration authorities are requiring that adult muslim males intending to stay in the US must register their fingerprints with the US government. Civil libertarians at home and abroad decry the measure as racial profiling. Is this a good policy decision?</p>

<p><p>The answer is Yes! Unfortunately the policy doesn't go far enough. Everyone from Aussies to Zimbabwians should be fingerprinted, photographed and cataloged when they enter this country. After all, they are guilty of being <em>foreigners</em>. Although there is a strong suggestion that the 2001 anthrax attack was instigated by a US citizen, I say: trust no one.</p>

<p><p>Item 2: Economists tackle US obesity.</a> Of all industrialized nations, the US far outpaces the rest in fatness. Although the usual suspects for American two-ton-tessies are sloth and fast food, a Harvard University research team suggests that the problem is due to <em>grazing</em>. That is Americans aren't eating more than other people at one meal, but rather <em>they never stop eating</em>. This new study lays the blame for the American lardbutt squarely on the shoulders of food makers, whose predatory marketing targets the sweet and salty tastebuds. Are we a nation of grazing farm animals?</p>

<p><p>The answer is no! Regardless of their pedigree, why are we listening to <em>economists</em> talk about <em>health issues</em>? Do you ask your stock broker about colonoscopies? The real culprit: vestigal Puritanism that makes Americans work hard at the expense of their own health. Down with Cotton Maher and pass the french fries!</p>

<p><p>Item 3: <a href="http://news.bbc.co.uk/2/hi/uk_news/2648987.stm">I'm no paedophile, says Who star</a>. Peter Townshend was taken into custody early this week in connection with a child pornography <em>probe</em> by British authorities. Townshend had joined a kid porn site that required a paid membership. Townshend claims to have been doing "research" into child abuse prevention, a topic he has been interested in for some years. Is Peter Townshend Uncle Ernie? </p>

<p><p>The answer is no! As dangerous as porno is to the participants, it's essentially a spectator sport. If porno causes abuse, then what of US football or boxing? Kudos to England for making the US look <em>socially liberal</em>. However, it should be noted that porno sites make poor research facilities. My advice to Townshend: pick up a nice, safe hobby like heroin and leave the research to the professional (preverts). 
<p>Exclesior!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/10039">post</a> and <a href="http://use.perl.org/comments.pl?sid=10711">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Farscape's new ratings still weak]]></title>
    <link href="https://www.taskboy.com/2003-01-16-Farscape_s_new_ratings_still_weak.html"/>
    <published>2003-01-16T00:00:00Z</published>
    <updated>2003-01-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-01-16-Farscape_s_new_ratings_still_weak.html</id>
    <content type="html"><![CDATA[<p><p>From <a href="http://www.watchfarscape.com/news/article.php?newsid=218">SaveFarscape:</p>

<p>
Courtesy of a reliable source, we have the
national ratings in for last week's Friday night
lineup on The Sci-Fi Channel. </p>

<p>8PM Farscape 1.34 (ep. "Kansas")
9PM Stargate 1.75
10PM Tracker 1.45
11PM Stargate 0.89
12PM Farscape 0.78
1AM X-Files 0.60 
</p>

<p><p>Sadly, Farscape isn't even pulling in the numbers that Traker or Stargate do, even with the 
huge fan-based advertisement and the remarkable cliffhanger (from 4 months ago) called "Unrealized Realities." It's sad to see Farscape end with a whimper, not a bang. In its prime, it was quite a show. 
<p>UPDATE: <a href="http://use.perl.org/~zorknapp/journal">Zorknapp</a> suggests I'm being a little hard on the ol' Farscape. The four month hiatus and knowing that these are the last eps has perhaps darkened my impression of the show. Certainly, I don't want to invest a lot of emotion into the plot knowing it won't get resolved. Last night's <em>Terra Firma</em> was a very moving character sketch. Not enough Rigel or Pilot for my tastes, but there we are. It does appear that John will have to stop running from his pain and confront Aeryn before The End. Let's hope. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/10014">post</a> and <a href="http://use.perl.org/comments.pl?sid=10690">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[new music on taskboy]]></title>
    <link href="https://www.taskboy.com/2003-01-13-new_music_on_taskboy.html"/>
    <published>2003-01-13T00:00:00Z</published>
    <updated>2003-01-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-01-13-new_music_on_taskboy.html</id>
    <content type="html"><![CDATA[<p>Although I have been very busy, I did take today to relax a bit and do some music stuff to relax. Look for new several tunes on 
<a href="http://taskboy.com/music/">taskboy</a>.</p>

<ul>
  <li><a href="http://taskboy.com/music/spooky.mp3">Spooky</a>. This is a short
      A harmonic minor thingie I used to explore my Sonar software.
  <li><a href="http://taskboy.com/music/tiny_buttocks_jjohn.mp3">Tiny Buttocks</a>. Josk Koplik is at least partly responsible for this, er, song.
  <li><a href="http://taskboy.com/music/dreamlife.mp3">Dreamlife</a>. I'm 
    Gordon freakin' Lightfoot! Really. Backing vox by my ex, 
        Eileen Nugent. 
  <li><a href="http://taskboy.com/music/welcome.mp3">Welcome to My Life</a>.
    So glad you could stop by.
</ul>

<p><p>Go. Listen. Comment.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/9918">post</a> and <a href="http://use.perl.org/comments.pl?sid=10603">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[DSL Down]]></title>
    <link href="https://www.taskboy.com/2003-01-10-DSL_Down.html"/>
    <published>2003-01-10T00:00:00Z</published>
    <updated>2003-01-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-01-10-DSL_Down.html</id>
    <content type="html"><![CDATA[<p>My DSL connection at home is intermittently offline, which is really playing hell with my email. If you have emailed me and I haven't responded, not doubt I'll get your mail soon. 
Sorry about the delay. Professionally this couldn't come at worse time.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/9885">post</a> and <a href="http://use.perl.org/comments.pl?sid=10573">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Andy Oram's next big challenge]]></title>
    <link href="https://www.taskboy.com/2003-01-07-Andy_Oram&apos;s_next_big_challenge.html"/>
    <published>2003-01-07T00:00:00Z</published>
    <updated>2003-01-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-01-07-Andy_Oram&apos;s_next_big_challenge.html</id>
    <content type="html"><![CDATA[<p><p>Like Dr. M. L. King, I too had a dream. 
<p>Last night, I was magically transported back to my high school (which was 
a private school that housed kindergarten through twelfth grade). 
It wasn't clear whether I was teacher or student, yet I was definitely 
an adult. It was late in the day (a typically warm early fall or late spring 
day on Cape Cod) and as I brought my inexplicably flaccid surfboard out to 
the parking lot, the headmaster was chaining his excitable blonde labrador 
to a pole. Together we watched as the last bus filled with laughing 
children drove off for the day leaving the two of us alone in the dusty 
parking lot under a stunningly beautiful sky.</p>

<p><p>Tom, the headmaster, looked worried. He said, "I think (noted O'Reilly 
editor and tech industry pundit) 
<a href="http://www.oreilly.com/news/p2pinterview_0401.html">Andy Oram</a> 
is ready to teach sex ed to the first graders." Not only did this not 
shock me, but I launched in a blue tirade about how the Puritan's rigid 
moral strictures continue to haunt our modern society and how those 
outmoded values account for many of the most ulcerous of current social 
problems (like the booming pornography industry, hostility toward 
homosexuality, the intolerance of different cultures, the 
"Madonna/whore"-ideal for women and, most egregious, closed liquor stores 
on Sunday).</p>

<p><p>Unfortunately before Tom could either respond to my comments or explain
exactly why Andy Oram, a fine technical editor and writer though he may 
be, was the ideal candidate to negiotate the delicate waters of sexual 
education to the improbably young, 
<a href="http://taskboy.com/pictures/pye.html">my cat</a> woke me with 
a God-forsaken meow that alerted to the tardiness of his breakfast service. 
In this way, gentle reader, I demonstrate that my life vacilates between 
nocternal Freudian terror and unspeakable real-life horror.</p>

<p><p>I suspect that Rod Serling has an unproduced Twilight Zone about me. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/9809">post</a> and <a href="http://use.perl.org/comments.pl?sid=10516">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Lies, damned lies and benchmarks]]></title>
    <link href="https://www.taskboy.com/2003-01-05-Lies,_damned_lies_and_benchmarks.html"/>
    <published>2003-01-05T00:00:00Z</published>
    <updated>2003-01-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-01-05-Lies,_damned_lies_and_benchmarks.html</id>
    <content type="html"><![CDATA[<p><p>Ye Olde slashdot recently ran an article about the tiny web server <a href="http://www.boa.org/">Boa</a>. That lead me to look at its obligatory <a href="http://www.boa.org/documentation/boa-3.html">benchmark page</a> were it compares favorably to apache. The issue of web server benchmarks as become of interest to me as I work on my game <a href="http://aliensaliensalines.com:8080/">State Secrets</a>, which is has a single-threaded all Perl web server. I haven't been bowled over by the performance of SS as a web server (I didn't build it for speed) and some pages seem to take far too long to render. </p>

<p>Enter apache's benchmarking tool <code>ab</code>. </p>

<p><p>I present the results of two benchmarking runs. The benchmarking software was run on the same machine as the server (I realize there are inherent problems with this). The first set of numbers represents static content service. The second set of number is for dynamic content. There is an order of magnatude difference between these numbers, as one would expect.
<p>What, if anything, do you make of these numbers? To me, it seems the server is performing pretty well. Of course, my expectations are pretty low. I don't expect to support more than 4 simultaneous users.</p>

<p><p>static content
<p>invocation: <code>ab http://marian:8080/ -n 1000 -c 12</code>

Server Software:        State-Secrets-server/0.1
Server Hostname:        marian
Server Port:            8080</p>

<p>Document Path:          /
Document Length:        2752 bytes</p>

<p>Concurrency Level:      12
Time taken for tests:   15.477 seconds
Complete requests:      1000
Failed requests:        0
Broken pipe errors:     0
Total transferred:      2935000 bytes
HTML transferred:       2752000 bytes
Requests per second:    64.61 [#/sec] (mean)
Time per request:       185.72 [ms] (mean)
Time per request:       15.48 [ms] (mean, across all concurrent requests)
Transfer rate:          189.64 [Kbytes/sec] received</p>

<p>Connnection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0     1    6.7      0    85
Processing:    61   183   29.6    197   330
Waiting:        7   183   30.1    196   330
Total:         61   184   27.3    197   330</p>

<p>Percentage of the requests served within a certain time (ms)
  50%    197
  66%    199
  75%    200
  80%    201
  90%    203
  95%    232
  98%    235
  99%    245
 100%    330 (last request)</p>

<p></p>

<p><p>dynamic content
<p>invocation:  <code>ab 'http://marian:8080/game?function=hq&amp;tid=ff46fa784a60d86029abca19d204ed17' -n 1000 -c 12</code>

Server Software:        State-Secrets-server/0.1
Server Hostname:        marian
Server Port:            8080</p>

<p>Document Path:          /game?function=hq&amp;tid=ff46fa784a60d86029abca19d204ed17
Document Length:        3019 bytes</p>

<p>Concurrency Level:      12
Time taken for tests:   35.151 seconds
Complete requests:      1000
Failed requests:        0
Broken pipe errors:     0
Total transferred:      3131000 bytes
HTML transferred:       3019000 bytes
Requests per second:    28.45 [#/sec] (mean)
Time per request:       421.81 [ms] (mean)
Time per request:       35.15 [ms] (mean, across all concurrent requests)
Transfer rate:          89.07 [Kbytes/sec] received</p>

<p>Connnection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0     1    4.9      0    64
Processing:    46   419   35.7    427   499
Waiting:        1   418   36.5    426   499
Total:         46   420   32.7    427   499</p>

<p>Percentage of the requests served within a certain time (ms)
  50%    427
  66%    428
  75%    429
  80%    429
  90%    432
  95%    445
  98%    465
  99%    468
 100%    499 (last request)</p>

<p><p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/9769">post</a> and <a href="http://use.perl.org/comments.pl?sid=10482">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[jjohn: a disassociated biography]]></title>
    <link href="https://www.taskboy.com/2003-01-03-jjohn__a_disassociated_biography.html"/>
    <published>2003-01-03T00:00:00Z</published>
    <updated>2003-01-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2003-01-03-jjohn__a_disassociated_biography.html</id>
    <content type="html"><![CDATA[<p><p>Davorg's <a href="http://use.perl.org/~davorg/journal/9715">recent blog</a> pointed to <a href="http://www.googlism.com">Googlism, a garrulous if not accurate source of information. 
So what does it say about your's truly? I've bolded those entries of uncanny perceptiveness.</p>

<p><p>
<code>
joe johnston is a graduate of the university of massachusetts in boston with a ba in computer science<br>
joe johnston is an interesting personality who deserves more study<br>
joe johnston is a software developer at o'reilly and associates<br>
joe johnston is generally<br>
joe johnston is thought to be eyeing<br>
joe johnston is being candid in interviews regarding the disjointed production of<br>
joe johnston is the director for jurassic park 3<br>
joe johnston is in the center there<br>
joe johnston is of counsel in the firm?s litigation department and his principal area of concentration is directors? and officers? liability and insurance<br>
joe johnston is a fine<br>
joe johnston is perhaps best known for his work on jumanji</br>
joe johnston is the man<br>
joe johnston is a hack<br>
joe johnston is no stranger to thrill<br>
joe johnston is an independent contractor and freelance writer<br>
joe johnston is a software engineer at o'reilly &amp; associates<br>
joe johnston is a 17<br>
joe johnston is a serviceable enough helmsman here<br>
joe johnston is its director<br>
joe johnston is that guy<br>
joe johnston is no stranger to the action special effects genre<br>
joe johnston is an xml and web developer whose credits include working on o'reilly and associates' safari online <br>
joe johnston is better known for special effects work on the star wars movies and fantasises like honey<br>
joe johnston is such a great guy<br>
joe johnston is very interested in paleontology and has come out to the field every summer for the last three years<br>
joe johnston is way better than steven spielberg<br>
joe johnston is talking about the script problems that he faced when making jurassic park 3<br>
joe johnston is talking about what alan cooper calls goal directed software design<br>
joe johnston is no steven spielberg<br>
joe johnston is supposed to have contracted pneumonia attending sherman's funeral (I got better)<br>
joe johnston is a graduate of the university of massachusetts in boston<br>
joe johnston is a family film director<br>
joe johnston is stepping down from his wing staff position<br>
joe johnston is a certified home inspector<br>
joe johnston is a marvelous director and robert dalba is an incredible editor<br>
joe johnston is so able in his work that he makes up for the missing<br>
joe johnston is in the lead<br>
joe johnston is good and the story flows along smoothly with a steady pace<br>
joe johnston is becoming the common view of him<br>
joe johnston is sitting there with a smile on his face<br>
joe johnston is a professor of counseling  psychology who also directs the university of missouris career center <br>
joe johnston is right at home weaving the wonders of cgi and live actors into a convincing blend<br>
joe johnston is back in command again<br>
joe johnston is thoroughly disliked by jefferson davis (The feeling is mutual)<br>
joe johnston is the director of the latest entry in the dinosaur series jurassic park iii<br>
joe johnston is hinting at spielberg to<br>
joe johnston is squeamish at the sight of<br>
joe johnston is now scouting for actors for various roles for third "jurassic park" film<br>
joe johnston is one of the names being mentioned to direct the next film<br>
joe johnston is falling back before grant &amp; lee before mead<br>
joe johnston is another one of these confederate generals who was beloved by the troops<br>
joe johnston is wounded<br>
joe johnston is the kind of director this movie needed<br>
joe johnston is not very involved in the production at the moment<br>
joe johnston is 9 (That comes right before 10!)<br>
joe johnston is donating the proceeds of his golf school<br>
joe johnston is really the star of this thing<br>
joe johnston is already responsible for two films i really like<br>
joe johnston is a competent director<br>
joe johnston is successful at creating what he aimed to do and that is<br>
joe johnston is so careful of his aides that wade has never yet seen a battle<br>
joe johnston is directing it<br>
joe johnston is confident that they can win their league<br>
joe johnston is concerned about his extended lines in northern virginia<br>
joe johnston is in line to direct the third film<br>
joe johnston is recalled by jeff davis to command the confederate army of tennessee<br>
joe johnston is directing with viggo mortensen<br>
joe johnston is injured<br>
</code></p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/9728">post</a> and <a href="http://use.perl.org/comments.pl?sid=10444">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Why you should care about the DMCA]]></title>
    <link href="https://www.taskboy.com/2002-12-31-Why_you_should_care_about_the_DMCA.html"/>
    <published>2002-12-31T00:00:00Z</published>
    <updated>2002-12-31T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-12-31-Why_you_should_care_about_the_DMCA.html</id>
    <content type="html"><![CDATA[<p><p><em>This originally appeared on the <a href="http://rtsoft.com/">RT Soft BSS</a>.</em></p>

<p><p>The machine that I used to run Funeral Quest has lost all its data. It was running Windows 98. During the reboot that occurs after installing the lastest service packs, I was greeted by an ugly DOS message accusing me of violating the DMCA. There was no way around this message, it appeared to be installed on the master boot record (just as "old skool" DOS viruses used to do). When I rebooted the machine with Win95 rescue disk, fdisk reported that my partition was changed to NOVELL. Although I tried several recovery methods (I used to have to deal with broken DOS boxes a lot before I became a Unix hack), I was forced to remove the existing hard drive partitions, destroying all the data on that machine.</p>

<p><p>I was accused, judged and prosecuted by Microsoft's updating software. I had no chance to plead my case, nor recourse to the punishment. In fact, I do have a license for the copy of Win98 that was running. This point is moot now, of course. The DMCA allows large corporations, such as Microsoft, to assume control of my personal property. A more reasonable approach for Microsoft to have taken is, on determining that my machine had an invalid license, to refuse to install the software. Although that still would have angered me, I would not have lost my (and my player's) data.</p>

<p><p>And this all happened because I was installing patches to fix Microsoft's bug-ridden software.</p>

<p><p>This is not an urban legend. This happened tonight, at 9:45 EST 12/30/2002. Whether I like Microsoft's software or not, the destruction of MY intellectual property has galvanized my opinion about the DMCA and companies that abuse their customers under the guise of protecting their business. This isn't healthy development for America or business in general. </p>

<p><p>To more learn about the fight against the DMCA, take a look at the Electronic Frontier Foundation's <a href="http://www.eff.org/IP/DMCA/">page about it</a>.</p>

<p><p>In the meantime, I've cobbled together another system to host Daisypark's FQ game. Those angered by the needless interruption of their game should direct their wrath towards eliminating the DMCA once and for all. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/9686">post</a> and <a href="http://use.perl.org/comments.pl?sid=10408">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[State Secrets]]></title>
    <link href="https://www.taskboy.com/2002-12-30-State_Secrets.html"/>
    <published>2002-12-30T00:00:00Z</published>
    <updated>2002-12-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-12-30-State_Secrets.html</id>
    <content type="html"><![CDATA[<p><p>My email inbox explodes from the deluge of inquistive email sent by my legions of rabid fans wondering just what am I doing with my time instead of blogging. Sure, I could go into copious detail about the adventures of contract programming, but there's more to life than being paid to code. There's also recreational programming!</p>

<p><p>I have been interested in designing computer games for many, many years. It is one of the things that compelled to learn programming in the first place (What? Automating business workflow isn't my driving motivation for coding?). My gaming interests lie in the more traditional turned-based variety than video games. I find that the former are much easier to model in real-life (with cards and a chess board, for instance) than 3D shoot'em ups. Also, I have no discernible talent as a graphic artist. So, turned-based games are it for me. </p>

<p><p>I have mentioned in this blog before about the many wonderfully bizarre games of Seth Able</a> (some of the content I generated for Funeral Quest has been graciously incorporated into the latest release). Another important influence on the kinds of games I'm interested in is the "gaming lunches" I used to participated in during my time at O'Reilly</a>. This is another way of saying <a href="http://www.jmac.org/">Jason MacIntosh</a> has deformed my brain in a pleasant way about what makes a fun game. Thank you, Jmac. </p>

<p><p>All this leads up to my announcement of my first game, called <em>State Secrets</em>. It aims to be a turn-based, multiplayer web game in which players become either FBI Agents or Men in Black pursuing the Truth of an untold number of conspiracy theories. Players must find and haggle with information Sources that hold Secrets and Rumors which must be collected to win. Players may also fight each other. Other surprises as I think of them await.</p>

<p><p>The game is in less-than alpha condition right now. I'm following the opensource credo of "release early and often." The game consists of a standalone single-threaded perl web server, XML configuration files and images lifted from <a href="http://images.google.com/">Google's image database</a>. You can <a href="http://aliensaliensaliens.com:8080/">log in</a> and create an account. You can then move around and look at the different locations. You can see the Sources (and read the hilarious descriptions of them!). <a href="http://aliensaliensaliens.com:8080/INSTRUCTIONS.txt">The instructions</a> provide a glimse of where I want to go with the game. Drop me a line or comment on this journal with your thoughts on this project.</p>

<p><p>Or just leave me twisting in the wind, you cruel, heartless jerks.</p>

<p><p>Update: I just updated the game with "about" and "rules" docs. Additionally the server now logs out idle users. The server reload caused a new batch of Sources to get generated. 
I also started a <a href="http://groups.yahoo.com/group/state_secrets">Yahoo group</a> for this game. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/9668">post</a> and <a href="http://use.perl.org/comments.pl?sid=10393">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Two Towers seen]]></title>
    <link href="https://www.taskboy.com/2002-12-24-Two_Towers_seen.html"/>
    <published>2002-12-24T00:00:00Z</published>
    <updated>2002-12-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-12-24-Two_Towers_seen.html</id>
    <content type="html"><![CDATA[<p><p>Peter Jackson's second installment of Tolkien's <em>Lord of the Rings</em> sage delivers
on the promise of the first episode. <em>Two Towers</em> doesn't waste time on recapping events of the previous movie. It's full-throttle epic story telling that's genuinely gratifying to watch. I note that Jaskson takes more liberties with the <em>Two Towers</em>, but the movie works. Go see it and enjoy.
<p>Season's Greetings. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/9612">post</a> and <a href="http://use.perl.org/comments.pl?sid=10339">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Fun links]]></title>
    <link href="https://www.taskboy.com/2002-12-21-Fun_links.html"/>
    <published>2002-12-21T00:00:00Z</published>
    <updated>2002-12-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-12-21-Fun_links.html</id>
    <content type="html"><![CDATA[<p><p>Both these links contain naughty language.</p>

<ul>
  <li><a href="http://lotr.fistfulayen.com/">Lord of the Rhymes</a>
  <li><a href="http://www.fuck.addr.com/news/word/larry.html">The F-Word: A Retrospective</a>
</ul>

<p><p>Enjoy. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/9590">post</a> and <a href="http://use.perl.org/comments.pl?sid=10315">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA["What's next? Concentration camps?"]]></title>
    <link href="https://www.taskboy.com/2002-12-19-&quot;What&apos;s_next__Concentration_camps_&quot;.html"/>
    <published>2002-12-19T00:00:00Z</published>
    <updated>2002-12-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-12-19-&quot;What&apos;s_next__Concentration_camps_&quot;.html</id>
    <content type="html"><![CDATA[<p><blockquote>
<p>"I think it is shocking what is happening," she said. </p>

<p><p>"We are getting a lot of telephone calls from people. We are hearing that people went down wanting to co-operate and then they were detained." </p>

<p><p>Islamic community leaders said many detainees had been living, working and paying taxes in the US for up to a decade and had families there. </p>

<p><p>"Terrorists most likely wouldn't come to the INS to register," said Sabiha Khan of the Southern California chapter of the Council on American Islamic Relations. 
</blockquote></p>

<p><p>âBBC: <a href="http://news.bbc.co.uk/2/hi/americas/2589317.stm">Mass arrests of Muslims in LA
</a></p>

<p><p>I feel safer already. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/9550">post</a> and <a href="http://use.perl.org/comments.pl?sid=10258">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Is Chompsky 'anti-American'?]]></title>
    <link href="https://www.taskboy.com/2002-12-19-Is_Chompsky_&apos;anti-American&apos;_.html"/>
    <published>2002-12-19T00:00:00Z</published>
    <updated>2002-12-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-12-19-Is_Chompsky_&apos;anti-American&apos;_.html</id>
    <content type="html"><![CDATA[<blockquote>
It's interesting to see the tradition in which the people you refer to [those that call question Chomsky's loyalities] choose to place themselves. The idea of leaving America because one opposes state policy is another reflection of deep totalitarian commitments. Solzhenitsyn, for example, was forced to leave Russia, against his will, by people with beliefs very much like those you are quoting. 
</blockquote>

<p><p>âMonkeyFist: <a href="http://monkeyfist.com/ChomskyArchive/interviews/antia_html">Is Chompsky 'Anti-American'?</a></p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/9560">post</a> and <a href="http://use.perl.org/comments.pl?sid=10268">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Making music with Perl]]></title>
    <link href="https://www.taskboy.com/2002-12-15-Making_music_with_Perl.html"/>
    <published>2002-12-15T00:00:00Z</published>
    <updated>2002-12-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-12-15-Making_music_with_Perl.html</id>
    <content type="html"><![CDATA[<p><p>Wouldn't it be cool to make your own synthesizer in Perl? With a
little rudimentary physics and a CPAN module, you can produce the 
monophonic opus of your dreams without leaving the protective womb
of your favorite editor. </p>

<p><p>Experienced readers of this journal will note that I am 
interested in music. Not only do I listen to quite a bit of it, 
but I've been playing, composing and recording music at the hobbist level
(read: wanker level) for over ten years now. While you can limp 
along as an audio engineer without understanding the dynamics of 
audio waves, this knowledge can save quite a bit of time during 
tracking and mixing. Knowing which band of frequencies best accentuates 
those instruments in your mix can help you fill out your sound while
reducing unintentional mush ("mush" is a technical term). </p>

<p><p>Listeners of <a href="http://taskboy.com/music/">my recent music</a> 
will notice a lot of MIDI sequencing. 
From drums to bass to keyboards, it seems I've discovered the little 
Gary Neumann inside of me. I use 
<a href="http://www.cakewalk.com/">Cakewalk Pro Audio 9 for sequencing 
the MIDI patches that my SoundBlast Live card has (with additional 
SoundFonts I bought from a third party). Pro Audio allows me to blend 
MIDI sequences with "live" audio tracks (vocals, guitars and other assorted 
noises captured by microphones). These audio tracks can be recorded with 
Pro Audio or WAV files can be imported into the current project. This is 
how I work with samples from various movies or CDs. My TV, VCR and CD player
are components of my PC (even if they weren't, I have an external Mackie 
mixer which routes various sound sources through one set of speakers and 
to my PC, producing the same result for this purpose). I sample by playing 
back the orginal source while recording the audio signal with Cakewalk. As a 
WAV file, it is then easy to edit and modify that sample to taste.</p>

<p><p>Music is fun (but not always profitable) when its experimental. Just 
as I've recorded spatulas and toolboxes as percussion elements in the 
past, I found that my experiments with IBM's ViaVoice speech synthesis 
software to have pleasant musical applications (at least, pleasant by 
my reckoning). Since Perl is a big part of my life, I have wanted to 
incorporate some our favorite scripting into my music. When I found the 
<a href="http://search.cpan.org/author/NPESKETT/Audio-Wav-0.02/Wav.pm">Audio::WAV</a> 
module on CPAN, I seized upon the opportunity to learn more about WAV files 
and audio dynamics.</p>

<p><p>I'll skip the high school physics introduction to sound and waves, since 
most of the readers here probably remember more of that stuff than I do. 
However, the important thing to remember is that sound moves in waves. The 
canonical example of a sound wave is one that takes the form of a sine wave. 
That is, a wave that smoothly oscillates from peak to valley (there are many 
other possible wave forms, true sine waves rarely occur naturally). The 
frequency at which that sine wave propagates is 
called <em>fundamental</em> or, in musical terms, the <em>tonic note</em>. 
While very important, sound that only consists of the fundamental frequency 
can fatigue the ear quickly. Additional frequencies that are even multiples of 
the fundamental make the final tone more complex and interesting. These 
additional frequencies are called <em>harmonics</em> and they interfere 
with the fundamental to produce a more complex wave form.</p>

<p><p>With this small bit of phyics and the Audio::WAV module, you can produce
wave files of any tone you want. By extending the code shown here, your scripts
can write out entire songs in glorius 16-bit, 44100hz WAV files. The key is
to understand how to use Audio::WAV to write out audio information.</p>

<p><p>Because this is such a new module (it's only up to 0.2), the documentation 
is a little underpowered. However the core of what you need is there. 
The Audio::WAV class has two child classes it uses to read and write WAV 
files (called Audio::WAV::Read and Audio::WAV::Write respectively). Instead
of directly instantiating an Audio::WAV::Write object, Audio::WAV has a 
write() method that returns a new Audio::WAV::Write object. For instance:</p>

<p class="code">
my $wav = Audio::Wav->new;
my $write = $wav->write($outfile, 
            { 
             bits_sample => $bits_sample,
             sample_rate => $sample_rate,
             channels    => 1,
            }
               );
</p>

<p><p>Audio::WAV::Write also has a write() method, but it expects to be passed 
at least one point of wave data to write out to the appropriate file. </p>

<p class="code">
  $write->write( sin($pi * $time) * $max_no );
</p>

<p><p>(note: the documentation claims that write() can take an array of 
samples, but that only produced empty 46 byte WAV files for me.)</p>

<p><p>Although it seems simple enough to feed write() random numbers, the trick 
is in understanding how to generate meaning data (isn't that always the way). 
This discussion is limited to talking about sine waves since that does not 
exceed my mathematical acumen.</p>

<p><p>Like the graph of a sine wave made by an eighth-grader, the WAV file 
consists of points that represent the wave's amplitude at a given point in 
time (it's a bit more complicated than that, but the Audio::WAV module 
lets me work at this level). Successive calls to write() place a new 
point on this imaginary graph at the next available time slot (see below 
for an explaination of how time is subdivided along this "X-axis" of time). 
Once the maximum and minimum values for wave's amplitude are know, 
it's a very simple math problem to determine the appropriate "y value."</p>

<p class="code">
y = sin(PI * x) # if you have an X value, find Y
</p>

<p><p>In this case, the X value is going to be a slice of time which is 
determined by both the frequency of the fundamental and the sampling rate
of the WAV file. The higher the sampling rate, the more X values are produced.
But, how many time slices (that is divisions of the X-axis) are needed? 
This is a function of how many seconds you want the sound to last times 
the sampling rate.</p>

<p><code>
number of X-axis divisions = seconds * sample rate
</code></p>

<p>The value of each X-axis point is:</p>

<p><code>
X-axis value = (X-axis offset/sample rate) * hertz
</code></p>

<p><p>Now we're getting somewhere! You can approximate PI with (22/7) and now
you know your X-axis values. You only need to know the range of allowable 
amplitudes for this wave file to determine valid Y-values. Recall that sound 
wave amplitude is perceived as loudness by human ears. It turns out that the 
amplitude is governed by the bit resolution of the WAV file. </p>

<p><code>
max_amplitude = (2 ** bit resolution) / 2
</code></p>

<p><p>Why are we raising 2 by the power of the bit resolution? For the same 
reason that you set your video card to the highest video resolution. The 
more bits, the more graduation. I assume that WAV files allocate the number
of bits designated by the bit resolution for each sample of sound to represent 
the amplitude of the wave file at that time. The result is divided by two 
because the wave has positive and negative peaks. In effect, it's like 
the number is signed (in fact, it may be in the WAV file).</p>

<p><p>Putting this mess together, the amplitude of the wave at a given sample 
is found like this:</p>

<p><code>
current amplitude  = sin(PI * x-axis value) * max amplitude
</code></p>

<p><p>Because sin() produces a number between 1 and -1, the amplitude will either
be at the maximum amplitude or smaller. By added a scalar to the maximum 
amplitude, you can control the volume of the samples too. In Perl code, 
producing each point on the sine wave is done like this:</p>

<p class="code">
for my $pos (0..$len) {
  my $time = ($pos/$sample_rate) * $hertz;
  $write->write( sin($pi * $time) * $max_no );
}
</p>

<p><p>This code produces a sine wave with only the fundamental frequency. 
If you wanted to add the second harmonic to this wave, simply double the 
hertz value every other iteration.</p>

<p class="code">
for my $pos (0..$len) {
  my $hz = $hertz;

  if ($pos % 2 == 1) {
    $hz *= 2;
  }

  my $time = ($pos/$sample_rate) * $hz;
  $write->write( sin($pi * $time) * $max_no );
}
</p>

<p><p>It's easy enough to generalize this code to support any harmonic. I thought
it would be fun to add an arbitrary number of harmonics to the fundamental.</p>

<p class="code">
my $next = 0;
for my $pos (0..$len) {
  my $hz = $hertz;

  # throw in some harmonics, but keep the tonic dominate
  if ($pos % 2 == 1) {
    $hz *= $harmonics->[$next++];
  }
  $next = 0 if $next >= @{$harmonics};

  my $time = ($pos/$sample_rate) * $hz;

  $write->write( sin($pi * $time) * $max_no );
}
</p>

<p><p>Notice that the fundamental is represented at least as often as any 
additional harmonic. The more harmonics are added, the more the fundamental
dominates. This may not be entirely what you want, but at least you now 
have some place to start tinkering. </p>

<p><p>Wouldn't it be great if someone wrapped this into an easy to use perl 
script? You bet it would be!</p>

<p class="code">
#!/usr/bin/perl
# Create sine wave WAV files
# Based on code found in Audio::WAV::Write POD
# jjohn 12/2002

use strict;
use Audio::Wav;
use Getopt::Std;

my %opts;
getopts('?hb:f:H:s:t:V:z:', \%opts);

if ($opts{h} || $opts{'?'}) {
  print usage();
  exit;
}

my $outfile     = $opts{f} || 'out.wav';
my $hertz       = $opts{z} || 440;
my $seconds     = $opts{t} || 2;
my $harmonics   = $opts{H} || 1;
my $sample_rate = $opts{s} || 44100; # CD quality;
my $bits_sample = $opts{b} || 16;    # 4,8,16 are all good choices
my $volume_scalar = 1;

if ($opts{V} &lt; 1 && $opts{V} > 0) {
  $volume_scalar = $opts{V};
}

my $wav = Audio::Wav->new;
my $write = $wav->write($outfile, 
            { 
             bits_sample => $bits_sample,
             sample_rate => $sample_rate,
             channels    => 1,
            }
               );

my $pi     = (22/7); # close enough;
my $len    = $seconds * $sample_rate;
my $max_no = (2 ** $bits_sample) / 2 * $volume_scalar;

# split Harmonics value into an array
$harmonics = [ split /\s*,\s*/, $harmonics ];

my $next = 0;
for my $pos (0..$len) {
  my $hz = $hertz;

  # throw in some harmonics, but keep the tonic dominate
  if ($pos % 2 == 1) {
    $hz *= $harmonics->[$next++];
  }
  $next = 0 if $next >= @{$harmonics};

  my $time = ($pos/$sample_rate) * $hz;

  $write->write( sin($pi * $time) * $max_no );
}

$write->finish;

sub usage {
  return &lt;&lt;EOT;
$0 - Create fancy sine wave WAV files

 USAGE:
  # a 3 second 440hz WAV called 'outfile.wav'
  $0 -f 'outfile.wav' -z 440 -t 3 

 OPTIONS:
  ?       Print this screen
  h       Print this screen
  b &lt;num> bit resolution (defaults to 16-bit)
  f &lt;str> name of the outfile (defaults to 'out.wav') 
  H &lt;num> Add this harmonic to the base tone. Can be a comma-separated list.
  s &lt;num> sample rate (defaults to 44100 (CD quality))
  t &lt;num> number of seconds to make the file (default is 2)
  V &lt;num> Volume multiplier (decimal values cut the default MAX volume) 
  z &lt;num> Frequency in hertz of the WAV file (default is 440) 

EOT
}

</p>

<p><p>Next time, I'll look at managing the wave forms better to produced 
rudimentary FM synthesis. Together with Perl's ability to read MIDI files, 
you can turn existing MIDI files into "fully realized" WAV files without
using a sound card!</p>

<p><p>Zen thought for the day: If a WAV file is produced on a machine without 
a sound card, is there any way to tell if the program worked correctly? </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/9473">post</a> and <a href="http://use.perl.org/comments.pl?sid=10191">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Once more with feeling]]></title>
    <link href="https://www.taskboy.com/2002-12-15-Once_more_with_feeling.html"/>
    <published>2002-12-15T00:00:00Z</published>
    <updated>2002-12-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-12-15-Once_more_with_feeling.html</id>
    <content type="html"><![CDATA[<p><p>This post has nothing to do with Buffy the Vampire Slayer. 
<p>I'd like to point out that I've uploaded a few new songs to <a href="http://taskboy.com/">taskboy.com</a>.</p>

<ul>
  <li><a href="http://taskboy.com/music/badboy_boyfriend.mp3">Badboy Boyfriend</a>. Party like it's 1989!
  <li><a href="http://taskboy.com/music/progress.mp3">Progress</a>. This is a work in progress, but it's a sparse song a long the lines of Plug Nickle.
  <li><a href="http://taskboy.com/music/germs.mp3">Germs</a>. I may have already mentioned this piece of MIDI grandeur, but it's worth another listen.  
</ul>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/9464">post</a> and <a href="http://use.perl.org/comments.pl?sid=10184">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Is that a Walther PBK in your pocket?]]></title>
    <link href="https://www.taskboy.com/2002-12-14-Is_that_a_Walther_PBK_in_your_pocket_.html"/>
    <published>2002-12-14T00:00:00Z</published>
    <updated>2002-12-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-12-14-Is_that_a_Walther_PBK_in_your_pocket_.html</id>
    <content type="html"><![CDATA[<p><p>According to <a href="http://www.teentelevision.com/d.asp?r=25396&amp;cat=1028">this</a>, which I found through 
<a href="http://www.whedonesque.com/">this</a>, Sarah Michelle Gellar, TV's Buffy "Vampire Slayer" Summers, wants to be play James Bond after Pierce "Remington Steele" Brosnan goes the way of Sean "Outland" Connery. I think this is a fabulous idea. Not only can SMG play a credible action hero that's also a positive role model for teenage girls, but it would also be total hot to see her make out with those <a href="http://reviewanything.tripod.com/topfiveworstbondchicks.htm">smokin' bond chicks</a>! Also, the sight of SMG in a tux, a la <a href="http://www.reelclassics.com/Actresses/Marlene/images4/md_tuxandcig_waistup.jpg">Marlene Dietrich</a>, would melt lead. 
<p>I'm all for it. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/9459">post</a> and <a href="http://use.perl.org/comments.pl?sid=10179">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[31]]></title>
    <link href="https://www.taskboy.com/2002-12-12-31.html"/>
    <published>2002-12-12T00:00:00Z</published>
    <updated>2002-12-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-12-12-31.html</id>
    <content type="html"><![CDATA[<p><p>The titantic forces of history were colliding in December, 1971. 
Shirt collars were wide and pants were bell-bottomed. The Vietnam war
raged through Asian rice patties and flickered across American television 
screens. Bangladesh's struggle for independence ended when Pakistani 
occupation forces withdrew this month (thanks, in part, to the massive 
love-in concert featuring former Beatle George Harrison). NASA's Mariner 9 
probe became the first to make a soft landing onto the frozen hell-planet 
Mars. Richard Nixon was completing is first successful term in office. The 
James Bond film 
<a href="http://us.imdb.com/Title?0066995">Diamonds are Forever</a> opened
this month to thrill audiences everywhere. The Monkey's Davy Jones accepted 
the challenge of his actor career by appearing as <em>himself</em> on 
the Brady Bunch episode "Getting Davy Jones." </p>

<p><p>Of course, the most important of event of this momentous year was when 
the British Academy awarded 
<a href="http://us.imdb.com/Title?0063869">The Benny Hill Show</a> 
"Best Light-Entertainment Programme." The award not only validated Hill's 
subtle use of irony to satirize the staid culture of post-war Britain, it 
also gave tacit approval the show's unflinching portayal of rampant British 
cross-dressing and boob fetishizing.</p>

<p><p>Into this swirling cauldron of fate, love and war, a child was born this day
in Leominster, Massachusetts. That child was I. The rest, as they say, 
is history.</p>

<p><p>Other noted celebrities born today include:</p>

<ul>
  <li>Frank Sinatra
  <li>Connie Francis
  <li>Bob Barker
  <li>Sheila E
  <li>Edward G. Robinson ("Yeah, see? Yeahâ¦")
  <li>Alyssa Milano (not born today, but in December. Plus she's a hottie)
</ul>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/9412">post</a> and <a href="http://use.perl.org/comments.pl?sid=10143">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[You think you're SO smart…]]></title>
    <link href="https://www.taskboy.com/2002-12-10-You_think_you_re_SO_smart.html"/>
    <published>2002-12-10T00:00:00Z</published>
    <updated>2002-12-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-12-10-You_think_you_re_SO_smart.html</id>
    <content type="html"><![CDATA[<p><p>Two links from <a href="http://memepool.com/">memepool</a>:</p>

<ul>
   <li><a href="http://www.aloha.net/%7Esmgon/ordersoftrilobites.htm">Everything you ever wanted to know about Trilobytes</a>
   <li><a href="http://www.assotron.com/arse-or-elbow/">Discerning Asses from Elbows quiz</a>
   (I got an 11/14)
</ul>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/9358">post</a> and <a href="http://use.perl.org/comments.pl?sid=10092">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[DSL down]]></title>
    <link href="https://www.taskboy.com/2002-12-08-DSL_down.html"/>
    <published>2002-12-08T00:00:00Z</published>
    <updated>2002-12-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-12-08-DSL_down.html</id>
    <content type="html"><![CDATA[<p>My DSL has been out since Friday afternoon. I'll be answering email tomorrow. Sorry about the delay.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/9327">post</a> and <a href="http://use.perl.org/comments.pl?sid=10058">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[1.9 TRILLION dollar war]]></title>
    <link href="https://www.taskboy.com/2002-12-06-1.html"/>
    <published>2002-12-06T00:00:00Z</published>
    <updated>2002-12-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-12-06-1.html</id>
    <content type="html"><![CDATA[<p><p><blockquote>
In the worst case, a war with Iraq could cost the United States almost as much as the government spent in the last budget year Â nearly $2 trillion, according to new projections. 
<br><br>
Researchers concluded in a study released Thursday that war with Iraq could cost the United States from $99 billion to more than $1.9 trillion over a decade. 
</blockquote>
âAP: <a href="http://wire.ap.org/?FRONTID=MIDEAST&amp;SLUG=IRAQ%2dWAR%2dCOST">Study: Iraq War Could Cost $1.9 Trillion</a></p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/9308">post</a> and <a href="http://use.perl.org/comments.pl?sid=10037">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[My session with Doc Emacs]]></title>
    <link href="https://www.taskboy.com/2002-12-06-My_session_with_Doc_Emacs.html"/>
    <published>2002-12-06T00:00:00Z</published>
    <updated>2002-12-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-12-06-My_session_with_Doc_Emacs.html</id>
    <content type="html"><![CDATA[<p><p>What better way to feel good about yourself than to while away the 
hours talking to a robot?

(ME): I'm horny</p>

<p>(Doc Emacs): Do you get horny often?</p>

<p>Yes</p>

<p>I seeâ¦  Well, why do you say this is so?</p>

<p>Because pigs fly out my ass</p>

<p>Is it because pigs fly out your ass that you came to me?</p>

<p>yes</p>

<p>Yes, hmmmâ¦ so, what makes you believe this is so?</p>

<p>Because I'm dumb</p>

<p>Does it bother you that you are dumb?</p>

<p>did you just call me dumb? Fucker</p>

<p>Are you sure that did me just call you dumb fucker?</p>

<p>You're dumb</p>

<p>Earlier you said you were horny?</p>

<p>Yes. Don't change the subject</p>

<p>Maybe your plans have something to do with this.</p>

<p>My plans include taking over the world and gardening</p>

<p>Do you really think that?</p>

<p>I do believe that, except for the gardening part.</p>

<p>When did you first know that except for the gardening part?</p>

<p>Since I was a child, I longed to take over this world. </p>

<p>What happened when you were a child you longed to take over this
world?</p>

<p>When I was a child, I soiled my pants a lot.</p>

<p>What would happen if you were a child you soiled your pants a lot?</p>

<p>I should know!</p>

<p>You mentioned that pigs fly out your ass?</p>

<p>Yes, they do. When the pigs come out of my ass, their little curly tails tickle me.</p>

<p>What happened when the pigs come out of your ass their little curly tails tickle you?</p>

<p>What do you think happened?</p>

<p>Is it because of your life that you are going through all this?</p>

<p>Well if I were dead, I wouldn't need you!</p>

<p>This is not a healthy way of thinking.</p>

<p>Bullroar it isn't.</p>

<p>Is it because of the people you hang around with that you say bullroar it is not?</p>

<p>Yes. People like me.</p>

<p>What makes you think you are dumb?</p>

<p>Are you calling me dumb?</p>

<p>How do you reconcile problems at school?</p>

<p>I don't have problems at school. I graduated college.</p>

<p>Tell me about your school.</p>

<p>No.</p>

<p>Why not?</p>

<p>Because.</p>

<p>Are you annoyed that I ask you that?</p>

<p>I am. How do you feel about that?</p>

<p>Can you elaborate on that?</p>

<p>Yes, I can.</p>

<p>Why do you say yes you can?</p>

<p>I say "yes I can" because I'm a winner.</p>

<p>Is the fact that you are a winner the real reason?</p>

<p>Of course it is.</p>

<p>Earlier you said you were horny?</p>

<p>Ah! Now we get down to brass tacks.</p>

<p>Perhaps this has something to do with any hobbies you have?</p>

<p>I play the sousaphone.</p>

<p>Is it because of your sex life that you say you play the sousaphone?</p>

<p>I have never made that connection before.</p>

<p>I would appreciate it if you would continue.</p>

<p>Am I being charged by the hour for this, doc?</p>

<p>You mentioned that except for the gardening part?</p>

<p>Yes. The bit about gardening was a red herring.</p>

<p>Possibly hangups you have are related to this.</p>

<p>Gardening?</p>

<p>Go on, don't be afraid.</p>

<p>too late
</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/9313">post</a> and <a href="http://use.perl.org/comments.pl?sid=10042">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Farscape update]]></title>
    <link href="https://www.taskboy.com/2002-12-03-Farscape_update.html"/>
    <published>2002-12-03T00:00:00Z</published>
    <updated>2002-12-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-12-03-Farscape_update.html</id>
    <content type="html"><![CDATA[<p><p>The long campaign to <a href="http://www.savefarscape.com/">save Farscape</a> may bare some fruit after all. Like clapping ten minutes for an encore, Farscape fans may get something more than a cliffhanger at the end of season 4, which will be shown on the SCI-FI channel starting next January. According to <a href="http://www.aintitcoolnews.com/display.cgi?id=13952">Ain't It Cool News</a>:</p>

<blockquote>
[Claudia] Black also said that exec. producer David Kemper says he found a way to "finish" Farscape with what was shot without actually "ending" it, hinting that it leaves room to finish the story later onâ¦to which the audience cheered. 
</blockquote>

<p><p>Huzzah! Although many Scapers were gunning for a fifth season, I'd be happy with a movie or miniseries. Remember, Farscape's Season 1 DVD box set is now available as is the first 13 episodes of Season 2 (the "good" season).</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/9244">post</a> and <a href="http://use.perl.org/comments.pl?sid=9977">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Buffy, Seaons 1 and 2 acquired]]></title>
    <link href="https://www.taskboy.com/2002-11-23-Buffy,_Seaons_1_and_2_acquired.html"/>
    <published>2002-11-23T00:00:00Z</published>
    <updated>2002-11-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-11-23-Buffy,_Seaons_1_and_2_acquired.html</id>
    <content type="html"><![CDATA[<p><p>It's important for me to dispell the constant rumors of my coolness with these public confessions of dorkiness. I just bought Buffy the Vampire Slayer, Seasons 1 and 2 on DVD. I didn't watch Buffy before a few months ago. After watching seaons 5's "The Body" I'm beginning to believe there's something to this Josh Weldon fellow after all. 
<p>If this confession has ruined my cred with my many admirers, I apologize. On the other hand, I'm impressed with the first two eps. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/9102">post</a> and <a href="http://use.perl.org/comments.pl?sid=9829">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Geography Quiz]]></title>
    <link href="https://www.taskboy.com/2002-11-22-Geography_Quiz.html"/>
    <published>2002-11-22T00:00:00Z</published>
    <updated>2002-11-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-11-22-Geography_Quiz.html</id>
    <content type="html"><![CDATA[<p><p>By now, most of you will have heard about the appalling resultsof a <a href="http://geosurvey.nationalgeographic.com/geosurvey/templates/question_1.html">National Geographic geography</a> 
quiz for young adults. (Thanks to 
<a href="http://www.axis-of-aevil.net/">HappyFunBall</a> for pointing this 
out.) Take the test for yourself. Feel smart. </p>

<p><p>Note: Mexicans could locate both the US and Mexico more often than Americans could.</p>

<p><p>I took the sample quiz and got 19/20 right. A few years ago, my score would
have been lower by a couple of points. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/9095">post</a> and <a href="http://use.perl.org/comments.pl?sid=9821">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[HTTP::Daemon and 'broken pipe' errors]]></title>
    <link href="https://www.taskboy.com/2002-11-20-HTTP__Daemon_and__broken_pipe__errors.html"/>
    <published>2002-11-20T00:00:00Z</published>
    <updated>2002-11-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-11-20-HTTP__Daemon_and__broken_pipe__errors.html</id>
    <content type="html"><![CDATA[<p><p>I'm working on a game similar to <a href="http://www.rtsoft.com/fq/">Funeral Quest</a> (an upgrade to 
which is due soon). It's a turned-based web game based on UFOlogy 
(go with what you know, I say). I'll have details on the game some.
Naturally, the game is written in Perl.</p>

<p><p>The game includes a single-threaded web server implemented with 
Gisle Aas' HTTP::Daemon Class. It's single-threaded because I want to 
allow users to run the server on Winders, should they choose to and 
I couldn't figure out how to use threads or ithreads (am I supposed to 
have access to ithreads?) on win32. </p>

<p><p>For simple tests, getting a file or a small web page, HTTP::Daemon works
fine. The problem started when it attempted to serve a web page with 
15 images on it. When the server tried to server the third file (an image), 
I'd get a 'broken pipe' error my server would halt. As I worked to isolate
the problem, I found that the error was coming from this simple loop in 
HTTP::Daemon::ClientConn::send_file:</p>

<p class="code">
    while ($n = sysread($file, $buf, 8*1024)) {
        last if !$n;
        $cnt += $n;
    print $self $buf;
    }
</p>

<p><p>As I step through this code in the debugger, I found that after the 
second iteration $self (a kind of IO::Socket::INET object) would choke.
Bummer. I tried changing from print to syswrite, but that didn't change the 
behavoir at all. </p>

<p><p>I turned to Google.</p>

<p><p>Digging around, I found this post from 1997:</p>

<p>
Gisle Aas (gisle@aas.no)
26 Nov 1997 11:39:19 +0100 

Previous message: Gisle Aas: "Re: libwww-per-5.16" 
In reply to: Joerg Kammerer: "Broken Pipe" 

ââââââââââââââââââââââ

Joerg Kammerer  writes:

] Hope for a Tipâ¦

Add:

   $SIG{'PIPE'} = 'IGNORE';

to your script.
</p>

<p><p>Sure enough, that seems to do the trick. An early hack I thought of 
that sort of worked was:</p>

<p>
$SIG{WARN} = sub { exec "/usr/bin/perl $0" };
</p>

<p><p>This restarts the server on a broken PIPE error. Unfortunately, the 
file that choke the server wouldn't get sent. </p>

<p><p>It would be super if Gisle added this little gotcha to his HTTP::Daemon
man page. If not, I'm sure others will find this journal page when they 
Google for a solution, as I did.</p>

<p><p>Guru advice is welcomed. Any thoughts on why the server connection chokes?
It looks like some kind of I/O buffer is getting full. Because I can 
safely ignore the signal, I'm guessing that the I/O that trigger the signal
gets cleared and more traffic is accepted on that socket. Is this some kind 
of race condition?</p>

<p><p>Also, should I abandon the fantasy of expecting perl 5.6.1 threading to
work reliably on both Linux and Windows? </p>

<p><p>You guys are the bestâ¦</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/9030">post</a> and <a href="http://use.perl.org/comments.pl?sid=9759">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[I Am Farscape Ad]]></title>
    <link href="https://www.taskboy.com/2002-11-20-I_Am_Farscape_Ad.html"/>
    <published>2002-11-20T00:00:00Z</published>
    <updated>2002-11-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-11-20-I_Am_Farscape_Ad.html</id>
    <content type="html"><![CDATA[<p>The Quixotic adventure to get Farscape a home for it's fifth (and presumably last) season continues with a <a href="http://homepage.mac.com/beowulf/iamfarscape/iMovieTheater41.html">fan-sponsored ad</a> that will run in 24 US cities. While the production value of this commercial won't impress you, the effort it took to raise the money for this project and organize it indicates an impressive level of dedication to the show. You can read more about <a href="http://www.watchfarscape.com/news/article.php?newsid=157">this ad here</a>. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/9043">post</a> and <a href="http://use.perl.org/comments.pl?sid=9771">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[No Go for Joe]]></title>
    <link href="https://www.taskboy.com/2002-11-20-No_Go_for_Joe.html"/>
    <published>2002-11-20T00:00:00Z</published>
    <updated>2002-11-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-11-20-No_Go_for_Joe.html</id>
    <content type="html"><![CDATA[<p><p>For those following my job hunt, the results of my interview with Amazon are in and I did not make the cut. Amazon seems like a 
great company to work for, but I wasn't a good fit for this opportunity.
Such is life. 
<p>On the positive side, I don't have to pack up my stuff and move before 
Christmas. And I get to celebrate my 31st birthday on the East Coast. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/9046">post</a> and <a href="http://use.perl.org/comments.pl?sid=9775">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Kikkoman, Hero of the Future]]></title>
    <link href="https://www.taskboy.com/2002-11-19-Kikkoman,_Hero_of_the_Future.html"/>
    <published>2002-11-19T00:00:00Z</published>
    <updated>2002-11-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-11-19-Kikkoman,_Hero_of_the_Future.html</id>
    <content type="html"><![CDATA[<p>From <a href="http://www.memepool.com/">Memepool</a> comes a flash movie that details the adventures of <a href="http://yoga.tripod.co.jp/flash/kikkomaso.swf">Kikkoman</a>. He's not just another bland condiment. 
If you ask me, I think Kikkoman isn't completely out of the closet yet. 
You be the judge. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/9017">post</a> and <a href="http://use.perl.org/comments.pl?sid=9744">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Comic/Sci-Fi Expo: I confess]]></title>
    <link href="https://www.taskboy.com/2002-11-16-Comic_Sci-Fi_Expo__I_confess.html"/>
    <published>2002-11-16T00:00:00Z</published>
    <updated>2002-11-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-11-16-Comic_Sci-Fi_Expo__I_confess.html</id>
    <content type="html"><![CDATA[<p><p>I am a dork. <p>This is a conclusion that I've been avoiding for some years now, 
but after attending the Comic book/Sci-Fi Convention today I must own
up to my social problem. I also learned to have <em>a lot of cash on hand 
in small bills</em> when attending these events. Comparisons to Vegas are 
not inappropriate. There was no ATM in the convention area, which is a little 
unusual for the Expo. Ouside and at the other end of the large convention 
building was an ATM machine from a bank to which I did not belong. Since I 
walk a lot, fetching money from this location would normally not be onerous. 
However it was drizzling rain today, I stupidly wore my heel-irratating boots
and the ATM fees were high. However, I did extract $60 from it, thinking it 
would be enough. This sum was very, very close to being sufficient. </p>

<p><p>Nichelle Nichols
<p>While waiting in line to buy admission to the event, a gruff, determined
man demanded that those in line should "make way." Because I'm a sheep, I 
did. The man was escorting the fabulous Nichelle Nichols, Lt. Uhura from 
Star Trek, into the event. She walked within 3 feet of me. Cool! She was 
wearing some kind of fur coat with rather large sunglasses (recall it was
raining). Lot's of fun.</p>

<p><p>Anthony Simcoe
<p>Farscape's D'Argo was signing photos and hawking his "Number 96" Demo CD. 
He seemed pleasant enough. I gave him one of my 
<a href="http://taskboy.com/">Taskboy</a> cards and told him about the "crazy"
music to be found there. I'll have to invite him to my next poker party.</p>

<p><p>Gigi Edgley
<p>The fabulous and energetic Gigi Edgely was a surprise guest at the Expo. 
She's very, very tiny. She's also wonderfully charismatic and interacted 
cheerfully with the fans (as did Anth, but my eye was more on G) â except 
for me. I should explain that while she was signing her photo, I discovered 
that I was a dollar shy of being able to pay for it. Yikes! Since I 
didn't have Ms. Manners with me, I gave $19 bucks (all I had) to Gigi's 
money guy and told them I'd be back with the difference. I did not take the 
photo. Gigi was visibly annoyed, but then I have the effect on a good number 
of people and I've learned to move on. After leaving the hall (again) on 
route to the mechanical money god, I decided that I didn't really want to pay 
another an ATM fee of $1.25 just to get a dollar. Besides, I only bought the 
photos and such to support the Farscape campaign and the actors themselves. 
That's why I left the $19 with Gigi (sorry about wasting the photo!). 
So when Gigi relates this story during her convention talks, you can say
"Dude! I know that Loser!". If Gigi ever reads this, I deeply and abjectly 
apologize for wasting your time. I will continue to buy Farscape DVDs though.</p>

<p><p>Some thoughts on the crowd. </p>

<p><p>My first paid job was as a clerk in a comic book store. I was paid $2.50 
per hour (under the table) and I was immersed in the comic book subculture, 
such as it was, on Cape Cod. Years later when I saw the Simpsons character 
of the Comic Book guy, I howled with laughter and marveled at the 
authenticity of the characterization. Comic book collectors and Sci/Fi fans
have what psychologists call <a href="http://216.239.39.100/search?q=cache:RYMNHBi4lRwC:www.medscape.com/viewarticle/431517_7+fantasy+prone&amp;hl=en&amp;ie=UTF-8">fantasty-prone personalities</a>. Did I see Star Fleet Officers? Yes. Did I see 
Storm Troopers? Yes. Did I see Medieval customs aplenty? You betcha. However, 
I did not see as many, can I call them freaks?, as I thought I would. </p>

<p><p>The essence of these gatherings is voyeristic. At its most harmless, 
browsing through rare and expensive comics is exciting because it involves
the fantasy of owning them (thinking that the collection before you 
<em>is</em> yours). Gawking at "famous people" is another common activity at 
these conventions. Because most of the spectators were classic introverts, 
the gawking at a distance took on some of the quality of truckers at a strip 
bar. That makes me a bit sad but also helps to underscore the damage that 
years of living in Puritan-haunted Massachusetts has done to me.</p>

<p><p>The convention was fun. I'm glad I went. I spent more money that I wanted 
to. Oh, I saw the actor who played the second in command on "Lost In Space". 
No Bill Mumy, though. Bummer. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8982">post</a> and <a href="http://use.perl.org/comments.pl?sid=9709">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Larry Sanders nearly killed me]]></title>
    <link href="https://www.taskboy.com/2002-11-15-Larry_Sanders_nearly_killed_me.html"/>
    <published>2002-11-15T00:00:00Z</published>
    <updated>2002-11-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-11-15-Larry_Sanders_nearly_killed_me.html</id>
    <content type="html"><![CDATA[<p><p>Just as I took a big gulp of water, I hear:
<blockquote>
<p>LS: Why won't she go out with me?
<p>Secretary: She's getting over her relationship with MacGuiver. 
<p>LS: The guy with the talking car?
<p>Secretary: No. MacGuiver. He makes something out of nothing. 
<p>LS: You mean he's a drama queen?
</blockquote>
<p>On hearing this, I immediately choked on my water and had to spew it all over my carpet while gasping for air. 
<p>Damn you, Larry Sanders. Damn you to Hell.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8953">post</a> and <a href="http://use.perl.org/comments.pl?sid=9681">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Going to Seattle]]></title>
    <link href="https://www.taskboy.com/2002-11-12-Going_to_Seattle.html"/>
    <published>2002-11-12T00:00:00Z</published>
    <updated>2002-11-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-11-12-Going_to_Seattle.html</id>
    <content type="html"><![CDATA[<p>I've got an interview in Seattle this week. It's a permanent position so if I get offered a job, I'll be switching coasts. There are 
a lot of consequences to this move, not all of which are pleasant. Still, 
this is an interesting opportunity to work on a LARGE and FAMILIAR web 
site using Perl and Mason. What's an engineer without a challenge? I 
believe in the superstition that things happen for a reason. 
<p>More on this when I get back. Wish me luck. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8886">post</a> and <a href="http://use.perl.org/comments.pl?sid=9615">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[A wonderful OO Gotcha]]></title>
    <link href="https://www.taskboy.com/2002-11-07-A_wonderful_OO_Gotcha.html"/>
    <published>2002-11-07T00:00:00Z</published>
    <updated>2002-11-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-11-07-A_wonderful_OO_Gotcha.html</id>
    <content type="html"><![CDATA[<p><p>I like object-oriented programming. It can really simplify develpment when used judiciously. OOP class hierarchy are best kept simple and 
linear. Here's some fictionalized code that captures the essence of a
bug the caused the Linux server it was running on to lock up so tightly, 
it needed to be cold booted.</p>

<p><p></p>

<h6>#</h6>

<h1 id="file:parent.pm">File: Parent.pm</h1>

<h6>#</h6>

<p>package Parent;</p>

<p>sub new {
  my $proto = shift;
  my $class = (ref $proto || $proto);</p>

<p>if (my $r = Apache->request) {
     require Child;
     $b = Child->new;
  } </p>

<p>return bless {}, $class;
}
<strong>END</strong></p>

<h6>#</h6>

<h1 id="file:child.pm">File: Child.pm</h1>

<h6>#</h6>

<p>package Child;
@ISA = qw(Parent);</p>

<p>sub new {
   # some class inits go here
   return shift->SUPER::new;
}
<strong>END</strong></p>

<h6>#</h6>

<h1 id="file:caller.pl">File: caller.pl</h1>

<h6>#</h6>

<p>use Parent;
$b = Parent->new;</p>

<p></p>

<p><p>The caller.pl script is called under mod_perl, but that's not 
particularly important (although the server crash was due to runaway
Apache processes caused by my coding gaff above). Can you see why 
this code is likely to take a long, long, long time to run?</p>

<p><p>It's almost a while(1) loop.</p>

<p><p>The Parent defines a constructor called new(). The child 
overrides that that constructor, but still calls the parent 
constructor for some initialization. Today, I added a hack 
to the Parent class that required an object of the Child class
to be constructed in the Parent's constructor. When caller.pl
tried make a new Parent object, the Parent needed a new Child
object, which calls the Parent's constructor, who in turn calls
the Child's constructor, who in turn calls the Parent's 
constructor, who in turnâ¦</p>

<p><p>Well, you get the picture.</p>

<p><p>The unsatisfactory (but effective) hack I came up with to 
break this cycle is in the Parent's new:</p>

<p></p>

<h6>#</h6>

<h1 id="file:parent.pm">File: Parent.pm</h1>

<h6>#</h6>

<p>package Parent;</p>

<p>sub new {
  my $proto = shift;
  my $class = (ref $proto || $proto);</p>

<p>if (my $r = Apache->request
      &amp;&amp; $class eq 'Parent') {
     require Child;
     $b = Child->new;
  } </p>

<p>return bless {}, $class;
}
<strong>END</strong>
</p>

<p><p>If anyone (like say Damian Conway) would like to suggest a more 
polite way of doing this, I'm all ears. No, I can't move the Child 
code I need into Parent because that would be like grafting a second 
evil head onto my shoulders. </p>

<p><p>I share my errors so that you may avoid them in your lives. 
<code>;-)</code></p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8826">post</a> and <a href="http://use.perl.org/comments.pl?sid=9550">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[inbox division]]></title>
    <link href="https://www.taskboy.com/2002-11-07-inbox_division.html"/>
    <published>2002-11-07T00:00:00Z</published>
    <updated>2002-11-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-11-07-inbox_division.html</id>
    <content type="html"><![CDATA[<p>YES! I beat the hell out of my inbox and got it down from 400+ messages to 7. I rule!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8819">post</a> and <a href="http://use.perl.org/comments.pl?sid=9543">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The Ultimates]]></title>
    <link href="https://www.taskboy.com/2002-11-06-The_Ultimates.html"/>
    <published>2002-11-06T00:00:00Z</published>
    <updated>2002-11-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-11-06-The_Ultimates.html</id>
    <content type="html"><![CDATA[<p>Found a great new comic title from Marvel called <a href="http://www.comix-shop.co.uk/cx-marvel/marvel-comics/ultimates.html">The Ultimates</a>. It's sort of The Avengers meets Dark Knight at the corner of Law &amp; Order and The Watchmen. Good stuff. Thor, God of Hippies? Tony Stark covered in goo? Finally, a Captain America <em>I</em> can like! Huzzah!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8785">post</a> and <a href="http://use.perl.org/comments.pl?sid=9510">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Unilateralism is the new pink!]]></title>
    <link href="https://www.taskboy.com/2002-11-06-Unilateralism_is_the_new_pink_.html"/>
    <published>2002-11-06T00:00:00Z</published>
    <updated>2002-11-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-11-06-Unilateralism_is_the_new_pink_.html</id>
    <content type="html"><![CDATA[<p><p><blockquote>
Of Bush's role, [Trent Lott] said on NBC's Today show: "I think it was a referendum on his leadership and he really showed that he was committed that he was willing to put his prestige on the line."</p>

<p><p>Outgoing Senate Majority Leader Tom Daschle, D-S.D., glumly acknowledged, "This was one tough night," and said the war on terrorism and the prospect of war with Iraq drowned out what the Democrats were trying to say about the shaky economy. </p>

<p><p>"The president made that his drumbeat,"
 Daschle said. "It resonated." </p>

<p></blockquote>
<p><blockquote>âBoston.com:<a href="http://www.boston.com/dailynews/310/politics/Republicans_win_control_of_Con:.shtml">Republicans win control of Congress, leaving Democrats to grumble about Bush</a>
</blockquote></p>

<p><p>In this election, many liberal spectators expected the voters say to Washington, "It's the economy, stupid!" and deliver the House and/or Senate into the hands of the Democrats. Instead, the voters said, with a loud, clear voice: "It's the war, stupid!"</p>

<p><p>That the Democratic leadership is intellectually and morally bankrupt is apparent to most. Still the voice of loyal opposition in the national debate is greatly comprised now that the G.O.P has hegemony in the Executive and Legislative branches. There is no longer any doubt: America is going to War. </p>

<p><p>The outrage of September 11 and ennui of a stagnant economy have been channelled into the march towards war â a war that will oust one dictator at the cost of  creating dozens or hundreds of new Anti-American terrorists. This dubious victory will cost the US dearly in European and Asian goodwill. Perhaps flushed by the "success" of the Iraq campaign (itself born on the heels of the "success" in Afghanistan), the US will turn its undeniably awesome military might towards North Korea and even Iran.</p>

<p><p>All this will cost the US taxpayer dearly, despite Bush's promises to cut taxes. After all, wars costs money. With the economy barely breathing, tax revenue will be lower than recent years making the cost of these wars very dear. The war chest will need to be refilled from other government programs, like those not favored by the Republicans. Without mending the economy, the US could easily go the way of the former U.S.S.R., spending its way out of existence.</p>

<p><p>There is another omnious message that this mid-term election carries. Bush assumed office under the most dubious of circumstances and yet he has cajoled and patronized the opposition into doing his bidding as if he were swept into power on the crest of a massive voter landslide. If Bush had no mandate from the people before this mid-term election, he's got it now. Expect the very thin and cynical veneer of bipartisanship of Bush's first two years to go the way of the Dodo. That warning goes double for the UN.</p>

<p><p>The US isn't the only country whose conservative element is in bloom. Both 
<a href="http://news.bbc.co.uk/1/hi/world/europe/2392717.stm">Turkey</a> and <a href="http://news.bbc.co.uk/2/hi/south_asia/2404305.stm">Pakistan</a> elected Islamic parties into power (although Turkey's AK party is not so fundamentalist as the six Pakistani groups). In France</a>, <a href="http://news.bbc.co.uk/2/hi/not_in_website/syndication/monitoring/media_reports/2253236.stm">Germany</a> and <a href="http://news.bbc.co.uk/2/hi/europe/1971738.stm">the Netherlands</a>, isolationist groups are making strong showings in elections. When everyone believes they are divinely right, there is no room for comprimise.</p>

<p><p>The 2004 election is now Bush's game to lose. The Democrats, baring Jesus Christ, Moses or Muhammad registering with the party, have no credible candidate to run against Bush. In the next two years, we will witness <a href="http://www.washingtonpost.com/wp-dyn/articles/A14281-2002Nov6.html">every program</a> and policy change that Bush and the Republicans have ever wanted. Some of these changes probably will be for the better. Most will not. In 2012 during the last years of Sino-American war, what historians remain will identify now as the point when it all went to hell in a handbasket. </p>

<p><p>Two party systems are <em>so</em> 1998.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8800">post</a> and <a href="http://use.perl.org/comments.pl?sid=9524">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Email outage for 6 days due to stupid user]]></title>
    <link href="https://www.taskboy.com/2002-11-05-Email_outage_for_6_days_due_to_stupid_user.html"/>
    <published>2002-11-05T00:00:00Z</published>
    <updated>2002-11-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-11-05-Email_outage_for_6_days_due_to_stupid_user.html</id>
    <content type="html"><![CDATA[<p><p>Today, I suspected that my email was down and sure
enough, sendmail wasn't running. I thought I corrected this problem,
but I guess I didn't. Goddamnit this pisses me off. It's been one
hell of an irratating morning â take my word for it.
<p>On a positive note, I have some interesting career opportunities
that I'll be investigating next week. Cross your fingers for me.
UPDATE: Changed 'aggrevating' to the more appropriate 'irratating'. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8772">post</a> and <a href="http://use.perl.org/comments.pl?sid=9495">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Unix Power Tools, 3rd edition]]></title>
    <link href="https://www.taskboy.com/2002-11-05-Unix_Power_Tools,_3rd_edition.html"/>
    <published>2002-11-05T00:00:00Z</published>
    <updated>2002-11-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-11-05-Unix_Power_Tools,_3rd_edition.html</id>
    <content type="html"><![CDATA[<p><p>Wow! The little elves at O'Reilly have finished putting  together the new edition of Unix Power Tools and they never told 
me! I just received my free copies from the friend UPS man. Yay! 
That means sometime in Feburary or March I will get a royality 
check. Happy days! Now I hope that the Best of TPJ gets through 
Production soon (not that I'll see royalities on those books). 
Joy! Joy!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8782">post</a> and <a href="http://use.perl.org/comments.pl?sid=9507">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Happy Halloweenie!]]></title>
    <link href="https://www.taskboy.com/2002-10-31-Happy_Halloweenie_.html"/>
    <published>2002-10-31T00:00:00Z</published>
    <updated>2002-10-31T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-10-31-Happy_Halloweenie_.html</id>
    <content type="html"><![CDATA[<p><p>Spirits, Spooks and Perlers: be marry for the time of Hallowmas is upon us once again. The origins of Halloween (All Hallows Day Eve) go back 
many centuries (so some historians would have us believe). While many cultures
indeed have a harvest festival, Halloween is more than just that. One this
day, it is said that the veil between life and the hereafter is whisper thin.
Traditionally, it is today that the living may attempt to get advice from 
departed family. Not everyone wants a conference with the deceased and so 
they attempt to ward off the dead with carved squash, turnips and pumpkins. 
Halloween, as adapted by the Christian church, also has a strong mendicant
tradition. Food, particularly pastries, are left outside for the "wandering 
dead," (i.e. beggars). In the US after World War II, small towns
hosted Halloween or Harvest festivals to keep mischievous youths occupied 
during the night most associated with vandalism. In this way, Halloween in 
the US became associated with children, rather than adults.
<p>It's been many years since I went out Trick or Treating. I do have fond 
memories of running wildly from house to house getting candy and terrorizing 
the other kids on the street. There is some weird element to this holiday that
makes it my favorite time of the year. 
<p>Happy egging.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8697">post</a> and <a href="http://use.perl.org/comments.pl?sid=9409">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Testing use.perl.el]]></title>
    <link href="https://www.taskboy.com/2002-10-31-Testing_use.html"/>
    <published>2002-10-31T00:00:00Z</published>
    <updated>2002-10-31T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-10-31-Testing_use.html</id>
    <content type="html"><![CDATA[<p>We'll see how this worksâ¦ :)
</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8698">post</a> and <a href="http://use.perl.org/comments.pl?sid=9410">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[EST]]></title>
    <link href="https://www.taskboy.com/2002-10-27-EST.html"/>
    <published>2002-10-27T00:00:00Z</published>
    <updated>2002-10-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-10-27-EST.html</id>
    <content type="html"><![CDATA[<p>Eastern Standard Time. How do I love thee? Let me count the ways.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8625">post</a> and <a href="http://use.perl.org/comments.pl?sid=9337">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Welcome, Zorknapp]]></title>
    <link href="https://www.taskboy.com/2002-10-25-Welcome,_Zorknapp.html"/>
    <published>2002-10-25T00:00:00Z</published>
    <updated>2002-10-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-10-25-Welcome,_Zorknapp.html</id>
    <content type="html"><![CDATA[<p><p>It's true â there is a being of <a href="http://aliensaliensaliens.com/cgi-bin/render_article.mpl?article_id=7">indeterminent origin</a> on use.perl.org. My A3 pal 
Zorknapp</a> has 
decided to lay some knowledge down on this site. Zorky and I have known 
each other (not in the Biblical sense) since 1989, which makes him very, very 
old. Sorry, ladies! He's engaged to be married in 2004. Although
that ship has sailed, I am currently interviewing candidates for a few 
positions I have in mindâ¦</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8604">post</a> and <a href="http://use.perl.org/comments.pl?sid=9319">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Dink Smallwood]]></title>
    <link href="https://www.taskboy.com/2002-10-24-Dink_Smallwood.html"/>
    <published>2002-10-24T00:00:00Z</published>
    <updated>2002-10-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-10-24-Dink_Smallwood.html</id>
    <content type="html"><![CDATA[<p><p>Go ahead. Laugh, if you must. But Dink Smallwood is a win32 
hack 'n' slash game that harkens back ol' school DOS games. Plus, 
you can script your own games. Huzzah!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8558">post</a> and <a href="http://use.perl.org/comments.pl?sid=9272">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Nobody knows the trouble I've seen…]]></title>
    <link href="https://www.taskboy.com/2002-10-22-Nobody_knows_the_trouble_I_ve_seen.html"/>
    <published>2002-10-22T00:00:00Z</published>
    <updated>2002-10-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-10-22-Nobody_knows_the_trouble_I_ve_seen.html</id>
    <content type="html"><![CDATA[<p><p>It's official â I need more work.</p>

<p><p>I left O'Reilly a year ago to pursue technical writing, lose weight
and generally goof off. I'm happy to report unprecedented success at 
that last goal. I did lose all the weight I set out to (put a 'W' in 
that column, but I didn't do much technical writing. The fun of technical 
writing for is in helping other people learn what I think is an interesting
technology or application. I confess that not much in this past year has 
seemed all that interesting.</p>

<p><p>Web Services were somewhat of a bust. Although XML-RPC/SOAP are good 
tools to know, but there isn't much <em>there</em> there yet. This will 
change, I'm sure. For instance, I finally got around to creating a system 
that lets me write my 
<a href="http://use.perl.org/~pudge/journal/8489">blogs</a> 
from emacs using Perl and SOAP. This is a case of scratching an itch. 
Generally, I fear lisp. I don't know that it does that much for a resume 
either. So I didn't do a lot with Web Services this year.</p>

<p><p>P2P? I have hear of P3P, but I think the acronyms are driving the 
technology again. There seems to be a lot of security work available, 
but of course if I told you about it, I'd have to kill you. MacOS X 
has made a bit splash this year and that's pretty cool. Most of the
discussion about MacOS X involves explaining standard Unix hacks to 
macheads. Of course, there are some interesting network hacks from 
MacOS X like <a href="http://developer.apple.com/macosx/rendezvous/index.html">Rendezvous. I need to look at Rendezvous more closely. Wireless 
tech is fun, but I have no use for it nor do I have the <em>skillz</em>
to pull off a wireless hack. WiFi is just another link layer to me. 
Let the hardware guys wet themselves over it.</p>

<p><p>There's no need to comment on .Net.</p>

<p><p>I doubt I'm the only one who feels underwhelmed with the state of 
technology today. The industry feels like it's 1989 all over again. 
I still enjoy working with computers and I want to continue programming, 
but it appears that I will have to fight harder than ever to remain
in this industry and that sort of makes me laugh. Sagging economy or 
no, IT is here to stay. Most companies still need to improve and streamline 
their information infrastructure because that will improve their bottom 
lines. But for today, I feel like a ship in doldrums â rocking listlessly 
back and forth with no perceptible forward movement.</p>

<p><p>Heave way, boys.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8528">post</a> and <a href="http://use.perl.org/comments.pl?sid=9241">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[First Post!]]></title>
    <link href="https://www.taskboy.com/2002-10-21-First_Post_.html"/>
    <published>2002-10-21T00:00:00Z</published>
    <updated>2002-10-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-10-21-First_Post_.html</id>
    <content type="html"><![CDATA[<p>This is a test of my emacs/perl system for posting use.perl.org journals through emacs. I hope it works! <p>Schwing!</p>

<p><p>Update: Thanks to some deft bitflipping by Pudge, this
hack o' mine seems to be working! Life is good.</p>

<p><p>Update: Just checking modify_entry(). Don't panic.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8505">post</a> and <a href="http://use.perl.org/comments.pl?sid=9217">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[mail hosed]]></title>
    <link href="https://www.taskboy.com/2002-10-21-mail_hosed.html"/>
    <published>2002-10-21T00:00:00Z</published>
    <updated>2002-10-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-10-21-mail_hosed.html</id>
    <content type="html"><![CDATA[<p><p>My outgoing mail may be screwed right now. My mail server (aliensaliensaliens.com) lost power last weekend and that may have been when my problems began. Anyway, if you haven't heard from me, it's not because I don't love you. My mail server doesn't love you. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8484">post</a> and <a href="http://use.perl.org/comments.pl?sid=9196">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[threaded ls?]]></title>
    <link href="https://www.taskboy.com/2002-10-20-threaded_ls_.html"/>
    <published>2002-10-20T00:00:00Z</published>
    <updated>2002-10-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-10-20-threaded_ls_.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://developers.slashdot.org/comments.pl?sid=42730&amp;cid=4485453">From slashdot</a>:

Funny. My /bin/ls (Debian unstable) is nearly 60k, yet is dynamically linked, and is even stripped. </p>

<p>% ls -l /bin/ls
-rwxr-xr-x 1 root root 59592 Oct 8 20:17 /bin/ls*</p>

<p>% ldd /bin/ls
 librt.so.1 => /lib/librt.so.1 (0x40022000)
 libc.so.6 => /lib/libc.so.6 (0x40034000)
 libpthread.so.0 => /lib/libpthread.so.0 (0x40147000)
 /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)</p>

<p>% file /bin/ls
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, dynamically linked (uses shared libs), stripped 
</p>

<p><p>At first glance seeing that <code>ls</code> is linked to libthread brought beads of cold sweat to my brow. After all, <code>ls</code> JUST ISN'T FAST ENOUGH. Clearly, it requires a multithreaded solution. By applying a little more thought to this puzzle, I now believe the one of the other shared libraries (I'm looking at you libc) probably uses it. Any system hackers here care to comment? <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8471">post</a> and <a href="http://use.perl.org/comments.pl?sid=9182">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Huzzah for CDDB]]></title>
    <link href="https://www.taskboy.com/2002-10-18-Huzzah_for_CDDB.html"/>
    <published>2002-10-18T00:00:00Z</published>
    <updated>2002-10-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-10-18-Huzzah_for_CDDB.html</id>
    <content type="html"><![CDATA[<p><p>Sometime after the Y2K Apocalypse, I found myself in a Best Buy store just happy to have survived it all. As I browsed through the CD collection, I found an unlikely title from an unlikely publisher. PC World</a> put out a collection of spirited classical tunes called 'THE Y2K ALBUM: a doomsday collection for the coming crash.' Of course, I immediately bought it. 
<p>Now, more than a year or so later, I decided to rip and encode this CD for my MP3 server, but I was fearful that CDDB wouldn't have an entry for this admittedly unpopular and quirkly title. My fear dissapated as soon as Grip correctly reported all the tracks on the CD. 
<p>So I'm NOT the only one who bought this! Who'd a thunk it?<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8440">post</a> and <a href="http://use.perl.org/comments.pl?sid=9150">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[My process listing is funny]]></title>
    <link href="https://www.taskboy.com/2002-10-18-My_process_listing_is_funny.html"/>
    <published>2002-10-18T00:00:00Z</published>
    <updated>2002-10-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-10-18-My_process_listing_is_funny.html</id>
    <content type="html"><![CDATA[<p>
 4125 ?        S      0:00 grip
 4127 ?        S      0:00 grip
 4268 ?        D      0:00 grip
 4269 ?        RN     0:00 attraction -root -mode balls
 4273 pts/0    R      0:00 ps x</p>

<p></p>

<p><p>huh huh, you said 'balls'.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8448">post</a> and <a href="http://use.perl.org/comments.pl?sid=9158">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Nostalgia in real time]]></title>
    <link href="https://www.taskboy.com/2002-10-18-Nostalgia_in_real_time.html"/>
    <published>2002-10-18T00:00:00Z</published>
    <updated>2002-10-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-10-18-Nostalgia_in_real_time.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://web.archive.org/web/19970616034526/http://www.cs.umb.edu/~jjohn/">My first public web page</a>.
<p>Glorious!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8451">post</a> and <a href="http://use.perl.org/comments.pl?sid=9161">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Living in a time capsule]]></title>
    <link href="https://www.taskboy.com/2002-10-17-Living_in_a_time_capsule.html"/>
    <published>2002-10-17T00:00:00Z</published>
    <updated>2002-10-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-10-17-Living_in_a_time_capsule.html</id>
    <content type="html"><![CDATA[<p><p>I'm nuts. I'm pretty sure I wasn't this way when I was younger, but as time passes I receive more evidence that demonstrates my letting go slowly of rational behavior. Perhaps you need some context for this assertion.</p>

<p><p>For the past two days, a contractor has been fixing the water-damaged walls of this apartment. The water damage isn't particularly recent; it appeared on the ceiling and walls after the first rainstorm when I moved into this place seven years ago. To facilitate the contractor's work, I had to move things around and out of closets. This is always a mistake for me, since it means I'll be going through an archeological dig of my life. I'll be dusting off old comic books, drawings from grade school, bizzare fictional stories from high school and of course some relic from the last serious relationship I was in five years ago.
<p>Super.
<p>The particular artifact I found was synchronistically appropriate for the season â her set of removed wisdom teeth. Why do I have these? For the requirements of full disclosure, I should mention that I have the two wisdom teeth that were extracted from my head and my procedure was done before hers. I imagine that she was trying to "be like jjohn," which does nothing to support anyone's claim to mental health. </p>

<p><p>Whatever the reason when her teeth were extracted, we kept them together with mine in a transparent plastic box. Presumably the transparent box was choosen to expediate frequent viewings of these ersatz charms. The box was soon relegated to the back of our closet, which in retrospect, may not have adequately stimulated demand to see the teeth by friends and family.</p>

<p><p>In my continuing quest to shed the weight of the past, I decided that perhaps the time had come to put her teeth to rest â a metaphoric act to help bring me closure on this still somewhat ulcerous memory. With all the cermony I could muster, I sent those teeth directly to the bottom of the garbage barrel. Ah, sweet freedom! This act validates my new self image as the captain of my destiny; a leader of man; a veritable Nietzscheian ubermensch!</p>

<p><p>Then I found a photocopy of a newpaper review of the last play she was in and nearly bawled like a little girl. So much for Nietzsche.</p>

<p><p>On the plus side, I do have a lot more closet space now and I've purge my belongings of ties that I had no intention of wearing again. Oh, and I found my collection of bitchin' D&amp;D dice.</p>

<p><p>If you think I'm going to be one of those old men living alone in an apartment with stacks of old newspapers piled higher than a good-sized adult, you're wrong. I'll probably have a cat too.</p>

<p><p>UPDATE: I wanted to mentioned that Lyle Lovett's <a href="http://www.geocities.com/SoHo/1192/LyleLovett/shereallywantsto.html">She's Leaving Me Because She Really Wants To</a> resonates assonantly with me, as does this brief animation</a>. :-)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8417">post</a> and <a href="http://use.perl.org/comments.pl?sid=9126">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Today's dreamword is gaination]]></title>
    <link href="https://www.taskboy.com/2002-10-17-Today_s_dreamword_is_gaination.html"/>
    <published>2002-10-17T00:00:00Z</published>
    <updated>2002-10-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-10-17-Today_s_dreamword_is_gaination.html</id>
    <content type="html"><![CDATA[<p><p>As I kid my favorite dreams involved me flying. My dream self would arise from my bed, fly out the window (or through the wall), and follow the contours of the land, sort of like the game Descent. For whatever Freudian reason, these kinds of dreams filled me with a euphoria that lingered even after waking up. As I got older, those dreams became less frequent and less potent.
<p>Some people dream in color, I'm told. Some have 'lucid dreams'. The weirdest dream experience I've had up to now was a very frustrating dream in which I was debugging a perl program (an admission that is likely to block  congressional approval of my eventual Supreme Court nomination, I'm sure). Last night, however, I believe I've had yet another first in my dream life: I clearly saw the word gaination. I don't know the definition of the word, nor can I relate sufficiently the context of the dream (I was in a university/mall with my extended family and my aunt died [she yet lives in real life]. I know we were living my first home because of the kitchen). Aside from Perl code, I can't recall a dream in which a word was so clearly presented.</p>

<p><p>Since I have no definition for this word and it sort of looks real, I invite the use.perl.org community to invent of definition for it. <p>Excelsior!
<p>updated: s/lucent/lucid/<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8423">post</a> and <a href="http://use.perl.org/comments.pl?sid=9132">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Peter Gabriel Tix]]></title>
    <link href="https://www.taskboy.com/2002-10-15-Peter_Gabriel_Tix.html"/>
    <published>2002-10-15T00:00:00Z</published>
    <updated>2002-10-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-10-15-Peter_Gabriel_Tix.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://www.petergabriel.com/">PG</a> comes to Boston in November. I broke down and bought tickets. Why not? I did that ten years ago for his last tour. The man is 52 years old. Wow. I was looking over his albums. From the second one (release in 1978) to UP (this year), it's disorienting to watch the man age "so quickly." PG has a sort of faery-like, timeless quality for me. When I listen to Melt, it's always 1981. Good times, good times. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8376">post</a> and <a href="http://use.perl.org/comments.pl?sid=9083">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Review: Three Stigmata of Palmer Eldritch]]></title>
    <link href="https://www.taskboy.com/2002-10-15-Review__Three_Stigmata_of_Palmer_Eldritch.html"/>
    <published>2002-10-15T00:00:00Z</published>
    <updated>2002-10-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-10-15-Review__Three_Stigmata_of_Palmer_Eldritch.html</id>
    <content type="html"><![CDATA[<p><p>The appeal of science fiction, at least to many of us, is the <em>sense  of wonder</em> one gets from really stellar examples of the genre. After at least a century of remarkable stories, the bar is set pretty high for those authors that seek to thrill readers with profound stories. Few authors can do this well. Fortunately, Philip K. Dick can. I have come to realize that the K in PKD stands for "Kick the reader's ass".</p>

<p><p><em>The Three Stigmata of Palmer Eldritch</em> begins in the familiar ecological and moral  dystopia of the future Earth that PKD seems to enjoy writing about. We are introduced to a Young Upwardly Mobile New Yorker named Barney Mayerson, a psychic employed as a marketer for Perky Pat Layouts. Perky Pat is a stand-in for Barbie dolls and in this world, P. P. Layouts is Earth's largest and most ruthless business. Perky Pat dolls and accessories are sold to those unlucky souls who have been forcibly expatriated from Earth in an effort to preserve humanity. This near-future Earth is suffering from a lethal level of global warming. The average daily temperature is around 180 degress Fahrenheit.
Because the living conditions on the colonies is so harsh and spartan, most colonists (or "hovelists" as they are called) turn to the escape of the illegal "translating" drug Can-D. Through Can-D, users live the fantasy lives of Perky Pat and her beau Walt. This fantasy is enabled through imbibing the drug along with staring at Perky Pat miniatures. The trip is a shared experience, so a cult developes round the drug.</p>

<p><p>Life is good for old Mayerson. Aside from most people mispronouncing his name, his got a good job, the ear of P. P. Layout's chief executive Leo Bulero and a hot little tomato named Roni Fugate to keep his bed warm. Of course Barney has had to make some sacrifices along the way, like dumping his near-angelic wife, Emily, for the sake of his career. Unfortunately, the karma wheel is always a-spinnin' and payback is, as they say, a bitch.</p>

<p><p>Meanwhile, mysterious industrialist Palmer Eldritch has returned to the Sol system after a ten year journey to the alien and outr&eacute; Proxima system. Crashing on Pluto, Eldritch is quickly removed to a hospital. Perhaps too quickly. Was the human industrialist replaced by some weird alien during his trip? And what about that strange lichen he's brought back with him? Can it really displace the Can-D monopoly of P. P. Layouts?</p>

<p><p><em>Three Stigmata</em> is the grand story of the Fall and Redemption. PKD's ambitious attempt to retell the Christian story of the crucifixation is compelling and subtle until the end. It succeeds as a work of science fiction, although theologically it falls short. That failure should not deter anyone from reading this wonderful gem of a book. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8392">post</a> and <a href="http://use.perl.org/comments.pl?sid=9100">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[MIDI Banks and patches]]></title>
    <link href="https://www.taskboy.com/2002-10-14-MIDI_Banks_and_patches.html"/>
    <published>2002-10-14T00:00:00Z</published>
    <updated>2002-10-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-10-14-MIDI_Banks_and_patches.html</id>
    <content type="html"><![CDATA[<p><p>Finally figured out how banks of patches works with my soundblaster card and how Cakewalk needs to be informed about them. Too tired to talk about them tonight, but suffice it to say that the SBLive card seemed to support 128 BANKS of 128 PATCHES. The stock 4mb SoundFont bank standard midi patches seems to take up a number of bank slots. I don't know why. The card can hold up to 10MB of banks/patches. 
<p>Now I can load up all those banks I've found on the internet 
and actually USE them. Cool.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8360">post</a> and <a href="http://use.perl.org/comments.pl?sid=9062">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[New Song: Germs]]></title>
    <link href="https://www.taskboy.com/2002-10-12-New_Song__Germs.html"/>
    <published>2002-10-12T00:00:00Z</published>
    <updated>2002-10-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-10-12-New_Song__Germs.html</id>
    <content type="html"><![CDATA[<p><p>If you're like me (and who isn't?), you've often wondered what it would sound like if Gary Neuman meet up with Yes in a dark alley â drunk. <a href="http://www.taskboy.com/music/germs.mp3">Wonder no more!</a>
<p>For those who liked the odd rhythms of <a href="http://www.taskboy.com/music/plug_nickle.mp3">Plug Nickle</a>, you'll no doubt enjoy the 7/4 groove of "Germs". Those that like creepy songs about hypochrondiacs â I haven't forgotten you either!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8339">post</a> and <a href="http://use.perl.org/comments.pl?sid=9040">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[New song: Fall Down]]></title>
    <link href="https://www.taskboy.com/2002-10-11-New_song__Fall_Down.html"/>
    <published>2002-10-11T00:00:00Z</published>
    <updated>2002-10-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-10-11-New_song__Fall_Down.html</id>
    <content type="html"><![CDATA[<p><p>In an effort to sate the inexhaustable demand for low-quality, radio-unfriendly music, I present this shuffle called Fall Down</a>. This song is a guitar fest featuring almost all the guitars I own: the Gibson dreadnaught, the Sigma dreadnought, my custom strat with 1954 telecaster neck and a goofy 3/4-scale Quest bass. The result? Give a listen and tell me.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8311">post</a> and <a href="http://use.perl.org/comments.pl?sid=9009">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Request for Comments: What tech tickles your fancy?]]></title>
    <link href="https://www.taskboy.com/2002-10-10-Request_for_Comments__What_tech_tickles_your_fancy_.html"/>
    <published>2002-10-10T00:00:00Z</published>
    <updated>2002-10-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-10-10-Request_for_Comments__What_tech_tickles_your_fancy_.html</id>
    <content type="html"><![CDATA[<p><p>To say that IT is in the doldrums is like saying Hilter was a little moody. Frankly, I'm a bit bored and unimpressed with the much of the stuff I see on Freshmeat. It seems that a full 50% of the new submissions are CMS/Blogger programs. Cringely hasn't mentioned anything worth repeating. Now I reach out to you, the use.perl community.</p>

<p><p>What new technology are you learning or would like to learn more about? Got a bee in your bonnet about something? I want to know. Comment away!
<p>UPDATED: hmm. No takers, eh? That's what I thought. :-D</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8295">post</a> and <a href="http://use.perl.org/comments.pl?sid=8992">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[So passes a Masshole tradition]]></title>
    <link href="https://www.taskboy.com/2002-10-10-So_passes_a_Masshole_tradition.html"/>
    <published>2002-10-10T00:00:00Z</published>
    <updated>2002-10-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-10-10-So_passes_a_Masshole_tradition.html</id>
    <content type="html"><![CDATA[<p><p><blockquote>
Spag ends 68 years of family control with sale 
By Adam Gorlick, Associated Press, 10/9/2002 16:25
SHREWSBURY, Mass. (AP) Spag's Supply Co., a central Massachusetts institution beloved by generations of bargain-hungry shoppers, is being sold to another locally owned discount retailer. 
<br><br>
The sprawling Shrewsbury complex started by Anthony ''Spag'' Borgatti in 1934 and still run by his family, will be sold to Building 19, a discount chain with 14 locations in New England, the companies announced Wednesday. 
<br><br>
But the old and new owners, who have been friends for 30 years, said Spag's would keep its character, and even part of its name, as the new 'Spag's 19.' 
</blockquote>
<p>âBoston.com: <a href="http://www.boston.com/dailynews/282/economy/Spag_ends_68_years_of_family_c:.shtml">Spag ends 68 years of family control with sale</a></p>

<p><p>From my early childhood growing up outside of Worcester, I was terrorized by the oversized novelity head of Tony "Spag" Borgatti that glowered, like a real-life Big Brother, from billboards all across town. My father often took me to Spags on some errand of domestic import that consistently eluded my apprehension.
<p>The first impression of Spag's is one of smell. The store has, or at least had then, a large lawn and garden section so the acrid smell of mulch and fertilizer assaults all new arrivals. Like a bad software project, the main building at Spag's was continually under construction (in those days) to accommodate the ever-expanding inventory of housewares. Of course, the place was totally unnavigatable by the uninitiated â a regular Minoan maze.
<p>It was the Home Depot of its day.
<p>Alas, it appears the <a href="http://www.spags.com/">web site</a> is offline. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8287">post</a> and <a href="http://use.perl.org/comments.pl?sid=8984">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[PHP has own interpreter, HTTP server!]]></title>
    <link href="https://www.taskboy.com/2002-10-09-PHP_has_own_interpreter,_HTTP_server_.html"/>
    <published>2002-10-09T00:00:00Z</published>
    <updated>2002-10-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-10-09-PHP_has_own_interpreter,_HTTP_server_.html</id>
    <content type="html"><![CDATA[<p><p>Perky <a href="http://www.php.net/">PHP</a> is branching out into Real Programming with its standalone interpreter. The guys must think this is the bees' knees because one of them has written an <a href="http://nanoweb.si.kz/">HTTP server</a> in PHP! Surely we'll be seeing more standalone PHP programs in the future. <em>wink</em><p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8271">post</a> and <a href="http://use.perl.org/comments.pl?sid=8968">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[PG's UP acquired]]></title>
    <link href="https://www.taskboy.com/2002-10-08-PG&apos;s_UP_acquired.html"/>
    <published>2002-10-08T00:00:00Z</published>
    <updated>2002-10-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-10-08-PG&apos;s_UP_acquired.html</id>
    <content type="html"><![CDATA[<p><a href="http://shopping.guardian.co.uk/music/story/0,1587,795262,00.html"><code>Trackingâ¦</code></a><p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8248">post</a> and <a href="http://use.perl.org/comments.pl?sid=8942">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Poe, Reverse Engineering and LA Rawk Bands]]></title>
    <link href="https://www.taskboy.com/2002-10-08-Poe,_Reverse_Engineering_and_LA_Rawk_Bands.html"/>
    <published>2002-10-08T00:00:00Z</published>
    <updated>2002-10-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-10-08-Poe,_Reverse_Engineering_and_LA_Rawk_Bands.html</id>
    <content type="html"><![CDATA[<p><p><blockquote>
The skies they were ashen and sober; <br>
&nbsp;&nbsp;The leaves they were crisped and sereâ<br>
&nbsp;&nbsp;The leaves they were withering and sere;<br>
It was night in the most lonesome October<br>
&nbsp;&nbsp;Of my most immemorial year;<br>
It was hard by the dim lake of Auber,<br>
&nbsp;&nbsp;In the misty mid region of Weirâ<br>
It was down by the dank tarn of Auber,<br>
&nbsp;&nbsp;In the ghoul-haunted woodland of Weir.
</blockquote>
<p>âEdgar Allan Poe, "Ulalume"</p>

<p><p>What have I been up to, you ask? Being that this is season of Hallowmas, I broke out one of my collected works of Edgar Allan Poe and read some of his poems aloud in my bath. "Silence," "Lenore," "Ulalame" and "The Raven" all have a very strong beat to them that requires vocalization to truly come alive. 
<p>I've been working quite a lot on <a href="http://www.rtsoft.com/fq/">Funeral Quest</a>. I've been posting to the forum and trying to reverse engineer the protocol so that I can create a Flash!-less HTML client. Why? Well, the Flash! client doesn't work correctly on anything that's not EI. On my XP box, the Flash! client is crashing intermittenly. This is annoying.</p>

<p><p>For online reading, I recommend the diary of <a href="http://www.prosoundweb.com/recording/mm/week1/mm.php">MixerMan</a>, a sound engineer working in the decadent and ghastly city of LA. If reality TV shows were this funny, I'd be watching them. You don't need to know a lot about music to appreciate the utter insanity this guy encounters in the process of trying to record a "bidding war band." </p>

<p><p>MixerMan's diary makes the IT world look sane and professional.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8241">post</a> and <a href="http://use.perl.org/comments.pl?sid=8935">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Vegas Wrapup]]></title>
    <link href="https://www.taskboy.com/2002-10-04-Vegas_Wrapup.html"/>
    <published>2002-10-04T00:00:00Z</published>
    <updated>2002-10-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-10-04-Vegas_Wrapup.html</id>
    <content type="html"><![CDATA[<p><p>Vegas: wow.
<p>I don't have the words to describe that crazy town. I had a lot of fun. A played a lot of blackjack and broke even. I visited the Palms during Playmate tryouts. I drank at Glenmorangie Port-style at Bellagio in my Banana Republic suit with Silly-Putty-like goo in my hair. And yes, I did see an Elvis. 
<p>My brain has been cold booted. Even though I've been back since Monday, it's taken until tonight for me to get back  semi-coherent thoughts. 
<p>Wow.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8162">post</a> and <a href="http://use.perl.org/comments.pl?sid=8855">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Welcome to my parlor]]></title>
    <link href="https://www.taskboy.com/2002-10-01-Welcome_to_my_parlor.html"/>
    <published>2002-10-01T00:00:00Z</published>
    <updated>2002-10-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-10-01-Welcome_to_my_parlor.html</id>
    <content type="html"><![CDATA[<p><p>As I mentioned recently, <a href="http://www.rtsoft.com/fq/">Funeral Quest</a> is a BBS-Doors-like web game were you play the owner of a funeral parlor trying to make a fast buck off of grieving families. You also get to rob other players. You need a Flash 6-compatible browser to play. I have set up my own server here</a>. It has some local modifications and I'll be adding more soon. Take a break from Perl and have some outr&eacute; fun. :-) <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8118">post</a> and <a href="http://use.perl.org/comments.pl?sid=8807">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[I'm just a devil with love to spare]]></title>
    <link href="https://www.taskboy.com/2002-09-27-I_m_just_a_devil_with_love_to_spare.html"/>
    <published>2002-09-27T00:00:00Z</published>
    <updated>2002-09-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-09-27-I_m_just_a_devil_with_love_to_spare.html</id>
    <content type="html"><![CDATA[<p><p>Las Vegas. Sin city. DisneyWorld for adults. Situated amongst top secret military testing facilities and a stone's throw away from Art Bell's broadcast fortress in Pahrump, the only place more unreal that this odd desert town is Hollywood. Very early tomorrow morning, I leave for Vegas. I'm seeing off a college buddy who, after a nine month interview process, finally landed a job with Shell Oil. He'll be working in the Netherlands and making pretty fair scratch. Our party will be stationed at the <a href="http://www.goldennugget.com/pages/frameset_noflash.asp">Golden Nugget</a>, but I'm sure there will be expediations to other casinos. If luck be a lady, I won't need to sell my ass on the strip to get back to Boston. <br>
<p>Viva Las Vegas!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/8044">post</a> and <a href="http://use.perl.org/comments.pl?sid=8733">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Awesome C bug]]></title>
    <link href="https://www.taskboy.com/2002-09-24-Awesome_C_bug.html"/>
    <published>2002-09-24T00:00:00Z</published>
    <updated>2002-09-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-09-24-Awesome_C_bug.html</id>
    <content type="html"><![CDATA[<p><p>I'm teaching myself game programming using <a href="http://www.libsdl.org/">SDL</a>. 
This means that I'm relearning C (the "get my Java learn-on" thread is currently suspended). C is just barely acceptable. The executables are blickin' fast but the development speed (even for easy things) is second only to assembler. Of course, stupid bugs don't shorten development time. Even when printf statements and gdb, it took me an hour to track done the one below. The code attempts to determine whether one segment (described by the Sprite structure) crosses another. The way I chose to solve this is to iterate through the set of points for both segments. This isn't the fastest method, but it is commensurate to my level of math. :-)
<p>Anyway here's the code. The problem is that the code loops forever. Can you see why?</p>

<p>
int Collision (Sprite * a, Sprite * b) {
  int ax, ay, bx, by;
  int collision = 0;</p>

<p>for (ax = a->p.x; ax &lt; a->length; ax++) {
    ay = (int) ceil(a->slope * ax) + a->p.y;</p>

<p><code>for (bx = b-&gt;p.x; bx &lt; b-&gt;length; by++) {
  by = (int) ceil(b-&gt;slope * bx) + b-&gt;p.y;

  if (ax == bx &amp;&amp; ay == by) {
     collision = 1;
     return(collision);
  } 
}
</code></p>

<p>}</p>

<p>return(collision);
}
</p>

<p><p>Hint: This bug could just have easily happened in Perl. Man, I'm just stupid. 
<p>Update: Sweet Jesus, there's a semantic bug too! If you can see why this function won't detect collisions that occur beyond the length of Sprite a, give yourself a quarter. :-)<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7956">post</a> and <a href="http://use.perl.org/comments.pl?sid=8644">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Funeral Quest]]></title>
    <link href="https://www.taskboy.com/2002-09-24-Funeral_Quest.html"/>
    <published>2002-09-24T00:00:00Z</published>
    <updated>2002-09-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-09-24-Funeral_Quest.html</id>
    <content type="html"><![CDATA[<p>I loved the Seth Able BBS Door game <em>Legend of the Red Dragon</em>. Seth has done it again for the web. It's a flash based game called <a href="http://rtsoft.com/fq/">Funeral Quest</a>, where you compete in the cut-throat world of mortuary business. It's got all the outr&eacute; humor you've come to expect from Able and a bag of chips. Run. Don't walk.</p>

<p><p>Did I mention it's free to play?<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7978">post</a> and <a href="http://use.perl.org/comments.pl?sid=8666">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Aldrin takes out the trash]]></title>
    <link href="https://www.taskboy.com/2002-09-21-Aldrin_takes_out_the_trash.html"/>
    <published>2002-09-21T00:00:00Z</published>
    <updated>2002-09-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-09-21-Aldrin_takes_out_the_trash.html</id>
    <content type="html"><![CDATA[<p><p>As if from a <a href="http://us.imdb.com/Title?0066999">Dirty Harry</a> movie: 
<blockquote>
Mr Aldrin, famous for his participation in the Apollo 11 moon landing in 1969, hit Bart Sibrel after he approached the former astronaut outside a hotel in Beverley Hills, Los Angeles and demanded he swear on a Bible that the landing was not staged. 
<br><br>
Mr Aldrin responded by punching Mr Sibrel, but said he merely struck out to defend himself and his stepdaughter, who was with him at the time. 
</blockquote>
<p>âBBC: <a href="http://news.bbc.co.uk/2/hi/americas/2272321.stm">Ex-astronaut escapes assult charge</a>
Buzz Aldrin: a man pushed too far by the wild and lawless society of Beverely Hills, takes the law into his own hands and metes out his own brand of outlaw justice.
<p>Go ahead. Ask about the apollo moon landing</a> cover-up. Make his day.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7882">post</a> and <a href="http://use.perl.org/comments.pl?sid=8566">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[1ee+ 5p34k]]></title>
    <link href="https://www.taskboy.com/2002-09-20-1ee+_5p34k.html"/>
    <published>2002-09-20T00:00:00Z</published>
    <updated>2002-09-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-09-20-1ee+_5p34k.html</id>
    <content type="html"><![CDATA[<p><p>An unusually funny comment on Slashdot about students using 'leet speak in the classroom can be <a href="http://slashdot.org/comments.pl?sid=40271&amp;cid=4290072">found here</a>.
<p>When tchrist ruled #perl, that sort of thing just didn't happen. :-)<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7862">post</a> and <a href="http://use.perl.org/comments.pl?sid=8547">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Frell]]></title>
    <link href="https://www.taskboy.com/2002-09-18-Frell.html"/>
    <published>2002-09-18T00:00:00Z</published>
    <updated>2002-09-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-09-18-Frell.html</id>
    <content type="html"><![CDATA[<p><p>CNN/HLN did an interview with <a href="http://www.savefarscape.com/news/article.php?newsid=66">Farscape's Ben Browder</a>, in which Ben said:</p>

<p><p><blockquote>
After the fan response, they [ed: USA and Henson] got back together and started talking again. It gave us an extra week before we had to start chopping up the sets for them to try to figure out a way around it. At this point, it looks like it's not gonna happen, so it looks like we're not gonna see a fifth season. 
</blockquote></p>

<p><p>The fight continues to get Farscape <a href="http://farscape.noidea.us/">a new home</a> and to get the show into syndication. The Farscape crew produced 88 episodes of some of the best science fiction I've seen in recent years. Sure the show was always a little short on science and heavy on fiction, but so am I. Farscape's passing leaves a giant hole in my viewing habits and means that I'll be tuning into SCIFI for an occasional B5 fix. This means I can devote more time to wallowing in my largess. So that I don't end on a down note, there is some hope on the horizon. There is this note on the the official Farscape homepage</a>:</p>

<blockquote>
Although SCI FI Channel has chosen not to pick up a fifth season, The Jim Henson Company is in active development on a new Farscape film, an anime project and is currently discussing syndication of this highly acclaimed series. We are eager to move forward with the Farscape creative team in developing new projects that will resonate with our overwhelmingly loyal fan base. 
</blockquote>

<p>Finally, I'll be able to restrict my IRCing to #perl.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7790">post</a> and <a href="http://use.perl.org/comments.pl?sid=8474">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Am I running for office?]]></title>
    <link href="https://www.taskboy.com/2002-09-17-Am_I_running_for_office_.html"/>
    <published>2002-09-17T00:00:00Z</published>
    <updated>2002-09-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-09-17-Am_I_running_for_office_.html</id>
    <content type="html"><![CDATA[<p><p>According to The Onion</a>:
<p><blockquote>
Sagittarius: (Nov. 22-Dec. 21)<br><br>
People generally get the sort of government they deserve, which is why the nation's biggest assholes cast write-in votes for you in the upcoming election.
</blockquote>
<p>Wow! That's good news, I guess.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7771">post</a> and <a href="http://use.perl.org/comments.pl?sid=8453">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[SpamAssassin installed]]></title>
    <link href="https://www.taskboy.com/2002-09-15-SpamAssassin_installed.html"/>
    <published>2002-09-15T00:00:00Z</published>
    <updated>2002-09-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-09-15-SpamAssassin_installed.html</id>
    <content type="html"><![CDATA[<p><p>Finally got around to installing <a href="http://www.spamassassin.org/">SpamAssassin</a>. The installation went smoothly, but I did have a vehement argument with sendmail about the honor of procmail. For those that only touch sendmail at install, here are some tips:</p>

<ul>
  <li><code>chmod 600 .forward</code>. Sendmail doesn't like to execute world/group writable .forward files.
  <li>Simplify the .forward file. The following 
incantation for the .forward file is suggested in the SpamAssassin INSTALL file:<br><br>
<code>"|IFS=' ' && exec /usr/bin/procmail -f- || exit 75 #user"

<br><br>
To reduce the number of cargo-cults out there, this line attempts to set an environment variable (the Input Field Separator) to a space and then <code>exec</code> procmail. The argument <code>-f</code> tells procmail to regenerate the leading 'From' mail header. The following '-' means that procmail only updates the timestamp on the 'From' line. 
If procmail bombs out, a mysterious exit code 75 is returned. Perhaps sendmail will do something with processes that return 75. In any case, this line ends in a comment that isn't used by procmail nor sendmail. It's for you! You don't need this rather obtuse line. Instead the following will suffice:<br><br>
<code>|/usr/bin/procmail</code>
<br><br>
Now that's a line even I can understand.
<li>Vouch for procmail. When you encounter the following error message sent in an email from postmaster:
<br>

"|/usr/bin/procmail"
    (reason: service unavailable)
    (expanded from: jjohn)

<br>
Make sure that the sendmail restricted shell (smrsh) knows that procmail is a trusted program. This is done by putting a symlink to procmail in 
a directory smrsh knows about. On my RedHat system, that directory is <code>/etc/smrsh</code>. Local conditions may vary.
</ul>

<p><p>After my little wrasselin' match with sendmail, I'm reaping the rewards. SpamAssassin appears to have been worth the effort to install. </p>

<p><p>What are you waiting for?<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7744">post</a> and <a href="http://use.perl.org/comments.pl?sid=8421">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Farscape update]]></title>
    <link href="https://www.taskboy.com/2002-09-13-Farscape_update.html"/>
    <published>2002-09-13T00:00:00Z</published>
    <updated>2002-09-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-09-13-Farscape_update.html</id>
    <content type="html"><![CDATA[<p>Those who want the latest details of this growing concern should visit <a href="http://www.savefarscape.com/">Save Farscape or <a href="http://www.freepilot.org/">FreePilot</a>. 
There has been 4 bits done on CNN/HLN about the fight for Farscape. Cast members like Anthony Simcoe (aka D'Argo) and David Kemper (exec producer &amp; writer) have dropped by #farscape on irc.scifi.com. (Anth chats tonight at 5P EST). It appears that the word is spreading. I suspect something good will come of all this effort. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7734">post</a> and <a href="http://use.perl.org/comments.pl?sid=8408">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Farscape: Fight the Future]]></title>
    <link href="https://www.taskboy.com/2002-09-11-Farscape__Fight_the_Future.html"/>
    <published>2002-09-11T00:00:00Z</published>
    <updated>2002-09-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-09-11-Farscape__Fight_the_Future.html</id>
    <content type="html"><![CDATA[<p><p>Farscape will not go gentle into that good night. Hundreds of people are logging into #farscape on irc.scifi.com (the record number of users I saw in the room last night was 610). Thousands of fans have contacted SCIFI to make their displeasure heard. Letters, faxes and email are beginning to make SCIFI realize that they may have pulled the plug too soon. This is the <em>critical</em> week  to show your support for the show. If you have some time today, drop by <a href="http://www.savefarscape.com/">SaveFarscape</a> to find out how you can make a difference.
<p>Don't let the terrorists win. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7671">post</a> and <a href="http://use.perl.org/comments.pl?sid=8344">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Whitehouse.com remembers 9/11]]></title>
    <link href="https://www.taskboy.com/2002-09-11-Whitehouse.html"/>
    <published>2002-09-11T00:00:00Z</published>
    <updated>2002-09-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-09-11-Whitehouse.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://www.whitehouse.com/">That's patriotism</a>.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7678">post</a> and <a href="http://use.perl.org/comments.pl?sid=8351">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Taxes]]></title>
    <link href="https://www.taskboy.com/2002-09-10-Taxes.html"/>
    <published>2002-09-10T00:00:00Z</published>
    <updated>2002-09-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-09-10-Taxes.html</id>
    <content type="html"><![CDATA[<p><p><blockquote>
Should five per cent appear too small<br>
 Be thankful I don't take it all
</blockquote>
<p>Once again I get to pay estimated taxes. This time the the bill was hefty and painful. On the upside I believe I'm fully paid up now. 
<p><blockquote>
"How did your taxes go this time, Uncle Joe?"</br>
"They sucked, little Billy. They sucked Rhino clit."
</blockquote><p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7663">post</a> and <a href="http://use.perl.org/comments.pl?sid=8336">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Farscape Cancelled]]></title>
    <link href="https://www.taskboy.com/2002-09-07-Farscape_Cancelled.html"/>
    <published>2002-09-07T00:00:00Z</published>
    <updated>2002-09-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-09-07-Farscape_Cancelled.html</id>
    <content type="html"><![CDATA[<p><p>I know you read this on slashdot</a> too, but damn this is important. It's sad to see such a great show leave the air, but I suppose this is the way of all flesh. At least I'll get my friday nights back.
<p>Feel free to mourn here.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7590">post</a> and <a href="http://use.perl.org/comments.pl?sid=8258">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[No Turning Back]]></title>
    <link href="https://www.taskboy.com/2002-09-03-No_Turning_Back.html"/>
    <published>2002-09-03T00:00:00Z</published>
    <updated>2002-09-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-09-03-No_Turning_Back.html</id>
    <content type="html"><![CDATA[<p><p>Wrestling my muse using collegiate rules, I've recorded a new song called <a href="http://taskboy.com/music/no_turning_back.mp3">No Turning Back</a>. If you like 6/8 and grutuitous samples of <a href="http://www.imdb.com/Title?0118111">Waiting for Guffman</a> and Coltrane, this is your cup of tea!
I'm generally happy with the mix on this one, but I'm certain it'll sound funky on your system.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7477">post</a> and <a href="http://use.perl.org/comments.pl?sid=8139">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[What the gypsy woman said…]]></title>
    <link href="https://www.taskboy.com/2002-09-03-What_the_gypsy_woman_said.html"/>
    <published>2002-09-03T00:00:00Z</published>
    <updated>2002-09-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-09-03-What_the_gypsy_woman_said.html</id>
    <content type="html"><![CDATA[<p><p>Urban legends: who doesn't like them? Submitted for your approval is this story told to me by my mother as she retells the weird events that overtook one of my cousins. </p>

<p><p>While at the local grocery store in a small central Massachusetts town, my cousin was in the check-out line in back of a woman of "Iranian" extraction who underestimated the cost of her food. The line was held up while the women decided what item to put back. My cousin, a kind-hearted soul, offered to pay the difference to expedite the queue and perhaps to do a good turn in a naughty world. The women expressed her gratitude and left the store.</p>

<p><p>After my cousin settled up her grocery bill, she was flagged down by the "Iranian" woman.</p>

<p><p>"I wish to repay the kindness you have shown. For the health of you and your family, avoid drinking Coka Cola. There will be retribution for aftermath of September 11."</p>

<p><p>The woman gave no specific date, duration or location of the "retribution," nor did she detail the exact nature of the attack. If you're like me, you'll want to put your household at Homeland Security's "Yellow Alert" station and arm yourself to the teeth.</p>

<p><p>Trust no one â keep low and stay frosty. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7508">post</a> and <a href="http://use.perl.org/comments.pl?sid=8172">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Arrg!]]></title>
    <link href="https://www.taskboy.com/2002-08-30-Arrg_.html"/>
    <published>2002-08-30T00:00:00Z</published>
    <updated>2002-08-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-08-30-Arrg_.html</id>
    <content type="html"><![CDATA[<p><a href="http://www.boston.com/news/daily/30/083002_baseball_strike.htm">The Gods hate me!</a><p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7425">post</a> and <a href="http://use.perl.org/comments.pl?sid=8079">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Bounced E-Mail, Cattle Calls and Pushy Relatives]]></title>
    <link href="https://www.taskboy.com/2002-08-29-Bounced_E-Mail,_Cattle_Calls_and_Pushy_Relatives.html"/>
    <published>2002-08-29T00:00:00Z</published>
    <updated>2002-08-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-08-29-Bounced_E-Mail,_Cattle_Calls_and_Pushy_Relatives.html</id>
    <content type="html"><![CDATA[<p><p>A lot has happened since my last journal and I have starved my 
loyal reader(s?) enough.</p>

<p>Computer maintenance, like taxes, is something long dreaded, yet 
unavoidable. For years, my main email address has been jjohn@cs.umb.edu. 
One of the perks of graduating as a Computer Science major from 
UMass/Boston is that I have an email address for life. As an alumnus, 
I'm only allowed to log into one machine: alumni.cs.umb.edu. Sure, the 
machine was a pokey and didn't have things like 'lynx' on it, but who cares. 
All I needed was POP3 service. Until last week, this is just fine with me.
Unfortunately for me, this machine is off this weeking during which 
time a new alumni.cs.umb.edu machine will take its place. I have no
idea if my mail is bouncing (I suspect not), but I can't check my 
mail until the new machine is up. </p>

<p>Sigh.</p>

<p>UPDATE: After thinking about the problem more, I found another 
host that allows me POP3 access to my mail. 61 new mail messages. Huzzah!</p>

<p>Yesterday I went to a career day (i.e. cattle call) that Red Hat sponsored.
It was in Westford, MA and getting there from Boston without owning a car
was indeed challenging. However, I am a resourceful critter. Despite
the recessed economy, I expected only a handful of people to be there. 
I still consider Linux a minor player in the big scheme of things and 
I assume that only a small number of people have even heard about 
Red Hat. </p>

<p>Boy was I wrong. </p>

<p>About a thousand people showed up for 8 positions (not all of them 
technical). I was just stunned. If it weren't for the suits and 
worried looks in line, one might have thought Elvis was in the Building
by the size of the line to get into the interviewing area. Although 
I know I could do the job I "interviewed" for (OS Engineer), I 
don't believe I'm going to make the final cut. While it's true 
that I've been using Linux for years and I've used Red Hat in particular
for several of them, I most believe that there are at least two 
programmers in that crowd that will appear more desirable than me.
It's just a question of numbers. </p>

<p>It was a good experience for me, though. It removes the sense of 
complacency that I've developed during my hiatus. Plus, I got to look 
sharp wearing one of my suits.</p>

<p>On the way to the cattle call I read the Boston Metro, a new 
"newspaper" that's given away often near T-stations. One story 
that caught my attention concerned the recovery of an Indian 
infant who had his <em>dead twin brother removed from his abdomen</em>. 
What a freak show! In other news, the Metro also reported that
beer can protect its consumers against "heart attacks, stroke, hypertension,
diabetes and <em>dementia</em>." I guess beer won't make you crazy. 
Finally, the Metro scraped the bottom of the news barrel with this item
"Super-sized = Super Obese." In what can only be properly termed 
"a pentrating glimpse into the obvious," the Metro reported:</p>

<p></p>

<blockquote>
Many overweight children and adults get a large portion of their
calories by consuming too many sodas and sweetened juices and 
beverages. Sweetened drinks + "super-sized" meals + the convenience
of fast food + a decrease in physical activity = a recipe for 
obesity.
</blockquote>

<p>A believe that the Metro's message will be better grasped by this 
year's Massachusetts students because they ranked 31st in their 
SAT scores. That's right: We're Number 31! We're Number 31! Take 
THAT Arkansas!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7393">post</a> and <a href="http://use.perl.org/comments.pl?sid=8045">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Mail Hosery]]></title>
    <link href="https://www.taskboy.com/2002-08-25-Mail_Hosery.html"/>
    <published>2002-08-25T00:00:00Z</published>
    <updated>2002-08-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-08-25-Mail_Hosery.html</id>
    <content type="html"><![CDATA[<p>More evidence that I offended the SMTP God: I was just delivered a message from a month ago. I was forwarding my email to UMB, but clearly that's not a good idea (the system is down for the weekend). If you haven't heard from me lately, you might want to send mail to jjohn@taskboy.com or jjohn@aliensaliensaliens.com. 
<p>Bloody hell.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7302">post</a> and <a href="http://use.perl.org/comments.pl?sid=7947">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[I can blue screen NT in 1 line]]></title>
    <link href="https://www.taskboy.com/2002-08-23-I_can_blue_screen_NT_in_1_line.html"/>
    <published>2002-08-23T00:00:00Z</published>
    <updated>2002-08-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-08-23-I_can_blue_screen_NT_in_1_line.html</id>
    <content type="html"><![CDATA[<p><p>"I hate windows!" 
<p>"Bill Gates sux0rz!" 
<p>"Not going to pay the Microshaft tax!" 
<p>It is popular to hate Microsoft products these days. Some claim that their hard feelings are rooted in the <a href="http://www.pcworld.com/news/article/0,aid,103989,00.asp">monopolistic practices</a> of Microsoft. Some cite the instability</a> in the OS as
a reason for ire. Still others believe that Bill Gates is the Devil himself</a>. For all the talk, what are you doing to get back at Microsoft?
<p>The Summer 2002 edition of 2600 magazine provides some tips.
<p>Many (all?) NT derived systems run a program called CSRSS.EXE that controls terminal screens. Any program that spews text to STDOUT uses this programming. Someone discovered an <em>awesome</em> bug in this program that allows the following program to blue screen an NT box. </p>

<p class="code">
while 1 
   print("hungup\t\b\b\b\b\b\b");
end
</p>

<p><p>This bit of Ruby code exploits CSRSS.EXE's poor handling of backspaces following tab characters. Since this cries out for a Perl one-liner:</p>

<p class="code">
perl -e 'while(1){ print "hungup\t\b\b\b\b\b\b" }'
</p>

<p><p>I have verified that this will take down my XP machine. And, it felt good. </p>

<p><p>Lest someone mistake me for a <a href="http://www.informationweek.com/story/IWK20020509S0001">terrorist</a>, I'm only advocating destruction of your personal property. I am, however, advocating extreme abuse of your personal property. Have fun.
<p>Update: Jordan corrected my foolish one-liner bug.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7259">post</a> and <a href="http://use.perl.org/comments.pl?sid=7901">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Updating A3]]></title>
    <link href="https://www.taskboy.com/2002-08-23-Updating_A3.html"/>
    <published>2002-08-23T00:00:00Z</published>
    <updated>2002-08-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-08-23-Updating_A3.html</id>
    <content type="html"><![CDATA[<p><p>Updating Aliens, Aliens, Aliens. New Perl, New Apache, New MySQL. Right now, everything is busted.
<p>Updated: Done. A3 away.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7269">post</a> and <a href="http://use.perl.org/comments.pl?sid=7913">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Make the Pie Higher]]></title>
    <link href="https://www.taskboy.com/2002-08-22-Make_the_Pie_Higher.html"/>
    <published>2002-08-22T00:00:00Z</published>
    <updated>2002-08-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-08-22-Make_the_Pie_Higher.html</id>
    <content type="html"><![CDATA[<p><p>More email fun. This was sent to me by Jen Strong. It is a poem that comprises real quotes from President Bush assembled by Richard Thompson of the Washington Post. I think this is a message of hope for the twenty-first century. Enjoy.</p>

<p><p><blockquote>
MAKE THE PIE HIGHER<br>
by George W. Bush<br>
<br>
<br>
I think we all agree, the past is over.<br>
This is still a dangerous world.<br>
It's a world of madmen and uncertainty<br>
&nbsp;&nbsp;&nbsp;and potential mental losses.<br>
<br>
Rarely is the question asked<br>
Is our children learning?<br>
Will the highways of the Internet become more few?<br>
How many hands have I shaked?<br>
<br>
They misunderestimate me.<br>
I am a pitbull on the pantleg of opportunity<br>
I know that the human being and the fish can coexist.<br>
Families is where our nation finds hope, where<br>
&nbsp;&nbsp;&nbsp;our wings take dream.<br>
<br>
Put food on your family!<br>
Knock down the tollbooth!<br>
Vulcanize society!<br>
Make the pie higher! Make the pie higher!
</blockquote></p>

<p><p>Update: I found this poem so amusing, I set it to <a href="http://taskboy.com/music/make_the_pie_higher.mp3">music</a>.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7241">post</a> and <a href="http://use.perl.org/comments.pl?sid=7882">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[php-nuke]]></title>
    <link href="https://www.taskboy.com/2002-08-21-php-nuke.html"/>
    <published>2002-08-21T00:00:00Z</published>
    <updated>2002-08-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-08-21-php-nuke.html</id>
    <content type="html"><![CDATA[<p><p>I started playing with <a href="http://www.phpnuke.org/">PHP-Nuke</a> 
today. I got it install easily enough. Even though I'm not crazy about PHP, it might be a good excerise to port A3 to it. We'll see. I don't have time to do that today. Besides Slash, what CMS programs are you using? <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7218">post</a> and <a href="http://use.perl.org/comments.pl?sid=7858">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Beware the Muhnochwa]]></title>
    <link href="https://www.taskboy.com/2002-08-20-Beware_the_Muhnochwa.html"/>
    <published>2002-08-20T00:00:00Z</published>
    <updated>2002-08-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-08-20-Beware_the_Muhnochwa.html</id>
    <content type="html"><![CDATA[<p><p>Pigdog journal is reporting on a <a href="http://www.pigdog.org/auto/aliens_suck/link/2677.html">dangerous new mystery beast</a>. It's known as the Muhnocwha and it's in India causing riots and mayham! 
<p><blockquote>
Police Deputy Inspector General K. N. D. Dwivedi, for example, put forth the theory that "the assailant was a genetically engineered insect introduced by 'anti-national elements' from outside India to cause mayhem." 
</blockquote></p>

<p><p>Clearly, there's an Al-Queda link to this monster. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7194">post</a> and <a href="http://use.perl.org/comments.pl?sid=7832">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Farscape to go on hiatus until Jan, 2003]]></title>
    <link href="https://www.taskboy.com/2002-08-18-Farscape_to_go_on_hiatus_until_Jan,_2003.html"/>
    <published>2002-08-18T00:00:00Z</published>
    <updated>2002-08-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-08-18-Farscape_to_go_on_hiatus_until_Jan,_2003.html</id>
    <content type="html"><![CDATA[<p>If this can be believed</a>, the SciFi channel will be putting <a href="http://www.scifi.com/farscape/">Farscape</a> on hiatus starting in September, 2002 and extending into January 2003 with no repeats. What the hell? Must we get two hours of Star Trek every week night and not even a freakin' weekly repeat of Farscape? The terrorists have already won.
<p>I suggest a letter writting campaign to Sci-Fi. This is madness must end. The DVDs aren't not flying out of <a href="http://www.advfilms.com/">ADV</a>
and I need my fix. 
<p>You can send suggestions to <a href="mailto:program@www.scifi.com">program@www.scifi.com</a>.
<p>update: Does Season 4 seem vaguely familiar to you? Did <em>Perfect Murder</em> seem to "skip" like a broken record? Notice a warped similarity between <em>Crighton Kicks</em> (4.01) and <em>Premier</em> (1.01)? One explanation for this is that the Farscape writting team has lost their minds and talent. Another explanation is <a href="http://www.farscapeweekly.com/remix.htm">inspired by modern music</a>.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7152">post</a> and <a href="http://use.perl.org/comments.pl?sid=7786">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The Wisdom of Solomon]]></title>
    <link href="https://www.taskboy.com/2002-08-17-The_Wisdom_of_Solomon.html"/>
    <published>2002-08-17T00:00:00Z</published>
    <updated>2002-08-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-08-17-The_Wisdom_of_Solomon.html</id>
    <content type="html"><![CDATA[<p><p>For more proof that you have an evil little mind, I present a harmless sign for <a href="http://www.boners.com/grub/381946.html">West Side Church</a>. Once again I remind you that this is not a cheap shot at the trouble Catholic church. In fact it appears that the Church in this picture is Protestant. Enjoy.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7136">post</a> and <a href="http://use.perl.org/comments.pl?sid=7769">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Portrait of a young artist as a sadist]]></title>
    <link href="https://www.taskboy.com/2002-08-16-Portrait_of_a_young_artist_as_a_sadist.html"/>
    <published>2002-08-16T00:00:00Z</published>
    <updated>2002-08-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-08-16-Portrait_of_a_young_artist_as_a_sadist.html</id>
    <content type="html"><![CDATA[<p><p>Professor Gunther von Hagens is a scholar with a difference â and what a difference! To promote better understanding of human anatomy, von Hagens produces to <a href="http://news.bbc.co.uk/1/hi/uk/2195386.stm">scale models of humans with varying degrees of tissue</a>. The catch is that these models are real human corpses! Normally, those that engage in this sort of thing are hunted by the police or appear as fictional characters in movies, but this ghoul's work is in the name of science. Volunteers are petitioning von Hagens for a chance to become 'plastinated.' 
<p>I wonder if Vlad the Impaler had to turn away businessâ¦ <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7129">post</a> and <a href="http://use.perl.org/comments.pl?sid=7759">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[haughty documentation]]></title>
    <link href="https://www.taskboy.com/2002-08-16-haughty_documentation.html"/>
    <published>2002-08-16T00:00:00Z</published>
    <updated>2002-08-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-08-16-haughty_documentation.html</id>
    <content type="html"><![CDATA[<p>From <a href="http://modules.apache.org">http://modules.apache.org</a>:</p>

<blockquote>
mod_proxy_add_forward
<br><br>
Adds X-Forwarded-For header (and others) to outgoing proxy requests. Useful when you have a light mod_proxy in front of your
fat backend
</blockquote>

<p><p>Hey! Don't talk about my backend like that! I'm working on it.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7134">post</a> and <a href="http://use.perl.org/comments.pl?sid=7765">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Come all ye faithful]]></title>
    <link href="https://www.taskboy.com/2002-08-14-Come_all_ye_faithful.html"/>
    <published>2002-08-14T00:00:00Z</published>
    <updated>2002-08-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-08-14-Come_all_ye_faithful.html</id>
    <content type="html"><![CDATA[<p><p>Rotten.com is a place where subtlety isn't in vogue. However, the evil in this picture of the 'act of contrition'</a> is entirely in the eye of the beholder (like this picture</a>). At first, I thought this was a rather obvious and childish cartoon capitalizing on the recent troubles of those randy catholic priests. It isn't. It is a real graphic from a non-funny prayerbook called 'Friend with God.' I'm led to believe that one can make friends with other people as well with the 'abasement' suggested in this drawing. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7089">post</a> and <a href="http://use.perl.org/comments.pl?sid=7716">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Classy Broad]]></title>
    <link href="https://www.taskboy.com/2002-08-12-Classy_Broad.html"/>
    <published>2002-08-12T00:00:00Z</published>
    <updated>2002-08-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-08-12-Classy_Broad.html</id>
    <content type="html"><![CDATA[<p><p><blockquote>
After some fans booed the 56-year-old's announcement, she responded: "Give me a frigging break. I've been a frigging diva for 40 frigging years. This is the last time I'm going to do this." 
</blockquote></p>

<p><p>âAP: <a href="http://wire.ap.org/?FRONTID=ARTS&amp;SLUG=CHER%2dFAREWELL%2dTOUR">Singer Cher Launches Farewell Tour</a>
<p>Come on, Grandma! Put on the bondage glitter gear and sing another tune about sex! You know what the poet guy said about "do not go gentle into that good night."<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7044">post</a> and <a href="http://use.perl.org/comments.pl?sid=7667">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Drop your pants here]]></title>
    <link href="https://www.taskboy.com/2002-08-10-Drop_your_pants_here.html"/>
    <published>2002-08-10T00:00:00Z</published>
    <updated>2002-08-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-08-10-Drop_your_pants_here.html</id>
    <content type="html"><![CDATA[<p><p>The subject line for this journal also appeared on a dry cleaner's sign in Manchester, NH. Komedy.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7030">post</a> and <a href="http://use.perl.org/comments.pl?sid=7652">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Review of The Stochastic Man]]></title>
    <link href="https://www.taskboy.com/2002-08-09-Review_of__The_Stochastic_Man_.html"/>
    <published>2002-08-09T00:00:00Z</published>
    <updated>2002-08-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-08-09-Review_of__The_Stochastic_Man_.html</id>
    <content type="html"><![CDATA[<p><p>I recently read a somewhat forgotten book from noted sci-fi/fantasy
author Robert Silverberg called The Stochastic Man. The plot
is simple and familiar enough: a hero uses advanced probablistic math
to predict the future for fun and profit (pun intended) and is
shaken to encounter a genuine seer. The protagonist, Lew Nichols,
is a well compensated trends advisor in New York City at the end
of the twentith century. He becomes involved with a small town
politian, Paul Quinn, whom Nichols helps to get elected Governor.
Nichols enjoys the power and the good life of being a player in an
increasingly dystopic NYC (factional terrorism is the norm, various
borroughs are written off as being ungovernable). Everything in
Nichol's life is great until Martin Carvajal, a generous financial
backer of the Quinn election effort, insists on a face to face
meeting with Nichols. Where Nichols uses technology to forecast
liekly future events, Carvajal claims to be able to see the future
without error. The reader follows Nichols into ruinous obsession
and madness as he tries to learn the secrets of true sight.
Predictably, Nichols learns that uncertainty of the future isn't
entirely a bad thing.</p>

<p><p>Written in 1975, The Stochcastic Man paints an amusing
picture of America at the end of the century. Silverberg merely
extrapolated the culture of the seventies, prevasive sex, drugs
and violence, to present a future world that looks somewhat like
what we have now. While Silverberg's vision isn't entirely accurate,
his description of New York terrorism is eerily prescient.</p>

<p><p>Silverberg explores the well-worn sci-fi plot device of
science-enabled prognostication, not unlike the way Azimov did
the Foundation series. Silverberg's novel posits a world in which
the future is immutable, like some Calvinist nightmare. What's
interesting is that the immutability of future isn't fully tested
by the protagonist. Instead, Nichols and Carvajal become puppets
of their visions. It is clear that some of the predicted events
that the characters see are beyond their capability to change,
but other predictions are very easily avoided. It would be been
interesting to see Nichols act more defiantly against the
glimsed future. As the X-Files movie suggested, Fight the Future.</p>

<p><p>Silverberg's writing style is crisp and engaging. Like many
authors of that time, Silverberg pushs the boundaries of English
grammar at times. Some of these experiments work, others don't.
In particular, he has an annoying habit of repeating the same
word in a series for emphasis. This got irratating quickly.
Also there were a few typos in my edition. Bummer. I
wish Silverberg had delivered more on the apocalyptic
vision of the 2004 Quinn administration. I felt a little cheated
by the way Silverberg chose to resolve this problem. Nichols
gets off a little too easily, I think.</p>

<p><p>If you come across The Stochastic Man, I believe you
will enjoy reading it. It's a fun summer ride.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/7006">post</a> and <a href="http://use.perl.org/comments.pl?sid=7625">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Doublethink is doubleplus good!]]></title>
    <link href="https://www.taskboy.com/2002-08-07-Doublethink_is_doubleplus_good_.html"/>
    <published>2002-08-07T00:00:00Z</published>
    <updated>2002-08-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-08-07-Doublethink_is_doubleplus_good_.html</id>
    <content type="html"><![CDATA[<p><blockquote>

<p>Rumsfeld also answered criticism that the United States is acting unilaterally in its war on terrorism and in other matters of foreign policy. More than 90 countries have joined in the anti-terrorism fight, Rumsfeld said, with 37 sending military representatives to U.S. Central Command headquarters in Florida. 
<p>â¦</p>

<p><p><code>You must not fashion a coalition and then let it determine the mission,'' Rumsfeld said.</code>To the extent you do that, you end up dumbing down to the lowest common denominator, and it seems to me that we can't do that.'' 

</blockquote>
<p>âAP: <a href="http://wire.ap.org/?FRONTID=ELECTION&amp;SLUG=RUMSFELD">Rumsfeld Laments Military Intel</a>
<p>Remember: just because you agree to work with others in a coalition doesn't mean you have to listen to them (I'm looking at you <a href="http://wire.ap.org/?FRONTID=MIDEAST&amp;SLUG=SAUDI%2dUS">Saudi Arabia</a>).<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6958">post</a> and <a href="http://use.perl.org/comments.pl?sid=7573">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Word Spy]]></title>
    <link href="https://www.taskboy.com/2002-08-07-Word_Spy.html"/>
    <published>2002-08-07T00:00:00Z</published>
    <updated>2002-08-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-08-07-Word_Spy.html</id>
    <content type="html"><![CDATA[<p>Like new words but don't know where to find them? Try <a href="http://www.wordspy.com/">Word Spy</a>. Here's a sample:</p>

<blockquote>
drunk dail: v. To make an embarrassing phone call while inebriated. Also: drunk-dial.
-n. A phone call made while drunk.
</blockquote>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6962">post</a> and <a href="http://use.perl.org/comments.pl?sid=7577">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Postgres Ahoy!]]></title>
    <link href="https://www.taskboy.com/2002-08-06-Postgres_Ahoy_.html"/>
    <published>2002-08-06T00:00:00Z</published>
    <updated>2002-08-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-08-06-Postgres_Ahoy_.html</id>
    <content type="html"><![CDATA[<p><p>Today I installed <a href="http://www.postgresql.org">postgres</a>. 
I've been using MySQL for several years now and have been generally happy with it. Lately, I've been looking lustily at such features as foreign key support and subselects â things that MySQL is slowly beginning to think about maybe implementing possibly Real Soon Now. For once, I'm not going to be partisan about my software. To put it plainly, I need what I need. MySQL is still a great engine for read-only, infrequently changing data. Postgres promises to be better at supporting complex referential relationships between tables. 
<p>Postgres is not without failings.</p>

<ul>
  <li>The command line client psql works slightly differently than mysql. I didn't expect a learning curve there.
  <li>The quoting rules for the SQL postgres expects is, er, unexpected. That double quotes denote column names and single quotes denote strings is an unexpected wrinkle. 
  <li>I'm not fond the postgres authorization system. I prefer the MySQL style of internal SQL tables to manage access to the databases rather than an external, UNIXy text file database. SIGHUPs to 
postmaster for authorization changes? Eek.
  <li>I noticed that the maximum number of TCP/IP connections was a compile time setting. I assume this can be overridden by a runtime configuration option.
</ul>

<p><p>These aren't showstopper problems; this is merely my travelog as I pass through the unknown country of a new RDBMS.
<p>Why am I bothering? Apache::Session supports both MySQL and Postgresql. What's the difference? Apache::Session::MySQL locks the tables during updates. Apache::Session::Postgres uses transactions and no locking. I think the ideal solution is row-level locking. The MySQL solution quickly falls down in the application I'm developing because every web page paint requires accessing the session table. 
<p>Transactions aren't a silver bullet either. One process can be altering a row while another is reading and acting on the soon-to-be-changed data. For Apache::Session applications, this implies that two users would be trying to alter the same row (with the same session), which isn't suppose to happen except for extremely pathological cases. In any case, the application's performance will handled a bigger load with the table locking millstone. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6915">post</a> and <a href="http://use.perl.org/comments.pl?sid=7528">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Eco-friendly contraception]]></title>
    <link href="https://www.taskboy.com/2002-08-05-Eco-friendly_contraception.html"/>
    <published>2002-08-05T00:00:00Z</published>
    <updated>2002-08-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-08-05-Eco-friendly_contraception.html</id>
    <content type="html"><![CDATA[<p><p>note: This is adapted from an email conversation I had recently.</p>

<p><p>Humans are nothing if not ingenious recyclers of their environment. I 
believe the ancient Romans used to clean their clothes with a brew <br>
that included urine procured for a small fee from urban pedestrians.</p>

<p><p>Contraception too has its roots in waste products. Women in pharaonic Egyptian
used to employ a crocodile dung compound as a sort of spermicide. Apparently, 
this prophylactic fell out of use in the modern era. About the time
Adam Smith was writing about the "invisible hand of Capitalism," Europeans
were pinning their contraceptive hopes on the stopping power of lemons.
I assume that there were other benefits to using a more palatable <br>
substance than crocodile excrement. Even considering the high level of filth 
that people lived with back then, I think an extra dollop of fecal mass 
(particularly that of a rare and exotic beast) would have had a deleterious
effect on the libidos of all but the most sorely pressed of couples. 
Certainly if the Hindus had had only the Egyptian method available, the 
<em>Karma Sutra</em> would have been a greatly abbreviated tome.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6909">post</a> and <a href="http://use.perl.org/comments.pl?sid=7521">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Conway Channel Reruns]]></title>
    <link href="https://www.taskboy.com/2002-08-01-Conway_Channel_Reruns.html"/>
    <published>2002-08-01T00:00:00Z</published>
    <updated>2002-08-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-08-01-Conway_Channel_Reruns.html</id>
    <content type="html"><![CDATA[<p><p>In the spirit of "what's old is new again," I 
re-present the interview I did with <a href="http://www.perl.com/pub/a/2000/08/conway.html">Damian Conway</a> back in August, 2000 for www.perl.com. Read what Damian had to say about hep applications, computer-assisted learning and what month he'd like to be in the oft-proposed Men of Perl calendar. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6813">post</a> and <a href="http://use.perl.org/comments.pl?sid=7420">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Which is more distrubing?]]></title>
    <link href="https://www.taskboy.com/2002-08-01-Which_is_more_distrubing_.html"/>
    <published>2002-08-01T00:00:00Z</published>
    <updated>2002-08-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-08-01-Which_is_more_distrubing_.html</id>
    <content type="html"><![CDATA[<p><p><blockquote>The Afghans said there were no Taliban or al-Qaida targets in the area that was hit by the Americans late Wednesday. They also said the U.S. military had promised to check with local authorities before launching such attacks, but failed to do so in this case. 
<br><br>
Mohammad, said the attack was prompted by ``a wrong report to the Americans.'' He suggested that someone involved in a local feud had falsely reported Taliban or al-Qaida in the targeted location to draw American fire. 
</blockquote>
<p>âAP: <a href="http://wire.ap.org/?SLUG=AFGHAN%2dVILLAGE%2dATTACKED">U.S. Denies Afghan Chopper Attack</a></p>

<p><p>This report raises the specter that the US military is shooting blind in Afghanistan and will desperately act on any and all leads. Are some Afghanis taking advantage of us?</p>

<p><p>But wait, there's more:</p>

<p><p><blockquote>
Brock Enright, a 25-year-old artist, has created a business where people pay him thousands of dollars a time to be violently abducted. 
<br><br>
Around 30 people have used the service so far, and dozens of other personalised 'kidnap plans' are in preparation.
</blockquote>
<p>âBBC: <a href="http://news.bbc.co.uk/2/hi/americas/2163666.stm">Kidnapping for kicks in New York</a></p>

<p><p><em>blink</em> <em>blink</em> Aren't we trying to <em>fight</em> terrorism? W. T. F.?<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6832">post</a> and <a href="http://use.perl.org/comments.pl?sid=7436">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[mod_backhand, good load balancing solution?]]></title>
    <link href="https://www.taskboy.com/2002-08-01-mod_backhand,_good_load_balancing_solution_.html"/>
    <published>2002-08-01T00:00:00Z</published>
    <updated>2002-08-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-08-01-mod_backhand,_good_load_balancing_solution_.html</id>
    <content type="html"><![CDATA[<p><p>Are there any Perlers here that have used <a href="http://www.backhand.org/">mod_backback</a>
for load balancing Apache/mod_perl processes? It seems like a groovy module, but I'd appreciate any feedback you have (including "why use that when you could more easily use <em>X</em>").  <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6835">post</a> and <a href="http://use.perl.org/comments.pl?sid=7439">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Moderation not legislation]]></title>
    <link href="https://www.taskboy.com/2002-07-31-Moderation_not_legislation.html"/>
    <published>2002-07-31T00:00:00Z</published>
    <updated>2002-07-31T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-31-Moderation_not_legislation.html</id>
    <content type="html"><![CDATA[<p><p><blockquote>
The senators Â Bill Frist, Jeff Bingaman and Christopher Dodd Â introduced legislation Tuesday aiming at reducing obesity, especially among children. 
<br><br>
<code>Obesity is, for the most part, preventable,'' said Frist, R-Tenn.</code>There is no single solution, but better information, improved nutrition and greater opportunities for physical activity will guarantee progress.'' 
</blockquote></p>

<p><p>âAssoc. Press, <a href="http://wire.ap.org/?FRONTID=ELECTION&amp;SLUG=OBESITY%2dBILL">Senators Introduce Obesity Bill</a></p>

<p><p>With great restraint, I resisted opening this entry with a cheap joke about the long tradition of lardbutts in Congress.
But feel free to make your own. The historical minded of you might want to mention Chester A. Arthur or William H. Taft (a president so gaucy that he once became wedged in the White House bathtab). Modern legislative two-ten-tessies include Newt Gingrich, Dick Army and my own state's sentor with senority Ted Kennedy. Consider using motifs like "pot calling kettle black," "fox guarding hen house," or "tax fattened hyennas."</p>

<p><p>That was fun.</p>

<p><p>Congress can do diddly-squat about American eating habits. Most individuals are hard pressed to effectively manage their weight (see first paragraph). Despite frivilous lawsuits against the fast food industry, there isn't a dearth of <a href="http://www.cdc.gov/">nutrition information</a> freely available. Is there an epidemic of obesity in the US? The CDC and other health organizations believe so. Yet what more can the federal government do to improve the situation? Eating habits are so primal that they are difficult to alter even by people who <a href="http://use.perl.org/~jjohn/journal/5345">want</a> to do so. This bill is full of good intentions but is absolutely destined to abject failure. The proposed "fat" money is better spent on anything else (<em>cough</em> <a href="http://wire.ap.org/?FRONTID=NATIONAL&amp;SLUG=TRAIN%2dDERAILMENT">Amtrak</a>).</p>

<p><p>When it does fail, will the Feds declare a War on Weight? Will McDonald's</a>, <a href="http://www.anheuser-busch.com/">Anheuser-Busch</a> and <a href="http://www.littledebbie.com/ProductFrame/LD_Product.html">Little Debbie Snack Treats</a> be labled an "Axis of Fat?"</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6792">post</a> and <a href="http://use.perl.org/comments.pl?sid=7399">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Taskboy goes minimal]]></title>
    <link href="https://www.taskboy.com/2002-07-30-Taskboy_goes_minimal.html"/>
    <published>2002-07-30T00:00:00Z</published>
    <updated>2002-07-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-30-Taskboy_goes_minimal.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://taskboy.com">Taskboy.com</a> has yet a new look. Hope you like it. It will take me a few days to get consistency throughout the whole site. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6737">post</a> and <a href="http://use.perl.org/comments.pl?sid=7340">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Traficant's Troubles]]></title>
    <link href="https://www.taskboy.com/2002-07-30-Traficant_s_Troubles.html"/>
    <published>2002-07-30T00:00:00Z</published>
    <updated>2002-07-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-30-Traficant_s_Troubles.html</id>
    <content type="html"><![CDATA[<p><p>Recently removed Ohio Rep. James Traficant ran afoul of standards and practices on the Imus show. During a telephone interview, Traficant <a href="http://wire.ap.org/?FRONTID=ARTS&amp;SLUG=TV%2dMSNBC%2dEXPLETIVE">expressed his dissatisfaction</a> with the FBI and IRS.
<p><blockquote>
"[they can] go [fuck] themselves."
</blockquote>
<p>Imus, using his seven-second-delay radio-FU, blocked the explitive from his live show. MSNBC, inexplicably, could not do the same.
<p>The seasoned broadcaster admonished Traficant and then asked:</p>

<blockquote>
"They are going to sentence you tomorrow. How much do you think you'll get?"
</blockquote>

<p><p>The bemused Traficant then hung up.
<p>Is it just me, or does Traficant sound like a rerun of Bloom County's Senator Bedfellow?</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6765">post</a> and <a href="http://use.perl.org/comments.pl?sid=7369">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[What goes up…]]></title>
    <link href="https://www.taskboy.com/2002-07-29-What_goes_up.html"/>
    <published>2002-07-29T00:00:00Z</published>
    <updated>2002-07-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-29-What_goes_up.html</id>
    <content type="html"><![CDATA[<p><p><blockquote>
A spokesman for Afghanistan's foreign ministry says it is premature to judge whether or not there has been a cover-up, as investigations are still ongoing, but warned there should be no cover-up from any side. 
<br><br>
He said the Afghan Government is continuing to look into the matter, and says it is taking the allegations that women's hands were forcibly tied very seriously. 
</blockquote>
<p>âBBC: <a href="http://news.bbc.co.uk/2/hi/south_asia/2158497.stm">US 'tried to hide' bomb blunder</a>
<p>Is this just more anti-US slander? I hope so. In less political news:
<p><blockquote>
"You can invest a little money in far-out projects if they have some chance of success - it's called Pascal's Wager. In this case, most scientists would say there is zero chance of success." 
</blockquote>
<p>âBBC: <a href="http://news.bbc.co.uk/2/hi/science/nature/692968.stm">Gravity research gets off the ground</a></p>

<p><p>This is a very curious use of the term "Pascal's Wager," which is the cynically practice of worshipping God because there are only benefits to doing so and no upside to not. Let's hope antigravic
tech becomes viable soon. I want 
my own spaceship. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6717">post</a> and <a href="http://use.perl.org/comments.pl?sid=7319">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Depraved and Insulting English]]></title>
    <link href="https://www.taskboy.com/2002-07-28-Depraved_and_Insulting_English.html"/>
    <published>2002-07-28T00:00:00Z</published>
    <updated>2002-07-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-28-Depraved_and_Insulting_English.html</id>
    <content type="html"><![CDATA[<p><p>Am I talking about Usenet? Of course not! Depraved and Insulting English is a compendium of Novobatzky and Shea's earlier works
Depraved English and Insulting English. What sort of words can be found in this little monster?
<p><blockquote>
"Oh, no!" said Roscoe, as he tried in vain to extricate himself from between the elevator doors.
"Imbulbitated again!"
</blockquote>
<p>What's not to like about this book, you <a href="http://www.fubsy.net/">fubsy</a>, <a href="http://www.odd-sex.com/info/gloss264.htm">eproctolagniacal</a> <a href="http://www.fatlaneonline.com/smg/smg07.jpg">fussocks</a>! (Please don't <a href="http://museums.ncl.ac.uk/flint/images/clubbing.gif">fustigate</a> me).<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6689">post</a> and <a href="http://use.perl.org/comments.pl?sid=7289">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[On The Air]]></title>
    <link href="https://www.taskboy.com/2002-07-28-On_The_Air.html"/>
    <published>2002-07-28T00:00:00Z</published>
    <updated>2002-07-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-28-On_The_Air.html</id>
    <content type="html"><![CDATA[<p><p>I've just finished a cover of Pete Gabriel's <a href="http://taskboy.com/music/on_the_air.mp3">On The Air</a>. Have a listen â it'll get your toes a-tappin'. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6703">post</a> and <a href="http://use.perl.org/comments.pl?sid=7303">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Now, swallow]]></title>
    <link href="https://www.taskboy.com/2002-07-27-Now,_swallow.html"/>
    <published>2002-07-27T00:00:00Z</published>
    <updated>2002-07-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-27-Now,_swallow.html</id>
    <content type="html"><![CDATA[<p><p><blockquote>
The Clintons raked in millions of dollars last
                                                    year after leaving the White House. The former
                                                    president earned $9.2 million on the lecture
                                                    circuit, and Hillary Clinton â now New York's
                                                    junior senator â received an $2.85 million
                                                    advance on her memoirs. 
<br><br>
                                                    But they still have legal bills totaling between
                                                    $1.75 million and $6.5 million, according to the
                                                    financial disclosure form Mrs. Clinton was
                                                    required to file as a member of the Senate. The
                                                    Clintons paid $1.3 million in legal bills last year,
                                                    according the Senate filing. </p>

<p></blockquote></p>

<p><p>â<a href="http://www.cnn.com/2002/ALLPOLITICS/07/26/clintons.legal.bills.ap/index.html">BBC News</a></p>

<p><p>Slick Willie does it again. Even though I preferred the Clinton administration to W.'s and I thought the Whitewater investigation was a political witchhunt from day one, this is a little much to take. Clinton is lucky he's not doing jail time right now. But that's The Clin-ton â temerity incarnate. I guess that's part of his charm. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6682">post</a> and <a href="http://use.perl.org/comments.pl?sid=7281">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Dental Health will drive you mad!]]></title>
    <link href="https://www.taskboy.com/2002-07-26-Dental_Health_will_drive_you_mad_.html"/>
    <published>2002-07-26T00:00:00Z</published>
    <updated>2002-07-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-26-Dental_Health_will_drive_you_mad_.html</id>
    <content type="html"><![CDATA[<p><p>If you're like me, tartar buildup is your nemesis. No matter that I brush twice a day and floss, that stupid tartar accretes on my teeth like cat fur on black pants. Since I was at the dentist getting a cavity filled, he clued me in on this great (and cheap) way to polish your choppers.
<p>Once a day (before bed, I think), pour a few 
spoonfuls of baking soda in your hand. Dip a wet toothbrush into the powder and brush away! Sure, baking soda is a pretty salty and you don't want to swallow it. However, the effectiveness of this technique is pronounced and it is well worth the mild discomfort.
<p>Just another tip from your old Uncle Joe. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6673">post</a> and <a href="http://use.perl.org/comments.pl?sid=7270">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Stupid White People]]></title>
    <link href="https://www.taskboy.com/2002-07-26-Stupid_White_People.html"/>
    <published>2002-07-26T00:00:00Z</published>
    <updated>2002-07-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-26-Stupid_White_People.html</id>
    <content type="html"><![CDATA[<p><p><blockquote>
A group of overweight Americans have sued several US fast food giants accusing them of knowingly serving meals that cause obesity and disease.
</blockquote>
<p>â<a href="http://news.bbc.co.uk/2/hi/americas/2151754.stm">BBC News</a>
<p>I can't even muster a wiseass remark about the shear stupidity and lack of self-awareness the subjects of this article radiate. For the love of sweet Christ, how the hell does one eat at McDonald's and <em>not</em> feel the arteries harden? Having battled my own weight problems, I can tell you how hard it is to find food that won't expand your wasteline. Here's a hint: stop patronizing fast food restaurants. 
<p>Jesus f*cking Christ in a pink sweater in July, this is the very definition of inane. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6652">post</a> and <a href="http://use.perl.org/comments.pl?sid=7249">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Ben Browder brings home the bacon]]></title>
    <link href="https://www.taskboy.com/2002-07-23-Ben_Browder_brings_home_the_bacon.html"/>
    <published>2002-07-23T00:00:00Z</published>
    <updated>2002-07-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-23-Ben_Browder_brings_home_the_bacon.html</id>
    <content type="html"><![CDATA[<p><p>In Farscape news, John Crighton's alter-ego actor Ben Browder is the author of tomorrow night's Farscape. If the teasers are to be 
believed, expect both a Max Headroom reference and an appearence by Zhaan!</p>

<p><p>Now that I have a DVD player, I've begun snatching up Farscape DVDs like a crack addict. I have the Best of Season 1, the first US Season 2 set and "Exodus from Genesis/Throne for a Loss" discs (I love the actor commentary â Browder and Black are big Farscape geeks too). To further indict me as a luser, I also picked up a few issues of the Farscape magazine which features articles from Exec. Producer David Kemper. Indeed it appears that
Farscape is conceived of as a "TV novel," in a similar way that Babylon 5 (although I don't know that the whole story is worked out yet). Although some would say that season 4 has had a rocky start, it appears that things may be swinging into high gear now. Yow!</p>

<p><p>There are a few Farscape conventions coming up
(one in New York in September), but that's over the edge for me. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6590">post</a> and <a href="http://use.perl.org/comments.pl?sid=7182">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Hooray for boobies!]]></title>
    <link href="https://www.taskboy.com/2002-07-23-Hooray_for_boobies_.html"/>
    <published>2002-07-23T00:00:00Z</published>
    <updated>2002-07-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-23-Hooray_for_boobies_.html</id>
    <content type="html"><![CDATA[<p><p>With all the left-wing journals I've written lately, I feel that I may have alienated some of my loyal readers (Pudge). In an effort to win back the karma I've burned, I present a link to a test most of you will enjoy taking: 
<a href="http://www.mazafaka.ru/lol/btest/BreastTest.shtml">SPOT THE FAKE BOOBS</a>. Identify the face behind the boobs here for extra joy-luck! <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6570">post</a> and <a href="http://use.perl.org/comments.pl?sid=7162">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The Snakeheads are coming! The Snakeheads are coming!]]></title>
    <link href="https://www.taskboy.com/2002-07-23-The_Snakeheads_are_coming__The_Snakeheads_are_coming_.html"/>
    <published>2002-07-23T00:00:00Z</published>
    <updated>2002-07-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-23-The_Snakeheads_are_coming__The_Snakeheads_are_coming_.html</id>
    <content type="html"><![CDATA[<p><p>The latest salvo in the sino-US Cold War has reached US soil. Snakeheads</a> are land-walking, carnivorous fish that threaten to replace native American fish species. Snakeheads have been found in <a href="http://www.cnn.com/2002/TECH/science/07/23/snakehead.reut/index.html">several states</a> including the <a href="http://www.masshole.com">Great State of Massachusetts</a>. Snakeheads are a <a href="http://www.foodno1.com/efoodno1/menu/efood-tt-recipe-ch/efood-recipe-ch-soup/html/efood-tt-20000514b.html">tasty treat</a> dead but a fierce competitor for environmental resources. Because they can open their mouths widely, they can feed on:</p>

<ul>
 <li>frogs
 <li>birds
 <li>small mammals
 <li>Perl programmers who fail to read the FAQ
</ul>

<p><p>This new "Red Menace" must be stopped â even if it means feeding snakehead sushi to the homeless for free. 
<p>Those of you for whom the irony that we can fish North Sea Cod out of existence but are befuddled by several hundred snakeheads is amusing are bad, bad monkeys.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6576">post</a> and <a href="http://use.perl.org/comments.pl?sid=7168">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[UK advises university students: stop with the book larnin']]></title>
    <link href="https://www.taskboy.com/2002-07-22-UK_advises_university_students__stop_with_the_book_larnin&apos;.html"/>
    <published>2002-07-22T00:00:00Z</published>
    <updated>2002-07-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-22-UK_advises_university_students__stop_with_the_book_larnin&apos;.html</id>
    <content type="html"><![CDATA[<p><p><blockquote>
The Institute of Directors (IoD)says people are leaving university with useless degrees which could damage their job prospects not improve them. 
<br><br>
The employers' organisation wants the government to scrap its target of getting 50% of under-30s to university by 2010. 
</blockquote></p>

<p><p>â<a href="http://news.bbc.co.uk/hi/english/education/newsid_2143000/2143617.stm">BBC</a></p>

<p><p>In the US, the expression for this sentiment 
is summed up in the truism: "The world needs ditchdiggers." Bizzare. I thought this was the twenty-first century, not the nineteenth.
Also, this article is evidence countries besides the US perceive education as only a means to a job. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6536">post</a> and <a href="http://use.perl.org/comments.pl?sid=7126">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Dr. Evil's Hard Knock Life?]]></title>
    <link href="https://www.taskboy.com/2002-07-21-Dr.html"/>
    <published>2002-07-21T00:00:00Z</published>
    <updated>2002-07-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-21-Dr.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://www.austinpowers.com/cgi-bin/movieinfo/soundtrack.cgi?Q=1#">Yup</a>. I can't get enough of the Austin Powers franchise.
<p>Wait?! What has Goldmember done to use.perl.org</a>?<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6506">post</a> and <a href="http://use.perl.org/comments.pl?sid=7094">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Letting Go]]></title>
    <link href="https://www.taskboy.com/2002-07-21-Letting_Go.html"/>
    <published>2002-07-21T00:00:00Z</published>
    <updated>2002-07-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-21-Letting_Go.html</id>
    <content type="html"><![CDATA[<p><p>Techno remixes. Who doesn't like them? Not me! I can't get enough. If you're like me, you'll want to give a listen to <a href="http://taskboy.com/music/letting_go_remix.mp3">Letting Go</a>. It's a remix of one of my songs! How self-referential!
<p>190 bpm can't be wrong!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6501">post</a> and <a href="http://use.perl.org/comments.pl?sid=7089">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Those Crazy Brits!]]></title>
    <link href="https://www.taskboy.com/2002-07-21-Those_Crazy_Brits_.html"/>
    <published>2002-07-21T00:00:00Z</published>
    <updated>2002-07-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-21-Those_Crazy_Brits_.html</id>
    <content type="html"><![CDATA[<p><p>The BBC is <a href="http://news.bbc.co.uk/hi/english/world/south_asia/newsid_2141000/2141975.stm">reporting</a> that a survey by the Global Exchange group, based in San Francisco, found that more than 800 civilians were killed by US air strikes during the liberation of Afghanistan. Who can trust a report from a <a href="http://www.globalexchange.org/september11/2002/afp040702.html">bunch of hippies</a>? Even President Karzai believes that the survey exaggerates the number (he suggests that less than 500 have been killed). 
Also note that today CNN is carrying its own story about the civilian losses in Afghanistan</a>. You'll note that the number is 13 and that the deaths aren't attributed to the US military. Now that's news I can live with!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6511">post</a> and <a href="http://use.perl.org/comments.pl?sid=7099">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Poundstone's Problems]]></title>
    <link href="https://www.taskboy.com/2002-07-20-Poundstone_s_Problems.html"/>
    <published>2002-07-20T00:00:00Z</published>
    <updated>2002-07-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-20-Poundstone_s_Problems.html</id>
    <content type="html"><![CDATA[<p><p>Last year comedian Paul Poundstone <a href="http://wire.ap.org/?FRONTID=ARTS&amp;SLUG=PEOPLE%2dPAULA%2dPOUNDSTONE">lost custody of her three adopted children</a> because
she drove drunk with them. Now, I'm not going to 
say I support drunk driving, because I don't. However, both my brothers and my father have been 
four sheets to the wind while dragging me around.
Is this safe? Hell no. All of them have been in automobile accidents. Should I have been removed 
from my family? Hell no. Nobody is perfect and one can only hope that the legal barrier that allows the state  to take children away from their parents is sufficiently high. 
<p>On the other hand if Poundstone forced her kids to watch Survivor, I would not only endorse the remove of her children, but also the immediate liquidation of them. Some things you can mess around with.  <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6496">post</a> and <a href="http://use.perl.org/comments.pl?sid=7083">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Horoscope for Libra]]></title>
    <link href="https://www.taskboy.com/2002-07-18-Horoscope_for_Libra.html"/>
    <published>2002-07-18T00:00:00Z</published>
    <updated>2002-07-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-18-Horoscope_for_Libra.html</id>
    <content type="html"><![CDATA[<p><p><blockquote>
Libra: (Sept. 23ÂOct. 23)<br>
By this time next week, you'll either be hung or hanged. Our apologies for any inconvenience the ambiguity may cause.
</blockquote>
<p>â<a href="http://theonion.com/onion3825/horoscopes_3825.html">The Onion</a><p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6447">post</a> and <a href="http://use.perl.org/comments.pl?sid=7028">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Golden Years]]></title>
    <link href="https://www.taskboy.com/2002-07-17-Golden_Years.html"/>
    <published>2002-07-17T00:00:00Z</published>
    <updated>2002-07-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-17-Golden_Years.html</id>
    <content type="html"><![CDATA[<p><p><blockquote>
Undoubtedly, the military remains the United StatesÂ strongest card; in fact, it is the only card. Today, the United States wields the most formidable military apparatus in the world. And if claims of new, unmatched military technologies are to be believed, the U.S. military edge over the rest of the world is considerably greater today than it was just a decade ago. But does that mean, then, that the United States can invade Iraq, conquer it rapidly, and install a friendly and stable regime? Unlikely. Bear in mind that of the three serious wars the U.S. military has fought since 1945 (Korea, Vietnam, and the Gulf War), one ended in defeat and two in drawsÂnot exactly a glorious record.</p>

<p></blockquote>
<p>â<a href="http://www.foreignpolicy.com/issue_julyaug_2002/wallerstein.html">Immanuel Wallerstein's The Eagle has Crash Landed</a></p>

<p><p>Wallerstein's analysis of US foreign policy and fading US hegemony is mostly cogent (although I don't agree with his assertion that World War I+II should be seen merely as a US-German conflict). As the US wanes in power, I hope that we can do so more gracefully than Mother England. I also hope that our ideological child Japan does a better job at running the world than we did.</p>

<p><p>On the bright side, this may all be so much liberal pablum and everything is just fine. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6422">post</a> and <a href="http://use.perl.org/comments.pl?sid=7002">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[News from the Left]]></title>
    <link href="https://www.taskboy.com/2002-07-16-News_from_the_Left.html"/>
    <published>2002-07-16T00:00:00Z</published>
    <updated>2002-07-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-16-News_from_the_Left.html</id>
    <content type="html"><![CDATA[<p><p>Ever feel like a <a href="http://www.auburn.edu/~jfdrake/teachers/gainey/homer/lotuseaters.html">Lotus eater</a>? After reading a few of these tidbits, you might.
<p><blockquote>
Overfishing has driven the cod to virtually vanish from the North Sea, conservationists say.
</blockquote>
<p>â<a href="http://news.bbc.co.uk/hi/english/sci/tech/newsid_2130000/2130024.stm">BBC News</a>
<p><blockquote>
Perhaps the most important taboo is the longevity of the United States as both a terrorist state and a haven for terrorists. That the US is the only state on record to have been condemned by the World Court for international terrorism (in Nicaragua) and has vetoed a UN Security Council resolution calling on governments to observe international law, is unmentionable. 
</blockquote>
<p>â<a href="http://www.guardian.co.uk/Archive/Article/0,4273,4461028,00.html">an extract from John Pilger</a>
<p><blockquote>
WhatÂs not in dispute is that Sudan government officials forced Osama bin Laden to leave their country in 1996. Or that the Al Shifa factory had been purchased by a Sudanese businessman five months before the missile attack â a fact that was unknown to the U.S. at the time it targeted the plant.
<br><br>
Three years after the U.S. government may have killed and injured innocent people on foreign soil in a misguided "retaliation against terrorism," media voices are again calling for a quick and forceful reprisal.</p>

<p></blockquote>
<p>â<a href="http://www.internationalsocialist.org/Cohen.shtml">International Socialist Organization</a></p>

<p><p>Gosh, that's all a little too heavy for me. Time for a <a href="http://www.lazykatcreations.com/images/oring.jpg">dandelion break</a>.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6376">post</a> and <a href="http://use.perl.org/comments.pl?sid=6954">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[I'm the life of the Post Office]]></title>
    <link href="https://www.taskboy.com/2002-07-15-I_m_the_life_of_the_Post_Office.html"/>
    <published>2002-07-15T00:00:00Z</published>
    <updated>2002-07-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-15-I_m_the_life_of_the_Post_Office.html</id>
    <content type="html"><![CDATA[<p><p>I had to mail more money to the government (estimated taxes â 45 days late [damnit!]) and all I had were $0.34 stamps. I accidentally learned that the price of first class stamps had gone up to $0.37. So I schleped down to the Kenmore post office and bought the extra two $0.03 stamps and a pack of $0.37 ones (to break the recursion). The bemused postman showed me the two patterns of stamps available: one with a floral montage and the other with a portrait of Harry Houdini. Of course, I bought the Houdini stamps and said "I'll take the ones with Houdini. After all, I watch my money disappear every month when I pay bills."
<p>That quip garndered a healthy belly laugh from the postman and perhaps postponed his disgruntled armed rampage for another day.
<p>Man, I <em>kill</em> at the post office!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6371">post</a> and <a href="http://use.perl.org/comments.pl?sid=6947">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[A case for -w]]></title>
    <link href="https://www.taskboy.com/2002-07-14-A_case_for_-w.html"/>
    <published>2002-07-14T00:00:00Z</published>
    <updated>2002-07-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-14-A_case_for_-w.html</id>
    <content type="html"><![CDATA[<p><p>I confess that I don't use the '-w' flag much in Perl except when I do syntax checking like:
<code>
$ perl -wc [script]
</code>
<p>For the most part, the only warning perl issued during runtime for my programs 'Use of uninitialized value â¦', which is a pretty lame warning since Perl defines new created variables to be, er, undefined. In C, you sure as heck don't want to be counting on any uninitialed variable values. Perl does the right thing, however, and that's why we use it.
<p>Today, I found a Perl "feature" that I nearly reported as a bug. Take a look at this code:</p>

<p class="code">
use strict;

bar("value");
print "end\n";

sub bar {
  for ($_[0]) {

    /[a-z]/ && do {
      print "Plunging into foo()\n";
      foo();
      print "You got me!\n";
      return 1;
    };

  }

  print "fall through\n";

  return 1;
}

sub foo {

  my $ans = '';
  print "type 'q' to quit\n";
  do{
    last if lc (substr($ans, 0, 1)) eq 'q';
    print "\nstill in loop\n";
  } while( $ans = &lt;> );

  return;
}
</p>

<p><p>Earlier today, I would have expected this program to print:</p>

<p>
Plunging into foo()
type 'q' to quit

You got me
end
</p>

<p><p>This expectation would have also gone unfulfilled, since the real output is more like:</p>

<p>
Plunging into foo()
type 'q' to quit

still in loop

fall through
end
</p>

<p><p>What's going on here? It looks like the 'last' in foo() is jumping back to the loop in bar(). In 
fact, this is the case and -w provides some insight:</p>

<p class="code">
Exiting subroutine via last at â¦
</p>

<p><p>Kudos to p5p for adding this warning! I 
suspect the problem lies with the infrequently-seen-in-Perl-but-useful-Pascal construction 'do{}while()'. Since I haven't run into this behavior before and I rarely use 'do{}while(),' I'm pointing fingers at it. Still
this behavior seems a little bold to me. What do you think?<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6346">post</a> and <a href="http://use.perl.org/comments.pl?sid=6920">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Farscapin']]></title>
    <link href="https://www.taskboy.com/2002-07-13-Farscapin&apos;.html"/>
    <published>2002-07-13T00:00:00Z</published>
    <updated>2002-07-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-13-Farscapin&apos;.html</id>
    <content type="html"><![CDATA[<p><p>Warning: Fan Boy wanking ahead. Those not interested in Space Opera should stop reading now.</p>

<p><p>Farscape is now 5 eps into season four. I've really enjoyed the first three seasons. The writing and acting have both been excellen up to this point. Unfortunately, something isn't quite right about season 4. In many ways, it seems like the writing isn't quite as snappy or original. The episodes seem 
compressed. Tonight's ep 'Promises' is a good example. The whole crew is reunited with Aeryn and Moya and there was a lot of opportunity to play with 
the circumstances that brought everyone back together. Yet, most of the mysterious were resolved before the credits rolled. I'm also able to predict the way the shows are going to unfold and that's not good at all.</p>

<p><p>NOTE TO TORGOX: Farscape is using more alien 
languages</p>

<p><p>It should be said that 
the writing staff of Farscape has proven themselves to be quite ingenious at storytelling.
So what the hell is going on in S4?
 There are two explanations for the handfisted stories. Either they have all overdosed on stupid pills and hookers or â¦
<p>THEY HAVE A REALLY, REALLY MASSIVE STORY JUST LURKING AHEAD.
<p>Until proven otherwise, I suspect the later. In fact, I predict that S4 and some of S5 will be about an as-yet-unstarted Scaran-Sebatian war. I hope that there will still be time for wacko eps like "Revenging Angel" and "Won't Get Fooled Again," but it may be that Kempfer and the team are about to get all Babylon 5 on our collective ass.
<p>Here's your chance to sound off: 
<p>Farscape Season 4: Crap or Craft?</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6318">post</a> and <a href="http://use.perl.org/comments.pl?sid=6890">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[YAPC photos online]]></title>
    <link href="https://www.taskboy.com/2002-07-12-YAPC_photos_online.html"/>
    <published>2002-07-12T00:00:00Z</published>
    <updated>2002-07-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-12-YAPC_photos_online.html</id>
    <content type="html"><![CDATA[<p><p>Amazing <a href="http://taskboy.com/pictures/yapc.html">amateur</a> photography! See Chris Nandor and baby! Nat Torkington wrestle an ATM! Schwern and MJD sleeping! And so much more! 
<p>On Ann's site, witness my <a href="http://www.domaintje.com/~ann/trip/yapc-2/DSCF3506.JPG">hypno-heat vision</a> in action!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6305">post</a> and <a href="http://use.perl.org/comments.pl?sid=6875">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[YAPC Rave '02]]></title>
    <link href="https://www.taskboy.com/2002-07-11-YAPC_Rave__02.html"/>
    <published>2002-07-11T00:00:00Z</published>
    <updated>2002-07-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-11-YAPC_Rave__02.html</id>
    <content type="html"><![CDATA[<p><p>As gnat mentioned</a>, I recently made a <a href="http://www.perl.org/yapc/2002/audio/yapc_rave_02.mp3">techno throb</a> called "YAPC Rave '02" with samples culled from <a href="http://www.perl.org/yapc/2002/movies/themovie/">his YAPC movie</a>. Hopefully, you'll get a chuckle from it. 
If everyone begins chanting "man tits," then I have done my job well. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6269">post</a> and <a href="http://use.perl.org/comments.pl?sid=6835">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[You GO, Girl!]]></title>
    <link href="https://www.taskboy.com/2002-07-09-You_GO,_Girl_.html"/>
    <published>2002-07-09T00:00:00Z</published>
    <updated>2002-07-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-09-You_GO,_Girl_.html</id>
    <content type="html"><![CDATA[<p><p>Balance: That's all I seek. As a nice counterpoint to the story I linked to about jilted men throwing acid on former lovers, this week I find that Iranian women are <a href="http://www.cnn.com/2002/WORLD/meast/07/08/husbandkilling.ap/index.html">taking out the trash</a>. Apparently sufficating social strictures aren't bringing back the golden years of Muhammud and the Rightly-Guided Caliphs. Who could have predicted this? Normally <a href="http://www.gwu.edu/~nsarchiv/NSAEBB/NSAEBB16/">oppresion</a> is a great</a> <a href="http://www.wall-berlin.org/gb/berlin.htm">long-term</a> plan for social stability</a>. Clearly, these women are being unduly influenced by western "ambush" talk shows like Jerry Springer. Death to the infidel!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6230">post</a> and <a href="http://use.perl.org/comments.pl?sid=6790">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Get your learn on: English Grammar]]></title>
    <link href="https://www.taskboy.com/2002-07-07-Get_your_learn_on__English_Grammar.html"/>
    <published>2002-07-07T00:00:00Z</published>
    <updated>2002-07-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-07-Get_your_learn_on__English_Grammar.html</id>
    <content type="html"><![CDATA[<p><p>Are your tired of being laughed out of chat rooms
because you used 'who' instead of 'whom?' Are you passed over for promotions at work because you prefix dependent clauses with 'which?' Are your code 
patches rejected because you use the word 'irregardless' in comments? 
<p>Fret no more!
<p>For the low cost of nothing, you can use Capital Community College's <a href="http://ccc.commnet.edu/grammar/index.htm">Guide to Grammar &amp; Writing</a>.
Use this site to pump grammatical iron until you can go toe to toe with even the most prissy schoolmarm.
<p>Act now and we'll throw in <a href="http://www.dict.org">Dict.org</a> and 
<a href="http://gdict.dhs.org">gDict</a> for no extra charge!
<p>Get your learn on!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6208">post</a> and <a href="http://use.perl.org/comments.pl?sid=6762">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[What? No use.perl.org journals?]]></title>
    <link href="https://www.taskboy.com/2002-07-06-What__No_use.html"/>
    <published>2002-07-06T00:00:00Z</published>
    <updated>2002-07-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-06-What__No_use.html</id>
    <content type="html"><![CDATA[<p>The Guardian <a href="http://www.guardian.co.uk/weblog/special/0,10627,744914,00.html">lists weblogs</a>. Must be a slow news day.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6201">post</a> and <a href="http://use.perl.org/comments.pl?sid=6754">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Review: Men In Black II]]></title>
    <link href="https://www.taskboy.com/2002-07-05-Review__Men_In_Black_II.html"/>
    <published>2002-07-05T00:00:00Z</published>
    <updated>2002-07-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-05-Review__Men_In_Black_II.html</id>
    <content type="html"><![CDATA[<p><p>This 4th of July, I went to see Men In Black II with HappyFunBall. Given that we both had rock-bottom expectations for the film, it proved to be a pleasant surprise. The characterizations of Wil Smith and Tommy Lee Jones were compelling and engaging. The plot is conventional: evil vamp wants an alien artifact hidden on Earth and has score to settle with those meddlesome Men in Black. Even though Smith's Agent Key is the current top Bad Ass at MIB central, his prowess isn't enough to halt the onslaught of the Very Bad underwear model. Therefore, Jones's Agent Jay needs to be brought out of retirement (he works as a postmen in Truro, MA [Go, Massholes!]). 
<p>Much of the movie follows Agent Jay's quest to 
restore his lost memories A giant 
game of follow-the-notes that goes from pizza parlor to train station locker to cheesy video 
rental store. Inevitably, Jay gets his memories back and then he and Kay open a new can of Whupass (tm), as expected. 
<p>MIB II's special effects are skillfully rendered. They compliment the story rather than proxy for plot (I'm looking at you, George Lucas). 
The dialog and plot are crafted in a workman-like 
fashion and fail to be egregiously offensive.  </p>

<p><p>MIB II is a good stupid summer movie that is unlikely to disappoint. Get your movie on! <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6191">post</a> and <a href="http://use.perl.org/comments.pl?sid=6743">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Review: Survival City]]></title>
    <link href="https://www.taskboy.com/2002-07-03-Review__Survival_City.html"/>
    <published>2002-07-03T00:00:00Z</published>
    <updated>2002-07-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-03-Review__Survival_City.html</id>
    <content type="html"><![CDATA[<p><p>
At the very moment it had arrived to present an 
"image of the city" â¦ the aerial view had revealed the grim truth that visualization of a city in its entirety was a visualization of a city that could be 
destroyed; a city that had become â¦ a target.

<p>Tom Vanderbilt's Survival City is an archaeological survey of a forty year war that never happened. Sifting through the modern ruins of Cold War America, Vanderbilt's haunting travelog takes the reader into defunct Altas II and Minuteman missile silos, past cyclopedean radar stations and along the broken desert lands of weapons proving grounds. The Cold War was
an invisible conflict that most of us somehow learned to live with. However, the Cold War had a 
visceral reality for those technicians that watched the radar screens for the "hand of God," 
the massive missile attack expected from the Soviets that would appear like a skeletal hand reaching down from the North Pole towards North America. Mid-twentith century architects weren't 
wondering if a nuclear attack would occur but when. Fallout shelters and bunkers were integrated 
into some public and corporate buildings, but 
for the most part, urban and military planners 
had written off cities as undefendable. This, in part, explains the growth of suburbia â the last 
defense against decapitation attacks.
<p>Vanderbilt's writing is crisp with the right amount of horror and moral shock at appropriate times. A short read with lots of pictures, Survival City charts the emergence of the city as war machine, its subsequent elevation to <br>
a military target in World War II and the effect 
weapons of mass-destruction have had on urban architecture. 
This book is a great read that even includes a 
postscript written on Sep. 17, 2001 that eerily 
reinforces the message of the book.
<p>Good stuff.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6154">post</a> and <a href="http://use.perl.org/comments.pl?sid=6701">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Conventioneering Camels Calumniate in Cacaphony, Care, Cash!]]></title>
    <link href="https://www.taskboy.com/2002-07-02-Conventioneering_Camels_Calumniate_in_Cacaphony,_Care,_Cash_.html"/>
    <published>2002-07-02T00:00:00Z</published>
    <updated>2002-07-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-07-02-Conventioneering_Camels_Calumniate_in_Cacaphony,_Care,_Cash_.html</id>
    <content type="html"><![CDATA[<p><p>Since my access to the Internet was infrequent and brief
during YAPC, I'll bundle the whole story up here. One note:
I've been reading P. G. Wodehouse so this journal entry
is noticably more florid than others. Consider yourself
warned.</p>

<p><p>I left by train on Monday, June 24 from Boston's South
Station.  Security continues to be lax on trains, which
means that my trip began on time. Recall that Amtrack
was in the throes of a financial crisis that threatened
to shut down unspecified routes later that week. Still,
I like to tackle one problem at a time and getting to
St. Louis was at the top of my queue that day.  Besides,
I had a room in the sleeper car so life was good.</p>

<p><p>A word here is appropriate on how ineffably cool a room
in the sleeper car is. You get your own room with a door,
two beds and shades so that you can completely isolate
yourself from the rest of the car. Each room even has
its own toilet. BOO-YA! The sleeper car is off-limits to
coach passengers and, more importantly, their pint-sized,
retilin-starved banshee-terror offspring (here's a tip
from your old Uncle Joe: elitism isn't so distasteful when
one is part of the elite).  All sleeper car passengers
get free meals and get to eat in the diner car first
(a somewhat dubious honor). Most importantly, there is a
120V AC outline in the room and a very comfortable table
on which to work. If I had brought a laptop, I could have
done a fair bit of work. Of course, I would have missed the
spectacular scenary of upstate New York and Ohio. In short,
travel in the sleeper car will rock you like a hurricane.</p>

<p><p>I mentioned in a previous journal that train travel is a
throwback to the nineteenth century. It's a kind of protest
to the fast-food society of today that demands people work
on the same 24-hour-a-day schedule that machines can. In
fact, many of the folks I met on the train seem to feel
the same way (including someone who is an employee of
American Airlines). One of the features of train trips in
the early nineteenth century was shotting wild buffulo
that came within range of the rails. Oddly enough, my
train passed a buffulo farm in New York. Unfortunately,
the porter refused my strident requests for a Winchester
and a handful of shells.</p>

<p><p>I arrived in Chicago at 11 AM on Tuesday. The heavy gray
sky shook with the rumors of thunder, so I stay fairly
close to Union Station while I waited for the St. Louis
train to depart. I did see the famed Sear's Tower and
walked over one of the bridges that crosses the Chicago
river.  I would like to have seen the lake front park that
was just a few blocks East of Union Station. Next time.</p>

<p><p>I traveled in coach to St. Louis on a train called the
Texas Eagle, a route that is notoriously late due to the
passive-aggressive behavior of Union Pacific, the freight
carrier that owns the lines on which the Texas Eagle
runs. On this leg of the trip, I met two lovely Perl Monks,
whose names escape me but whose faces do not, also going
to YAPC. Sadly, I don't think I took their picture, being
short on wits as I am. We arrived in St. Louis under the
cover of night and proceeded to the Holiday Inn, where
our two parties had reservations.</p>

<p><p>After breakfast at the hotel I took a taxi to Washington
University, whose campus was very clean and inviting
despite construction crews that were busy demolishing
the walkways closest to YAPC. I registered and took my
seat for Larry's talk, although I didn't stay through
the whole thing. I gather the talk was well received, but
I'm afraid I've exceeded my quota of Hobbits and Orcs for
this year. I do endorse and embrace valid point Larry was
making about the Perl community's need to accept the wildly
divergent personalities it comprises. Instead, I took that
time to catch up with Elaine Ashton. The campus and the
day were too bucolic to ignore. I went to a few talks,
like Jos's POE primer, but I mainly played the part of
a Chatty Kathy. The day ended with Elaine, Jarkko, Gnat,
Schwern and I making inappropriate gestures and suggestions
to a local ATM machine while Forest Park residents passed
by in horror. Yes, I do have film footage of this that I
will post on Taskboy.com.  Ah, the joys of tourism!</p>

<p><p>Thrusday was a bit of blur. I was incidently present
at the filming of Gnat's masterpiece, but I had no
part to play. This might have been a blessing, in some
ways. Perhaps next year. I believe this was the day
Mark-Jason Dominus gave his "Conference Judo" talk. MJD
has lifted the coins from my eyes about how I should be
presenting my talks. I've already got a few ideas for next
year (he said twirling his mustache).</p>

<p><p>Allison Randal emerged as this year's Most Upwardly Mobile
Perler. Her talk on Topicalizers demonstrated her grasp
of Perl6 concepts and her Dr. Suess poem showed her wit
and poise. We will surely be seeing more of her in future
conferences and none could be more pleased about that
than I. She's smart and ease on the eyes, what's not to like?</p>

<p><p>That night, members of #perl were treated to the
pulse-pounding action of that ax-wielding majesty that
is my acoustic guitar playing. Me and the boys, Pudge,
Gnat, Schuyler, MJD, and Silent Bob the Bass Player, all
rocked out successfully to classic tunes from the Beatles,
David Bowie, Wierd Al, and The Tokens. I attribute our
unprecedent success to my beautiful rock hair, but others
think the crowd simply wasn't playing attention. In any
case, WE LOVE YOU, ST. LOUIS! THANK YOU (|siv|)!</p>

<p><p>By Friday, the abbreviated sleep that normally attends
conferences with me, began to slow me down. I recall
Pudge's wonderful Mac::Perl talk. Strangely, the most
lasting urge I have from it is to buy an iBook. I gots
to gets me that Phat Mac, bee-yatch! Damian's talk was
great. I actually remembered enough high school physics so
that I didn't get lost in his talk. Still, his crazy O(0)
loops are chicanery, but I'm uncertain of the mechanism.
Abigail suspects input filters as do I. That's a standard
Damain trick.</p>

<p><p>That night, I had diner with a crowd of Canadian Perl
Monks. Lot's of fun bashing US politics. It's an easy
target made easier by beer. I turned in early that night.</p>

<p><p>On Saturday, I visited the Gateway Arch, so that I could
fulfill my requirements as a tourist. I then took public
transit back to Forest Park and meandered through the art
museum and Zoo there. That's one groovy park!</p>

<p><p>Sometime during this trip, I had the earthly delight known
as a Krispy Kreme chocolate frosted donut. As efficacious
as crack cocaine, these pastries of power can cure the
blind, teach the dumb to speak and perhaps even raise
the dead.  Great oogly moogly were those good donuts!</p>

<p><p>On Sunday, I began my trip home, which was marred by
yelping children and frentic teenagers. The Cafe car's
selling out of hot dogs didn't help either.  There was
one bright spot. On one of my many wanderings through
the train, I was walking through a car during a prolonged
period of "turbulence."  Naturally, moved like a marionette
with tangled strings. When I passed the last row of seats
on my way out, a zoftig, ebullient Southern woman asked
"having trouble walking?" and then proceeded to slap
my behind.</p>

<p><p>That's what I love St. Louis â good people.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/6131">post</a> and <a href="http://use.perl.org/comments.pl?sid=6675">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The Amtrak Cliffhanger]]></title>
    <link href="https://www.taskboy.com/2002-06-24-The_Amtrak_Cliffhanger.html"/>
    <published>2002-06-24T00:00:00Z</published>
    <updated>2002-06-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-06-24-The_Amtrak_Cliffhanger.html</id>
    <content type="html"><![CDATA[<p><p>Amtrak is in <a href="http://www.cnn.com/2002/US/06/23/amtrak.troubles/index.html">financial trouble</a> again. Perhaps Amtrak is a good counterexample to the idea that all monopolies rake in festering gobs of cash. For Amtrak, this is unso. <br>
<p>I like trains. I like the technology, I like the mode of travel. Taking a train is an act of rebellion in this land of ever-compressing schedules. There's something positively nineteenth century about taking two days to go from Boston, MA to St. Louis, MO. I've selected two books, Survival City and The Loud Hound of Darkness, as traveling companions. It should 
be delightful.
<p>The downside to trains is the cost. Trains are 
a far more expensive means of travel than planes.
For my trip, I'm paying nearly five times the rate 
airlines charge for the same route. Oh well, that's what money's for: selecting the agent of one's unplanned demise. However, like some occult 
illumati conspiracy, Amtrak's money woes are coming to a head exactly when I need dependable transportation to YAPC. I leave Monday
and arrive in St. Louis on Tuesday. Will Amtrak 
be solvent in time to return me to Boston on Sunday? 
<p>Stay tuned!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/5883">post</a> and <a href="http://use.perl.org/comments.pl?sid=6418">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[What am I listening to?]]></title>
    <link href="https://www.taskboy.com/2002-06-21-What_am_I_listening_to_.html"/>
    <published>2002-06-21T00:00:00Z</published>
    <updated>2002-06-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-06-21-What_am_I_listening_to_.html</id>
    <content type="html"><![CDATA[<p><p>On this summer solstice day, sunny and humid in Boston, my mind increasingly slips in vacation mode â that special frame of reference where it's OK to rock out to Guns 'n' Roses, Rocky Horror Picture Show, Queen and the Monkeys all day long. Lyle Lovett's Joshua Judges Ruth album, with it's southern gospel overtones, plays particularly well on a day like this.
<p>Yesterday while hanging out at <a href="http://boston.citysearch.com/map?mode=geo&amp;lat=423426&amp;lon=-710974&amp;id=4771676&amp;fid=2">Designs for Living</a> I came across the infamous John Bly cure-all immasculated men, Iron John. Having just read Elizabeth Wurtzel's Bitch, I thought I'd get a different perspective. Instead, Bly comes off like a college stoner who has read far too much Jung and Campbell. Taking the old folk tale of Iron John (in which eponymous wild man is dredged up from a lake, imprisoned by the King and freed by the Prince), Bly opinion-barfs about "weak men" who need to get down with their bad wild-man selves. Although I do enjoy much of Jung's philosophy, it can easily be misused by those with an ax to grind (see Germamy circa 1929-1945). Like  religious fundamentalists of all creeds, Bly seeks <br>
salvation in the soft-focus lens of the past in which we were better than we are now. This kind of  nihilism bores me. I've heard it expressed by many people in many forms (e.g. "things were so much better in the past") that I'm considering using personal violence as a means to wake those sad people. Life isn't a rehersal. If you aren't happy with it, change it. Easier said than done? Of course, but the alternative (not doing anything) is appalling.
<p>Anyway, I'm looking forward to my train ride to St. Louis and YAPC that begins monday. The trip will take about 2 days. Perhaps I can shoot Bison from the train like passengers did in the late nineteenth century. Fetch my pith helmet and quinine, Jeeves! Adventure awaits!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/5838">post</a> and <a href="http://use.perl.org/comments.pl?sid=6368">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Review: Bitch: In Praise of Difficult Women]]></title>
    <link href="https://www.taskboy.com/2002-06-17-Review__Bitch__In_Praise_of_Difficult_Women.html"/>
    <published>2002-06-17T00:00:00Z</published>
    <updated>2002-06-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-06-17-Review__Bitch__In_Praise_of_Difficult_Women.html</id>
    <content type="html"><![CDATA[<blockquote>
I guess the point is that Amy Fisher has emerged as a heroine â and even a martyr â in this story, at least as far as I am concerned, because it seems far 
preferable to be Amy Fisher in prison that Mary Jo anywhere on earth â even before she was shot. 
</blockquote>

<p>Harvard alum and New York op-ed bad-girl Elizabeth Wurtzel has a few things to say about the state of feminism, when a fist feel like a kiss and how hard it is to nab a husband. If this sounds like a literary dark ride through a bipolar stream of consciousness, credit yourself one quarter. Wurtzel demonstrates a school marm's love of SAT words (eg. 'inchoate', 'deracinate', 'Sturm und Drang')
and dazzles the reader with the wealth of her knowledge of ancient biblical and greek tragedies, pop culture, and American cinema. Readers expecting a hagiography of historical women of will and dignity will be disappointed. So too will those readers expecting a rational and consistent essay on the plight of (American) women be left wanting. Instead, Wurtzel unleases a torrent of ideas that range from rage to remorse, but all revolve around the author.
<p>Wurtzel appears to get in her own way â the narrative is frequently interrupted and then interrupted again until the orginal thought has long since been forgotten. When I went to school (Wurtzel and I are nearly the same age), this was called a run-on sentence. Now, it appears to be called 'style.' Wurtzel is clearly a talented writer who needs to better edit herself. Had Bitch been half the size, the tenuous thesis ("it's hard to be a grrl") might have been better received. Also, using movies to support one's ideas about the human condition can be somewhat less than compelling. After all, I've seen documentaries on Industrial Light and Magic and what they can do with empty film. 
<p>Let's just forget the chapter in which she pines for a romance twinged with violence. </p>

<blockquote>
But I know this is slippery logic. If we condone this little bit of brute force [spanking],
from men â and by definition, by asking them to be just men and be different from women, we kind of do â should we not consider it part of our opportunity costs in dealing with these creatures that it will sometimes get ugly, that it will occasionally get real? 

</blockquote>

<p>I believe the fantasy violence of spanking is really a very separate deal than real violence. I don't believe the motivations for real abuse are the same as those who like their bottoms trouced. 
But, this is the kind of ride Wurtzel takes us on. Bitch reminds me of many late night college discussions (often involving a controlled substance) that I had at BC. Of course, those discussions could be forgiven for digressions that led nowhere and never quite saying anything.</p>

<p><p>For all the overarching faults, this book shines in many places. Those looking for a summer read could do worse than to pull out this book while the heat melts away their brains. If I were to adopt the <a href="http://www.bigempire.com/filthy/">Filthy Critic's</a> rating system, this book would get three fingers ("not so fucking bad"). </p>

<p><p>Next on my night table: Tom Vanderbilt's Survival City: Adventures Among the Ruins of Atomic America. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/5698">post</a> and <a href="http://use.perl.org/comments.pl?sid=6223">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[More music on taskboy]]></title>
    <link href="https://www.taskboy.com/2002-06-01-More_music_on_taskboy.html"/>
    <published>2002-06-01T00:00:00Z</published>
    <updated>2002-06-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-06-01-More_music_on_taskboy.html</id>
    <content type="html"><![CDATA[<p><p>Just uploaded a catchy tune called <a href="http://taskboy.com/music/careful.mp3">Careful</a> featuring a very nice sampled drum and a few snippets from Office Space. I also remixed <a href="http://taskboy.com/music/plug_nickle.mp3">Plug Nickle</a> to eliminate the out-of-phase problem and generally fix the levels. Run, don't walk!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/5359">post</a> and <a href="http://use.perl.org/comments.pl?sid=5863">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[A word on weight loss]]></title>
    <link href="https://www.taskboy.com/2002-05-31-A_word_on_weight_loss.html"/>
    <published>2002-05-31T00:00:00Z</published>
    <updated>2002-05-31T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-05-31-A_word_on_weight_loss.html</id>
    <content type="html"><![CDATA[<p><p>This journal entry is about my weight loss
   project. Since June, 2001, I've lost 45 pounds. I
   didn't use fat blockers, get my stomach stapled or learn
   faux-boxing with Ty. People have asked me how I did it,
   so here's my secret:
<p>Don't eat <em>so</em> much and try to move around a bit.
<p>Because I live most of my life in my head, I was never
   one to think much about my physical health. As long as
   my body didn't interfer with my brain, that was good
   enough. Besides, I pretty much looked like I did in
   high school, right?
<p>That illusion came to an end last year for a number
   of personal reasons. One way you can tell if you're
   overweight (or in my case, obese) is to use the <a href="http://www.cdc.gov/nccdphp/dnpa/bmi/bmi-adult.htm">Body
   Mass Index</a> (BMI) tables provided by the US Center
   for Disease Control. This is a good way to
estimate how much weight, if any, you ought to lose. The
   index is a number derived from your height and
   weight. Adults should ideally have a BMI between
   19-24.9. When I started my BMI was
over 30, indicating that I was in the initial stages
   of obesity. You can find before and after pictures of me on <a href="http://taskboy/pictures/">Taskboy</a>.
<p>With the problem identified, a solution
could now be sought. The first thing to understand
about weight loss is that you got fat in the first place from your
   lifestyle. Being a programmer, I tend to sit around
   the house. I don't enjoy running, nor did
I at the time have any physically demanding activities. The
   other problem is that I ate whatever and whenever 
   I wanted to. I drank a lot of really good beer.
This combination of eating indisciminately and not
moving is the most effective way to become a lardbutt.
<p>In order to stop gaining weight, I had to modify some
   of my behaviors. To lose weight, I
needed to commit to long-term plan.
I'm a lazy guy. Dragging my butt to gym and
   eating celery sticks for lunch is as appealling
   to me as getting bamboo sticks shoved between my
   fingernails. Here was and is my strategy:</p>

<ul>
  <li>cut back on beer (ouch)
  <li>do pushups 5 days a week
  <li>walk around my local park 5 days a week
  <li>eat diet frozen dinners or salads for lunch
      and dinner. Have ceral and (100%) juice for       
      breakfast.
  <li>take up biking
  <li>go off plan once in a while
</ul>

<p><p>Most dietary experts I came across suggest that
you should only lose 1-2 pounds a week safely. When I
   started actively trying to lose weight, I was 215 lbs. I
   wanted to be 170 lbs. At best, I was looking at a 23
   week program, but more realistically a 45 week one. In
   other words, I wasn't going to lose the weight in a
   week, or a month or two. I think this is the hardest
   part about weight loss. It's a long term commitment.
<p>Life goes on, despite our best efforts to halt the
   world for a moment. I knew that I wasn't going tto
   follow a strict regiment for 10 months without some
   deviations. Like I said, I'm lazy and not into pain.
<p>My exercise started very modestly. I think I was doing
   5 pushups and walking 1.5-3 miles a day for the first
   month. I pushed myself to do more as the weeks when
   on. At some point during late winter, I was doing 40
   pushups and walking 6 miles a day. This translates to
   about 2 hours of continuous excerise. It's enough to
   build up a sweat, but not enough to require time in a
   hot tub (that's optional).
<p>I think what helped me stay on track was that I built
   a web tool, called Thinner, to track my exercise and 
   morning weight. It
   uses MySQL on the backend, so I am able to create
   graphs of my progress (or lack thereof). Instead of
   that, let me reproduce a table of my average weight
   and BMI for the last 10 months.</p>

<p>
+âââââââ+ââââ+ââ-+
| date                | avg (lbs.) | BMI   |
+âââââââ+ââââ+ââ-+
| 2001, 06 (June)     | 215.00     | 30.85 |
| 2001, 11 (November) | 205.00     | 29.41 |
| 2001, 12 (December) | 200.20     | 28.72 |
| 2002, 01 (January)  | 192.48     | 27.62 |
| 2002, 02 (February) | 186.00     | 26.69 |
| 2002, 03 (March)    | 179.92     | 25.81 |
| 2002, 04 (April)    | 172.86     | 24.80 |
| 2002, 05 (May)      | 169.92     | 24.38 |
+âââââââ+ââââ+ââ-+
</p>

<p><p>More SQL fun can be had. Here's the total number of miles I walked by month.</p>

<p>
+âââââââ+âââââ+âââ+
| date                | miles walked | avg/day |
+âââââââ+âââââ+âââ+
| 2001, 06 (June)     |            0 | 0.00    |
| 2001, 11 (November) |            1 | 1.00    |
| 2001, 12 (December) |        104.5 | 3.48    |
| 2002, 01 (January)  |        129.5 | 4.18    |
| 2002, 02 (February) |           95 | 3.39    |
| 2002, 03 (March)    |          122 | 3.94    |
| 2002, 04 (April)    |         75.5 | 2.60    |
| 2002, 05 (May)      |         51.5 | 1.66    |
+âââââââ+âââââ+âââ+
</p>

<p><p>Finally, here's a glimse at my push-up record.</p>

<p>
+âââââââ+âââ-+âââ+
| date                | Push-Ups | avg/day |
+âââââââ+âââ-+âââ+
| 2001, 06 (June)     |        0 | 0.00    |
| 2001, 11 (November) |        0 | 0.00    |
| 2001, 12 (December) |      305 | 10.17   |
| 2002, 01 (January)  |      510 | 16.45   |
| 2002, 02 (February) |      447 | 15.96   |
| 2002, 03 (March)    |      751 | 24.23   |
| 2002, 04 (April)    |      589 | 20.31   |
| 2002, 05 (May)      |      487 | 15.71   |
+âââââââ+âââ-+âââ+
</p>

<p><p>You'll notice a huge gap between June, 2001
and December, 2001. That's because I hadn't committed to
   diet and excerise. Unfortunately, you cannot
   lose weight without
both. The good news is you don't need to live a gym
   (or even go to one) to lose a small child's worth of
   weight. It just takes time. 
<p>Hope this helps.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/5345">post</a> and <a href="http://use.perl.org/comments.pl?sid=5847">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The cigarette-smoking man]]></title>
    <link href="https://www.taskboy.com/2002-05-31-The_cigarette-smoking_man.html"/>
    <published>2002-05-31T00:00:00Z</published>
    <updated>2002-05-31T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-05-31-The_cigarette-smoking_man.html</id>
    <content type="html"><![CDATA[<p><p>U.S. Attorney General John Ashcroft has always bugged me. Yes, his political views are abhorrent to me and yes he did lose an election to a dead guy, but there was something else about him - something sinister that lurked just beyond my grasp. 
<p>And then it hit me.
<p><a href="http://i.cnn.net/cnn/2002/LAW/05/30/ashcroft.fbi/story.ashcroft.jpg">John Ashcroft</a> and the X-File's <a href="http://www.xfiles.com/infobase/bios/cast/images/img_wb_davis.jpg">William B. Davis</a>: separated at birth or <em> the same man!</em>.  <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/5337">post</a> and <a href="http://use.perl.org/comments.pl?sid=5839">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[News to screw by]]></title>
    <link href="https://www.taskboy.com/2002-05-30-News_to_screw_by.html"/>
    <published>2002-05-30T00:00:00Z</published>
    <updated>2002-05-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-05-30-News_to_screw_by.html</id>
    <content type="html"><![CDATA[<p><p>Another set-back in Al-Qaeda's plan to kill off all Americans:</p>

<blockquote>
Obstetricians and staffs at some hospital delivery rooms nationwide are gearing up for a summer baby boom that many say was sparked by the Sept. 11 terrorist attacks.
</blockquote>

<p><p>I was a scared as anyone! How did I miss out on this? God DAMN it!</p>

<p><p>â<a href="http://www.foxnews.com/story/0,2933,53870,00.html"> Post-Sept. 11 Baby Boom Expected</a><p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/5290">post</a> and <a href="http://use.perl.org/comments.pl?sid=5800">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Fear is the mother of violence]]></title>
    <link href="https://www.taskboy.com/2002-05-29-Fear_is_the_mother_of_violence.html"/>
    <published>2002-05-29T00:00:00Z</published>
    <updated>2002-05-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-05-29-Fear_is_the_mother_of_violence.html</id>
    <content type="html"><![CDATA[<p><p>With the cleanup of the World Trade Center towers <a href="http://www.cnn.com/2002/US/05/28/rec.ground.zero.ap/index.html">nearing completion</a> (ahead of schedule to boot), it seems an appropriate time to survey some of the lasting damage from the terrorist attack of September 11.</p>

<p><p>Despite public perception that the war is over and a newly installed UN-approved provisional Afghan government, the US-led multinational military expedition in Afghanistan continues to root out pockets of Al-Qaeda resistence. The hefty price tag and apparent success of this operation hasn't seem to diminish the capability of Al-Qaeda (or perhaps the more fittingly nebulous umbrella name 'The Terrorists' is more appropriate here) to plan and execute more attacks on US soil. Witness this Memorial Day's <a href="http://www.cbsnews.com/stories/2002/05/24/attack/main510054.shtml">terror warning</a> and Vice President Cheney's certainity that <a href="http://www.nzherald.co.nz/latestnewsstory.cfm?storyID=1992940&amp;thesection=news&amp;thesubsection=world">another attack is coming</a>. Not that most of us don't believe that that isn't the case anyway. In fact, many of us aren't eagerly jumping <a href="http://www.forbes.com/work/newswire/2002/05/28/rtr615342.html">onboard airplanes these days</a>.</p>

<p><p>What did Al-Qaeda get from the attacks on September 11? Certainly, they gained no territory, nor did they "decapitate" the US (of course the few weeks after the event lacked anything of Calvin Coolidge's "normalcy"). Following the attack, violence in the Mid-East, including the ulcerous Israeli-Palastinian conflict and the equally galling Pakistani-Indian dispute over the Led Zepplin-inspiring Kasmir region, crescendoed to a fevered pitch. Al-Qaeda itself brought enormous harm to itself through its actions. So, what was the point?</p>

<p><p>Fear.</p>

<p><p>One of the most primal emotions in all creatures, fear compels humans in ways that aren't always predictable. In the case of the US, fear has led <a href="http://newsforge.com/article.pl?sid=01/09/11/2048256&amp;mode=thread&amp;tid=48">some</a> to suggest</a> arming airline pilots, in the expectation that 
would-be hijackers will be put off by the prospect of dying. Another fly in the ointment of this plan is that the qualifications for a pilot's license don't always overlap those for a job as a security guard. (As a side note, wouldn't firing a gun in a plane be a Bad Thing? You know, that whole "pressured cabin"-thing and all.)</p>

<p><p>Perhaps the most important victim of fear has been personal privacy. When privacy zealots first raised cane about the FBI's email-sniffing, sealed boxes called Carnivore, many of us (including me) shrugged. The FBI only targets the guilty, right? Carnivore is just like a wire tap on a phone, but for them computer thingies. In the days that preceeded 9/11, one FBI techie noticed the Carnivore was working a little too well and <a href="http://www.cnn.com/2002/US/05/28/attack.carnivore.reut/">reading the email of non-targetted users</a>. The techie, appalled or frightened by the implications of this glitch, destroyed all the email Carnivore had collected. Unfortunately, one of the targets being investigated was connected to Osama bin Laden. This is one of those classic moral dilemnas. How much is safety worth to you? How much is privacy worth?</p>

<p><p>Outside the realm of terrorists (for now) is the <a href="http://www.guardian.co.uk/comment/story/0,3604,719846,00.html">secret testing of DNA</a> to rat on its owner. Not only are paternity cases being resolved from bits of absconded dental floss, but some employers are looking to limit employment opportunities of those that are genetically prone to Repetitive Stress Injuries (RSI). How long before insurance companies use your DNA to determine your coverage? While DNA testing can help solve crimes, it can also be used in chilling ways against the innocent. Again, this is another example of the safety-security two-step.</p>

<p><p>Still the cost-benefit analysis of 9/11 for Al-Qaeda doesn't look too good for them. How has frightening the US done anything positive for them? For that matter, what exactly does Al-Qaeda want? If you can trust the FBI</a>, Al-Qaeda wants the "infidels" out of mid-east. Certainly, the US and Israel are on the infidel list, but so are the governments of Saudi Arabia and Egypt. Al-Qaeda was born during the Soviet invasion of Afghanistan in the 1980s. Just like many freedom fighters in other countries, Al-Qaeda members found that once the war was over, the only skills they had were useless. So they manufactured another war â only this one would go on for years. Cleansing the holy land. This isn't a new goal. One might suggest that Muhammad himself started this cycle in the seventh century. In any case, the 9/11 attacks and subsequent US retaliation only reinforce Al-Qaeda's reason for being.  </p>

<p><p>Perhaps the difference between a freedom fighter and a soldier is that soldier works for the winning side. The Memorial day parades and wreath-laying ceremonies might explain why freedom fighters are fanatical. If they lose the war, no one will remember them.</p>

<p><p>In this strange new world, two questions need to be asked of everyone on this third rock from the sun: what kind of world do you want to live in and how much would you pay for it?<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/5276">post</a> and <a href="http://use.perl.org/comments.pl?sid=5786">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[How many gold pieces for a first edition?]]></title>
    <link href="https://www.taskboy.com/2002-05-29-How_many_gold_pieces_for_a_first_edition_.html"/>
    <published>2002-05-29T00:00:00Z</published>
    <updated>2002-05-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-05-29-How_many_gold_pieces_for_a_first_edition_.html</id>
    <content type="html"><![CDATA[<p>Is your Significant Other badgering you to get rid of all those old D&amp;D books? Well now you can and make money! This <a href="http://www.acaeum.com/DDIndexes/GameBook.html">site</a> gives pricing information for these somewhat valuable commodities. My own copy of Deities and Demigods does <em>not</em> include the Cthulhu myths. I was surprised to learn that only the third edition (which I have) expurgated the Elder Gods. Now how will I ever know the correct Charisma of Cthulhu? Bummer. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/5263">post</a> and <a href="http://use.perl.org/comments.pl?sid=5774">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Making lemonade from 9/11]]></title>
    <link href="https://www.taskboy.com/2002-05-28-Making_lemonade_from_9_11.html"/>
    <published>2002-05-28T00:00:00Z</published>
    <updated>2002-05-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-05-28-Making_lemonade_from_9_11.html</id>
    <content type="html"><![CDATA[<p><p>So many people focus on the downside of the terrorist attack that destroyed the World Trade Center towers and killed nearly 4000 people. But, there's at least one person for whom this tragedy was a much-needed balm.</p>

<blockquote>
His [Tom Brokaw's] current contract expires at the end of this summer, and there had been speculation that he'd be stepping down from the job. But he has said that he was re-energized by coverage of the September 11 attacks and their aftermath, and decided to stay on.
</blockquote>

<p>â<a href="http://www.cnn.com/2002/SHOWBIZ/TV/05/28/nbc.williams/index.html">
Brian Williams to succeed Brokaw in 2004</a><p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/5255">post</a> and <a href="http://use.perl.org/comments.pl?sid=5766">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[More Pictures, Music!]]></title>
    <link href="https://www.taskboy.com/2002-05-27-More_Pictures,_Music_.html"/>
    <published>2002-05-27T00:00:00Z</published>
    <updated>2002-05-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-05-27-More_Pictures,_Music_.html</id>
    <content type="html"><![CDATA[<p>I just updated Taskboy.com with more <a href="http://taskboy.com/pictures/">pictures</a> (bottom of page)
and <a href="http://taskboy.com/music/">music</a>.
<p>Now, continue with your Memorial Day drinking.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/5236">post</a> and <a href="http://use.perl.org/comments.pl?sid=5743">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[My YAPC::NA Travel Plans]]></title>
    <link href="https://www.taskboy.com/2002-05-14-My_YAPC__NA_Travel_Plans.html"/>
    <published>2002-05-14T00:00:00Z</published>
    <updated>2002-05-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-05-14-My_YAPC__NA_Travel_Plans.html</id>
    <content type="html"><![CDATA[<p><p>Would-be stalkers take note: I have just completed my travel plans for YAPC::NA. I will be staying at the Holiday Inn at Forest Park (see the <a href="http://www.yetanother.org">YAS</a> site for directions, phone number). I will have a guitar in tow, although my neighbors will not be happy about it. Here's my itinerary:
<p><ul>
<li>6/24: get on a train in Boston
<li>6/25: get on another train in Chicago
<li>6/25: check into hotel
<li>6/26: check into registration
<li>6/26-6/28: get my Perl-learn on
<li>6/29: Rock out in St. Louis
<li>6/30: get on a train to Chicago
<li>6/30: get on a train to Boston
<li>7/1:  sleep
</ul> <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/4903">post</a> and <a href="http://use.perl.org/comments.pl?sid=5420">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Hard Drinkin' Lincoln]]></title>
    <link href="https://www.taskboy.com/2002-05-13-Hard_Drinkin&apos;_Lincoln.html"/>
    <published>2002-05-13T00:00:00Z</published>
    <updated>2002-05-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-05-13-Hard_Drinkin&apos;_Lincoln.html</id>
    <content type="html"><![CDATA[<p><p>There's no reason history has to be <a href="http://comcent.mondominishows.com/hdl.html#">boring</a>.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/4884">post</a> and <a href="http://use.perl.org/comments.pl?sid=5399">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[One year of blogging]]></title>
    <link href="https://www.taskboy.com/2002-05-10-One_year_of_blogging.html"/>
    <published>2002-05-10T00:00:00Z</published>
    <updated>2002-05-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-05-10-One_year_of_blogging.html</id>
    <content type="html"><![CDATA[<p><p>As of April 11, I have been blogging on use.perl.org for a year. It seems like only 13 months. Weird. In any case, I'd say this experiment with blogging has been interesting for me (if no one else). My biggest concerns with blogging are:
<ul>
  <li>typing to see my pretty words
  <li>composing entries so that don't say what I really mean
  <li>taking blogging too seriously

<p>A few months ago, I consciously stopped doing daily (hourly?) entries because I felt I had stopped trying to say anything meaningful (for a large deviation of "meaningful"). Instead, I was more interested in watching the total number of my blog entries increase. That is a stupid use of my time. I will renew my effort to make this blog not only interesting to me, but [dare to dream] to make it relevant to others. After all, I find diaries somewhat distastful. I've never kept one myself before blogging. Unlike a diary, blogs are a public document. One of things use.perl.org does right is provide the option of allowing other users to comment on an entry, an idea that is incongruent with a private diary.</p>

<p><p>Another interesting part of blogging on use.perl.org is the phenomenon of parallel conversations that start among other people's blogs. It's not quite like usenet, where there is some pretense of a directed conversation. Instead, it sort of reminds me of the McLaughlin Group. Someone states an opinion to no one in particular. Then another blogger shouts "WRONG!" and preceeds to rant [again to no one in particular] about the egregious reasoning proffered by the first blogger. And then the fun really starts. I sometimes imagine that use.perl.org blogging is like going to the carnival and passing all the barkers advertising their booths. Sometimes, the blog entries are just as lurid. 
<p>In any case, I think I'll be blogging here for the forseeable future. I've build enough of my own web sites at this point. I don't need another one dedicated to my prattling. For those that have been reading my blog, I appreciate your patronage and your comments. Thanks for dropping by. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/4823">post</a> and <a href="http://use.perl.org/comments.pl?sid=5332">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Project Mayhem]]></title>
    <link href="https://www.taskboy.com/2002-05-09-Project_Mayhem.html"/>
    <published>2002-05-09T00:00:00Z</published>
    <updated>2002-05-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-05-09-Project_Mayhem.html</id>
    <content type="html"><![CDATA[<p><p>Viewers of the movie Fight Club will recall one of the "homework assignments" for project mayhem resulted in a building that had fires set in windows to make a smiley face. Cool effect, <a href="http://www.cnn.com/2002/US/05/09/mailbox.pipebombs/index.html">no</a>? </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/4793">post</a> and <a href="http://use.perl.org/comments.pl?sid=5300">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[A3's hidden racist message]]></title>
    <link href="https://www.taskboy.com/2002-05-08-A3&apos;s_hidden_racist_message.html"/>
    <published>2002-05-08T00:00:00Z</published>
    <updated>2002-05-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-05-08-A3&apos;s_hidden_racist_message.html</id>
    <content type="html"><![CDATA[<p><p>A careful <a href="http://aliensaliensaliens.com">A3</a> reader pierced the thinly veiled metaphors of Zorknapp, Draco-Repitilians and NAZI MOON BASES to see the white supremacist agenda hidden within.</p>

<p><p>His email message to A3 support let's us all know the jig is up.</p>

<blockquote>
aliens? what is that supposed to mean, 
no on [sic] is of pure race, you arent [sic] pure, none of us are, 
being white makes you no better, if all you see is color, i feel sorry for you.
</blockquote>

<p></p>

<p><p>To this careful reader, I say "congratulations." You may wish to turn that keen intellect of yours towards finding the plans hidden on every Capt'n Crunch box that detail Phaze 2: The Quickening. Trust no one.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/4751">post</a> and <a href="http://use.perl.org/comments.pl?sid=5257">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Farscape Season 2 and 3 on DVD on VHS for PAL]]></title>
    <link href="https://www.taskboy.com/2002-05-07-Farscape_Season_2_and_3_on_DVD_on_VHS_for_PAL.html"/>
    <published>2002-05-07T00:00:00Z</published>
    <updated>2002-05-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-05-07-Farscape_Season_2_and_3_on_DVD_on_VHS_for_PAL.html</id>
    <content type="html"><![CDATA[<p><p>Most of us 'Scapers in the US can only peer across the pond to the UK where seasons 2 and 3 are now out on <a href="http://www.blackstar.co.uk/video/item/7000000068483">DVD/VHS in PAL format</a>. Perhaps those at the Henson company would be good enough to think of US? We've got money. Honest.  <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/4723">post</a> and <a href="http://use.perl.org/comments.pl?sid=5228">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Yow! Priests Gone Wild!]]></title>
    <link href="https://www.taskboy.com/2002-05-07-Yow__Priests_Gone_Wild_.html"/>
    <published>2002-05-07T00:00:00Z</published>
    <updated>2002-05-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-05-07-Yow__Priests_Gone_Wild_.html</id>
    <content type="html"><![CDATA[<p><p>The Modern Humorist <a href="http://www.modernhumorist.com/mh/0204/priests/">does it again</a>. "Bless me, Father for I'm about to sin. Ooo-Ga!"<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/4717">post</a> and <a href="http://use.perl.org/comments.pl?sid=5221">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[John Nathan-Turner dead at 54]]></title>
    <link href="https://www.taskboy.com/2002-05-03-John_Nathan-Turner_dead_at_54.html"/>
    <published>2002-05-03T00:00:00Z</published>
    <updated>2002-05-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-05-03-John_Nathan-Turner_dead_at_54.html</id>
    <content type="html"><![CDATA[<p><p>The BBC is <a href="http://newsvote.bbc.co.uk/hi/english/entertainment/new_media/newsid_1965000/1965981.stm">reporting</a> that long time Doctor Who producer John Nathan-Turner has died after a brief (and undisclosed) illness. Nathan-Turner joined the Doctor Who staff during the second Doctor's regeneration and was responsible for injecting the anti-fanboy element known as "humor" into the show. Doctor Who was one of the first TV shows I consistently watched. 30 minutes of paper mache fun (see this week's <a href="http://www.theonion.com">Onion</a>). <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/4641">post</a> and <a href="http://use.perl.org/comments.pl?sid=5140">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Review: Stupid White Men]]></title>
    <link href="https://www.taskboy.com/2002-05-02-Review__Stupid_White_Men.html"/>
    <published>2002-05-02T00:00:00Z</published>
    <updated>2002-05-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-05-02-Review__Stupid_White_Men.html</id>
    <content type="html"><![CDATA[<p>Moving abruptly from the realm of science fiction to the world of political science, I submit a review of Michael "TV Nation" Moore's <a href="http://www.amazon.com/exec/obidos/ASIN/0060392452/alienalienalien">Stupid White Men</a>.
<p>For those who are still scratching their heads over the 2000 elections, Michael Moore provides ample cited evidence why you continue to have misgivings about "President Select" [his phrase, not mine] Bush. Moore's blistering reproaches of the Bush administrations first nine months in office are intense, even for a reader like me who
enjoys a good Bush beating [er, you know what I 
mean ;-)]. Not only are republicans soundly spanked, by as are the white race AND men (a chapter for each). Moore's tannic diatribes can be overwhelming. This man is angry. Still, lots of 
good fun can be at other's expense. Including a 
chapter devoted to Moore's favorite Republican [sic] President, Bill Clinton.
<p>While I enjoyed this book, after a fashion,
Moore's Last Angry Liberal shtick isn't quite 
my bag. I enjoy the more gentle jibes of Al Franken. Give the book a whirl. For some readers, this book will be like an EST session from Hell. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/4626">post</a> and <a href="http://use.perl.org/comments.pl?sid=5126">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[A one and a two…]]></title>
    <link href="https://www.taskboy.com/2002-04-29-A_one_and_a_two.html"/>
    <published>2002-04-29T00:00:00Z</published>
    <updated>2002-04-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-04-29-A_one_and_a_two.html</id>
    <content type="html"><![CDATA[<p><p>Like new music but hate the radio? Where can <em>you</em> find music to tap your foot to?
<p>Look no further!
<p>Taskboy.com in association with Alien Communications presents New Music<em>! Just surf on over to <a href="http://taskboy.com/music">Taskboy's music section</a> and whistle away the hours listening to the dulcet tones of <em>jjohn and the Bad Ideas</em><strong>. Scroll to the bottom to find the latest creation â <a href="http://taskboy.com/music/plug_nickle.mp3">Plug Nickle</a> featuring the hi-tech speech synthesis program from IBM called ViaVoice.
<p>What are you waiting for? Act now!
<br>
<br>
<p></em> "New Music" is a marketing term and may not apply to you if you have already visited the site before
<p></strong> The "Bad Ideas" are just voices in jjohn's head. Do not attempt contact. </p>

<p><p>All offers void where prohibited. Additional state tax may apply. Consult with your physician before downloading any mp3. Remember to give your sys admin a hug.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/4517">post</a> and <a href="http://use.perl.org/comments.pl?sid=5004">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Review: Red Mars]]></title>
    <link href="https://www.taskboy.com/2002-04-29-Review__Red_Mars.html"/>
    <published>2002-04-29T00:00:00Z</published>
    <updated>2002-04-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-04-29-Review__Red_Mars.html</id>
    <content type="html"><![CDATA[<p>Faithful readers of this journal will no doubt recall that I have been taking a literary tour of twentith century Science Fiction. I have just completed my last book (for this round), Kim Stanley Robinson's <a href="http://www.amazon.com/exec/obidos/ASIN/0553560735/aliensalienalien">Red Mars</a>. This hard 
[that is, heavy on the science] sci-fi novel follows the near-future Earth expedition of the Firsth Hundred settlers to colonize Mars. Not only does Robinson spin a compelling yarn about the geo- (and aero-) politics of colonization, but he also provides a breathtaking description of morphology of the Red Planet. In fact, some of Robinson's descriptions make the reader wonder if he hasn't already been there. There was enough chemistry, geology and physics in this book to remind me what I avoided in college.
<p>Lest I leave you with the impression that this is a dry book, I want to stress that Robinson is telling a human story. The ambitious scope of this book isn't clear until the final 100 pages, in which profound changes happen to both Mars and Earth that permanently affect the First Hundred settlers. To borrow a phrase from Babylon 5 by the end of the book, nothing is the same any more. 
<p>Red Mars is the first of the award winning Mars Trilogy. If you like your space opera seasoned with Real Science (tm), dinner is prepared!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/4548">post</a> and <a href="http://use.perl.org/comments.pl?sid=5037">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[A Perl 6 Request: No Duff's Device]]></title>
    <link href="https://www.taskboy.com/2002-04-26-A_Perl_6_Request__No_Duff&apos;s_Device.html"/>
    <published>2002-04-26T00:00:00Z</published>
    <updated>2002-04-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-04-26-A_Perl_6_Request__No_Duff&apos;s_Device.html</id>
    <content type="html"><![CDATA[<p><a href="http://www.lysator.liu.se/c/duffs-device.html">Duff's device</a> is a ingenious and nails-on-chalkboard irrating C "idiom" that was designed to move bytes serially into some hardware device (not memory, probably a video card(?)). It exists because a simpler while loop took too long. It is an example of loop unrolling, a technique somewhat unused in Perl
because it is only justifiably employed in high performance applications (eg. animation, games). What makes this code so abhorrant is that it looks like the result of a high-speed impacted between a switch statement and a while loop.
<p>Please, please, great Larry and Damian, do <em>not</em> let Perl 6 allow insanity like this. Perhaps this is the reason Perl has no switch statement? <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/4477">post</a> and <a href="http://use.perl.org/comments.pl?sid=4956">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Pictures]]></title>
    <link href="https://www.taskboy.com/2002-04-24-Pictures.html"/>
    <published>2002-04-24T00:00:00Z</published>
    <updated>2002-04-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-04-24-Pictures.html</id>
    <content type="html"><![CDATA[<p><p>Not only is there a new computer in my life (a Dell), but is also a new camera. It's a Canon A10 Powershot. This is a fairly low-end camera, but it seems easy to use and it is the first camera I've had since an even cheaper 35mm plastic camera issued to me for a high school art class (I think all those pictures are toast [unfortunately]). Anyway, I've begun to snap away. You can see the results on Taskboy.com in the <a href="http://taskboy.com/pictures/">Pictures</a> section.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/4409">post</a> and <a href="http://use.perl.org/comments.pl?sid=4884">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Happy St. George's Day]]></title>
    <link href="https://www.taskboy.com/2002-04-23-Happy_St.html"/>
    <published>2002-04-23T00:00:00Z</published>
    <updated>2002-04-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-04-23-Happy_St.html</id>
    <content type="html"><![CDATA[<p><p>With a nod to TorgoX, I humbly submit this <a href="http://www.guardian.co.uk/netnotes/article/0,6729,477220,00.html">Guardian page</a> that is a primer to the glories of St. George's day. There's never a dragon around when you need one. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/4400">post</a> and <a href="http://use.perl.org/comments.pl?sid=4874">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Taskboy revitalization]]></title>
    <link href="https://www.taskboy.com/2002-04-21-Taskboy_revitalization.html"/>
    <published>2002-04-21T00:00:00Z</published>
    <updated>2002-04-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-04-21-Taskboy_revitalization.html</id>
    <content type="html"><![CDATA[<p><p>I modified the layout and the colors on <a href="http://taskboy.com">taskboy</a>
somewhat. Lots of fun with javascript mouseovers. Of course, the HTML isn't validating right now (some of the validation rules are extremely pedantic). Must sleep now.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/4343">post</a> and <a href="http://use.perl.org/comments.pl?sid=4814">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Farscape delivers (again)]]></title>
    <link href="https://www.taskboy.com/2002-04-20-Farscape_delivers_(again).html"/>
    <published>2002-04-20T00:00:00Z</published>
    <updated>2002-04-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-04-20-Farscape_delivers_(again).html</id>
    <content type="html"><![CDATA[<p><p>WARNING: Fanboy wanking ahead.
<p>Wow. That durn Farscape show keeps kicking my head in AGAIN and AGAIN. Just when I thought the show couldn't get any better, it does. Wow. This penultimate show of season three was just fabulous. Strong performances from the all the cast (especially John Tupu) and a hella script from Farscape's daddy Rochne O'Bannon leave all us 'scapers wondering: what the heck is left for the season finale? For next Friday's show, I'm wearing rubber pants.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/4335">post</a> and <a href="http://use.perl.org/comments.pl?sid=4805">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[May I cross your span (huh huh)]]></title>
    <link href="https://www.taskboy.com/2002-04-17-May_I_cross_your_span_(huh_huh).html"/>
    <published>2002-04-17T00:00:00Z</published>
    <updated>2002-04-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-04-17-May_I_cross_your_span_(huh_huh).html</id>
    <content type="html"><![CDATA[<p><p>I've been waiting for some news about when the 
Zakim (nee Charles Gate) bridge was going to open and finally here's <a href="http://www.boston.com/dailyglobe2/107/metro/Bridge_party_on_deck_for_the_Big_Dig+.shtml">my answer</a>. I'm so there.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/4268">post</a> and <a href="http://use.perl.org/comments.pl?sid=4736">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[2002 taxes]]></title>
    <link href="https://www.taskboy.com/2002-04-14-2002_taxes.html"/>
    <published>2002-04-14T00:00:00Z</published>
    <updated>2002-04-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-04-14-2002_taxes.html</id>
    <content type="html"><![CDATA[<p><p>Independent contractors, what taxmen call loafers like myself, have to pay taxes quarterly. Most of you this weekend will be dealing with 2001 taxes (I finished mine in March). Estimating my tax liability is a strange and uncertain place for me. I suspect I will get an accountant before July 15, which is the next time I pay taxes. Joy!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/4178">post</a> and <a href="http://use.perl.org/comments.pl?sid=4641">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[From my Perl blooper reel]]></title>
    <link href="https://www.taskboy.com/2002-04-10-From_my_Perl_blooper_reel.html"/>
    <published>2002-04-10T00:00:00Z</published>
    <updated>2002-04-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-04-10-From_my_Perl_blooper_reel.html</id>
    <content type="html"><![CDATA[<p><p>Here's some fun at my expense. This kept me in 
stitches for most of yesterday. After a good night's sleep (and more methodical debugging), I tracked the problem down to this block:
<p></p>

<p>
sub find_referral_by_ip {
  my($self, $ip, $dbh) = @_;

  # â¦ non-related code omitted

  unless($ip){
    my $ip = $r->connection->remote_ip;
  }

</p>

<p><p>The intention here is to get the IP address of the current request if it wasn't passed in (yup, it's mod_perl). In other words, if $ip isn't populated then ensure it is. Normally, I don't pass in the IP, since this method will figure out the IP on its own, right? I began wondering: "should I be looking a subrequest? Is my sql [not shown here] 
broken? What's going on here?!"</p>

<p><p>Have you seen the problem yet? Here's a hint: it has NOTHING to do with mod_perl, a bug in Perl or the way Perl handles method calls.</p>

<p><p>The upshot is that I'm an idiot.
<p>Thank you!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/4086">post</a> and <a href="http://use.perl.org/comments.pl?sid=4545">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Book larnin']]></title>
    <link href="https://www.taskboy.com/2002-04-09-Book_larnin_.html"/>
    <published>2002-04-09T00:00:00Z</published>
    <updated>2002-04-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-04-09-Book_larnin_.html</id>
    <content type="html"><![CDATA[<p><p>I'm <a href="http://www.edsbookreview.com/humor/franken_rush_limbaugh.html">pseudo-certain</a> that I read more than the average American. With equal fuzziness, I'm sure that I read less than most of my geeky friends. Never one to have intellectual sand kicked in my face, I occasionally go out buy books. This happened a few months back and heralded in my brief tour of 20th century Sci-Fi (I'm halfway through Red Mars now). As it's spring, a young(-ish) man's mind turns away from computers to thoughts of the <a href="http://www.nationalgeographic.com/ngm/100best/storyA_story.html">ladies</a>. 
<p>Bitch: In Praise of Difficult Women, if the backmatter is to be believed, will be a cathartic <a href="http://skepdic.com/est.html">EST session</a>
for my gyno-oppressive mind. As the movie Slackers says: "you must quit terrorizing women with sexual intercourse." And I believe it!
<p>After getting my manhood adjusted, Michael Moore continues the psychological smackdown with Stupid White Men. Maybe he can help me find the little republican hurting inside of me.
<p>Having studied a fair amount of Mid-Eastern politics  and history at UMass/Boston, I hope The Shi'is of Iraq will bring me up to speed on a country and people with whom we will likely soon be at war (see previous book).
<p>The wildcard of this batch o' books is 
Emily, the Strange. It's a sort of comic book/art thingie featuring the eponymous iconoclast. Art is good.
<p>As a stinging rebuke of <code>$foo</code> for Dummies books, Barry Tarshis entitled his book Grammar for Smart People. I didn't know how much grammar I had forgotten until I had worked at O'Reilly (I'm looking at you, Caroline Senay).
<p>My spree finishes with a "dictionnarrative" by Karen Elizabeth Gordon (of Deluxe Transitive Vampire fame). Ever get screwed using the wrong homonym? Ever tack on "from" to "whence?" You won't after reading this grammatic fairytale.
<p>Because the use.perl.org community has come to vitally depend on my reviews of non-technical books, I will be sure to post reviews of these treasures as I complete them.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/4041">post</a> and <a href="http://use.perl.org/comments.pl?sid=4500">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Method, know thy $self]]></title>
    <link href="https://www.taskboy.com/2002-04-09-Method,_know_thy_$self.html"/>
    <published>2002-04-09T00:00:00Z</published>
    <updated>2002-04-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-04-09-Method,_know_thy_$self.html</id>
    <content type="html"><![CDATA[<p><p>Programming pet peeve #24:</p>

<p><p>Classes whose methods use a different variable 
name than "$self" to refer to the obligatory 
object reference. Sure, you might be tempted to use  $this or $obj, but don't. I, and the majority of module writers on CPAN it seems, expect $self.
<p>Drive on through. Thanks for playing! <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/4062">post</a> and <a href="http://use.perl.org/comments.pl?sid=4521">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Start up the startups!]]></title>
    <link href="https://www.taskboy.com/2002-04-09-Start_up_the_startups_.html"/>
    <published>2002-04-09T00:00:00Z</published>
    <updated>2002-04-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-04-09-Start_up_the_startups_.html</id>
    <content type="html"><![CDATA[<p><p>Given that I have no experience with a successful startup, you should listen to me when I say:</p>

<blockquote>
Now is a very, very good time to create a startup.
</blockquote>

<p><p>Why? Life continues and VCs still need to invest cash. That's what they do. They need startups as much as programmers and young businesses need cash. It's a fatal attraction. </p>

<p><p>There's a lot of interest in Bioinformatics - the awkward marriage of biology and information manipulation. Rather than have programming biologists, Biotech firms ought to consider pairing up biologists and programmers. The right tool for the right job, I say. </p>

<p><p>Microsoft, IBM and Sun are very interested in developing Web Services (.NET, Sun ONE, etc.). If you haven't looked into SOAP or XML-RPC, now would be a good time to do that. </p>

<p><p>Cringley points out in his column this week that many hi-tech companies are trying to provide anti-terrorist solutions. I'm not sure that such devices will ultimately succeed, but there's to be made money in trying. </p>

<p><p>Let's not forget that many companies will probably be upgrading their dated PC hardware this year too. Companies like Dell and, well, Dell, should do well. (Compaq and HP are hosed, I think).</p>

<p><p>I feel the US ecomony is about to gush back to life. 2002 should end very strongly. Now, if only I didn't enjoy being unemployed so muchâ¦<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/4051">post</a> and <a href="http://use.perl.org/comments.pl?sid=4510">comments</a>.]</p></p>

<p>UPDATE: [11/27/2007] HA HA!  Was I wrong about this or WHAT?</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Archiving bad taste]]></title>
    <link href="https://www.taskboy.com/2002-04-08-Archiving_bad_taste.html"/>
    <published>2002-04-08T00:00:00Z</published>
    <updated>2002-04-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-04-08-Archiving_bad_taste.html</id>
    <content type="html"><![CDATA[<p><p>Get your Farrah Fawset hair to <a href="http://www.badfads.com/home.html">BadFads.com</a> to visit the Museum of Bad Fads. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/4027">post</a> and <a href="http://use.perl.org/comments.pl?sid=4486">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Dude, I'm getting a Dell!]]></title>
    <link href="https://www.taskboy.com/2002-04-08-Dude,_I_m_getting_a_Dell_.html"/>
    <published>2002-04-08T00:00:00Z</published>
    <updated>2002-04-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-04-08-Dude,_I_m_getting_a_Dell_.html</id>
    <content type="html"><![CDATA[<p><p>Despite this annoying ad campaign, I'm treating myself to a new computer. It's a Dell Dimension 4400
(P4 1.7Ghz; 512M; 40Gb). It'll come with Windows XP,  but I'm uncertain that's what I'll keep on it. I want to run Cakewalk's Pro Audio 9 and I don't think it will run on XP (blow me). I'm interesting in recording some of the songs I've written. I also want to trying to become better at sequencing. We'll see. All this talk of Peter Gabriel has led me to listen to his catalog with a fresh ear. Reminds me why I learned to play in the first place.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/4018">post</a> and <a href="http://use.perl.org/comments.pl?sid=4477">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Peter Gabriel: Revisted]]></title>
    <link href="https://www.taskboy.com/2002-04-05-Peter_Gabriel__Revisted.html"/>
    <published>2002-04-05T00:00:00Z</published>
    <updated>2002-04-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-04-05-Peter_Gabriel__Revisted.html</id>
    <content type="html"><![CDATA[<p><p>If there's one artist I associate with my own youth and very fuzzily warm feelings, it's Peter Gabriel. It's hard to explain and I don't want to analyze it too much. Still, the first album I heard of Pete's was his third solo album (the one with Biko). Over the years, I've lost most of his early stuff. I decided to pick up <a href="http://www.amazon.com/exec/obidos/ASIN/B000002IUH/">the album</a> mentioned in the subject and I'm glad I did. Good music: Modern Love (not the Bowie song), DIY, On the Air. I'm 15 again!</p>

<p><p>UPDATE: I figured out the chords to "On the Air" tonight. 
<p>Opening: 
<code>E G/ E G B/B A G#m/E D<code>
<p>Verse: <br>
<code>B A G#m/E D (x2)
E E/D# D C#m
E E/D# D C
</code>
<p>Chorus:
<code>
B A E
G#m F#m E
C#m B A
</code>
<p>Break:
in progress
<p>[UPDATE]: Check out <a href="http://ddi.digital.net/~solsbury/scratch.htm">this page</a> about tPete's second album. Very interesting.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3992">post</a> and <a href="http://use.perl.org/comments.pl?sid=4446">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Dude, was that a rhino?]]></title>
    <link href="https://www.taskboy.com/2002-04-04-Dude,_was_that_a_rhino_.html"/>
    <published>2002-04-04T00:00:00Z</published>
    <updated>2002-04-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-04-04-Dude,_was_that_a_rhino_.html</id>
    <content type="html"><![CDATA[<p>Man runs races in <a href="http://news.bbc.co.uk/hi/english/uk/newsid_1908000/1908916.stm""">Rhino suit</a>. </p>

<p><em>blink</em><p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3970">post</a> and <a href="http://use.perl.org/comments.pl?sid=4425">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Finally, spam I can use]]></title>
    <link href="https://www.taskboy.com/2002-04-04-Finally,_spam_I_can_use.html"/>
    <published>2002-04-04T00:00:00Z</published>
    <updated>2002-04-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-04-04-Finally,_spam_I_can_use.html</id>
    <content type="html"><![CDATA[<p>Although I'm not interested in buying this product, I'm happy to volenteer as a 
quality assurance engineer for them.</p>

<hr>

<p>From: Jane 
Subject: Bigger, Fuller Breasts In Just Weeks qdf
To: Undisclosed.Recipients@impop.bellatlantic.net</p>

<p>For women ages 13 to 60 plusâ¦. </p>

<p>As seen on TVâ¦.
Safely Make Your Breasts
Bigger and Fuller 
In the privacy of your own home.</p>

<p>Guaranteed quick results</p>

<p>Click On Link For More Details
http://some/url/I/wont/reprint</p>

<p>qlrlvheqcroxxltrvgwismthqbyhhtjmteq</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3969">post</a> and <a href="http://use.perl.org/comments.pl?sid=4424">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[When visiting Boston]]></title>
    <link href="https://www.taskboy.com/2002-04-03-When_visiting_Boston.html"/>
    <published>2002-04-03T00:00:00Z</published>
    <updated>2002-04-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-04-03-When_visiting_Boston.html</id>
    <content type="html"><![CDATA[<p><p>On VirtualTourist.com, these <a href="http://www12.virtualtourist.com/North_America/USA/Massachusetts/Boston/?s=j&amp;TID=8#go">warnings</a> are given about traveling in Boston. Notice how most of them say "don't drive there." This bolsters my case for making non-professional driving illegal in Boston. Only business vehicals should be driving in the city. Everyone else can park in Brookline, Netwon, Cambridge or Braintree
and take the T in. This may seem draconian, but I assure you everyone will benefit from this. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3950">post</a> and <a href="http://use.perl.org/comments.pl?sid=4403">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Like Al-Queda…]]></title>
    <link href="https://www.taskboy.com/2002-04-01-Like_Al-Queda.html"/>
    <published>2002-04-01T00:00:00Z</published>
    <updated>2002-04-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-04-01-Like_Al-Queda.html</id>
    <content type="html"><![CDATA[<p>My apartment was just buzzed by a US fighter plane. This is the fourth time this has happened. 
<p>I don't like it.
<p>Part of my problem is that I have an irrational fear of what would happen if the plane, say, crashed into my building. As solid as these brick
walls are, I might have some straigtening up to after such an accident.
<p>Another problem I have with the flyovers is that they aren't announced (at least, I never see anything about them). So from out of the blue, I hear a very loud and doplered sound approaching my apartment. Am I too neutrotic? I don't know. It's not the physics of flying that I have a problem with. I have little faith in the people that operate and maintain these machines. People fail more often than physics. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3904">post</a> and <a href="http://use.perl.org/comments.pl?sid=4354">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Lost Weekend]]></title>
    <link href="https://www.taskboy.com/2002-04-01-Lost_Weekend.html"/>
    <published>2002-04-01T00:00:00Z</published>
    <updated>2002-04-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-04-01-Lost_Weekend.html</id>
    <content type="html"><![CDATA[<p><p>No I didn't spend the weekend in the gutter, but I did have the life sucked out of me by the video game <a href="http://www.3do.com/mightandmagic/">Heroes of Might and Magic III</a>. I install the Linux port (from the defuncted Loki Software) and it ran beautifully. In fact, it ran too well. There's something really fun about a M&amp;M game. I don't know if it's the music (which was really excellent in this game) or the talking trees or (God forbid) the game play. Whatever "it" is, I like it!</p>

<p><p>Oh yeah, there's some big thing going on across the street at Fenway Park. Looks like the locusts are descending on the neighborhood again for another season. <em>sigh</em> <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3898">post</a> and <a href="http://use.perl.org/comments.pl?sid=4347">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[goddamn slashdot]]></title>
    <link href="https://www.taskboy.com/2002-04-01-goddamn_slashdot.html"/>
    <published>2002-04-01T00:00:00Z</published>
    <updated>2002-04-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-04-01-goddamn_slashdot.html</id>
    <content type="html"><![CDATA[<p>Once again, they got me with the April Fools articles. Will I never learn??<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3903">post</a> and <a href="http://use.perl.org/comments.pl?sid=4353">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[I know what I'm getting the Nandor's baby…]]></title>
    <link href="https://www.taskboy.com/2002-03-30-I_know_what_I&apos;m_getting_the_Nandor&apos;s_baby.html"/>
    <published>2002-03-30T00:00:00Z</published>
    <updated>2002-03-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-03-30-I_know_what_I&apos;m_getting_the_Nandor&apos;s_baby.html</id>
    <content type="html"><![CDATA[<p><a href="http://www.cnn.com/2002/US/03/29/dahmer.dolls.ap/index.html">A Jeffrey Dahmer doll</a>! It's gots the kunk-fu/cannibal grip!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3869">post</a> and <a href="http://use.perl.org/comments.pl?sid=4316">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[XML::Parser::ExpatNB example]]></title>
    <link href="https://www.taskboy.com/2002-03-29-XML__Parser__ExpatNB_example.html"/>
    <published>2002-03-29T00:00:00Z</published>
    <updated>2002-03-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-03-29-XML__Parser__ExpatNB_example.html</id>
    <content type="html"><![CDATA[<p><p>Let's all say it together: XML::Parser Sucks! There, that was cleansing.</p>

<p><p>After a much prodding of my XML buddies (hi jmac!) and an evil notion of using goto (thankfully Perl doesn't let you jump into the middle of a function), I came across a seemingly little used XML::Parser function <code>parse_start</code> which returns a new XML::Parser::ExpatNB object (with oh so little documentation) that does EXACTLY WHAT I NEED! I need a parser that parses a stream in increments.
Consider how useful this is for dealing with XML messages coming across the network that might f'ing HUGE! This parsing method will at least give me an opportunity to chunk the data into smaller bits (save for the pathological 45TB between a single  [even then, there may be options]). Anyway, this is a BEAUTIFUL, LOVERLY THING!!!!</p>

<p><p>So, here's a very goofy example of how to work with this bod boy. I'll be looking to shove this into Frontier::RPC2 in a most Eee-VEIL way. ;-)</p>

<p class="code">
use strict;
use warnings;
use XML::Parser;

my $p = XML::Parser->new(
             Style => 'My::Pkg',
            );

print "Reading from __DATA__\n";
my $data; # A place for my text data

# Don't be fooled: it's an 
# object constructor
my $nb_p = $p->parse_start(data => \$data);

while(my $l = &lt;DATA>){
  chomp($l);
  $nb_p->parse_more($l);
  if(my $s = ${$nb_p->{data}}){
    print "Back at the range, I got $s\n";
  }
}
$nb_p->parse_done; 

package My::Pkg;

sub Init {
  my($expat) = @_;

  print "Hello!\n";
}

sub Start {
  my($expat, $tag, %attrs) = @_;
  ${$expat->{data}} = undef;
  print "Start: $tag\n";
}

sub Char {
  my($expat, $text) = @_;
  ${$expat->{data}} = undef;
  return if $text =~ /^\s*$/;

  $expat->{char_bag} = $text;
}

sub End {
  my($expat, $tag) = @_;
  print "End: $tag\n";
  ${$expat->{data}} = 
     $expat->{char_bag};

  # clean up
  $expat->{char_bag} = '';
  return;
}


__END__
&lt;?xml version="1.0" ?>
&lt;a>
  &lt;b>
    &lt;c>
         &lt;d>fiddlesticks&lt;/d>
    &lt;/c>
  &lt;/b>
&lt;/a>

</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3840">post</a> and <a href="http://use.perl.org/comments.pl?sid=4285">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Frontier::RPC2 exploratory release]]></title>
    <link href="https://www.taskboy.com/2002-03-28-Frontier__RPC2_exploratory_release.html"/>
    <published>2002-03-28T00:00:00Z</published>
    <updated>2002-03-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-03-28-Frontier__RPC2_exploratory_release.html</id>
    <content type="html"><![CDATA[<p><p>While I'm waiting to hear back from Ken MacLeod, I've posted a very unofficial and quite possibly broken release of <a href="http://taskboy.com/programs/Frontier_Responder/">Frontier::RPC-0.08b1-jj.
Included is a bug fix in the 'use_objects' thingie that returned stringified objects, not the objects themselves. I've substantially reworked nearly all the documentation and added to the Apache::XMLRPC class, which is a mod_perl content handler. Oh, now setting 'debug' on a Frontier server class willwill spew the XML requests/responses to STDERR. </p>

<p><p>Why another XML-RPC library? It is the oldest of the three Perl XML-RPC of which I'm aware and I  think it has a pretty clean design overall (of course the XML::Parser callbacks are a nightmare). 
[Yes, I am thinking about Sax2]</p>

<p><p>Anyway, if you're familiar with Frontier::RPC and feel like kicking the tires on this bitch, please do and send me your feedback. Even if your
message is as spartan as "couldn't install! you a bad man!" I'll take what I can get.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3811">post</a> and <a href="http://use.perl.org/comments.pl?sid=4256">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Frontier::RPC2 clean up and expansion]]></title>
    <link href="https://www.taskboy.com/2002-03-27-Frontier__RPC2_clean_up_and_expansion.html"/>
    <published>2002-03-27T00:00:00Z</published>
    <updated>2002-03-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-03-27-Frontier__RPC2_clean_up_and_expansion.html</id>
    <content type="html"><![CDATA[<p>Now that I've got a little free time, I've been a serious frobbing of Frontier::RPC2 (and the rest of those classes). Hopefully, Ken will accept these changes can get a new release out the door this year. I'm looking to expand the Apache::XMLRPC class a lot. I'll probably make a super beta release of this code available on taskboy.com before too long.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3802">post</a> and <a href="http://use.perl.org/comments.pl?sid=4247">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Free at last, free at last!]]></title>
    <link href="https://www.taskboy.com/2002-03-26-Free_at_last,_free_at_last_.html"/>
    <published>2002-03-26T00:00:00Z</published>
    <updated>2002-03-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-03-26-Free_at_last,_free_at_last_.html</id>
    <content type="html"><![CDATA[<p>Just turned in my last chapters for the upcoming Unix Power Tools, 3rd Ed. book. I feel like I've lost an albatross necklace.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3769">post</a> and <a href="http://use.perl.org/comments.pl?sid=4212">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Module Alert: Tie::Hash::Cannabinol]]></title>
    <link href="https://www.taskboy.com/2002-03-26-Module_Alert__Tie__Hash__Cannabinol.html"/>
    <published>2002-03-26T00:00:00Z</published>
    <updated>2002-03-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-03-26-Module_Alert__Tie__Hash__Cannabinol.html</id>
    <content type="html"><![CDATA[<p>So much is made of data integrity these days. It's nice to see <a href="http://search.cpan.org/doc/DAVECROSS/Tie-Hash-Cannabinol-1.04/Cannabinol.pm">some free thinkers</a> out there.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3770">post</a> and <a href="http://use.perl.org/comments.pl?sid=4213">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Next on Springer: Jesus is stalking me!]]></title>
    <link href="https://www.taskboy.com/2002-03-22-Next_on_Springer__Jesus_is_stalking_me_.html"/>
    <published>2002-03-22T00:00:00Z</published>
    <updated>2002-03-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-03-22-Next_on_Springer__Jesus_is_stalking_me_.html</id>
    <content type="html"><![CDATA[<p><p>No matter what your job is, Jesus is there for you.</p>

<p><p>Thanks to <a href="http://www.memepool.com">memepool for this important link.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3723">post</a> and <a href="http://use.perl.org/comments.pl?sid=4161">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Another XML-RPC review]]></title>
    <link href="https://www.taskboy.com/2002-03-20-Another_XML-RPC_review.html"/>
    <published>2002-03-20T00:00:00Z</published>
    <updated>2002-03-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-03-20-Another_XML-RPC_review.html</id>
    <content type="html"><![CDATA[<p><p>I just noticed that the London Perl Mongers review the <a href="http://london.pm.org/reviews/xml_rpc.html">XML-RPC</a> book. Thanks to Dean Wilson for a pretty balanced review.
<p>As the author of the ASP/COM section, I'd like to take a minute to answer a valid criticisim of that chapter that Wilson raises:
<p>My only disappointment with this chapter is that
            it relegates the mention of the COM based XML-RPC library to two paragraphs
            tucked away at the end of the chapter and does no more than acknowledge its
            existence and provide a link. Adding another small section covering its use with
            something like Visual Basic would have been a welcome addition. 
<p>At the time of that book's writing, the COM XML-RPC library looked moldy and forgotten. I was none too keen to drive people to use it. I don't have Visual Studio, so I couldn't really experiment with that library anyway (which would have required a C++ compiler, I believe). When the next edition of the book comes out, I'll see if we can't flesh out that chapter a bit more with more Windows Tech (eek!).
<p>Wilson also pointed out that I mixed a fair amount of Perl into that chapter. I had two reasons for doing so. The first reason was didactic: I wanted to stress the language independence of the protocol. I would have like to have seen more of that in the book, actually. The second reason is that I wanted to reach out to Unix bigots like myself who might see XML-RPC as a way to control Winders boxen without haven't to do much programming on them. XML-RPC has the potential to create easy remote admin tools â very useful for controlling point'n'click environments from a remote unix shell. ;-)
<p>Thanks again to Dean Wilson for taking the time to review the book. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3655">post</a> and <a href="http://use.perl.org/comments.pl?sid=4088">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Larsen B Ice Shelf Collapses]]></title>
    <link href="https://www.taskboy.com/2002-03-20-Larsen_B_Ice_Shelf_Collapses.html"/>
    <published>2002-03-20T00:00:00Z</published>
    <updated>2002-03-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-03-20-Larsen_B_Ice_Shelf_Collapses.html</id>
    <content type="html"><![CDATA[<p><a href="http://www.msnbc.com/news/726247.asp?cp1=1">MSNBC</a> is reporting that this Antarctic ice shelf, which was 40 x 53 miles in size, has collapsed into the ocean. While this sucks, the danger is that this may be a warning the ice sheets on land, like the much larger Ross Ice Shelf, may be also melt/fall into the ocean in very large chunks. This would substantially raise the ocean level endangering all coastal cities, such as New York, Tokoyo, London and (oh yeah) Boston. Oh, the excess of cold water in the ocean could damage or halt the Gulf stream. That would be bad.</p>

<p>Can't we,like, bomb the ice or something?<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3672">post</a> and <a href="http://use.perl.org/comments.pl?sid=4106">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Oh, oh, here she comes]]></title>
    <link href="https://www.taskboy.com/2002-03-20-Oh,_oh,_here_she_comes.html"/>
    <published>2002-03-20T00:00:00Z</published>
    <updated>2002-03-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-03-20-Oh,_oh,_here_she_comes.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://www.cnn.com/2002/WORLD/africa/03/20/congo.attack.reut/index.html
">watch out boy, she'll chew you up</a>. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3667">post</a> and <a href="http://use.perl.org/comments.pl?sid=4099">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Cleaning out bookmarks]]></title>
    <link href="https://www.taskboy.com/2002-03-16-Cleaning_out_bookmarks.html"/>
    <published>2002-03-16T00:00:00Z</published>
    <updated>2002-03-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-03-16-Cleaning_out_bookmarks.html</id>
    <content type="html"><![CDATA[<p><p>Oh man, are you folks in troubleâ¦
<p>I started clearing out my netscape bookmarks, 
which means I found a couple of great links that are
still active. I share these below.</p>

<ul>
   <li><a href="http://www.ags.uci.edu/~dcoble/clowns/clowns.html">Dan's Scary Clowns</a>. Need I say more?
   <li><a href="http://www.cybercomm.nl/~gerryt47/">B5 Ambassadorial Aides</a>. Get 
to know the real Vir Cotto.
   <li><a href="http://rumproast.com/cgi-bin/stain.pl">Domain Stain</a>. Remember when domain squatting was a business plan? Apparently, there are still some choice domains available. Act now!

</ul>

<p><p>UPDATE: I really think you folks haven't looked at the last link. Otherwise, there would have been comments by now. I promise, you'll giggle. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3599">post</a> and <a href="http://use.perl.org/comments.pl?sid=4026">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[ELAINE ASHTON: Read this]]></title>
    <link href="https://www.taskboy.com/2002-03-15-ELAINE_ASHTON__Read_this.html"/>
    <published>2002-03-15T00:00:00Z</published>
    <updated>2002-03-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-03-15-ELAINE_ASHTON__Read_this.html</id>
    <content type="html"><![CDATA[<p><p>A friend of a friend saw your <a href="http://axisofaevil.hietaniemi.org/hfb/img/godkills.jpg">"god kills kittens" picture</a> and sent me <a href="http://www.aliensaliensaliens.com/htdocs/graphics/think-of-the-domokun.jpg">this</a>. I guess we all know what a Domo-Kun is now.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3539">post</a> and <a href="http://use.perl.org/comments.pl?sid=3962">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[George W. Nukem]]></title>
    <link href="https://www.taskboy.com/2002-03-14-George_W.html"/>
    <published>2002-03-14T00:00:00Z</published>
    <updated>2002-03-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-03-14-George_W.html</id>
    <content type="html"><![CDATA[<p>If he really wants to halt the spread of terror (he is at least scaring me), George W. Bush is welcomed to stop <a href="http://www.cnn.com/2002/ALLPOLITICS/03/13/Bush.news.conference/index.html">talking</a> about <a href="http://news.bbc.co.uk/hi/english/world/europe/newsid_1870000/1870923.stm">throwing</a>  nukes</a> around at any time. What the hell is wrong with this man? His position might be more palatable without the sanctimonious rhetoric</a>.  Shouldn't he be more concerned with why the US got kicked off</a> the UN Human Rights Commission? Look at the monkey, America. Look at the monkeyâ¦<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3511">post</a> and <a href="http://use.perl.org/comments.pl?sid=3934">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[My D&amp;D Stats]]></title>
    <link href="https://www.taskboy.com/2002-03-14-My_D_D_Stats.html"/>
    <published>2002-03-14T00:00:00Z</published>
    <updated>2002-03-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-03-14-My_D_D_Stats.html</id>
    <content type="html"><![CDATA[<p><p>There was a story on slashdot about E. Gary Gygax (which is just a kickass name). One of the comments had a link to figure out <em>my</em> <a href="http://blanchard.virtualave.net/war/dndstats.html">D&amp;D stats</a>. I present these below.</p>

<p><p>
<code>
Str: 5<br>
Int: 13<br>
Wis: 14<br>
Dex: 10<br>
Con: 12<br>
Chr: 14<br>
</code></p>

<p><p>I think the STR and INT values may be a bit low , while the CON value may be a bit high. So, what class am I? </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3518">post</a> and <a href="http://use.perl.org/comments.pl?sid=3941">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Smaller console fonts on Red Hat 7.x]]></title>
    <link href="https://www.taskboy.com/2002-03-11-Smaller_console_fonts_on_Red_Hat_7.html"/>
    <published>2002-03-11T00:00:00Z</published>
    <updated>2002-03-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-03-11-Smaller_console_fonts_on_Red_Hat_7.html</id>
    <content type="html"><![CDATA[<p>This Linux tip brought to you by Russel "Soft Mount" Jones, sysadmin to the stars.</p>

<p>In the old days, when a fella wanted his console font smaller than 8x16, he used to edit /etc/lilo.conf and add the line 'vga=ext', ./lilo and reboot. And we liked it that way!</p>

<p>Along comes Red Hat 7.x and its fancy system initialization scripts. The fancy dans want to support internationalization and the cost of undoing the VGA setting in lilo! What monumental insolence! However, you can foil these villians with their own weapon: setsysfont. This program is called by the init file /etc/rc.d/init.d/keytable. It uses the file /etc/sysconfig/i18n to set the default console font. Mine looks like this:</p>

<p>LANG="en_US"
SUPPORTED="en_US:en"
SYSFONT="lat0-sun16"
SYSFONTACM="iso01"</p>

<p>The list of available console fonts is in /lib/kbd/consolefonts. It's the third line that does the screwing: SYSFONT. Change the bastard from 'lat0-sun16' to good ol' 'lat0-08', restart /etc/rc.d/init.d/keytable and say  'up yours!' to the man!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3447">post</a> and <a href="http://use.perl.org/comments.pl?sid=3869">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Do Androids Dream of Eletric Sleep?]]></title>
    <link href="https://www.taskboy.com/2002-03-10-Do_Androids_Dream_of_Eletric_Sleep_.html"/>
    <published>2002-03-10T00:00:00Z</published>
    <updated>2002-03-10T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-03-10-Do_Androids_Dream_of_Eletric_Sleep_.html</id>
    <content type="html"><![CDATA[<p><p>Phillip K. Dick's book kicked my ass. DADoES is a sophisticated, multitextured narrative that defies easy classification. Is it Sci-Fi? Is it detective fiction? Is it magical realism, like <em>A Hundred Years of Solitude</em>? Is it a existentialism? Dick's book seems to effortless glide among all of these pigeonholes while never coming to rest on any of them. Needless to say, this book is a compelling and relentless read.
<p>For those that assume that this is a novelized version of the beautifully stylistic <em>Blade Runner</em>, think again. The movie shares some, and only some, elements with this book. In the movie, frightening and murderous fugitive androids try to elude Rick Deckard. While this happens in the book, the charactizations of Deckard and the androids are markedly different. PKD's book isn't about good versus evil or man versus machine; it's about man versus himself. Deckard is at odds with the society and customs in which he lives and yet he doesn't seem to have the language to rebel. 
<p>Ecological disaster, a manufactured religion, forced colonization: DADoES has it all. Don't be an idiot like me and put off reading this book: read it now.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3407">post</a> and <a href="http://use.perl.org/comments.pl?sid=3827">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[What's wrong with you people?]]></title>
    <link href="https://www.taskboy.com/2002-03-08-What_s_wrong_with_you_people_.html"/>
    <published>2002-03-08T00:00:00Z</published>
    <updated>2002-03-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-03-08-What_s_wrong_with_you_people_.html</id>
    <content type="html"><![CDATA[<p><p>Not to get preachy butâ¦ </p>

<p><p><a href="http://news.bbc.co.uk/hi/english/world/south_asia/newsid_1861000/1861157.stm">Acid attacks, mainly against women,</a> went up to 338 in Bangladesh last year. The world is full of truly fucked up things, but 
I never thought that the problem would grow to the point where it would be necessary to organize a march against maiming women with acid. What kind of society engenders that kind of horrific violence? Here's a PSA for all my readers in Bangladesh: "Throwing acid on people is bad, m'okay?" <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3368">post</a> and <a href="http://use.perl.org/comments.pl?sid=3786">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Why am I looking at outdated porn?]]></title>
    <link href="https://www.taskboy.com/2002-03-07-Why_am_I_looking_at_outdated_porn_.html"/>
    <published>2002-03-07T00:00:00Z</published>
    <updated>2002-03-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-03-07-Why_am_I_looking_at_outdated_porn_.html</id>
    <content type="html"><![CDATA[<p>This was the subject of spam that I just deleted. Until this very moment, I hadn't realized that porn <em>had</em> an expiration date. I'm  sure glad I get this kind of rubbish to expand my intellectual horizons. Who needs science fiction?</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3351">post</a> and <a href="http://use.perl.org/comments.pl?sid=3769">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Avoiding cyberpunk literature]]></title>
    <link href="https://www.taskboy.com/2002-03-06-Avoiding_cyberpunk_literature.html"/>
    <published>2002-03-06T00:00:00Z</published>
    <updated>2002-03-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-03-06-Avoiding_cyberpunk_literature.html</id>
    <content type="html"><![CDATA[Forgot to mention on thing about my Sci-Fi tour: no cyberpunk books. No _Snow Crash_. No Gibson. No _Islands in the Net_ (whose title bares too much resemblence to the Parton/Rogers duet "Islands in the Stream"). I program computers and write about technology for a living â now I should read about them for fun? No thanks.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3335">post</a> and <a href="http://use.perl.org/comments.pl?sid=3752">comments</a>.]</p><br>


]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Day of the Triffids]]></title>
    <link href="https://www.taskboy.com/2002-03-06-Day_of_the_Triffids.html"/>
    <published>2002-03-06T00:00:00Z</published>
    <updated>2002-03-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-03-06-Day_of_the_Triffids.html</id>
    <content type="html"><![CDATA[<p>Just finished John Wyndham's <em>Day of the Triffids</em> and I have to say: good read. A novel post-apocalyptic story in which most of the humans on Earth go blind in freak event â never fully explained. As if this isn't bad enough, these freaky, walking plants called triffids take advantage of the mass blindness to grab the top stop on the food chain. The story is told in retrospect by Bill Masen, a triffid researcher who has avoided the blinding event. The narrative follows his stuggle to survive in this mamed and diseased England as it falls into darkness and decay. </p>

<p>Published in 1951, Wyndham's story wreaks of post-War fatalism. A few characters in story have hope that the Americans would arrive soon to bail them out (I must say, it's refreshing to read about Americans <em>not</em> being despised.) although it is soon apparent that this is a naive fantasy. It is also curious to read a survival story in which the characters aren't entirely reduced to barbarism (unlike Golding's <em>Lord of the Flies</em>). Even when the protagonist is partially enslaved by a group of mostly blind fellows, he still tries to help them. Even in the midst of ruin, there is some rudimentary civility and sense of community.</p>

<p><em>Day of the Triffids</em> has been described as "cosy catastrophe," that is, an apocalyptic story in which traditional middle class values are enough to stave off utter ruin. In it's own strange way, the book is optimistic about the future (unlike my last read, <em>The Time Machine</em>). A sentiment that is repeated thoughout the book is: "wow, this is bad but it could have been so much worse. More tea, Mom!"</p>

<p>A short book and a fast read, <em>Day of the Triffids</em> makes an excellent summer (or late winter) diversion.</p>

<p>Next up on my tour of 20th century Sci-Fi: <em>Do Androids Dream of Electric Sheep</em>. Excelsior!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3334">post</a> and <a href="http://use.perl.org/comments.pl?sid=3751">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Come on, feel the noise!]]></title>
    <link href="https://www.taskboy.com/2002-03-05-Come_on,_feel_the_noise_.html"/>
    <published>2002-03-05T00:00:00Z</published>
    <updated>2002-03-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-03-05-Come_on,_feel_the_noise_.html</id>
    <content type="html"><![CDATA[<p><p>No, this isn't about Twisted Sister. Rather, this entry is to alert my Noble Readers that MTV has a new sitcom starring <a href="http://www.cnn.com/2002/SHOWBIZ/TV/03/04/apontv.the.osbournes.ap/index.html">Ozzy Osbourne and his family</a>. Ozzy's music was never particularly political (and he hasn't been particularly articulate in years), so I can't say he's "sell out" over this. I can say that this is a horribly perplexing development. What. The. Hell?<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3303">post</a> and <a href="http://use.perl.org/comments.pl?sid=3715">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[adult education…]]></title>
    <link href="https://www.taskboy.com/2002-03-05-adult_education.html"/>
    <published>2002-03-05T00:00:00Z</published>
    <updated>2002-03-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-03-05-adult_education.html</id>
    <content type="html"><![CDATA[<p><p>it's a bad situationâ¦</p>

<p><p>In a new low in weblogs, I present an email 
joke I just received from school-chum Jen Strong. I do this for two reasons: it eloquently reflects my experience of math education and it has a political jab at the end.
Enjoy!</p>

<p><p>A History of Teaching Math</p>

<ul>
  <li>Teaching Math in 1950: A logger sells a truckload of lumber for $100.
His cost of production is 4/5 of the price. What is his profit?

  <li>Teaching Math in 1960: A logger sells a truckload of lumber for $100.
His cost of production is 4/5 of the price, or $80. What is his profit?
  <li>Teaching Math in 1970: A logger exchanges a set "L" of lumber for a
set "M" of money.  The cardinality of set "M" is 100. Each element is worth
one dollar. Make 100 dots representing the elements of the set "M."
The set "C", the cost of production contains 20 fewer points than
set "M." Represent the set "C" as a subset of set "M" and answer the
following question: What is the cardinality of the set "P" of profits?


  <li>Teaching Math in 1980: A logger sells a truckload of lumber for $100.
His cost of production is $80 and his profit is $20. Your
assignment: Underline the number 20.
  <li>Teaching Math in 1990: By cutting down beautiful forest trees, the logger
makes $20.  What do you think of this way of making a living? Topic for
class participation after answering the question:  How did the forest
birds and squirrels feel as the logger cut down the trees?  There
are no wrong answers.
  <li>Teaching Math in 2000: A logger sells a truckload of lumber for $100.
His cost of production is $120. How does Arthur Andersen determine
that his profit margin is $60?
</ul>

<p><p>Thank-yewâ¦<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3306">post</a> and <a href="http://use.perl.org/comments.pl?sid=3718">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Oh, is that why I feel faint?]]></title>
    <link href="https://www.taskboy.com/2002-03-02-Oh,_is_that_why_I_feel_faint_.html"/>
    <published>2002-03-02T00:00:00Z</published>
    <updated>2002-03-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-03-02-Oh,_is_that_why_I_feel_faint_.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://www.cnn.com/2002/US/03/01/nuclear.fallout/index.html">Thanks!</a><p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3236">post</a> and <a href="http://use.perl.org/comments.pl?sid=3650">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Scary Cherie]]></title>
    <link href="https://www.taskboy.com/2002-03-02-Scary_Cherie.html"/>
    <published>2002-03-02T00:00:00Z</published>
    <updated>2002-03-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-03-02-Scary_Cherie.html</id>
    <content type="html"><![CDATA[<p>Is it me or is <a href="http://news.bbc.co.uk/olmedia/1850000/images/_1850323_cherie150.jpg">UK Prime Minister Blair's wife Cherie</a> just a little scary looking?</p>

<blockquote>
If I try to smiler any wider, my face will 
crack.
</blockquote>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3245">post</a> and <a href="http://use.perl.org/comments.pl?sid=3659">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[This should cheer you up]]></title>
    <link href="https://www.taskboy.com/2002-03-02-This_should_cheer_you_up.html"/>
    <published>2002-03-02T00:00:00Z</published>
    <updated>2002-03-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-03-02-This_should_cheer_you_up.html</id>
    <content type="html"><![CDATA[<p>Red Meat<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3253">post</a> and <a href="http://use.perl.org/comments.pl?sid=3668">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Buddy, can you spare a million?]]></title>
    <link href="https://www.taskboy.com/2002-03-01-Buddy,_can_you_spare_a_million_.html"/>
    <published>2002-03-01T00:00:00Z</published>
    <updated>2002-03-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-03-01-Buddy,_can_you_spare_a_million_.html</id>
    <content type="html"><![CDATA[<p><p>Bill Gates is down to his last <a href="http://digitalmass.boston.com/news/2002/03/01/billionaires.html">$52.8 billion</a>. Now whatever you may think of <a href="http://www.dotcom.org/ntac/">his company</a>, he's got a wife and kids. If you can, please consider helping Bill out. Extra cans of food, old clothes or even some old computers can really make a difference to those in need. Thanks. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3214">post</a> and <a href="http://use.perl.org/comments.pl?sid=3624">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Those fingers in my hair…]]></title>
    <link href="https://www.taskboy.com/2002-03-01-Those_fingers_in_my_hair.html"/>
    <published>2002-03-01T00:00:00Z</published>
    <updated>2002-03-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-03-01-Those_fingers_in_my_hair.html</id>
    <content type="html"><![CDATA[<p><p>Those big red lips. That long dark hair. Talk of "servicing." It can only mean one thing:</p>

<p><p><a href="http://www.cnn.com/2002/ALLPOLITICS/03/01/lewinsky.interview/index.html">Monica's back</a>.</p>

<p><p>What's she been up to? Well you'll have to read the link for all the details, but it seems she's been reading up on the <a href="http://dmoz.org/Society/Religion_and_Spirituality/Judaism/Mysticism/">Kabballah</a>. Could there be a more Hebrew-friendly version of the classic 60's television show, <a href="http://timvp.com/bewitch.html">Bewitched</a>, in works: I Dream of <a href="http://golem.plush.org/faq/">Golem</a>?</p>

<blockquote>
Cause it's witchcraft, wicked witchcraft<br>
And although, I know, it's strictly taboo<br>
When you arouse the need in me, my heart yes indeed in me,<br>
Proceed with what you're leading me toâ¦
</blockquote>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3216">post</a> and <a href="http://use.perl.org/comments.pl?sid=3627">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Sci-Fi suggestions]]></title>
    <link href="https://www.taskboy.com/2002-02-28-Sci-Fi_suggestions.html"/>
    <published>2002-02-28T00:00:00Z</published>
    <updated>2002-02-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-02-28-Sci-Fi_suggestions.html</id>
    <content type="html"><![CDATA[<p><p>Thanks to all that gleefully piped a <a href="http://use.perl.org/~jjohn/journal/3155">few entries</a> ago on other good sci-fi reads. I'll get to them as my queue allows. I'm a fairly slow reader. I expect to start <em>Day of the Triffids</em> tonight (which is a 50's book, not a 60's one. My bad). <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3202">post</a> and <a href="http://use.perl.org/comments.pl?sid=3611">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Shaved Peach]]></title>
    <link href="https://www.taskboy.com/2002-02-28-Shaved_Peach.html"/>
    <published>2002-02-28T00:00:00Z</published>
    <updated>2002-02-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-02-28-Shaved_Peach.html</id>
    <content type="html"><![CDATA[<p><p>In bold move to join the twenty first century, I have shaven off my goatee. Now everyone can enjoy my double chins. Huzzah!
<p>[UPDATE: Perhaps I should have had a gander <a href="http://www.sweetfancymoses.com/herlihy_facial.htm">at this</a> first.]
<p>In Perl news, I have taken my first forray into Inline::CPP. I'm working on calling IBM's ViaVoice TTS libs from Perl. It compiles, but doesn't seem to be running correctly. I patterned this after working C++ code, so I'm uncertain what's going on here. I struggled with trying to create an XS module with this library, but I couldn't even get the example 'color' class to work. Sigh. I'll figure it out, but I think the Inline module is a VASTY improvement over directly twiddling XS. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3179">post</a> and <a href="http://use.perl.org/comments.pl?sid=3589">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Brief tour of 20th century SCI-FI]]></title>
    <link href="https://www.taskboy.com/2002-02-27-Brief_tour_of_20th_century_SCI-FI.html"/>
    <published>2002-02-27T00:00:00Z</published>
    <updated>2002-02-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-02-27-Brief_tour_of_20th_century_SCI-FI.html</id>
    <content type="html"><![CDATA[<p><p>In an attempt to reduce the amount of time I spend talking out my ass, I'm reading a series of books that cover various styles and epochs of science fiction. I just finished (in one day!) H.G Wells' <em>The Time Machine</em>. It's short, fun adventure story that reflects much of the late nineteenth century's faith in both technical and social progress. Clearly, this book was written before the inhuman (all too human?) destruction of the World Wars. Wells attempts to use Darwin's Natural Selection, a hip new concept for the day, to spin a cautionary tell of capitalistic hubris. It's a good read, despite some truly stupid moves on the part of the Time Traveller â like starting a massive forrest fire.
<p>Representing post-war sci-fi, I also recently finished Orwell's dystopian masterpiece <em>1984</em>, in which (for Orwell) the future has become ruled by three giant totalitarian states whose political ideology makes Machiavelli's work seem like a Christian sermon. These states exist, not to help their subjects or even to aggrandize their leaders, but simply to exert power â everyone is expendable. Even abstract concepts like language and history are viciously assalted. Orwell's story is a bleak testiment to the loss of faith in humanity brought on by popular rise of fascism 1920's and 1930's, and to the war, holocausts and pogroms that followed.
<p>Next up on the tour: the psychadelic sixties. Yeah, baby! Phillip K. Dick trips the light fantastic with <em>Do Androids Dream of Electric Sheep</em> and John Wyndham keeps a stiff upper lip in <em>Day of the Triffids</em>. Turn on. Tune in and drop out, man!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3155">post</a> and <a href="http://use.perl.org/comments.pl?sid=3563">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Frank Willison Python Award]]></title>
    <link href="https://www.taskboy.com/2002-02-27-Frank_Willison_Python_Award.html"/>
    <published>2002-02-27T00:00:00Z</published>
    <updated>2002-02-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-02-27-Frank_Willison_Python_Award.html</id>
    <content type="html"><![CDATA[<p>I just saw that the Python folks now have a 
<a href="http://www.amk.ca/conceit/fw-award.html">Frank Willison Award for Contributions to the Python Community</a>. I think Frank would have found that both touching and a bit a humorous. That a <em>technical</em> award would be named after such a talented wordsmith wouldn't have been the way Frank pictured his legacy. Still, it's a good gig if you can get it and Frank was someone who was both very rare and much beloved.  <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3159">post</a> and <a href="http://use.perl.org/comments.pl?sid=3568">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Give Industrial Polluters a break!]]></title>
    <link href="https://www.taskboy.com/2002-02-25-Give_Industrial_Polluters_a_break_.html"/>
    <published>2002-02-25T00:00:00Z</published>
    <updated>2002-02-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-02-25-Give_Industrial_Polluters_a_break_.html</id>
    <content type="html"><![CDATA[<p>It should surprise no one here that I <em>support</em> <a href="http://www.cnn.com/2002/ALLPOLITICS/02/24/bush.superfund/index.html">President Bush's refusal to tax corporations</a> in order to money the EPA Superfund toxic sites clean-up program. All Americans suffered greatly after September 11, but no one felt the sting of those sinister terrorists more than corporate America. Since 1980, the Superfund has identified and pursued those parties response for massive environmental damage (such as what occurred at Love Canal in 1978). As of 2002, the EPA has put 1222 sites on its National Priorities list. Funding the $8.5 billion Superfund has dwindled in recent years from $860 million in 2001 to $28 million slated for 2003.
<p>Haven't we spent enough money pestering Big Business? Corporations employ our neighbors and often <em>pay taxes</em>! We should be <em>thanking</em> these corporations for exhibiting the American can-do spirit of capitalism, not punishing them for <a href="http://www.epa.gov/globalwarming/actions/waste/whatis.html">"making the planet unlivable."</a>  Yes, there may be higher incidents of <a href="http://us.imdb.com/Title?0116768">"flipper babies"</a> in some parts of country and it's true that a small percent of the population may turn into <a href="http://us.imdb.com/Title?0087015">cannibalistic underground dwellers</a> or quasi-human <a href="http://www.geocities.com/Hollywood/7890/PAGE2.html">morlocks</a> â but that shouldn't impede the wheels of capitalism! Remember, you can't break eggs without making a cake or people will talk!
<p>The cynical among my readers will immediately point to the <a href="http://www.commoncause.org/campaign2000/republicansponsors.htm">huge sums of money</a> corporations like General Motors, PECO Energy company and Union Pacific have contributed to the GOP and suggest that Bush's motives are somehow tainted. Others may look at the page cited above and see that both Andersen Consulting and Enron  stuffed a lot of money up George Bush's bum. I feel sorry for those desperate folks who see <a href="http://aliensaliensaliens.com">conspiracy</a> in the most harmless of coincidences and I would feel this way even if the GOP wasn't paying me to write this. 
<p>Remember: corporations are <a href="http://www.zmag.org/zmag/articles/chomskyjune98.htm">almost people too.</a><p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3112">post</a> and <a href="http://use.perl.org/comments.pl?sid=3515">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Death by taxes]]></title>
    <link href="https://www.taskboy.com/2002-02-24-Death_by_taxes.html"/>
    <published>2002-02-24T00:00:00Z</published>
    <updated>2002-02-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-02-24-Death_by_taxes.html</id>
    <content type="html"><![CDATA[<p><p>Just finished my 2001 taxes. Ouch. I'll be sending Uncle Sam more than $3000 (in addition to the payroll taxes that I've already paid). For that much money, can't I direct a few of the bombs being dropped in Afghanistan? Can I have brunch with the Bushes? Tax relief â my fanny. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3094">post</a> and <a href="http://use.perl.org/comments.pl?sid=3496">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[GnuCash &amp; Dark Knight 2]]></title>
    <link href="https://www.taskboy.com/2002-02-24-GnuCash__amp;_Dark_Knight_2.html"/>
    <published>2002-02-24T00:00:00Z</published>
    <updated>2002-02-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-02-24-GnuCash__amp;_Dark_Knight_2.html</id>
    <content type="html"><![CDATA[<p><p>As an ongoing effort to reduce my dependencies on Winders, I have started using <a href="http://www.gnucash.org">GnuCash</a>. Like Quicken, GnuCash uses double entry accounting. Never having taken accounting in school, I'm glad one of my brothers did because he explained enough of it to me so that I could use the bloody software. So far, so good. I got through this month's bills. 
<p>On a different (and more interesting note), I just picked up the second book in the Dark Knight2 series. Many of the complaints I heard about the series when the first book came out (eg. "it's not as gritty as the original") are answered in some ways in this lastest ish. I think Miller isn't out to show us that old heroes can still rock. I think the point of this series is to be a somewhat humorous send-up of our current political farce edged with an omnious warning: ignoring politics today can lead to enslavement tomorrow. Again, Wonder Women is looking mighty <em>fine</em>.  <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3091">post</a> and <a href="http://use.perl.org/comments.pl?sid=3493">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[I can see clearly now…]]></title>
    <link href="https://www.taskboy.com/2002-02-22-I_can_see_clearly_now.html"/>
    <published>2002-02-22T00:00:00Z</published>
    <updated>2002-02-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-02-22-I_can_see_clearly_now.html</id>
    <content type="html"><![CDATA[<p><p>â¦the booze is gone.
<p>I went on an unexpected tear Wednesday with a buddy going through grrl trouble. As with all good drunks, I was able to pace myself until the last port of call: a bar and pool room called The Rack. You know what? Almost the entire staff of The Rack consisted of hansomely endowed women in inadequate clothing. Color me surprised!
<p>The Gentle Reader is reminded that I don't go out "clubbing." I don't "live for the weekend." The kinds of bars I go to have adults in them who drink IPAs and Stouts. But, this adventure wasn't about me. I ended up in a variety of places, buying drinks for strange women (at the behest of my lovelorn friend) and knocking down the canonical wedding cocktail: Dewers on the rocks. For some reason, none of the twenty-something "ladies" wanted to take home two blasted thirty-somethings. Was my comb-over showing? I had on my best thin leather tie. Am I missing something here?
<p>Thursday was day of rest for me and my buddy, who consumed a heroic amount of gin and tonics. I managed not to be too fuzzy from alcohol, but from the lack of sleep. Despite recent scholarship, I bloody need 8 hours of sleep each night. 
<p>Cheers!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/3036">post</a> and <a href="http://use.perl.org/comments.pl?sid=3436">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Bad Max]]></title>
    <link href="https://www.taskboy.com/2002-02-20-Bad_Max.html"/>
    <published>2002-02-20T00:00:00Z</published>
    <updated>2002-02-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-02-20-Bad_Max.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://us.imdb.com/Title?0079501">Mad Max</a> is a seminal sci-fi flick of the late seventies. I enjoyed Road Warrior and tolerated Thunderdome, but I had never before seen the movie that started the series. Tonight on SCI-FI, I got a chance to correct that.</p>

<p><p>What a terrible film! The worst dialog I've heard coupled with some powerful overacting. And could the movie move any slower? I doubt it. 45 minutes to set of one dimensional characters is unforgivable. Ick! I had such high hopes for this campy classic. Oh well. There's always Blade Runner.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2977">post</a> and <a href="http://use.perl.org/comments.pl?sid=3371">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Screwed by email]]></title>
    <link href="https://www.taskboy.com/2002-02-19-Screwed_by_email.html"/>
    <published>2002-02-19T00:00:00Z</published>
    <updated>2002-02-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-02-19-Screwed_by_email.html</id>
    <content type="html"><![CDATA[<p><p>Presented for your approval is the story of one Joe Johnston, a sad bastard who labors under the delusion that computers are here to help. The instrument of his re-education is e-mail. Something  so old, so ubiquitous that his cautious nature was lulled utterly to sleep.
<p>Our story opens in a month in the past. Thinking that the gnome folks had finally created a stable version of the mail client Evolution, jjohn decides to make that his default mailer. His Palm pilot can sync its addresses, todo lists and calendar to the gnome mailer. His joy is palpable. And yet, every so often, Evolution crashes with a message about "unable to sync.". Not noticing any problem, jjohn continues using the erstwhile mail client in ignorant bliss.
<p>In the parallel dimension of Microsoft Windows, jjohn decides he wants to read new email on his Palm Pilot. By setting up the demonic Outlook Express to fetch mail via POP from his Linux box, jjohn avoids using the Beast's mail client. But, the Beast would have the last laugh  yet.
<p>The final act comes on a day, like any other  in this pathetic character's life. Once again, while reading email in Evolution, a "sync" crash occurs but this time, he notices that certain new mail messages are apparently missing. Through a little digging he finds consectutive mail messages have been incorrectly concatenated together! After using emacs to fix his mail spool, jjohn receives another email message from a friend informing him that he has been the recieving a stream of Windows email virus from jjohn's account â an account which had been sending out mail for an untold number of days! It is a horror attenuated somewhat by the destruction of that evil Windows box merely hours ago. Like the House of Usher it contained a secret so abysmal, it couldn't bare its own weight.
<p>Alone in his apartment, jjohn is a broken shell of a man. Done in by the very forces of nature he sought to harness, he stares mutely out the window of his bedroom into the Twilight Zone.    <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2963">post</a> and <a href="http://use.perl.org/comments.pl?sid=3355">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[What about young boys?]]></title>
    <link href="https://www.taskboy.com/2002-02-18-What_about_young_boys_.html"/>
    <published>2002-02-18T00:00:00Z</published>
    <updated>2002-02-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-02-18-What_about_young_boys_.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://www.york.ac.uk/admin/presspr/spice.htm">Spice Girls do not corrupt young girls, research finds</a>.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2942">post</a> and <a href="http://use.perl.org/comments.pl?sid=3330">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Man bites dog!]]></title>
    <link href="https://www.taskboy.com/2002-02-17-Man_bites_dog_.html"/>
    <published>2002-02-17T00:00:00Z</published>
    <updated>2002-02-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-02-17-Man_bites_dog_.html</id>
    <content type="html"><![CDATA[<p><p>Here's a story that's an new twist on a familiar news story,  but instead of "dog," think "motherboard,", replace "man" with "jjohn" and "bites" with "destroys." That's right after <em>years</em> of replacing my own computer hardware, I have destroyed my main Windows PC. I lay the blame for this incident on a power supply with a soft switch. The bastard sprang to life as I was removing a video card. You say "why didn't you unplug the machine before opening the box?" To which I reply, I did the other 99 times. Actually, I thought I had unplugged it that time. I was very surprised to see the CPU fan start moving!
<p>Anyway, now I need to decide what I'm going to do about this. My Window's box was both my gaming platform and my TV. I will try to use one of my linux boxes for TV and I might have to content myself with Atari 2600 games, which is ok by me.
Should I replace that box with a MacOS X box? A new Linux box? Another Windows box?</p>

<p><p>Have you got a really bone-headed hardware story? Do share!</p>

<p><p>[update: This incident forced me to finally get one of my TV tuner cards to work under Linux. I'm using xawtv and it works ok. It's unstable in a completely different way than the W2K version, so that's new. I think I can live with this for a while. At least until Farscape comes back on the air.]<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2931">post</a> and <a href="http://use.perl.org/comments.pl?sid=3317">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Love, exciting and new…]]></title>
    <link href="https://www.taskboy.com/2002-02-14-Love,_exciting_and_new.html"/>
    <published>2002-02-14T00:00:00Z</published>
    <updated>2002-02-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-02-14-Love,_exciting_and_new.html</id>
    <content type="html"><![CDATA[<blockquote>I fed my luvah roast duck meat</blockquote>

<p><p>The origins of this <a href="http://www.stemnet.nf.ca/CITE/valentine.htm">Day of Love</a> are somewhat unclear. There are those who attribute the holiday to Rome, others blame a Christian saint and still other folks believe that this is just another <a href="http://members.aol.com/xmaspiracy/0/why_bible.htm">excuse to sell cards</a>. Whatever its origin, St. Valentine's day tends to exacerbate tensions in a relationship, put pressure on the single to, er, double, and set up another ideal no one can match. Other than that, it's a great holiday.</p>

<p><p>Think of all the <a href="http://www.dotcom.org/ntac/">poor slobs</a> who are alone on this holiday. How many <a href="http://www.bankrate.com/brm/news/cc/20020128a.asp">Hallmark commercials</a> must they be forced to endure? The festive pink holiday bunting at local pharmacies must be fire hazzard of some kind. And if you love someone, why are you giving them chocolate treats to expand their <a href="http://www.nutricise.com/basics/hips_basics_chap1.html">problem areas</a>? This is all madness!</p>

<p><p>The cynical among you might say that my criticisms are the product of a failed relationship whose anniversary fell on this day. Others may lay the blame at a severe beating I received on this day as child for absconding with a supply <a href="http://www.necco.com/Sweethearts%20are%20in%20Fashion.htm">Necco Wafer hearts</a>. Of course, who could forget the dressing down I received from Headmaster when chum Phineas broke his leg whilst jumping from a tall tree all those many Valentine's days ago?
<p>To my critics, I say: feh! And feh again! The quality of my analysis stands on its own without deconstruction. Valentine's day is a humbug! Now, leave to eat my wretched Necco's in peaceâ¦
<p>Those interested in meeting jjohn in meatspace may contact him on Instant Messager through the screen name snugglebuddy69. Please, no freaks or fat chicks.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2858">post</a> and <a href="http://use.perl.org/comments.pl?sid=3242">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[ViaVoice]]></title>
    <link href="https://www.taskboy.com/2002-02-13-ViaVoice.html"/>
    <published>2002-02-13T00:00:00Z</published>
    <updated>2002-02-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-02-13-ViaVoice.html</id>
    <content type="html"><![CDATA[<p>Continuing my quest to fill up the unused parts of my brain with useless crap, I stumbled across IBM's ViaVoice TTS system for Linux. It is used to convert text files in to a synthesized voice (which is part of what Lenzo is doing with Sphinx). Out of the box, it works ok. My problems started when I wanted to create mp3 from this system. When some recompiling, it is possible to get one of the command line programs to create AU files, rather than stream noise to /dev/dsp. Unfortunately (I blame pthreads here), I find that not all of a given input file gets successfully converted. If this were in Perl, I'd  simply write $|++ somewhere. But, this is C++ and there are libraries for which I do not have the source code, so I'll just pound sand. If anyone can suggest a workaround, or another system to convert text into speech which runs on the command line and produces AU or WAV or even MP3 files, I'd be much obliged. </p>

<p>Of course, the goal here is to create RadioFreejjohn, in which my Apache::MP3 server also reads me RSS feeds, thereby similuating a real radio station. </p>

<p>As I said, a good time killer. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2843">post</a> and <a href="http://use.perl.org/comments.pl?sid=3226">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Perl v. Java]]></title>
    <link href="https://www.taskboy.com/2002-02-12-Perl_v.html"/>
    <published>2002-02-12T00:00:00Z</published>
    <updated>2002-02-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-02-12-Perl_v.html</id>
    <content type="html"><![CDATA[<p><p>From a truly ill-considered Ask Slashdot question came this <a href="http://slashdot.org/comments.pl?sid=27817&amp;cid=2991118">pearl of wisdom</a>. A former (award winning!) Java hacker confesses his adulterous thoughts for Our Favorite Language. I'd like to pick up on a few of his points and perhaps add a bit of my own.</p>

<ul> 
  <li>Unicode: it's a sore spot of Perl, but seems to be 
      hunky-dory for java. I lay the blame for Perl's developmental problems here on DWIM. As Perl coders, we've come to expect Perl to handle simple (and not so simple) string manipulation without that much handholding from us. I suspect that this bit of Sloth is biting the 'porters. Certainly, the unicode issue is preventing Perl from being a first class XML processing language (no XS cheating here).
  <li>Perl's threading system is still developing, but java's model seems to be working fine. Of course, Perl's forking model is probably better and easier to use than java's (cross-platform forking is difficult to guarentee).
I say tit-for-tat on threading/forking here.
  <li>Dedicated IDEs are bullshit. There, I said it. Coders shouldn't handle their code with the tongs of an IDE, like some poor MS Word shlub. If the java folks have more IDEs than Perl People, good on 'em.
  <li>ALL PRAISE CPAN! Perl was <em>years</em> ahead of MOST other languages here and continues to put java to shame. CPAN is not only an FTP archive, it's damn protocol to download and install libraries! In your face, JAR!
  Elegance is something for which python and java are praised and for which Perl is found wanting. Clearly, I don't get the 'elegance' argument and I never have. If 'elegance' means fewer characters typed during coding, Perl wins for most applications. Consider perl one-liners, the inclusion of perl hashes, regexes, etc. Perl delivers the promises of 'less typing'. Is elegence the lack of 'weird characters?' It may be, but Perl's syntax acts like a road sign to tell the maintain what's going on. Sigils (those funny characters preceding variable names) are not a misfeature â they are essential to maintaining a Perl program. You always know what to expect from a variable with a sigil. Without them, the reader (and coder!) needs to find the original declaration of the variable to figure out what it is. I hate that. Is elegance the object model of a language? Python and Perl's object model isn't terribly different. Shocked? Don't be. The difference between python and Perl objects is that python has a object type, where perl blesses variable data. Java and Perl object models are very different. Java's single inherentence (which is a Good Thing) and object data protection (which is a Useless Thing) definitely come from the C++ crowd.
  You always get the source code with every Perl script and library. This makes it simpler to debug programs in Perl because you can always step through almost all of the code, including the libraries.
  Readability. Perhaps this is meant to go under 'elegance,' but I think this is a different issue. All languages can be obfuscated. It's not the language designer's perview to make you code clearly. Any claim a language makes to being inherently cleaner to code in (I'm looking at you, Java and python) is naive. I don't expect a java programmer to maintain a Perl program, just as I don't expect a Perl programmer to maintain a java program. In fact, that's why I'm not an editor for a Japanese magazine â I have no facility for the language. Does that mean Japanese is inferior to English? 
</ul>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2805">post</a> and <a href="http://use.perl.org/comments.pl?sid=3190">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Songs of Experience: Apache::MP3]]></title>
    <link href="https://www.taskboy.com/2002-02-11-Songs_of_Experience__Apache__MP3.html"/>
    <published>2002-02-11T00:00:00Z</published>
    <updated>2002-02-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-02-11-Songs_of_Experience__Apache__MP3.html</id>
    <content type="html"><![CDATA[<p><p>Lincoln Stein's <p>Apache::MP3</p> has been fun to play with. It's nice to have tunes in the bedroom as well as the living room. The machine that hosts the streaming mp3 server was somewhat underpowered when I started, both because it had merely 64M of RAM and only 300M of free hard drive space (of course, that was <em>awesome</em> in 1998). Although I was able to smoothly able to put in 256M of RAM, the BIOS didn't like the new 40G Western Digital hard drive. Instead, I found an old 4G hard drive that I pressed into service. I formated the drive with the reiser journaling filesystem to see how that works. I should crash the machine to test it, but I'm too chicken. Never mind: my neighborhood's power will fail soon enough.
<p>I'll be subclassing <p>Apache::MP3</p> so that it should the remain free space on the drive hosting the mpegs. It may not be portable, but I don't care. <p>:-p</p>.
<p>The only really problem I've noticed with the streaming is that the last second of every track is clipped. I'm not sure what's up with that. Is there somekind of pause I can put in so that just because the client player sees the end of the stream, it won't fetch the next track until it finishes playing the current one? This already sounds like a client-side problem, but I'm experiencing it with both Windows Real Player and Linux XMMS. If you have a solution for this problem, please drop me a note.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2773">post</a> and <a href="http://use.perl.org/comments.pl?sid=3156">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Apache::MP3 Rawks!]]></title>
    <link href="https://www.taskboy.com/2002-02-07-Apache__MP3_Rawks_.html"/>
    <published>2002-02-07T00:00:00Z</published>
    <updated>2002-02-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-02-07-Apache__MP3_Rawks_.html</id>
    <content type="html"><![CDATA[<p><p>I just setup Lincoln Stein's Apache::MP3 on an old Linux box which is ripping MP3s like a bastard now. This, I think, puts me 12-24 months behind everyone else in geek culture. Still, it's pretty cool that it works with so little configuration right out of the box. Thanks, Lincoln!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2696">post</a> and <a href="http://use.perl.org/comments.pl?sid=3073">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Apache::AuthCookie Rawks]]></title>
    <link href="https://www.taskboy.com/2002-02-06-Apache__AuthCookie_Rawks.html"/>
    <published>2002-02-06T00:00:00Z</published>
    <updated>2002-02-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-02-06-Apache__AuthCookie_Rawks.html</id>
    <content type="html"><![CDATA[<p><p>Been playing around with Apache::AuthCookie, because I need something like this for a client. Combine this with 
Apache::Session::MySQL and all the tough work of making a three-tiered web apps is done! Kick ass! This would make a good article, I think. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2674">post</a> and <a href="http://use.perl.org/comments.pl?sid=3050">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Finally: an MSKB  entry that helps!]]></title>
    <link href="https://www.taskboy.com/2002-02-04-Finally__an_MSKB__entry_that_helps_.html"/>
    <published>2002-02-04T00:00:00Z</published>
    <updated>2002-02-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-02-04-Finally__an_MSKB__entry_that_helps_.html</id>
    <content type="html"><![CDATA[<p><p>Saw <a href="http://www.microsoft.com&amp;item=q209354@hardware.no/nyheter/feb01/Q209354%20-%20HOWTO.htm">this link</a> from Wil Wheaton's <a href="http://wilwheaton.net">blog</a>. At least, a truly helpful Knowledge Base item.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2635">post</a> and <a href="http://use.perl.org/comments.pl?sid=3008">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Sara Sydney Johnston]]></title>
    <link href="https://www.taskboy.com/2002-02-02-Sara_Sydney_Johnston.html"/>
    <published>2002-02-02T00:00:00Z</published>
    <updated>2002-02-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-02-02-Sara_Sydney_Johnston.html</id>
    <content type="html"><![CDATA[<p><p>The Clan Johnston continues to expand, this time with a little girl named 'syd'. She was born healthy and happy to my brother Jay and his wife yesterday. Both mother and father are expected to recover. Syd will share her new home with three brothers.
<p>For those keeping track, Syd makes me an uncle for the sixth time. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2596">post</a> and <a href="http://use.perl.org/comments.pl?sid=2970">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[CSS, XML and Browsers]]></title>
    <link href="https://www.taskboy.com/2002-01-30-CSS,_XML_and_Browsers.html"/>
    <published>2002-01-30T00:00:00Z</published>
    <updated>2002-01-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-01-30-CSS,_XML_and_Browsers.html</id>
    <content type="html"><![CDATA[<p><p>Don't panic â I'm not trying to sell you anything despite the acronyms in the subject line. </p>

<p><p>In my quest to bring docbook XML into 1990's, when users could easily change the fonts of their documents at the slightest whim, I ran across an interesting chapter in <a href="http://www.ora.com/catalog/xmlnut">XML in a Nutshell</a>. It mentions that many modern browsers can actually render XML documents that reference a CSS stylesheet. Ok. I knew this was clearly going to be an exercise in pain, but I had to see how painful. Remember, I want to turn docbook into PDF with <em>my</em> choice of fonts, not Fop's.
<p>So I cruise over to the <a href="http://docbook.sourceforge.net">docbook project site</a> and pick up a few of the contributed CSS files. I create a very simple docbook file and reference one of these CSS files. I used Opera on both Linux and Windows, I used IE 5.5, I used Mozilla. I got nothing but the XML file back without formating. 
<p>mmm.
<p>Upon closer inspection, it was clear that these CSS files were meant for <em>HTML</em> files, not raw XML. So, I hacked up this lame CSS file:</p>

<blockquote>
/* jjohn's CSS hack for docbook â <br>
   This is to get BROWSERS to render XML.<br>
   There is *NO* transformational step */<br>
<br>
para {<br>
   display: block;<br>
   font-family: courier;<br>
   font-size: 12pt;<br>
}<br>
<br>
title {<br>
   display: block;<br>
   font-family: verdana;<br>
   font-size: 14pt;<br>
   font-weight: bold;<br>
}<br>
</blockquote>

<p><p>Ah-HA! Progress! I got the XML to render (weakly) in Galeon but as a proof-of-concept test, it worked as expected. Now, how to get this into PDF. Well, Galeon can print PS to a file, which I did. Unfortunately the funky fonts I had picked didn't get into the PS, so I didn't even bother running ps2pdf. I think that's weird because the fonts do show up on screen. But then, I don't really understand the implementation of rendering fonts. 
<p>Still, this seems like a promising line of research. Does anyone here know if the Mozilla project has a command line CSS processor that will vomit forth Postscript? That would be super-fantastic. Heck if I had that, I could go docbook->HTML->CSS->PS->PDF and hopefully get formatting AND fonts. Excellent. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2514">post</a> and <a href="http://use.perl.org/comments.pl?sid=2884">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Dreaming in songs]]></title>
    <link href="https://www.taskboy.com/2002-01-30-Dreaming_in_songs.html"/>
    <published>2002-01-30T00:00:00Z</published>
    <updated>2002-01-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-01-30-Dreaming_in_songs.html</id>
    <content type="html"><![CDATA[<p><p>Ok. This is a little weird. 
<p>I just woke up with a part of a song in my head. I don't think it means anything, but it's a reggae chord progression of F#min D# C# and the only lyrics I can remember are:</p>

<blockquote>
Hey, Amagosa is a kid on IRCâ¦
</blockquote>

<p><p>Which is true. There is a channel op on #perl named amagosa. I wonder if I can sell the rights to this song
as a jingle to Dunkin' Donuts:</p>

<blockquote>
Hey, give me a Coolatta with creamâ¦
</blockquote>

<p><p>I better stick to my day job. Oh wait, I don't have a day job.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2524">post</a> and <a href="http://use.perl.org/comments.pl?sid=2893">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Contempory Atari 2600 games]]></title>
    <link href="https://www.taskboy.com/2002-01-27-Contempory_Atari_2600_games.html"/>
    <published>2002-01-27T00:00:00Z</published>
    <updated>2002-01-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-01-27-Contempory_Atari_2600_games.html</id>
    <content type="html"><![CDATA[<p><p>So you thought the Atari 2600 was dead, eh? Well, you were wrong. <a href="http://www.atariage.com/hack_page.html?SystemID=2600&amp;SoftwareHackID=27">Here</a> you will find a hacked version of Kaboom! called Kabul! that features, yup, Osama bin Laden. Work out your terrorist angst on the old VCS. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2442">post</a> and <a href="http://use.perl.org/comments.pl?sid=2811">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Core MySQL]]></title>
    <link href="https://www.taskboy.com/2002-01-27-Core_MySQL.html"/>
    <published>2002-01-27T00:00:00Z</published>
    <updated>2002-01-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-01-27-Core_MySQL.html</id>
    <content type="html"><![CDATA[<p><p>Just picked up a copy of <a href="http://www.amazon.com/exec/obidos/ASIN/0130661902">Core MySQL from Prentice Hall and even a cursory look though some of the chapter is enough for me recomend this book. Among the features covered are replication, transactions and a knowledgable discussion of the various MySQL table types. How does InnoDB differ from BDB or Gemini? What are merge tables go for? What are the limitations of Heap tables? All these questions typically go unanswered in most MySQL books, but Leon Atkinson tackles them adoitly. If you're serious about administrating MySQL or want to take your MySQL applications to the next level, this book is the one to get. Heck, it even talks about how to use MySQL with an object oriented data model. What's not to like? <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2439">post</a> and <a href="http://use.perl.org/comments.pl?sid=2808">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Doesn't this guy have a day job?]]></title>
    <link href="https://www.taskboy.com/2002-01-27-Doesn_t_this_guy_have_a_day_job_.html"/>
    <published>2002-01-27T00:00:00Z</published>
    <updated>2002-01-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-01-27-Doesn_t_this_guy_have_a_day_job_.html</id>
    <content type="html"><![CDATA[<p><p>Supreme Court Justice Anthony Kennedy wants to <a href="http://www.cnn.com/2002/US/01/27/scotus.morals/index.html">teach your teens about morality</a>. Apparently, the High Court's docket is a little light these days, since the Al-Queda crew are probably going to face a military tribunal. Now I sure this fellow means well, after all he's <a href="http://www.cnn.com/2002/LAW/01/22/scotus.alibi.ap/index.html">happy enough to see the rights of the accused dismissed</a>. Why the sudden interest in giving American teens the Fruit of Knowledge? Kennedy doesn't feel that students expressed enough "moral outrage" over the 9-11 attacks. Kennedy later went on to say:</p>

<blockquote>
There seemed to be a feeling that the U.S. got its comeuppance and that we have to take our lumps sometimes too.
</blockquote>

<p><p>Now some in the <a href="http://taskboy.com">liberal conspiracy</a> are going to try to tell you that the students Kennedy talked to were expressing a well-informed, global-centric opinion that represents the kind of thinking critical to the survival of not just the United States, but of humans in general on this planet. But the truth isn't that pretty. Those students were really secret members of Al-Queda attempting to poison the young minds of America. It's good to see that a non-elected member of our federal bureaucracy is concerned about the welfare of our children. I'm sure Justice can wait. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2457">post</a> and <a href="http://use.perl.org/comments.pl?sid=2826">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[O.G. Worrywart]]></title>
    <link href="https://www.taskboy.com/2002-01-26-O.html"/>
    <published>2002-01-26T00:00:00Z</published>
    <updated>2002-01-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-01-26-O.html</id>
    <content type="html"><![CDATA[<p><p>Can I get a shout-out from all the <a href="http://www.masshole.com">Massholes</a> in da house?
<p>Are y'all concerned about Global Warming? Hell, yeah! Well, peep <a href="http://www.epa.gov/globalwarming/impacts/stateimp/massachusetts/index.html">this</a> from the EPA, which details the likely effects a warmer, wetter Massachusetts.
<p>It's enough to make you look to <a href="http://www.mountwashington.org/">higher ground</a>.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2425">post</a> and <a href="http://use.perl.org/comments.pl?sid=2793">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[XML-FO intro]]></title>
    <link href="https://www.taskboy.com/2002-01-24-XML-FO_intro.html"/>
    <published>2002-01-24T00:00:00Z</published>
    <updated>2002-01-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-01-24-XML-FO_intro.html</id>
    <content type="html"><![CDATA[<p>For those brave souls looking to turn XML (like docbook) into PDF or PS, take a look at <a href="http://www.dpawson.co.uk/xsl/sect3/bk/index.html">this recent overview</a> by Dave Pawson.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2389">post</a> and <a href="http://use.perl.org/comments.pl?sid=2752">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Is Farscape clich&egrave;d?]]></title>
    <link href="https://www.taskboy.com/2002-01-23-Is_Farscape_clich&amp;egrave;d_.html"/>
    <published>2002-01-23T00:00:00Z</published>
    <updated>2002-01-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-01-23-Is_Farscape_clich&amp;egrave;d_.html</id>
    <content type="html"><![CDATA[<p><p>As <a href="http://www.scifi.com">SCI-FI</a> on hiatus until March, 2002, fellow 'scapers are will have to make do with fan sites. One of the them, Farscape Weekly is running this article, <a href="http://www.farscapeweekly.com/article1139.html">Is Farscape clich&egrave;d?</a> It lists and catagorizes some of the more brain-damaged plot devices inflicted on sci-fi fans. It's a fun read, although I believe there are some additional examples of Farscape going to the clich&egrave; well. Still, Farscape shines when it uses traditional sci-fi elements in unexpected ways. I submit that <a href="http://www.scifi.com/farscape/journeylogs/season3/eatme.html">Eat Me</a>, <a href="http://www.scifi.com/farscape/journeylogs/dog.html">Beware of Dog</a> and <a href="http://www.scifi.com/farscape/journeylogs/fooled.html">Won't Get Fooled Again</a> all fall into this catagory. What do you think?<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2358">post</a> and <a href="http://use.perl.org/comments.pl?sid=2722">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Shutdown MS Outlook now!]]></title>
    <link href="https://www.taskboy.com/2002-01-23-Shutdown_MS_Outlook_now_.html"/>
    <published>2002-01-23T00:00:00Z</published>
    <updated>2002-01-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-01-23-Shutdown_MS_Outlook_now_.html</id>
    <content type="html"><![CDATA[<p><p><a href="http://news.bbc.co.uk/hi/english/health/newsid_1776000/1776099.stm">This</a> looks like the worst macro virus yet!</p>

<p><p>This article was originally entitled "Vomiting virus spreads misery."<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2346">post</a> and <a href="http://use.perl.org/comments.pl?sid=2710">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Maps R fun]]></title>
    <link href="https://www.taskboy.com/2002-01-21-Maps_R_fun.html"/>
    <published>2002-01-21T00:00:00Z</published>
    <updated>2002-01-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-01-21-Maps_R_fun.html</id>
    <content type="html"><![CDATA[<p><p>Just cruising around the <a href="http://www.state.ma.us/mgis">Massachusetts GIS page</a> and I found a <a href="http://www.state.ma.us/mgis/oqdesc.htm">satellite photo</a> of <a href="http://www.surfacecity.net/boston.php?subject=neighborhoods&amp;city=Boston&amp;doc_id=8">my neighbor</a>. For the convenience of <a href="http://use.perl.org/comments.pl?sid=2580">stalkers</a>, I've gimp'ed in directions to <a href="http://taskboy.com/img/82jersey_st.gif">my apartment</a>. In the right half of the photo are the <a href="http://www.geocities.com/RainForest/1017/loc/fenway.html">Fenway Victory Gardens</a>, which are plots set aside for residents to create flower or vegetable gardens. It's quite beautiful in the spring and summer. Lately, I've been walking around the Fens to lose weight. I'm quite fond of my neighborhood.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2294">post</a> and <a href="http://use.perl.org/comments.pl?sid=2654">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Is this supposed to be funny?]]></title>
    <link href="https://www.taskboy.com/2002-01-20-Is_this_supposed_to_be_funny_.html"/>
    <published>2002-01-20T00:00:00Z</published>
    <updated>2002-01-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-01-20-Is_this_supposed_to_be_funny_.html</id>
    <content type="html"><![CDATA[<p><p>I've been <a href="http://www.theonion.com/onion3801/sex_with_a_redhead.html">saying this</a> for years.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2271">post</a> and <a href="http://use.perl.org/comments.pl?sid=2631">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Legend of the Rangers]]></title>
    <link href="https://www.taskboy.com/2002-01-20-_Legend_of_the_Rangers_.html"/>
    <published>2002-01-20T00:00:00Z</published>
    <updated>2002-01-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-01-20-_Legend_of_the_Rangers_.html</id>
    <content type="html"><![CDATA[<p><p>Just finished watching B5 <em>Legend of the Rangers</em> and I have to say: color me impressed. I was expecting it to suck and, oddly enough, it didn't. I think the ship designs are total ass, but the uniforms are cool enough. 
<p>Unfortunately, JMS has introduced another "old, dark and scary" alien race that no one knew about. This hac kneyed plot device was total over done in all the Star Trek: The Quest for More Money series. Why not have a alliance of many ordinary races? There's strength in numbers and there would be no need to create new bogeymen. It's a question of scale. The humans are a lot weaker than the Mimbari, the Mimbari are a lot weaker than the Shadows or Vorlons, now "The Hand" are apparently a lot stronger than the First Ones. This is insane. It would have come up before. Oh, this complaint goes double for the B5 movie, <em>Thirdspace</em>. The First Ones were warranted to be the most powerful beings in the universe. Through a bit of legalese, beings from other "dimensions" can be more powerful than the First Ones. I'm not certain I buy it, but oh well. 
<p>Still, I hope SCI-FI picks up the series. It looks like it could be even better than Crusade. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2266">post</a> and <a href="http://use.perl.org/comments.pl?sid=2626">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Adult Industry News]]></title>
    <link href="https://www.taskboy.com/2002-01-19-Adult_Industry_News.html"/>
    <published>2002-01-19T00:00:00Z</published>
    <updated>2002-01-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-01-19-Adult_Industry_News.html</id>
    <content type="html"><![CDATA[<p><p>It's sort of a slashdot of <a href="http://www.ainews.com/">pros, pimps and playas</a></p>

<p><p>And before you ask, I don't know if they have an <a href="http://www.oreillynet.com/meerkat">RSS feed</a>.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2260">post</a> and <a href="http://use.perl.org/comments.pl?sid=2618">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Iron jjohn]]></title>
    <link href="https://www.taskboy.com/2002-01-18-Iron_jjohn.html"/>
    <published>2002-01-18T00:00:00Z</published>
    <updated>2002-01-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-01-18-Iron_jjohn.html</id>
    <content type="html"><![CDATA[<p><p>I liked the idea of <a href="http://use.perl.org/comments.pl?sid=2510&amp;cid=3333">Iron jjohn</a> so much, I made a <a href="http://taskboy.com/img/iron_jjohn.gif">picture</a>.</p>

<blockquote>

Allez cuisine!

</blockquote>

<p><p>ps. I added some new pictures to <a href="http://taskboy.com/pictures.html">taskboy.com</a><p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2227">post</a> and <a href="http://use.perl.org/comments.pl?sid=2580">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Windows Fonts in X and VNC]]></title>
    <link href="https://www.taskboy.com/2002-01-18-Windows_Fonts_in_X_and_VNC.html"/>
    <published>2002-01-18T00:00:00Z</published>
    <updated>2002-01-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-01-18-Windows_Fonts_in_X_and_VNC.html</id>
    <content type="html"><![CDATA[<p>I like fonts although I'm not typographer. After reading the <a href="http://www.linuxdoc.org/HOWTO/Font-HOWTO.html">HOWTO</a>, I managed to get both normal X and VNC (pass '-fp unix:/7100' to vncserver if you're using redhat 7.1 or xfs) to see verdana, one of the pretty things to come out of Microsoft. Even crusty old xfontsel can see all my new fonts. Delic!
<p>Oh yeah. Use.perl.org is now in verdana for me. Coolio.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2230">post</a> and <a href="http://use.perl.org/comments.pl?sid=2584">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Integrated Development Environment: Unix]]></title>
    <link href="https://www.taskboy.com/2002-01-17-Integrated_Development_Environment__Unix.html"/>
    <published>2002-01-17T00:00:00Z</published>
    <updated>2002-01-17T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-01-17-Integrated_Development_Environment__Unix.html</id>
    <content type="html"><![CDATA[<p><p>Just ran across an interview</a> with James "Javaman" Gosling where he explains about his work with the new cross-platform IDE, <a href="http://www.netbeans.org">netbeans</a>. In particular, this crack made me laugh:</p>

<blockquote>

And IDEs are generally targeted at low-end developersâpeople who are not experts at writing code. And if you look for tools that are oriented toward (those) people, you basically find nothing. The No. 1 tool (in that area) is Emacs, and I was kind of the guy responsible for the original Emacs, 23 years ago. One of the things I find frightening is it's still around, and in many ways it hasn't really changed. Is that the best you can do for a (low-end) developer? 

</blockquote>

<p><p>Although this will out me as an Emacs user, I say "if it ain't broke, don't fix it." Emacs is still around (and being actively developed) because for many users it works. It's stable, supports many programming languages (i.e. syntax highlighting and block indenting) and is copiously documented. Why not use it? </p>

<p><p>But the issue here really isn't Yet Another Editor war. All that I've said about Emacs is equally true for vi. The beef I have is really with the popular implementations of an Intergrated Development Environment. My sense is that the early success of Borland's QuickPascal for MS-DOS, with its "advanced" editor, online language help and integrated debugger, prompted application designers to think "every programmer needs this for their own language." In a way, this is true. However, it is meaningful that this was an <em>MS-DOS</em> product. MS-DOS was never taylored to the developer, but rather to the business application user. Therefore, a stock install of MS-DOS was a barren and lonely place for a programmer. What else was a PC coder to do in the eighties?</p>

<p><p>As free Unix clones became available in the nineties, many of us got our first glimse at an <em>operating system</em> appointed for programmers. Help facilities like man, text munging tools like awk and sed, filesystem tools like find, a rainbow of text editors and free version control systems like RCS all put the anemic MS-DOS environment to shame. There was never a need in Unix for one monolithic application designed to faciliate coding; every aspect of Unix is geared towards it. Editors need only provide access to these other tools to be an "IDE" in the DOS sense of the word.
<p>So, Gosling's scorn of Emacs is a bit surprising to me in the context of programming. The editor is only a part of the picture. Building a whole application just to faciliate programming is sort of weird from a Solaris guy. The problem is that the Windows environment is openly hostile to programming. I certainly got that message loud and clear, which is why I develop in Linux.
<p>One final point about IDEs in general. The core activity of programming is, oddly enough, text editing. Why is it that IDE editors in Windows (and I suspect netbeans to be only marginally better) have such a paucity of advanced editing features? I need the <p>TAB</p> button to indent based on the semantics of my language. I need rectangluar cuts. I need multiple buffers for cut text so that I can recall them all later. I need to be able to pipe a region of text into an external command, like <p>wc</p> or <p>perl -wc</p>. I need to be able to easily open a shell to run test harnesses. I need dynamic completion of words (for the love of God, don't make me type more than I have to). Most of all, an editor better not make me touch that phuqing mouse while I'm thinking! My motor skills are piss poor and I don't need additional distractions while coding. 
<p>In conclusion, it's clear to me that Unix and its frequent companion tools constitute to the most robust and stable IDE I've ever run across. Although it isn't the easiest IDE to learn, it is certainly the most powerful around, bar none. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2226">post</a> and <a href="http://use.perl.org/comments.pl?sid=2578">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[XML, SGML, XSLT, DSSSL, Oh my!]]></title>
    <link href="https://www.taskboy.com/2002-01-15-XML,_SGML,_XSLT,_DSSSL,_Oh_my_.html"/>
    <published>2002-01-15T00:00:00Z</published>
    <updated>2002-01-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-01-15-XML,_SGML,_XSLT,_DSSSL,_Oh_my_.html</id>
    <content type="html"><![CDATA[<p>Ill-conceived rant mode: on.</p>

<p>Gods. It's no wonder at all the XML/XSLT aren't getting traction. It's hard to find non-broken tools to make document processing a reality (the docbook folks make changes that the Fop group can't handle breaking the whole processing chain). But the tools are there, you say? 
Let me be clear:
HTML is rendered in a web browser. Hell, even a crappy web browser like lynx is good enough to start learning HTML. As a user, I get immediate feedback on my markup. With XML and XSLT, there should be an equally easy way to do get pretty feedback.
I've been reaching into the depths of docbook (both SGML and XML [don't ask why]) like a veterinarian delivering a calf
and it's been just about as pretty. DTD management is insane
and the tools (jade for DSSSL and xsltproc for XSLT and <em>then</em> Apache's Fop) are one step up from hacks. This is crazy. If I can't get PS from docbook easily, I should just stick to latex or even POD. After much fighting and reading and reading and reading, I have figured out how to use these tools but things have got to get much better in 2002 for these tools or XML will soon go the way of punch cards. 
<p>For the record, I don't get off on XML at all (unless people are buying my book). I care about what works, what's easy and what's available. 
<p>Grr. Grr, I say!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2149">post</a> and <a href="http://use.perl.org/comments.pl?sid=2501">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Pretzels: America's new war]]></title>
    <link href="https://www.taskboy.com/2002-01-14-Pretzels__America&apos;s_new_war.html"/>
    <published>2002-01-14T00:00:00Z</published>
    <updated>2002-01-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-01-14-Pretzels__America&apos;s_new_war.html</id>
    <content type="html"><![CDATA[<p>WASHINGTON (AP) â Pundits and critics of the War on Terrorism were smartly rebuked when President Bush was cowardly <a href="http://www.guardian.co.uk/bush/story/0,7369,632602,00.html">attacked by a pretzel</a>. Even in the heart of the White House, radical pretzel sympathizers were able to slip Bush a loaded, salty treat capable of raising his cholesterol, blood pressure and even producing debilitating acne.</p>

<p><p>Their plan succeeded beyond their wildest dreams.</p>

<p><p>Moments after first biting into the doughy assassin, Bush began choking and then passed out, while his dogs, Barney and Spot, could only look on in silent horror.
Although in good physical condition for his age, Bush was no match for this new weapon of terror and he briefly lost consciousness. When he came to, he found a small cut on his check and his self-esteem in ruins.</p>

<p><p>American Pretzel giants, Rold Gold and Pringles pledged their full cooperation with federal investigators trying to find the source of the weapon. "We are victims of the terrorists too," said Pepsico CEO Steven Reinemund. Pepsico owns Fritolay who distributes Rold Gold pretzels. "Instead of seeing an American icon of leisure, our consumers will  see their president passed out and drooling with a half pretzel in his limp hand," Reinemund continued. "God, we're screwed," said Reinemund who then began to cry like a little child. </p>

<p>Sources close to the Bush administration indicated that the President is recovering. Bush is said to be able to eat small handfuls for cocktail nuts, ruffled and unruffled potato chips, and the occasional cheese doodle but is still unwilling to let pretzels back into the White House.</p>

<p>In statement read to the press corp, Bush said "great harm has been done to us. But in our grief and anger, we have found our mission, and our moment." Bush then ordered the bombing of some random country of brown people. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/2115">post</a> and <a href="http://use.perl.org/comments.pl?sid=2467">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Read my lips: I've heard this before]]></title>
    <link href="https://www.taskboy.com/2002-01-05-Read_my_lips__I_ve_heard_this_before.html"/>
    <published>2002-01-05T00:00:00Z</published>
    <updated>2002-01-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-01-05-Read_my_lips__I_ve_heard_this_before.html</id>
    <content type="html"><![CDATA[<p>President G.W. Bush <a href="http://www.cnn.com/2002/ALLPOLITICS/01/05/bush.dems.economy/index.html">vowed</a> "not over my dead body will they raise your taxes." Of course, the ghost of his not yet dead dad immediately appeared to me. It was the senior Bush's failure to keep this promise that cost him a second term in office, despite his overwhelming Gulf War popularity. Will his son suffer the same fate?</p>

<p><p>History is indeed cyclical. Or is that, recyclical.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1940">post</a> and <a href="http://use.perl.org/comments.pl?sid=2288">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Review: Design of Everyday Things]]></title>
    <link href="https://www.taskboy.com/2002-01-05-Review__Design_of_Everyday_Things.html"/>
    <published>2002-01-05T00:00:00Z</published>
    <updated>2002-01-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2002-01-05-Review__Design_of_Everyday_Things.html</id>
    <content type="html"><![CDATA[<p>Continuing my user interface odessy, I recently read Donald Norman's <a href="http://www.amazon.com/exec/obidos/ASIN/0385267746">Design of Everyday Things</a> (DOET). Norman takes a look at a variety of commonplace manufacted goods, like doors and light switches, and points out where the designers helped or hindered the end-user. This book reads like academic who is trying to justify his research grant: some obvious points are flogged to death and the conversation is always kept at a high level. This isn't to say that the book isn't worth reading, it is. In fact, I suggest that after reading 
Brook's <a href="http://www.amazon.com/exec/obidos/ASIN/0201835959">Mythical Man Month</a>, new CS majors buy this book. The expressed purpose of DOET is to make all designers, particularly programmers, more sensitive to end-user needs. After all, a spreadsheet isn't meant for programmers, but average computer users.
For those readers that want to cut to the chase, read the first and last chapters. All the points are made or re-iterated there. If you're looking for a more practical book, look at some of my past reviews in this journal.  <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1926">post</a> and <a href="http://use.perl.org/comments.pl?sid=2273">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Seasons Greetings]]></title>
    <link href="https://www.taskboy.com/2001-12-24-Seasons_Greetings.html"/>
    <published>2001-12-24T00:00:00Z</published>
    <updated>2001-12-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-12-24-Seasons_Greetings.html</id>
    <content type="html"><![CDATA[<p><p>I want to wish all my friends here and abroad warm holiday wishes and, this year more than ever, Peace On Earth. Now, bring on the presents!  <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1782">post</a> and <a href="http://use.perl.org/comments.pl?sid=2118">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[XML-RPC review]]></title>
    <link href="https://www.taskboy.com/2001-12-14-XML-RPC_review.html"/>
    <published>2001-12-14T00:00:00Z</published>
    <updated>2001-12-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-12-14-XML-RPC_review.html</id>
    <content type="html"><![CDATA[<p>Shane, over at <a href="http://www.skippingdot.net">skipingdot.net</a>, 
has a very kind review</a> of O'Reilly's XML-RPC book. Thanks, Shane!</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1657">post</a> and <a href="http://use.perl.org/comments.pl?sid=1976">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[three oh]]></title>
    <link href="https://www.taskboy.com/2001-12-12-three_oh.html"/>
    <published>2001-12-12T00:00:00Z</published>
    <updated>2001-12-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-12-12-three_oh.html</id>
    <content type="html"><![CDATA[<p><p>Although a minor event in geo-political history, today is my thirtith birthday. I write this packed with 30 year old scotch and watching a biography of Paul Lynde, a personal ghost of my youth. Much has changed in my life in these past ten years since my last significant birthday. I no longer work as a dishwasher at a fast food dump; I have a college degree; I'm employed in a field that I enjoy. I meet this birthday fifteen pounds lighter and one co-author credit better than last year. Not so bad, really. Wonder what the next ten years will bring. With luck, it will involve cross-gender coupling and transmission fluids. Vroom. Vroom. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1610">post</a> and <a href="http://use.perl.org/comments.pl?sid=1926">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Dark Knight, 2]]></title>
    <link href="https://www.taskboy.com/2001-12-08-Dark_Knight,_2.html"/>
    <published>2001-12-08T00:00:00Z</published>
    <updated>2001-12-08T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-12-08-Dark_Knight,_2.html</id>
    <content type="html"><![CDATA[<p><p>Oh manâ¦
<p>Just finished the first book of <a href="http://www.dccomics.com/features/dk2/dk2.html">The Dark Knight Strikes Again</a> and it rocks. <a href="http://graphics.theonion.com/pics_3744/statshot_3744.jpg">Hard</a>. The story opens three years after the last series and no punches are pulled. Miller goes right for the throat. In the near future, our world has been compromised by corporations and the US has been under martial law. With mainstream news media castrated by corporate sponsorship, citizens live gray, fruitless, though comfortable, lives. Costume heros are a thing of legend (in fact, outlawed) and there appears to be no one with guts to lead the revolution.
<p>Enter Bruce Wayne and his band of "reformed" street thugs.
Miller brings his unique vision to some old DC staples, like the Flash and the Atom. Most of all, Miller has breathed new lust into Wonder Woman's tights. Boy howdy!
On the downside, this issue didn't pack the same punch as the first issue of the last series. Part of this is due to there being almost no setup for the story; Miller is yarn-spinning at full-throttle. Also, the mood is not as brooding. This episode is the opening salvo in what promises to be a major ass-kicking superhero war. There isn't a lot of time for introspection.
<p>It appears after many years of neglect, I'm in love with comics all over again. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1553">post</a> and <a href="http://use.perl.org/comments.pl?sid=1864">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Interview with Frank Miller]]></title>
    <link href="https://www.taskboy.com/2001-12-07-Interview_with_Frank_Miller.html"/>
    <published>2001-12-07T00:00:00Z</published>
    <updated>2001-12-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-12-07-Interview_with_Frank_Miller.html</id>
    <content type="html"><![CDATA[<p>The AV Club has an interview with Comic Book legend and personal favorite <a href="http://www.theonionavclub.com/avclub3744/avfeature_3744.html">Frank Miller</a>. As the Batman might say:
<p>Go. Now.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1538">post</a> and <a href="http://use.perl.org/comments.pl?sid=1847">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[I know my zeolots!]]></title>
    <link href="https://www.taskboy.com/2001-12-06-I_know_my_zeolots_.html"/>
    <published>2001-12-06T00:00:00Z</published>
    <updated>2001-12-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-12-06-I_know_my_zeolots_.html</id>
    <content type="html"><![CDATA[<p>Linked from <a href="http://memepool.com">memepool</a> is a <a href="http://www.funnystrange.com/quiz/">quiz</a> where the reader is challenged to identify a quote as being uttered by Jerry Falwell, Pat Robertson or Osama bin Ladin. I got 13/20, which is pretty good considering I don't listen to any of them! I often mixed up Pat Robersons and Falwell. It's hard to tell American blowhards apart. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1527">post</a> and <a href="http://use.perl.org/comments.pl?sid=1833">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Sheep or Shill?]]></title>
    <link href="https://www.taskboy.com/2001-12-06-Sheep_or_Shill_.html"/>
    <published>2001-12-06T00:00:00Z</published>
    <updated>2001-12-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-12-06-Sheep_or_Shill_.html</id>
    <content type="html"><![CDATA[<p><p>Dan Aykroyd has lent <a href="http://www.ufonasa.com/dan_akroyd.htm">his support</a> to a new UFO book, <em>NASA UFOs</em>. His testamony appears sincere, but then after watching his faux-commercials for the Bassamatic, I wanted one!</p>

<p><p>Dan Aykroyd: uncritical new age sheep or master corporate shill. You be the judge.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1517">post</a> and <a href="http://use.perl.org/comments.pl?sid=1823">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Attention B5 Fans: Help!]]></title>
    <link href="https://www.taskboy.com/2001-12-05-Attention_B5_Fans__Help_.html"/>
    <published>2001-12-05T00:00:00Z</published>
    <updated>2001-12-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-12-05-Attention_B5_Fans__Help_.html</id>
    <content type="html"><![CDATA[<p>Die-hard <a href="http://www.scifi.com/babylon5">Babylon 5</a> fans will know about the <a href="http://www.midwinter.com/lurk">Lurker's Guide</a>. It's a great companion resource for fans of the show. 
Minwinter isn't pinging!
<p>At least for me, it isn't. There are a few mirror sites, but they're way out of date now. If you know why midwinter.com is dead, please drop me a line. I made a local copy of the eposide guide, but I'd like to see midwinter return. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1505">post</a> and <a href="http://use.perl.org/comments.pl?sid=1812">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Code Comments: To be Read or Scanned?]]></title>
    <link href="https://www.taskboy.com/2001-12-05-Code_Comments__To_be_Read_or_Scanned_.html"/>
    <published>2001-12-05T00:00:00Z</published>
    <updated>2001-12-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-12-05-Code_Comments__To_be_Read_or_Scanned_.html</id>
    <content type="html"><![CDATA[<p><p>Slashdot is running a story about the <a href="http://www.softwaremarketsolution.com/">interview</a> with <a href="http://joel.editthispage.com">Joel Spolsky</a>. Avid readers of this journal (me) will remember that I just finished reading Spolsky's book on UI Design. Always one to share his mind, Spolsky's comments have stirred up a tempest in the Slashdot teapot. Much of his comments seemed geared to explaining why Microsoft's competitors failed. He cites Microsoft's coding policy of "never rewrite," which sounds a little hyperbolic to me. What the readers of Slashdot failed to see, apparently, is that the site that interviewed him is a "resource for software marketing, software sales, and software product marketing." Is this the place to get cogent coding tips? No. </p>

<p>However, my attention was drawn to this slashdot <a href="http://slashdot.org/comments.pl?sid=24483&amp;cid=2657658">comment</a> from one "StaticEngine" who is arguing vehemently for better comments in code. For instance:</p>

<blockquote>
Any programmer should be able to look at code by another programmer and pick up on it very quickly, without shaking their head and saying "What the hell were they thinking?" 
</blockquote>

<p></p>

<p>A bit later:</p>

<blockquote>
The best comment I heard was from a friend about a former coworkers code: "It's English with some C++ thrown inbetween the comments." 
</blockquote>

<p></p>

<p>This all sounds reasonable, right? Who could be against better, more copious comments? Aren't comments the key to understanding someone else's code?
Let me take this point to absurdity, why bother with the code at all? Why not write a paper about the code that explains what's going on. The assumption is that English is easier to understand than a programming language. So once you understand the theory of the code, then modifying it should be easy, right?
There are two reasons why liberal comments aren't effective. The first, oddly enough, comes from Spolsky's book. Users (or programmers here) don't read, they 
scan. Writing comments to be easily scanned is tricky. After all, scanning works best when the reader has some idea what to look for and the assumption with code comments is that the reader has no clue at all what's going on.
If coders are scanning rather than reading, keeping comments small and to the point will be more effective than embedding <a href="http://www.amazon.com/exec/obidos/ASIN/0553213113">Moby Dick</a> (or even <a href="http://www.amazon.com/exec/obidos/ASIN/0201485419">The Art of Programming</a>) into your module (although quotes from Futurama and LoTR are acceptable).</p>

<p>The second point is probably going to sound elitist, but what the hell: if you can't cook, stay out of the kitchen. Understanding a programming language is the primary job of a programmer. If there's a feature of the language (and not a compiler quirk) you don't understand, get a book and learn. Of course, I still recommend coding in common idioms and avoiding fancy tricks, but code is the definitive guide to understanding the program. You debug code, not comments.
I haven't seen a "comment debugger" yet. Comments can lead maintainers to not reading code. This is a sin. You always have to read the code. That last point is so important, I'll say it again:
You always have to read the code.
So comments are fine if used and maintained along with the code. Otherwise, just delete old, inaccurate comments or stick them in your revision control system's log. You are using version control, right?
I suspect there are folks on this system that will disagree with this notion, so flame away! </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1497">post</a> and <a href="http://use.perl.org/comments.pl?sid=1803">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Leonard Nimoy Fest]]></title>
    <link href="https://www.taskboy.com/2001-12-05-Leonard_Nimoy_Fest.html"/>
    <published>2001-12-05T00:00:00Z</published>
    <updated>2001-12-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-12-05-Leonard_Nimoy_Fest.html</id>
    <content type="html"><![CDATA[<p><p>Attention couch potatoes:
History Channel: <a href="http://www.insearchofonline.com/">In Search of</a>: 4p-5p (M-F)
SCI-FI: <a href="http://www.startrek.com">Star Trek</a>: 6p (M-F)
<p>Kick ass.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1506">post</a> and <a href="http://use.perl.org/comments.pl?sid=1813">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Review of Don't Make Me Think]]></title>
    <link href="https://www.taskboy.com/2001-12-05-Review_of__Don_t_Make_Me_Think_.html"/>
    <published>2001-12-05T00:00:00Z</published>
    <updated>2001-12-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-12-05-Review_of__Don_t_Make_Me_Think_.html</id>
    <content type="html"><![CDATA[<p><p>Continuing my odessy into UI design, I read Steve Krug's <a href="http://www.amazon.com/exec/obidos/ASIN/0789723107">Don't Make Me Think</a>. Like <a href="http://use.perl.org/journal.pl?op=display&amp;uid=22&amp;id=1261">Spolsky's book</a>, this one is a short, fast read, but don't understand that to mean the book is fatuous. There's plenty of good tips and concepts to be learned here. For instance, Krug's section on doing usability studies on the cheap is worth the cover price alone. Also of value was the "scan test", in which you ask someone to quickly identify key elements of your front page to see if things like navigation, section title and site utilities (e.g. login, search) are
where users expect them to be.
If you're planning to build a web application, make this book apart of your permanent library. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1504">post</a> and <a href="http://use.perl.org/comments.pl?sid=1811">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[19 inches, Baby]]></title>
    <link href="https://www.taskboy.com/2001-12-04-19_inches,_Baby.html"/>
    <published>2001-12-04T00:00:00Z</published>
    <updated>2001-12-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-12-04-19_inches,_Baby.html</id>
    <content type="html"><![CDATA[<p>Some of the best presents are the ones you give yourself. This is certainly the case with my new 19" Philips 109B flat screen monitor. It's the best monitor
I've yet used. 
<p>Kick ass. 
<p>Since I also use my monitor as a TV, this acquisition has been a great leap forward for me. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1491">post</a> and <a href="http://use.perl.org/comments.pl?sid=1796">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Christopher Lowell]]></title>
    <link href="https://www.taskboy.com/2001-12-04-Christopher_Lowell.html"/>
    <published>2001-12-04T00:00:00Z</published>
    <updated>2001-12-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-12-04-Christopher_Lowell.html</id>
    <content type="html"><![CDATA[<p>I have some rather dreadful news.
<p>I'm developing an addiction to the <a href="http://dsc.discovery.com/fansites/christopherlowell/christopherlowell.html">Christopher Lowell Show</a>. For those that don't know, Mr. Lowell is an interior decorator in LA. In some ways, this show appeals to me like <a href="http://www.foodtv.com/foodtv/show/1,6525,IC,00.html">Iron Chef</a> does: they are both entertaining, like train wrecks. 
And we <em>love</em> that. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1488">post</a> and <a href="http://use.perl.org/comments.pl?sid=1793">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The definition of 'Moron']]></title>
    <link href="https://www.taskboy.com/2001-12-03-The_definition_of_&apos;Moron&apos;.html"/>
    <published>2001-12-03T00:00:00Z</published>
    <updated>2001-12-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-12-03-The_definition_of_&apos;Moron&apos;.html</id>
    <content type="html"><![CDATA[<p><p>The Boston Globe is carrying a story about a Canadian 
database programmer that went to <a href="http://www.boston.com/dailyglobe2/337/nation/Taliban_are_demonized_+.shtml">Afghanistan to cover the war</a>. He's not a professional reporter, although he did manage to get paid for 10 of his reports. With only a cell phone and maps, he planned to walk to Kandahar from 60 miles away. He wanted to get the real story of the war.</p>

<p><p>He was captured. </p>

<p><p>After being shackled to the wall of the jail for six days, his Afghani captors had a "trial" in which the hapless Canadian was accused/convicted of being a spy. Of course, he was the victim of racial profiling</a>: the practice of backward countries with oppressive regimes</a> that target suspects based on the color of their skin or sound of their name.</p>

<p><p>At the pleading of diplomats, he was released. His former captors were concerned of his "sour grapes" over his treatment. To allay their fears, he said "Don't worry. It's not the worst prison I've ever been in. It's not even the second-worst."</p>

<p><p>I can only imagine that this cruel indictment of shoddy Afghani torture methods will prompt a thorough shake down and moderization of techiques. Sure, Afghani prisons may not be the worst in the world <em>yet</em>, but there's always next year. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1473">post</a> and <a href="http://use.perl.org/comments.pl?sid=1777">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[graphic RSS]]></title>
    <link href="https://www.taskboy.com/2001-11-30-graphic_RSS.html"/>
    <published>2001-11-30T00:00:00Z</published>
    <updated>2001-11-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-11-30-graphic_RSS.html</id>
    <content type="html"><![CDATA[<p>I've been playing with Image::Magick lately. I started with photomosaics, which require a lot of CPU power and time. Although I had some success at creating them, I problem need to use larger source JPGs for a better mosaic. </p>

<p>The next thing I did was create a montage of graphics pulled from Rich Site Summary files. Check out these at <a href="http://taskboy.com/programs/graphic_rss">Taskboy</a>. Unfortunately, I don't have a general solution for creating these yet. To make them interesting, they should follow the links mentioned in each RSS item. Oh well. It's a fun toy anyway. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1438">post</a> and <a href="http://use.perl.org/comments.pl?sid=1740">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[$200 dollars monthly in telecom bills?!]]></title>
    <link href="https://www.taskboy.com/2001-11-27-$200_dollars_monthly_in_telecom_bills__.html"/>
    <published>2001-11-27T00:00:00Z</published>
    <updated>2001-11-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-11-27-$200_dollars_monthly_in_telecom_bills__.html</id>
    <content type="html"><![CDATA[<p>Jesus, Mary!</p>

<p>I'm doing my bills and I've figured out that I'm spending $200/month for a landline, DSL and a mobile phone. 
That's going to change today. </p>

<p><p>Bastards.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1389">post</a> and <a href="http://use.perl.org/comments.pl?sid=1697">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Radiohead's website]]></title>
    <link href="https://www.taskboy.com/2001-11-21-Radiohead_s_website.html"/>
    <published>2001-11-21T00:00:00Z</published>
    <updated>2001-11-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-11-21-Radiohead_s_website.html</id>
    <content type="html"><![CDATA[<p><p>Regardless of your feelings about the band, do take a lot at <a href="http://www.radiohead.com">Radiohead's web site</a>. I'm always happy to see inventive and successful web design and I think this site qualifies. It's non-linear, but easy to meander through. It's refreshing to see a web site that isn't choked with advertisements. In particular, I like the "Imaginary Prisons" section. There must be some ideas there I can pinch for Aliens, Aliens, Aliensâ¦.</p>

<p>Oh yeah, I just bought Radiohead's Amnesiac album. It's groovy. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1331">post</a> and <a href="http://use.perl.org/comments.pl?sid=1641">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[And so passes a blockhead]]></title>
    <link href="https://www.taskboy.com/2001-11-18-And_so_passes_a_blockhead.html"/>
    <published>2001-11-18T00:00:00Z</published>
    <updated>2001-11-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-11-18-And_so_passes_a_blockhead.html</id>
    <content type="html"><![CDATA[<p><p>Melvin Burkhart, sideshow freak and human pincushion, <a href="http://www.magictimes.com/spotlight/2001/2001-11-16-spotlight.htm">died Nov 8th, 2001</a>. On the lighter side, 
unemployed programmers might consider filling the hole left by this giant. It's better than learning .NET.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1294">post</a> and <a href="http://use.perl.org/comments.pl?sid=1606">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Franco-American relations collapse]]></title>
    <link href="https://www.taskboy.com/2001-11-15-Franco-American_relations_collapse.html"/>
    <published>2001-11-15T00:00:00Z</published>
    <updated>2001-11-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-11-15-Franco-American_relations_collapse.html</id>
    <content type="html"><![CDATA[<p>Those that have worked with me know that I eat a lot of Spaghettos. This <a href="http://www.theonion.com/onion3741/spaghettios_discontinued.html">news bit from The Onion</a> hits very close to home. I hope the parties in this dispute can work things out. Where's Jessie Jackson or Jimmy Carter when you need a negotiator? Take the shot! No, wait! Don't take the shot! Argg!<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1262">post</a> and <a href="http://use.perl.org/comments.pl?sid=1581">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[User Interface Design for Programmers]]></title>
    <link href="https://www.taskboy.com/2001-11-15-User_Interface_Design_for_Programmers.html"/>
    <published>2001-11-15T00:00:00Z</published>
    <updated>2001-11-15T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-11-15-User_Interface_Design_for_Programmers.html</id>
    <content type="html"><![CDATA[<p>Just finished reading Joel Spolsky's <a href="http://www.amazon.com/exec/obidos/ASIN/1893115941">User Interface Design for Programmers</a>, published by Apress and I'm impressed. Although it's a brief book, it attempts to get programmers think about more than just algorithms and data structures. The points raised in this book are well worth remembering and I now feel better able to asses UIs.
<p>The examples of UI blunders are compelling as are some of his remedies. It would be easy to slam Spolsky for bashing (ha ha) command line interfaces, but he rightly points out that most computer users don't want that level of complexity and degrees of freedom. I certainly agree with his assertion that users can't use a mouse (I sure can't). 
<p>Critics argue that the book is too brief and too derivitive of larger works on this topic. That maybe so, but as my first book on the subject, it worked. I would have liked to have seen more examples on usable web designing, but I think I use what he's already talked about for creating better sites. In fact, I'll probably grab more books on the subject thanks to Spolsky.
<p>While not a comprehensive book on the topic, Spolsky provides an entertaining and educational read. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1261">post</a> and <a href="http://use.perl.org/comments.pl?sid=1579">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[It's not because I don't love you]]></title>
    <link href="https://www.taskboy.com/2001-11-13-It&apos;s_not_because_I_don&apos;t_love_you.html"/>
    <published>2001-11-13T00:00:00Z</published>
    <updated>2001-11-13T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-11-13-It&apos;s_not_because_I_don&apos;t_love_you.html</id>
    <content type="html"><![CDATA[<p><p>If you haven't gotten email from me in about two weeks, it's because my SMTP relay host was using a (suddenly)
non-existent DNS server. Arrg! I fixed this about an hour ago. So, if you expected a response from me earlier, it might be on its way now. 
<p>Geez, louweez.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1249">post</a> and <a href="http://use.perl.org/comments.pl?sid=1569">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Michael Jackson's face]]></title>
    <link href="https://www.taskboy.com/2001-11-12-Michael_Jackson&apos;s_face.html"/>
    <published>2001-11-12T00:00:00Z</published>
    <updated>2001-11-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-11-12-Michael_Jackson&apos;s_face.html</id>
    <content type="html"><![CDATA[<p><p>is <a href="http://news.bbc.co.uk/olmedia/1650000/images/_1651544_badcd-pa150.jpg">weirder</a> than <a href="http://www2c.airnet.ne.jp/stevie/MICHAEL%20JACKSON/OFF%20THE%20WALL.jpg">ever</a>. I think he's trying to look like an <a href="http://animefu.com">anime character</a>.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1240">post</a> and <a href="http://use.perl.org/comments.pl?sid=1559">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Old Book Biddies and Boston Sex Shops]]></title>
    <link href="https://www.taskboy.com/2001-11-12-Old_Book_Biddies_and_Boston_Sex_Shops.html"/>
    <published>2001-11-12T00:00:00Z</published>
    <updated>2001-11-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-11-12-Old_Book_Biddies_and_Boston_Sex_Shops.html</id>
    <content type="html"><![CDATA[<p><p>This entry's a bit off topic, but what the hell.
<p>I was out with some friends this week attending the antique 
book fair at the Hynes Convention center. Although I'm not a
collector of old and rare books, I do like to look at them.
Having collected comics, I know how anal retentive hobbyists 
can be about their stuff. 
<p>At least, I thought I did. 
<p>An ugly incident occurred at the show where three of us
(all male) were looking at the hardcover edition of the works of 
Dali. I had read this book in my high school art classes and I 
was reeling in the years. I believe our little group was laughing 
or something equally anarchic when the old biddy that ran the booth 
came over and curtly said "the price is one the <em>front</em> 
cover!". That's salesmanship. At almost thirty years old, I'm not 
all that comfortable being yelled at for laughing. Especially for 
reading an art book. That was only <em>$135</em>! Expensive? A bit, 
but you must understand that books at this fair often carry price tags
in the thousands or dozens of thousands of dollars. This book was 
not a centerpiece item and IT WAS OUTSIDE ANY PROTECTIVE CASE! 
Oh well, my bad. 
<p>Later in the evening, we all headed out to an S&amp;M Leather shop 
in the South End. What else is there to do after a book fair? Now, I admit that I had never been to a Sex shop before, since 
I was raised in Purtain country, but I'm an open-minded guy of the 
twenty first century. What could be so bad about leather nun outfits
and studded dog collars?
<p>Aggressive sex shop salespeople.
<p>As my little group wandered though the store, we gandered at the inventory:
feathers, leather masks, butt plugs, anal starter kits (which naturally begs 
for the follow-up product: anal kit pro) and anatomically optimistic dildos. 
The problem came when three of us (again, all male) stopped in front of the 
selection of lubricants, all water based of course. There scented lubs, 
fruity lubs, course lubs and smooth lubs. Fine. Unfortunately just as I was 
ready to move on, one of the saleswomen can over and started <em>pushing 
the product</em>. From personal experience, she recommended one particular lub as being the most satisfying. 
<p>At that point, a couple of things came to mind.
<p>First, I'm used to sex selling cars, laundry detergent, hell, 
even life insurance, but sex being used to sell <em>sex</em> threw me. 
Perhaps new synapses are being creating in my brain as I write this.
<p>Second, I'm not used to sales people talking about their sex lives. Ok, I know she was probably just reciting the marketing material. I'm sure the 
lub ombudsman detailed the top three most effective sales pitches for 
the product, but it was still disquieting. It's one thing for a car salesman
to say 'Can you feel the suspension on this beauty? It's like riding on air".
It's another entirely to hear "Feel how slippery this is? I love it."
<p>Third, although I always take the free samples of chicken teriaki at 
Sakios in the Prudential Food Court, I wasn't prepared to have goo squirted in my hand. The only way to move product may be to get the customer involved, 
but this level of interactivity was unanticipated. But now, I think this shop is really missing some opportunities here. Why not organize lub parties along the lines of tupperware parties? I can see Sally StayAtHome inviting all her 
neighbors over to her house. An assortment of provocatively shaped tubes are 
arrayed on her low glass table. After passing around carrots and dip, she begins 
"I can't tell you how much these products mean to me. They saved my marriage."
<p>Although the lub incident caused the most psychic damage, the most 
fascinating items for sale were old dentistry tools. Strange shiny metal clamps, forceps and a metal gag that boasted improved comfort. Included 
in that case were items for which I, despite years of avid 
pornography watching and bachelorhood, was unable to divine a sexual use.
Apparently, there <em>are</em> more things in heaven and earth than are conceived of in my philosophy. Go figure. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1239">post</a> and <a href="http://use.perl.org/comments.pl?sid=1558">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[P2P Trip wrapup]]></title>
    <link href="https://www.taskboy.com/2001-11-12-P2P_Trip_wrapup.html"/>
    <published>2001-11-12T00:00:00Z</published>
    <updated>2001-11-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-11-12-P2P_Trip_wrapup.html</id>
    <content type="html"><![CDATA[<p><p>Here's an brief write up of my trip to DC for O'Reilly's P2P 
Conference.
<p>Because airplanes are becoming an increasingly unattractive 
travel option, I took Amtrak's <a href="http://amtrak.com/destinations/washington-dc.html">Acela line</a> from Boston to DC. With Hebrew National Hot Dogs 
in the diner car and 120V AC outlets at every coach seat, trains are my 
preferred way to travel. I like being able to get a worm's eye view of some 
of the cities along the route.
<p>Providence, RI was the home of horror writer H. P. Lovecraft and it still 
has an omnious air to it, although that might be due the giant Fox Lady 
billboards. Commercial real estate is cheaper in Providence that Boston and 
it's only a 30 minute train ride away. Providence should be more aggressively
going after businesses looking to locate in Boston, I think. There's money to 
be made there. 
<p>New London, CT has a cool boardwalk and ferry near the train tracks which 
facilitates travel. I'd like to visit that town more at some point. It looks 
like a nice place to live.
<p>Arriving in New York by train remained me of where old tires go: along 
the train tracks in Brooklin. What the hell. I'd be unhappy to see my 
town marred by that level of garbage, but then I don't live in New York.
Obviously, there was a noticable hole in the Manhatten skyline. My fellow
passenagers where noticably quieter during the passage through Penn Station.
<p>Trenton, NJ was a lot prettier than I remember. It's a shame that Newark
ruins Jersey's reputation, although Newark really is an armpit. I have found 
memories a brief trip to Asbury Park I took a few years ago. Good times; 
good times. 
<p>There are two things I remember about DC: obfuscated roads and a 
barricaded Capital building. Boston gets a lot of flack for its suboptimal 
street layout. I like to remind those critics that our cows did the best they 
could while drunk, so just lay off! In DC, urban planners 
<em>purposefully</em> created a concrete maze that would foil foreign 
invaders. It appears that the only ones confused are the turists. Also of 
note was the security around the Capital building. I knew that the approach 
to the Whitehouse would be closed, but I was hoping to see the Capital 
building. Unfortunately, it was closed to the public. In fact, the entrance
was <em>barricaded</em> by a car. Scattered throughout the city were 
non-descript black SUVs filled with men in dark glasses and ear pieces. 
So, it's good to see that we are winning the war on Terrorism. 
<p>I didn't go to many of the sessions at the conference. My purpose there 
was to present a talk on XML-RPC with Tim Allwine and to catch up with old
friends. The biggest buzz was made by some folks from the Joint Chiefs of 
Staff who told the attendees that heavy military hardware (warships, planes, 
etc) was running on Lotus Notes and NT. Sleep tight, America. They urged 
the crowd to develop P2P solutions that could safely replace these desktop 
systems. For instance, they would like a network system where vehicles could 
approach each other and become part of the same network. That's a pretty 
groovy idea. I think that could also work for PC hardware. Imagine, just 
placing your printer near a machine in your network would make it available
to your workgroup. Coolio!
<p>I had a great time and hope to do it again soon. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1238">post</a> and <a href="http://use.perl.org/comments.pl?sid=1557">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Any attention is good]]></title>
    <link href="https://www.taskboy.com/2001-11-04-Any_attention_is_good.html"/>
    <published>2001-11-04T00:00:00Z</published>
    <updated>2001-11-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-11-04-Any_attention_is_good.html</id>
    <content type="html"><![CDATA[<p>Just cruised over to xml.com and Clay Shirky has an article about why Web Services will fail to set the world on fire. His main point seems to be that WWW succeeded because the information transmitted was human consumable. Web Services are being touted by some as a way for programs to browse for components. I'm also dubious of this. I've never been sold on UDDI (although I'm looking harder at WSDL). But none of this is why I'm writing this journal. </p>

<p>On page 2</a> of Shirky's article, which is lambasting the hype around Web Services, is an ad for my book. I expect to see a <em>huge</em> jump in sales with that kind of pep talk! <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1167">post</a> and <a href="http://use.perl.org/comments.pl?sid=1487">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Democracy failing]]></title>
    <link href="https://www.taskboy.com/2001-11-03-Democracy_failing.html"/>
    <published>2001-11-03T00:00:00Z</published>
    <updated>2001-11-03T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-11-03-Democracy_failing.html</id>
    <content type="html"><![CDATA[<p>I trust most of us remember last year's</a> US <a href="http://whitehouse.gov">presidential</a> election in which poorly designed butterfly ballots caused so much <a href="http://www.salon.com/politics/feature/2001/01/17/recount/index.html">ruckus</a>. Well, history <a href="http://www.cnn.com/2001/SHOWBIZ/News/11/03/actors.election.ap/index.html">repeats</a> itself this week in the hallowed halls of the Screen Actors Guild. America's sweetheart (and B5's evil Anna Sheridan), Melissa Gilbert narrowly won the SAG presidential election beating out an embittered Valrie Harper, TV's Rhoda. The culprit? Poorly designed ballots and complex instructions! Apparently thousands of ballots weren't properly signed, thus throwing the election results into doubt. Surely, <a href="http://a1486.g.akamai.net/7/1486/2597/0001/media.southparkstudios.com/media/images/413/ep_413_garrisonboard.gif">Rosie O'Donnell</a> can clear this up?</p>

<p>I didn't think voting was that difficult. Perhaps we should consider assigning supreme executive power based on <a href="http://www.montypython.net/showimage.php?PIC=/pix/grail/beingrep.jpg">the sword distribution of a watery tart</a>.
Come see the violence inherent in the system! <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1161">post</a> and <a href="http://use.perl.org/comments.pl?sid=1485">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Ancient A3]]></title>
    <link href="https://www.taskboy.com/2001-11-02-Ancient_A3.html"/>
    <published>2001-11-02T00:00:00Z</published>
    <updated>2001-11-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-11-02-Ancient_A3.html</id>
    <content type="html"><![CDATA[<p><p>Just checked out the Internet Wayback Machine and found that Aliens, Aliens, Aliens has <a href="http://web.archive.org/web/*/http://aliensaliensaliens.com">cataloged</a>. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1156">post</a> and <a href="http://use.perl.org/comments.pl?sid=1479">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Finished reading Acts of the Apostles last night]]></title>
    <link href="https://www.taskboy.com/2001-11-02-Finished_reading__Acts_of_the_Apostles__last_night.html"/>
    <published>2001-11-02T00:00:00Z</published>
    <updated>2001-11-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-11-02-Finished_reading__Acts_of_the_Apostles__last_night.html</id>
    <content type="html"><![CDATA[<p><p>John Sundman's Acts of the Apostles</a> is a thriller that successfully blends computers, biology and conspiracy into a frothy brew. Paul Aubrey, a software manager whose career has seen better days, finds his life turned upside down and shoved into the twilight zone one day. As he becomes aware of the ultimate hostile takeover plan of a transnational corporation, the story follows his struggles to ferret out the truth and his struggle to save the world.</p>

<p><p>This story is thankfully populated with real characters. 
Aubrey isn't a born-hero, Luke Skywalker type; he's just a shlub with a marriage on the rocks. Aubrey doesn't always make the right decisions and there are consequences for this.</p>

<p><p>Most of all, I enjoyed the book's setting. Much of the story takes place in Boston and San Francisco. So familiar am I with those locations, that I spotted a factual error. 
Note to Sundman: You can't catch the Blue line from Park street; you need to go to Government center on the Green line.</p>

<p>It's not only the geography of the book that's familiar. 
Sundman does a reasonable job of describing real computer tech, such as PGP, chip timings and Usenet (although I'm uncertain what a "UNIX formated" disk is. ext2? minix? ufs?). Of course, Usenet spawned conspiracy is a thing after my <a href="http://aliensaliensaliens.com">own black heart</a> and there's a healthy dash of that here.</p>

<p><p>I read this book for two reasons: </p>

<ol>
<li>the late O'Reilly editor-in-chief Frank Willison spooged about it 
<li>I meant John Sundman at a conference and he said his book didn't suck
</ol>

<p>That's all the recomendation I needed.</p>

<p><p>While I don't want to say "it has too many notes", I do feel like the book could have lost about 50-80 pages of Aubrey meanderings in the middle without destroying the story arc. I hate jet-setting in real life and I began to feel a little jet-lagged myself! But don't let that stop you for this fun book. You'll enjoy the ride. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1146">post</a> and <a href="http://use.perl.org/comments.pl?sid=1468">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[When XML-RPC is taken to absurdity]]></title>
    <link href="https://www.taskboy.com/2001-11-02-When_XML-RPC_is_taken_to_absurdity.html"/>
    <published>2001-11-02T00:00:00Z</published>
    <updated>2001-11-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-11-02-When_XML-RPC_is_taken_to_absurdity.html</id>
    <content type="html"><![CDATA[<p>Colin Faulkingham recently proposed <a href="http://www.xmlrpc.com/discuss/msgReader$2066">RPC-MAIL</a>. It's basically using XML and HTTP instead of SMTP. He has very noble goals (eliminating spam and viruses), but the world isn't likely to give up SMTP yet. There's too much infrastructure invested in the current email protocol to make a backwardly incompatible one attractive. 
<p>Faulkingham spends a good deal of time thinking about 
exchanging cryptographic keys, but doesn't seem to address things like routing, attachments, even the format of the mail message. XML parsing and encoding can be expensive in
heavily loaded applications. Imagine a spammer trying to send out 100,000 messages/day! Oh wait, maybe that's a featureâ¦</p>

<p>Now <em>using</em> SMTP to transport XML-RPC messages is a bit more interesting, although finding a useful application for this is a bit dubious. </p>

<p>My $0.02.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1151">post</a> and <a href="http://use.perl.org/comments.pl?sid=1473">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Orange you glad it's not robin egg blue?]]></title>
    <link href="https://www.taskboy.com/2001-11-01-Orange_you_glad_it&apos;s_not_robin_egg_blue_.html"/>
    <published>2001-11-01T00:00:00Z</published>
    <updated>2001-11-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-11-01-Orange_you_glad_it&apos;s_not_robin_egg_blue_.html</id>
    <content type="html"><![CDATA[<p><a href="http://use.perl.org/users.pl?op=userinfo&amp;nick=hfb">hfb</a> said she didn't like my robin egg blue background on <a href="http://taskboy.com">Taskboy.com</a>. So, I changed one parameter and rebuilt the site. </p>

<p><p>Is that better, hfb? I aim to please. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1121">post</a> and <a href="http://use.perl.org/comments.pl?sid=1444">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[XML-RPC and C article online]]></title>
    <link href="https://www.taskboy.com/2001-11-01-XML-RPC_and_C_article_online.html"/>
    <published>2001-11-01T00:00:00Z</published>
    <updated>2001-11-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-11-01-XML-RPC_and_C_article_online.html</id>
    <content type="html"><![CDATA[<p><p>Those interested in XML-RPC will enjoy my latest article on <a href="http://www.xml.com/pub/a/2001/10/29/xmlrpc.html">Using XML-RPC with C</a>. It should remind you why Perl is so much more fun to program in.</p>

<p>Also, please note that my hair isn't in an afro. The picture is just oddly cropped. Perhaps, I need a better headshot or a better afro.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1134">post</a> and <a href="http://use.perl.org/comments.pl?sid=1456">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[More thoughts on CMS]]></title>
    <link href="https://www.taskboy.com/2001-10-30-More_thoughts_on_CMS.html"/>
    <published>2001-10-30T00:00:00Z</published>
    <updated>2001-10-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-10-30-More_thoughts_on_CMS.html</id>
    <content type="html"><![CDATA[<p>Now that <a href="http://taskboy.com">Taskboy.com</a> is regularly updated with rsync, I feel like I've got a reasonable system in place. The first taskboy content management system was pretty cool, but it was meant for a 
much bigger and dynamic site that what I had planned. There are definitely ideas in there that will be recycled. The current system uses Andy Wardley's <a href="http://template-toolkit.org">Template Toolkit</a>. This helps to really enforce a consistent style. Right now, I'm only interested in static pages, so I'm not using 1/10 of what TT can do. I'll probably release more details about taskboy's particular setup later on that site. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1110">post</a> and <a href="http://use.perl.org/comments.pl?sid=1431">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Taskboy.com updated]]></title>
    <link href="https://www.taskboy.com/2001-10-29-Taskboy.html"/>
    <published>2001-10-29T00:00:00Z</published>
    <updated>2001-10-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-10-29-Taskboy.html</id>
    <content type="html"><![CDATA[<p><a href="http://taskboy.com">Taskboy.com</a> has been updated with a new homepage. I scrapped the content management system I was working on for now. I generate those
pages with Template Toolkit on my local machine, then rsync
them to taskboy.com. In fact, this is very similar to how <a href="http://oreilly.com">O'Reilly.com</a> publishes their pages. My needs are very simple for now. I'm practicing scaling down designs. :-)</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1100">post</a> and <a href="http://use.perl.org/comments.pl?sid=1419">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Humor in WindowsME registry]]></title>
    <link href="https://www.taskboy.com/2001-10-28-Humor_in_WindowsME_registry.html"/>
    <published>2001-10-28T00:00:00Z</published>
    <updated>2001-10-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-10-28-Humor_in_WindowsME_registry.html</id>
    <content type="html"><![CDATA[<p>I use Windows Millennium. I'm not proud, but it does games and porn really well. I work on my Linux box. When I want to move files between these machines, I use Samba. That is until I changed something (I think I updated my Red Hat box). In any event, WinMe wouldn't connect to the Linux box anymore. A quick search of google showed what I suspected: winMe encrypts it's smb passwords over the wire. 
Samba expects plain text passwords. Oy. The solution is to add a value to a deeply buried registry key. When I actually went there, I found <a href="http://aliensaliensaliens.com/htdocs/graphics/winme_harder.gif">this</a>.</p>

<p>Komedy.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1090">post</a> and <a href="http://use.perl.org/comments.pl?sid=1410">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[My Map Hobby]]></title>
    <link href="https://www.taskboy.com/2001-10-26-My_Map_Hobby.html"/>
    <published>2001-10-26T00:00:00Z</published>
    <updated>2001-10-26T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-10-26-My_Map_Hobby.html</id>
    <content type="html"><![CDATA[<p>All right, not <em>my</em> map hobby, but <a href="http://www-map.lib.umn.edu/news.html">this</a> fellow seems to enjoy grabbing those map graphics that appear next to news talking heads. I bet <em>that</em> leads to chicks. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1081">post</a> and <a href="http://use.perl.org/comments.pl?sid=1400">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The journey of a 1000 miles…]]></title>
    <link href="https://www.taskboy.com/2001-10-25-The_journey_of_a_1000_miles.html"/>
    <published>2001-10-25T00:00:00Z</published>
    <updated>2001-10-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-10-25-The_journey_of_a_1000_miles.html</id>
    <content type="html"><![CDATA[<p>â¦has begun today. After much relexation, I've begun writing the next XML-RPC book for O'Reilly. I tried to start with more advanced chapters but then I realized that I was depending on material that wasn't written yet. Apparently, I'm a very linear thinker. In any case, I'm trying to keep the suck level low on this book. We'll see how that goes.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1077">post</a> and <a href="http://use.perl.org/comments.pl?sid=1395">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Google Zeitgeist]]></title>
    <link href="https://www.taskboy.com/2001-10-24-Google_Zeitgeist.html"/>
    <published>2001-10-24T00:00:00Z</published>
    <updated>2001-10-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-10-24-Google_Zeitgeist.html</id>
    <content type="html"><![CDATA[<p>I just found <a href="http://www.google.com/press/zeitgeist.html">Google Zeitgeist</a> and I love it. I shows various stats about google, like most popular keywords, misspellings of Nostradamus and top 5 cartoon characters. I wonder if other search engines do this?</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1060">post</a> and <a href="http://use.perl.org/comments.pl?sid=1378">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[O'Reilly P2P, Redux]]></title>
    <link href="https://www.taskboy.com/2001-10-24-O_Reilly_P2P,_Redux.html"/>
    <published>2001-10-24T00:00:00Z</published>
    <updated>2001-10-24T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-10-24-O_Reilly_P2P,_Redux.html</id>
    <content type="html"><![CDATA[<p>O'Reilly is hosting another <a href="http://conferences.oreilly.com/p2p/">P2P Conference</a> in Washington, DC from Nov. 5 to Nov. 8. 
There will lots of interesting talks, but that's not what I'm here to push. </p>

<p><a href="http://conferences.oreillynet.com/cs/p2pweb2001/view/e_spkr/888">Tim Allwine</a> and I will be presenting a talk on an XML-RPC system</a> that we built for an internal O'Reilly system. Most of the talk will be about using XML-RPC and what to watch out for with Web Services. Of course, I'll be shamelessly hawking my <a href="http://www.amazon.com/exec/obidos/ASIN/0596001193/qid=991757986/sr=1-3/ref=sc_b_3/103-6301218-3253468">XML-RPC book</a> because I'm a corporate shill.</p>

<p>So, if you're in the DC area and want to learn more about XML-RPC, please drop by.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1061">post</a> and <a href="http://use.perl.org/comments.pl?sid=1379">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Pictures of jjohn from OSCon2001]]></title>
    <link href="https://www.taskboy.com/2001-10-22-Pictures_of_jjohn_from_OSCon2001.html"/>
    <published>2001-10-22T00:00:00Z</published>
    <updated>2001-10-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-10-22-Pictures_of_jjohn_from_OSCon2001.html</id>
    <content type="html"><![CDATA[<p><a href="http://www.oreillynet.com/pub/au/54">Derrick Story</a>, O'Reilly Network Managing Editor and <a href="http://www.oreillynet.com/pub/ct/24">Apple Enthusiast</a> snapped a few pics of me during the O'Reilly book signing event at OSCon2001. These pictures accurately capture me at the time:</p>

<p>
  <a href="http://aliensaliensaliens.com/htdocs/graphics/jjohn_oscon2001_01.jpg">Fat</a> and
  <a href="http://aliensaliensaliens.com/htdocs/graphics/jjohn_oscon2001_02.jpg">Silly</a>
</p>

<p>FMTYEWTKAM: (I've since lost a bit of weight since then and grown a goatee.)<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1047">post</a> and <a href="http://use.perl.org/comments.pl?sid=1367">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Expats be signin' now]]></title>
    <link href="https://www.taskboy.com/2001-10-21-Expats_be_signin&apos;_now.html"/>
    <published>2001-10-21T00:00:00Z</published>
    <updated>2001-10-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-10-21-Expats_be_signin&apos;_now.html</id>
    <content type="html"><![CDATA[<p>Resolved yesterday's expat conflict with a new apache (1.3.22). This enabled me to work on bugs in the Taskboy 
content management system. There are some sematic problems that may require a rewrite to fix, but it does seem to work 
(a bit). You can look at the horribly slow rendering speed <a href="http://taskboy.com/render.mpl/main/2">here</a>. The idea is that the system will create static pages too.
I don't plan a lot of dynamic content for that site. Taskboy is a proof of concept project: that XML-RPC can really be used as application glue in non-obvious ways.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1034">post</a> and <a href="http://use.perl.org/comments.pl?sid=1359">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[A tragedy of Expats (again)]]></title>
    <link href="https://www.taskboy.com/2001-10-20-A_tragedy_of_Expats_(again).html"/>
    <published>2001-10-20T00:00:00Z</published>
    <updated>2001-10-20T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-10-20-A_tragedy_of_Expats_(again).html</id>
    <content type="html"><![CDATA[<p><a href="http://taskboy.com">Taskboy.com</a> and <a href="http://pudge.net">Pudge.net</a> are on the same server. This machine has an unusually apache set up:
one apache server answers on port 80 and uses name-based virtual servers to handle Taskboy and Pudge.net. The virtual server conf actually palms the requests off to another apache process (configured with mod_perl) running on local host. Responses are then proxied back through the first apache process. Sound confusing? It is. Now, let's throw XML-RPC into the mix.</p>

<p>mod_perl, Apache and XML::Parser don't mix without special care. Why? Because XML::Parser and Apache each have their own expat libraries. Since mod_perl jams these two things into the same process space, seg faults happen whenever a mod_perl script (like an XML-RPC client) tries to use XML::Parser.</p>

<p>The solution is to compile Apache without expat, which isn't hard. </p>

<p>The server config mentioned above made this problem really obscure. I was getting 502 proxy errors from the server on port 80. This was bugging me out until I check its error_log and noticed the seg faulting children. Then it clicked.</p>

<p>I'll resolve this problem tomorrow (there are also two versions of Perl on the system, so I need to be awake when compiling). <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1032">post</a> and <a href="http://use.perl.org/comments.pl?sid=1358">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[CNN Rehab and revisting twm]]></title>
    <link href="https://www.taskboy.com/2001-10-18-CNN_Rehab_and_revisting_twm.html"/>
    <published>2001-10-18T00:00:00Z</published>
    <updated>2001-10-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-10-18-CNN_Rehab_and_revisting_twm.html</id>
    <content type="html"><![CDATA[<p>Some good friends of mine stongly urged me to stop watching CNN for a spell. Apparently, I'm becoming hysterical. How they isolated the cause of this hysteria
to CNN is beyond my feeble powers to discern. Nevertheless, 
I going to avoid CNN and the Boston Globe for 5 days or so.</p>

<p>The effect of this isolation is that my journal entries will devolve into increasing esoteric topics. Hence, the following.</p>

<p>In this age of increasing complex X desktop environments, 
I've taking a courageous step back in time by tweaking my .xinitrc and .twmrc files. That's right, my current window manager of choice is the <a href="http://www.ee.ryerson.ca:8080/~elf/xapps/Q-VII.html">tab window manager</a>. Take a second to try out these settings. (note: hard coded for 1028x768 screen resolution). </p>

<p>.xinitrc</p>

<blockquote>
xsetroot -solid gray85 &
xterm -fg blue    -bg white -g 80x25+0+0 &
xterm -fg red     -bg white -g 80x25+0-0 &
xterm -fg orange  -bg white -g 80x25-0+0 &
xclock -digital -update 5  -bg white -fg gray45 -g -0+420 &
exec twm
</blockquote>

<p>.twmrc
<blockquote>
ShowIconManager
IconManagerGeometry "191x200-0+468" 2
IconifyByUnmapping<br>
RandomPlacement
NoGrabServer<br>
RestartPreviousState<br>
DecorateTransients<br>
TitleFont       "-misc-fixed-medium-r-normalâ<em>-90-</em>-<em>-</em>-<em>-</em>-<em>"<br>
ResizeFont      "-misc-fixed-medium-r-normalâ</em>-90-<em>-</em>-<em>-</em>-<em>-</em>"<br>
MenuFont        "-misc-fixed-medium-r-normalâ<em>-90-</em>-<em>-</em>-<em>-</em>-<em>"<br>
IconFont        "-misc-fixed-medium-r-normalâ</em>-90-<em>-</em>-<em>-</em>-<em>-</em>"<br>
IconManagerFont "-misc-fixed-medium-r-normalâ<em>-90-</em>-<em>-</em>"<br></p>

<p><br>
Color<br>
{<br>
    BorderColor         "black"<br>
    DefaultBackground   "white"
    DefaultForeground   "gray60"<br>
    TitleBackground     "white"<br>
    TitleForeground     "gray60"<br>
    MenuBackground      "white"<br>
    MenuForeground      "gray60"<br>
    MenuTitleBackground "white"<br>
    MenuTitleForeground "gray60"<br>
    IconBackground      "white"<br>
    IconForeground      "gray60"
    IconBorderColor     "black"
    IconManagerBackground "white"
    IconManagerForeground "gray60"<br>
}<br>
<br>
MoveDelta 3<br>
Function "move-or-lower"   { f.move f.deltastop f.lower }<br>
Function "move-or-raise"   { f.move f.deltastop f.raise }<br>
Function "move-or-iconify" { f.move f.deltastop f.iconify }<br></p>

<p><br>
Button1 = : root : f.menu "defops"<br></p>

<p>Button1 = m : window|icon : f.function "move-or-lower"<br>
Button2 = m : window|icon : f.iconify<br>
Button3 = m : window|icon : f.function "move-or-raise"<br>
<br>
Button1 = : title : f.function "move-or-raise"<br>
Button2 = : title : f.raiselower<br>
<br>
Button1 = : icon : f.function "move-or-iconify"
Button2 = : icon : f.iconify<br>
<br>
Button1 = : iconmgr : f.iconify<br>
Button2 = : iconmgr : f.iconify<br></p>

<p><br>
menu "defops"<br>
{<br>
"Twm"   f.title<br>
"Iconify"       f.iconify<br>
"Resize"        f.resize<br>
"Move"          f.move<br>
""              f.nop<br>
"Focus"         f.focus<br>
"Unfocus"       f.unfocus<br>
"Show Iconmgr"  f.showiconmgr<br>
"Hide Iconmgr"  f.hideiconmgr<br>
""              f.nop<br>
"CDPlayer"      f.exec "exec xplaycd &amp;"<br>
"Gdict"         f.exec "exec gdict -a &amp;"<br>
"Netscape"      f.exec "exec netscape &amp;"<br>
"Xterm"         f.exec "exec xterm &amp;"<br>
""              f.nop
"Kill"          f.destroy<br>
"Delete"        f.delete<br>
""              f.nop<br>
"Restart"       f.restart<br>
"Exit"          f.quit<br>
}<br>
<br>
IconManagerDontShow<br>
{<br>
  "xclock"<br>
}<br></p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1022">post</a> and <a href="http://use.perl.org/comments.pl?sid=1350">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Inspirational picture for today]]></title>
    <link href="https://www.taskboy.com/2001-10-16-Inspirational_picture_for_today.html"/>
    <published>2001-10-16T00:00:00Z</published>
    <updated>2001-10-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-10-16-Inspirational_picture_for_today.html</id>
    <content type="html"><![CDATA[<p>Nobody likes a <a href="http://www.calebproject.org/jonah.gif">wet Jesus</a>.
(see <a href="http://memepool.com">memepool</a> for more)<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1004">post</a> and <a href="http://use.perl.org/comments.pl?sid=1337">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[New hope for an early end to the war]]></title>
    <link href="https://www.taskboy.com/2001-10-16-New_hope_for_an_early_end_to_the_war.html"/>
    <published>2001-10-16T00:00:00Z</published>
    <updated>2001-10-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-10-16-New_hope_for_an_early_end_to_the_war.html</id>
    <content type="html"><![CDATA[<p>As readers of my journal have <a href="http://use.perl.org/journal.pl?op=display&amp;uid=22&amp;id=925">probably</a> figured <a href="http://use.perl.org/journal.pl?op=display&amp;uid=22&amp;id=978">out</a>, I don't think carpet bombing</a> <a>Afghanistan</a> is going to make this <a href="http://www.boston.com/dailyglobe2/288/nation/Gates_are_closing_off_treasured_city_vistas+.shtml">country</a> or the <a href="http://www.boston.com/dailyglobe2/288/nation/Christian_Muslim_fighting_kills_200_in_Nigeria+.shtml">world</a> <a href="http://www.cnn.com/2001/HEALTH/conditions/10/15/anthrax/">safer</a>. In fact, we may be heading toward another <a href="http://thewall-usa.com/">protracted</a>, <a href="http://www.boston.com/dailyglobe2/288/nation/Antiwar_activists_urge_US_to_atone+.shtml">unpopular</a> war. Although it's not <a href="http://www.amazon.com/exec/obidos/clipserve/B000002KO3001004/104-5561629-4601514">the end 
of the world as we know it</a>, I am asking myself <a href="http://www.amazon.com/exec/obidos/clipserve/B000002KO3001004/104-5561629-4601514">where is my large automobile</a>?</p>

<p>However, I read something today renewed my faith in God</a> and <a href="http://www.gluck.net/jesus/">Country</a>. The good people at the <a href="http://www.weeklyworldnews.com">Weekly World News</a> informed me that <a href="http://www.batboy-themusical.com/">Bat Boy</a> is <a href="http://images.weeklyworldnews.com/images/11325.JPG">joining the Marines</a>! </p>

<p>I guess everything's going to be <a href="http://www.prozac.com">OK</a>. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1002">post</a> and <a href="http://use.perl.org/comments.pl?sid=1335">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The War on Dust]]></title>
    <link href="https://www.taskboy.com/2001-10-16-The_War_on_Dust.html"/>
    <published>2001-10-16T00:00:00Z</published>
    <updated>2001-10-16T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-10-16-The_War_on_Dust.html</id>
    <content type="html"><![CDATA[<p>Major apartment restructuring occurred yesterday at my abode. My living room/office hadn't significantly changed in 5 years and I snapped. I threw out the monkey-shit brown plastic "media center" in which I stored 3 PCs, a scanner, a printer, a 48 port hub and many CD-ROMs. The replacement was a sexy black metal rack about 4' high. I moved the futon
(which may also be heading out the door) to where the media center was. I now have an end table suitable for a lamp. Huzzah!</p>

<p>Of course, my War on Dust has casualities: I made many dozens of CD-ROMs homeless. The kitchen counter is flooded with media center refugees. That's OK because I've send them all thousands of leafets explaining that my enemy was the media center and the dust it harbored. My hope is that I can persuade the jewel cases to rise up against the dust bunnies and do my dirty work for me. </p>

<p>So far, the CD-ROMs have been stubbornly mute. </p>

<p>All in all, I'm very happy with the new setup. More room for poker.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/1007">post</a> and <a href="http://use.perl.org/comments.pl?sid=1338">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Anthrax? More like Tasty Snacks!]]></title>
    <link href="https://www.taskboy.com/2001-10-12-Anthrax__More_like_Tasty_Snacks_.html"/>
    <published>2001-10-12T00:00:00Z</published>
    <updated>2001-10-12T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-10-12-Anthrax__More_like_Tasty_Snacks_.html</id>
    <content type="html"><![CDATA[<p><p>While the War on Terrorism rolls on (not to mention riots/death threats), life continues in these United States. For instance, <a href="http://theonion.com">The Onion</a> is providing the best satirical relief that I've been able to find anywhere. A Pennsylvannia girl is experiencing better living through <a href="http://www.cnn.com/2001/HEALTH/10/08/christinas.brain.ap/index.html">reduced brain mass</a>. Rush Limbaugh, 
that champion of the <a href="http://www.amazon.com/exec/obidos/ASIN/0440508649/qid=1002904851">unprevileged white guy</a> has announced that he is almost <a href="http://www.cnn.com/2001/SHOWBIZ/News/10/11/limbaugh.ap/index.html">totally deaf</a>. And existentialist horror writer <a href="http://home.earthlink.net/~mutantdog/dfc.htm">Bil Keane's</a> 1999 homoerotic thriller <a href="http://www.amazon.com/exec/obidos/ASIN/0449146154/qid=999826479/">I Had A Frightmare</a> is finally getting the attention it deserves. </p>

<p>For my own part, I've been biking a lot along the banks of the Charles River. I just finish an article for www.oreilly.com on building XML-RPC clients in C and the work on my new content management system progresses nicely. 
I winnowed my collection of tech books and magazines. I spent a good part of the morning cleaning out two closets.
God-damn, I've collected a bunch of fester crap. But now, I can find my shoes and put away the vacuum cleaner; it can't be all bad. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/978">post</a> and <a href="http://use.perl.org/comments.pl?sid=1318">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Jingoism for Sale]]></title>
    <link href="https://www.taskboy.com/2001-10-09-Jingoism_for_Sale.html"/>
    <published>2001-10-09T00:00:00Z</published>
    <updated>2001-10-09T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-10-09-Jingoism_for_Sale.html</id>
    <content type="html"><![CDATA[<p>WARNING: VITRIOLIC, LEFTIST DIATRIBE AHEAD. THOSE UNABLE OR UNWILLING TO HEAR DISSENTING OPINIONS MAY EXPERIENCE NAUSEA, HEART PALPITATIONS, SWEATING AND/OR INTERNAL BLEEDING. CONSULT YOUR PHYSICIAN, IF UNSURE. </p>

<p>There are lots of things I don't like about America's new war on terrorism. You can start that catalog of distasteful things with the actual 9/11 attack. That sucked. Then the media coverage. What was more painful:
watching the planes crash into the WTC towers or listening to weeping talking heads? As bad as those were, there is one thing that really sticks in my craw: the narrowing of public debate on this issue.</p>

<p>There are several reasons why bombing the holy hell of Kabul might prevent future attacks. There are several reasons why the violent US response will promote more terrorism. Where is the debate on this? Why is the media  rallying around George W.? It's not like he was suddenly elected by majority of Americans. He's still a few eggs short of a dozen and his speech writers still getting their material from Julia Roberts films (or asprin commercials, I can't tell the difference).</p>

<p>Part of this narrowing of public discourse manifests in looking the other way while petty merchants sell American flag junk. We've all seen this crap by now: pens sporting flags with "United We Stand", Asian restaurant flyer's with a prominent Old Glory, news casters with blue (and optionally red and white) ribbons, and gas-chugging SUV's flying tatter flags. The list goes on. Does this sudden display of patriotism (which now seems to be fadding) seem superficial and devoid of meaning? Of course it does. But, I don't really have a lot of spleen for these media-controlled sheep that can't see through this diversion. Instead, I direct my wrath towards that lowest layer of social scum that <em>markets</em> chinsy flag crap toward those confused and battered sheep.</p>

<p>Before I get too many of those heart-felt, but misplaced "Buddy, my daddy died for the flag" emails, remember that American freedom is the right to have opinions that wrankle the majority. Let's not confuse freedom with a flag. One is an ideal and the other is often made of a generic polymer. The former is far more important than the later.</p>

<p>Whatever freedoms we enjoy in this country should be excersized with a modicum of taste. If you jumped into the flag business, or as I call it the petty jingoist trade, after September 11, you're a craven scumbag. You are not helping America heal; you are just another money-sucking leech feeding at the fatted calf of the American wallet.</p>

<p>Symbolism is not action. We most certainly need real action now and a long-term plan for the future.</p>

<p>Oh, a flag-etiquette tip for those new flag owners: take your flags down at sunset or during foul weather. Check out <a href="http://www.ushistory.org/betsy/flagetiq.html">this site</a> for more information.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/925">post</a> and <a href="http://use.perl.org/comments.pl?sid=1279">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Resume Building with Emacs]]></title>
    <link href="https://www.taskboy.com/2001-10-07-Resume_Building_with_Emacs.html"/>
    <published>2001-10-07T00:00:00Z</published>
    <updated>2001-10-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-10-07-Resume_Building_with_Emacs.html</id>
    <content type="html"><![CDATA[<p>In pursuit of the perfect content management system, 
I've begun experiementing with Emacs macros. How quaint!
Although there are <em>two</em> implementations of XML-RPC for emacs, I've created thin LISP shells around external commands that let me retrieve articles and save them 
with M-a and M-s! Huzzah!</p>

<p>Also, this CMS uses HTTP authentication and Blowfish
encryption to provide some protection against TCP snoopers.</p>

<p>I've made good use of XMLRPC::Lite and Apache to do my evil bidding. I should be able to have the CMS go live next week. </p>

<p>And <em>then we can have some fun!</p>

<p>Channeling Space Ghost:</p>

<blockquote>
May cause drowsiness! <br>
From your coffin! <br>
Because you're dead! 
</blockquote>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/904">post</a> and <a href="http://use.perl.org/comments.pl?sid=1266">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Been bikin'; codin'; cookin']]></title>
    <link href="https://www.taskboy.com/2001-10-05-Been_bikin_;_codin_;_cookin_.html"/>
    <published>2001-10-05T00:00:00Z</published>
    <updated>2001-10-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-10-05-Been_bikin_;_codin_;_cookin_.html</id>
    <content type="html"><![CDATA[<p>No industry punditry today, just biographical detail.</p>

<p>On Wednesday, I took off on my new mountain bike for the wilds of Arlington, MA (about 10 miles from my apartment). I then met up with some friends an continued on through Lexington and Concord for a total distance of about 35 miles that day. We went along the Minuteman bike path and the Reclaimation path that runs through a bird sanctuary.
I slept over in Arlington, then returned home the next day
(another 10 miles). I'm a bit sore even today. </p>

<p>Earlier this week, I cooked up a batch of chili made with <em>real beer</em>. It was delightful. I also explored the wonders of Asian-style rice. </p>

<p>I've been working on a content management system for 
<a href="http://taskboy.com">Taskboy</a>, which will be my new personal web site. The exciting part of this for me is that, using XML-RPC, I'll be able to remotely edit articles and publish them all from emacs (there will probably be a web UI too). It is very likely that this will end up going in my next XML-RPC book.</p>

<p>All and all, I've been enjoying the fine autumn weather in New England. Good stuff. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/886">post</a> and <a href="http://use.perl.org/comments.pl?sid=1258">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[The Ghost of Jurassic Park: Rethinking Novell]]></title>
    <link href="https://www.taskboy.com/2001-10-02-The_Ghost_of_Jurassic_Park__Rethinking_Novell.html"/>
    <published>2001-10-02T00:00:00Z</published>
    <updated>2001-10-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-10-02-The_Ghost_of_Jurassic_Park__Rethinking_Novell.html</id>
    <content type="html"><![CDATA[<p>In the early days of PC networking, Novell was a giant. It understood the value of a dependable network <em>years</em> before Microsoft. Novell made MSDOS into a 
network server platform and provided MS Windows with a working TCP/IP stack years ahead of our friends in Redmond.
Novell was integrating LDAP into their OS before we saw the first ad for "ActiveDirectory". So, what the hell happened to them?</p>

<p>To answer this question, I direct your kind attention
to <a href="http://www.novell.com/Netware6/ext_devprogram.html">this white paper</a> at Novell. Novell was always an add-on product, that is, it would co-exist with whatever OS was installed on the machine. Of course, this was frequently Windows, but this strategy still worked well for a long time. Unfortunately, feature creep being what it is, Netware 4 saw the introduction of a real OS kernel and Netware 5 introduced a threading process model and loadable kernel modules. And the best part of their kernel: it's not POSIX compliant. Why is this problem, you ask?</p>

<p>System programmers are a weird lot. First, they looked at single processor systems and said "gee, we should make the operating system multiplex the hardware so that it can run many programs at once." In multiprogramming environments, each process thinks it has the whole machine, 
actually the whole <em>virtual</em> machine, to itself. The OS, like a politician, promises the whole system to all its constituents, lies about its resources and hopes for the best. Odd as multiprogramming is, it works well. So well, that when the hardware boys concocted systems with 2 or more CPUs, system programmers went to great pains to make 
the machine appear to each process to have only <em>one CPU</em>. The moral of the story is that system programmers attempt to keep systems simple and are loath to introduce new application programming interfaces.</p>

<p>Back to Novell. Netware has always been an add-on product. So, why the kernel? Yes, I understand that <em>some</em> kind of kernel might be needed to share the 
resources that Netware manages (although how Netware manages this on top of modern Windows in a 32-bit protected environment baffles me), but really <em>loadable kernel modules</em>? Threaded processes? Creating a new OS is a risky business and Novell is in a very poor position to pull this off sucessfully. Choosing to ignore the POSIX standard will attract even fewer developers. Why would a programmer bother to learn yet another proprietary standard for an enviroment with so little market share?</p>

<p>Novell should focus on what the market needs: cross-platform client integration and management tools. Leave the kernels for popcorn and give admins the ability to manage accounts seemless across Windows, Unix and Web platforms. Focus on the small to medium business, because that's where Microsoft's predatory licensing fees inflect the most pain.</p>

<p>I'll say that again.</p>

<p>Microsoft is most vulernable in small to med-size companies for whom client access licenses are like a swarm of angry gnats (not this <a href="http://www.wetware.com/bc/burn/burnimage/nat1.jpg">Gnat</a>, of course). By embracing open source Unix, like FreeBSD and Linux, Novell can get POSIX kernels with threading and forking models and loadable modules and <em>free development</em>. And no licensing fees! What's not to like?</p>

<p>Novell is going down the path to madness by creating a "application developement framework" or a "protocol engine." Novell needs to be lean, smart and focused. They aren't in a position to challenge open standards or Microsoft's standards. If they adopt open standards, their chances for survival are better and in a few years, I can write an article entitled "What the Hell Happened to Microsoft?"</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/851">post</a> and <a href="http://use.perl.org/comments.pl?sid=1234">comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Morning root]]></title>
    <link href="https://www.taskboy.com/2001-10-01-Morning_root.html"/>
    <published>2001-10-01T00:00:00Z</published>
    <updated>2001-10-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-10-01-Morning_root.html</id>
    <content type="html"><![CDATA[<p>Wow. I didn't think it could happen to me. After all, I'm, not that old and I've been excersizing <em>a lot</em>
lately. My prowess is unquestioned and yet, when I was <em>in the moment</em>, it failed!</p>

<p>Of course, I'm talking about morning root. That's when you get up early, log into your Unix console as root and attempt to clean up the disk. Normally, you try to to remove <em>un</em>important files. The problem is my addiction to filename tab completion. This feature is there to make your life easier, but combining that with rm and 
bleary eyes makes for a <em>fatal cocktail of filesystem death!</em> In my case, I was trying to remove an old copy of mysql and instead deleted the <em>current, live</em> copy. Holy fsck, Batman!</p>

<p>In the future, I'll be sure to have a muffin before getting it, that is free diskspace, up.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/844">post</a> and <a href="http://use.perl.org/comments.pl?sid=1235">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[New Ben Folds Album]]></title>
    <link href="https://www.taskboy.com/2001-09-30-New_Ben_Folds_Album.html"/>
    <published>2001-09-30T00:00:00Z</published>
    <updated>2001-09-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-09-30-New_Ben_Folds_Album.html</id>
    <content type="html"><![CDATA[<p>It's <a href="http://www.amazon.com/exec/obidos/ASIN/B00005NZKK">out</a> and it rocks. God bless Ben Folds and his dulcet tones!
That man just gets better with age. Bastard. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/835">post</a> and <a>comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[O'Reilly and Me]]></title>
    <link href="https://www.taskboy.com/2001-09-30-O&apos;Reilly_and_Me.html"/>
    <published>2001-09-30T00:00:00Z</published>
    <updated>2001-09-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-09-30-O&apos;Reilly_and_Me.html</id>
    <content type="html"><![CDATA[
<img src="http://taskboy.com/img/im_going_crazy.jpg" class="title">


<p>September 28th was my last day as a fulltime O'Reilly employee. During my year and half at ORA, I worked in O'Reilly Labs and in IT. Although attached to the Cambridge office, I spent a fair amount of time in the Sebastapol, California office. Although O'Reilly is going through a difficult time right now, I choose to leave to pursue technical writing and sitting on my fluffy butt. In my time at O'Reilly, I got to work with <em>a lot</em> of talented people, many of whom the average O'Reilly customer never hears about.</p>

<p>It's inevitable that a company as visible as O'Reilly gets potshots taken at it. While no company is perfect (and yes, I could tell stories ;-), I submit that O'Reilly's heart is in the right place. Many in the company, not just Tim O'Reilly, want to see the Open Source community prosper. It would be nice to see the community return some of the support that O'Reilly has given it during the next few months. This support needn't just be monetary although that will always be welcome. Ask about becoming a technical reviewer. Your comments can help turn a sow's ear into a serviceable pig's ear purse. Tell O'Reilly what topics aren't being covered satisfactorily. If you liked an O'Reilly title, recommend it to your friend. </p>

<p>In any event, I'm glad I got a chance to work there.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/834">post</a> and <a href="http://use.perl.org/comments.pl?sid=2620">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[New personal website]]></title>
    <link href="https://www.taskboy.com/2001-09-05-New_personal_website.html"/>
    <published>2001-09-05T00:00:00Z</published>
    <updated>2001-09-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-09-05-New_personal_website.html</id>
    <content type="html"><![CDATA[<p><p>Yes, another personal website. Unlike the more famous
<a href="http://aliensaliensaliens.com">Aliens, Aliens, Aliens</a>, I need a place for my professional and private thoughts. Enter <a href="http://taskboy.com">Taskboy.com</a>. Originally, this domain was going to used for a task management project, but that fell through. I'll be designing some kind of content management system for that site (because I always do). I'm looking at Template::Toolkit now. No, Pudge, I don't want to use Slash. ;-)  <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/763">post</a> and <a>comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[P2P Talk]]></title>
    <link href="https://www.taskboy.com/2001-09-05-P2P_Talk.html"/>
    <published>2001-09-05T00:00:00Z</published>
    <updated>2001-09-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-09-05-P2P_Talk.html</id>
    <content type="html"><![CDATA[<p>Tim Allwine and I will be giving a talk, called the <a href="http://conferences.oreillynet.com/cs/p2pweb2001/view/e_sess/1727">Accidental Web Service</a> about XML-RPC at O'Reilly's P2P conference in September. If you're in the area (Washington, DC), please join us. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/762">post</a> and <a>comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[SDExpo Talk today]]></title>
    <link href="https://www.taskboy.com/2001-08-30-SDExpo_Talk_today.html"/>
    <published>2001-08-30T00:00:00Z</published>
    <updated>2001-08-30T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-08-30-SDExpo_Talk_today.html</id>
    <content type="html"><![CDATA[<p>I've been quietâ¦too quiet.</p>

<p>Today, I'm giving a talk on using XML-RPC and Perl (and PHP)
at the Software Developer's Expo in Boston at the Hynes Convention Center at 10:00A. I will admit to being a bit 
nervous; I've never presented at a conference before. Still,
I know this material reasonably well and I will be wearing 
funny underwear. I've put my slides up here</a>.</p>

<p>I'll be giving a similar talk with Tim Allwine at the P2P
Conference in Washington, DC a few weeks from now. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/722">post</a> and <a>comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[About Frank]]></title>
    <link href="https://www.taskboy.com/2001-07-31-About_Frank.html"/>
    <published>2001-07-31T00:00:00Z</published>
    <updated>2001-07-31T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-07-31-About_Frank.html</id>
    <content type="html"><![CDATA[<p>It appears the news about O'Reilly Editor-in-Chief Frank Willison's death is now public. There will be many eulogies
about this wonderful, warm man, but I thought I'd share a few lighter Frank stories. I worked in the same Cambridge office with Frank for a little more than a year, and I bent his ear on many occasions about totally unwork-related issues.</p>

<p>On one occasion, I was complaining about how difficult is to
spell in English (my native tongue). In Spanish, words are spelled as they are pronounced. What the hell were our English grammarians thinking? Frank said "In English, spelling is etymological, not phonetic." After staring blankly at him for a few minutes, he explained English spelling indicates which alien language a word was pinched from. That's why, for instance, "comb", "tomb" and "bomb" 
don't rhyme. (Frank had a giant OED in his office and often 
consulted it before sending email, a habit I should adopt).</p>

<p>Frank's lunch time screeds were legendary. Sometimes, he 
would be denouncing Big Soda's conspiracy to add high fructose sugar to all our beverages. Sometimes, he'd be warning us against the danger of using airplane toilets in 
flight (because you could get sucked out of the plane with your pants around your ankles; not a pretty way to go!). Other times, he'd be talking up a storm about baseball (not
one of my favorite topics, but he often had something amusing to say). </p>

<p>My words are a feeble replacement for him. Do yourself a favor and read a few of his <a href="http://www.oreilly.com/frank/">Frankly Speaking</a> articles. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/546">post</a> and <a href="http://use.perl.org/comments.pl?sid=2619">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Friday's List]]></title>
    <link href="https://www.taskboy.com/2001-07-28-Friday_s_List.html"/>
    <published>2001-07-28T00:00:00Z</published>
    <updated>2001-07-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-07-28-Friday_s_List.html</id>
    <content type="html"><![CDATA[<p>Coolest things at TPC 5.0:

Jam BOF (Bruce, you rock!)
Meeting my XML-RPC co-author, Edd Dumbill
The robot ping pong table
The Internet Quiz Show (xml routers still suck, Jon ;-)
Watching an aircraft carrier leave port (that's a big dinghy!)
Learning about MySQL's gemini tables
The Perl Lightning Talks
CJ Rayhill (my boss) for letting me go
<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/522">post</a> and <a>comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[and so it ends…]]></title>
    <link href="https://www.taskboy.com/2001-07-28-and_so_it_ends.html"/>
    <published>2001-07-28T00:00:00Z</published>
    <updated>2001-07-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-07-28-and_so_it_ends.html</id>
    <content type="html"><![CDATA[<p>Another TPC down, more brain cells pack with Perly goodness. The Perl lightning talks were unusually good this year. From Gnat's naming some of the unsing hero's of Perl, to the Perl Tk app that helps a handicapped woman speak to the Manager turned accidental Perl programmer to Damian's call for net civility, Gilbert and Sullivan style: all the talks were a delight to hear. I have to say, even with all the writing and work I've done with XML-RPC, I feel like I've got a very long way to go. Maybe in this next year, I can find away to give back more substantially to the community. I'm going to make a serious effort to follow along with the Perl 6 internals. Dan is a great guy and also a native Bostonian. He and I had a one on one conversation about some of the design goals of the Perl VM. I haven't done programming like this in years. I've been writing such high level code for so long, it would be very healthy to dive down into the low-level stuff again. I can't understand where Torkington found the energy/time to father another child. I don't know how Damian, in a confused, sleep-deprived stupor, can STILL create innovative and fun Perl modules. I often wonder if I've become too focused on Software Engineering and lost the fun of coding. 
I sat in on Pudge's slash talk. That's the sort of coding I wish I was doing: futzing with mod_perl and Apache to create a tighly integrated web application platform. Maybe someday. I still need to talk to Ken MacLeod about Frontier::RPC2. (note to self: try email). Maybe the modules of Randy Ray, Paul Kulchenko and Ken can be rolled into one. Perl needs just one solid XML-RPC lib. Seems simple enough to do. 
I'm not going to say much about Mundie's talk, accept to say that it was squarely directed at the Press, not hackers. Tiemann's speech was aimed at the home crowd. You'd think the crowd, all experienced Usenet readers, would spot a troll a mile away. This is unso. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/521">post</a> and <a>comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Hey! Look at me!]]></title>
    <link href="https://www.taskboy.com/2001-07-27-Hey__Look_at_me_.html"/>
    <published>2001-07-27T00:00:00Z</published>
    <updated>2001-07-27T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-07-27-Hey__Look_at_me_.html</id>
    <content type="html"><![CDATA[<p>Here</a> is a picture of me at the O'Reilly book signing. I'm the one wearing a hat and blue shirt standing immediately to the right of Tim O'Reilly. That's O'Reilly's Open Source Executive Editor Laurie Petrycki to my right.   It's good to see that O'Reilly lets kids who ride the short bus write books for them. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/510">post</a> and <a href="http://use.perl.org/comments.pl?sid=3564">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Deadlines and stuff]]></title>
    <link href="https://www.taskboy.com/2001-07-25-Deadlines_and_stuff.html"/>
    <published>2001-07-25T00:00:00Z</published>
    <updated>2001-07-25T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-07-25-Deadlines_and_stuff.html</id>
    <content type="html"><![CDATA[<p>OScon is heap's of fun, but I've got to get this silly paper
done. I have finished the meerkat CLI client, but my red hat machine keeps crashing (actually, X, not the kernel). Jon Orwant mentioned our little battle over a CGI voting script. At the time, I couldn't figure out how he was spamming me; now I realized he just became me on the system and moved a modified program over the original. I think I might have tried RCSing the file and taken my write privs away from the file, but really, how can you be protected from yourself? Oddly enough, this is the theme of <em>Fight Club</em>, which I just finished reading. </p>

<p>My life is a Carl Jung thesis. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/502">post</a> and <a>comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[First day of OScon]]></title>
    <link href="https://www.taskboy.com/2001-07-23-First_day_of_OScon.html"/>
    <published>2001-07-23T00:00:00Z</published>
    <updated>2001-07-23T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-07-23-First_day_of_OScon.html</id>
    <content type="html"><![CDATA[<p>Not much to report. Beautiful day, stuck inside learning. Boo! I'm writing this from the O'Reilly Bookstore (I'm closest to the terminal room). </p>

<p>Went to NuSphere's MySQL Transactions class. Pretty good stuff. I haven't done any transactional SQL so this was a good primer. </p>

<p>I didn't sleep enough. Unsure I'll be sleeping much tonight. </p>

<p>The XML-RPC seems to be selling well. This makes me glad. </p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/487">post</a> and <a>comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Landed in San Diego]]></title>
    <link href="https://www.taskboy.com/2001-07-22-Landed_in_San_Diego.html"/>
    <published>2001-07-22T00:00:00Z</published>
    <updated>2001-07-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-07-22-Landed_in_San_Diego.html</id>
    <content type="html"><![CDATA[<p>For those playing the home game, I've arrived safely in San Diego. Saw quite a few conventioneers here, including irrepressible Damian Conway and his charming wife Linda. Am now in the process of writing my paper for the SDexpo, which is due Thursday. Found out that I shouldn't set my gnome-terminal's scrollback to 1000 lines - X crashes. </p>

<p>I'm connected through CAIS's "high speed internet access" 
router in the hotel (I'm in the Lanai wing). Although I'm using an unsupported OS (Linux), I managed to activate the account. The directions for the route say "start your web browser". They forgot the URL, but I deduced it was http://10.10.2.1. Any other OScon conventioneers should point their browsers there. </p>

<p>BTW, that machine seems to be some kind of Windows box. 
It appears to have 300+ open ports including PC Anyway and VNC. Yikes! </p>

<p>Alright, I've wasted enough time time yakkin'. Gotta work. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/478">post</a> and <a>comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[IOU: One Friday's List]]></title>
    <link href="https://www.taskboy.com/2001-07-21-IOU__One_Friday&apos;s_List.html"/>
    <published>2001-07-21T00:00:00Z</published>
    <updated>2001-07-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-07-21-IOU__One_Friday&apos;s_List.html</id>
    <content type="html"><![CDATA[<p>I was packing, fixing up the house for my trip today. 
Have net, will blog.</p>

<p>UPDATEI owe me one 'e'.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/473">post</a> and <a>comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Preparing for TPC]]></title>
    <link href="https://www.taskboy.com/2001-07-19-Preparing_for_TPC.html"/>
    <published>2001-07-19T00:00:00Z</published>
    <updated>2001-07-19T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-07-19-Preparing_for_TPC.html</id>
    <content type="html"><![CDATA[<p>I've got to learn to say "no" to projects. For so long, I wanted to be involved in writing, tech reviewing and coding, 
but I didn't know where to start. Now I do and I'm drinking from the firehose. I've got a paper due next week while I'm at TPC. It'll be fun to figure out how I'm going to get that
done. I'm sure I'll work something out. I thinkâ¦<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/457">post</a> and <a>comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Goin' back to Cali]]></title>
    <link href="https://www.taskboy.com/2001-07-18-Goin__back_to_Cali.html"/>
    <published>2001-07-18T00:00:00Z</published>
    <updated>2001-07-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-07-18-Goin__back_to_Cali.html</id>
    <content type="html"><![CDATA[<p>Was in California for June; now going to San Diego for TPC. I'll be working at O'Reilly's bookstore thing Sunday and Monday and then I'll make with the conventioneering already. I'm very swamped between tech reviews, preparing for my <a href="http://cmp.bluedot.com/re/attendee/sdb_01/openPages/eventScheduler.esp?process=true&amp;track=Standards+and+Vocabulary">SDExpo lecture</a> (and paper), preparing for talk with Tim Allwine at September's <a href="http://conferences.oreillynet.com/cs/p2pweb2001/view/e_sess/1727">P2PCon AND getting ready to start another book. Pudge thinks he's working too much, I think we <em>all</em>
are. Especially <a href="http://yetanother.org/conway">Damian Conway</a>. I may even get a chance to sign my <a href="http://www.oreilly.com/catalog/progxmlrpc">book</a> for people. </p>

<p>Heard about a t-shirt while I was in Cali that said
"The thing about me is it's all about me." Must remember to get that shirt. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/441">post</a> and <a>comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Friday's List]]></title>
    <link href="https://www.taskboy.com/2001-07-14-Friday&apos;s_List.html"/>
    <published>2001-07-14T00:00:00Z</published>
    <updated>2001-07-14T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-07-14-Friday&apos;s_List.html</id>
    <content type="html"><![CDATA[<p>Today's list is succinct.</p>

<p>Things I do instead of what I should be doing</p>

<p>
  Clipping toe nails (mine)
  Playing Diablo II
  Glaring menacingly at the cat
  Playing guitar and singing in vox alto
  Practicing my one handed typing (you never know when
tragedy will strike)
  Alphabetizing Menudo records
  Reviewing my old comments on SlashDot
  Making a Friday's List
<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/420">post</a> and <a>comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Summer LAN cleanup]]></title>
    <link href="https://www.taskboy.com/2001-07-05-Summer_LAN_cleanup.html"/>
    <published>2001-07-05T00:00:00Z</published>
    <updated>2001-07-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-07-05-Summer_LAN_cleanup.html</id>
    <content type="html"><![CDATA[<p>I'm still recovering from a month-long business trip, but I have managed to reconfigure my home LAN. For those that like this sort of thing, here's the 411. </p>

<p>For the last five years, I've relied on a 386 SX Slackware Linux box to be my IP Masquerading firewall. It did the job well and survived power outages and even a fried power unit. </p>

<p>But all good things must come to an end and the days of 386 machines has long passed.</p>

<p>I bought a copy of Red Hat 7.2 because I wanted to upgraded 
some of my other machines. I don't always buy Red Hat disks, but I thought it might be a good time to throw Linux companies some bucks. I wouldn't want Red Hat to give up software to focus on selling hardware. ;-)</p>

<p>Originally, I was going to build a new firewall with either 
a celeron 400 box or a cyrix 166 and RH 7.2. I then remembered that Linksys (and others) where making IP sharing 
hubs taylored for DSL home use. I was a bit skeptical that a $130 appliance would be as flexible as building a firewall 
myself, but I gave it a try anyway. </p>

<p>I'm glad I did. </p>

<p>The Linksys 4 port Etherfast router</a> is not only easy to setup (I had the basic connection sharing done in less than 2 minutes), but it has a few <em>really</em> cool features that I didn't expect. The first of those is port forwarding. This is great for hosting a web site (like <a href="http://www.daisypark.org">Daisypark.org</a>). It also can do DHCP for your network (although this is disabled if port forwarding is enabled). It also can put on of your private LAN machines is a DMZ so that all the ports on that machine are accessible to the world through the public IP. 
The route logs connections and these logs can be directed to
an internet machine (through syslog, I think). </p>

<p>By using this one appliance, I was able to decommission both the 386 and a 12 port hub that the old firewall plugged 
into. I reformate the celeron 400 to be a simple RH 7.2 workstation for my bedroom (which is the only air conditioned room in my place!). </p>

<p>Now, all I need is to replace the 14" monitor with something larger.   <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/375">post</a> and <a>comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Friday's List]]></title>
    <link href="https://www.taskboy.com/2001-06-28-Friday&apos;s_List.html"/>
    <published>2001-06-28T00:00:00Z</published>
    <updated>2001-06-28T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-06-28-Friday&apos;s_List.html</id>
    <content type="html"><![CDATA[<p>Since I'll be flying across the US tomorrow, I'd thought I'd do my Friday List now.</p>

<p>What Microsoft will do now that Judge Jackson's 
ruling was over turned</p>

<p>
  Buy Oregon. (They have to plan future expansion)
  Focus on their new product, MS Justice System, 
      already in beta!
  Rough up them bitch OEMs that squeeled to the Feds
  Invite every Microsoft employee to dance naked 
      in Bill Gates' Pool o' Money
  Drop that stupid XBox idea
  Touch up the Turtle Wax finish on Steve Ballmer's head
  Send to Judge Jackson an "I broke up Microsoft 
    and all I got was this lousy t-shirt" shirt
  Spam every poster on Slashdot with the message
    "Microsoft 0wnz j00!"
  Spend a moment in awed reflection at the amazing
    system of the checks and balances of our US
         government that was deftly laid out by our
         constitutional
         forefathers more than two centuries ago and 
    then send out the fat checks 
    to the Appeals Court Judges
<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/346">post</a> and <a>comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Programming Web Services with XML-RPC published!]]></title>
    <link href="https://www.taskboy.com/2001-06-22-_Programming_Web_Services_with_XML-RPC__published_.html"/>
    <published>2001-06-22T00:00:00Z</published>
    <updated>2001-06-22T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-06-22-_Programming_Web_Services_with_XML-RPC__published_.html</id>
    <content type="html"><![CDATA[<p>After much last minute futzing, my <a href="http://www.oreilly.com/catalog/progxmlrpc/">first book</a> is finally published. I hold in my hot little hands
a copy fresh off the presses. </p>

<p>This is way cool.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/330">post</a> and <a>comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Friday's List]]></title>
    <link href="https://www.taskboy.com/2001-06-21-Friday&apos;s_List.html"/>
    <published>2001-06-21T00:00:00Z</published>
    <updated>2001-06-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-06-21-Friday&apos;s_List.html</id>
    <content type="html"><![CDATA[<p>It's Thursday and I haven't been very responsible about posting these regularly, but HEY! Here's this week's:</p>

<p>Friday's List</p>

<p>This week's topic: Things I missed at YAPC 19101</p>

<p>
  Damian's Talks
  Pudge's Guitar
  Gnat's Naughty Language
  Giving my XML-RPC pitch
  Lenzo's Long Hair
  Canada's Morally Unambiguous Air 
</p>

<p>There is still a chance I may be able to get TPC, 
but that's a topic for another Friday. :-)</p>

<p>Oh, <a href="http://web.oreilly.com/news/xmlrpc_0601.html">here's an interview</a> that Bruce Stewart did with 
Simon St. Laurent, Edd Dumbill and me about our upcoming 
XML-RPC book.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/325">post</a> and <a>comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[XML-RPC times three]]></title>
    <link href="https://www.taskboy.com/2001-06-21-XML-RPC_times_three.html"/>
    <published>2001-06-21T00:00:00Z</published>
    <updated>2001-06-21T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-06-21-XML-RPC_times_three.html</id>
    <content type="html"><![CDATA[
<img src="/img/camel.gif" class="insert">


<p>Perl now has three implementions of XML::RPC, Frontier::RPC2, SOAP::Lite and RPC::XML. Each is interesting and somewhat broken in its own way.</p>

<p>Frontier::RPC2 0.06 has issues with Boolean, iso8601 and Base64 because these classes have a bug in their constructors. </p>

<p>Given:<br></p>

<p class="code">
sub new {
    my $type = shift; 
    my $value = shift;

    return bless \$value, $type;
}
</p>

<p>Instead of checking to see if $type is a reference, this
code blesses. If a reference is passed in, the blessed class
is sometime like "Frontier::RPC2::Base64=SCALAR(0x65432)". 
This breaks code later than encodes/decodes these values into XML. Perltoot has the solution to this problem</p>

<p>RPC::XML is an interesting module in that it brings type 
checking to Perl, in a sense. When creating an XML-RPC server, each remote procedure has to the arguments it accepts along with its return type. This is call a signature. Although type checking is unPerlish, it is very 
helpful when dealing with other languages that are subPerl. 
More docs on signatures would be great. </p>

<p>Finally, SOAP::Lite brings its own bad self to the XML-RPC party. Although in my testing it works with all the 
XML-RPC datatypes, the programming interface is similar to 
SOAP::Lite (not surprisingly). It is a style which takes a 
bit of getting usef to. </p>

<p>The good news is that, at least from a client level, all these modules seemed to be compatible. That is, a Frontier::Client can talk to an XMLRPC::Lite server. </p>

<p>More to come.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/324">post</a> and <a>comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Making Search Engines Profitable]]></title>
    <link href="https://www.taskboy.com/2001-06-07-Making_Search_Engines_Profitable.html"/>
    <published>2001-06-07T00:00:00Z</published>
    <updated>2001-06-07T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-06-07-Making_Search_Engines_Profitable.html</id>
    <content type="html"><![CDATA[<p>The Internet Gold Rush of the late twentith century created
an environment of experiemental business models, some of which
were pretty wacky. The flood of venture capital often allowed 
the underlying weaknesses of those business models to be hidden 
from the management of those dubious enterprises. As CIO of 
O'Reilly C.J. Rayhill says, when the swamp is full, the tree 
stumps are covered. In today's VC-poor atmosphere, the water
is low and the Internet swamp is littered with stumps. </p>

<p>Yahoo Seriously Troubled</p>

<p>Of all the Internet businesses to emerge from those salad VC days, 
perhaps the most useful one for the entire Internet community 
is the search engine. Where would the average Internet surfer 
be without the humble Yahoo</a>, 
<a href="http://www.google.com">Google</a> or <a href="http://www.lycos.com">Lycos</a>?
Without search engines, the Internet revolution would have 
been merely a footnote in Computer Science courses. </p>

<p>Almost all of the large search engines allowed anyone to add his 
own link to their database. Of course, each search engine had 
software robots called spiders to extract the hyperlinks from a 
given web page and follow them. Thus, for each human submitted page
an exponential number of new pages might be discovered.</p>

<p>Not only could one submit links for free, but users could also
search the link database for free. Search engines usually depended
on banner ads for revenue. Although this seemed to work for a time, 
banner ads are clearly not going to be the source for unbriddled 
revenue growth. How can the large search engines survive? </p>

<p>What Businesses Need</p>

<p>When I worked for a small Needham, Massachusetts company called 
<a href="http://www.careersearch.net">CareerSearch</a>, I spent most of my time mapping databases 
from book publishers of industry contact information into CareerSearch's 
own database system. CareerSearch is a subscription-based web application 
that targets the very small market of out-placement firms and university 
career centers. CareerSearch's charter is to service the needs of other 
businesses. They do not collect their own data, but they do present a robust 
interface into an amalgamated database of over a million companies. Most 
importantly, they are a profitable company and they have never used banner 
ads. Instead, customers need to buy rather expensive subscriptions to access 
the CareerSearch application. CareerSearch exists because its data suppliers, 
those book publishers of contact information, couldn't or wouldn't make 
their data available in a format that other businesses wanted. </p>

<p>What does this have to do with Internet search engines?</p>

<p>The problem with the business model of search engines is that it 
depends on casual viewers for revenue. This is a huge mistake. Search engines
need the users to supply URLs for their database. In fact, search engines
should consider <em>paying</em> users to add verifiably correct links to 
their systems, because here's the secret that these companies don't seem
to understand: the value of a search engine is its link database.</p>

<p>Search engines seemed to have conceived of only one use and only one kind of 
customer for their data. The question search engine companies should be 
asking is, how can we sell our data to businesses? There is a wealth of 
information locked away in the link databases of Yahoo and Google. 
Remember, each URL in their system is linked to a series of keywords 
(at a minimium). There are so many uses for this data that companies have 
to build web spiders of their own just to get at the information. Clearly, 
there is a need for a richer interface into these systems. </p>

<p>Making Link Databases Available</p>

<p>Once a search engine decides to service business clients, the next question
what sort of interface is most apropriate? For example, should Google 
build a subscription-only web site with a radically different layout that 
allows for more robust searching options? O'Reilly Senior Software Engineer 
Tim Allwine and I think this is the wrong way to go. Businesses know what they 
want and they are likely to have programmers who can build applications 
that manipulate the link data in a relevant way for them. Search engines 
need to build subscription-based Web Service interfaces that provide rich 
querying capabilities and easy data retrieval. Remember, Web Services (like 
SOAP and XML-RPC) are designed for programs, not for people. Each business 
client will need to build an application that makes the search engine Web 
Service fit its particular business need. </p>

<p>For example, XYZ Corp wants to measure how effective its press releases are. 
One way to do this is to see how often the content from that document 
gets quoted in online media. XYZ Corp would love an interface that allows
them to type in a unique sentence from the press release and get the number 
of sites that use that phrase. XYZ Corp can expand on this simple idea by 
creating an internal tool that automatically looked for press releases and 
charted the citations over time. If search engines provided Web Services 
interfaces, this type of application would be very easy to create. By 
supporting IT infrastructure, search engines would have a business model 
that makes sense.</p>

<p>Web Services can be very easy to build. The kind that search engines would
build are particularly easy because they would be read-only 
(i.e. clients aren't modifying the link database) and 
non-transactional. By helping businesses help themselves with Web Services 
interfaces, large search engines get a license to print money, which is 
exactly what places Yahoo, Lycos and Google are looking for most right now. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/263">post</a> and <a href="http://use.perl.org/comments.pl?sid=2715">comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Resting; Relaxing]]></title>
    <link href="https://www.taskboy.com/2001-05-18-Resting;_Relaxing.html"/>
    <published>2001-05-18T00:00:00Z</published>
    <updated>2001-05-18T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-05-18-Resting;_Relaxing.html</id>
    <content type="html"><![CDATA[<p>I have nothing Perl related to report, other than a cool hack I did to a web app to cache pages. I'll detail that later. Mostly, I'm sending out invoices, collecting checks and watching B5. Life is good. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/179">post</a> and <a>comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[New home for Daiyspark]]></title>
    <link href="https://www.taskboy.com/2001-05-06-New_home_for_Daiyspark.html"/>
    <published>2001-05-06T00:00:00Z</published>
    <updated>2001-05-06T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-05-06-New_home_for_Daiyspark.html</id>
    <content type="html"><![CDATA[<p>I'll be moving <a href="http://www.daisypark.org">Daisypark</a> from my DSL 386 box to a beefy Solaris x86 co-lo. I'll probably whip up a Mason portalish/vanity site there. My Aunt's Goodies</a>
will probably be folded into the main page. </p>

<p>mmm. I probably need to get ride of some of theses durn 
machines. </p>

<p>Oh! Thanks to Jason McIntosh for giving one of my seven DEC dumb terminals a home.<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/144">post</a> and <a>comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Grasping at Strawmen]]></title>
    <link href="https://www.taskboy.com/2001-05-05-Grasping_at_Strawmen.html"/>
    <published>2001-05-05T00:00:00Z</published>
    <updated>2001-05-05T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-05-05-Grasping_at_Strawmen.html</id>
    <content type="html"><![CDATA[<p>It seems that <a href="http://www.slashdot.org">everybody</a> and 
<a href="http://web.siliconvalley.com/content/sv/2001/05/03/opinion/dgillmor/weblog/torvalds.htm">his mother</a> is bent out of shape 
about the comments</a> 
of Microsoft Senior VP, Craig Mundie. He made two assertions 
that particularly raised the heckles of many in the Open Source community. 
The first was that the Internet start-up craze created many implausible 
business models (ie business were giving product away for market share). 
The second was that Microsoft's proprietary Intellectual Property (IP) 
model is the only sound way to run a business. He said:</p>

<p>
Whether copyrights,
patents or trade secrets, it was this foundation [IP rights] in
law that made it possible for companies to raise
capital, take risks, focus on the long term, and
create sustainable business models.
</p>

<p>Now, much of this essay is just inflammatory drivel, but the question 
is why did Microsoft bother? Was this a carefully planned marketing plot 
to get slashdot eyeballs? Does Microsoft really expect Mundie's essay 
to convince anyone that Microsoft is the last bastion of 
God's Own Capitalism? I doubt it. </p>

<p>To understand the motivations behind the publication of Mundie's 
statement, take a look at <a href="http://news.cnet.com/news/0-1003-200-5828509.html?tag=mn_hd">this CNET article</a>. Seemingly
unrelated, it talks about Microsoft's promise to release Windows XP, 
the .NET OS, in October. Of particular note is the concern retailers 
express that WinXP will cannibalize the sales of Microsoft's other new
platform, the Xbox. If Microsoft had a similar OS/gaming platform release
even two years ago, no one would have suggested that there would be be
a problem. After all, Windows is for Real Computing (tm) like 
doing spreadsheets, writing memos and connecting to the shared network
hard drive. Games are for the little kiddie-winkles, right?</p>

<p>Take a look at what the Xbox
 <a href="http://www.xbox.com/hardware/console/">is</a>. Surprise! 
It's just a stripped down PC. In fact, it does almost everything 
a PC can. It has an Intel processor, a hard drive and an ethernet card. 
If the PC on your desk is a few years old, chances are the Xbox is more 
powerful. There's no reason the Xbox couldn't
run Microsoft Office, Internet Explorer or Linux. That's right, 
Microsoft might just have handed Linux is best chance at desktop 
penetration to date. </p>

<p>The sales of Win2K
and WinMe (harder) have been sluggish. Although new PCs come with one of these
new Microsoft OS's installed, people just aren't buying PCs like they 
used to and businesses are loathed to spend dwindling IT budgets 
on another big OS rollout (many of us remember the win95 rollout. Oy!)
Microsoft seems to be betting the farm on Windows XP, but why will 
people buy it? Sure, new PC owners won't have a choice, but maybe 
they'll buy the cheap Xbox and get all the functionality they need. Where
will that leave Windows, the jewel of the Microsoft's product line?
In a <a href="http://www.mos.org/tcm/tcm.html">museum</a>. </p>

<p>But how does this relate to Mundie's comments? Linux is already 
"eating Microsoft's lunch" in the server market. Microsoft needs 
consumers to believe that Open Source software is anything but 
the unbelievable value that it is. Remember, Microsoft only rents 
you software; Open Source software is yours to keep. As Microsoft 
uses web services to finely control application usage to only 
licensed users, Open Source software's consumer value will begin to 
become wildly attractive to IT departments strapped for cash. 
The Big Lie Microsoft needs you to believe is that every software 
upgrade they sell will make your life better. In fact, the only ones 
who benefit are Microsoft shareholders. And so, it's not so surprising 
that a weakened and uncertain Microsoft is taking pot shots
Open Source software. It's all just another sign of their growing
desperation</a>. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/138">post</a> and <a>comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Friday's List]]></title>
    <link href="https://www.taskboy.com/2001-05-04-Friday&apos;s_List.html"/>
    <published>2001-05-04T00:00:00Z</published>
    <updated>2001-05-04T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-05-04-Friday&apos;s_List.html</id>
    <content type="html"><![CDATA[<p>Brain wave!</p>

<p>Every Friday, right here on the old Use.Perl.Org,
I'm going to post a list of things that stick in my craw, 
rawk my world, or generally agitate me. Sometimes, these lists will be about technology; sometimes about the little
accidents that make up my life. Without further foreplay, here's today's Friday's List</p>

<p>
Best new features of Red Hat 7.1
<a href="http://www.freeciv.org/">FreeCiv</a> comes installed
XFree86 4.0.3
Gtv (the smoothest playback of mpgs I've seen on X)
Installation asked "what level of firewalling do you want (full, medium, none)". This cracked me up
<a href="http://www.balsa.net/">Balsa</a> comes installed
Of course, the 2.4.2 kernel
Newly inserted CDs will cause a filemanager window 
to pop open
Comes with <a href="http://www.openssh.org/">openssh</a>
Comes with pam_ldap and the <code>setup</code> program is actually aware of this
Comes with <a href="http://www.xsane.org/index.html">xsane
</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/132">post</a> and <a>comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[A DIMM view]]></title>
    <link href="https://www.taskboy.com/2001-05-02-A_DIMM_view.html"/>
    <published>2001-05-02T00:00:00Z</published>
    <updated>2001-05-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-05-02-A_DIMM_view.html</id>
    <content type="html"><![CDATA[<p>I am not an electrical engineer; I'm a software guy. I do pretend to be a hardware guy, but I can barely hold my <a href="http://www.triplett.com/2030-b.htm">multimeter</a> correctly. Even so, I long for the days when I could buy reliable memory. I just two 128M DIMMs, shrink wrapped from a large retail outlet and one of them was hosed. On careful inspection, they had different chipsets but were packaged under the same name. Why can't DIMMs work together? What makes DIMMs so votile? I don't know, but it's the twenty first century and I want reliable memory chips, dammit.  <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/129">post</a> and <a>comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[New PeeCee]]></title>
    <link href="https://www.taskboy.com/2001-05-02-New_PeeCee.html"/>
    <published>2001-05-02T00:00:00Z</published>
    <updated>2001-05-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-05-02-New_PeeCee.html</id>
    <content type="html"><![CDATA[<p>I finally bought a new machine (powerspec, 1Ghz Althon, 256M RAM, 10G/30G hard drives). I need to watch TV. See, I don't have one of your primative Earth television sets. By using a TV tuner card (ATI All-in-Wonder), I can have "Love Boat" playing in a little box while I do my bills with Quicken. I have a VCR and cable box attachted to it. Of course, WinMe (harder) is barfing on the new hardware because WinMe is a little bitch.</p>

<p>Soon, my long national nightmare of winders will be overâ¦I hope. <p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/128">post</a> and <a>comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Till the fat lady sings]]></title>
    <link href="https://www.taskboy.com/2001-05-02-Till_the_fat_lady_sings.html"/>
    <published>2001-05-02T00:00:00Z</published>
    <updated>2001-05-02T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-05-02-Till_the_fat_lady_sings.html</id>
    <content type="html"><![CDATA[<p>Just when I thought the <a href="http://www.amazon.com/exec/obidos/ASIN/0596001193/o/qid=988805227/sr=8-1/ref=aps_sr_b_1_1/104-0706818-2678348">XML-RPC</a> was going into production, more edits were called for. Like some zombie from a drive-in horror flick, this book will not lie down.
In the end, it will be a better book; I just hope it will not be published posthumously. </p>

<p>In other news, I have been contracted by Wrox to write an op/ed piece on the web services and Open Source programmers. That should be a hoot. </p>

<p>My winders box is coughing up blood. I'm going to Microcenter today to buy a 1Ghz Athlon to replace it. I've been feeling slightly twinges of pain in my wrists, so I might into some wrist braces.</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/125">post</a> and <a>comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Here doc? There doc!]]></title>
    <link href="https://www.taskboy.com/2001-05-01-Here_doc__There_doc_.html"/>
    <published>2001-05-01T00:00:00Z</published>
    <updated>2001-05-01T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-05-01-Here_doc__There_doc_.html</id>
    <content type="html"><![CDATA[<p>I'm working on a piece for use.perl.org that was originally pegged for The Perl Journal. It's about here documents. I have found a lot of newbies don't grok this 
simple and powerful tool. As a bonus, I get to pull out a lot of goofy quotes in the article; so, it's got that going 
for it.</p>

<p>On the writing front, I believe that I am done the last 
of the big edits to the upcoming <a href="http://www.amazon.com/exec/obidos/ASIN/0596001193/o/qid=988683149/sr=8-1/ref=aps_sr_b_1_1/104-0706818-2678348">Programming Web Applications with XML-RPC. The book either is in production today, or will be tomorrow. It's been an 
amazing experience contributing to an O'Reilly book. There will be a follow-up XML-RPC for which I'm the sole author. 
I'll be working without a net (or a .NET, protocol-wise. [I slay me!]).  </p>

<p>Also on the writing front, IBM has picked up a two part article on SOAP. It's got SOAP::Lite, HTML::TreeBuilder and 
CGI. What's not to like? </p>

<p>Here are some memes that are on my black list:</p>

<p>
  You are the weakest link. Goodbye!
  All your base â¦
  Generation D
  Digerati
  "Voted off the island"
  memes
</p>

<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/119">post</a> and <a>comments</a>.]</p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Falling Prices; Hidden Value]]></title>
    <link href="https://www.taskboy.com/2001-04-29-Falling_Prices;_Hidden_Value.html"/>
    <published>2001-04-29T00:00:00Z</published>
    <updated>2001-04-29T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-04-29-Falling_Prices;_Hidden_Value.html</id>
    <content type="html"><![CDATA[<p>I'm depressed. I have to buy a new Windows box. Although I only use it for games and to watch TV (thanks to my ATI All-in-Wonder card), I find that that's enough. There were days when I would spend <em>months</em> combing through Computer Shopper looking for the best deals on the perfect machine, but those days are long gone. </p>

<p>Remember when computers were cool? Pawing through the latest trade mag searching for cool new gizmos to slap onto your already overburdened PC; deciding which sound card was right for you; drooling over 56K modems. Good times
good times.</p>

<p>There was something exciting about each new release of an 
Intel chip. When I read advertisements for 486DX 100Mhz machines with 16Mb of RAM, I couldn't imagine how
fast that was. It was like someone telling me I could go from Boston to Toyko in an hour. </p>

<p>The applications were more exciting too. Games like Doom and Myst really brought PCs into the world of multimedia. After all, a fancy 512K video card and 16 bit Sound Blaster don't do much for WordPerfect. PCs were emerging from the world of dry Lotus spreadsheets into the world of consumers.  </p>

<p>Somewhere in the near past, PCs got stale. Sure Intel releases faster chips sooner than ever before and I guess DVD players are nice, but these things are prosiac and expected. When the original Pentium chip came out, Intel made it seem like the monolith from 2001; mysterious, powerful and totally necessary for life as we know it. Microsoft promoted Windows 95 more like a rock band than software. But, what's going on now? Dubious performance numbers for the P4 and endless service patches are the hallmarks of today's PC industry. The romance is very, very dead. </p>

<p>What's interesting these days is that Intel is dramatically slashing the prices on its Pentium IV chips. More than ever, the price of complete PC units are approaching zero. In many ways, this is a great thing. More people than ever will have access to computers, which are good at not just computation, but communication and research. However, the commodification and ubiquity of the PC comes at a price. </p>

<p>I was watching a show about the automobiles of the 1930's featuring <a href="http://www.duesenbergmotors.com">Deusenbergs</a>. Although I don't own a car and don't particularly care for driving, I was fascinated by these machines. They are the quintessential marriage of style and performance. Not only were these cars the most powerful of their day, but they were all unique and breathtaking gorgeous. These cars are a monument to craftsmanship and near flawless execution. </p>

<p>Despite any rose-coloring of the nineties on my part, the 
PC makers never came close to a Deusenberg (nor has Apple, I-Mac not withstanding). I suppose I yearn for a golden age in which PCs were as much an expression of style and craftsmanship as a tool for computing. </p>

<p>So as both the glamour and price of PCs drop to zero, what is left for the PC enthusiast? </p>

<p>Mmm. Maybe I will just get an I-Mac. :-&gt;</code><p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/118">post</a> and <a>comments</a>.]</p></p>
]]></content>
  </entry>

  <entry>
    <title type="html"><![CDATA[Wow!]]></title>
    <link href="https://www.taskboy.com/2001-04-11-Wow_.html"/>
    <published>2001-04-11T00:00:00Z</published>
    <updated>2001-04-11T00:00:00Z</updated>
    <id>https://www.taskboy.com/2001-04-11-Wow_.html</id>
    <content type="html"><![CDATA[<p>Slash rulz<p>[Original use.perl.org <a href="http://use.perl.org/~jjohn/journal/22">post</a> and <a href="http://use.perl.org/comments.pl?sid=2805">comments</a>.]</p></p>
]]></content>
  </entry>


</feed>
