Wednesday, July 25, 2007

The Next Big Update....

I have a terrible confession to make. I know I've been promising a HUGE update, one I've been working on for well over a month now, but.... I have finally had to admit to myself a terrible truth. I likely will not be able to upload it until September at the earliest. I've suspected this for about a week now, but I hoped I was wrong and worked trying to prove myself wrong, but there's no avoiding the truth. All these features and improvements I've been making--you won't see any of them until September at the earliest, and I'm terribly sorry for that. I really hoped to have them done by the end of this month, but it's not going to happen.

One particular update, which was supposed to be a fairly minor change at first, has been considerably more complicated than I originally anticipated. It's the killer, knock-your-socks off feature I mentioned in my last post but wouldn't tell you what it is. (I still don't intend to until it ready, either! *wink*) I'm making progress on it, but it's been a lot longer, slower, and harder than I imagined.

August is just a bad month for me. I committed to doing two weeks of trail work along the Pacific Crest Trail this summer. It's my "big vacation" for the summer. Living out of my backpack in the beautiful Cascades Mountain range. And not just hiking this time, but trail work. Building treads, removing tree falls. Hard, manual labor without an Internet connection in sight.

It's divided into two, one week periods. That way, I'll only be leaving AQ unattended for one week at a time rather than two solid weeks. The first of these working vacations has me leaving on July 28th and returning on August 4th. Then I'll be back for one week before I leave again for a second week.

That pretty much ruins most of August for me, in terms of updating Atlas Quest. Two weeks I'll be gone completely, and it usually takes me several days to catch up with e-mail, message boards, and the usual day-to-day stuff I do to keep the site running so I won't be working on NEW code for the several days after I get back. Just trying to play catch-up.

If somehow, miraculously, I was able to finish the update before I left for the second week of my trail work, I still would not push the update onto the live site. It's a HUGE update, and I KNOW there will be lots of questions and, alas, bugs. I won't dare put up such an extensive upload then split for a week. I need to make sure I'll be available 24/7 for at least a week or two once this update goes live, which means it can't happen until my final return on August 18th. Add a few more days while I play catch up, and the VERY earliest the update will be ready to go live might be August 21st. In all honesty, though, I don't think the update will be ready by then. At this point, I'm estimating at least a couple of more weeks of work to be done and it won't be ready until September.

Which I feel terrible about, because it's SUCH an awesome update!

I'll have some other distractions come September 1st, however, so it might take even longer.... The last day to submit photos for Project X is August 31st, and I'll start putting the calendar together September 1st.

So when will the update go live? I don't know exactly, but I'm shooting for a mid-September date at this point. I knew if I didn't get it done before I left on my first backpacking work party it would seriously delay the update which is why I wanted to finish it near mid-July. Plenty of time to update the site, shake it down for bugs and answer questions, then quietly slip off into the mountains.

So that's what's going on in the AQ world. I missed my deadline, and now the rest of you are going to have to pay for it. (Figuratively speaking, of course.) I'm so sorry! I so wanted to show off these changes before August. *sigh*

As an aside, though, keep those calendar submissions coming. I plan to take a lot of photos myself during my backpacking work parties!

Friday, July 20, 2007

Odds 'n' Ends

So what am I up to, you ask? It's been a rather lengthy period of time since I've done a substantial update on Atlas Quest, although those of you reading the message boards know I'm up to something big. =) The update seems to get bigger with each passing day, and you'll definitely notice some changes when it's ready to go live. It all started with a perfectly reasonable request.... to include some attributes on virtual boxes. Sounds simple, doesn't it?

It is, to a certain degree. The thing is, I like to make my code so I can easily pop in pieces, or pop them out. Back in the early days of AQ when the site only supported traditional letterboxes, that's the only type of box I expected to have attributes. It was a stupid design decision on my part. Of course other types of boxes would eventually need attributes--that's easy to see in hindsight, but I was blind as a bat seeing that back then. So attributes were hard-coded in such a way that only traditional letterboxes could support them.

The day had finally come when another type of letterbox needed some attributes to help people sort through the bewildering number of boxes available. In particular, the virtual box. The virtual box has taken on a life of it's own.

I could have added support for virtual attributes directly. Create a table in the database for virtual attributes, but I saw the error of my ways before. What next? Postal box attributes? Personal traveler attributes? Someday, it would be very likely that many other attributes would be needed to sort through the huge number of boxes available.

So a special table in the database for virtual attributes wasn't going to fly. That was an "incremental addition"--the type of thing that's relatively quick and easy to do. I needed to create something at higher level--so attributes could be applied to all types of letterboxes.

That, of course, required quite a bit of code rewriting. The bonus in the long run, however, is that I could apply new attributes to any type of letterbox, make them searchable based on those attributes, or remove or change attributes very quickly and easily. Once that basic support for attributes was established, at least.

Originally, once that basic support for attributes was established, I was going to upload the changes and make sure they worked well. Despite all the work in rewriting code, though, you wouldn't have seen a single change at the user interface level. I was only adding support for other attributes--not actually adding any new attributes at the time!

But I couldn't help myself. I wanted to try a new attribute. Just one, to see how it worked. In fact, to test that it worked as expected, so I added a "heavy" attribute for postal boxes. Postals that weight more than one pound tend to be rather expensive to mail, so a little attribute warning people that mailing expenses could be steep with that box would be nice. Thus, the "heavy" attribute on a postal box. I slipped that into place in less than an hour, and it worked for the most part.

I did find a few issues, though, and spent most of the next day tweaking my rewrite, eventually adding another new attribute, the "Traveling Event Stamp" attribute to the event stamp type. Makes it easier for people to search for traveling event stamps if they could distinguish it from the non-traveling event stamps, I figured.

Adding attributes worked so well, though, I figured I may as well add the ones several people suggested for virtual boxes. Thus was born four more attributes that apply to virtual boxes.

But I wasn't done yet. No, I couldn't upload a half-finished virtual box feature. The attributes were only half the change I had in mind for virtual boxes. Due to their virtual nature, very few actually end up with stamps, hand-carved or otherwise, at the end. People use pictures they've taken with their digital camera, or used images found from the web, or even draw pictures that you "find." I needed to update the types of stamps available specifically for virtual boxes.

Other types of boxes, perhaps, may need additional stamp types someday. I don't know how or why, but I didn't want to make the mistake I did with the attributes years ago. I wanted to make sure any type of box could have the stamp type extended if necessary, so I did a bunch more code rewriting to allow a bit more flexibility with the stamp types, then added a few new options that can be applied to virtual boxes.

Virtual boxes are looking cool now, I must say. But people need to do a search for specific stamp types. So I updated the advanced search page to handle the searching of all these new attributes and stamp types.

Very good. Things were looking good, but I wasn't done yet. No, there was one section of code that I had yet to rewrite. I'd been delaying and stalling because I knew it was going to be a lot of work, not necessarily very fun work either, but it needed to be done before I could upload the changes. The listing of letterboxes would need to be updated..... People had to select all these new attributes and stamp types, for instance.

I've never liked the process of listing letterboxes on Atlas Quest. You can't skip ahead to the page you need when you're making a "quick" change. You have to go through every page, one at a time, until you reach the last one and your changes are saved. Now that I would have to make substantial changes to support the attributes for different types of boxes and new stamp types on the virtual boxes, perhaps I can fix all the problems with the listing of letterboxes?

And that's what I'm working on now. It's only partly done, but so far, the results look very slick! You can even start add or editing a box, go off before finishing, then come back later (within reason!) to continue from where you left off. You can go directly to any page of the listing process instead of the series of pages that had to be navigated one page at a time.

And since I was rewriting all this code anyhow, I could make a few additional improvements I had in mind, but I'll keep those a secret for now. In any case, you're going to see some HUGE improvements on the process of listing a letterbox. ;o)

