Planet Drupal

Subscribe to Planet Drupal feed
Drupal.org - aggregated feeds in category Planet Drupal
Updated: 56 min 48 sec ago

Arpit Jalan: GSOC 2016- Moving supporting functions to services and abstract parent classes- Week 11

Tue, 09/08/2016 - 18:11
TL;DR Last week I had worked on modifying the tests for “Fill Alt Text”, “Emotion Detection” and “Image Properties” features of the Google Vision API module. The only tasks left are moving the supporting functions to a separate service, in addition to, creating an abstract parent class for tests and moving the functions there.

The issues Alt Text field gets properly filled using various detection features, Emotion Detection(Face Detection) feature and Implementation of Image Properties feature of the Google Vision API module are still under review by my mentors. Meanwhile, my mentors asked me to move the supporting functions of the “Fill Alt Text” issue to a separate service and use it from there. In addition, they also suggested me to create an abstract parent class for the Google Vision simple tests, and move the supporting functions to the parent class. Thus, this week, I contributed to follow these suggestions and implement them out.

There are few supporting functions, namely, google_vision_set_alt_text() and google_vision_edit_alt_text() to fill the Alt Text in accordance to the feature requested from the Vision API, and also to manipulate the value, if needed. I moved these functions to a separate service, namely, FillAltText, and have altered the code to use the functions from there instead of directly accessing them.

In addition, there are a number of supporting functions used in the simple web tests of the module, to create users, contents and fields, which were placed in the test file itself, which in one way, is a kind of redundancy. Hence, I moved all these supporting functions to abstract parent class named GoogleVisionTestBase, and altered the test classes to extend the parent class instead and in place of WebTestBase. This removed the redundant code, as well as, gave a proper structure and orientation to the web tests.
These minor changes would be committed to the module directly, once the major issues are reviewed by my mentors and committed to the module.
Categories: Elsewhere

Galaxy: GSoC’ 16: Port Search Configuration module; coding week #11

Tue, 09/08/2016 - 18:05

I have been involved with the Google Summer of Code' 16 project Search Configuration module to Drupal 8. It is entering into the final week of coding. I have really enjoyed the project process. This give university students a unique opportunity to code for real world projects that will be used by the various open source organisations.
Past week I dealt with testing certain components of my ported module. I worked on implementing the simpletest to test the various functionalities. I would like to take this opportunity to share with you the features of simpletest and how to implement it to test the proper working of the functionalities of various sections of the Drupal modules.

The test files are generally kept in src/Tests/ of the root of the module directory. The name of the test file should be suffixed by Test.php. Add a class that extends the webTestBase. Also, you need to add a namespace for the easy location of the class.

Add the name of the module to get loaded. i.e,
public static $module = ['search_config'];

Now lets start writing the test cases. The functions which should be executed should be prefixed by 'test'. For instance, to navigate to a particular link and check whether it returns the correct page;
public function testLink() {
$this->drupalGet('mypages/search');
$this->assertResponse(200);
}

You can run this test by going to Configuration->Testing->Select the test.
Also, add this test file to the .info.yml file. The following line of code will be sufficient enough.
files[]: src/Tests/fileTest.php

There are various types of test cases, here are the assertions available.
So, here is the complete structure of a sample test file to check the accessibility of a page in my search configuration module:
<?php

namespace Drupal\search_config\Tests;
use Drupal\simpletest\WebTestBase;

/**
* Class searchTest
* @group search_config
*/
class SearchConfigFormTest extends WebTestBase {
public static $module = ['search_config'];

/**
* Function to test the accessibility of the search configuration module location.
*/
public function testSearchConfigURL() {
$this->drupalGet('admin/config/search/pages');
$this->assertResponse(200);
}
}

We need to ensure that we write the group of test, i.e the @group tag. Here in this case is the search_config. The tests won't appear in the testing option in the absence of this tag. Also, ensure that a good definition of the function is given as comments for better understanding for the users reading the code.
You could also try out the various other assertions available to explore the various functionalities implemented. The development version of the module is currently available in the Drupal core.

Stay tuned for further updates on this porting process.

Tags: drupal-planet
Categories: Elsewhere

Acquia Developer Center Blog: A Gentle Introduction to Data Science

Tue, 09/08/2016 - 16:23

