Sunday, February 28, 2010

Disaster Planning

I got an AQ mail yesterday from someone concerned about disaster planning on Atlas Quest. What would happen if  "the tortuga loses his shell" or "just decides to throw in the logbook." The question might seem impolite, but it's a good question, and it's not something I talk about often.

My "throwing in the logbook" isn't very likely. Frankly, this is the best job EVER, in my humble opinion, and since I'm not independently wealthy, I do need a source of income. While it's possible I might spend less time developing or improving Atlas Quest in the future, I have absolutely NO incentive to throw in the towel. Even if I found full-time employment working 9 to 5 at a corporate job, I could still keep AQ running with a very small amount of effort. Development of new features would probably grind to a complete stop, but the site would certainly keep on kicking. =)

More likely risks could include legal woes. What if some idiot hurts themselves, then decides to sue me? It might not be fair, but it could happen. In fact, anyone that plants a letterbox could, in theory, be at risk of legal woes when things go wrong. Anyone getting hurt might blame the person who planted the box, or what if it's mistaken as something dangerous and police and bomb squads are called out? Legal woes have put businesses out of business in the past, and I suppose, in theory, it could do the same to Atlas Quest. That would most likely be a slow-motion disaster, however. The legal system isn't known for working quickly, and it seems unlikely that I'd be forced to shut down Atlas Quest quickly or unexpectedly. Heck, even Napster found a second life after being shut down.

And the biggest risk of all--which will happen someday--is if something were to happen to me. Death, dismemberment, severe strokes, or any other countless number of possibilities could take me offline permanently. Short term, nothing much will happen. If I walked away from Atlas Quest today, it could be several days before anyone even noticed. The site could probably run for several weeks completely by itself without any trouble. To keep Atlas Quest running, basically three things have to be done:

1. Someone needs to make sure to renew the domain name every year.
2. Someone needs to make sure to pay the website hosting fees when necessary. (It's currently set where I pay those costs every six months.)
3. Someone needs to keep an eye on announcements from the web hosting provider and Atlas Quest about changes to the system that might affect the continued running of the website.

Wassa already does that third task when I'm off hiking. It rarely amounts to much. A couple of years back, I was forced to move Atlas Quest to a new IP address which caused some problems. Right now I'm getting nightly notifications about the site running out of disk space, so I try to figure out ways to cut the amount of disk space being used or pay up for more. So Wassa could step into that roll pretty much immediately. In fact, I sometimes think he's actually looking forward to the day. ;o)

The ownership of Atlas Quest.... seeing as Amanda and I aren't married, I think legally speaking, the website would be inherited by my mother. I know she'd have absolutely no interest in running the website, however, and would happily give Amanda control over it. Which, seeing as Amanda is a letterboxer, uses the website regularly, and has been very supportive of it, makes a heck of a lot of sense. =) I should probably draw up a will stating as much, but admittedly, I haven't. (Not yet, at least.)

Unfortunately, Amanda doesn't have the skills necessary to actually run the website herself. I would think Amanda and Wassa would need to work out some sort of agreement about keeping the site up. Since Atlas Quest actually IS profitable, there's certainly a financial incentive to at least keep the website running, even if active development comes to a screeching halt. I doubt Wassa could make it a full-time job like I do--he probably has more bills than I do that involve things like kids, college, mortgages, and such that I don't have to worry about--and while AQ is profitable, a corporate job is even more profitable. So I don't imagine him quitting his day job to work on AQ full time. Nor anyone else for that matter. Any additional development would largely be on a volunteer basis.

Ultimately, I'd be thrilled if Atlas Quest earned enough money to pay competitive wages so that it would be easy to find someone who could continue working on Atlas Quest as a full time job. It might still get there someday. Even in this terrible economy, Atlas Quest actually has earned about 20% more in 2009 than it did in 2008. It's a little too early to tell how 2010 will do. January was down year-over-year, but February was up. *shrug* I'd be absolutely thrilled if it earned enough to pay a competitive wage compared to working "for the man." If it did, someone like Wassa could very well take over and make this a full-time job for themselves. Until then, it'll largely end up being run on a volunteer, part-time basis.

