Saturday, February 16, 2019

New Zealand Adventure - Day 9 - The Last Day

[Composed 1/14/2019]

"We're going to pitch, we're going to roll"

This announcement was made by our captain as we boarded the tiny vessel that would be taking us to Kapiti Island. This was not good. I don't like pitching, and I don't like rolling. I like smooth sailing, and judging by churning seas that wasn't an option.

Turns out, the ride to Kapiti Island wasn't as bad as I feared. The captain did his best to turn what could have been a white-knuckled rollercoaster ride into something far more tame. And after 20 minutes we found ourselves on the pristine shores of the island. We got a short introduction explaining the history and rules of the island and then headed out on a one hour guided nature hike.

For most of its existence, Kapiti Island was a bird's paradise. There were no predatory mammals, and seemingly defenseless birds like the kiwi could thrive. And then man showed up, and spoiled that in short order. The scientists of New Zealand, however, worked tirelessly to turn back the clock and have eradicated all non-native species on the island. We noted a number of traps around, which are used to monitor for the presence of pests. It was also a bit strange to hike knowing that the only mammals on the island were our fellow hikers and guides.

Kapiti Island promised to be an ideal place to shoot bird photography, and it did not disappoint. While I didn't catch site of any truly exotic species, there were plenty of pretty birds for me to capture. The hike to the summit wasn't too strenuous, and was more than worth it for the 360° perfect view.

Before we knew it, it was time to be picked up by the ferry and head back to the mainland. As we boarded, the captained relayed some good and bad news. The good news: the winds were actually calmer than this morning. The bad news: because of the tide, it would feel like the opposite. And boy was he right. That white-knuckled rollercoaster ride we missed on the way to the island, we received on the way back. As if to underscore the point, as we approached the shore a massive wave of ice cold water drenched the back of the boat. Shira took the brunt of it, while I took some collateral damage. Admittedly, it was not a fun way to end what had been a pretty amazing day in nature.

This was our last full day in New Zealand. Tomorrow morning, we wake up early and head to Melbourne, Australia for the next chapter of our adventure. Whoo!

Thursday, February 14, 2019

Solar Position Functions, Google Sheets Edition

Using the sun as a navigation aid is both an obvious idea and one fraught with difficulty. Making sense of the sun's position throughout the day involves understanding your latitude, longitude, timezone offset and a bunch of non-trivial (to me!) math. Fortunately, I've been able to untangle this math. The next step was to make leveraging these calclations a breeze. For this, I turned to Google Sheets.

I popped into Google Sheets, opened up the Script Editor and started translating scheme code to JavaScript. When I was done, I had the following custom Sheets functions implemented:

# Sun's Position
elevation(lat,lng,ts,tzOffset=null) - sun's position in degrees above the horizon
azimuth(lat,lng,ts,tzOffset=null) - heading of the sun's position in degrees 

# Notable times when the sun is 0° above the horizon

You can find the code that implements these functions here. The ts (timestamp) parameter passed in above uses the internal Google Sheets timestamp format. This allows the above code to gracefully integrate with other Sheets functions. The tzOffset parameter is optional; if unset it falls back to the user's current timezone preference. This auto behavior is handy for seamlessly dealing with daylight saving changes throughout the year.

Consider these examples:

These demonstrate printing a full day's worth of elevations and azimuths. Using these charts I can trivially derive my current direction by using the sun and my watch, or derive the time by using the sun and a compass.

Stay tuned for more ideas as to how these functions can be used.

Tuesday, February 12, 2019

The Magic of Harry Potter Meets the Magic of Coding

I recently talked to a group of fourth-graders about coding and found myself with the age-old CS teacher's dilemma. If I presented code the kids could understand, it wouldn't be interesting. If presented code that was interesting, they wouldn't understand it. The Harry Potter Kano Coding Kit deftly handles this challenge by offering coding newbies heaps of interesting and understandable coding experiences. But don't take my word for it, 9½ year old J. and I spent a good 3+ hours playing with the system this last weekend and we both left impressed.

Here's what makes the Kano Coding Kit so successful:

1. It's Harry Potter themed. Dang this was a brilliant move. J.'s love of all things Harry Potter meant that he was hooked before he even started. While he was only working on small snippets of code at one time, in his mind they were part of a bigger story. At one level, this all fluff. There's really no difference between animating an orange circle and animating a Quaffle. On another level, it's a brilliant mind hack, and what helps make the Kano Kit larger than the sum of its parts.

2. It has a dash of hardware. The kit comes with a 'wand,' which is a tiny computer fitted into a bit of molded plastic. I'm amazed I never thought to build something like this myself, as the hardware is relatively low cost. The micro:bit computing platform I'm so fond of contains Bluetooth connectivity, an accelerometer and a compass, which are the basic ingredients needed to build such a wand (note to self: build this). J. enjoyed playing with the wand, and it allows for a more immersive Harry Potter experience than using your mouse, even though in many cases a mouse would be simpler to operate.

3. It's all about the challenges. What really impressed me about the Kano Coding Kit was its use of coding challenges. This is the magic that let's a budding programmer feel the excitement of coding without being overwhelmed. The challenges build on the puzzle-piece like coding style of Scratch and add to it layers of guidance. The guidance varies from absolute hand-holding, to open ended problem solving. J. soaked this up, embracing each new challenge with excitement. I liked that that the challenges, once solved, allow you to continue to experiment with them. Once J. had figured out how to float a feather using the 'wand up' motion, I suggested he have it shrink and grow by using wand right and left. This capability lets you think of the challenges as starting points, not rigid exercises.

