Planet Drupal

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

Dries Buytaert: The investment case for employing a Drupal core contributor

Wed, 07/05/2014 - 23:40
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 for 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.

Footnotes

#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: Elsewhere

DrupalCon Austin News: Drupal in Education Summit, June 2

Wed, 07/05/2014 - 22:02

Do you work at a college, university, or k-12 school? If so, then we invite you to the Drupal in Education Summit to be held at the University of Texas at Austin on June 2, from 9am-4pm (leaving you plenty of time to make the DrupalCon opening reception afterwards)!

Categories: Elsewhere

Drupal 8 and iOS: Drupal 8 and iOS

Wed, 07/05/2014 - 19:23
Drupal 8 and iOS

In the first week of March of 2014, Google announced Google Summer of Code and I started to search for a project that suits my skill and I found one with the title “An Example iOS application that connects to Drupal 8 via REST web services”. 

And that day I joined Drupal as a community member. As of now we all are so excited about Drupal 8. I am working on this project and I will try to build an example app that runs on iOS 7.1 and can view, create, update and delete content from an iOS device. If time permits I will try to add more functionalities to the app.

I have got good mentors from the Drupal community Jeff Linwood (jefflinwood) and Jingsheng Wang (skyred) for this project. As a part of this project I have created a simple site with Drupal 8 that has few pages with 3 simple fields and our aim is to manipulate these pages with the iOS app. I have deployed Drupal 8 on OpenStack from RedHat. This is the URL for my site http://tntfoss-vivekvpandya.rhcloud.com.

REST services for Drupal 8 are new, so I will try and provide good examples that can describes how to use it. 

In Drupal 8 alpha 11 some problems with REST are resolved for example no more “entity” word should required to access REST service i.e instead of “entity/node/1” you can now access it with “node/1” (more RESTful way) and I appreciate guys working behind it. 

On the iOS side, I am using NSURLSession to connect my app to the site. This set of classes are introduced by Apple in 2013 with iOS 7. REST services on Drupal 8 can serialize data in JSON, XML or HAL_JSON formate and I have used this JSON object to display content from the site. I have upload my code on GitHub.com so other interested community member can review it and help me to make this more useful. You can find the code at https://github.com/vivekvpandya/ TipsAndTricksCFNetworkingDrupal.

Tags:
Categories: Elsewhere

OpenConcept: OC spring Vegetable Gardens

Wed, 07/05/2014 - 18:44

There are many great things about working for OpenConcept, but two that I appreciate in particular are the homemade lunches we take turns making for everyone and share each day, and the fact that we are encouraged to follow our own interests. OC always gets behind you on your pet projects.

Personally, I love to grow my own food and have been encouraging urban farming initiatives locally here in Ottawa for some time now. In 2013, I was pleased to be able to start a garden here at OC headquarters to supplement the garden space I have at my own home. The idea is that from the veggies grown at OC some will come home with me and the rest will be used for our communal lunches. Last year the garden wasn't built until pretty late in the season, but we were able to grow a few zucchinis, some peppers and a little swiss chard. This season I've got a jump on the planting. The gardens are now prepared and there are a few things growing already. I even have a plan for crop rotation as things grow and finish as the season progresses. Woot, woot!

Above is a photo of what our garden space looks like. There is a 7 foot by 5 foot raised bed and a narrow garden bed along the backside of the building.

Along the back wall, peas have been planted as well as some purple-green beans. There is also going to be a small sport for mixed greens to grow under the window to the left.

In the raised bed so far arugula, breakfast radish, turnips and carrots have been seeded. The garlic and onion sets are already  poking through the soil.

We also have a rain barrel set up.

Anyway, I thought I would let the world know a little more of what we are all about and what we are up to here at OC. I will try and post a few updates as the season progresses with some nice photos of delicious veggies growing. Happy spring planting everyone!

Cheers,

Jesse

AttachmentSize OpenConcept 7 foot by 5 foot raised garden bed.141.61 KB Spring garlic sprouting in May 2014238.41 KB OpenConcept's water barrel.187.18 KB Topic: 
Categories: Elsewhere

