Like the script? Keep it updated by sending me a buck or two!

I've released a new version of my World of Warcraft Quest Tracker today:

  • updated to the latest version of Allakhazham's site.
  • fixed bug where level filters missed -1 leveled quests.
  • ignore a healthy dose of broken "Seasonal" database entries.

You can see the latest output for my level 60 Troll Shaman, Morbulin, here (which I'm no longer playing, but that's OK). Thanks to one of my users for letting me know it stopped working - he's been working on finishing every quest available, becoming the first in the world to do it (or, at least, track it). This new version of the script should be more reliable when it comes to new categories and zones being added (i.e., it will hopefully learn of all the new Wrath of the Lich King areas without requiring new code changes).

Back on October 7th, 2007, I wrote that I was a judge over at Adrian Hon's newest project, Let's Change the Game, "a competition to fund development of an [alternate reality game (ARG)] that would raise money for Cancer Research UK". Besides building the Let's Change the Game site (in Drupal), I continued my involvement in the project by becoming an advisor to the winning team, Law 37. Now, a year later, the winner of that competition has just launched the alternate reality game Operation: Sleeper Cell, another Drupal site:

"Operation: Sleeper Cell will see teams of players from around the world working together to solve 'puzzle cells' in a grid. By donating money to the game, they can unlock extra cells for all players, and also advance the story, which takes place over websites, blogs, Twitter and even in real life."

My advisor role largely played to "how do ya do this in Drupal?" so, gladly, I've remained out of the content, missions, and puzzles produced. Gladly because, with the site launched, it looks so tasty that I'm quite happy to be along for the ride with all the other players. I hope to be sponsoring some cells, with proceeds donated to cancer research, sometime soon. Follow the progress of, or sponsor, team #swhack.

Operation: Sleeper Cell launches as another alternate reality experience closes: Liberty News, a companion to the BBC's Spooks: Code 9 from Kudos. The site was created by Adrian Hon's Six to Start and was built in Drupal by yours truly. Unfortunately, an IP filter denies non-UK residents, so you'll need to use Anonymouse.org to see it.

I've been a long-time fan of Warhammer, and preordered Warhammer Online months ago (yep, the sold-out Collector's Edition) too. Fiddled with the Open Beta a bit, but my real efforts are now being devoted to Morbulette, a Chaos Magus on the Ulthuan core server. Friend me and watch me strive for every achievement, every title, and every quest, in only 2 hours every week night. I estimate... 32 years to go. Woot!

Zodiac, a serial killer whose identity still remains unknown, continues to make headlines, most recently in the murder of Megan Touma, when a newspaper received a letter from someone purporting to be the killer, who will "start using my role-model's signature". A friend on IRC noticed that the John F. Kennedy page on Wikipedia had been defaced with a message, purportedly from Zodiac. Within 30 minutes, the message had been decrypted:

vandaljzing wikipedia is so fun it is funner than killing people or having sex because when you kill people you only destroy their bodys but when you vandalize this website you kill the soul of the poor queer pig slaves that devote their lives to the embarkment that i am now destroying with my own bare hands

Rough timeline of events:

  • Google indexed the same message in the William McKinley Wikipedia article.
  • sbp noticed that there were 26 unique symbols, suggesting a simple substitution cypher.
  • sbp provided a simple symbol-to-character hash, for use in online solvers.
  • ianivs used a cracker to solve it in 6395041 attempts.
  • The folks in #wikimedia found the template changes.

Over at Drupal Tough Love, chx and I just reviewed Signatures for Forums 5.x-2.3 which "provides user signatures that will be familiar to users of popular forum software" such as "the administrator can choose the input filter for signatures", conditional signatures that are hidden "if a post is under a particular length", and showing the signature only once per conversation.

Friend and well-known cryptozoologist Loren Coleman writes that his International Cryptozoology Museum is in dire need of financial support, else it might be closed down due to an IRS audit:

