SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Downloaden Sie, um offline zu lesen
Divide et impera
Nathan Van Gheem - Ramon Navarro Bosch - Timo Stollenwerk
Plone Conference Bucharest 2015
Modern Web Applications
DISCLAIMER
Brave New (JS) World
Client Server Architecture
JSON RPC API
POST: nohost/api
method: create_content
type: Document
title: My Document
container: <UID>
wsapi4plone
Use multiple URLs
POST: nohost/api/my-folder
method: create_content
type: Document
title: My Document
plone.jsonapi
Use HTTP Methods
nohost/my-folder
GET
POST: type/id/title
PUT: type/id/title
DELETE
REST / CRUD
plone.rest
<plone:service
method="DELETE"
for="IDexterityContent"
factory=".service.Patch"
/>
plone.rest
DELETE nohost/my-folder
Accept: application/json
{
"status": "201"
}
Javascript REST Adapters
Angular JS Resource
var user = $resource('/user/:userId');
user.get()
user.query()
user.save()
user.remove()
user.delete()
Representational State Transfer
Hypermedia / HATEOAS
JSON LD / Hydra
{
"@id": "/folder/",
"member": [
{"@id": "/folder/document"}
],
"operation": […]
}
plone.rest / plone.restapi
Ramon: PAS
SECURITY
• ElasticSearch/Solr
• Plone security
• JS Frontend
PAS
GROUPS
GLOBAL ROLES
LOCAL ROLES
[‘role1’,’role2’]
[‘role2’]WORKFLOW
PERMISSION
PAS
• What happens with LDAP/lots of users?
• Groups / recursive ?
• Managing users
External Extensible Service
[‘role1’,’role2’]
Which roles in
this context
REST API
MANAGEMENT INTERFACE
JWT TOKENS
LDAP BACK
Nathan: Mosaic
Page rendering(now)
Turn a URL request from a user into structure HTML response.
Almost all rendering done in python
Take request object, context, various other configuration bits of data, and
render to an HTML response
Much of the time Plone takes in processing the request is “rendering” HTML
Often, HTML output is coupled with the implementation of the CMS. For
example, you *need* an HTML form to edit a page.
Current state of page rendering
Turn a URL request from a user into a structured HTML response.
Templating
Plone uses the Chameleon templating engine for generating HTML
There are many JavaScript templating frameworks that could be used to
replace chameleon templating.
Frameworks like Angular have their own templating implementation
Rendering moves out of Plone, faster
Viewlets/Portlets
Viewlets and portlets are additional tools used to produce bits of rendered
HTML
Would no longer be necessary
This type of functionality moves to HTML5 components
Diazo
Diazo is an xslt transformation done on the html output to map content
generated from Plone into an HTML theme.
Original Diazo implementation also worked with an alternative browser
transformation
Diazo is likely unnecessary though as there is HTML rendering is decoupled
from the CMS
Mosaic
Mosaic tiles are bits of rendered HTML(usually from templates) that can be
moved around on a page. Data is stored in “layouts” and/or persistent
annotations on the content.
Diazo editor is already JavaScript
Storage can stay the same
Rendering would be moved to JavaScript templating
Page rendering(REST)
With JavaScript using the REST API to do the page rendering...
How might it work?
Plone server running with REST API
Static JavaScript/HTML/CSS files deployed on web server, pointed at Plone
server endpoint
JavaScript handles all the page rendering from REST API
Harder problems
Unclear what the interaction would look like with CMS managed theming and
the HTML/JavaScript/CSS application or if it would be possible
First page load does not include any HTML(SEO)
It’s possible to load first page with NodeJS with Angular and ReactJS
Search engines are playing nicer with JavaScript
Further Topics
Forms
ZCatalog / Search
Diazo
Dexterity
Hackability
Superlekker Questions?

Weitere ähnliche Inhalte

Was ist angesagt?

Preparing your web services for Android and your Android app for web services...
Preparing your web services for Android and your Android app for web services...Preparing your web services for Android and your Android app for web services...
Preparing your web services for Android and your Android app for web services...Droidcon Eastern Europe
 
