 OK, da se počuče. Prvno, zelo pričo zelo, zelo počuče, da je začal, da je bilo dobro uročnje, zato sem je zelo v tem, da se počuče. Zelo se je zelo, da je počuče, da je zelo počuče, zelo počuče, da je dobro uročnje. To je, če moj boss tega, V dnešnjih vseh ne znam, da je to, da je to, da je to. Ja, sem z njega početil geofizika, in potem sem zelo v nekaj zelo, in sem zelo v vseh nekaj zelo, tako sem zelo vseh nekaj zelo, in sem zelo vseh nekaj zelo, in sem zelo vseh nekaj zelo, in sem zelo vseh nekaj zelo, deserves three, and I still work for various non-profits and useplown to elb make the world a better place. OK, thank you, president, Ploney is a Python based CMS, is an open source, some very mature project. It uses an object-oriented database. And as a vast community, it cares a lot about accessibility and security. Potej, da je bil jemelj, in in priživljaja se in na sajse, da bil Leg Python, in jeONil. Čebno, da jih ona zelo je ospoje, to ne mal ne. Vsi ne slapili za mne kašnjenje in način, da se vsem vse vse vse vse. Tukaj na plonu. Plon je pravda na odličnjih, in včasnji plon konferencij je v 2003. Plon fundacij, kaj ima prezident, je začal v 2004. Zelo, da imamo plon v mnimi veršanih plonu. Nelj smo prišli do 5.1. veršanih. Zelo, da bomo daživati nekaj plon. So this is a fresh plan side, it can do, it suggest you, things to set up at the beginning, for example, you can set up a SMTP, and I set up Mock SMTP to see what is happening. I sent a test email, I go to my web UI for this SMTP, I can see that the mail is sent, that would be useful later, because now you see, when you are logged in, you have a lot of features, but of course now we are admin and we want to test it with a regular user to see what a user can do. So, we go to the control panel where we have lots of functionality to, like adding users and we have pizda, da je je vse, da je nekaj prav, kot da imamo dovolj. In sveč je sveč je poslijevo z nekaj prav, v zelo, začne. A zelo da je se prav vse vseč, ko je dovolj, pa nekaj prav, da je to, ko je dovolj. Zelo da, začne. Zelo da smo na... Zelo da je dovolj. Zelo da je dovolj, da se da se dovolj. Išli, da je dovolj, da je dovolj. in nami nekaj nekaj. Nekaj nekaj je prejko, bo se načo zelo zelo. Okay, zelo zelo zelo. Tudi vse tega je zelo. In sem da je zelo vzelo, da je je vse. I pa sem tudi zelo, Alan Nisse, in izgledaj sem zelo. In sem da se, da sem zelo, in sem možemo zapečiti, da bomo drugi, nekaj nič po drugih graža, nič na drugi. Ne. Ne, na zapečite. Ha, da bomo navega zveljana, da mi je zaplniti, da je to je svih opotr sliceh in mislite,啊, to dobro. In zelo, pa imamo nečo, da bo screenshota, ta je, da je, ko se jaz najde, ta je, ono se da neč in nog postalit, in izpravno vse oboživajte poslutnje, da je nekaj učinja. Nisem je bolj vse neko, in nekaj ne bo začal. Zato pa nekaj nekaj nebo da pa neko ne bo začal. Nekaj ne bo začal. Zato se pa vse nekaj ne okračaj, da se da nekaj ne bo začal. Now anonymous user cannot see anything because the news is created private as default so Alan wants to publish it but he has not the right to publish it so he is just pending a view and he needs a more powerful user to do that. The user can be admin but there are other users that which we can grant the permission to do that, now the news is published and the anonymous user can see it so this is just an example use case that shows you how the security of blown works. Ok, sorry. Ok, so, do you want to talk about presentation? Yeah, I think it's important to note that what you just saw this whole setup of difference that you can add a field to a user specification, gender or credit card number or whatever you want to know of them. You can do it through the web but you can also do it programmatically and that is true of almost anything in blown setting up users, setting up groups. You can rapidly prototype it through the web or you can have your advanced user do that but then you can save the specification and put that in version control and have that part of your deployment. So, the next time you want to deploy a site just like that, you don't have to go clickity clickity click again, you have that as a normal file system python egg. Security, we take security very serious, we have a very nice security team, most of the vulnerabilities, all systems have vulnerabilities, blown included, we just have less of them and most of them tend to be discovered by our own security team. And one of the most often misused class of vulnerabilities is SQL injection, which doesn't work because we don't use SQL, so that helps. But also what we've had most were issues with cross size scripting but that has been taken care of in clone 5, even for the add-ons that you write. Ok, for example, the FBI is using a prone solution for its website and we have this fake news that at the end was a good advertisement for us because they claim they had a zero date for FBI.gov, which was not true, was proven not true. And at the end we were happy that the prone name was associated with such a big site that was concerned about security. And also in December we saw that security issues were quite a thing during the presidential elections. Ok, so also we can do a lot of stuff with the content that we manage through our site. For example, we have bulk editing and bulk upload features, we can tag many items at the time or remove them, rename sort, reorganize our stuff through a slick interface. And we have, as you saw before, a control panel where we can set up the experience that the user have on their website. For example, we can set up, as you saw, the main settings but also the team. We can install add-ons, we can set up user group and customize also contents. This is one nice feature that I will show you. We have several contents, we can add new one or modify existing one. For example, we have the page, which is a normal HTML page. We can add new field here or also new behaviors, behaviors are groups of fields, which contains, for example, ways to configure your content type. For example, you can set up, if you want the pages to be discussed, and this will fire up some commenting system on the website. And we have several options for that. Also, for example, you want to enable the lead image field on a page to make it more beautiful. And if we do that, we will see, for example, the field appearing when we are going to add or edit a new page. Also, Plune is friendly with social media and SEO. It allows you to configure already through the web your Twitter account, your Facebook account, so that when your website is rendered, it has already all the meta tags that allow it to be well indexed for the search engines and to be well shared on the social networks. From the beginning and right up to now, Plune has always been very good with multilingual, probably because it was partly thought of in Norway, which as a tiny country has, there are two languages already. And it's being used a lot also by governments and local governments in places like Switzerland, where being trilingual is mandatory. So being multilingual is not something, some edge case, it's something that we do and that needs to be done and that works quite well. So you can set up several languages and it will sort of, it will not automatically translate for you. You can put an add-on in that will put in a Google translate for you as a starter, but please don't do this on your live website. The translations of Google or Bing are getting better, but hire a human to do the final editing. But you can then have all your content in multiple languages and it will either fall back by the cookie that the user has or the user's preferred language, or you could do it by IP or you could set it, well, any way you want actually. So also you can do fancy stuff, some other fancy stuff through the web, of course also coding your own Python packages, but if you need to quickly change the colors of your website, you are allowed to do that. You can also edit through the web your team files, for example we support out of the box less and we can compile less, click in the bottom build CSS that you see above. So it allows you to customize your team through the web. Of course you can provide packages, either as Python packages, either as zip files that you can upload. Once you have this team available on your website, you can activate them and have whatever team you like and also you can switch back and forth between these teams. Ok, some technical facts for the audience. Ok, we care very much about upgrades, we will see as like dedicated to that later. Ok, and we have a very simple JavaScript solution that allows you to activate fancy features very fast and then I will show you how to start working with Plon. So about upgrades, we have a machinery in place that allows you to upgrade steps to update your database to the latest version of your code. Of course you have a driver mode, so you can test it before you screw up everything. Of course it is always suggested to do that on a staging server before doing that in production, but also add-ons can profit of this machinery to provide sane upgrades. About our JavaScript solution, we provide JavaScript models called patterns that can be easily applied to your team, just setting classes and attributes. Ok, so you have a regular HTML, you apply a class that is called path sortable and automatically the list items will be dragable and droppable and then you can set up the UI to understand this. And it's fine because you have just to set a class and configure the pattern to some data attributes that are well documented. And I suggest you to check this pattern solution which is called mockup and I provide you the link that will be in the slide that I will share. About the documentation. Yeah, I should talk a little bit about that because I am also on the documentation team and if you don't have documentation for a product, your product does not exist, is our firm leave in the documentation team. The prone documentation, if you've last seen it five years ago, you are very sorry. It was in a bit of a mess, it had grown very organically but there has been a huge effort to reorganize it. It is now all reachable under docs.plone.org. The setup is slightly more sane, you hopefully will be able to find what you want to know. Plone is made up of a huge number of components, quite a large number, but all the components that you need for beginner users, for advanced users, for developers are all under there in different sections. We have become the work on translating the docs using trans effects. They are not finished yet. There are developer docs in Chinese and partly in Brazilian Portuguese right now but not very many other languages have complete developer docs. Most developers tend to speak English anyway so it is a huge community in China which prefers the Chinese developer docs. So it is important. We have now also started using Selenium robot framework to generate the screenshots for our documentation. That is nice because they will also be updated if a new version comes out and they also serve as tests. If somebody breaks something in our screenshoting it means the user interface has changed. Which means that the documentation must follow suit because there is a new button or something. So we are treating our documentation as part of our continuous integration setup which helps to keep it in line. And all the building and the testing is done via continuous integration. We are still improving on that one. It is a relatively new trend in documentation land to treat your documentation as code that should be tested, but we are getting there. So we are using all kinds of dockerized containers and hooks to automatically spell check, link check, use the right terminology and also check for file age. So we get a little ping if a file hasn't been touched for a year. That doesn't mean it's wrong. It could just be the perfect documentation but it gives you a guide like you may want to check if this is still up to date. And it could be in some hidden corner of your documentation that you don't tend to read because you already know it. So it's good to have file checks on your documentation. I can recommend that for any software project. OK. Speaking about tests, all these features are of course integrated together and things can break without you acknowledging it. Of course, we have a wonderful Jenkins setup put in place and this allows us to test for requests also addressing several versions at a time and this makes the clone really solid. We can be quite confident that you are not breaking stuff, customizing things or improving things and this is quite something that you need when you have to handle with 300 packages. So if you want to train yourself and start using clone we have a dedicated training website when you can follow up the training so the training material is there and it is addressed to several kind of interests of users. For example, if you want to do content management we have dedicated training if you are an admin there is the deployment training if you want to develop or customize the clone there is another course and so on. Training usually happens during events for example during the clone conference there are all these kind of training and they are included in the conference price so I suggest you to look for them. About the clone community the clone community is very solid and on GitHub we have an organization with 400 people dealing about with 300 public repositories and we also have another organization called Collective which contains packages that are not in the core at least for the moment but contains add-on for example solid integration elastic search integration whatever you want integration and there are even more people of course some of them are also in the clone organization and it contains 1,500 public repositories and you saw that recently on the GitHub there were 100 million put request merged and almost one per meal of them was in the clone community which is quite good as a whole you will also meet us at EuroPython we are generally friendly bunch we have some weird oddities I don't know some are pens tend to swap but that's not required just approach the people in the clone community clone we should still stress is not run by a single company unlike some other open source projects there is no overriding company there's just a foundation to hold the intellectual property and the rest are all small contractors consultancy firms and university staff who together as a community create and decide where clone goes where clone goes is decided by the community it's looked over by a framework team everything is organized by teams but there is no big dictator like firm that says this is where we are going that's not how we roll so also on the Python package index there are a lot of clone projects that can be used right away so I suggest you to check it because there you can find teams, customization and some other packages also clone is an important user base as I was saying before there are many United States clone sites for example the FBI, the CIA and NASA the universities it was also a big success the past year because the Brazil government which is using Avali clone and use the clone for his Olympic website and this was quite a thing because that website has to survive a spike of users that wanted to know what was happening there spikes of editor that were uploading for example many pictures at the time for the events so also had to be extremely secure because of course the facing the Olympics website was a sweet target for many crackers also this year we have 5 Google Summer of Code students which are doing actually well and there are some projects that you can build on top of clone basically whatever you want and there are a couple of projects that raise quite interest recently there is Casto CMS which provide some UI enhancement for clone and we expect to backport some of the Casto CMS features soon to clone also there is Quave which is a kind of clone distribution targeted for Internet and it allows you to interact socially with your customer so Casto is done by an American firm and they really focus on security because if you have a three letter agency they are probably their clients and if I tell you exactly their clients black helicopters will descend and we will end up somewhere where we don't want to be but they have also really focused on usability using very modern JS techniques if you have for instance an image you can set a focal point so that whatever if it appears on a phone or a tablet or a 27 inch monitor in different aspect ratios always the focal point will be part of the center of the picture and as I said we fully expect that to this has been pioneered in Casto CMS we will backport that into regular clone and about Quave it has a lot of social features it has an activity stream where you can upload stuff and comment on it also you can share stuff you have contacts and whatever and its main target is to be simple simple for user because some Internet are just a bucket where you put stuff and forget instead here you want your content to be live and used by your users and it is also extensible through one thing called apps that can basically customize your user experience ok, this is the it is planned now but there are things happening in the background to improve the clone experience more and for example we are close to release the 5.1 version and this one for example supports retina mode displays you can by default it is disabled but you can enable it and support 2 pair or 3 pair density displays you can also for example set up the size of the previews of your images that are uploaded maybe even the regular size but then served, scaled automatically when needed so for example enabling this feature it allows you to automatically render the image tag for the images with the appropriate source set attribute and so the browser will understand which is the best picture that it should download this of course is a big UI win and one other that has just been finished last week we had a sprint last week in Finland is the redirection tool there was always a redirection tool in clone where you put on an alias for a URL and that goes actually to another content item but it was hidden, there was no easy web interface for it now there is and it will be released in 5.1 you might say why is this important why don't you do a rewrite in Nginx or Apache or whatever your frontend is I am a site administrator much more than a developer but also I am now in Italy and of course my colleagues launched a new web campaign and they decided at the very last moment to change the URL that they were putting out for their web campaign otherwise they would have to bother me while I was dancing in the coconut club that is not nice now a normal editor can say that this other URL is much catchier and it will do better on social media so let's put in an alias so it puts power in the hands where it belongs namely your site editors and your content editors and not in the power of sys admins or people who have access to the Nginx rewrite rules so it's all a way of enabling power users to do what they do best namely thinking up catchy names and being dependent on the tech people to then implement it so it may seem small but my users are very happy with it and it's a good win for a lot of things so this is another screen that shows you how to set aliases for your pages and we have this wonderful model that we basically start with add-ons and then incorporate it in the core and this is an add-on called mosaic that allows you to create very complex composite pages through the web and this is, I would say it's amazing because you see it allows you to add an image with the appropriate preview and add some content there and customize it and you can add also and for the more conservative types amongst us you can also pre-make some layouts and say like only this class of people are allowed to use this kind of site layout because this gives a site editor unlimited, almost unlimited ways of styling a single web page or a landing page but some institutions go completely freaky on that and say like our corporate style says our logo should always be in the left upper corner you can also say ok, you are not allowed to change that the logo will always appear there and you poor little intern are not allowed to make really wild changes you can just change the text so we think of both the very creative end-user but also the ones that are restricted by corporate or institutional standards and as you saw the created page is not just composed by many stuff but you can also edit whatever you want but also fetch content from other parts of your website so for example if you have already a news item somewhere you can say ok get the text from this object and display it here and of course the created page is responsive ok, so wait, fine so also we have another thing that our editors love you saw before that we could add fields to our users but there are also add-ons for the moment, they are not yet in the core but they are very loved by our customers and they allow you to create through the web forms, so for example you can create a basic form with some fields and you can add new fields exactly as shown before for the user to add your field, you can customize them as you want and of course also these forms can be published or can be set as private or shared with just some people, so also here you have a huge amount of security considered by design ok to make a plan more useful to avoid a group of people, we are also now bringing out the REST API that means you have basically all the power of clone, all the security, all the 15 years of experience that we have and if you don't like our front-end write your own it's a complete and it's fully REST it's not fake REST as many other so-called REST APIs are you can do everything through REST calls and you can write alternative front-ends and that's already being used in production by several French ministries for instance to provide important information to their citizens on natural disasters and strikes or lightning strikes and floods and things like that so you can build a single-page application with React or Angular or whatever is new tomorrow in the JavaScript world but we provide React and Angular now as standard if you use something super fancy I'm sure you know how to do it and this will become also the internal way we actually talk to our own back-end so also our own widgets will start using React so you can build what we are providing is basically what is nowadays called a headless CMS especially on Bastille day where that ended, the headless thingy let the meat cake, I say but yeah, that's where we're going so in the roadmap currently we're at the 5.1 series we have blocks and tiles which is what you just saw with mosaic we're moving to ZOP4 we have content in a content management system and there's amazing amounts of strings that have to be unicode and stuff so we're getting the UI improvements in we're using the REST API ourselves it'll be in core and as for JavaScript deployment we have tried everything in the last few years and we're now standardizing on Webpack that seems to be finally the JavaScript world that works, it works today even JavaScript clots like me can use it you can pre-shake and do fancy stuff so that's beginning to solidify finally at the same time we're using this headless track so if you don't like our user interface, write your own and basically what we then say we provide content as a service with mobile applications the backend is exactly the same source code that we're using for 5.x so you're staying completely compatible you can say one group of users gets the full web interface the other will just be a simple phone application to write your internal memos for your super large institution at the same time we're also thinking already and working already on Plone 6 which will be fully compatible with Python 2.7 and 3.5 Plone itself will run on 3.5 but we have a huge add-on ecosystem as well so we have to give people time to rewrite their add-ons as well so for at least one major version we will have to be compatible with both 2.7 and 3.x because large institutions need time to rewrite their add-ons we're going to be using a new user interface which I gave a lightning talk about called Pasta Naga, for some reason we like the Catalan so we usually have Catalan themed themes is that very meta? the tiles you saw before will be default and if you've used Plone in the past we have archetypes as our content type framework we now have dexterity since a long time archetypes will be gone but fair warning they've been deprecated since two years already and there is already in first production it was an experimental fork but it turned out quite successful so people are using it already so people are using a completely different backend as a storage layer it's completely based on async.io and AOHTP so that means it's massively horizontal scalable just higher, more cloudy thingies if you get more users it uses exactly the same REST API that the rest of the Plone family is using so your code is compatible just using standard Plone because that's what I know and then suddenly you get bought by venture capital or whatever and you need a million users and you're like now I need to scale the back drop against this guillotine which is a headless CMS is that there is no default front end the people who have developed it have written their own but it's custom for their firm time to thank you, thank you audience and I have to thank you also the people that contributed to this presentation that were many and I invite you to the Plone conference that will be in Barcelona because we like Catalan in October and so the last slide is some themes that we touched during the presentation you're welcome Sander Pisa and Paul Ruland hi, thank you for your talk I have a question regarding the documentation you mentioned that you automated all the spell check ages of the file and so on can you give us more detail about how you did it which technology you used behind sorry, I was talking about the documentation you mentioned that you automated the documentation so you checked if the file are well composed if there's no spell check and so on and so forth can you detail more the technologies used behind yes, we're using there's various tests you can run we're actually using some based on koala which are being used here so there's various MPM modules that do, there's one called write good which checks if you have very long and complex sentences and then will give you alternatives there's also one that checks if you use offensive language so it will give you a flag if you say hey, why are you saying master-slave combination where it could be primary and secondary there's lots of tools available nowadays that do natural language processing it's basically linting, but for language so it just helps create because especially, well, I'm Dutch there's a lot of Germans as well we both, the Dutch and the Germans tend to make really long sentences with lots of commas which is bad for understandable so it's better to break them up so it will flag it and say rewrite this in short, easy to use sentences because not everybody is a native English speaker and not everybody is a German or Dutch speaker who likes commas and bits of sentences added on at the end so we're using them in docker containers just because it's easier but you could use them directly as well and quite a few of our documentation writers use windows, we got kind of bored of explaining how to install certain tools on windows and some of them don't work so now we use docker containers and just say do that on your windows machine and it kind of works and it's an open source so you could probably find it in your GitHub docker yes, it's all open source, you can find it and the parts that are not blow specific are, well, they should be out there now or next week we have a new site called testthedocs.org we will also be at writer docs conference in Prague in September so all the parts that are non blow specific we are very happy to share with the wider documentation writing community so you mentioned that one of the things that you also check when you're linking the documentation is the file age so if one document is older than one year it pings you and this document hasn't been updated yet can you snooze this notification like okay, I get it, remind me in half a year don't bother me now? yes, yes, well the easiest thing is just to touch the documentation then or that file, that's a bit cheating but that's how we do it now, you just say okay, it's just update the file stamp and you're fine so that's the cheap and easy way to say shut up for a year and I'm sure you could do other ways but yeah, you can also over engineer things so once a human has looked at it and said it's actually fine, just change the file date any other questions here? I have a question if you don't mind I've never used blown but unfortunately the team still uses WordPress how easy it is for them to move from WordPress? it's easy to move from WordPress there is a tool called transmocrifier which sounds, it is quite technical you would need a technical person to set it up it's basically a pipeline where you take content out of an SQL database so you can either scrape the WordPress site but that's a bit painful so if you have access to the database behind it it's much easier so you get all the bits of content out with transmocrifier you can turn that into pieces of content that you can directly shoot into blown and you can do all kinds of things in the meanwhile because it's a pipeline it's a Python based tool but it is file system based it is not fit for content editors but it's very fit for people who set up sites and you can say well this WordPress site was kind of old so let's do a new site structure anyway because it was time let's sanitize all our titles while we're at it and do all kinds of easy Pythonic things to the titles to make them more readable and bring them in a better shape so there's recipes for WordPress for Drupal I wrote one for Jumla because for some reason I was left with 20 Jumla sites that I should take care of so then you sort of run this transmocrifier it runs for like 15 minutes and you have a new blown site with all your old content Thank you so much OK Thank you