<?xml version="1.0" encoding="utf-8"?>
<!-- If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/ -->
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:lj="http://www.livejournal.com">
  <id>urn:lj:livejournal.com:atom1:khslinky</id>
  <title>khslinky</title>
  <subtitle>khslinky</subtitle>
  <author>
    <name>khslinky</name>
  </author>
  <link rel="alternate" type="text/html" href="http://khslinky.livejournal.com/"/>
  <link rel="self" type="text/xml" href="http://khslinky.livejournal.com/data/atom"/>
  <updated>2009-01-28T03:47:52Z</updated>
  <lj:journal userid="2628877" username="khslinky" type="personal"/>
  <link rel="service.feed" type="application/x.atom+xml" href="http://khslinky.livejournal.com/data/atom" title="khslinky"/>
  <link rel="hub" href="http://pubsubhubbub.appspot.com/"/>
  <entry>
    <id>urn:lj:livejournal.com:atom1:khslinky:18524</id>
    <link rel="alternate" type="text/html" href="http://khslinky.livejournal.com/18524.html"/>
    <link rel="self" type="text/xml" href="http://khslinky.livejournal.com/data/atom/?itemid=18524"/>
    <title>Check Please?</title>
    <published>2009-01-28T03:47:52Z</published>
    <updated>2009-01-28T03:47:52Z</updated>
    <content type="html">Tonight, Elizabeth loudly said "Check" to me in the sense of checking something off.  Along the lines of "Don't believe in God--Check!"  As soon as she said it, Zoë looked up from her coloring and said "peas".&lt;br /&gt;&lt;br /&gt;"What?" we asked.&lt;br /&gt;&lt;br /&gt;"Please," she repeated.  "Shrek, please."&lt;br /&gt;&lt;br /&gt;As far as we know, Shrek is the only thing for which she will voluntarily say please.  We explained that Mommy had said "check" not "Shrek," and that we weren't planning to watch Shrek tonight.  She took it fairly well, but I was a little torn.  I mean, we don't want her sitting in front of the TV all the time, and I certainly don't want to sit in front of Shrek any more than I have to (why couldn't she prefer Nemo--it's clearly the better film), but we do want to encourage her to say "please" when she wants things instead of demanding "Shrek!  More Shrek!"</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:khslinky:18223</id>
    <link rel="alternate" type="text/html" href="http://khslinky.livejournal.com/18223.html"/>
    <link rel="self" type="text/xml" href="http://khslinky.livejournal.com/data/atom/?itemid=18223"/>
    <title>Biking</title>
    <published>2008-06-28T18:13:58Z</published>
    <updated>2008-06-28T18:13:58Z</updated>
    <content type="html">&lt;p&gt;
I road my bike to work yesterday.  It was the first time I'd ridden a
bike in about 15 years, but it went okay.  It took about 40 minutes to
go a little over seven miles.  I'm pretty sure that I can get that
down under a half hour once I'm more used to biking.  (I'm still
getting the hang of gears&amp;mdash;every bike I'd ever been on before had
exactly two gears: sitting and standing.)
&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:khslinky:18072</id>
    <link rel="alternate" type="text/html" href="http://khslinky.livejournal.com/18072.html"/>
    <link rel="self" type="text/xml" href="http://khslinky.livejournal.com/data/atom/?itemid=18072"/>
    <title>Resolutions</title>
    <published>2008-01-02T04:29:05Z</published>
    <updated>2008-01-02T04:29:05Z</updated>
    <content type="html">&lt;p&gt;
I don't normally go in for new year's resolutions&amp;mdash;I figure if
you want to do something, why wait for a new calendar year.  On the
other hand, I have a number of non-urgent things that I've been
thinking I need to do eventually, and I really need to just pick a day
to start doing them (lest &amp;ldquo;eventually&amp;rdquo; never come).  Today
seems like as good a day as any other.
&lt;/p&gt;

&lt;p&gt;
My resolutions are pretty concrete, and I'm going to list them
here so that &lt;span class='ljuser ljuser-name_ohioana' lj:user='ohioana' style='white-space: nowrap;'&gt;&lt;a href='http://ohioana.livejournal.com/profile'&gt;&lt;img src='http://l-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://ohioana.livejournal.com/'&gt;&lt;b&gt;ohioana&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; (and anyone else who happens to be
around) can help me stick with them.
&lt;/p&gt;

&lt;a name="cutid1"&gt;&lt;/a&gt;

&lt;dl&gt;

&lt;dt&gt;&lt;strong&gt;
Exercise every day
&lt;/strong&gt;&lt;dd&gt;
I've gained between 20 and 30 pounds since &lt;span class='ljuser ljuser-name_ohioana' lj:user='ohioana' style='white-space: nowrap;'&gt;&lt;a href='http://ohioana.livejournal.com/profile'&gt;&lt;img src='http://l-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://ohioana.livejournal.com/'&gt;&lt;b&gt;ohioana&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;
got pregnant.  The best way to reverse this trend is to exercise, but
I haven't seriously exercised more than a dozen times since Zo&amp;euml;
was born.

&lt;dt&gt;&lt;strong&gt;
Only eat junk food when rude (or at least weird) not to
&lt;/strong&gt;&lt;dd&gt;
I'm not going to stop eating dessert at my mother-in-law's, nor do I
plan to forego treats during holidays or at parties, but I can at
least stop eating crap at home and at work.

&lt;dt&gt;&lt;strong&gt;
Eat out less
&lt;/strong&gt;&lt;dd&gt;
We've been eating restaurant food (frequently take-out) about three
times a week.  That's unhealthy for both our bodies and our bank
account.  I think a limit of once a week for dinner would be a good
start (I'll probably go out to lunch with people at work either once
or twice a week).  This is a resolution that I don't actually expect
to meet consistently&amp;mdash;circumstances can easily cause multiple
restaurant meals in the same week&amp;mdash;but having a goal of once a
week will help.

