Broadcast and listen to the world<br />1<br />
2<br />
3<br />
4<br />
5<br />
Enterprise-classTotal solution<br />6<br />
7<br />Have the idea<br />Start to implement<br />2008<br />2009<br />now<br />2007<br />2010<br />2011<br />Design system...
2.5+ Man-Years After-school time<br />8<br />
9<br />
Almost zerocommercial software<br />10<br />
Use C++ at very first<br />11<br />
Is performance that important?<br />Compile<br />Develop<br />Execute<br />Debug<br />12<br />
Fall in love with Python<br />13<br />
Development cycle of Python<br />Compile<br />Develop<br />Execute<br />Debug<br />14<br />
Web Application Solutions<br />15<br />
Light weight<br />Easy to learn<br />Easy to integrate<br />Kind of dirty<br />Fun<br />Suitable for:<br />Web-based API s...
Flask -Backend Dashboard<br />17<br />
Flask -Chat-room <br />18<br />
Flask -Web-based API<br />19<br />Query<br />Web-based<br />API Service<br />
Dependencies of Flask<br />20<br />
21<br />
Middle weight<br />Well documented<br />Well tested<br />Easy to learn<br />Suitable for:<br />Enterprise-class web applic...
Dependencies of Pyramid<br />23<br />
Heavy weight<br />Difficult to learn<br />Integrated with:<br />Pylons<br />SQLAlchemy<br />Genshi<br />Others<br />Can’t ...
TurboGears2 -Front-end Website<br />25<br />
Dependencies of TG2<br />26<br />
You think this is heavy weight?<br />27<br />
How about this?<br />28<br />
Dependencies of Plone<br />29<br />
More dependencies graph:http://goo.gl/kBCdW<br />30<br />
    Celery<br />Distributed task queue<br />Easy to use<br />Flexible<br />Multiple back-ends<br />Suitable for:<br />Time...
Internet application solution<br />32<br />Twisted<br />
    Twisted<br />Event-driven network library<br />Plenty resources<br />Portable<br />Build-in protocol implements<br />H...
Audio Streaming Cloud<br />34<br />Audio Streaming Cloud<br />Listener<br />DJ<br />
Ajax/Comet server<br />35<br />User<br />HTTP Request<br />Web-app<br />Comet server<br />Comet API<br />HTTP push<br />
Desktop application solution<br />36<br />
Python port of wxWidget<br />Native controls<br />wxWindow licensed (LGPL-like)<br />Cross platform<br />Suitable for:<br ...
Mr.DJ<br />38<br />
System administration solutions<br />39<br />Fabric<br />
WSGI container server<br />Mainly integrated with Nginx<br />Flexible configuration<br />High performance<br />Support mod...
Tool for running daemons<br />XML-RPC API<br />Say good bye to Unix init scripts<br />41<br />XML-RPC<br />Supervisor<br /...
Fabric<br />Tool for deploying<br />Send command to lots of host at once<br />42<br />Host A<br />hg pull –u<br />restart ...
Easter egg of player<br />Click space of player<br />Press<br />↑↑↓↓←←->->AB<br />Then 1, 2, 3 and 0<br />43<br />
Login message<br />44<br />
Name of hosts<br />45<br />nerv.now.in<br />magi.now.in<br />madoka.now.in<br />homura.now.in<br />
I Will collect all of them someday<br />46<br />
Any question?<br />47<br />
Upcoming SlideShare
Loading in …5
×

Now.in 背後的技術 - Python軍火庫

2,734 views

Published on

