Saturday, April 05, 2014

More Server Downtime....

As many of you have noticed, AQ has been running poorly ever since the server migration and I'm still working on getting things fixed up and running normally again. As a result, I expect to take AQ down for several hours Sunday morning/afternoon. If things go really well, it could be down for less than an hour, but I expect it'll take several hours. If things go really bad, it could be down all day. But I'm shooting for just a few hours.

I really am sorry for the inconvenience! If it's any consolation at all, though, it's probably an even bigger inconvenience for me than it is for you! =)

You might think I'm just saying that, but I was supposed to be starting my Arizona Trail thru-hike today after already postponing it nearly two weeks, but--for the second time--I'm delaying the start of my hike for this stupid server migration problem!

I'd rather be hiking right now.... but AQ needs me. *nodding*

Wednesday, April 02, 2014

April Fools!

Yeah, so the upside down themes of yesterday were the 2014 April Fools Day prank for Atlas Quest. All the other problems the site has been having--the downtime, broken features, and so on--were not. I know more than one of you thought the whole server migration was a joke, but it was very much real and truly dreadful timing.

I'm still having some minor problems with the new server which I'm working out. Queries are running slower than they should be. I'll have to restart the server occasionally and unexpectedly, although at this point, I don't expect anymore prolonged downtimes. *knock on wood*

If you missed the upside-down and skewed themes or want to revisit them again, they are available as AQ themes. You probably won't want to leave him enabled for very long, though! =)

My favorite of the bunch is the heavily skewed ones, like the Skew Left theme. They don't even look like real websites! Looks like something digitally manipulated in PhotoShop or something

If you want to thank the person who thought of the upside-down theme, that would be our very own Amanda from Seattle. =) She suggested it as an idea years ago, but at the time, I didn't have a clue how to make it work. There were some very new CSS3 properties that could do the trick, but no browsers supported them at the time.

I revisited the idea this year, though, when I learned that all major browsers now support the necessary properties in some form or another. The most common browser that doesn't support the properties are old versions of Internet Explorer--usually a handicap, although the irony in this case is that the people using them were probably left scratching their heads wondering what the heck everyone else was talking about. =)

So I created the original April Fools Flip theme, which took all of about 10 minutes to do. I used this theme for about 5 seconds before I realized that the site was all but impossible to use. I couldn't leave it like that for an entire day! Which is when I started playing with other variations.

Like, what if everything was upside-down, except the main content window that is the most important part of the page? So I flipped the headers, footers and menubars, which is still awkward to use, but at least it was easy to read the content. The menubars were awkward, but because those are always the same and most people are pretty familiar with them, I could get by with them. Annoying, but not a deal breaker.....

The code to do these upside-down themes basically just say, "turn a specific element 180 degrees" to flip a page, but I can turn it any number of degrees. Why just use 180? Why not 90 degrees? Or 45 degrees?

So I tried those, but they didn't work out so well. The pages turned, but if it was a long page, it would go off on the right side of the page and there wouldn't even be a scroll bar to see what was missing. I wound up tilting the page 1 degree and most of the page stayed within the side bounds of the browser window, so I kept that variation. Almost like a drunken theme....

I also realized that I could rotate elements that had already been rotated! That's how the disorder theme was created. I rotated the entire page 180 degrees, then rotated just the header, content, menubars and footer in place 180 degrees, so the entire page actually ends rightside-up... but each of the elements are completely in the wrong order. Which I actually found surprisingly disorienting even though I could still work through it. That was a keeper.

And then I wanted to create a theme that was wrong, but at first glace, it seemed okay. Which is when I created the menubar flip. Only the menubars were upside-down and at a glance, that's not at all obvious. Not until you try to hover a mouse cursor over it and the dropdown menu goes up. I probably clicked the "Home" button more often using that theme than any other day in the history of AQ thinking it was the "My Page" button. =)

