Last night's chat with the Project Mu team (including ozy_y2k and entelein) went great. It was a moderated Q&A over IRC. Now, I have done Q&A sessions before, and I never thought I would say this about anything, but: it would have been easier to do in real life than on the computer. Admittedly, my part was pretty miniscule, considering I am not so good at this new-fangled Internet Relay Chat stuff. [Well, I know the protocol and RFC pretty well, considering I wrote a plugin a number of years ago for a certain two-letter hacker tool that announced infections over IRC, but I don't know the admin stuff. Now that I think of it, that's kind of funny–most people know how to use something without knowing how it works; I know how it works, but don't know how to use it!] Pretty much, during the event, I was a glorified usher. Normally, I have a single IRC window open with multiple tabs, but for this I needed a screen full of multiple windows. At any one time there were about 12 conversations going on at once. The main channel allowed the panel to talk, but muted the guests. Another channel was for peanut gallery chatter. A third channel allowed the administrators to coordinate. Lots of one-on-one conversations allowed people to let the moderators they had a question. Crazy.
The game designers released a FAQ, but released it in puzzle form. Basically, they gave out a link to coded sentences that decoded into questions. The answers to the questions had to be found. Once found, you took the first letter of each answer and got a coded URL, which once decoded led to the actual FAQ. A pretty fun an unique way of releasing a FAQ, I'd say. It also allowed me to find deficiencies in cryptoslam, a substitution cipher tool I wrote several years back (more on that later).
I'm amazed at the amount of depth that went into the game. A huge piece of the plot pretty much paralleled Shakespeare's Julius Caesar. In this case, though, Caesar does not get literally killed, but backstabbed more figuratively. I think I would have appreciated it a lot more if I had remembered more from English class. For instance, I didn't even remember who Cinna was and the Cinna analogue played a pretty big role in this. Another example of the depth and detail: all the sites have a link back to a fictitious hosting company (specifically the terms of service). Kate and I routinely talk about license agreements and how nobody reads them. Similarly nobody really read this one. One of the game designers is a lawyer and made it a perfectly legal and usable ToS agreement, but slipped in a few easter eggs–references to the Matrix and Agents and such. (In fact, he had to change it a week into the game because someone really hacked into a system.) I think we all thought it was boilerplate and never bothered to read it. Note to Kate: once you graduate, if you ever have to draft a license agreement, hide some easter eggs in there. I would love to see the word “monkey” somehow hidden within a boilerplate legal document.
So, anyway. Cryptoslam. I originally wrote it to help solve those cryptogram puzzle things that are typically in the comic section of the paper. I don't get the paper anymore, so the code kind of dropped under my radar. Yes, it had a feature to make random puzzles from the system's
fortune command, but I had forgotten about that. The specific niche this program filled was solving immutable crypto puzzles. The above-mentioned puzzle was a bit more mutable because the ciphertext depended on correct answers to 51 questions. Not all of those questions were answered correctly on the first pass (or second, or third, or fourth). With cryptoslam, it is impossible to change the underlying ciphertext without completely losing your work. That need was never foreseen, so there was no need to add that functionality. Now, I am going to have to revisit the code. Also, it was written back when the STL objects were in the global namespace and not in std::, so to get it to quickly compile, I had to tell the compiler that all my code is in std:: too. That is generally…uhhh…frowned upon. Maybe I'll start writing code for work in the “java.lang.*” namespace!
It seems that playing puzzle/logic/thought games causes me to be more productive on the utility-release front. Wmap has been kicking around in my head for about a year, but only came to fruition a few weeks ago as a quick tool, then got rewritten as a solid C++ app. …which reminds me, I need to release a 2.1 now that I got suggestions for new entries in the data file from boogahsmalls, substitute, and a handful of people in email. I'm also now revisiting cryptoslam and may add some features in the next week or so. Somebody stop me before I become a once-more productive member of the Open Source community! 😉
Edit: Oops. gupfee was one of the admins/players, not one of the interviewees/creators. That seemed a little unclear upon reading.