Of Qubits and Cubits

Of Qubits:

An article in New Scientist (which sounds like a Christian science magazine but I swear that it’s actually a legitimate publication) today indicates that closing the loop on reality with quantum computing may be prohibited by fundamental limits relating to how long a group of particles can remain entangled. The putative combinatoric representational power of the quantum computing model hinted that it might be possible to create high fidelity simulations of reality inside a piece of computing machinery. This is a neat thing to think about because there would be nothing from stopping one from infinitely nesting simulations inside of each other. However, the universe seems to prohibit these “something for nothing” transactions so it’s not surprising to me that these limits exist (the scientist who discovered them was “shocked”). My prediction is that quantum computing will turn out to be like hover boards. In the 50s we were all promised that in the future, there would be hover boards. The hover boards never showed up. I want my hover board dammit!

Of Cubits:

I’ve always enjoyed the homophony of cubit and qubit. The word for one of civilization’s most ancient measurements of distance has been reborn as one of its most cutting-edge measurements of information. While qubits have taken a hit recently, cubits have recently been uncovered in the deserts of Eygpt in the form of a previously unknown Sappho poem. Sappho is the famous female poet in the ancient Greek tradition, despite most of her poetry coming down to us only in fragments. In her time she was known as the “Tenth Muse”. We will have to wait until Stanley Lombardo does a good translation to really appreciate it – he renders Sappho into English much better than Anne Carson or anyone else I have read.

[You for] the fragrant-blossomed Muses' lovely gifts [be zealous,] girls, [and the] clear melodious lyre: 

[but my once tender] body old age now [has seized;] my hair's turned [white] instead of dark; 

my heart's grown heavy, my knees will not support me, that once on a time were fleet for the dance as fawns. 

This state I oft bemoan; but what's to do? Not to grow old, being human, there's no way. 

Tithonus once, the tale was, rose-armed Dawn, love-smitten, carried off to the world's end, 

handsome and young then, yet in time grey age o'ertook him, husband of immortal wife.

As you can see, it is kind of rough. Like I said, Stanley Lombardo has published a book of beautiful translations. Get cultured for nine dollars. My favorite is Sappho 16.

Some say an army on horseback,some say on foot, and some say shipsare the most beautiful things     on this black earth,                                        but I sayit is whatever you love.

It's  easy to show this. Just lookat Helen, beautiful herselfbeyond everything human,                  and she lefther perfect husband and went                  sailing off to Troy,

without a thought for her childor her dear parents, led astray


reminding me of Anactoria,                                    who is goneand whose lovely walk                  and bright                        shimmering faceI would rather see                  than all the chariotsand armed men in Lydia

                  but it cannot be

humans                        pray to share


Ha. A blog post touching on quantum computing and the poetry of Sappho. Find that anywhere else on the web.

What Molecular Evolution has to do with Why Software Sucks

An idea occurred to me today, while I was trying to configure some SAP servers at work today. For those not in the know, SAP is middleware designed by Satan, implemented by idiots, and purchased by masochists. SAP is an exemplum (diction to underscore the mythological proportions of SAP’s suckiness) of bad software. But really bad software is everywhere.

I think it’s a case of Muller’s Ratchet and the principle of Conservation of Misery from Molecular Evolution. Muller’s Ratchet is basically the concept that in vertical gene transfer, degradation of the quality of the gene pool is inevitable. Negative selective pressure on organisms with bad genes dominates any possible positive selective advantage. Over time, organisms end up with a minimal functional set of genes.

One would expect that bad genes would eventually be purged from a population by evolution. However, the principle of Conservation of Misery says that in diploid organisms, fatal recessive alleles actually tend to accumulate due to masking. Masking occurs when an individual is heterozygous for a fatal recessive gene, and thus experiences no symptoms. Since the phenotype for heterozygous and homozygous dominant for this gene is the same, there is no selective pressure towards either. The result is that once introduced into a population, a fatal recessive allele has a decent chance of becoming widespread in the gene pool.

Software is like this. Whenever a company ships a software package, what they are selling is the bare minimal set of functionality that they can get away with selling and have people actually buy it (The Ratchet). At the same time, when a company goes to release the next version of said piece of software, they add a bunch of extra features to justify the upgrade, but there is no strong pressure to fix any bugs in from the previous version if they didn’t obstruct the critical path (Conservation of Misery). This is what makes software like the kind SAP has inflicted on me so terrible. The dark heart of the demon is composed of ABAP scripts originally written in the 70s. Then there is all this additional stuff cobbled together on top of that. Then there are some UI layers on top of that. A bug anywhere in there is: 1) never going to be found, 2) never going to be fixed, 3) waste hours of my time. And companies shell out thousands of dollars for a single license. Bah.

Xtremely Majestic Language

Tile set editor

