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." =)

Tuesday, April 09, 2013

QR Codes

This QR code should link to
http://www.atlasquest.com
Do you know what this is? It's called a QR code. I don't actually know much about them, except that it's a 2-D barcode that can be stuffed with all sorts of information. And I've started seeing them around more and more often. In magazines, newspapers, and even in shop windows walking around town. One AQ member, Speedquare, even has one as her profile photo. A pretty orange thing. =)

My Costco flyer that arrived in the mail this afternoon had one, which, apparently, if I can scan to be connected to Costco Services experts.

Except that I don't have anything to scan it with. I don't even have a cell phone much less a smart phone that can scan this stuff. I suppose I could take a photo of it with my camera and find somewhere online that could decode the message--presumably, it's a URL. But it's not worth the effort. I just don't care enough about Costco Services experts to bother. =)

But I'm still fascinated by these little things. And on my walk this afternoon, an idea hit me--maybe I can use them on Atlas Quest! Have them printed out with clues then, anyone who can scan them, could be taken directly to the "record find" page on AQ. No messing with searching for the box online, or keeping track of the box ID. Scan and go directly to the page to record your find.

Nobody has ever asked for this feature.... it just strikes me as immensely interesting. I wasn't even sure if I could implement this feature. How are these QR codes created? Are they patented or something? I didn't know!

So I did a bit of research, found some code online that can programmatically create QR codes, and started messing around with them a bit. Fun times! =)

And I added QR codes to clues. For instance, take my Los Osos Oaks clue. If you scan the QR code, it'll take you to the page to record a find for that series. If necessary, you'll be redirected to log into Atlas Quest before you can record your find. (Obviously, it's tough to record your find properly if we don't know who you are!)

It's also possible to print these codes and tape them into your letterboxes. Perhaps more people will record the find if you're into that thing? Or perhaps they'll just ignore it. Who knows? =) You could even leave a QR code to points to the main page of AQ if you want to make it easy for muggles who find your box to learn more about letterboxing. (The QR code at the top of this post does just that. Or at least it's supposed to--like I said before, I can't actually scan these things!)

Anyhow, it seemed like a fun thing to add. What do the rest of you think, though?

Monday, April 08, 2013

A look back on AQ

There is nothing important in this post. There is a lot of technical information to follow. Continue reading at your own risk! =)

So I was poking around the database, doing the usual sort of stuff, and I noticed the size of the database just hit 3 gigabytes. As I type this, it now stands at "3,000.07 MB" according to my little stats program.

It has 197 tables keeping track of all the happenings on AQ--the message boards, the letterbox listings, account information--in all, "approximately" 22,310,313 rows of organized information. I know that number looks quite precise, but according to the stats program, it's actually an "estimate." Some of the tables, apparently, are difficult to get solid numbers for. =)

Back in 2008--seems so long ago, doesn't? Anyhow, back in 2008, I posted about AQ Database Milestones. It's a long, boring and tedious post--no need to read it now. I remember it, though, because AQ had just passed the 100th table in the database and I had hoped the next 100 would run just as smoothly. I still haven't gotten to that 200th table, but at 197, it's pretty darned closed.

(I should note: These are tables strictly used for AQ purposes. There's a totally different database running Walking4.com. There are 11 tables for that website and that database weighs in at 4.52 MB--considerably smaller than even when AQ started!)

The most interesting part of that post, though, is that when Atlas Quest debuted, it had just 12 tables that took up 70 megabytes of data. Fortunately for me, I wasn't working with 3 gigs of data at the time because I worked on a dial-up connection then. Even 70 megabytes is pretty slow over a 56K modem. =) Now it's nearly 50 times that size and still growing....


The last table I created for the database deals with the geocoders. I've talked about the geocoders before here, in The Magic of Geocoders..... A geocoder, for those who aren't familiar with the term, is a program that can convert a street address or other location into latitude and longitude coordinates. When you run a search for "Houston, TX," AQ needs to convert that into coordinates to be able to run a search for all letterboxes near that location. That's where the geocoders step in.

Anyhow, one of the geocoders AQ depended on stopped working unexpectedly. Nobody noticed, though, because there was a backup geocoder that sprung into action to handle the problem.

Two years ago, when I first redesigned the geocoders, I created them to work like lego bricks--I could snap off one geocoder and snap on another one without affecting any of the code that actually needs a geocoder. This was the first real tests of that new redesign--and the system worked flawlessly. Even with one broken geocoder, AQ could detect the problem and automatically move to the working one. It's kind of a good feeling--that the code I worked on nearly two years ago to handle problems exactly like this worked flawlessly and generated absolutely no downtime for AQ.
So most of the past week I've been working on the "geocoder problem." I created two new geocoders--one that uses Bing and one that uses MapQuest. And retired the Yahoo geocoder which no longer is available, and yesterday, I snapped those into the rest of AQ. The update was so easy and so quick, I didn't even need to take down the website in order to get it done.

I also added more functionality to the geocoders. These geocoders have a much smaller limit on the number of locations I can geocode each day than the one it replaced, so I took steps to reduce those numbers by caching results.

If you're curious, when you do run a search for a location, AQ now tries to figure out what you're talking about in the following order:
  1. It checks if you typed in latitude and longitude coordinates and just uses those.
  2. It checks the AQ database to see if it's a location AQ already knows about.
  3. It check the Bing geocoder to see if Bing can handle it.
  4. It checks the Google geocoder to see if Google can handle it.
  5. It checks an internally-hosted table with millions of locations to see if it can be found locally. This is a pretty bad and primitive search, though, which is why it comes so far down the list, but it's free and doesn't count against any quotas, so I'll keep it.
  6. Then it checks if MapQuest can handle the location. The MapQuest geocoder worked so poorly in my tests, it essentially comes in dead last. I'll use it as a last resort!
  7. For the next month or so, there's a second Google geocoder that will then get a crack at the location. This is the depreciated Google geocoder, an older version of their current geocoder, and Google is planning to pull the plug on it next month. I'll keep it in the lineup as long as it's still chugging along. It's a decent geocoder, but since I know already that it will stop working next month, it seems prudent not to be relying on it at this point. Except as a last resort. =) After Google does pull the plug on it next month, I'll just remove it.
