My new friend, Mr. Arduino.

Thursday, July 30, 2009 Posted by

A year ago at OSCON I was on the exhibition floor and discovered a great booth called Maker’s Shed. They’re connected with O’Reilly’s Make magazine, which is a quarterly journal for harware hackers — folks who actually enjoy dissecting electronics, building hardware gadgets, modifying things, and aren’t afraid of either circuits or soldering irons. But it wasn’t until this year back at the conference I really got “sucked in”. I really had no idea what a huge cottage industry this hobby has become! The net is full of websites with all sorts of do-it-yourself electronics projects and discussion boards for sharing tips and ideas.

In particular, a huge hub of activity has centered around the Arduino board, which is a little circuit board containing a basic 16mhz Atmega CPU. It has multiple digital and analog input and output pins; it can be powered either by a 9V battery or by a USB cable; it’s able to speak to a host computer via that same USB cable as well. The thing is tiny, and the spec is entirely open source. While the original Italian manufacturer still sells them like hotcakes for $30, the open-source spec has spawned a bunch of clone competitors as well. Whatever the case, the Arduino seems to be ground zero for a lot of crazy experimentation these days. All you need to do is add sensors (switches, knobs, photo-sensors, temperature sensors, tilt and accelerometer sensors, microphones, etc.) and add whatever actuators you want (motors, LEDs, or network modules!) You download a simple programming environment, write code in a simplified java/C hybrid language (see the Processing site), and poof, the IDE cross-compiles your code and pushes it down to the Arduino. The CPU starts executing it in a loop right away!

It’s the low barrier to entry that seems to have caused this hobby to take off. The USB cable is an incredibly simple way to supply both power and data/communications. The board itself has +5V to power most simple sensors and actuators: just use jumpers to connect the pins to a solderless breadboard, and you can prototype any gadget in just a few minutes! A whole secondary “accessory” industry has taken off as well: if you look at this list of parts, you’ll see all sorts of Arduino extensions for sale: bluetooth modules, ethernet modules (which speak TCP/IP on-board!), motor modules, wi-fi mesh-network modules, GPS modules, sound modules… even an autonomous blimp you can control via IR or RF!

Youtube and other places are full of all sorts of videos demonstrating how to build things, solder things correctly, test circuits with a multimeter, and so on. I’ve been particularly enthralled with Lady Ada’s site. She’s got instructions to build a dozen crazy-cool projects, and seems to be doing well by selling all the parts to her readers as convenient little “kits”. I particularly like her design for a DIY “TV-B-Gone”, and the pocket-sized RF jammer. No, she won’t sell the parts for the jammer, since it’s technically an illegal device. 🙂

So I dived in last week and bought the Advanced Starter Kit, which is fairly good. Lots of parts (though unlabeled/undocumented), and comes with a big book of recipes. For people starting with very little EE background, however, you’ve absolutely got to get the Getting Started with Arduino book, which is written by a company co-founder and is a quick read. For my first project, I built something similar to what he demonstrates at the end of the book: a tri-color RGB LED hooked up to a solderless breadboard, then linked into the Arduino:

…just pop it all into a travel soap-box, and pop a ping-pong ball on top to diffuse the light:

Voila! Just plug it into a big computer, and write a program to poll some internet data and then send RGB colors to the device. You can make it any color you want, have it flash, pulse, whatever. I’ve set it up in my office in the middle of our cube space, such that it reflects the status of our team’s continuous build. Sweet.

One last thing I’ve discovered: I have no real electronics background. Sure, I remember adding up resistors and capacitors in series and parallel back in high school, but it didn’t mean anything to me. Now I find myself asking questions like “why did they put a resistor at that point in the circuit?”, and it frustrates me not to be able to design a sound circuit the same way I design software. One of the more experienced EE folk here at the office advised me that “hardware engineers do the same thing as software engineers: they use high-level design patterns. They memorize circuits for accomplishing certain things and then plug them together.” I guess that makes sense, but I’m a top-down learner and really craved the underlying theory of semiconductors and such. So I ran off to my local Radio Shack and bought this classic Forrest Mims book on the fundamentals of electronics. It was written in 1983, seems to have been re-printed a dozen times, and seems to be the most popular intro book ever written. It’s really awesome, and I’d recommend it to everyone starting to fool with the Arduino. It’s in stock at almost every Radio Shack store, and the website will even tell you which stores have it.

