Wednesday, March 28, 2012

Delayed Again!

I don't mean to be yanking your chain, but it's probably starting to seem that way. After announcing the downtime delay to Friday, I got a surprisingly number of messages requesting it be moved to Monday so that Atlas Quest will stay available during the weekend. I'm kind of anxious to get this done and over with, but I do like to be accommodating when I can. So I took an informal poll this morning to find out if people preferred a Monday update rather than a Friday update. As it turns out, Monday won by a landslide! The people have spoken!

So I'm delaying the update until Monday, April 2nd. Sorry for all the confusion about this, and hopefully it'll be much ado about nothing.

Tuesday, March 27, 2012

Update Postponed....

I'm still working on getting the new server ready and it's taking quite a bit longer than I planned. I might have it all done in time for Thursday, but I'm going to postpone the switch until Friday morning just in case an extra one day isn't enough.

The main thing slowing me down is copying all of those 100,000 or so images you've uploaded to AQ over the years. Keeping in mind that for every image you do upload, AQ creates three files from it: a thumbnail, a "normal" size, and a large size. So that's 300,000 files. And it's taking a lot longer to copy all of those files from the old server to the new server. My system has been working on it for more than a day now and isn't even half done yet. 

So nothing really new to report tonight except that little postponement. But seriously--this is NOT an April Fool's joke! This is going to happen! =) And if all goes well, I now plan to make it happen on Friday, March 30th, at 10:00 AM Pacific time.

Upgrade Update

A bit more information about the upcoming update. =)

First, it's taking a bit longer to get a lot of the data copied over to the new server, so I might have to postpone the downtime by another day. I'm still shooting for a Wednesday morning update, but do know that it might be postponed if all the necessary ducks aren't in a row by then.

Second, while AQ is down, I obviously won't be able to post regular updates about the progress there. So look for updates on Atlas Quest's Facebook page--that's where most of my updating will be. I might be posting to this blog as well. (Even though this blog does use the atlasquest.com domain, it uses a blog.atlasquest.com subdomain and is hosted on Google's servers--if I do things right, this blog should stay up during the entire update.)

But with the status option so easy to post short updates on progress on Facebook, that's where you'll see me posting most regularly. =)

In the comments of my last post, Greg asked about posting a link to the new IP address. When the new site is actually up and running, I'll post the new IP address there and if you have the technical skills to add it to your hosts file, you can speed your access to the new AQ server. If you have no idea what I'm talking about, though, leave well enough alone. Eventually, the new IP address will propagate and you'll be able to get on again--hopefully within a few hours.

If you're wondering why I don't just create a link direct to the IP address, some of the code on the website depends on the URL being for "www.atlasquest.com"--if you try to link directly to the IP address, it'll redirect you to www.atlasquest.com, and if the IP address hasn't propagated, it'll just send you back to the old website.

There was also a question about if I could put the old server into a "read only" mode. It's a little tricky to do this since AQ was never designed to work in a "read only" mode. Technically, I could update the code and probably make something like that work, but with scripts that run as cron jobs, different ways to log in (auto-login, manual login, app login, cached logins, and who knows what I've forgotten), it would take quite a bit of work to make it reliable. And even if I could stop everyone from logging in, there's still stuff being logged--anonymous visitors who view a clue cause clue hits, searches for addresses or cities might cause an unknown location to be added to the database.

Basically, the only easy way to make sure the database stops changing is just to shut down the entire website while the data is being transferred over.

And, I'm cautiously optimistic the site will only be down for less than a day. You'll live. ;o)

So that's the skinny about what's going on. I'll post again tomorrow night with another update. I'll also have a better idea then if I'll need to postpone the switch to the new server.
 

Monday, March 26, 2012

Major Downtime Scheduled

So, here's the thing. For a few years now, Atlas Quest has been running out of space. And I've run through all sorts of tricks in order to squeeze a little more out of it. AQ regularly deletes the largest version of all images uploaded after about a month to save space. Virtual boxes no longer allow AQ-hosted images. Even the nightly backups of the database are no longer stored on AQ's servers--there just isn't room for them anymore.

I've squeeze and squeezed, and I've run out of tricks. As of right now, AQ has run through 96% of it's allowable disk space.

So, I'm making arrangements to move AQ to a bigger, faster, and better server. That's the good news. The bad news is--major downtime ahead. It'll take me awhile to copy all of AQ to the new server. And to add insult to injury, the old IP address won't be coming along for the ride and I've had issues with IP address propagation in the past where some unlucky people were not able to access AQ for as long as a week after the IP address changed.

