SlideShare uma empresa Scribd logo
1 de 70
Baixar para ler offline
Plone Futures
Plone Conference 2016
It's great to have Plone back here in the US. It's been far too long.
To our international visitors, it's wonderful to have you here and
I'm glad we could get you here for one last visit before the wall
goes up.
Welcome to Boston!
Fifteen years
This is always the hardest of the "what's coming in Plone" talks to give.
We've spent the last few years talking about what Plone 5 would look
like and how we were progressing towards that. And it was a hugely
sucessful release.
^ Lots of positive attention, Dexterity, Deco.
But the .1 release is always the super boring one.
Plone 5.1
The release where we apologize for everything we did to you in
5.0.
Prevent over-generation of js/css files (1 of each per add-on).
Allow add-ons to add their resources to “default” (available at
all times) or “logged-in” (only for authenticated users) bundles.
https://github.com/plone/documentation/pull/529/files
Meta bundles
generation
(have to check multiple places to see if package is
installed)
Largely unused and an old implementation of OpenID.
Remove it from core, live as add-on.
Get rid of
portal_quickinstaller
• Currently two ways of installing products: GenericSetup and
CMFQuickInstaller
• From a user standpoint, needlessly complicated.
• From developer standpoint, also needlessly complicated
• @@installer
• Only handle GS profiles
• Standardize on "default" and "uninstall" profile names
Add actions control panel to Plone. one of the main reasons
people need to go into the ZMI right now.
Portal actions control panel
Scale images in plone.scale such that they will look good on devices with pixel ratios greater that 1. More and more
devices these days can display images with higher resolution than the html/css resolution. Plone however often serves
images that are scaled to the exact same size as html/css resolution, while a lot of devices can display twice the
resolution.
Retina image scales
Read image EXIF information to automatically rotate them if
necessary.
Auto-Rotation for Images
Plone 5.x
Add new option to search control panel setting the default
ordering of @@search
Easily change default search order
Add installed, not-installed, have, not-have conditions to registry.xml records to control
whether or not theyʼre imported. Particularly useful when it comes to registering
resources in add-ons that target multiple versions of Plone.
conditionally import registry records
• installed
• not-installed
• have
• not-have
Merge it into CMFPlone, so there's one less package. Add a new Plone control panel,
so you don't have to go through the ZMI, with a cleaner, more usable interface.
Merge
Products.RedirectionTool
into core
• Merge into CMFPlone
• New control panel
Registry Improvements
• Add ability to add/edit/delete records from control panel
• Import/export capability
Remove support for old style
resource registries
• Drop use of cssregistry.xml, jsregistry.xml
• Fail loudly, so users know why the old way doesn't work
Add ability to require email verification before account is
activated. Particularly important on self-registration-enabled sites.
Merge collective.emailconfirmationregistration into core
Assimilate
collective.indexing
• Queued indexing, happens only once per transaction
• Significant performance improvements
• Allows other indexers (like SOLR) to be notified on any indexing
operations
Begin removing existing Backbone code, more use of React
instead.
Use React in core, deprecate Backbone
Framework Fight!
Which I'm pretty sure was written by a spambot, because I
don't understand any of it.
Reset define in RequireJS after bundles are loaded
“Reset the requirejs define global variable in Plone so add-on
developers do not have to learn how to use requirejs if they are
including js that expect requirejs to be used.”
Whereas Diazo handles theming -- the entire site
design, Mosaic is focused on just the layout/display of
content
- Create complete page layouts, through the web, by
placing tiles of content the page.
- This can be text, images, specific field values,
collection results, embeddable media.
- Responsive grid, collapse nicely on smaller screens
- Page layouts can be saved and reused, set as default
views for new content.
- And the ability to limit which users can use the which
Mosaic
• Content layout
• "Tiles"
<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="en"
lang="en"
data-layout="./@@page-site-layout">
<div class="mosaic-grid-row">
<div class="mosaic-grid-cell mosaic-width-half mosaic-position-leftmost">
<div class="movable removable mosaic-tile mosaic-ingredients-tile">
<div class="mosaic-tile-content">
<div data-tile="./@@plone.app.standardtiles.field?field=ingredients"></div>
</div>
</div>
</div>
<div class="mosaic-grid-cell mosaic-width-half mosaic-position-half">
<div class="movable removable mosaic-tile mosaic-directions-tile">
<div class="mosaic-tile-content">
<div data-tile="./@@plone.app.standardtiles.field?field=directions"></div>
</div>
</div>
</div>
</div>
<div class="mosaic-grid-cell
mosaic-width-half
mosaic-position-half">
<div data-tile="./@@plone.app.standardtiles.field?field=directions">
Extending this further...
• Using diazo, plone.resource for ttw application development
• Asko: “fat themes”
collective.themefragments
^ Shoving more into themes, so that theyʼre no
longer just design, but also functionality
^ Export current site setup as “theme”
^ Do we need to worry about this? Drupal is
notorious for having themes that decide things
like which text editor youʼll be using
Fat Theme
• Theme fragments (Zope PageTemplate files) living in theme
package, rendered as a tile. (collective.themefragments)
• Design + Functionality
• Embed genericsetup profiles in zipped theme packages
(collective.themesitesetup))
• Dexterity content types
• TTW permissions
^ Maybe these aren't just themes,
We can also do some pretty amazing stuff with this concept. This is Rapido, you can go
to Eric Brehault's talk to hear more about it. But I guarantee you'll be hearing a lot about
this in the next few years.
https://summerofcode.withgoogle.com/organizations/
6123238505578496/?sp-page_size=48#6248572219555840
GSOC
Vikas Parashar: Themes
"Clean Blog"
"Spot"
"Booster"
"Business
Casual"
"Future
Imperfect"
http://googlingsummer.blogspot.in/2016/08/summarizing-
summer.html
Parker Joshi:
collective.easyforms
• Dexterity-based form creation
• Migrations from PloneFormGen
• Plone 5 compatibitlity
http://blog.jensenjiang.com/2016/08/20/GSoC-2016-
product/
Jensen Jiang (ftw.book)
• “proceedings” layout
• Plone 5 support
Plone Futures
Plone 2020
• APIs (hide complexity)
• REST API (plone.restapi)
• Python API (plone.api)
Plone 2020
• Improve TTW customization
• Improve training/documentation
Training this week has been huge success, greatly
improved our available training material.
^ Training as vital to bringing in new users/contributors
training.plone.org
Plone 2020
• Cleaner codebase
• Simplify structure
• Remove unused functionality/code
Alpine City Sprint
^[Zope Resurrection Sprint](https://
blog.gocept.com/2016/10/04/zope-resurrection-
part-2-
First step towards making Plone Python 3
compatbile
^ With Python 2 nearing end-of-life, we need to be
making our way towards Python 3.
^ Interim step for Plone
Zope2 / Update
Dependencies
• Update dependencies to latest versions
• ZTK
• Zope
• ZODB3
• Most are Python 3 compatible
• Minimal cleanup
The Headless CMS
Content management systems have traditionally
been broken down into three layers
^ Holds and serves the content.
^ The functionality that allows you to add/edit/delete
and otherwise manage the content
^ And the one that provides the visual
representation of that content
So when we use the term "headless", we're talking
about removing that final presentation layer,
creating a clear separation between the front and
back ends of the CMS.
Three layers of CMS
• Content Storage
• Content Management
• Content Presentation
Mobile growing into a larger percentage of traffic. Headless positions
plone well for succeeding as things trend in that (mobile) direction.
CMS Front end
• Traditional Web
• Dynamic
• Static
• Mobile
• Native App/Application
• IoT
• Other systems/services
Is the CMS the center of
the experience or a part
of the whole?
The thing is, the recent
trends have leveled the
playing field. The headless
CMS and microservices
reduce the reliance that
organizations have on
commercial CMSs. It's harder
Existing options from other old-school CMS tend to focus
on adding an API and saying "just ignore the frontend"
^ Typically deemed “Decoupled”
The Decoupled CMS
* Existing system + API
If that's good enough for us, we're already there.
Yay!
plone.rest provides the basic infrastructure that
allows us to build RESTful endpoints in Plone.
^ plone.restapi integrates that with the existing
Plone functionality
^ In alpha
The Decoupled CMS
• plone.rest
• plone.restapi
“Note, however, that many of the traditional products that now offer
headless capabilities were not really architected for these use cases. In
fact, when some of those products were created, multi-channel only
meant delivery to multiple websites. Building these capabilities is only
adding to their complexity.”
--Apoorv Durga
So we said, yeah, ok. We're already talking about
simplifying our stack.
Three Teams
• REST API
• Front-end
• Works with plone.server or plone 5 + restapi
• Basic plone ui: navigation, toolbar, login/logout
• Handles form generation, read json schema, determine widgets,
• Theme, which can be overridden at build time
• server side rendering via Angular Universal
• views (add/edit/view, or custom)
If you want something fun, have an american, fin, and
catalan all try to spell 'aiohttp'
Three Teams
• Back-end
• aiohttp-based HTTP server (asynchronous, handles multiple
concurrent transactions)
• Plone's Dexterity framework (sans views/forms)
• Zope Tool Kit (ZTK)
• ZODB
• Python 3.5+
Concurrent development
• Two approaches, in opposite directions:
• Start with everything and remove what we don’t need/want.
• Start with nothing and add back everything we want.
When we talk about removing everything, people get a bit freaked out. WE've been around
for 15 years now and we've already removed a lot of old and/or unused functionality. Let's
take a moment to remember those we've left behind and how far we've come.
Plone Futures
Plone Futures
Plone Futures
Plone Futures

Mais conteúdo relacionado

Destaque

Destaque (20)

Teorías sobre la formación de los planetas
Teorías sobre la formación de los planetasTeorías sobre la formación de los planetas
Teorías sobre la formación de los planetas
 
El funcionamiento del sistema financiero mexicano
El funcionamiento del sistema financiero mexicanoEl funcionamiento del sistema financiero mexicano
El funcionamiento del sistema financiero mexicano
 
P10_E2_MarcosNuez
P10_E2_MarcosNuezP10_E2_MarcosNuez
P10_E2_MarcosNuez
 
Allied american university isy 101 module 4
Allied american university isy 101 module 4Allied american university isy 101 module 4
Allied american university isy 101 module 4
 
ChildObesityNJ2015
ChildObesityNJ2015ChildObesityNJ2015
ChildObesityNJ2015
 
UX Basics
UX BasicsUX Basics
UX Basics
 
nodebots presentation @seekjobs
nodebots presentation @seekjobsnodebots presentation @seekjobs
nodebots presentation @seekjobs
 
Blooms taxonomy
Blooms taxonomyBlooms taxonomy
Blooms taxonomy
 
Actividad aec 1
Actividad aec 1Actividad aec 1
Actividad aec 1
 
Minha casa a venda
Minha casa a vendaMinha casa a venda
Minha casa a venda
 
Efectos de animacion
Efectos  de animacionEfectos  de animacion
Efectos de animacion
 
La remuneración al director de una sociedad anónima en Argentina
La remuneración al director de una sociedad anónima en ArgentinaLa remuneración al director de una sociedad anónima en Argentina
La remuneración al director de una sociedad anónima en Argentina
 
Faltam apenas 04 dias
Faltam apenas 04 diasFaltam apenas 04 dias
Faltam apenas 04 dias
 
Tnl college tour
Tnl college tourTnl college tour
Tnl college tour
 
Fotosintesi
FotosintesiFotosintesi
Fotosintesi
 
Look like unlike vitrhu theory law 4
Look  like  unlike  vitrhu  theory  law 4Look  like  unlike  vitrhu  theory  law 4
Look like unlike vitrhu theory law 4
 
ترانسكربت
ترانسكربتترانسكربت
ترانسكربت
 
ART1
ART1ART1
ART1
 
articol 6
articol 6articol 6
articol 6
 
Oscar chate
Oscar   chateOscar   chate
Oscar chate
 

Semelhante a Plone Futures

TTW FTW: Plone as the new wordpress
TTW FTW: Plone as the new wordpressTTW FTW: Plone as the new wordpress
TTW FTW: Plone as the new wordpressDylan Jay
 
Building resuable and customizable Vue components
Building resuable and customizable Vue componentsBuilding resuable and customizable Vue components
Building resuable and customizable Vue componentsFilip Rakowski
 
Html5 today
Html5 todayHtml5 today
Html5 todayRoy Yu
 
A winning combination: Plone as CMS and your favorite Python web framework as...
A winning combination: Plone as CMS and your favorite Python web framework as...A winning combination: Plone as CMS and your favorite Python web framework as...
A winning combination: Plone as CMS and your favorite Python web framework as...Carlos de la Guardia
 
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in ActionBill Scott
 
[Capella Days 2020] Capella Development Status & Future Work
[Capella Days 2020] Capella Development Status & Future Work[Capella Days 2020] Capella Development Status & Future Work
[Capella Days 2020] Capella Development Status & Future WorkObeo
 
Under the Hood with Cognos Analytics R5: Say Hello to Portal Tabs Replacement
Under the Hood with Cognos Analytics R5: Say Hello to Portal Tabs ReplacementUnder the Hood with Cognos Analytics R5: Say Hello to Portal Tabs Replacement
Under the Hood with Cognos Analytics R5: Say Hello to Portal Tabs ReplacementSenturus
 
Exove Cms Seminaari Kalvot 20090616
Exove Cms Seminaari Kalvot 20090616Exove Cms Seminaari Kalvot 20090616
Exove Cms Seminaari Kalvot 20090616Exove
 
OCTO On-Site Off-Site Update on D8 Roadmap
OCTO On-Site Off-Site Update on D8 RoadmapOCTO On-Site Off-Site Update on D8 Roadmap
OCTO On-Site Off-Site Update on D8 RoadmapAngela Byron
 
Using Cool New Frameworks in (Mobile) Domino Apps
Using Cool New Frameworks in (Mobile) Domino AppsUsing Cool New Frameworks in (Mobile) Domino Apps
Using Cool New Frameworks in (Mobile) Domino AppsTeamstudio
 
Lean engineering for lean/balanced teams: lessons learned (and still learning...
Lean engineering for lean/balanced teams: lessons learned (and still learning...Lean engineering for lean/balanced teams: lessons learned (and still learning...
Lean engineering for lean/balanced teams: lessons learned (and still learning...Balanced Team
 
The Rich Standard: Getting Familiar with HTML5
The Rich Standard: Getting Familiar with HTML5The Rich Standard: Getting Familiar with HTML5
The Rich Standard: Getting Familiar with HTML5Todd Anglin
 
Open Apereo - Web components workshop
Open Apereo - Web components workshopOpen Apereo - Web components workshop
Open Apereo - Web components workshopbtopro
 
Plone 5 theming unleashed
Plone 5 theming unleashedPlone 5 theming unleashed
Plone 5 theming unleashedsneridagh
 
Bootstrap 5 whats new
Bootstrap 5   whats newBootstrap 5   whats new
Bootstrap 5 whats newSandun Perera
 
Build Python CMS The Plone Way
Build Python CMS The Plone WayBuild Python CMS The Plone Way
Build Python CMS The Plone WayTsungWei Hu
 

Semelhante a Plone Futures (20)

TTW FTW: Plone as the new wordpress
TTW FTW: Plone as the new wordpressTTW FTW: Plone as the new wordpress
TTW FTW: Plone as the new wordpress
 
Building resuable and customizable Vue components
Building resuable and customizable Vue componentsBuilding resuable and customizable Vue components
Building resuable and customizable Vue components
 
Html5 today
Html5 todayHtml5 today
Html5 today
 
A winning combination: Plone as CMS and your favorite Python web framework as...
A winning combination: Plone as CMS and your favorite Python web framework as...A winning combination: Plone as CMS and your favorite Python web framework as...
A winning combination: Plone as CMS and your favorite Python web framework as...
 
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
 
[Capella Days 2020] Capella Development Status & Future Work
[Capella Days 2020] Capella Development Status & Future Work[Capella Days 2020] Capella Development Status & Future Work
[Capella Days 2020] Capella Development Status & Future Work
 
Old Dogs and New Tricks
Old Dogs and New TricksOld Dogs and New Tricks
Old Dogs and New Tricks
 
Under the Hood with Cognos Analytics R5: Say Hello to Portal Tabs Replacement
Under the Hood with Cognos Analytics R5: Say Hello to Portal Tabs ReplacementUnder the Hood with Cognos Analytics R5: Say Hello to Portal Tabs Replacement
Under the Hood with Cognos Analytics R5: Say Hello to Portal Tabs Replacement
 
Exove Cms Seminaari Kalvot 20090616
Exove Cms Seminaari Kalvot 20090616Exove Cms Seminaari Kalvot 20090616
Exove Cms Seminaari Kalvot 20090616
 
OCTO On-Site Off-Site Update on D8 Roadmap
OCTO On-Site Off-Site Update on D8 RoadmapOCTO On-Site Off-Site Update on D8 Roadmap
OCTO On-Site Off-Site Update on D8 Roadmap
 
Using Cool New Frameworks in (Mobile) Domino Apps
Using Cool New Frameworks in (Mobile) Domino AppsUsing Cool New Frameworks in (Mobile) Domino Apps
Using Cool New Frameworks in (Mobile) Domino Apps
 
Swf search final
Swf search finalSwf search final
Swf search final
 
Lean engineering for lean/balanced teams: lessons learned (and still learning...
Lean engineering for lean/balanced teams: lessons learned (and still learning...Lean engineering for lean/balanced teams: lessons learned (and still learning...
Lean engineering for lean/balanced teams: lessons learned (and still learning...
 
Dean4j@Njug5
Dean4j@Njug5Dean4j@Njug5
Dean4j@Njug5
 
The Rich Standard: Getting Familiar with HTML5
The Rich Standard: Getting Familiar with HTML5The Rich Standard: Getting Familiar with HTML5
The Rich Standard: Getting Familiar with HTML5
 
Open Apereo - Web components workshop
Open Apereo - Web components workshopOpen Apereo - Web components workshop
Open Apereo - Web components workshop
 
Plone 5 theming unleashed
Plone 5 theming unleashedPlone 5 theming unleashed
Plone 5 theming unleashed
 
Bootstrap 5 whats new
Bootstrap 5   whats newBootstrap 5   whats new
Bootstrap 5 whats new
 
HTML5 and Joomla! 2.5 Template
HTML5 and Joomla! 2.5 TemplateHTML5 and Joomla! 2.5 Template
HTML5 and Joomla! 2.5 Template
 
Build Python CMS The Plone Way
Build Python CMS The Plone WayBuild Python CMS The Plone Way
Build Python CMS The Plone Way
 

Último

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 

Último (20)

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

Plone Futures

  • 2. It's great to have Plone back here in the US. It's been far too long. To our international visitors, it's wonderful to have you here and I'm glad we could get you here for one last visit before the wall goes up. Welcome to Boston!
  • 4. This is always the hardest of the "what's coming in Plone" talks to give. We've spent the last few years talking about what Plone 5 would look like and how we were progressing towards that. And it was a hugely sucessful release. ^ Lots of positive attention, Dexterity, Deco.
  • 5. But the .1 release is always the super boring one. Plone 5.1 The release where we apologize for everything we did to you in 5.0.
  • 6. Prevent over-generation of js/css files (1 of each per add-on). Allow add-ons to add their resources to “default” (available at all times) or “logged-in” (only for authenticated users) bundles. https://github.com/plone/documentation/pull/529/files Meta bundles generation
  • 7. (have to check multiple places to see if package is installed) Largely unused and an old implementation of OpenID. Remove it from core, live as add-on. Get rid of portal_quickinstaller • Currently two ways of installing products: GenericSetup and CMFQuickInstaller • From a user standpoint, needlessly complicated. • From developer standpoint, also needlessly complicated • @@installer • Only handle GS profiles • Standardize on "default" and "uninstall" profile names
  • 8. Add actions control panel to Plone. one of the main reasons people need to go into the ZMI right now. Portal actions control panel
  • 9. Scale images in plone.scale such that they will look good on devices with pixel ratios greater that 1. More and more devices these days can display images with higher resolution than the html/css resolution. Plone however often serves images that are scaled to the exact same size as html/css resolution, while a lot of devices can display twice the resolution. Retina image scales
  • 10. Read image EXIF information to automatically rotate them if necessary. Auto-Rotation for Images
  • 12. Add new option to search control panel setting the default ordering of @@search Easily change default search order
  • 13. Add installed, not-installed, have, not-have conditions to registry.xml records to control whether or not theyʼre imported. Particularly useful when it comes to registering resources in add-ons that target multiple versions of Plone. conditionally import registry records • installed • not-installed • have • not-have
  • 14. Merge it into CMFPlone, so there's one less package. Add a new Plone control panel, so you don't have to go through the ZMI, with a cleaner, more usable interface. Merge Products.RedirectionTool into core • Merge into CMFPlone • New control panel
  • 15. Registry Improvements • Add ability to add/edit/delete records from control panel • Import/export capability
  • 16. Remove support for old style resource registries • Drop use of cssregistry.xml, jsregistry.xml • Fail loudly, so users know why the old way doesn't work
  • 17. Add ability to require email verification before account is activated. Particularly important on self-registration-enabled sites. Merge collective.emailconfirmationregistration into core
  • 18. Assimilate collective.indexing • Queued indexing, happens only once per transaction • Significant performance improvements • Allows other indexers (like SOLR) to be notified on any indexing operations
  • 19. Begin removing existing Backbone code, more use of React instead. Use React in core, deprecate Backbone
  • 21. Which I'm pretty sure was written by a spambot, because I don't understand any of it. Reset define in RequireJS after bundles are loaded “Reset the requirejs define global variable in Plone so add-on developers do not have to learn how to use requirejs if they are including js that expect requirejs to be used.”
  • 22. Whereas Diazo handles theming -- the entire site design, Mosaic is focused on just the layout/display of content - Create complete page layouts, through the web, by placing tiles of content the page. - This can be text, images, specific field values, collection results, embeddable media. - Responsive grid, collapse nicely on smaller screens - Page layouts can be saved and reused, set as default views for new content. - And the ability to limit which users can use the which Mosaic • Content layout • "Tiles"
  • 23.
  • 25. <div class="mosaic-grid-row"> <div class="mosaic-grid-cell mosaic-width-half mosaic-position-leftmost"> <div class="movable removable mosaic-tile mosaic-ingredients-tile"> <div class="mosaic-tile-content"> <div data-tile="./@@plone.app.standardtiles.field?field=ingredients"></div> </div> </div> </div> <div class="mosaic-grid-cell mosaic-width-half mosaic-position-half"> <div class="movable removable mosaic-tile mosaic-directions-tile"> <div class="mosaic-tile-content"> <div data-tile="./@@plone.app.standardtiles.field?field=directions"></div> </div> </div> </div> </div>
  • 28. Extending this further... • Using diazo, plone.resource for ttw application development • Asko: “fat themes”
  • 29. collective.themefragments ^ Shoving more into themes, so that theyʼre no longer just design, but also functionality ^ Export current site setup as “theme” ^ Do we need to worry about this? Drupal is notorious for having themes that decide things like which text editor youʼll be using Fat Theme • Theme fragments (Zope PageTemplate files) living in theme package, rendered as a tile. (collective.themefragments) • Design + Functionality • Embed genericsetup profiles in zipped theme packages (collective.themesitesetup)) • Dexterity content types • TTW permissions ^ Maybe these aren't just themes,
  • 30. We can also do some pretty amazing stuff with this concept. This is Rapido, you can go to Eric Brehault's talk to hear more about it. But I guarantee you'll be hearing a lot about this in the next few years.
  • 39.
  • 40.
  • 43. Plone 2020 • APIs (hide complexity) • REST API (plone.restapi) • Python API (plone.api)
  • 44. Plone 2020 • Improve TTW customization • Improve training/documentation
  • 45. Training this week has been huge success, greatly improved our available training material. ^ Training as vital to bringing in new users/contributors training.plone.org
  • 46. Plone 2020 • Cleaner codebase • Simplify structure • Remove unused functionality/code
  • 47. Alpine City Sprint ^[Zope Resurrection Sprint](https:// blog.gocept.com/2016/10/04/zope-resurrection- part-2- First step towards making Plone Python 3 compatbile ^ With Python 2 nearing end-of-life, we need to be making our way towards Python 3. ^ Interim step for Plone Zope2 / Update Dependencies • Update dependencies to latest versions • ZTK • Zope • ZODB3 • Most are Python 3 compatible • Minimal cleanup
  • 49. Content management systems have traditionally been broken down into three layers ^ Holds and serves the content. ^ The functionality that allows you to add/edit/delete and otherwise manage the content ^ And the one that provides the visual representation of that content So when we use the term "headless", we're talking about removing that final presentation layer, creating a clear separation between the front and back ends of the CMS. Three layers of CMS • Content Storage • Content Management • Content Presentation
  • 50. Mobile growing into a larger percentage of traffic. Headless positions plone well for succeeding as things trend in that (mobile) direction. CMS Front end • Traditional Web • Dynamic • Static • Mobile • Native App/Application • IoT • Other systems/services
  • 51. Is the CMS the center of the experience or a part of the whole?
  • 52. The thing is, the recent trends have leveled the playing field. The headless CMS and microservices reduce the reliance that organizations have on commercial CMSs. It's harder
  • 53. Existing options from other old-school CMS tend to focus on adding an API and saying "just ignore the frontend" ^ Typically deemed “Decoupled” The Decoupled CMS * Existing system + API
  • 54. If that's good enough for us, we're already there. Yay! plone.rest provides the basic infrastructure that allows us to build RESTful endpoints in Plone. ^ plone.restapi integrates that with the existing Plone functionality ^ In alpha The Decoupled CMS • plone.rest • plone.restapi
  • 55. “Note, however, that many of the traditional products that now offer headless capabilities were not really architected for these use cases. In fact, when some of those products were created, multi-channel only meant delivery to multiple websites. Building these capabilities is only adding to their complexity.” --Apoorv Durga
  • 56. So we said, yeah, ok. We're already talking about simplifying our stack.
  • 57. Three Teams • REST API • Front-end • Works with plone.server or plone 5 + restapi • Basic plone ui: navigation, toolbar, login/logout • Handles form generation, read json schema, determine widgets, • Theme, which can be overridden at build time • server side rendering via Angular Universal • views (add/edit/view, or custom)
  • 58. If you want something fun, have an american, fin, and catalan all try to spell 'aiohttp' Three Teams • Back-end • aiohttp-based HTTP server (asynchronous, handles multiple concurrent transactions) • Plone's Dexterity framework (sans views/forms) • Zope Tool Kit (ZTK) • ZODB • Python 3.5+
  • 59. Concurrent development • Two approaches, in opposite directions: • Start with everything and remove what we don’t need/want. • Start with nothing and add back everything we want.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66. When we talk about removing everything, people get a bit freaked out. WE've been around for 15 years now and we've already removed a lot of old and/or unused functionality. Let's take a moment to remember those we've left behind and how far we've come.