This last weekend I had the tremendous pleasure of spending it with the incredibly bright, creative and inventive students of Georgia Tech. The occasion was a “hack for good,” an intense 24 hour code-cutting marathon where the participants were challenged to use their talents to conceive, design, build and demonstrate applications that would be used to help combat the growing epidemic of childhood obesity we are facing in this country. This was a part of the Intel “code for good” program and because I had met Professor Matthew Wolf when I participated in the hackathon that was a part of the IDF, he had invited Pivotal to play a part, allowing us to provide the PaaS that the student projects would be hosted on. Intel, in addition to keeping the participants well fed, also provided brand new Samsung Galaxy Tabs (Intel Inside®) that quickly became a central point of each of the apps. So, let me tell you about those apps.
First, I have to say that I was blown away by the inventiveness of each of the student teams.
Team MEM@ (mee-ma) (the name was constructed from the first character of the writing on the t-shirts worn by each team member) worked on a geo-caching type of application. Their target participants would use the tablet to bring up a Google map on which a location was marked; the first location, and all subsequent locations, are calculated dynamically by consulting Google Places for entities in relative proximity to the current lat/long coordinates. As the player advances to the location their route is marked on the map and their velocity is calculated. When goals are reached, clues are delivered and new goal locations are designated. Her or his progress and achieved milestones are recorded and the team envisioned using that data to report both traditional reports such as calories burned, and to enable more creative reward systems. And, that data is stored in the cloud, enabling big-data type scenarios (appropriately annonymized of course ;-)). In terms of effectiveness at achieving the goal of combating obesity, spot on!
Briefly, their architecture is NodeJS and Angular on the client side, with NodeJS on the server and MongoDB for persistence. One interesting thing is that when they began their development, they used a SaaS MongoDB for their testDB, even before pushing the app to Cloud Foundry. The other team started by installing Mongo locally, which for one participant was an hours-long operation because he had recently upgraded to Mavericks and had to recompile bunches of stuff on his machine; team MEM@ spent all of a couple of minutes provisioning their test DB. Value of “aaS” realized!
After 24+ hours inside it was wonderful to go outside on an absolutely stellar day in Atlanta for a live demo of their app. Some races ensued. Great job Team MEM@!
Team RADD (also initials, but not from t-shirts :-)) came up with an idea of a multi-device game where tablets (or any other device that has HTML 5 supporting browsers, so really, any device) could be placed around an area, ideally with some space separating them. The app allowed users to log in and join a “room” and when play commenced, a “Pokeball” would appear on one of the devices signed into that virtual room. Tapping on that device would cause the ball to jump to a possibly different device, encouraging physical movement in the course of playing the game. The individual who tapped the final ball of the game was the winner. How. Cool. Is. That? While none of the students have children of their own, as the only “mom” in the room, I immediately saw gleeful madness happening at birthday parties (hmm, my dear, sweet Summer has a birthday coming up really soon :-)), kids reinventing the game with team dynamics and even, as team RADD themselves predicted, with possible wrestling ensuing. Again, easy to see an immediate connection to the goal of combatting obesity.
Briefly, their architecture had the user interface written in HTML 5 and javascript, served from Cloud Foundry, communicating via RESTful services, also running in Cloud Foundry, to a Mongo DB persistence tier, leveraging the Cloud Foundry services marketplace. The team elected to take the opportunity to learn some Ruby in implementing their web services and their Sinatra-based app deployed no problem using the Ruby buildpack embedded in Cloud Foundry. All in all, a pretty smooth operation for them.
During the demo, participants from the other team also joined in with their devices and some movement of our own, complete with the predicted wrestling, ensued. Check out the final report from the team:
Awesome job Team RADD!
One more thing I got a big kick out of was the Intel XDK, which is a renamed version of the Intel acquired AppMobi product. This XDK allows the developer to take their single code base and cross-compile it for a whole host of different mobile devices, and for the web browser too. My Intel counterpart, Brad Hill, took a game app he had written and within the first hour had used the XDK to compile the code, include it in a basic web app and push it into Cloud Foundry using these simple instructions from my esteemed colleague Andy Piper. One push to the cloud and then he delivered to and was running the native app on both his mobile phone and the Galaxy Tab. I don’t spend much time on the client side, and I never built a native mobile app but I was tickled by easy it was for him to target a range of devices, and the delivery through the cloud was also easy-peasy.
What a blast! Being a bit of an exercise enthusiast myself I really appreciated the direction that both teams ended up heading with their projects. The students’ energy and enthusiasm was infectious, so much so that when I did go to the hotel to try and get some sleep, they had me so charged up I only managed about three hours in the wee hours of the morning. I was delighted with their success with Cloud Foundry and perhaps I can get them to post links to their goods.
Sincere thanks to Georgia Tech for inviting Pivotal to participate and to Intel for a tremendous program. You guys are doing really great stuff here!