The last four years

Monday, June 22, 2009 Posted by

A lot changes in four years: people arrive and people leave.

I keep having this dream over and over — it’s not so much a dream that I have at night, but a recurring sort of daydream, some sort of metaphorical interpretation of reality that keeps popping into my head.

I imagine my whole life as a long movie, complete with interesting characters, plot twists, adventures, and so on. The movie is wrapping up and preparing for a sequel. My wife and I are in a big grassy field, and my parents approach to say good-bye. “You’re leaving now?” I ask dumbfoundedly. “You don’t need us anymore, and our work here is done” they say, and then give me big hugs. I hear the distant giggles of two small boys coming over the hill towards us. “Be sure to pass on the love,” they say, “and remember everything we’ve taught you.” And then they romantically mosey off into the sunset. As I watch them vanish, my two sons crash into my legs giggling, asking for attention. And then we cut to credits with happy music.

Maybe the human mind really does store all experience in the form of stories. Or maybe I’ve just watched too much Hollywood.

Oh Dear… Must Resist

Friday, June 12, 2009 Posted by

My buddy Andre is getting married today, and in classic Andre-style he asked a few of his buddies (just 5 days ago!) to gather into a last-minute motley band to cover Neil Young’s Harvest Moon as his bride walks down the aisle. Andre is playing guitar along with his soon-to-be brother-in-law, another guy is playing glockenspiel, someone else on percussion, a few female singers. Did he ask me to play banjo? Of course not… certainly not for that song. 🙂 The band needed an electric bass, so he asked me to fill in.

No problem. I mean, I’ve played a bunch of bluegrass guitar and banjo, and a bass is just an oversized guitar, right? What could possibly go wrong?

It turns out I do have an electric bass already, sitting in my closet unused. I bought it at a garage sale in 1997 for $25, and it was in almost-new condition: it had already been sitting unused in a box for 30 years. It was in fine condition except that all the electronics had rusted and become static-ey. Well, I brought it over to good old Dr. Fretgood this week and they replaced the jack and pot-knobs completely, put new strings on… voila! Works great!

It’s a pretty cheap piece of junk, though. It’s a beginner-level bass made by Kay (who is known for excellent upright basses), but made cheap-o basses in the late 60’s. They were all clones of the famous Gibson SG models. As others have said on the net, this bass was the proverbial Sears-Roebuck catalog bass, easily affordable by every 12 year old who wanted to get into rock and roll. Interestingly, these 40 year old basses are now starting to sell for high prices in internet auctions, just because they’re kitchey and some people get a kick out of the retro sound!

We had a simple practice session late last night, and things went great. The band sounds fine, and I managed to bounce simple 1-5 notes on all four chords in the song. I did have an unexepected revelation, however: I never realized how incredibly long the sustain is on a bass. You pluck a note, and it just rings for 10 seconds! So while my guitar skills transferred over okay, I suddenly found myself having to deliberately mute every note I played at some specific time after I plucked it. After a while, it became clear that the muting actions are just as important to the ‘rhythm’ of the bass as the plucking actions. What a strange new thing to have to pay attention to!

I fooled around a bit more today, and figured out how to play the bassline to Zepplin’s Ramble On, one of my most favorite basslines ever. Wow. This could be… really fun. Must resist, I don’t have time for new instruments. 🙂

I need to sit down with a real bass player, however, and learn right-hand picking technique. Right now my instinct is to pluck every darn note with my thumb, because the strings are so huge. I’m sure that’s not right.

My Solar-Powered Phone

Tuesday, May 19, 2009 Posted by

Time for geeky gadget reviews! My first review is of the Solio solar charger. My employer (Google) handed some of these out as “Earth Day gifts” to engineers in Chicago, and it’s pretty cool.

The idea is simple: spread the solar panels, put it in bright sun all day long. The sun charges up its internal battery. Then at night, plug in your cellphone or usb device, and it transfers all of the energy into your gadget. This allows you to walk around saying glib things like “yo, my phone is running on pure solar energy.” OK, maybe not literally… but spiritually. 🙂 This thing is conceivably awesome for camping too.

