Microsoft Artist in Residency (AiR) Training/Competition

The AiR program is put on by the Silverlight platform evangelists at Microsoft. Ten teams consisting of one developer and one designer were invited to the training/competition. We had 10 days (including the weekend) to learn Silverlight (most of us had no previous SL experience whatsoever) and concept, design, and build an application. We (Patrick Hansen and I) decided to build an online, collaborative musical step sequencer. We’re both passionate about music, and this seemed like an original idea that would push the limits of the technology and also be fun/interesting enough to generate some social/viral buzz. Think integration with MSN Messenger, FaceBook, MySpace, etc.

We worked our asses off for the full 10 days. We worked the weekends, always more than 8 hours a day (usually closer to 14-16 a day). Patrick came up with a killer design, where his knowledge of musical gear definitely came in handy. I faced some interesting technical challenges, the least of which being that I’d never actually used C# or .NET for ANYTHING. Things turned out pretty well though, and we had tons of fun, learned a lot at a very fast pace (my favorite!) and got to COMPETE, which is always important when it comes to my motivation to do anything (I’m a fierce, but friendly competitor).

The team from Sapient was in the office next to ours, and we ended up spending a lot of time with them. We bounced ideas back and forth, shared in successes and failures, and really ended up encouraging and congratulating each other a lot. It was friendly competition, but both teams knew that we were really arch rivals underneath the newly developed friendships.

When everything was said and done, and we had made our presentations to the other competitors and some key people at Microsoft, Sapient walked away with the award for the best app. They built a music player based on Audio Scrobbler data that was described as “Pandora done right.” I would agree with this; the UX was wonderful; the aesthetics and usability were simply beautiful. One can imagine leaving this app running on a plasma at a party, letting some good tunes and some beautiful imagery coexist to feed the aesthetic appetites of our generation. Cheers to the Sapient team!

We won the award for best presentation, which I suppose is 2nd place. I believe that we sold the app…generated some buzz about it. I’m actually hoping to tweak some things on the app and release it on my site in few weeks so that people can play with it.

For the sake of brevity, I won’t mention all of the other apps from the other teams, but they were all great projects. I was incredibly inspired by and grateful for the creative energy flowing around these teams. Their technical prowess was also impressive. To know that most had barely even heard of Silverlight before the training, and see the end result at the end of 10 days – brilliant.

Good stories…all the people involved in this competition were really awesome. They were the absolute top-notch people in this industry, but they were humble (the most important quality in my book), kind, laid back, and just down to earth. We had lots of drunken fun together and several of us are already discussing trips to see each other and hang out some more. I plan ot make it to LA to hang out with the Sapient guys, and to Austin to hang out with the Avenue A/Razorfish guys as well. Overall, lots of fulfilling geekery and satisfying competition.
We also got 70% off at the MS store, so I got Halo3, a full copy of Vista, and a really cool wi-fi hacking/security book for under $100.

Now I’m headed to Denver, where I’d like to demo our app to our coworkers, but can’t because we built it in SilverLight 2, which hasn’t been released yet. They’re supposed to release it (soon!), but I (a) work on a Mac, and (b) don’t know if I saved all of the installation files necessary to run the newer version of the build. I guess I’ll have to wait until they release the legitimate version and hope our build still works.

That’s the story.

Cheers

You go ahead, I’ll be taking OFFF

Today was the first day of the OFFF NYC conference. It’s been going for a couple of years, but this is the first time it has come to the US (it’s always been in Barcelona).
I don’t really know what to say about things, but I’ll probably be posting some photos here or on my Flickr soon. I was very inspired by the Reactable and by a presentation by Scott Hansen of Tycho/ISO50.
I’m really pretty speechless right now. I have a million thoughts running through my head but not much to say. I guess that means goodbye!

Music, Media, Art, Technology

I’m in NYC. My band, The Weather Inside, played last night at Kenny’s Castaways in Greenwich Village. I’m staying in Brooklyn with a friend, and I will be attending OFFF NYC in early November. Jonathan is coming up for the conference too, as well as some coworkers/pals.

I don’t have much technical content to present right now. I’ve been working on a few interesting things, including a financial charting application, but it seems that my right brain is taking precedence in the winter months – as is usually the case. I’ll post something technical when I feel I’ve got something important to share.

Cheers for now. Go to OFFF!

This Ain’t Your Mom’s Middle Tier….or, Apache Tomcat/Adobe LiveCycle Data Services (LCDS) on OSX

So, I’ve been getting into Adobe’s LiveCycle Data Services (LCDS) for a project I’m working on. This is really my first foray into Java application servers in the first place (except for some minimal JRun installations for testing out ColdFusion), and definitely my first meeting with the middle tier offerings from Adobe.

The first step was to download Apache Tomcat and get it running. Tomcat is a Java application server that allows you to serve up servlets and JSPs (if you want to get into J2EE development, you’ll need something more robust like WebLogic, JBoss, or WebSphere). I’m developing on a MacBook Pro with OSX 10.4.10, and I could not run Tomcat 6 without some serious freeze-ups. I’m on the JRE 1.5, and things should have been clean, but they weren’t. So, I just backed up to Tomcat 5.5 and everything has been smooth since.
The installation/setup should be really simple, but you may need to edit the startup.sh or catalina.sh files to set the Java heap size when Tomcat starts up (I was running into java.lang.OutOfMemoryException errors when trying to compile some sample apps provided by Adobe). To do this, open up the $TOMCAT_DIR/bin/catalina.sh file in a text editor, and look for a line that starts with JAVA_OPTS="$JAVA_OPTS "...
Go to the next line and type:
JAVA_OPTS="$JAVA_OPTS "-ms64M" "-mx512M""
This will make your minimum heap size 64MB, and the maximum 512MB. This should fix your troubles…but adjust as necessary.

The next step is to download LCDS. Adobe is offering a free ES version that allows you to use it in production environments with unlimited users, but it is limited to one CPU. Pretty good deal if you ask me…and it should work perfectly for your learnin’.

This is where things get a bit less obvious. If you’re on OSX, you’ll notice that Adobe has no love for you when it comes to LCDS. You can still use it, you’ll just have to download the Linux version. After downloading, you’ll see that it’s a .bin.sh file, but you can actually use the unzip command in your terminal to extract the files. After extracting, you’ll notice a R_ directory wherever you executed the unzip command. Go into this directory and look around…you’ll find a dist/flex.war file and a dist/samples.war file. You will put these files into the $TOMCAT_DIR/webapps directory, and when you start Tomcat next, it should autodeploy the WAR file (it will extract it, read its configuration files, and let you access the Flex services) as long as you have the autodeploy option set to true in Tomcat (it is true by default).

That’s about it for the initial setup. I would recommend pointing your browser to the samples/testdrive directory (if you’ve left everything default for the Tomcat installation, this would be http://localhost:8080/samples/testdrive).

That’s it! Now get busy learning about LCDS!