So mark your calendars! Right now, it's my intention to take AQ down Wednesday morning, March 28th, at 10:00 AM Pacific time. At the very least, it will be down for most of the day. If I run into snags and other problems, it might even take me more than one day. And even then, if the IP address change doesn't propagate to your part of the Internet quickly, it could be several days before you'll get onto AQ again.

If you plan to be boxing later this week or even this upcoming weekend, print your clues now! Even your letterboxing apps won't be able to get new clues so you may need to go old school and print your clues. (If your app has stored clues, those you'll still probably be able to pull up--but you won't be able to sync for updated clues or get new ones.)

Sorry for this, but AQ just outgrew it's current server. Without this move, AQ would probably implode sometime within the next month or so and I've run out of tricks to extend the currently available disk space.

Monday, March 05, 2012

LTC Explosion!

The number of submissions for last month's potpourri exploded!
After posting The Artistry of LTCs last month, the number of submissions for Marjorie's Potpourri exploded--easily double a normal month. Since I usually pick up my own mail, Amanda never really noticed the increase until, near the end of the month, she told me she had some LTCs of her own she wanted to trade out with potpourri members. Occasionally, she likes to look through what's been submitted and nab a particular favorite for herself. =)

"So you want to sort them this month?"

"Sure!" she said.

I pulled out the pile of envelopes with LTCs, stacked them up, and dropped them with a thud on the table. "Here you go!"

Her eyes popped out. "Good grief! What happened?"

"My blog happened, that's what."

She shook her head in stunned amazement at the pile. "That's it!" she told me. "I forbid you post about LTCs again."

I nodded agreeably, but of course, I knew I would post again if for no other reason than to share this story with you. =)

So this last month, I let Amanda do most of work with Majorie's Potpourri. I did set six random envelopes aside in case any last minute arrives showed up on the first or second of the month--so I'd still have enough to swap if no extra arrived--but all of the rest fell to Amanda's capable hands

And without further ado, here are a few things we found in the last potpourri....

How adorable is this.....
Angry Birds: Cracked Helmet Pig by GypsyLadybug

This LTC appears to have been specially made for
this month's potpourri--the back even labels it
as Marjorie's Potpourri (Feburary 2012)
Flower of the month: February Violets by El

Good Dragon, Bad Dragon by Kurious Jo
Seems there's a ring with googley eyes, because this card
wasn't the only googley eyed card in this month's potpourri.
Even the little bee has tiny googley eyes! (I have to confess,
however, that effect doesn't look as neat in a photo. It works
better when you can see the googley eyes moving around.)
Googley Eyes: Frog by Flutterwing2009


I've seen carved return address stamps before,
but it's much more unusual to see the address to the
recipient stamped as well! I'm quite impressed at the effort
for a disposable envelope. Makes me want to save it forever!
This work of art was sent by Aunt Bee. Looks like she
forgot about marking it as a potpourri envelope until after the
stamping was done!

This was the most elaborate envelope in the potpourri.
Created by MN Compass, she even listed it as an 'other'
box on Atlas Quest: Viking sent to WA.
Interestingly, the post office added their own stamp
to the mix that read:
"Postage Verified Seattle WA 98168"
Thanks for including the correct postage! Looks like our Seattle
postal workers are putting their feet down! (Several potpourri
envelopes had this postage verified message.)

Sunday, February 05, 2012

The Artistry of LTCs

Tarte N Tires created Let It Snow. The stamp
is absolutely wonderful, but that top edge punched
with snowflakes is so totally awesome. *nodding*
Today, I'd like to talk a little about LTCs. I remember the first time I heard about them, and I thought, "Seriously? Just what letterboxing needs, something else to muddle the purity of letterboxing." Or something to that effect. =)

I also remember Mama Cache lobbying for me to add LTC as a distinct type of box, which I resisted. First, I didn't really know if LTCs would just be a "flavor of the day" and end up not being used very much, and second, I didn't really like the idea of adding support for another type of "letterbox."

Then Batty Girl sent me a handful of LTCs. It was completely unsolicited, but when I opened the envelope and the LTCs spilled out into my hands, in those few seconds, my doubts vanished. Those things were awesome! I finally saw the light! Reading about them, hearing about them, I didn't "get it." Being seeing them for the first time, I got it.

