Monday, February 19, 2024

The Sun and Moon Tango!

It's that time of year again.... eclipse time! On April 8th, a solar eclipse will cross through North America, cutting through Mexico and entering the United States in Texas, sweeping through the country out toward Maine and even a tiny little bit in Canada.

And it's not just any solar eclipse, but this is the much more rare and far more spectacular total solar eclipse! It is, perhaps, the most most amazing and heavenly natural phenomenon you'll ever see! If you don't believe me, ask someone who witnessed the last one in the United States back in 2017. (I have a hunch that a large number of people who saw the 2017 eclipse might make a special point of checking out this year's eclipse!)

During totality, on that narrow line where the moon completely covers the surface of the moon, it is safe to view the eclipse with absolutely no eye protected at all. Depending on your exact location, the amount of time you can watch without eye protection is about 4 1/2 minutes or less. The closer to Mexico you are, the longer totality will last. But the couple of hours leading up to totality and the couple of hours after totality, when it is only a partial eclipse, you'll need eye protection, and these eclipse glasses can get the job done.

And we've got officially-sanctioned eclipse glasses for sale in the AQ Marketplace!

It's well worth making a special trip to see this eclipse if you've never stood in the path of totality before. It's really one of those experiences that everyone should experience at least once your life, and the next total solar eclipse will not happen in the United States for another TWENTY YEARS! Even then it barely grazes the country near North Dakota. (Although one year after that, on August 12, 2045, we'll get a good total solar eclipse that will span from coast-to-coast. Disney, I'm sure, is already planning major festivities in Orlando for the event!) But regardless, it'll be a long wait to see another total solar eclipse in our proverbial backyards, so now's the time to experience it!

If you saw the annular eclipse last October and thought, "It was interesting, but not that cool," totality is a totally different experience! It's night and day different! An annular eclipse is still quite interesting and fun to watch (I did!), but don't think for a second that you got 99% of the experience of totality. You got maybe 5% of the experience! Maybe less. Heck, there were people around us during the annular eclipse who didn't even seem to realize that an eclipse was going on but I can assure you--nobody overlooks a total solar eclipse! 

Although you can only see totality from a very narrow strip of area cutting through America, a partial eclipse will still be visible from the entire contiguous United States, so the eclipse glasses can still be useful for pretty much everyone. It won't be the eye-popping amazing experience of totality, but if you'd like to watch some of the eclipse anyhow.... you'll need eye protection, and we've got it. =)

Assuming I don't sell out of the eclipse glasses before then, I'll stop selling them on AQ about a week before the eclipse so (hopefully) all orders have a chance to make it to their destinations before the main event. So they'll only be available in the AQ marketplace for just over a month.... but I'd urge you to order as early as possible. If your order doesn't arrive as quickly as expected, I can still send out a replacement order in time for the eclipse. If you order only a week before the event and the order gets lost in the mail.... it might be too late to get a new order in time!

Be ready for that moment when the sun and moon dance the tango! Order your eclipse glasses today!

Okay, I'll have to admit, I had AI generate an image of the sun and moon dancing the salsa to get this image.... but the first image was the AI's take on dancing the tango! AI is fun.... =)


Thursday, February 15, 2024

GPS End Points

Wishing you had a GPS right about now, eh?
Photo submitted by Dawnkey.

If you log into Atlas Quest and check out one of your boxes, you might notice this new attribute that AQ will record called the "GPS End Point". There is one for every traditional box on AQ. Or rather, it's available for every traditional box on AQ.

Don't worry, I'm not turning into this hobby into a geocache hybrid! You still have to follow whatever clues the owner of the box provides.

But it did occur to me that it might be handy to record the precise GPS coordinates of where your letterboxes are located. 

  • If the landmarks in your clues become impossible to follow (for instance, a forest fire swept through the area or a trail was re-routed), there would still be a way to find and check up on the box.
  • If someone looks for your box but doesn't find it, they could send you the precise GPS coordinates of where they looked and you can check if they were actually looking in the right place.
  • If the worst should happen and you pass away, it would allow anyone who adopted your box to check up on it even if the clues were difficult or impossible to follow.
  • You might forget precisely where you planted the box and have trouble finding it later because the landmarks have changed.

Basically, it's kind of a "backup" for your clues, and might make it easier to figure out if someone was actually looking in the correct place for your box if there was otherwise some uncertainty in the matter.

The only people who can see these coordinates are the owner and planters of the letterbox--not the people who are looking for it. Even the carvers of the stamps for the box can't see the coordinates--just those with "admin powers" over the box.

And adding coordinates is completely optional in any case. Obviously, there's no way AQ can go back and retroactively add coordinates to the hundreds of thousands of boxes that have been listed over the years and most of you likely have never kept track of this information either. (I know I haven't, although there are a couple of boxes I have planted where that information would definitely be useful right now!)

So if you notice information on your boxes about the "GPS end point", it'll be empty by default. You can edit the box and add it if you want--and know the coordinates of the actual location of the letterbox.

The coordinate is attached to individual boxes in a series since, obviously, different boxes will have different coordinates--even those in the same series. (At least that's how boxes should be listed, although I do know that people list boxes incorrectly all the time for a variety of reasons. I'll fix those when I come across them, but if you have two stamps with the same GPS coordinates, they should be counted as one box in a series!)