I'm sure some of you are thinking, "Wow! That's quite an update!" And you're right, it is. But there's so much more going on.....

For instance, Kilbert pointed out that exchanges really belong in one's logbook, and he had a good point. It is very logical that exchanges go in the logbook, and that's a pretty quick change to implement so I did it immediately, not really thinking through all the consequences of the change very well. I don't think it took more than an hour to add an "exchange" page to the AQ logbook and removed it from the profile.

But reading the message boards, I realized I forgot about one tiny but important fact. A lot of you guys use that exchange list as an address book of sorts. It wasn't designed to be used as an address book, but that didn't stop people from using it as such. The listing of exchanges in the logbook wasn't nearly as accessible or easy to use for that purpose, though, and a number of you would likely revolt and start hurling stones with this change. Damage control....

I could put the exchanges back in the profile, but darn it, Kilbert's right. They really do belong in a logbook! I'll go to plan B.... It's been asked for many times before, and I always thought was an excellent idea--just not one I had time to implement before. Well, now I was going to make time and create a real address book rather than leave the improvised one in place.

So I added a new button on the side where you view your mailbox, one especially for "Contacts." When you view someone's profile, if they are not part of your contacts list, there will be a small icon of a silhouette of a person's head that you can click on and automatically add them as a contact. Or if you read AQ mail by someone in particular, you can make them a contact at the click of the button.

Of course, nothing is ever as easy as it seems, and I ended up having to rewrite a bunch of the AQ mail code. Now, however, when you read a message, those convenient little buttons on the side of the page with your inbox, archive folder, and sent box will still be there. They don't disappear anymore when you read or write AQ mail, which I rather like. =)

What else? Hmm.... There's a whole bunch of bug fixes I've added to the update as they come up, but I have little doubt they'll be compensated for when the update comes. An update of this size--HUGE!--is going to have a whole bunch of new bugs I haven't found yet. =) I've added a few more First Finder Certificate options which will be included with the update.

Oh, and I almost forgot, there's also one VERY exciting new feature I haven't mentioned yet. I had intended to replace a certain section of code for quite some time now for something more flexible that had not been available when I first coded it. It's in the heart of where all these changes are taking place, though, so I figure, why not throw that change in as well? Turns out, the results are FAR more spectacular than I ever imagined! Of all the changes I've been making, this is the one that excites me the most. =) It will positively knock your socks off.

But I'm keeping that change a secret for now. After all, I have to leave you guys with something to look forward to, right? ;o)

And if that wasn't enough to keep me busy, I've still managed to keep sending all those AQ patches out, attend a couple of letterboxing events, keep up with the message boards and my AQ mail, and moved all of my worldly possessions from Portland to Seattle.

And finally, I'm off to hunt for a good location to plant a letterbox, a very special letterbox, unique in the history of letterboxing, which I'm absolutely giddy about. =) I don't plant nearly as many boxes nowadays as I did early in my letterboxing career, and I have to admit, a large part of that is just because I'm out of ideas for something new and different that's never been done before. I like my boxes to be memorable, but each year it gets harder and harder to make yours stand out.

Don't let me discourage you, though--boxes do NOT have to stand out to be perfectly good boxes. I just enjoy challenging myself, which involves doing something unique, and there are thousands of other people out there planting letterboxes that do a pretty darned good job of "competing" with me on that. =) But a few days ago, in a fit of inspiration, I thought of a completely new, very unique type of clue to annoy everyone with. =) I don't know how well it'll work, but I think it'll be a whole lot of fun to find out.

Tomorrow, though..... Tomorrow, I'll be reading Harry Potter. =) If I don't post much tomorrow, you know what happened to me.