Anyhow, I hope you all enjoyed the shenanigans! And if you didn't.... well, blame Amanda. ;o)


Tuesday, April 01, 2014

Smartphone-friendly changes!

As many of you know, I've working to update AQ to be more smart-phone friendly, and I recently uploaded some CSS changes to help in that direction.

Obviously, mobile devices can be turned in all sorts of directions--up, down, sideways--and it's even possible that different people can look at the same device from different directions, so I added some code that automatically detects from which direction people are viewing the page and orients that page to face them.

Apparently, there have a been a few glitches, which I think I've straightened out now, but due to caching issues, you might have to "refresh" your page a couple of times to get them to take effect.

Sorry about that!


Friday, March 28, 2014

AQ downtime starting Sunday!

Just a heads up here! On Sunday, March 30th, I intend to move Atlas Quest from a server in California to a server in Virginia. This will require some downtown for the website. If all goes well, it won't be down for more than a few hours.

HOWEVER--this change means that Atlas Quest will get a new IP address and bad things can happen when I change IP addresses. It converts the domain name atlasquest.com into a numeric address that your browser can find, and your browser won't be able to find the new server until the IP address is updated. In theory, though shouldn't take more than a couple of hours. In practice, some people have reported having to wait days or even a WEEK before the address updates when I've changed IP addresses in the past.

Consequently, if you plan to do any letterboxing in the next week or so, I'd start hustling to download and saving clues that you'll need right now. Hopefully it will all just be an unnecessary precaution, but starting Sunday morning/afternoon, AQ may appear to be down for a considerable period of time for some people.

Wednesday, February 26, 2014

Parchment Paper Transfer

It's been awhile since I've added or updated any of the tutorials on Atlas Quest, and one I've wanted to add for quite some time now is how to transfer an image to a carving block with parchment paper.

And.... it's been done! If you aren't familiar with this technique, all you need is parchment paper, a little tape and an ink jet printer. Very quick and easy. *nodding* Enjoy! =)

How to transfer image to a carving block with parchment paper

Tuesday, October 29, 2013

There's a New Widget in Town....

Most of you know about Wassa--he's not quiet or shy. =) But there's another webmaster on AQ you might not know about named Admin 42, and he/she doesn't post much so you might not even know of their existence.

However! He/she does read the message boards, and there was a request some time ago to create a calendar widget that could display when trackers, events and such that you've signed up for start. I liked the idea and bookmarked it to implement later, but Admin 42 didn't want to wait and took it upon themselves to create such a widget.

And it's now available. He/she still says the widget is a work in progress, but it currently does include listings for trackers you've signed up for and any entries you've added to the Countdown Widget. (For those of you not familiar with the Countdown Widget, it's a premium member only widget.) Event signups are still a work in progress, but I suspect those will be supported soon enough as  well!

The Calendar Widget will also be just for premium members--at least for now while Admin 42 is still actively working on it. I haven't decided if I'll open it up for everyone when the widget is "done," but for now, premium members who want to kick the tires, go the Add Widgets page and add the Calendar Widget! It's pretty awesome! =)


Monday, August 19, 2013

The 2014 AQ Letterboxing Calendar is ready!

Yes, it's that time of year again where the annual AQ letterboxing calendar is hitting the proverbial shelves! =)

I usually don't announce the winners until I have a stock of calendars ready to ship. Admittedly, this year, I have no calendars to ship. Unlike previous years, I wasn't able to get any sort of bulk discount to save a few bucks from the cost of the calendar by reshipping them myself, and it would actually increase the cost of the calendars if they went through me first. So this year, you'll have to order them direct from the publisher, Lulu.com.

However, since they print on demand and can make 1 or a million of these things at whim, I've added a second calendar option: a larger size. I've never ordered the larger size before since they're about $10 more than the smaller version and I didn't want them siphoning off bulk discounts, but since I don't qualify for them anyhow, who cares?! =) If you feel like splurging for the large-sized calendar, go for it!

