It's been a long hibernation and I'm ready to come out of the cave and see daylight again. For various reasons, I wouldn't talk about why I wasn't around much, and I didn't enjoy being secretive like that, especially since all three were sources of happiness for me. Anyway, I promised recently that I was about to come out of the closet concerning the three things that have occupied so much of my 2006, and it's time now. This might take a couple of days to write in total.

The first thing is, of course, the site you're using right now. It has been a massive undertaking, far more difficult and complicated than any web project I've ever undertaken, personally or professionally. I'd still do it a second time if I had to, but I'd go about it a lot differently.

It really started when I began my career in web development in May 2004. I learned more about php in the first day on the job than I had in a whole year of toying with it as a hobby. Within a few months, I was chomping at the bit to build myself a new site with everything I had learned, and I spent the summer of 2004 putting one together. The end result, launched November 1 2004, was much more complex than my previous sites... but I had rushed into it before completing my php education. The more months went by and the more things I learned about the art and science of web development, the more frustrated I became with it, because it was so cumbersome and dense and rigid. Every new thing had to be done a certain complicated way or not at all, which made it hard to add things to the site, and it stopped evolving. On top of that, I had intentionally made the "default" design plain black text on white with a simple gray header at the top, intending to apply other designs to it later that would deviate from this simple base. But my code was so far from xhtml standards and used so little css labeling that there was no way to apply other designs to it. I was stuck with it like that.

So, in June 2005, after it finally seemed like I had learned enough about php to move ahead in confidence, I began brainstorming a new site. I had all kinds of great ideas about how the site should be. One of the best, which survived through to the version you're using now, was to go back to having bright, vivid colors for each section; my brain color-codes everything and it's just not a Scott Hardie site without section colors. But one of the poisonous ideas that nearly ruined everything began with the best of intentions: Separating the content from the formatting. In my business, we have a number of core systems that are written independently of the sites they support, but some of them do the html/css formatting as soon as they pull the data from the database, meaning that by the time the site receives it, it's already fully decorated with a bow on top. That's a timesaver if you want it to look a certain way, but if the client wants it completely different, you don't have much of a choice. Because of that, it has been our ideal for some time now to separate the two halves: To build one system that merely acquires all of the content, such as (in this site's case) all of the data about each goo on the page or each FIN reply for the post, and then a second independent system that applies whatever formatting to that content is desired, like font and color and layout. That way, whenever you want a change to the way it looks, you only have to change one system, instead of rewriting it in its entirety. Sounds great, right? There never seemed to be time for it at work, so I decided to put the plan in motion with my own site instead.

What I didn't count on (but should have) is how difficult that would make everything. I wasn't just making things twice as hard, oh no. For every single page, first I had to break down to a fundamental level exactly what the content was, then I had to construct the perfect database scheme for it, then I had to devise the ideal solution for acquiring it from the database and transforming it into a universal array that could be processed independently of what it contained. Then I had to go on the other side of the wall, so to speak, and figure out the correct way of handling each of dozens of pieces of data in that big array that everything was packed into and how I wanted to format it, applying as many different css tags as I could so it could be easily manipulated, and all with perfect consistency with the other pages that I had already done. In other words, everything became ten fucking times harder: The pages that had once been a cinch, such as plain-text pages like the section introductions, became as hard to put together as the most complex functionality on the site. And if they became that hard, imagine how difficult the functionality became.

The work wasn't so bad at first, actually. I was making reasonable progress throughout late summer and early fall, reaching about 70% completion when I was promoted into management at work in October 2005. This was a wonderful change that I have appreciated ever since, but the price was my free time. It became normal for me to work from 9am until 10pm and do a few hours on Saturday and Sunday too, especially for the first few months while I was trying to get a chaotic system under some control. My project suffered, because even when I had time to work on it, I was so mentally exhausted that I couldn't see straight. I still soldiered on throughout November and December, and promised a January 1st launch, but I had painted myself into a corner by putting off the most difficult code until last. Progress slowed to a trickle, then stopped altogether. I had spent something like five days on the same piece of code when I finally surrendered in colossal frustration. It was a huge disappointment to me, especially because the damn thing was 95% done and only needed a little bit more to get there, and I didn't have that little bit more in me. With only a few days left in December, I quietly resumed my TC activity and began preparing goos for the existing site, and nobody knew the difference.

If you want to see that nearly-finished site, check it out. It had some great elements. I loved the big splash images behind each section. I liked the random sidebars that would show trivia and polls and other fun tidbits. The FIN posts were formatted far better than they have ever before or since, in my opinion (example). There were a dozen or so little things that worked really well, and a fifth green content section that was 100% finished but was abandoned for reasons too complicated to explain here. But, in the end, the site was impossible to finish. Even if I had no job and all the time in the world, it was too difficult to code. It was a brick wall.

