Tuesday, December 30, 2014

More Hand Held Hacking: Forth on Android

I was inspired to try to get a version of Forth running on my cell phone. I've had quite a bit of success developing small Scheme programs on my Galaxy S5 and was curious if I could manage the same thing with Forth.

I installed gforth from Google Play hoping that it would be a solid implementation. Unfortunately, I was met with a non-functional mess:

Besides spitting out the debugging statement log: setComposingRegion, the app didn't do much more. That is, until I switched keyboards. I changed from Swift Key to the keyboard that comes with Terminal IDE. Ahhhh, much better:

Now we were talking!

Poking around, I learned that there's quite a few Forth files to be had in: /sdcard/gforth/site-forth. Between browsing those files, and looking at the gforth manual, I came up with the command:

  require gl-sample.fs

Running that pops up this graphic:

I don't know what to make of this, other than the fact that gforth isn't just some half-baked toy. This is a real forth implementation, with some impressive features (assuming of course that I can unlock them).

All of this was optimistic, but I was still not sure I could turn this into a mobile friendly dev environment. Taking a cue from my Scheme workflow I setup the following:

First, I created a keyboard shortcut that allows me to type Alt-o and be dropped into Forth. With the existing keyboard shortcuts in place, I can type Alt-M to switch to an editor Alt-o to switch me back to gforth.

Next, I created a file named .gforthrc in:

 /sdcard/gforth/home/.gforthrc

and put the following contents in it:

." BAS init " cr
 
: lex ( - )
 s" /sdcard/Documents/ex1.fs" included ;

That code doesn't do a whole lot other than announce that the file was executed setup the word lex for me to use. .gforthrc is a magic file, in that it gets loaded anytime gforth is started up.

The lex word, like the scheme equivalent (lex), loads a specific exercise file. In this case, /sdcard/Documents/ex1.fs. This allows me to open this file up in the editor, make changes, switch to gforth and type lex to reload in this file.

I've got a nice edit-eval loop, and when I'm done I can copy ex1.fs into a local git repository for archiving.

I've got to say, the setup truly works!

For now, I've been refreshing my Forth basics by going through the gforth tutorials. Though, I'm eager to tackle the Christmas Programming Praxis challenge, which involves solving 6 'ancient' algorithms. Should be the perfect way to freshen up my Forth skills.

At a minimum I can say this: gforth on Android rocks.

Your next must-carry pocket item: a flacon

And the word of the day is flacon. What's a flacon and why should you care? Improvised Life explains:

Laura actually created a modern version of a flacon, antique-speak for a small stoppered bottle designed to hold valuable elixirs which may deteriorate upon contact with air. Her little hand-tooled vials are 2 1/4″ long by 5/8″ diameter, made in the U.S. of stainless steel and/or aluminum, with a variety of high-tech finishes, and a screw top that seals airtight with an invisible gasket. We find them to be a cool way to take the little things we can’t live without with us everywhere.

The folks over at Improvised Life are talking about this pill holder which has a liquid tight seal. They've used this key chain sized item to hold incense, tea, lavender oil, sea salt, alcohol and hot sauce. Oh, and you could also use it for its intended purpose of storing pills.

I actually have a small pill container on my key chain used to store a Benadryl and one dose Shira's migraine meds. The little pill containers are a steal over at Amazon for $4.30 for 5. While these containers are tiny, they hold a rolled up $20 bill nicely, which could really save the day.

While I like the spirit of the Improvised Life suggestion, I'm not exactly ready to spend $45 on one. Again, Amazon to the rescue. They have 2oz key chain flask which looks like it would do the same job as the pricier model.

