There was a time when search engine bots would come to your site, index the words on the page, and continue on. Those days are long past. Earlier this year, we witnessed Google's ability to determine if our sites were mobile or not. Now, the evolution of the Googlebot continues.
I would say that it was not uncommon for web developers to receive at least a few emails from Google Search Console today.To: Webmaster...
Well, that's a little bit of information that I never thought about before, Google wanting to understand, how my "website works", not just understanding the content and the structure of it. Turns out, Google has been working toward this since October of last year.Update your robots.txt
After some more tinkering with the Raspberry Pi Dramble (a cluster of 6 Raspberry Pis used to demonstrate Drupal 8 deployments using Ansible), I finally was able to get the RGB LEDs to react to Nginx accesses—meaning every time a request is received by Nginx, the LED toggles to red momentarily.
This visualization allows me to see exactly how Nginx is distributing requests among the servers in different load balancer configurations. The default (not only for Nginx, but also for Varnish, HAProxy, and other balancers) is to use round-robin distribution, meaning each request is sent to the next server. This is demonstrated first, in the video below, followed by a demonstration of Nginx's ip_hash method, which pins one person's IP address to one backend server, based on a hash of the person's IP address:
This episode we welcome Shellie Hutchens, Mediacurrent’s Marketing Director, to talk about upcoming webinars and and the fact that Mediacurrent is hiring. Ryan picked Stage File Proxy as the Module of the Now. We discuss our first non-drupal article from Four Kitchens about Saucier (pronunciation TBD). Mark stumbles through some D8 News and of course we finish off with some great conversation during Ryan’s Final Bell.
Here we go again! It's your monthly summary of all things board meeting at the Drupal Association. This month we covered board governenance (there's a seat opening up), the D8 Accelerate Campaign, and the Association strategic frame. Plus, as a bonus, the board approved the Q2 financials for publication. As always, if you want to catch up on all the details, you can find everything you need to know about the meeting online, including minutes, materials, and a recording. If you're just here for a summary view, read on!Meeting Minutes Related Materials Video Recording Board governance
Angie Byron's term on the board is going to be up this fall, and she has expressed her desire not to renew that term. We're going to be very sad to see Angie go, but thrilled that she will have one less hat to talk about when explaining which hat she is wearing at any given point during your next meeting with her. Seriously - she's brought so much thoughfulness and passion to the board. She's not leaving us yet (her term expires 10/31), but our Governance Committee will be working with the Nominations Committee to recruit candidates and help the board make the next selection.D8 Accelerate
As I write these words there are just 10(!) release blockers standing between us and a release candidate for Drupal 8. Part of the momentum this year has come from Drupal 8 Accelerate. We've made over 40 grants, worth more than $120,000 so far. That's helped us close nearly 100 issues, addressing some really important features, like a beta to beta upgrade, security bugs, and performance. If you're curious about what's getting funded, you can always see the full list. And, we're getting close to reaching our goal - we've raised $223,000. You can help us reach our $250,000 goal by making a donation today!Drupal Association Strategic Frame
Why are we doing the work we do? Because everyone at the Association wants to have a positive impact for Drupal. The best way for us to have an impact is to pick a few goals that we are going to focus on achieving. The Association board used their January retreat to set some 3-5 year goals for the Association:
- To develop sufficient professionals to meet global demand for Drupal
- To lead the community in focused, efficient, effective development of Drupal
- To ensure the sustainability of the Drupal project and community
- To increase Drupal adoption in target markets
- To increase the strength and resilience of the Drupal Association
We've been working since then to select the right strategies and objectives (1 year to 18 month time frame) for our work. You can see the directions we're headed in the presentation we shared. It's important to note that we expect to revisit our strategies and objectives on a quarterly basis to adjust as we go. The world of Drupal moves fast, and we need to as well. So, although we are setting 12 to 18 month objectives, we will be adjusting the frame much more frequently, and won't be sticking with objectives that we find don't really support the work.2015 Q2 Financials
And in the most exciting news of all, the second quarter financials were approved by the board. You can always find whatever financials have been released in the public financials folder. If you have never taken a look at the financials before, I recommend it. Although I tease about them being boring, I love financial statements! A while back, I wrote up a post about how to read our financial statements. I also like pointing out that each Con has it's own tab in our financial statements, so you can see exactly how that money coems in, and where it is spent.See you next time!
And that's it for this summary. But, if you have questions or ideas, you can always reach out to me!
Flickr photo: Joeri Poesen
Entity Data is a handy little API to make module builder's lives easier. If you need to build a module that adds functionality and data to an entity, no longer will you have to implement your own CRUD and export/import support.A module builders dilemma
Fields are a powerful way to add data to Drupal entities. However, sometimes fields can be rather cumbersome. Particularly when you want to add something and thus attach fields to entities that already exists.... Read more
Drupal traditionally excels in the area of content organization – not only as a content management system, but also in allowing you to create structured data, thanks to the entity and field systems.
However, while flexibility in Drupal 7 has grown – compared to Drupal 6 – the preview and revisioning systems have been very limited (and still are in Drupal 8, as of now). The only possibility in Drupal 7 was to click “preview” and see a very rough outline of how the content might look styled with the admin theme.
Trying to use the same CSS and/or JS in the admin and default themes is a difficult endeavor. Solutions include AJAX callbacks and iframes, but those solutions are neither optimal nor in widespread use.
The Drupal 7 core revisioning system is also limited and mainly allows auditing and reverting back to another revision; any saved revision is immediately live and overwrites the state of the old revision. Therefore, it is impossible to have different stages of the same piece of content once it has been published.CPS
The workflow needed by most larger content teams is that each article can be a “draft” stage, then revised by an editor and, finally, approved by a content publisher.
While the workflow provided by the Workbench module is already quite good at this, it still lacks something that even bigger teams need: The possibility to publish content together as a “pack.”
One example of this is a large marketing campaign that has several articles which, taken together, form the new front page and show several subpages. In order to properly review these changes, editors and content publishers need to be able to see the set of changes on the site as a whole. CPS fills this gap, because it allows you to view the whole site as if the content was already published – but your live site remains unchanged!How Does it Work?
CPS divides your site into changesets, called ‘site versions’ in the UI.
Every editor has their own ‘site version’ (though collaboration and moving of drafts between changesets is possible) and can see the site overlayed with all the changes they have made.
Yesterday we hosted our first Drop Guard webinar. For those who couldn’t attend, I share the video with you below. Both the participants’ interaction and the number of attendees far exceeded our expectations: more than 70 people watched the free webinar and learned how to update Drupal automatically with integration into development and deployment workflows. First of all, I want to thank everybody who has supported us from the initial idea through to the first closed beta phase and helped us to improve the service. Without the help of the awesome Drupal community we would never reach our ambitious goals to build this product!
Here I’d like to share a couple of tweets we got during the webinar, such as @drop_guard @tweetsBS Chapeau, you guys build something really great! #drupal and Drupal updates as a service? @drop_guard looks like a powerful solution. Thanks! You make us very proud and prove we’re on the right track.
A couple of questions have come up that I want to summarize and share with you here.
"How do you update servers on @acquia or @getpantheon when you don't have direct access to staging servers?"
In the current version we support "Events and Actions" to trigger deployment actions such as "call a URL", "Execute SSH command". With these actions you can call scripts on a separate server that trigger deployment actions on pantheon.io, Acquia cloud, platform.sh or Freistil Box hosting. In the future we’ll consider how we can provide seamless integration with these hosting providers. As they all expose an API or a CLI, you can use scripts that are triggered by the "execute SSH command" action in the events tab (see the video for further details). We’ve already started our first talks on cooperating with freistil Drupal hosting and platform.sh, so we hope to have the same interesting and valuable conversations with other hosting platform providers. If you have concrete ideas for integration scenarios, I’m happy to discuss them in the comments.
"It there a way to let Drop Guard work via FTP only?"
An FTP-based workflow is planned for the future, earliest in 2016. We plan to provide a feature to let you connect to your FTP account, and Drop Guard will copy the code base to operate on a local GIT repository. Actually, Drop Guard requires a GIT repository where your code is committed.
"Can I integrate Drop Guard with Jira?"
You can do this in the current version by using the web hook integration to create a task. You need to wait until we release our REST API that lets you execute actions on task to change statuses and trigger deployment actions accordingly.
"Does Drop Guard need a copy of my database?" No, Drop Guard doesn't require you to grant access or copy your live database. To avoid this we based our architecture on services that are exposed by the Drop Guard module that you need to install on your live site. This module exposes and API and transfers the information that Drop Guard needs from your live installation via an encrypted connection, which is also how Drop Guard receives information regarding installed modules and their versions to determine available updates.
"Is there an agency partner program for Drop Guard partners?" Our pricing model targets the need for scale of Drupal shops: you pay for one site and use Drop Guard as a white-label service to sell reliable update services to your client. You can also add your agency fee to the price as needed. There will be an affiliate program till the end of this year that rewards successful recommendations to Drop Guard.
For those of you who couldn’t attend the webinar live, here’s the full video:
and the slides are available as well:Drop Guard vs. Drupalgeddon webinar from Manuel Pistner
This is a followup post to a post where I showed how you can use VDC to display data from an external database table in a Drupal View. In this post I display an external database view as a Drupal View. This is another step towards showing how Drupal can be used as a Business Intelligence (BI) or data analysis platform.
MariaDB is a community-developed fork of the MySQL relational database management system intended to remain free under the GNU GPL. You can use the link to know more about MariaDB and it's features. If you want to try MariaDB without losing MySQL, then here is the tutorial for running MariaDB alongside MySQL.
Let's start with the steps to install Mariadb along with Mysql
XHProf is a hierarchical profiler for PHP. It reports function-level call counts and inclusive and exclusive metrics such as wall (elapsed) time, CPU time and memory usage. A function's profile can be broken down by callers or callees. The raw data collection component is implemented in C as a PHP Zend extension called xhprof. XHProf has a simple HTML based user interface (written in PHP). The browser based UI for viewing profiler results makes it easy to view results or to share results with peers. A callgraph image view is also supported.Install XHProf
I made sure xhprof-0.9.2 was installed inside the www-directory of the webserver.
Since the last Drupal 8 core update, the API module maintainers started looking for co-maintainers, and Two-Factor Authentication was rolled out to anyone with the Community role on Drupal.org (among other improvements).What's new with Drupal 8?
Drupal 8's minimum PHP version increased to 5.5.9, and minimum PostgreSQL version increased to 9.1.2. Also, tim-e handed off co-maintainership of the Contact module to Jibran Ijaz and Andrey Postnikov; and Frando stopped being a maintainer of the Entity, Form, and Render systems — special thanks to both tim-e and Frand for their amazing contributions!
Some other highlights of the month were:
- A bunch of usability problems on the advanced search form, on autocomplete controls in modal dialogs, and on the modules/extend page were fixed.
- Brian Altenhofel at VMdoh listed 6 reasons why Drupal 8 is an exciting step forward, and Gábor Hojtsy announced a multilingual site-building hacks contest.
- The D7 to D8 migration path saw some work, as the dblog and syslog modules got upgrade paths.
- Dylan Tack at Metal Toad explained why Drupal 8 won't ship with REST content negotiation, and Darryl Norris explained how to request a node via REST using web services.
- Sascha Grossenbacher at MD Systems wrote a script to run tests on modules with D8 support, and Jon Peck at Four Kitchens explained his progress porting Site Audit to Drupal 8.
- To improve performance, CSRF links were made cachable, all token replacements now have cacheability metadata, and for certain LanguageManager strings, the number of calls to the t() function were reduced.
- Amber Matz of Drupalize.me wrote an article on learning Drupal 8 by looking at boilerplate code,
- Tim Millwood explained how to override Drupal 8 services, and Alex Pott at Chapter Three continued his series on configuration management with a post on configuration dependencies.
- To improve the developer experience, Text input form elements were documented as part of the push to move away from a monolithic, manually-maintained HTML file documenting the Form API, the custom menu caching strategy in the Toolbar module was replaced with Core's standard caching, and the Symfony response view listener learned to accept PSR-7 Response objects.
- A lot of discussion on building Drupal 8 sites is happening in the g.d.o group on Drupal 8 production sites.
- ThemeManager::theme() was renamed to ThemeManager::render()
See Help get Drupal 8 released! for updated information on the current state of the software and more information on how you can help.
We're also looking for more contributors to help compile these posts. Contact mparker17 if you'd like to help!Drupal 8 In Real Life
- Drupal Camp Costa Rica will be July 29–31 in San Pedro Montes de Oca, San José, Costa Rica. The schedule includes sessions on the RESTful features of Drupal 8, Drupal 8 for small sites, theming D8, migrating D7 sites to D8, writing D8 modules from scratch, and the Drupal Console project. Don't forget to register!
- There will be a Drupal 8 sprint weekend July 31–August 2 in the Wunderkraut offices in Munich, Bavaria, Germany.
- DrupalCorn Camp 2015 will be July 31–August 2 in Cedar Falls, Iowa, USA, with sessions on D8 media management, and a full-day sprint. Early-bird tickets are already sold out, but you can still register for regular-priced tickets.
- Design4Drupal will be July 31–August 2 in Boston, Massachusetts, USA, featuring sessions on Drupal 8 theming, and Drupal 8 for designers.
- Drupal Camp PA will be August 1–2 in Pittsburgh, Pennsylvania, USA with sessions on Drupal 8 theming and asset management.
- Drupalaton will be August 6–9 in Lake Balaton, Keszthely, Hungary. Tickets are still available, but you must sign up for the Drupalaton sprints separately. There are a number of sessions on Drupal 8 plus a full day of sprinting!
- acouch and the other awesome folks at NuCivic are organizing a Hackathon in Lieu of DrupalCamp Wisconsin on August 7 in Madison, Wisconson 53703.
- Drupal Rush In Sprints #2 will be held August 8 in Delhi, India.
- One of the biggest Drupal sprints every year, the Drupal MidWest Developers Summit will be August 12–15 in Chicago, Illinois, USA. Don't forget to register for this awesome event!
- Drupal Camp Asheville will be August 14–15 in Asheville, North Carolina, USA. August 14th will be a day of sprints!
Do you follow Drupal Planet with devotion, or keep a close eye on the Drupal event calendar, or git pull origin 8.0.x every morning without fail before your coffee? We're looking for more contributors to help compile these posts. You could either take a few hours once every six weeks or so to put together a whole post, or help with one section more regularly. If you'd like to volunteer for helping to draft these posts, please follow the steps here!
One of the most frequent questions we get asked by OSTraining members is this:"Is there an easy shopping cart for Drupal?"
Don't get me wrong. Drupal Commerce is a great system, and we have a detailed video class explaining how to use it. But no-one would describe Drupal Commerce as easy, and Ubercart is equally difficult.
There are few other valid e-commerce options. One, called Basic Cart, works great but doesn't actually have any payment options.
So in this tutorial, we'll explain how to use Shopify.com and Drupal together. Shopify is a robust option and can reduce the burden of maintaining an e-commerce store.
Whether you're counting Business Summit attendees or conference registrants with C-Suite titles, last year DrupalCon Europe saw about 500 attendees who were highly interested in the business-side of Drupal. As we saw in the Business Track and the business-related BoFs, there is a strong interest at Cons for not only learning the skills to code better, but also to make your business better, and DrupalCon Barcelona will be no different.
Last year we conducted a Drupal Job Market survey to better understand the opportunities for those who know Drupal. The survey showed strong demand for Drupal skills and demonstrated why Drupal is a rewarding and potentially lucrative career path. We are conducting another survey this year.
This year we are adding questions about compensation to help Drupal talent and hiring organizations benchmark themselves.
You can expect to see the results from the survey published in late August. Thank you for taking the survey!
Recently, I wrote a blog post on the benefits of integrating your website and CRM, and Anthony followed up with another on the typical integration patterns you commonly see. Annertech have a lot of experience integrating Drupal websites with various CRMs, so this is the start of a new series on CRM integration where we will go into more detail on some of the more popular CRMs we’ve worked with.
This was our 9th critical issues discussion meeting to be publicly recorded in a row. (See all prior recordings). Here is the recording of the meeting video and chat from Friday in the hope that it helps more than just those who were on the meeting:
If you also have significant time to work on critical issues in Drupal 8 and we did not include you, let me know as soon as possible.
The meeting log is as follows (all times are GMT real time at the meeting):
https://www.drupal.org/node/2524082 => Config overrides should provide cacheability metadata [
=> 147 comments, 39 IRC mentions
https://www.drupal.org/node/2429617 => [PP-1] Make D8 2x as fast: SmartCache: context-dependent page caching (for *all* users!) [
=> 226 comments, 21 IRC mentions
https://www.drupal.org/node/2524082 => Config overrides should provide cacheability metadata [
=> 147 comments, 40 IRC mentions
https://www.drupal.org/node/2525910 => Ensure token replacements have cacheability + attachments metadata and that it is bubbled in any case [
=> 176 comments, 29 IRC mentions
http://drupal.org/node/2538228 => Config save dispatches an event - may conflict with config structure changes in updates [
=> 6 comments, 1 IRC mention
WimLeers: little late because I'm in a sprint and was helping people ;<
The upgrade path we're talking about http://drupal.org/node/2528178
http://drupal.org/node/2528178 => Provide an upgrade path for #2354889 (block context manager) [#2528178]
=> 143 comments, 1 IRC mention
berdir: is talking about http://drupal.org/node/2513094
http://drupal.org/node/2513094 => ContentEntityBase::getTranslatedField and ContentEntityBase::__clone break field reference to parent entity [
=> 36 comments, 1 IRC mention