Saturday, September 29, 2007

Atlas Quest.... is... alive!

Atlas Quest was born June 24, 2004. It's my baby, and it continues to grow. Not just in the number of people who are using the site, but it continues to mature, fleshing out features I didn't put much effort into the first time I went through and implemented version 1.0.

If there was ever an update to Atlas Quest that deserved the name 2.0, this is the one. For you tech folks out there, that has nothing to do with "Web 2.0" which I think is so overused (not to mentioned misused). Ultimately, my goal is to create a very simple, clean website without AJAX, Flash animations, and such.

The reason I think of this update as AQ 2.0 is because the original feature I developed--the first major feature (and the only major feature when the site went live)--the city based search.... is no more. I have retired it. Today, something even better has come along, which I call the location-based search.

You'll notice the old search box for city, state, and country are now gone, replaced with a single text box that just says "location." What does that mean? It means a lot of things.

It means you can still search by city. Try typing "Seattle, WA", and you'll get a search for boxes in and around Seattle, Washington.

But you can also type "98116"--the zip code of my PO Box there--and you'll get a search based on that zip code.

Or type in "Admiral Way at California Ave, Seattle, WA," and you'll get a search based on the corner of SW Admiral Way and SW California Avenue.

Or type in "Lincoln Park, Seattle, WA," and it'll return with the results of all boxes nearest Lincoln Park.

Or type in "Mount Rushmore." You don't even need to mention a city--it's not like there's THAT many Mount Rusymores out there.

Or type in "French Hospital, San Luis Obispo, CA."

Or type in an airport code, such as SBP.

To tell you the truth, I'm not entirely sure what all that little box supports. It's hooked up to the Google geocoder, and it's actually Google that processes what you type then sends the latitude and longitude coordinates back to Atlas Quest, and Atlas Quest runs the search on those coordinates. If it's something that Google can handle, it's something that Atlas Quest can handle.

Additionally, their geocoder also supports the countries of Canada, Germany, Italy, and Brazil. (Yes, Brazil. No, I don't know why.) So addresses in those countries should also work! I tried some Australia locations and got some decent results out of that as well, so I know there's at least some support for Australia. As Google adds support for more countries, Atlas Quest will automatically start supporting them as well.

What about the rest of those countries out there? Alas, there is still no address support for you folks (but I'm sure Google is working hard on fixing that as I type!), but Atlas Quest still knows all the cities it always knew before, so if Google comes up empty handed, then Atlas Quest will try to parse the data and find the city you searched for. The same state and country abbreviations are still used for this purpose. So if you need to search for boxes on Dartmoor, you'll want to search for "Dartmoor, ENG." You can try an address if you want, but it probably won't work. (I did get the address for "10 Downing St, London" to work, but most of the addresses I tried failed miserably.)

If you were wondering what took this update so long to get out the door, it was this feature. Freakishly tricky to get just right. =) Heck, it might still have problems, but it seems pretty solid at this point.

You'll find a number of other changes as well. There's now a contact list. All types of boxes can now support attributes, and most of them have new attributes. (Especially those virtual boxes! If you have virtual boxes, you might want to go back and update the attributes on them.)

I plan to be around for most of the day fixing bugs that crop up. This is a massive, massive update, and I have little doubt there are bugs that need fixing. If you have questions or problems, post to the message boards. There's not much documentation for all the new features--I still need to do that. =) I will get to it eventually, though. *nodding*

There's also one small change you may or may not notice, but I want to point out. When I started Atlas Quest, it was a website. It wasn't even apparent it was a letterboxing website just from the name, so I added a small subtitle at the top that read "A Letterboxing Website" so people know the site was, in fact, about letterboxing.

With this update, though, I felt that should change. Atlas Quest isn't "just" a website anymore. It's a community. It's a community that posted over 10,000 messages to the boards this month! So I changed that subtitle to read "A Letterboxing Community." I think it fits better. =)

Friday, September 28, 2007

Tick Tock! Tick Tock!

Yes, the legendary Next Big Update is still planned for tomorrow (Saturday) morning. If all goes well, by this time tomorrow, I'll be on the NEXT Next Big Update. =) Actually, I'll probably take a break from big updates and start doing lots of little ones. Maybe even make a couple of new themes.

I've decided to leave the AQ Marketplace open for one extra day. I've already changed the code on my development machine that will close the marketplace, but I figured I'll let that change go in at the same time I do the update. Why worry about such a little update today when it'll fix itself with the big update tomorrow? So for you slackers you there, you have one more day to put in your order. At least until I shut down the site tomorrow morning. And the code on my development machine already has the marketplace closed, so there will be NO MORE extensions! Once the code goes live, the marketplace will be closed. =)

