SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
PIMP MY PLONE
Philip Bauer
www.starzel.de
There are over 1000 repos in the plone-collective on github
The products-section on plone.org holds 2170 add-ons
The search for Plone on pypi yields 2800 packages
The addons vary in quality, maturity, age and reliability.
The products-section on plone.org holds 2170 add-ons
The search for Plone on pypi yields 2800 packages
The addons vary in quality, maturity, age and reliability.
Nobody can say they know all plone-addons.
Finding, choosing and testing addons is a task that requires either developer-superpowers
and a unlimited budget or blind faith and dumb luck.
So what should you do to not end up lokking like the sad little elephant looking for the right
flower?
You need a plan.
Make a list of features
Find out what you think you really need.
Surprisingly often you do not know what you need.
On the one hand that makes it hard to even know what to look for in an addon.
On the other hand that's a good thing because you'll almost never find an add-on that
exactly fits your needs.
Adapt
So you'll have to either
* adapt your needs and expectations to what is available,
* invest the time & money to modify an existing addons to fit your needs
* or create a new addon that does exactly what you need
Usually we have all three cases in any project.
Prioritize
To be able to make a informed decision you make a list of features and prioritize.
Example:
* Must-have: Play videos on iOS, FF and IE8+
* Nice-to have: Support html5-video
This way you're able to make a informed decision one you found some candidates.
Finding the right one
But how do you find candidates?
There is no good list of addons.
There are either...
Too few
to few like in plone/products
Too many
or too many..
1. http://plone.org/products
2. https://pypi.python.org/pypi
3. https://github.com/collective
4. https://github.com/plone
5. http://news.gmane.org/gmane.comp.web.zope.plone.user
6. google
Search before you ask!
1. http://plone.org/products
2. https://pypi.python.org/pypi - use the search form!
3. https://github.com/collective >1000 repositories!
4. https://github.com/plone 240 repos - not all of them are part of the core yet!
5. search mailing list-archive: http://news.gmane.org/gmane.comp.web.zope.plone.user
6. google
Do all six!
In fact it only appears that we have to much choice. There are a lot of addons that do not
exist yet.
You'll have to write it yourself or pay someone to do this.
We rarely have projects were we don't have to write our own addons. There is no harm in this!
Usually these addons don't get released on pypi or even on github since they only fit the
usecase of that customer.
Sometimes addons can be of use to the wider public. Example: collective.noticeboard (sticky
notes for plone)
Ask
If you did not find an addon that fits your needs ask.
Actually you might have missed the very best addon for your usecase since the name is
somewhat weird (anyone uwosh.north*), it has not been put on plone.org/products or
because it is very new.
1. irc: #plone on irc.freenode.net
2. mailing-list: http://news.gmane.org/gmane.comp.web.zope.plone.user or http://
plone.org/support/forums (http://plone.org/support/lists)
screenshot: http://thread.gmane.org/gmane.comp.web.zope.plone.user/116572/
focus=116643
3. I think stackoverflow is not the right platform for such a question but you might try it
Shortlist
We can satisfy the 85% by providing a up-to-date list of the best addons for frequent use-
cases.
- Product shortlist https://docs.google.com/spreadsheet/ccc?
key=0At7ok0VqX0egdExISThOa0JBYjVUYi1pWmRDU0QyeUE#gid=0
Paul already talked about that
So test therefore, who join forever,
If heart to heart be found together!
F. Schiller
Once you think you found a likely candidate:
Look closely
Promises
Test the key features thoroughly. Some addons promise more than they can deliver.
Freshness
Check how fresh and how well maintained the product is.
• When was the latest release?
• Are there hundreds of unresolved Bugs in the bug-tracker?
• Has is recently seen developments?
Compatability
Does it run with your Plone-Version?
• Many addons are not yet updated to work with Plone 4.3.x ()
• Many releases of addons won't work with Plone 3.3.x or even Plone 4.0
Maybe you need to use a older version of an addon to run it.
i18n-support
Are all strings properly translated into your language(s).
You have to click through all public-facing UI in all your required languages.
Will it uninstall?
Does it uninstall cleanly?
* Are there instructions for uninstalling?
* Do they work?
You really need to test that.
First uninstall it or follow the instructions (maybe the tell you to run a uninstall-profile). Then
remove it from buildout, rerun buidlout and restart the site. If nothing breaks you might just
be lucky.
Among the bad boys are:
* p4a.*
* singing & dancing
* LinguaPlone
http://blog.keul.it/2013/05/how-to-make-your-
plone-add-on-products.html
You'll spend days and sleepless nights trying to get rid of them. You'll work through a lot ob
blogpost and mailthreads but might still end up without being able to get rid of the Add-on.
It happend to me more often than I care to admit!
If an add-on won't uninstall properly you have a choice:
* use it anyway and live with the consequences
* improve the uninstall-story
* use something else
Read the great blogpost by Luca Fabbri: http://blog.keul.it/2013/05/how-to-make-your-
plone-add-on-products.html
Dependencies
Imaging you marry the girl of your dreams but one day you realize the brother she never
talked about has just been released from jail and now want's to move in. This is how it feels
to realize that the dependencies of a product have unexpected bad boys among them.
- Check for other packages (e.g. flowplayer depends on several hachoir-packages, not bad
but good to know)
- Check for the required versions of these packages (e.g. plone.app.themeeditor uses
Zopeskel 3.x/templer -> incompatible to any addon that depends on ZopeSkel 2)
Load
* Just how many js-libraries will be pulled into your page-load?
* Why does the site run very slow?
* I once wrote code that iterated over all users and created some special vocabulary from
them. I did not expect that code being used in a site with thousands of users hammering a
erratic LDAP with queries.
What to do if it's not working like it should?
Sometimes you'll have to fix an existing addon or add some functionality. Write a bug-report
or feature-request.
The bug-trackers are usually on github and are usually mentioned in the pypi-page.
Example: https://github.com/smcmahon/Products.PloneFormGen/issues
If you are a developer you might want to fix it yourselves. I do it all the time.
If your bug-report gets ignored and you need to find someone to fix something check the list
of people who recently commited to the package. To do so you go to the github-page of the
addon.
Example: https://github.com/collective/collective.oembed/commits/master
You should only contact people directly if you are prepared to eventually pay them for the
work they are supposed to be doing on your behalf.
Keeps your troops organized
Once you found them tend to them and keep them in a nice row.
This includes:
* Pinn your versions
* Don't use source-checkouts in production
* Pinn revisions if you have to use source-checkouts
* Keep track of updates and development
* Check your add-ons early if you plan a update
* Prevent bitrot by following the development and participating
Then the addons will be great troopers and you or your customers will be happy.
?
?
?
?
Questions
Philip Bauer
www.starzel.de
irc: pbauer
github: pbauer
twitter: StarzelDe
We have room for up to four questions
Napkin plan
http://www.flickr.com/photos/cogdog/6293680050
Lost for choice
http://www.flickr.com/photos/kool_skatkat/3194000700
troop inspection
http://www.flickr.com/photos/pasukaru76/4016842259/
crossed fingers
http://www.flickr.com/photos/daniel_gies/5052886953
maintenance
http://www.flickr.com/photos/doug88888/2780642603
wrong plug
http://www.flickr.com/photos/kaptainkobold/3203311346
menu
http://www.flickr.com/photos/orangebrompton/9189799267
zombie
http://www.flickr.com/photos/ianaberle/4577125935
how to kill a zombie
http://www.flickr.com/photos/12905355@N05/5818578916
truck
http://www.flickr.com/photos/webethere/8709657798
stromtroopers
http://www.flickr.com/photos/legofenris/4212007962
Images

Weitere ähnliche Inhalte

Was ist angesagt?

Slope Beta Feedback | You ask for feedback on your beta product, I deliver.
Slope Beta Feedback | You ask for feedback on your beta product, I deliver.Slope Beta Feedback | You ask for feedback on your beta product, I deliver.
Slope Beta Feedback | You ask for feedback on your beta product, I deliver.Amanda Tiffany
 
Finding harmony in web development
Finding harmony in web developmentFinding harmony in web development
Finding harmony in web developmentChristian Heilmann
 
Building your API utility belt (Keith Casey)
Building your API utility belt (Keith Casey)Building your API utility belt (Keith Casey)
Building your API utility belt (Keith Casey)Future Insights
 
GDG SF Meetup - Progressive Web Apps 101
GDG SF Meetup - Progressive Web Apps 101GDG SF Meetup - Progressive Web Apps 101
GDG SF Meetup - Progressive Web Apps 101Frances Coronel
 
Chef Cookbook Testing and Continuous Integration
Chef Cookbook Testing and Continuous IntegrationChef Cookbook Testing and Continuous Integration
Chef Cookbook Testing and Continuous IntegrationJulian Dunn
 
WebDev References
WebDev ReferencesWebDev References
WebDev Referencesdynamis
 
A story of the passive aggressive sysadmin of AEM
A story of the passive aggressive sysadmin of AEMA story of the passive aggressive sysadmin of AEM
A story of the passive aggressive sysadmin of AEMFrans Rosén
 
Programming art
Programming artProgramming art
Programming artbit101
 
Building Headless Applications with WordPress & Gutenberg
Building Headless Applications with WordPress & GutenbergBuilding Headless Applications with WordPress & Gutenberg
Building Headless Applications with WordPress & GutenbergRoy Sivan
 
Power Up Your Professional Learning Network
Power Up Your Professional Learning NetworkPower Up Your Professional Learning Network
Power Up Your Professional Learning NetworkJennifer Dorman
 
API standardization work in W3C groups
API standardization work in W3C groupsAPI standardization work in W3C groups
API standardization work in W3C groupsPavlik elf
 
Twitter Bootstrap, or why being a PHP Developer is a bad idea
Twitter Bootstrap, or why being a PHP Developer is a bad ideaTwitter Bootstrap, or why being a PHP Developer is a bad idea
Twitter Bootstrap, or why being a PHP Developer is a bad ideaJason Lotito
 
Life of a fragment of history
Life of a fragment of historyLife of a fragment of history
Life of a fragment of historyYvonne Perkins
 
From Promises & async/await to Async Algebraic Data Types
From Promises & async/await to Async Algebraic Data TypesFrom Promises & async/await to Async Algebraic Data Types
From Promises & async/await to Async Algebraic Data TypesRobert Pearce
 
LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경
LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경
LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경Mintak Son
 
A Path to Point-Free JavaScript
A Path to Point-Free JavaScriptA Path to Point-Free JavaScript
A Path to Point-Free JavaScriptRobert Pearce
 
Some Functional Programming in JavaScript and Ramda.js
Some Functional Programming in JavaScript and Ramda.jsSome Functional Programming in JavaScript and Ramda.js
Some Functional Programming in JavaScript and Ramda.jsRobert Pearce
 

Was ist angesagt? (19)

Slope Beta Feedback | You ask for feedback on your beta product, I deliver.
Slope Beta Feedback | You ask for feedback on your beta product, I deliver.Slope Beta Feedback | You ask for feedback on your beta product, I deliver.
Slope Beta Feedback | You ask for feedback on your beta product, I deliver.
 
Xclusive bangla web site by tanbircox
Xclusive bangla web site by tanbircoxXclusive bangla web site by tanbircox
Xclusive bangla web site by tanbircox
 
All you need is front
All you need is frontAll you need is front
All you need is front
 
Finding harmony in web development
Finding harmony in web developmentFinding harmony in web development
Finding harmony in web development
 
Building your API utility belt (Keith Casey)
Building your API utility belt (Keith Casey)Building your API utility belt (Keith Casey)
Building your API utility belt (Keith Casey)
 
GDG SF Meetup - Progressive Web Apps 101
GDG SF Meetup - Progressive Web Apps 101GDG SF Meetup - Progressive Web Apps 101
GDG SF Meetup - Progressive Web Apps 101
 
Chef Cookbook Testing and Continuous Integration
Chef Cookbook Testing and Continuous IntegrationChef Cookbook Testing and Continuous Integration
Chef Cookbook Testing and Continuous Integration
 
WebDev References
WebDev ReferencesWebDev References
WebDev References
 
A story of the passive aggressive sysadmin of AEM
A story of the passive aggressive sysadmin of AEMA story of the passive aggressive sysadmin of AEM
A story of the passive aggressive sysadmin of AEM
 
Programming art
Programming artProgramming art
Programming art
 
Building Headless Applications with WordPress & Gutenberg
Building Headless Applications with WordPress & GutenbergBuilding Headless Applications with WordPress & Gutenberg
Building Headless Applications with WordPress & Gutenberg
 
Power Up Your Professional Learning Network
Power Up Your Professional Learning NetworkPower Up Your Professional Learning Network
Power Up Your Professional Learning Network
 
API standardization work in W3C groups
API standardization work in W3C groupsAPI standardization work in W3C groups
API standardization work in W3C groups
 
Twitter Bootstrap, or why being a PHP Developer is a bad idea
Twitter Bootstrap, or why being a PHP Developer is a bad ideaTwitter Bootstrap, or why being a PHP Developer is a bad idea
Twitter Bootstrap, or why being a PHP Developer is a bad idea
 
Life of a fragment of history
Life of a fragment of historyLife of a fragment of history
Life of a fragment of history
 
From Promises & async/await to Async Algebraic Data Types
From Promises & async/await to Async Algebraic Data TypesFrom Promises & async/await to Async Algebraic Data Types
From Promises & async/await to Async Algebraic Data Types
 
LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경
LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경
LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경
 
A Path to Point-Free JavaScript
A Path to Point-Free JavaScriptA Path to Point-Free JavaScript
A Path to Point-Free JavaScript
 
Some Functional Programming in JavaScript and Ramda.js
Some Functional Programming in JavaScript and Ramda.jsSome Functional Programming in JavaScript and Ramda.js
Some Functional Programming in JavaScript and Ramda.js
 

Ähnlich wie Pimp my Plone

Debugging Your Plone Site
Debugging Your Plone SiteDebugging Your Plone Site
Debugging Your Plone Sitecdw9
 
Learning Joomla! in a weekend (for developers)
Learning Joomla! in a weekend (for developers)Learning Joomla! in a weekend (for developers)
Learning Joomla! in a weekend (for developers)Valentin Despa
 
OSU - Desktop Efficiency
OSU - Desktop EfficiencyOSU - Desktop Efficiency
OSU - Desktop Efficiencysharplefthander
 
Making Presentations Better
Making Presentations BetterMaking Presentations Better
Making Presentations BetterRand Fishkin
 
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-54
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-54Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-54
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-54Ivy Rueb
 
5 Useful and Fun Website Links
5 Useful and Fun Website Links5 Useful and Fun Website Links
5 Useful and Fun Website LinksCharlie
 
Hactoberfest presentation
Hactoberfest presentationHactoberfest presentation
Hactoberfest presentationAITIKDANDAPAT
 
Frequently asked questions answered frequently - but now for the last time
Frequently asked questions answered frequently - but now for the last timeFrequently asked questions answered frequently - but now for the last time
Frequently asked questions answered frequently - but now for the last timeAndreas Jung
 
iPhone App from concept to product
iPhone App from concept to productiPhone App from concept to product
iPhone App from concept to productjoeysim
 
I broke what?!??!? Taking over maintenance on well loved projects
I broke what?!??!? Taking over maintenance on well loved projectsI broke what?!??!? Taking over maintenance on well loved projects
I broke what?!??!? Taking over maintenance on well loved projectsBert JW Regeer
 
I broke what? Taking over maintenance on existing (well loved) projects, by B...
I broke what? Taking over maintenance on existing (well loved) projects, by B...I broke what? Taking over maintenance on existing (well loved) projects, by B...
I broke what? Taking over maintenance on existing (well loved) projects, by B...T. Kim Nguyen
 
13.the use of api's in software, avoiding doublechecking tricks hangul
13.the use of api's in software, avoiding doublechecking tricks hangul13.the use of api's in software, avoiding doublechecking tricks hangul
13.the use of api's in software, avoiding doublechecking tricks hangulre4lfl0w
 
Open event (show&tell april 2016)
Open event (show&tell april 2016)Open event (show&tell april 2016)
Open event (show&tell april 2016)Jorge López-Lago
 
Mobile App Feature Configuration and A/B Experiments
Mobile App Feature Configuration and A/B ExperimentsMobile App Feature Configuration and A/B Experiments
Mobile App Feature Configuration and A/B Experimentslacyrhoades
 
Top 20 questions about web 2.0 for everyone
Top 20 questions about web 2.0 for everyone Top 20 questions about web 2.0 for everyone
Top 20 questions about web 2.0 for everyone Karthick Vikram
 
Hacking Tutorial for Apps
Hacking Tutorial for AppsHacking Tutorial for Apps
Hacking Tutorial for AppsGrant Eaton
 
VideoWords_TechCommCon_2016-10-14
VideoWords_TechCommCon_2016-10-14VideoWords_TechCommCon_2016-10-14
VideoWords_TechCommCon_2016-10-14M. "Allie"​ Proff
 
Productive data engineer speaker notes
Productive data engineer speaker notesProductive data engineer speaker notes
Productive data engineer speaker notesRafał Wojdyła
 
SW Drupal Summit - Upgrading 6 to 7
SW Drupal Summit - Upgrading 6 to 7SW Drupal Summit - Upgrading 6 to 7
SW Drupal Summit - Upgrading 6 to 7Amye Scavarda
 
Build World Class User Onboarding
Build World Class User OnboardingBuild World Class User Onboarding
Build World Class User OnboardingEnzo Avigo
 

Ähnlich wie Pimp my Plone (20)

Debugging Your Plone Site
Debugging Your Plone SiteDebugging Your Plone Site
Debugging Your Plone Site
 
Learning Joomla! in a weekend (for developers)
Learning Joomla! in a weekend (for developers)Learning Joomla! in a weekend (for developers)
Learning Joomla! in a weekend (for developers)
 
OSU - Desktop Efficiency
OSU - Desktop EfficiencyOSU - Desktop Efficiency
OSU - Desktop Efficiency
 
Making Presentations Better
Making Presentations BetterMaking Presentations Better
Making Presentations Better
 
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-54
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-54Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-54
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-54
 
5 Useful and Fun Website Links
5 Useful and Fun Website Links5 Useful and Fun Website Links
5 Useful and Fun Website Links
 
Hactoberfest presentation
Hactoberfest presentationHactoberfest presentation
Hactoberfest presentation
 
Frequently asked questions answered frequently - but now for the last time
Frequently asked questions answered frequently - but now for the last timeFrequently asked questions answered frequently - but now for the last time
Frequently asked questions answered frequently - but now for the last time
 
iPhone App from concept to product
iPhone App from concept to productiPhone App from concept to product
iPhone App from concept to product
 
I broke what?!??!? Taking over maintenance on well loved projects
I broke what?!??!? Taking over maintenance on well loved projectsI broke what?!??!? Taking over maintenance on well loved projects
I broke what?!??!? Taking over maintenance on well loved projects
 
I broke what? Taking over maintenance on existing (well loved) projects, by B...
I broke what? Taking over maintenance on existing (well loved) projects, by B...I broke what? Taking over maintenance on existing (well loved) projects, by B...
I broke what? Taking over maintenance on existing (well loved) projects, by B...
 
13.the use of api's in software, avoiding doublechecking tricks hangul
13.the use of api's in software, avoiding doublechecking tricks hangul13.the use of api's in software, avoiding doublechecking tricks hangul
13.the use of api's in software, avoiding doublechecking tricks hangul
 
Open event (show&tell april 2016)
Open event (show&tell april 2016)Open event (show&tell april 2016)
Open event (show&tell april 2016)
 
Mobile App Feature Configuration and A/B Experiments
Mobile App Feature Configuration and A/B ExperimentsMobile App Feature Configuration and A/B Experiments
Mobile App Feature Configuration and A/B Experiments
 
Top 20 questions about web 2.0 for everyone
Top 20 questions about web 2.0 for everyone Top 20 questions about web 2.0 for everyone
Top 20 questions about web 2.0 for everyone
 
Hacking Tutorial for Apps
Hacking Tutorial for AppsHacking Tutorial for Apps
Hacking Tutorial for Apps
 
VideoWords_TechCommCon_2016-10-14
VideoWords_TechCommCon_2016-10-14VideoWords_TechCommCon_2016-10-14
VideoWords_TechCommCon_2016-10-14
 
Productive data engineer speaker notes
Productive data engineer speaker notesProductive data engineer speaker notes
Productive data engineer speaker notes
 
SW Drupal Summit - Upgrading 6 to 7
SW Drupal Summit - Upgrading 6 to 7SW Drupal Summit - Upgrading 6 to 7
SW Drupal Summit - Upgrading 6 to 7
 
Build World Class User Onboarding
Build World Class User OnboardingBuild World Class User Onboarding
Build World Class User Onboarding
 

Mehr von Philip Bauer

Growing pains - PosKeyErrors and other malaises
Growing pains - PosKeyErrors and other malaisesGrowing pains - PosKeyErrors and other malaises
Growing pains - PosKeyErrors and other malaisesPhilip Bauer
 
Migrations migrations migrations
Migrations migrations migrationsMigrations migrations migrations
Migrations migrations migrationsPhilip Bauer
 
Plone ♥︎ Python 3
Plone ♥︎ Python 3Plone ♥︎ Python 3
Plone ♥︎ Python 3Philip Bauer
 
Mosaic - The Layout Solution You Always Wanted
Mosaic - The Layout Solution You Always WantedMosaic - The Layout Solution You Always Wanted
Mosaic - The Layout Solution You Always WantedPhilip Bauer
 
Upgrade to Plone 5
Upgrade to Plone 5Upgrade to Plone 5
Upgrade to Plone 5Philip Bauer
 
Migrations, Upgrades and Relaunches
Migrations, Upgrades and RelaunchesMigrations, Upgrades and Relaunches
Migrations, Upgrades and RelaunchesPhilip Bauer
 
It's the way of the present - Why you should use plone.app.contenttypes
It's the way of the present - Why you should use plone.app.contenttypesIt's the way of the present - Why you should use plone.app.contenttypes
It's the way of the present - Why you should use plone.app.contenttypesPhilip Bauer
 
Alles in Allem. Wie man mit Deliverance existierende Inhalte oder Anwendungen...
Alles in Allem. Wie man mit Deliverance existierende Inhalte oder Anwendungen...Alles in Allem. Wie man mit Deliverance existierende Inhalte oder Anwendungen...
Alles in Allem. Wie man mit Deliverance existierende Inhalte oder Anwendungen...Philip Bauer
 
Plone-Content-Typen mit Dexterity
Plone-Content-Typen mit DexterityPlone-Content-Typen mit Dexterity
Plone-Content-Typen mit DexterityPhilip Bauer
 

Mehr von Philip Bauer (10)

Growing pains - PosKeyErrors and other malaises
Growing pains - PosKeyErrors and other malaisesGrowing pains - PosKeyErrors and other malaises
Growing pains - PosKeyErrors and other malaises
 
Migrations migrations migrations
Migrations migrations migrationsMigrations migrations migrations
Migrations migrations migrations
 
Plone ♥︎ Python 3
Plone ♥︎ Python 3Plone ♥︎ Python 3
Plone ♥︎ Python 3
 
pdb like a pro
pdb like a propdb like a pro
pdb like a pro
 
Mosaic - The Layout Solution You Always Wanted
Mosaic - The Layout Solution You Always WantedMosaic - The Layout Solution You Always Wanted
Mosaic - The Layout Solution You Always Wanted
 
Upgrade to Plone 5
Upgrade to Plone 5Upgrade to Plone 5
Upgrade to Plone 5
 
Migrations, Upgrades and Relaunches
Migrations, Upgrades and RelaunchesMigrations, Upgrades and Relaunches
Migrations, Upgrades and Relaunches
 
It's the way of the present - Why you should use plone.app.contenttypes
It's the way of the present - Why you should use plone.app.contenttypesIt's the way of the present - Why you should use plone.app.contenttypes
It's the way of the present - Why you should use plone.app.contenttypes
 
Alles in Allem. Wie man mit Deliverance existierende Inhalte oder Anwendungen...
Alles in Allem. Wie man mit Deliverance existierende Inhalte oder Anwendungen...Alles in Allem. Wie man mit Deliverance existierende Inhalte oder Anwendungen...
Alles in Allem. Wie man mit Deliverance existierende Inhalte oder Anwendungen...
 
Plone-Content-Typen mit Dexterity
Plone-Content-Typen mit DexterityPlone-Content-Typen mit Dexterity
Plone-Content-Typen mit Dexterity
 

Kürzlich hochgeladen

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 

Kürzlich hochgeladen (20)

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 

Pimp my Plone

  • 1. PIMP MY PLONE Philip Bauer www.starzel.de
  • 2.
  • 3. There are over 1000 repos in the plone-collective on github The products-section on plone.org holds 2170 add-ons The search for Plone on pypi yields 2800 packages The addons vary in quality, maturity, age and reliability.
  • 4. The products-section on plone.org holds 2170 add-ons The search for Plone on pypi yields 2800 packages The addons vary in quality, maturity, age and reliability. Nobody can say they know all plone-addons.
  • 5. Finding, choosing and testing addons is a task that requires either developer-superpowers and a unlimited budget or blind faith and dumb luck. So what should you do to not end up lokking like the sad little elephant looking for the right flower? You need a plan.
  • 6. Make a list of features Find out what you think you really need. Surprisingly often you do not know what you need. On the one hand that makes it hard to even know what to look for in an addon. On the other hand that's a good thing because you'll almost never find an add-on that exactly fits your needs.
  • 7. Adapt So you'll have to either * adapt your needs and expectations to what is available, * invest the time & money to modify an existing addons to fit your needs * or create a new addon that does exactly what you need Usually we have all three cases in any project.
  • 8. Prioritize To be able to make a informed decision you make a list of features and prioritize. Example: * Must-have: Play videos on iOS, FF and IE8+ * Nice-to have: Support html5-video This way you're able to make a informed decision one you found some candidates.
  • 9. Finding the right one But how do you find candidates? There is no good list of addons. There are either...
  • 10. Too few to few like in plone/products
  • 11. Too many or too many..
  • 12. 1. http://plone.org/products 2. https://pypi.python.org/pypi 3. https://github.com/collective 4. https://github.com/plone 5. http://news.gmane.org/gmane.comp.web.zope.plone.user 6. google Search before you ask! 1. http://plone.org/products 2. https://pypi.python.org/pypi - use the search form! 3. https://github.com/collective >1000 repositories! 4. https://github.com/plone 240 repos - not all of them are part of the core yet! 5. search mailing list-archive: http://news.gmane.org/gmane.comp.web.zope.plone.user 6. google Do all six! In fact it only appears that we have to much choice. There are a lot of addons that do not exist yet. You'll have to write it yourself or pay someone to do this. We rarely have projects were we don't have to write our own addons. There is no harm in this! Usually these addons don't get released on pypi or even on github since they only fit the usecase of that customer. Sometimes addons can be of use to the wider public. Example: collective.noticeboard (sticky notes for plone)
  • 13. Ask If you did not find an addon that fits your needs ask. Actually you might have missed the very best addon for your usecase since the name is somewhat weird (anyone uwosh.north*), it has not been put on plone.org/products or because it is very new. 1. irc: #plone on irc.freenode.net 2. mailing-list: http://news.gmane.org/gmane.comp.web.zope.plone.user or http:// plone.org/support/forums (http://plone.org/support/lists) screenshot: http://thread.gmane.org/gmane.comp.web.zope.plone.user/116572/ focus=116643 3. I think stackoverflow is not the right platform for such a question but you might try it
  • 14. Shortlist We can satisfy the 85% by providing a up-to-date list of the best addons for frequent use- cases. - Product shortlist https://docs.google.com/spreadsheet/ccc? key=0At7ok0VqX0egdExISThOa0JBYjVUYi1pWmRDU0QyeUE#gid=0 Paul already talked about that
  • 15. So test therefore, who join forever, If heart to heart be found together! F. Schiller Once you think you found a likely candidate: Look closely
  • 16. Promises Test the key features thoroughly. Some addons promise more than they can deliver.
  • 17. Freshness Check how fresh and how well maintained the product is. • When was the latest release? • Are there hundreds of unresolved Bugs in the bug-tracker? • Has is recently seen developments?
  • 18. Compatability Does it run with your Plone-Version? • Many addons are not yet updated to work with Plone 4.3.x () • Many releases of addons won't work with Plone 3.3.x or even Plone 4.0 Maybe you need to use a older version of an addon to run it.
  • 19. i18n-support Are all strings properly translated into your language(s). You have to click through all public-facing UI in all your required languages.
  • 20. Will it uninstall? Does it uninstall cleanly? * Are there instructions for uninstalling? * Do they work? You really need to test that. First uninstall it or follow the instructions (maybe the tell you to run a uninstall-profile). Then remove it from buildout, rerun buidlout and restart the site. If nothing breaks you might just be lucky. Among the bad boys are: * p4a.* * singing & dancing * LinguaPlone
  • 21. http://blog.keul.it/2013/05/how-to-make-your- plone-add-on-products.html You'll spend days and sleepless nights trying to get rid of them. You'll work through a lot ob blogpost and mailthreads but might still end up without being able to get rid of the Add-on. It happend to me more often than I care to admit! If an add-on won't uninstall properly you have a choice: * use it anyway and live with the consequences * improve the uninstall-story * use something else Read the great blogpost by Luca Fabbri: http://blog.keul.it/2013/05/how-to-make-your- plone-add-on-products.html
  • 22. Dependencies Imaging you marry the girl of your dreams but one day you realize the brother she never talked about has just been released from jail and now want's to move in. This is how it feels to realize that the dependencies of a product have unexpected bad boys among them. - Check for other packages (e.g. flowplayer depends on several hachoir-packages, not bad but good to know) - Check for the required versions of these packages (e.g. plone.app.themeeditor uses Zopeskel 3.x/templer -> incompatible to any addon that depends on ZopeSkel 2)
  • 23. Load * Just how many js-libraries will be pulled into your page-load? * Why does the site run very slow? * I once wrote code that iterated over all users and created some special vocabulary from them. I did not expect that code being used in a site with thousands of users hammering a erratic LDAP with queries.
  • 24. What to do if it's not working like it should? Sometimes you'll have to fix an existing addon or add some functionality. Write a bug-report or feature-request. The bug-trackers are usually on github and are usually mentioned in the pypi-page. Example: https://github.com/smcmahon/Products.PloneFormGen/issues If you are a developer you might want to fix it yourselves. I do it all the time. If your bug-report gets ignored and you need to find someone to fix something check the list of people who recently commited to the package. To do so you go to the github-page of the addon. Example: https://github.com/collective/collective.oembed/commits/master You should only contact people directly if you are prepared to eventually pay them for the work they are supposed to be doing on your behalf.
  • 25. Keeps your troops organized Once you found them tend to them and keep them in a nice row. This includes: * Pinn your versions * Don't use source-checkouts in production * Pinn revisions if you have to use source-checkouts * Keep track of updates and development * Check your add-ons early if you plan a update * Prevent bitrot by following the development and participating Then the addons will be great troopers and you or your customers will be happy.
  • 26. ? ? ? ? Questions Philip Bauer www.starzel.de irc: pbauer github: pbauer twitter: StarzelDe We have room for up to four questions
  • 27. Napkin plan http://www.flickr.com/photos/cogdog/6293680050 Lost for choice http://www.flickr.com/photos/kool_skatkat/3194000700 troop inspection http://www.flickr.com/photos/pasukaru76/4016842259/ crossed fingers http://www.flickr.com/photos/daniel_gies/5052886953 maintenance http://www.flickr.com/photos/doug88888/2780642603 wrong plug http://www.flickr.com/photos/kaptainkobold/3203311346 menu http://www.flickr.com/photos/orangebrompton/9189799267 zombie http://www.flickr.com/photos/ianaberle/4577125935 how to kill a zombie http://www.flickr.com/photos/12905355@N05/5818578916 truck http://www.flickr.com/photos/webethere/8709657798 stromtroopers http://www.flickr.com/photos/legofenris/4212007962 Images

Hinweis der Redaktion

  1. There are over 1000 repos in the plone-collective on githubThe products-section on plone.org holds 2170 add-onsThe search for Plone on pypi yields 2800 packages The addons vary in quality, maturity, age and reliability.
  2. The products-section on plone.org holds 2170 add-onsThe search for Plone on pypi yields 2800 packages The addons vary in quality, maturity, age and reliability. Nobody can say they know all plone-addons.
  3. Finding, choosing and testing addons is a task that requires either developer-superpowers and a unlimited budget or blind faith and dumb luck. So what should you do to not end up lokking like the sad little elephant looking for the right flower? You need a plan.
  4. Find out what you think you really need. Surprisingly often you do not know what you need. On the one hand that makes it hard to even know what to look for in an addon. On the other hand that's a good thing because you'll almost never find an add-on that exactly fits your needs.
  5. So you'll have to either* adapt your needs and expectations to what is available,* invest the time & money to modify an existing addons to fit your needs* or create a new addon that does exactly what you needUsually we have all three cases in any project.
  6. To be able to make a informed decision you make a list of features and prioritize.Example:* Must-have: Play videos on iOS, FF and IE8+* Nice-to have: Support html5-videoThis way you're able to make a informed decision one you found some candidates.
  7. But how do you find candidates? There is no good list of addons. There are either...
  8. to few like in plone/products
  9. or too many..
  10. Search before you ask! 1. http://plone.org/products 2. https://pypi.python.org/p ypi - use the search form!3. https://github.com/collective >1000 repositories!4. h ttps://github.com/plone 240 repos - not all of them are part of the core yet!5. search mailing list-arch ive: http://news.gmane.org/gmane.comp.web.zope.plone.user 6. googleDo all six! In fact it only appears that we have to much choice. There are a lot of addons that do not exist yet.You'll have to write it yourself or pay someone to do this.We rarely have projects were we don't have to write our own addons. There is no harm in this!Usually these addons don't get released on pypi or even on github since they only fit the usecase of that customer.Sometimes addons can be of use to the wider public. Example: collective.noticeboard (sticky notes for plone)
  11. If you did not find an addon that fits your needs ask.Actually you might have missed the very best addon for your usecase since the name is somewhat weird (anyone uwosh.north*), it has not been put on plone.org/products or because it is very new.1. irc: #plone on irc.freenode.net2. mailing-list: http://news.gmane.org/gmane.comp.web.zope.plone.user or http://plone.org/support/forums ( http://plone.org/su pport/lists )screenshot: http:// thread.gmane.org/gmane.comp.web.z ope.plone.user/116572/focus=11 6643 3. I think stackoverflow is not the rig ht platform for such a question but you might try it
  12. We can satisfy the 85% by providing a up-to-date list of the best addons for frequent use-cases.- Product shortlist https://docs.google.com/spreadsheet/ccc?key=0At7ok0VqX0egdExISThOa0JBYjVUYi1pWmRDU0QyeUE#gid=0 Paul already talked about that
  13. Once you think you found a likely candidate: Look closely
  14. Test the key features thoroughly. Some addons promise more than they can deliver.
  15. Check how fresh and how well maintained the product is. When was the latest release? Are there hundreds of unresolved Bugs in the bug-tracker? Has is recently seen developments? When was the latest release? Are there hundreds of unresolved Bugs in the bug-tracker? Has is recently seen developments? When was the latest release? Are there hundreds of unresolved Bugs in the bug-tracker? Has is recently seen developments?
  16. Does it run with your Plone-Version? Many addons are not yet updated to work with Plone 4.3.x () Many releases of addons won't work with Plone 3.3.x or even Plone 4.0Maybe you need to use a older version of an addon to run it.
  17. Are all strings properly translated into your language(s). You have to click through all public-facing UI in all your required languages.
  18. Does it uninstall cleanly?* Are there instructions for uninstalling?* Do they work?You really need to test that.First uninstall it or follow the instructions (maybe the tell you to run a uninstall-profile). Then remove it from buildout, rerun buidlout and restart the site. If nothing breaks you might just be lucky.Among the bad boys are:* p4a.** singing & dancing* LinguaPlone
  19. You'll spend days and sleepless nights trying to get rid of them. You'll work through a lot ob blogpost and mailthreads but might still end up without being able to get rid of the Add-on.It happend to me more often than I care to admit!If an add-on won't uninstall properly you have a choice:* use it anyway and live with the consequences* improve the uninstall-story* use something else Read the great blogpost by Luca Fabbri: http://blog.keul.it/2013/05/how-to-make-your-plone-add-on-products.html
  20. Imaging you marry the girl of your dreams but one day you realize the brother she never talked about has just been released from jail and now want's to move in. This is how it feels to realize that the dependencies of a product have unexpected bad boys among them.- Check for other packages (e.g. flowplayer depends on several hachoir-packages, not bad but good to know)- Check for the required versions of these packages (e.g. plone.app.themeeditor uses Zopeskel 3.x/templer -> incompatible to any addon that depends on ZopeSkel 2)
  21. * Just how many js-libraries will be pulled into your page-load?* Why does the site run very slow?* I once wrote code that iterated over all users and created some special vocabulary from them. I did not expect that code being used in a site with thousands of users hammering a erratic LDAP with queries.
  22. What to do if it's not working like it should? Sometimes you'll have to fix an existing addon or add some functionality. Write a bug-report or feature-request.The bug-trackers are usually on github and are usually mentioned in the pypi-page.Example: https://github.com/smcmahon/Products.PloneFormGen/issues If you are a developer you might want to fix it yourselves. I do it all the time.If your bug-report gets ignored and you need to find someone to fix something check the list of people who recently commited to the package. To do so you go to the github-page of the addon.Example: https://github.com/collective/collective.oembed/commits/ master You should only contact people directly if you are prepa red to eventually pay them for the work they are supposed to be doing on your behalf.
  23. Once you found them tend to them and keep them in a nice row.This includes:* Pinn your versions* Don't use source-checkouts in production* Pinn revisions if you have to use source-checkouts* Keep track of updates and development* Check your add-ons early if you plan a update* Prevent bitrot by following the development and participatingThen the addons will be great troopers and you or your customers will be happy.
  24. We have room for up to four questions