It's funny how often i forget that what makes a hack anything other than an entry in a nerdy show and tell is how it's marketed.
Lately, i've been dealing with a good number of hacks. Anyone who knows me (or has seen my board) knows that i keep at least a dozen project ideas on it at all times. Some are long term, some are not. It's kinda paying off in weird ways in that i'm now kinda the official unofficial friendly neighborhood guy to go to when you've got a wierd idea and want to see it actually happen.
There's an interesting side point to this though. There's a progression with various hackery:
1. Have the idea
This is the easiest part. Anyone can have a really good idea. They're brain crack.
2. Make it happen
This is also kinda easy. Ok, not if you're code-phobic or otherwise engineeringly challenged.
3. Show the demo
This is the hard part. Sure, some demos are able to carry themselves and allow you to really bring our your idea, but honestly, they're few and far between. No, what gets a hack from "cool idea" to something real is how much you drive the point.
Consider the vaunted Open Hack Day held at Yahoo! i was one of the guys that did the pre-stage setup for folks, so yeah i got to see most of the hacks folks were presenting. There were a LOT of really good ideas and some really interesting demos that died horribly due to bad showmanship. One of the more famous "hacks" was a simple flash app that was presented well and struck a chord with the audience.
Is 90 seconds really enough time to present a demo? Hell no. One thing i've learned is that there's no sin in having a heavily pre-canned version ready to go for the presentation so that the demo-deamons don't hit.
It's a point that works pretty universally, but let me present my hack presentation guidelines:
1. Simple.
Seriously, make your hack simple to understand. Doing predictive analysis of object memory management criteria based on abstraction of Mayan calendar dates that dumps out octal link tables may indeed be clever, but nobody's going to understand it. Until you can get something that your less techy significant other/family member/cat can figure out and say "Wow!", don't bother. Use that linking optimizer as part of a larger system that shows the same code running 200% faster. They'll get that.
2. Aim Low.
Kind of part of #1, but smaller hacks have a greater completion rate. Think LEGO blocks. They're small, fit together and let you make cool things. Hacks should be like that. It's also useful, because much like LEGO, you'll often be able to use smaller bits elsewhere.
3. Never Give Up.
This is the big one. Let's say you've spent eight hours working on something, it bombs. That doesn't mean it's a dumb idea and everyone thinks you're an idiot. Get your thoughts and acts together. Talk with some other folks, get their input. You'll get a better product and you can retry.
4. Get a Spokes Model
If you can't speak or feel uncomfortable doing it, get someone who can. It's just that simple.
Granted, it took me a bit to figure those out and to stop complaining about 'how nobody appreciated my hack'. Get over yourself and figure out what you're doing wrong. No one wants you to fail. Nobody is trying to stand in your way.
Shut up and do something.