Of course, Wassa is older than me. Statistically, the stifling air quality in San Jose is likely to kill him before the sweat ocean breezes in West Seattle kill me. =) I may need a different plan B someday. I'd pick someone younger than me, but--would you believe it--there actually aren't that many who are. I'm generally considered a youngster by most people's standards. As I get older, though, it'll become easier and easier to find people younger than me qualified to keep Atlas Quest running. =) Ideally, I want whoever takes over from me to be able to keep things running for at least a decade after I'm gone, and then whoever steps into their shoes would be in charge for at least another decade after they're gone, and so forth.

While I'm not exactly sure what sort of agreement Amanda and Wassa would work out to keep Atlas Quest running, I have little doubt about it happening. They both love using the site and would want it to keep running long after I'm gone.

One other disaster that could potentially hit Atlas Quest--data loss. It's possible that the database could become corrupted and there's a permanent loss of data. There are night backups that are stored offsite, so if something did happen, it likely wouldn't be a total loss of data. I'd just go to the backups. And there are multiple backups. If the last one doesn't work, I'd try the one before it. Or the one before that. Or the one on my flash drive. There are so many different backups stored in so many different places, a complete loss of data is darned near impossible. Depending on when things go wrong, it's unlikely more than the last day or two worth of data is permanently lost. If a hacker managed to get in and deliberately destroy data, they could possibly cause a permanent loss of data that might add up to a month or two. And it might take several days, perhaps even a week for me to restore the last backup depending on the situation.

So that's my disaster plan. It's rather an informal one, but Atlas Quest is still small and informal enough that an informal disaster plan seems sufficient. As Atlas Quest grows, there might be changes. As time passes, there will be changes. But as things are now, I see no reason why AQ can't continue being here for years to come, regardless of whether or not I'm in the driver's seat.

Happy trails!

Saturday, February 27, 2010

It's Just One Little Button....

If you've been to a letterboxing event recently, you've probably noticed that convenient little button that allows you to record the finds for all of the personal travelers and event boxes that attend an event. There's a similar button for LTC swaps, so you can record the finding of large number of boxes from one easy and convenient page.

This is another of those examples of a feature that never seems to end. First, people requested the ability to leave a comment with each of the boxes they found. It's a reasonable idea, and I actually did implement that for the LTC swaps. Only 'private' comments are allowed, though. And as soon as I did implement that, the next feature request started coming in--"I want to post my comments publicly."

Again, it's a reasonable request, and one I want to implement, but it turns out the process is remarkable hard to implement. "It's just one little button," I'm told, "how can that possibly be hard? Public or private. Seems pretty simple to me."

This morning, I started working on this "simple" little request. About 12 hours ago. And I'm still nowhere near to being done. How can something so simple be so hard?

Options. Preferences. Notifications. As the finder of a box, you want the option to have a comment posted publicly or private. Each individual owner of the box wants the option to completely reject public comments, moderate comments, or auto-approve comments.

So already, we now have six possible combination of options that all need to work:

You: Public - Them: auto-approve
You: Public - Them: moderate
You: Public - Them: reject
You: Private - Them: auto-approve
You: Private - Them moderate
You: Private - Them reject

It's like a little battle--your options vs their options, and the lowest common denominator wins. If you want it private, the comments will be private. If you want them public, it will either be auto-approved, moderated, or forced to be private.

But since you're recording the finds and making comments on large numbers of boxes, the each box has a different set of  "their" options. You might want all of your comments to be public, but some people will want the comments auto-approved, some will want them moderated, and some of them will force it to be private. So I have to check each of the options for each box you leave a comment on.

How do I display this form? Do I tell you each person's individual settings so you know what will become of your comment--auto-approved, moderated, or rejected? Or just figure it out in the background and not confuse people with all that information.

And what if you leave some comments that you want public and others that you want private. Should I have a public/private option for every single box listed, or just one setting at the top of the page that will be applied to all of the comments?

Once all that is figured out, AQ needs to send out notifications to the interested parties. Some people want to be notified of all finds, even if no comment is left. Some people only want to be notified if there's a comment included. So AQ needs to look up the author, planter, owner, all carvers, and all contacts for each box you found--regardless of whether or not you left a comment--and AQ mail all of them (if you left a comment) or some of them (if you did not leave a comment).

It's enough to make my spin. It's spinning right now, in fact. =)

And, if I don't write the code well, it could cause the find report to generate hundreds or even thousands of hits on the database, causing the submission to appear "stalled," which might cause someone to submit the form again--just in case--making the problem worse and generating multiple notifications and comments for the same box.