So, here's AQ's listing of the calendars. Check it out to see all the wonderful photos sent in by different letterboxers. =) (The cover photo is actually slightly different for the two calendars since the larger version needed a much longer, vertical image to fit, but I used another photo of the same location I had taken. Same place, but it was useful for me to have essentially the same photo for both the horizontal and vertical formats!)

If I used one of your photos, I did order standard-sized calendars for you all. I'll be sending an email for your address and mail them out when I can. (They haven't arrived here at AQ headquarters yet, so there's no rush at the moment!)

On a related note, this is the last year I will give out calendars to those whose photos I use. The calendars are just getting too expensive and not enough people are buying them to pay for that expense anymore. The calendars were always meant to be a break-even thing for me, but it's turning into a money hole mostly because the calendars I give away cost far more than I recoup from selling them. So this is the last year I'll be doing that. I'll give some sort of prize or consolation for anyone whose photos I use in the future, but I haven't decided what as of yet.

So I'll still be making a 2015 calendar (upload your submissions today!), but you won't be getting a free calendar if I use your photo anymore. Sorry about that. It's just not affordable anymore.

Thanks to everyone who submitted photos for the 2014 calendar! It looks great! =)

If you do order a calendar from Lulu.com, right now they're having a special where, if you type in the coupon code "FBC18" (without the quotes), you'll get 18% off your order. It's only valid for one use per account, though, so be sure to get all your calendars at once if you want the 18% discount on multiple calendars!

Friday, July 05, 2013

Looking for Calendar Photos!

Yiker harasses the wildlife in Newport, OR.
Some of you might have missed it, but the deadline for calendars is fast approaching! It's a bit earlier this year because I plan to spend a great deal of time hiking the Colorado Trail then, almost immediately afterwards, plow down the Long Trail in Vermont. I'm not actually sure where I'll be able to fit time in to create a calendar, so I figure it's better to ask for photos early and work with them whenever I get a chance then wait until I get a chance before asking for photos. Whatever chance I have for creating the calendar will be fleeting at best!

So look through all of those photos you've been taking on your vacations, road trips and letterboxing adventures and get them uploaded to Project X. There's a free calendar in it for anyone whose photo I use in the 2014 letterboxing calendar!

I had to share this photo that Yiker submitted. I just love this photo. It's a gorgeous image, and a fun one as well! =)

Tuesday, May 28, 2013

Directional Searches

I was off walking around this afternoon, thinking about directional searches. You might be wondering what a directional search is--I haven't talked about them much. Mostly because Atlas Quest never had such a thing. In fact, it's not even something that had ever occurred to me before!

You'd start a directional search just like any other run-of-the-mill search. I, for instance, might run a letterbox search for Seattle, WA, and AQ will display all boxes within 30 miles of Seattle. It's a handy little search and has been the core of letterbox searches since AQ went live. But let's say I'm driving northwest from Seattle. I obviously wouldn't care about all boxes within 30 miles of Seattle--I'd really only be interested in boxes northwest of Seattle, the direction I'm headed!

That's what I'm talking about a directional search--an additional layer on top of the regular location-based search that would pick out only those boxes located in a specific direction from your location.

And it occurred to me... it really shouldn't be very difficult to implement such an option. In theory (knock on wood!), it could even be easy to implement!

So I sat down this evening and started working on it. And it was a relatively easy option to add!

It's a new Advanced Search option that shows up right after the distance. By default, no direction is selected, but you can choose N, NE, E, SE, S, SW, W, or NW as options.

And now, I can run a search for boxes northwest of Seattle. Just look at all those directional arrows, like little soldiers and marching in the same direction! =)

Happy trails!


Sunday, May 19, 2013

Tweaks and Fiddles!