Anyhow, I hope some of you find this helpful! =)

Happy trails!

Crisis averted! Dawnkey and 4EyesMcGee find their treasure!
Photo submitted by Dawnkey


Sunday, February 11, 2024

Bored With AI

So I just updated the I... Am... Soooo... Bored... widget yet again. That wasn't the plan. I was done. It was finished. Until... I blogged about it. One of the endearing quirks about the widget is the random phrase about "maybe your boredom vanish like something on a something day".

That little "feature" was a result of AI. I was chatting with the Bing chatbot, asking for suggestions for things to do if I'm bored. I was looking for ideas to add to the widget, and it fired off a host of suggestions from "looking for an invisible cow" to "going for a walk." After the list of suggestions, though, it signed off with: "May your boredom vanish like a ninja in a misty forest!" or something like that, which I thought was wonderful and hilarious. So I grabbed that and added it to the end of the widget as a "sign off." I also decided to spice it up even more by adding "on a moonless night" to the line.

May your boredom vanish like a ninja in a misty forest on a moonless night!

May your boredom vanish like a ninja in a misty forest on a moonless night!
 

How can you not love a quote like that? I still needed to work on the main functionality, but I wanted to come back to that and maybe add a few other lines to make it interesting. Pick a random sign-off from several choices.

I invited Wassa into my idea for this widget early, and gave him a sneak peak into its development, and he said that he loved the line about the ninja, but thought there should be more of them, picked at random. Great minds, right? =) He said he'd think about it and give me a few more options.

Oh, Wassa.... You don't need to hurt yourself thinking about it.... This, I knew, was the kind of stuff where AI shined. So I went back to the chatbot and asked it to create one hundred alternative lines that were fun and silly in the style of "May your boredom vanish like a ninja in a misty forest on a moonless night" and got back a lot of surprisingly good answers.

I shared the resulting list with Wassa, and he seemed a little disappointed that AI might put him out of a job. "No," I consoled him, "it will just make you faster and more effective...."

Not all of the results were great. Some were kind of lame. Others made no sense at all. Some had grammatical errors. Some I could tweak to make them even better. But it gave a solid starting point for me to work with.

After going through them all, throwing out the bad ones and fixing others, I was left with a list of 70 alternatives. Then I worked them into the widget. It was great. Wassa loved it too.

I also used AI to create the image of the sloth that goes with the widget. I wanted to use a sloth because they always look so slow and bored, and it seemed like just the kind of animal that would love a boring widget. There was nothing particularly interesting about the image, though--just a sloth in a tree. I didn't even tell AI that I wanted a three-toed sloth (but that was what I was secretly hoping for.)

Anyhow, when it came time to announce the launch of the widget, I typed up the blog post (the previous post in this blog), and I wanted to sign off with the original silly sign-off from the widget: May your boredom vanish like a ninja in a misty forest on a moonless night!

And that was going to be it.... but then I felt like I needed one last image to use at the end of the post. I was going to find some random letterboxing photo to use, but then I thought an image of an actual ninja entering a misty forest on a moonless night would be even better! But I'd never find an image like that online to use. Except.... I bet AI could create such an image!!!

So I went back to the Bing chatbot and asked it to create such an image. In keeping with the sloth logo for the widget, I told it to make the ninja a sloth dressed as a ninja. Why not? Shoot for the moon, right? It could be hilarious! =)

The images it returned were gorgeous and hilarious. I loved them! They did have one small problem with them, however. They all had a full moon in the background. It would give me four images from my prompt, and every one of them had a full moon in the background. No, chatbot! Bad chatbot! "NO MOON" I told it!

For the life of me, I could not get the AI
to create images without a moon in the background!

And it replied how sorry it was that it misunderstood me, but that it was glad we could work through the misunderstanding and gave me four more images of a ninja entering a misty forest. But again, the moon was in every single image. Argh!!!

AI is amazingly talented and stupid at the same time. The quote clearly says it's a moonless night. I can't have a moon in the photo!

I tried a few other ways to entice the AI to remove the moon, but I couldn't seem to make it understand. I tried a "new moon" and a "dark sky with stars", but nothing worked. The AI kept adding in a stupid moon.

But finally! It returned an image with a moon, but this time, the moon was against a clear background of the sky rather than through the complex branches of a forest and I thought, that would be easy to digitally edit out. And that's what I finally did. 

When AI gave me this image, it still included the moon. But it wasn't covered with trees like all the others and I knew I could edit the moon out of this one. Finally! Success!

I loved the final image. A sloth, dressed as a ninja, entering a misty forest on a moonless night. That would never have happened without the help of AI.

I loved it so much, in fact, I thought it would be awesome if I had AI create images for all of the 70 quotes that were available, and displayed the images along with the quotes directly in the widget. No, no... I had more important things I needed to work on. I couldn't create 70 images to go with the quotes. I didn't have time for that.

I resisted for all about two hours before finally caving in and starting to create images based on the quotes. 

Some of them were very fast and easy. One of my favorites, a penguin sliding down a snowy hill on a sunny day, generated an amazing image right out of the starting gate. The AI nailed that perfectly on my very first prompt. I didn't have to edit the image at all either.

AI nailed it on my very first prompt!


Other prompts were a bit more problematic....

