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.


Chad Adams said...

WOW! That sounds like it WILL be amazing update! The Update to top all updates! Being one of those people who poked for a hint as to the kinda stuff to be found in this update I can say that is far more than I had hoped for! I am very excited! Thanks for all you do Ryan! But really here, Who won't be reading Harry Tommorow???? After the fact you should see how much less traffic AQ gets on that saturday as compared to the last five saturdays or something. I bet it is significantly less!

Anonymous said...

Ryan, we both agree; you're a Whiz Bang Genius! It isn't enough that you've created a website for us Letterboxers AND that you've made it one of the most user-friendly, convenient, colorful and fun websites we're aware of, but you keep imporving it! I know just enough about creating websites to be dangerous and I KNOW the countless hours it takes to do what you've done. Sure, some of us DO have countless hours to devote to something but for this sruff, you've got to have SMARTS too!! And you've got them in spades, my friend!
Can't wait to see all the new goodies! And your new box? Really?! Even more creative (read: undecipherable) than your others. . .
Big Hugs,
~~Doublesaj & Old Blue~~

Anonymous said...

You ROCK, Ryan.

While you're at it, can you add a button that says 'Select All' after the search results are listed. Sometimes it's easier to select all and then turn off the few you don't want. Thanks!


Anonymous said...

Fantastic, I can't wait for this update. So much that is going to be brilliant. I am going to love editing letterboxes without having to start at the beginning. It is something that annoys me each time, but I have never thought to suggest a change — well I didn't think it could be done.

Thank you for all your hard work. It is not only your abilities with code that is so wonderful but also the way you can suddenly see what is going to be so useful to us.

The Yorkshire Tortoise

Anonymous said...

Hi Ryan, Thanks for your tremendous efforts. I still don't know how to use some of the AQ features yet, but go ahead, add new ones! :)
...about to start Chapter 7, HP 7!