The words "Data Science" are not themselves sources of dread in most people. At just four and seven letters, respectively, they're almost too cute to be really off-putting like some of the other terms you come across when you begin digging into the field; terms like "k-nearest neighbors" or "tessellation."

And if you can hear the phrase "Euclidian minimum spanning tree" without feeling as though you've encountered something both bizarrely fascinating and deeply disturbing, you are a stronger intellectual force than I.

Tags: acquia drupal planet
Categories: Elsewhere

Cheeky Monkey Media: Bootstrap Carousel + Drupal Paragraphs = Magic

Tue, 09/08/2016 - 16:17
Bootstrap Carousel + Drupal Paragraphs = Magic calvin Tue, 08/09/2016 - 14:17

NOTE: This tutorial assumes you have some knowledge of Drupal site building, field and field display management. It will include some theming code examples.

If you've never heard of the Paragraphs module, it allows you to create "bundles" of fields and then call in those bundles via a paragraphs field on another entity. You can then add any number of these bundles into the entity, in any combination, to build out a page or some other super snazzy component.

Build bundles for a masthead, a pull quote, a banner, a simple text area... etc., and an editor now has a collection of tools to build dynamic pages, beyond the oldschool Title/Body/WYSIWYG situation. There are even modules that will help you get all parallaxy and animated with paragraphs.

The really beautiful thing is, you can nest paragraphs items. Yes, paragraphs items, within paragraphs items within... (The word Inception popped up a lot as we worked out various models).

Ok, so here's a practical example I built recently.

Categories: Elsewhere

Anexus: How to add ReactJS in Drupal 8 with Composer

Tue, 09/08/2016 - 15:37
How to add ReactJS in Drupal 8 with Composer

Inside the Drupal-verse the usage of Composer in our workflow is getting more and more popular.

To be honest, the immersion of composer in Drupal community hasn't been easy, but changes never are easy.

For the beginning of 2015, a new project sees the light Drupal Composer with the idea of modifying the way we do our development process in Drupal.

Drupal Composer project cover from install Drupal core, modules, themes, dependencies, patches and a long list of etc.

One of the elements that Drupal Composer it's going to replace is the famous *Drush Make*.

As I said the changes are not easy, and mostly everybody in our community is little lost (including me) regarding became familiar with this new way of doing our daily task in your jobs.

For that reason, I want to share with your, how to install ReactJS as a library to be used in our Drupal 8 Projects.

Maybe you could be thinking, well what is the fuss, and we could install ReactJS easily using Bower

But, the problem of use Bower is related with the fact of Bower doesn't know anything about Drupal, Bower doesn't have any idea where libraries in Drupal must be allocated, for that reason isn't the proper tool for our needs.

1. Drupal Installation.

In this example I will assume that did you install Drupal using *Drupal Composer* project, using an instruction similar to the following:

$ composer create-project drupal-composer/drupal-project:8.x-dev some-dir --stability dev --no-interaction 2. Adding repository

The library, ReactJS is not part of composer Packagist, but event that is possible to define a custom repository using ReactJS GitHub repository, adding a new composer repository in your composer.json file

"repositories": [ { "type": "package", "package": { "version": "15.3.0", "name": "drupal-libraries/reactjs", "type": "drupal-library", "source": { "url": "https://github.com/facebook/react.git", "type": "git", "reference": "15.3.0" }, "dist": { "url": "https://github.com/facebook/react/releases/download/v15.3.0/react-15.3.0.zip", "type": "zip" } } } ]

As you can see, we provide the ReactJS information in two formats, the first one is the GitHub repo and the second is a zip file of a specific release, depends of composer options, ReactJS will be clones or just downloaded and extracted. 

3. Adding ReactJS  in your project 

With your new ReactJS repository correctly added in your composer.json file the only remaining task in download the code using the next instructions.

$ composer require drupal-libraries/reactjs 15.3.0

When this command finished we will get inside /web/libraries/reactjs the requires files

libraries `-- reactjs |-- build | |-- react-dom.js | |-- react-dom.min.js | |-- react-dom-server.js | |-- react-dom-server.min.js | |-- react.js | |-- react.min.js | |-- react-with-addons.js | `-- react-with-addons.min.js |-- examples | |-- basic | |-- basic-click-counter | |-- basic-commonjs | |-- basic-jsx | |-- basic-jsx-external | |-- basic-jsx-harmony | |-- basic-jsx-precompile | |-- fiber | |-- jquery-bootstrap | |-- jquery-mobile | |-- quadratic | |-- README.md | |-- shared | |-- transitions | `-- webcomponents `-- README.md