&lt;dt&gt;&lt;strong&gt;
No reading reddit
&lt;/strong&gt;&lt;dd&gt;
If I need to kill a half-hour, &lt;a href="http://programming.reddit.com/"&gt;programming.reddit.com&lt;/a&gt; is a
great way to do it, but these days I find that I desperately need to
keep my free time alive.  So no more reddit.  I'm still debating
whether or not to allow myself to look at the programming reddit while
I'm waiting for code to compile at work, but I think a total ban is
probably best for now.

&lt;dt&gt;&lt;strong&gt;
Faster showers
&lt;/strong&gt;&lt;dd&gt;
I can also kill a half-hour in the shower, when it shouldn't take more
than a few minutes to get myself clean.  I used to think that shower
time was prime thinking time, but my daydreaming in the shower is
mostly wasted on TV shows (instead of, say, math).  Eight minutes is my
goal: if I have to start taking an egg timer into the bathroom, I will.

&lt;/dl&gt;&lt;/dt&gt;&lt;/dt&gt;&lt;/dt&gt;&lt;/dt&gt;&lt;/dt&gt;&lt;/dd&gt;&lt;/dd&gt;&lt;/dd&gt;&lt;/dd&gt;&lt;/dd&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:khslinky:17892</id>
    <link rel="alternate" type="text/html" href="http://khslinky.livejournal.com/17892.html"/>
    <link rel="self" type="text/xml" href="http://khslinky.livejournal.com/data/atom/?itemid=17892"/>
    <title>Volatile Function Pointers</title>
    <published>2007-12-15T05:21:18Z</published>
    <updated>2007-12-15T05:21:18Z</updated>
    <content type="html">&lt;p&gt;I was nearly blown away by Visual C++ this week.  In the end, I was
merely pleased with it, but for the space of about a half-hour, I
thought Visual C++ was working magic.&lt;/p&gt;

&lt;p&gt;At work recently, one of our co-ops (for privacy's sake, we'll call
him Alonzo Church) was working on printing out nice stack traces from
C++ code when we throw an exception.  He was testing it with something
like this:&lt;/p&gt;

&lt;pre&gt;
f() { g(); }

g() { h(); }

h() { stack_trace(); }

int main() { f(); }
&lt;/pre&gt;

&lt;p&gt;Unfortunately, the stack trace only showed &lt;tt&gt;h&lt;/tt&gt; and
&lt;tt&gt;main&lt;/tt&gt;.  Alonzo figured that &lt;tt&gt;f&lt;/tt&gt; and &lt;tt&gt;g&lt;/tt&gt; were
missing because they'd been inlined, so he asked me if I knew of a way
to turn off the inlining for just those functions without turning off
optimizations altogether.  I suggested that he change the calls to
&lt;tt&gt;f()&lt;/tt&gt; and &lt;tt&gt;g&lt;/tt&gt; into indirect calls through global
function pointers.  There was absolutely no way, I assured him, that a
compiler would inline such a call.&lt;/p&gt;

&lt;p&gt;But it did!  Both &lt;tt&gt;f&lt;/tt&gt; and &lt;tt&gt;g&lt;/tt&gt; were still missing from
the stack trace.  We even declared the function pointers
&lt;tt&gt;volatile&lt;/tt&gt;, and defined them in separate files, and it
&lt;em&gt;still&lt;/em&gt; inlined them.  (The syntax is &lt;tt&gt;void (* volatile
f_ptr)()&lt;/tt&gt;, by the way&amp;mdash;it took me a couple tries to figure
that out.)  Now, obviously no compiler is inlining indirect calls
through volatile function pointers.  So what's going on?  Why aren't
&lt;tt&gt;f&lt;/tt&gt; and &lt;tt&gt;g&lt;/tt&gt; in Alonzo's stack trace?&lt;/p&gt;

&lt;a name="cutid1"&gt;&lt;/a&gt;

&lt;p&gt;Alonzo and I experimented with adding small bits of code after the
calls to &lt;tt&gt;f&lt;/tt&gt; and &lt;tt&gt;g&lt;/tt&gt; and using both direct and indirect
calls, and I'm now fairly sure that they weren't showing up because
Visual C++ was doing tail call elimination (as well as inlining with
direct calls).  So even though it was making the function calls, the
stack frames were being overwritten, thus removing them from the stack
trace.&lt;/p&gt;

&lt;p&gt;That was a pleasant surprise: I don't normally think of C++
compilers as doing especially aggressive tail call optimization.  But
it would have been really awesome if it was doing some sophisticated
analysis that allowed it to safely inline calls through volatile
global function pointers.&lt;/p&gt;

</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:khslinky:17494</id>
    <link rel="alternate" type="text/html" href="http://khslinky.livejournal.com/17494.html"/>
    <link rel="self" type="text/xml" href="http://khslinky.livejournal.com/data/atom/?itemid=17494"/>
    <title>Gelfand does Basic Algebra</title>
    <published>2007-11-20T03:26:48Z</published>
    <updated>2007-11-20T03:26:48Z</updated>
    <content type="html">So I was browsing through math books on Amazon the other day, and it recommended a basic trigonometry book.  I clicked on it thinking it might be the weird Australian trig book with quadrance and spread, but it turned out to be a traditional trig book.  I almost closed the page, but then I saw the author's name and did a double take: &lt;a href="http://en.wikipedia.org/wiki/Israel_Gelfand"&gt;Gelfand&lt;/a&gt;.  (If you don't recognize the name immediately, it's because you haven't studied enough functional analysis.)  It turns out he's written an entire series of high-school level math textbooks.  How cool!</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:khslinky:17407</id>
    <link rel="alternate" type="text/html" href="http://khslinky.livejournal.com/17407.html"/>
    <link rel="self" type="text/xml" href="http://khslinky.livejournal.com/data/atom/?itemid=17407"/>
    <title>Hiring Programmers</title>
    <published>2007-11-18T04:40:40Z</published>
    <updated>2007-11-18T04:40:40Z</updated>
    <content type="html">&lt;p&gt;Some tips for anyone attempting to secure employment as a software engineer:&lt;/p&gt;

&lt;ul&gt;

