Your SlideShare is downloading. ×
0
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

EuroPython 2011 - How to build complex web applications having fun?

6,987

Published on

Web development is a complexity challenge nowadays. Growing number of functionalities results in customer expectations increase which makes project design more difficult. Using proper tools that suite …

Web development is a complexity challenge nowadays. Growing number of functionalities results in customer expectations increase which makes project design more difficult. Using proper tools that suite your customer needs is essential.

This talk is about successful story using closely together Pyramid and Plone. Basing on these examples you will see the main reasons for using Plone as a CMS only and letting Pyramid do the rest (vertical application).

Published in: Technology
4 Comments
16 Likes
Statistics
Notes
  • 2----MEGA EVENTOS DE FÉRIAS jogando.net/mu/
    Venham conhecer nossos Servidores de Mu
    Online Season 6 e participar dos EVENTOS
    De Férias que preparamos para vocês.
    CONFIRAM = http://www.jogando.net/mu/
    Fazemos sua Diversão com qualidade,há mais de 5 anos
    Servers ON 24 horas por dia.
    Vários Server esperando por você.Venha se divertir de verdade.
    Site http://www.jogando.net/mu/ Benvindos ao nosso servidor.
    HYCLEN Divulgadora Oficial ..Boa semana a todos e boas férias !!!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • video will be published on europython site http://ep2011.europython.eu/conference/talks/how-to-build-complex-web-applications-having-fun in few days
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • There is a video for this presentation? nice user case
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Love it. Great summary of the project, fresh looking slides. Congrats to Andy and RedTurtle.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
6,987
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
300
Comments
4
Likes
16
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  1. How to build complexweb applications having fun?
  2. author Andrew Mleczko Software Integrator Ferrara (Italy) twitter: amleczko amleczko@redturtle.it
  3. the team
  4. WHY this talk?
  5. My Reasons to be here★ Building complex web applications could be fun★ Architectural decisions are more important than you think★ Promote and
  6. ★ among the top 2% of all open source projects worldwide★ more than 340 active core developers★ developed since 2001★ version 4.1 released 12 days ago
  7. ★ available in more than 40 languages★ the best security track record of any major CMS
  8. powered
  9. the growing community
  10. SMALL “Roughly 5000 lines of code”
  11. SMALL “Roughly 5000 lines of code”FAST
  12. SMALL “Roughly 5000 lines of code”FASTSTABLE
  13. SMALL “Roughly 5000 lines of code”FAST “100% statementSTABLE coverage via unit andTESTED integration tests”
  14. SMALL “Roughly 5000 lines of code”FAST “100% statementSTABLE coverage via unit andTESTED integration tests”DOCUMENTED “Literally nothing in Pyramid is undocumented”
  15. The Bad story
  16. Th e Cus to mer★ Large public sectore entity★ > 1000 employees★ Needs a complex intranet★ Deadline: 2 years
  17. T he T eam
  18. Th e T eam ★ Mixed roles: Software architect Project Tester manager Developer ★ No development philosophy
  19. t ec h no lo g y★ Temptation to be on the technological edge★ The Learning Curve Effect everything is a “prototype”★ Technical design debt is... ... more then average
  20. bad deci si ons ★ Project manager as Software architect as Tester ★ Technology didnt fit in ★ no fun at all
  21. The Good Story
  22. The Customer★ .★ Born as a startup★ Offices in Miami, New York and Los Angeles
  23. Water today★ U.S. - the largest consumer market for bottled water in the world★ in 2011, the market is forecast to have a value of $86,421.2 billion “Bottled water has become the second largest commercial beverage category”
  24. project requirements
  25. paperless sale1 CRM2 Sales3 Warehouse4 E-commerce5 Support
  26. paperless sale1 CRM ★ Customer’s management (satisfaction, order status, etc.)2 Sales ★ Reports (machine statistics, etc.)3 Warehouse ★ Campaigns4 E-commerce5 Support
  27. paperless sale1 CRM ★ Sales network management ★ Invoicing / accountancy2 Sales ★ Revenue counter3 Warehouse ★ Discount management4 E-commerce5 Support
  28. paperless sale1 CRM ★ Catalog management ★ Warehouse management2 Sales ★ Logistic tracking3 Warehouse4 E-commerce5 Support
  29. paperless sale1 CRM ★ Online shop (for beverages and accessories)2 Sales ★ Machine configurator (interactive wizard)3 Warehouse ★ Online payments4 E-commerce5 Support
  30. paperless sale1 CRM ★ Machine maintenance (filter change)2 Sales ★ Emergency services ★ Order / installation process3 Warehouse4 E-commerce5 Support
  31. paperless sale1 CRM ★ Machine maintenance (filter change)2 Sales ★ Emergency services ★ Order / installation process3 Warehouse4 E-commerce5 Support
  32. paperless sale Warehouse Support CRM E-commerce Sales
  33. paperless sale Intranet Extranet Warehouse Support CRM E-commerce Sales
  34. Totally paperless ERP
  35. project gotchas
  36. project gotchas★ Requirements are not rock solid (it’s a startup) - project will grow with the customer★ Customer is in U.S. - planning regular meetings is essential★ We need to find proper (new?) framework★ Only 5 months to delivery
  37. proj ect backg round
  38. The DEV TEAM★ Software architect ★ database design ★ integration layer (data, authentication)★ Developers ★ Plone team ★ Pyramid team
  39. ★ Prototyping - the good way★ Collecting specification and keeping docs up-to-date★ Software development having fun
  40. Arc hi t e ct u ral dec i si ons
  41. and
  42. why ?★ architecture is not so far away from Zope★ it supports SQLAlchemy out of the box★ great documentation and active community★ add’s some fresh air to your architecture
  43. why ?★ Pyramid CRUD ★ Multi-upload widget ★ Metric units widget ★ Autocomplete widget ★ Multi-relation widget ★ ... and more ★ 75% jQuery code
  44. why ?★ The Best CMS★ Enterprise ready★ 1595 addons (and counting...) on plone.org/products
  45. why ?★ The Best CMS★ Enterprise ready★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo ★ LinguaPlone
  46. why ?★ The Best CMS★ Enterprise ready★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo ★ LinguaPlone
  47. why ?★ The Best CMS★ Enterprise ready★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo ★ LinguaPlone
  48. why ?★ The Best CMS★ Enterprise ready★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo ★ LinguaPlone
  49. why ?★ The Best CMS★ Enterprise ready★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo ★ LinguaPlone
  50. why ?★ The Best CMS★ Enterprise ready★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo ★ LinguaPlone
  51. why ?★ The Best CMS★ Enterprise ready★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo ★ LinguaPlone
  52. why ?★ The Best CMS★ Enterprise ready★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo ★ LinguaPlone
  53. I nt eg r at i o n
  54. SQL A lchemy aeterna.models PostgreSQL
  55. authentication - authorization auth storage Request pas.plugins.sa repoze.who PostgreSQL
  56. authentication - authorization auth storage single-sign-on ★ users ★ plone.session ★ repoze.who.plugins.auth_tkt ★ groups ★ roles mod_auth_tkt PostgreSQL
  57. buildout[intranet-plone]recipe = plone.recipe.zope2instanceeggs = ${intranet-plone:eggs} aeterna.models[intranet-pyramid]recipe = zc.recipe.eggeggs = ${intranet-pyramid:eggs} aeterna.models
  58. The big picture extranet pas.plugins. sa ZODBApache beaker PostgreSQL intranet repoze. who
  59. why not o t h er c o mpet i t o rs?
  60. d j ang o : no!★ less code more magic★ not so flexible (specification is growing)★ using SQLAlchemy could be tricky
  61. d r u pal: no!★ security problems (370 CVE entries)★ integration is more difficult (PHP vs. Python)★ missing features - workflow, complex ACL, etc.
  62. o pen erp : hmm★ quite complex: CRM , sales, accounting and much more★ not enough time to fully investigate it
  63. What mat t ers
  64. Proper Tools
  65. Proper R O L ES
  66. Whats next?
  67. Pyramid CRUD★ started from Sergey Volobuev Kelpie (repoze.bfg crud prototype)★ using SQLAlchemy, Formalchemy and fa.jquery★ known as pyramid_formalchemy
  68. Sprint summary ★ what is accomplished: ★ events hooks ★ view and action customizations ★ i18n support ★ autocomplete widget ★ paster templates ★ plans: ★ fanstatic integration
  69. paster template>>> $ pip install pyramid_formalchemy>>> $ paster create -t pyramid_fa myapp more details: http://blog.redturtle.it/redturtle-blog/pyramid-crud-sprint-summary
  70. Sprint summary ★ sprinters: ★ Gaël Pasgrimaud [gawel] ★ Patrick Gerken [do3cc] ★ Me [amleczko] ★ new version of: ★ pyramid_formalchemy 0.4 ★ fa.jquery 0.9.4
  71. Qu est i ons?
  72. Credits★ http://flickr.com/photos/mleczko★ http://www.melaiphone.com/★ http://static.iphoneitalia.com★ http://www.theapplelounge.com★ http://www.nonconvenzionale.com★ http://craziestgadgets.com/★ http://obsessivelystitching.blogspot.com/★ http://theclockblog.blogspot.com/★ http://www.scatoladeigiochi.altervista.org/★ http://wallpapers.brothersoft.com/★ www.prisionerodelpixel.com★ http://jawaexpress.com/★ http://mikehenneke.mvourtown.com/★ http://android-apps.com/

×