The AI was very difficult to work with whenever the image tended to be "darker". For instance, I needed an image of a dead body at the bottom of a mine shaft filled with noxious gases, but the AI was adamant about not creating images with dead bodies in them. ("Come on, I told it, it doesn't even have to be lifelike!" It failed to see the humor or irony in that statement.)

So then I tried to "trick" it into creating something kind of like a dead body. It had no problem creating people in a mine shaft with noxious fumes--but they were rescuers with air tanks on their backs. So I tried asking the AI to do the same image, but make it look like one of the rescuers had slipped and fell, and instead of being a rescuer, could he be a rescuee? 

I never did get a great image out of that, but I finally got something that at least "kindof" worked. There was one obvious flaw where there was a boot coming out of his sleeve where his hand was supposed to be, but I kind of found that funny and decided to leave it in. At least anyone looking carefully at the image would know it was an AI generated image!

Can you spot the obvious AI flaw in this image? =)

I knew the quote about boredom washing away like a bloodstain on a murder weapon was going to be a difficult pill for the AI to swallow even before I typed in the first prompt, so I started thinking about how to get something close to what I was thinking without saying it in so many words. Finally I tried prompting it to create a knife covered with "cranberry" stains being washed off in a sink. And... .well, they're definitely cranberries in the AI-generated image, but if you squint and don't look too closely, it could possibly look like clumpy lumps of blood. Good enough! And I moved on.... =)

Cranberries... blood... they're basically the same thing, right? =)
It's a pretty disturbing image either way!

I had trouble with the line about discarding a card from a losing poker hand. The AI didn't seem to discriminate against gambling, but rather, it was the cards themselves. Every image it generated always had an ace of spades being discarded--which doesn't look like a bad card! Finally I explicitly told it to change the card to a five of hearts. What can you do with a five of hearts? But it turns out, AI has trouble counting. The card was a 5, but only included 4 hearts on it. *sigh* But there was a big blank space between then, so I knew I could copy one of the other hearts and copy and paste a 5th heart into that empty space. Problem solved. On to the next quote!

The line about a tourist being lost in a big city without a map was surprisingly difficult to generate as well because the AI kept adding tourists WITH a map. "NO MAP!" I would tell it, but then it would generate four more images, all of them with a lost-looking tourist looking at a map. Nothing I said seemed to get rid of that map.

Then I hit upon the idea of what if I could get the AI to turn the map into something else. So I added the note about the lost tourist holding a "wildlife guide", and that finally worked. Finally got an image of a lost tourist that wasn't holding a map anymore--and a wildlife guide wasn't going to includes maps for the big city, so that wasn't going to help him!

Yeah, you aren't going to find the Chrysler Building with that wildlife guide, buddy! (I'm also amused at how AI spells everything with random letters whenever text should go somewhere.)

Another problematic line was the one about a match burning in a fireplace of an apartment complex that was on fire. "This is a bit disturbing," the AI replied. "Is this for safety reasons or are you thinking about arson." *sigh* "No, I am not an arsonist," I tried to assure it. I really hope the authorities aren't monitoring my Internet usage. This would be a difficult one to explain!

I eventually gave up trying to create an apartment complex that was on fire--I didn't seem to get anywhere with that line of requests--and focused on the match in the fireplace part of the line, which the AI was happy to create.

Having a muscle relaxing on a massage chair on the beach, for some odd reason, was something that the AI was not willing to create. Massage chairs and a beach it was fine with, but a muscle--apparently--was a step too far. I thought about trying to digitally edit the image to add a muscle to an empty massage chair on a beach, but I wasn't even really sure what a free-standing muscle should look like. A steak?

Then I wondered what would happen if I changed "muscle" to "mussel", and the AI had no problem with that. Sure, it could create an image of a mussel in a massage chair on a beach. And the image was hilariously wonderful! So I changed the quote to match the new photo. That was the only line where I edited the line to match the photo rather than the photo to match the line.

A mussel, relaxing on a massage chair on a tropical beach. =)

There were a couple of quotes about boredom disappearing like a sinking ship, but the AI was dead set against making images of any ships actually in the process of sinking. I eventually settled on some ships in stormy weather that "could" sink if the image were a video that could play. =)

Annoyingly, however, the chatbot would say that it had no problem creating an image of a sinking ship, but then only provide images of non-sinking ships! "No, that's not what I asked for," I insisted. It didn't help.

The chatbot might have had a problem with creating images of sinking ships, but it clearly has no love for snowmen soaking in a hot spring. It gave me an image of that without any fuss at all.

Another quote I had problems with was a broken glass of wine on a cobblestone street during an earthquake. The cobblestone street and the earthquake weren't issues, but the broken glass of wine was a challenge. AI kept wanting to create unbroken glasses, and the rare time I got it to create broken glasses, it looked horrible--as if it didn't know how to draw broken glass. I finally gave up and just accepted an unbroken glass, but at least it was tilted over on its side and the wine was spilling out.

Rest assure, in case of an earthquake, wine glasses are actually indestructible! The wine might spill out, but the glass won't break!

The last image I had a lot of trouble was the zombie that was decapitated and bludgeoned to death. I knew this was going to be a difficult one before I even typed in the first prompt. I decided to skip with trying to have it decapitated and bludgeoned to death knowing the AI wouldn't do either of those things, but maybe a dead zombie laying on the ground was sufficient. Depending on the image I got, maybe I could even digitally remove the head or deform it into something that looked bludgeoned.