The only real problem, I imagine, are those people who want my Under Construction letterbox. As AQ becomes more robust, I'm able to do more and more updates without actually taking the website down--and this clue is only available when the website is down for an update. Which makes the clue progressively more and more difficult to get! Not only am I having to do fewer "big updates" than in years past, but they're often a lot faster too.

Anyhow, I just felt like reminiscing.... Go ahead and go back to your normally scheduled program. =)

Monday, April 01, 2013

The Great Hoax of 2013

So, as some skeptics out there suspected, that whole Bake Your Own Carving Block tutorial was an April Fools joke. A complete hoax, through and through. Oh, there were elements of truth to it--the better to make it believable. For instance, when I wrote, "This tutorial has been more than a year in the making," that was the honest truth. I had the idea for the tutorial about a year ago, and it took me that long to save enough shavings to create a tutorial that would look legit!

And when I wrote about the equipment: "Amanda found ours at a Japanese dollar store and our total expense was less than $10!"--that too was completely true.

But those are about the only two true statements in the entire tutorial. The rest was a complete hoax.

"But!" I hear you thinking, "Look at those photos you took! They look so real!" Yes, they do look convincing, don't they? But remember, they had to look convincing if it was ever going to fool anyone! =)

In step 1, when I'm shredding pink stuff with a cheese grater and cutting it with a knife--I really did these things. That's real pink stuff that I really did shred with the cheese grater. But the cheese grater was so hard to work and cut so little off at a time, I got tired of it and started cutting up the pieces instead. Much faster. So step 1B--that's me being lazy. =)

Real pink stuff, really being shredded with a cheese grater.

Real pink stuff, when I got too lazy to shred enough pink stuff!

Step 2: Apply DEET as a food release spray
In step 2, when I sprayed the pan with DEET--this is true. I really did do this. Why did I use DEET? What made me even think of using DEET? That was the first question Amanda had when I showed her the tutorial. "DEET? That's crazy!" she told me.

I actually went through our kitchen looking for Pam. I figured it needed a food release spray, but when I looked for it, I couldn't find it anywhere. Were we out? Was it hidden behind the cinnamon and I was just overlooking it? I didn't know, but then I realized I'm just making a fake tutorial anyhow. Who the heck cares? It just has to look like I sprayed something on it! So I started searching the kitchen for anything "spray-able," and you know what I found? Nothing. Absolutely nothing.

Then I thought I could use one of those water spritzer bottle thingys, but I couldn't find any of those in the house either. And then I remembered my DEET. It came in a small bottle that was sprayable. And it clicked immediately--what a WONDERFUL idea!!!! I was going to try to use something else other than food release spray and pretend it was a food release spray, but DEET keeps bugs away--that could actually be a good thing for our little rubber stamps! Who cares if it worked? It looked good and it sounded even better! Perfect for an April Fools joke!

Real pink stuff, real scraps. But the DEET had
already been washed off and the tray dried again.
So the DEET was actually a last minute addition when I couldn't find real food spray in the kitchen. Thank goodness we had run out! =)

I took a few photos of the DEET-covered tray, then immediately washed off the DEET and dried the tray. It had served its purpose.

For step 3, I then piled on a bunch of old pink shavings from real carvings that Amanda and I had done over the past year. It's a real photo, of real pink stuff. There's absolutely no DEET or food release on the tray, though. It didn't need it since I had absolutely no intention of baking it. =)

By step 4, I added aluminum foil over the tray. The pink stuff actually is still in it at this point, and the aluminum foil served a couple of purposes for me. First, it gave me something new to take a photo of and (I thought) made the tutorial look more authentic. Second, by covering up the material, I didn't have to show any photos of the "slowly melting" pink stuff--which I wasn't sure I could pull of convincingly. Amanda and I actually had different visions for how we were going to pull off the melted look. I thought covering it up with aluminum foil would be easiest and more convincing. Amanda thought I should "melt" the pink stuff in a pot on the stove and pour the melted mess into the tray to dry and harden. But she was off on a trip working when I made this tutorial so I got my way. =)

