Content-type: text/html Set-Cookie: cookiehash=D8TIX1F9GET8DML97LCWDC1UDL31CF7Q; expires=Thu, 19 Aug 2021 00:00:00 GMT; path=/; DMI News

DMI News

Previous Entry.. Next Entry..

2008 Year in Review

January 03, 2009 13:03

Not so much a review, as a plan for the future, as news always tends to be. However, one must look at the past as well. DMI in 2008 had two major setbacks, one of which is typical, and one not so much. The common issue I face frequently is a simple lack of quality time to spend on the site. And what do I mean by quality time, you might ask? It's not a lack of time period. I have PLENTY of free time. The utlimate problem I face is that not all of that free time is useful to me. I'm either tired due to my work schedule, or my time is split up such that I don't have any lengthy periods of time to spend focused on one task. Much of the needed work on this site is programming based. I'm good at programming, I really am. However, for me it requires a certain amount of time to get focused on the task. And that IS my problem. Part of it is motivation, part of it is laziness, and part of it is simple routine.

I'll give you an example. Think back to younger years when you were doing homework for school. Ok, maybe you LIKED doing homework for school. Some people do. I wasn't one of them. It would be time to do homework, and I would suddenly be extremely interested in doing anything BUT homework. Cleaning my room sounded like a great idea at the time (a task for which I would otherwise be completely uninterested in). Mowing the lawn seemed like a great idea as well. Anything but homework itself. And likewise, there were times I wanted to do homework. These usually occured at times when it was inconvienent for me to do so... like, say, 6 minutes before the class started in which it was due. I could really crank out some homework in that period of time. I solved that problem for the most part by making sure there was a study hall early in the day, such that I could wait until the last minute to do my homework, and still have an opportunity to do so. It worked for me.

So now I'm working on DMI. I sit down at my computer. I check Slashdot. I check Fark. I check Digg. I'll then want to cool off by playing a little WC3, or HL2, or D3. Horribly outdated games, I know, but I can play them for a few minutes and then get bored and move on to something else. Hopefully, by this time, I'm ready to start working on DMI. By this time, something in real life will happen. I'll get a phone call, or I'll have to go take/pick up kid from school, or eat dinner, or deal with any number of other interruptions. It's not like these interruptions are frequent. It's just that they happen just often enough to disrupt my routine before I actually get to the task I was trying to get to in the first place. And 10 minutes.. 15 minutes... 20 minutes later when I get back to my computer, guess what I do? Time to check Slashdot again.

Now, while I'm at work, 8-11 hours a day, driving a forklift around, pushing boxes, etc, I have plenty of time to think. Granted, I have to be sure I'm not running into stuff while driving, but I have a lot of time where, while I'm working, it's not mentally exhausting. I can think about DMI, or some other project. I can imagine to a great detail exactly what I want to be working on. How exactly I'm going to implement it. The design, the testing, the implementation. Everything. However, by the time I get home, I have forgotten not only about what I was thinking about, but that I was even thinking about it at all. In fact, I completely shut out work when I'm not there. And that's part of the problem I guess. To solve this problem, I'd start taking notes while I was there. To the point I might bring home 6-7 pages of handwritten notes on what I was thinking about. The plan was, once I got home, I'd be able to sit down with the notes and focus on what I had been thinking about that day. I get home, promptly misplace the notes, and go check Slashdot. I'd completely forget that I had taken notes at all.

It's not that I don't want to work on DMI, I do. I really do. And everytime I actually manage to get working on it, I have lots of fun and really make some good progress. Even if I only spend about 20 minutes really working on it, I make tremendous headway. If only I put 6+ hours a day on it. Imagine what I'd be able to accomplish. Believe me, I've imagined it. And it's great. But ideas and dreams aren't worth the paper they're printed on (or in my case scribbled on) if they're not implemented. So I really need to start implementing them.

So what am I going to do? What new years resolution shall I employ upon myself to force a change in routine that will result in me spending a majority of my free time on the site and giving slashdot and fark the shaft instead? To be honest, I don't really know. I just need to train myself to sit down and start programming. If I'm always programming, it won't take me an hour to get back in the groove everytime. It's just a matter of discipline, I tell myself. I just have to believe it I guess. :)

Now, the second issue.... go back, read the first paragraph... yes, there WAS something else I was going to mention. The server crash back in late May that resulted in the site being down for 6 days. Yeah, that sucked. Actually, it wasn't so much a server crash as an explosion in the building that housed the server. But the server wouldn't boot back up afterwards and I had to reload it, yada yada yada. The net result of this was a huge reduction in traffic. Check the Statistics page to see how we lost 2/3 of our traffic from May til June, and that wasn't just because we were down for 6 days, but because a huge number of regulars quit visiting in that amount of time. Downtime is the curse of any website. I've had another server set up.. in another datacenter, in a different city, to have a live backup in case something like this ever happens again. It's not actually set up and active. I just dump backups on it, but I could get it going in a day if I had to. Utlimately what I'm trying to do is set up a complete loadbalanced and fault tolerant solution. One that will allow me to handle traffic for the site from both servers simultaniously, and have one take over all traffic should the other one fail. The programming to make this work is complicated and extensive, and I've been working on it for 6 months now. Once finished, it will let me seamlessly add any number of servers to the cluster, and therefore let the site scale to whatever heights it possibly can. It also makes a lot of other issues go away. There are a lot of dirty hacks that I've implemented over the years that are still in place just because redoing them takes time and I don't have the framework set up to handle a more efficient and clean solution. This project aims to fix all of that at the same time. Right now, I'm still working on a single server prototype. Once I have completely implemented all features I want, I'll update all the other servers to take advantage of it and start deploying those servers for active use.

There is another reason for doing all of this. We can call this the third major issue if you like. There is currently a limit to how much traffic the site can handle. It's not a bandwidth issue, 100mbps will handle quite a bit. The site itself just has too much overhead in the efficiency of the programming, and while I could buy some time by upgrading to a faster cpu and more ram, it would only buy me time. While things are relatively slow, I want to make sure I get the functionality in place to handle traffic that's 10, 100, or even 1000 times what we have now. And why would I need this? I ALMOST had an opportunity to need it this year. Almost. I was in talks with a sponsor who liked my site idea. Had it gone through, I would have made enough to quit my day... well night job and work on the site full time. Of course, as fate would have it, an ill timed demonstration to someone's superiors went awry. Someone visited the chatroom for a few minutes and witnessed a conversation by designated authority figures (ops) of a nature for which which I had assured them would never happen. That torpedoed the entire opportunity. I was not very amused. Needless to say, we haven't had any such problems since, and I will be vigilant in my efforts to assure that it stays that way in the future.

So there you have it. My resolution for the new year. We shall see how it plays out.