Mediacurrent: Choosing Drupal as a Content Management Framework

Wed, 07/05/2014 - 17:35

Recently I had the opportunity to speak at ConvergeSE in Columbia, SC. I was pleasantly surprised by the number of attendees and the excitement at the conference. We had a lot of fantastic keynote speakers including Ethan Marcotte, Jenn Lukas, and Chris Coyier to name a few. Watch out SXSW!

Unlike most of the Drupal conferences I attend, this one was broad and included tracks such as design, gaming, front-end, makers, UX, development, and business & marketing. So I felt I must wave the Drupal banner & represent! Below is my presentation, "Choosing Drupal as a Content Management Framework for Your Next Project." I covered questions such as:

Categories: Elsewhere

Steindom LLC: How to export and import Drupal nodes

Wed, 07/05/2014 - 17:14

There are lots of ways to export configuration from one Drupal site and import into another; however, there are few ways to do the same with content. Here's a quick tip which has worked well for me.

I've tried several contrib modules to export content from one site and import into another, with varying levels of success, such as Node export and UUID Features. However, in my use cases, these solutions created more problems than they solve.

For example, on one project I have to create Webform nodes in a development environment, and then export these into code so they can be deployed upstream. After wrestling with the modules above, I wrote a simple script you can execute at /devel/php:

// Enter node NID to export.
$nid = 55;

// Use Drupal's export utility to convert the object to code.
include_once DRUPAL_ROOT . '/includes/utility.inc';
$export = drupal_var_export(node_load($nid));

// Strip node NIDs and VIDs, so it imports cleanly.
$export = preg_replace("/'(n|v)id' => '?\d+'?,/", "'$1id' => NULL,", $export);

// Print code needed to import node.
dpm('$node = ' . $export . ';' . "\n" . 'node_save($node);');

You can then include the displayed code in your .install file. It will create the node, and let Drupal auto-populate the NID and VID.

Submitted by Joel Stein on May 7, 2014.Tags: Drupal Planet, Drupal, Drupal 7
Categories: Elsewhere

Gábor Hojtsy: Learn Drupal from the best by making it better at sprints

Wed, 07/05/2014 - 15:46

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: Elsewhere

DrupalCon Austin News: Announcing Our Keynote Speakers

Wed, 07/05/2014 - 15:46

We’re thrilled to announce that the keynote speakers for DrupalCon Austin have been selected. In keeping with tradition, the usual Driesnote will take place on Tuesday morning, while on Wednesday and Thursday we’ll enjoy keynotes from Erynn Petersen and Hugh Forrest.

Here’s what’s in store:

Tuesday - June 3

Categories: Elsewhere

Nikro: Moldcamp - only 10 days left

Wed, 07/05/2014 - 15:07

Alright!
We are getting closer and closer the our long-waited event - Moldcamp. What is Moldcamp? Well, it our very first DrupalCamp held in Moldova. We've worked your butts off to make it as nice as we can. Let's see some stats, details, sessions, etc.

Tags: 
Categories: Elsewhere

Code Karate: Drupal 7 Nodeblock module

Wed, 07/05/2014 - 13:15

The Drupal 7 Nodeblock module is a simple but handy module that can be used to turn nodes into blocks on your Drupal 7 website.

Categories: Elsewhere

Blair Wadman: Create a module without writing any code with Features

Wed, 07/05/2014 - 08:38

As you build Drupal sites, define content types, setup Views and image presets, you end up making a lot of configuration changes. One of the problems with Drupal (up to and including Drupal 7) is that content and configuration is all stored in the database.

Tags: FeaturesDrupal Site buildingPlanet Drupal
Categories: Elsewhere

Modules Unraveled: 106 All things Drupal 8 and Twig with Mortendk - Modules Unraveled Podcast

Wed, 07/05/2014 - 07:00
Published: Wed, 05/07/14Download this episodeD8 Theming
  • What were the results of the theming survey?
    • People use Sass
    • Themes people are using
