codename: sonata

The hallmarks of change have been there for some time: the favicon switching to an inexplicable light blue, the folder marked 'domesticat idea' in the 'design work' folder. Those of you using feedreaders this weekend might've noticed posts appearing multiple times in your feedreader as I re-jiggered the feeds to pass through some very basic markup that I've been using for months now.Add to that the sudden uptick in posts recently, and you might begin to suspect that something's up. You'd be right.

This weekend was the beta test of the code we'll be using on-site at dragon*con this year, the code that has been the capstone of the project I've been working on for about three years now. There are still some minor issues to resolve, but I can say this: to see the machine go from empty to ready to start handling check-ins within fewer than ten minutes was uplifting in a way that I can barely describe to you.

It's going to work. It may not work perfectly; I've got a month to iron out the rest of the little things I've seen, but it's going to work.

So what do you do when the test you scheduled for most of the weekend goes so swimmingly well that within a half-hour you realize you need something else to do while your spouse is out of state for the weekend? If you're me, you pull out the site design you've had on your mind for months now and finally coax it into completion.

The design codenamed 'sonata' has been lurking for a while. It's based off of a small design challenge, a study in constraints: what I was capable of doing with a single color (#0576BF), a tint of that color (#6AB9EC), and white? What you see now is my answer.

* * * * *

I've imposed a lot of pressure on myself to make this code work. That's been obvious to every person working on this project with me. I asked myself why, and the answer surprised me: pride, and anger. I've been working under the shadow of a pretty serious slam by a person whose opinion shouldn't matter to me, but does, and it's been enough to drive me to be just that much better.

I am not a gifted coder. I admit this, and I will brook no argument. I am achingly aware of my limitations, and freely admit them. By facing them squarely, I learn from them—slowly, painstakingly, eventually. Those three words sum up my coding abilities. I am patient, not gifted; stubborn, not insightful. What I write will take me longer to write than it would a more skilled coder, and will likely take the long way around to do things, but when it is finished it will be legible, maintainable, and work exactly as promised. If I start a project, I finish it. Period.

I've taken some pretty public (and stinging, to me) slams from a staffer who contributes a much smaller amount of similar work to another section of dragon*con staff. I've had my work, my design, my choice of coding language, and my choice of database publicly mocked by this person. ("Delete it and start over" is the sentiment that has been said directly to me, and to other people.)

(Chris P - if you're reading this, know that I've read a great deal of what you've written on the merits and detractions of different coding languages. I know you despise PHP. I envy your knowledge of multiple languages; how that would have helped me on this project, but I had to use what I knew.)

This person is, by all repute, brilliant. Very gifted, and (also by repute) very difficult to work with. I was asked to take on a project instead of him precisely because of the difference in our personalities; with this person, it was believed that s/he'd probably remain incommunicado for most of the summer and then deliver something at the absolute last minute. Would it work? Probably, but would they have any assurance ahead of time that they were actually going to have the code they needed? No.

In my mind, it didn't matter that over the past three years I—with my plainly subpar coding skills—have contributed far more work than this person has. I may suck, but I have a working, user-friendly system to show for it. S/he doesn't.

When I learn something new, I incorporate it into the code. Over the past year, it's become more maintainable by others. I think I'm a few months out from being able to reach my holy grail: reaching a critical mass of functionality that would mean that I could hand off part of the code work to those who are more gifted but who have less free time than me.

Seeing the beta test work so well this weekend was incredibly comforting. My coding skills may suck, but they suck just enough that we'll have a working shift grid and staff check-in system this year, and it should dovetail nicely with Stephen's radio check-in system. It will have been thoroughly beta-tested by the people who will be using it, and there will be no surprises whatsoever. It will just work.

…and that is what matters.


Well your coding might suck, but we all know it's the end result that matters and it looks like it will KICK ASS this year! Thanks for all your hard work!!!!!