And here's a few more ideas of what you could store in such a small container: olive oil, lighter fluid (for your Zippo that keeps losing its supply to evaporation) and Dr. Bronner's Castile Soap (I've always wanted to try product that works for both cleaning your hair and your teeth).

Monday, December 29, 2014

Forth and the Power of Fun

I've written many a blog post discussing my infatuation with the Forth programming language. It's a quirky language that's easy to dismiss, but I'm convinced it's unique design philosophy will one day save the day for one of my projects.

My friend Grant recently published a touching tribute to a friend who was quite productive in the world of Forth (anti-lock break controllers? Awesome!). This inspired me to track down some advice I thought I had picked up from Forth, but couldn't quite be sure.

I've searched for the source of this inspiration advice a number of times, but I could never get Google to cough it up. Motivated by Grant's post, I tried again and today I was successful. Years ago, I read Thinking Forth and this discussion managed to stick with me all that time:

I asked Moore how he would go about developing a particular application, a game for children. As the child presses the digits on the numeric keypad, from zero to nine, that same number of large boxes would appear on the screen.

> Moore: I don’t start at the top and work down. Given that exact problem, I would write a word that draws a box. I’d start at the bottom, and I’d end up with a word called GO, which monitored the keyboard.

How much of that is intuitive?

> Perhaps some degree of it. I know where I’m going so I don’t have to start there. But also it’s more fun to draw boxes than to program a keyboard. I’ll do the thing that’s most fun in order to get into the problem. If I have to clean up all those details later, that’s the price I pay.

Are you advocating a “fun-down” approach?

> Given that you’re doing it in a free-spirit fashion, yes. If we were giving a demonstration to a customer in two days, I’d do it differently . I would start with the most visible thing, not the most fun thing. But still not in that hierarchical sequence, top down. I base my approach on more immediate considerations such as impressing the customer, getting something to work, or showing other people how it’s going to work to get them interested.

So there you have it, Fun-oriented design. This notion of working on the fun part first has stuck with me, and it's an approach I'll opt to take when given the chance. The value it provides is how it helps me get mental traction on a project or component. Heck, if I'm working on a project that seems to have no "fun" part to it, I'll often take a step back and consider how I can correct that. Rather than slog though dozens of boiler plate lines of code, can I can autogenerate the code? Or perhaps rig up some dynamic framework I don't even need to write the code?

It's been years since I've had a discussion/debate about how code should be designed (top down! bottom up! sideways!), but if I had such a discussion I'd have to include the fun-first approach as an option.

Even if you don't become a Forth coder, reading Thinking Forth is definitely worth your time.

Sunday, December 28, 2014

School's in, Lessons by the 4 Professors

For years I've called them the 4 Boys. Not exactly a crazy name, as that's what they were. But after knowing them for 16 years, the kids have sort of outgrown the 'Boys' part of the 4 Boys. My new name: the 4 Professors.

On Saturday night we all met up at Big Buns for delicious "burgers" (I had a fish sandwich) to all catch up. At which point, I got schooled. I heard about life in college, life as a Jeep owner, life as a college athlete, iPhone hacks, life on instagram and the Joys of Working Retail (actually, I used to work retail - not much has changed). It was awesome, and quite an education!

I finally got a full introduction to the world of SnapChat. SnapChat is one of those basic apps that people in my generation only think they get, and are quick to scoff at. Operation is pretty basic: snap a photo, add one line of text, send it off to one or many of your bestest buddies. Your buddies get to look at the message twice, for 10 seconds each. And then the message is gone, poof.

It seems custom built for sending inappropriate pictures, and of course, that's probably what it gets used for.

Any crusty old trend watcher would look at an app like this and say, aha! young people have learned from the sins of previous generations and now don't trust the archival nature of electoric communications.

But, as my teachers explained, snapchats can be trivially captured and archived for later by using the phone's screenshot capability. The fact is, SnapChat is fun, and compared to attaching images to an SMS, far faster. Turns out, mixing images with text does make for a potent combination.

I did feel a bit like an old person this morning when I tried to send Brady a SnapChat but hit send before I typed my message. D'oh. At least I can still outprogram these kids, though I don't think that will be the case forever.

Such good times!





Friday, December 26, 2014

20 Years of Tofu

Two nights ago I was on a date. A date where I've had the same thought for the last twenty years: Don't Blow It.

And like the last 20 years, I enjoyed a delicious meal of tofu, seated across from a stunning girl, trying my best to impress her.

The goal for two nights ago remains the same as it has been for the last twenty years: try to get another date with this same girl. So far, so good. But I'm not getting cocky.

The Possibilities

There's just something remarkable about that pad and pen you find next to the bed in your hotel:

Picking it up you become a writer. An artist. A poet. An entrepreneur sketching out his next billion dollar idea. An architect, whether in the medium of atom or bits. A songwriter, screenwriter or game master. A spy. A mathematician. A solver of problems both great and small.

Tear off that sheet of a paper and you become an aerospace engineer, sculptor, spit-ball launcher and defeater of locks.

The possibilities are endless. And unlike that $8.00 bottle of water, the pen and paper are free.

You can keep your fancy robe and slippers, stocked mini-bar and orthopedic mattress. I'll take the pen and pad any day.

Thursday, December 25, 2014

Review: The Games

I got sucked into the audio version of The Games by Ted Kosmatka, and found myself trying to listen to it whenever I could. I rented the book with zero background information, and quickly realized that it was going to be a Sci-Fi action adventure book, a genre I tend to enjoy.

Kosmatka's view of the not so distant view future was pleasant enough. I got a kick out of the notion that marriage 'expires' after 3 years, unless the partners take steps to renew it for life. I found myself accepting the premise that genetic engineering had greatly advanced to the point where genetic therapies were as common, as say, antibiotics are today. At the core of the book is a new competition in the Olympic Games: each country devises its own genetically modified organism, which then fights to the death (known as gladiators). Oh, and there's a super computer throw into the story for good measure.

This of course opens to the door to interesting discussions about what constitutes life and the ethics behind genetic engineering. Kosmatka's greatest feat may be his ability to create a thoughtful character who argues for the barbaric gladiator event, not against it.

I found it harder to suspend belief on the more mundane aspects of the book. In the future, for example, stadium security at world's mostly watched and protested event will have effectively zero armed police presence. And it will be possible for two adults to be found without a flashlight (not hard you think; but then you remember that every person carrying a cell phone is also carrying a flashlight).

In the end, the book wins because it was entertaining and had a nice dollop of thought provoking material to go with it. I'd give it a 7.5 out of 10.

Tuesday, December 23, 2014

3 Things from an Arlington Elementary School Winter Concert

Ahhh, the Arlington Elementary School Winter Concert. It's becoming one of our Winter Holiday Traditions. It was yet another year of note screeching adorableness as kids of all musical levels demonstrated their know how. Here's 3 things I took away noticing.

Thing #1: check out those clarinet skills!

We were mainly at the concert to cheer on our friend's 4th grader as he made his clarinet debut. Here's his first few notes:

Musical greatness comes from such humble beginnings, no?

Thing #2: how Arlington deals with the December Dilemma

Should the winter concert be a holiday concert? A Christmas concert? A Chanukah-Christmas-Kwanza concert? A Peace Concert? That's the December Dilemma (thanks David for the article). This concert took the path of Diversity and Political Correctness. Here's the kids singing Ocho Kandelikas:

That's a Jewish folks song in the nearly-lost language of Ladino. They also sang a Yiddish folks song, a couple of Chanukah pieces and one piece simply labeled Mazel Tov. There were a couple of esoteric Christmas songs, but almost none of the standard ones you'd expect. The principal was deft enough to wish everyone a happy holiday season and never mention the phrase (that I heard) Merry Christmas.

You could be outraged at this, because well, you can be outraged at just about any practice during the December season (it's too Christian; it's not Christian enough!). But, on the whole, I can live with this approach. Better to use the opportunity to teach the kids that there's all sorts of musical traditions out there, than get mired in Christmas celebration debates. On the other hand, it would be fine with me if they mentioned the C-word, Christmas, more often.

Thing #3: love the Bucket Brigade

Nearing the end of the program a stream of kids entered the auditorium with orange Home Depot buckets and drum sticks. They proceeded to bang away to a number of songs. I don't have an audio clip or photo, so you'll have to take my word that it happened. I've got to think that cost plays a role when it comes to music education, and it was awesome to see that for less than $5 (that's $2.97 for the bucket, and $1.67 for the drum sticks) you can give a kid a drum education. More importantly, it opens kids minds up to the idea that everything about music can be improvised, including (and especially) the instruments.