I just couldn't make it work, though. Even getting the AI to generate a zombie was often difficult--but it seemed to help if I asked for it to be a "cartoon zombie". ("It doesn't have to look real!") I tried getting the AI to create an image of a zombie "laying down for a nap"--anything that might look like a dead zombie--but to no avail. I couldn't make anything work.

Finally I just took a cartoon-ish zombie with no background at all and rotated the image sideways, then had AI generate a background of a forest with a cartoon style. (I wanted the background to fit the cartoon-look of the zombie.) Then plopped the zombie onto it in my image editor. It looks horrible and is perhaps the least satisfying image of them since it looks so horribly photoshopped.

Arguably the worst of the AI-generated images (two AI-generated images in this case) that I decided to use anyhow.

There were a few quotes that I just couldn't create anything that was remotely funny or interesting: like Richard Nixon resigning in disgrace. For the life of me, the AI would not create any sort of image resembling Richard Nixon. It didn't matter if it looked like a cartoon or not. I tried describing Richard Nixon's appearance rather than use his name directly, but the images just didn't look enough like Richard Nixon to work. I finally gave up and decided it wasn't that funny of a line anyhow and threw it out completely.

There was one other line that I added about "May your boredom be extinguished like the fire on your nipples after a prank-gone-wrong!" and I was pretty sure the AI was not going to create an image for me of two nipples that were on fire, but fortunately, I had my own image for that. That was the only line I didn't use AI to create an image. =)

 

Anyhow... after getting images for all the funny quotes, I updated the code to use them and uploaded them to the live site, and now you can see them all if you refresh the widget enough. If you dare....

You might think that this widget was a total waste of my time, and perhaps you're right. But I have to admit, I found it very useful learning how to harness the power of AI to help create it. AI influenced so much of this widget! It helped with the suggestions for things to do if you're bored. It created the spinning wheel. It helped create the amusing lines about your boredom vanishing like a ninja in a misty forest on a moonless night--then helped create the images to describe those lines!

AI had its limitations, for sure, but it was an enormously educational experience for me. =)

If you want to see the rest of the AI-generated images.... you'll just have to install the widget and refresh it a whole bunch of times! Happy trails!

Saturday, February 10, 2024

Bored? Want to waste a little time?

"I am soooo bored, I might take a nap."

I know what you're thinking.... how can anyone be bored with all those letterboxes left to be found? And you make a good point, but it still happens! Maybe it's late at night and your eyes are blurry from carving by the dim light with a magnifying class. But somehow, someway, you wind up bored with nothing to do.

AQ has the solution! Yes, there's a new widget called the I... Am... Soooo.... Bored... widget, and it'll suggest random things that you can do!

They might be silly, they might be difficult, they might be expensive or otherwise impractical, but these aren't things you have to do--just suggestions for things you might want to do. And if you don't like a suggestion, just spin the wheel and check out a different one!

For instance, here's a few suggestions you might get:

  • Type your full name with your nose.
  • uʍop ǝpᴉsdn pɐǝɹ oʇ uɹɐǝ˥
  • Write a note of appreciation to someone
  • Or, perhaps my favorite: Go for a walk

If that isn't convincing you, it'll also mention that Wassa has been helping with testing and suggestions, so the widget is officially Wassa approved with such ringing endorsements as "I'm kinda loving this stupid little project" and "I find it oddly compelling, overall." With endorsements like that, how can you say no?!

It will be a premium member perk because really, it's not needed. Like, at all.... For anyone. Just a little fun that premium members help make possible.

Ready to check out the latest and greatest widget ever? Go to the Add Widgets section of My Page and find the Bored widget. You won't be disappointed! (But if you are, just do some of the activities it suggests and you'll forget all about being disappointed.)

May your boredom vanish like a ninja into a misty forest on a moonless night!

"You can't see me..."


Thursday, January 18, 2024

The JavaScript Update

Pokey Joe,
photo submitted
by Happy Hyper Hikers

So I took AQ down for another Big Update. And, of course, some of you might ask.... what changed?

For the most part... not much. That was the plan too. =)

Long story short.... you can move widgets on My Page and sort people in trackers or boxes in a series with your smartphone now! Woo-who! =)

For the long version of the story, keep reading.... ;o)

Last year, I got an email from Google saying that the Google Maps on AQ will stop working. Definitely and definitively. They'll just stop working sometime in May at the very latest, and the reason has to do with a decision I made about 20 years ago. (Twenty years?!)

You see, I've never really known much JavaScript (or JS for short), and when I needed JavaScript to do a few tasks, I started using a JS library known as Prototype.

It's cool. It allowed me to create stuff like My Page--which uses all sorts of features that are enabled with Prototype. Opening and closing widgets, moving them around, etc.

BUT--apparently, Prototype is going to break Google Maps.

And at first I thought, "No problem. I'll just update to the latest version of Prototype. I'm sure whatever it is causing the problem is going to be fixed. After all, everybody wants Google Maps to keep working, right?"

And it had probably been about a decade since I've updated it. Why bother when it keeps working so well?