Marjorie is on the hunt for The Graveyard letterbox!
It seems like at least once a year, I sit down and tackle the problem of slow queries. This year is no different. A query, for those of you without technical knowledge, is basically a word to describe the process of getting data out of a database. If a database is a telephone book, a query would be looking up someone's name to get their phone number.

But sometimes, queries can be really slow. For instance, if I asked you to look up someone's name based on a known telephone number, I bet that would take a lot longer for you to solve with a typical telephone book. The numbers aren't in any order at all! You might have to look through the whole book to find what you're looking for--or even to find out that it's not there!

The data is there, but it's hard to look up and very slow. So when I optimize queries, I'm trying to figure out ways to make the search for data go a bit quicker. Like... create another phone number, but this one is sorted by phone number rather than by name! =)

Yeah, I know, I'm simplifying things a bit, but slow queries can absolutely kill a website, and Atlas Quest is no exception.

The queries I target first tend to be the slowest ones (that's where the most room for improvement is!) and the ones that run most often (that's where the most room for improvement is!).

This year, there really aren't any slow queries that run very often. Which is probably the first time I can really say that. Probably 95% of the slow queries (which I define as taking 5 seconds or longer for the database to run) are all in the nightly updates. Calculating your P and F counts, which boxes have blue diamonds, which days of the week boxes are planted and found, the Hall of Fame, etc.

I pushed these queries to run late at night, when few people are on AQ, because I know they're slow queries, and they'll cause Atlas Quest to feel "sluggish" at best. May as well do that late at night when it affects the least number of people and when AQ otherwise has a lot of "downtime" twiddling its thumbs.

And since there aren't any slow queries that run often, I'm now focusing on optimizing these nocturnal activities on Atlas Quest. First those that run every single night (e.g. the Hall of Fame stats). Then those that run once per week (e.g. Box of the Week selections). Then those that run once per month (e.g. blue diamond calculations).

Many of the slow queries had relatively quick and easy fixes, which I quickly fixed. And you'll see absolutely no change on AQ as a result. Perhaps the site feels a bit faster and more responsive late at night than before, but that's the only change you might notice.

However, a couple of my query-speed improvements has affected some of the functionality on AQ. One of the slowest queries of all involved the calculation of blue diamonds, and it took over 30 seconds to run. Anyone using Atlas Quest during those 30 seconds would probably assume the website was hung. In a sense, it was--hung up on a slow query, processing over 600,000 votes cast for letterboxes. And that did not have a quick and easy fix. That would take some work to fix. A related query that fed into it took more than 10 seconds to run. Those two queries, combined, essentially shut down AQ for more than 40 seconds once each month. And as the number of votes increased, so did the time it took the query to run. If the number of votes doubled, so did the query time.

It was finally time to conquer these slow query once and for all. Some of you might have noticed that your box rankings were changing an usual amount recently. That was me, trying to work out the slow queries. The blue diamonds haven't changed (those only chance once per month), but there will be an unusually high turnover of them come June 1st since I had to tweak the algorithm for calculating them a bit to make the queries faster. Overall, the change in the algorithm is pretty minor, but you likely will notice some changes.

And.... since I was mucking around with that code, it occurred to me that I ought to make a little effort to have it support votes on all types of boxes. I don't know that I'll ever rank other types of boxes like I do with traditional boxes, but the old way the code was structured, it was all but impossible to do even if I wanted it. I'd rather keep my options open, though, so I tweaked the design so the database can support the ranking of all boxes. You'll notice this change when you record a find on a non-traditional box--you'll be able to cast a 1 through 5 vote for it. Postals, LTCs, hitchhikers... doesn't matter. You can cast a vote for it. AQ doesn't currently DO anything with the vote, but at least the option is there so it can be used later.

But my main goal was just to improve the slow queries, and now the blue diamond queries are running fast. =) The slowest of the queries barely takes over two seconds to run--quite an improvement over the 30+ seconds and 10+ seconds those two queries used to do!

