Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Hackathon 101

Hackathon 101

A presentation given at Refresh Savannah to get the locals ready for the Geekend Hackathon. It's a primer on doing 24 hour code competitions, what to expect, how to plan for them and what to watch out for.

Kevin Lawver

October 18, 2011
Tweet

More Decks by Kevin Lawver

Other Decks in Technology

Transcript

  1. • Kicks off 11/11 @ 1PM • 24 hour coding

    competition • Details here: http://geek-end.com/blog/ 2011/08/18/announcing-the-geekend- hackathon/
  2. What’s a Hackathon? • Time-limited coding event. You’ve got X

    hours to produce something that works and is impressive. • You bring nothing but a laptop and an idea, and hopefully leave with working code.
  3. Why would I do that? • It’s fun! • It

    gives you an excuse to learn something new and challenge yourself. • Prove your nerd-fu to the world. What can you do in 24 hours?
  4. Where do I start? • Find a small problem to

    solve, that you think you can solve with what you know now + 2-3 new things. • Find a toolset to use - either one you know or want to explore. • Keep your scope limited!
  5. Scoping • Start by defining exactly one feature to tackle.

    • What do you need to write for that? • How many new things are you going to have to learn to make it happen? • I try to keep it to three new things and one or two features.
  6. Hit the ground running • Plunder as much open source

    as you can! • Use open APIs to get you started quickly, but only ones that automatically provision (you don’t have time to wait around). • Do exactly one thing at a time.
  7. Problem • I love Tumblr • But, I want to

    be able to browse just the photos from my friends.
  8. A New Toolset • Rails 3.1.1 • OmniAuth 1.0 preview

    • Tumblr API • Twitter Bootstrap
  9. Why? • I’ve been using Rails pretty much since it

    started, but haven’t done anything with 3.1 yet. • OmniAuth 1.0 is a big change from 0.2.6 • The Tumblr API is new to me, and I dig Tumblr. • Twitter Bootstrap intrigues me.
  10. Starting... • Start with the beginning: authentication. • Created a

    new Rails app • Started messing with OmniAuth and getting authenticated.
  11. Once that worked... • Followed the setup instructions for Twitter

    Bootstrap. • Then got going with the javascript to display just the photos from the dashboard.
  12. Then, the fiddling • Remember, I only gave myself six

    hours. I was running out of time and eventually had to give up getting everything I wanted. • I moved a lot of things around and messed around trying to get the popover stuff working. • It’s not pretty, but I solved the basic problem!
  13. Things I Remembered • Working > Pretty • You can

    always add pretty later if you have time. • Rough is fine as long as it works (or looks like it works). • Take breaks.
  14. Hammering it home • One feature at a time. •

    Don’t start on feature 2 until #1 is finished and working in a demo-able way! • Keep your goals limited and well-defined. If you have time, you can add more, but at least get the very basics working.
  15. Plan Ahead • Know what problem you want to solve.

    • Have a basic plan for what toolset you’re going to use. • Install pre-requisites (but don’t start coding, seriously) • Get your API keys!
  16. Working with a team • Pick a leader / tie

    breaker / burnout warden • Use source control! • Divide responsibilities and decide on integration points / check-in times.
  17. Do Mini-Sprints! • Break up your 24 hours into 6

    four-hour chunks, with check-ins every hour. • Everyone has deliverables that have to be done in that timeframe. • You can come up with this plan ahead of time... it will save organizing time later.
  18. Feature drop! • If things slip, don’t be afraid to

    drop them and re-evaluate. Remember, the goal is to have something working to show at the end! • If you need to, jump in and help with a specific feature to get it working.
  19. Staying Sane • Take breaks, get up and walk around.

    • Sleep if you have to, but if you start sleeping, you might not be able to stop. • Pace yourself - don’t load up on caffeine too early! A slow steady supply will keep you up and alert. • Don’t eat too much. It’ll make you sleepy.
  20. Resources • Programmable Web: http:// www.programmableweb.com/ - Great resource for

    all-things mashup and API • Github: http://github.com - Get ye some source control! • My Hackathon Demo App: https:// github.com/kplawver/hackaphoto - So you know what not to do. ;)
  21. Contact Info • Kevin Lawver • @kplawver • [email protected]

    http://lawver.net • and all the photos were taken by me and are Creative Commons-licensed.