Don’t Believe Everything You Think.
Building Drupal 8 with all of you has been a wild ride. I thought it would be fun to take a little end-of-week look back at some of our community's biggest milestones through Twitter. If you can think of others important Tweets, please share them in the comments, and I'll update the post.Feeling nostalgic? See every single version of Drupal running!
— Cheppers (@cheppers) November 19, 2015Here is how we opened the development branch for Drupal 8: live at Drupalcon!
The secretsauce of #drupal isn't code or features or market share, important thought they are. The secret sauce is community.
— Sean Yo (@seanyo) March 10, 2011
— Jeff Geerling (@geerlingguy) March 10, 2011Drupal 8's first beta showed the power of community
Drupal 8.0.0 beta 1 released! https://t.co/FwdmRYaZUx Ahh the power of COMMUNITY driven software! :-)
— Doug Vann (@dougvann) October 1, 2014
— Gábor Hojtsy (@gaborhojtsy) October 1, 2014We had issues ... but the queue steadily declined
— xjm (@xjmdrupal) September 19, 2014
Drupal 8.0.x-rc1 release window is today. Good sign of real stability is major issue count going down for 6+ weeks. pic.twitter.com/5VnHGmL9zb
— catch (@catch56) October 7, 2015We held sprints around the world: here are just a few
— xjm (@xjmdrupal) July 5, 2015
Working on D8 Criticals at the Ghent DA critical sprint, this is how the "My issues" page looks for me right now! pic.twitter.com/y5SnavVtND
— Sascha Grossenbacher (@berdir) December 13, 2014
— Cameron Eagans (@cweagans) March 23, 2012And we created many game-changing features
— Wim Leers (@wimleers) April 8, 2015
And.... there we go! http://t.co/ed6XtMIs MOTHER BLEEPING VIEWS IN MOTHER BLEEPING CORE!
— webchick (@webchick) October 22, 2012
— Alex Pott (@alexpott) February 15, 2014
With Content + Config Translation in core D8 core is more translatable than D7 with all of contrib. #drupal
— Tobias Stöckler (@tstoeckler) November 18, 2013
Amazing to see Drupal 8's multilingual capabilities explained on the multilingual release page (for example Farsi): pic.twitter.com/9owVE3xABo
— Gábor Hojtsy (@gaborhojtsy) November 19, 2015The founder of PHP said: Drupal 8 + PHP7 = a lot of happy people
— Rasmus Lerdorf (@rasmus) April 21, 2015We reached the first release candidate and celebrated ... a little
— Whitney Hess (@whitneyhess) October 7, 2015
— Manuel Garcia (@drupalero) October 7, 2015
Kudos to the 3000+ contributors and to the entire Drupal community that helped make this happen. https://t.co/FtATRtSmCU
— Leslie Glynn (@leslieglynn) October 7, 2015And, just yesterday, we painted the world blue and celebrated Drupal 8 ... a lot!
— Drupal (@drupal) November 10, 2015
— Drupal (@drupal) November 19, 2015
— Taco Potze˙ (@tacopotze) November 19, 2015
— Duo (@DuoConsulting) November 19, 2015
— Shakeel Tariq (@shakeeltariq) November 19, 2015
— Agustin Rojas Silva (@Aguztinrs) November 19, 2015
— HornCologne (@HornCologne) November 19, 2015
— webchick (@webchick) November 19, 2015
— Paul Johnson (@pdjohnson) November 19, 2015
— Dries Buytaert (@Dries) November 18, 2015
There are a lot of different reasons why people need a site audit. For example, you may be transferring a project from an old team to a new team that needs to understand the project what they're taking over.
Or maybe there's an internal management change inside a large organization.
For example, in an audit I'm doing now, the site was managed by one team and now they're splitting up the company and that team is not going to manage the site anymore. The people taking over have no experience with the site and they want to find out what they're dealing with.Was it Done Right?
They might have specific concerns like security or performance that they want to audit. They might be planning a whole new phase of their project and they would like to understand where they're at with their site beforehand.Sometimes an audit is requested to validate a hunch. Sometimes a manager doesn't think a site was built well, and wants an audit to show that. On the other hand, there are times when a developer wants an audit to show their boss that they did do things right. For example, we had somebody who wanted an audit because his boss kept on telling him that he built the site wrong because he used multiple content types and his boss was sure that you should only ever have one content type. So he wanted an audit that would back him up and say he did a good job, and he did actually do a great job. Update to Drupal 8
Another reason you might have an audit in 2015-16 is that you're considering upgrading to Drupal 8 and nobody can give you a good estimate of how much it's actually going to cost you to upgrade because nobody knows what your site does or even what problems it has. You might need an audit just to help you evaluate that.Here Comes Judge Jody
At work, they call me Judge Jody. Being judgmental is one of those personality traits that’s both positive and negative. But when it comes to doing certain types of tasks, being judgmental is very useful. You might have some people on your team that are very open and accepting who say, "Oh, that's an interesting idea" to just about everything. They don't disagree strongly with much of anything. These folks are not necessarily the best ones to do an audit because they'll go through and all they can come up with is, "Oh, that's interesting." Someone who really has strong opinions can go faster and decide what looks problematic.One Judge...Or Many?
You could have just one of your top people doing an audit, but you can also split it up into multiple domain experts. I also like to have an assistant when I'm doing the auditing, someone more junior who can help me write up the document, do the document formatting and learn while we're going along. As you're working on an audit you're not just learning how to do a site audit, you're also learning a lot about Drupal and the different issues people can get into making sites. I've learned more from looking at all of the awful sites that we inherit and rescue than I would have just building sites on my own because you see the consequences of all the different bad common practices that people make, where it leads, and how much work it is to clean it up. It makes me feel more strongly when I say, 'we never do this this way and this is why. We've seen what happens.’It's also good if someone on the auditing team will potentially continue working on this site if this becomes an ongoing project. No matter how much people write in their reports, they're also putting a lot in their heads getting to know this project. That's really valuable and you want them to continue working on the site. It actually takes a long time to really get to know a project if it's a pretty complicated site, or just a particularly troubled one. Manual or Automated?
There are parts of an audit where you should use automated tools. But it’s also important to do a lot manually and just look everywhere. I'll look from the top left pixel all the way across to the bottom right. Then I'll look at the server, the code and every page I can. I'll look at the HTML, the CSS, the navigation, and the content itself. One of the amazing things I take away at the end of some site audits is that after a week of looking at some sites I still have very little idea of what the organization does, or perhaps how to purchase a product from the company. Noticing that the site does not serve its primary mission is something automated tools will not do for you.Document Everything
I start an outline in a Google Doc, and I follow my curiosity around the site. Productive procrastination is my main mode. When I don't feel like looking at the permissions, I go look at the design, and keep jumping around until the outline starts to fill itself out.The first step is to get access. If it is a problem to access the server, the code base, or get a copy of the database, that in itself can be a finding of the audit. If the people you're working with don't know how to get you a copy of the database or access to the server, or they don't have SSH keys, that is part of the environment that the site is living in. It could itself be a finding. These sites don’t exist in a vacuum.
If the client refuses to give you access because they have some security reasons and nothing you can sign is going to do anything about it, you'll be really limited so you'll have a smaller scope to your audit.
Ideally, work locally and get a local copy of the site set up. That way you can click around everywhere, run all the automated reports you want, and not have to worry about messing anything up. As an auditor, you change nothing. Click everywhere, but never hit save.
Typically in an audit the more you find, the better. You're not going to lose points for looking at things that people didn't think you were supposed to be looking at. Take notes the entire time you're looking so you can eventually write those up into a proper document. Talk it Over
It’s critical to set up a series of meetings as part of the audit. First, have a kick-off meeting to get basic background information: a little about the organization, how this site came to be, what it's supposed to be doing, and who's involved. Confirm the boundaries of the audit- for example should you be auditing everything at one subdomain, or more. Also make sure you have access to everything you need. There’s no need to get into too much detail at that kick-off meeting other than a basic situational awareness.After a day or two of digging into the site, I like to have another meeting because then I have some questions and I'm very focused on the project at that point. Then I like to really dig in and ask questions about their specific concerns and odd things I’ve started to uncover.
You want to make sure that you're auditing and paying special attention to things that that the client is focused on and concerned about. It's also important to have these meetings to get a sense of the client’s technical vocabulary and background and whom you're actually addressing in this audit. It's easy to make an audit that makes you look really smart, and they will not use it at all because they don't understand what you're talking about and you’re not making your points clearly enough. Then we just have this huge, intimidating pile of paper. It’s about clear communication and not being pedantic.
Stay tuned for Part 2: Top Three Priorities of A Site Audit. Terms:
In Part 1 of this series, I showed an easy system for including oEmbed rich content in a WYSIWYG, including reusing that content. In this installment I'll step through how to set it all up in Drupal 7.How to Set Up Asset and oEmbed modules
First of all, in order to use Asset module you can't use WYSIWYG module - you need to use CKeditor module. CKeditor module is great though - you have more control of your editor configuration than with WYSIWYG module.
Install Asset module from drupal.org: I typically enable only Asset, Asset document, and Asset image, out of the submodules in the Asset package.
Similar to how Media module works, you need to enable the Asset filter on your input format(s). On the CKeditor settings make sure you enable the Media Asset plugin.
Also add oEmbed module and enable its submodules oEmbed Field oEmbed Embedly. Add an API key to the oEmbed Embedly configuration.
Create a new Asset type (Structure: Asset Types: Add Asset Type) called 'Embed' and pick an icon for it. At 'Manage Fields' add a link field, and at 'Manage Display' choose oEmbed for the display formatter of the link (for both Default and Full Size modes). Go back the CKeditor settings and drag your new button into your WYSIWYG configuration.
You may also want to do some templating and styling: I overrode the oembed.tpl.php from oEmbed to not show an extra title link to the embed. I also overrode the asset.tpl.php to likewise not show the Asset title.
Media module has a nice ability to be used as a widget for a file field, letting you reuse media from your library or add new media. So how can we get a similar feature using our beloved Asset module library?
Because Asset is an entity type, you can create entity reference fields to reuse assets. A great widget for entity reference fields is Inline Entity Form. This lets you add a new or existing asset of any type as a field. We contributed a patch for Asset to add support for Inline Entity Form, which is in the latest Dev release of Asset module.Using Inline Entity Form, you can add a new or existing asset as a field. Adding a new Embed Asset within Inline Entity Form. Do I have to do this for every new site I make?
Of course not. This is the kind of setup you should do in a starter-kit: an install profile that you use for every site. We've added it to our Bear Starter-kit, which you're welcome to fork.OK, but what if I use Scald or Media module and can't switch to Asset?
If you're not ready to make the Asset module plunge, you can still use oEmbed. If you like Scald, you can do a similar setup using this Embedly Scald module. And if you use Media module you can use the Media oEmbed submodule (included in oEmbed module).
Product by USAopoly More about this product
List Price: $34.99 Price: $31.90 You Save: $3.09 (9%)
Stay tuned for Part 3 in which we report on what we've done to make it easy to embed 3rd party content in Drupal 8.Terms:
The LightGallery module integrates the jQuery lightgallery plugin with drupal. jQuery lightgallery is a customizable, modular, responsive, lightbox gallery plugin for jQuery. This module integrates with the views module.
This is still a very early version!!
Features that are supported:
Previously we talked about currencies and stores. This week we’ll focus on products.
Recently, I was given a chance to run a game for a group that I previously GMed. This was back before my playing style changed over, from a more traditional prep-medium, linear story, to where I am now with a lite-prep, more improv/collaborative style. At first, I was a bit hesitant to run for this group, since their focus is not improv play, and more on what might be labeled as “traditional play”. My concerns centered on if my improv style would mesh with their play style. After some thought, I decided to run for the group, despite my concerns. But in order to make this enjoyable for both myself and the players, I needed to run the game the way I wanted, but have it provide the experience they were expecting, even if those were not in alignment. I was banking on the idea that we could play the game with asymmetrical goals.
NOTE – I am going to use the terms Indie and Traditional a few times in this article. They are not my favorite terms, but for the sake of word count, I stuck with their use. Take both terms with a grain of salt.Asymmetrical play-what?
We all come to the table with different wants and needs from a game. Robin D. Laws defined some of these, from the player side, years ago (here). Over the years, here on the ‘Stew, both Walt and I have taken a crack at defining GM types (here and here). Everyone comes to a game with different desires, but we often work during the formation of a new game/campaign to find a middle ground, a consensus, that achieves most of what everyone desires, but often not everything everyone desires. This is a perfectly reasonable approach, one that we advocated in Odyssey, and I have used for years. We can call that a symmetrical play style.
The thing that occurred to me on this occasion, is that the consensus and alignment of desires may not be the only way to set up a campaign. If a group had different play styles, but they could be all addressed within the confines of the game, then it may be possible to play asymmetrically; each person getting what they want from the game.
On a micro level, this always happens, the player with the Wizard has different desires from the player with the Rogue, etc. But at the macro level, the group may be symmetrical in their style of playing an adventuring party, going through a published adventure arc. So for our definition of asymmetrical play, we will look at the macro application of the term.How Can This Work?
In order to explain asymmetrical play, I am going to tell you the story of how I set up the most recent campaign, and what I learned along the way. This whole idea came about when the group and I started listing games we would like to play. Mine were all more “Indie” style games (Dungeon World, Fate etc) and theirs were more traditional games (D&D, Vampire, etc). We were clearly in two different places in terms of play experience. In order to see if there was some common ground, I started a discussion about wants and needs, which lead me to the first step in this process…Determine What Everyone Wants From the Game
It was clear from our divergent list of games that we were looking for different things from the game. That became a springboard of determining what our desires were for the game. In my case, it broke down like this:
- GM’s desires – run a little/no prep game, that is improvised by the players actions each session. Games would focus on players proactively picking what plots they wanted to explore during the session. Lesser focus on gaining money/gear, and more on developing story.
- Player’s desires– create mechanically interesting characters and develop character options through the rewards of play (new gear,money, etc). Engage in a more mission-driven story.
The challenge in the initial list of games is that Indie games trend towards my GM desires, but they are often thinner on character options. Likewise, the games the players selected had more character options, but were not quite as easy to do in a low/no-prep style (not impossible but definitely more difficult)
Once our desires were listed, we were both able to describe what was important in the new campaign. With that understanding something else became clear…No Exclusive Objectives After all, I was not going to submit my prep for review…
What we wanted from the game was not really mutually exclusive from each other, in terms of styles of play. My focus was really about what happened at the table while the players wanted some more crunch for their characters, which is often done between games. Also, if a low/no prep game is done well, the players would not be able to tell. After all, I was not going to submit my prep for review, and their desire for tricking out characters was not going to affect my NPC’s and plots.
Had we run into some direct conflicts we may not have been able to progress further, and we may have needed to go back to some kind of collaboration. But since nothing was exclusive, we pressed on and started working on…Finding The Right System
In order to be able to play an asymmetrical game you need a system that can deliver what everyone is looking for. This might be the hardest part of the process. Systems tend to be either hyper-focused, delivering a specific play-experience (not uncommon for Indie games) or they tend to be very generalized delivering a wide variety of experiences but not in great depth (more common for Traditional games). When you are looking at a game for asymmetrical play you have try to find something that encompasses as many of your needs as possible.
In our case, we selected Corporation, a game that long-time readers know is a favorite of mine. Corporation has a rich world, but is actually fairly light on rules, making it flexible and easy to run with low/no prep. Add to that the work I had done a few years ago on Wireframes, and I had a set of NPC stat blocks that I could use to improv NPC’s during a game. For the players, Corporation also has a bewildering array of character options.
While Corporation was a great starting point, I knew the game well enough to know that I would need to…Account for Shortcomings
No rules system is going to be perfect for this type of play, and there are bound to be some gaps. Once you know what they are you can address them with either some house rules or some additional rules found in supplements. For me I saw two issues that needed addressing.Harvesting Gear
A lot of times in Corporation harvesting cyberware and gear off of opponents is a typical in-game activity. This is a way to get extra money or gear over typical mission pay. Since I was going to use my Wireframes and not stat out each NPC, this would be a problem. The Wireframes do not list specific gear, but abstract the bonuses that go with them. So I asked the players if we could keep this activity to a minimum, allowing me to use my Wireframes. In return I would give everyone more starting money, to increase their initial options.Failing Forward
Corporation lacks a Fail Forward mechanic; a tool I find invaluable in improv playing. This was an easy fix, and I proposed a simple house rule to include this into the game.A Work In Progress
All of this is a work in progress, and our first session is coming up. I feel like I should be able to pull this off, but there are no guarantees. So this is by no means a final dissertation on the subject, but rather an experiment. If successful, this game will allow me to run the game in a way that I find interesting while giving the players the different experience that they desire.
Have you ever run a game for your own reasons, that were not complementary to some or all of the players? How did it work out? What were the challenges?
This module provides a hierarchical select widget plugin for the Facet API module
Today marks the release of Drupal 8, and the birthday of its founder, Dries Buytaert. This release is more than just a new digit, it's an entirely new platform with something for everyone to love, but it's particularly big for web site owners.
What's the big deal? The biggest, most powerful, one of the most successful open source projects in the world has two major, fundamental changes that change everything you thought you knew about it.
Well, not everything. Lots of the things that people love about Drupal are getting some nice improvements:
- Mobile, responsive support straight out of the box -- it's actually a nice experience administering a D8 site on your phone!
- The information architecture is the same as always -- content types, vocabularies, comments, anything you've learned about how content is organized in Drupal is the same, but...
- Lots of powerful modules like Views and CKEditor are now in core, and much less quirky than ever before
- Deploying updates and configuration settings between multiple copies of the site is completely overhauled, and now very simple to do
- Caching support is baked in, enabled by default, so in spite of doubling in code size it uses less computing resources and responds much faster, especially on busy sites
- Loads of other improvements.
All of that is great, and we could go on for hours, days about how much of an improvement this is. And that is the stuff you will notice today, next week, next month. But that's not the big change, that's not the killer feature of this upgrade for site owners.
The killer feature is what happens in 6 months, in 1 year, in 5 years. And that is, the great big upgrade cost you don't have, when it's time to upgrade to 8.1.0, or 8.2.0, or even 9.0.0.Two Fundamental Changes.
Ask any Drupal site owner where their biggest pain is. You'll run into two big complaints: How hard it is to find decent Drupal developer talent, and how painful it is to migrate to the next version. Those both change with Drupal 8.The next version
The current version of Drupal 7 is 7.41. The new version of Drupal 8 is 8.0.0. The next version of Drupal 7 will be 7.42. The next version of Drupal 8 will be 8.0.1. Notice anything different? It's called "Semantic versioning," and yes, it's just one more number between the dots (or added to the end). But the change behind that simple little version number is enormous.
Drupal is changing its entire release process to have "minor" version releases every 6 months. That means 6 months from now will be 8.1.0, and in a year, 8.2.0. These are calendar-based releases that contain new functionality, AND maintain backwards compatibility with the previous minor version. Upgrades from 8.0.4 to 8.1.0 should be completely transparent, nothing breaking as a result -- but new stuff available.
Drupal has never maintained backwards compatibility like this before -- this is a fundamental change in the project, and it represents the maturity the platform has reached.
There will only be a Drupal 9 when there's enough changes that are not backwards compatible that it's time for a new major release. But this "minor release" plan provides plenty of notice of functionality being deprecated to allow people to transition away from those things that are going away, long before 9 arrives.
That means an update to Drupal 9, will mostly be a matter of making sure you've either moved away from stuff being changed in Drupal 8, or have added an alternative. And then update, potentially like any other minor release.
No more completely rebuilding your site in the new version! For the first time ever, major version updates in Drupal should be relatively painless, as long as you keep your site relatively current and pay attention to changes as they develop."Drupal Developers"
Drupal has always come with a steep learning curve, particularly for developers. This is because it has developed out of procedural code, with a "hook" system and naming conventions that make a lot of things happen "automagically". It takes a couple years to get your head around the many Drupalisms, code patterns, hooks, conventions that are not seen or used in most other projects. You need to be very proficient in coding, using a debugger, and having an open mind to be a good Drupal developer... until now.
"Object Oriented" is a term that came in vogue in development circles... in the 1960s. It became the dominant way of programming in the 1990s, particularly with the rise of Java in popularity, and it's at the heart of .NET as well as many open source practices. And while Drupal uses a lot of object-oriented concepts in its information architecture, it has never been fully object-oriented in its code... until Drupal 8.
Why should a site owner care about this? Two huge benefits -- the same two I'm talking about here:
- Drupal development now shares the same programming architecture as 90% of the rest of the industry, instead of being its own thing. Now you don't need to find a good "Drupal developer" -- a good developer should be able to pick it up and figure it out without years of learning the specific incantations and magic charms of all those Drupalisms.
- Updates. Because we now encapsulate all this code into objects that extend other classes, this allows for upgrading smaller bits of functionality without affecting the rest of the site. This means that it should be possible to upgrade some modules to Drupal 9, before the site itself.
I think a lot of people in the Drupal community don't fully realize how huge a change this is (and it is interesting to see some backlash to the changes from those who may fear some of this change).
In other words, when Drupal 9 eventually arrives, it won't be such a big deal -- it should be possible to run exactly the same contributed modules for Drupal 8 and Drupal 9, with no changes whatsoever -- and even if something important does need to change, it can be changed by inserting a "shim" class that translates the API changes as appropriate -- it will almost certainly be possible to run Drupal 9 modules in Drupal 8, and vice versa. And you won't have to find a Drupal-specific developer to do this for you, either.The new world of web applications
Drupal has long been a compelling platform in terms of functionality, the speed that new functionality becomes available, and the power built into the system. Drupal 8 is not just another release -- it is the maturing of this platform into something that is completely up-to-date and capable of staying that way for at least the next decade, if not more.
If you are looking for a new content management system, a new project management system, a new platform for managing all kinds of communications between groups of people, you can't pick a better base for doing so than Drupal 8. Give us a call, and let's discuss what you want to build!
Congratulations to the Drupal community. Today, they released Drupal 8!
It has been an epic journey to get here. Back in March 2011, we sat in the audience at DrupalCon Chicago and listened to Dries' plans for Drupal 8. To get from Chicago to today has taken over 1770 days, 3000 contributors and 350,000 lines of code.
Drupal 8 is far larger, more powerful and more modern than anything Drupal has released before.
Where I am:
- Today [11/19/15] is the BIG day! Finally, Drupal 8 launches!
- I have co-planned a party at my local Drupal group here in Indianapolis.
- I just paid $12 for this giant, blue “8” balloon! [woot woot!]
- At that party I will be delivering a show-n-tell of the new Drupal 8 back end.
- I have shared/authored social media posts to push the BUZZ along.
- Drupal 7 work still keeps me busy and pays the bills.
Where I’m going
- Tomorrow and the day after [11/20/15 & 11/21/15] I will be delivering 2 separate, free, 4hr Drupal 8 trainings for the Drupal Association’s Global Training Days
- I’m happy to say I’m working on a D8 book for a major publisher! [more on that when allowed]
- I still have a DEEP desire to work further on my BackdropCMS site which, to date, has served as a playground for exploring functionality.
The longer road ahead, as I see it
I have already stated that I’m a huge fan of what BackdropCMS represents. I believe in the the market viability of BackdropCMS. As you can tell, I’m also very excited at what Drupal 8 represents in the evolution of the web as we know it. I plan on using both as needed.
How do I reconcile the two? It’s quite easy. I have long felt that Drupal 8 is moving “Up Market.” No matter how you define that, it is true on many levels. I have no problem with this. It’s a natural evolution and I agree with those who said was long long long long overdue. I tend to agree. HOWEVER… I’m already on the record as saying that some of the changes in Drupal 8 can, will, and already have cost us some marketshare. This is where I believe BackdropCMS is a highly effective tool for keeping these existing sites from migrating to WP or some proprietary platform. Many clients around the world are super happy with their D7 sites, and they will remain happy for some time to come. It is a matter of time before we start seeing D7 sites move off of D7. Some will head to D8. Many will not. I want to be at the intersection when they change roads!
A few words about the “Ownership Society”
I have also bloviated at length about how Drupal promotes an ownership society where a team of non-CompSci grads can make amazing websites with Drupal. I keep saying that Drupal 8 raises the bar to the point that many of the current satisfied D7 users will need to rely on vendors to do the things that they currently do themselves. Then along comes BackdropCMS. Bringing balance to The Force BackdropCMS will once again empower those who are thriving in the Ownership Society that is, at least to some degree, no longer there in Drupal 8.Drupal Planet