I haven't been finding quite so many bugs in the update today as I did yesterday, and the bugs that are showing their ugly heads have been relatively minor. The ones yesterday could have been show stoppers if I didn't get them fixed! The feature I think will likely case the most trouble has been getting a serious pounding today, and it's holding up far better than I had hoped. Things are looking good! =)

You can't see me, but I'm rubbing my hands with glee. *rubbing hands* At least in between each sentence I type. *more rubbing hands, with glee* Very exciting. *rubbing hands together*

I don't have a set time I plan to take AQ down tomorrow morning. Whenever I wake up and finish breakfast. I don't plan to set an alarm clock, though, so whenever I'm ready to do the update, I'll give about a half hour warning. Give me a chance to read all the message boards, reply to AQ mail, etc., before the site goes down and the update begins. If I had to guess, I'd say somewhere between 9 and 10 in the morning (Pacific time), but it could be earlier if I wake up early or later if I sleep in especially late.

*rubbing hands together*

Wednesday, September 26, 2007

The Next Big Update.... is NEAR!

You've been hearing about this update for months now. It started innocently enough, to add support for attributes on non-traditional boxes. I wasn't even going to include the new attributes yet--just add support for them.

It was all downhill from that. Since I was mucking around with that code, I figured what the heck, and added attributes too. Then since I was mucking around with that, I figured why not fix the add/edit box feature so you can skip ahead or go back to any page you want WITHOUT having to go through the whole series of pages. Then since I was doing that, etc, etc. It got out of control. Even yesterday, some of the changes required changes to the event code (don't ask how attributes on a letterbox ended up messing up code that handled events!), and I found myself wanting to improve features and code dealing with the events, but I finally said enough is enough and pulled back. NO MORE FEATURE CREEP!

For you computer scientists out there, the term feature creep is one that's always used in fear. Simple tasks become nightmares, and deadlines are missed. And for what? Usually nothing worth the extra effort.

I'm happy to report, at least this feature creep has some really cool stuff in it. =) The simple changes I originally planned to implement did become nightmares, and my deadlines have slipped by months! The downside is that all the cool features I finished oh so many months ago have been waiting until the rest of the broken code caught up with it.

This last week, though, I decided no more feature creep. I'm going to get this update out the door if it kills me. Yesterday was a battle--I so wanted to fix so many things that were wrong with the listing, editing, and searching of events. But I pulled back. No, I will leave that for another day.

One particular problem had plagued me for over a month. It's a freakishly cool feature, and only a tiny handful of people know about. I thought it would be easy to include and implement, and I could not have been more wrong. I finally got through THAT mess a couple of weeks ago, though, and suddenly it was just a matter of tying up loose ends. All that code I broke in the process of getting this new feature to work had to be fixed, cleaned up, tested, and debugged before I could push the update onto the live site.

And that's what I've been doing the last couple of weeks. Tying up loose ends, occasionally "improving" stuff along the way. (For instance, you'll be able to search message boards for messages on a specific board or category now.)

What does this mean to you? It means, this evening, mere minutes ago, I finished tying the last loose end. Yes, that's right. The code on my development machine now has NO known bugs in it. Okay, I know there are bugs--any update of this magnitude is going to have bugs--but there are no bugs that I currently know about. As far as I know, if I cross my fingers, it might even work absolutely flawlessly if I uploaded the code to the live site right now. =)

I'm not going to do so just yet, though. I know there's bound to be a heap of bugs in the code, and I need to do some more testing (and debugging) before I take the update live. I plan to spend the next couple of days doing nothing but testing (and debugging, as necessary). Kick those tires real hard. =)

Then, on Saturday morning, barring any unforeseen disasters, I'm going to take AQ down and upload the changes. Hopefully it won't take more than an hour or so, but it might. This is an update of unprecedented size for Atlas Quest, however, and it might take a few hours getting everything into place.

For you old timers on Atlas Quest, you know I usually do my "big updates" late at night after everyone goes to sleep. Usually starting around midnight, Pacific time. I'm doing it slightly differently this time around, though. I'll take it down Saturday morning for two reasons.

One, there usually aren't many people on AQ Saturday morning.

Two, I expect, despite my testing and debugging the next couple of days, that there will still be bugs that slip through the cracks. Perhaps major bugs. I want to be up and able to fix them as soon as they're found. None of this upload the change and going to sleep for me this time around! And many of you might have questions that need answering. I haven't really documented any of the new features that have been implemented, mostly because I intend to add that later into the Help section. I didn't want to start adding documentation before the features were uploaded! ;o)

So there you have it. If all goes well, Saturday morning, that Next Big Update will happen. If I've promised a change or feature that's in the "Next Big Update" to you, it'll happen this Saturday.

At long last, the great beast is ready for the live site. *roar!* =)