So does it work?

Yes and no. It works for me, but not exactly as promised. The instructions say that 8 hours of direct sun should charge the battery to 100% (at which point it’s ready to charge your gadgets). But over a month of testing, I’ve concluded that this must only hold true if you live in Florida or somewhere near the equator. It takes at least two days of Chicago sunlight to charge it up. For example, today it was 80 degrees and *intensely* sunny — not a cloud in the sky. I had the thing sitting in a part of the garden that gets direct sun from 8am to 5pm. After 9 hours, it’s only 50% charged.

My other setback is that while it charges my Android G1 phone just perfectly, it doesn’t work on my Kindle. The Kindle sorta acts weird when I plug its usb cable into the Solio: instead of a solid charging light, the light goes on for 5 seconds, then off for 2, then on for 5, and so on. After an hour of this, the Kindle’s battery gets *drained* down to nothing!

But heck, I still like saying that at least my phone is running on solar energy… every other day. 🙂

Mercurial on Google Code

Friday, April 24, 2009 Posted by

You’re not actually surprised are you? 🙂

Read the official blog post for details.

But yes, this is the project I’ve been leading for the last 9 months. I haven’t written any code, but instead it’s been my first chance to really be a ‘tech lead’ (translation: manager) for some truly brilliant programmers on my team. The mercurial-on-bigtable implementation is top-notch.

Note that the feature isn’t finished yet — lots of missing things, lots of bugs to fix still. We’ve not yet fully launched to the public. But you can sign up to be an ‘invited tester’ (if you’re willing to give us feedback), and meanwhile we’ll continue to finish the feature in the public view.

An Exhausting Week: Google Code, Winesburg, Haskell.

Friday, March 6, 2009 Posted by

What a long week!

I was in San Francisco all week visiting Google teammates, cooking up our latest exciting plans for Project Hosting on Google Code. Our whole team is eagerly awaiting the upcoming Google I/O developer conference in May (for programmers who want to use Google technologies in their own works). Still, it’s really exhausting to sit in conference rooms all day with co-workers while working out designs and strategies.

At the end of that trip, I stopped in Kansas City for a day on the way home to Chicago, to check in on the latest re-mounting of our musical Winesburg, Ohio going up at KC Repertory. (This is a huge production, and you can even hear a sample of a song on the theater’s website.) Andre and I got to rehearse the 5-piece pit orchestra, and listen to an unbelievable cast sing the show. The cast is made up of local folks, Chicago folks, and a bunch of famous Broadway pros. I’ve truly never heard the musical sound better… it just gave me goosebumps hearing the vocal harmonies stack on each other in various climax sections!

Now I’m finally home, and I can try to remind my kids who I am again.

On the plane, though, I finally finished my mini “learning Haskell” project. Because, you know, I wasn’t feeling like enough of an oppressed minority — I had to start teaching myself an elitist functional programming language just for kicks. 🙂 I’m having a blast re-wiring brain to solve problems functionally. I wrote a cute little program to compute a Julia Set on the complex plane. Here’s a sample session with the Haskell interpreter:

*Main> :load complex.hs
[1 of 1] Compiling Main ( complex.hs, interpreted )
Ok, modules loaded: Main.

*Main> let win = ComplexWindow (ComplexNum (-2) 2) (ComplexNum 2 (-2))
0.1 100 100

*Main> juliaWindow (ComplexNum 0.1 0.2) win

In all seriousness: if you’re a programmer, it’s important to always be learning new things and new ways of thinking. It keeps your brain in good shape!

Random Act of Kindness

Wednesday, February 25, 2009 Posted by

The old saying goes, “the world is full of jerks, and the internet just makes it seem like they’re all next door.” In fact, even if they’re only a tiny minority among the communities we participate in, they tend to have a disproportionately large impact on our social behaviors. Occasionally a nice surprise happens, though. I got a really nice email today:

This is kind of a strange letter to write, but I just wanted to say “thank you” for your various work in the open source community. I’ve used Subversion for years, but didn’t come to know any of the faces behind it until I started hosting a project at Google Code Hosting (and reading the lists there).