The fork in the aluminum foil I did just because I thought it was funny. As if there was lasagna or something cooking and you didn't want the cheese to get crispy. =)

In steps 5 and 6--it's actually still real when I turned on my toaster oven* to 350 degrees and waited for it to warm up a bit. I wanted that orange glow to show that the toaster over really was on and quite warm. When it glowed sufficiently, I put the tray in and took a few photos. The pink stuff really is still in there, but as soon as my photo shoot was over (perhaps after about 1 minute), I turned off the toaster oven and removed the tray.

It's not until the tutorial gets to step 7 when the hoax really crosses from fact into complete fantasy. That's when I bring out the "melted" pink stuff. Since I didn't have any melted pink stuff--and I'm not even sure that it would melt (but I haven't eliminated the possibility either)--I needed something else. Something pink and liquid-ish. Anyone care to take a guess at what I did use? If you guess Pepto-Bismol, you guessed correctly. =) If you've got the runs, this concoction might help you out! But for carving purposes, it's absolutely terrible!

Here's the switcher-roo! The pink shavings have been
replaced with Pepto-Bismol--plus a few chunks of real
pink stuff to make it look "mostly" melted.
So I dumped out all of the pink shavings and filled up the tray with Pepto-Bismol. Then I threw in a small handful of real pink stuff to give it that "mostly" melted and lumpy look, mixed it in real good, then placed the aluminum foil behind it as if I had just opened it for the photo.

Removing real air bubbles from the Pepto-Bismol.
Next I wanted a photo of the "finished" product, so I used a fork to pull out most of the real pink shavings in the Pepto-Bismol. The smaller pieces that sank to the bottom I didn't worry about--you couldn't really see those. I was more worried about the bigger pieces that gave a lumpy appearance and that could actually be seen. But when it was done, I was a little concerned by the fact that the Pepto-Bismol had a TON of enormous air bubbles! It didn't look flat or carvable at all!

I did, in fact, try popping them with the end of a toothpick, but they were stubbornly resistant to popping, which is when I pulled out my spoon and started "skimming" the biggest bubbles off the surface. It looked pretty good in the photo, but if you really zoomed in closely, you'd see all sorts of smaller air bubbles I never did get.

I was almost done with the Pepto-Bismol. Before I dumped it out, though, I wanted to get Marjorie involved. I let the Pepto-Bismol tray set out overnight--mostly just to see what would happen--and a very thin, slight crust formed on it by morning. Which was an awesome effect! I thought it made the pink stuff look like it was already cooling (but hadn't cooled completely) giving it a sense of legitimacy, and even made it look less like the Pepto-Bismol that it really was.

Marjorie helps out! Leaving the Pepto-Bismol out overnight
left a thin layer of slightly hardened surface that's pretty clear
in this photo. It's actually an effect I really liked and wanted!
Which is why I used Marjorie to make a hole in it then
moved her to the side so the "hole" was quite obvious.

Here comes the second switcher-roo--the Pepto-Bismol-laced
pink stuff was switched out with strawberry-scented candle wax.
By step 10, I needed to show a "finished" product. The problem with Pepto-Bismol, as you might imagine, is that it's a liquid. It's always a liquid. It's a little hard to "pop" it out and have it look carvable. Amanda came to the rescue here, though--she found strawberry-scented candle wax that was just the right shade of pink.

So I dumped out the Pepto-Bismol (along with whatever pink shavings were still in it), cleaned up the tray, and dried it. Then I threw in the candle wax, put it on the stove, and started melting it. When the wax melted, it became a translucent red color, which looked nothing like the pink stuff, so I let it cool and harden a few hours before I took more photos. It also left the apartment smelling like strawberries for the next two days--which Amanda commented immediately upon walking in the door from the trip she was on. =)

And as you can see in the last photo of the tutorial, the candle wax just popped right out of the tray. No food release, no DEET. I was a little worried that it might stick to the tray, but fortunately, it didn't. Well, there was a tiny little section in the very middle of the tray that stuck, which is why I popped it out "a little bit" for my photo. I didn't want the part that stuck to the tray to show, so I covered the "mistake" with the "carving block." Then I took one last photo for the tutorial...

...a perfectly formed block of candle wax. =)
I hope you've enjoyed this "tutorial of a hoax." At least you can trust everything in this post is true! Right...? Is anyone still listening to me...? Hmm...

* No toaster ovens were harmed in the making of this hoax.

Sunday, March 31, 2013

When 100 Years Is Not Enough

This icon looks grainy only because
I've enlarged it so much. But next
to your name, it'll look beautiful!
I've heard your complaints about the 100-year premium memberships. "Why only 100 years?", you ask "Why not 200? Or 500? Or a THOUSAND?!"

The love for Atlas Quest shows no bounds! And at long last, I've worked up a 1000-year premium membership. It's our best deal EVER for premium membership!