I recommend checking the slides Improving your Drupal 8 development workflow http://weknowinc.com/talks/2016/drupalgov-workflow for more references about how to use Composer in Drupal 8 projects
 

If you are interested in more tricks and tips related to the new workflow in Drupal 8, stay tuned because Jesus Olivas and I will propose a BOF in DrupalCon Dublin to talk about the subject. 

enzo Tue, 08/09/2016 - 07:37
Categories: Elsewhere

InternetDevels: Drupal 8: overview of the Commerce 2.x module for online stores

Tue, 09/08/2016 - 14:28

E-commerce in Drupal 8 is a topic of interest for many developers. If you are among them, you’ve come to the right place — our Drupal developer has written a blog post on the Commerce 2.x module.

Read more
Categories: Elsewhere

ComputerMinds.co.uk: Drupal 8 Config Management - how should I add config to a D8 site?

Tue, 09/08/2016 - 14:00

For me this is the biggest unanswered question hanging over my development of Drupal 8 websites: How should I add config to a Drupal 8 site?

This article will provide plenty of options, but unfortunately no definitive answer.

Categories: Elsewhere

MD Systems blog: MD Systems introduced NP8 to the Big Apple

Tue, 09/08/2016 - 10:46
At the beginning of July we attended NYC Drupal camp, which is part of a bigger, mission-driven open source conference called Open camps. NYC Drupal camp is one of the biggest community-organized Drupal events in the world and we are always eager to return to it.
Categories: Elsewhere

Chromatic: The Road to Speaking at DrupalCon

Mon, 08/08/2016 - 19:06

Earlier this year I was fortunate to speak at DrupalCon New Orleans. I'd been working towards speaking at DrupalCon for a few years and it wasn’t until after I spoke that I reflected on just how much effort went into it. I had underestimated the process. Because I’m likely not alone in doing so, I’d like to share what I have learned along the way.

I'll start with why I wanted to speak at DrupalCon. I'll then share my story before providing some concrete advice for every step of the way.

Why speak at DrupalCon? The audience benefits

We’re an open source community and a well-crafted presentation is a valuable form of contribution. It provides information in a format that is often more effective than lines of code and walls of text. It also provides attendees with immediate access to the author for questions. Not to mention, the audience in the room is a small percentage of whom a recorded session will reach.

Your organization benefits

Sponsoring an event like DrupalCon isn't always within reach for a smaller organization. While a session should never be a sales pitch, each one is a marketing opportunity. A chance to mention the organization, sport its logo, and hand out swag. The success of a session can also boost the perception of a given agency or organization.

You benefit

Public speaking is an effective way to conquer a common fear and build confidence. Even veteran speakers still get nervous. Battling those nerves and coming out victorious is an excellent feeling.

Public speaking engagements are also an impressive line on a resume. Or perhaps it helps convince your boss that you’ve gone the extra mile and deserve that raise.

Finally, even though you’ll be the one presenting, you will learn a lot while preparing. It’s common to believe you don't know enough about a topic to talk about it. If you're interested in a topic, propose it anyway and use it as motivation to dive deep into that topic.

My story: You want to speak at DrupalCon? Start smaller

I first proposed a session hoping for a benefit I didn't already mention: a free ticket to DrupalCon Austin (2014). I'd co-founded a self-funded company and we were trying to save money. We submitted a session together and I knew we were in trouble when the proposal asked about our previous speaking experience. We didn't have any and our session wasn't selected. Strike one.

The company didn't last (not because we had to pay for the ticket), but I still wanted to speak at a DrupalCon. I now knew I would need to first speak at smaller events.

I was living in Chicago and MidCamp 2015 accepted one of three sessions I proposed. I then proposed three for DrupalCon Los Angeles shortly thereafter. Unfortunately, MidCamp was after LA session selection so I still had little to show. Once again, my sessions weren’t selected. (Of course, it could’ve also been because my topics weren’t worthy.) Strike two.

