Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Faster! Faster! Accelerate your business with blazing prototypes

3,730 views

Published on

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.

Published in: Technology
  • Be the first to comment

Faster! Faster! Accelerate your business with blazing prototypes

  1. Faster! Faster!Accelerating your business with blazing prototypes Drew Engelson @handofdoom
  2. Why am I here?
  3. 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
  4. First… a disclaimer I’m a Pythonista I’m a Djangonaut Blame OSCON 2006
  5. Hence, my huge man-crush on JKMPhoto: Jason Samsa @ Flickr
  6. Cultures of stagnation
  7. Risk aversion
  8. Always choosing path well traveled
  9. "Innovation is R&D’s job” a.k.a. Not your job
  10. Dwelling on past investments
  11. Over-management and review of new ideas
  12. “We have too much real work to do.”
  13. Cultures of Innovation Props to Josh Linkner
  14. Fuel passion
  15. Celebrate ideas
  16. Foster autonomy
  17. Encourage courage
  18. Fail forward
  19. Think small
  20. Institutionalize this stuff
  21. COTS vs. Open Source
  22. “COTS is the safer choice”No one ever got fired for choosing ___________.
  23. “COTS does it out of the box” That’s horse crap!
  24. Photo: Daleeast @ Flickr
  25. Photo: Kethera @ Flickr
  26. Rapid Prototypes
  27. “If only I could show you!”
  28. Developers [sometimes] have good ideas Give ‘em a chance!
  29. Reduce the potential cost of failure; Timebox the experiment “OK, you get 2 days”
  30. The Framework Showdown
  31. 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
  32. The challenge ur l = ht t p: / / f ar m s t at i c f l i c kr . c om 7138/ 7576110858_d66eec 09f 5_z . j pg 8. / w dt h = 200 i hei ght = 200Photo: Tomcrenshaw @ Flickr
  33. I’m talking REAL functional code; minimize throw away work Evolve to production
  34. Surveyed a few frameworks PHP - Zend - CodeIgniter Python - Django - Flask - Bottle  I know, there are many other choices… Which is your favorite?
  35. 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
  36. The non-scientific results
  37. $ pip install Flask requests PIL Then write ~19 lines of Python
  38. i mp o r t c S t r i n g I Oi mp o r t r e q u e s t sf r o m PI L i mp o r t I mag ef r o m f l as k i mp o r t F l as k , r e q u e s t , s e n d _ f i l eap p = F l as k ( _ _ n ame _ _ )@ap p . r o u t e ( / , me t h o d s = [ GET , ] )d ef res i z e( ) : u r l = r e q u e s t . val u e s [ u r l ] r e q = r e q u e s t s . ge t ( u r l ) r e s o u r c e = c S t r i n g I O. S t r i n g I O( r e q . c o n t e n t ) i mag e = I mag e . o p e n ( r e s o u r c e ) i mag e = i mag e . r e s i z e ( ( i n t ( r e q u e s t . val u e s [ w ] ) ,i n t ( r e q u e s t . val u e s [ h ] ) ) , I mag e . ANTI AL I AS ) r e s o u r c e = c S t r i n g I O. S t r i n g I O( ) i mag e . s ave ( r e s o u r c e , JPEG ) r e s o u r c e . s e e k ( 0) r e t u r n s e n d _ f i l e ( r e s o u r c e , mi me t yp e = i mag e / j p e g )i f _ _ n ame _ _ = = _ _ mai n _ _ : ap p . r u n ( d e b u g = Tr u e )
  39. Quick and easy local server Django: manage.py runserver Flask: app.run()
  40. Get boilerplate out of the way!
  41. Don’t trust anything that has built-in smilies  Sorry, CodeIgniter
  42. How do I share it?
  43. $ git push heroku masterReally... does anything else matter?
  44. What does this all mean?
  45. Use what you know!Learning curve is biggest time suck.
  46. Keep it realDon’t assume failure… this may have legs.
  47. Don’t be afraid of…Failure; the unknown; the undead
  48. Give ‘em a little rope… But don’t hang ‘em with it
  49. Hold a few “hack days”
  50. Spread knowledge;Hold sessions to share ideas I call these “mind melds”
  51. Increased pace of innovation leads to…
  52. Happier developers leads to…
  53. Greater productivity leads to…
  54. GOTO 50
  55. 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?
  56. Thanks for coming! Drew Engelson - @handofdoom dengelson@celerity.com http://www.celerity.com/

×