To make up for the missing Bucket Brigade audio clip, here's one for the spiritual Keep Your Lamps Trimmed and Burning. A drum sets the beat at the beginning of the song.

Monday, December 22, 2014

A Little Photo and Programming Therapy

I marvel at flying. Lost luggage, TSA hassles, late planes, long lines--these are all insignificant when one considers the amazing accomplishment of mass airline transit. Not only can I cover hundreds of miles in an hour or so, but I can do so in relative safety and comfort. And the system does this day in and day out with barely a hitch. Not to mention I get to see the world as our ancestors (and probably most of the planet) could only imagine.

There's just one tiny hitch to my love airline travel: the actual flying part can trigger an unhealthy dose of anxiety. When the plane hits a patch of turbulence, all my rational thoughts are abandoned and my lizard brain takes over: holy smokes, we're in a metal tube thousands of feet above the ground, this isn't right!

So I do what I can to keep the lizard at bay. I watch the flight attendants (if they're happy, I'm happy). I count in my head the seconds after takeoff (knowing that within 60 seconds or so, our steep assent will be completed). I ponder the thought that just a few minutes ago a flight took off the same run way I'm on now, and after we depart, another one will closely follow.

And then there's my attempts at aerial photography attempts. I've found that if I stare out the window and try to focus on just how amazing the scenery is, I can trick my brain into not thinking of falling to certain death. And when I see something amazing, I just have to take pictures of it. Lots of pictures. Call it photo therapy. Here's a few photos our last flight:

To catch a sunrise at 20,000 feet; what a treat!

Another trick I've been using of late: solving programming-praxis problems mid-flight. This last trip I tackled the free-time exercise. You can find my finished solution here. Apparently I can't multi-task when it comes to coding and being terrified; it has to be one or the other. So if I can get deep into a problem, I forget that I'm supposed to be worried about falling out of the sky.

One of these days perhaps these gimmicks won't be necessary. In the mean time, I'm going to keep trying to outsmart myself to a more comfortable flight.

Yet Another Way To Eat Hot Dogs - Yum!

Lately, I've been making a quick (and obvious) breakfast treat: Bisquick biscuits. The recipe on the box takes just a minute to prepare (or 90 seconds as the slogan went), and by the time they come out of the oven I've got the rest of my breakfast made (like, say, poached eggs). Nothing exotic here, but fresh bread in any form is a treat in the morning.

This evening Shira came home with a special treat. It was this box of Bisquick:

OK, it's gluten free. But that's not the big deal. The big deal is the fact that this box of Bisquick, unlike the normal version, is marked parve. (A standard box of Bisquick is marked dairy)

And what does one do with parve Bisquick? Well, make hot dog biscuits, of course. What a silly question.