But when I went to look it up, I discovered that the JS library had not been updated at all for nearly a decade! The project, apparently, is all but dead. I can't just version my way out of this problem.

And somehow, I figured a number of you guys might be upset if I just let Google Maps stop working.

Soo..... Hmm..... I could try updating Prototype myself, but that's way beyond my capabilities.

There's another JS library known as jQuery. I didn't use jQuery originally because when AQ started, it didn't exist. It had, however, taken the world by storm and is by far the most used JS library out there. I think over 50% of websites actually use it. Maybe I should switch to using that?

Ugh, but then I'd have to learn all the nitty gritty details about how that works. What if this kind of problem shows up again in another 20 years?

There was another option, though.... why don't I just create my own mini-JavaScript library? There are a number of advantages in just ditching the established libraries. Mine would be much smaller (and therefore faster to load and run). I wouldn't have to add all the stuff that needs to be there for millions of people to use. I just need the stuff that *I* need to use! And if I use my own code, I can update it as often and whenever I needed. And I'll understand exactly how all it works.

But this meant.... I really needed to learn JavaScript in a fair amount of depth.

So I studied and learned.

On my development machine, I started updating small things--like the "here" button on location-based searches. Then progressively worked up to larger and more complex tasks.

One of the last things I dived into was drag-and-drop. I knew that would be complex, and the height of complexity would be My Page. I shuttered just thinking about how I would make My Page work so well without a library to do the heavy lifting. *shudder*

It's taken a month or two, but I finally got a working version up.

And... it's even better than before! I've improved it!

The vast majority of the JS that I used before--you shouldn't see any differences at all. Most of the changes are meant to be under-the-hood and out of sight. 

But after recreating the drag-and-drop functionality--a huge milestone in my book!--I wondered if I could improve it by making it work for smartphones. It's a little annoying that you can't move stuff when you're on a smartphone, right? It annoys me too! To be fair, Prototype was created before smartphones were a thing. There's a reason smartphones weren't really supported--they simply didn't exist when the technology I used was created.

But it seemed like something I could add, so I started working on it....

 And... well, I just couldn't make it work properly with a touch-screen device. Stuff happened, but I just couldn't make a smooth drag-and-drop motion with a touch-screen device. ARGH!!!!

Part of the reason was that the touch screen is meant for scrolling pages, and the motion to move the page sometimes interfered with the motion to move the object.

But I wasn't going to give up that easily. Nope. I had another idea. Instead of a drag-and-drop, what if I let someone tap the item they want to move, then tap where they want the item to go? So I added some event handlers and....

...it worked! I could move items around with a touch-screen! Then I figured that I could also do the same for mouse clicks, so I started working on that and realized I could combine both with a simple onClick handler. Tap on, tap off. So simple! Works on desktops and smartphones. The drag-and-drop isn't even really needed at all, although it doesn't interfere with anything so it makes sense to leave it alone for those people who are used to drag-and-dropping. That will still work.

Another thing that's advanced dramatically over the last 20 years is accessibility, and the sorting or moving of items still had a major accessibility problem. You couldn't move anything with a keyboard. Someone using a screen reader, for instance, and was completely dependent on the use of a keyboard, would still never be able to sort items. And with all my newfound knowledge, I didn't think it would be very difficult to add keyboard support for sorting as well.

So then I did that.

Oh, there were definitely difficulties along the way, but I worked through them and sorting can now be done with a mouse, touch screen or keyboard. They all work! The actual drag-and-drop still only works with a mouse, but maybe someday I'll figure out what went wrong and get it working with a touch screen too. Now that I'm using my own code rather than a JS library, I can edit it or make future tweaks as needed whenever I want. 

Photo submitted by Wronghat.


Monday, October 02, 2023

Last week for eclipse glasses!

This photos shows the last
annular eclipse in the
United States,
taken by Thunderbird in 2012.
If you plan to watch the solar eclipse on October 14th, this is your last week to order eclipse glasses on Atlas Quest! If you're anywhere near the centerline of the eclipse, it'll be pretty awesome. Even if you aren't especially close to the centerline, most of the contiguous United States will still see over 50% of the sun's surface covered by the moon. And everywhere within the contiguous United States will experience some sort of partial eclipse., but at no  point during the eclipse will it be safe to watch with unprotected eyes.

Be prepared! Order your eclipse glasses today from the AQ Marketplace! Additionally, it's a two for one deal for many of you because there will be a total solar eclipse running through the United States next April and you can reuse the eclipse glasses for that next exclipse as well. It'll be an experience of a lifetime!

As a side note, Amanda and I plan to watch this eclipse from somewhere in New Mexico, so if you're interested in joining us, keep your eyes posted. We haven't really nailed down exactly where we'll watch it from as of yet, but we thought it might be interesting to head down somewhere near Roswell. Maybe look for some extraterrestrials while watching an event from out of this world. =) And it might be that the weather dictates precisely where we end up, but if you're nearby and possibly want to drop in to visit your favorite turtle and Nancy Drew sleuth, be sure to sign up for Extraterrestrial Adventures.


Experience the magic and awe of an annual eclipse!
Photo provided by 2heartsare1 from our 2012 annular eclipse event.



Wednesday, September 20, 2023

Major Announcement! And totally not click-bait!