REST Easy with AngularJS - ng-grid CRUD EXAMPLE
REST Easy with AngularJS - ng-grid CRUD EXAMPLEREST Easy with AngularJS - ng-grid CRUD EXAMPLE
REST Easy with AngularJS - ng-grid CRUD EXAMPLEreneechemel
 
Restap ito uploadfilessharepoint
Restap ito uploadfilessharepointRestap ito uploadfilessharepoint
Restap ito uploadfilessharepointMAHESH NEELANNAVAR
 
Effective TDD - Less is more
Effective TDD - Less is moreEffective TDD - Less is more
Effective TDD - Less is moreBen Lau
 
Molly Holzschlag - How HTML 5 is Going to Completely Change your Web App
Molly Holzschlag - How HTML 5 is Going to Completely Change your Web AppMolly Holzschlag - How HTML 5 is Going to Completely Change your Web App
Molly Holzschlag - How HTML 5 is Going to Completely Change your Web AppCarsonified Team
 
Introduction about-ajax-framework
Introduction about-ajax-frameworkIntroduction about-ajax-framework
Introduction about-ajax-frameworkSakthi Bro
 
Synapseindia dot net development web applications with ajax
Synapseindia dot net development  web applications with ajaxSynapseindia dot net development  web applications with ajax
Synapseindia dot net development web applications with ajaxSynapseindiappsdevelopment
 
Chrome extension development
Chrome extension developmentChrome extension development
Chrome extension developmentMichal Haták
 
Chrome Extension Develop Starts
Chrome Extension Develop StartsChrome Extension Develop Starts
Chrome Extension Develop Startstaobao.com
 
Basic web architecture
Basic web architectureBasic web architecture
Basic web architectureRalu Mihordea
 
Chrome enchanted 2015
Chrome enchanted 2015Chrome enchanted 2015
Chrome enchanted 2015Chang W. Doh
 
REST Easy - Building RESTful Services in Zend Framework
REST Easy - Building RESTful Services in Zend FrameworkREST Easy - Building RESTful Services in Zend Framework
REST Easy - Building RESTful Services in Zend FrameworkChris Weldon
 
Build your own Chrome Extension with AngularJS
Build your own Chrome Extension with AngularJSBuild your own Chrome Extension with AngularJS
Build your own Chrome Extension with AngularJSflrent
 
Quick start guide to java script frameworks for sharepoint apps spsbe-2015
Quick start guide to java script frameworks for sharepoint apps spsbe-2015Quick start guide to java script frameworks for sharepoint apps spsbe-2015
Quick start guide to java script frameworks for sharepoint apps spsbe-2015Sonja Madsen
 
Node.js introduction
Node.js introductionNode.js introduction
Node.js introductionParth Joshi
 

Was ist angesagt? (20)

Preparing your web services for Android and your Android app for web services...
Preparing your web services for Android and your Android app for web services...Preparing your web services for Android and your Android app for web services...
Preparing your web services for Android and your Android app for web services...
 
REST Easy with AngularJS - ng-grid CRUD EXAMPLE
REST Easy with AngularJS - ng-grid CRUD EXAMPLEREST Easy with AngularJS - ng-grid CRUD EXAMPLE
REST Easy with AngularJS - ng-grid CRUD EXAMPLE
 
Angularjs & REST
Angularjs & RESTAngularjs & REST
Angularjs & REST
 
AJAX - An introduction
AJAX - An introductionAJAX - An introduction
AJAX - An introduction
 
Restap ito uploadfilessharepoint
Restap ito uploadfilessharepointRestap ito uploadfilessharepoint
Restap ito uploadfilessharepoint
 
Effective TDD - Less is more
Effective TDD - Less is moreEffective TDD - Less is more
Effective TDD - Less is more
 