Published in: Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,734
On SlideShare
0
From Embeds
0
Number of Embeds
19
Actions
Shares
0
Downloads
46
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Now.in 背後的技術 - Python軍火庫

  1. 1. Broadcast and listen to the world<br />1<br />
  2. 2. 2<br />
  3. 3. 3<br />
  4. 4. 4<br />
  5. 5. 5<br />
  6. 6. Enterprise-classTotal solution<br />6<br />
  7. 7. 7<br />Have the idea<br />Start to implement<br />2008<br />2009<br />now<br />2007<br />2010<br />2011<br />Design system & seek technologies<br />Goes online<br />
  8. 8. 2.5+ Man-Years After-school time<br />8<br />
  9. 9. 9<br />
  10. 10. Almost zerocommercial software<br />10<br />
  11. 11. Use C++ at very first<br />11<br />
  12. 12. Is performance that important?<br />Compile<br />Develop<br />Execute<br />Debug<br />12<br />
  13. 13. Fall in love with Python<br />13<br />
  14. 14. Development cycle of Python<br />Compile<br />Develop<br />Execute<br />Debug<br />14<br />
  15. 15. Web Application Solutions<br />15<br />
  16. 16. Light weight<br />Easy to learn<br />Easy to integrate<br />Kind of dirty<br />Fun<br />Suitable for:<br />Web-based API services<br />Light-weight web application<br />16<br />
  17. 17. Flask -Backend Dashboard<br />17<br />
  18. 18. Flask -Chat-room <br />18<br />
  19. 19. Flask -Web-based API<br />19<br />Query<br />Web-based<br />API Service<br />
  20. 20. Dependencies of Flask<br />20<br />
  21. 21. 21<br />
  22. 22. Middle weight<br />Well documented<br />Well tested<br />Easy to learn<br />Suitable for:<br />Enterprise-class web application<br />Middle size web application<br />22<br />
  23. 23. Dependencies of Pyramid<br />23<br />
  24. 24. Heavy weight<br />Difficult to learn<br />Integrated with:<br />Pylons<br />SQLAlchemy<br />Genshi<br />Others<br />Can’t work with debugger<br />Too many dependencies<br />Suitable for:<br />Enterprise-class web application<br />24<br />
  25. 25. TurboGears2 -Front-end Website<br />25<br />
  26. 26. Dependencies of TG2<br />26<br />
  27. 27. You think this is heavy weight?<br />27<br />
  28. 28. How about this?<br />28<br />
  29. 29. Dependencies of Plone<br />29<br />
  30. 30. More dependencies graph:http://goo.gl/kBCdW<br />30<br />
  31. 31. Celery<br />Distributed task queue<br />Easy to use<br />Flexible<br />Multiple back-ends<br />Suitable for:<br />Time consuming tasks<br />Bach operation<br />Sending mails<br />31<br />
  32. 32. Internet application solution<br />32<br />Twisted<br />
  33. 33. Twisted<br />Event-driven network library<br />Plenty resources<br />Portable<br />Build-in protocol implements<br />HTTP<br />SMTP<br />DNS<br />Others<br />Suitable for:<br />Internet servers<br />Asynchronous web service<br />33<br />
  34. 34. Audio Streaming Cloud<br />34<br />Audio Streaming Cloud<br />Listener<br />DJ<br />
  35. 35. Ajax/Comet server<br />35<br />User<br />HTTP Request<br />Web-app<br />Comet server<br />Comet API<br />HTTP push<br />
  36. 36. Desktop application solution<br />36<br />
  37. 37. Python port of wxWidget<br />Native controls<br />wxWindow licensed (LGPL-like)<br />Cross platform<br />Suitable for:<br />Desktop application<br />37<br />
  38. 38. Mr.DJ<br />38<br />
  39. 39. System administration solutions<br />39<br />Fabric<br />
  40. 40. WSGI container server<br />Mainly integrated with Nginx<br />Flexible configuration<br />High performance<br />Support modes:<br />Preforking<br />Threaded<br />Asynchornous/evented<br />40<br />
  41. 41. Tool for running daemons<br />XML-RPC API<br />Say good bye to Unix init scripts<br />41<br />XML-RPC<br />Supervisor<br />Control<br />Console<br />Server process A<br />Server process C<br />Server process B<br />
  42. 42. Fabric<br />Tool for deploying<br />Send command to lots of host at once<br />42<br />Host A<br />hg pull –u<br />restart web<br />Fabric<br />Host B<br />Host C<br />
  43. 43. Easter egg of player<br />Click space of player<br />Press<br />↑↑↓↓←←->->AB<br />Then 1, 2, 3 and 0<br />43<br />
  44. 44. Login message<br />44<br />
  45. 45. Name of hosts<br />45<br />nerv.now.in<br />magi.now.in<br />madoka.now.in<br />homura.now.in<br />
  46. 46. I Will collect all of them someday<br />46<br />
  47. 47. Any question?<br />47<br />

×