Not only were they really neat, but I immediately grasped that this could be a huge game-changer in another way: They could all but replace postal boxes. These were much smaller and lighter than postals, and therefore much cheaper and easier to mail. Blackholes, which were a growing problem and had people swearing off postals, would be considerably less problematic. It would, I knew, be a huge blow for postals. (And it was--take a look at the plant statistics for postals--the number of plants dropped from 5,164 in 2007 to 2081 in 2008.)

Amanda was on a trip but got home later that evening, and I showed the cards to her. "Take a look at these," I told her. "These are going to be big," I predicted.

I don't remember exactly which month I added official support for LTCs, but I did so shortly thereafter. LTCs took off and never looked back.

Newbie Says Hi is just adorable. Chedva created
these a couple of months after joining Atlas Quest.
I really like show she took the icon of the hatching
egg from AQ as inspiration, and the giant LB on the
chick's chest, puffed out like it was Superman. =)
A lot of newbies seem shy to admit that they're
newbies, so I'm always happy to see a newbie puff
out their chest and proudly admit it to the world. =)
As cool as the LTCs were, I was sometimes frustrated watching the posts on the message boards about them. Seemed like people were making swaps much more complicated than they needed to be. And eventually, Majorie's Potpourri grew out of that. Every month, people can send me 5 LTCs with a SASE and I'll mix them all up and mail 5 LTCs back. There aren't a whole lot of rules, really. Pretty much any LTCs is okay. Doesn't matter if they've been used before or not. There's no set theme. People can send all of the same card, or each card could be different. They can even send cards they didn't create--these are Letterboxer Trading Cards, after all! If someone somehow ended up with a duplicate card, send them along--I'll spread them out. =) (I do ask for people not to send adult-oriented LTCs, however, since there's no guarantee it wouldn't wind up going to a minor or someone who would find such images offensive.)

I still don't make LTCs myself--it's a lot of work, and it always seems like I'm too busy working on other things, but I rather like my job of running the Majorie Potpourri swap. =) Sometimes people even send an extra LTC for me to keep, and I've piled up quite a number over the years. But even better, I enjoy seeing all of the creations so many of you create. While I was hiking the PCT, Amanda took over this particular task, and after I returned, she didn't want to give up the job! She enjoyed seeing all of the creations as much as I did! =)

And this past month, I thought it would be nice to share some of the creations that showed up as part of Marjorie's Potpourri. =)

Mrs. Hayes, created by GypsyLadybug, is as simple as LTCs can get--a single stamp
image on a card. The back has a little history of the woman (Lucille "Lucy" Ware Webb Hayes,
wife of President Hayes, born August 28, 1831, died June 25, 1889), and the listing on AQ
has a photograph of her, which looks a lot like the stamp on the LTC.

MLB: Twins, created by Ratliff Gang, has a three-dimensional element to it.
It's not as obvious in that first photo, but the second image looks like at an angle. I rather like the ragged,
torn look of the stamped layer.

An Angry Birds Christmas by EverAfter83 is more elaborate than most LTCs, but the thing that
got my attention most was that I'd never seen a laminated LTC before! Seems like
there's always something new every month that I haven't seen done before.
Holidays of November: D.B. Cooper Day by Flutterwing2009 I wanted to highlight since it's one that opens up
to include more information inside. Sometimes, that 2.5 x 3.5 inch size just isn't enough to work with for some people! =)
On an unrelated note, I'd be a little saddened if the mystery of D.B. Cooper was ever conclusively solved.
Snow Globes: Snow Bird by twofreetimers is my favorite LTC in January's batch.
I just want to pick up this card and shake it! =)
Sea Life: Angelfish from The Boxing Bs is so simple it's elegant. And sparklies. You can't go wrong with sparklies. =)
Speaking of which, until LTCs had come along, I knew nothing about embossing powders. Cards
like this one inspired me to buy a bunch of it, but I haven't really used it for much of anything... yet. *sigh*

80's Icons: The Boom Box brought to us by jad_juniper uses multiple layers, shapes, and colors
from colored cardstock, which is an effect I like. But it seems even more perfect for anything
from the 80s!

Seeing as Valentines Day is right around the corner, I thought I'd share a couple of Valentine-themed
LTCs. What is Love? by ElectricMedic has some sort of fuzzy stuff on it that I've never seen before. It
seems like embossing powder, but hasn't been baked on. I'm not sure what it is. But anyhow....
Many LTCs are traded in plastic sleeves (which I've removed for these
photos--the glare on them was terrible!), but this one really needed the sleeve to protect the fuzz from
coming off. And the morbid side of me thinks, "Hmm.... Dexter might not agree with that quote...."