I’ve been impressed by your ability to stick to the philosophies you’ve set up at Google Code, and tireless efforts to defend them. Your patience with some of the more irritating “contributors” to the list should serves as an excellent example for other project leaders.

I know these sorts of fawning e-mails can make one uncomfortable, but (a) one of my best professors taught me to send Thank You notes, and (b) I know that you rarely hear from the people who *appreciate* your work, so having something in your inbox that’s not invective is, hopefully, pleasant.

Keep up the good work!

I guess we tend to forget the majority of folks out there are nice, happy, appreciative folks. They just usually don’t say much on mailing lists. 🙂

Hello, my New Media

Saturday, February 7, 2009 Posted by

Today I was changing my kid’s diaper and singing Hello my Baby to comfort him — I had learned the whole thing in college as part of a barbershop quartet. Everybody knows the first part of the song:

Hello my baby, hello my honey, hello my ragtime gal
Why don’t you send me a kiss by wire? Baby, my heart’s on fire!
If you refuse me, honey you’ll lose me, then you’ll be left alone,
Oh baby — telephone, and tell me I’m your own.

Cliches aside, this song is fascinating to me. It dates back to the (prior) turn of the century and is all about the “novelty” of that crazy new technology called the telephone. It’s a bit like somebody writing a song today extolling the innovation of instant messaging or Facebook. When I got to the relatively unknown bridge part, I was struck by one phrase (in bold):

I’ve got a little baby but she’s out of sight,
I talk to her across the telephone.
I’ve never seen my honey, but she’s mine alright,
So take a tip and leave her alone.
Now every single morning you will hear me yell,
“Hey Central, fix me up across the line” —
he connects me with my honey, and I ring the bell,
and this is what I say to baby mine…

Wait a second. He’s never seen his baby? I’ve heard internet pundits make fun of chatrooms and dating sites… “oh ha ha, they met over the internet. They’ve never even seen each other!” But clearly this is not a new phenomenon! Given that this song is tongue-in-cheek humor, the authors were clearly mocking the telephone in exactly the same way. That’s a revelation to me. Maybe all new communication technologies go through the same stages of sneers and disbelief.

For your cheesy enjoyment, I’ve included an mp3 link of my college barbershop quartet singing this song so you can hear the obscure middle section. If you’re a masochist, I’ve included two more songs performed by our quartet. (The reverb is real: we recorded in a gothic stone foyer.)

And yes, in our quartet photo below (circa 1994) that really is me all the way on the right. We were trying very hard to mimic the famous Norman Rockwell inset. 🙂

Hello, My Baby (mp3, 1.8MB)

Sweet Adeline (mp3, 2.2MB)

Love-Eyes Medley (mp3, 2.9MB)

How to Make a Digital Archive?

Sunday, February 1, 2009 Posted by

OK, in the great tradition of jwz, I must now ask das internets for their opinion on how to proceed on a project. I’ve been asking friends for opinions on this, and I’d like to know what others think.

Here’s the backstory. I’m now an orphan, which at age 36, is a bit freaky. I’m left wondering whether the first 20 years of my life ever happened. Why? There’s no evidence of it left. No more mom or dad, and no more house I grew up in either (it was sold and gut-rehabbed a couple of years ago.) Was my childhood a hallucination? Am I a Cylon?

All that remains is three gigantic boxes of photos and documents extending back through most of the 20th century. They somewhat tell the story of me, my parents, and my grandparents (and a wee bit about my great-grandparents, all eight of whom emigrated to the U.S. around 1900.) Specifically, I’ve got:

  • A bazillion photos (some labeled, some not)
  • Personal letters, notes, drawings, poems, journals, articles
  • Bits of video

My goal is to organize this stuff into something coherent, so that there’s something I can pass down to my descendants. I’d like to create an archive in both physical and digital form that will last 100 years. I’m imagining that I’ll scan everything to disk, annotate as much as I can, and then re-print everything on acid-free paper. I’ll hand my kids the paper albums and a hard disk, with explicit instructions to re-copy the digital data to new media every 10 years or so. (With the understanding that media will change constantly — holographic storage, quantum storage, whatever…)