Twig
  • For anyone who’s been hiding under a rock, quickly explain what Twig is.
  • drupaltwig.org
  • drupaltwig
  • What do you know of that’s going on at DrupalCon Austin?

  • slack.com

Frontend United copenhagen 29-31 august
4 weeks before Drupalcon Amsterdam

Questions from Twitter
  • Marc Drummond
    You should ask @mortendk if he will write a Viking Edda hailing his love of divs and classes in Drupal's default markup.
  • Marek Sotak
    I thought DK in your nickname stands for Denmark, now I know - Morten DivKiller? :D
Episode Links: Morten on drupal.orgMorten on TwitterMorten’s BlogMorten’s Youtube Channel about D8Principlesdrupaltwig.orgLink to Morten’s videoTwig Playground Session at DrupalCon AustinSession at DrupalCon AustinGruntTags: 
Categories: Elsewhere

Phase2: Adding MySQL Slow Query Logs to Logstash

Wed, 07/05/2014 - 03:07

Logstash is a great tool for consolidating logs and making them easy to analyze. Adding multiline log files such as MySQL’s slow query log, however can be a bit of a challenge. Once you have, however, asking questions like “how many of my slow queries last week involved the taxonomy_hierarchy table and were from user slow_query_writer” become a snap.

There are a few resources for this online1 but none that I found worked out of the box. Here is how to setup a logstash recipe for MySQL’s slow query logs using logstash. If you were using a simple logstash instance you may want to put the snippets below into /etc/logstash/logstash.conf

This was developed using logstash 1.2.2 and MySQL 5.5 on an Ubuntu 12.04 LTS system. This recipe also appears to work for the 1.3.3 version of logstash.

To handle MySQL’s slow query log format, the multiline codec must be used as part of the input section of the configuration file. Some of the examples I found show multiple multiline entries. Examination of the multiline codec and testing shows, however, that a single entry needs to be used to break up each record2. Due to the way the matching works, a negated previous entry must be used so that anything which does not match the record is buffered.