"The [IRS's] audit has gone to five or more levels of meetings and appeals, as I have attempted to explain what being a “cryptozoologist” is all about, that I do make my living this way, and that the museum is an essential part of the overall plan ... To the IRS, the museum verges on being a hobby ... and it needs more income (even if donations) to support itself ... The museum has to make money, or it ceases to exist ... I need to get donations to pay the mortgage for the house-museum where it is now, to keep it from foreclosure, and to pay for the other bills associated with the museum."

I've known about the museum for years and, altruistically, supported it in any way I can. Unbeknownst to me, I was one of the first two to contribute long ago on May 14th, 2005. Back then, Loren had some books donated that reeked of cigarette smoke and, due to allergies, needed to find them a better home. I offered to take them off his hands but, more importantly, to give him some cash to hunt up replacement copies for the museum.

This weekend, I offered my continued support:

"In the last 24 hours, the first “Museum Principal Donor / Life Member” contributed $1050.00. This individual “Morbus” challenges others to join him in donating at the $1000 level to [meet] the goal of keeping this institution open."

Please, do what you can to help the museum. The alternative is that this publicly available resource, in a field already entrenched with a lack of answers, will disappear. Even those who aren't involved or interested in cryptozoology should appreciate the need to keep this information easily available and approachable.

Friend Mark Bernstein promotes "software as craft" with the phrase NeoVictorian Computing. Jeremy recalls that "Part of his argument is that software creators have something to learn from the ideals of the arts and crafts movement: the software world is full of soulless bits and bytes, and maybe we would all be a little happier if we embraced handcraft ... During the talk, I remember Bernstein proposed that software creators should sign their work as a painter signs a painting, which is a lovely visual metaphor that I hope to keep around." And Greg Wilson has a book called Beautiful Code.

Happily, I already agree - they're all echoes of my own belief in "code shui", be it XML (a Morbus Rant from 2002 on "why beauty is important in computer file formats") or in code from 2004 ("His style is quite unique. [Morbus' AmphetaDesk] source reads almost like a paper, instead of terse code. He documents his code well and I've thus far found nothing that was very hard to understand. Best of all, its so un-Perl. He doesn't seem to use really clever tricks to do simple things, so the code has been very easy to understand").