Tuesday, September 25, 2007

Last chance for calendars!

The Atlas Quest 2008 letterboxing calendars are for sale through the AQ Marketplace, but they won't be for much longer. I plan to shut the marketplace down at some point on Friday and start the presses rolling! You will still be able to order them directly from the printer after Friday, but since I'm buying them in bulk, you'll save money by ordering them through me.

If you plan to pay with a personal check or money order, you'll want to get them in the mail sooner rather than later. I'll wait for a week or so for the post office to do their job, but if payment doesn't arrive by the time the calendars do, I reserve the right to sell your calendars to someone else or give them away for gathering raffles or some such nonsense. =)

For those of you who *have* mailed a payment and want to make sure I received it, you can check the status of your order on the View Orders page. If the status says "pending," I have not received payment. If it says "paid," then I have. =) A small number of people might have a status of "confirmed" which only happens if you pay using an eCheck on PayPal. It means PayPal is processing your payment, but the funds have not yet officially been transfered. It'll change to "paid" once PayPal finishes the transaction--usually after three or four days. Other funding sources using PayPal happen immediately, so the "confirmed" status only applies for those using an eCheck.

I expect the calendars to take as long as two weeks for them to be printed and arrive at my doorstep, at which point I'll forward the individual orders on to you. When the calendars do arrive on my doorstep, though, I'll let you know at which point you can expect them on your doorstep in another three or four days. =) Tentatively, you should receive them around October 15th.

Tuesday, September 18, 2007

The Calendars are IN!

The official Atlas Quest 2008 letterboxing calendars arrived in my mailbox this afternoon. There were three of them, one for each edition. This is always the exciting part for me, to touch and feel those very first calendars. Flipping through each page, worried there might be something unexpectedly wrong that needs fixing, then breathing a sigh of relief when it turned out exactly like I imagined.

The first year, a few of the pictures were garbled. The pictures were fine on my computer, and the thumbnail images where I uploaded them looked fine, but when they were printed, all sorts of problems and distortions arrived. None of that this time.

Last year, the photos looked great, but there it had a ton of holidays I'd never even heard of. I kind of clicked which types holidays I wanted from a list: US holidays, Canadian holidays, religious holidays (for Catholics, Protestants, Jewish, and probably a couple of other religions whose holidays I'd never even heard of before), and more.

It was a bit crowded, so I narrowed down the list a bit. Not to mention that a couple of notable holidays were missing, such as Mother's Day. Hello? So I had to fix the problems with the dates.

