Older blog entries for chromatic (starting at number 129)

Finally:

After two days of writing documentation (and writing tests to make sure the documentation is right and fixing bugs because it isn't) and adding features (because the documentation makes better sense with the new features) and writing tests (to prove the correctness of the new features), and after several months of inactivity, Regexp::English has escaped. It wings its way to the CPAN, being found in my directory or on my website.

I think it's cool, Damian thought it was worth mentioning, and the variable binding feature is just nice.

With the SlashWiki article scheduled for later this week, I have time to work on articles for Perl Archive and, hopefully, tests for O and CPAN::FirstTime.

It Can't Rain Forever:

In other news, being in the Portland, Oregon area for my brother's wedding, I realized I could live there. Though I have an interview (phone?) with the Texas guy on Thursday, I might consider looking in the Hillsboro/Beaverton/Vancouver area. There are worse things. (And hello, S.B.!)

Deadlines:
The wedding is on the 10th. I'm flying to Portland at 12:30 pm on the 8th. Between now and then, I obviously must pack and arrive at the airport early enough to pay lip service to the perception that annoying regular people will prevent evil things from happening.

In addition, there are several other things that must happen:

  • Laundry must be found, washed, folded, and put away.
  • Finish an article for the O'Reilly Network, due the 10th -- so it's really due the morning of the 8th. Buy me a laptop and solve this problem.
  • Start the article, as I have a few paragraphs. Luckily, I've just now finished the code which the article will explain. Unluckily, it still has rough spots.
  • Hope someone (Krow?) will give me feedback on the nasty SQL problem that represents the biggest rough spot.
  • Proofread the book index by Monday morning, as it is due RIGHT AWAY. It's a problem to promote a book when it's not ready. Luckily, it looks relatively good as is.
  • Receive a package containing a present for a friend. Hopefully she is not reading this, though she probably is and I've said too much already. If it doesn't arrive by Tuesday morning, well, that's a problem.
  • Wrap a present for another friend for a party on the 11th and find someone who can deliver it for me. This probably must be done by the 6th. I may have to *find* ti first.

There's not a lot of time to complain or to grumble. Luckily, my part in the wedding is small. I just have to show up, do what they say, and find some toast, somewhere, provided the tuxedo fits. I don't even have to find a date. Now, though, it's time for a Tad Williams book, Jet Grind Radio, or sleep.

Trains and Ice:
When my brother and soon-to-be-sister-in-law visited, we took a scenic train ride through the snow-covered mountains, along the icy river. It's a beautiful trip, with hawks, crows, and eagles, though the winter always seems harsh.

We sat by the door in the penultimate car -- the last car was open to the air, with wooden benches. Though I had bundled up more than usual, five minutes outside bounding along at twenty miles per hour was more than enough. A steady stream of passengers marched to and from that outside car. Sitting by the heavy and hard to close door let in quite a bit of fresh, frozen air.

I was subdued on the journey, with several things in my head. One was a snippet of Hebrew poetry -- Psalm 2: 8.

Watching the river where I'd almost drowned seven years ago, I wondered what it would be like to hibernate, to throw my body down into the river, to allow my blood to slow within and to be frozen into a man-sized block of ice.

While small pieces of ice float downstream even in dark December, the spring thaws always come. Would it be permissible to sleep through the death, the descent of Persephone, and to awake, revived and restored (as the earth itself) in body and in spirit?

Linford Detweiler's liner notes mean a little more to me now. Someday, I'll make it to the Emery Theater in Cincinnati for The Darkest Night of the Year.

Words That Saw the Light of Day:
Testing makes you strong. Vanquish your enemies!
Teaching the Silicon to Talk:
The book went into production a day early. So far, I've approved (and fixed the numbering of) the figures and illustrations, clarified some weird formatting things, and am waiting for the next stage. I don't know what or when. It will jump out from behind a chair and yell "SURPRISE YOU ARE NOT YET FINISHED!" and I will devote another five minutes to hitting things. Mostly keys.
Reliability:
I've just finished writing an article for Simon at Perl.com on software testing with Test::More. Expect it shortly, unless he hates my vegetable analogies.
We Can End This Chapter, Anyway, Anyway...:
Tomorrow will be devoted to updating my resume and thinking about getting in touch with the last place to offer me a job. It's all the way across the country, which has its own unique set of challenges and rewards. I broached the subject with aformentioned friend who lives in the vicinity, and there was a distinctive lack of horrified screaming.

If that sounds somewhat wishy-washy on my part, it's because I'm terribly confused by several things. Having not worked a Regular Job for 18 months, my perspective is a little skewed. Besides that, I grew up, more or less. It's weird to wake up one day and realize you're an adult, but at least it happened before I hit 30.

Next up: tests for CPAN.pm. Yow.
Who's Like Us? D*mn few -- and most of 'em are dead:
My friend called. Wow. Things seem to be going pretty well, and we'll see how they go in the future. Somehow, all of my hurt and anger just faded away, when I realized who it was. So that's one more person I know in Dallas, which brings me to...
Work:
The book will go into "production" this Thursday. There's obviously some stuff left to do as the copy editors and layout folks work their magic, but the big writing duties are over. Since I'm barely paying the bills, it looks like my grand experiment has failed, for now. I need to find a real job.

I don't know if the job offer in Dallas is still open. I resisted while things were shaky with my friend, and I'm still not sure how that's going to turn out. I'm not superstitious, but I'm not sure I should call Jeff and ask if he still has a place for me. It almost seems like if he repeated the offer, it would be a sort of sign that I should move to Dallas.

I do like it here in the Pacific Northwest, and there's plenty of family in the area... but not a lot of places looking to hire a Perl guru who's just finished a book on weblog software, with Extreme Programming and Quality Assurance experience. Yes, that's a hint.

Programming:
I see that the Everything Engine is now available under the Artistic License. There are a lot of modifications I'd like to make... lots of places where performance could be improved. Hopefully I'll have some free time to do just that.
Patching:
Fixed a bug in Perl and several in Slash (<LINK> tag support even made it to Slashdot). I really ought to write some book reviews, though the Perl Refactoring Browser looks like such an interesting project...
The Incubated Hacker:
Let's summarize:
  • Waiting on the technical reviewers to comment on the book. The early rumblings are positive, though they seem to want more technical content. That's fair. So do I.
  • Of the new stuff I wrote for the book, the original software's author thinks one bit is super cool (or at least the description) and a fellow developer is using it as an example for building his own stuff. Someone else recommended it be included in the software itself. Fine by me.
  • Wrote a patch to add <LINK> tag support to Slash, at the behest of a Mozilla developer. The navigation bar's pretty nifty. I just had to figure out where it was, first.
  • Just mailed a patch to davej. Hopefully it won't hurt his eyeballs.
  • Reviewed The Space Child's Mother Goose from Purple House Press. If you have kids, you should consider it.
  • Thinking about writing my own Roguelike. I should finish PerlRogue for the Perl Power Tools project first.
  • Thinking about getting a real job. Send money.
The Man Himself:
I cooked stir fried pork with veggies over rice, tonight. It needed more brown sugar, but the pork turned out juicy and tender. The secret is to wash it after you cut it up, then dry it well. It helps to put olive oil and brown sugar in the pan first, and get it super hot -- sear in the juices.

I also realized that my wayward Texas friend is NOT interested in reconciliation. That's probably not news. The decision was probably made months ago. Hey, I did everything in my power to make things right. I don't like the fact that my good intentions weren't enough, but I deserve better than to be kept in the dark, mocked, and subsequently ignored by someone I considered a friend.

So that's a weight lifted from my shoulders, oddly enough. I didn't get what I thought I wanted (my best friend back), but I'm not going to waste any more time moping about it. Better to use that time finding other people who appreciate me and who are actually willing to *talk* when there's something wrong.

Not That I've Learned Anything:
My friend and colleague Dave Cross posted a plea for someone to write a good introduction to programming with Perl and CGI. The two excellent books that somewhat fill the gap are Learning Perl and Elements of Programming with Perl, but they don't take that approach. Of the books that do, most have insecure, buggy, clunky code and teach bad habits.

So I'm thinking of writing a proposal for my second book... teaching absolute novices how to program Perl to write CGI programs.

Or I could learn to get up before 9 am and get a real job like my brother...

Busy, Busy:
What's this oddly-named guy doing lately? Well, the book editor preferred chapters one and two as they were last Thursday, as one humongous chapter one. I spent Thursday afternoon and Friday splitting them apart! Mine is evidently not to reason why, mine is just to type in vi.

After earning certain fame, I went on to a few other things. First came Devel::Constants, which endured a name change. I think it's a solid idea. perl-modules does not exactly agree. Hey, if Damian can get away with evil ideas, why not let me let people localize constants? (Of course, Damian could probably remember the name of that otherwise forgettable ST:TNG episode where Q loses his powers and thinks that changing the gravitational constant of the universe is an acceptable solution to the problem of a moon crashing into a planet.)

Next up is Regexp::English, which needs a bit of a rethink for capturing matches and a bit of documentation before public release. It's almost there.

I'd also like to bolt a nicer interface on to my rewrite of File::Find. Blame it on gnat. It is 50% shorter than the previous version, and passes all tests on my x86 Linux box.

Then there's an idea for a Parrot disassembler, which would be the basis for a bytecode analyzer like the Stanford checker...

But I should leave the house tomorrow, at least for a few minutes. They don't deliver groceries here. It's probably for the best.

An Audience of One is Still an Audience:
A gentleman named Doug sent feedback today on my DBI is OK article. He noted that there's no way to call finish() when using my bind_hash() subroutine. Oops. Change the return to:

    return (\%results, sub {
        return $sth->finish() if @_;
        $sth->fetch();
    });
Then you can just say $fetch->('finish') or $fetch->(1) or whichever argument you prefer instead of fetching the entire result set.

It's nice to know people are reading it (Tim Bunce sent some very kind words when it first came out), and nicer to know that the ideas are useful. Next time maybe I'll think through all of the possibilities first.

Yeah, right. Then I wouldn't be a programmer. I'd be God.

It Was the Bit about Malda:
I finished the editable draft, cleaned up the markup, verified all the links, transformed the raw XML into HTML and eyeballed the figures. Everything looked great. I packaged everything up, and send it off to my editor.

A couple of minutes later, my e-mail client started downloading a couple of megs of mail. Maybe my uncle had sent another MPEG of the World's Worst Olympic Athletes Getting Hit in the Groin (When Parallel Bars Attack).

It was the book. Rejected by e-mail filters with the odd message: Message refused because 550 5.7.1 pornographic email rejected.

It's true that I worked for EDC (corporate motto: Pants are Optional), and once, a long long time ago, my mother took a picture of me in the bath (I was 4?), but really, the worst thing in the book is a screenshot of my custom color scheme (#339999, #993399, #999933, #000000, #FF0000, #00FF00, #0000FF) with the Aqua theme in Mozilla.

It's bad, and no one under 17 should be exposed to it, but

it's poor style, which isn't immoral yet anywhere except California.

18 Sep 2001 (updated 18 Sep 2001 at 03:23 UTC) »
Interpreting Prophecies:
As a public service to my fellow hackers, I've discovered the true interpretation of a very portentious Nostradamus stanza. It is reproduced here for your benefit.

When those of the Northern Pole are united,

The great rebellion of Santa's elves is over, with Mr. Pointyshoes and his elite troops crushing Mr. Spongypants and the fierce wooden-hammers-only faction.

In the East will be great fear and dread...

They are afraid they will only get coals in their stockings.

One day the two great leaders will be friends;

Mrs. Bush having sent Mrs. Blair a nice fruit basket on the birth of their daughter.

Their great powers will be seen to grow.

Exposure to radiation gave them the ability to see through walls and bend steel with their bare hands. Cosmic rays, and they'd have been able to cut taxes.

The New Land will be at the height of its power:

5'11". It had grown another inch overnight. I remember when it was knee-high to the Old Land.

To the man of blood the number is reported.

32 - 7 - 16 - 45 - 23 - 11 and 8. Darnit. He didn't even get the Powerball. He'd be stuck mopping the emergency room forever.

120 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!