Slide 1

Slide 1 text

So you wanna do a hackathon... Kevin Lawver Refresh Savannah :: 10/18/2011

Slide 2

Slide 2 text

• Kicks off 11/11 @ 1PM • 24 hour coding competition • Details here: http://geek-end.com/blog/ 2011/08/18/announcing-the-geekend- hackathon/

Slide 3

Slide 3 text

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.

Slide 4

Slide 4 text

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?

Slide 5

Slide 5 text

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!

Slide 6

Slide 6 text

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.

Slide 7

Slide 7 text

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.

Slide 8

Slide 8 text

An Example Hack

Slide 9

Slide 9 text

I gave myself 6 hours...

Slide 10

Slide 10 text

What could I get done?

Slide 11

Slide 11 text

Problem • I love Tumblr • But, I want to be able to browse just the photos from my friends.

Slide 12

Slide 12 text

A New Toolset • Rails 3.1.1 • OmniAuth 1.0 preview • Tumblr API • Twitter Bootstrap

Slide 13

Slide 13 text

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.

Slide 14

Slide 14 text

Starting... • Start with the beginning: authentication. • Created a new Rails app • Started messing with OmniAuth and getting authenticated.

Slide 15

Slide 15 text

Once that worked... • Followed the setup instructions for Twitter Bootstrap. • Then got going with the javascript to display just the photos from the dashboard.

Slide 16

Slide 16 text

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!

Slide 17

Slide 17 text

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.

Slide 18

Slide 18 text

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.

Slide 19

Slide 19 text

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!

Slide 20

Slide 20 text

Working with a team • Pick a leader / tie breaker / burnout warden • Use source control! • Divide responsibilities and decide on integration points / check-in times.

Slide 21

Slide 21 text

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.

Slide 22

Slide 22 text

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.

Slide 23

Slide 23 text

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.

Slide 24

Slide 24 text

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. ;)

Slide 25

Slide 25 text

Questions? Tips? Warnings?

Slide 26

Slide 26 text

Contact Info • Kevin Lawver • @kplawver • [email protected] • http://lawver.net • and all the photos were taken by me and are Creative Commons-licensed.