(That's just the recipe for biscuits on the box with chopped up hot dogs mixed in and then baked as suggested)

Between my love of all things biscuit, and Shira's love of all things hot dog, we had a winner of a treat at dinner tonight.

Sunday, December 21, 2014

Boston Chanukah, Day 3

Boston in winter is a double edged sword. On one hand, when the weather is right there's snow adventures to be had. On the other hand, it's friggin cold and that means a big potential for cabin fever. With only a day to fill before we were heading back to DC, we had little problem packing in the activities.

We started the day at Skyzone, a trampoline park. The kids loved it, and it was such a treat to just let them go wild. I'm sure they'll like it even more when they are older and can join in on the dodgeball court.

From jumping we went to lunch at Jerusalem Pita. Poor Dovid was confused when no matter how many times he asked for waffles none showed up at the table. It took us a few tries to realize that we kept mentioning falafel, and he kept hearing waffles. Not to fear, the kids (and I) ate themselves so full of Middle Eastern food, nobody could complain.

After lunch we went back home where we did a little 'camping.' My Mom had sent the kids a ladybug tent and the kids were eager to set it up and play with it. It took Elana, Shira, Ron and Myself to all figure it, but eventually we did. The kids had a blast. As the photos below show, Shira actually got herself and the 4 children in the tent at one point. Good for her!

After playing in the tent we told campfire stories while we "roasted" marshmallows. The fire may not have been real, but the marshmallows were. At first Gavriella wasn't interested in the small puffy treat, but after Shira managed to have her try the smallest amount of one, she was hooked. If Gavriella ends up with a love of marshmallows that equals that of Shira, we'll know the incident that kicked it all off.

Finally, we did a little play-doh time. Dovid, no surprise, made a train engine. However, he wasn't satisfied till he had also created a coal tender. Duh, how else was the train supposed to go if not by coal? Chana made various accoutrements for her doll, Lamby, including a purple cape and yellow anklet. Lamby was styling. And Tzipora proudly created a family of balls. Who can argue with a family of balls?

What a day filled with fun. Our flight back to DC couldn't have been more uneventful. We're so thankful we had such a wonderful trip to Boston!

View Photos

Saturday, December 20, 2014

Chanukah in Boston

Shira and I gave ourselves a special Chanukah treat: we're visiting our nieces and nephew in Boston!

Yesterday we took the kids to the Children's Discovery Museum in Acton. The kids have been asking to go back pretty much since we left the place a year ago. Even though not a lot has changed (a room filled with stuffed animals became a camping room, equipped with fake campfire and tent for the kids to play in), they still loved the "museum." They may be getting a tad bit old for it, but they certainly had a blast.

This was Gavriella's first trip to the museum, and she absolutely loved it. Check out the photos below of her playing with her reflections in two mirrors. Watching her make sense of of her copies was quite the treat!

Today we had the usual laid back Shabbat. Post Shabbat we squeezed in a few activities, including some Ed Emberley drawing. Definite good times.

On a completely different note, today we got to me Abraham, Georgia's new little brother. He's sooooooo tiny, and so adorable. Such a treat!

View Photos

Thursday, December 18, 2014

Fire and Ice, a Fun Project

It's Day 2 of the Festival of Lights, so it makes sense to post something light related. Here's a cool project: Diy Botanical Ice Luminaries. Follow the instructions and if all goes well, you end up with a creation like this:

For the truly creative, it would be interesting to fashion a menorah out of ice. It's all a matter of finding the right forms to work with, though I've yet to figure out what those may be. But some creative soul on the web (or my Sister-in-Law) will no doubt figure this out. When this happens, do share.

Via: Recycleart.org

Wednesday, December 17, 2014

Thank Honda and Other Religious Ideas

It isn't often that Shira and I find a theologically related article that we can both agree on, but it happened when she sent me this one: When my son survived a serious accident, I didn’t thank God. I thanked Honda. Here's the setup:

Last Friday night, a semi-trailer pushed the car my son was driving into a Jersey barrier. The trailer’s back wheel landed on the hood of the car, less than six inches from my son’s head. Every window shattered, throwing glass inches from his face.

But my son has not a scratch on him.

I was so overwhelmed with gratitude that I wrote a letter to Honda praising the expertly engineered safety features that saved his life. I explained that I had been in an equally serious accident 18 years earlier and had suffered a serious brain injury and broken bones all over the right side of my body, requiring countless surgeries.

I posted the letter on Facebook, and closed it with this:

> I want to extend my thanks to the engineers who used their intelligence and skill to create a car that safe, to the crash test dummies who have died a thousand horrible deaths and to your executives who did not scrimp on safety.
> Thank you, Honda.

That last line rubbed some people the wrong way. While many who left comments on my post were just glad that my son was alive and well, others wanted to know why I had thanked Honda for that outcome. The entity that deserved my thanks, they said, was God. One commenter wrote: “I am thankful that God held your son in His embrace and I am curious why you thanked Honda rather than Him.”

What makes this story especially interesting to me is the point the author makes later in the article:

Over many years of thinking about religion and faith, I have noticed that something sad and somewhat strange happens when we thank God: We tend to stop there. We simply overlook the decisions, the science, the policies and the people who contributed to the “miracle.” To put it another way: When we focus on supernatural deliverance from harm, we often ignore all of the human ways we can improve our own safety. I am concerned that we may associate survival of serious accidents with the unpredictable hand of Providence, not with airbags, safety testing and the regulations that have put them in place.

I think this is an important and valid point. It reminds me of the old joke:

So there's this huge flood one day, and an entire town looks like it's going to be swallowed up by the waters. And the Police and Rescue Agencies are running all over the place trying to get people to safety.

So they send the rescue boat over to this house where a guy's sitting on the roof with the water lapping around his ankles and they say "Come on, quickly, there isn't much time"

To which he says "Nah, it's ok, God will Provide"

So about an hour later they're zooming past in the boat again and they notice the guy's still there, only the water's up to his waist, almost at the top of the roof.. "Quick" they say, get in the boat, it's going to get worse before it gets better.

"Nah, don't worry - God will Provide"

An hour after that a rescue helicopter flies over the area and notices the guy, who must be standing on the peak of the roof now, with only his head and shoulders out of the water. "GRAB THE ROPE!" they cry "IT'S YOUR ONLY HOPE!"

"Don't worry" he replies calmly "God will provide."

So he gets drowned of course. And he goes to heaven, and is a little ticked off with god for drowning him like that, and expresses his concern saying "I had FAITH, I BELIEVED in you - and still you didn't help me"

"HELP YOU?!" God replies "What MORE did you want - I sent you two boats and a helicopter!"

This story actually came at an interesting time. I'm writing this post on the first day of Chanukah, a holiday where we recognize and celebrate miracles. Here's to doing that, and to appreciating all the miraculous things happen in our lives. And when those events happen, here's to saying thanks to all those who help make those miracles happen! Even Honda.

Tuesday, December 16, 2014

Install this app, and clear your mind

I've had two fresh nudges to experiment with meditation. The first is from our instructor over at EvolveAll martial arts gym. He starts his classes with a minute or two of meditation, and it's a wonderfully pleasant way to start the class. The other influence is from our Rabbi, no less.

This past Shabbat I managed to make it to services early enough to join her for her 9:30am meditation club. The idea is to help congregants relax and open their mind so that they can get the most out of services. This may seem like a new-age shmaltzy practice, but it's in fact quite ancient. If it worked for the Rabbis of the Talmud, who am I to argue with the practice?

Anyway, the Rabbi lead us on a guided meditation and I tried my best to keep up. When it was over I was amazed at just how relaxed I had become. It was like a spa treatment minus the hassle of going to the spa.

Between our instructor and our Rabbi, I'm thinking there really may be something to this meditation fad!

With this new found respect for meditation, I thought I should take the next geeky step and install a Guided Meditation app on my phone. That way, next time I'm stranded in an airport or coping with a bout of insomnia, I can put the time to good use.

Our Martial Arts instructor suggested we try headspace, though I was a bit turned off by the subscription fee. Instead, I installed calm.com's app, which of course, also has quite a bit of paid content. Though, it does contain enough free content to get me started (headspace also offers some free content; so in the end, they are probably equivalent).

I really shouldn't be knocking the paid content side of this. For this type of app, quality is essential and paying a few bucks for it is more than justified.

So go ahead and try one of these apps. If you're like me, you'll be amazed at how much impact you can have on your self by literally doing nothing.

Oh, and as a bonus tip: head over to calm.com. The music and background image alone should help chill you out.

Monday, December 15, 2014

The Accidental Arborist

A little over a month ago I was psyched: I had 3 tiny little buds peeking up from the dirt where I had planted my etrog seeds. I was content; life had been created where there was none and surely the little guys wouldn't make it much longer. And then a funny thing happened, more and more seeds sprouted. Before I knew it, I had an entire (very tiny) etrog forest:

I don't really have any idea what I am doing, but I figured that trying to fashion some sort of greenhouse would be a good thing. So I combined a file holder and some Saran Wrap to make a micro greenhouse:

To dress things up, I dropped in a temperature / humidity meter I had lying into the dirt with the plant. It showed that the humidity stayed quite high, so I guess that's a good thing.

This last weekend I finally bit the bullet and moved some of the plants out of the Tupperware where they had been into real pots:

I still don't have high hopes for these guys, so I figure I better celebrate as many successes as I can. I'm sure I'm over-watering them, or under-sunning them or something. But they continue to live and I continue to be surprised.

Incidentally, the seeds DCT planted have also done surprisingly well:

Though, that's what I love about fava beans, they're a robust enough plant they even survive me.

Perfectly Poached Eggs in 45 Seconds

Well, this is extremely handy to know: if you take a tea cup, add half a cup of water to it, drop an egg in it, cover it with a saucer and microwave the arrangement for 45 seconds you end up with a poached egg:

The egg on the left was in the microwave for 1 minute and the egg on the right was in for 45 seconds. At 30 seconds the egg was totally uncooked.

(Oh, and for the sake of completeness breakfast also consisted of a Trader Joe's veggie sausage patty and Utz's Pumpernickel Pretzel Sticks - yum!)

I suppose you're supposed to scoff at this method of egg preparation:

Look, no one should really cook eggs in a microwave if there’s a stove nearby. Because they’re just not going to taste as good. ...

But that's a load of hooey. The above method was fast and quite tasty. And you're not limited poaching, here's 11 more methods for egg prep in the microwave.

You're welcome.

Thursday, December 11, 2014

Fearless, Courageous and a little bit Crazy: The Pilots of the Aéropostale

Try doing a Google Image search for Aéropostale. If you're like me, you'll receive a page full of company logos and store photos. Now hold that thought.

I'm making my way through Wind, Sand and Stars, Antoine de Saint-Exupery's book which includes lyrical descriptions of him and his fellow Aéropostale pilots. And let me tell you, these guys were incredible. Think Pony Express, but in the air, with unreliable aircraft, extremely limited instruments, and the slimmest margin for error. Just about every flight involved risking your life.

Now consider those Google search results. To have the term Aéropostale usurped by a trendy clothing company is just pathetic.

Take this tale of Henri Guillaumet, an Aéropostale pilot who's route consisted of crossing the Andes:

This particular flight took place in June 1930. The Buenos Aires-Santiago route, which had opened several months before, was the most difficult of all, and the famous pilot Mermoz had chosen Guillaumet to fly it. The Andes' peaks rose to an altitude of 7,000 metres; planes at this time could not reach such heights and so had to weave their way through the mountains.

When he left Santiago in his Potez 25, Guillaumet had made this flight a hundred times before. At an altitude of 6,500 metres, he ran into a huge storm. He set down near Laguna Diamente, a lake that he knew. When he tried to take off again, a layer of snow, 80 centimetres deep, overturned his machine. Hidden under his plane, he could hear other Aeropostale planes that had been sent to rescue him, but he wasn't able to see them. He decided to walk, dressed in his leather pilot suit and an overcoat.

Spoiler alert: depending on the account you read he either walked for 3 days and 3 nights or 5 days and 4 nights before he was finally rescued. Within 3 weeks he was flying again. And most importantly, after the snow melted the plane was recovered and the mail was finally forwarded on to its final destination. The letters were marked in a classically bureaucratic manner with the phrase "Service Delay." Delay indeed.

This should be a snapshot of the recovered plane:

And here's one of those "Service Delay" letters:

Speaking of delivering the mail by plane, there's actually an important airmail site about 10 minutes drive from our home. That would be the field where the first mail delivery flight occurred between DC and New York with a stop over in Philadelphia:

On that fog shrouded mid-May morning in 1918, President Woodrow Wilson handed his personal letter of greetings to a very young and relatively inexperienced Army Air Service pilot at Potomac Park polo grounds in Washington, DC, to be flown to the Mayor of New York City, via a relay stopover at Philadelphia, PA. Simultaneously, another Army pilot was departing from Hazelhurst Field on Long Island, NY, for the same relay handover point in Philly. This may sound simple to modern readers, but in wartime 1918, with springtime dense morning fog over the entire northeast coast, and no available pilots trained in ANY cross country navigation, let alone instrument flying, this was taking extremely high risk.

Like nearly all demos, the presenters thought they had a foolproof plan. And like nearly all demos, nothing worked as expected. In this case, the plan was to have the pilot fly Northeast to Philadelphia by using railroad tracks as a navigational reference. Yeah, didn't quite work out:

A short time [after takeoff], a phone call was received at the polo field communications tent. It was Lt. Boyle. He had gotten lost and made an emergency landing in a farmer’s field. The stub crops caught the landing gear spreader bar and the prop dug in and flipped the JN onto its back. He was unhurt. The mail was not damaged or lost. His location was a farm in Waldorf, MD, southeast of Washington, not northeast. He had followed the railroad tracks, but the wrong tracks.

D'oh. How classic.

I'm telling you, I'll never look at a letter stamped "Air Mail" quite the same way again. These guys are my new heroes.

Wednesday, December 10, 2014

Create Your Own Personal Bat Phone in 30 Minutes

Here's a nifty hardware project: Handmade Intercom Using Vintage Phones and Buzzer DIY. The idea is that hard wiring up a pair of vintage (push button?) phones requires little more than telephone cord and a 9 volt battery. The creator of the tutorial, Teddy Hashee, shows how a phone line splitter can be used to make the project look especially clean.

The tutorial also sets up a buzzer to simulate a ringer. I find that section of the tutorial to be quite clever as it shows how you can leverage the complexity of the phone without having to understand all the details of it (something I do in programming daily, yet panic and forget to do when dealing with hardware).

The author of the tutorial knocks this project out in 30 minutes. I'm sure it would take a weekend, if not two, for me to pull it off. But when I was done, I would have a point-to-point Bat Phone. How cool would that be? (OK, I don't really have a need for such a thing. When Shira needs my attention, depending on distance and urgency, yelling or placing a cell phone call usually works just fine.)