&lt;li&gt;You should know how to write a for-loop.  Especially if your
current title is &amp;ldquo;Principal Software Engineer.&amp;rdquo;&lt;/li&gt;

&lt;li&gt;If you claim to have worked on numerous C++ projects over the past
fifteen years, you should know both (1) what a template is, and (2)
what a virtual function is.  And you should be able to write a for-loop.&lt;/li&gt;

&lt;li&gt;When asked to write code on a whiteboard, it's acceptable to say
&amp;ldquo;A whiteboard is a less-than-ideal development environment.  It
will be difficult to write and debug code without my editor and
compiler.&amp;rdquo; It's probably not a good idea to say &amp;ldquo;Oh man,
it's been so long since I had to write code!&amp;rdquo;&lt;/li&gt;

&lt;li&gt;If asked to read a bunch of numbers from a file, your first
impulse should &lt;em&gt;not&lt;/em&gt; be to store them in a fixed-size array.&lt;/li&gt;

&lt;li&gt;Don't try to convince your interviewer that frequently copying your
source code to a network location is an acceptable substitute for a
revision control system.&lt;/li&gt;

&lt;li&gt;You &lt;em&gt;really&lt;/em&gt; need to know how to write a for-loop.  Now, I'm
all for eliminating for-loops from your code&amp;mdash;it's been &lt;a href="http://beautifulcode.oreillynet.com/2007/10/writing_your_last_forloop.php"&gt;months
since I wrote my last for-loop&lt;/a&gt; at home.  But loops are still
common in professional settings, and frankly, nobody's going to
believe that you're a professional programmer if you can't write
one.&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;It's harder to find good programmers than I expected.  In the end, though,
we did hire someone that I'm pretty excited about.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:khslinky:17107</id>
    <link rel="alternate" type="text/html" href="http://khslinky.livejournal.com/17107.html"/>
    <link rel="self" type="text/xml" href="http://khslinky.livejournal.com/data/atom/?itemid=17107"/>
    <title>Porn</title>
    <published>2007-11-13T00:29:33Z</published>
    <updated>2007-11-13T00:30:23Z</updated>
    <content type="html">&lt;p&gt;I was looking at some porn on the internet the other day.  I don't
think I quite understand the appeal of porn.  I mean, I think of sex as
touching someone that I like&amp;mdash;looking at a stranger that I can't
touch just doesn't cut it.  And what's with all the shaved crotches?
Half the time, I felt like I was watching middle-school girls have sex.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:khslinky:16864</id>
    <link rel="alternate" type="text/html" href="http://khslinky.livejournal.com/16864.html"/>
    <link rel="self" type="text/xml" href="http://khslinky.livejournal.com/data/atom/?itemid=16864"/>
    <title>Marshmallows</title>
    <published>2007-10-28T05:36:00Z</published>
    <updated>2007-10-28T05:36:00Z</updated>
    <content type="html">&lt;p&gt;About a year ago, I overheard someone chastising a child for
(intentionally) burning a marshmallow in a fire instead of eating it,
because she couldn't stand to see food go to waste.  I think this is
silly for a number of reasons, chief among them that it's a bit of a
stretch to call marshmallows &amp;ldquo;food&amp;rdquo;.  Kroger apparently
agrees with me.&lt;/p&gt;

&lt;p&gt;For reasons I won't get into, I was looking for marshmallows at the
grocery store tonight.  My first thought was that they were a baking
good, but all I could find in that aisle was marshmallow
&lt;em&gt;fluff&lt;/em&gt;.  Then I thought that maybe they were an ice cream
topping, but that section only had some sort of &amp;ldquo;process
marshmallow food topping&amp;rdquo;&amp;mdash;no real marshmallows.  My next
stop, the tea/coffee aisle, had marshmallows, but I would have had to
rip open packages of hot chocolate to get them.  I finally asked an
employee, who told me that marshmallows were in aisle twelve.  That
aisle contained only baby food and toys, with marshmallows at
the boundary.  Since I can't imagine that Kroger thinks of
marshmallows as baby food, I have to assume that they agree with me: a
marshmallow is really more of a toy than a food.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:khslinky:16610</id>
    <link rel="alternate" type="text/html" href="http://khslinky.livejournal.com/16610.html"/>
    <link rel="self" type="text/xml" href="http://khslinky.livejournal.com/data/atom/?itemid=16610"/>
    <title>Exhaustion</title>
    <published>2007-10-03T01:12:19Z</published>
    <updated>2007-10-03T01:12:19Z</updated>
    <content type="html">&lt;p&gt;You know how sometimes when you're sick your joints ache and your
skin feels super sensitive and you don't want anything to touch you?
I felt like that last night, from about four in the afternoon until I
woke up this morning.  Except I wasn't sick.  I think Zo&amp;euml; has
introduced me to a level of exhaustion I've never experienced before,
even when I pulled all-nighters in college.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:khslinky:16243</id>
    <link rel="alternate" type="text/html" href="http://khslinky.livejournal.com/16243.html"/>
    <link rel="self" type="text/xml" href="http://khslinky.livejournal.com/data/atom/?itemid=16243"/>
    <title>Hurray for Layoffs</title>
    <published>2007-09-26T01:38:17Z</published>
    <updated>2007-09-26T01:38:17Z</updated>
    <content type="html">&lt;p&gt;One of the best things about working where I do is the people I