In the Drupal content management system, a "node teaser" is small bit of content used to encourage you to "read more" of the post. Drupal can set the teaser to the entire length of the post (typically used for blogs where you don't need extra click-through), or can automatically generate the teaser to a specific character length. In the past, you could also manually generate teasers by including <--break--> in the node's body. In Drupal 6, manual teaser definition has been improved with JavaScript wizardry, along with a new checkbox: "Show summary in full view".

But there's a small problem with the use of the word "summary". Generally, when a Drupal teaser is included in the node's full view, it's because it's the introduction of the node itself, not necessarily a teaser or summary of the entire body. Over at gamegrene.com, a node's teaser is, in fact, a summary of the node, and is also displayed on the full view itself. It's not the first paragraph of the article but, rather, is styled differently to provide an overview of what you'll be reading. IBM uses the same model at their developerWorks.

If you placed a "summary" at the beginning of the node's body, unstyled, readability would tend to suffer - you'd have the summary (node teaser), and then, theoretically, the introduction (node body), with no clear indication that two different types of content, with two different purposes, are being served.

As I've been working on moving Gamegrene to Drupal 6 (in time for Dungeon and Dragons 4th Edition, coming June 7th), I had to solve the problem of: how do I theme the teaser differently than the body inside node.tpl.php? By the time the template gets the node data, only $body and $content exist; $content only contains the teaser (for list views) or body (for full views). The teaser never exists in a node's full view as its own variable.

To solve this and get the same view as seen on IBM's developerWorks, I used themename_preprocess_node() to detect if a teaser has been manually set and that the "Show summary in full view" checkbox has NOT been enabled. When that checkbox is checked, Drupal automatically adds the teaser to the node's $body (or $content) - it treats the teaser as the introduction to the post, not an actual summary of what you're reading:

function phptemplate_preprocess_node(&$variables) {
  // we like to display teasers on the node view pages in a different style,
  // but only if they were NOT set to "show summary on full view" (which seems
  // backward, but the implication with that checkbox is that the teaser is
  // PART of the node's body, instead of an actual summary of the entire
  // node's body). if a node's unbuilt body starts with <!--break-->, then
  // a teaser has been manually set, and "show summary" is not checked.
  if ($variables['page'] == TRUE) { // only do this on full page views.
    $node = node_load($variables['nid']); // we reload the node because
    // by the time it gets here <!--break--> has already been filtered out.
    // this if logic stolen from node.module's node_teaser_include_verify().
    if (strpos($node->body, '<!--break-->') === 0) {
      $variables['style_teaser_differently'] = TRUE;
      $variables['teaser'] = check_markup($node->teaser, $node->format, FALSE);
    }
  }
}

Note that the extra node_load() is nothing to worry about - since the node has already been loaded earlier in this execution, node_load() will happily return a cached version, saving us any performance concerns.

Now, it's just a matter of displaying it in node.tpl.php:

<?php if ($style_teaser_differently) { ?>
  <div class="node-summary"><?php print $teaser; ?></div>
<?php } ?>

Comments and concerns? Note that, for my particular needs, I wanted this entirely in a theme - I'm not changing data or its structure, merely its display, so doing this sort of stuff in hook_nodeapi() with a module's overhead would be a little much.

You're right: this didn't come any sooner than any of the others.

  • A Comprehensive ARG Report from the PMs: "However despite the great critical success of MeiGeist the producers [of the ARG] have been left without anything to show financially for what was in effect a twelve-month project with global impact. Having said that, there is a postscript - the increased reputation gained from the game’s success has drawn in valuable commercial work for the producers."
  • 10 Books That Began Your Journey Down the Rabbit-hole: "Maybe they were the books that sparked your search for the truth about JFK or some other world event, about yourself or about that whole elusive thing called Reality. Perhaps these are the ten books that got you questioning all the received truths fed to you in school, by the media and by the well-meaning and equally deluded folks around you. Or maybe these are the ten books that brought you to that jaw-drop moment." Some of these now reside on my reading list.
  • The 8 Most Needlessly Detailed Wikipedia Entries: "Unlike the wordy, full-of-itself recap of 7th Heaven, this series manages to sum itself up in a mere 6,787 words, and, it should be noted, seven of those words are "ass," and three of them are "hooker." Can you guess how many times 7th Heaven mentions ass? Not nearly as many times as it does "church," we can tell you that." This, and the other entries, are pretty hilarious.
  • Adventures in particpatory, interactive, rock'n'roll storytelling.: Great writeup. "Let's talk about this sort of meta-, user-generated-content for a second. In a very real sense, it is a significant and valuable part of the experience. If you joined the Perplex City experience a year in, the only way to conveniently catch up was to consult the player-created resources. Baudrillard once said "the territory no longer precedes the map." Well, in this case, it's more accurate to say "that the map is a big part of the territory itself." If you can encourage your readers to make this sort of content, they aren't just doing something "about" the fiction, they're adding to the experience of the fiction - whether you like it or not."
  • Who Owns Hues?: "Until recently, the importance of color as a brand identity wasn’t a big legal issue and the courts were lenient. It was an open question whether trademark law protected distinctive colors that had become strongly associated with a particular product or manufacturer. Today a color war is exploding and the use of color is generating unprecedented lawsuits ... Here are four examples of true "color" trademark infringement lawsuits."

My second daughter, Scarlett Emily, was born April 16th, 2008.

Julia greets Scarlett

Julia meets her new sister.

Suspicious of butterflies

Scarlett, wide awake and physical, is suspicious of the butterfly.

Syndicate content