Shortly after LA I moved to Golden, CO, and shortly after that I spoke at DrupalCamp Colorado. Unfortunately my session didn't get recorded, but I was refining my skills nonetheless. Months later I spoke about theme functions and render arrays at BADCamp 2015 and I loved it. After BADCamp, I felt like I had established a track record and found a topic worthy of DrupalCon.

I took a third swing. I proposed a session on render arrays to DrupalCon New Orleans (2016). I spent over five hours writing just the proposal. A month or two later I was ecstatic when I received word that my session was selected. Home run!

Speaking at DrupalCon was a lot of fun, and was worth everything it took to get there. Looking back, I am thankful that the organizers consider experience at smaller events. Without that experience I would have been much less prepared. Speaking at DrupalCamps helped me refine my techniques and mental approach. It helped me build the confidence it takes to speak in front of a couple hundred people.

Advice for speaking at any Drupal event

There are plenty of websites, articles, and videos dedicated to providing advice for public speaking. I'm going to keep my advice to a list more tailored to Drupal events. I will link to some of those websites and articles when appropriate.

Picking an event
  • Drupical is a great way to find DrupalCamps and other events. If nothing else, attend and attempt to speak at the camps closest to you.
  • If you’re able to travel for a DrupalCamp, you might as well attend the bigger ones. You can often find camp websites from previous years. See how many sessions they had, who from the community spoke, and how many people attended.
  • Speaking at local meetups is another opportunity to practice. You may find the smaller and more familiar audience to be a benefit or it might make you more nervous.
Picking a topic
  • Consider the event's audience when brainstorming topics. DrupalCons often focus on the newest technology. Sessions at smaller events are more likely to be about less ambitious topics.
  • Only speak about topics you’re excited about. If not, it will be difficult to prepare for, and the audience will suffer from your lack of enthusiasm.
  • If you don't have confidence in your knowledge on intermediate topics, propose a beginner session. There are plenty of beginners at Drupal events and they need those sessions. That said, your lack of confidence may just be Imposter Syndrome speaking.
Proposing a session
  • When proposing a session, tell a story. Another simple formula: introduce a pain point, allude to your solution, and explain what you’re going to cover. Be sure to proofread it! Compare it to those written by seasoned veterans and try to determine if yours is on the same level.
  • Update your profile on the event's site with your picture and information. Make sure your online presence elsewhere, such as your Drupal.org profile, is up to date. Most events don’t do blind selections and they will look around to determine if you’re worthy.
  • DrupalCon track chairs and DrupalCamp organizers make themselves available for feedback on session proposals. Ask them about yours! Listening to their suggestions and building familiarity with them is only going to help.
Preparing and practicing
  • When preparing slides for a session, I’d recommend the design tips listed on speaking.io. I’d recommend reading the entire site, actually. It is my favorite resource on speaking about technical topics. I also bought the remote he suggests and I love it.
  • I aim to finish building my slides a week before my talk. I then practice once a day for the week leading up to the talk. This reduces the pressure and gives me time to tweak anything I don't like while rehearsing.
  • I also rehearse my talk in front of my wife. It helps get over the nerves because it’s hard to practice in front of someone you know well. She often has no idea what I’m talking about, but if she still doesn’t after 45 minutes of talking, I may have failed. Her questions often expose weaknesses in what I'm saying.
Presenting a session
  • I received great advice before first speaking at MidCamp: If you've arrived early and are waiting to start your session, talk to people in the audience. It helps break the tension.
  • Most Camps and all DrupalCons record the sessions. This may require you to remember to start the recording before you begin speaking. A volunteer will explain the technology to you, so you don’t have to worry about that. Just don’t forget to hit the record button!
  • As for the rest, I’d again recommend reading speaking.io’s advice on scoping out the room, dealing with nervousness, delivery, and handling questions. Zach covers these topics better than I ever would.
  • Start talking and have fun!

That’s about all I’ve got. Please reach out on Twitter (@guschilds or @chromatichq) if you have any questions or any ideas to add to the list. We are an open source community, after all!

Categories: Elsewhere

Drupal core announcements: Don’t Miss the Drupal Midwest Developer Summit — Sign Up Today!

Mon, 08/08/2016 - 18:24

It’s 80 degrees and sunny in beautiful Ann Arbor, Michigan, and we are enjoying a tasty cold beverage while dreaming of sprints for Drupal 8 and the community that comes with them.

