Sunday, October 22, 2006


I bought a new euphonium, a Willson 2900 S. It's a four key, compensating, upright, silver (shiny) instrument, with some amazing craftsmanship. I got it on ebay from Mathews Music in Holland for 5k$ including shipping. I've doubled my roommates' ration of obnoxious tuba music.

I took the new euphonium to Ohlohne Tuba Ensemble rehearsal yesterday. The horn was a treat to play. Everybody there has really nice horns, but the Willson is among the best of the best. One fellow who I believe plays a Besson said that the Willson is the Swiss watch of euphoniums. Looking and feeling the craftsmanship and feeling the tolerances, I would have to agree. It's an amazing machine.

I finally grok what "compensating" in "compensating euphonium" means: I no longer have to "compensate" for the sharpness of every note between E flat 2 and pedal B flat by fingering them one half step lower, and I don't have to bend down to the B natural from C. The horn just has a continuum of chromatic pitches all the way down with orthogonal fingerings with those an octave higher on a three key horn.

Kris and his Euphonium

Sunday, October 1, 2006

Cix Rant 23

Let's be clear about at least one thing. Right is affirmative. Left is negative. This means the "enter" key is on the right; the "escape" key is on the left (the exact opposite left, horizontally orthogonal to the enter key, where the caps lock isn't). The "Ok" button is on the right; the "Cancel" button is on the left. Sidescroller games go from left to right. Forms do the same. New panels appear on the right; old panels disappear to the left. Right is deeper in the file system; left is higher.

Commands are on the bottom. Status is on top. This means command lines are on the bottom. Command buttons are on the bottom. Toolbars are on the bottom. Menus are on the bottom. Location bars are on the bottom. Titles are on top. Status bars are on top. The date and time are on top. Progress notifications are on top. Cursor location information is on top. If it's imperative, it goes on the bottom. If it's functional, stateless, or informational, it goes on the top.

The newest stuff is on the bottom. Moving up, stuff gets older. This means that what your buddy said last is at the bottom of the message buffer. This means recent command output is on the bottom of a message buffer. This means modal notifications are on the bottom (like security warnings, notification bubbles). This means the most recently received email is on the bottom.

Let's get serious about consistent, easy, simple and learnable human user interfaces people.

Monday, September 11, 2006

I'm Fine

Ah, anger, such sweetness coursing through the veins. No better a time to write down your thoughts than in the unforgiving, irrational haze of rage.

So, I made my first call to 911 today. It was by no means all that important, but I'm given to the impression that it's a good way to get in touch with police dispatch. I felt that the police should know that the traffic lights at De Anza and Highway 280 were out of order, flashing red, at possibly the worst time possible: rush hour. To avoid trouble, it would be prudent to dispatch officers to direct traffic until the problem was solved.

I did not call lightly. After I had driven through the mess and it showed no sign of abating, I thought for a few moments about whether it would be worth tying up the emergency response line for something like this. I figured that almost nobody else was going to; I learned that one in my psychology class: dissolution of social responsibility. Given the circumstances, I figured that an accident was probable. I've never called 911 before, so I also figured that I should overcome my fear of the whole process. What probably tipped the scales though is that today is September Eleventh, and I'm a sucker for irony, particularly when numbers are involved. Here follows (annotated) my conversation.

    Dispatch: S*** *lara ***Emergency*** ********. (cell phone issues)

    Kris: I'm sorry?

    Dispatch: You called 911 emergency. Do you have an emergency?

    Sarcastic Kris: No, I'm just lonely and nobody else answers my calls.

    Real Kris: Ah, yes. The lights at De Anza and 280 are flashing red and traffic's highly backed up. We need officers directing traffic.

    Dispatch: That's the Sheriff's Department.

    Angry Kris: You are a police dispatcher, right?

    Dispatch: It's rush hour.

    Angry Kris: This I can see.

    Dispatch: You treat a flashing red like a stop-sign.

    Angry Kris: Yes, yes. I'm not a pedestrian. I earned the right to pilot this explosives-propelled-two-ton-brick-of-death by passing the twenty question multiple choice test just like everyone else out here. The problem isn't a matter of understanding what I need to do. I got through the intersection some time ago. Don't assume that I'm a whiny punk stuck in traffic crying for help. I'm trying to help here. The problem is throughput. There are stop-lights here because stop-signs don't have enough throughput to support this kind of traffic. The stop-lights are broken. We need uniformed officers to direct traffic because they can emulate the throughput of a stop-light until they're fixed.

    Dispatch: As long as everyone obeys the law, there will be no problems.

    Angry Kris: One would think that you, more than any person in the world, would appreciate how dreadfully naive that statement is.

    Real Kris: Alright, thank you very much.

    Angry Kris: I'm going to hang up now because giving you a piece of my mind is not what this phone line is for and I don't want to keep you from your fiddle practice.

    Dispatch (suddenly cheerful): You're welcome.

