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

Faster! Faster! Accelerate your business with b...

Faster! Faster! Accelerate your business with blazing prototypes

[Originally presented at OSCON 2012]
Bring your ideas to life! Convince your boss to that open source development is faster and cheaper than the "safe" COTS solution they probably hate anyway. Let's investigate ways to get real-life, functional prototypes up with blazing speed. We'll look at and compare tools for truly rapid development including Python, Django, Flask, PHP, Amazon EC2 and Heroku.

Drew Engelson

July 18, 2012
Tweet

Other Decks in Technology

Transcript

  1. I’m Drew Engelson §  I work for Celerity -  “The

    business acceleration consultancy” -  We help get companies “unstuck” §  I help organizations decide what tech to buy or build -  National Geographic Society -  PBS -  American Diabetes Association §  Then we make it happen
  2. The challenge §  Build a simple, fully functional prototype - 

    A basic web service for image transformation §  Requirements -  Pass in a source image url, desired height and width -  Pull down the image to server -  Resize the image on the server -  Return derivative image
  3. Surveyed a few frameworks §  PHP -  Zend -  CodeIgniter

    §  Python -  Django -  Flask -  Bottle §  I know, there are many other choices… Which is your favorite?
  4. Compared on §  Learning curve §  Ease of bootstrapping dev

    environment §  Ease of development -  # of files created or touched -  # of lines written or modified -  Complexity of code §  Speed of deployment -  Need to share with others, right? §  Note: This is a very non-scientific study
  5. import cStringIO import requests from PIL import Image from flask

    import Flask, request, send_file app = Flask(__name__) @app.route('/', methods=['GET', ]) def resize(): url = request.values['url'] req = requests.get(url) resource = cStringIO.StringIO(req.content) image = Image.open(resource) image = image.resize((int(request.values['w']), int(request.values['h'])), Image.ANTIALIAS) resource = cStringIO.StringIO() image.save(resource, 'JPEG') resource.seek(0) return send_file(resource, mimetype='image/jpeg') if __name__ == '__main__': app.run(debug=True)
  6. Resources §  http://flask.pocoo.org/ §  https://www.djangoproject.com/ §  http://codeigniter.com/ §  http://bottlepy.org/ § 

    http://framework.zend.com/ §  Josh Linkner -  http://www.inc.com/articles/201106/josh-linkner-7-steps-to-a-culture-of-innovation.html §  I know, there are many other choices… What’s your favorite?