Thursday, 29 May 2008

The Maven Kool-aid

I'm sipping from the tub of Maven kool-aid being passed around at work.

mmmmm... my favorite, java flavored.

Posted by caffeinated at 7:32 PM in nerdery

Wednesday, 21 May 2008

A work in progress

I'm writing a Javascript Inns of the Empire builder. Wholly based on the work by Henrik Grönberg, presented in the Liber Fanatica, Vol. III.

This is a preview…very close. Just working out the ugly details of the mutators (heh, like that... mutators!? How apropos!).

meta-photo-album=inns.png meta-photo-album-thumbnail=innsThumb.png
Posted by caffeinated at 6:32 AM in d10

Monday, 19 May 2008

No roof


Posted at 9:02 AM in bad cell

Google Analytics

ACD is going to get an upgrade to traffic reports. I now possess mad Google Analytics skilz.

I'm also tempting my sidebar and post-only, e.g., permalink, view with Google Ads.

Yeah, I'm selling out. But I might blog about the experience too. I'll be comparing the reporting with awstats, my current reporting engine (and one that I'm very happy and comfortable with).

Posted by caffeinated at 6:13 AM in kaffehaus

Sunday, 18 May 2008

and back to the regular scheduled programming...

Played some WFRP yesterday (Samstag). Good session. It picked up where we left off about 3 weeks ago; a session that was a tad bit wandering, without focus, and played with a tired GM and not at least a few exhausted-after-a-crazy-week players. Things in that previous session presented things like, the coaching inn named "Star's Buck."

That's right. I have canonized the inn at the end of the Nuln Road in the Reikwald, the first way point between Altdorf and Bogenhäfen…Star's Buck.

The player's have accepted a quest from an innkeeper in Weidmarkt, on the River Reik, that will take them to the Grey Mountains to return a Rune of Fortitude to a dwarven emissary to the garrison at Helmgart1; oh, and return to Weidmarkt with dwarven ales.

There were a couple of threads from the last campaign that needed development. The players (and their characters) have been exposed to the Skaven conspiracy in the Empire, fighting the Clan Moulder in an ancient, now lost, elven ruin. As part of an expeditionary force from the Church of Sigmar, they returned with their lives and 2 templars (of 12 that went with them, one of which was a conspirator himself). In the same session that established Star's Buck, was one of the surviving templar's delivering, by street urchin proxy on a crowded street, a small polished stone to the priest PC. This stone was revealed to be enchanted by the priest, but that was all.

The party ingratiated itself with a caravan merchant at the Star's Buck and was hired on as protection, serving under a Bretonian Knight Errant.

In this session I revealed the nature of the enchanted stone2. It imparted a message by dream to the Priest of Sigmar PC. Now, this is the funny part.

At the beginning of the session I handed the PC a sealed note with the instructions not to open before instructed. When the party stated they were turning in for the night, the PC was allowed to open the note. It read:

You have a dream:3

Gunthar, a templar from the expeditionary force to the ruins, stands over an altar of Verena with a Priestess. He appears exhausted, yet reverent.

Gunthar fights the Skaven at the ruins. The fighting is blurred with more Skaven and fighting in an alley…maybe a room…where ever it is it is dark and dirty. Teeth, fur, blades, blood. Then more fighting at the ruins.

Gunthar cuts another templar from a rope in a room. He is in tears. You're not sure you recognize the other templar. Maybe…but for the boar teeth and horns.

I allowed the player to read it and hold onto the note for a while. I don't recall him looking at it again, but when he decided to share the dream with the others I asked for the note to be returned. Laughing ensued as he recounted the dream:

One of the templars, I think the one at the bridge that gave me the stone, prayed with a priestess of Verena. Then he was fighting Skaven at the ruins. I think he killed another templar too.

I don't recall who said it, but the axiom “So, you had a dream and can't remember it,” was invoked.

I did allow the player a fortune point roll against his intelligence to remember a couple of important details, like the mutations and the rope. But left the rest of the interpretation to the players.

It was a good session all around, and the quest for beer continues.

How did you interpret the dream? Your comments welcome.

  1. [1] A quest for beer? Sorta, but it also dovetails nicely with the dwarf's career exit of Runebearer. I'm not running a dwarven forge campaign, so becoming a Runebearer needed some exposition.

  2. [2] A simple Verenan Lore enchantment of The Past Revealed, in reverse. It is not precisely the divine magic described in the core rulebook, and possibly Dream Message or Guiding Dream from the Lore of Morr was better suited, but such is my flying-by-the-seat of my pants GM'ing style. Now, I know better.

  3. [3] The fact that the PCs name is Martin should not go unnoticed.

Posted by caffeinated at 7:56 AM in d10

Saturday, 10 May 2008

Robert Zubrin's Energy Victory

This is an important issue. It is not about code or gaming. It is decidedly political, but neither left or right. I want to spread the word that there are answers and solutions, and the West must act and throw the “black gold crack pipe” to the gutter.

Robert Zubrin may have found “the place where you tap the problem with a hammer and the whole thing falls apart.” The idea is decidedly capitalist and market driven, but convincingly simple. Robert Zubrin is the author of Energy Victory: Winning the War on Terror by Breaking Free of Oil.

Maybe this makes me a “green gamer.” But for certain it makes me an activist for real alternative fuel sources. Conservation is nice, e.g., CFBs, but it is not an energy policy. Conservation cannot change the “trump suit” in the energy game. Reduce use and you may reduce demand, but OPEC just reduces production and the price remains fixed. The economics are too elastic and favor OPEC, not a “Carter-esque conservation movement,” however noble or feel good it might be.

This is greater than a US problem. It is an international problem with real good guys and bad guys. I encourage you to read Energy Victory. At the very least listen to the podcast or watch the CSPAN presentation. Both are very encouraging, as the solution is at our doorstep.

Read the book

Buy Energy Victory at

Listen to the podcast

An enlightening interview that is a call to action with the author by Glenn Reynolds and Helen Smith at

See the author on BookTV

Robert Zubrin makes his case at the Ethics and Public Policy Center in Washington, D.C.

Visit the website

Learn about the Hydrogen Hoax

The Hydrogen Hoax was architected by a former Bush staff member, and, now, paid lobbyist for the Saudi Arabian government (that should perk the eyebrows of those with BDS).

Learn how Kudzu can be a solution

There are enough crop residuals, not crops, to produce all the fuel needs of the U.S. And it is global warming neutral! Already I hear an undercurrent from those more left than me, denouncing yet another energy solution for a global warming concern or the environmental crisis du jour. Yesterday it was nuclear energy, today it’s oil, tomorrow it will be ethanol and methanol. While countries like Brazil gain energy independence and have cleaner, clearer air, the US will paralyze itself with indecision and inaction, and remain beholden to Mideast oil and OPEC members.

It is time, 34 years belated, our leaders step up to the plate and take bold action!

Posted by caffeinated at 8:51 PM in kaffehaus

Wednesday, 7 May 2008

Roof collapse, part 2

I have to figure out how to both clobber the default text my service provider stuffs in an emailed photo, and how to add something of a post to the same.

Until then, let me explain, no, there is too much, let me sum up.

The subject below is that of an auxiliary building to a long since gone Wilmington, DE train station. Today, while I was instructing a coworker on the madness of Interwoven XML, everyone heard a thump outside. I dismissed it as a loader filling a dump truck (there is a lot of construction around us). The "ewwws" and "ahhhs" told a different story.

I stood up to look out the panoramic glass, with nearly everyone on the floor, to a see cloud of dust drifting across the street.

It cleared quickly to reveal that a good quarter of the façade of the historical building imploded or in the street below. I was immediately worried that workers inside (I had seen a number of them in the morning) had been trapped. The lack of urgency of two of them in hard hats told me that no one was harmed.

Then I worried for the 911 operators being flooded by phone calls from everyone calling 911.

Then I went back to work.

Posted by caffeinated at 9:31 PM in bad cell

Roof collapse


Posted at 5:57 PM in bad cell

Tuesday, 6 May 2008

Code Horror Zwei

I came across this piece of code poetry today and laughed.

Date currDate = new Date(); 
Date expDate = null;
int array[] = new int[3 ]; 
if(expirationDate != null && !"".equals(expirationDate)){
    int i = 0;
    StringTokenizer st = new StringTokenizer(expirationDate,"/");
    while (st.hasMoreTokens()) {
        array[i++] = Integer.parseInt(st.nextToken());		

    expDate = new Date(array[2 ] - 1900, array[0 ] - 1, array[1 ]);
    int x = expDate.compareTo(currDate);
    if(x <= 0) {

It took me a half-hour to figure out what the developer was doing: compare two dates and determine if one was before the other. How he got to the above is lost to his fever dream.

Here's how I refactored this horror...

Date currDate = new Date(); 
Date expDate = new Date();
DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, Locale.US);
    expDate = df.parse(expirationDate);
    if(currDate.after(expDate) {

At some point in our conversation, I think he said, “It works.” ~o)

Posted by caffeinated at 10:23 PM in nerdery

Sunday, 4 May 2008

I Am Legend: a review

Horror, as I told a friend just last night, is not something I seek out. If so, it is usually pulp horror (Blade), or campy horror (Lost Boys). I did like 28 Days Later.

I Am Legend is 28 Days++. I was literally on the edge of my seat for the first 2/3.

The last 1/3 though was, well, long.

I think I wanted more closure on the “zombie love story.” Wha? Clearly, there was something about that one zombie’s determination after Neville captured “the girl.” There was something in the passion of the zombie. The trap, mimicking Neville. The dog pack. The “leadership!” And it all boiled down to the zombie just committing suicide, for all the determination to break down the wall, with Neville pulling the pin.

And, I’m sorry, but three years would have exhausted any food supply for the zombies, whatever that food supply was. 28 Days Later was much better about that: the zombies so weak, they couldn’t even stand up.

Unrelated to I Am Legend was the Lost Boys: The Tribe trailer. Here’s my 2 brass pennies on this MTV straight-to-DVD vehicle. It's going to be Crap, because the trailer is painful to watch.

Only one of the Frog brothers? You can't have a Lost Boys sequel with only “one Corey.” Why waste the film stock on this if you’re not going to get both Coreys, Patric, Gertz, and Wiest. They all survived and the actors are all still alive. I think the nod to the original with only Feldman, painfully delivering lines like "...Edgar Frog: board shaper, vampire hunter...," or something like that, say a lot about the reason it won’t have a theatrical release.

Posted by caffeinated at 1:16 AM in 0xDECAF

Saturday, 3 May 2008

Nerd dump

I picked up three O’Reilly Short Cut PDFs last night on some topics of great interest to me personally or professionally.

What’s New in Apache Server 2.2 is a pretty good introduction to some topics I have been familiar with but never used effectively or investigated. Of particular note is mod_ssls support for TLS upgrade:


mod_ssl now supports TLS upgrade. This allows an unencrypted connection to be upgraded to a secure connection. Among other benefits, this removes the restriction to one SSL host per IP address that has traditionally applied to SSL.

Unfortunately, this is not yet widely supported by browsers, and so it is of limited value. However, the presence of a server implementation should encourage browser developers to implement this functionality.

This is a very important feature. If you’ve ever had to budget IPs and SSL certs costs then the impact of this feature is big. But alas, I can’t find the list of supporting browsers to share.


TLS Upgrade is better known as RFC 2817. Indeed, it is not widely supported by browsers. Firefox 2 and IE 7 do not. Firefox 3 will. IE 7 never. Not sure about Safari. But it seems that RFC 3546 has more adherents. FF2, IE7 already support RFC 3546 (Safari again absent), which specifies a Server-Name-Indicator (SNI), not unlike the Host header today in HTTP/1.1. SNI support is provided in Apache 2.2 through mod_gnutls. mod_gnutls is still immature, though actively developed.

The caveat to this entire discussion then is: Use at your own risk. And if you work at a bank, don't use at all. ~o) Zazzle Store Online

A close friend of mine is a senior committer to CVS and runs Ximbiot LLC, the premiere CVS support company. He just sent me a sample of his new Zazzle line of tees and mugs. Check it out at Some great message tees for the geek.

And you wondered why I discuss arcane topics like source control on this blog. D’uh.

Posted by caffeinated at 10:38 AM in nerdery

Thursday, 1 May 2008

CVS and case-sensitive drives

As it turns out, sometime ago I built a newer version of CVS than that was provided by Leopard. It broke something important: the ability to use case-sensitive features in my sandbox.

When building CVS from source the configure script will determine, automagically, the type of file system CVS is building on. I noted in To Partition or Not To Partition that my employer's source code sometimes contains different files noted only by the case of the name.

Mac and Windows choke on these names, so I created a case-sensitive partition to make CVS and SVN checkouts work.

To get CVS to work in a case-sensitive file system, you have two choices:

  1. build CVS on a case-sensitive file system,
  2. or pass --enable-case-sensitivity to the configure script

The latter corrected my problems.

Posted by caffeinated at 10:07 PM in nerdery