But my big question is: what formats do I store data in? Which file formats will still be comprehensible in 100 years?

“Paper”, you say. Duh, well sure, that’s why I’m also printing it all out. But the digital form will be far more convenient over the next N decades. I want my descendants to be able to throw this extra terabyte of genealogical data onto their wristwatch… keep it on their iPod Femto for convenience.

  • Should I scan photos to jpg or tiff? The massive size of a tiff file feels ugly to me, but that size difference will be meaningless in 30 years, and maybe the lossless-ness should be what’s important. (Imagine people in 1983 arguing about whether to include a 5kb or 50kb file in a time capsule!)
  • Should documents be scanned to PDF? Tiff? PDF seems really convenient in terms of being able to encapsulate a multiple-page document, as opposed to awkwardly dumping each page of the document as a separate tiff file. But will PDF be readable in 100 years?
  • Video: mpeg4? Which format is the most openly documented, and will still be decodable in the future?
  • Metadata: how do I describe every document? My naive idea is to create an ASCII text file (probably still readable in 100 years!) which lists each file included in the archive by name, and explains the context and signficance of each. The same document would probably include a basic biography of each family member.

Thoughts and comments are most welcome.

Eulogy for Mom

Monday, December 29, 2008 Posted by

This eulogy is really a continuation the one I wrote for Dad in 2005. It was delivered December 29, 2008.

I stood here three years ago and tried to explain the shape of my father’s life, and now, in a strong way I feel like this is a continuation of that same experience. In my mind, it’s often difficult to separate my parents… while intellectually I know that they were both very strong individuals, their union was so perfect that they always felt like a single “parental unit” to me. When dad died, I was not only mourning his passing, but also the passing of the marriage itself.

As I’ve said before, their marriage was simply incredible… the kind of marriage we all dream of and strive for. After 40 years, still holding hands and looking at each other as if they had just started dating. After 40 years, still absolute best friends.

And so it’s been very hard for me to watch mom live as a widow for the last three years. Completely ignoring issues around her physical health, it also felt like part of her soul was missing. While I could clearly see her glow as an individual, her spark still felt somewhat crippled, not quite as bright as I was used to.

So while I’m a bit embarrassed to admit it, mom’s passing is also somewhat of a relief to me — partially because her physical suffering has ended, but moreso because she’s finally no longer separated from her soul-mate. It feels to me like dad left us prematurely, but now finally mom is catching up with him — they’re together again, and things are as they should be.

As I mentioned three years ago, mom and dad had somewhat reverse stereotypical roles as parents. Dad was the “nurturing” parent, while mom was the driving type-A personality, pushing us all to achieve. Her life was one series of of ambitious projects after another.

In college she studied music and voice, and dreamed of being an opera singer. When she realized she’d never make it as a professional singer, her ambition switched: she went to grad school to become a psychologist. It was there she met the love of her life and was married within a year. After graduation, The two of them moved to Elgin and began working together in the state hospital as psychologists. Several years later they decided to have kids, and moved to River Forest. She spent a few years as a stay-at-home mom, while working part-time at Loretto hospital. When we kids were old enough, her ambition kicked in again and she started her own private practice. She then spent 25 years counseling people, billing herself as as a therapist who specialized in “women’s issues”. She and my dad also worked as a dynamite team of marriage counselors: first meeting with husband and wife 1-on-1, then working out issues with all four people in the room.

I don’t think many people realize that in the 80’s mom was working on a book that was never published — one which revolved around issues of feminism. She was part of that first generation of women’s lib, and took real pride in being part of that movement. She strove to be a living example of everything that movement talked about: that it was okay for women to break free of gender stereotypes and be “strong”, to be heads of households, and to have egalitarian marriages. Years later, after I got married, mom was always secretly thrilled watching Frances so easily bounce effortlessly back and forth between children and career. She was immensely proud that she had fought for the culture which enabled Frances to do that — a culture that most folks of my generation now take for granted.

Later in life, when my dad went back to school to get his doctorate in psychology, she pursued her own continuing education by becoming a licensed practicioner of NLP — a branch of hypnotherapy that focuses on mind-body connections, and the ability of people to induce their own healing. She made numerous friends through her training.