For just $999, you get all the same perks as the 100 year members—the ability to list finds on unlisted boxes, listing custom locations on any traditional letterbox on Atlas Quest, access to the Premium Members Only board, eight tag options, and the list goes on! Not only that, you'll have exclusive access to wear a blue feather on your hat.

And if you order now, while supplies last, you'll receive a free bonus gift from us—an official Atlas Quest baseball cap! Absolutely free! (Not including shipping and handling.)

And a second bonus gift—an autographed copy of Mr. Tortuga's bestselling West Coast Trail book: A Tale of Two Trails. Absolutely free! (Not including shipping and handling.)

But wait! That's not all! If you order in the next 24 hours, we'll give you all this—the 1000 year premium membership, the blue feather, the AQ baseball cap, A Tale of Two Trails, and more—for just $499! That's less than 50 cents per year of premium membership—our best offer ever!

Already a premium member? No problem! We'll add your 1000 year premium membership to the end of your existing membership! You'll never have to worry about renewing again! And, at the end of the 1000 years, if you want to renew, you're guaranteed to receive the same low-low price of just $499 for another one thousand years! Considering inflation, that's practically FREE!

A deal like this may never come again! And if you act NOW, you'll also receive five—yes, FIVE!—Atlas Quest patches and another five Wassa Eye Bleach patches for free! (Not including shipping and handling.)

So act now!

Baking Your Own Carving Block!

Marjorie turned out to be NO help AT ALL....
*shaking head*
Perhaps you've noticed the devastation our community has experienced due to the poor quality of pink stuff. A pink stuff shortage--at least a shortage of the good pink stuff--is a fate I would not wish on my worst enemies!

Well, I've got good news for you. About a year ago, I happened to learn that the pink stuff can melt. I won't get into that murky little story, but it got me experimenting. I started saving the shavings from my carvings and asking Amanda to do the same. I just didn't want to waste the shavings and figured it would be great if I could somehow reuse them.

It took quite a few months to get enough shavings to have something to experiment with, though. And I'd get one test before I needed to wait a few more months before I had enough material to work another experiment.

A painstakingly slow process, to say the least!

Then came the bad pink stuff. I bought some, and continued my experiments. And the results were surprising--after baking the pink stuff and it re-hardened, it actually carved a lot better and became less brittle!

Anyhow, at long last, the tutorial for baking your own carving blocks is up and ready for your viewing pleasure! Not only will you now have something to do with all those shavings from your carves, but you can turn that bad carving stuff into some quality material!

Let us know how yours turns out on the message boards!

Friday, March 01, 2013

The Windy City!

An unusual selling point for this coffee shop--fully clothed baristas!
So, as most of the folks in the Chicago area already know, I dropped by their S.I.L.O. #7 event a couple of days ago. =) First, before I get into that.... Apparently, some folks thought my rant the other day was about this event--let me assure you, it was most certainly not. Every box I saw listed was listed absolutely correctly. Now, I'm not saying that EVERY box was listed correctly because I didn't look up the listings for every box to verify this, but of the ones I did see, they were all listed absolutely correct as far as I could tell. The Chicago folks, in my opinion, set a fine example of exactly how personal travelers and event boxes should be listed. =)

I wanted to post about the Chicago adventures of Amanda and Ryan, though, and now I'm going to. =)

Amanda and I headed out Friday morning, at about 3:00 in the morning to catch our flight to Chicago via Phoenix. Things got off to a bad start, however, when Amanda went to put some of her luggage into the car and notice she had a flat tire. "Go back to sleep," she told me.

Considering that I only went to sleep two hours earlier, I was happy to oblige and went back to sleep. =) Amanda called AAA and got them to switch out the flat for a pint-sized spare.

We missed our first flight out of Seattle and finally left for the airport a few hours later.

On our way out of town, I had Amanda stop by a coffee shop so I could take a photo of their sign on the roof. I saw it during my walk the day before, but my camera wasn't working and I couldn't get a photo of it then. I didn't know how long it would stay up there, so by golly, I took the photo while I could. =) There's a coffee shop in the Seattle area who had some baristas busted for doing more than serving up coffee--and this coffee shop put up on their message board that their coffee is full-flavored, and that their baristas were fully-clothed. It's an usual selling point and I wanted a photo of that! =)

We made it to Phoenix without any additional trouble, but our flight from Phoenix to Chicago was hit with weather delays. Apparently, the weather in Chicago had much to be desired and the air controllers weren't allowing flights to their non-fair city. So we muddled around the airport. I walked around the terminal a bit in an attempt to gather 10,000 steps on my pedometer. Since I started working on Walking4Fun.com, I've been carrying a pedometer, and I've done at least 10,000 steps every day since December 1st. Now I'm feeling kind of compelled to keep up the streak. So I left my bags with Amanda and walked up and down every concourse in the terminal. =)

Riding the "L" into Chicago
Finally, our flight departed, almost three hours late, and we were on our way to the Windy City!