work with.  The development team is small, but everyone is friendly,
helpful, and extremely competent.  When I've thought about this in the
past, I've always chalked this up to good hiring practices, but I
recently started to wonder if it might have to do with layoffs.
Before I joined the company, but after most of the people I work with
did, there were several significant rounds of layoffs.  Could it be
that this left only the top talent?  Once this is accomplished, it
might be self-sustaining, since really good people will hire other
really good people (that's what &lt;em&gt;I&lt;/em&gt; like to think, anyway).&lt;/p&gt;

&lt;p&gt;I've always heard that it works the other way around&amp;mdash;that
once you start making cuts, everybody starts looking for other work
and the best people have plenty of opportunities, so you end up losing
them.  But perhaps if you provide enough equity-based compensation and
give your employees some reason to believe that the company is in good
hands, you can avoid this.  You'd have to do lots of other stuff
right, too, such as figuring out who to get rid of.  And of course it
doesn't work at all unless you've got good people to begin with.&lt;/p&gt;

&lt;p&gt;Linguistic side note: I almost wrote &amp;ldquo;figuring out
who&lt;b&gt;m&lt;/b&gt; to get rid of,&amp;rdquo; but I just couldn't bring myself to
do it.  I'm not sure I know anybody personally who would find that
construction natural.  It sounds like something a non-native speaker
might come up with.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:khslinky:16024</id>
    <link rel="alternate" type="text/html" href="http://khslinky.livejournal.com/16024.html"/>
    <link rel="self" type="text/xml" href="http://khslinky.livejournal.com/data/atom/?itemid=16024"/>
    <title>Wow, Ruby is slow</title>
    <published>2007-09-25T00:31:03Z</published>
    <updated>2007-09-25T00:31:03Z</updated>
    <content type="html">&lt;p&gt;I'd always heard that ruby's interpreter was remarkably slow, but I
never really gave it much thought.  I mean, people are always
complaining about high-level languages being slow even when they're
not, and I'd been using ruby for small projects here and there
(basically as a perl replacement) since 2002 with no trouble.  And
when I say small projects, I don't necessarily mean that Ruby wasn't
doing much work.  I've processed some large chunks of text with it,
but those were mostly with regular expressions that call some C
library routine in the background.  I recently wrote a ruby program
that had to parse about five thousand lines (148KB) of XML, and I used
REXML, which is written entirely in Ruby, because I was hoping this
would simplify porting the program to Windows for my wife's use.  Just
creating a list of objects to represent all the entries in the file
took &lt;em&gt;eight seconds&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;So I did a re-write in Haskell last week.  The Haskell version
requires about half as many lines of code and runs in under a second.
I'd avoided Haskell initially because I didn't realize there was a
good Windows implementation.  It's not like one of the &lt;a href="https://research.microsoft.com/users/simonpj/"&gt;primary authors
of GHC&lt;/a&gt; works for Microsoft or something.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:khslinky:15698</id>
    <link rel="alternate" type="text/html" href="http://khslinky.livejournal.com/15698.html"/>
    <link rel="self" type="text/xml" href="http://khslinky.livejournal.com/data/atom/?itemid=15698"/>
    <title>Democratic Debate</title>
    <published>2007-08-19T18:04:31Z</published>
    <updated>2007-08-19T18:04:31Z</updated>
    <content type="html">&lt;p&gt;I finally got to see a presidential primary debate.  (It sucks that
many of the debates are only available on cable now, but that's a
whole different topic.)&lt;/p&gt;

&lt;a name="cutid1"&gt;&lt;/a&gt;

&lt;p&gt;It makes some sense to me that Obama and Clinton are the
front-runners.  Both of them had a much more polished presentation
than their colleagues.  On the other hand, I didn't appreciate ABC
News's decision to solidify their positions at the head of the pack by
devoting a good five or ten minutes to each of them.  Why wasn't every
other candidate asked to comment on Gravel's fitness for the
Presidency?  And why did Kucinich and Gravel get about five minutes of
total speaking time between them?  The public is not well-served by
this sort of pseudo-debate&lt;/p&gt;

&lt;p&gt;Several candidates brought up energy independence, but no one
really seems to have much of substance to offer there.  Hint: slightly
higher fuel-efficiency standards aren't going to break our dependence
on foreign oil.  Cellulosic ethanol might not do the trick, either,
but this is one area where what I've heard from Bush seems (at least
on its face) to be far more progressive thinking.  Universal health
care was also mentioned several times.  I expect this to happen during
the next president's term no matter who gets elected, so Hillary's
previous experience in this area is probably a point in her favor.&lt;/p&gt;

&lt;p&gt;The war in Iraq was discussed a great deal.  It looks like every
Democratic candidate wants to pull out of Iraq more-or-less
immediately, which bothers me a bit (I'm of the opinion that if you
make a mess, you should at least try to clean up after yourself).
What bothers me more is that this is such a partisan issue.  On broad
philosophical topics like abortion, gun control, women's suffrage, or
slavery, I can see why disagreements would run along party lines.  But
here where we have a particular situation, I'd expect people to
examine the facts and determine the best course of action, and I don't
see any reason to think that one's conclusions about it would be
determined by party affiliation.  Instead, it seems like everybody's
using the war to play political games.&lt;/p&gt;

&lt;p&gt;Speaking of political games, I can't believe that all the
candidates kept going on about how badly we're getting screwed in
trade with other countries.  Sure we have a huge trade deficit, but
we're also enormously wealthy and still seeing huge growth.  It's a
bit of a stretch to claim that we're &amp;ldquo;being taken advantage of
by other countries&amp;rdquo; as Hillary put it.  At least Obama
recognizes that &amp;ldquo;globalization is here.&amp;rdquo;  I wonder if
that's sort of a generation gap thing.&lt;/p&gt;

&lt;p&gt;On education I was pleased that at least some of the candidates
thought merit-based pay for teachers was a good idea.  If you think
that teaching is a valuable endeavor and that some teachers are better
than others, it's a slap in the face of good teachers not to reward
them for their efforts and abilities.  Several candidates also brought
&amp;ldquo;universal pre-kindergarten,&amp;rdquo; which is something I'd never
heard of before.  I hope the intention is not to make such a thing
mandatory.  After Hillary talked up the importance of universal
pre-kindergarten, she went on to say that the home was the best
teaching environment.  One of us is very confused, and I honestly
don't know which.&lt;/p&gt;

&lt;p&gt;On a personal level, I found the responses to the question about
God and prayer somewhat troubling.  All the candidates responded as if
they had some sort of deep Christian faith.  I suppose it's possible
that they all do, but for some reason I have a hard time believing
that Hillary Clinton thinks there's an invisible man running the
universe.  I never thought I'd see it as courageous for someone to say
that they didn't think prayer could prevent hurricanes, but only a
handful of the candidates could bring themselves to do even that.&lt;/p&gt;