Love Monster by Flutterwing2009--I totally want a Valentine like this!
Cutest monster ever! =)

Thanks to everyone to sent in some LTCs last month, and thanks to all of you guys who gave me permission to share your creations with everyone! =)

If you'd like to learn more about LTCs and swapping them, check out the help pages for LTCs and LTC Trackers. There are also two message boards for all things LTCs: LTC: Tips, Questions, and Stuff and LTC: Trades and Trackers.

Monday, January 09, 2012

New (and improved!) search options!

Once again, I'm pushing the envelope
known as progress.... =)
If you wander over to the Advanced Search page, you'll notice a couple of minor changes. It doesn't look like much, but it's a lot trickier than you might think. I spent the better part of a week getting these changes to work properly. =)

Okay, admittedly, I haven't exactly been working "full time" this week, but these updates probably took up a solid 20 hours of effort on my part.

But I digress....

The updates are remarkably complicated, but I'm throwing out all technical jargon, simplifying my explanation, and completely overlooking certain subtle points completely. So, in a nutshell:


  • Everyone should see a new checkbox under the location labeled "Use exact locations." If you used to use "0 miles" in order to search for all boxes within a specified city, you should now use this checkbox instead. It also should be used in area searches when you want to see all mystery boxes within that area.
  • The mystery box icon looks exactly the same as before, but it works slightly differently than before. It now will match any letterbox that has the mystery icon on it. It used to check the location of each box (either the owner-supplied location, or your custom location if you had one), and if that location was a mystery location, the box would match. I had wanted a search that allowed you to get a list of all unsolved mystery boxes in an area. Understandably, this caused confusion, and long story short, now the mystery location icon simply matches boxes that actually have a mystery icon attached to them and the listed location of the box has no bearing on the results.
  • And the last new option only premium members will be able to see--right next to "use exact locations" is "use original locations." Premium members can enter custom locations--a nice little perk! And once you added a custom location to a letterbox, AQ returned results as if the box were at your custom location. By checking this option, you can tell AQ to ignore your custom locations and force the site to use the original locations supplied by the owner of the box. I'm not really sure how this could possibly be useful, but more than one person has asked about such an option, so I've made it available. =)
There are a few other tweaks I made to the search--AQ runs a mean "Northern California" search now with a slick new technique I'd never used before. (The code applies to more than just Northern California, but that's the test case I was checking the most.) You don't really have to know all of the nitty gritty details except that the search results are much improved over the previous incarnation.

There's also a new "0 mile" hack, which The Vs stumbled onto already by accident. It's another feature that's available if, for some reason, you really want it, but honestly, I can't think of a single reason why you would. Consequently, I don't really recommend using it unless you really know what you're doing. It doesn't hurt anything to use it, but you might not get the results you were expecting if you aren't sure about how it works.

I'd also like to give extra kudos for Eidolon. Over the years, he's been one of the best bug finders on AQ, finding tiny little problems that others have overlooked for months or even years. I'm sometimes quite impressed with his eye for detail and things that just don't "seem right." And he always takes it one step further by including all relevant information about how he generated the error condition including links to searches and boxes so I can recreate the problem easily and fix it.

While this update may not seem like much, it actually was rather complicated involving a lot of moving parts, and I was more than a little concerned that I had overlooked some important problems, so I fired off an e-mail to Eidolon explaining some of the changes I made and asked if he'd like to kick the tires. Then I went for lunch. =)