Here, watch the tutorial:

View Video

Via: ZombieHunters.org

Tuesday, December 09, 2014

Review: Tales of a Female Nomad: Living at Large in the World

I was about 30 pages into Tales of a Female Nomad: Living at Large in the World, when it hit me: this book was published 7 years *before* The Four Hour Work Week. In fact, many of the stories happened years, if not decades earlier.

This is important because it helps put the book into context. If this book were written today, it would almost be a novelty. Another individual finding inner peace through minimalism and lifestyle design. Good for them. However, in a world where I step off the plane in Ecuador and have instant access to the web from my phone, this bare bones lifestyle may actually not be so bare.

But Rita Golden Gelman, author of Tales of a Female Nomad, was embracing this lifestyle long before Tim Ferris showed us The Way. Niceties like Skype, AirBNB, Google Translate and even e-mail simply hadn't been invented yet. And more than that, there weren't websites and books that articulated how a simple and mobile lifestyle could actually be a healthy and fulfilling one. In this light, Gelman's journeys are downright impressive.

Another element of this story that makes it unique is that Gelman jumps into this lifestyle not as an eager 20-something, but as an out-of-shape 40 year old divorcee, with no vagabonding experience. She needs to figure it all out from scratch. Big props to her for pulling this off.

So her accomplishments are great, and the stories solid ones. However, as a narrative, I'm not entirely blown away. It took me most of the book to figure out why, but I do believe I finally untangled it.