And toward the end of her life, when she was diagnosed with carcinoid cancer, she became incredibly active in the community of carcinoid victims. She attended support groups, helped organize conferences, and was a source of comfort and wisdom to hundreds of people on email lists. She was a beacon of strength to the whole community.

So that’s a snapshot of mom’s “external” life — her outward accomplishments. However, her internal life was at least as rich. She always spoke about my brother and I as her “two biggest projects” of which she was the most proud, and her influence on us was immense.

Growing up in our home, she soaked us in a culture of music. Classical radio played in every room of the house, every day. She sang all sorts of lullabies to us, which I now sing to my own kids. While she had given up her idea of being a professional musician, she had a rule in her house that “all kids must take music lessions from age 6 until they move out”. Needless to say, this caused quite a number of fights, usually ending with “you’ll thank me for this someday”. And sure enough, over time, she was right. By the time we were adults we were thanking her. Music is now a major cornerstone of our lives and personalities.

The other major cultural gift she gave us, I think, was her immense drive to learn everything and participate in endless activities. Her appetite for learning was insatiable. We used to joke that she suffered from ‘FMS’ — “Fear of Missing Something”. She had too many hobbies to count — reading, writing, knitting, tatting, neighborhood clubs and organizations. She sang in choirs all through her adult life, all the way into her 60’s. She read a book every two days, and so our house was absolutely overflowing with stacks of paperbacks. Her brain was always hungry for more, and she passed that traitdirectly on to us. She taught me to play chess, how to play piano, how to write BASIC programs on the very earliest home computers. She continuously hounded my brother and I to chase our dreams — urging me to write more musicals, and urging my brother to become an astronomer. Of course, one of the side-effects of FMS was the constant risk of over-extending oneself — but she taught us how to avoid that trap as well.

Over the weekend I joined the carcinoid email-list, to let all of mom’s friends know she had passed. The outpouring of sympathy and stories has simply been tremendous — a huge flow of emails full of shock and sadness. I want to read one particular story I received, which I feel exemplifies mom’s life:

“I met [Dana] for the first time at my first carcinoid support group meeting in Hinsdale […] I was still in shock of being diagnosed […] About 30 minutes into the meeting and listening to others speak about their carcinoid journey, I felt myself coming apart, emotionally, and thought I was going to ‘lose it.’ So, I quietly got up to make an exit from the meeting room & was going to just calm myself down in the hall. Before I knew it, Dana was out there in the hall with me, holding my hand and telling me everything would be O.K. Then she told me about her journey up to then and how well she was doing. She literally embraced me mentally and physically with reassurance. Later in the meeting I learned that she had just lost her husband only about a month before. I could not believe how ‘put together’ she was… soon after her tragic loss. She said she felt from the moment I walked into the meeting that we were kindred spirits. When she spoke at our meetings, we were all in awe of her knowledge of carcinoid and her ability to explain so many concepts, procedures, protocols, research and resources to learn about and fight this disease. […]”

Now my father’s self-admitted life goal was to bring joy to everyone he met. And while my mother never openly admitted to a specific life goal, I think there’s a clear theme that underlies everything she did: she brought hope to everyone she met.

She started her career by comforting ER victims in hospitals, calming them down and raising their spirits, while also assuring the families of the injured. She brought hope to women of her generation, urging them to work for a society free of gender barriers. Over the decades, she brought hope to the hundreds of women she counseled in her private practice: helping to mend their lives and their marriages, helping overcome depression and other ailments. And at the end of her life, she brought tremendous hope to her community of cancer victims, comforting individuals and encouraging them to fight.

So while my father’s headstone reads “Bringer of Joy”, I think it’s fitting that my mother’s headstone have the words “Bringer of Hope”.

Decades from now, someone might walk through the cemetery and wonder what the two mysterious side-by-side epitaphs mean: “Bringer of Joy” and “Bringer of Hope”. And those privileged few of us — those here in this room today, and those lucky enough to know Larry and Dana — get to know the true beauty of the stories behind those words, and what an inspiration these people were. May we all have lives this bright.