Wassa Jr partied a little too hard during New Years.
He's finally getting over his hangover....
...his next court appearance is scheduled next month.
When I got back, he had already located two substantial bugs in the update (although he didn't seem to realize one of them was a bug at the time!) A few more tweaks, a few more bug fixes, and now I'm feeling good about the update. Solid work. Thanks, Eidolon! It's nice when I can announce a new feature and have it working correctly right out of the starting gate. (Disclaimer: This in no way implies that there aren't anymore bugs to be found--but any that are still lurking will be a lot more difficult to find due to Eidolon's efforts!)

And Happy New Year!

Tuesday, December 27, 2011

Looking Forward....

What ideas are floating through my head regarding AQ next year? Actually, I don't really have many. Oh, there's a long list of things I want to do, but I don't really know which features I'll work on next usually until I actually decide to start working on them. The photo gallery really needs a complete re-do from the ground up. That would be a major undertaking, and I'd want to make sure I have at least several months available before I start to tackle that beast. There are some tutorials I'd like to create. I'm always creating new themes, but I couldn't tell you which ones I'm most likely to do. (Well, the state themes I've already committed to, but beyond that, I have ideas... but no idea which ones I'll actually use.)

I also want to start creating more LTCs. Those LTCs many of you send in for the Majorie's Potpourri are quite inspirational, and I want to do stuff like that! Maybe 2012 will be the year I get down and start being more creative. =)

I also have it in my head that I want to develop http://www.atlasquest.mobi into a mobile-specific website. I've played around with it a little on my develop machine already, but largely abandoned my efforts when Aiphid created Box Radar. Suddenly, I'm getting no requests at all for mobile apps anymore. =) But I find the idea an intellectual challenge and an intriguing one at that, so I find myself still wanting to pursue it. Additionally, I like the idea of limiting myself to the public AQ API that those Android and iPhone apps use. I kind of feel like I neglect that API too much because I don't actually use it myself. My motivation increases dramatically when I use a feature myself! =) It would be an excellent way to test my own API and get a user's point of view for it. So perhaps I'll run with that feature in 2012.

Or perhaps not? Like I said, I don't really know. I tend to work on whatever hits me as most interesting, or best use of my time, or whatever floats my boat. I'll finish a major upgrade, then I scroll through old, bookmarked posts with suggestions and work on those for awhile. They're usually relatively quick and easy changes--and after a couple of weeks of this, I'll settle on the next "big thing" I want to work on and start working.

And perhaps I'll wind up building a feature I haven't even thought of us. Or I'll finally figure out a solution to a problem that prevents me from implementing a feature I really want. (That whole custom location feature I've wanted for years but couldn't figure out how to pull off until this year!)

One thing I know will happen--the number of regression tests for Atlas Quest will increase substantially! But that's not something you'll see directly. =)

One other thing I know: I'll be in Northern California on May 20th, from 6:26 PM through 6:31 PM. Which is actually something of a surprise to me--when I woke up this morning, I assumed I'd be somewhere in Northern Spain during that time. =) Yep, for those five minutes, I'll do just about everything in my power to be there in Northern California.

In an annular eclipse, the moon doesn't quite cover the
entire surface of the sun so you wind up with a
"ring of fire."
I learned just this afternoon that there's an annular eclipse that runs directly through Northern California, which is a relatively easy place for me to travel to (as long as I'm not in Northern Spain!). Annular eclipses are pretty darned awesome and an extremely rare astronomical event, and they follow a very narrow path only a few hundred miles wide. Check out the entire eclipse path at http://eclipse.gsfc.nasa.gov/SEgoogle/SEgoogle2001/SE2012May20Agoogle.html. Most of you in Nevada will also be able to watch it, along with a large portion of Utah and New Mexico. I've already listed an event for anyone who wants to join me for this amazing astronomical spectacle. I'm still trying to work out an exact viewing location, but I'll likely be within an hour's drive of Redding, CA. =)

But what's an annular eclipse? It's a lot like a total solar eclipse.... except that the moon isn't quite big enough to completely cover the sun. Due to the slightly elliptical orbits of the moon around the earth and the earth around the sun, their apparent sizes change slightly. Sometimes the moon can completely cover the surface of the sun--a total solar eclipse--but when it doesn't, it's an annular eclipse and you'll see a ring of fire completely encircling the moon. Amanda and I saw one in Panama several years ago and it was absolutely spectacular! Well worth a view if you live anywhere near the eclipse path! *nodding* The next annular eclipse in the United States doesn't happen until 2023 so if you miss this one, you'll have quite a wait to see the next one. (Full disclosure: There actually is a total solar eclipse that cuts through the US from coast to coast in 2017, but your next opportunity to see a "ring of fire" around the moon won't be until 2023.)

If you want to watch a transit of Venus,
do it on June 5th. Your next opportunity to
measure the size of the solar system
doesn't come until 2117!
There's another rare astronomical event happening on June 5th--Venus transits across the sun for the last time in over a hundred years. If you miss this transit, you'll never see another one in your lifetime. The Venus transit across the sun actually has some historical significance--measuring the time it took Venus to cross the sun's surface was the first time scientists were able to calculate the size of our solar system. For many years they knew the relative ratios of the distance from the earth to each of the planets--but they didn't know the absolute distances. To be honest, I'm not exactly sure how measuring the time that Venus transits the sun can be used to calculate the size of the solar system, but I still think it's pretty darned cool! On a side note, if you want to tell your friends that you helped measure the size of the ENTIRE SOLAR SYSTEM, they're apparently making an app to do that. =)

So you can be pretty certain I'll be looking at the sun during this time, but where I view it from is a lot more flexible than the annular eclipse. In fact, I'll probably just walk out on our deck to watch it. =) To view the entire transit, though, I might make an effort to go up to Alaska. (It's either that or fly to China, Japan, Australia, or New Zealand, but those are more difficult and expensive for me to travel to!)

I want to see these two astronomical events so bad that I decided to postpone my Camino de Santiago thru-hike until the autumn instead of doing it in the spring like I originally intended. =) Neither of these events would be visible from Spain! I plan to take two or three months hiking through France, Spain, and (maybe) Portugal, undoubtedly an epic adventure that you'll be reading all about on Another Long Walk. =) Which really has absolutely nothing to due with Atlas Quest, but fortunately all of the lodging and churches along the way each of their own stamps so I'll still be doing plenty of stamping along the way. =) And probably plant a few boxes as well....