I believe that Gelman was almost shooting for a fairly raw log of her stories. She's willing to share her successes and failures, as well as the successes and failures of those around her. It's that last bit that I think through me the most. Travel long enough and you'll find amazing people, as well as jerks. And she appears to dutifully document both. At first it almost came across as passive aggressive. Sure, you can be a jerk to me, but I'm the wrighter, I'll get the last word in. But, I think that's being unkind. I think Gelman was just trying to capture the good and bad. And so if you're going report on the person who generously opened their home to you, then you might as well report on people who took advantage of you.

In the end, I found her books nowhere near as entertaining as a Bill Bryson adventure (the Gold Standard, if you will). But, if you're interested in long term travel, this is definitely an important book to read. She demonstrates over and over again how you can make your own serendipity while traveling, and how this can lead to amazing experiences. At the same time, she also shows how things don't always go as planned and how loneliness, disappointment and missed opportunities also come with the lifestyle. Read it to soak up all her lessons.

Oh, and lesson learned: never piss off a writer.

Monday, December 08, 2014

Trigraphs, Diana Pads and Zombies

I'm browsing this guy's zombie response kit when I noticed this item here:

This naturally raises the questions: (a) what's a tri-graph and (b) how does it help with "clandestine" communications?

Of course, the Internet explains: a tri-graph (or is it trigraph?) is a lookup table used in One Time Pad (OTP) encryption. One example of an OTP are pages and pages of random text. If you and I have copies of the same one time pad, then we can use a tri-graph as follows:

1. Pick a line in the OTP (known as our key text). Say:

  VAXPM IPIXU QUXIP MAXIU

2. Write the clear text below it:

  VAXPM IPIXU QUXIP MAXIU
  MEETA TTENT ONIGH TXXXX