So when I first created that "record finds" page, I took the easy way out. You could record finds, but no comments. At the time, comments didn't really seem that important anyhow. We're talking about personal travelers, event boxes, and LTCs. Typically, they consist of messages like, "That's a great stamp!" or "Thanks for the LTC!" or maybe "I really enjoyed meeting you at the event!" It's not really particularly useful information. Compare to the types of comments you might see on a traditional boxes such as "The logbook is full and needs to be replaced" or "The stamp is missing." That's the sort of information future finders of the box may very well want to know. It's a source of information, rather than the complimentary salutations of the non-traditional boxes.

So I took the easy way out. I just didn't support comments on those pages.

Eventually, I added comments to the LTC swap, but only allowed private ones. That was remarkably hard to do in itself, so I wasn't especially excited about the prospects of doing the same for the event finds. But even that still doesn't reach the ideal that everyone really wants to see--comments, with the option to make them public or private.

But this morning, I woke up, and was determined to get this ideal done today. Ate some breakfast, then got to work. Stopped long enough to eat some cold pizza from the frig for lunch. I'm at my mom's house and she made spaghetti for dinner (and cookies for dessert!). But otherwise, I've been working. Working. Working....

And twelve hours later, I'm nowhere close to being done. Things are so wrecked on my development machine, I don't dare upload any minor bug fixes or tweaks since there might be code that's no longer compatible with all of the other code currently on the live site.

I'll get through it--eventually. I decided to go with the "simplified form" where you specify the private/public option that is applied to all of the comments you make rather than allowing you to pick them on a case-by-case basis. I figure if you really wanted to make some comments public and some private, you'd just use the Record Finds page twice--one for each option.

And I have finally managed to get that unwieldy beast partly under control--the comments are being correctly logged and stored into the database. The part that still does not work is the notifications. I've been thinking about possibly making some shortcuts there. Maybe I could just notify the owner, rather than all "interested" parties? That would certainly make some things a lot easier. I'm rather dissatisfied with the AQ mail notifications of box comments as it is, and wonder if I should create a "Box Comments" page that allows you to review the comments on all of your boxes at once, allowing you to delete or approve them as necessary. Link to that and be done with it. I could even make a list of  "Recent Finds on My Boxes" that people can link to, and stop sending AQ mail notifications for finds without comments. If you want to see who's found your boxes, you'd still be able to look it up easily. And then I when a comment isn't left, I don't have to figure out which "interested parties" should get the notification and which ones should not.

But the I think, "But a lot of people won't like that." No, they won't. They like being notified every single time someone finds one of their boxes. Immediately. Even if there's no comment with it. It's purely selfish motives that make me think this way. "It's easier to code. It's easier to maintain. It gives me more time to play FarmVille." (I'm just kidding on that last one--after I reached level 70, I rarely get on FarmVille anymore.)

Anyhow, if you've ever wondered why I didn't do something so "obvious" as allowing people to leave comments on those pages of mass find recordings, that's the reason. It's hard! Brain-numbing hard. I figure I've already committed too far to stop now, so I'll carry through with something. It may not be perfect, and it may take several more days of work, and it might make me cry, but eventually I'll get something done. It may not be everything you want, but hopefully it'll be better than before. Options and preferences really muck up a lot of otherwise beautiful code.

I'm sometimes rather resistant to adding new options and preferences, and that's largely the reason. It makes things more complicated. Unless a sizable number of folks are actually going to use a certain preference, I often don't consider the effort involved worth the headache.

In somewhat related-but-not-really news, I started reading a book yesterday called Don't Make Me Think. Seems strange that I'd end up doing so much thinking today.

And in completely unrelated news.... I've heard nobody complain about the "shadows" on Atlas Quest bothering anyone today. Is that because I toned down the shadows, or because y'all got tired of complaining about the shadows? =)

Monday, February 22, 2010

Psst! Need a stamp?

I know where you can get one.... the Stamp Exchange! If you need a stamp for a letterbox or got a little too carried away carving stamps and have more than you can plant, list your stamp requests and offers on the Stamp Exchange. Premium members have been kind enough to kick the tires and list a few entries to get things started, but it's now open for the rest of the world. =)

You can find a permanent link for the stamp exchange under the 'Toolbox' menubar button.

