Friday, September 24, 2010

Maybe it's because I'm officially a dork (or geek? I'm not really sure what the difference is?), but in the last five months, I've really missed coding. The stuff that requires me to open the hood on Atlas Quest, replace parts, shake up the database, and makes me think--how can I get the system to do something it may not want to do. An idea is great, but figuring out how to make them work can be a lot of fun.

The very first changes I made to AQ since getting back were largely cosmetic in nature. Fast and easy to implement. But I really wanted to get into the guts, and now I've done so. =)

The changes aren't obvious, and most of you probably won't even care about them, but they were things that bothered me for a long time. If you go to the Advanced Search page, that's where you'll see the results of my mucking around. In particular, the stamp types and the hike types sections.

They used to be radio buttons. Now they are checkboxes. Before, you could only search one category at a time: For instance, if you wanted a list of all boxes that required a hike of three miles or more, you had to either accept "all" lengths, or you had to run two searches--one for "treks" and one for "expeditions." Now you can specifically pick both types at once. You could even throw in the boxes of "unknown lengths" in case some of those might be longer hikes as well--or not, if you think that would likely include too many false positives.

I usually skip looking for any box marked as a store-bought stamp, but I don't mind looking for the occasional custom-made stamp along with the hand-carved stamps I usually find, and now I can run a search that lets me hide those store-boughts that I'm not interested in while keeping all of the other boxes in my search results. Awesome! =)

I've also turned a couple of "admin only" features into features that everyone can now use. Once again, you can see that on the Advanced Search page--it's now possible to search for boxes that have blue diamonds and/or planter's choice icons on them. I originally used them to help test me test various algorithms. I'd tweak an algorithm, run it, then see what sorts of boxes were being assigned the blue diamonds by running a "blue diamond search." I've actually had that as an option available for admins since those features were created, but admittedly kept them "admin only" options thinking they'd likely be too controversial. They probably still are, but I don't really care anymore either. =)

When you're wandering through the woods wondering where your next good water source is and if you have enough food to get to the next trail town, you start thinking about the problems in the "real world" and start thinking, "Who the hell cares one way or another about blue diamonds? There are far more important things for me to worry about. If someone doesn't like those being options, they can jump in a frozen lake. It'll give them something else to worry about--problems that really matter."

So I've made those options available to all now. Yes, if you run searches that return only blue diamond boxes, you'll certainly miss some great boxes that don't have them. Yes, if you run searches that return only planter choice boxes, you'll also miss some great boxes that don't have them. But really, is there any method that can guarantee you'll get a list of every great box in an area without actually finding every box in the area yourself? Recommendations from friends are incomplete unless they've found every box in an area. And they might skew their results based on their own personal preferences. Yadda, yadda, yadda.

So I'll say it now--yes, you will miss some awesome boxes if you just look for boxes that have blue diamonds. But I'll say two things about that: One, who cares? I don't. That's your loss. And two, it's not possible to create a definitive list of "must find" boxes with any method. The only way to guarantee you'll find every fantastic box in an area is to actually go out and find every box in the area. And when we're traveling, that's rarely a realistic option. A blue diamond list may not be perfect, but neither is any other list. At least it gives you a starting point, though.

And finally one other tweak--many moons ago, when I was testing code that was specific to where clues were hosted, I'd find it useful to search based on where clues were hosted as test cases. So I made an admin-only option that let me search based on if a clue were hosted on Atlas Quest, LbNA, or some other remote website. It would even show an icon in the list of attributes to let me know where the clue came from. (Those icons would always show up in my printouts of clues, and I always wondered if anyone noticed the "extra" icons that would show up in my printouts, but if anyone did, they never said anything about it.) It was mostly a feature I used for testing. The only practical use I could think of that you all might use it for would be to run a search that suppressed LbNA-hosted clues if you were planning to check for clues on that website anyway. It would reduce the redundancy of seeing those particular boxes on both sites. But it would likely "look bad" to provide an option that would let people suppress LbNA-hosted clues on searches here, even if the point was to encourage people to get a full list of LbNA-hosted clues at LbNA.

I've also found that I rarely ended up using that search option--if I needed to find a box with clues hosted on LbNA, for instance, I'd just run a simple search then scroll down the attribute list looking for one marked appropriately. Seemed a bit laborious to actually run an advanced search.

So I took that option out from the search options--makes the code shorter and easier--but I left the icons intact and they're now available for everyone to see. If you run a search, it'll show an icon indicating where the clue is hosted--Atlas Quest, LbNA, or "some other remotely hosted clue"--before you click or even hover your mouse cursor over the link. Then I added additional ones for kicks--there are now icons for clues hosted on the geocaching.com website and for those hosted on Blogger. Again, the ability to search based on where a clue is hosted is not an option, but you can see at a glance where the clue is hosted.

Which can be useful for a couple of reasons. You might see that a clue is hosted on geocaching.com and might naturally think it's a hybrid box--and perhaps not one you'd like to get.

Another possible use: AQ often uses cached clues for some features like the ability to print several clues at once--but this often doesn't work well with Blogger-hosted clues (which are often photo clues, and photos aren't cached) or other remotely-hosted clues. If you see one of those in your list, it might be a good idea to take a special look at the clue before printing a cached version of it. (I knowingly walked passed one letterbox on the PCT when the clue stated to find the location where the photo was taken... but my clue didn't have the photo attached! Argh!)

And, just because I could, I added one special icon for any clue that I've hosted on my Ryan's a Total Goober website. Which right now, amounts to just one clue. I usually host my clues on AQ, but one particular clue I needed to do some advanced HTML that wasn't permitted on AQ. It's not really useful in this particular case, but it's one of the perks of running your own website. =)

If you run a search for New York, NY, for instance (at least with my search results), you'll see icons representing AQ-hosted clues, LbNA-hosted clues, two Blogger-hosted clues, and four "other remote clues." Just click on the icon to open up the clue page.

So there you have it.... some of the updates I just installed about an hour ago. Enjoy! =) I mucked with the code. I mucked with the database. I probably broke some stuff and don't even know it yet. If you see any problems, do let me know!

I like the first change a lot. Thanks for making the hike length into check boxes. Of course I mess with the other change by having a clue or two hosted partially on AQ with a link to my clue blog with a scanned map. :-)~

Re: Blue Diamond 'boxes: We totally agree with you on this. We sometimes only have time for the BD 'boxes when we're traveling. However, while in NH recently, we got a "BD" 'box that was ANYthing but! Crappy stamp, iffy location (although historic), certainly not BD! Do you suppose people are rating 5s just so theirs or their friend's 'box will get the BD?

I think it would be practical to have the "Last Found" date immediately after the "Launched" date. This would allow more selective online searches. If there is a good reason for not having it, I'd sure like to hear it!