It wasn't until February that I began to give it serious thought again. By then, I had long been sick of the plain-white design that was still my public web site. I was a career web developer and proud of my professional work, so how come my personal site was so very, very plain? I knew I wanted to build another site, and to keep the code as simple as possible this time so I wouldn't be my own obstacle to completion. But at the same time, the last one had been such a difficult endeavor for so long that I despaired at the thought of starting all over from scratch again. I felt like Sisyphus, pushing that boulder almost up to the top of the hill only to have it escape me and have to start all over again.

I brainstormed in February and finally began the actual work in March. It wasn't so bad once I got going. I browsed other sites and took in lots of different design ideas I liked. I knew I wanted vivid colors and gradients, and I did something else that is a Scott Hardie web tradition, which is to reuse old graphics in new ways. The color gradients on the main menu and on the right sidebar originally come from The World Game, a fantasy rpg I ran online from 1997-2001 (the FIN of its time), where they served a different purpose. Other than putting the nav on the right side of the page instead of the traditional left, and having the words "search goo.tc" disappear from the search box when you click in it, there's zero influence by my company on this site, and I'm proud that I did it so entirely on my own. It's mine, and it's very much of my heart, not the way I think a site should be in principle but the way I actually like it. I try (too hard) to be a logical person and to remove emotion from everything I do, but damn it if this site isn't driven by my feelings about what the web should be like. The feel of the links, of the forms, of navigating from page to page, that's all borne of my heart. It sounds silly to people who don't do this sort of thing, but every site has an undefineable X factor that only comes from using it, what's called the "look and feel" of the site in my industry, and I tried as hard as I could to infuse this site's look and feel with my own personality and identity. I wish it could have had a launch untarnished by glitches but that's unavoidable; I think the real proof of how well this site works will be demonstrated over the many months to come, and if I've done my job right, you won't even realize how good it is.

For the final month of the project, I was comforted by the simplest of things: A fortune taped to the top of my monitor. It's funny how four little words can give you the strength to keep going. (Click to read.)


Four Replies to Where the Hell I Have Been All Year, Part I

Kris Weberg | August 4, 2006
I'm always curious about what it must feel like to have a personal project -- dare I say an artistic medium? -- which is by definition endlessly revisable and endlessly mutable. I realize you're talking about discrete incarnations of TC and that days are finite spans, but it's gotta be simultaneously intimidating and invigorating to know that you can always tweak or alter the design and the functionality of it, to bring it that much closer to...well, whatever you want it to be that day or month or decade.

Jackie Mason | August 5, 2006
[hidden by author request]

Scott Hardie | August 7, 2006
Kris: If it's good enough for George Lucas, it's good enough for me. For real, though, I find it invigorating to work in an art form, communication medium, whatever you want to call it, that is always changing. I don't miss out on the satisfaction of finally "finishing" the project because I'm always finishing parts of it in small ways, and my past work enhances my current work instead of me having to start over with a clean slate every time. And if I someday feel like starting with a clean slate, I can.

Jackie: Thanks. :-) I liked that design, but it was incredibly complicated to do. Even when I decided to recode from scratch again, I threw out that look because it was too complicated. I didn't want a simple site any more, but that was ridiculous.

Jackie Mason | August 9, 2006
[hidden by author request]


Logical Operator

The creator of Funeratic, Scott Hardie, blogs about running this site, losing weight, and other passions including his wife Kelly, his friends, movies, gaming, and Florida. Read more »

WLW: Can't

"Can't" is a word that fat people tell ourselves a lot after so many failed diets: We can't lose the weight, we can't succeed. Hearing it from a doctor would seem inconsequential. But it still hurts. Go »

Give Me a Little Credit Here

Today's junk-mail pitch from Visa: "Most credit card companies know you as a number. Sean, we know you by name." Go »

You Won't See This in the Goo Game

Jeopardy! history was made yesterday: (link) Go »

Summer of Suck

It's been a tough summer so far. Here's venting. - Some good people were laid off in my department. Go »

The Angry Number

Steve Dunn is bemused when people speak out against corporate America, as if it's a bad thing that they give millions of people jobs and create the products & services that enrich our lives. I'm with him, but sometimes I do get tired of being treated like a number. I've been a good tenant at this apartment complex for three years – always paid rent on time, no loud parties or messy pets or maintenance problems. Go »

Earth to Cat

What part of get down! are you pretending not to understand? Go »