<M <Y
Y> M>

: Doh. Inform sure doesn't make it easy to distribute the source for your games. There's no clear statement as to whether or not you're allowed to distribute modified versions of the library. I was going to distribute library diffs, but it turns out that I wrote Degeneracy with an ancient version of the library and I can't find a pristine version of it anywhere. The latter problem is my fault, but it's excaberated by the Inform licensing madness.

: No rest for the wicked. I just wrote the Python script which generates some important Inform code for the IF game I'm entering in LoTechComp, so now it can be extended by just adding to text files. I'm sending out copies to the usual suspects; let me know if you want to help me add text, robotfindskitten style. The knowledge and skills of history/mythology buffs and AD&D geeks (I still can't bring myself to go back to calling it "D&D") are especially valuable.

My generated code is less space-efficient than my original hand-hacked version; the game is now a whopping 13K (as opposed to the previous 11K).

: Apparantly, we have gone onto Nowhere Daylight Time and nobody told me about it. I first suspected when I noticed my clock was an hour late yesterday. I only noticed this because at 5 I thought it was 4 and I missed my chance to listen to a radio show which the promo makes seem like a pale American imitation of My Word!. Who decides when this time micromanagement happens? Need it happen in this day and age?

ObSegfault: DST Bug causes Widespread Panic. "In this reporter's opinion, what Los Angeles needs is more freaky chicks with big hair and guns, who ride around on motorcycles and dispense vigilante justice."

: Jason on issue tracking: "I have always backed the bug cut plan. Some say it gives too much to the top 1% buggiest developers. But I say, everyone who makes bugs, deserves relief."

: So it turns out I was using the 6/10 Inform library for Degeneracy, so I made some diffs and packaged up the source code. Here's the April link to Degeneracy. I should add a third navbar up at the top that I change when I add a new deliverable to the site. Note: the presence of the word "deliverable" in this entry signifies irony.

I'm uncertain as to the value of releasing the source code to and bug list for a work of IF immediately after releasing the work itself. Of course, those who want spoilers at any cost can always disassemble the .z5 file. IF is sort of a special case in programming, and even in game programming, since it's so story-driven and artsy. I don't think I could develop an IF story publicly. I mean, I could do it. Psychologically I would adjust. But it wouldn't feel right, and I don't think it would be as good as it would be if I was able to sit on my vision for the game and not tell anyone about it until I was ready.

That said, I think the basic game structure of Guess the Verb! could have been done a lot better, and that a design session with someone else early on could have made it a much better game. (See upcoming GTV! post-mortem.)

Speaking of which, I really like the developer-written game post-mortems at Gama Sutra, even though I've never played one of the dissected games. I wish that post-mortems could be done for more types of software, but games are 1) relatively unimportant, obviating the need for compulsive litigators to sue because a developer mentioned publicly that a product actually has a defect; 2) a category where, eventually, you can actually claim to be done, rather than just having attained a certain version number.

Back to IF: a whopping *two* bugs were found in the djinn game. I am amazed and flabbergasted, and both bugs have been fixed. It's true that there is always one more bug...

: This is the police! We have you surrounded! Stand down from the funk!

: "A Hit! A Very Palpable Hit!" -- Adam Thornton on Degeneracy

Also, I have coined a phrase: "constructive carping". I'm not sure of the precise definition, but it's sort of the Dan Helfman school of software design.

: Seth Schoen: "A robot may not injure a kitten, or through inaction..."

: Man, that game of Illuminati took a long time. I think it's now well-established that four is the optimal number of players.

: Degeneracy has started a flamewar on rec.games.int-fiction. Unfortunately, it's not the flamewar a Molotov cocktail-throwing author like myself hopes his games to ignite, with rival factions slandering and praising my game. The proximate cause of the flamewar seems to have been a mistaken belief on one person's part that the game did not actually exist (despite its easy downloadability) because of the proximity of its release date to April 1. At least I have a wonderful new pull quote:

"[B]oy was that wacky." -- Emily Short

: Confusing Headline Watch: Napster Downloads Rocket.

: My mother is coming up for the weekend. I am frantically cleaning my room. It's like I'm back in high school.

: Actually, I guess it's more like my first year in college.

: I used to get a lot of Japanese spam. Now my spam source has moved westward and I am getting Chinese spam.

: Speaking of which, I'm thinking of a game in which players compete to get the best response to the junk mailings they send out. It wouldn't be done with actual junk mail, of course, due to ethical conerns and mailing costs.

: It's easy to shop at Bath and Body Works because there's a little shelf that says "Men" and you can just pick stuff off of there and it's all pretty interchangable.

Actually, I can see how this might not work if you were a woman.

: First, Greg came up with Advertising Slogans Targeted at the Lovecraftian Elder Gods. By these dark pitches were sinister forces awakened, and ere long did tentacles reach out to adopt and to crush mankind's only weapon. How else to explain the fact that Kevin Maples is getting eldritch spam?

Reclufteg Ftalabesp Trastrar Echrort
Bedradric Nfatusorm Rcytchep Achrons

Actual subject lines from actual spam, folks. Of course, it's just the usual make-money-fast crap.

: Gads! Now I am getting the dread spam!

Why wait another SECOND when RIGHT NOW your finite, temporal body could be wracked with MONEY!?*

Thanks, Kris.

: Kevin: "Oddly, Bedradric Nfatusorm Rcytchep Achrons ends with 'Please, serious inquiries only.'"

: Life sort of imitates Segfault.

: Just what I need right now: How to Build A Fort That Girls Will Visit.

: Fully half of the "Tonight's Episode" things I've put on Crummy recently are the doing of Jason Robbins. His artistic facilities seem especially well suited to the Quinn Martin episode title, though it's only occasionally that he comes up with the non sequitur or self-contradictory kind I like.

I'm keeping track of the titles so that once I have a hundred or so I can cycle them the way I cycle the quotes. So far I only have 21.

: This is really cool. Daniel and myself are testing a new infrastructure we wrote that helps you write your app to deploy across multiple JVMs. We've got some classes that let you broadcast data structures across JVMs, and some classes that let you have a cross-JVM singleton. It'll go into Turbine eventually so that everyone can use it.

: The old picture of me in self is over two years old, so today I changed it to a picture taken today by Mike Sussman. Actual Business 2.0 cover! It's ungrammatical, but that's the New Economy for you.

: Seth Schoen's latest diary entry quotes Degeneracy. It also has a summary of the Richard Dawkins speech I was too lazy to go and see, and which allows me link to it without making it look like I'm compulsively linking to anyone who mentions my game.

: Crouching Robot, Hidden Kitten

: The (appalling) theme song from the Marx Brothers movie Horse Feathers is titled "Everyone Says I Love You". This confused me to no end until I heard it sung. It should really be called "Everyone Says 'I Love You'". Punctuation makes the difference.

The one redeeming feature of the song is that Zeppo sings it at the beginning of the movie and gets it over with, and then at intervals later on the other three brothers perform travesties upon it. Groucho:

Everyone says "I love you"
But just what they say it for I never knew
It's just inviting trouble for the poor sucker who
Says "I love you"

Then the musical phrase that leads into the next stanza sounds like the "Your way, right away" riff in those old (though postdating Horse Feathers) Burger King commercials.

: Susan Kelly was asked yesterday whether vegans were allowed to eat snot. She said "If someone gave it to me of their own free will, then yes, I would eat it." Would, mind you.

Susan meets all the requirements for me to link to her journal on the navbar, but for some reason I've been resisting it. It used to be because her journal was completely illegible, but now only half of it is completely illegible.

: I just realized that there are ancient [Chinese] NYCB entries in which I talk about trivial things that, in hindsight, were indirect triggers of major events in my life. The third entry for 1999-07-12 seems like the best example.

: Well, that was more fun than I've had in quite a while. I spent last evening with Sumana and Kevin and Kevin's friends, and then this morning with Sumana and her friend Dan. A sample of the comedy gems that came out of this meeting of the minds:

Pictures from Kevin's camera coming soon to a theater near you.

: Memo to myself: do the dumb things I gotta do. Touch the puppet head. Fix the interpeter-specific bugs in the djinn game and submit it before midnight tomorrow night.

: Bugs fixed. Djinn game submitted. I just realized that I did a really stupid thing, generating code when i should have had static code and a generated data structure. Fixing now.

: Memo to myself #2: I have an appointment on Friday at 10:00 to get my car's oil changed.

I would just like to point out that in Bakersfield, you do not need an appointment to get your car's oil changed.

: I'm off to Berkeley to behold the mechanics of comedy.

: Comedy last night. Which, presumably, means tragedy today. More later; I just found out I have to be at a meeting in an hour.

: Argh!

: When you hit control-C in bc, it says "(interrupt) use quit to exit." Why not just roll with the punches and exit?

: Banner ad seen on Kris' message board. It advertises its own absence.

: I got my car's oil changed. Not mentioned on the invoice was the fact that, for my convenience, somebody had smoked a big ol' stogie inside my car while performing the twelve-point maintenance checkup.

: I recently discovered that Games Magazine, beloved of my youth, has resumed publication. They even still have the "spot the fake ad" feature, although it's not very difficult because it's the only ad in the entire dang magazine!

: Finally done with The Pope's Rhinoceros. Not so much a novel as a number of set pieces which are tied together at the last minute and in the last fifty pages. But what a tying together. If the whole book were as spectacular and farcical as the ending, it would be as breaded clams for my endorsement mill. But as it is, I am left uneasy about telling other people to slog through these same 600 pages in search of the nuggets of brilliance. I feel like someone might feel after playing Degeneracy for the first time. Is that really all there is?

Also, it is interesting to note that the only place the word "rhinoceros" appears in that book is in the title. Presumably this is for reasons of historical accuracy.

: Kevin made me do this.

: Funny Banner Ad Watch is now a NYCB feature, supplementing Funny Headline Watch. Today's entry:

Type mismatch: Could not cast "Technical Paper" to type "RTOS"

: Thanks to a brainstorming session with Sumana on Saturday, I can give you a new "Tonight's Episode" on Crummy every weekday for the next two weeks. Assuming I remember to change it. I should probably write a tool to reduce the workload involved in changing tonight's episode.

Also on Saturday I articulated my idea for the football mascot of a deconstruction-heavy university: The Fighting Other.

: I was wondering when this was going to happen.

: There is an anime-inspired comic convention whereby nervous comic strip characters produce enormous drops of sweat in the vicinity of their heads. I wrote to Kris telling him I thought it would be a good idea to do a comic in which this was exploited as a water source. His reply:

A similar convention is taking place, where many innocent, virginal gawky male anime characters are exposed to girls hitting on them, winking at them, etc., and the gallons of blood rocketing out of their noses are collected and sent to the Red Cross.

I think he misunderstood my usage of the word "convention", but still, what a snappy comeback!

: If you thought the GPL was sappy, take a look at The OAL.

: Dan and I wrote a whole clustering architecture and a mess of other scalability things for JXTA, and none of it got used. I'd complain, but it turns out that I am not entirely blameless in this matter.

: I backported the beautiful caching (its actual, technical name), so I can now, in good conscience, complain. Argh!

: It's a foggy night here in San Francisco, not my hometown. It's the sort of night that makes this city look like the future noir deathtrap that it is. A "Live the good life on the offworld colonies!" night.

You may have noticed that I am not particularily fond of San Francisco. I've decided that I don't really like L.A. either, so moving back to L.A. is not the answer. What is?

It's so foggy and gloomy tonight... How foggy and gloomy is it? It's so foggy and gloomy that I'm posting deep, searching questions about my life to my weblog.

: I don't really want to go to sleep, so I'll explain the beautiful caching a little bit. Helm has an access control list which grabs a bunch of information from the database when you log in. Whenever you do something that requires a permission check, your ACL runs a little algorithm to see if any of your roles give you the required permission. Displaying your start page, for instance, requires over a hundred permission checks, so this piece of code gets run a lot.

What the beautiful caching does is it stores the results of previous permission checks so that the next time that same permission is checked, it doesn't have to run the algorithm again. The cost of running the algorithm has been reduced to the cost of a hash table lookup. Anything that invalidates the beautiful cache also invalidates your ACL, so you don't need to worry about invalidation. It is, in a word, beautiful.

Permission checking used to cause over half of the user-visible delay on Tigris sites, just because it was such a common action. The beautiful caching (in association with other types of caching) basically reduces this to zero; as Jody said, "At last, free checking." Unfortunately, I neglected to backport beautiful caching to the 1.0 branch, so JXTA doesn't have it right now. But it probably will soon.

Next time: Clustering, RMI, and You

: If I put a song or particular recording of one under the OAL, what effect does that have on derivative works which were created when it was under my own Generic Unspecified Copyright License With Liberal Usage Terms? (eg. Kris' Asia Carrera cover, millions of songs of Jake's) Probably none. I can't be expected to have my actions restricted by arbitrary people who created derivative works that I don't know about, and the creator of a derivative work can't be expected to relicense their work after the fact just because I did it with the original work.

This is all purely hypothetical. I don't think I want to use the OAL. A copyleft license for music doesn't sound right. Perhaps my long proximity to BSD advocates has affected my judgement.

: Dog food! DNS may or may not have propagated to your area.

: It's been a hard day's night, and I've been working like a dog. It'd been a hard day's night; I should be sleeping like a log. But I had to get up to move my car out of the driveway.

: Strings of Leonardonics references in Checkerboard Nightmare recently. How many can you spot?

I really need to update Leonardonics.

: JXTA is potentially useful even if it is stipulated that Napster-style P2P is a stupid idea. Problems like clustering and failover are basically problems of how to coordinate peers.

Just pointing that out.

Disclaimer: I know nothing about JXTA, except that their site doesn't use my scalability improvements, but I brought this up in a meeting and Dan didn't object.

: This is amazing! How can so many galaxies be so evenly spaced?

When The UNIX Philosophy Goes Too Far: First In A Series:

AiToi map browser allows you to browse Mexico City, Guadalajara, or Monterrey [sic]...

: Adam always has the correct turn of phrase: "That's a worse bummer than 100 companies laying you off!"

Tonight's Episode: Murder At Random: I wrote a CGI to manage the ever-growing and slowly-shrinking list of Tonight's Episodes. I can specify a particular one for the next day, or failing that one will be chosen at random. It'll be easy to set up an archive script, should I ever feel so inclined. Plus, Tonight's Episode is now syndicated, though I'm uncertain whether or not "here, use this string" is a valid syndication format.

: I've decided it might be a good idea to keep track of layman's explanations of the First and Second Incompleteness Theorems. Here's a start. It seems like a textbook example of needless duplication of information, though as far as I know the relevant textbook has yet to be written.

: Segfault is, allegedly, TechTV's Geek Site of the Day. I don't know who TechTV is, but it seems legitimate.

<M <Y
Y> M>


Unless otherwise noted, all content licensed by Leonard Richardson
under a Creative Commons License.