Make your plans to join us for the Drupal Midwest Developer Summit, August 19-21, on the University of Michigan campus, in Ann Arbor MI.

Drupal community members will be sprinting for 3 days to make D8 the best it can be. You don’t have to be a coder to come! We also need help with writing documentation, designing UI, and helping to organize the sprints.

We will be having a group lunch on Friday and Saturday provided by your registration fees.

Sign up now before registration closes in a little over a week.

Register at https://mwds2016.eventbrite.com

Questions? Contact mlhess@drupal.org.

Categories: Elsewhere

Acquia Developer Center Blog: Cf Shell: Streamlining CloudFormation Development with a Familiar Approach

Mon, 08/08/2016 - 17:46

As Amazon Web Services has grown into the vast platform that it is today, it has created many opportunities for innovation: in how we interact with the products and how we fit all the pieces together. AWS's API-based nature has allowed an ecosystem of products to arise, all piggybacking on each other, ultimately enabling developers to explore unique ways to use their products.

Tags: acquia drupal planet
Categories: Elsewhere

Deeson: Getting to grips with automated deployment in Drupal 8

Mon, 08/08/2016 - 16:24

Many agencies have a well defined way of deploying updates to their customers’ Drupal 7 sites. Deeson is no exception to that rule. With the massive changes in Drupal 8, we figured this process would need to be looked at again. Our recent Notes Day, a dedicated day for improving how we work as an agency, was the perfect opportunity to do so.

Before we start

To get a good understanding of what we were trying to (re)build, here’s a quick run-down of a common Drupal 7 set-up:

  1. We use Drush make to download and patch everything that isn’t custom.
  2. Custom modules, themes and libraries are version controlled, while contributed code isn’t. This keeps the repository small.
  3. Drupal core is the exception: It is also version controlled so we can easily track changes to .htaccess files and the like.
  4. Configuration is stored using the Features module. Our features are version controlled as custom modules.
  5. The .gitignore file is configured for all of the above.
  6. We use the Master module to enable/disable modules per environment

 

Composer all the things! Or not?

Our first goal was to move away from Drush make and use what everyone else is using: Composer. Drupal 8 uses it to build its own dependencies and has recently opened a Composer repository of its own. Keep in mind this is still in alpha.

But here we already ran into a major issue. Packagist, the main Composer repository, already lists Drupal as a package. So if we want to grab the “drupal/drupal” package or the “drupal/core” package, Composer grabs it from Packagist instead of the official Drupal repository. This is due to Packagist trumping all other repositories.

You can, however, disable Packagist as a repository. But then you disable it for all required packages. Meaning if your site also needs a library from Packagist, you’re out of luck. There is no way to disable Packagist for just one package.

To add insult to injury, there’s also another community-built repository at https://packagist.drupal-composer.org/ and a “drupal/drupal” on Packagist which claims to replace “drupal/core”, even though the latter is the one you ideally want to use.

Conclusion: We have sources all over the web claiming to host Drupal for Composer, hardly any of them play together nicely and with the official repository in alpha it doesn’t seem like the situation will improve any time soon.

 

So what should we use?

If you are dead-set on using Composer, have a look at the drupal-project repository on Github by Bojan Živanović. He knows a ton about Composer and managed to get it to work with Drupal 8.

As you can tell by looking at his repository, there is a lot more needed than just a composer.json file to get it to work. We found this to be a dealbreaker as we would be relying on Bojan’s expertise blindly without knowing half of what’s actually going on within our build process.

If you share our inhibitions and want to see how things evolve first, we do have good news! Drush make still works beautifully so you can port that workflow straight to Drupal 8 with little to no alterations. We decided to go with this option for the time being.

 

Next up: Configuration management

With Drupal 8 came the configuration management initiative (CMI). This basically replaces the Drupal 7 Strongarm module by allowing you to export any configuration as a YAML file.

We figured we’d use this instead of Features because it’s always good to cut out the middle man, right? Wrong. It turns out you can’t simply ship some YAML file updates to your server and expect the site to “revert” to the new state like Features used to do in Drupal 7.

If you want to update your configuration, you’ll need to both export the new YAML file and write an update hook that details exactly what’s changed. This is obviously quite cumbersome.