Molly Holzschlag - How HTML 5 is Going to Completely Change your Web App
Molly Holzschlag - How HTML 5 is Going to Completely Change your Web AppMolly Holzschlag - How HTML 5 is Going to Completely Change your Web App
Molly Holzschlag - How HTML 5 is Going to Completely Change your Web App
 
Introduction about-ajax-framework
Introduction about-ajax-frameworkIntroduction about-ajax-framework
Introduction about-ajax-framework
 
Synapseindia dot net development web applications with ajax
Synapseindia dot net development  web applications with ajaxSynapseindia dot net development  web applications with ajax
Synapseindia dot net development web applications with ajax
 
Chrome extension development
Chrome extension developmentChrome extension development
Chrome extension development
 
HTML5 - An introduction
HTML5 - An introductionHTML5 - An introduction
HTML5 - An introduction
 
Chrome Extension Develop Starts
Chrome Extension Develop StartsChrome Extension Develop Starts
Chrome Extension Develop Starts
 
Basic web architecture
Basic web architectureBasic web architecture
Basic web architecture
 
Chrome enchanted 2015
Chrome enchanted 2015Chrome enchanted 2015
Chrome enchanted 2015
 
REST Easy - Building RESTful Services in Zend Framework
REST Easy - Building RESTful Services in Zend FrameworkREST Easy - Building RESTful Services in Zend Framework
REST Easy - Building RESTful Services in Zend Framework
 
Build your own Chrome Extension with AngularJS
Build your own Chrome Extension with AngularJSBuild your own Chrome Extension with AngularJS
Build your own Chrome Extension with AngularJS
 
Quick start guide to java script frameworks for sharepoint apps spsbe-2015
Quick start guide to java script frameworks for sharepoint apps spsbe-2015Quick start guide to java script frameworks for sharepoint apps spsbe-2015
Quick start guide to java script frameworks for sharepoint apps spsbe-2015
 
Node.js introduction
Node.js introductionNode.js introduction
Node.js introduction
 
003. ReactJS basic
003. ReactJS basic003. ReactJS basic
003. ReactJS basic
 
SOAP-based Web Services
SOAP-based Web ServicesSOAP-based Web Services
SOAP-based Web Services
 

Andere mochten auch

Hypermedia APIs mit Javascript und Python
Hypermedia APIs mit Javascript und PythonHypermedia APIs mit Javascript und Python
Hypermedia APIs mit Javascript und PythonTimo Stollenwerk
 
Testing can be fun! Intercomputer GS
Testing can be fun! Intercomputer GSTesting can be fun! Intercomputer GS
Testing can be fun! Intercomputer GSNataly Veremeeva
 
Presentacion Miebach
Presentacion MiebachPresentacion Miebach
Presentacion Miebachmasteru
 
Testing is Fun @Confoo.ca 2012
Testing is Fun @Confoo.ca  2012Testing is Fun @Confoo.ca  2012
Testing is Fun @Confoo.ca 2012Gourav Tiwari
 
The Butler and The Snake (Europython 2015)
The Butler and The Snake (Europython 2015)The Butler and The Snake (Europython 2015)
The Butler and The Snake (Europython 2015)Timo Stollenwerk
 
The Future Is Written - Building next generation Plone sites with plone.app.c...
The Future Is Written - Building next generation Plone sites with plone.app.c...The Future Is Written - Building next generation Plone sites with plone.app.c...
The Future Is Written - Building next generation Plone sites with plone.app.c...Timo Stollenwerk
 
London Tester Gathering Workshops - Mobile Software Testing - Stephen Janaway
London Tester Gathering Workshops - Mobile Software Testing - Stephen JanawayLondon Tester Gathering Workshops - Mobile Software Testing - Stephen Janaway
London Tester Gathering Workshops - Mobile Software Testing - Stephen JanawayStephen Janaway
 
Michael Caulfield: Developing a Connected Health Economy
Michael Caulfield: Developing a Connected Health EconomyMichael Caulfield: Developing a Connected Health Economy
Michael Caulfield: Developing a Connected Health Economy3GDR
 
