Digital Strategy, Design, Video Production, and Development Agency - Drupal PlanetPosts categorized as 'drupal planet'http://activelamp.comGoing back to Drupal, it's fun again!Actually, we never left. We didn't stop building Drupal sites, even through the long release cycle. However, we did move our company website, [activelamp.com](http://activelamp.com), off of Drupal about 18 months ago. Our company site had been built on Drupal since the _Drupal 4.7_ days. That was back when it started to become uncool to write and maintain your own home-grown CMS. I eventually found Drupal, ditched my custom CMS, and never looked back.<br /><br />Our site started on _Drupal 4.7_, upgraded onto _Drupal 5_, then _Drupal 6_, and also _Drupal 7_ all at the beginning of the release cycles of Drupal. About 18 months ago, when our site was in dire need of an update, we evaluated _Drupal 8_ but realized with no release date in sight, and the fact that we did not want to chase HEAD and develop on unstable API's, we decided to go a different route and build our updated site on [Jekyll](http://jekyllrb.com), a popular static generator. **It's more fun to tinker with new technology when working on non-billable stuff**, which is what we did. We brushed up on our Ruby skills and built out a _Jekyll_ site (which is this site you're looking at if you're reading this blog post before Q3 of 2016).<br /><br />We're getting ready for another update to our company website and moving back to _Drupal_ to do it. _Jekyll_ was great, but it came with its disadvantages over something like _Drupal_. This post will highlight some of the advantages and disadvantages of working with _Jekyll_ the past 18 months, as well as highlight why we're excited to put activelamp.com on _Drupal 8_ in Q3 of this year.Tue, 17 May 2016 02:00:00 +0000http://activelamp.com/blog/drupal/going-back-to-drupal-its-fun/http://activelamp.com/blog/drupal/going-back-to-drupal-its-fun/Adding CKEditor plugins to Drupal 8Drupal 8 has greatly improved editor experience out-of-the-box. It comes shipped with CKEditor for WYSIWYG editing. Although, D8 ships with a custom build of CKEditor and it may not have the plugins that you would like to have or that your client wants to have. I will show you how to add new plugins into the CKEditor that comes with Drupal 8.Sat, 07 May 2016 02:00:00 +0000http://activelamp.com/blog/drupal/drupal8-ckeditor-plugin/http://activelamp.com/blog/drupal/drupal8-ckeditor-plugin/Sandcamp 2016 RecapThe San Diego Drupal Camp was great! You can't beat the weather in San Diego, and as usual, these regional events are great for catching up with old friends that are still plugging away with the Drupal content management system. Checkout our highlight video&#58; <a href="http://activelamp.com/videos/sandcamp-2016-highlights/">![Sandcamp Highlight Video](/images/posts/sandcamp-video.jpg)</a> This year I had the pleasure of giving 3 sessions at the camp, and as promised, I want to share the slides and code for everything that I presented. Each deck is iframed in on this article, feel free to checkout <a href="http://github.com/tomfriedhof">my github page</a< if you want the speaker notes too.Tue, 15 Mar 2016 02:00:00 +0000http://activelamp.com/blog/drupal/sandcamp-2016-recap/http://activelamp.com/blog/drupal/sandcamp-2016-recap/Extending Drupal: all about the service containerThe biggest thing that got me excited with Drupal 8 is the first-class use of services & dependency-injection throughout the entire system. From aspects like routing, templating, managing configuration, querying and persisting data, you name it -- everything is done with services. This is a *great* thing, because it grants developers a level of flexibility in extending Drupal that is far greater than what Drupal 7 was able to. I'll walk you through a few strategies of extending existing functionality, leveraging the power of Symfony's `DependencyInjection` component.Tue, 01 Mar 2016 02:00:00 +0000http://activelamp.com/blog/development/extending-drupal-all-about-the-service-container/http://activelamp.com/blog/development/extending-drupal-all-about-the-service-container/Creating a deployable Docker image with Jenkins - Part 4My previous posts talked about getting your local environment setup using the [Drupal Docker image](https://hub.docker.com/_/drupal/) with [Vagrant](https://www.vagrantup.com/). It's now time to bake a Docker image with our custom application code within the container, so that we can deploy containers implementing the [immutable server pattern](http://martinfowler.com/bliki/ImmutableServer.html). One of the main reasons we starting venturing down the Docker path was to achieve deployable fully baked containers that are ready to run in whatever environment you put them in, similar to what we've done in the past with [Packer](http://packer.io), as I've mentioned in a previous post.Wed, 20 Jan 2016 14:30:00 +0000http://activelamp.com/blog/devops/jenkins-build-docker-images/http://activelamp.com/blog/devops/jenkins-build-docker-images/Our build process using Drupal 8Now that the [release of Drupal 8](https://www.drupal.org/8) is finally here, it is time to adapt our Drupal 7 build process to Drupal 8, while utilizing [Docker](https://www.docker.com/). This post will take you through how **we** construct sites on Drupal 8 using dependency managers on top of [Docker with Vagrant](http://activelamp.com/blog/devops/docker-with-vagrant/). <h3>Keep a clean upstream repo</h3> Over the past 3 or 4 years developing websites has changed dramatically with the increasing popularity of dependency management such as [Composer](https://getcomposer.org/), [Bundler](http://bundler.io/), [npm](https://www.npmjs.com/), [Bower](http://bower.io/), etc... amongst other tools. Drupal even has it's own system that can handle dependencies called [Drush](http://www.drush.org/), albiet it is more than just a dependency manager for Drupal. With all of these tools at our disposal, it makes it very easy to include code from other projects in our application while not storing any of that code in the application code repository. This concept dramatically changes how you would typically maintain a Drupal site, since the typical way to manage a Drupal codebase is to have the entire Drupal Docroot, including all dependencies, in the application code repository. Having everything in the docroot is fine, but you gain so much more power using dependency managers. You also lighten up the actual application codebase when you utilize dependency managers, because your repo only contains code that you wrote. There are tons of advantages to building applications this way, but I have digressed, this post is about how we utilize these tools to build Drupal sites, not an exhaustive list of why this is a good idea. Leave a comment if you want to discuss the advantages / disadvantages of this approach.Wed, 02 Dec 2015 02:30:00 +0000http://activelamp.com/blog/devops/drupal-build-process/http://activelamp.com/blog/devops/drupal-build-process/Visual Regression Testing with Shoov.ioWe recently were introduced to a website testing tool called Shoov. Shoov is a visual regression tool using webdrivercss and we are going to show you how to get it running on your site.Sat, 14 Nov 2015 02:00:00 +0000http://activelamp.com/blog/drupal/visual-regression-testing-with-shoov/http://activelamp.com/blog/drupal/visual-regression-testing-with-shoov/Docker: A Minimalist's ChoiceSat, 17 Oct 2015 02:00:00 +0000http://activelamp.com/blog/devops/docker-a-minimalists-choice/http://activelamp.com/blog/devops/docker-a-minimalists-choice/Drupal to Ember without SavingPreviewing article from Drupal to Ember without savingSat, 10 Oct 2015 00:00:00 +0000http://activelamp.com/blog/drupal/drupal-to-ember/http://activelamp.com/blog/drupal/drupal-to-ember/Setting up a Docker development environment with Vagrant - Part 3Now that I've laid the ground work for the approach that I want to take with local environment development with Docker, it's time to explore how to make the local environment a sane "development environment". In this post we will do just that, setup a local development environment with [Docker and Vagrant]({% post_url 2015-07-19-docker-with-vagrant %}).Wed, 23 Sep 2015 02:30:00 +0000http://activelamp.com/blog/devops/local-docker-development-with-vagrant/http://activelamp.com/blog/devops/local-docker-development-with-vagrant/