Slide 1

Slide 1 text

to launch idea in days Mike Jones / / @imsickofmaps

Slide 2

Slide 2 text

Western Cape Labs ~ [ ] Smart apps for dumb phones Smart sites for busy people

Slide 3

Slide 3 text

WARNING: THIS IS *MY* WAY

Slide 4

Slide 4 text

ideas service data BUILD MEASURE LEARN

Slide 5

Slide 5 text

ideas service data BUILD MEASURE LEARN LEARN focus } mention }

Slide 6

Slide 6 text

Do you have empathy? Your opinion [though interesting] is irrelevant

Slide 7

Slide 7 text

SO THAT AS A I CAN

Slide 8

Slide 8 text

Configure locally $ git flow init Create a issue on github (e.g. Start blog application) linked to user story. Start the feature $ git flow feature start issue-1-start-blog-application Code like your life depends on it $ git flow feature publish issue-1-start-blog-application Convert to a pull request $ git pull-request -i 1 -b develop Send someone the pull-request link or @mention them Once its got a +1 from the reviewer(s) and tests are passing $ git flow feature finish issue-1-start-blog-application $ git push use git flow

Slide 9

Slide 9 text

starting over! STOP STOP reinventing! STOP being distracted! just for now... please!

Slide 10

Slide 10 text

we chose Flask and Bootstrap USE FRAMEWORKS PICK A DATASTORE we chose Riak, Spreedly and Xero MAKE DEPLOYMENT EASY we chose Fabric and chef-solo REUSE CODE we built on top of On The Way

Slide 11

Slide 11 text

we chose Flask and Bootstrap USE FRAMEWORKS PICK A DATASTORE we chose Riak, Spreedly and Xero MAKE DEPLOYMENT EASY we chose Fabric and chef-solo REUSE CODE we built on top of OnTheWay your choices may differ!

Slide 12

Slide 12 text

1 file apps are nice but make a skeleton FLASK TIPS: #1 static <-- for css, js, img etc. (serve via nginx) templates <-- for jinja templates __init__.py <-- makes module (easy to serve) app.py <-- declare the Flask app in here config.py <-- use config objects for dev and prod main.py <-- include everything via this (no circular deps) shareddefs.py <-- place we put login_req decorators etc. sharedforms.py <-- central place for WTForms .py <-- one per application function

Slide 13

Slide 13 text

Use jinja + WTForms + bootstrap templates FLASK TIPS: #2

Slide 14

Slide 14 text

Use decorators FLASK TIPS: #3

Slide 15

Slide 15 text

Less + Bootstrap + Google Fonts = Pretty compiles variables, plus your less file into a single css lessc source.less output.css ask someone with taste to pick one! google.com/fonts update font, set colour palette tweak variables.less

Slide 16

Slide 16 text

creates folders, rsync’s chef recipes, run chef, creates virtualenv, pip installs fab bootstrap rsync’s code, restarts services fab deploy

Slide 17

Slide 17 text

live! make it

Slide 18

Slide 18 text

Thanks. [email protected] @imsickofmaps http:/ /otw.io/pyconzatalk