Wednesday, May 30, 2018

Taming the Chaos - A Custom Bag Organizer Solution

I've got a day trip coming up that has the unusual distinction of requiring me to bring a laptop (usually I get by with my folding Bluetooth keyboard and cell phone). This means that I'll face a common bag conundrum: bring one bag, mainly my briefcase, and have all the items from my man-bag haphazardly tossed in. Or bring two bags, my briefcase and man-bag, and worry about keeping track of two bags.

With my burgeoning sewing skills, it occurred to me that I may be able to add structure to my briefcase by creating an insert. This would give me the organization I'm after, and allow me to keep track of a single bag. Because the insert I'm sewing would be customized to the shape of the bag, it would fit my gear efficiently. (Yes, it occurred me that I was effectively re-creating a purse organizer. And no, I'm not bothered by this at all.)

I busted out my briefcase, took some measurements and sewed together a large nylon pocket:

I typically carry four categories of gear: everyday (hand sanitizer, snacks, etc.), first-aid (pills and various forms of tape), electronics (keyboard, power bank, etc.) and hiking (Bic lighter, space blanket, etc.). My plan was to section off the large pocket into 4 areas. However, it just wasn't wide enough for this, so I had to settle on sewing it into thirds.

To my surprise and delight, the gear all fit. And what's more, when packed, the insert fit neatly into the bag:

As I finished sewing the initial pouch it hit me that I should have made the bag 1" larger. And I bet with some effort, I could find a way to make a 4 pouch system.

But still, I think the result will be quite functional and I'm psyched to try it out on my next trip.

Assuming this approach works, I plan to create a version that's customized to fit in the large day-pack I use for traveling. You better believe I'm going to measure that one with more care.

One inch I'm telling you...I was off by one friggin inch. Classic.

Tuesday, May 29, 2018

Adventures in Aerial Therapy - Sandy Spring Adventure Park

Given my fear of heights, the last place you'd expect to find me is over at the Sandy Spring Adventure Park. But it was this fear, and my hope to tame at least a small part of it, that was our motivation for hitting the park. Sandy Spring consists of 13 'trails' that take you to various heights in the trees. A trail is made up of zip-lines and obstacles, all connected by a series of platforms. Basically it's a playground suspended up to 65 feet in the air. Through an ingenious system, you clip into a safety cable at the start of the trail and you are guaranteed to remain attached until you step safely on the ground.

We picked Sandy Spring because it promised so many skill options. I figured I could master the course designed for 5 year olds (yes, 5 year olds!) and then move on from there. We brought along Fearless M and Dauntless P, who I knew would gladly embrace the more challenging courses. There would be something for everyone.

The safety briefing and test obstacles went by quickly and before I knew it, I was standing with Shira on the start platform. From this platform, all 13 trails begin, some with impossible looking ladder climbs, others with fairly tame looking bridges. I felt surprisingly calm, a fact I owe to the promise that I'd be able to tackle a Purple level course. You know, the one designed for 5 year olds.

There are two purple courses, and one of the staff members suggested we go on Firefly: it had no other guests on it at the moment. So we walked over to the Firefly start point and I was hit with my first test. The first obstacle in Firefly was a zip-line. Whoa. Shira clipped in, got settled and zipped across to the following platform. And just like that, it was my turn. I tried desperately not to think. Sure, I could have spent time psyching myself up (you're totally safe! kids are doing this! you literately can't get hurt!), but that would have given the voice in the back of my head time to chime in with reasons why I shouldn't do this. So as mindlessly as possible I clipped in and pushed off from the start platform.

Whooooo! I was flying!

As I zipped across the tree tops (at 15 feet in the air, mind you), the harness hugged me securely and I felt surprisingly comfortable. I was expecting to be hit by a wave of fear and panic; it never happened. I simply zipped and it was simply fun. I have to say, it was awesome.

Feeling good, Shira and I then turned our attention to the next obstacle: a sort of wobbly bridge thing. I had no problem getting across it. And so it went: Shira would knock off an obstacle, promise me that it wasn't too hard and then it would be my turn. Our big finish was another zip-line to the ground. I finished the course and felt like I'd accomplished something huge.

After checking in on P and M, and of course finding them in the tree tops and quite happy, we made our way back to the start platform. We completed the second purple course without issue and then made our way to a Yellow course. While Yellow is the next notch up in terms of difficulty, it's still considered easy and it's still at 15 feet.

The first couple of obstacles in Yellow were no problem. But by the third obstacle, I found that I was truly working to stay upright. While I expected the zip-lines to be the tricky part, they turned out to be easy. The various bridge like structures, even on Yellow, were no joke. Given the safety harness system, you're never falling more than a few feet. But still, I was truly humbled by how much effort I needed to put into the Yellow course.

After our 3rd course it was time to call it a day. We pulled the kids off of the Black Diamond course, which if given enough time, they'd almost certainly have completed (as well as done the next level). They were truly fearless and exactly the type of person this park was designed for.

Overall, our experience at Sandy Spring was great. The staff was warm and helpful, and the course options were as plentiful as promised. Two notes of caution, however.

First, if you buy tickets on the website it talks about buying gloves. What we didn't see on the site, however, was that this is an optional purchase. If you don't buy gloves, then there are free ones to rent (unlike say Skyzone, where you have to buy the special socks). We had purchased the gloves, but asked for a refund in the store. They were glad to give us one.

Second, be aware that even the easiest course is far from non-trivial. Some kids are fearless; while others are far less so. Convincing a kid to take that first leap into the unknown may be asking too much. This may be an adventure best tackled when kids are older. If you do find yourself at the park with a kid who's not ready to make the leap, then perhaps a few more times on the safety-practice-course would give them the confidence to try this.

I do wish the course was a bit more affordable, especially for someone like myself who's not really taking full advantage of their offerings. But from poking around the park's website I see that they are considered "the largest aerial climbing course in the US." This is a top tier location, so it makes sense that they would charge top dollar.

Friday, May 25, 2018

The Key-Chain Loop - A DC Route That Never Disappoints

I snapped the above photos while I was running the Key-Chain loop. This loop covers four miles of Potomac Heritage Trail, which is always good for interesting scenery.

Though admittedly, I got a bit more scenery than I bargained for.

Those are trail markers but no trail. At one point I had to wade through thigh-deep water to re-connect with the trail. To add to the experience, as I slowly made my way in the water, a hefty sized fish surfaced next to me. It felt like I was in a certain trash compactor movie scene; needless to say I was happy to back on dry land.

Thursday, May 24, 2018

Homemade Beef Jerky, Without the Excuses

Making beef jerky has been on my list of things-to-try for quite some time. First, it's an interesting way to learn about a historic method of preserving meat. Second, there's the practical side: jerky should keep relatively well while backpacking, thereby opening new meal options on the trail.

But I've always had an excuse as to why I couldn't try this project. I don't have access to the right cuts of (Kosher) meat. I don't have a proper dehydrator. I don't have the right drying racks. And on, and on.

Looking at the Kosher meat section at Trader Joe's I decided, screw it, let's do this. Drying meat has been something our ancestors have been doing since recorded time. If they could make do with their primitive setup, I could too. So I bought two packages of meat: one a traditional looking steak and the other some stew meat.

To really drive the point home, I split the sliced up meat into two piles. For the first pile, I simply sliced it and placed it on a parchment paper covered baking sheet. I put the baking sheet in the oven set to dehydrate and more or less forgot about it.

I then crafted a marinade for the second pile of meat. I used this recipe, though half way through realized I didn't have any worcester sauce (a key ingredient!). So I improvised, tossing in a bit of A1 and some hot sauce for good measure. I put the sliced meat in a zip lock bag, added the marinade and put the bag in the fridge.

8 hours later, I took the meat which had been marinating and laid it out on more parchment paper. I then added this second baking sheet to the one that was already in the oven.

Another 8 hours later, after multiple flippings of the meat, I had this dried, unappealing (yet jerky looking!) result:

So, how did it taste?

The marinade free version of the meat tasted exactly like you expect it would: dry, tough and chewy. As part of regular snacking, I'd pass on it. But if it was on the menu after hours of backpacking in the woods, I'm sure I'd consider it gourmet. And besides it underscores my original point: preserving meat through drying isn't hard, you just need to do it.

The marinade version, however, was surprisingly tasty. The flavor of the mystery marinade really came through and the pieces of meat weren't crazy tough. Given the choice of drying the meat, or marinading and drying the meat, the choice is obvious: marinade that sucker.

Next time I'm near a fully stocked Kosher butcher, I plan to pick up the recommended flank steak/london broil beef. This really isn't a hard procedure to follow, and the results are both tasty and functional.

Wednesday, May 23, 2018

Take-Your-Medicine-Reminder 3.0: Now there's an App for That

Version 2.0 of my medication reminder system was fun to build. However, it effectively tied up my micro:bit and meant that if I wanted to continue experimenting with it, I'd have to buy another. Rather than buy more hardware, I decided to develop a software solution to the don't forget my allergy medication problem.

I opened up Tasker and set to work crafting a solution. Like my original solution, I wanted a passive reminder that I'd need to take my medication every 24 hours. And like the original solution, when I took the medication, I wanted an easy way to reset the process so the countdown would start anew.

To solve the second half of the challenge, I busted out an NFC sticker. I stuck it to the bottom of my pill bottle like so:

My plan was to arrange it so that scanning this tag reset the countdown. The sequence would then be: get notified that I have to take the medication, take it, scan the bottom of the bottle, repeat.

Next, I needed to implement a countdown timer. One solution was to use Tasker's Set Alarm Action to register an alarm due in 24 hours. When the relevant NFC tag was read, I'd need to kill the alarm and set a new one. After a bit of futzing with the alarm action, I decided that depending on a system alarm wasn't going to be reliable enough.

I then turned my attention to AutoNotification, a Tasker plugin that allows you to make sophisticated use of Android's notification panel. AutoNotification has a number of interesting features: first, it allows you to show a countdown timer in the notification itself. It also allows you to render a progress bar. Using these features, I realized I could put my medication reminder right in the notification bar. A quick glance would tell me how much time I had left before the medicine needed to be taken.

Here's how the system looks while running:

This screenshot shows that I just kicked off the reminder and that I should take my meds in 23+ hours.

This functionality is powered by two Actions: Med Reminder Init and Med Reminder Refresh. The init task calculates when the reminder is due, sets this in a global variable and creates the first notification.

%deadline is calculated by taking the 24 hour period and adding it to %TIMEMS (which is current time millis). This value is then plugged into the AutoNotifcation's time field. This combined with checking both the Chronometer and Chronometer Countdown force the notification to show a countdown timer and not an absolute time.

I used the Local NFC Plugin to tie scanning the NFC tag to kicking off the above init action:

One Tasker-NFC lesson I'm constantly relearning is this: when scanning a new/empty tag, Android will pop-up a Complete action using dialog:

You can avoid this dialog by writing the custom URI bad://access/development to the tag.

To make the progress bar on the notification work, I implemented a refresh action. This action does a bit of math to figure out what percentage of time is remaining and writes this value to %percent. Apparently the AutoNotification plugin doesn't like using floating point values for the progress bar, so I use a bit of search-and-replace logic to remove the decimal point and everything after it.

When setting up the initial notification I made sure to use the ID MedReminder. When I want to refresh the notification with the updated progress bar value, I use this same ID again.

I used a Time-of-Day profile that runs every 2 minutes, all day, to invoke the Med Reminder Refresh action. This keeps the progress bar reasonably up to date.

Put all of these items together and you have a refresh action:

I'm sorry to see my hardware solution go. Every time I saw the grid of LED's light up, I couldn't help but think: heck yeah, I built that! But this Tasker solution is a wee bit more practical. And getting a chance to experiment with the very powerful AutoNotification is a nice bonus.

Friday, May 18, 2018

Rain. Lots and lots of Rain.

Just when you think the forecast can't include any more wet weather, you wake to find yourself with another 2/10 day, with rain and possible flooding in sight.

And you know who's loving this rain? The colonies of mushrooms that have sprouted in our yard. Just look at these guys:

I tried to identify them, but had no luck. Any idea what they may be?

At least something is loving this weather!

Wednesday, May 16, 2018

Version 1.0 of the Pocketless Pocket-Protector

I give you the Pocketless Pocket-Protector (PPP). Perfect for work from home-programmer who isn't always wearing pants...with pockets. I made this to be a more portable version of my Programmer's Toolbelt.

The PPP is a small pouch with a magnet sewn into the top. Using another magnet strategically positioned under your clothing, it can be worn like a name-tag. The photo above shows me wearing the PPP attached to a pair of nylon running shorts (also known as Business Casual around here). The PPP attaches to any metal surface, like our front door or the fridge. Through mostly good luck, the PPP is large enough, and secure enough, to hold my cell phone.

Like nearly every sewing project I've done so far, I had far more audacious plans in mind when I started the PPP. And while those complex plans didn't play out, the simple version of the project I arrived at is surprisingly functional. And like most of the projects I've completed so far, I've already got visions of producing version 2.0.

Tuesday, May 15, 2018

Adventures Table Top Structural Engineering - Lego Style

There are a number of notable parallels between Legos and the micro:bit. Both platforms trade sophistication for low bar of entry. With Legos, you can dispense with even the most basic tools and just start building. And so it is with the micro:bit: you need not master an IDE or programming language; you can just start building. The same properties in Legos and micro:bit that lead to clunky and relatively inefficient solutions, also lead to experimentation and the development of novel solutions.

It was with this in mind that I experimented with ways to enhance my take-your-meds-once-a-day hack. I was curious if I could take the mess of tape, wires and foil and put them into a cleaner form.

Here was my first attempt:

I created a box with a hinged lid. Using liberal amounts of foil, I set it up so that closing the lid completes the circuit and restarts the next-pill timer.

The problem with this approach is that it requires the hinge to behave reliably. If the box remains open by even a millimeter, the connection is lost. Legos are many things, but precise to the millimeter isn't one of them.

With further experimentation I learned that I could sandwich foil between two Legos. The result is a durable conductive surface:

With this discovery in mind, I crafted version 2.0 of my pill-bottle cage. This version embeds foil on either end of the box. I then rest the cover, which is encased in more foil, across the top to complete the circuit:

Note the use of Lego figures for cable management. This was totally not my idea; I originally saw it here.

I felt like I was on to something with the foil wrapped Legos, but I could see room for improvement. Here's version 3.0:

In this version, I've created an elevated platform that has floor made up of two large Lego pieces. Each piece is wrapped in foil with a thin strip of tape keeping them from completing the circuit. The pill bottle in this version is back to having foil placed on its bottom. By resting the pill bottle in center of the platform the circuit is completed and the timer starts ticking. When I lift the pill bottle up, the timer is reset.

Version 3.0 attempts to mount the micro:bit in a secure manner and does a passable job of hiding wires.

Would a 3D printed version of this platform be better looking? Heck yeah. But Legos really do deliver on the experimentation side of things. I was able to try multiple solutions with minimal effort. And, like programming the micro:bit, it's just plain fun!