It was an experiment on a technical presentation format where we essentially did nine 5 minute lightning talks on different
languages and databases (complete with air horns to let us know when to switch).

So what am I most excited about and will keep playing with? That would be Go (so awesome - it’s like the best of all languages rolled into one),
R (say goodbye to spreadsheets forever), and VoltDB (newSQL awesomeness).

Electric Imp FTW!

Oct 2nd, 2012

I got in on an early developer release of a few Electric Imp boards. I first saw them
at the Maker Faire and was blown away. I have to say they are
amazing! The “internet of things” is for real, and these guys are leading the charge. Here’s what I did with mine.

I have this theory that I can make my house more efficient by improving air circulation between the loft and the basement.
I eventually plan on running two 4 inch ducts between the basement and the loft and having in-line duct fans push and pull air
to help circulate it based on the variation of temperatures. This should take the load off the A/C unit and make the temperatures
more consistent. But first, I need a baseline to see if my theory is correct.

I’ve got the Hannah board in the loft with the imp sending the current temperature every 10 minutes to a Ruby application hosted on
Heroku. I also have a Ruby client on the Raspberry Pi that is sending the basement temperature and another
that gets the current outdoor temperature from the NWS (for correlation purposes). It’s pretty sweet.

What I love:

Over-the-air updates are amazing. You save on the developer website and watch those LEDs on the Imp board show it’s updating. No serial cables or nuthin’. It’s really like magic.

Setting up WiFi for the Imp is a snap with an Android (or iOS) device. No joking, the app flashes your phone’s screen to transmit WiFi configuration settings to the Imp so it can connect. It’s science fiction.

I’m really digging Squirrel. It’s small, expressive, and much more fun than working with Arduinos. A great choice in programming languages.

Sending the collected data from Hannah board to an external service is literally as easy as a few clicks and drags in the developer planner.

There is only one thing that could be improved (and from their forums it looks like it is in the works). That would be more control over
external HTTP services. Currently, a JSON HTTP POST structure can’t be modified. It works for my purpose, but I would love the ability
to change the JSON structure and have full control of the HTTP request.

One should always choose the programming language that reduces the impedance mismatch between a problem and its solution.

Or, in other words, don’t use Java in the browser for rich web applications
and don’t use web technologies for native mobile apps. On an editorial note and IMNSHO, every developer
should be JavaScript proficient. It’s not the assembly of the web (I’ve never seen any assembly that is powerful, expressive, and
a multi-paradigm advocate, have you?). It’s not bad (or more bad than other languages) and it has a lot more good parts than people give
it credit for. On top of that, it’s ubiquitous.

I’m not saying there’s something wrong with Java. It’ll be around for a long time (forever maybe). It just may not be the best
solution for all your problems. I also think that “Java as a platform” (i.e., the virtual machine) has a big future (think Scala, Jython, Clojure, etc).

Enough editorializing, option two above is the best. Embrace change. Be uncomfortable. That’s how you know you’re learning.

Here’s how you can grok new languages and get up to speed quickly. Keep in mind
that the only way to achieve true mastery of a language is to put in the keyboard time. This just helps you ramp up quickly.

Get some context (ignore the pundits and the stereotypical developer hubris - at least at first)

Why was the language created?

For example, Lua was created in Brazil due to trade barriers that caused it to be built domestically from scratch.

LaTeX Resume

Aug 29th, 2012

I decided to put my recently acquired LaTeX skills to use and update my resume. It’s an amalgam of a number or resumes and ideas that I’ve
admired recently. I wanted it to be concise (single page), well-designed, and light on fluff (no objective, etc.).