Our arrival, about six hours later than we originally planned for, meant it was already dark so we headed straight to a hotel for the night. And wow, was Chicago cold. Temperature gauges that we saw seemed to hover around 20-22 degrees. Not to mention the layer of snow on everything. And--get this--all of the locals seemed to think it was GREAT weather! Hahahaha! =) Our hotel was located north of the city, about six miles from the event.

I usually let Amanda plan all these trips of ours--she's a serial planner while I'm more of a go-with-the-flow kind of guy--and she booked us on a gangster tour through Chicago--so the next morning, we headed into the city. We parked at the end of the red line and took the "L" into town.

Lunch at the Weber Grill! Giant grills included. =)
It started off well enough, but things went unexpectedly haywire when the train decided not to follow the red route. I still have no idea why. Even as the train continued on to stops that clearly were part of other colored lines, it would make announcements continuing to insist that we were on the red line. It started following the brown line stops--in reverse. Then the doors would open and the announcement, "This is the red line train to XYZ...." would start. I'd shake my head at Amanda. "It's still insisting we're on the red line!"

So it didn't get us to the stop we had planned on, but it got us into town. We pulled out our map, got our bearings, and started to walk in the direction of the start of the gangster tour.

Having arrived early, we made a couple of slight detours to see the rocks of the Tribune Tower. There are rocks from historic locations throughout the world embedded into the lower level of the building--including the White House, the World Trade Center in New York, the Great Pyramid of Egypt, Westminster Abbey, etc. A total of 136 rock fragments, and Amanda and I tried to find how many we had been to.
Who can't love a statue like this one? =)

Then we stopped at the Weber Grill, where everything with cooked with giant Weber Grills. Surprisingly, Amanda had never eaten here before. I was surprised because it sounds like just the kind of thing she would have enjoyed and she's been to Chicago a heck of a lot more often than I have!

And then it was to the rock 'n' roll McDonalds where our gangster tour started. That was fun. =) They drove us around in a bus showing us where serial killers used to run amok, took us off the bus to show us bullet holes in churches from the 1920s beer wars, and--of course, no gangster tour would be complete without a visit to where John Dillenger was gunned down by the FBI and where the Saint Valentine's Day massacre occurred. (The building where that occurred , however, is no longer there.)

By the end of that tour, the sun was setting and we worked our way back to the car following the red line to its end (and this time, it stopped at all of the stops it was supposed to!) and back to the hotel.

OMG! It's the rock 'n' roll McDonalds!
Stop... tickling... me.......

The next day was the big day of the event, and Amanda found a bike path that I could walk on that would take me most of the way to the restaurant of the event. So she dropped me off a few miles away--I would have walked all the way from the hotel, but I wouldn't have made it to the event in time if I did! And I worried the several inches of snow on the ground might slow down my usual quick pace.