&lt;p&gt;Linguistic side notes: Obama consistently uses a &lt;a href="http://itre.cis.upenn.edu/~myl/languagelog/archives/001123.html"&gt;double
copula&lt;/a&gt;.  I've heard him do it before, and he did it again during
today's debate.  Also, several different candidates made use of the
word &lt;a href="http://itre.cis.upenn.edu/~myl/languagelog/archives/001922.html"&gt;troop&lt;/a&gt;
to mean a single person.&lt;/p&gt;

&lt;p&gt;My (absurdly premature) prediction: Edwards will start losing ground because he's less
impressive, both in presentation and (to me, at least) in substance, than Obama and
Clinton.  He'll then throw his support to Obama, who will take the nomination.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:khslinky:15431</id>
    <link rel="alternate" type="text/html" href="http://khslinky.livejournal.com/15431.html"/>
    <link rel="self" type="text/xml" href="http://khslinky.livejournal.com/data/atom/?itemid=15431"/>
    <title>Inheriting Points</title>
    <published>2007-08-08T04:26:43Z</published>
    <updated>2007-08-08T04:26:43Z</updated>
    <content type="html">&lt;p&gt;I ran into an interesting problem at work.  Part of our in-house
libraries is a class that represents a point in 3-space.  It's nothing
special: just three numbers with no other context.  The problem is
that the application I'm currently working on uses points in two
different coordinate systems, and I occasionally found myself using
the wrong kind of point in the wrong place.  I'm not going to get into my eventual
solution, but I didn't quite manage to solve it the way I wanted
to.&lt;/p&gt;

&lt;p&gt;What I really wanted was for the type system to handle it.  This is
what type systems are supposed to do, right?  I have two different
types of things, and I want to make sure that I'm using the right one.
Unfortunately, I still want to do point-like things with both of these
types, and the only way to really get that behavior is to make them
both subclasses of point.  Which means that if I have defined
&lt;code&gt;point operator+( point, point )&lt;/code&gt;, and I do something like
&lt;tt&gt;subclass_A + subclass_B&lt;/tt&gt;, both types get promoted to point,
and everything works just fine, which is exactly what I wanted to
avoid.&lt;/p&gt;

&lt;p&gt;There are a couple different options, all unpleasant.  I could go
forward with subclassing point and provide overloads for any operation
involving a combination of the subclasses that throws an exception (I
could probably even find a way to get a compile-time error with
BOOST_STATIC_ASSERT).  Or I could make new classes that contain a
private point member and then go through and expose by hand all of the
point functionality that I want.  Both of these options involve a lot
of annoyingly redundant code.  I could also make a very thin wrapper class
with, say, a public point member, but then any code involving that
class will have lots of unwrapping and re-wrapping mixed in with the
actual computation.&lt;/p&gt;

&lt;p&gt;I briefly thought that I'd come up with a brilliant solution in
which user-defined type conversions would allow implicit conversion
from my classes into points but confuse the compiler in expressions
involving points from both coordinate systems.  But it didn't work
because point is actually a class template, and user-defined
conversion operators are applied during overload resolution, which
comes after template instantiation.  So when passing one of my classes
to a function template that expects a point, the template can't figure
out what kind of point it's looking at because the argument hasn't yet
been converted to a point at all.  As a side note, I think C++ is the
only language I've ever used where I've made (on more than one
occasion, in fact) a serious effort to confuse the compiler or trick
it into doing what I wanted.  Not coincidentally, it's also the only
language I'm aware of where many of the standard idioms are referred
to as &amp;ldquo;tricks&amp;rdquo; (e.g., the Barton-Nackman Trick and the
Colvin-Gibbons Trick).&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:khslinky:15310</id>
    <link rel="alternate" type="text/html" href="http://khslinky.livejournal.com/15310.html"/>
    <link rel="self" type="text/xml" href="http://khslinky.livejournal.com/data/atom/?itemid=15310"/>
    <title>Baby on Board</title>
    <published>2007-08-05T22:30:37Z</published>
    <updated>2007-08-05T22:30:37Z</updated>
    <content type="html">&lt;p&gt;We went up to Cleveland this weekend for a wedding.  According to
Google, the trip from our house to the Holiday Inn Cleveland South
takes three hours and seventeen minutes.  When you factor in a
Zo&amp;euml; who is slightly constipated and not at all happy about being
strapped into a car seat, however, it takes closer to five hours.  So
we missed the actual wedding portion of the wedding.  The reception
was fun, but we didn't get to talk to people as much as we would have
liked because we were constantly struggling to keep Zo&amp;euml; happy
despite all the noise, the people, and the residual anger over being
strapped into a car seat.&lt;/p&gt;

&lt;p&gt;The return trip also took about five hours, so the Zo&amp;euml; factor is
at least somewhat predictable.  She slept all the way to Pittsburgh
when we went there over the Fourth of July.  Maybe it's only
North-South travel that bothers her?  I'll be curious to see how she
reacts to our next Pittsburgh trip.&lt;/p&gt;

&lt;p&gt;In other news, I apparently look just like someone named Austin.  I
was coming back to the hotel room after putting some stuff in the car
this morning, and when I walked out of the elevator, a young
(college-age) man said, "Hey--oh, I'm sorry.  I thought you were
someone else."  Then his mother came around the corner, looked
straight at me and said, "Are you guys downstairs?"  To which her son
said, "No, Mom.  That's not Austin."  She was shocked: "Good Lord!
They could be brothers."&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:khslinky:14921</id>
    <link rel="alternate" type="text/html" href="http://khslinky.livejournal.com/14921.html"/>
    <link rel="self" type="text/xml" href="http://khslinky.livejournal.com/data/atom/?itemid=14921"/>
    <title>Numbers and Factorials</title>
    <published>2007-06-28T04:29:18Z</published>
    <updated>2007-06-28T04:29:18Z</updated>
    <content type="html">&lt;p&gt;There's a lengthy discussion of &lt;a href="http://programming.reddit.com/info/21nue/comments"&gt;factorial
