So, last week (Mon thru Weds), I spent the better part of each day participating in the Dreamforce Hackathon 2011 #DFHack – the result of three days’ work on creating SocialVoxels was a nice $5000 prize via American Express Gift Cards (which are actually an oddity to use, being not accepted in a number of places I usually shop at). I’m typically the weird one out presenting the app that’s just odd — yet, eerily on-the-mark for the event. A couple of people have asked me how I came up with the idea, and what the whole process was like – so here goes:

Initial Ideas Stage / Sunday

I found out about #DFHack late, so I didn’t start my brainstorming and planning process until Saturday/Sunday. For this initial stage, I typically work in phases, with raw “first blush” ideas, then read-the-rules (and judging criteria), then idea filtering, last-round ideas, then final filtering. This whole process is typically done in parallel, so to speak, as I tackle weekend errands and such – and get inspired by these usually dull events. Checking into Costco on Foursquare, scrolling through the usual bunch of comments, transportation, the works. There are generally tons of tips for every popular venue, just as there are tons of comments for every popular post online. There’s lots of people out there. But, people’s comments get lost in a sea of text. There’s a problem with metadata being analyzed in a totally anonymous or stats-only way. There’s also a problem with people trying to find what they need in this mess of metadata. Good stuff gets lost – and the more social stuff we have, the more stuff goes up there, and the more of that gets lost.

I had two ideas left in “final filtering” –

  1. a graph based “true relevance” search engine:

    Basically, “what you need, when you need it… through the social graph.” People update certain need-to-know status’s such as I need a job, or I have to sell a Burberry scarf, or I need a room, then using the relations-based magic of a graph database, they start knowing who in their circle (and beyond) can “answer” these needs for them. Then scrapping from twitter and craigslist and such, it also expands to beyond just the people in the network. The plus of this is that InfiniteGraph is doing the graph magic… and it runs on Java, and Heroku (one of three choices for cloud tech to use to meet the hackathon requirement) is good for Java. Also, showing a graph-based demo onscreen looks cool! The minus is that I’d have to demo with a small real data set (due to… no reach!), and have to demo using a lot of bull’d data.
  2. a human-readable way to express checkin data:

    Well, this would have to be creative, since omniscience or the ken to perceive-it-all in light of infinite-data is something we mere-humans lack. I like building things in 3d – but then there’s always a limit to how much you can convey on mobile. And then there’s whether your typical user would get it. For the most part, everyone gets Lego block’s, even if they might not totally like them. And user data as consciously contributed by the user is almost always lost in a sea of text – it’s the bane of letting *everyone* post. Human eye’s were not designed for reading, per se – if you believe in evolution, eyes are really just for visual stuff – like, there’s a huge cave there, don’t run smack into it! So, what if, everyone user could contribute a block, tied to their metadata (of course), to create a new virtual “statistic” of a venue. Looking at the Dreamforce agenda, especially that whole iPad Executive thing, it seems that mobile tablet’s are totally in this year, although I could show that awesome self-searching graph from the first idea on the iPad as well.

The first idea was on my mind largely because of InfiniteGraph 2.0, which came out the week before at NoSQL Conference. I thought about the last bit and thought that it’d be neat to be able to display something other than the usual chartsy stuff based on statistics, a data type, that – since conception – is human readable, and not just some shady metadata “collected anonymously for analytics purposes only”. And then, I thought about how I could kill two birds with one stone with the InfiniteGraph Hackathon, too… I was really tempted to do the graph thing, but then I thought back to the whole Semantic Web movement, and how insignificant the graph hack stuff is in light of that (and facebook and linkedin graph’s and such) – and especially since I’d be basically depending too hugely on the db to make the local associations and such. It would have been almost like going to a barrista competition with a “secret sauce” of having Starbucks ready to cater.. Rules…

Always keep the rules – three main criteria in mind…

Originality/Innovation – 25%

The submission creates an innovative and original solution to a known problem or creates a new market opportunity. Innovation isn’t strictly about ideas, the submission also executes on the innovative idea