Today’s addition to Witherwyn is a mostly functional tile set editor. This editor makes it very easy to manage and extend the tiles that the engine will recognize and use to create levels in the game. So far I’m in the proof-of-concept stage. I’ve created an XML serializable class that is essentially a list of all the information about a tile that the engine understands. I’m only supporting a handful of fields at the moment {Name, Image, Description}, but this will be extended in the near future to support property flags like IS_WALKABLE, IS_MISSILE_PASSABLE, IS_SOLID, IS_DOOR, IS_INVISIBLE, ect ect. This approach seems really good because if I get a good idea down the road for something that should be in the game, nothing is hard coded. Deserialization works, but at the moment the game engine doesn’t load in its tile data from the XML file. This will be the next thing I work on, but I’m not expecting any trouble there, except that I will need to add a translation layer between the random dungeon generator and the tilemap. The RDG lays down abstract FLOORs and WALLs, but doesn’t yet map them to particular tiles that should be placed in the map.

Witherwyn Google Count: 0

We are Pentium of Borg.

We are Pentium of Borg. Division is Futile – You will be approximated

That in reference to the infamous Pentium Bug. That’s my non-sequitur segue to discussing Dr. White’s Angband Borg which is really cool. It’s a computer player for Angband. You can install it as a screen saver and watch it play. An AI framework general enough to allow this kind of thing to occur in Witherwyn is one of my goals. I think running into NPC adventurers who were exploring the dungeon could lead to some interesting and unique (in terms of existing roguelikes) interactions.

Witherwyn Google Count: 0

Oh, that was Baghdad at night in those days


Rereading some old favorites. Anyone who likes stories needs to go out and locate a copy of Sandman #50, “Ramadan”. One can find it in Neil Gaiman’s “Fables and Reflections” collection. You don’t even have to buy it, you can read it in the store. It’s only 32 pages. I won’t give a plot synopsis or anything as that might ruin it for anyone reading it the first time.

“And he prays as he walks (cursing his one weak leg the while), prays to Allah (who made all things) that somewhere, in the darkness of dreams, abides the other Baghdad (that can never die), and the other egg of the Phoenix. But Allah alone knows all.”

Adventures in the Infinite Realm of Witherwyn

One of the cool things about summer is that I have time to work on my own programming projects. I’ve been kicking around the idea of making my own roguelike game all quarter and lurking on rec.games.roguelike.development. Now I’m finally getting started.

The focus on my roguelike is a user-friendly GUI. Nethack is a brilliant game, but I think it suffers greatly from the unfriendly UI. Who wants to have to consult a list of 50-some odd keys and key combos to interact with a game world? Only UNIX dorks. My game isn’t going to use character graphics either. I loved playing ZZT and Kroz when I was a kid, but that era has come and gone. A secondary focus of my game is going to be some advanced AI techniques for making the monsters and NPCs hopefully act more intelligently. One neat idea I have is to train monster behavior using genetic algorithms. We will see how far that gets.

I’m writing my game in C#. After some brief experimentation with GDI+, I decided I needed more speed so now I’m rendering using Direct3D with an orthographic projection (to make it look 2d). I’m having a little trouble getting a truly performant solution, I think because I have too many texture swaps per frame, though displaying the map at the standard zoom level on a 1600×1200 screen runs pretty damn fast. What’s cool about using Direct3D is that scaling, rotation, and transparency effects are basically free.

For my tilemap, I am using the every-tile-is-a-linked-list approach that I advocated on rec.games.roguelike.development, with one caveat. Every tile element contains a base tile and then an ArrayList for everything that sits on top of it (by sorting this this list by z-order I can get cool effects like characters being obscured by doorways). This approach has the flexibility of allowing an arbitrary number of items to sit on one space, while at the same time limiting memory usage (since only a small fraction of tiles will require the instantiation of an ArrayList). We will see if this approach holds up as my map entities become more complicated.

One more interesting thing worth pointing out. I deliberately gave my game a google zero name (partially explains its weirdness). This way I will be able to easily track mentions of my game across the internet by googling for “witherwyn”. Isn’t that neat?

Yay. An outlet for creativity.


Stanford needs a cathedral like this.

I started work on Tuesday. All my blog software is on my home machine, so I can’t update it at work. At the same time, when I come home I am faced with the prospect of logging on to the internet using a modem, which makes signing on and updating my blog seem like a chore. Anyways, despite the fact that it is Saturday, I’m going to blog about last weekend. Though really it seems like more than a week ago. The transition from fun at the beach to work at IBM was pretty jarring.

After our zany beach excursion, Jo, Jasmine and I stopped at Princeton on our way home to spend a day or two with Doug at his house. Now, I grew up being stuck in hours and miles of traffic on the New Jersey Turnpike, which can hardly be called scenic, so I didn’t have any expectations insofar at how pleasant a place Princeton might be. But it turned out to be very nice. Greeness everywhere and cute old stone buildings.