Monday, August 7, 2006

Garage Band Foray

So, I've made some preliminary stabs and authoring music in GarageBand.

"Dramatic Overture" was my first attempt. I experimented with dynamics and how well some of the synthesizer inputs behaved in extremely low octaves. Horns were interesting.

"Theme", for lack of a better word, was my attempt to produce a Theme with GarageBand's keyboard keyboard and some editing. The form for the theme is vaguely ABAB', and the form of the piece is vaguely ABA'. It gets messy toward the end. I'm pretty sure that this is a bad thing, but I think I'll leave it as is and call it "high art". Or--honesty hurts, so be nice--the counter melody is improvised; that's why it's crappy.

This was an attempt to get some more meat out of a piece. So far most of my work has been a blind stab into the solution space that GarageBand provides, so there's very little chord progression or polyphony. Oh well, this one continues in that vein. Let's call it "modal" and pretend it was on purpose. I think I succeeded to produce an interesting mood with this piece, with a sort of schizophrenic fight between major and minor hemispheres with no definitive winner.

Wednesday, June 21, 2006

Net Neutrality

Tim Berners Lee developed the technology that lets us view each other's web pages. The web grew exponentially from that humble foundation because of a simple premise that, until now, did not have a name. Now it has a name, "Net Neutrality", because myopic capitalists, specifically telecommunication companies, have realized that they're sitting on a gold mine built entirely of our purses. Yes, that means your purse. They want to hold communication for ransom using their government protected monopoly. Tim Berners Lee has a blog entry that you should read.

Friday, June 9, 2006

Re: Prophecy 2

It was, after all, just a matter of time: Prophecy 2 fulfilled, except that they made the RSS feeds unnecessary for day to day use. Maybe add publication features later; let's call that Prophecy 2.1.

Thursday, May 25, 2006

Google Eyes

Here's something to save for a rainy day: a very dark and rainy day. A day of terror, wrath, and indignation, if it comes.

I don't find this image's message to be pertinent...yet. Let's make sure things don't become evil. That would be lame.

Sunday, April 9, 2006

Prophecy 2

Google will release a tool that will save public and private bookmarks in your Google mailbox and provide conventient RSS feeds for them.

Saturday, March 25, 2006


My High School friend Bob Ennis got in touch with me again recently. Bob and I shared German classes. While I'd love to take credit for this, Bob's antics were likely the primary cause Frau Gunn's loss of sanity. Bob later worked on "The Bunny Movie" project, playing the role of Darth Hare.

So, Bob has gotten into graphic design. Bob offered a free sample of his work, a "glorification". This is the result:

Kris Glorified

Wednesday, March 15, 2006

Player Driven Content

Ryan Paul has posted an article for about player driven content in games. I find it highly relevant to some projects I'm working on. Anybody who faces a decission about how to develop content for their game should read the article.

Meanwhile, the MUD project has taken on a new name. We're still calling the world engine and game service project MAGE, but now it stands for the generic "Multi-user Advanced Game Engine", thanks to Ryan Paul's ingenuity when originally divining the acronym. We're going to call the content project and our particular release of the game "Tale". We, at this time, have the game running at and we plan to keep it running throughout the development process.

