Tuesday, September 18, 2007

Programming and Arrogance

When you live and work in a culture of programmers (as almost any unmarried Amazon programmer seems to), its easy to see some trends emerge that are both interesting, cool, and/or troubling. The trend I was really forced to notice is a culture of Arrogance that seems to permeate the culture at Amazon. This culture is really not limited to Amazon, Google practically oozes arrogance, and it is much the same with every company that believes in itself that I've talked to. Part of this is the difficultly in hiring good programmers, exemplified here Why Can't Programmers... Program. Everyone has this problem, and most people do reject 199 out of 200 applicants (as the article mentions), but as that discussion indicates (follow some of the links), rejecting 199 people doesn't mean you're hiring the top 0.5%, just the top 0.5% of the applicant pool. Most programmers aren't looking for jobs, and companies try to keep the good ones anyway.

I think a fair amount of the arrogance comes from the art itself. When you sit down to code, normally you have some idea of the shape of the solution you want to implement, and it seems to me that a large portion of getting that solution written is being so stubborn and unable to give up on that idea that your willpower literally bends the electrons in the computer to your will making little slaves of them. How can you not be arrogant when every day you're conquering your computer all over again, programming something that (at least most of the time) no one has written before.

Another portion of the equation is the attitude of other programmers. Whatever you might say, about nature or nuture or genes making a person's profession, something attracts a lot of smart but socially challenging individuals to programing. These people are used to being right (see the previous paragraph), and are not ready for you or even Linus Torvald himself to tell them they are wrong.

I think most good or great programmers (at least in a commercial setting) have to learn to put away this arrogance, but its not something that comes easy (at least for me). Admitting that you might be wrong about a proposed solution is extremely difficult. Paradoxically, I find that once a solution is implemented, most programmers are willing (and even eager) to admit to the solutions failings or even to start over and reimplement everything differently (this happens a lot during development and is called refactoring, at least in some way). Being a decent company programmer I think also means learning to work around these foibles in others (in addition to suppressing your own instincts).

Thats all I have for now, but I have some more thoughts for later... How does aggression fit in? What about the programmers that seem to be naturally immune to these kinds of feelings? How does this affect the gender inequality in the profession?

Music - The Language of the Soul?

Ok, so I couldn't come up with an original post title, but I do have some thoughts on the subject.

I really enjoy a good story. So much so that I think it directly contributes to the amount of roleplaying, the massive number of books I own (and yes, have read), and even what video games I end up enjoying. I love hearing about daring deeds, love at first sight, or really anything dramatic and interesting. The biggest area where this predilection of mine comes up is in music. I love story-based music. This leads to some odd tastes.

I love almost any piece of folk music, since they are basically only story. In the car, though, I can't generally get a folk only station, so I switch to Country. I love a good sad/happy country song (check out "Skin" by Rascal Flatts to see what I'm talking about). Sea shanties have the same quality as folk music - almost everything tells some kind of story. You'll, of course, notice that I haven't mentioned any type of music that would allow me to stay in the "cool" crowd. At the end of the day, I have favorite songs in almost every category of music. Even heavy metal ("Master of Puppets", "The Gods Made Heavy Metal"), electronica ("Winter Born" by Ethernaut), and even dance music ("Tarzan & Jane").

But, you'll never find me listening to certain kinds of music. Despite what I consider a fairly wide ranging collection, I have absolutely 0 tracks of classical, and very few instrumental (I delete them whenever they sneak in).

Because most of my music tells stories, I normally group them based on what I'm feeling like right then. If I'm happy then I want to hear happy, high energy songs, if I'm angry, well its time to crank up the volume and descend into some rock music (though musicals have a good selection of that kind of music as well). I love the effect this has. When I really hit the correct emotional note, I almost instantly drop into that "zone" that programmers talk about so often. Rocking out with code is evidently synonymous with rocking to the beat, at least in my head.

Perhaps I can share with you some of my favorite lines from songs I love:


  • 'So this is Beauty's finish. Like Rodin's "Belle Heaulmière"' - Lies by Stan Rogers

  • "How did we we get here? How the hell?" - Halloween in Rent (musical)

  • "Now is the time to sieze the day!" - Seize the Day in Newsies

  • "They say the sky's the limit, but we both know its the ground!" - Pirate Bill & Squidly by Heather Alexander

  • "I still feel your touch in my dreams. Forgive me my weakness..." - Every Time We Touch by Cascada


