Plone 5 versus Drupal 8: Civil Comparisons
Hendryx-Parker, Calvin
An up-to-date and educated comparison of the latest versions of the two popular enterprise-grade CMSes from the perspective of Plone and Drupal experts. The talk will examine topics such as deployment, out-of-the-box experience, adding products/modules, adding/editing content, customization, theming, multisite management, upgrading and migrating, hosting, performance, security and more.
 Is this thing supposed to be on? Can you guys hear me out there? Okay. I'll fix that. Microphone on? Hello? Okay. Ready? Okay. Awesome. All right. Can you guys hear me? Hey, it works. Okay. Sweet. So, if you're not here for Plone vs. Drupal, you're in the wrong room. So, I guess, yeah, we had a good crowd tonight. Awesome. Or tonight. Today. I have to drink a lot of water during the presentation. My throat has... I've lost my voice. That's just bad for presenting, typically. Yeah. So, don't forget. As a guest of the Plone vs. Drupal talk, we have goodies for you guys. We've got some M&Ms. I'm running out. You're running out. So, raise your hand if you don't have any and you would like one because we will run out of those. That would be kind of funny. Okay. Awesome. That's better. Now, I can see my slides. I guess we're ready to roll. We'll go ahead and get this thing kicked off then. So, I've had a really interesting journey recently. I spent the last three months every Friday afternoon drinking beer and looking at Drupal with this fine man. So, this is... If you don't recognize me, this is the person I'm talking about here. This is a Doug Van. He and I have basically sat down and decided we wanted to do a civil comparison of Plone vs. Drupal. We really wanted to understand where we were similar and where we were different. And the reason I was so excited is because Doug actually lives like 15 minutes from my house and he's been doing Drupal since 2007. He's actually one of the kind of premier Drupal trainers. He goes all over the world training folks about Drupal. He presents at all the Drupal cons. He's basically the Calvin equivalent in Drupal world of doing the same kind of things I go and do all the time. So, it was almost too perfect that we found a person who lives so close who could talk about Drupal so well. So, yeah, after much peer drinking and much talking and going back and forth, we would finally settle in and actually get a little bit of work done and talk about various areas of Drupal itself. Oh, and Doug, his first computer was a Commodore 64 in 1983 and he learned and taught himself basic. So, he's like a... He's not a computer science guru. He's a self-taught programmer kind of same as me. I am not a computer science person, but taught myself programming and computers so that I could go out and make cool websites. And so, Doug falls right in line with almost the exact same thing as me. So, what we did is we sat down and we had a huge list of what we thought were kind of main areas we probably should try and hit. So, I'm going to try and go over all these with you guys today. We'll see how much we get through in the 40 minutes we have allotted. I seem I can go a little over so we start a little late. But that's basically the methodology. We would sit down and then we kind of start talking. I'd figure out if that fit in one of these sections and I'd start writing in this big Google Doc that we did. And actually, all the material that I talk about today, I mean the slides that we posted up online, the video should go up online. But we've actually put together a like mini Plone vs. Drupal website inside the 6u.com site. So, all these sections are listed on that site there. All the screenshots that are in the presentation are going to be listed up there as well. So, if you actually want to refer back to kind of the source information for where all this came from, it's actually all up on our website. Because it's been quite an interesting journey. And also, the last comparison that we did of Plone vs. Drupal was back from 2010 and we were comparing Drupal 6.19 to Plone 4.0. So, if that tells you about any of the age, we decided we'd kind of blow the dust off this process and go do it again and see how things have changed if they've gotten better, worse, or how we compare. So, we'll go ahead and kick it off with the, obviously if we're going to compare them, we better talk about how we're going to install and deploy our instances. This is mostly going to be about the download and install experience as a new developer coming to that product. So, we basically both have a similar download experience. I think each of them is your three clicks away. You know, obviously, on Plone.org, it takes about three clicks to get here and you're downloading a tarball and installing that into your system. Yeah, you basically with, one of the really nice things about Plone, if you're new to Plone and never been in the community, there aren't a lot of dependencies you have to get installed into your system, especially if you're like on a Mac. We've taken care of this pretty well with the unified installer experience of just run install.sh. It gets all the dependencies and compiles Python. It does all the little, you know, bits for you. And then you start the instance and point your browser at it. There isn't too much more to kind of get in going. Again, the kind of the benefits here of Plone is very few dependencies are needed to get started. There's no requirement really to run Apache or have a database server or any other kind of thing because we're really relying on the Zope application server and the embedded database, you know, the ZODB to get started. So as a newcomer, there are not a lot of moving pieces to get going. Now the downside is, it is a very large download. So start your download, go get a coffee because it's going to take a little while. And then running that build at the installed sh takes a little bit of time. So again, you may have to go get your croissant and come back because it takes a while to get going. Now the Drupal experience is very similar. About three clicks away, you are downloading the tarp, a considerably smaller tarp all and you are basically ready to start the installation process for Drupal. This is where it gets a little different. You need to, assuming you basically need to have some stuff already on your computer, like whether you're using MAMP, WAMP, or like an Aquia desktop or some, you got to, you've installed Apache on your own with your own mod PHP, you have to have a MySQL server already running and set up, you have to create the database yourself before you actually get going with Drupal. So there's a little more things to do. It's documented very well. They do have great documentation on getting started, but you are going to have to know some things ahead of time before you can actually get started with Drupal. So there's is, you extract into your web group, set up your database, head to the browser, and then you actually run there, install wizard through the web. You may, yeah, actually, please, please ask questions as we go because there's lots of stuff and it will be difficult for you to remember which section you want to ask a question about. Yeah. What's that? Yeah. Yeah, and I think it would be nice if we could get the Heroku. button put up there. It does work really well. I was quite surprised. It installs. Yeah, because we don't have. Yeah. Right. Right. Oh, I agree. And that's actually one of my kind of findings that Drupal is very, very approachable because they have put things like this in there, you know, try a hosted demo. I mean, it's like one click installers and you're good to go. So yeah, you don't have to download and install, but I was trying to do it for more of a developer standpoint. If I wanted to actually work on Drupal and be productive, I got some stuff I got to do on my laptop before I can do that. Now, it's interesting with Drupal as opposed to Plone. So you just saw kind of the core, what is called the core Drupal download button. But Drupal also has these things called distributions. I don't think anybody here from Drupal can kind of finish the concept of distributions. So what they've got are these kind of pre-built sets of add-ons maintained by somebody so that you could do, for example, a social portal, open social portal. This is a distribution of Drupal with basically core plus X number add-ons. They also put in, which is really nice, some sample content to kind of give you a feel for how the site should work. And we don't have that. We really kind of miss out on. I mean, we put in news events and members in a kind of main nav to start with with Plone, but it doesn't give you a feel for, like, example kind of content, how user profiles should really look. And this gives you a full kind of in-context experience. And there's a bunch of these. Now, not all of them are compatible Drupal 8. So I will be talking about Drupal 8 specifically, unless I say otherwise. Drupal 8 has, let's see if I got in here, this is another one. This is like a sports league, so if you're running a team for your kids or whatever, they've got sites where you can put up a sports league stuff. Some of the more popular Drupal distributions are not compatible yet with Drupal 8. For example, they have one called OpenHRM, which is like an internet in a box type solution. They have one called Commerce Kickstart, which is also very popular for doing e-commerce online with Drupal. But those aren't compatible with Drupal 8 yet. And we'll talk about compatibility in a bit. But yeah, this is kind of that installation process. So once you've downloaded and installed, you still have to go through kind of a next, next, next finish installer where it asks you some questions about your database name and password and things like that to get going. But once you are installed, the upgrade process is kind of nice. It does tell you if you're out of date, these are some things that, if I put these on my wish list of what Plone could do, I really wish Plone had this built into the control panel where it would check for updates and tell you when you're out of date or when you need a hot fix or a patch. So because of security track records, I think they've built this in to keep people really aware of whether they're out of date or getting out of date with their current Drupal versions. Now Plone really don't really have distributions like that. But we do have a couple of groups have gone off and built some interesting things on top of Plone. I don't know, I didn't know how to kind of classify these, but I know the wild card group is doing Castle CMS, which looks really interesting to me. They're kind of bundling opinionated technologies together to give you a really nice experience. I don't think sign-in has migrated to like Plone 5 and I don't know how relevant they still are, but that was a internet, like social internet portal. And then the Quay project is based off of Plone 5 and also has an open source version of it that you can download and try out and install. So I know if you're in this room, you won't be seeing the Quave demo, but I highly recommend you guys checking that out because they've done a really good job of addressing usability issues and making that guided experience of an internet and knowledge management tool like super easy. So we're going to talk a little bit about the out-of-the-box experience. It's just kind of general features you get without having to add any add-ons into the system and also what kind of content types and things are available as you start. So your very first experience with Drupal firing it up, you log in, they have the edit bar across the top, kind of like our Plone toolbar. This admin button here, it can actually be pushed over to the side, kind of like ours, we can have it on the top or the left side. Drupal 8 focused on a lot of usability fixes. So they recognize, I think they've got a lot of people in their community, kind of a tremendously more than maybe the Plone community does, but they focus on a lot of usability, UI, UX. Drupal 8 finally comes out of the box with a WYSIWYG editor installed. It used to be that if you wanted to use what you see as what you get edited through the web, you had to install an add-on module, which, we'll talk about add-on modules later, but it could be a double-edged sword because if you get stuck at a certain version of an add-on module and you can't upgrade, you really kind of get hosed. So it's nice to have that built into their core features now. Another big usability is the icons, apparently, were a big deal for the Drupal community to put there in their toolbar. They said they got a big win in testing. And they have a package installer. So directly inside of Drupal, you can actually go to install add-ons or modules from Drupal.org into your system without having to go to the file system. There's actually, I think I've got a screenshot of it in here later, but you basically just paste in the URL of the thing you want or upload a zip file that includes the module you want to install. It installs it, activates it, and you're good to go. So they really kind of simplified that process for people who are new and getting used to installing add-ons into their product. Let's see. Yes? How much of the usability? I think there's a lot of this community. I mean, we talked a little bit about Acquia and their role in the community. Obviously, they're a big force in their community because they kind of have a central group that has a lot of money and investment. But their focus is strictly on, most of the time, strictly on hosting. So Acquia is a group that the founder of Drupal works for. And they try to basically focus on providing an enterprise-grade, super bulletproof hosting platform to put your Drupal site into. They try not to compete with the Drupal integrators and developers who are doing day-to-day work on Drupal sites. But the community has broken up into teams kind of like we are. You know, they have a security team and a core team and this and that. So I think they've mostly community-driven. At least that's the impression I got through this process. So it's very community-driven. So what I thought was interesting is in a basic Drupal install, you have two content types available to you out of the box, which they seem fairly similar to me as well. You have an article and a basic page. Now Drupal does include a book content type, but it's not active, and a forum content type that is not active. They used to ship with a blog and a poll, but in Drupal 8 they removed those out of the core product. They really do guide people toward custom content type creation through the web versus add-on modules or standard content types that are already built in and ready to go for you. So again, that is interesting that basically you've got two content types as an out of the box experience. I thought that was kind of a limiting. Now what they also have introduced in core of Drupal 8 is a thing that used to be a contrib package like an add-on for Drupal called views. And you could think of views as basically the equivalent of our collections or smart folders. And they do a lot with that kind of like we would do if everyone had, if Mosaic was, you know, primetime and everyone was using Mosaic now or using tiles and blocks and things, they use views to make basically collections of content show up anywhere inside the site and make layouts for different kinds of pages. So that's their technology for that, it's called views. Now they also have users, files and comments, so kind of standard stuff like we have as far as like user management, there's, you know, as entities inside the site that you can refer to, but they're not full-fledged content types. Now Plone, when you install it out of the box, we also have done a great focus on usability and redesigning from Plone 4 to Plone 5. I don't have to go too deep into this because I hope you people know what this thing looks like. We've been talking about it a lot, but what I really wanted to show off was I still like the fact that we have a great set of built-in content types that you can use right out of the box. I think this helps guide new users toward managing content right away. The old argument of the product versus the framework, Plone is nice out of the box because you can use it right away. Someone can install it and start managing content. They don't have to do a lot of configuration so they don't have to set up their own content types. Drupal appears to be more of a, you install it and then you better start doing some configuration to it first before you really want to start using it. You want to set up your information architecture, you want to set up your content types and things like that. We have a great set of out-of-the-box content types. We also have users and groups management, discussion items. Those do exist as well. Now, when you get into products and modules, this, Plone 5, I don't think we went forward in this direction with products and modules. Right now, I even kind of dressed this up by pointing to the new beta of PyPy. But basically, we're sending new people directly to PyPy without much guidance about how to find add-ons. It's very hard to find a Plone 5 theme in PyPy. You basically have to know how to run the checkboxes and even then, the results are iffy because you're relying on people having filled out the classifiers correctly in their setup.py. I don't think this is a good situation for new people coming to the community because it's hard to navigate. I mean, we kind of got some suggested add-ons on the main page for our site, for Plone.org. But I think we can do a better job here. Now of the add-ons that are in PyPy, yes. Oh, good. I'm going to be excited when this is what PyPy looks like when you go to it. It's a current one, I think, 1998 called, month their site back. They do a great job. I mean, they're working really hard and keeping that thing very, very stable for us. But yeah, I'm looking forward to this new, this is pyramid-based, the new PyPy, which is pretty awesome. But the Plone add-ons inside PyPy, there's about 2,800 of them listed. But once you filter down just for Plone 5, you can see right there, we've got 232. Probably half of those are Plone itself. So there's not a lot of add-on packages that are compatible with Plone 5 yet, which is a little bit disappointing. So not a lot of it ready to go yet. Now Drupal, on the other hand, this, and we're talking about Drupal 8. So Drupal has over 35,000 modules available in their download and extend kind of their add-ons section. Now the issue is, no, I was going to say this is definitely, again, a double-edged sword. I think because Drupal has typically shipped with less core functionality out of the box, they expected most people to build modules to extend it to get to the level of a Plone. I mean, probably in Drupal 7 compared to Plone 4, you had to add in about 35 or more modules into Drupal just to get to kind of feature parity with what Plone gives you out of the box. And once you've added those 35 modules in, who's to say they're going to stay maintained, upgraded, and there's a lot of lock-in that can happen. Now when you do filter down by only Drupal 8, you're down to about 1700 packages. So they have the same, you're going to see a lot of parallels between our communities. We started nearly the same time. We released Plone 5 and Drupal 8 about nearly exactly the same time. And the adoption rates have been about the same kind of path. I'll show that later and I've got a graph showing kind of adoption of Drupal 8. It's been slow. And the developers have been slow to update their add-ons for Drupal 8 as well, which is, like I said, a problem, I think. Yeah, so there's not really 35,000 modules available. There's far, far, far fewer than that. But here is that one cool feature I think we should add into Plone, which is this, if you want to install a new module, you just come in here and paste in the URL to the Drupal.org site. It goes and grabs it. I would hope they're doing some kind of code signing, signature checking, hash stuff. Oh, boy. Well, we should do it like that. Because it is a cool feature for newbies. If someone's coming to the site and they want to be like, oh, I really want to try Plone Form, Jen. Now, how do I get it? Oh, well, you're supposed to add it into your build-out or your setup.py and you go rerun this thing and then that's how you get this add-on. This is way, way nicer from a new person's perspective, not understanding the whole ecosystem of how you add modules and add-ons into your site. Which Plone Form, Jen, is a great add-on. I always recommend it highly. And they've addressed this a bit with the Drupal 8 stuff. I'll talk about that later when we get to the security slides. But the content editing story between the two sites, Drupal 8 uses a CK editor, which is available as an add-on for Plone. But that's now the default out-of-the-box editing experience. And obviously, Plone is using TinyMCE4, which is quite nice. Now, the big difference is how they lay out their content. So we'll talk a bit about, you know, okay, so yeah, here's Plone4 with our nice, you know, TinyMCE4. I'm pretty excited we got that finally upgraded. And now I'll talk a little bit about editing content. One of the nice things about editing content is this is probably our super secret sauce right here, is the fact that our workflows are so extendable, so tied into security, there's just a lot of benefit to being able to track the state of items and have multiple states and have trans-multiple kinds of transitions and all the things we can do with our workflow system just kicks us not out of what you can do in Drupal. So in Drupal, here's the CK editor. You see it's got kind of a very stripped-down toolbar there. You can actually change what kind of toolbar you get right from the edit box. If you're more of a power user of CK editor, you can get more buttons available to you or you can go to plain text. And all the button sets are editable through their control panel, kind of like ours are for a TinyMCE. So again, very, very similar. Now if you want to brace yourselves for their whopping workflow set up here, this is pretty much the workflow. Save and publish or save as unpublished. It's on or off. It's not really a concept of moving things through states in Drupal. So there's kind of the biggest area of departure and differences here is that their workflow system is on or off. So it's great for simple use cases where people aren't trying to do like a vacation leave forms through their internet where they want to be able to have approval processes going on there. They're not really trying to model business processes here. They're just basically saying either the page is visible or the page is not visible. And we'll talk again a little more about that in the security section. But they do have some workflow add-ons. They've not been maintained, unfortunately. The last update workflow in GHA was in 2014. There's a rules add-on that apparently replaces it, but I don't think it's still in beta for Drupal 8 at this moment. So there's not really that many great options even to go to a more robust state machine type workflow for us. So when you want to customize your product and you want to go hire some people to actually do some development for you, what is that going to cost typically in each community? So I asked, we kind of looked at this, the typical going rates for independent contractors in the Plone communities anywhere between $50 and $100 an hour, the typical consulting companies charge between like $185 an hour. That's kind of the going rates for consulting work. In Drupal, there doesn't seem to be much of a distinction between freelancers and shops. There's not like, there's a couple big shops, but really it's about the same pricing. It's about $50 to $200 an hour for Drupal resources. Because some of these pretty high profile sites have got some dollars. That's why they kind of got that top end. But there's a huge amount of the low end, like $50 an hour, you know, Drupal developers that are out there. Now when it comes to customizing Plone, you basically got build out. You want to add on packages for your site if you want to make a custom theme or content type. We typically make a custom policy package that was placed where you may put your workflow policies. You may save out generic setup, exports of your settings, things like that is what you'd put into these kinds of packages. What's nice with the custom development now in Plone 5, and this was in Plone 4. 2 was the dexterity custom content types being able to do this stuff through the web. This gets us much more in line with the Drupal 8 or the Drupal 7 experience of creating their content types through the web as well. So those people are going to be a lot more comfortable now coming over to Plone and being able to do, basically, click, click, click, build some content types and be able to be productive inside of Plone. And what's also nice, we can round, they have the same feature where they can basically create their content types through the web and then export them out as a YAML to the file system. I love the fact that we can take these and export these out as XML and actually use them inside of our content types package and then redistribute that as an add-on if you found you've made something that was generically interesting to other groups. Now customizing Drupal 8 has actually gotten a little more sophisticated or complicated depending on who you ask in the Drupal community. There's actually been a fork of Drupal at Drupal 7 called Backdrop because this, Drupal 8 is a major departure from the, what was the typical way of developing core Drupal and making new Drupal add-ons. They moved to this new symphony, basically web application framework. They ripped out the whole bottom end and replaced it with a new, basically a component architecture system. As I was talking to my friend Doug about symphony and customizing Drupal, he is not a fan. He's like, you have to have a computer science degree anymore to be able to customize things. You have to dig down into like five different directories and edit ten different files to be able to add something to Drupal. I go, you sound like you're talking about a clone. You would be very comfortable as a clone developer looking at the symphony framework. Basically what they've done is mimicked a lot of things we gained in clone 2.5. So when we incorporated Drupal 3 into clone, we started getting the component architecture stuff, adapters and views and all those kinds of nice things that we got in clone 2.5. They just got in Drupal 8. They can export their settings now out to the file system like kind of generic setup. So again, I think we would be fairly comfortable with this new set of tools, but I think it's been hampering some of the developer adoption of Drupal 8 because they did such a radical change on the back end framework. Now when you're customizing Drupal, they do have a lot of different ways to do it. This is one area where they've got a lot of flexibility. There's some cool command line tools such as the Drush shell. So they've got this thing called Drush make file. That's like the Drupal shell tool. So you can actually, you do the templating and boilerplate code kind of like we do with Mr. Bob or what we used to with Templar or Zope Scale. Same thing for Drupal console. They finally in PHP have a way of basically pip installing and pinning versions and that's called conductor. So if you start doing any Drupal, you want to make sure you get familiar with conductor because that allows you to pin versions so you don't get, let's just say, a bad experience when you go to like run the upgrade and all of a sudden you've got new versions of packages. But they do rely still on a heavy through the web experience. The typical integrator or Drupal developer is going to start through the web. They're going to create their information architecture and their content types first there and then export them out to the file system so they can move them into their other various environments. Here's the, this is their custom content type. Basically cool on our dexterity is that you can create, I've created a, what is this, a recipe. So this is a recipe content type. You just basically click add field, add field, add field. They've got different kinds of fields. For example, text, long format of a summary or standard text. But it's basically a whole set of like different fields like we have for dexterity for building the content types. And then it gets exported out of XAML to the file system. Oh, so another nice thing we kind of talked about when we get into a little bit of hosting. Getting started with Drupal actually is made pretty easy if you're using one of the new hosting providers that is available in the Drupal community. One of the example ones I'll talk about is called Pantheon. And you basically go sign up for an account, tell them you want a new Drupal 8 instance. It spins up a dev testing and production instance for you simultaneously and gives you a git repository that you just clone back to your machine. And as you make changes and push, you pick which environment you're going to, you know, migrate that or push that code to. So it really makes it like, they've got kind of best practices baked in with a system like that. So if I was going to start with something with Drupal on a project, I would use one of these services because it really helps guide you through the development process of customizing Drupal and making sure you're doing it in a well-tracked way. We'll talk about theming now, unless you guys have any questions about customizations. So in clone, this is an area where I'm really happy is that I think Diazo has really improved our customization story and theming story tremendously for people who are new to clone. No longer do you have to learn, I think I had to write down the list because it was so big, ZPT, ZCML, Python code, Python scripts, component architecture adapters, browser views, like there's this, you know, almost endless list of Z words you have to learn to be able to do theming in clone previously to clone 5 and clone app theming in clone 4. So I think we've made a great stride here that if you consider a designer or a web engineer down and have them know HTML, CSS, JavaScript, and then where is Annette? Oh, if you can be an XSLT ninja like Annette, oh my gosh, you can do amazing things literally without having to leave your browser window. So I was really impressed with the presentation this morning about what you guys have been doing with Diazo rules. And it doesn't seem like that unapproachable. That's probably the biggest technology you got to learn is the Diazo rules, not too big a deal. So, you know, screenshot of like our clone app templating. It gives you ability to do through the web, create your rules, create your templates, do all this customization. Oh, yeah. And the fact that we now with the mock up inside clone 5, it's really easy to bring in fancy pants JavaScript libraries and do cool stuff with React or Moment or whatever the things you want to like try out. It's way, way easier to do that now than it was before. Drupal theming, it's not like what we have known in clone 5. It's more like what we had in clone 4 and clone 3. You basically have this concept of main base themes and you typically when you're making a theme, you make a sub theme and just override the pieces from the base theme that you want to change. It's interesting that the templating language they use now in Drupal 8 has changed. It used to be PHP templates. So you actually wrote like real PHP code in your templates, which was a source of a lot of the security vulnerabilities that came out with Drupal prior to 8. Twig is a templating language that we will all be very familiar with because it was written by our very own Armin Ronecker. So it looks just like Jynja 2 or Django templates and it's very nice and this has actually led to a tremendous improvement in the security of Drupal 8. So again, as clone developers, we would be probably pretty at home or Python developers in general. We would be pretty at home with the Twig templating system, but it's very similar to how skinning used to work in clone where you would override like base view or whatever document view, whatever kind of thing you wanted to customize. You do the same kind of thing with Drupal 8. You basically override in a sub theme the bits and pieces you want to do to customize your look and feel. So it's still the same thing, HTML, JavaScript, CSS. And in this Twig, it comes as part of the Symphony 2 framework that they moved to with Drupal 8. Yeah. No, so that's another big difference. They don't have a through the web editing experience for Drupal. That's another big win, I think, on the clone side is the through the web templating. Right now, if you want to customize and modify these themes or create your own sub themes, you do have to do it from the file system. Yeah. Yeah. On top of this, yeah. Yeah, so exactly. For people making their own modules for Drupal, they will provide what are called hooks. If you want to add something into a menu someplace, you make your own hook and write your own code in there and it injects it into the whatever menu you put in there. But like you said, one developer's menu hook is going to look different than another developer's menu hook and it may be difficult to... Yeah. Right. That's where the views come in. So they have layouts with these views, they put blocks wherever they want to put them and those are also hooks so that the module developers will make their own blocks and they have different code styles for all those as well. When you install Drupal, and actually when you're using Drupal, this is another area where we differ quite a bit is there's typically going to be a default theme and that's the kind of front end that most web visitors are going to see for your site. But they also install and they kind of can't see it down here, but there's an administration theme. So you typically may have one single base theme and two sub themes, one strictly for like editing, like the use the content contributor or content editor experience, and one which is for the web visitors who are coming into the site. So you really don't get that full in context editing like we do with Plone that as I'm editing the page, I still see a lot of the page around as well. So that's interesting, they've got this administration theme default theme going back and forth. So you'll flip back and forth between these versions of the site. This is the administration theme and you can see the back to site button up there in the left hand corner, that gets you back into the retail version of the site itself. So this is kind of just showing the theme registry. They use YAML to set up kind of a settings file, that's how they hook up things inside of your modules when you create an add-on for Drupal. And typically your standard theme package is going to have a templates directory. Actually in Drupal 8 you have to put your templates in the templates directory or it won't find them correctly, it used to be you could name whatever you wanted. But they have the YAML files that describe the add-on of the module for your theme and then all the config and CSS go all through in there. Now this is the views part of this, I believe I mean the add. So you set up your information architecture. Yeah. Like oh, you mean through the content editing experience, right? Okay. Yeah, that's something I meant in dive into too deep. Oh right, because they give a little pencil like when you kind of hover over sections of the site. Now we turned that off and clone. Because there was a pain in the butt. But yeah, they do, so when it gets down to like blocks, you'll see here there's, like kind of like we have viewlets, everyone here familiar with like the view system inside of clone. There's all those little spots throughout the pages where you can inject like your own snippets of code or part of the view. They do theirs through the web with this section called blocks. And so this is where you can actually say I want to put the site branding into various areas, the main navigation and you configure what pieces go where. And it's basically equivalent of us configuring our viewlets, you know, throwing the nav into the header, viewlet, et cetera. That's their equivalent for, and they do it all through the web. And which we can kind of too with the at-manage viewlets, but we don't typically show that to normal human beings because it's a little tricky. Now upgrading and migrations. This again is an area where we will differ, but Drupal 8 is working on this. One nice thing about clone is you could take a clone 1.0 site and you could migrate it step by step by step all the way up to clone 5 and actually have a usable site afterwards. Plone comes with a great set of documentation at every release for all the things you typically need to do between versions if you want to make sure your add-on code is ready for the next version of Plone. Now if you want to migrate code in and out of Plone, we've got through the community, not built in, but through the community there is, you know, like transmogrifier pipelines for example, so you can actually export and then re, you know, kind of dump and reload if you want to start fresh with your site. Depending on the age of the site and the number of custom add-ons you'd ever put into your site, I will recommend the dump and reload version of it versus the try and walk it all the way through from clone 1 to clone 5. But if you haven't had a lot of add-ons or it's a very clean site, it's very, very feasible to go right from, you know, whatever version of Plone straight up through to clone 5. Now again, add-on products will be the real sticking point for you. If you're on add-on products that haven't updated their code for clone 5, you're stuck until they do or you remove it and put some kind of alternate technology in there. A big advantage of Plone over Drupal with our given our kind of large, robust feature set, I typically think we don't have as many add-ons or modules installed into our sites which makes them a little more able to migrate easier. The Drupal site, so up until Drupal 8, each previous version of Drupal was basically a fork of the previous Drupal and started from scratch, like scorched earth almost. So migrating from one version of Drupal to the next version of Drupal was typically not a priority for them. They kind of expected you to dump your content out, upgrade the newest version of Drupal and redo everything from scratch if you're going to actually migrate to a new version of Drupal. It's changing with Drupal 8. They are stabilizing their APIs, they're trying to make them more backward compatible, so if you're going from 8 to 8.1 to 8.2 or to 9, the idea being it would be possible to actually migrate your content in place. But that's not been historically the case for much of Drupal. But then you have the same problem with add-on products but a much greater scale because you probably have a lot more modules installed into your Drupal site for that. Yeah, they also have the ability for you to do migrations in and out of Drupal. So people would typically do a, what's called a Drupal to Drupal migration when they're going from like version 5 to 6, 6 to 7, et cetera, which dumps it out to the file system and then you reload it back in as part of the Drupal migration. So hosting for the two kinds of technologies. The clone hosting can be done on lots of different kinds of cloud services. What I typically find with clone hosting though is it's a lot of do-it-yourself. You need to do set up the machines, install the dependencies. There aren't a lot of these push, but there aren't hardly any push button ways of installing and hosting a clone out there other than say like the Heroku button. But has anyone run the Heroku at scale with any kind of a large site with large traffic? Yeah, I haven't either, so I'd be interested to know how well that works because that's a really compelling story for getting people started with clone for sure. But if you have an even the most modest site, I would recommend people running Xeo using two cores on a VM someplace, maybe about a gigabyte of RAM because it all varies based on the number of add-ons you've got in your site, the amount of content you've got in your site, but just a general kind of rule of thumb. I don't typically go much smaller than that. I've got some pricing in here as well. So for example, something a digital ocean will cost you about $20 a month. EC2 I'd recommend, no, a lot smaller than like a T2 medium for reasonable sites, that's about $37 a month. I was surprised Azure was so expensive. Is anyone hosting on Azure currently? That's probably why. It's a little pricey. And then obviously I have to, you know, prep my own services a little bit here, but 6-feet up does offer kind of entry-level hosting of clone sites at $50 a month as well. Yeah, actually I didn't put Google Compute in here. You know why? Because no one's using it. Yeah. No, I actually had a coffee with a guy from Gartner and we were talking about the various cloud platforms and basically the enterprise is scared to death of Google Compute because of the way Google can willy-nilly kill off any platform. So at any moment you could be at the victim of Google's choices. And then we also, like I said, the Heroku button I think is quite interesting. For free I think you can get up to about 200 pages of content in your site before you need to start paying for the Postgres dyno because I think you get like down 10,000 rows for free in the Postgres database offered there. Similar situation? Yeah. Oh, wow. True, yeah, if you've just got kind of a small brochure where site, that will work. Like I said, this has been a three-month process. That price probably got put in there a month and a half ago. And for Drupal it's pretty similar as far as like the size of kind of horsepower you need to host a reasonably sized Drupal site with comparable traffic and amount of content. The difference here though is you can have a DIY, DIY, do-it-yourself Drupal deployment, but there's so many great services out there like this Pantheon platform SH where they just set up multiple instances for you. They actually have push button. I want to bring my production data back to my test instance. I want to migrate this code changes up to the new instance. A lot of them will even go so far as if your code is with them in their repository and there's a new version of Drupal out there, some are already set up to basically splat the update of Drupal automatically onto your thing and you just need to go push a button to approve that you want that released. So they really eased out, they eased the experience of deploying Drupal. You can host with thequia.com, but if you have to ask, it's probably too expensive for you. So it is quite pricey from what I know. Now another nice thing these other Pantheon and thequia and platform SH give you is a lot of them also include services like New Relic as part of that plan. For $25 a month, you'll get Drupal hosting with New Relic stats. If anyone's using New Relic, it's a pricey service on its own and it gives you a wealth of information about what's going on behind the scenes inside your site. So that's also pretty cool. So web performance, both systems have similar techniques for accelerating. I mean, if you guys are already familiar with using varnish and HAProxy and MIMCached for auth and sessions, the two systems almost look identical when you go look at their performance pages about how to actually accelerate pages. Plone though out of the box has some advantages. With our Plone app caching control panel, we have the ability through the web to kind of adjust and do some settings where how long you want to cache something. Basically, you can kind of customize the caching experience through the web. Plone also allows us to purge, at least a very minimalistic purge request for at least the page and maybe the container it's in. The Drupal out of the box experience doesn't have that. What's also nice with Plone is you can, with a very small extension, customize that purging behavior. So if you want to make sure the front page gets purged, that item happens to be showing on the front page as well, you can do that really easily with Plone. The Drupal 8, they don't have the purge capability out of the box. There's an add-on that you would have to put into your site to be able to get purging working correctly. Now one thing that is really cool, the Drupal 8, that we don't have is the new big pipe, Facebook big pipe. Have you guys heard of big pipe yet? That is a really cool technology. So if you guys have gone to, who here is on Facebook? Yeah, okay, I'm going to just raise my hand. If you go to Facebook and you've ever noticed that when you first launch the page, you see like gray placeholders that look like the posts on your wall, and then all of a sudden they kind of filter in with like the real ones, that's big pipe. Basically they consolidate the non-personalized version of your page into a very few number of requests, get that to you quickly, and then they stream in the dynamic bits behind the scenes. Drupal 8.1 ships with this out of the box, which again, that's a pretty fantastic performance feature and something maybe we should even look into in the clone community because it helps with like, I was talking yesterday about the Google AMP, yeah, exactly. Same kind of thing to help accelerate and I think that's going to be really important for mobile devices on varying degrees of nice connectivity. So that's one area where I think Drupal has added some really nice customizations for the performance. I'm sure this is the slide everyone's been waiting to hear about, right? It's security. Each community, clone and Drupal has a dedicated security team. How many people are in our security team? I couldn't find a number. Steve, you know? Or Nathan? Where's Nathan on here? I guess it's like five, six people are kind of our security team. They're very busy. They do great work. But it's that secret, right? Drupal's security team is 40 dedicated people. Some of them paid by their employers, at least maybe a half time or some percentage of their work time is actually dedicated to Drupal security. They obviously have a lot to do as we've seen in the past. But what's nice, we've clone has only had reports of a very few sites being hacked and those sites basically weren't patched within six months of the release date of the patch. So it's very rare that clone sites are actually going to be exploited, especially as the people are being vigilant about applying their patches. So we have, you know, the zero day claim we make, I think it's pretty important for people who care about security. I went to that exact page and I only saw like two people because I wasn't logged in. Okay, so it's all secret. You guys are very secretive with your security team membership. Oh, you know, I got these slides slightly out of order. So that's kind of when it comes to like security teams. One of the nice things about Zope and clone is that we were built on Zope. I think that's a big benefit for us when it comes to security. We've basically been able to leverage that built-in roles and permission system and we've augmented it with our own users and groups where we have a really fine grained experience for being able to customize who can see what when and where. And when you combine that with our awesome workflow tools, you really get this tight experience when it comes to ensuring people can't see things when they're not supposed to see them or making sure pages get published or kind of the whole experience is really nice. And I like that out of the box, we have the built-in roles of like contributor, editor, reader, reviewer, site manager and manager. When we look at what Drupal does, which we will in a second, you'll see it's a very different experience. We also have, you know, very easy check boxes here and what these should, for most people who don't know, these security settings check boxes that are in the through the clone experience actually manipulate that, well, they actually manipulate this, which is something I tell people never to touch because this is not meant for any human to ever touch. If you were to, this page is long, now if you guys have seen this, this is the security tab at the root of your clone site. And again, if anyone ever learns anything from me, it should be to never touch the screen under any circumstances. Let clone do it through the clone because that's what it's doing for you here. But this is also part of our power, the fact that we get down to such a granular level with what people can see and do and you can think of all these permissions in clone is like little locks or little gates that kind of unlock our show for functionality through the site. Drupal doesn't have nearly this robust of a system. This is the equivalent of their security tab. This is out of the box. You can see that there's three roles, two of which are basically virtual roles like we have, authenticated and anonymous. If you want to do more than this, it's up to you to kind of design your security scheme by adding in your own roles and then again checking the boxes that's a long, it's a long page, not as long as ours, but it's a long page of managing check boxes. That's how they do their roles and security inside of the Drupal system. So again, I think it's an area where we really excelled because we're built on top of a system that thought about this first. I think Zope was made with security in mind. Yeah, so now they do in Drupal 8. So all the Drupal 8 settings can all be exportable into YAML just like we have a generic setup exporter. They have a similar thing here as well. So they can move those from environment to environment, for example. Yeah. Yeah. Right. Now the individual piece of content is either published or not published. Not that I could see out of the box. We didn't dive too terribly deep into it, but we have got an amazing system that comes to local roles. If you haven't checked out dynamic local roles with Bjorg local role, that is amazing. The fact that we can customize based on any fact or data inside the system or even external roles of the system. Yeah. Right. Right. Right. There is going to be based on the type of content. Certain users may have, like you said, access to create this kind of content versus that kind of content, but not where they put the content inside the site. That is handled by their view system. Right. This is about the only other security settings I could dig up in the Drupal site was kind of the registration and cancellation. So that was kind of the equivalent of our security tab inside of Plone. Now, when it comes to security track records, I really only wanted to compare Plone 5 and Drupal 8. They are not too far off from each other. When comparing exploits, numbers really don't matter too much in security because it is about track records, about severity. There are so many different factors to take into consideration. So I wouldn't look at these numbers and be like, oh, well, Drupal 8 is way less secure than Plone. They have got a very vigilant security team. They've changed up their framework quite a bit to address a lot of these kind of security issues. And they're right on par with, I think, you know, the improvements that are showing here in the numbers. The reason these numbers are so low is because there is such low adoption of Drupal 8. This graph here is showing Drupal core usage. And so you see here is 2016. Here is January 2016. This line here at the very bottom is Drupal 8. Yeah. That's Drupal 8. The big ones up here are Drupal 7 and 6. Yeah, 7 and 6. That's total. Oh, that's total, yeah. But this is Drupal 7 right here. So Drupal 7 is still hugely popular out there. Now when I say hugely popular, it's really not that popular. If you look down here, this is WordPress usage. WordPress accounts for about 26.4% of all CMS sites out there. Drupal is about 2.2. So in terms of scale, Drupal is dwarfed by WordPress, kind of much the same way we're dwarfed by Drupal. So you can see we're kind of in the long tail of CMS usage out there. So the reason we've not seen a lot of security issues with Drupal 8 is definitely because I think the adoption rates for Drupal 8. The numbers here, the total number there is 1.2 million sites reporting back for Drupal. Because of last week, there were 125,000 Drupal 8 sites out there. There was only 41,000 January 1st. So they're getting adoption, but it's still not taking off like crazy. I wish we had this for Plone. We don't have any way of, we don't report back to home about our versions. I think we should, because they're going to be interesting to have those kind of same numbers for us. All right, so intellectual property and community. I love this because we are an awesome community. We've been around since 2001, but Plone 5 got released in September. We created our foundation in 2004. So I think we were ahead of the game when it came to protecting our product and our IP and in our community. And this just, you know, 895 contributors have put code into Plone at some point in time along the way, which I think is also awesome. But then I heard about the Drupal numbers. They've had over 3,000 committers into Drupal. This says 150. I got this off of Olo. It's not accurate. They actually have a Drupal commit tracking site out there that shows you for this version of Drupal, how many people committed, what their names were, and what they committed. It's quite interesting. Very similar history. First Drupal released in 2001. Drupal 8 was released in 2015. They started the Drupal Association in 2009. Now the Drupal Association isn't like our Plone Foundation necessarily. They are mostly there to raise money and run the events like the Drupal cons and things like that. So they do a lot of promotion. But they are not the IP holder or trademark holder for Drupal. That is still solely controlled by Drees. And this is the copyright statement right from the code. I don't know how this scales when you've got 3,000 contributors if they all own their original like work that's inside the code. So it seems to be run by best good neighbor policy so far. They've not run into any kind of problems. This part scares me right here because if they want to change their license, what do they do? How do they go about this? This is just, it would be an insurmountable task if they ever wanted to do something like changing their license, for example. Then Drupal 8 has also spawned a whole new fork of Drupal off of Drupal 7 called Backdrop. So there's a new CMS out there for the people who are, you know, staunch. I like doing my Drupal 7 way of doing things. Actually Doug, the guy who helped me with this presentation, is a big fan of Backdrop as well. He kind of falls in line. You saw the graph, there's a ton of Drupal 7 sites out there still and people want that to kind of continue. So they're, you know, maintaining, enhancing. They're backporting some of the features of Drupal 8 when they can into Backdrop. But just be aware that if you are doing Drupal, there is a fork out there that is gaining some traction and it's popularity. Oh, so as far as community, I forgot to mention, you know, so for Plone Conference, here we are, this is us. But we also have lots of sprints, symposiums, lots of events where we get together. By comparison, DrupalCon this year in New Orleans had over 3,000 people. Their regional events are getting about 1,000 people per regional event right now. But they started their first Con in 2005 with 50 to 100 people. So kind of similar, similar startings to us, similar size. They have the DrupalCon, the DrupalCamps, lots of meetups around the globe. So there's a big, huge community of people doing Drupal out there. Really nice, really nice, powerful thing. So in summary, I think we're seeing a lot of convergence of features between Drupal and Plone. A lot of the through-the-web content type creation that Drupal has had for quite some time, we're finally getting, you know, comfortable with and it's nice. They've moved, Drupal Ace moved into a component style architecture. So we would be very comfortable if we had to do work on a Drupal site. We would know how to go look up all the crazy abstractions thanks to Martinus Belli. Plone has always had collections. Drupal's now added in views to their core. So if you're familiar with how collections work and views would be really, really familiar to you if you went over to the Drupal site of things. And again, Plone, if we can get Mosaic, I think we talked about that for the roadmap, having Mosaic put into the core Plone, I think would be a big boost for us in terms of feature parity with the Drupal folks because that would give us that ability to customize layouts and blocks on the pages. I will just say it, we absolutely kill it when it comes to workflows. We, that's one of our biggest strengths and also the through-the-web theming with Plone app theming. It also gives us a leg up over the Drupal community. The security standpoint for Drupal 8 is definitely looking much more optimistic than it used to. We get more adoption and more people actually using it and road testing against higher profile sites. Unfortunately, Plone hosting is still DIY. The Drupal hosting options was really attractive. They've always kind of had push button installers and various dashboards, but I think that the fact that they've got these enterprise grade deployment options is a weak point for, for Plone because we don't have something that is comparable. But in the end of the day, if you had to choose between the two, it really comes down to your needs. If you are doing a large internet collaboration site, various kinds of security workflow, you need to have something like Plone. Okay. For Drupal, it's a workbench. But again, I was trying to compare core to core features. So there's a lot of things you can add into Drupal. Yeah, it's not core. They definitely don't have that. But if you are actually don't have a very technical staff, you need to onboard people very quickly to get spun up on a CMS, Drupal is actually very easy to get going with. I think they've made a great amount of effort in their documentation, the install process, the getting going process, the whole through the web process, and then these hosting providers giving you that ease of use between the environments. It's very easy to get a fairly non-technical staff spun up and starting to use Drupal. I don't know what their experience will be later when they're trying to do more complex things, but I think the ease of use initially has definitely been a benefit for Drupal. So I want to thank you guys all for hanging with me. I know I went a little over, sorry, but don't forget to do your survey so I can get feedback so we can improve this presentation and take it other places. Oh, shoot. It should be not that. If you've used it earlier today, you should have it in your cache. So thank you all for coming.
 Is this thing supposed to be on?  Can you guys hear me out there?  Okay.  I'll fix that.  Microphone on?  Hello?  Okay.  Ready?  Okay.  Awesome.  All right.  Can you guys hear me?  Hey, it works.  Okay.  Sweet.  So, if you're not here for Plone vs. Drupal, you're in the wrong room.  So, I guess, yeah, we had a good crowd tonight.  Awesome.  Or tonight.  Today.  I have to drink a lot of water during the presentation.  My throat has...  I've lost my voice.  That's just bad for presenting, typically.  Yeah.  So, don't forget.  As a guest of the Plone vs. Drupal talk, we have goodies for you guys.  We've got some M&Ms.  I'm running out.  You're running out.  So, raise your hand if you don't have any and you would like one because we will run  out of those.  That would be kind of funny.  Okay.  Awesome.  That's better.  Now, I can see my slides.  I guess we're ready to roll.  We'll go ahead and get this thing kicked off then.  So, I've had a really interesting journey recently.  I spent the last three months every Friday afternoon drinking beer and looking at Drupal  with this fine man.  So, this is...  If you don't recognize me, this is the person I'm talking about here.  This is a Doug Van.  He and I have basically sat down and decided we wanted to do a civil comparison of Plone  vs. Drupal.  We really wanted to understand where we were similar and where we were different.  And the reason I was so excited is because Doug actually lives like 15 minutes from my  house and he's been doing Drupal since 2007.  He's actually one of the kind of premier Drupal trainers.  He goes all over the world training folks about Drupal.  He presents at all the Drupal cons.  He's basically the Calvin equivalent in Drupal world of doing the same kind of things I go  and do all the time.  So, it was almost too perfect that we found a person who lives so close who could talk  about Drupal so well.  So, yeah, after much peer drinking and much talking and going back and forth, we would  finally settle in and actually get a little bit of work done and talk about various areas  of Drupal itself.  Oh, and Doug, his first computer was a Commodore 64 in 1983 and he learned and taught himself  basic.  So, he's like a...  He's not a computer science guru.  He's a self-taught programmer kind of same as me.  I am not a computer science person, but taught myself programming and computers so that I  could go out and make cool websites.  And so, Doug falls right in line with almost the exact same thing as me.  So, what we did is we sat down and we had a huge list of what we thought were kind of  main areas we probably should try and hit.  So, I'm going to try and go over all these with you guys today.  We'll see how much we get through in the 40 minutes we have allotted.  I seem I can go a little over so we start a little late.  But that's basically the methodology.  We would sit down and then we kind of start talking.  I'd figure out if that fit in one of these sections and I'd start writing in this big  Google Doc that we did.  And actually, all the material that I talk about today, I mean the slides that we posted  up online, the video should go up online.  But we've actually put together a like mini Plone vs. Drupal website inside the 6u.com  site.  So, all these sections are listed on that site there.  All the screenshots that are in the presentation are going to be listed up there as well.  So, if you actually want to refer back to kind of the source information for where all  this came from, it's actually all up on our website.  Because it's been quite an interesting journey.  And also, the last comparison that we did of Plone vs. Drupal was back from 2010 and  we were comparing Drupal 6.19 to Plone 4.0.  So, if that tells you about any of the age, we decided we'd kind of blow the dust off  this process and go do it again and see how things have changed if they've gotten better,  worse, or how we compare.  So, we'll go ahead and kick it off with the, obviously if we're going to compare them,  we better talk about how we're going to install and deploy our instances.  This is mostly going to be about the download and install experience as a new developer  coming to that product.  So, we basically both have a similar download experience.  I think each of them is your three clicks away.  You know, obviously, on Plone.org, it takes about three clicks to get here and you're  downloading a tarball and installing that into your system.  Yeah, you basically with, one of the really nice things about Plone, if you're new to  Plone and never been in the community, there aren't a lot of dependencies you have to get  installed into your system, especially if you're like on a Mac.  We've taken care of this pretty well with the unified installer experience of just run  install.sh.  It gets all the dependencies and compiles Python.  It does all the little, you know, bits for you.  And then you start the instance and point your browser at it.  There isn't too much more to kind of get in going.  Again, the kind of the benefits here of Plone is very few dependencies are needed to get  started.  There's no requirement really to run Apache or have a database server or any other kind  of thing because we're really relying on the Zope application server and the embedded  database, you know, the ZODB to get started.  So as a newcomer, there are not a lot of moving pieces to get going.  Now the downside is, it is a very large download.  So start your download, go get a coffee because it's going to take a little while.  And then running that build at the installed sh takes a little bit of time.  So again, you may have to go get your croissant and come back because it takes a while to  get going.  Now the Drupal experience is very similar.  About three clicks away, you are downloading the tarp, a considerably smaller tarp all  and you are basically ready to start the installation process for Drupal.  This is where it gets a little different.  You need to, assuming you basically need to have some stuff already on your computer,  like whether you're using MAMP, WAMP, or like an Aquia desktop or some, you got to, you've  installed Apache on your own with your own mod PHP, you have to have a MySQL server already  running and set up, you have to create the database yourself before you actually get going  with Drupal.  So there's a little more things to do.  It's documented very well.  They do have great documentation on getting started, but you are going to have to know  some things ahead of time before you can actually get started with Drupal.  So there's is, you extract into your web group, set up your database, head to the browser,  and then you actually run there, install wizard through the web.  You may, yeah, actually, please, please ask questions as we go because there's lots of  stuff and it will be difficult for you to remember which section you want to ask a question  about.  Yeah.  What's that?  Yeah.  Yeah, and I think it would be nice if we could get the Heroku.  button put up there.  It does work really well.  I was quite surprised.  It installs.  Yeah, because we don't have.  Yeah.  Right.  Right.  Oh, I agree.  And that's actually one of my kind of findings that Drupal is very, very approachable because  they have put things like this in there, you know, try a hosted demo.  I mean, it's like one click installers and you're good to go.  So yeah, you don't have to download and install, but I was trying to do it for more of a developer  standpoint.  If I wanted to actually work on Drupal and be productive, I got some stuff I got to do  on my laptop before I can do that.  Now, it's interesting with Drupal as opposed to Plone.  So you just saw kind of the core, what is called the core Drupal download button.  But Drupal also has these things called distributions.  I don't think anybody here from Drupal can kind of finish the concept of distributions.  So what they've got are these kind of pre-built sets of add-ons maintained by somebody so  that you could do, for example, a social portal, open social portal.  This is a distribution of Drupal with basically core plus X number add-ons.  They also put in, which is really nice, some sample content to kind of give you a feel  for how the site should work.  And we don't have that.  We really kind of miss out on.  I mean, we put in news events and members in a kind of main nav to start with with  Plone, but it doesn't give you a feel for, like, example kind of content, how user profiles  should really look.  And this gives you a full kind of in-context experience.  And there's a bunch of these.  Now, not all of them are compatible Drupal 8.  So I will be talking about Drupal 8 specifically, unless I say otherwise.  Drupal 8 has, let's see if I got in here, this is another one.  This is like a sports league, so if you're running a team for your kids or whatever,  they've got sites where you can put up a sports league stuff.  Some of the more popular Drupal distributions are not compatible yet with Drupal 8.  For example, they have one called OpenHRM, which is like an internet in a box type solution.  They have one called Commerce Kickstart, which is also very popular for doing e-commerce  online with Drupal.  But those aren't compatible with Drupal 8 yet.  And we'll talk about compatibility in a bit.  But yeah, this is kind of that installation process.  So once you've downloaded and installed, you still have to go through kind of a next,  next, next finish installer where it asks you some questions about your database name  and password and things like that to get going.  But once you are installed, the upgrade process is kind of nice.  It does tell you if you're out of date, these are some things that, if I put these on my  wish list of what Plone could do, I really wish Plone had this built into the control  panel where it would check for updates and tell you when you're out of date or when you  need a hot fix or a patch.  So because of security track records, I think they've built this in to keep people really  aware of whether they're out of date or getting out of date with their current Drupal versions.  Now Plone really don't really have distributions like that.  But we do have a couple of groups have gone off and built some interesting things on top  of Plone.  I don't know, I didn't know how to kind of classify these, but I know the wild card  group is doing Castle CMS, which looks really interesting to me.  They're kind of bundling opinionated technologies together to give you a really nice experience.  I don't think sign-in has migrated to like Plone 5 and I don't know how relevant they  still are, but that was a internet, like social internet portal.  And then the Quay project is based off of Plone 5 and also has an open source version  of it that you can download and try out and install.  So I know if you're in this room, you won't be seeing the Quave demo, but I highly recommend  you guys checking that out because they've done a really good job of addressing usability  issues and making that guided experience of an internet and knowledge management tool  like super easy.  So we're going to talk a little bit about the out-of-the-box experience.  It's just kind of general features you get without having to add any add-ons into the  system and also what kind of content types and things are available as you start.  So your very first experience with Drupal firing it up, you log in, they have the edit  bar across the top, kind of like our Plone toolbar.  This admin button here, it can actually be pushed over to the side, kind of like ours,  we can have it on the top or the left side.  Drupal 8 focused on a lot of usability fixes.  So they recognize, I think they've got a lot of people in their community, kind of a tremendously  more than maybe the Plone community does, but they focus on a lot of usability, UI,  UX.  Drupal 8 finally comes out of the box with a WYSIWYG editor installed.  It used to be that if you wanted to use what you see as what you get edited through the  web, you had to install an add-on module, which, we'll talk about add-on modules later,  but it could be a double-edged sword because if you get stuck at a certain version of an  add-on module and you can't upgrade, you really kind of get hosed.  So it's nice to have that built into their core features now.  Another big usability is the icons, apparently, were a big deal for the Drupal community to  put there in their toolbar.  They said they got a big win in testing.  And they have a package installer.  So directly inside of Drupal, you can actually go to install add-ons or modules from Drupal.org  into your system without having to go to the file system.  There's actually, I think I've got a screenshot of it in here later, but you basically just  paste in the URL of the thing you want or upload a zip file that includes the module you  want to install.  It installs it, activates it, and you're good to go.  So they really kind of simplified that process for people who are new and getting used to  installing add-ons into their product.  Let's see.  Yes?  How much of the usability?  I think there's a lot of this community.  I mean, we talked a little bit about Acquia and their role in the community.  Obviously, they're a big force in their community because they kind of have a central group that  has a lot of money and investment.  But their focus is strictly on, most of the time, strictly on hosting.  So Acquia is a group that the founder of Drupal works for.  And they try to basically focus on providing an enterprise-grade, super bulletproof hosting  platform to put your Drupal site into.  They try not to compete with the Drupal integrators and developers who are doing day-to-day work  on Drupal sites.  But the community has broken up into teams kind of like we are.  You know, they have a security team and a core team and this and that.  So I think they've mostly community-driven.  At least that's the impression I got through this process.  So it's very community-driven.  So what I thought was interesting is in a basic Drupal install, you have two content  types available to you out of the box, which they seem fairly similar to me as well.  You have an article and a basic page.  Now Drupal does include a book content type, but it's not active, and a forum content type  that is not active.  They used to ship with a blog and a poll, but in Drupal 8 they removed those out of  the core product.  They really do guide people toward custom content type creation through the web versus  add-on modules or standard content types that are already built in and ready to go for  you.  So again, that is interesting that basically you've got two content types as an out of  the box experience.  I thought that was kind of a limiting.  Now what they also have introduced in core of Drupal 8 is a thing that used to be a  contrib package like an add-on for Drupal called views.  And you could think of views as basically the equivalent of our collections or smart  folders.  And they do a lot with that kind of like we would do if everyone had, if Mosaic was,  you know, primetime and everyone was using Mosaic now or using tiles and blocks and things,  they use views to make basically collections of content show up anywhere inside the site  and make layouts for different kinds of pages.  So that's their technology for that, it's called views.  Now they also have users, files and comments, so kind of standard stuff like we have as  far as like user management, there's, you know, as entities inside the site that you  can refer to, but they're not full-fledged content types.  Now Plone, when you install it out of the box, we also have done a great focus on usability  and redesigning from Plone 4 to Plone 5.  I don't have to go too deep into this because I hope you people know what this thing looks  like.  We've been talking about it a lot, but what I really wanted to show off was I still like  the fact that we have a great set of built-in content types that you can use right out of  the box.  I think this helps guide new users toward managing content right away.  The old argument of the product versus the framework, Plone is nice out of the box because  you can use it right away.  Someone can install it and start managing content.  They don't have to do a lot of configuration so they don't have to set up their own content  types.  Drupal appears to be more of a, you install it and then you better start doing some configuration  to it first before you really want to start using it.  You want to set up your information architecture, you want to set up your content types and  things like that.  We have a great set of out-of-the-box content types.  We also have users and groups management, discussion items.  Those do exist as well.  Now, when you get into products and modules, this, Plone 5, I don't think we went forward  in this direction with products and modules.  Right now, I even kind of dressed this up by pointing to the new beta of PyPy.  But basically, we're sending new people directly to PyPy without much guidance about how to  find add-ons.  It's very hard to find a Plone 5 theme in PyPy.  You basically have to know how to run the checkboxes and even then, the results are  iffy because you're relying on people having filled out the classifiers correctly in their  setup.py.  I don't think this is a good situation for new people coming to the community because  it's hard to navigate.  I mean, we kind of got some suggested add-ons on the main page for our site, for Plone.org.  But I think we can do a better job here.  Now of the add-ons that are in PyPy, yes.  Oh, good.  I'm going to be excited when this is what PyPy looks like when you go to it.  It's a current one, I think, 1998 called, month their site back.  They do a great job.  I mean, they're working really hard and keeping that thing very, very stable for us.  But yeah, I'm looking forward to this new, this is pyramid-based, the new PyPy, which  is pretty awesome.  But the Plone add-ons inside PyPy, there's about 2,800 of them listed.  But once you filter down just for Plone 5, you can see right there, we've got 232.  Probably half of those are Plone itself.  So there's not a lot of add-on packages that are compatible with Plone 5 yet, which is  a little bit disappointing.  So not a lot of it ready to go yet.  Now Drupal, on the other hand, this, and we're talking about Drupal 8.  So Drupal has over 35,000 modules available in their download and extend kind of their  add-ons section.  Now the issue is, no, I was going to say this is definitely, again, a double-edged sword.  I think because Drupal has typically shipped with less core functionality out of the box,  they expected most people to build modules to extend it to get to the level of a Plone.  I mean, probably in Drupal 7 compared to Plone 4, you had to add in about 35 or more modules  into Drupal just to get to kind of feature parity with what Plone gives you out of the  box.  And once you've added those 35 modules in, who's to say they're going to stay maintained,  upgraded, and there's a lot of lock-in that can happen.  Now when you do filter down by only Drupal 8, you're down to about 1700 packages.  So they have the same, you're going to see a lot of parallels between our communities.  We started nearly the same time.  We released Plone 5 and Drupal 8 about nearly exactly the same time.  And the adoption rates have been about the same kind of path.  I'll show that later and I've got a graph showing kind of adoption of Drupal 8.  It's been slow.  And the developers have been slow to update their add-ons for Drupal 8 as well, which  is, like I said, a problem, I think.  Yeah, so there's not really 35,000 modules available.  There's far, far, far fewer than that.  But here is that one cool feature I think we should add into Plone, which is this, if  you want to install a new module, you just come in here and paste in the URL to the Drupal.org  site.  It goes and grabs it.  I would hope they're doing some kind of code signing, signature checking, hash stuff.  Oh, boy.  Well, we should do it like that.  Because it is a cool feature for newbies.  If someone's coming to the site and they want to be like, oh, I really want to try Plone  Form, Jen.  Now, how do I get it?  Oh, well, you're supposed to add it into your build-out or your setup.py and you go rerun  this thing and then that's how you get this add-on.  This is way, way nicer from a new person's perspective, not understanding the whole  ecosystem of how you add modules and add-ons into your site.  Which Plone Form, Jen, is a great add-on.  I always recommend it highly.  And they've addressed this a bit with the Drupal 8 stuff.  I'll talk about that later when we get to the security slides.  But the content editing story between the two sites, Drupal 8 uses a CK editor, which is  available as an add-on for Plone.  But that's now the default out-of-the-box editing experience.  And obviously, Plone is using TinyMCE4, which is quite nice.  Now, the big difference is how they lay out their content.  So we'll talk a bit about, you know, okay, so yeah, here's Plone4 with our nice, you  know, TinyMCE4.  I'm pretty excited we got that finally upgraded.  And now I'll talk a little bit about editing content.  One of the nice things about editing content is this is probably our super secret sauce  right here, is the fact that our workflows are so extendable, so tied into security,  there's just a lot of benefit to being able to track the state of items and have multiple  states and have trans-multiple kinds of transitions and all the things we can do with our workflow  system just kicks us not out of what you can do in Drupal.  So in Drupal, here's the CK editor.  You see it's got kind of a very stripped-down toolbar there.  You can actually change what kind of toolbar you get right from the edit box.  If you're more of a power user of CK editor, you can get more buttons available to you  or you can go to plain text.  And all the button sets are editable through their control panel, kind of like ours are  for a TinyMCE.  So again, very, very similar.  Now if you want to brace yourselves for their whopping workflow set up here, this is pretty  much the workflow.  Save and publish or save as unpublished.  It's on or off.  It's not really a concept of moving things through states in Drupal.  So there's kind of the biggest area of departure and differences here is that their workflow  system is on or off.  So it's great for simple use cases where people aren't trying to do like a vacation leave  forms through their internet where they want to be able to have approval processes going  on there.  They're not really trying to model business processes here.  They're just basically saying either the page is visible or the page is not visible.  And we'll talk again a little more about that in the security section.  But they do have some workflow add-ons.  They've not been maintained, unfortunately.  The last update workflow in GHA was in 2014.  There's a rules add-on that apparently replaces it, but I don't think it's still in beta for  Drupal 8 at this moment.  So there's not really that many great options even to go to a more robust state machine type  workflow for us.  So when you want to customize your product and you want to go hire some people to actually  do some development for you, what is that going to cost typically in each community?  So I asked, we kind of looked at this, the typical going rates for independent contractors  in the Plone communities anywhere between $50 and $100 an hour, the typical consulting  companies charge between like $185 an hour.  That's kind of the going rates for consulting work.  In Drupal, there doesn't seem to be much of a distinction between freelancers and shops.  There's not like, there's a couple big shops, but really it's about the same pricing.  It's about $50 to $200 an hour for Drupal resources.  Because some of these pretty high profile sites have got some dollars.  That's why they kind of got that top end.  But there's a huge amount of the low end, like $50 an hour, you know, Drupal developers  that are out there.  Now when it comes to customizing Plone, you basically got build out.  You want to add on packages for your site if you want to make a custom theme or content  type.  We typically make a custom policy package that was placed where you may put your workflow  policies.  You may save out generic setup, exports of your settings, things like that is what you'd  put into these kinds of packages.  What's nice with the custom development now in Plone 5, and this was in Plone 4.  2 was the dexterity custom content types being able to do this stuff through the web.  This gets us much more in line with the Drupal 8 or the Drupal 7 experience of creating their  content types through the web as well.  So those people are going to be a lot more comfortable now coming over to Plone and being  able to do, basically, click, click, click, build some content types and be able to be  productive inside of Plone.  And what's also nice, we can round, they have the same feature where they can basically  create their content types through the web and then export them out as a YAML to the  file system.  I love the fact that we can take these and export these out as XML and actually use them  inside of our content types package and then redistribute that as an add-on if you found  you've made something that was generically interesting to other groups.  Now customizing Drupal 8 has actually gotten a little more sophisticated or complicated  depending on who you ask in the Drupal community.  There's actually been a fork of Drupal at Drupal 7 called Backdrop because this, Drupal  8 is a major departure from the, what was the typical way of developing core Drupal  and making new Drupal add-ons.  They moved to this new symphony, basically web application framework.  They ripped out the whole bottom end and replaced it with a new, basically a component architecture  system.  As I was talking to my friend Doug about symphony and customizing Drupal, he is not a fan.  He's like, you have to have a computer science degree anymore to be able to customize things.  You have to dig down into like five different directories and edit ten different files to  be able to add something to Drupal.  I go, you sound like you're talking about a clone.  You would be very comfortable as a clone developer looking at the symphony framework.  Basically what they've done is mimicked a lot of things we gained in clone 2.5.  So when we incorporated Drupal 3 into clone, we started getting the component architecture  stuff, adapters and views and all those kinds of nice things that we got in clone 2.5.  They just got in Drupal 8.  They can export their settings now out to the file system like kind of generic setup.  So again, I think we would be fairly comfortable with this new set of tools, but I think it's  been hampering some of the developer adoption of Drupal 8 because they did such a radical  change on the back end framework.  Now when you're customizing Drupal, they do have a lot of different ways to do it.  This is one area where they've got a lot of flexibility.  There's some cool command line tools such as the Drush shell.  So they've got this thing called Drush make file.  That's like the Drupal shell tool.  So you can actually, you do the templating and boilerplate code kind of like we do with  Mr. Bob or what we used to with Templar or Zope Scale.  Same thing for Drupal console.  They finally in PHP have a way of basically pip installing and pinning versions and that's  called conductor.  So if you start doing any Drupal, you want to make sure you get familiar with conductor  because that allows you to pin versions so you don't get, let's just say, a bad experience  when you go to like run the upgrade and all of a sudden you've got new versions of packages.  But they do rely still on a heavy through the web experience.  The typical integrator or Drupal developer is going to start through the web.  They're going to create their information architecture and their content types first  there and then export them out to the file system so they can move them into their other  various environments.  Here's the, this is their custom content type.  Basically cool on our dexterity is that you can create, I've created a, what is this,  a recipe.  So this is a recipe content type.  You just basically click add field, add field, add field.  They've got different kinds of fields.  For example, text, long format of a summary or standard text.  But it's basically a whole set of like different fields like we have for dexterity for building  the content types.  And then it gets exported out of XAML to the file system.  Oh, so another nice thing we kind of talked about when we get into a little bit of hosting.  Getting started with Drupal actually is made pretty easy if you're using one of the new  hosting providers that is available in the Drupal community.  One of the example ones I'll talk about is called Pantheon.  And you basically go sign up for an account, tell them you want a new Drupal 8 instance.  It spins up a dev testing and production instance for you simultaneously and gives you a git  repository that you just clone back to your machine.  And as you make changes and push, you pick which environment you're going to, you know,  migrate that or push that code to.  So it really makes it like, they've got kind of best practices baked in with a system like  that.  So if I was going to start with something with Drupal on a project, I would use one of these  services because it really helps guide you through the development process of customizing  Drupal and making sure you're doing it in a well-tracked way.  We'll talk about theming now, unless you guys have any questions about customizations.  So in clone, this is an area where I'm really happy is that I think Diazo has really improved  our customization story and theming story tremendously for people who are new to clone.  No longer do you have to learn, I think I had to write down the list because it was  so big, ZPT, ZCML, Python code, Python scripts, component architecture adapters, browser views,  like there's this, you know, almost endless list of Z words you have to learn to be able  to do theming in clone previously to clone 5 and clone app theming in clone 4.  So I think we've made a great stride here that if you consider a designer or a web engineer  down and have them know HTML, CSS, JavaScript, and then where is Annette?  Oh, if you can be an XSLT ninja like Annette, oh my gosh, you can do amazing things literally  without having to leave your browser window.  So I was really impressed with the presentation this morning about what you guys have been  doing with Diazo rules.  And it doesn't seem like that unapproachable.  That's probably the biggest technology you got to learn is the Diazo rules, not too big  a deal.  So, you know, screenshot of like our clone app templating.  It gives you ability to do through the web, create your rules, create your templates, do  all this customization.  Oh, yeah.  And the fact that we now with the mock up inside clone 5, it's really easy to bring  in fancy pants JavaScript libraries and do cool stuff with React or Moment or whatever  the things you want to like try out.  It's way, way easier to do that now than it was before.  Drupal theming, it's not like what we have known in clone 5.  It's more like what we had in clone 4 and clone 3.  You basically have this concept of main base themes and you typically when you're making  a theme, you make a sub theme and just override the pieces from the base theme that you want  to change.  It's interesting that the templating language they use now in Drupal 8 has changed.  It used to be PHP templates.  So you actually wrote like real PHP code in your templates, which was a source of a lot  of the security vulnerabilities that came out with Drupal prior to 8.  Twig is a templating language that we will all be very familiar with because it was written  by our very own Armin Ronecker.  So it looks just like Jynja 2 or Django templates and it's very nice and this has actually led  to a tremendous improvement in the security of Drupal 8.  So again, as clone developers, we would be probably pretty at home or Python developers  in general.  We would be pretty at home with the Twig templating system, but it's very similar to how skinning  used to work in clone where you would override like base view or whatever document view,  whatever kind of thing you wanted to customize.  You do the same kind of thing with Drupal 8.  You basically override in a sub theme the bits and pieces you want to do to customize your  look and feel.  So it's still the same thing, HTML, JavaScript, CSS.  And in this Twig, it comes as part of the Symphony 2 framework that they moved to with  Drupal 8.  Yeah.  No, so that's another big difference.  They don't have a through the web editing experience for Drupal.  That's another big win, I think, on the clone side is the through the web templating.  Right now, if you want to customize and modify these themes or create your own sub themes,  you do have to do it from the file system.  Yeah.  Yeah.  On top of this, yeah.  Yeah, so exactly.  For people making their own modules for Drupal, they will provide what are called hooks.  If you want to add something into a menu someplace, you make your own hook and write your own  code in there and it injects it into the whatever menu you put in there.  But like you said, one developer's menu hook is going to look different than another developer's  menu hook and it may be difficult to...  Yeah.  Right.  That's where the views come in.  So they have layouts with these views, they put blocks wherever they want to put them  and those are also hooks so that the module developers will make their own blocks and  they have different code styles for all those as well.  When you install Drupal, and actually when you're using Drupal, this is another area  where we differ quite a bit is there's typically going to be a default theme and that's the  kind of front end that most web visitors are going to see for your site.  But they also install and they kind of can't see it down here, but there's an administration  theme.  So you typically may have one single base theme and two sub themes, one strictly for like  editing, like the use the content contributor or content editor experience, and one which  is for the web visitors who are coming into the site.  So you really don't get that full in context editing like we do with Plone that as I'm  editing the page, I still see a lot of the page around as well.  So that's interesting, they've got this administration theme default theme going back and forth.  So you'll flip back and forth between these versions of the site.  This is the administration theme and you can see the back to site button up there in the  left hand corner, that gets you back into the retail version of the site itself.  So this is kind of just showing the theme registry.  They use YAML to set up kind of a settings file, that's how they hook up things inside  of your modules when you create an add-on for Drupal.  And typically your standard theme package is going to have a templates directory.  Actually in Drupal 8 you have to put your templates in the templates directory or it  won't find them correctly, it used to be you could name whatever you wanted.  But they have the YAML files that describe the add-on of the module for your theme and  then all the config and CSS go all through in there.  Now this is the views part of this, I believe I mean the add.  So you set up your information architecture.  Yeah.  Like oh, you mean through the content editing experience, right?  Okay.  Yeah, that's something I meant in dive into too deep.  Oh right, because they give a little pencil like when you kind of hover over sections  of the site.  Now we turned that off and clone.  Because there was a pain in the butt.  But yeah, they do, so when it gets down to like blocks, you'll see here there's, like  kind of like we have viewlets, everyone here familiar with like the view system inside  of clone.  There's all those little spots throughout the pages where you can inject like your own  snippets of code or part of the view.  They do theirs through the web with this section called blocks.  And so this is where you can actually say I want to put the site branding into various  areas, the main navigation and you configure what pieces go where.  And it's basically equivalent of us configuring our viewlets, you know, throwing the nav into  the header, viewlet, et cetera.  That's their equivalent for, and they do it all through the web.  And which we can kind of too with the at-manage viewlets, but we don't typically show that  to normal human beings because it's a little tricky.  Now upgrading and migrations.  This again is an area where we will differ, but Drupal 8 is working on this.  One nice thing about clone is you could take a clone 1.0 site and you could migrate it step  by step by step all the way up to clone 5 and actually have a usable site afterwards.  Plone comes with a great set of documentation at every release for all the things you typically  need to do between versions if you want to make sure your add-on code is ready for the  next version of Plone.  Now if you want to migrate code in and out of Plone, we've got through the community,  not built in, but through the community there is, you know, like transmogrifier pipelines  for example, so you can actually export and then re, you know, kind of dump and reload  if you want to start fresh with your site.  Depending on the age of the site and the number of custom add-ons you'd ever put into your  site, I will recommend the dump and reload version of it versus the try and walk it all  the way through from clone 1 to clone 5.  But if you haven't had a lot of add-ons or it's a very clean site, it's very, very feasible  to go right from, you know, whatever version of Plone straight up through to clone 5.  Now again, add-on products will be the real sticking point for you.  If you're on add-on products that haven't updated their code for clone 5, you're stuck  until they do or you remove it and put some kind of alternate technology in there.  A big advantage of Plone over Drupal with our given our kind of large, robust feature  set, I typically think we don't have as many add-ons or modules installed into our sites  which makes them a little more able to migrate easier.  The Drupal site, so up until Drupal 8, each previous version of Drupal was basically a  fork of the previous Drupal and started from scratch, like scorched earth almost.  So migrating from one version of Drupal to the next version of Drupal was typically not  a priority for them.  They kind of expected you to dump your content out, upgrade the newest version of Drupal and  redo everything from scratch if you're going to actually migrate to a new version of Drupal.  It's changing with Drupal 8.  They are stabilizing their APIs, they're trying to make them more backward compatible, so  if you're going from 8 to 8.1 to 8.2 or to 9, the idea being it would be possible to  actually migrate your content in place.  But that's not been historically the case for much of Drupal.  But then you have the same problem with add-on products but a much greater scale because  you probably have a lot more modules installed into your Drupal site for that.  Yeah, they also have the ability for you to do migrations in and out of Drupal.  So people would typically do a, what's called a Drupal to Drupal migration when they're  going from like version 5 to 6, 6 to 7, et cetera, which dumps it out to the file system  and then you reload it back in as part of the Drupal migration.  So hosting for the two kinds of technologies.  The clone hosting can be done on lots of different kinds of cloud services.  What I typically find with clone hosting though is it's a lot of do-it-yourself.  You need to do set up the machines, install the dependencies.  There aren't a lot of these push, but there aren't hardly any push button ways of installing  and hosting a clone out there other than say like the Heroku button.  But has anyone run the Heroku at scale with any kind of a large site with large traffic?  Yeah, I haven't either, so I'd be interested to know how well that works because that's  a really compelling story for getting people started with clone for sure.  But if you have an even the most modest site, I would recommend people running Xeo using  two cores on a VM someplace, maybe about a gigabyte of RAM because it all varies based  on the number of add-ons you've got in your site, the amount of content you've got in  your site, but just a general kind of rule of thumb.  I don't typically go much smaller than that.  I've got some pricing in here as well.  So for example, something a digital ocean will cost you about $20 a month.  EC2 I'd recommend, no, a lot smaller than like a T2 medium for reasonable sites, that's  about $37 a month.  I was surprised Azure was so expensive.  Is anyone hosting on Azure currently?  That's probably why.  It's a little pricey.  And then obviously I have to, you know, prep my own services a little bit here, but 6-feet  up does offer kind of entry-level hosting of clone sites at $50 a month as well.  Yeah, actually I didn't put Google Compute in here.  You know why?  Because no one's using it.  Yeah.  No, I actually had a coffee with a guy from Gartner and we were talking about the various  cloud platforms and basically the enterprise is scared to death of Google Compute because  of the way Google can willy-nilly kill off any platform.  So at any moment you could be at the victim of Google's choices.  And then we also, like I said, the Heroku button I think is quite interesting.  For free I think you can get up to about 200 pages of content in your site before you need  to start paying for the Postgres dyno because I think you get like down 10,000 rows for  free in the Postgres database offered there.  Similar situation?  Yeah.  Oh, wow.  True, yeah, if you've just got kind of a small brochure where site, that will work.  Like I said, this has been a three-month process.  That price probably got put in there a month and a half ago.  And for Drupal it's pretty similar as far as like the size of kind of horsepower you  need to host a reasonably sized Drupal site with comparable traffic and amount of content.  The difference here though is you can have a DIY, DIY, do-it-yourself Drupal deployment,  but there's so many great services out there like this Pantheon platform SH where they  just set up multiple instances for you.  They actually have push button.  I want to bring my production data back to my test instance.  I want to migrate this code changes up to the new instance.  A lot of them will even go so far as if your code is with them in their repository and  there's a new version of Drupal out there, some are already set up to basically splat  the update of Drupal automatically onto your thing and you just need to go push a button  to approve that you want that released.  So they really eased out, they eased the experience of deploying Drupal.  You can host with thequia.com, but if you have to ask, it's probably too expensive for  you.  So it is quite pricey from what I know.  Now another nice thing these other Pantheon and thequia and platform SH give you is a  lot of them also include services like New Relic as part of that plan.  For $25 a month, you'll get Drupal hosting with New Relic stats.  If anyone's using New Relic, it's a pricey service on its own and it gives you a wealth  of information about what's going on behind the scenes inside your site.  So that's also pretty cool.  So web performance, both systems have similar techniques for accelerating.  I mean, if you guys are already familiar with using varnish and HAProxy and MIMCached for  auth and sessions, the two systems almost look identical when you go look at their performance  pages about how to actually accelerate pages.  Plone though out of the box has some advantages.  With our Plone app caching control panel, we have the ability through the web to kind  of adjust and do some settings where how long you want to cache something.  Basically, you can kind of customize the caching experience through the web.  Plone also allows us to purge, at least a very minimalistic purge request for at least  the page and maybe the container it's in.  The Drupal out of the box experience doesn't have that.  What's also nice with Plone is you can, with a very small extension, customize that purging  behavior.  So if you want to make sure the front page gets purged, that item happens to be showing  on the front page as well, you can do that really easily with Plone.  The Drupal 8, they don't have the purge capability out of the box.  There's an add-on that you would have to put into your site to be able to get purging working  correctly.  Now one thing that is really cool, the Drupal 8, that we don't have is the new big pipe,  Facebook big pipe.  Have you guys heard of big pipe yet?  That is a really cool technology.  So if you guys have gone to, who here is on Facebook?  Yeah, okay, I'm going to just raise my hand.  If you go to Facebook and you've ever noticed that when you first launch the page, you see  like gray placeholders that look like the posts on your wall, and then all of a sudden  they kind of filter in with like the real ones, that's big pipe.  Basically they consolidate the non-personalized version of your page into a very few number  of requests, get that to you quickly, and then they stream in the dynamic bits behind  the scenes.  Drupal 8.1 ships with this out of the box, which again, that's a pretty fantastic performance  feature and something maybe we should even look into in the clone community because it  helps with like, I was talking yesterday about the Google AMP, yeah, exactly.  Same kind of thing to help accelerate and I think that's going to be really important  for mobile devices on varying degrees of nice connectivity.  So that's one area where I think Drupal has added some really nice customizations for  the performance.  I'm sure this is the slide everyone's been waiting to hear about, right?  It's security.  Each community, clone and Drupal has a dedicated security team.  How many people are in our security team?  I couldn't find a number.  Steve, you know?  Or Nathan?  Where's Nathan on here?  I guess it's like five, six people are kind of our security team.  They're very busy.  They do great work.  But it's that secret, right?  Drupal's security team is 40 dedicated people.  Some of them paid by their employers, at least maybe a half time or some percentage of their  work time is actually dedicated to Drupal security.  They obviously have a lot to do as we've seen in the past.  But what's nice, we've clone has only had reports of a very few sites being hacked and  those sites basically weren't patched within six months of the release date of the patch.  So it's very rare that clone sites are actually going to be exploited, especially as the people  are being vigilant about applying their patches.  So we have, you know, the zero day claim we make, I think it's pretty important for people  who care about security.  I went to that exact page and I only saw like two people because I wasn't logged in.  Okay, so it's all secret.  You guys are very secretive with your security team membership.  Oh, you know, I got these slides slightly out of order.  So that's kind of when it comes to like security teams.  One of the nice things about Zope and clone is that we were built on Zope.  I think that's a big benefit for us when it comes to security.  We've basically been able to leverage that built-in roles and permission system and we've  augmented it with our own users and groups where we have a really fine grained experience  for being able to customize who can see what when and where.  And when you combine that with our awesome workflow tools, you really get this tight  experience when it comes to ensuring people can't see things when they're not supposed  to see them or making sure pages get published or kind of the whole experience is really  nice.  And I like that out of the box, we have the built-in roles of like contributor, editor,  reader, reviewer, site manager and manager.  When we look at what Drupal does, which we will in a second, you'll see it's a very different  experience.  We also have, you know, very easy check boxes here and what these should, for most people  who don't know, these security settings check boxes that are in the through the clone experience  actually manipulate that, well, they actually manipulate this, which is something I tell  people never to touch because this is not meant for any human to ever touch.  If you were to, this page is long, now if you guys have seen this, this is the security  tab at the root of your clone site.  And again, if anyone ever learns anything from me, it should be to never touch the screen  under any circumstances.  Let clone do it through the clone because that's what it's doing for you here.  But this is also part of our power, the fact that we get down to such a granular level  with what people can see and do and you can think of all these permissions in clone is  like little locks or little gates that kind of unlock our show for functionality through  the site.  Drupal doesn't have nearly this robust of a system.  This is the equivalent of their security tab.  This is out of the box.  You can see that there's three roles, two of which are basically virtual roles like we  have, authenticated and anonymous.  If you want to do more than this, it's up to you to kind of design your security scheme  by adding in your own roles and then again checking the boxes that's a long, it's a  long page, not as long as ours, but it's a long page of managing check boxes.  That's how they do their roles and security inside of the Drupal system.  So again, I think it's an area where we really excelled because we're built on top of a system  that thought about this first.  I think Zope was made with security in mind.  Yeah, so now they do in Drupal 8.  So all the Drupal 8 settings can all be exportable into YAML just like we have a generic setup  exporter.  They have a similar thing here as well.  So they can move those from environment to environment, for example.  Yeah.  Yeah.  Right.  Now the individual piece of content is either published or not published.  Not that I could see out of the box.  We didn't dive too terribly deep into it, but we have got an amazing system that comes  to local roles.  If you haven't checked out dynamic local roles with Bjorg local role, that is amazing.  The fact that we can customize based on any fact or data inside the system or even external  roles of the system.  Yeah.  Right.  Right.  Right.  There is going to be based on the type of content.  Certain users may have, like you said, access to create this kind of content versus that  kind of content, but not where they put the content inside the site.  That is handled by their view system.  Right.  This is about the only other security settings I could dig up in the Drupal site was kind  of the registration and cancellation.  So that was kind of the equivalent of our security tab inside of Plone.  Now, when it comes to security track records, I really only wanted to compare Plone 5 and  Drupal 8.  They are not too far off from each other.  When comparing exploits, numbers really don't matter too much in security because it is  about track records, about severity.  There are so many different factors to take into consideration.  So I wouldn't look at these numbers and be like, oh, well, Drupal 8 is way less secure  than Plone.  They have got a very vigilant security team.  They've changed up their framework quite a bit to address a lot of these kind of security  issues.  And they're right on par with, I think, you know, the improvements that are showing here  in the numbers.  The reason these numbers are so low is because there is such low adoption of Drupal 8.  This graph here is showing Drupal core usage.  And so you see here is 2016.  Here is January 2016.  This line here at the very bottom is Drupal 8.  Yeah.  That's Drupal 8.  The big ones up here are Drupal 7 and 6.  Yeah, 7 and 6.  That's total.  Oh, that's total, yeah.  But this is Drupal 7 right here.  So Drupal 7 is still hugely popular out there.  Now when I say hugely popular, it's really not that popular.  If you look down here, this is WordPress usage.  WordPress accounts for about 26.4% of all CMS sites out there.  Drupal is about 2.2.  So in terms of scale, Drupal is dwarfed by WordPress, kind of much the same way we're  dwarfed by Drupal.  So you can see we're kind of in the long tail of CMS usage out there.  So the reason we've not seen a lot of security issues with Drupal 8 is definitely because  I think the adoption rates for Drupal 8.  The numbers here, the total number there is 1.2 million sites reporting back for Drupal.  Because of last week, there were 125,000 Drupal 8 sites out there.  There was only 41,000 January 1st.  So they're getting adoption, but it's still not taking off like crazy.  I wish we had this for Plone.  We don't have any way of, we don't report back to home about our versions.  I think we should, because they're going to be interesting to have those kind of same  numbers for us.  All right, so intellectual property and community.  I love this because we are an awesome community.  We've been around since 2001, but Plone 5 got released in September.  We created our foundation in 2004.  So I think we were ahead of the game when it came to protecting our product and our  IP and in our community.  And this just, you know, 895 contributors have put code into Plone at some point in time  along the way, which I think is also awesome.  But then I heard about the Drupal numbers.  They've had over 3,000 committers into Drupal.  This says 150.  I got this off of Olo.  It's not accurate.  They actually have a Drupal commit tracking site out there that shows you for this version  of Drupal, how many people committed, what their names were, and what they committed.  It's quite interesting.  Very similar history.  First Drupal released in 2001.  Drupal 8 was released in 2015.  They started the Drupal Association in 2009.  Now the Drupal Association isn't like our Plone Foundation necessarily.  They are mostly there to raise money and run the events like the Drupal cons and things  like that.  So they do a lot of promotion.  But they are not the IP holder or trademark holder for Drupal.  That is still solely controlled by Drees.  And this is the copyright statement right from the code.  I don't know how this scales when you've got 3,000 contributors if they all own their  original like work that's inside the code.  So it seems to be run by best good neighbor policy so far.  They've not run into any kind of problems.  This part scares me right here because if they want to change their license, what do  they do?  How do they go about this?  This is just, it would be an insurmountable task if they ever wanted to do something like  changing their license, for example.  Then Drupal 8 has also spawned a whole new fork of Drupal off of Drupal 7 called Backdrop.  So there's a new CMS out there for the people who are, you know, staunch.  I like doing my Drupal 7 way of doing things.  Actually Doug, the guy who helped me with this presentation, is a big fan of Backdrop  as well.  He kind of falls in line.  You saw the graph, there's a ton of Drupal 7 sites out there still and people want that  to kind of continue.  So they're, you know, maintaining, enhancing.  They're backporting some of the features of Drupal 8 when they can into Backdrop.  But just be aware that if you are doing Drupal, there is a fork out there that is gaining  some traction and it's popularity.  Oh, so as far as community, I forgot to mention, you know, so for Plone Conference, here we  are, this is us.  But we also have lots of sprints, symposiums, lots of events where we get together.  By comparison, DrupalCon this year in New Orleans had over 3,000 people.  Their regional events are getting about 1,000 people per regional event right now.  But they started their first Con in 2005 with 50 to 100 people.  So kind of similar, similar startings to us, similar size.  They have the DrupalCon, the DrupalCamps, lots of meetups around the globe.  So there's a big, huge community of people doing Drupal out there.  Really nice, really nice, powerful thing.  So in summary, I think we're seeing a lot of convergence of features between Drupal  and Plone.  A lot of the through-the-web content type creation that Drupal has had for quite some  time, we're finally getting, you know, comfortable with and it's nice.  They've moved, Drupal Ace moved into a component style architecture.  So we would be very comfortable if we had to do work on a Drupal site.  We would know how to go look up all the crazy abstractions thanks to Martinus Belli.  Plone has always had collections.  Drupal's now added in views to their core.  So if you're familiar with how collections work and views would be really, really familiar  to you if you went over to the Drupal site of things.  And again, Plone, if we can get Mosaic, I think we talked about that for the roadmap, having  Mosaic put into the core Plone, I think would be a big boost for us in terms of feature  parity with the Drupal folks because that would give us that ability to customize layouts  and blocks on the pages.  I will just say it, we absolutely kill it when it comes to workflows.  We, that's one of our biggest strengths and also the through-the-web theming with Plone  app theming.  It also gives us a leg up over the Drupal community.  The security standpoint for Drupal 8 is definitely looking much more optimistic than it used  to.  We get more adoption and more people actually using it and road testing against higher profile  sites.  Unfortunately, Plone hosting is still DIY.  The Drupal hosting options was really attractive.  They've always kind of had push button installers and various dashboards, but I think that the  fact that they've got these enterprise grade deployment options is a weak point for, for  Plone because we don't have something that is comparable.  But in the end of the day, if you had to choose between the two, it really comes down to your  needs.  If you are doing a large internet collaboration site, various kinds of security workflow,  you need to have something like Plone.  Okay.  For Drupal, it's a workbench.  But again, I was trying to compare core to core features.  So there's a lot of things you can add into Drupal.  Yeah, it's not core.  They definitely don't have that.  But if you are actually don't have a very technical staff, you need to onboard people  very quickly to get spun up on a CMS, Drupal is actually very easy to get going with.  I think they've made a great amount of effort in their documentation, the install process,  the getting going process, the whole through the web process, and then these hosting providers  giving you that ease of use between the environments.  It's very easy to get a fairly non-technical staff spun up and starting to use Drupal.  I don't know what their experience will be later when they're trying to do more complex  things, but I think the ease of use initially has definitely been a benefit for Drupal.  So I want to thank you guys all for hanging with me.  I know I went a little over, sorry, but don't forget to do your survey so I can get feedback  so we can improve this presentation and take it other places.  Oh, shoot.  It should be not that.  If you've used it earlier today, you should have it in your cache.  So thank you all for coming.
Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_0_71.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_72_131.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_132_599.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_600_647.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_648_2039.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_2040_2699.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_2700_4751.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_4752_6731.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_6732_7163.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_7164_7391.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_7392_9011.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_9012_9275.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_9276_11375.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_11376_11711.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_11712_11759.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_11760_12179.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_12180_12611.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_12612_14555.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_14556_14927.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_14928_15671.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_15672_17039.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_17040_17327.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_17328_21479.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_21480_23843.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_23844_24227.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_24228_25463.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_25464_25727.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_25728_28163.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_28164_28811.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_28812_30395.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_30396_31595.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_31596_32411.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_32412_32711.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_32712_33251.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_33252_33407.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_33408_33455.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_33456_33503.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_33504_33971.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_33972_35579.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_35580_37703.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_37704_38915.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_38916_42803.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_42804_43103.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_43104_43163.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_43164_43211.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_43212_43319.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_43320_44951.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_44952_45143.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_45144_46823.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_46824_47495.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_47496_49727.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_49728_52595.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_52596_53387.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_53388_53663.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_53664_53939.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_53940_54491.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_54492_55955.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_55956_56015.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_56016_56519.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_56520_56687.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_56688_58835.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_58836_60707.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_60708_60803.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_60804_62327.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_62328_65123.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_65124_66971.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_66972_73067.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_73068_74231.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_74232_74603.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_74604_75239.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_75240_77099.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_77100_77267.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_77268_78863.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_78864_79475.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_79476_80471.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_80472_82859.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_82860_82931.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_82932_83591.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_83592_86675.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_86676_86915.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_86916_87575.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_87576_91811.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_91812_92507.png Day_2__Plone_5_versus_Drupal_8__Civil_Comparisons__O4UuqB2zGYk_92508_92510.png
Is this thing supposed to be on? Can you guys hear me out there? Okay. I'll fix that. Microphone on? Hello? Okay. Ready? Okay. Awesome. All right. Can you guys hear me? Hey, it works. Okay. Sweet. So, if you're not here for Plone vs. Drupal, you're in the wrong room. So, I guess, yeah, we had a good crowd tonight. Awesome. Or tonight. Today. I have to drink a lot of water during the presentation. My throat has... I've lost my voice. That's just bad for presenting, typically. Yeah. So, don't forget. As a guest of the Plone vs. Drupal talk, we have goodies for you guys. We've got some M&Ms. I'm running out. You're running out. So, raise your hand if you don't have any and you would like one because we will run out of those. That would be kind of funny. Okay. Awesome. That's better. Now, I can see my slides. I guess we're ready to roll. We'll go ahead and get this thing kicked off then. So, I've had a really interesting journey recently. I spent the last three months every Friday afternoon drinking beer and looking at Drupal with this fine man. So, this is... If you don't recognize me, this is the person I'm talking about here. This is a Doug Van. He and I have basically sat down and decided we wanted to do a civil comparison of Plone vs. Drupal. We really wanted to understand where we were similar and where we were different. And the reason I was so excited is because Doug actually lives like 15 minutes from my house and he's been doing Drupal since 2007. He's actually one of the kind of premier Drupal trainers. He goes all over the world training folks about Drupal. He presents at all the Drupal cons. He's basically the Calvin equivalent in Drupal world of doing the same kind of things I go and do all the time. So, it was almost too perfect that we found a person who lives so close who could talk about Drupal so well. So, yeah, after much peer drinking and much talking and going back and forth, we would finally settle in and actually get a little bit of work done and talk about various areas of Drupal itself. Oh, and Doug, his first computer was a Commodore 64 in 1983 and he learned and taught himself basic. So, he's like a... He's not a computer science guru. He's a self-taught programmer kind of same as me. I am not a computer science person, but taught myself programming and computers so that I could go out and make cool websites. And so, Doug falls right in line with almost the exact same thing as me. So, what we did is we sat down and we had a huge list of what we thought were kind of main areas we probably should try and hit. So, I'm going to try and go over all these with you guys today. We'll see how much we get through in the 40 minutes we have allotted. I seem I can go a little over so we start a little late. But that's basically the methodology. We would sit down and then we kind of start talking. I'd figure out if that fit in one of these sections and I'd start writing in this big Google Doc that we did. And actually, all the material that I talk about today, I mean the slides that we posted up online, the video should go up online. But we've actually put together a like mini Plone vs. Drupal website inside the 6u.com site. So, all these sections are listed on that site there. All the screenshots that are in the presentation are going to be listed up there as well. So, if you actually want to refer back to kind of the source information for where all this came from, it's actually all up on our website. Because it's been quite an interesting journey. And also, the last comparison that we did of Plone vs. Drupal was back from 2010 and we were comparing Drupal 6.19 to Plone 4.0. So, if that tells you about any of the age, we decided we'd kind of blow the dust off this process and go do it again and see how things have changed if they've gotten better, worse, or how we compare. So, we'll go ahead and kick it off with the, obviously if we're going to compare them, we better talk about how we're going to install and deploy our instances. This is mostly going to be about the download and install experience as a new developer coming to that product. So, we basically both have a similar download experience. I think each of them is your three clicks away. You know, obviously, on Plone.org, it takes about three clicks to get here and you're downloading a tarball and installing that into your system. Yeah, you basically with, one of the really nice things about Plone, if you're new to Plone and never been in the community, there aren't a lot of dependencies you have to get installed into your system, especially if you're like on a Mac. We've taken care of this pretty well with the unified installer experience of just run install.sh. It gets all the dependencies and compiles Python. It does all the little, you know, bits for you. And then you start the instance and point your browser at it. There isn't too much more to kind of get in going. Again, the kind of the benefits here of Plone is very few dependencies are needed to get started. There's no requirement really to run Apache or have a database server or any other kind of thing because we're really relying on the Zope application server and the embedded database, you know, the ZODB to get started. So as a newcomer, there are not a lot of moving pieces to get going. Now the downside is, it is a very large download. So start your download, go get a coffee because it's going to take a little while. And then running that build at the installed sh takes a little bit of time. So again, you may have to go get your croissant and come back because it takes a while to get going. Now the Drupal experience is very similar. About three clicks away, you are downloading the tarp, a considerably smaller tarp all and you are basically ready to start the installation process for Drupal. This is where it gets a little different. You need to, assuming you basically need to have some stuff already on your computer, like whether you're using MAMP, WAMP, or like an Aquia desktop or some, you got to, you've installed Apache on your own with your own mod PHP, you have to have a MySQL server already running and set up, you have to create the database yourself before you actually get going with Drupal. So there's a little more things to do. It's documented very well. They do have great documentation on getting started, but you are going to have to know some things ahead of time before you can actually get started with Drupal. So there's is, you extract into your web group, set up your database, head to the browser, and then you actually run there, install wizard through the web. You may, yeah, actually, please, please ask questions as we go because there's lots of stuff and it will be difficult for you to remember which section you want to ask a question about. Yeah. What's that? Yeah. Yeah, and I think it would be nice if we could get the Heroku. button put up there. It does work really well. I was quite surprised. It installs. Yeah, because we don't have. Yeah. Right. Right. Oh, I agree. And that's actually one of my kind of findings that Drupal is very, very approachable because they have put things like this in there, you know, try a hosted demo. I mean, it's like one click installers and you're good to go. So yeah, you don't have to download and install, but I was trying to do it for more of a developer standpoint. If I wanted to actually work on Drupal and be productive, I got some stuff I got to do on my laptop before I can do that. Now, it's interesting with Drupal as opposed to Plone. So you just saw kind of the core, what is called the core Drupal download button. But Drupal also has these things called distributions. I don't think anybody here from Drupal can kind of finish the concept of distributions. So what they've got are these kind of pre-built sets of add-ons maintained by somebody so that you could do, for example, a social portal, open social portal. This is a distribution of Drupal with basically core plus X number add-ons. They also put in, which is really nice, some sample content to kind of give you a feel for how the site should work. And we don't have that. We really kind of miss out on. I mean, we put in news events and members in a kind of main nav to start with with Plone, but it doesn't give you a feel for, like, example kind of content, how user profiles should really look. And this gives you a full kind of in-context experience. And there's a bunch of these. Now, not all of them are compatible Drupal 8. So I will be talking about Drupal 8 specifically, unless I say otherwise. Drupal 8 has, let's see if I got in here, this is another one. This is like a sports league, so if you're running a team for your kids or whatever, they've got sites where you can put up a sports league stuff. Some of the more popular Drupal distributions are not compatible yet with Drupal 8. For example, they have one called OpenHRM, which is like an internet in a box type solution. They have one called Commerce Kickstart, which is also very popular for doing e-commerce online with Drupal. But those aren't compatible with Drupal 8 yet. And we'll talk about compatibility in a bit. But yeah, this is kind of that installation process. So once you've downloaded and installed, you still have to go through kind of a next, next, next finish installer where it asks you some questions about your database name and password and things like that to get going. But once you are installed, the upgrade process is kind of nice. It does tell you if you're out of date, these are some things that, if I put these on my wish list of what Plone could do, I really wish Plone had this built into the control panel where it would check for updates and tell you when you're out of date or when you need a hot fix or a patch. So because of security track records, I think they've built this in to keep people really aware of whether they're out of date or getting out of date with their current Drupal versions. Now Plone really don't really have distributions like that. But we do have a couple of groups have gone off and built some interesting things on top of Plone. I don't know, I didn't know how to kind of classify these, but I know the wild card group is doing Castle CMS, which looks really interesting to me. They're kind of bundling opinionated technologies together to give you a really nice experience. I don't think sign-in has migrated to like Plone 5 and I don't know how relevant they still are, but that was a internet, like social internet portal. And then the Quay project is based off of Plone 5 and also has an open source version of it that you can download and try out and install. So I know if you're in this room, you won't be seeing the Quave demo, but I highly recommend you guys checking that out because they've done a really good job of addressing usability issues and making that guided experience of an internet and knowledge management tool like super easy. So we're going to talk a little bit about the out-of-the-box experience. It's just kind of general features you get without having to add any add-ons into the system and also what kind of content types and things are available as you start. So your very first experience with Drupal firing it up, you log in, they have the edit bar across the top, kind of like our Plone toolbar. This admin button here, it can actually be pushed over to the side, kind of like ours, we can have it on the top or the left side. Drupal 8 focused on a lot of usability fixes. So they recognize, I think they've got a lot of people in their community, kind of a tremendously more than maybe the Plone community does, but they focus on a lot of usability, UI, UX. Drupal 8 finally comes out of the box with a WYSIWYG editor installed. It used to be that if you wanted to use what you see as what you get edited through the web, you had to install an add-on module, which, we'll talk about add-on modules later, but it could be a double-edged sword because if you get stuck at a certain version of an add-on module and you can't upgrade, you really kind of get hosed. So it's nice to have that built into their core features now. Another big usability is the icons, apparently, were a big deal for the Drupal community to put there in their toolbar. They said they got a big win in testing. And they have a package installer. So directly inside of Drupal, you can actually go to install add-ons or modules from Drupal.org into your system without having to go to the file system. There's actually, I think I've got a screenshot of it in here later, but you basically just paste in the URL of the thing you want or upload a zip file that includes the module you want to install. It installs it, activates it, and you're good to go. So they really kind of simplified that process for people who are new and getting used to installing add-ons into their product. Let's see. Yes? How much of the usability? I think there's a lot of this community. I mean, we talked a little bit about Acquia and their role in the community. Obviously, they're a big force in their community because they kind of have a central group that has a lot of money and investment. But their focus is strictly on, most of the time, strictly on hosting. So Acquia is a group that the founder of Drupal works for. And they try to basically focus on providing an enterprise-grade, super bulletproof hosting platform to put your Drupal site into. They try not to compete with the Drupal integrators and developers who are doing day-to-day work on Drupal sites. But the community has broken up into teams kind of like we are. You know, they have a security team and a core team and this and that. So I think they've mostly community-driven. At least that's the impression I got through this process. So it's very community-driven. So what I thought was interesting is in a basic Drupal install, you have two content types available to you out of the box, which they seem fairly similar to me as well. You have an article and a basic page. Now Drupal does include a book content type, but it's not active, and a forum content type that is not active. They used to ship with a blog and a poll, but in Drupal 8 they removed those out of the core product. They really do guide people toward custom content type creation through the web versus add-on modules or standard content types that are already built in and ready to go for you. So again, that is interesting that basically you've got two content types as an out of the box experience. I thought that was kind of a limiting. Now what they also have introduced in core of Drupal 8 is a thing that used to be a contrib package like an add-on for Drupal called views. And you could think of views as basically the equivalent of our collections or smart folders. And they do a lot with that kind of like we would do if everyone had, if Mosaic was, you know, primetime and everyone was using Mosaic now or using tiles and blocks and things, they use views to make basically collections of content show up anywhere inside the site and make layouts for different kinds of pages. So that's their technology for that, it's called views. Now they also have users, files and comments, so kind of standard stuff like we have as far as like user management, there's, you know, as entities inside the site that you can refer to, but they're not full-fledged content types. Now Plone, when you install it out of the box, we also have done a great focus on usability and redesigning from Plone 4 to Plone 5. I don't have to go too deep into this because I hope you people know what this thing looks like. We've been talking about it a lot, but what I really wanted to show off was I still like the fact that we have a great set of built-in content types that you can use right out of the box. I think this helps guide new users toward managing content right away. The old argument of the product versus the framework, Plone is nice out of the box because you can use it right away. Someone can install it and start managing content. They don't have to do a lot of configuration so they don't have to set up their own content types. Drupal appears to be more of a, you install it and then you better start doing some configuration to it first before you really want to start using it. You want to set up your information architecture, you want to set up your content types and things like that. We have a great set of out-of-the-box content types. We also have users and groups management, discussion items. Those do exist as well. Now, when you get into products and modules, this, Plone 5, I don't think we went forward in this direction with products and modules. Right now, I even kind of dressed this up by pointing to the new beta of PyPy. But basically, we're sending new people directly to PyPy without much guidance about how to find add-ons. It's very hard to find a Plone 5 theme in PyPy. You basically have to know how to run the checkboxes and even then, the results are iffy because you're relying on people having filled out the classifiers correctly in their setup.py. I don't think this is a good situation for new people coming to the community because it's hard to navigate. I mean, we kind of got some suggested add-ons on the main page for our site, for Plone.org. But I think we can do a better job here. Now of the add-ons that are in PyPy, yes. Oh, good. I'm going to be excited when this is what PyPy looks like when you go to it. It's a current one, I think, 1998 called, month their site back. They do a great job. I mean, they're working really hard and keeping that thing very, very stable for us. But yeah, I'm looking forward to this new, this is pyramid-based, the new PyPy, which is pretty awesome. But the Plone add-ons inside PyPy, there's about 2,800 of them listed. But once you filter down just for Plone 5, you can see right there, we've got 232. Probably half of those are Plone itself. So there's not a lot of add-on packages that are compatible with Plone 5 yet, which is a little bit disappointing. So not a lot of it ready to go yet. Now Drupal, on the other hand, this, and we're talking about Drupal 8. So Drupal has over 35,000 modules available in their download and extend kind of their add-ons section. Now the issue is, no, I was going to say this is definitely, again, a double-edged sword. I think because Drupal has typically shipped with less core functionality out of the box, they expected most people to build modules to extend it to get to the level of a Plone. I mean, probably in Drupal 7 compared to Plone 4, you had to add in about 35 or more modules into Drupal just to get to kind of feature parity with what Plone gives you out of the box. And once you've added those 35 modules in, who's to say they're going to stay maintained, upgraded, and there's a lot of lock-in that can happen. Now when you do filter down by only Drupal 8, you're down to about 1700 packages. So they have the same, you're going to see a lot of parallels between our communities. We started nearly the same time. We released Plone 5 and Drupal 8 about nearly exactly the same time. And the adoption rates have been about the same kind of path. I'll show that later and I've got a graph showing kind of adoption of Drupal 8. It's been slow. And the developers have been slow to update their add-ons for Drupal 8 as well, which is, like I said, a problem, I think. Yeah, so there's not really 35,000 modules available. There's far, far, far fewer than that. But here is that one cool feature I think we should add into Plone, which is this, if you want to install a new module, you just come in here and paste in the URL to the Drupal.org site. It goes and grabs it. I would hope they're doing some kind of code signing, signature checking, hash stuff. Oh, boy. Well, we should do it like that. Because it is a cool feature for newbies. If someone's coming to the site and they want to be like, oh, I really want to try Plone Form, Jen. Now, how do I get it? Oh, well, you're supposed to add it into your build-out or your setup.py and you go rerun this thing and then that's how you get this add-on. This is way, way nicer from a new person's perspective, not understanding the whole ecosystem of how you add modules and add-ons into your site. Which Plone Form, Jen, is a great add-on. I always recommend it highly. And they've addressed this a bit with the Drupal 8 stuff. I'll talk about that later when we get to the security slides. But the content editing story between the two sites, Drupal 8 uses a CK editor, which is available as an add-on for Plone. But that's now the default out-of-the-box editing experience. And obviously, Plone is using TinyMCE4, which is quite nice. Now, the big difference is how they lay out their content. So we'll talk a bit about, you know, okay, so yeah, here's Plone4 with our nice, you know, TinyMCE4. I'm pretty excited we got that finally upgraded. And now I'll talk a little bit about editing content. One of the nice things about editing content is this is probably our super secret sauce right here, is the fact that our workflows are so extendable, so tied into security, there's just a lot of benefit to being able to track the state of items and have multiple states and have trans-multiple kinds of transitions and all the things we can do with our workflow system just kicks us not out of what you can do in Drupal. So in Drupal, here's the CK editor. You see it's got kind of a very stripped-down toolbar there. You can actually change what kind of toolbar you get right from the edit box. If you're more of a power user of CK editor, you can get more buttons available to you or you can go to plain text. And all the button sets are editable through their control panel, kind of like ours are for a TinyMCE. So again, very, very similar. Now if you want to brace yourselves for their whopping workflow set up here, this is pretty much the workflow. Save and publish or save as unpublished. It's on or off. It's not really a concept of moving things through states in Drupal. So there's kind of the biggest area of departure and differences here is that their workflow system is on or off. So it's great for simple use cases where people aren't trying to do like a vacation leave forms through their internet where they want to be able to have approval processes going on there. They're not really trying to model business processes here. They're just basically saying either the page is visible or the page is not visible. And we'll talk again a little more about that in the security section. But they do have some workflow add-ons. They've not been maintained, unfortunately. The last update workflow in GHA was in 2014. There's a rules add-on that apparently replaces it, but I don't think it's still in beta for Drupal 8 at this moment. So there's not really that many great options even to go to a more robust state machine type workflow for us. So when you want to customize your product and you want to go hire some people to actually do some development for you, what is that going to cost typically in each community? So I asked, we kind of looked at this, the typical going rates for independent contractors in the Plone communities anywhere between $50 and $100 an hour, the typical consulting companies charge between like $185 an hour. That's kind of the going rates for consulting work. In Drupal, there doesn't seem to be much of a distinction between freelancers and shops. There's not like, there's a couple big shops, but really it's about the same pricing. It's about $50 to $200 an hour for Drupal resources. Because some of these pretty high profile sites have got some dollars. That's why they kind of got that top end. But there's a huge amount of the low end, like $50 an hour, you know, Drupal developers that are out there. Now when it comes to customizing Plone, you basically got build out. You want to add on packages for your site if you want to make a custom theme or content type. We typically make a custom policy package that was placed where you may put your workflow policies. You may save out generic setup, exports of your settings, things like that is what you'd put into these kinds of packages. What's nice with the custom development now in Plone 5, and this was in Plone 4. 2 was the dexterity custom content types being able to do this stuff through the web. This gets us much more in line with the Drupal 8 or the Drupal 7 experience of creating their content types through the web as well. So those people are going to be a lot more comfortable now coming over to Plone and being able to do, basically, click, click, click, build some content types and be able to be productive inside of Plone. And what's also nice, we can round, they have the same feature where they can basically create their content types through the web and then export them out as a YAML to the file system. I love the fact that we can take these and export these out as XML and actually use them inside of our content types package and then redistribute that as an add-on if you found you've made something that was generically interesting to other groups. Now customizing Drupal 8 has actually gotten a little more sophisticated or complicated depending on who you ask in the Drupal community. There's actually been a fork of Drupal at Drupal 7 called Backdrop because this, Drupal 8 is a major departure from the, what was the typical way of developing core Drupal and making new Drupal add-ons. They moved to this new symphony, basically web application framework. They ripped out the whole bottom end and replaced it with a new, basically a component architecture system. As I was talking to my friend Doug about symphony and customizing Drupal, he is not a fan. He's like, you have to have a computer science degree anymore to be able to customize things. You have to dig down into like five different directories and edit ten different files to be able to add something to Drupal. I go, you sound like you're talking about a clone. You would be very comfortable as a clone developer looking at the symphony framework. Basically what they've done is mimicked a lot of things we gained in clone 2.5. So when we incorporated Drupal 3 into clone, we started getting the component architecture stuff, adapters and views and all those kinds of nice things that we got in clone 2.5. They just got in Drupal 8. They can export their settings now out to the file system like kind of generic setup. So again, I think we would be fairly comfortable with this new set of tools, but I think it's been hampering some of the developer adoption of Drupal 8 because they did such a radical change on the back end framework. Now when you're customizing Drupal, they do have a lot of different ways to do it. This is one area where they've got a lot of flexibility. There's some cool command line tools such as the Drush shell. So they've got this thing called Drush make file. That's like the Drupal shell tool. So you can actually, you do the templating and boilerplate code kind of like we do with Mr. Bob or what we used to with Templar or Zope Scale. Same thing for Drupal console. They finally in PHP have a way of basically pip installing and pinning versions and that's called conductor. So if you start doing any Drupal, you want to make sure you get familiar with conductor because that allows you to pin versions so you don't get, let's just say, a bad experience when you go to like run the upgrade and all of a sudden you've got new versions of packages. But they do rely still on a heavy through the web experience. The typical integrator or Drupal developer is going to start through the web. They're going to create their information architecture and their content types first there and then export them out to the file system so they can move them into their other various environments. Here's the, this is their custom content type. Basically cool on our dexterity is that you can create, I've created a, what is this, a recipe. So this is a recipe content type. You just basically click add field, add field, add field. They've got different kinds of fields. For example, text, long format of a summary or standard text. But it's basically a whole set of like different fields like we have for dexterity for building the content types. And then it gets exported out of XAML to the file system. Oh, so another nice thing we kind of talked about when we get into a little bit of hosting. Getting started with Drupal actually is made pretty easy if you're using one of the new hosting providers that is available in the Drupal community. One of the example ones I'll talk about is called Pantheon. And you basically go sign up for an account, tell them you want a new Drupal 8 instance. It spins up a dev testing and production instance for you simultaneously and gives you a git repository that you just clone back to your machine. And as you make changes and push, you pick which environment you're going to, you know, migrate that or push that code to. So it really makes it like, they've got kind of best practices baked in with a system like that. So if I was going to start with something with Drupal on a project, I would use one of these services because it really helps guide you through the development process of customizing Drupal and making sure you're doing it in a well-tracked way. We'll talk about theming now, unless you guys have any questions about customizations. So in clone, this is an area where I'm really happy is that I think Diazo has really improved our customization story and theming story tremendously for people who are new to clone. No longer do you have to learn, I think I had to write down the list because it was so big, ZPT, ZCML, Python code, Python scripts, component architecture adapters, browser views, like there's this, you know, almost endless list of Z words you have to learn to be able to do theming in clone previously to clone 5 and clone app theming in clone 4. So I think we've made a great stride here that if you consider a designer or a web engineer down and have them know HTML, CSS, JavaScript, and then where is Annette? Oh, if you can be an XSLT ninja like Annette, oh my gosh, you can do amazing things literally without having to leave your browser window. So I was really impressed with the presentation this morning about what you guys have been doing with Diazo rules. And it doesn't seem like that unapproachable. That's probably the biggest technology you got to learn is the Diazo rules, not too big a deal. So, you know, screenshot of like our clone app templating. It gives you ability to do through the web, create your rules, create your templates, do all this customization. Oh, yeah. And the fact that we now with the mock up inside clone 5, it's really easy to bring in fancy pants JavaScript libraries and do cool stuff with React or Moment or whatever the things you want to like try out. It's way, way easier to do that now than it was before. Drupal theming, it's not like what we have known in clone 5. It's more like what we had in clone 4 and clone 3. You basically have this concept of main base themes and you typically when you're making a theme, you make a sub theme and just override the pieces from the base theme that you want to change. It's interesting that the templating language they use now in Drupal 8 has changed. It used to be PHP templates. So you actually wrote like real PHP code in your templates, which was a source of a lot of the security vulnerabilities that came out with Drupal prior to 8. Twig is a templating language that we will all be very familiar with because it was written by our very own Armin Ronecker. So it looks just like Jynja 2 or Django templates and it's very nice and this has actually led to a tremendous improvement in the security of Drupal 8. So again, as clone developers, we would be probably pretty at home or Python developers in general. We would be pretty at home with the Twig templating system, but it's very similar to how skinning used to work in clone where you would override like base view or whatever document view, whatever kind of thing you wanted to customize. You do the same kind of thing with Drupal 8. You basically override in a sub theme the bits and pieces you want to do to customize your look and feel. So it's still the same thing, HTML, JavaScript, CSS. And in this Twig, it comes as part of the Symphony 2 framework that they moved to with Drupal 8. Yeah. No, so that's another big difference. They don't have a through the web editing experience for Drupal. That's another big win, I think, on the clone side is the through the web templating. Right now, if you want to customize and modify these themes or create your own sub themes, you do have to do it from the file system. Yeah. Yeah. On top of this, yeah. Yeah, so exactly. For people making their own modules for Drupal, they will provide what are called hooks. If you want to add something into a menu someplace, you make your own hook and write your own code in there and it injects it into the whatever menu you put in there. But like you said, one developer's menu hook is going to look different than another developer's menu hook and it may be difficult to... Yeah. Right. That's where the views come in. So they have layouts with these views, they put blocks wherever they want to put them and those are also hooks so that the module developers will make their own blocks and they have different code styles for all those as well. When you install Drupal, and actually when you're using Drupal, this is another area where we differ quite a bit is there's typically going to be a default theme and that's the kind of front end that most web visitors are going to see for your site. But they also install and they kind of can't see it down here, but there's an administration theme. So you typically may have one single base theme and two sub themes, one strictly for like editing, like the use the content contributor or content editor experience, and one which is for the web visitors who are coming into the site. So you really don't get that full in context editing like we do with Plone that as I'm editing the page, I still see a lot of the page around as well. So that's interesting, they've got this administration theme default theme going back and forth. So you'll flip back and forth between these versions of the site. This is the administration theme and you can see the back to site button up there in the left hand corner, that gets you back into the retail version of the site itself. So this is kind of just showing the theme registry. They use YAML to set up kind of a settings file, that's how they hook up things inside of your modules when you create an add-on for Drupal. And typically your standard theme package is going to have a templates directory. Actually in Drupal 8 you have to put your templates in the templates directory or it won't find them correctly, it used to be you could name whatever you wanted. But they have the YAML files that describe the add-on of the module for your theme and then all the config and CSS go all through in there. Now this is the views part of this, I believe I mean the add. So you set up your information architecture. Yeah. Like oh, you mean through the content editing experience, right? Okay. Yeah, that's something I meant in dive into too deep. Oh right, because they give a little pencil like when you kind of hover over sections of the site. Now we turned that off and clone. Because there was a pain in the butt. But yeah, they do, so when it gets down to like blocks, you'll see here there's, like kind of like we have viewlets, everyone here familiar with like the view system inside of clone. There's all those little spots throughout the pages where you can inject like your own snippets of code or part of the view. They do theirs through the web with this section called blocks. And so this is where you can actually say I want to put the site branding into various areas, the main navigation and you configure what pieces go where. And it's basically equivalent of us configuring our viewlets, you know, throwing the nav into the header, viewlet, et cetera. That's their equivalent for, and they do it all through the web. And which we can kind of too with the at-manage viewlets, but we don't typically show that to normal human beings because it's a little tricky. Now upgrading and migrations. This again is an area where we will differ, but Drupal 8 is working on this. One nice thing about clone is you could take a clone 1.0 site and you could migrate it step by step by step all the way up to clone 5 and actually have a usable site afterwards. Plone comes with a great set of documentation at every release for all the things you typically need to do between versions if you want to make sure your add-on code is ready for the next version of Plone. Now if you want to migrate code in and out of Plone, we've got through the community, not built in, but through the community there is, you know, like transmogrifier pipelines for example, so you can actually export and then re, you know, kind of dump and reload if you want to start fresh with your site. Depending on the age of the site and the number of custom add-ons you'd ever put into your site, I will recommend the dump and reload version of it versus the try and walk it all the way through from clone 1 to clone 5. But if you haven't had a lot of add-ons or it's a very clean site, it's very, very feasible to go right from, you know, whatever version of Plone straight up through to clone 5. Now again, add-on products will be the real sticking point for you. If you're on add-on products that haven't updated their code for clone 5, you're stuck until they do or you remove it and put some kind of alternate technology in there. A big advantage of Plone over Drupal with our given our kind of large, robust feature set, I typically think we don't have as many add-ons or modules installed into our sites which makes them a little more able to migrate easier. The Drupal site, so up until Drupal 8, each previous version of Drupal was basically a fork of the previous Drupal and started from scratch, like scorched earth almost. So migrating from one version of Drupal to the next version of Drupal was typically not a priority for them. They kind of expected you to dump your content out, upgrade the newest version of Drupal and redo everything from scratch if you're going to actually migrate to a new version of Drupal. It's changing with Drupal 8. They are stabilizing their APIs, they're trying to make them more backward compatible, so if you're going from 8 to 8.1 to 8.2 or to 9, the idea being it would be possible to actually migrate your content in place. But that's not been historically the case for much of Drupal. But then you have the same problem with add-on products but a much greater scale because you probably have a lot more modules installed into your Drupal site for that. Yeah, they also have the ability for you to do migrations in and out of Drupal. So people would typically do a, what's called a Drupal to Drupal migration when they're going from like version 5 to 6, 6 to 7, et cetera, which dumps it out to the file system and then you reload it back in as part of the Drupal migration. So hosting for the two kinds of technologies. The clone hosting can be done on lots of different kinds of cloud services. What I typically find with clone hosting though is it's a lot of do-it-yourself. You need to do set up the machines, install the dependencies. There aren't a lot of these push, but there aren't hardly any push button ways of installing and hosting a clone out there other than say like the Heroku button. But has anyone run the Heroku at scale with any kind of a large site with large traffic? Yeah, I haven't either, so I'd be interested to know how well that works because that's a really compelling story for getting people started with clone for sure. But if you have an even the most modest site, I would recommend people running Xeo using two cores on a VM someplace, maybe about a gigabyte of RAM because it all varies based on the number of add-ons you've got in your site, the amount of content you've got in your site, but just a general kind of rule of thumb. I don't typically go much smaller than that. I've got some pricing in here as well. So for example, something a digital ocean will cost you about $20 a month. EC2 I'd recommend, no, a lot smaller than like a T2 medium for reasonable sites, that's about $37 a month. I was surprised Azure was so expensive. Is anyone hosting on Azure currently? That's probably why. It's a little pricey. And then obviously I have to, you know, prep my own services a little bit here, but 6-feet up does offer kind of entry-level hosting of clone sites at $50 a month as well. Yeah, actually I didn't put Google Compute in here. You know why? Because no one's using it. Yeah. No, I actually had a coffee with a guy from Gartner and we were talking about the various cloud platforms and basically the enterprise is scared to death of Google Compute because of the way Google can willy-nilly kill off any platform. So at any moment you could be at the victim of Google's choices. And then we also, like I said, the Heroku button I think is quite interesting. For free I think you can get up to about 200 pages of content in your site before you need to start paying for the Postgres dyno because I think you get like down 10,000 rows for free in the Postgres database offered there. Similar situation? Yeah. Oh, wow. True, yeah, if you've just got kind of a small brochure where site, that will work. Like I said, this has been a three-month process. That price probably got put in there a month and a half ago. And for Drupal it's pretty similar as far as like the size of kind of horsepower you need to host a reasonably sized Drupal site with comparable traffic and amount of content. The difference here though is you can have a DIY, DIY, do-it-yourself Drupal deployment, but there's so many great services out there like this Pantheon platform SH where they just set up multiple instances for you. They actually have push button. I want to bring my production data back to my test instance. I want to migrate this code changes up to the new instance. A lot of them will even go so far as if your code is with them in their repository and there's a new version of Drupal out there, some are already set up to basically splat the update of Drupal automatically onto your thing and you just need to go push a button to approve that you want that released. So they really eased out, they eased the experience of deploying Drupal. You can host with thequia.com, but if you have to ask, it's probably too expensive for you. So it is quite pricey from what I know. Now another nice thing these other Pantheon and thequia and platform SH give you is a lot of them also include services like New Relic as part of that plan. For $25 a month, you'll get Drupal hosting with New Relic stats. If anyone's using New Relic, it's a pricey service on its own and it gives you a wealth of information about what's going on behind the scenes inside your site. So that's also pretty cool. So web performance, both systems have similar techniques for accelerating. I mean, if you guys are already familiar with using varnish and HAProxy and MIMCached for auth and sessions, the two systems almost look identical when you go look at their performance pages about how to actually accelerate pages. Plone though out of the box has some advantages. With our Plone app caching control panel, we have the ability through the web to kind of adjust and do some settings where how long you want to cache something. Basically, you can kind of customize the caching experience through the web. Plone also allows us to purge, at least a very minimalistic purge request for at least the page and maybe the container it's in. The Drupal out of the box experience doesn't have that. What's also nice with Plone is you can, with a very small extension, customize that purging behavior. So if you want to make sure the front page gets purged, that item happens to be showing on the front page as well, you can do that really easily with Plone. The Drupal 8, they don't have the purge capability out of the box. There's an add-on that you would have to put into your site to be able to get purging working correctly. Now one thing that is really cool, the Drupal 8, that we don't have is the new big pipe, Facebook big pipe. Have you guys heard of big pipe yet? That is a really cool technology. So if you guys have gone to, who here is on Facebook? Yeah, okay, I'm going to just raise my hand. If you go to Facebook and you've ever noticed that when you first launch the page, you see like gray placeholders that look like the posts on your wall, and then all of a sudden they kind of filter in with like the real ones, that's big pipe. Basically they consolidate the non-personalized version of your page into a very few number of requests, get that to you quickly, and then they stream in the dynamic bits behind the scenes. Drupal 8.1 ships with this out of the box, which again, that's a pretty fantastic performance feature and something maybe we should even look into in the clone community because it helps with like, I was talking yesterday about the Google AMP, yeah, exactly. Same kind of thing to help accelerate and I think that's going to be really important for mobile devices on varying degrees of nice connectivity. So that's one area where I think Drupal has added some really nice customizations for the performance. I'm sure this is the slide everyone's been waiting to hear about, right? It's security. Each community, clone and Drupal has a dedicated security team. How many people are in our security team? I couldn't find a number. Steve, you know? Or Nathan? Where's Nathan on here? I guess it's like five, six people are kind of our security team. They're very busy. They do great work. But it's that secret, right? Drupal's security team is 40 dedicated people. Some of them paid by their employers, at least maybe a half time or some percentage of their work time is actually dedicated to Drupal security. They obviously have a lot to do as we've seen in the past. But what's nice, we've clone has only had reports of a very few sites being hacked and those sites basically weren't patched within six months of the release date of the patch. So it's very rare that clone sites are actually going to be exploited, especially as the people are being vigilant about applying their patches. So we have, you know, the zero day claim we make, I think it's pretty important for people who care about security. I went to that exact page and I only saw like two people because I wasn't logged in. Okay, so it's all secret. You guys are very secretive with your security team membership. Oh, you know, I got these slides slightly out of order. So that's kind of when it comes to like security teams. One of the nice things about Zope and clone is that we were built on Zope. I think that's a big benefit for us when it comes to security. We've basically been able to leverage that built-in roles and permission system and we've augmented it with our own users and groups where we have a really fine grained experience for being able to customize who can see what when and where. And when you combine that with our awesome workflow tools, you really get this tight experience when it comes to ensuring people can't see things when they're not supposed to see them or making sure pages get published or kind of the whole experience is really nice. And I like that out of the box, we have the built-in roles of like contributor, editor, reader, reviewer, site manager and manager. When we look at what Drupal does, which we will in a second, you'll see it's a very different experience. We also have, you know, very easy check boxes here and what these should, for most people who don't know, these security settings check boxes that are in the through the clone experience actually manipulate that, well, they actually manipulate this, which is something I tell people never to touch because this is not meant for any human to ever touch. If you were to, this page is long, now if you guys have seen this, this is the security tab at the root of your clone site. And again, if anyone ever learns anything from me, it should be to never touch the screen under any circumstances. Let clone do it through the clone because that's what it's doing for you here. But this is also part of our power, the fact that we get down to such a granular level with what people can see and do and you can think of all these permissions in clone is like little locks or little gates that kind of unlock our show for functionality through the site. Drupal doesn't have nearly this robust of a system. This is the equivalent of their security tab. This is out of the box. You can see that there's three roles, two of which are basically virtual roles like we have, authenticated and anonymous. If you want to do more than this, it's up to you to kind of design your security scheme by adding in your own roles and then again checking the boxes that's a long, it's a long page, not as long as ours, but it's a long page of managing check boxes. That's how they do their roles and security inside of the Drupal system. So again, I think it's an area where we really excelled because we're built on top of a system that thought about this first. I think Zope was made with security in mind. Yeah, so now they do in Drupal 8. So all the Drupal 8 settings can all be exportable into YAML just like we have a generic setup exporter. They have a similar thing here as well. So they can move those from environment to environment, for example. Yeah. Yeah. Right. Now the individual piece of content is either published or not published. Not that I could see out of the box. We didn't dive too terribly deep into it, but we have got an amazing system that comes to local roles. If you haven't checked out dynamic local roles with Bjorg local role, that is amazing. The fact that we can customize based on any fact or data inside the system or even external roles of the system. Yeah. Right. Right. Right. There is going to be based on the type of content. Certain users may have, like you said, access to create this kind of content versus that kind of content, but not where they put the content inside the site. That is handled by their view system. Right. This is about the only other security settings I could dig up in the Drupal site was kind of the registration and cancellation. So that was kind of the equivalent of our security tab inside of Plone. Now, when it comes to security track records, I really only wanted to compare Plone 5 and Drupal 8. They are not too far off from each other. When comparing exploits, numbers really don't matter too much in security because it is about track records, about severity. There are so many different factors to take into consideration. So I wouldn't look at these numbers and be like, oh, well, Drupal 8 is way less secure than Plone. They have got a very vigilant security team. They've changed up their framework quite a bit to address a lot of these kind of security issues. And they're right on par with, I think, you know, the improvements that are showing here in the numbers. The reason these numbers are so low is because there is such low adoption of Drupal 8. This graph here is showing Drupal core usage. And so you see here is 2016. Here is January 2016. This line here at the very bottom is Drupal 8. Yeah. That's Drupal 8. The big ones up here are Drupal 7 and 6. Yeah, 7 and 6. That's total. Oh, that's total, yeah. But this is Drupal 7 right here. So Drupal 7 is still hugely popular out there. Now when I say hugely popular, it's really not that popular. If you look down here, this is WordPress usage. WordPress accounts for about 26.4% of all CMS sites out there. Drupal is about 2.2. So in terms of scale, Drupal is dwarfed by WordPress, kind of much the same way we're dwarfed by Drupal. So you can see we're kind of in the long tail of CMS usage out there. So the reason we've not seen a lot of security issues with Drupal 8 is definitely because I think the adoption rates for Drupal 8. The numbers here, the total number there is 1.2 million sites reporting back for Drupal. Because of last week, there were 125,000 Drupal 8 sites out there. There was only 41,000 January 1st. So they're getting adoption, but it's still not taking off like crazy. I wish we had this for Plone. We don't have any way of, we don't report back to home about our versions. I think we should, because they're going to be interesting to have those kind of same numbers for us. All right, so intellectual property and community. I love this because we are an awesome community. We've been around since 2001, but Plone 5 got released in September. We created our foundation in 2004. So I think we were ahead of the game when it came to protecting our product and our IP and in our community. And this just, you know, 895 contributors have put code into Plone at some point in time along the way, which I think is also awesome. But then I heard about the Drupal numbers. They've had over 3,000 committers into Drupal. This says 150. I got this off of Olo. It's not accurate. They actually have a Drupal commit tracking site out there that shows you for this version of Drupal, how many people committed, what their names were, and what they committed. It's quite interesting. Very similar history. First Drupal released in 2001. Drupal 8 was released in 2015. They started the Drupal Association in 2009. Now the Drupal Association isn't like our Plone Foundation necessarily. They are mostly there to raise money and run the events like the Drupal cons and things like that. So they do a lot of promotion. But they are not the IP holder or trademark holder for Drupal. That is still solely controlled by Drees. And this is the copyright statement right from the code. I don't know how this scales when you've got 3,000 contributors if they all own their original like work that's inside the code. So it seems to be run by best good neighbor policy so far. They've not run into any kind of problems. This part scares me right here because if they want to change their license, what do they do? How do they go about this? This is just, it would be an insurmountable task if they ever wanted to do something like changing their license, for example. Then Drupal 8 has also spawned a whole new fork of Drupal off of Drupal 7 called Backdrop. So there's a new CMS out there for the people who are, you know, staunch. I like doing my Drupal 7 way of doing things. Actually Doug, the guy who helped me with this presentation, is a big fan of Backdrop as well. He kind of falls in line. You saw the graph, there's a ton of Drupal 7 sites out there still and people want that to kind of continue. So they're, you know, maintaining, enhancing. They're backporting some of the features of Drupal 8 when they can into Backdrop. But just be aware that if you are doing Drupal, there is a fork out there that is gaining some traction and it's popularity. Oh, so as far as community, I forgot to mention, you know, so for Plone Conference, here we are, this is us. But we also have lots of sprints, symposiums, lots of events where we get together. By comparison, DrupalCon this year in New Orleans had over 3,000 people. Their regional events are getting about 1,000 people per regional event right now. But they started their first Con in 2005 with 50 to 100 people. So kind of similar, similar startings to us, similar size. They have the DrupalCon, the DrupalCamps, lots of meetups around the globe. So there's a big, huge community of people doing Drupal out there. Really nice, really nice, powerful thing. So in summary, I think we're seeing a lot of convergence of features between Drupal and Plone. A lot of the through-the-web content type creation that Drupal has had for quite some time, we're finally getting, you know, comfortable with and it's nice. They've moved, Drupal Ace moved into a component style architecture. So we would be very comfortable if we had to do work on a Drupal site. We would know how to go look up all the crazy abstractions thanks to Martinus Belli. Plone has always had collections. Drupal's now added in views to their core. So if you're familiar with how collections work and views would be really, really familiar to you if you went over to the Drupal site of things. And again, Plone, if we can get Mosaic, I think we talked about that for the roadmap, having Mosaic put into the core Plone, I think would be a big boost for us in terms of feature parity with the Drupal folks because that would give us that ability to customize layouts and blocks on the pages. I will just say it, we absolutely kill it when it comes to workflows. We, that's one of our biggest strengths and also the through-the-web theming with Plone app theming. It also gives us a leg up over the Drupal community. The security standpoint for Drupal 8 is definitely looking much more optimistic than it used to. We get more adoption and more people actually using it and road testing against higher profile sites. Unfortunately, Plone hosting is still DIY. The Drupal hosting options was really attractive. They've always kind of had push button installers and various dashboards, but I think that the fact that they've got these enterprise grade deployment options is a weak point for, for Plone because we don't have something that is comparable. But in the end of the day, if you had to choose between the two, it really comes down to your needs. If you are doing a large internet collaboration site, various kinds of security workflow, you need to have something like Plone. Okay. For Drupal, it's a workbench. But again, I was trying to compare core to core features. So there's a lot of things you can add into Drupal. Yeah, it's not core. They definitely don't have that. But if you are actually don't have a very technical staff, you need to onboard people very quickly to get spun up on a CMS, Drupal is actually very easy to get going with. I think they've made a great amount of effort in their documentation, the install process, the getting going process, the whole through the web process, and then these hosting providers giving you that ease of use between the environments. It's very easy to get a fairly non-technical staff spun up and starting to use Drupal. I don't know what their experience will be later when they're trying to do more complex things, but I think the ease of use initially has definitely been a benefit for Drupal. So I want to thank you guys all for hanging with me. I know I went a little over, sorry, but don't forget to do your survey so I can get feedback so we can improve this presentation and take it other places. Oh, shoot. It should be not that. If you've used it earlier today, you should have it in your cache. So thank you all for coming.
civil comparison of Plone vs. Drupal. We really stuff. Some of the more popular Drupal out-of-the-box experience. It's just kind of There's some cool command line tools such as the customization story and theming story tricky. Now upgrading and migrations. This again So migrating from one version of Drupal to the migration. So hosting for the two kinds of Drupal community. The security standpoint for