Of course, the Kano Coding Kit isn't perfect. A number of times we fought with the wand to get it to remain connected via Bluetooth. This was terrifically frustrating because once the wand lost connection it wasn't obvious how to get it back. One time I simply had to close the laptop and walk away or risk damaging something. And while I appreciate the elegance and simplicity of the wand, for $100 it shouldn't require you pop-out the batteries to keep them from running down. A USB rechargeable battery would be an ideal solution, and failing that, a simple on-off switch would work.

On the software side, J. found casting some of the spells to be quite tricky, almost to the point of being impossible. Though, that may just take practice.

For my part, I found the software's biggest shortcoming to be the lack of an obvious way to re-do challenges. Surely this is supported. Looking at the way J. proceeded through challenges I think this shouldn't just be possible, but be an essential part of the program. J., in his excitement, zipped through earlier challenges which is to be expected. Later challenges no doubt assume you've mastered the previous ones, though there's a fundamental difference between completing an exercise and mastering it. Ideally more complex challenges would direct students to re-try specific simpler challenges rather than leaving students guessing or admitting defeat.

The Kano Kit isn't cheap, and the hardware wand alone doesn't justify the price. But if you want to help a fan of Harry Potter learn to program, whether child or adult, this kit seems like a smart investment. It won't teach you to program any more than playing language CD's in the background will teach you speak a foreign language. You still need to put in the work. But the 'work' sure becomes fun, and on the quest to learning a new skill that can make all the difference.

Monday, February 11, 2019

The Beach, A Reserve and exploring the Suburban Jungle | A Fun Weekend in Florida

What is it with our quick trips to Florida that end up being in frigid weather? We shivered while visiting Universal Studios, and this last weekend was down jacket and winter hat weather, instead of the shorts and flip-flops that we'd hoped for. When we landed on Friday, the sun was out and the beach was calling to us. By the time we picked up J., made a Trader Joe's run, checked into our hotel and took the shuttle to the beach, the sun was behind the clouds and the cold weather had settled in for the Weekend.

To J.'s credit, this didn't deter him one bit. As we approached the white-capped ocean waves, J. announced to me that despite the sand being dry here, he knew that if he dug a bit he could find water. And that's what he did. And sure enough, the water he forecasted appeared. 45 minutes later, he had excavated a nice size 'lake,' and he was having a ball. After that, he made a few sand angels and we played a bit with some slow-motion video capture of him destroying some sand creations. This is how I want to see the beach. Heck, this is how I want to see life. Not whether the experience matches what the brochure promises, but simply to find joy in the now. Even if that means getting sand in your hair.

Saturday morning, we hit up the nearby Guana Tolomato Matanzas National Estuarine Research Reserve, known more compactly as the GTM Reserve. We entered at the Guana River Dam, which let us snap picks of a heap of sea birds. There's also an impressive visitor's center there, which along with educational resources provided a nice place for us to warm up and use the bathroom.

Further on into the reserve, we started our hike proper. A short distance into the hike we did a bit of geocaching, which was fun, though I was disappointed that the container we found wasn't big enough to store a trackable tag. We then did about 4 miles of hiking on the well marked trails. We enjoyed wandering through the palms and live oaks, and were surprised to chat it up with an older couple only to find out that they too were originally from Rochester, NY. But the big treat of the hike was having two armadillos cross our paths. I'd never seen an armadillo in the wild (heck, I'm not sure I've seen one in the zoo) and they're terrifically interesting creatures. Their 'armor' makes them look like a DOD project gone awry.

I think this may have been J.'s longest hike with us, or at least longest one without complaining. So now it's time to start planning a proper backpacking trip!

In the afternoon J. and I had a bit of programming time. I'd brought a Harry Potter Kano Coding Kit with me for us to experiment with. The kit involves programming a Bluetooth 'wand.' I'm planning a full review on the kit as it left quite the impression on me, but I'll report here that we spent hours coding it and both J. and I really enjoyed it.

Sunday morning, I'd hope to swing by another geocache and drop off the trackable tag I'd hoped to deposit into the first cache we found. Leaving such a tag means that someone can come along and pick it up and move it to a new cache. It's a way of continuing our adventure, even after we're home and back to our regular routine. Alas, we had a 'DNF' (did not find) on this cache and had to register strike 2 in my hopes of dropping off the trackable.

At lunch, I was telling J.'s mom about our geocaching adventure and she asked how it worked. Checking for nearby goecaches, I realized there were some only a couple hundred yards away. Rather than tell her about it, why didn't I show her? So after lunch, the whole lot of us set out on a geocaching adventure. Mind you, we're in a suburban shopping center, not some secluded woods. The first cache was a micro one, and to my surprise we found it in just a few minutes. This was fun, but because the cache was so small, there was no loot for the kids to pick up. It was cool, however, to see how a geocache could be hidden in such plain sight.

Cache number two was around the back of a closed down Gander Mountain super store. Judging from the pile of beer cans, this is a preferred teenager hang out. With all the trash around, how would we possibly find it? And yet, using the hint and a bit of perseverance we prevailed. This cache was even more cleverly hidden than the last and was big enough to house some goodies for the kids. And I was finally able to drop off my trackable. The third cache brought us back to a busier part of the shopping center. This cache was an even more improbable hide than the previous ones. Seriously, I can't imagine how the person who planted the cache figured this hide out. So cool.

And there it was, the best string of geocache finds I'd ever had. Who knew suburban sprawl could deliver where reserves and parks failed?

What a fun weekend!


Related Posts with Thumbnails