When you go to a cloud conference, the thing that EVERYONE has is data. Lots of data. Most of it junk or not-easily-made-useful. Much of it ephemeral. Poof, and then it’s no use. And then it’s left for the analytics folks to do magic with Hadoop and such. The point being, most of the data collected was never really meant for human eyes to be able to comprehend, which is why stuff like Hadoop is da bomb (kind of like quantum physics – you need a uber-scope like a SEM to be able to “see” any of it – if you call that seeing).

What if there were a data type (other than photo’s) that was intrinsically conveyed for human eyes? It’s beyond the usual metadata, for sure. Hmm but how could this be useful data… Well, make it fun, at least…

Add in some sound — in-line with my other phase with uber-accessibility and pipedream of letting blind people “see” on eyes-dependent touchscreen smartphone’s. Assign colors to musical note’s, and create an un-changeable – the order of the blocks played according to each note as color.

Effective Use of Cloud Tech – 25%

The submission utilizes all available cloud technology to it’s full potential and avoids using on premise solutions where possible

Lots of data needs cloud storage.

Relevance to the DF11 “Social Enterprise” theme – 25%

The submission is relevant to the Hackathon Social Enterprise theme. It’s Mobile, Social, or Open.

Totally, all three! But, more on the Social Enterprise:

  1. true relevancy via graph – imagine HR being able to instantly recruit that one employee to change the world
  2. lego-ize the world – a new social metric! – “a new social enterprise – imagine the millions of people out there… each contributing a voxel at a venue”

Judges Proclivity – 25%

Is the submission a high quality submission? Would you use this application?

I’ve been lucky enough to attend enough startup pitch’s in front of similar audience type’s to have a good feel for the last one (I’m generally 9/10 in-agreement with the outcome – there’s always the odd one, where the judges end up picking the pansy — whhh-why?).

So, to answer the last one, my answer was – yes, I would *so* love to do Minecraft in the real world! Yes, there was a risk of business-type’s not “getting” what I was doing, wherein .

The Meat of the Hack

The way I do hackathon’s is that I go there with a solid idea, and then, when I’m finally there, I start building it from scratch (with the help of frameworks, libraries, the expected high level programming and scripting languages, and such generica, of course). It’s a purist’s perspective — and it’s also aptly scrappy: if it doesn’t turn out well, you’ve lost the least amount of time. (And, you’ve had another chance to experience the zen in that state of chaos in your head on “the brinks of exhaustion”. Truly, this boundary between consciousness and unconsciousness is an awesome state to milk for ideas that could change the world. Or gem’s that you can use to prove yourself insane to yourself!)

On Monday, I started setting down the foundations of the core engine. This was “architecture in a day.” (And, yes, this explains for why 90% of all hackathon app’s need to be rewritten. Design, in the architecture sense, is the most important element for the long-term stability of an app – and it should take week’s, not hours to do.) Part of the day was LucidChart flowchart’s, UML diagram’s, layout sketches, and Todoist for tasklisting. The other part of the day was actually coding the 3d engine for adding the block’s – which didn’t take long at all, thanks to Unity. At the end of the day, the app was wrapper’d up with data ready to be i/o’ed to cloud storage.

On Tuesday and part of Wednesday, I focused on integrating a bunch of API’s and i/o-ing data from the cloud. I also tested my iPad 2 out a bit, on the sort of GPS. I phased in and out of different Dreamforce session’s, attended the evening events – a few reception’s and parties in the usual SF haunt’s, and also, the Metallica concert!

By Thursday, I was in zombie mode, both for having worked quasi-intensely through most of the day and attending a bunch of evening events (averaging about 3 hours of sleep a night).

And then the part I’d spent most of Thursday preparing for — pitching. I’m not good at public speaking or pitching, but well, I guess, in the worst case scenario, if nothing happens, I get another chance to practice pitching. It went okay, as, I guess, some parts of my point went through. I didn’t get to demo as much of the app as I’d like (it was 2 minutes, strict) — and I didn’t even get to explain the real social enterprise significance.

So, the guy I’m TR-ing an AR book for won first place, and I won second. (No relation — we met for the first time at the event. Apress does everything too remotely, no one knows anyone on the stack.)