Speaking of the camino, a.k.a. The Way of St. James, there's a movie out in theaters now called The Way starring Martin Sheen and Emilio Estevez. Martin Sheen hikes the camino, carrying the ashes of his son (played by Emilio Estevez before he becomes ashes!). It was filmed on location on the very trail I intend to hike--and it's a very entertaining film to boot. I'm not saying that just because I intend to hike the trail! =) This film didn't give me the idea to hike the trail--I first got the idea to hike the trail from reading The Journey in Between by Keith Foskett, a hiker I met while thru-hiking the PCT. (I'm still waiting to get the PCT book he's in the process of writing!)

So those are some of the things I'm looking forward to in 2012. More features and improvements to AQ--even though I don't know which features I'll actually implement as of yet. And two rare astronomical events, and a thru-hike in Europe. Yep, 2012 is looking good!

Share your plans for 2012 in the comments! =)

Monday, December 26, 2011

Reflecting Back and Looking Ahead

While 2011 may not officially be done just yet, it's safe to say that the bulk of it is. =)  And it's that time of year to reflect back on the past year and start looking ahead to next year. I'm not one to make New Year's Resolutions (unless "surviving through the end of the year" counts as a resolution), but it doesn't mean I have no ideas about what I'll be doing in the upcoming year. =)

But first, looking back on AQ, I see three major accomplishments and improvements that I'm absolutely thrilled about. The first and most difficult was figuring out a solution to how people could list custom locations for letterboxes. In the end, I spent months developing that feature, and improved numerous additional features that the changes touched. The geocoders were upgraded and improved, trip planner searches, area searches, linear searches and rectangular searches were expanded to work with events, blogs, and and even virtuals. The trip planner was updated to support much more detailed route information--a significant improvement, albeit an incomplete one. Maps showing the coordinates used now showed up, and listing custom locations that geocoders can't find was significantly improved. And even after I got the custom locations feature up and running, I then had to go in and carefully remove all of the old code that AQ used to use.

But darn it, the update worked, and life was good. =)

I did run into numerous problems, and some of the updates broke stuff that--frankly--should never have broken. And they wouldn't have broken had I run regression tests on them. Without getting too technical, regression tests are simply a way to have a computer automatically run a bunch of tests on the website to check that everything still works as expected whenever I make a change. Many times, a tweak in one part of the code can break something in a completely different (and forgotten) section of code.

And that became my second great update for 2011: regression tests. I started with nothing, but built up a test scaffolding that could check AQ for thousands of different problems with the click of a button. After a a couple of months, I had several hundred tests up and working--and surprisingly, it even caught some bugs that had been on AQ since day one!

This was largely a silent update, though. None of you will ever see this code in action--it's strictly for myself. The benefit to you is two-fold, however. First, I'm less likely to break stuff when I upload changes. Secondly, I can spend less time debugging problems and more time working on new feature or improving existing ones. =)

As of today, there are nearly 2,000 regression tests that I can run with the click of a mouse button on my development machine. For a website as large and complicated as Atlas Quest, it's really nowhere near enough. I'd prefer to have over 10,000 regression tests. Perhaps 100,000 tests could really put AQ through its paces, but for now, there are nearly 2,000.