This year, however, every calendar looked great. I was a bit worried about the photos without quotes, the photos that filled up the entire page. That was how I initially imagined the calendar, but the photos weren't of a high enough resolution. Nowadays, there's still some low-res photos coming in (my own, for instance, the cheap camera that it is!), but a larger proportion of them are much higher resolution photos that can easily stretch to fit the whole page.

And honestly, it's less work for me that way. I don't have to position the photo, find a quote to go with it, and so forth. (The labor I saved, however, ended up going into the creation of THREE calendars this year instead of one!) So I thought I'd try the "blow up the picture to fill the whole space," but I worried it wouldn't turn out as nice as I hoped. That was one of my bigger worries as I started flipping through the calendars one page at a time, but it turned out very well.

The photos also overlap the edge of the calendar, so the very edges of the calendars get cropped out. I have to leave a bit of blank space along the edges knowing there needed to be a small margin that would get cut off, but not knowing exactly where the cutoff would happen. Would credits get chopped out? Would a quote at the bottom of the page become perforated with holes from the spiral binding? I left what I thought was plenty of space, but the only way to be sure was to order them and see how they looked when printed.

And one photo in particular I worried might be a bit too grainy. In my paint program, it looked extremely grainy when I blew up the photo, and I worried it would show up in the printed calendar. Happily, it too turned out great.

There was absolutely nothing wrong with the calendars. At least nothing wrong that I didn't already know about before it arrived like that "it's" spelling mistake. =)

In any case, the calendars look GREAT! I took a picture of the real things which I'll post at some point, but I'm quite happy with the results. I'll leave the AQ Marketplace open for another week or so--I'll post a reminder about two days before I close it for good--for those who want to order them. You'll still be able to order them after the marketplace closes, but you'll have to order them direct from the publisher, and unless you plan to buy several dozen of them at a time, they won't give you a bulk discount so it'll cost a bit more. I'll be buying in bulk and am passing the savings on.

The downside, of course, is that I won't put in the bulk order until after the marketplace closes and I know exactly how many calendars I need to order. Then they have to print the calendars, ship the order to me, and I'll repackage them all to forward on to you. So you probably won't receive the calendar until mid-October sometime.

In any case, if you want to order your calendars (they make great Christmas gifts, too!), NOW'S the time to do so! You can check out the photos used in the Original Edition, Sunset Edition, and Silly Edition, and you'll save even more by ordering all three.

If I used one (or more!) of your photos in the calendar, do NOT include your free calendars in your order. I'll be handling those separately.

Friday, September 07, 2007

State of the Calendar Address....

I have a confession to make. I really don't like making calendars. I'm always proud of them when I'm done, but the process of making them I find slow, tedious, and not very fun. For days on end, I'm having to pick among photos, and I always feel a little bit bad when I set one aside and say, "No, not that one." Because someone, somewhere, would be disappointed with that decision. It's kind of a depressing process.

In the end, however, it's worth it. That first time the calendar arrives in the mail, and I open that box flipping through every page and thinking, "Wow! That so friggin' cool!"

It's worth it, but I don't find the process of creating them very fun or interesting. I tend to dread it every year. After a couple of days, I find myself doing other things. Working on the code base for AQ a bit. (Major progress on that Next Big Update, I might add!) But I continue working on the calendar as well since it won't get done otherwise, and I'd rather not have it hanging over my head. However, because of my dislike for the task, they aren't coming together as fast as they could. That's my fault, and I apologize, but they will get done!

Yesterday, I spent much of the afternoon making final decisions about what photos I'd use for two calendars. When I finished, I looked through the 'serious' photos and thought, "Wow! This is the best calendar yet!" The silly calendar--I'm not sure I'd call it the best, but it'll likely make you smile every time you look at it. =)

As a final check, I tried to make sure I didn't overuse a certain type of photo, nor have the calendar dominated by a single photographer, nor have a certain part of the country with the overwhelming number of photos. Spread things out a bit and add variety. Variety across photographers, variety across the subject matter, and variety from around the country.

