Drupal Fire - Quick Roundup from important Drupal blogs and sites

Subscribe to Drupal Fire - Quick Roundup from important Drupal blogs and sites feed
News, views, tips, and tricks from the best Drupal developers, designers, and writers. All Drupal, all the time.
Updated: 2 hours 16 min ago

DrupalCamp Spain 2014

Tue, 2014-05-20 16:09

Cocomore (via DrupalFire)

Last weekend three of us from Cocomore attended to DrupalCamp Spain 2014. This year it was held in the beautiful city of Valencia, at the East Coast of Spain, full of magnificent buildings and the land of Paella and Horchata. Because we know of the importance of these events, this Drupalcamp was sponsored by Cocomore.


read more

Categories: Drupal Universe

Drupal 8 multilingual tidbits 15: configuration translation basics

Mon, 2014-05-19 17:13

Gábor Hojtsy (via DrupalFire)

After a long 8 months break in the article series, we are back to talk about configuration translation basics. Why the long break? Well, both the configuration and content system was in heavy development with changes and I did not want to get you content that would be quickly outdated. Hopefully now it is safer to talk about what is going to end up in Drupal 8 for these systems. If not, well, then I’m sorry. We’ll cover configuration first because that is more baked.

The Drupal 8 configuration system is a boon for language

As I wrote in the previous article in the series, configuration is now encompassing lots of settings that were variables or used custom settings storage in Drupal 7. The biggest value for non-English and multilingual sites in Drupal 8 of the configuration changes is that now a common system is used to manage your site name, email text settings through to views, field settings, entity form displays, etc. We can introduce language and translation support in a way that modules will need to plan with. It is not just an optional contributed add-on but a core feature.

Categories: Drupal Universe

Configuring Apache Solr 3.6 for Drupal on Ubuntu 14.04, with password authentication

Mon, 2014-05-19 15:26

2bits (via DrupalFire)

Most of high traffic or complex Drupal sites use Apache Solr as the search engine. It is much faster and more scaleable than Drupal's search module.
In a previous article on Drupal with Apache Solr 4.x, we described one way to install the latest stable Apache Solr 4.x. That article detailed a lot of manual steps involving downloading, extracting, setting permissions, creating a startup script, ...etc.

read more

Categories: Drupal Universe

Content Delivery Networks (CDNs)

Fri, 2014-05-16 13:08

Lullabot (via DrupalFire)

In this episode Addison Berry talks with special guest Will Hetherington (from NetroMedia), along with Lullabots Joe Shindelar and Ben Chavet, about content delivery networks, otherwise known as CDNs. The term is thrown around quite a lot, especially when talking about ways to improve your site performance, but what exactly is a CDN and how do they work?

Categories: Drupal Universe

Configuring Apache Solr 4.x for Drupal, with password authentication

Mon, 2014-05-12 19:34

2bits (via DrupalFire)

Most of high traffic or complex Drupal sites use Apache Solr as the search engine. It is much faster and more scaleable than Drupal's search module.
In this article, we describe one way of many for having a working Apache Solr installation for use with Drupal 7.x, on Ubunutu Server 12.04 LTS.
For this article, we focus on having an installation of Apache Solr with the following objectives:

Use the latest stable version of Apache Solr

read more

Categories: Drupal Universe

The investment case for employing a Drupal core contributor

Wed, 2014-05-07 21:40

Dries Buytaert (via DrupalFire)

Topic: DrupalAcquiaBusiness

I've long been convinced that every well-run Drupal agency of 30 people or more can afford to hire a Drupal core contributor and let him/her work on Drupal core pretty much full-time. A healthy Drupal agency with 30 people should be able to do $5MM in revenue at a 15% net profit margin #1. This means they have $750k in profits that can be invested in growth, saved as reserves, or distributed among the owners.

There are many ways you can invest in growth. I'm here to argue that hiring a Drupal core contributor can be a great investment, that many Drupal agencies can afford it, and that employing a Drupal core contributor shouldn't just be looked at as a cost.

In fact, Chapter Three just announced that they hired Alex Pott, a Drupal 8 core maintainer, to work full-time on Drupal core. I couldn't be more thrilled. Great Alex, great for Drupal, and great for Chapter Three! And a good reason to actually write down some of my thoughts.