I don't sit down and develop regression tests anymore. Well, I do still create them, but I create new ones when I'm developing a new feature or editing an existing feature. Whenever a bug is reported and found, I create a regression test that can check for that problem in the future, fix the bug, and make sure the regression test passes. So the number of regression tests continue to grow quickly, but that's in conjunction with whatever feature I'm working on at the time. When I first started creating them, I sat down and merely started creating them to have a base to start with. As I develop and improve features, though, I flesh them out more.

And the last big project I tackled was a dramatic improvement of the Trip Planner. What is available today is something I've wanted to create for years, but the time and effort involved with such a massive update never seemed worth it. A little bit ironically, what made the effort worth it this time was due to my first big project of the year: custom locations.

When I developed custom locations, it completely and utterly broke the existing trip planner. And while the trip planner certainly had its flaws, it was also a very popular option for people. I considered chugging the trip planner completely rather than spend the effort to rewrite it to work with the new changes, but I knew that would put me in the doghouse with a lot of people. It might be a lot of work, but rewriting the trip planner to work with the new geocoders and custom locations was a must.

Knowing where I've always wanted to take the trip planner, however, I made sure to design it in such a way that eventually I could extend it to fill my original idea for the feature. So during the creation of custom locations, I laid the foundation for what would later become the trip planner of today.

Fast forward a few months and now I look at what it would take to create the trip planner of my dreams, and it no longer seemed so far out of reach anymore. There was still an enormous amount of work to do, but I already already laid down a solid foundation to build from. I wouldn't have to start from scratch like I would have had to do before the custom location feature. The awesomeness of the feature was now worth the effort required to create it.

And create it I did. Along with over 500 regression tests for the trip planner that I can use to make sure whenever I make a tweak, I don't break anything. Some bugs did slip through, but considering the thousands of lines of new code I created, it was one of the most successful updates ever with very little downtime or problems. Previous updates of this magnitude, I'd dedicate two or three days for nothing but fixing bugs. This time around, only five bugs were found during that timespan. Unprecedented!

There were hundreds of smaller updates throughout the year. I started the state themes, one new state theme each month. I fixed typos, updated the layouts of many pages, replaced the weather widget, upgraded the server software, improved slow queries to help keep the website running fast, and so forth. But when I look back, it's those "big three" features I'm most proud of. They weren't easy or quick--in fact, part of the reason I enjoyed working on them so much was because they were a challenge and made me think. =) Admittedly, a lot of the smaller and less technical changes I kind of find boring and monotonous. I really do thrive on building features that are an intellectual challenge for me!

And each of the new features, I feel, took AQ to a whole new level. More reliable, more stable, and easier than ever to sort through the tens of thousands of letterboxes listed on AQ for those handful that matter most to each individual.

I didn't mean for this post to get so long..... I'll save my "looking ahead" thoughts for tomorrow! =) Feel free to share your favorite updates from the year in the comments!

Wednesday, December 21, 2011

'Twas the Week Before Christmas.....

I feel like posting. I don't really have anything to say, however, so if your time is limited, keep moving along. Don't read this post. =) Really, no joke--there's nothing important here. No new news, no exciting developments. Just some musings and stuff I've been working on lately, but it's stuff you really don't have to concern yourself about.

This morning I've spent tweaking the radius of several dozen locations on Atlas Quest. I got a report that a box listed in Sedona, Arizona, wasn't showing up as expected. Most of the time I get reports like this, I tend to roll my eyes. Nine times out of ten, it's because there's a problem with the search. The person is hiding their plants and finds, for instance. Or they had inadvertently clicked the "ignore" button on the box and didn't realize it. Or the box doesn't have a clue listed and most default searches won't display boxes without clues. Or something. There are a lot of reasons a box might not show up in a certain search, and most of the time I get reports like this, there's absolutely nothing wrong except the search that was run.

But.... one time out of ten, there's a bigger issue involved and does require my attention, so I have to investigate anyhow. And this was one of those one time out of ten. The Yahoo Geocoder, for some bizarre reason, listed the radius of Sedona as being a little over 100 miles! I've been to Sedona before, and it's certainly not that big!

The Google Geocoder returns a radius of just over 3 miles--certainly a lot more reasonable, and I changed the radius of Sedona accordingly. A box "somewhere" in a 100+ mile radius isn't going to show up in a search for boxes "within 30 miles" of Sedona, which was the problem in a nutshell. With the smaller radius, it will. Problem fixed....