Ultimately, I chose four sunset pictures, each of them quite different of the others, and all of them amazing. Those were the toughest to pick from, because there were a LOT of really phenomenal sunset photos to choose from. I worried that even using four in the calendar might be a bit overkill, but wow! What photos!

And it hit me--did I have enough sunset photos to actually make a calendar with JUST sunset photos? The 2008 Atlas Quest letterboxing calendar--the Sunset Edition?

I flipped through every submission with a sunset, counting them, and deciding if I could turn them into a calendar of their own. Yes, I think that would work. I pulled the four sunset photos I used in the original calendar and put them in with the "sunset edition," then replaced the four with equally wonderful photos that did not use sunsets. (I didn't have a whole lot of sunset photos to spare for the main calendar anymore.)

About a half hour ago, I finally finished picking the final photos I want to use in THREE calendars! The "regular" AQ calendar, the "sunset edition," and the "silly edition." I have enlisted Wassamattu_u's help for the silly edition to make sure it is sufficiently silly. =)

I have quotes picked out for some of the photos, but others I still need to find something for. I usually try to pick quotes that have something to do with the photo, but given the sunset edition uses 12 different sunsets (plus a 13th for the cover!), I'll be hard pressed to find 12 unique quotes about sunsets. I plan to give them nice, thoughtful quotes, but they can be about pretty much anything which makes finding quotes a heck of a lot easier for me. For very high resolution photos that can fill up the entire page, I may not even include a quote at all!

So at this point, I've finished picking photos and sorting them into months. I could still change my mind about them as I find more quotes that go better with other photos, but I have a solid base to work from now for three different calendars. I hope you all buy a lot of them, though, because I'll be giving away a heck of a lot more calendars that I originally intended to all the people who's photos I've used! I'm kind of scared to count exactly how many calendars I need to give away. =) The last couple of years, I've more-or-less broke even on them, where the markup in each calendar ended up covering the cost of the calendars I gave away for free.

So that is the state of the calendar address. The photos are chosen.

Sunday, September 02, 2007

Sweating and Laborings

Based on the dramatic drop of people visiting Atlas Quest yesterday and today, I assume you're all off enjoying Labor Day. I suspect a surge of find reports come Tuesday morning when you all get back to work. If AQ is running a little sluggish that day, you'll likely know the reason. ;o)

As for me, I like to work during the Labor Day weekend to avoid the crowds that are at the beaches and on the trails. Traveling is hard as it is, packed full of cars on vacation. Not really my thing, so I'd just as soon work during the weekend then go out and play when everyone else has to go back to work. =)

Not to mention that it's freakishly hot outside this weekend. I'm in California at the moment, and I swear it must have been a hundred degrees outside. I didn't even walk anywhere today to stretch my legs. You know it's bad when I don't do that. Even eleven o'clock at night, as I write this, I'm sweating bullets. The temperature has cooled outside, but alas, the heat in the house hasn't escaped yet even though all the windows are open and the fans are on. It's not fun.

As for work, my number one priority is knocking out the 2008 Atlas Quest letterboxing calendar. Yesterday I spent hours pouring over nearly 500 photos narrowing them down to about 100. Today I've narrowed it down even more, down to about 50 choices, but it's getting harder, and started searching for interesting quotes that can go with all 50 of them. When I have two amazing photos I can't decide between, I'll end up deciding which one I can find the better quote to go with it and let the quote be the deciding factor. So I'm scouring the web looking for interesting quotes to go with all 50-or-so finalists. It'll take some time.

For the first time, I'm also considering turning them into TWO calendars--I really did get a lot of very impressive photos! Perhaps a more "serious" calendar like the last couple of years, then a "silly" calendar that's meant to entertain and make you laugh. =) There are certainly some interesting choices available. I might need to make use of Wassamatta_u's puns.