Doug’s friends John and Andrew gave us a tour of the campus, which I found to be rather imposing. There seemed to be a history and tradition at Princeton that Stanford just doesn’t have. The cathedral, in particular, was awesome. I think some rich alumni with too much cash should donate a cathedral to Stanford. On the other hand, from what Doug says Princeton is kindof backwards in terms of the education one might actually get there. Apparently double majoring is disallowed and interdisciplinaryness is frowned upon. On the up side, if I were a fuzzy trying to write my first novel or something like that, the atmosphere at Princeton would likely be conducive to that.

In short, it was an interesting side trip. I think I may make a point of getting back to Princeton sometime when I have more than half an hour to spend at the Grounds for Sculpture. That place is neat. Here are a couple of pictures I took. You may recognize some of them (or not if you are a soulless techie).

The Best Week Ever

Got home yesterday from the best week at the beach ever. If you were invited and didn’t come you definitely missed out on some serious fun. Too many individual fun things happened for me to more than give a gloss of the highlights. By the end of the week, there were eight of us: Jo, Kejia, Erem, Jasmine, Doug, Emma, Ari, and I. That so many people were able to take off a week to come to the east coast and relax at the beach was pretty cool. The beach itself did not disappoint. The water was great. A couple of days there were some pretty large waves too, which made for good body boarding. Emma won the prize there, catching a huge eight foot wave and riding it all the way in, putting the rest of us to shame. Faced with a wall of water of similar magnitude, Doug did a double take, then yelled “Evacuate!”, tossing his board away and diving under the water. It was pretty funny.

Another highlight was eating crabs (they were delicious) and then going to Funland (the most fun place on earth). I don’t think that anyone was prepared for the fun of Funland. Funland is a little amusement park on the boardwalk that I used to go to with my parents as a kid. The plan was to go there as a lark, and maybe ride a few rides. But we really got into it. I had forgotten how much fun bumper cars are. Kejia, Ari, and Erem rode a ride called the Chaos, which looked unappealing to me since it was all twisty and turny and upsidedowny. Doug and I wanted to ride the helicopters, but we were too tall. Jasmine was short enough to ride them, but didn’t take advantage of this: mocking us. We also found fun playing Skeeball and some pinball machines.

After spending the 13th-18th at the beach, Joanna, Jasmine, Doug and I went to visit Princeton for a day, staying at Doug’s house. I’ll probably blog that tomorrow once I get a chance to sift through the pictures. Speaking of pictures, anyone who wants Rehoboth pictures should IM me sometime when I am at work and have the bandwidth to send them all. I’ve got some cool bumper car videos, including one of me and Doug experiencing a head-on collision. In the meantime, here are some of my favorite photos.

Modem users can go milk their cows while these puppies download.

Woooo! Beach!

E: “Hey ladies. I see it’s just the three of us on this beach.”

Nicola’s for delicious pizza


Yum. Crabs in a pot.

Kejia thinks she can eat this cheesesteak all by herself.

FUNLAND!!! The most fun place on earth!

Ms. I Refuse to Pose for Cameras Ever and Kejia

Grrr! Bumper cars!

Bumper cars! Bumper cars! Bumper cars! Bumper cars! Bumper cars! Bumper cars! Bumper cars! Bumper cars!

Doug Wilson’s First Beer

Green Headcrab

I just really like this picture

Emma! Where did all our liquor go?

Weird Japanese steakhouse

Wheee! Beach!

PS – If you missed the beach weekend of awesomeness this year, we may do it again next year since everyone had such a great time.

That's "Rehoboth" Beach.

Sorry to everyone I had to give vague directions to because of my claim that the exist of “Rehobeth” Beach is denied by MapQuest. Yeah, I know I’ve been coming to this beach since forever. Give me a break.

We are having a great time

Erem, Doug, and Kejia got here late last night but with no problems, bringing our total party count up to six. Jasmine, Joanna, and I arrived yesterday. Emma and Arielle may show up sometime today or tomorrow. In any case, we are having a lot of fun. Last night once everyone had arrived, we had fancy cocktails and then when for a walk on the beach. It was so warm even at midnight that charging into the ocean sounded like a good idea. Unfortunately, Erem forgot to take his high-tech keys out of his pocket before jumping in (hopefully we will still be able to get into his car – without his silly remote control door-opener it’s impossible to get in without setting off the alarm and having the car dial up lowjack).

Yesterday it the heat index was 110 degrees, (only 95, but humid). That was just fine because that meant it was more than warm enough to go swimming in the ocean for a while. We’ve also been eating rather well. We went to a tasty Mexican restaurant last night. I think either tonight or tomorrow will we get a half-bushel of crabs and cook them up. Mmmm…

PS – There are still free beds, so if you are anywhere near Rehoboth Beach, you should totally drive over and come visit.