So.... since the Last Big Update, you might be wondering what I've been up to. Mostly still working on speeding up slow queries. That Last Big Update largely fixed the worst of the issues, but that didn't mean there wasn't still room for improvement and I've continued to improve.

I wish I could play the Jaws music here. The major announcement
is ominous, but good in the long run! Photo provided by
Silver Eagle while snorkeling with whale sharks in the Maldives.
(I am SO totally jealous too!)
The new and improved code I wrote for Atlas Quest has been simply awesome. I'm very, very happy with how it's been performing, and once AQ seemed to be running well, I copied it over to LbNA where I fixed up some other slow-ish queries. Those weren't as problematic since not as many people use that website and the queries are a lot simpler anyhow, but since all my websites run on the same server, keeping things running fast on other databases will also help the AQ database run faster and better as well.

Then I copied the new query code over to Walking 4 Fun and repeated the process, improving the slower queries that I identified. The busiest page on W4F, the "My Walk" page, I'm happy to report, used to take--on average--about 1 to 2 seconds to run all of the queries needed to generate that page, and it's now down to about 35 ms. I just opened the page for myself and all of the queries--combined--took precisely 38 ms to run. Or, in other words, 0.038 seconds. Massive improvements!

And like I said before, that does help the AQ database run better as well. If you happened to run a search just as someone else was trying to look up their daily steps on Walking 4 Fun, your query might have run a second or two slower if the database was bogged down handling these other queries. So fixing these types of things are really good for all the databases on the system.

And then I've been hopping on and off each of the three major websites that use the database each day, looking for additional other queries that can be optimized. Some of the optimizations might not even seem like they're worth the effort. One query I improved a couple of days ago on LbNA now runs ten times faster! Which sounds impressive, until you realize that it originally took 0.20 seconds to run and now it takes 0.02 seconds to run. It is ten times faster, but it was already pretty fast to begin with.

But still, I've been making these kinds of "modest" improvements for weeks--months even, if you include the tweaks I made before the Last Big Update, and collectively, it starts to add up. A query that runs 1/10th of a second faster 10,000 times per day means the database doesn't spend 1000 seconds (about 16 minutes) every day running that query anymore.

And occasionally, I still stumbled onto an elephant of an improvement. Someone runs a search with weird parameters that take 20 seconds to run and I can tweak the query to make it run in less than a second. For that person, they'll see a dramatic improvement if they ever run that search again, and for everyone else, their queries won't be hung for 20 seconds while dealing with that other one. I'm not finding many of these kinds of improvements anymore, but it's always satisfying when I do. =)

But the database is still suffering from one issue that all the speed improvements in the world won't fix which is... a lack of memory. The database runs on a server with a mere 10GB of memory and the databases it uses are quite a bit larger than that. There's sometimes trouble getting all of the indexes to fit into internal memory--which helps queries run fast--and there's not really any way for me to optimize that. Basically, it sometimes needs to look up an index from the disk, which is slow. It's kind of like the difference between looking up a term in an index of a book or having the index memorized and being able to skip the process of actually looking it up because it's already in your head. 

And the next big improvement for the database is.... a bigger server! Specifically, a server with more RAM. So I started looking into upgrading the server. Originally I thought I'd just upgrade to a bigger VPS which is relatively painless and easy, but it turns out if I upgrade to a dedicated server, I'd actually get even more RAM, more disk space and at a lower cost than keeping it as part of a VPS!

So.... within the next week or so, I plan to move AQ (and LbNA, and W4F, and all of my other websites) to a fancy, new dedicated server.

Unfortunately, this will require a relatively significant period of downtime. The IP address of the websites will be changing, so there's also the whole issue of IP address propagation as well. Even if the new server is up and running fine, you might have trouble accessing it until the new IP address gets to your computer. For most people, this usually updates within a few hours, but some people in the past have had systems that took a week or longer before picking up the new IP address. It's not something I have a lot of control over either.

Will it be worth it, asks Wise Wanderer? I think so. *nodding* =)

The support team where I host the server reports the migration will take "24 to 48 hours"--that's the period of time that AQ (and LbNA) will be off limits to everyone. Once the migration is complete, the websites should be available within a few hours after that. Technically, the old servers will keep running during the migration, but any new letterboxes that are listed, messages posted, AQ mail sent, etc. won't be copied to the new server. It'll just appear like they were deleted.

I'm going to try seeing if I can just prevent people from logging in. If you can't log in, you can't really add any data to the database that won't get copied to the new server. This way, at least you can still run searches and look up publicly available boxes and message boards, even if you can't see the restricted ones that you would otherwise qualify for. I'm not actually sure how simple this will be since I never really designed AQ to keep running with the login options turned off. If it starts becoming too complicated, I might just choose to put up the "Under Construction" theme and make the entire website unavailable until the migration is complete.

But in any case, this will put both AQ and LbNA (and W4F for those of you who use it) out of commission for at least a day or two. Looking at the stats on AQ, mid-week (Tuesday through Thursday) is the least busy time for the website, so I'll probably try doing the update starting Tuesday of next week, and it should be available again by Thursday.

That's my tentative plan. It could change. When AQ and LbNA are down, I'll post updates to the AQ Facebook page at https://www.facebook.com/AtlasQuest so make sure you're subscribed there if you want updates.

