There's a lot going on: enough for a long form post. Too much Twitter, not enough blogging!
Viva MSI Chicago
Living in a science museum for a month, participating in science demos, taking pictures, blogging and tweeting, getting access to places most people don't get access to -- I have completely failed to think of anything more awesome (outside of my immediate family, of course).
MSI Chicago takes the whole thing quite seriously: the application is 14 pages long, with an additional essay and video, due next week. The next round is a phone interview, and the final round is in person, in Chicago.
I'll be thrilled if I just get a follow up phone call, but winning the contest would make my decade.
I've been contracting at Webtrends, working on some cool stuff that may or may not have anything to do with Facebook. Darned NDAs. Regardless, it's been a great opportunity to work with some really smart, well adjusted people.
Speaking of which, if you're looking for the opportunity to work with some really smart and well adjusted people, you should check out the Webtrends Careers page. There's over 30 open positions in engineering, sales, marketing, and other categories.
I'll be here for another couple of months. If you happen to work at Webtrends, come say hi!
Scala and Haskell
Scala is pretty sweet. It's a weird mutt of a language -- object oriented, imperitive, functional, scripted or compiled for the JVM, and groks XML as part of the language. It's fun because it's so flexible: it's easy to jump into, and if you're familiar with the Java universe, you can be immediately productive with all of your existing Java libraries and frameworks.
To a point. The flexibility can also cause some consternation. There are a lot of things you can do with the language that you probably shouldn't do, particularly when it comes to style. That said, if you hang out and share code with some experienced Scala developers, you'll pick up good habits and see some really elegant code.
If I can get a few things together, I might be presenting at a PDX Scala event in the near future. I'll post more here if that happens!
Regarding Haskell -- if you're like me and you don't have much background in functional programming, getting started with Haskell is like getting smacked in the head with a thick book. Fortunately, it's also a good book. And, like any significant head injury (or any good book), Haskell will change you.
My first non-trivial Haskell project is a card shuffler that simulates the action of different shuffling techniques -- riffles, overhand, piles, etc. The challenge isn't to write something that randomizes a deck of cards (fairly trivial), but to build a piece of software whereby you can analyze how shuffling works, and how different techniques influence game play.
It's a great introduction to list manipulation, functional development, lazy evaluation, and the idea of pure functions -- a challenge when dealing with randomization (I'm always up for a vigorous discussion of randomness).
Big thanks to Jonathan over at Galois for helping me up the learning curve, and on a slight tangent, if you're interested in some cutting edge software discussions, check out the Galois Tech Talks. Intimate, detailed, incredibly geeky!
100 Mile Countdown
My last post was about getting off the couch and back on my bike. Since April, I've been riding (almost) every day to get in shape for the Harvest Century -- 100 miles of rolling hills in the Tualatin Valley.
Current status: 50 mile rides aren't killing me, and on the flat lands I can keep up a pace of around 14 MPH. I've also lost 15 pounds. Gotta work on those hills, but I think I can get there in the next two months!
I'm always looking for people who are interested in riding with me! The next opportunity is the Bridge Pedal -- a 40 mile tour of Portland's beautiful bridges on Sunday the 8th.
For the last few months I've been working on a new web application -- Capacity. It's a system for helping small business plan products, manage "just in time" manufacturing, and fulfill orders. Right now I'm working with a couple of companies to help define the product and build out the alpha. We'll probably have real orders flowing through the system by the end of the year, and an official launch in early 2011. But, like all things web and startupy, that's just a rough estimate.
If you'd like to follow our progress, have an interest in using the system, or are just curious, head over to http://getcapacity.com and sign up for the announcement list.