Tale runs in an autonomous AJAX client (Asynchronous Javascript and XML). AJAX is the label for a paradigm shift in web programming, which amounts to the creative uses of the Javascript XMLHttpRequest. Similarly DHTML described the paradigm of combining HTML, CSS, and Javascript. So, Tale, top to bottom, involves HTML, Javascript, CSS, discrete XMLHttpRequests, XML, SVG, SSL, Python, and possibly Java :-). A veritible alphabet soup.

Ryan's article leaves me wondering to what exetent Tale can harness "player-driven" content. One way to do this is to encourage players to participate in the development process. However, to really harness all the power of player driven content, we really must make the game's content drivable from within. To that end, I think that developers should cultivate some history for the game to ignite the imaginations of the player base, but provide features that put the storyline in the hands of the players. By this I mean that the players should have intimate control over the shape of the world. Players should create bastions to protect their hoard, which will naturally provide other players the challenge to defeat them. The challenge for us is writing algorithms of gameplay that make the struggle of the game always a fine edge between success and failure for all parties involved.

Friday, March 10, 2006

Licensing Swil

I finished my term paper [pdf] for Professional Responsibilities (ethics in software development, Cal Poly CSC 300). Here's the abstract:

    Software developers have a gamut of options for software licensing. These options range from propriety to permissiveness, including many open source options. This article introduces the attributes and categories of common licenses and presents their strengths and weaknesses. There follows an analysis of how each license attribute and licensing model would serve the author, the public, and authors of derivative works. In particu- lar, this article addresses the licensing needs of a programming language called Swil. The article concludes that a dual licensing scheme including a commercial license and a viral free software license would provide the best compromise for all parties.


I've posted my term project for Music Theory I (Cal Poly MU 104). This is a short, four-part choir piece in chorale style to demonstrate that I've learned something about counter-point this quarter (meaning, I can produce random, Bach-formula 1 chorales). The lyrics come from "The Lay of Leithian", an epic poem by J.R.R. Tolkien. Fingolfin, an elf lord, bangs on the gate of Hell and summons Morgoth (Satan) to engage in single combat.

So, here is a MIDI file, and a TIF image of the manuscript.

Will Google Return My Calls - Part 3

Well, summarily, they did.

I applied for a Full Time Cluster System Administrator position. I've had three phone interviews now.

The first phone interview was conversational. The second required coding Perl off the cuff, and reciting the code over the phone, which was fun but tricky. I messed up twice and had to proceed from a hint to get it right. The third phone call... well, I don't think I did too well. The interviewer asked a bunch of networking questions that I didn't know answers to, and I bungled around on a large scale sorting algorithm problem.

Well, summarily, I hope they call again.

Monday, February 6, 2006


The trouble with prophets is that they usually divulge their predictions after they come to pass. I'd like to write "code prophet" on my business cards, not so much because of my clairvoyance, but because I've got some ideas that I'd like people to believe are prophecies, if only to make them self-fulfilling. I suppose this is a form of subversive "management".

So, I had a prophecy a couple days ago, which I expressed to my friend Ryan (Seg Phault). This was on the 4th of February, 2006.

    (15:32:06) Cowbert von Moo: i just realized something.

    (15:32:41) Cowbert von Moo: i'm going to bet that google will eventually make your chat logs browsable and searchable in gmail.

    (15:32:48) Seg Phault: that's not a bad idea

    (15:32:54) Seg Phault: that's the kind of feature that I would like

Yeah. Today's the 6th.

    (21:49:42) Cowbert von Moo: you'll never guess what just happened.

    (21:49:59) Seg Phault: you got abducted by aliens?

    (21:50:21) Cowbert von Moo: google talk just popped up a dialog "would you like to save your chat conversations in gmail?"

    (21:50:31) Seg Phault: hahaha

On one hand I'm really glad that somebody else had the same idea. On the other hand, I wish that I had gotten the idea sooner. On this other hand sticking out of my head, I wish I could make these things happen myself.

Thursday, January 5, 2006

Chimaera Mount Art

Kathy has volunteered some concept art for the game. They speak for their selves.



Camel Grazing