(that's: meet at 10 tonight)

3. For each letter, look up the key text and plain text character in the trigraph and find the resulting encrypted text.

  VAXPM IPIXU QUXIP MAXIU
  MEETA TTENT ONIGH TXXXX
  SVYRN YRNPM VSULD UCFUI

Because of the symmetric nature of the tri-graph, I can decode the text using the same procedure. That is, if I look up a key and encrypted letter, I will arrive and the decoded letter.

That may seem like a neat parlor trick, but the fact is, the above encryption is actually quite strong. In fact, assuming that the pads are truly randomly generated, never reused and never compromised the system is unbreakable.

One use case for the above system was during the Vietnam War:

Special Forces were one of (if not the only) units in Vietnam to utilize Morse code on a regular basis. We used a method of encryption called the Diana Cryptosystem.

The basis of these "One-Time Pads", is that there were only two matching pads in existence, and they would only be used one time. They were booklets that contained randomly generated groups of 5-letter "words;” 30 words to a page. The person sending a message would first write the letters to the message, over these random groups of words. Included in the front of each one-time pad was a one-page encryption table. If I wanted to send the letter "P", and the letter under the "P" was an "A", then I would send a "K". The person listening on the frequency at the other end, would have the other matching pad. They would write the letter they received (a "K") over the letter in their one-time pad (an "A"), and decipher it based on the table, yielding the original letter "P".

Each communication site in Vietnam (we had over 100 A-Camps along the Cambodian / Laotian border, and some 20 B-detachment sites spread over the country) had a different pad, depending on the location they were having the commo-check with. It obviously was very important that both people were using the appropriate matching pads, or the deciphered messages would not make any sense.

After a while, most of us became so proficient with the system, that we actually learned the deciphering matrix by heart. No matter what pads anyone had, the combinations always were the same. i.e. Any 3 letters always went together, regardless of the order; "BKO"/"KOB"/"OBK"/"BOK". After listening to thousands and thousands of transmissions, it really got quite simple. If I was listening to code, and a letter "B" was sent (now remember, we usually sent around 20-25 "words" (5 letters per word) a minute, hence the importance of the "speed" keys!), and the letter it was associated with was an "O", most of us would decipher as we heard it, and just write the "K". That may sound like quite a yarn, but it is absolutely true.

That's my kind of solution: simple enough that a a soldier can manually execute the encryption and send it over Morse Code, yet sophisticated enough that the code was effectively unbreakable.

Naturally, I had to experiment with this encryption, and of course, write some code to make it easier to play with. You can find the code here, or copied below. The code provides two top level function: make-pad which generates characters for a one time pad and tri-lookup which does the tri-graph lookup:

(In the session above, k is the key text and p is the plain text)

Thinking more about this form of encryption, it's remarkable how practical it could be. For example, if both my wife and I had a business card sized piece of paper packed with random characters, we could send dozens of short messages to each other using the above technique. Furthermore, any stream of text that we agree upon could be used as a key. While random text would be ideal, technically any string of characters would work. We could use song lyrics, the 5th paragraph from the 2nd story on the 3rd page of the New York Times, street names from a map, ingredients on a shampoo bottle, etc. Heck, you could even incorporate the clue to the key in the messages. For example:

 K541 8151 Z781 0742 AI06 PU72 EBXBH HGOXU

Where K541 8151 Z781 0742 AI06 PU72 corresponds to tweet 541815178107420672 (the spaces and letters are meant to throw off attackers).

Of course, straying from randomized text definitely weakens the setup. I wouldn't want to protect state secrets or call in an air strike using these short-cuts. But, this would work for leaving a romantic note to my wife or other less than sensitive message.

At the end of the day, I suppose the most important question is: does a tri-graph belong in your zombie fighting kit? Heck yeah! It also belongs in your kids play fort setup, and teenager's clandestine communication kit.


;;
;; Implement a version of One Time Pad encryption.
;; Use a trigraph / diana pad method
;; http://danmorgan76.wordpress.com/2013/09/30/encryption-via-a-one-time-pad/
;; http://home.earthlink.net/~specforces/spdiana.htm
;; 

(define (a->i letter)
 (- (char->integer letter) 65))
  
(define (i->a index)
 (integer->char (+ 65 index)))
 
(define (rand-char)
 (i->a (random-integer 26)))

(define (range low high)
 (if (> low high) '() (cons low (range (+ 1 low) high))))
 
(define (head items)
 (let loop ((i 0) (items items) (accum '()))
  (cond ((or (null? items) (= i 5)) (reverse accum))
        (else
         (loop (+ i 1) (cdr items) (cons (car items) accum))))))

(define (tail items)
 (reverse (head (reverse items))))
 
(define (make-pad rows cols)
 (define (make-block)
  (apply string (map (lambda (i) (rand-char)) (range 1 5))))
 (define (make-row)
  (for-each (lambda (i)
             (if (> i 1) (display " ")) 
             (display (make-block)))
            (range 1 cols)))
 (for-each (lambda (i)
             (make-row) (newline))
           (range 1 rows)))

(define (tri-row i)
 (reverse (map (lambda (pos)
                 (i->a (modulo (- pos i) 26)))
          (range 0 25))))

(define (tri-lookup key plain)
 (let loop ((key (string->list key))
            (plain (string->list plain))
            (coded '()))
  (cond ((null? plain) (apply string (reverse coded)))
        ((equal? #\space (car plain))
         (loop (cdr key) (cdr plain)
               (cons #\space coded)))
        (else
         (let ((row (a->i (car plain)))
               (col (a->i (car key))))
           (loop (cdr key) (cdr plain) 
                 (cons (list-ref (tri-row row) col) coded)))))))          
(define k "ASDFA POUYK")
(define p "HELLO WORLD")

Thursday, December 04, 2014

Android App Recipes

Elizabeth asked for some Android App suggestions a while back, and I've been embarrassingly late in replying. But here goes. I've decided to organize the apps by task. Hope that helps.

Any favorite apps you see I've forgotten?

Wednesday, December 03, 2014

Photography Tips for Capturing the Milky Way

I was really impressed with this photography tutorial: How to Photograph the Milky Way in Light Pollution. It clearly outlines the technique of using ETTR to capture as much image data as possible, and gives this handy little gem:

To start, I use a standard Milky Way exposure of of 30 seconds at F2.8 and ISO 6400. These are the same exposure settings that I use to start all of my Milky Way photographs regardless of the conditions.

Well that's certainly good to know.

Now all I need is a location that's nice and dark and I'm ready to give astrophotography a try. Lots more info can be found here.

Via: PictureCorrect.com

Tuesday, December 02, 2014

My Wife, The Expert

An expert on getting Migraines, that is. Here she is in all her nightly news glory!

View Video

So yeah, if you think you get headaches from shifts in the weather you're not imagining things. You're just a member of a somewhat exclusive club along with my wife.

Monday, December 01, 2014

Bag, Wallet and Laptop - 3 Ecuadorian Travel Tweaks

Shira and I are zipping our way from Miami to DC, and I've got a few minutes to kill so I thought I'd do a quick gear post related to our trip. From a gear perspective, not a whole lot changed this trip, which is probably a good thing. But, in the spirit of experimentation, I did mix a few things up.

First off, I used a different travel / camera / touring bag. During the last few trips I'd been using whatever basic backpack I had lying around. But for this trip, I purchased an army surplus Finnish Gas Mask bag. That may sound like an odd choice, but this particular bag has a following on the web. The bag itself is fairly small but just managed to hold exactly what I needed it to. Here's a few snapshots:

(Look at all that legroom next to the bag. That's one of the reasons this bag rocks for traveling.)

Here's what's inside:

Unexpectedly, the bag contained some pockets that perfectly fit the Lenspen, Altoids Tin, Buff, Anker battery pack and other tiny items. The result was that it was actually a joy to pack this bag and getting access to items on the fly was easy.

The construction of the bag, as you would imagine, is quite utilitarian. It contains two sets of straps: a shoulder strap and a waist strap. Using the shoulder strap alone got old after a while, as it's pretty narrow. As goofy as it sounds (and probably looks), the waist strap actually worked quite well to carry heavy loads, and I used it during a day hike and a few long walks. The bag closes by using two heavy duty snaps, which I found reliable though they didn't immediately look that way. While the straps tarps and closure are not the perfect design, they both held up well and were quite functional.

My hope was that bag's olive drab color, and army surplus canvas would make it a less appealing target to thieves. When compared to a high end camera bag, I've got to think this bag doesn't exactly scream "Steal Me." On the other hand, I so look like a tourist that I doubt any bag could help tone that image down. And I'm sure I'm not the first traveler who's tried to camouflage his gear to look less pricey. My guess is that an experience thief could see right through this little charade.

With that said, the bag is basically the size of a large purse, so it can be kept track of easier than a backpack. So maybe it is a good choice for security purposes.

I picked up the bag for a whopping $6.95 from KeepShooting.com. Given all the above, you'd think it's a no brainier to buy. The only catch is that when it arrived it smelled awful (which is apparently normal for army surplus goods, but man, what a pain). I then doused the bag in Febreze, and so for a good week it stunk of Febreze smell (which was better than mildew, but not by a whole lot). Now it has a pretty neutral odor, so in the end it worked out. But be aware that the stink is something you'll need to fight with. There's no definitive solution on how to get rid of it, and if you do go the Febreze route, do so sparingly.

As a sort of travel / camera bag, I'd have to say the bag is a winner. Especially when you factor in price. You really can't go wrong here. (Assuming, of course, that your gear is compact enough to fit in the bag.)

The next gear change was also security related. A couple weeks before I left for Ecuador, I took my credit cards, driver's license, metro card, medical insurance card, backup access codes, one solitary paper check and some cash, and clipped the items together with a binder clip. I then stripped all identifying items from my wallet, leaving only a bunch of cash, some utility items (mainly a Fresnel lens, floss card, plastic produce bag and an Ikea paper tape measure) and a couple of important looking, but useless plastic cards (like my Kinkos card). Here's the result:

The idea, of course, is that if I needed to hand over my wallet to a mugger, I'd be giving up cash and nothing of real value (though, I do love that Ikea paper tape measure!). While in DC, I was surprised how much I liked the new setup. I could grab just the binder clipped essentials and drop them into a front pocket, and when I had the space I could grab my wallet which contained some useful extras. This worked especially well for sweatpants where pocket space is at a premium.

I'm hardly the first person to use a binder clip as an improvised minimalist wallet, I'm just glad to report that it does indeed work.

In fact, it worked all throughout Ecuador. Though once I was in the country for 24 hours I added one more item to the wallet: a pretty descent size length of toilet paper. Given the country's occasionally odd toilet paper habits (make sure you grab it before you enter the stall; don't flush it, throw it in a special trash bag), this bonus supply was well worth carrying.

In the end, I never needed a throw-away wallet, nor was I ever in a situation that truly called for carrying one. But having the clipped together goodies always in my front pocket definitely made for extra piece of mind. I think I'll continue to keep this arrangement up, even when I'm back in DC.

Finally, the last bit of gear experimentation was software, not hardware related.

Before every trip Shira and I take we have a spirited discussion about bringing a laptop. Regardless of the destination, there's always the possibility of it getting lost or stolen (heck, it could be left in the Taxi on the way to the airport). And with that loss is potential disclosure of private info. I could leave the laptop at home, but I get so much use out of it, that's almost always a non-starter (though, for overnight, day trips and keeping me entertained on flights I've been getting by with my Perixx Keyboard and cell phone. Heck, I'm typing this blog post up using this setup).

OK, so I decide I'm bringing a laptop. The next question is, how should I secure it? There are all sorts of possibilities, ranging from leaving the hard drive at home and just booting off a USB thumb drive, to re-installing Windows and bringing a fresh image on the computer. Alternatively, I could lock things down using a heavy dose of encryption. (I already use two-factor authentication my Google Accounts, so that's at least taken care of).

The problem with all these solutions is that they take time to setup and test. And of course, we had this discussion about laptops the night before we were leaving.

The solution we came up with then was super simple. We took an old laptop of ours and created a new admin user. We then logged in as that admin user and deleted all the other accounts, including the files, of the existing users. The result was a essentially a clean slate, though we didn't have to re-install Windows or the programs that we typically use (like Picasa or Firefox).

This arrangement ended up working quite well. The laptop was totally usable, but didn't contain checked out source code, web browsing history, or any saved passwords. A determined hacker could still recover the data, but I'm far less concerned about that doomsday scenario.

So there you have it, a few tweaks to my travelers bag of tricks. Do have any suggestions I should try on my next trip?

Ecuador Adventure - Day 7

Well, it had to happen. Our trip has come to a close. I'm typing this blog entry at 30,000 feet as we head to Miami.

This morning we had no problem making it to the relatively new and fancy airport, but for the life of us, we didn't see any signs saying where to return our rental car. So, we pulled up at the arrivals area and I ran inside. Luckily, the Avis rep was there at 4:45am. He told us to just leave the car parked along the curb and that he would take care of everything. And so we left our rental car in a spot that would have triggered an airport shutdown in the States and just walked away.

This contrast of having a modern Airport with old-school relaxed policies, captures well our experience in Ecuador. It was like zipping along on major highway and seeing cows grazing along the roadside and pedestrians playing Frogger trying to get across. It's a nice mixture and makes for a fun place to visit.

Here are some other observations about Ecuador, and Quito in specific. Food and gas can be had for cheap! All the gas stations we saw are selling gas for $1.48 per gallon. We had lunch in one random restaurant in Quito where Shira and I both had a large juice, soup, pasta and a fruit cup for desert and the total bill was just over $8.00. That was one heck of a meal for $4.00 each. And as I've already mentioned, the fruit market was a similar experience in terms of value.

Quito has to be among the most scenic locations we've ever visited. Nearly everywhere we looked there's a gorgeous view. Unlike, say, South Africa where one mountain dominates the skyline, here every direction you look is filled with picturesque mountains, as well as constantly shifting fluffy white clouds. I found myself pleading with Shira at every curve of the road to stop and let me snap some photos.

The best piece of advice we received was from our friend Abbie who suggested we rent a car. A number of sources on the web cautioned against this. I'm glad we ignored them. Yes, taxis in Quito are cheap. But, Quito is huge, so being able to just jump in the car and go somewhere was absolutely key for us. Sure, the driving is a bit on the crazy side, but nothing Shira couldn't handle. On top of all that, the twisty mountain roads would have guaranteed a very carsick wife had she not been driving.

All in all, we thoroughly enjoyed Ecuador. It had the outdoorsy activities we love so much, plenty of delicious foods to try and breathtaking views. Definitely check it out!

Oh, and sorry about the lack of photos from today. We started the day at 4:30am and were at the airport before sunrise. Heck, I didn't even have a window seat to shoot cloud photos. Still, I made do.

View Photos