This afternoon, I enabled the AQ shopping cart for myself so I could kick it a bit and see if it's still working properly since last year, and so far the results look promising. The pages themselves look like their working as expected. I wanted to fix a couple of minor issues that came up last year, but it's not really in a state for me to make extensive changes to the code base, so I'll leave the minor issues in place. Maybe next year I'll fix them. =) I still need to check that payments using PayPal will still process and work correctly, but the rest of the code seems to work correctly. I'm rather happy with the results so far.

I'm thinking I might go to a movie tomorrow afternoon to beat the heat in an air-conditioned movie theater. Perhaps go out for lunch to an air-conditioned restaurant while I'm at it. Gosh, I hope it cools down soon. Oh, and I'm scheduled to donate platelets for a couple of hours, which is also air-conditioned. =) Turns out, they have a difficult time convincing people to donate blood on Labor Day and were gushing about my willingness to do so. Hello? Everyone else is at the beach! I'd rather donate blood when nobody else wants to and things are running slow and calm. I also get more attention during such times. ;o)

Tiring of work on the calendar, I spent an hour this evening fixing a minor bug I discovered a few days ago. This bug really amuses me, because it's been on AQ since almost day 1, and it's been lurking there all this time. It's a minor bug, to be sure, and reared it's ugly head when someone posted a link to the help section somewhere (I'm not even sure where--probably the message boards). The link was at the end of a sentence, however, and since URLs can include periods, the period at the end of the sentence got included in the URL.

Consequently, the URL looked something like

The period should not be part of the URL, but it slipped in anyhow.

Normally, this isn't a problem. AQ always checks the data coming into the site to insure it's valid. Hackers often like to try changing the data in a URL to break into websites, so before I use the data labeled gId, I check to make sure it is indeed a number like expected. If it's not a number, AQ will send you to the dreaded 404 Page Not Found error.

Turns out, "2312." actually IS a number. I really didn't want the period in there, but it slipped through my check of the data anyhow, then it broke the database query which was expecting a whole number without the period. When AQ directs you to a 404 error page because someone typed a URL wrong, I don't worry too much about it, and AQ doesn't tell me about the problem. The URL is incorrect and that's the proper response. In this case, however, AQ approved the number "2312." when it shouldn't have, then it broke a query. At that point, the code knows something has gone horrible wrong and SOMETHING needs to be fixed. So it sends an error message that webmasters can read. This particular error message said something like "SQL Error: Check query "SELECT * FROM Gizmo WHERE id=2312."

So I tracked the problem back to an incorrect URL that slipped through the data verification process. It's a minor issue--it doesn't happen very often at all unless you follow a link that includes a period in the number--and when it does happen, the worst that will happen is you see a blank screen. That blank screen is AQ's way of freaking out. Something totally unexpected happen, it notifies the webmaster, then just stops dead in its tracks, unsure of what to do next. Continue? Redirect to another page? Display an error and stop? It doesn't know--so it just stops. The person who followed the link might try refreshing the page a couple of times hoping to get it to work, but it won't work and they'll eventually give up and go away or find some other way to access the information they were looking for.

Being such an uncommon error with relatively little minor consequences, it was high on my to-do list. I think getting the calendar out and the latest update done is more important, so I put the bug aside. Until this evening, when I found myself exhausted from working on the calendar and the update and wanted a change of pace. So I spent about an hour creating a special function that can take input from the command line and pull out a number--just the digits zero through 9, or return FALSE if it's not a number. Then updating all calls that were expected to pull numbers from the command line to use my new data-checking function that will make sure no periods get included into the number. Creating the new function--easy. Mere minutes and it was working. Updating the 319 places where I needed to call the new function--that look about an hour.

As with all the changes I've been making lately, the bug fix will be in the Next Big Update. =) In the meantime, if you want to freak out AQ, try changing one of those URLs that have a number in it to include a period at the end of the number. Doesn't matter where you do this. The member ID, a letterbox ID, a blog ID--none of them currently work correctly with that period. Some places might actually--inadvertently--work as expected, but most of those 319 places will probably cause a blank screen and an error notification to be sent to me.

Enjoy the hacking now, though, because it'll be fixed in the Next Big Update. =)

Now I'm off to bed. Goodnight all!