Enjoy! *hitting hat*

Thursday, February 11, 2010

April Fools, on February 11th?

A few of you noticed the premium member hats theme up this morning, but when you tried to record finds on unlisted finds, it didn't work. Sorry about that! If you're interested in the whole convoluted mess, it started last December.... I was updating the code on Atlas Quest to display themes on the correct days throughout 2010. Some themes never have to be changed--holidays that are always on the same day of the year such as Christmas, Valentines Day, or Independence Day. I like those themes because it means no additional work for me every year. =)

Other themes need to be moved each year. Think Easter or Thanksgiving. So every December, I sit down and figure out where each theme is supposed to show up for the rest of the year. Sometimes there are conflicts I need to work out--this year, for instance, Valentines Day and the first day of the Chinese New Year both hit on February 14th. Which theme gets precedence? It's sometimes gets quite complicated. It usually takes me a full day to get it all worked out. I decided the Chinese New Year lasts a whole year--as long as I get that theme up at some point during the year, it's fine. =) Valentines Day doesn't really move around, so I'd let it keep the 14th, and push the Chinese New Year theme to the 15th. Except.... Well, drats, the 15th is President's Day. And the 16th is the discovery of King Tut's tomb. I wouldn't be able to fit in the Chinese New Year until the 17th. Hmm.... Well, I could put it up for the Chinese New Year's "Eve," and give it the 13th. I liked that idea, and that's what I ran with. =)

Last December, I also made the decision to randomize the premium member hat theme throughout the year. Never to show up more than once in any given month. So I wrote a little program to randomly choose several days throughout the year for the 'free listing day.' It popped out as February 14th. Well shoot, that's not going to work. So I backdated it to February 12th which was the closest date that didn't conflict with an existing theme.

All was well.... until a week or two ago, and I realized--I really need to create a Winter's Olympic theme. I didn't have any last December to worry about, but I went ahead and created one last week. The Winter Olympics starts tomorrow, February 12th, which now conflicts with the premium member theme I had selected last December. NO PROBLEM! I'll just move up the premium membership by a day and open up the 12th for the Winter Olympics theme. After all, 'free listing day' can be ANY day of the year. No restrictions where that one could land.

So I updated the code so free listing day shows today and the Winter Olympics theme tomorrow. Except.... I forgot one small detail--the code that actually allows the premium membership functionality to work. It was still set to work on February 12th, and I forgot to update THAT code to today.

So, for the first 11 hours of today, the free listing part of free listing day wasn't working. Sorry 'bout that. I put the blame squarely on the Olympics. =) I feel a little bad about that, so I updated the code that provides the premium membership functionality so it'll work today AND tomorrow. You won't see the premium hat theme tomorrow--the Winter Olympics theme will go up tomorrow--but the functionality for 'free listing day' will be extended through the end of day tomorrow (Friday).

In other news.... I spent much of last night updating the look of my blog. What do you think? =) Any guesses what part of the country the image across the top of the page is from? I started updating my Another Long Walk blog for my upcoming thru-hike, and since I was learning how to make various changes to it, I decided to update this blog at the same time. I like the new look. =) I was never particularly happy with the old look--the pages were always too narrow for my taste, and the header was awfully hard to read against the original map background I had been using. I find this layout.... liberating.

Wednesday, February 03, 2010

Hugs and Notes

If you've logged into Atlas Quest lately, you may have noticed a "hug counter" in the top-left corner of the page. I got in my head the curious thought about how many times my posts have been hugged, and decided to run it through the database to find out. =)

I'm not sure if I'll keep that number in the corner permanently or not. On the plus side, it doesn't really displace anything of "real importance," but on the minus end of thing, it serves no functional purpose either. What's your opinion? Keep it, or cut it?

I'm not naming names, but if you're curious, the most hugged person on Atlas Quest has received 11,197 hugs as I type this. By comparison, I've received a lowly 4,589 hugs.

In other news, I've added a new icon to the standard list of member icons, so by trail names you'll see four icons: view profile, contact member, view logbook, and "My Notes." The notes feature isn't new--being able to read and edit them from nearly anywhere you see a person's trail name is new. Whenever you want to jot something down about this person--an address, an e-mail address, their interests, or anything else you want to keep track about a person, you can add it quickly with the click of an icon.

Happy trails!