The value of having a Drupal core contributor on staff

When Drupal 8 launches it will bring with it many big changes. Having someone within your company with first-hand knowledge of these changes is invaluable on a number of fronts. He or she can help train or support your technical staff on the changes coming down the pipe, can help your sales team answer customer questions, and can help your marketing team with blog posts and presentations to establish you as a thought-leader on Drupal. I believe these things take less than 20% of a Drupal core contributor's time, which leaves more than 80% of time to contribute to Drupal.

But perhaps most importantly, it is a crucial contribution that helps ensure the future of the Drupal project itself and help us all avoid falling into the tragedy of the commons. While some core contributors have some amount of funding — ranging from 10% time from their employers to full-time employment (for example, most of Acquia's Office of the CTO are full-time core contributors) — most core contribution happens thanks to great personal sacrifice of the individuals involved. As the complexity and adoption of Drupal grows, there is a growing need for full-time Drupal contributors. Additionally, distributing employment of core contributors across multiple Drupal organizations can be healthy for Drupal; it ensures institutional independence, diversified innovation and resilience.

Measuring the impact of a Drupal core contributor on your business

While that sounds nice, the proof is in the numbers. So when I heard about Chapter Three hiring Alex Pott, I immediately called Chapter Three to congratulate them, but I also asked them to track Alex's impact on Chapter Three in terms of sales. If we can actually prove that hiring a Drupal core contributor is a great business investment, it could provide a really important breakthrough in making Drupal core development scalable.

I asked my team at Acquia to start tracking the impact of the Drupal core contributors on sales. Below, I'll share some data of how Acquia tracked this and why I'm bullish on there being a business case.

For Acquia, high quality content is the number one way to generate new sales leads. Marketers know that the key to doing online business is to become publishers. It is something that Acquia's Drupal developers all help with; developers putting out great content can turn your website into a magnet. And with the help of a well-oiled sales and marketing organization, you can turn visitors into customers.

Back in December, Angie "webchick" Byron did a Drupal 8 preview webinar for Acquia. The webinar attracted over 1,000+ attendees. We were able to track that this single piece of content generated $4.5MM in influenced pipeline #2, of which we've managed to close $1.5MM in business so far.

Even more impressive, Kevin O'Leary has done four webinars on Drupal's newest authoring experience improvements. In total, Kevin's webinars helped generate $9MM in influenced pipeline of which almost $4MM closed. And importantly, Kevin had not worked on Drupal prior to joining Acquia! It goes to show that you don't necessarily have to hire from the community; existing employees can be made core contributors and add value to the company.

Gábor Hojtsy regularly spends some of his time on sales calls and helped close several $500k+ deals. Moshe Weitzman occasionally travels to customers and helped renew several large deals. Moshe also wrote a blog post around Drupal 8's improved upgrade process using Migrate module. We aren't able to track all the details yet (working on it), but I'm sure some of the more than 3,200 unique viewers translated in to sales for us.

Conclusion: investment returned, and then some

Obviously, your results may vary. Acquia has an amazing sales and marketing engine behind these core contributor, driving the results. I hope Chapter Three tracks the impact of hiring Alex Pott and that they share the results publicly so we can continue to build the business case for employing full-time Drupal contributors. If we can show that is not just good for Drupal, but also good for business, we can scale Drupal development to new highs. I hope more Drupal companies will start to think this way.


#1 I assumed that of the 30 people, 25 are billable and 5 are non-billable. I also assumed an average fully-loaded cost per employee of $125k per head and gross revenue per head of around $180k. The basic math works out as follows: (25 employees x $180k) - (30 employees x $125k) = $750k in profit.

There are 365 days per year and about 104 weekend days. This means there are 260 business days. If you subtract 10 legal bank holidays you have 250 days remaining. If you subtract another 15 business days for vacations, conferences, medical leave and others, you have 230 business days left. With a blended hourly rate of $130 per hour and 75% utilization, you arrive at ~$180k gross revenue per billable head.

I confirmed these numbers with several Drupal companies in the US. Best in class digital agencies actually do better; they assume there are 2,000 billable hours in a year per head and maintain at least a 85% chargeability rate (i.e. 1,700 billable hours per head). Many companies do less because the maturity of their business, the market they are in, their geographic location, their ambitions, etc. It's not about what is "good" or "bad", but about what is possible.

#2 "Influenced pipeline" means that the content in question was one factor or touch point in what ultimately lead potential customers to become qualified sales leads and contacted by Acquia. On average, Acquia has 6 touch points for every qualified sales lead.

Categories: Drupal Universe

Learn Drupal from the best by making it better at sprints

Wed, 2014-05-07 13:46

Gábor Hojtsy (via DrupalFire)

Drupal is right in the middle of web technology, an ideal integrator of all kinds of things. Just like PHP itself it may be clunky here and there but it is a very efficient tool to build great experiences. And even if you are a great JS developer or a pro PHP person, maybe you have mad debugging skills, you always have something to learn. Now there are great books, sometimes even better videos, but nothing beats hands-on learning. When you get together with other people working on the same thing you learn so much about how they work and even if you gain no new knowledge about programming per say, you learn new tricks and ways to achieve things:

Two days working with the Drupal Community in #DrupalDevDays help you to learn more than one week working alone at home :)

— Javi Santos (@javisr) March 27, 2014

Not only that but you can also look into how the tools you work with are made and that all of us are human:

Greatest thing about code sprints: Hearing respected core devs say "I don't understand that." "Me neither." We all learn. #drupaldevdays

— Marc van Gend (@marcvangend) March 28, 2014

Finally, by helping to improve the tools you use, you gain much better knowledge about them. Close to the start of my web involvement I worked a lot on translating the PHP documentation to Hungarian and I got into Drupal fixing core issues for translations. By becoming one of the thousands building the system you use you also gain more credibility when you are looking for help in your weak areas as well:

after almost a decade of #drupal love i just became a real drupalist at #drupaldevdays - i am now a core contributor! http://t.co/VziKa9y7h9

— aboros (@hunaboros) March 27, 2014

But not everyone can do this right? You need to be a professional programmer and pay expensive fees to get into events? Wrong! So wrong! There are always sprints around the globe and more and more local Drupal events are announced every day. Starting out with a simple issue on a one day sprint is a great start. Drupal can always be improved in all kinds of ways whether that is accessibility testing, documentation, perfecting button colors and radiuses or finding and documenting bugs. All of those are great contributions.

Drupal Dev Days sprint photo by Amazee Labs

The best places to immerse yourself in contribution are multi-day sprints though. If you have any opportunity to go to those, I would definitely suggest you join one. Why? It takes a fair bit of time to get set up, understand the issue, start providing a solution and even though at the end of the one day sprint, you will promise to get back to it a week later from home, it is almost certainly not going to happen. There is nothing wrong with you, you just have other priorities when you get out of sprint-mode. So for ideal involvement pick a multi-day sprint. It is not only that you have more time to work on things, you can get to know the people better as well on the social events. Some conferences, especially DrupalCons include extended sprints before/after the event. If you just go to the main conference days, you have much less chance to interact with people who shape the future of Drupal, while at the extended sprints, you can get involved and work with them real time. How is that for growing your potential?

Here are some examples of events with multi-day sprints where my friends from the multilingual initiative will be sprinting, feel free to add more in the comments:

DrupalCamp Spain in Valencia is coming up in a little over a week on May 16-18th. All three days have sprinting opportunities and some of the leaders from multilingual, frontend and migrations will be there!

Some people may only be aware of the Friday sprint at DrupalCons. Get a lot more out of the event by being involved with the pre and post sprints as well. DrupalCon Austin sprints last from as early as May 30 to as late as June 8th. Likewise DrupalCon Amsterdam sprints will be on from the 27th of September to as late as 5th of October. But DrupalCons are expensive, no? Well, there is no ticket needed to attend on the days when there is only sprinting, that is the pre/post sprint days and the Friday sprint. So if you join at the end, there is 3 days of consecutive working with the Drupal community for no charge where the people you interact with have no conflicting schedules to do or see sessions. How is that for hands-on experience?

Hope to see you at one of these events and other sprints in 2014 and onwards! Learn Drupal by getting involved, it is for the benefit of us all!

Categories: Drupal Universe

Presentation: Drupal Performance Tips and Tricks

Sat, 2014-05-03 02:36

2bits (via DrupalFire)

On Friday May 2nd, 2014, Khalid of 2bits.com, Inc. presented on Drupal Performance.
The presentation covered important topics such as:

Drupal misconception: Drupal is slow/resource hog/bloated
Drupal misconception: Only Anonymous users benefit from caching in Drupal
Drupal misconception: Subsecond response time in Drupal is impossible for logged in users
Drupal misconception: Cloud hosting is more cost effective than dedicated servers

The presentation slides are attached for those who may be interested ...

read more

Categories: Drupal Universe

Last Year’s Successful Charity Effort is Making a Difference

Fri, 2014-05-02 01:33

Aaron Winborn (via DrupalFire)

Hello, My name is Aaron Winborn, and I was the recipient of the Society for Venturism's charity last year, to receive a future cryonic preservation at the facilities of the Cryonics Institute for when the time comes. I'm indebted to many of you for your contributions, and I want to thank you from the bottom of my heart for the peace of mind that this gives me. I still have an albeitedly diminished bucket list of things to do, but I don't stay up fretting over the things I'm incapable of accomplishing, in large part to this assurance. I know the odds are still not in my favor, but at least I have a significantly better chance of revival than if I were buried or cremated.

That said, This past year has been both challenging and a blessing. Challenging because of all the difficulties brought on by having to adjust to the continuing degeneration brought on by Amyotrophic Lateral Schlerosis, ALS, better known in the United States as Lou Gehrig's Disease, or Motor Neuron Disease in other parts of the world. Although I am not yet completely paralyzed, or locked in as they say, I am confined to my wheelchair, and cannot move my hands or arms. My breathing capacity is no longer measurable, and I cannot go for more than thirty seconds without mechanical ventilation before I'm in distress. I am not yet on a vent with a tracheostomy, but we are considering that as the next step to prolong my life. It's a difficult decision to make, however, because of the extraordinary amount of care that I would require around the clock, not to mention the possible loss of a quality of life. It's no wonder that only about ten percent of patients choose a tracheostomy, and only fifty percent of those go on to survive another year.

If that sounds scary to think about, well yes, it is. I could go on with a report of challenges we face, including the utter loss of the ability to speak or to understand spoken language, to the loss of the ability to eat or drink, to the devastation this awful disease has wreaked on my wife and our two young daughters, but I wouldn't be able to do it justice in a few short paragraphs, especially when I want to make sure that I leave space for the good things in my life. So on with the good.

First, I have, after a year or so of giving up reading anything not available on the Internet, have reawakened my love of literature. I've rediscovered the ebook format, and am now devouring about two books a week. Mostly science fiction, but dotted with the occasional contemporary fiction. I'm also still participating in the Drupal community, with a friend who volunteers two hours a week and a tricked up communication device.

Although I have been largely holed up this winter, I still manage to get out every couple of months to see a movie with some friends, and it's been fun sitting at the picture window and watching the girls play in the snow. Oh, how I look forward to the warmer seasons when I'll be able to "walk" the neighborhood again.

I also have been exploring new ways of communicating with my sweetie. Certainly challenging, because of my inability to use the verbal bandwidth, and because so much of her time is taken up as both my primary caregiver and being almost a single parent. On top of that, my day is so broken up and consumed with my caregiving that I find it difficult to even focus on an email that I find myself consolidating my efforts and try to cheat, by counting in my mind a quick CC in an email, or say a mention in a magazine article or a blog post as a valid form of communication. But I know in my heart that doesn't fully count, so I continue to find new ways to let her know how special she is to me.

I am enjoying the simple things in life. I know that's a cliche, but as with all good cliches, there's an element of truth to it. From when our cat decided that my lap is warm and available for napping, to the spontaneous hugs my youngest daughter gives my leg, to watching my older daughter play computer games, to watching my wife's beautiful smile. These are the things that make up life, and I am so excited to have another day of it each morning I awaken.

Stay strong,
Aaron Winborn

This letter first appeared in the latest issue of Long Life magazine: http://www.cryonics.org/images/uploads/magazines/LLV46_N01.pdf

read more

Categories: Drupal Universe

Building a Development Matrix

Wed, 2014-04-30 18:00

Lullabot (via DrupalFire)

Breaking down a digital project into bite-sized pieces is often a challenge, because there are so many ways to do it. User stories, functional silos, and more can all be useful. Recently, we've also used what we call a "Development Matrix" — an inventory of a website's visible, visitor-facing components. What landing pages, common template pages, and index pages must be built? What components (blocks, images, videos, text) show up on those pages?

Having this inventory of pages and components in a spreadsheet gives us a clear picture of every element that needs to be accounted for in the finished site, and allows us to track the completion those pieces more accurately. We can calculate the project's visible progress, and it can even help us prioritize architectural work. If a particular component appears on more pages than another, then it's going to have a bigger impact on our bottom line.

Categories: Drupal Universe

2bits.com Presenting on Drupal Performance at DrupalCamp Toronto

Tue, 2014-04-29 12:46

2bits (via DrupalFire)

Khalid of 2bits.com Inc. will be presenting Drupal Performance Tips and Tricks at DrupalCamp Toronto 2014 this coming Friday May 2nd at Humber College, Lakeshore Campus.
See you all there ...

Categories: Drupal Universe

Drupal Real-Time Dashboard with Node.js

Sat, 2014-04-26 22:01

Drupal Connect (via DrupalFire)

Building real-time features into Drupal is now easier than ever with the integration of the Node.js module. The Node.js module provides an API for socket based polling and pushing of updates to open connected clients. Writing custom modules to create dashboards for real-time monitoring is one way to demonstrate this capability. With the ability to monitor real-time clients can respond more quickly to the needs of their clients. This article will demonstrate how to write a custom dashboard to display live searches and live views of content.

Install NodeJS

Before developing our custom module we need to set up our environment to run Node.js. Installation and dependencies are well defined by the NodeJS Integration Documentation. My environment includes a vagrant instance running CentOS 6.4. Using the instructions for installing via a package manager I set up the epel repository and ran the following command…

sudo yum install nodejs npm --enablerepo=epel
Additional NodeJS Dependencies

Once the installation is complete install additional dependencies by first installing the node package manager. For event broadcasting the WebSocket/polling library, Socket.io, is required. For HTTP streaming install the Request node module. Install Express * for the Node.js application framework and last, but not least, install the middleware Connect * to make these packages work together. Before installing the package manager and additional dependencies first navigate to the Drupal NodeJS module directory for npm to read package.json.

* Note: For further reading on Express and Connect middleware review the Understanding Express articles and A short guide to Connect Middleware.

Because I am using a vagrant setup I cd to the Drupal Node.js directory before running the install commands.

cd /vagrant/htdocs/sites/all/module/contrig/nodejs
sudo npm install
sudo npm install socket.io
sudo npm install request
sudo npm install express
sudo npm install connect

My first package manager install attempt produced errors because it did not have permissions to write files. To resolve this I had to halted my vagrant instance and updated the Vagrantfile to provide the proper sync permissions. Once my file permissions were resolved I was able to install the node package manager modules without an issue.

Config File

Our Drupal Node.js module also requires a config file that can be copied from the 'nodejs.config.js.example' to ‘nodejs.config.js’. Depending on your setup you can change the hosts to localhost, or if you are running vagrant with a private ip address you can assign the private ip address used by your vagrant instance. You can also update the debug entry to be ‘true’ in order to monitor the events in the nodejs terminal.

Dashboard Module

In our custom module use hook_menu() to create a dashboard page.

function dashboard_realtime_nodejs_menu() {
  $items['realtime-dashboard'] = array(
      'page callback' => 'example_nodejs_page',
      'title' => Real-time Dashboard with NodeJS',
      'access callback' => TRUE,
  return $items;

Now define the dashboard page being called from hook_menu and add a JavaScrypt file to our dashboard to prepend our messages from Node.js.

function dashboard_realtime_nodejs_page() {
        drupal_add_js(drupal_get_path('module', 'dashboard_realtime_nodejs') . '/dashboard_realtime_nodejs.js');
        $output = '';
        $output .= '';
        $output .= '';
        $output .= '';
        return $output;


Next create the JavaScrypt file containing our JQuery. This query will grab the message from Node.js and append it to the classes defined on our dashboard page.

(function($) {
 Drupal.Nodejs.callbacks.dashboard_realtime_message = {
   callback: function (message) {
    // If this is the search message prepend it.
     if (message.data.subject == 'search') {
       var new_messages = $('.dashboard-search-wrapper').prepend(message.data.body);
   // If this is the node-views message prepend it.
    if (message.data.subject == 'node-views') {
     var result_messages = $('.dashboard-nodeview-wrapper').prepend(message.data.body);

With JavaScrypt defined and our dashboard viewable in Drupal we need to hook into the events we will create our messages from. In this example we will hook into two events, the node view event and the search event.

Node Views

In order to hook into our node view event we will implement Drupal’s hook_node_view(). This hook allows us to act on a node before it is rendered and provides us with the full node object. All we need for this example is the node title, but there is opportunities to display much more than the title. In order to pass the title to Node.js we use the Node.js module function of “nodejs_broadcast_message(‘node-views’, $node->title)” where the first variable passed is the type of message and the second variable is the message.

 * Implements hook_node_view().
function dashboard_realtime_nodejs_node_view($node, $view_mode, $langcode) {
  nodejs_broadcast_message('node-views', $node->title);

Our next step is to provide the dashboard with the message containing the text for searches on the site. To hook into site searches we will use the hook_search_preprocess() function. Drupal provides this hook for processing the search text before submitting for results. Within our hook we again call the nodejs_broadcast_message, but this time we pass the first variable as “search” and the second variable as the search text.

Search Terms
 * Implements hook_search_preprocess().
function dashboard_realtime_nodejs_search_preprocess($text) {
  nodejs_broadcast_message('search', $text);

If you are using the Apache Solr module to index and return results with Solr you can replace hook_search_preprocesss() with hook_apachesolr_query_alter(), or one of several hooks that passes the query parameters. Instead of altering the query you can capture the query parameter and pass it as the message.

 * Implements hook_apachesolr_query_alter().
function apachesolr_realtime_nodejs_apachesolr_query_alter($query) {
  $params = $query->getParams();
  nodejs_broadcast_message('search', $params["q"]);

With the basics of our module defined you can now enable the module and start the node server (>node server.js) defined in the node.js contributed module. If you enabled debug in your config file you can monitor the terminal for activity.


Integrating Node.js with Drupal has never been easier thanks to the Node.js Integration module. Building real-time dashboards and other event driven displays provides clients the ability to respond more quickly to the activity on their site. For further benefit consider the value of saving these events for further data analysis and the challenges involved with storing and analyzing the quantity of data.

Technology: DrupalNode.js

Categories: Drupal Universe

How to crash your site

Wed, 2014-04-23 06:14

Károly Négyesi (via DrupalFire)

I got a desperate call about a site being down, this is ordinary for me (advertisment: you can contact me if it happens to you). But the error I saw was new to me. This is surprising -- I have thought I have seen it all and then some. The modules/views/includes/plugins.inc was fataling about the function views_include not existing. At first I thought opcache went south cos how on earth could an include be loaded when the module isn't?? But it wasn't opcache. Next step was adding a debug_print_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS) before the offending views_include call and behold... what?? variable_initialize?? o_O OH! Obviously the poor thing is trying to unserialize a views object but it's superb early in the bootstrap and so modules aren't loaded. So while unserializing the classloader loads plugins.inc which leads to this fatal. Neat. Moral of the story: don't ever try to store a views object in variables. Or an array containing a views object.

Categories: Drupal Universe

Drupal Developer Days 2014 Organizers Report

Tue, 2014-04-22 16:21

Gábor Hojtsy (via DrupalFire)

The organizer team is still energized after our experience putting together Drupal Dev Days Europe 2014 in Szeged, Hungary between 24 and 30 March.

Several people asked about details and we wanted to document the event for future event organizers to share what worked best for us. We prepared a report for you so if you experienced Drupal Dev Days Szeged, you can look behind the curtain a bit, or if you heard about it, you can see what we did to pull off an event like this. If you were not there and did not hear about it, we included several feedback references as well to give you an idea.

Do you want to see tweets and articles like those about your event? Read the report for our tips!

We definitely did not do everything right but we hope we can help people learn from the things we did right.

Excuse us if the report is a bit too long, we attempted to pack useful information to every single sentence to make reading it worth your time. Send questions and comments to the team.

Categories: Drupal Universe

Dodging Cassandra

Tue, 2014-04-22 16:00

Lullabot (via DrupalFire)

“You’re all doomed.”

When my wife introduced me to the world of opera a few years ago, I assumed it’d be a peek into high culture, not a lesson in keeping technology projects on track. But as we sat through Les Troyens — The Trojans — I watched a familiar story unfold.

Categories: Drupal Universe

The Simpletest sprint six years ago

Tue, 2014-04-22 05:14

Károly Négyesi (via DrupalFire)

As the Simpletest sprint in Paris was exactly six years ago I feel it's a good time to remind the community how and why Simpletest was chosen especially in the light of the Simpletest hate lately. At that time we had almost no tests (compared to the massive test battery today with over 68 000 asserts) and it was paramount to allow anyone to be able to write and run tests. Drupal in 2008 was not really API driven and so we needed browser based testing. Selenium at this time (Selenium 2 / WebDriver was released in 2011) required a standalone Java program to drive a browser -- we didn't quite feel being a Java-on-your-desktop helpdesk. So Selenium was out. PHPUnit offered a big fat nothing for Drupal -- Rok and I actually printed the source code out and read the whole thing at Boston DrupalCon and found nothing useful in there. Mind you, it was a very young project at that time. Behat? Mink? In 2008? Come on, Cucumber itself didn't appear until 2008 fall. So. In 2014 it is easy to say there are better and/or faster alternatives but those weren't there in 2008. Also, it's the massive refactoring in Drupal 8 that made it possible to use PHPUnit -- but guess what made the refactoring possible.

Categories: Drupal Universe

Pond Life Ep.3

Mon, 2014-04-21 07:15

Metal Toad Media (via DrupalFire)

Welcome once more to the pond! Last week we touched on SASS and it's importance to the developer workflow. We also walked through an introduction of Drush and Capistrano. Both of those tools are key environment tools for anyDrupal/PHP configuration.

Categories: Drupal Universe

DrupalCon Austin: The Lullabot Edition

Fri, 2014-04-18 16:00

Lullabot (via DrupalFire)

The finalized schedule for DrupalCon Austin (June 2nd-5th) has been released, and it's full of Lullabots!

Categories: Drupal Universe

Drupal in the Cloud

Thu, 2014-04-17 19:28

Lullabot (via DrupalFire)

In this episode we take a look at "the cloud" and what that really means. Joining Kyle Hofmeyer for this podcast are Josh Koenig Co-Founder & Head of Developer Experience at Pantheon and Andrew Berry Senior Drupal Architect at Lullabot.

Categories: Drupal Universe

Yonder: The Distributed Teams Conference

Thu, 2014-04-17 16:30

Lullabot (via DrupalFire)

If you have a web site, you've probably worked with someone who works from home. Every day, more and more people — and companies! — are leaving the office lifestyle behind. Whether you call it "distributed," "remote" or "virtual," it’s clear that the trend is taking off.

But, where do business leaders running distributed companies go to find information and share advice? Books like Remote and The Year Without Pants have hit the market, but sometimes there’s just no substitute for getting together face-to-face with your peers to talk it out. With that in mind, we hosted Yonder — a two-day invite-only event for leaders of distributed companies to come together and meet their peers. Here's a look at who came out to Yonder in January, and some of the things we talked about.

Inspired? If you’re running a distributed team and are interested in staying in the loop with our plans for the next Yonder, you can sign up for email updates. We're also covering topics from Yonder on our blog — check out the series here!

Categories: Drupal Universe