Furthermore, you can’t enable a module that has certain configuration if it already exists in the website. Seeing as features are modules that do exactly that, the Features team had to swap out the configuration manager in Drupal 8 in order to make this work. Sounds dirty, but at least it works.

Conclusion: We gladly accept the presence of the middle man known as Features. We would have loved to use “just” Drupal core for this. Sadly it seems CMI fixed a lot of things, but not deployment workflows.

 

Wow, so what about the Master module?

So far we’ve scored 0 out of 2. The silver lining being that we can keep using the old workflow just fine. So with high hopes we took a look at the Drupal 8 version of the Master module. At least, we tried to - we couldn’t because there is no release for Drupal 8.

According to the module maintainer “derhasi”, there are no plans to port Master to Drupal 8. Because this news has made us all really sad pandas, we may spend one of our developer lounges cooking up a successor because let’s face it: Nobody likes to score 0 out of 3.

 

In conclusion

To sum things up: It’s perfectly safe to use your old workflow for the time being. We’ve tried and tested it and it all works fine. Except Master. Master is really, really dead right now.

However, we don’t want to advocate stagnation so we will keep a close eye on future developments regarding this subject.

It would also be great to hear from the people behind what we just investigated: Larry Garfield (Crell) for CMI or Bojan Živanović (bojanz) for Composer. Let’s see if we can get them to weigh in on the matter and get a discussion going.

Categories: Elsewhere

Kristian Polso: How to install Drupal 8 (and Composer) on Windows 10 Bash

Mon, 08/08/2016 - 15:29
Microsoft released Windows 10 Anniversary Update on August 2nd 2016, and this update included a much awaited "Windows Subsystem for Linux", which allows the user to run bash and command line Linux applications. It uses Ubuntu 14.04 as the base and as such is a great platform for local PHP development. In this tutorial I will show you how to install Drupal 8 (and Composer) environment on it. Roughly speaking, the necessary steps for this are:
Categories: Elsewhere

Annertech: Top 5 Places to Visit While at DrupalCon Dublin

Mon, 08/08/2016 - 11:12
Top 5 Places to Visit While at DrupalCon Dublin Coming to DrupalCon Dublin? Planning to take some extra time to explore the city? Here's our top 5 list of things to do and see while here - other than Drupal of course!
Categories: Elsewhere

LevelTen Interactive: drupal_set_message() Cheatsheet: Variables, links, and formatting

Mon, 08/08/2016 - 07:00

When developing custom modules, it is often helpful to the end-user to print out various messages to alert them to errors or explain what has just been done. Drupal does this all the time - for example, after saving a new node, a green notice is printed to the page letting the author know the article has been saved:

...Read more

Categories: Elsewhere

INsReady: Use the official Docker Drupal library and its developer version

Mon, 08/08/2016 - 06:36

By now, you probably have heard many great things about Docker's approach to DevOps. I first looked into Docker in 2015, when I was mentoring a GSoC project, and the project had a need to open new Drupal 8 sandbox very often. Since then I have been pushing updates to the official Docker Drupal library.

Docker or the approach Containerization, in my opinion, is like Drupal. It makes DevOps like building legos. My use cases are below:
  • Quickly create a new sandbox for testing. It only takes two commands (including downloads and configurations) in a few seconds to create a new site on local computer or on a public server. See this tutorial.
  • Front-end development has become complex with development tools dependency. But, with Docker, we can put designers or front-end developers back to their focus. See example, one command to get everything for Zen 7.x-6.x Style-guide Driven Development or Polymer development tool kit
  • Basing on the official Docker Drupal library, we created a version for development. The purpose is that the development version inherits the official library but includes all the dev tools, so developers use dev container, while the deployment team always knows they will deploy the exactly same system-requirements container as the developers use. Plus, the dev version has Xdebug Remote debugging enabled as default; all those took to set up was one command.
  • Sometimes, I tech Drupal to students at universities. I used to ask my students to make a full backup before class, and prepare to install Ubuntu on day one. But, now, no matter they use Windows, MacOS or Linux. I send them to the same tutorial and ask them to build a first simple Drupal site in 30 minutes.
  • We built our own muti-site hosting with run-time PHP separation. Diagram demonstration here.
  • Some projects have multiple Drupal sites or other web projects, they do communicate with each other (Our recent example was this Drupal Commerce on Drupal 8 to Magento stock synchronization). With the tools above, we can create dev environments the same way before, and two extra commands to network them together. Xdebuging them at the same time with different PHP versions or dependencies is just as easy as typing a new URL on the address bar.
  • At the end of the work, you always know, you can completely shut down your dev environments or delete them. There will be no hidden wasted resources left, including CPU or Disk space.