input { file { type => "mysql-slow" path => "/var/log/mysql/mysql-slow.log" # Key breaking the log up on the # User@Host line, this will mean # sometimes a # Time line from the next entry will be incorrectly # included but since that isn't consistently present it can't be # keyed off of # # Due to the way the multiline codec works, previous must be used # to collect everything which isn't the User line up. Since # queries can be multiline the User line can't be pushed forward # as it would only collect the first line of the actual query # data. # # logstash will always be one slow query behind because it needs # the User line to trigger that it is done with the previous entry. # A periodic "SELECT SLEEP(1);" where 1 is above the slow query # threshold can be used to "flush" these events through at the # expense of having spurious log entries (see the drop filter) codec => multiline { pattern => "^# User@Host:" negate => true what => previous } } }

This has a side effect of causing events being recorded to always be one event behind the last one in the slow query log file. See the comments in the code for more details and a tip on how to handle if this is an issue for you.

Now that each record is gathered, various filters can be used to parse interesting fields out of it. Many of these are straight data captures. The last 3 allow for setting the exact time of the event based on the logged unix timestamp.

This can be handy if you just want to periodically rotate a log file and then pull it into logstash instead of monitoring it continuously. Without this change, logstash would use a timestamp based on when it processed the item from the log.

filter { # Capture user, optional host and optional ip fields # sample log file lines: # User@Host: logstash[logstash] @ localhost [127.0.0.1] # User@Host: logstash[logstash] @ [127.0.0.1] grok { match => [ "message", "^# User@Host: %{USER:user}(?:\[[^\]]+\])?\s+@\s+%{HOST:host}?\s+\[%{IP:ip}?\]" ] } # Capture query time, lock time, rows returned and rows examined # sample log file lines: # Query_time: 102.413328 Lock_time: 0.000167 Rows_sent: 0 Rows_examined: 1970 # Query_time: 1.113464 Lock_time: 0.000128 Rows_sent: 1 Rows_examined: 0 grok { match => [ "message", "^# Query_time: %{NUMBER:duration:float}\s+Lock_time: %{NUMBER:lock_wait:float} Rows_sent: %{NUMBER:results:int} \s*Rows_examined: %{NUMBER:scanned:int}"] } # Capture the time the query happened grok { match => [ "message", "^SET timestamp=%{NUMBER:timestamp};" ] } # Extract the time based on the time of the query and # not the time the item got logged date { match => [ "timestamp", "UNIX" ] } # Drop the captured timestamp field since it has been moved to the # time of the event mutate { remove_field => "timestamp" } }

Once the multiline codec has been used to break the lines up into each record extracting fields you are interested in is fairly straightforward. The configuration above results in the overall SQL query being seen in the primary message for the log item with particular elements pulled out as fields.

Here’s a sample of what you see using the stdout debugging output

{ "@timestamp" => "2014-03-04T19:59:06.000Z", "message" => "# User@Host: logstash[logstash] @ localhost [127.0.0.1]\n# Query_time: 5.310431 Lock_time: 0.029219 Rows_sent: 1 Rows_examined: 24575727\nSET timestamp=1393963146;\nselect count(*) from node join variable order by rand();\n# Time: 140304 19:59:14", "@version" => "1", "tags" => [ [0] "multiline" ], "type" => "mysql-slow", "host" => [ [0] "cj", [1] "localhost" ], "path" => "/var/log/mysql/mysql-slow.log", "user" => "root", "ip" => "127.0.0.1", "duration" => 5.310431, "lock_wait" => 0.029219, "results" => 1, "scanned" => 24575727, "date_matched" => "yes" }

One final tip, if you go the route of having periodic SLEEP calls to flush logging as hinted at in the multiline codec comments you should be able to add the following at the top of your filter so they are dropped rather than imported into logstash.

filter { # drop sleep events grok { match => { "message" => "SELECT SLEEP" } drop_if_match => true # appears ineffective, thus tag and conditional add_tag => [ "sleep_drop" ] tag_on_failure => [] # prevent default _grokparsefailure tag on real records } if "sleep_drop" in [tags] { drop {} } ... previous filter items here ... }

Learn more from some of our Phase2 DevOps experts here!

 

Footnotes

  1. This recipe was created derived from info at http://leejo.github.io/2013/11/21/parsing_mysql_slow_query_log_with_logstash/ and
    https://github.com/logstash/cookbook/blob/gh-pages/recipes/mysql/mysql-slow.conf.
  2. See the decode, do_next and do_previous handler functions which match, buffer and flush based on whether the pattern matched. If you attempt multiple patterns, for example to push the “# Time: …” portion forward into the next record, when logstash encounters a line that does not match it triggers a flush of the record.
Categories: Elsewhere

PreviousNext: Drupal 8 Now: Object Oriented plugins in Drupal 7

Wed, 07/05/2014 - 01:50

Drupal 8's plugins system is the bees-knees, taking the lessons learnt from Drupal 7 and Ctools plugins.

But we want it now right?

So how can you write plugins for Drupal 7's ctools module that will be a breeze to update to Drupal 8?

Read on to find out more in this latest post in our Drupal 8 now series.

Categories: Elsewhere

Chapter Three: Joining Chapter Three

Tue, 06/05/2014 - 21:50

I'm excited to be joining Chapter Three as their Drupal Research Engineer.

My role at Chapter Three is to contribute to Drupal 8 development and maintenance. Once Drupal 8 becomes viable, I'll be providing support on planning new Drupal 8 projects. It's fantastic that Chapter Three has stepped up to create a position for me to continue to work on Drupal 8.

The first priority for me is to complete the Configuration Management initiative work for the upcoming beta release. Configuration management is the new core subsystem that allows simple deployment to production of things like fields, views, and which modules are installed.

Over the last year I have been funding myself, received amazing support through Gittip and have had sponsorship from a couple of large companies. Thank you for all of the support. Now that I'm receiving a regular salary I'm going to be using my Gittip to support https://www.gittip.com/DrupalCoreGittipTeam/ and supporting Drupal 8 in other ways, for example, https://www.drupalfund.us/project/get-drupalcon-austin-sprint-lead-brian....

I look forward to representing Chapter Three at Drupal events around the world and continuing to push Drupal 8 towards a release.

Categories: Elsewhere

Liran Tal's Enginx: Drupal 6 – Subscription notifications aren’t going out?

Tue, 06/05/2014 - 21:10
(adsbygoogle = window.adsbygoogle || []).push({});

We recently had an issue with a Drupal 6 site, where-as notifications didn’t seem to reach their destination on user’s email, even though we verified that all users were subscribed correctly to the relevant content items. An initial investigation began with the mail server to figure out if it’s getting any traffic from Drupal, whether it’s just misconfigured, down or has any other reasonable issue that can be reverted. The mail server logs proved very quickly that the mail server isn’t getting any SMTP traffic at all, so this shifts focus into Drupal. While this can happen in a myriad of places in Drupal and due to a handful of reasons that could have caused this, there’s another quick way of figuring out if notification events are even being created at all, and that’s by going into the subscription management administrative area and just reviewing if new notifications are being created and waiting on the queue or not.

 

 

Further investigation lead to figuring out that there’s a notifications module variable which controls whether or not the notifications module will create events for content that is being created, updated, etc. In our case, due to wrong handling it was set to disregard node creation events. Deleting the variable quickly resolved the issue.

Categories: Elsewhere

DrupalCon Austin News: Announcing Our Keynote Speakers

Tue, 06/05/2014 - 19:53

We’re thrilled to announce that the keynote speakers for DrupalCon Austin have been selected. In keeping with tradition, the usual Driesnote will take place on Tuesday morning, while on Wednesday and Thursday we’ll enjoy keynotes from the Barely Noticeable Erynn Petersen and Hugh Forrest.

Here’s what’s in store:

Categories: Elsewhere

Bluespark Labs: Roomify Update: Build you own Airbnb with Drupal

Tue, 06/05/2014 - 19:02

The latest update of the Rooms module, which powers Roomify, just got one of the most asked-for features!

It is now possible for individual users to manage just their own group of bookable units (Rooms-speak for a single unit that can be rented out) while administrators can have a more global view across multiple properties and all bookable units.

With the new features in place you can now have someone login to your Drupal site, manage the availability of their own unit and create or review associated bookings. People looking to book can, instead, book any unit that is listed on the site. Does that remind you of any site? Yes - you now have the core tools available to build your very own hotels.com, Airbnb or regional multi-property tourism site (DMO), fully integrated with Drupal and Drupal Commerce.

If you are a company managing a number of different vacation rentals you now have, for the first time ever, a Drupal-based open-source solution. Rooms will allow you to manage your properties and the relationship with property owners in a single platform and that platform also happens to be one of the most powerful content management systems available, powering sites as diverse as WhiteHouse.gov and Zappos.com.

There is still work to do, especially with respect to testing, so please download Rooms-7.x-1.x (i.e. the dev version) and try it out! We are truly excited by the possibilities and what this means for Drupal in travel.

In the coming days and weeks we will be posting tutorials, guides and examples of how to setup Rooms for multiple owners and we look forward to talking with anyone interested in this both online and at Drupalcon Austin.

Tags: Drupal RoomsDrupal Planet
Categories: Elsewhere

Acquia: Promoting the Partner in the Digital Lifecycle with Acquia Insight

Tue, 06/05/2014 - 15:52

As a Solutions Architect for Channel Enablement, I spend a good deal of my time thinking about how to better integrate our delivery partners in the digital lifecycle of client sites deployed on the Acquia platform. The vast majority of our partners have their own “secret sauce” in the form of knowledge, best practice, and process spanning the gamut of the digital experience: search engine optimization, marketing campaign analytics, mobile and responsive design, content and UX strategy, and much more. This value-add is captured at the time of delivery, but remains even more important to continuously monitor and improve the site experience. Acquia Insight is a tool that partners can use today-- for the low price of free-- to deliver this value-add in real-time and feature their own services.

Categories: Elsewhere

Pages