Or is it? How many other towns on AQ have 100+ mile radiuses? Realistically, the answer should be ZERO. In fact, anything larger than about 30 miles is suspect. So I poked around and found several dozen of them. Most of them cities I'd never heard of before. Buffalo Grove, IL--32 miles in radius? Really? Strathpeffer, Germany was listed as 404 miles in radius!

So I spent a few hours fixing all of these locations. The vast majority of locations were within reasonable bounds, but those several dozen certainly needed some tweaks.

Now the problem is fixed.... right? Well, no, not completely. There's still the matter of making sure this issue doesn't come again in the future. There are hundreds of thousands of locations that AQ doesn't know about, that if someone runs a search or hides a letterbox, will require AQ to use the geocoders to look up the necessary information. The very same geocoders that generated the bad data in the first place. I need some sanity checks in the code. 

I happened to notice this photo in the AQ Photo Gallery.
Remember (especially you, One Particular Harbor!),
all extra cookies you have can be sent to me. =)
I dived into the code itself, specifically the part that looked up the radius of a location, and added a few lines of code that checked if the radius was larger than 30 miles for any given park, address, or town, and--if so--would verify the radius with a second geocoder. And if that second geocoder verified the unusually large size, to ignore the geocoders completely and set the radius to 25 miles.

That second part--ignoring the verified radius--I was torn about. Some locations larger than 30 miles are completely legit. One location was "Sequoia National Forest." Sequoia National Forest IS much larger than 30 miles in radius, so why would I falsely cut the radius to 25 miles? I did so so boxes listed in "Sequoia National Forest" would show up in default searches (which defaults to 30-mile searches). I figured the location was specific enough that it should show up in default searches, even if, technically speaking, such locations normally wouldn't or shouldn't. Kind of a gut feeling type of thing. Technically wrong, but it feels right. =)

And finally I was done. Well, actually, no, not quite. One more thing to do.... testing. I tweaked some code, and I should have my unit tests check that this new code actually works like it's supposed to. So I created a new unit test that checks for these specific conditions, made sure they passed muster, then finally uploaded the changes I made.

All because a letterbox in Sedona wasn't showing up in the search results as expected. =)

Nobody would likely even notice these changes--they're very subtle and affected such a tiny number of letterboxes, you'd have to have a sharp eye indeed to have noticed them. But it still makes AQ a tiny, little bit better. 

Yesterday I spent primarily working on themes. I finished up the Maine theme--which isn't scheduled to go live on AQ until next November if I counted correctly. I want a solid backlog of state themes so I can continue to release them once per month without fail, regardless of how hectic my life might be at any given time. =) Next year, I want to thru-hike El Camino de Santiago--a hike that will take two or three months. I certainly won't have time during the hike to create themes, so I need to create them well in advance. Hey, Mainers, I really like how your theme turned out! It's currently my default theme on my development machine! =) You're up next, Maryland! (My goal was to finish all of the state themes I'd use for next year by the end of this year.)

I also made a few tweaks to the Christmas theme. The Christmas theme really isn't one of my favorite themes. I like the animations, the colors are hard on my eyes. The yellow background for the submenus was bothering me, so I lightened those a bit. I also didn't like how a highlighted menubar option blended in with the red background behind it near the top, so I lightened the highlighted menubars as well. And the bell in the upper-left corner of the page was messing up the layout of the home page, so I got rid of that.

I tend to do this sort of thing quite frequently with old themes that bother me. A few tweaks here and there to make it a little more appealing.

About a month ago, I started looking up all of the 2012 holidays to update when each of the themes would show. Themes like Christmas always show at the same time year after year and don't require changes, but themes like Friday the 13th, total lunar eclipses, and Presidents Day do need adjusting each year. And what to do if a total lunar eclipse falls on a Friday the 13th on Presidents Day, no less?! (While that specific scenario has never happened, there are enough themes that every year involves at least a few conflicts of this sort.) It takes me several hours each year to update the theme schedule for the next year.

Yesterday, I also found myself with a 50% off one item coupon for Michaels, so I wandered down to the local store and purchased myself a large block of Speedy-Stamp. *rubbing hands gleefully* There's also a stamp I want to carve, but I'm not sure this particular block is large enough for my purposes.... So I'll probably carve a couple of stamps during the next few days. =) Not sure when or where I'll hide them as boxes, but at least the stamps will be done!

I might post a bit more later.... for now, though, I plan to get started on a Maryland theme. =) Hope you all are enjoying the holidays and getting to spend enough time with your families that you're ready to leave them! ;o)