Objetos de Aprendizagem e Software de Autoria
Objetos de Aprendizagem e Software de AutoriaObjetos de Aprendizagem e Software de Autoria
Objetos de Aprendizagem e Software de AutoriaAdriana Sousa
 
The Power of Sensors in health & healthcare
The Power of Sensors in health & healthcareThe Power of Sensors in health & healthcare
The Power of Sensors in health & healthcareD3 Consutling
 
Early Filipino in the Pre-Hispanic Period - slide share
Early Filipino in the Pre-Hispanic Period - slide shareEarly Filipino in the Pre-Hispanic Period - slide share
Early Filipino in the Pre-Hispanic Period - slide shareMarcy Canete-Trinidad
 
Pre spanish period in the philippines
Pre spanish period in the philippinesPre spanish period in the philippines
Pre spanish period in the philippinesKate Sevilla
 

Andere mochten auch (16)

Hypermedia APIs mit Javascript und Python
Hypermedia APIs mit Javascript und PythonHypermedia APIs mit Javascript und Python
Hypermedia APIs mit Javascript und Python
 
UPC Plone Testing Talk
UPC Plone Testing TalkUPC Plone Testing Talk
UPC Plone Testing Talk
 
Testing can be fun! Intercomputer GS
Testing can be fun! Intercomputer GSTesting can be fun! Intercomputer GS
Testing can be fun! Intercomputer GS
 
Presentacion Miebach
Presentacion MiebachPresentacion Miebach
Presentacion Miebach
 
Testing is Fun @Confoo.ca 2012
Testing is Fun @Confoo.ca  2012Testing is Fun @Confoo.ca  2012
Testing is Fun @Confoo.ca 2012
 
The Butler and The Snake (Europython 2015)
The Butler and The Snake (Europython 2015)The Butler and The Snake (Europython 2015)
The Butler and The Snake (Europython 2015)
 
The Future Is Written - Building next generation Plone sites with plone.app.c...
The Future Is Written - Building next generation Plone sites with plone.app.c...The Future Is Written - Building next generation Plone sites with plone.app.c...
The Future Is Written - Building next generation Plone sites with plone.app.c...
 
London Tester Gathering Workshops - Mobile Software Testing - Stephen Janaway
London Tester Gathering Workshops - Mobile Software Testing - Stephen JanawayLondon Tester Gathering Workshops - Mobile Software Testing - Stephen Janaway
London Tester Gathering Workshops - Mobile Software Testing - Stephen Janaway
 
Michael Caulfield: Developing a Connected Health Economy
Michael Caulfield: Developing a Connected Health EconomyMichael Caulfield: Developing a Connected Health Economy
Michael Caulfield: Developing a Connected Health Economy
 
Objetos de Aprendizagem e Software de Autoria
Objetos de Aprendizagem e Software de AutoriaObjetos de Aprendizagem e Software de Autoria
Objetos de Aprendizagem e Software de Autoria
 
The Power of Sensors in health & healthcare
The Power of Sensors in health & healthcareThe Power of Sensors in health & healthcare
The Power of Sensors in health & healthcare
 
Spanish Colonization
Spanish ColonizationSpanish Colonization
Spanish Colonization
 
Early Filipino in the Pre-Hispanic Period - slide share
Early Filipino in the Pre-Hispanic Period - slide shareEarly Filipino in the Pre-Hispanic Period - slide share
Early Filipino in the Pre-Hispanic Period - slide share
 
Spanish Colonial Government
Spanish Colonial GovernmentSpanish Colonial Government
Spanish Colonial Government
 
Pre spanish period in the philippines
Pre spanish period in the philippinesPre spanish period in the philippines
Pre spanish period in the philippines
 
Pre colonial-period
Pre colonial-periodPre colonial-period
Pre colonial-period
 

Ähnlich wie Divide et impera

Progressive web apps
Progressive web appsProgressive web apps
Progressive web appsFastly
 
Intro to-html-backbone
Intro to-html-backboneIntro to-html-backbone
Intro to-html-backbonezonathen
 
