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
[[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],[2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],[2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2],[2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2],[2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2],[2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2],[2,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2],[2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,5,5,5,5,5,6,6,5,5,4,4,4,3,3,3,3,3,3,3,2,2,2,2,2,2,2],[2,2,2,2,2,3,3,3,3,3,4,4,4,5,5,6,7,7,7,8,0,0,0,7,6,5,4,4,3,3,3,3,3,3,2,2,2,2,2,2,2],[2,2,2,2,2,3,3,3,3,3,4,4,5,7,0,0,0,0,0,0,0,0,0,0,0,6,5,4,4,3,3,3,3,3,3,2,2,2,2,2,2],[2,2,2,2,3,3,3,3,3,4,4,5,7,0,0,0,0,0,0,0,0,0,0,0,0,8,6,5,4,4,3,3,3,3,3,3,2,2,2,2,2],[2,2,2,2,3,3,3,3,4,4,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,6,5,4,4,3,3,3,3,3,2,2,2,2,2],[2,2,2,2,3,3,3,3,4,4,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,5,4,4,3,3,3,3,3,3,2,2,2,2],[2,2,2,3,3,3,3,3,4,5,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,5,4,4,3,3,3,3,3,2,2,2,2],[2,2,2,3,3,3,3,3,4,5,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,5,4,4,3,3,3,3,3,2,2,2,2],[2,2,2,3,3,3,3,3,4,5,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,5,4,4,3,3,3,3,3,2,2,2,2],[2,2,2,3,3,3,3,3,4,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,5,4,4,3,3,3,3,3,2,2,2],[2,2,2,3,3,3,3,3,4,4,5,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,5,4,4,3,3,3,3,3,2,2,2],[2,2,2,3,3,3,3,3,4,4,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,5,4,4,3,3,3,3,3,2,2,2],[2,2,2,3,3,3,3,3,4,4,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,5,4,4,3,3,3,3,3,2,2,2],[2,2,2,3,3,3,3,3,4,4,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,5,4,3,3,3,3,3,2,2,2],[2,2,2,2,3,3,3,3,3,4,4,5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,5,4,3,3,3,3,3,2,2,2],[2,2,2,2,3,3,3,3,3,4,4,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,5,4,3,3,3,3,3,2,2,2],[2,2,2,2,3,3,3,3,3,4,4,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,5,4,3,3,3,3,3,2,2,2],[2,2,2,2,3,3,3,3,3,3,4,4,5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,4,4,3,3,3,3,2,2,2,2],[2,2,2,2,2,3,3,3,3,3,4,4,5,6,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,5,4,4,3,3,3,3,2,2,2,2],[2,2,2,2,2,3,3,3,3,3,3,4,4,5,6,8,0,0,0,0,0,0,0,0,0,0,0,0,7,5,4,4,3,3,3,3,3,2,2,2,2],[2,2,2,2,2,2,3,3,3,3,3,3,4,4,5,6,0,0,0,0,0,0,0,0,0,0,0,7,5,4,4,3,3,3,3,3,2,2,2,2,2],[2,2,2,2,2,2,2,3,3,3,3,3,3,4,4,5,6,7,0,0,0,8,7,7,7,6,5,5,4,4,4,3,3,3,3,3,2,2,2,2,2],[2,2,2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,5,5,6,6,5,5,5,5,5,4,4,4,3,3,3,3,3,3,2,2,2,2,2,2],[2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,3,3,3,2,2,2,2,2,2,2],[2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2],[2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2],[2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2],[2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2],[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2],[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2]]
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!