It’s always nice to finish up something you’ve worked very hard on. This weekend will mark the completion of Moon River Milestones v1.1.0. A small milestone for Moon River, but a new milestone nonetheless.
Testing revealed some rather embarrassing bugs, to be sure. For example, I recently added anchor links for the text descriptions of issues that were edited. I had decided that dynamically generating these links would be a pretty cool feature. So, for example, you can add a description like this:
“Mike says that issue 47 isn’t a big deal. This one is similar, so we should probably just close it.”
Prior to displaying the text on the page, it would search the text word by word for issues that it should link. In this case, the text ‘issue 47’ would link back to issue 47. It’s case insensitive and will automatically link anything that matches issue, case, bug, ticket and a few other words, followed by a space and a numeric value. That way, people aren’t restricted by my terminology in how they use the product.
The cool thing was that after realizing that it was a link to another issue, the code would look up that issue to get the status. If it was an open issue, it would assign the text “Issue 47 is Open” to the title tag for the href link, and leave it as is. If it was resolved, the link would be in italics, and a Closed issue would be linked, italicized, and
stricken, like so. If the issue didn’t exist, it would not be linked, so the user can’t be redirected to a non-existent issue, automatically redirected back to the main gridlayout page and left wondering what happened to issue 47365.
This apparently wasn’t tested real well during development. If the issue was resolved, it was attempting to reuse a connection string to the database from a connection that was already open. Those familiar with .NET will realize this is a no-no, since you can’t access the ConnectionString property of a connection while it is open. Bad programmer. No Dew.
Everyone makes mistakes I suppose. There were a lot of ‘little’ bugs like that which were found, squashed like PHB’s should be, and then the whole project was rebuilt and retested, just to be sure that nothing else was broken. This process was gone through perhaps at least half a dozen times. Most of the code was pretty good, but there were a lot of last minute tweaks that I snuck in too, most of which were actually targeted to Version 1.2, but I knew it wouldn’t be hard to add them in and should make for a better product.
Of course, there’s one that I overlooked. I shouldn’t have overlooked it because it’s tracked in Milestones, but it’s too late now and is so incredibly minor that I’m simply not going to worry about it. The copyright date in the footer still says 2005. Issue 343 clearly states that the footer needs to be updated with the latest version and an updated copyright date. I missed the date though because I didn’t read both parts of the same issue. It should have been tracked as two separate issues.
I made a mistake. I’m only human I suppose but I doubt that’s my major character flaw.
This weekend, the online trial will be updated with the new software, a press release will be drafted, and the software is already in the hands of some early customers. Once things settle down a little bit, it’s time to get cracking on Aurora. Some of you may have noticed that the timeline I set forth at the beginning of the year is not only tromping along without a whip behind it, but March is fast approaching. Can Aurora be ready by the end of the month?
My guess is probably not. Development time for MRM v1.1.0 was extended by three weeks due to a home painting project that ate up three full weekends of work, plus several days in the middle of the week. This painting project is still ongoing, and will be completed a week and two days from today at the very latest. But Aurora isn’t a terribly complicated piece of software. Oh, it’s going to be a pretty damned useful piece of software if I do say so myself. But I can’t imagine it will take very long to write because I spent so much time designing it.
I think the design was probably the hardest part of the project. There were some really tough decisions that I had to make. I’ll be able to elaborate on some of them after launch, but let me say flat out, I spent many a night awake in bed agonizing over some of the decisions that I had to make.