Even after the transfer is complete, there will likely be times when I need to restart the database server. With more memory, I'll have to update the database configuration options and I'll watch to see how it performs for a day or so, make some tweaks, restart the server, and repeat. So there will likely be some hiccups for the first week after the update as I fine-tune the configuration settings. Once it's all done, however, I hope AQ (and LbNA) run better than ever! =)

The new dedicated server I'm eying, btw, has 16GB of RAM--which almost doubles the available amount of memory for the database to use. It also comes with a lot more disk space as well, so I plan to stop AQ from deleting the high-resolution photos from the photo albums. At least until disk space becomes more problematic again. Do not expect that the high-resolution photos will always be stored forever, though. This new server has about 3-4 times more disk space available and I don't really have 3-4 times more data to store, so I'll just allow the high-resolution photos to linger longer than before.

And thanks to all of you premium members (and LbNA donors) who pay for all these expenses! I actually started the premium memberships when AQ was on a shared server, fearful that I'd have to move to a dedicated server and I didn't have the money to afford one. Turned out, I never did upgrade to a dedicated server once I learned about the existence of VPSes (Virtual Private Servers), which basically acts like a dedicated server but is actually hosted on a server that shares resources with other websites and accounts. (And theoretically, one of those running a particularly slow query could cause other sites like AQ to be more sluggish as well, but I have no idea what the other websites are or how well they run.) The extra money premium memberships generated beyond the cost of the VPS wound up being my income since a VPS was far cheaper to run than a dedicated server.

I've upgraded the VPS a number of times over the years, increasing the memory and disk space along the way, so it's not nearly as cheap as when I first moved to the VPS, but it feels like this website has really come full circle now that it's more economical to run on a dedicated server than a VPS! At long last, the original reason I started the premium membership--to pay for a dedicated server--is finally coming true. =)

In completely unrelated news.... you'll still find eclipse glasses in the AQ Marketplace. If you want to watch the eclipse on October 14th, be sure to order them while there's still time! At no point anywhere in will it be safe to directly view the eclipse without eye protection and everyone in the contiguous United States can see it (weather permitting). And every time there's an eclipse, there are always stories about price-gouging by desperate people in the days leading up to the eclipse. Be prepared! (I won't price-gouge you if you wait until the last minute--I just won't sell them at all because I can't be certain that they would arrive to you in time.)

Happy trails! And sorry in advance if the downtime next week causes you any inconvenience!

Make sure you have your eclipse glasses before October 14th!

Saturday, September 09, 2023

Please accept an invasion into your privacy....

Big brother is watching! Or is he...?
The title of this post is this very tongue-in-cheek. You might have noticed that AQ will now "sometimes" display a pop-up window like every single other website on the Internet about your privacy settings. For the most part, you can blame Europe for this since those are mostly about following European laws. As an American business primarily doing business with North American consumers, I've generally ignored it. I'm not even entirely sure if it applies to all websites or just for companies of a certain size. (Seems kind of like a waste to go after individuals who happen to be running a small, personal website.)

However.... I use Google AdSense to display Google ads (at least for you non-premium members out there!), and Google is going to require that websites have these pop-ups to comply with European laws or they'll stop serving ads completely. Thus.... I had them activated through my Google AdSense account.

You can actually deny consent--that just means Google can't serve ads that they believe are tailored specifically to you. The website will still work, however, even though AQ uses cookies to remember who you are. The consent form is more about "third-party cookies" (or even "second-party cookies"?). In any case, none of it applies to cookies that AQ uses just to remember who you are from page to page.

If you are a premium member and are set to auto-login whenever you visit the site, I don't think you'll see the consent form at all. It's tied to the Google Ads and premium members don't see Google Ads, so the AdSense code doesn't go into pages for premium members. And if you've clicked the button to auto-login, there won't be a chance for Google Ads to show up before you log into your account. So premium members set to auto-login may never see the consent form. It's new to me too, though, so maybe I'm wrong about that. Google Is Everywhere. They're probably watching you read this post right now. (They own Blogger, which is what this blog uses.) Maybe using a Chrome browser (brought to you by Google) will cause that consent form to pop up? I don't really know.

It might even be possible that the consent form pops up after already clicking through several pages on AQ since there are not Google Ads on every page. If you go to the main AQ home page at https://www.atlasquest.com -- where there are no Google Ads -- you could run a search for letterboxes then get the pop-up consent because the search results have a Google Ad at the bottom of the page. It won't necessarily pop up on the first page you see on AQ because of that.

I've also enabled these consent forms for all my other websites that display Google Ads such as Walking 4 Fun and The Soda Can Stove . Letterboxing.org doesn't use Google Ads so it'll be spared the consent form annoyance for the time being. (I don't have any plans to add Google Ads to that website, but who knows how privacy laws in the future will develop and even though I don't plan to add Google Ads to letterboxing.org, I'm not making any promises that it'll never happen. That website does need to at least pay for itself.)

But in any case, nothing on AQ has really changed because of the consent form. Nothing in the privacy policy has changed, I'm not out selling your email address, or sharing private information in your AQ account to Google or anything. It's all about just making sure the Google Ads will continue to work for non-premium members. Gotta keep the lights on somehow! I'd just as soon prefer premium memberships than messing with advertisements, but for those who can't afford a premium membership or prefer not to for some reason, Google ads are the alternative way to help support Atlas Quest financially.