The next slow query on my hit list that has very public repercussions involved the ones that created the nightly Hall of Fame. AQ would have to sort through over 3.5 million finds to count up what your F-count was for each category. It was pretty fast when I originally wrote the code and there were 10,000 finds in the database. The problem grew quite a bit as the number of finds continued to increase. (The same problem happened with plants to a lessor degree, but since finds outnumber plants by more than 10 to 1, it was really the F-counts that were causing the biggest problems.)

My solution to this problem is just to keep a running total of each person's P and F counts for every type of box supported. AQ already kept running counts for traditional boxes--that's how it could display your P and F count in the ribbons and trophies by your trailname and allowed you to restrict boxes based on a person's P and F counts. Counting that number every time it was needed would have just been to slow--so a running count was established. But it was only established for traditional boxes. It would take a heck of a lot more work to establish it for all boxes types!

But now.... that's exactly what I would have to do. I spent hours making the necessary changes, which I finally uploaded last night.

Now that I had running P and F-counts for all box types, though, that meant I could use that information in places where I couldn't before. The reason the Hall of Fame was only updated once each night was because counting all of the plants and finds was so slow. Now AQ didn't have to count anything--it could just look up the numbers like it was a phone book. So I updated the Hall of Fame page to update in live time. No more time delay. The second you add or remove a plant or find, these numbers update immediately in the Hall of Fame. =)

There were a couple of other places where AQ was counting up plants and finds, such as your profile. These particular queries didn't merit the "slow" status, though--it didn't have to count up all of the plants and finds on AQ--just your own which was a much smaller and more manageable number to deal with. =) My profile page--with over 250 plants and over 1,500 finds--took AQ about 1/10th of a second to count. That's pretty fast, and plenty fast for AQ purposes. But since I had this pre-counted data readily at my fingertips now, I switched the page to start using that data instead. Now it takes AQ less than 1/1000th of the second to get the exact same data! It's over one hundred times faster! From your point of view, it's no big deal, though. The human eye isn't going to notice the difference between a page that takes 1/10th of a second or 1/1000th of the second to run. =) Especially when you consider that the other two dozen queries that are used to create that page are still running at the same speed. This is one of those changes that you won't really notice. There were a few of them like that. The Hall of Fame is noticeable now, however, just because it updates immediately instead of overnight like it used to, but it's allowing even fast queries to run even faster!

But there was one other place I realized that I could use this pre-counted data... box restrictions. Previously, you could only restrict boxes based on a user's traditional P and F-counts because those were the only numbers available that had been pre-counted. Even postals and LTCs could only be restricted by a person's traditional P and F-count, which is highly unintuitive and doesn't really make a much sense. But since all box types are now pre-counted, that unintuitive functionality could be removed. So, starting today, if you have restrictions on non-traditional boxes, they refer to the user's P and F-counts for the same box type.

For example: A postal with a P-count restriction of 1 and an F-count restriction of 10 means that only people with 1 postal plant and 10 postal finds will be able to see it. An LTC with a P-count restriction of 10 and an F-count restriction of 50 will only be visible to people with 10 LTC plants and 50 LTC finds. You get the point....

I was trying to do the same thing with Trackers, but I was having more trouble with those since there's not a one-to-one relationship with box types to tracker types. (There are no Hitchhiker Trackers, for instance, and there's no "Boxing Buddy" box type.) I'm not sure how to go about fixing those, so if you have P and F count restrictions on Trackers, they'll still only restrict trackers based on a person's traditional counts. Someday, I'd like to fix that.... But that will have to wait another day. It's too much work for the payoff at the moment. =)

I'm still tackling slow queries--I've nailed the vast majority of them that used to occur nightly or weekly, and a good number of those that run once each month. But hopefully AQ seems at least a bit more responsive if you're up late at night with insomnia. =) Perhaps still not as responsive as during the day, but an improvement nonetheless! That's my ultimate goal. The other changes you might see on AQ are just "collateral improvements." =)