Thursday, October 20, 2005
Most computer programs employ English for keywords and names. However, I'm sure that langlubbers and programmers agree, English is poorly suited for the task. For example, adjunct phrases in English titles are "specific to general", like "Input Stream" and "Output Stream" rather than "general to specific". Programmers prefer to group names by their equivalence classes (for example "Stream"), which lexical sorting would do if only our titles were "general to specific", like "Stream Input" and "Stream Output". Programmers also prefer to have exhaustive and "orthogonal" equivalence classes, which in English, usually require creative application of disparate terms like "push", "pop", "shift" and..."unshift". Programs also abhor ambiguity, with which English is replete. Hackers also love brevity, which often leads to additional ambiguity.
I propose "Codish", a standardized mutilation of English for the purpose of making computer programs more consistent. The Codish vocabulary should meet needs in most languages, providing unambiguous and exhaustive terms for particular contexts. Codish would be targeted at language designers and library writers. Here's my violent attempt to start a discussion about such a language. I posed this topic to the Constructed Languages Mailing List.
Tuesday, October 18, 2005
Sunday, October 16, 2005
Shawn Tice and I developed a random maze generator for the M.U.D. project. The purpose of our design was to generate a closed world of arbitrary size, where all rooms are accessible from any other.
We restricted the world's shape to square with sides that measure as powers of two. That way, we could recursively generate the world with the following rules:
- for all rooms larger than a unit room (1x1)
- the room posesses four rooms, one in each quadrant
- the room posesses four exits that are either passable or walled
- any exit that is passable may be divided in half, closed in by a wall on either side
- between each quadrant is a partition
- at most, one partition is a wall
- all other partitions are passable, guaranteeing that all quadrants are accessible by at least one path.
- for all rooms
- all surrounding partitions are walls if they do not lead to a room
Here's how one maze turned out:
The numbers represent the width of each room in the following diagram. Each successive maze is a more detailed version of the previous.
For the purpose of testing, we'll probably populate this maze with two warring clans, Red versus Blue. I doctored an image off of Eight Bit Theatre with Macromedia Fireworks for the purpose. For kicks, I made the layers functional.
The first image is the PNG. The original image probably belongs to Square-Enix.
Saturday, October 15, 2005
I've been crafting my resume for Blizzard Entertainment. The original is complete, and I have a miniaturized, touched-up, digital copy, with my sister's help with the scanning process. The original was inked by hand on a 19 inch wide sheet of watercolor paper. The enscription around the rim is in Christopher Tolkien's mode for English after his father's Elvish Tengwar.
Monday, October 3, 2005
The rescue helicopter landed like a fatted, New York pigeon. That is: with intent. While the intentions of a pigeon are generally unclear, there are few possibilities, most of which are sinister. The helicopter lacked the refreshing red hue of a rescue chopper. Indeed, it was decidedly black. From a gaping mini-van door, grown up Boy Scouts dressed as firemen did not pour. These Boy Scouts seemed to have joined the military.
Curiosity got the best of me for a few seconds. But, when most of my left arm got warm, wet, and red, strikingly like most of Leo's liver, the worst of me got into the driver seat. At the very darkest depths of most humans, there lies a threatening jungle cat, ready to dispense swift justice and make dinner in one sinuous motion. Sadly, the parts of a human that get more sun are pathetically under-motivated for the task. That's me all the way through: a hairless primate, ready to sell my family for a pack of smokes if a jungle cat tries to steal my lunch money.
So I did the most sensible thing I could think of. I wet myself. It occurred to me that if I were going to continue in this occupation, I probably should invest in an article of Kevlar, an automatic rifle, some ammunition, and a colostomy bag. Before I had a chance to assess my surroundings and select suitably defensible cover, I had the muzzle of an AR-15, bearing more attachments than I surmise are legal in Arizona, pressed assertively against my personal space. Behind the muzzle was a character in black fatigues who looked like he might be the Patrol Leader. I only had a dollar and thirty five cents.
About then, I realized the Leo might need his liver back. I was in a giving mood. He had been good company, even knew the lyrics to "Smoke on the Water". I couldn't ask for more from an anonymous transient who needed a ride from Nogales to Wherever for reasons incommunicable. After we drove for a half hour, he was polite in telling me that Tucson was the other way. He even recommended a short cut back. When the dirt road led us bumpily deep into the dry plains of nowhere, he offered me a drink from my own cooler. When I tipped the truck into a ditch, he was kind enough to join me in a tirade of obscenities. Leo was a trooper.
This was good for him, since no one was offering him a pillow or a pint of O positive. The scoutmaster was more interested in making sure that I was patently aware that I was on the wrong side of a potentially dangerous firearm. On my knees? Okay. Face down in the dirt? Always ready to serve. My brain was elsewhere, reviewing the long series of mistakes that led me to this situation, tracing my way back to conception.
I heard the Do-good Patrol zealously rumbling around in what was my company's truck. Not that the company no longer owned it. Although the truck's nose was buried in dry soil and might never run again, I'm sure that UPS still wanted it. I was more concerned with the employment status of something else that had its nose buried in dry soil. The problem quickly resolved itself; my militant companion kicked me up onto my side. The view didn't improve much. Most of Leo was still there, but his soul may have been seeking higher ground. The assistant patrol leader had found Leo's duffel bag and was pawing through its contents in the shade of a small rock. Leo was apparently a proprietor of used cell phones.
The patrol leader scoured Leo's inventory. When he had found the model he was looking for, he hesitated. I never understood why some people cared so much about the color. He found a phone that suited him better and pried off its battery cover. After gingerly extracting its memory card, he made a few pointed suggestions to his crew about what they should be doing. Noticeably missing from his instructions were anything about pulling the truck out of the ditch or offering anybody a ride to the hospital.
The rest of the affair proceeded like Poe's "Cask of Amontillado" backwards. One brick at a time lifted from the invisible wall around me and just standing up felt much like retracing my steps out of ancient catacombs. The patrol filed back into its black helicopter and departed as it came, lifting off like a pigeon having fulfilled its sinister intent. I found my bravery then, huddled behind me. Now, in the wake of its personal failure, my horrible ego was fully prepared to make vain threats and carefully consider the long list of things it could have done. The uncaged beast hollered for better than ten minutes and promptly fell asleep, leaving me with its still unsolved problem.
There wasn't a single working phone in Leo's pile of misbegotten treasure.