Fundamentals of web_design_v2
Fundamentals of web_design_v2Fundamentals of web_design_v2
Fundamentals of web_design_v2hussain534
 
Websites Unlimited - Pay Monthly Websites
Websites Unlimited - Pay Monthly WebsitesWebsites Unlimited - Pay Monthly Websites
Websites Unlimited - Pay Monthly Websiteswebsiteunlimited
 
Design and Development performance considerations
Design and Development performance considerationsDesign and Development performance considerations
Design and Development performance considerationsElaine Van Bergen
 
Testable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascriptTestable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascriptTimothy Oxley
 
High Performance Web Pages - 20 new best practices
High Performance Web Pages - 20 new best practicesHigh Performance Web Pages - 20 new best practices
High Performance Web Pages - 20 new best practicesStoyan Stefanov
 
Introduction to Alfresco Surf Platform
Introduction to Alfresco Surf PlatformIntroduction to Alfresco Surf Platform
Introduction to Alfresco Surf PlatformAlfresco Software
 
REST, JSON and RSS with WCF 3.5
REST, JSON and RSS with WCF 3.5REST, JSON and RSS with WCF 3.5
REST, JSON and RSS with WCF 3.5Rob Windsor
 
Chanhao Jiang And David Wei Presentation Quickling Pagecache
Chanhao Jiang And David Wei Presentation Quickling PagecacheChanhao Jiang And David Wei Presentation Quickling Pagecache
Chanhao Jiang And David Wei Presentation Quickling PagecacheAjax Experience 2009
 
DevNext - Web Programming Concepts Using Asp Net
DevNext - Web Programming Concepts Using Asp NetDevNext - Web Programming Concepts Using Asp Net
DevNext - Web Programming Concepts Using Asp NetAdil Mughal
 
Decoding the Web
Decoding the WebDecoding the Web
Decoding the Webnewcircle
 
Plaxo OSCON 2006
Plaxo OSCON 2006Plaxo OSCON 2006
Plaxo OSCON 2006gueste8e0fb
 
Joseph-Smarr-Plaxo-OSCON-2006
Joseph-Smarr-Plaxo-OSCON-2006Joseph-Smarr-Plaxo-OSCON-2006
Joseph-Smarr-Plaxo-OSCON-2006guestfbf1e1
 

Ähnlich wie Divide et impera (20)

Progressive web apps
Progressive web appsProgressive web apps
Progressive web apps
 
Intro to-html-backbone
Intro to-html-backboneIntro to-html-backbone
Intro to-html-backbone
 
Fundamentals of web_design_v2
Fundamentals of web_design_v2Fundamentals of web_design_v2
Fundamentals of web_design_v2
 
Websites Unlimited - Pay Monthly Websites
Websites Unlimited - Pay Monthly WebsitesWebsites Unlimited - Pay Monthly Websites
Websites Unlimited - Pay Monthly Websites
 
Html5 & less css
Html5 & less cssHtml5 & less css
Html5 & less css
 
Resthub
ResthubResthub
Resthub
 
Design and Development performance considerations
Design and Development performance considerationsDesign and Development performance considerations
Design and Development performance considerations
 
Testable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascriptTestable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascript
 
CAF & Portlet Development Notes
CAF & Portlet Development NotesCAF & Portlet Development Notes
CAF & Portlet Development Notes
 
High Performance Web Pages - 20 new best practices
High Performance Web Pages - 20 new best practicesHigh Performance Web Pages - 20 new best practices
High Performance Web Pages - 20 new best practices
 
Introduction to Alfresco Surf Platform
Introduction to Alfresco Surf PlatformIntroduction to Alfresco Surf Platform
Introduction to Alfresco Surf Platform
 
REST, JSON and RSS with WCF 3.5
REST, JSON and RSS with WCF 3.5REST, JSON and RSS with WCF 3.5
REST, JSON and RSS with WCF 3.5
 