One of the unsung perks of premium membership.... more privacy for you! =)


Friday, September 01, 2023

Click bait here! You won't believe what happens next!

Photo taken by Thunderbird for
the 2012 annular eclipse
As some of you might know, there is a looming crisis. An solar eclipse is headed to America. It's expected to hit the shores United States on October 14th, and nobody will be spared from its wrath. Well, perhaps those in Alaska or Hawaii... but for everyone else.... Millions of people around the country will start looking at the sky--even looking directly at the sun. Without proper eye protection, this can lead to permanent blindness and even death. Well, okay, maybe not death, but I said this was click-bait, so I have to exaggerate and make false claims. But permanent blindness is certainly possible. You may have noticed--the sun is pretty bright.

This is not just any average eclipse, either. No..... This will be an annular eclipse. The proverbial Ring of Fire. The moon, alas, will be too small to completely cover the moon so this isn't technically a total solar eclipse--however  the moon will cross directly over the middle of the sun so at its peak, you'll see a ring of fire completely surrounding the moon.

While the eclipse will be visible (weather permitting) to everyone in the contiguous United States, not everyone will be able to see the ring of fire. You'll need to be on a thin line, maybe a 100 miles wide, that slashes across the western United States in order to see that particular phenomena. It'll run through Oregon, touch the corners of California and Idaho, dive deep into Nevada and Utah, clip the corners of Arizona and Colorado before cutting through the heart of New Mexico and deep into Texas. It'll continue onward, running through Central and South America, but I'm assuming that there won't be many people from those areas reading this blog.

Outside of that thin line, every location within the contiguous United States will see some sort of partial eclipse. Most of the country can see at least 50% of the sun covered.

With these stylish shades, you can safely watch the solar eclipse happening on October 14th.
 

Do you want to watch this marvelous dance of celestial worlds? Then buy your eclipse shades from the AQ Marketplace now! With these fashionable eclipse glasses, you can safely watch the eclipse directly, perhaps while out letterboxing at the same time. They filter out 100% of the harmful ultraviolet, 100% of the harmful infrared, and 99.999% of intense visible light. They're sold in sets of 3--perfect to share with a friend or two. Or maybe your family. It's up to you! Or sell any extras for a fat profit to your enemies and/or co-workers. 

Come the day of the eclipse, there will probably be plenty of people desperate to acquire these glasses after procrastinating until it was too late and price-gouging is rampant. Don't let this happen to you! Another reason not to procrastinate.... they'll only be in the AQ marketplace while supplies last. Once we run out, that'll probably be the last of them since it's unlikely I could reorder another batch before the eclipse. (I'll also take them out of the AQ Marketplace about a week before the eclipse if any are left so nobody can order them at the last minute. The post office takes time!)

Want to learn more about the upcoming eclipse? Check out NASA's page about October 14, 2023, Solar Eclipse. Or check out this eclipse simulator.


Photo of previous satisfied customers from the 2012 annular eclipse--even if they aren't actually wearing their eclipse glasses in the photo! But they have them! Photo by Makita.


Thursday, August 31, 2023

More restrictions! MUHAHAHaHahahahaha!!!!!

Please confirm your identity....
For some of you using the website yesterday, you might have noticed a sudden surge of "unauthorized" boxes. That was a bug that I accidentally introduced while updating code for the real improvement.... which is a new type of restriction!

Because if there's one thing everyone wants, it's more restricted boxes. =)

Well, okay, that might not be exactly true.... however, planters tend to like more options for restricting boxes, and I've added a new one! The first new restriction that's been added in years!

It is now possible to restrict boxes to just those people who are signed up for a specific event! If you add or edit a box, in the restrictions section, you'll now see an option for a "parent event" restriction. If you set it, only people who are confirmed signups for the specified event will see your box in the search results. (Assuming of course, they meet any other restrictions you might have added to the box.)

This is a great option for those who are planting temporary boxes that are available just at the event. No reason to bother everyone else on the website with boxes they can't find. It's not required that you restrict temporary boxes for events, but it's an option.

But that's not all! Nooo.... I went crazy and added the same restriction option for events and trackers as well!

You might be thinking... why in the world would you want to restrict an event to people attending an event? That makes no sense at all, right? WRONG!

What if, for instance, there are sub-events for the main event? Or pre- or post- events before or after the main show? And maybe those sub-events are only for those who are signed up for the main event. Now you can restrict them to only those with confirmed signups for the main event!

AQ will even allow you to restrict an event to people signed up for that same event.... you might think there's a recursive problem here. How can people sign up for an event that they are restricted from because they aren't signed up for it? In that case, it might be that the owner of the event wants to add people manually after they've been approved. (Perhaps they paid whatever fee was involved, or it's a WOM event.) You can't add  yourself to the event, but as soon as an admin or the owner of the event does, you'll automatically be able to see the event listing.

And even trackers can be limited to those who are signed up for specific events. Honestly, I'm not really sure of a good  use case for this scenario, but it was relatively easy to add simply by reusing the code I wrote for boxes and events. Perhaps someone is going to create an LTC tracker for use at an event, though, and now they can limit access to the tracker to those who are signed up for said event.

In any case, enjoy! I'm sure you'll think of all sorts of new ways to use the restrictions that I never even thought of! =)