Music is so much more than just words sung to notes, its very interesting that it can cause dizzying highs and hellish lows. What is it about notes and words that make us want to shout to the heavens?

Monday, September 17, 2007

Roleplaying, the beginning

Roleplaying is a great passion of mine. I love sitting down with some friends, and being able to journey to another place for 4-6 hours. Sometimes its difficult, sometimes its not fun, but most of the time it is neither of those things. Its difficult to describe what makes roleplaying so much fun. Some of it is definitely the camaraderie, even though its all in our heads in reality, nothing quite compares to sitting down week after week, facing the challenges of the world (whatever world that happens to be).

Seeing as how spend something like 10 - 16 hours in any given week, I have some resources that I thought I'd share here. First Jane Epenson's blog. Jane is a TV writer on such great shows as Battlestar Galactica, Buffy, and others. More interesting than her credentials, however, is the insight she brings to the writing process. She talks a lot about how to discover and develop emotional arcs, which is really important in roleplaying, since that is the meat of any great game (IMO). Other than that, I've been following These Are Our Games. This blog covers the very interesting game Polaris, and a game I have incredible hope for Bliss Stage (playing children mecha pilots in a dreamland where your mecha is made of your relationships, AMAZING!). And of course, check out Tim Kopping's roleplaying site. He's written the very good and interesting Hero's Banner, and wrote up Persona, me and Mike's most successful game to date.

For those of you not in the know, Mike Hewner and I have developed a couple of games on our own. The Rules of Conduct, which has a playing card based mechanic a-la Magic the Gathering. TROC as it is known (trawk) had some interesting features. For one, only a few skills (1-3) and no attributes are present in the game. Our intention with this game was to make a system that really made you feel like a badass by naming all of your techniques and maneuvers. TROC, however, was too complicated, mainly due to character generation, which could take an half hour for a random NPC.

Another game Mike and I developed was Persona. This was our second system, and really our best. Tim has even written it up. This game had two things going for it: Just In Time character generation (genius!), and anything goes attribute/skill/fragment dice modifiers. No longer are you limited to a preset list of skills or attributes. Want points because you're fighting your father's killer, no problem! Want points for your awesome combat maneuver "Death of a Thousand Swans", also no problem. Mike and I have run Persona games for just about anyone that will sit down through one, and almost everyone has liked it. I'm even going to be trying to run a game at Ambercon North West using Persona.

The third system of note (we developed a persona-esque system that defined 3 axis of combat for any roll called Insight, but it never really hit it off) was Menagerie. Menagerie did a couple of things wierd. You were given the names of animals for your skill. Each of these animal names was a technique in your skill. In any test, you would select a technique to pit against another animal. You didn't know the point values of these techniques, you got a random one-third of technique between 1 and the level of your skill (so if you put 60 points into a skill, you would get 20 animal techniques, distributed between 1 and 60). You didn't want to open with your best animal, since allowing anyone to see your techniques gives them an advantage if you don't instantly dispatch them. Another twist to this system is that even the GM doesn't know the ratings of these techniques. Everything was done with a computer, and only it knew the point values of your techniques. The idea was you would try to build up knowledge (you the player) of the other skills, building a kind of skill yourself as you discovered more about the in game world. Unfortuantely the Menagerie game was lost in my harddrive crash last year, but it wouldn't really be hard to resurrect.

The most recent system (developed last month) is Chrome Dawn, a system with a cyberpunk setting. I'll post more on that at some later time.

Blogging at Last

So here we go! This is my attempt at a blog... I'm finally joining the likes of Slashdot, Joel Spolsky, and eighth graders everywhere. I'm not really sure how successful this will be, but I figured it was time to join the year 2003 and start blogging!

My plans include posts on roleplaying, programming, and motorcycle riding. And of course, whatever else I feel like. In particular, we have weekly gaming sessions that I plan on posting about, and I want to post (hopefully with pictures!) all of my motorcycle rides. For those of you who don't know, I do have a picture site: Check it out!

Other web presences I have: Me and Mike's BESM Character Generator, its written in Smalltalk, a great language, and for the Big Eyes Small Mouth roleplaying system. The only other thing I have is a twiki, mainly for an Amber game I ran recently.