Chanhao Jiang And David Wei Presentation Quickling Pagecache
Chanhao Jiang And David Wei Presentation Quickling PagecacheChanhao Jiang And David Wei Presentation Quickling Pagecache
Chanhao Jiang And David Wei Presentation Quickling Pagecache
 
PPT
PPTPPT
PPT
 
DevNext - Web Programming Concepts Using Asp Net
DevNext - Web Programming Concepts Using Asp NetDevNext - Web Programming Concepts Using Asp Net
DevNext - Web Programming Concepts Using Asp Net
 
Decoding the Web
Decoding the WebDecoding the Web
Decoding the Web
 
Spsmi13 charts
Spsmi13 chartsSpsmi13 charts
Spsmi13 charts
 
Html5
Html5Html5
Html5
 
Plaxo OSCON 2006
Plaxo OSCON 2006Plaxo OSCON 2006
Plaxo OSCON 2006
 
Joseph-Smarr-Plaxo-OSCON-2006
Joseph-Smarr-Plaxo-OSCON-2006Joseph-Smarr-Plaxo-OSCON-2006
Joseph-Smarr-Plaxo-OSCON-2006
 

Mehr von Timo Stollenwerk

German Aerospace Center (DLR) Web Relaunch
German Aerospace Center (DLR) Web RelaunchGerman Aerospace Center (DLR) Web Relaunch
German Aerospace Center (DLR) Web RelaunchTimo Stollenwerk
 
Performance Testing (Python Barcamp Cologne 2020)
Performance Testing (Python Barcamp Cologne 2020)Performance Testing (Python Barcamp Cologne 2020)
Performance Testing (Python Barcamp Cologne 2020)Timo Stollenwerk
 
Roadmap to a Headless Plone
Roadmap to a Headless PloneRoadmap to a Headless Plone
Roadmap to a Headless PloneTimo Stollenwerk
 
Plone Testing & Continuous Integration Team Report 2014
Plone Testing & Continuous Integration Team Report 2014Plone Testing & Continuous Integration Team Report 2014
Plone Testing & Continuous Integration Team Report 2014Timo Stollenwerk
 
The Beauty and the Beast - Modern Javascript Development with AngularJS and P...
The Beauty and the Beast - Modern Javascript Development with AngularJS and P...The Beauty and the Beast - Modern Javascript Development with AngularJS and P...
The Beauty and the Beast - Modern Javascript Development with AngularJS and P...Timo Stollenwerk
 
The Butler and the Snake - JCICPH
The Butler and the Snake - JCICPHThe Butler and the Snake - JCICPH
The Butler and the Snake - JCICPHTimo Stollenwerk
 
The Butler and the Snake - Continuous Integration for Python
The Butler and the Snake - Continuous Integration for PythonThe Butler and the Snake - Continuous Integration for Python
The Butler and the Snake - Continuous Integration for PythonTimo Stollenwerk
 
Who let the robot out? Qualitativ hochwertige Software durch Continuous Integ...
Who let the robot out? Qualitativ hochwertige Software durch Continuous Integ...Who let the robot out? Qualitativ hochwertige Software durch Continuous Integ...
Who let the robot out? Qualitativ hochwertige Software durch Continuous Integ...Timo Stollenwerk
 
Who let the robot out? - Building high quality software with Continuous Integ...
Who let the robot out? - Building high quality software with Continuous Integ...Who let the robot out? - Building high quality software with Continuous Integ...
Who let the robot out? - Building high quality software with Continuous Integ...Timo Stollenwerk
 
Einführung Test-driven Development
Einführung Test-driven DevelopmentEinführung Test-driven Development
Einführung Test-driven DevelopmentTimo Stollenwerk
 
ZCA: A component architecture for Python
ZCA: A component architecture for PythonZCA: A component architecture for Python
ZCA: A component architecture for PythonTimo Stollenwerk
 
Test-Driven Development with Plone
Test-Driven Development with PloneTest-Driven Development with Plone
Test-Driven Development with PloneTimo Stollenwerk
 