A few things to keep in mind about the official Docker Drupal library
  • There are many contributed Docker libraries for Drupal on the web. With the official library, you need at least two commands to build a Drupal site, one command is for creating a database, the other is for installing Drupal and all supporting software (except database). Some contributed libraries even made one command to achieve this. However, one-command approach is more like a Virtual Machine approach, which puts everything into one box and ready to use. Although, there is nothing wrong with this approach, this approach won't allow your DevOps experience like lego building. Docker's value is more than a faster VM.
  • The official Docker Drupal library follows closely to the official Drupal installation documentation. This allows the docker library always follow the Drupal requirements and best practice.
  • The official library is not trying to be one solution for all. In fact, this image doesn't contain most PHP libraries for contributed modules. However, this library tries to be the base building block for all Drupal sites. Here is one example: Commerce on Drupal 8 distribution library and its developer version built on top of the official library
  • This library is open sourced here. Constructive critique is welcome!
Tag: Drupal PlanetDocker
Categories: Elsewhere

Chapter Three: Twig Extensions and Views FTW in Drupal 8

Sun, 07/08/2016 - 05:58

(This module was tested on drupal 8.1.8)

Problem to solve

Sometimes working with Views can be a challenge, in some cases you want to modify the values or process the content of the field.

Many developers use the preprocess functions, or alter the query of the view, however there is another option: twig filters.

The Goals:

Being able to calculate the reading time of any given node (body field).

The field needs to output: "5 min read", "9 min read", depending on the word count of the node.

Categories: Elsewhere

OSTraining: 7 New Improvements You'll See in Drupal 8.2

Fri, 05/08/2016 - 22:44

The Beta version of Drupal 8.2 has arrived and is ready for testing.

There are many upgrades to the developer experience, but what changes will end-users see?

Here are 7 improvements that users will see in Drupal 8.2.

Categories: Elsewhere

Rakesh's DSoC 16 blog: Solving merge Conflicts in drupal8 - GSoC16 - Week10

Fri, 05/08/2016 - 18:33
Solving merge Conflicts in drupal8 - GSoC16 - Week10 rakesh Fri, 08/05/2016 - 22:03
Categories: Elsewhere

Zivtech: Why Your Employees Should Learn to Teach

Fri, 05/08/2016 - 15:01
How Formal is Your Training?
In the summer of 2014, we did our own developer boot camp. We got a grant from the City of Philadelphia.

The people who applied for the boot camp were so much more diverse than the people who usually apply for tech jobs. We didn't try to have women and minorities in our boot camp; it was a diverse application pool. They were mostly recent college grads; some of them were still in college, and some didn't have a tech background. There were science and humanities majors. They were starting to see the writing on the wall.


The boot camp was a six week course. It was amazing to see how hard they worked. Some of them were going to be more backend, some more frontend, and some would be better project managers. All different skills, and we hired some people, which was another reason for doing it.

Find out who is reliable, who learns quickly, and who communicates well. Then hire the star students. I helped others get jobs in other companies. What we do is a trade, and you need to go through an apprenticeship to be really good.

It's hard to make time for your people when you're a leader. You are going from meeting to meeting, and everyone's running up on you, and there are a thousand emails. I tell myself, "None of that is as important as what someone's asking me right now." They're not always asking me technical questions. Sometimes they're asking me how to deal with a client, or sometimes they talk about their personal lives.

The most important thing I need my people to learn is not how to be a great developer. The most important thing for them to learn is to value training people. When they value training people, they can train more people.

If all they do is learn to be a great developer, I'll get some value out of them. If they learn to teach everyone around them, and to grow up the next generation that we hire, that’s a lot more value. Luckily, teaching is a really great way to learn.

How we work is we teach, and we learn, and we teach, and we learn.


Download the full Grow Your Own white paper for free.
Categories: Elsewhere

Pages