I've been really buckling down and trying to stay focused on my rewrite of CoasterBuzz. The fact that I have blog posts over the last four years saying that I was working on it is embarrassing. This time, there's actually something there. Aside from the design work, the code stuff is probably 80%. There are a few old URL mapping things to do, some club member plumbing and a meeting calendar thing. Heck, even the track record functionality has been rewritten.
I've learned a lot so far about the process of undertaking what is largely a new project, within the context of being a one-man shop. The first thing is to stop being overwhelmed, and just start writing something. Starting was the hardest part. Having the forum rewrite finished certainly made things a lot easier. The more I'd break down problems, the easier things came to me. My initial curse was figuring out how to deal with the coaster and park databases, plus the track record. I wanted tighter, relational data. It's there now, and the work sets up some new features, forthcoming.
I learned to stop trying to repurpose every damn thing or be overly abstract. On an attempt last year, I tried to figure out how I could use the photo library code I eventually used for PointBuzz, even though it was for use with reference to coasters instead of albums or whatever. It was like trying to use a screwdriver for cutting. Ultimately, I ended up pulling out the utility stuff (converting byte streams to images, checking sizes, etc.) into my general use library project, and then wrote like 200 lines of code built specifically for handling coaster photos. That was a lot easier.
The really fun thing I've done is come up to speed on the C# 3.0 features, and I can't even tell you how awesome they are. Object initializers, lambda expressions, anonymous types, extension methods, etc., are welcome changes. I'm getting into LINQ as well, and picked up LINQ in Action. I think it's finally the data as object thing I've been waiting for.
So when will the world see it? Give it a couple of weeks.