Statische Code-Analyse mit Python
Statische Code-Analyse mit PythonStatische Code-Analyse mit Python
Statische Code-Analyse mit PythonTimo Stollenwerk
 
Plone 4 - Gegenwart und Zukunft (Pycon DE)
Plone 4 - Gegenwart und Zukunft (Pycon DE)Plone 4 - Gegenwart und Zukunft (Pycon DE)
Plone 4 - Gegenwart und Zukunft (Pycon DE)Timo Stollenwerk
 

Mehr von Timo Stollenwerk (20)

German Aerospace Center (DLR) Web Relaunch
German Aerospace Center (DLR) Web RelaunchGerman Aerospace Center (DLR) Web Relaunch
German Aerospace Center (DLR) Web Relaunch
 
Performance Testing (Python Barcamp Cologne 2020)
Performance Testing (Python Barcamp Cologne 2020)Performance Testing (Python Barcamp Cologne 2020)
Performance Testing (Python Barcamp Cologne 2020)
 
Python & JavaScript
Python & JavaScriptPython & JavaScript
Python & JavaScript
 
Roadmap to a Headless Plone
Roadmap to a Headless PloneRoadmap to a Headless Plone
Roadmap to a Headless Plone
 
Plone Testing & Continuous Integration Team Report 2014
Plone Testing & Continuous Integration Team Report 2014Plone Testing & Continuous Integration Team Report 2014
Plone Testing & Continuous Integration Team Report 2014
 
The Beauty and the Beast - Modern Javascript Development with AngularJS and P...
The Beauty and the Beast - Modern Javascript Development with AngularJS and P...The Beauty and the Beast - Modern Javascript Development with AngularJS and P...
The Beauty and the Beast - Modern Javascript Development with AngularJS and P...
 
The Butler and the Snake - JCICPH
The Butler and the Snake - JCICPHThe Butler and the Snake - JCICPH
The Butler and the Snake - JCICPH
 
The Butler and the Snake - Continuous Integration for Python
The Butler and the Snake - Continuous Integration for PythonThe Butler and the Snake - Continuous Integration for Python
The Butler and the Snake - Continuous Integration for Python
 
AngularJS & Plone
AngularJS & PloneAngularJS & Plone
AngularJS & Plone
 
Who let the robot out? Qualitativ hochwertige Software durch Continuous Integ...
Who let the robot out? Qualitativ hochwertige Software durch Continuous Integ...Who let the robot out? Qualitativ hochwertige Software durch Continuous Integ...
Who let the robot out? Qualitativ hochwertige Software durch Continuous Integ...
 
Plone5
Plone5Plone5
Plone5
 
Who let the robot out? - Building high quality software with Continuous Integ...
Who let the robot out? - Building high quality software with Continuous Integ...Who let the robot out? - Building high quality software with Continuous Integ...
Who let the robot out? - Building high quality software with Continuous Integ...
 
Plone Einführung
Plone EinführungPlone Einführung
Plone Einführung
 
Einführung Test-driven Development
Einführung Test-driven DevelopmentEinführung Test-driven Development
Einführung Test-driven Development
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven Development
 
Mock testing mit Python
Mock testing mit PythonMock testing mit Python
Mock testing mit Python
 
ZCA: A component architecture for Python
ZCA: A component architecture for PythonZCA: A component architecture for Python
ZCA: A component architecture for Python
 
Test-Driven Development with Plone
Test-Driven Development with PloneTest-Driven Development with Plone
Test-Driven Development with Plone
 
Statische Code-Analyse mit Python
Statische Code-Analyse mit PythonStatische Code-Analyse mit Python
Statische Code-Analyse mit Python
 
Plone 4 - Gegenwart und Zukunft (Pycon DE)
Plone 4 - Gegenwart und Zukunft (Pycon DE)Plone 4 - Gegenwart und Zukunft (Pycon DE)
Plone 4 - Gegenwart und Zukunft (Pycon DE)
 

Divide et impera