 I think we're time to get started here, as everybody doing today. I need some nods or some thumbs up or something to get some feedback here. Okay, everybody's enjoying the conference so far? Well, I'm certainly enjoying the conference. My name's Jared Smith, like I said earlier in my lightning talk. Happy to be here. This is my second time in India. And I absolutely love to come and visit your country and taste the good food and share with friends and family I have here. It's always a treat for me to be able to visit. So, I want to talk today a little bit about a content management system on the web called Drupal. Anybody here used Drupal before or heard of Drupal? A few people? How many people know what a content management system is? It's a web-based application for being able to add different types of web content. Maybe that's blog posts, maybe that's articles, maybe that's information about places you visited or places you want to visit or a place to put pictures to show your friends, those sorts of things. And one of the more popular content management systems out there is called Drupal. So, I want to talk a little bit about Drupal and specifically the new version of Drupal that's going to come out later this year, version 8. A little bit about myself, I have the best job in the world. I work for a web hosting company called Bluehost and they pay me to go around and speak at conferences and help open source communities and that sort of thing. So, they actually pay me to come and have fun and speak to you. Best job in the world, like I said. Really, my job is somewhat of a community support manager or a community support officer. My job is to go out and help open source communities. Now, if you were in here for my lightning talk, you probably know that I kind of like photography and it's been a passion of mine. And in the photography community, there's a saying about photographers and they say that amateur photographers worry about their gear. They worry about what kind of a camera do I have and should I buy this camera or that camera? They say that professional photographers worry about money. Like what's my next photography gig that I'm going to do to make some money? Am I going to go shoot a wedding or am I going to shoot a concert? What am I going to do to get my next paycheck? Master photographers worry about light. They don't worry about the gear. They don't worry about the money. They just focus on the light. And so my hope with my talk today here is to hopefully shine a little bit of light on the subject of content management systems. And a little bit of light on what's happening in Drupal and go on from there. I want to talk about for a moment about measuring how far Drupal has come and how far Drupal still has to go. Right now, Drupal is the number two content management system in the world as far as open source content management systems go. Slightly behind WordPress, but the difference between WordPress site typically and a Drupal site is that typically a WordPress site has a smaller number of users, smaller number of administrators. And so WordPress tends to get used on the smaller sites. Drupal on the other hand, especially over the last year or two is really focused on bigger sites, larger number of concurrent users. A lot of government sites use Drupal. In the United States, the White House site, WhiteHouse.gov runs on Drupal. A lot of the other government sites run on Drupal, which has been great for the open source communities to see the government finally embracing all this hard work that we've been putting into open source. So with Drupal, up until over the past 10, 12 years, however, Drupal's been along. We've made a number of releases. Drupal 7 came out about 2012, if I remember correctly. And it's been, it was a good release, but Drupal 8 is really the one we've been working on for the past several years trying to get it ready for release. We're in pretty good shape right now. I'm guessing that it'll probably be released later this year. We're in the beta phase of the release cycle. We do a bunch of development and we have a bunch of work that gets done, and then we start releasing betas. And the 11th beta should be out probably early next week, if I had to guess. And then there will probably be, if I had to guess three or four more betas before we're ready to decide, okay, this is really ready to launch. We know when Drupal is ready to launch by the number of what we call critical bugs that have been reported that haven't been fixed yet. Anytime a bug gets reported in the Drupal community, we try to do some triage on that and say, is it critical? Is it important or is it just a nice to fix but is not urgent and doesn't warrant holding up the release of that software. So we're getting close. I think we're somewhere around 20, 21 outstanding bugs that need to get fixed before we launch Drupal 8. That doesn't mean there's only 21 bugs in the software. It just means that there's 21 bugs that absolutely have to get fixed before we'll make the release. I want to talk a little bit about kind of the infrastructure or the scaffolding for Drupal. How many people here have used Drupal again? Raise your hands. A few of you. Was it painful to get started? That's all right. You can admit it. Say yes. Especially in Drupal 6 and Drupal 7, it became more and more complicated to get started with a website in Drupal simply because you kind of had to understand all the different moving pieces. And those moving pieces weren't always in Drupal itself. Sometimes you had to install Drupal and then install a bunch of third-party modules to really get a website that was actually functional. So in Drupal 8, we've tried to focus on fixing that so it's actually easier to get started from the beginning with something that actually works out of the box. Drupal was built, Drupal 8 was specifically built for kind of modern web development standards. Drupal 7 was really built on PHP 4, functional PHP programming. In Drupal 8, we've built on some of the new functionality in the PHP language with object orientation, namespaces, those sorts of things. So everything in Drupal 8 is object-oriented PHP. We've even gone so far as to make it work with PHP 7 even though PHP 7 hasn't been released yet. So it's kind of modern PHP. It's also designed for the modern web. When Drupal 7 was released, we had this assumption that everything is a web page. Well, in the year 2015, not everything is a web page. You might want things rendered as a JSON object or an XML or an RSS feed or some other thing. So Drupal becomes less of just a web content management system as it becomes a content management system that you can push out web pages or you can push out XML objects or JSON objects or RSS feeds or several other types of output. So that's kind of nice. We've also decided that it's not always good to invent everything yourself. There's a lot of great code out there in open source that can be reused. Drupal 7, almost everything was homegrown code that was built specifically for Drupal with the exception of jQuery and a few JavaScript libraries. It was mostly all homegrown code. But Drupal 8, we kind of looked at it and said, what's the best libraries out there that we can be using and not have to reinvent the wheel? So we've gone to taking a bunch of really good open source projects and incorporated those into Drupal. For example, Drupal 8 is built on the symphony framework. Any PHP developers use the symphony framework? One, good. So now that's part of Drupal, working on the core of Drupal so much easier now. It also means that when symphony fixes something, it's automatically fixed in Drupal. If Drupal fixes it, that goes back to the symphony community and we help each other out that way. Another interesting thing about Drupal 8 is the theming and templating library. In Drupal 7, it was a homegrown thing, PHP templates, which were just kind of awful. I love this quote by one of the developers. He says, in Drupal 7, we would hand the developers a gun and tell them to hammer in a nail with it and don't shoot themselves in the process. That's kind of how dangerous the theming level was. Excuse me. In Drupal 8, we've adopted the twig library, which is kind of an industry standard in PHP for doing the templating. We've also tried to build Drupal 8 so that it's built from modern data. So we added a bunch of data types, what are called content types in Drupal. So we have things like references to another object or a date or a link or an e-mail address or a telephone number. Those are all standard objects now in Drupal 8. In Drupal 7, you would have had to go and gun and... Excuse me. In Drupal 7, you would have had to gone and downloaded third-party modules to get that sort of functionality built in. So let's take a break from the slides here for a minute. Let's actually see if I can do a quick demonstration here of what a new installation of Drupal might look like here. So give me just one second to get this set up. Actually, this is just a local machine. Give me just one second here. Trying to get this to see my local machine here. It's supposed to be on the local machine so it shouldn't require the internet. Let's try one other thing. Okay, here we go. Okay, so this is what a brand-new installation of Drupal would look like after it's installed, but I'm going to go ahead and blow away my settings and go ahead and do an installation from scratch here. Okay, let's try this again. So one of the first things you'll notice when you go to install Drupal is that in the old versions of Drupal, if you wanted to install in a different language other than English, you had to install it in English and then add that other language and then switch over to the new language. With Drupal 8, we've added multi-lingual installation right from the beginning so you can choose your language right from this drop-down and if you want to, pick another language to install it. If we wanted to do... We want to do German, for example. You could pick that from the drop-down and do the rest of the installation in German. Now, I don't speak German, so that would be kind of difficult for me. We'll go ahead and do this in English, but know that what that would do is it would look on the local system and see if it had all the translations for that other language. If it doesn't, it will automatically try to connect to the Internet, download the latest translations, install those, and then go through the rest of the installation process. The next thing it's going to do in the installation here is ask us which type of installation profile do we want. The two default ones are standard or minimal. You can add your own installation types. In this case, we just want to take the standard. Next, it's going to ask us for information about our database, so I'm going to put the database name is installdemo. Hope that's what I called it. My username is Drupal. I have a really secret password. And, of course, couldn't connect to the database, so I got to check the database here and see what I called it. I called it installtest. All false. Drupal password. Okay, now it's connecting to the database. Now it's installing the different modules that are needed for Drupal. Again, if you've used Drupal before, the installation under Drupal 7 took a while. We've really tried to streamline the installation, make it go much faster in Drupal 8. Okay, it's about a third of the way done. We'll give it just one more second and then it'll be done. What you may notice as it's going through the installation is it's going through the different modules that are part of the core of Drupal and installing each one. There's about 39 core modules. So it's going through each of those and installing those and setting up the database for us. We're on 35 of 39. Almost done. And that's just wrapping up. And we're done. That's all there is to it. It's installed and ready to go. It brings up this page of information where we give our website a name, we give it an email address, an admin username and password, and then we're ready to go. I'm going to call this India 2115. I'll give it an email address. Put in my username for the administrator. Give it a good password. I can also set a default country. So let's set this to India. Put a time zone close enough. We can tell whether to check for updates automatically. And also if it checks for updates and sees that there's an update out there to send you an email to remind you, hey, you need to update your system. There may be some security patches. Since it's just running on my local machine here, I'm going to uncheck that. And there we have a Drupal 8 site and it's ready to go. So here's what the site looks like by default. Nothing great there. No content there that it's ready for us to start adding content. Let's switch back to the slides for a moment here. So one of the things we focused on in Drupal 8 was to make the end user experience, the experience of the author or the editor or the people who are actually building the content in the system to make it much better. So we focused on things like adding a good editor right in the interface itself. So we have a WYSIWYG editor built right in so you don't have to add that as a third-party module right from the beginning. We also made it so that you could edit titles and content directly without having to go in and manually edit every single piece of content. And we also added some better block management. So let me just show off a couple of those things here quickly. So we'll jump back to our demo here. And again, I apologize, I kind of have to look over my shoulder to do this. But I'm going to go ahead and log in as the administrator here. And one of the first things you'll notice is that we have this nice toolbar across the top with content, structure, appearance, extend, configuration, people, reports. Which makes it really nice to be able to jump into your administration right from a nice little toolbar. You can also move that toolbar over on the side if you'd rather have it as a sidebar rather than on the top there. We'll leave it at the top for now. But if we go into content and we want to add some new content, let's just say we want to add a quick article. So now we give it a title. Welcome to FUDCon. Give a quick body. This is a test. We can give this some tags. And we can even add an image. So I'll add that image that I used in my lightning talk. And there we go. Oh, it's saying I have to add some alternative text for sight impaired people. Again, it encourages you to do the right thing with accessibility standards. And there we have this new article. Now, anybody who's used Drupal 7 will be absolutely blown away when I can just come over here and you see this little pencil? I can click on that, say Quick Edit, and I can actually just right there on the screen start editing that. Maybe I want to change the title here. So we want to save that body that I made and then I can come click on any of these things. Again, you just look for the little pencil and that lets you know you can just do a quick edit there without going to the regular edit interface which takes you back to what it looked like when I created the content. So quick editing and improved editors is one of the big features that we added. Moving on. The next thing that we focused on in Drupal 8 was what we call configuration management. So if you're working on a large Drupal installation, sometimes you want to make some changes in how those are going to work. You want a development environment and you make those changes in the development environment and then you want to push those over to your live server, your production server. But it's always hard to keep those things in sync. If you make a change to one system you have to remember to make the change to the other. And in older versions of Drupal all that information was stored in the database which meant you had to sync parts of the database over but you didn't want to necessarily sync all of the database over. So in Drupal 8 we've split the configuration out separately so that it's very easy to export either the entire configuration or a part of the configuration from one server move it over to your production server reapply it there and have those same changes come across which is very, very slow. So here's more of a graphical explanation of how that would work. Let's say I have a development server over here on the left a live server over on the right we could take one of the configuration settings export it to a file take it over to the live server re-import it from a file into the active store and apply it to that server. Another thing we focused on in Drupal 8 is making the websites mobile friendly a good example of this is here on the left is what a Drupal 7 site looks like by default on an iPhone or on a mobile device. It's not very readable, the menus don't work very well it's pretty hard to navigate you'll notice the one on the right it's reformatted resized things to work well on a mobile device the menus collapse down and those sorts of things to work very, very well on mobile sites. And why is that important? It's because more and more people are viewing websites on a smaller screen device on a mobile device and right now I would guess that probably close to 50% of all web traffic is viewed from a mobile device but 50% of websites aren't designed for to look good on a mobile device so that's one thing we need to focus on excuse me I want to talk a little bit about interconnectivity it used to be in Drupal that we kind of thought we were the king of the jungle and that the world revolves around us and everybody should just do everything in Drupal over the last few years we've really come to realize that we need to play well with others we need to be able to interoperate with other systems and so one of the things that's been added in Drupal 8 is kind of a revamp of some of the interfaces that we used to get Drupal to talk to other systems for example we've now added a REST server and a REST client inside of Drupal so you could have Drupal just as a back end and have something like Backbone or Angular or something like that as your front end that just talks to Drupal over a REST interface to get data in and out of the system or if you're migrating data from one system to another you can now use the REST protocol to push objects in or get objects out of a Drupal site that makes migrating from other sites or communicating with other systems a whole lot easier for those of you who use Drupal 7 how many people use the Views module it's like the most important module I think or maybe the second most important module in Drupal that was not a part of Drupal 7 so we've added the Views module into the core of Drupal so now if you want to create a list of objects or a list of content that match certain criteria that sort of thing that's very very easy to do in Drupal 8 because it's part of the core not only is it part of the core but all those Views are now mobile responsive ready to go ready for translation all that good stuff that comes along with being part of Drupal 8 to give you a more graphical representation of why that's important I've got this little graph right here so it shows that Drupal 7 was released in January of 2011 and that's that that light brown bar and you see that there was almost no adoption at all of Drupal 7 until a year later well six months later when Views came out with a release candidate so it finally start working with Drupal 7 then people started to use Drupal 7 it wasn't until a full year later that Views came out for Drupal 7 and that really drove adoption so that was a clear indicator to us that people are not willing to use Drupal without the Views module so it should be part of the core of Drupal I want to finish up here quickly with just a couple of things if you're interested in Drupal if you're interested in content management system now is the time to start playing with it don't wait until Drupal 8 is released and then say I wish I would have had this feature in there or I found this bug I wish it would have been fixed earlier now is the time to start looking at that don't wait until code starts getting thrown over the wall here to look at things don't be surprised by the attack that's coming go look at the code now it's out there it's very usable at this point like I said there's only a few there's just a handful of bugs that are keeping us from doing the release so don't be afraid to do that how many people know this board game board game called risk anybody ever played risk it's one of my favorite board games but I use this to illustrate the fact that there's very little risk in trying out a Drupal site now especially a Drupal 8 site go install it play with it it's not hard to install you saw how easy it was to get up and running play with it try it out and figure out what works and that sort of thing there's a lot of code because it's very very powerful I think I've got just a little bit under 10 minutes left I wanted to leave some time for questions if people have questions or things they want to see me do I'm happy to try to do live demos of things you want to see done in Drupal I think there's some microphones we can pass around I'm happy to answer any questions you might have come on there's don't be shy there's got to be at least one question out there sorry for asking this how do you compare with blown how do we compare with blown so I was a big fan of blown back in the good old days of blown but to put it bluntly blown exploded and the development community and inside of blown kind of scattered and there's still a few people using blown but it does not have the development traction that that Drupal has I mean Drupal powers a good percentage of the top 10,000 websites in the world anybody who's anybody that's doing content management these days is doing it in Drupal and not doing it in blown there's just so few people using blown anymore that it's most people have moved over to the either Drupal camp or one of the others but Drupal by far has the most kind of momentum behind it right now and certainly heavy adoption and most web development agencies and shops are using Drupal don't get me wrong I liked blown back when it was the hot shiny thing but that's been many many years since it's really had a lot of active development there's not much development or improvement happened in blown recently okay I'll have to check it out again obviously the other difference is that you know that blown is Python and Drupal is PHP but we won't get into the language words right now alright other questions other things you'd like to see done there we go we got a hand back there so I was interested a bit about how is this that model being implemented in terms of using content frameworks over Drupal like Angular okay so so if I understood the question the question correctly it's let's say you wanted to use Drupal on the back end but you wanted to use something like Angular or something on the front end how would that be implemented so basically what you do is you build your Angular app and then it makes rest requests back to Drupal to say hey grab this piece of content whether it's information about a user or information about a node information about an article information about an RSS feed in my case Drupal itself does not as a content management system but rather as a back end server kind of it can do both but there's a lot of people who want to use Drupal 8 as the back end but don't want to use it as the front end so you can use it as both but some people want to use something like Angular as their front end and use and just use Drupal as the back end so a good example of this is weather.com weather.com is built on Drupal but they have a custom front end that they've built that just uses rest calls to call back to the Drupal back end and Drupal just handles things on the back it doesn't actually display any of the information on the website that's all done in the front end does that answer your question if you need more details come up to me afterwards and I'd go into more detail okay there's a question in the back over here how Drupal 8 is better than other competitors like Workplace or something so how is Drupal 8 better than some of its competitors like WordPress there's a couple of things that I really like about Drupal that are really hard to do in WordPress and let me show you just one of those quickly here I like WordPress that it's very simple to get started and add pages and posts but in WordPress when you get beyond pages and posts and want to create what are called custom content types or custom post types you basically have to dive into the code to create different types of content in Drupal it's very very simple to to create a new code types or content types so let's just do a quick demo here let's get back to the browser so if we go to content here we obviously have our content but we can add content types oh sorry it's under structure content types and so we can create our own custom content type maybe we want something that doesn't just have a title and a body and tags and an image maybe we want something that has other fields as well so let's create a new content type let's just call it a person if we want we could give it a description and those sorts of things but instead of having a title the person needs a name right and then we can jump in and say well what type of fields does a person have well a person doesn't necessarily need a body field so we can delete that instead maybe we want to add a field for their email address and we say okay we want each person to have one email address that's good enough and we can set a default setting if we want that's fine we'll just save that okay so now they have a name they have an email address let's add another field um let's add a what should we add let's add an image so we can add that as their picture save that we don't need a default that's good enough okay so now we've got this content type that's got you know a person that's got their name, their email address their picture and now if we go to content and add new content suddenly we have this person type here that we can add and it's that simple we can create new types of content where that would take us lots and lots of code in WordPress to add a new custom post type so that's one of the biggest differences I see between WordPress and Drupal Drupal is meant for a richer set of objects and types that you can put into the system time for probably one more question and then it's time to wrap up right here in the front okay hello got it over there so from a security perspective what is new in the latest Drupal and what kind of if I have to set up a site or if somebody has to set up a site are there any hardening features that are involved in the new latest Drupal okay so from a security standpoint there's two things in Drupal 8 that are very very important from a security standpoint with Drupal 7 the biggest problems were cross-site scripting and cross-site request forgery because of the new templating engine in Drupal 8 we actually went through and verified all the code paths to make sure we're not we're not specifically adding anything new that would cause cross-site scripting or cross-site request forgery attacks the new templating engine also makes it much much harder to mix your logic and it automatically escapes all output by default so really helps with the cross-site scripting sort of thing from a hardening standpoint not a lot specifically to hardening but keep your Drupal site up to date too many times people go and launch and this is the same for WordPress or any other web content management system they go and they launch a site and they forget about it they don't keep it up to date vulnerabilities are discovered somebody comes along and hacks your site and uses it for malicious purposes so keep it up to date one of the things that I love about Drupal 8 is it will check for updates and then it will email you to say hey there's a new security update available you should go apply that update alright I wish we could get to your question we're out of time but come grab me out in the hallway or after the talk and I'd be happy to answer your question thanks everybody and enjoy the rest of the conference