functions&lt;/a&gt; over at Reddit.  It was inspired by a &lt;a href="http://worsethanfailure.com/Articles/Fd-Factorial.aspx"&gt;Daily
WTF&lt;/a&gt; article in which an interviewer asked a potential employee to
write a &amp;ldquo;quick function&amp;rdquo; to compute the factorial of
&amp;ldquo;any given number&amp;rdquo;.  The candidate failed miserably, and
the entire programming Reddit is howling at the sadness of it.  The
problem I have with this is that, assuming the interviewer expected an
answer in Java, the question is designed to produce failure.
Producing a Java function to compute the factorial of &amp;ldquo;any given
number&amp;rdquo; is simply not a quick or easy thing to do, especially if the candidate didn't remember the details of  &lt;tt&gt;java.lang.Bignum&lt;/tt&gt;.
&lt;/p&gt;

&lt;p&gt;An &lt;tt&gt;int&lt;/tt&gt; in Java can correctly represent the factorials of
numbers from zero through (wait for it...) twelve.  Java's
&lt;tt&gt;long&lt;/tt&gt; fares a bit better, going all the way up to 20!.  This
is actually a case where using floating-point numbers to represent
integers is not a bad idea.  With Java's &lt;tt&gt;double&lt;/tt&gt;, you can
represent integers exactly up to 53 bits, which is enough for 18!, and
beyond that, you'll probably at least get the right order of magnitude
for a while.  Best of all, when the floating-point numbers finally
give up on computing factorials, they'll give you infinity, which for
many applications is probably a perfectly good approximation (and will
almost always be better than the factorial mod 32 or 64).
&lt;/p&gt;

&lt;p&gt;What I really wish, of course, is that some mainstream programming
language would start giving people actual integers when all they ask
for is an &lt;tt&gt;int&lt;/tt&gt;.  I realize that 32- and 64-bit integers have
their place, but unless I ask specifically for one of those, what I
really want is an integer.  The integers have some wonderful properties
that I've grown really quite fond of, like
&lt;blockquote&gt;
x &amp;lt; x + 1
&lt;/blockquote&gt;
&lt;blockquote&gt;
x &amp;ne; 0 and y &amp;ne; 0 &amp;rarr; xy &amp;ne; 0
&lt;/blockquote&gt;
&lt;blockquote&gt;
x &amp;gt; 0 and y &amp;gt; 0 &amp;rarr; xy &amp;gt; 0
&lt;/blockquote&gt;
&lt;blockquote&gt;
&amp;forall; x, &amp;exist; y such that y &amp;gt; x
&lt;/blockquote&gt;
and, of course,
&lt;blockquote&gt;
n &amp;ge; 0 &amp;rarr; n! &amp;gt; 0
&lt;/blockquote&gt;
&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:khslinky:14594</id>
    <link rel="alternate" type="text/html" href="http://khslinky.livejournal.com/14594.html"/>
    <link rel="self" type="text/xml" href="http://khslinky.livejournal.com/data/atom/?itemid=14594"/>
    <title>Emacs/Keyboard Trivia</title>
    <published>2007-06-19T03:34:57Z</published>
    <updated>2007-06-19T03:34:57Z</updated>
    <content type="html">&lt;p&gt;That stupid Windows right-click-menu key is mapped to &lt;tt&gt;M-x&lt;/tt&gt; in emacs (at
least on the most recent Ubuntu).  If anything needs a dedicated key,
that does.  Almost makes me wish that I had one in a convenient location.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:khslinky:14576</id>
    <link rel="alternate" type="text/html" href="http://khslinky.livejournal.com/14576.html"/>
    <link rel="self" type="text/xml" href="http://khslinky.livejournal.com/data/atom/?itemid=14576"/>
    <title>Parable of the Sower</title>
    <published>2007-06-17T20:19:29Z</published>
    <updated>2007-06-17T20:19:29Z</updated>
    <content type="html">&lt;p&gt;I finally read &lt;i&gt;Parable of the Sower&lt;/i&gt; recently, and it was
fantastic.  I should have read it years ago when &lt;span class='ljuser ljuser-name_wynndom' lj:user='wynndom' style='white-space: nowrap;'&gt;&lt;a href='http://www.livejournal.com/userinfo.bml?user=wynndom'&gt;&lt;img src='http://l-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://www.livejournal.com/userinfo.bml?user=wynndom'&gt;&lt;b&gt;wynndom&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;
first recommended it to me (happy belated birthday, by the way), but I
was avoiding it because I hadn't enjoyed Butler's &lt;i&gt;Wild Seed&lt;/i&gt;
very much.  This isn't the first time that I've done something like
that: I avoided watching &lt;i&gt;Buffy&lt;/i&gt; for years because I'd seen the
(truly awful) movie.  There's probably a lesson I should be learning
here.&lt;/p&gt;

&lt;p&gt;Anyway, both &lt;i&gt;Parable&lt;/i&gt; and its sequel were excellent, and they
were built around some ideas that appealed to me quite a bit (like the
notion that we need to get off this planet).  But they were also
frightening.  Parts of the story made me feel like I ought to keep
some military-grade weapons around to defend my family in the event of
an extended economic downturn.&lt;/p&gt;

&lt;p&gt;If you're looking for a gripping story with extremely well-drawn
characters, and you're not already terrified that your home will be
overrun by angry mobs and/or Christians, take a look at &lt;i&gt;Parable of
the Sower&lt;/i&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:khslinky:14257</id>
    <link rel="alternate" type="text/html" href="http://khslinky.livejournal.com/14257.html"/>
    <link rel="self" type="text/xml" href="http://khslinky.livejournal.com/data/atom/?itemid=14257"/>
    <title>khslinky @ 2007-06-15T00:18:00</title>
    <published>2007-06-15T04:28:36Z</published>
    <updated>2007-06-15T04:28:36Z</updated>
    <content type="html">&lt;p&gt;Not too long ago, it occurred to me that I could recite the title