The entire restaurant was filled with letterboxers!
(This is just one small section of the restaurant, I might add.
There's a lot more, but I couldn't get it all in one photo!)
I can't say enough nice things about the people I met here. They all made Amanda and me feel incredibly welcome! Thanks to Beetle for organizing the event, but I didn't actually get a photo of her. (FungusWoman, however, did upload a photo of her talking to me to the event's photo album.)

Tat2bob, I have to give special credit to, since he not only broke his leg while letterboxing (at least that's the story *I* heard!), but that didn't slow him down from coming out to the event either.

You can't be too careful when you're around a group of letterboxers....


After the stamping frenzy had come to an end and our meals were finished, everyone went off in their own direction. I decided to walk back to the hotel which had me stomping through snow late into the evening. I didn't make it back to the hotel until well after dark, which wasn't always easy when you're on unfamiliar roads, in the dark and without any maps. =)

But I survived. The next day, Amanda and I headed back to the airport, our adventures at an end. We did pick up a few cemetery boxes on our way back to the airport, then we flew together to Phoenix before we parted ways. Amanda continued to Seattle while I flew out to San Luis to visit my mom and get a badly-needed haircut. =)

And finally, I'm now back in Seattle, nearly a week after I left it. Back at work, and making (and breaking!) things.... =)

Thanks again to everyone who welcome Amanda and myself to Chicago! We had a blast!

Monday, February 25, 2013

The Letterboxing Police Are Out To Get You

There aren't a lot of rules on Atlas Quest, but there are a few of them. One, for instance, is that you are expected to follow any land manager policies when you plant a letterbox. It seems like a reasonable rule to follow. As letterboxers, I think we should project an image of responsibility and understanding to the rest of the world. We want land managers to support us, and respecting their rules and permit systems, annoying as they might be, is part of this.

For instance, the folks at Disney World have made it very clear that letterboxes are not allowed on their property. Don't complain to me that you don't like this rule--I didn't create this rule. But I will enforce it. I've posted here about that mis-adventure in the past, and I'll likely post about it again. The folks you need to talk to work at Disney. Get them to approve your box and you'll be able to list your boxes here. So hop to it. You probably won't succeed, but that's the only way I'll allow boxes to be listed at Disney World, period.

Another thing that's a big annoyance for people are boxes that are listed improperly--usually event boxes or personal travelers that get listed as traditional boxes, or multiple stamps in the same box being listed individually. These kinds of things clutter up search results and they will be fixed as they come to our attention.

Whine, cry, plead--it doesn't matter. The rules are quite clear--I write them directly into where boxes are added, and I'm not very sympathetic to those who can't or refuse to follow rules. If you don't like the rules, there's another letterboxing website you can use. However, they do have their own set of rules, so you'll need to be careful to follow their own rules.

As a whole, AQ is set up on the honor system. I happen to like the honor system. I'd like to keep the honor system. However, if this is too big of a burden to bear, there's another system that can be implemented. That's how the main geocaching website works: You need to get your boxes approved before they'll be added to AQ. This would help solve a lot of problems with incorrectly listed and deliberately disrespected land manager policies, but I will implement such a system if I feel it becomes necessary.

I don't care if you try to justify invalid listings by pointing to examples of incorrectly listed boxes. Being an honor system, there are people who will take advantage of that and plant boxes legally and incorrectly, and admins will "fix" these listings as they come to our attention. But just because some of them slip through does not make it okay or justified for you to do the same. It's a weak argument, and the kind of excuse a grade school student would give. "But Miss Marple, Jimmy beat up the kid yesterday, so why shouldn't I be allowed to do so today?" Sounds absurd, don't you think? It happens a lot when it comes to incorrectly listed boxes, though, and I'll say this right now: It's not an excuse that will work.

So let's review:

* If you want to plant a box somewhere, check the Land Manager's Policies on letterboxing. You are expected to follow them, and if you do not, your box may be deleted with little or no warning at any time if it comes to the attention of an administrator.
* A traditional letterbox is one that is hidden and requires clues for most people people to find. The clues do not have to be listed on AQ to count as clues, and statements such as "look on the table" and such do not count as clues since most people will likely find those boxes even without your half-hearted clues since the boxes aren't actually hidden.
* An event box is typically left out in the open--usually at events--that anyone who happens across is welcome to sign into and stamp. These may or may not have clues involved. Usually, if they have clues, it's because there's a lock or some sort of trick to access the stamp, but the box itself isn't actually hidden. (Hidden in "plain sight" does not count as "hidden.")
* A personal traveler is typically kept in your possession at all times and people who want it must find you in order to acquire the box. These often do have a clue--some sort of requirement before you can stamp in.
* Atlas Quest supports boxes, not stamps. From a practical standpoint, I don't bother wasting my time enforcing this rule for anything except traditional boxes, but technically speaking, an event box with multiple stamps should only be listed on AQ as one box. I know darned well that most people list every stamp in the box, and while I don't enforce this rule for event boxes (for now), I think it sets a bad example for traditional boxes (which I will enforce), and  if the day comes when I do decide to enforce this rule, as long as you're following the rules, it's not something you'll have to worry about in the future.
* Do not list boxes publicly that have not yet been planted. It clutters up the search results with boxes people can't find and such listing can and will be deleted as we come across them. There is a special type called reserved that you can use to "pre-list" boxes ahead of time. This keeps them out of the search results of other people until the box is ready to go live.
* If you create an event stamp that you later use as a traditional box or vice-versa, or a personal traveler that sometimes works as an event box, or whatever variation of the "it used to be X and now it's a Y" type of box, the proper way to list these types of situations is to list every type of box it was used as so people can record the type of box that they actually found. List it as both a traditional box and an event box (if that's what they were), so people who found it as a traditional box can record it as a traditional box and those who found it as an event box can record it as an event box. And retire the type that's its no longer being used as--obviously, both an event box and a traditional box can't be active at the same time, and they shouldn't be.

Follow these rules. If you see friends who aren't following these rules, encourage them to do so. If these became a big enough issue, I will implement options so all new listings will require moderators to approve all new box listings--and I don't think anyone wants to see that happening.

Saturday, February 09, 2013

Photo Quality

Before
As most of you have probably noticed, I've been working on a new website, Walking4Fun.com. Creating this website from scratch went a heck of a lot quicker than creating AQ from scratch, and one of the reasons is because I use a lot of the same code on both websites. In fact, all of the core, generic code is the same for all of my websites--which includes TheSodaCanStove.com and a new website I've been developing for a pizza place. (That one isn't up, however, so I'm not posting a link to it.)

Code reuse is a wonderful thing because it makes development go faster. And if I find and fix an error in one location, the fix magically works for all of the other locations as well. Or if I add a new feature or improvement to this core code, all of the other websites can also benefit from it.

Consequently, you mind notice some "cross-pollination" between websites. Work on one invariable causes improvements in the others.

And today's (admittedly small) improvement on AQ comes from Walking 4 Fun. For those of you who haven't heard about it, it's a site that allows you to virtually hike the Pacific Crest Trail and Camino de Santiago. You track how much you walk each day--around town, around the office, and wherever your feet should carry you--then enter it into the website at the end of the day. It'll show where you would be on one of these famous trails had you done your steps on there, along with photos of all of the places you would have passed that day. It's not easy to see how far a mile of walking here and there can really add up, but you'll see it on this website.

After
So I wanted to create a promotional kind of link that would display one image among the thousands that are on this website--along with what trail it came from and where on the trail it was taken. (This is working now--that's what you see at the top of the right-hand column of this blog post!)

Not a big deal--just a bit of graphic manipulation.

During the process, I needed the photo shrunk down from what was on the website, and I had conveniently already created a function in the core code that could do this. I pass in the photo, the maximum width or height I want it to be, and it returns the properly resized image.

The first issue was that I found a bug. The returned image was smaller, but it wasn't the correct size. I found the error and fixed it, and the fix went up on AQ as well. It was a relatively minor bug, though. Not something most people would notice. (Heck, *I* didn't even notice it until now, and I've been using this code for years!)

The other thing that bothered me was that the code depended on a function call for the actual process of resizing the photo that wasn't very good. If you good a super high resolution photo and shrunk it down a lot, it looked pixelated and ugly. I didn't really know of a good way around this problem, though, and just lived with it.

Well, in the process of working on this feature for Walking 4 Fun, I was scrolling through a list of functions available to manipulate images and discovered that there was a different option available to resize photos--and this one smoothly interpolates pixel values which is what I've always wanted the resize to do! It just looks better!

So I updated the code to use this new option instead and tried a few test images on my development machine--some uploaded with the old function and some uploaded with the new function. And without a doubt, the new stuff looks so much better!

So I've worked the update into Walking 4 Fun, AQ, and the pizza website. (It also works on the soda can stove website, but there aren't any images that I manipulate programmatically there--not at the moment, at least!)

What's this mean for you? Well, not much for the most part. Images uploaded as clues, signature stamps, or event photos will generally look better now. Old images still look blocky and pixelated, though. If you have some older images that have this problem, try uploading new images to replace them with.

In the past, I've always recommended that you "pre-shrink" your photos down to at most 1,000 pixels to a side to help reduce that pixelated look, but with this update, that no longer applies. The maximum file sizes haven't changed so if you take some really high-resolution photos, you could still hit that limit and might need to shrink down the photo to a smaller size anyhow. But that's just a file size limit--not a quality control issue which was where my recommendation originally came from! =)

There are some more tricks and techniques I learned while working on Walking 4 Fun, but those haven't made their way onto AQ as of yet. They will, though... There's definitely more coming down the pipeline! But I'm pretty excited about the dramatic improvements in photo quality. =)

The photos at the top of the blog post are of me with Nancy, MaryK, and Jeannie at the train station in Santiago that I did some of my tests with. The original file was 4000 pixels across and 3000 pixels tall, and I wanted to see how it would look of AQ shrunk it down to a "standard" image size that had a width of 300 pixels--over 90% smaller than the original file. The first photo was how the old code shrunk the file, while the second photo is the newly updated version of the code. You might have to get your face really close to the monitor to really see how bad that first photo is and how much better that second one is, but the difference is remarkable!

AQ would also create thumbnail images for every uploaded file and those were a maximum of 100 pixels to a side--a whopping 98% reduction in size! The difference in quality is even more stunning!

Before
After

Thursday, January 03, 2013

When spammers attack!

If you logged into AQ this morning, you might have received a "spam attack." They happen on occasion, but fortunately not often. I thought y'all might be interested in what happens on our end of things when spammers attack!!!!

If you ever do get spammed on AQ though the AQ mail system, use the "Report as Spam" button. It's located immediately below the message, on the right.

When you use that button, this is what happens on our end of things--and the reason us admins are do darned fond of people using that button. It makes our job to managing spammers a lot easier and faster!

The first thing that it does is alerts us to a spam problem. It does this by creating a giant button with bright red letters in the upper-left corner of the page for us. It's all but impossible for us to miss this. It doesn't matter what we're doing on the website--reading message boards, AQ mail, listing boxes.... It's a hard button to overlook! And it's not just something that I see--but all of the admins on AQ will see it until the problem is handled. Here's what it looked like when I got to AQ this morning:

The spam alert jumps into action!

So before I even read a single message board, before I read a single AQ mail, before I knew anything else, I knew there was a spamming issue that I needed to investigate.

When we click that button, we get all sorts of information about the reported spam and spammer!

The spam report. Click on this image to see it in full size--I shrunk this
view to better fit on the blog.

The top of the page starts with the "spam summary"--a list of all of the reported spam. I can immediately see that there have been nine spams reported (actual spam counts are usually much higher--most people don't report spam at all!), all messages from the same person, all with the same subject, and all sent within a half hour of each other. It also gives me links to examine a specific spam report (by default, it'll show me the most recent report, but clicking on the report number allows me to see other reports), and a link to read the spam if I felt it was necessary.

Below that is the actual AQ message that's being reported as spam. By default, it shows the most recent report--at the time I logged in, it was a spam sent to (and reported by) Road Junkies. And, looking at it, I agree completely--definitely a spammer at work. (I blurred out the email address--no reason to give the spammer the satisfaction of having their email address more widely distributed!)

Below that, it gives me more information about the spammer including other messages they've sent recently (likely more spam that hasn't yet been reported), account information (spammers are often  new members with little or no information on their account), the IP addresses they've used recently (this one is from Dakar, Senegal--one of the biggest sources of AQ spammers), and their most commonly used IP addresses (which, in this case, is the same as their more recently used IP address).

In this case, everything all matches up--spammer through and through.

AQ tends to suffer from two distinctly different types of spammers. This is the first kind. Someone, usually from Senegal, creates an AQ account and immediately starts firing off spam to as many people as they can get away with on AQ.

The second kind are from genuine members of AQ who've had their email account hijacked. Since it's possible to send AQ mail through their email system, these spammer will send a message to everyone in address book of the hijacked account--including to AQ members. In this case, there usually aren't very many spams--perhaps four or five typically--since the spammer only knows people from the address book of the account they hijacked. Or rather, only four or five sent to AQ. Their address book might have hundreds of email accounts, but only a small handful lead to AQ and there's nothing I can do about the others in any case.

In each of those cases, how to handle the spam is very different. The first guy, I just don't want on AQ all. Ban their IP address, freeze their account, delete every AQ mail message they've ever sent, etc. The whole shebang!

In the second case, when the spam comes from a legitimate member of AQ but through a hijacked email account, I won't ban the IP address or freeze their account, but I will delete all of the spam and remove their email address from their account. Since AQ only accepts mail from "known" email addresses, by removing their email address from their account information, their email address becomes "unknown" and AQ refuses to accept anything coming from their account. Then I'll send them an AQ mail to tell them their email account has been hijacked and they need to get control over it again before they add their email address to AQ again.

That's a lot of stuff to do manually, though, so I made it easy for us admins to handle such situations. Below the spam report, it gives us options:


The three main things for me to worry about are what to do about the IP address, what to do about the AQ mail they sent, and what to do with the spammer's account. By default, the actions won't do anything. I don't want to accidentally go banning IP addresses by accident! But I did write some code so AQ can try to determine what kind of spammer is involved and even include suggestions about how to handle the spam. In the spam event of this morning, I agree with the suggestions of banning the IP address and deleting AQ mail from within the past 24 hours (which happens to be all of the AQ mail they've ever sent since their account wasn't even 24 hours old).  And I wanted to freeze the account, so I clicked those options, clicked "action", and with that click of the button, I blocked the IP address, deleting all the AQ mail they ever sent (at least from AQ's servers--forwarded AQ mail to real email addresses I can't do anything about), and froze their account.

You might be a little curious about all of those different options under "Delete AQ Mail." The main reason there are so many options in that category is because of hijacked email accounts. Hijacked accounts have usually sent legitimate AQ mail in the past, which I don't want to delete. So I have a few options to try to filter the gems from the dirt. Most of the time, spam was spent recently, which is why there are the "24 hour" limits. Older messages that haven't been flagged as spam usually aren't.

Spammers also tend to use the same subject and/or message over and over again. Generic form letters. It's not worth their effort to hand-craft personalized messages when you want to spam hundreds or thousands of people! If for some reason spammer emails have been mingled in with legitimate AQ mail, often times I can target any message with the same subject as the reported spam, easily deleting just the spams and avoiding the legitimate messages.

And, if a spam appeared to be an isolated incident, I can delete just that message and no others.

Once I've handled a spammer and deleted all of the spam they mailed out, my spam report automatically figures that out. So although nine people actually clicked that "report as spam" button this morning, I don't have to wade through eight more reports after that. The other eight that had reported a spam problem had been taken care of at the same time, and AQ is smart enough to realize that causing the "spam alert" button will now go away.

From the time an admin logs in and sees the spam alert, it can take mere seconds to process and ban the spammer's IP address, delete all of the spam, and freeze their account using this little setup. I actually spent the better part of a week working on this feature--one of those little things that you guys will never actually use yourself, but which you all benefit from since it makes things a lot easier and faster for us to deal with rouge spammers.

By comparison, when you forward spam to me or report it on the message boards, this is what likely happens:

* I usually read message boards before AQ mail, so I might be reading them for several minutes before I notice a post about spammers. There's no way for AQ to bring such a message to my attention. If nobody has posted about it, it might be even longer before I got to my AQ mail and notice a message about a spammer there. Eventually I'll get the message, but it'll certainly take a lot longer!
* When I do finally get the message, there are admin tools I've built that allow me to look up information about the spammer, freeze their account, delete their messages, etc., but they aren't integrated into a single, easy-to-use page. So I actually find it faster and easier to log into the account of the person who reported the spam, click the "Report as Spam" button myself, then log back into my administrative account and actually handle the problem as seen above.

Consequently, I'm big on pushing the use of that "report as spam" button. You'll get results faster--more people will get the report (all admins, instead of just Wassa or myself), it's much more obvious to us than other ways of reporting spam so one of us will likely notice the problem sooner, and it's a lot faster for us to handle through that integrated spam-handling page.

So there's your little behind the scenes tour of what happens when a spammer is found on AQ. I hope you enjoyed the tour and maybe learned a little about how things work! =)