of every &lt;i&gt;Buffy&lt;/i&gt; episode in order, but I couldn't name all the
U.S. presidents (in any order at all).  I've finally started using the
Nordic Track again (we both took a break from exercising for a while
after Zo&amp;#235; was born), which means I've got some spare time now
during which I can't really do anything useful, but my mind is basically
unoccupied.  I intend to use this time to memorize the Presidents of
the United States along with the year each of them started to serve.
Then I'm going to move on to the naturally occurring elements and
their atomic numbers.  Further suggestions are welcome.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:khslinky:13902</id>
    <link rel="alternate" type="text/html" href="http://khslinky.livejournal.com/13902.html"/>
    <link rel="self" type="text/xml" href="http://khslinky.livejournal.com/data/atom/?itemid=13902"/>
    <title>khslinky @ 2007-06-07T23:57:00</title>
    <published>2007-06-08T04:28:42Z</published>
    <updated>2007-06-08T04:28:42Z</updated>
    <content type="html">&lt;p&gt;Elizabeth has apparently been to busy to tell the latest bunny
story, so I guess I'll do it.  While she was mowing the lawn the other
day, Elizabeth discovered that a bunny had made a nest in our yard,
inside the cat fence.  This bunny has been inside the fence before,
and every time she comes in, she gets harassed by our cats.  What
would make her think it was a good idea to put a nest in our yard is
beyond our limited human understanding.&lt;/p&gt;

&lt;p&gt;So Elizabeth mowed around the nest, and then went out to collect
the (eight!) baby bunnies and put them outside the fence.  Of course,
we can't stop them from coming back inside the fence, and last night
the cats had a baby bunny cornered in our bedroom in the middle of the
night.  Elizabeth grabbed the poor thing, put it outside the fence,
and locked the cats inside the house, thereby saving the bunny.&lt;/p&gt;

&lt;p&gt;So tonight, I was going to lock the cats in before going to bed.
Unfortunately, I didn't go to bed early enough, and about an hour ago
Tiger was chasing a bunny around our dining room.  I chased them both
outside but didn't escort the baby bunny out of the fence.  I figured
some of those bunnies are just doomed to die on account of their
mother's stupidity no matter what I do.  But I just brought the cats
in for the night, and Tiger seemed hungry, so maybe the little guy got
away&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:khslinky:13677</id>
    <link rel="alternate" type="text/html" href="http://khslinky.livejournal.com/13677.html"/>
    <link rel="self" type="text/xml" href="http://khslinky.livejournal.com/data/atom/?itemid=13677"/>
    <title>Programming Language Education</title>
    <published>2007-06-05T05:47:03Z</published>
    <updated>2007-06-05T05:47:03Z</updated>
    <content type="html">&lt;p&gt;I recently witnessed a discussion about what programming languages
should be taught to impressionable young CS students.  Not for the
first time, I got to hear about how important it is to teach a
practical language like Java in introductory programming courses.  I
never find the arguments in favor of Java especially convincing: it
isn't actually possible to teach the average freshman enough of Java
to make it a useful practical tool, and &lt;a href="http://home.adelphi.edu/sbloch/class/hs/testimonials/north.comparison.html"&gt;anecdotal
evidence&lt;/a&gt; suggests that teaching students Scheme first helps them
learn C++ better later on.  But I can at least understand how an
otherwise reasonable person could come to the erroneous conclusion
that Java should be taught as a first language.  What really bothers
me is something I discovered today.&lt;/p&gt;

&lt;p&gt;I was talking to one of our co-ops about the classes he'd taken
this quarter when he mentioned Comparative Languages.  Being a PL
geek, I asked him what languages they'd studied.  His answer: C++,
Java, C#, and a little bit of Scheme at the end.  Did they cover
hygienic macros or continuations or any of the really cool stuff in
Scheme?  Of course not.  I get the feeling they just tossed 
enough &lt;tt&gt;car&lt;/tt&gt;s and &lt;tt&gt;cdr&lt;/tt&gt;s around to give the impression
that Scheme is &amp;ldquo;weird&amp;rdquo; and left it at that.  This is like
offering a comparative religions class that focuses primarily on
Catholics, Anglicans, and Episcopalians, with a little Zoroastrianism
at the end to provide an example of a goofy minority faith.  How do
you make a 10 week long class out of that?&lt;/p&gt;

&lt;p&gt;Note to schools: If you really want to give your students a
practical skill, tell them about revision control systems.  I'm amazed
by the number of new graduates we've interviewed that seem to have
gotten all through school (sometimes even grad school) without ever
encountering the concept.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:khslinky:13412</id>
    <link rel="alternate" type="text/html" href="http://khslinky.livejournal.com/13412.html"/>
    <link rel="self" type="text/xml" href="http://khslinky.livejournal.com/data/atom/?itemid=13412"/>
    <title>Keyboard</title>
    <published>2007-06-04T04:56:12Z</published>
    <updated>2007-06-04T04:56:12Z</updated>
    <content type="html">&lt;p&gt;I recently bought a new &lt;a href="http://www.alphagrips.com/"&gt;keyboard&lt;/a&gt;, and I've decided that
making frequent short LiveJournal posts would be a good way to
get accustomed to it.
&lt;/p&gt;

&lt;p&gt;So far, I like it.  It's going to take some time to get up to a
decent typing speed, but the AG-5 immediately felt more comfortable
and natural than, say, the Datahand or the Twiddler2.  I did have to
set my mouse acceleration pretty high (xset mouse 7 3) to get the
built-in trackball to feel okay, but now that that's done it works
fine.  And having a mouse right at my fingertips has motivated me to
(at least temporarily) put aside &lt;a href="http://www.nongnu.org/ratpoison/"&gt;ratpoison&lt;/a&gt; and explore a window
manager with a more mouse-driven interface.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:khslinky:13175</id>
    <link rel="alternate" type="text/html" href="http://khslinky.livejournal.com/13175.html"/>
    <link rel="self" type="text/xml" href="http://khslinky.livejournal.com/data/atom/?itemid=13175"/>
    <title>BABY!</title>
    <published>2007-04-19T05:27:04Z</published>
    <updated>2007-04-19T05:27:04Z</updated>
    <content type="html">&lt;p&gt;Zo&amp;#235; was born at 5:27 PM on Tuesday, right on her due  date.  She was 8 pounds 5 ounces and 20.5 inches long.  She has lots of  hair, which looks either light brown or red  depending on the light.  Regardless of the lighting, she is absolutely  adorable.  Elizabeth and her mother both agree with me on that, so it  must be true.&lt;/p&gt;

&lt;p&gt;We left home at 1:30 in the morning--16 hourse before Zo&amp;#235; was born.  Elizabeth's water had broken, but she hadn't had much in the way  of contractions, so around 4:30 they started dosing her with pitocin.   By eleven, Elizabeth was completely exhausted.  She would hang on me and  shake during contractions, and then sit on the edge of the bed and sleep  (I had to hold her shoulder to keep her from falling over) for 30 to 60  seconds before being awakened by the pain of the next contraction.  At  this point, she decided to get an epidural, which was something she had  really hoped to avoid.  Then she slept for about five hours, woke up,  and pushed out a baby like it was the easiest thing in the world.  She  is now a huge fan of epidural anesthesia.&lt;/p&gt;

&lt;p&gt;Elizabeth and Zo&amp;#235; both seem to be doing very well, and they expect to  come home this morning.  It's a good thing, too: the cat's are starting  to miss Elizabeth.  It remains to be seen how they will react to their  new friend Zo&amp;#235;.  I just keep telling them that babies are friends--not food.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:khslinky:12919</id>
    <link rel="alternate" type="text/html" href="http://khslinky.livejournal.com/12919.html"/>
    <link rel="self" type="text/xml" href="http://khslinky.livejournal.com/data/atom/?itemid=12919"/>
    <title>Angel and Potter</title>
    <published>2005-07-26T03:55:06Z</published>
    <updated>2005-07-26T03:55:06Z</updated>
    <content type="html">&lt;p&gt;This weekend, I finished reading &lt;i&gt;Harry Potter and the Half-Blood
Prince&lt;/i&gt; and we also watched the last few episodes of the last
season of &lt;i&gt;Angel&lt;/i&gt;.  Pivotal points in both involved killing a
friend in order to avoid blowing a cover.  The Half-Blood Prince won't
have the luxury of whipping out a magic ball and explaining himself,
though, so I expect the final &lt;i&gt;Harry Potter&lt;/i&gt; book to be more
interesting than the last episode of &lt;i&gt;Angel&lt;/i&gt;.&lt;/p&gt;

&lt;p&gt;A few predictions about Book Seven:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ginny becomes a werewolf.
&lt;li&gt;Harry becomes a Muppet.
&lt;li&gt;Hermione gets infected by part of Voldemort's soul but
inexplicably decides that she's still part of the good team.
&lt;li&gt;Ron is a killer robot driving instructor from the future (since
he's apparently &lt;a href="http://www.jkrowling.com/textonly/rumours_view.cfm?id=31"&gt;not&lt;/a&gt;
&lt;a href="http://knight2king.net/"&gt;Dumbledore&lt;/a&gt;).
&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:khslinky:12574</id>
    <link rel="alternate" type="text/html" href="http://khslinky.livejournal.com/12574.html"/>
    <link rel="self" type="text/xml" href="http://khslinky.livejournal.com/data/atom/?itemid=12574"/>
    <title>Cavities</title>
    <published>2005-07-22T01:40:37Z</published>
    <updated>2005-07-22T01:40:37Z</updated>
    <content type="html">&lt;p&gt;I went to the dentist this morning and found out that I have two
cavities.  I feel sort of like a failure as a human being&amp;mdash;I
can't even keep my mouth clean.  I think the problem is that I haven't
been brushing my teeth correctly for the past few years.  During all
my recent dental exams, someone has asked me about the stain on the
chewing surfaces of my molars, suggesting that perhaps I drink a lot
of pop or coffee or use tobacco.  When I respond that I do none of
those things, the dentist always seems confused.  But as of this
morning, my own theory is that I've been brushing in small circles
around my gums to the point of neglecting the tops of my teeth.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:khslinky:12344</id>
    <link rel="alternate" type="text/html" href="http://khslinky.livejournal.com/12344.html"/>
    <link rel="self" type="text/xml" href="http://khslinky.livejournal.com/data/atom/?itemid=12344"/>
    <title>My wife is coming home</title>
    <published>2005-07-16T23:11:41Z</published>
    <updated>2005-07-16T23:11:41Z</updated>
    <content type="html">&lt;p&gt;&lt;span class='ljuser ljuser-name_ohioana' lj:user='ohioana' style='white-space: nowrap;'&gt;&lt;a href='http://ohioana.livejournal.com/profile'&gt;&lt;img src='http://l-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://ohioana.livejournal.com/'&gt;&lt;b&gt;ohioana&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; will be coming in later tonight.  It'll be very
nice to have her back.  I didn't get as much done as I probably should
have with the house, but at least the apartment is clean, so hopefully
she'll be happy to be back.&lt;/p&gt;

&lt;p&gt;So what did I do while she was away?  During dinner (pizza every
night), I watched some highlights from the early seasons of
&lt;i&gt;Buffy&lt;/i&gt;.  I was pleasantly surprised when I got to season four,
which I tend to think of as being weak.  The main story arc might not
be gripping, but it had a large number of above-average episodes that
I wanted to re-watch.&lt;/p&gt;

&lt;p&gt;I also tried (without much success) to whittle down my reading
list.  I finally finished &lt;i&gt;Skinny Legs and All&lt;/i&gt;, only to have
some books show up on my doorstep the next day.  I now find myself
about 100 pages into three separate books.  One of them is &lt;i&gt;Harry
Potter&lt;/i&gt;, which should go by in a flash, but the other two are
pretty hefty non-fiction.  Some days I think my reading list is doomed
to grow without bound.&lt;/p&gt;</content>
  </entry>
</feed>
