Drupal.org aggregatorhttps://www.drupal.org/planet
Drupal.org - aggregated feeds in category Planet DrupalenLullabot: The New Lullabot.comhttps://www.lullabot.com/podcasts/drupalizeme-podcast/the-all-new-lullabotcom
React.js, CouchDB, Node.js, de-coupling Drupal; if any of that sounds cool to you, then this is the podcast for you. Kyle Hofmeyer gathered a several Lullabots together, who helped create the new lullabot.com, to learn what kind of wizardry was used to make this thing purr like a happy kitten. Jared Ponchot talks about the advantages this process provided for him and his design team. Sally Young talks about the guts of the site and the magic that went in to making this de-coupled Drupal site a success. We are also joined by Kris Bulman, Wes Ruvalcaba, and Betty Tran as they share their experience building the site. From front-end advantages to lazyboyDB, this podcast has it all.Fri, 31 Jul 2015 19:09:00 +0000Lullabot: Announcing The New Lullabot.comhttps://www.lullabot.com/news/announcing-the-new-lullabotcom
<h2>Mmmm… love that new website smell!</h2>
<h3>Some history</h3>
<p>It's been nearly 10 years since we launched our first company website at lullabot.com. During that time, we've done five full redesigns of the site. The company has grown from two people to 62. We've expanded from a small Drupal consulting and education company to a full-service agency with a complete Design team, dedicated front-end developers, and of course, the expert Drupal back-end development which has always been our foundation.</p>
<p>As we've grown, our site design has reflected our focus and skills. The first site that Matt and I put together back in 2005 was intentionally sparse – not exactly beautiful, but functional and simple to maintain for just 2 or 3 people. As we hired talented designers and skilled front-end developers, site redesigns became more complex. In 2010, we split our Drupal education services into <a href="https://drupalize.me">Drupalize.Me</a> and the main focus of lullabot.com became our <a href="https://www.lullabot.com/what-we-do">client services work</a>, <a href="https://www.lullabot.com/our-work">showcasing our design and development projects</a> and <a href="https://www.lullabot.com/articles">sharing insights from our team</a>.</p>
<h3>Revving up the new Lullabot.com</h3>
<p>The newest iteration of Lullabot.com is our most ambitious to date. As with most of our client engagements, the project started with research. Our Design team interviewed existing and potential clients, site visitors, and the Lullabot team to understand how people were using our site – what they wanted to get out of it, and why they visited. Our team distilled all they'd learned into goals and early wireframes for the site. They then worked with our Development staff to try to come up with the most flexible way of achieving these goals so that we could have full control of the site in ways that Drupal often doesn't afford. They wanted full <code>&lt;html&gt;</code> to <code>&lt;/html&gt;</code> blue-sky design of any arbitrary page on the site without losing Drupal's amazing content management capabilities.</p>
<p>The technical team settled on a decoupled, isomorphic approach using Facebook's <a href="https://facebook.github.io/react/">React</a>, Node.js, <a href="http://couchdb.apache.org/">CouchDB</a> (a noSQL database) and Drupal as the backend CMS.</p>
<p>Content management is what Drupal does best, and this happens through a purpose-built subsite where the Lullabot team can login and post articles, podcasts, and manage their bios. Drupal pushes content into CouchDB, which exposes a REST API for React to consume. React is an isomorphic library (its code can run both in the server and the client), which means that when a visitor first visits the site, they receive the html of the entire page. Then, the rest of the navigation happens client-side, updating just the parts of the page which are different from the current one. Furthermore, React is written to be completely backward compatible with older browsers.</p>
<p>Our clients are often in need of API-driven native mobile apps, television-based apps, and content ingestion on connected devices. We've implemented these things in less holistic ways with our clients in the past. But the new Lullabot.com gave us a chance to experiment with some methodologies that weren't quite tried-and-tested enough to recommend to our clients. But now that we've had a chance to see the type of flexibility they give us on lullabot.com, we'll be adding this to the array of architectural strategies that we can consider for our clients in the future.</p>
<h3>Look ma, no hands!</h3>
<p>The results are amazing; high-speed, high-performance, and superlative flexibility. In layman's terms, this means our Design and Front-end people can go crazy – implementing blue-sky ideas without the usual Drupal markup constraints. The new site is fully responsive. Articles and portfolio work pages can have giant, dazzling, full browser-height background images or videos. Articles have big text that is easy to read on any scale from large desktop monitors to the smallest phone screens. Furthermore, we did everything with an eye toward blazing fast page loads. We omitted jQuery, trading convenience in the development process for speedy page loads. Then we looked at every http request, every image, every library to make sure our website was as snappy on an older smartphone as it was on the desktop. Best of all, we off-loaded much of the heavy lifting to the client-side with React.</p>
<p>Design-wise, the new site is uncluttered, sparse, and relatively simple. But whether you're looking for our vast archive of <a href="https://www.lullabot.com/articles">articles</a> or <a href="https://www.lullabot.com/podcasts">podcasts</a>, information about <a href="https://www.lullabot.com/what-we-do">what services Lullabot offers</a>, <a href="https://www.lullabot.com/what-we-do">who we've worked with and what we've done</a>, or you're curious to know <a href="https://www.lullabot.com/who-we-are">what it's like to work at Lullabot</a>, it's all there.</p>
<p>Over the coming months, we will be writing a series of articles and doing a few podcasts talking about different aspects of the new site. Please subscribe to the Lullabot email newsletter below and you'll be the first to know when new articles are published.</p>Fri, 31 Jul 2015 19:05:24 +0000Midwestern Mac, LLC: Launching my first Drupal 8 website — in my basement!http://www.midwesternmac.com/blogs/jeff-geerling/launching-my-first-drupal-8
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>I've been working with Drupal 8 for a long time, keeping <a href="https://www.drupal.org/project/honeypot">Honeypot</a> and some other modules up to date, and doing some dry-runs of migrating a few smaller sites from Drupal 7 to Drupal 8, just to hone my D8 familiarity.</p>
<p style="text-align: center;"><a href="http://www.pidramble.com/"><img src="/sites/midwesternmac.com/files/raspberry-pi-dramble-drupal-8-site.jpg" alt="Raspberry Pi Dramble Drupal 8 Website" width="450" height="327" /></a></p>
<p>I finally launched a 'for real' Drupal 8 site, which is currently running on Drupal 8 HEAD—on a cluster of Raspberry Pi 2 computers <em>in my basement</em>! You can view the site at <a href="http://www.pidramble.com/">http://www.pidramble.com/</a>, and I've already started posting some articles about running Drupal 8 on the servers, how I built the cluster, some of the limitations of at-home webhosting, etc.</p></div></div></div>Fri, 31 Jul 2015 17:48:40 +0000OSTraining: Image Optimization with WebResizer.com and ImageRecycle.comhttp://feedproxy.google.com/~r/ostrainingdrupal/~3/kDh23iQI5Es/
<div class="ost-intro-image"><img src="https://www.ostraining.com/images/coding/cropp-images.jpg" alt="cropp images" width="200" height="133" /></div>
<p>One of the biggest factors to a slow page load is unoptimized image sizes. The bigger the image, the more time it takes the browser to load it.</p>
<p>This tutorial will show you the two free tools that I use to optimize images quickly.</p>
<p>These services will be useful whether you use WordPress, Drupal, Joomla or any other platform.</p><img src="http://feeds.feedburner.com/~r/ostrainingdrupal/~4/kDh23iQI5Es" height="1" width="1" alt=""/>Fri, 31 Jul 2015 17:15:45 +0000OSTraining: Googlebot Cannot Access CSS and JS Fileshttp://feedproxy.google.com/~r/ostrainingdrupal/~3/u5XZg8f7t_o/
<div class="ost-intro-image"><img src="https://www.ostraining.com/images/coding/google-hd.jpg" alt="google " width="200" height="133" /></div>
<p>Many website owners have recently received an email from Google with the title, "Googlebot cannot access CSS and JS files".</p>
<p>It doesn't matter whether you're running WordPress, Drupal, Joomla or another platform entirely. Google has sent these emails to 100,000's of sites.</p>
<p>I'm going explain the issue that Google is complaining and how you can resolve it.</p><img src="http://feeds.feedburner.com/~r/ostrainingdrupal/~4/u5XZg8f7t_o" height="1" width="1" alt=""/>Fri, 31 Jul 2015 15:57:39 +0000InternetDevels: Lviv Euro DrupalCamp 2015: the best choice for your awesome autumn!http://internetdevels.com/blog/lviv-euro-drupalcamp-2015-the-best-choice-for-your-awesome-autumn
<div class="field field--name-field-preview-image field--type-image field--label-hidden"><div class="field__items"><div class="field__item even"><img src="http://st3.internetdevels.net/sites/default/files/public/blog_preview/cover_ledc_blogpost.jpg" width="863" height="577" alt="Lviv Euro DrupalCamp 2015: the best choice for your awesome autumn!" /></div></div></div><div class="field field--name-body field--type-text-with-summary field--label-hidden"><div class="field__items"><div class="field__item even"><p>Hi, drupalers! Enjoying your summer? Time to make plans for your awesome autumn! We have checked the forecasts, analyzed the position of stars, written php scripts to define the luckiest date and place for you. Here you go, the answer is: October 17-18, Lviv Euro DrupalCamp. The time and place cannot be changed ;)</p>
<a href="http://internetdevels.com/blog/lviv-euro-drupalcamp-2015-the-best-choice-for-your-awesome-autumn">Read more</a></div></div></div>Fri, 31 Jul 2015 14:57:07 +0000Mike Crittenden: Drupal 7 Deconstructedhttp://mikecr.it/ramblings/drupal-7-deconstructed
<div class="field field-name-field-images field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><img src="http://mikecr.it/sites/default/files/styles/fullwidth/public/8077218145_1bbc709980_o.jpg?itok=Hx-fX8rN" width="700" height="300" alt="" /></div></div></div><div class="field field-name-field-subtitle field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">How does Drupal work? Let&#039;s find out.</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>For years now I've wanted to dig through Drupal core, line by line, and understand how the big pieces do what they do. I'm finally doing that, and writing up my notes as I go.</p>
<p><strong><a href="https://github.com/mikecrittenden/drupal-7-deconstructed">Drupal 7 Deconstructed</a> is the in-progress result of that.</strong></p>
<p>If you've ever wondered what happens in the bootstrap process, or how Drupal's Form API works, or how exactly Drupal figures out which menu callback to run per page request, then this is the place to go.</p>
<p>It's just getting started, and so far I've only gone through the bootstrap process and the menu router, but I'm having a great time and learning a ton, so I expect to fill it up quickly.</p>
<h3>Who could benefit from this?</h3>
<p>Any developer who has ever wondered how Drupal works could get some value out of reading this. You'll need to know at least a little about Drupal development to understand parts (for example, I don't explain what <code>hook_menu()</code> is when talking about the menu router), but you shouldn't need to be an expert or anything.</p>
<p>If you feel like that describes you, but you don't understand a part, please let me know so that I can make it more approachable.</p>
<h3>Want to help?</h3>
<p>If you're interested in helping out, the best thing to do would be to keep an eye on the repo and proofread or review things as they're written.</p>
<p>Pull requests are also greatly appreciated, whether you want to fix a typo or submit a whole new chapter.</p>
<p>Or, if nothing else, just let me know if you like this idea! Knowing that this could be helpful to people besides just me is a huge motivational boost to keep things moving.</p>
<h3>What's the end game?</h3>
<p>I don't know. I could see this staying on GitHub forever, or being published on Leanpub, or ending up as a blog series.</p>
<p>Any suggestions?</p>
<h3>Why Drupal 7? What about Drupal 8?</h3>
<p>I chose Drupal 7 because it still has a pretty long shelf life left. Drupal 8 Deconstructed definitely needs to be written though, and I'd love to dive into that after 7 is complete.</p>
<h3>What about contrib?</h3>
<p>I would love to take apart some of the more commonly used contrib modules like Views, CTools, Panels, Webform, Pathauto, etc., as well, but one step at a time!</p>
<p><strong>Please check out <a href="https://github.com/mikecrittenden/drupal-7-deconstructed">Drupal 7 Deconstructed</a> and let me know what you think so far!</strong></p>
</div></div></div><div class="field field-name-field-related field-type-node-reference field-label-inline clearfix"><div class="field-label">Read this next:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/ramblings/i-wrote-a-book-for-oreilly-responsive-theming-for-drupal">I wrote a book for O&#039;Reilly: &quot;Responsive Theming for Drupal&quot;</a></div></div></div>Fri, 31 Jul 2015 13:40:18 +0000Drupal core announcements: Recording from July 31st 2015 Drupal 8 critical issues discussionhttps://groups.drupal.org/node/476208
<p>We met again today to discuss critical issues blocking Drupal 8's release (candidate). (<a href="https://groups.drupal.org/taxonomy/term/138603">See all prior recordings</a>). Here is the recording of the meeting video and chat from today in the hope that it helps more than just those who were on the meeting:</p>
<!--break--><!--break--><p><iframe width="600" height="338" src="https://www.youtube.com/embed/IzPl2fjId9U?feature=player_embedded" frameborder="0" allowfullscreen></iframe></p>
<p>If you also have significant time to work on critical issues in Drupal 8 and we did not include you, <a href="https://www.drupal.org/user/4166/contact">let me know as soon as possible</a>.</p>
<p>The meeting log is as follows (all times are CEST real time at the meeting):</p>
<p><code><br />
[11:03am] jibran: I think it is sorted by name<br />
[11:03am] jibran: the order in the hangout<br />
[11:03am] WimLeers: y<br />
[11:07am] jibran: We have to look at google hangout code base for that.<br />
[11:08am] WimLeers: <a href="https://www.drupal.org/node/2499157#comment-10172426" title="https://www.drupal.org/node/2499157#comment-10172426">https://www.drupal.org/node/2499157#comment-10172426</a><br />
[11:08am] Druplicon: <a href="https://www.drupal.org/node/2499157" title="https://www.drupal.org/node/2499157">https://www.drupal.org/node/2499157</a> => [meta] Auto-placeholdering [#2499157] => 5 comments, 4 IRC mentions<br />
[11:11am] WimLeers: amateescu's issue link: <a href="https://www.drupal.org/node/2336627#comment-10160850" title="https://www.drupal.org/node/2336627#comment-10160850">https://www.drupal.org/node/2336627#comment-10160850</a><br />
[11:11am] Druplicon: <a href="https://www.drupal.org/node/2336627" title="https://www.drupal.org/node/2336627">https://www.drupal.org/node/2336627</a> => Deadlock on cache_config (DatabaseBackend::setMultiple()) [#2336627] => 39 comments, 24 IRC mentions<br />
[11:12am] WimLeers: plach: yay for vacation :D<br />
[11:12am] GaborHojtsy: VACATIOOOOOON!<br />
[11:12am] GaborHojtsy: sometime, sometime :)<br />
[11:12am] alexpott: <a href="https://www.drupal.org/node/2542762" title="https://www.drupal.org/node/2542762">https://www.drupal.org/node/2542762</a> is the nearly ready issue<br />
[11:12am] Druplicon: <a href="https://www.drupal.org/node/2542762" title="https://www.drupal.org/node/2542762">https://www.drupal.org/node/2542762</a> => hook_entity_type_update doesn't get the entity in the new revision after addTranslation and setNewRevision [#2542762] => 11 comments, 4 IRC mentions<br />
[11:13am] alexpott: <a href="https://www.drupal.org/node/2542748" title="https://www.drupal.org/node/2542748">https://www.drupal.org/node/2542748</a> is the gnarly update issue<br />
[11:13am] Druplicon: <a href="https://www.drupal.org/node/2542748" title="https://www.drupal.org/node/2542748">https://www.drupal.org/node/2542748</a> => Automatic entity updates are not safe to run on update.php by default [#2542748] => 21 comments, 7 IRC mentions<br />
[11:15am] plach: WimLeers: :)<br />
[11:15am] WimLeers: alexpott: yay :)<br />
[11:15am] dawehner: <a href="https://www.drupal.org/node/2540416" title="https://www.drupal.org/node/2540416">https://www.drupal.org/node/2540416</a><br />
[11:15am] Druplicon: <a href="https://www.drupal.org/node/2540416" title="https://www.drupal.org/node/2540416">https://www.drupal.org/node/2540416</a> => Decide whether we need hook_upgrade_N()/upgrade.php front controller [#2540416] => 27 comments, 4 IRC mentions<br />
[11:16am] WimLeers: dawehner: cache tables are auto-created<br />
[11:16am] naveenvalecha|af left the chat room. (Read error: Connection reset by peer)<br />
[11:16am] WimLeers: but yeah, router table etc… #sadpanda<br />
[11:19am] WimLeers: The issue that originally turned it from a separate PHP file into a route + controller: <a href="https://www.drupal.org/node/2250119" title="https://www.drupal.org/node/2250119">https://www.drupal.org/node/2250119</a><br />
[11:19am] Druplicon: <a href="https://www.drupal.org/node/2250119" title="https://www.drupal.org/node/2250119">https://www.drupal.org/node/2250119</a> => Run updates in a full environment [#2250119] => 21 comments, 1 IRC mention<br />
[11:34am] WimLeers: plach: ROFL<br />
[11:34am] WimLeers: plach++<br />
[11:43am] WimLeers: "a foam of circles" lol<br />
[11:48am] alexpott: <a href="https://www.drupal.org/node/2542748" title="https://www.drupal.org/node/2542748">https://www.drupal.org/node/2542748</a><br />
[11:48am] Druplicon: <a href="https://www.drupal.org/node/2542748" title="https://www.drupal.org/node/2542748">https://www.drupal.org/node/2542748</a> => Automatic entity updates are not safe to run on update.php by default [#2542748] => 21 comments, 8 IRC mentions<br />
[11:55am] dawehner: WimLeers: well but those tables aren't auto fixed<br />
[11:56am] dawehner: WimLeers: so just imagine what happens if you need to change the cache_ tables<br />
[12:00pm] WimLeers: dawehner: ohhh!<br />
[12:02pm] WimLeers: plach: is that the church bells in Venice that I'm hearing?<br />
[12:03pm] WimLeers: dawehner: lol<br />
[12:03pm] WimLeers: :)<br />
[12:05pm] plach: WimLeers: yeah, sorry :)<br />
[12:05pm] WimLeers: plach: made me feel like I was on vacation, ever so briefly<br />
[12:05pm] WimLeers: :D<br />
[12:05pm] plach: :)<br />
[12:23pm] dawehner: alexpott: are the issues the new thing or the solutions ;)<br />
[12:24pm] alexpott: dawehner: well we have better ideas<br />
</code></p>Fri, 31 Jul 2015 10:29:40 +0000OSTraining: Using Theme Developer and Firebug to Debug Drupal Themeshttp://feedproxy.google.com/~r/ostrainingdrupal/~3/ehhRtVEy0U8/
<p>There are several tools that that makes designing for Drupal much, much easier.</p>
<p>In particular, we recommend the Theme developer module and also Firebug.</p>
<p>Many of you may know about Firebug already. It's a browser tool <span class="st">that allows you to inspect any CSS, HTML or JavaScript elements.</span></p>
<p>Think of <a href="https://www.drupal.org/project/devel_themer">Theme developer</a> as a Drupal-specific version of Firebug. Using Theme developer you can click on any element of your Drupal site and get a breakdown of how it was built.</p><img src="http://feeds.feedburner.com/~r/ostrainingdrupal/~4/ehhRtVEy0U8" height="1" width="1" alt=""/>Thu, 30 Jul 2015 22:47:42 +0000Sina Salek Official Site: Drupal Module: CSS JS Total Control is here to rescue the themershttp://sina.salek.ws/content/drupal-module-css-js-total-control-here-rescue-themers
<p style="text-align: justify;"><img class="imagecache-thumbnail_in_content content_thumbnail" style="float: right;" src="http://sina.salek.ws/sites/default/files/imagecache/thumbnail_in_content/story/1609/images/designs.png" alt="" width="154" height="154" />When we create themes in Drupal, there are great number of reoccurring tasks that we have to do like adding IE conditional comments, remove or replace some core or contributed modules CSS/JS files to prevent conflict with the theme, putting some JavaScript at the bottom of the page or even adding inline CSS or JS files. The module which i'm going to introduce, makes it possible to take care of all those tasks and even more with no special knowledge and no programming.</p><p><a href="http://sina.salek.ws/content/drupal-module-css-js-total-control-here-rescue-themers" target="_blank">read more</a></p>Thu, 30 Jul 2015 19:46:39 +0000Drupal Bits at Web-Dev: Enabling Drupal modules in update hookshttp://web-dev.wirt.us/info/drupal/enabling-drupal-modules-update-hooks
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p></p></div></div></div><ul class="links inline"><li class="node-readmore first"><a href="/info/drupal/enabling-drupal-modules-update-hooks" rel="tag" title="Enabling Drupal modules in update hooks">Read more<span class="element-invisible"> about Enabling Drupal modules in update hooks</span></a></li>
<li class="comment_forbidden last"></li>
</ul>Thu, 30 Jul 2015 19:10:02 +0000Isovera Ideas & Insights: Does Your Drupal Site Pass the 2-3 Second Test?https://www.isovera.com/blog/does-your-drupal-site-pass-2-3-second-test
<div class="field field-name-field-teaser-text field-type-text-long field-label-hidden"><div class="field-items"><div class="field-item even">At Isovera, we like to build websites that people like to use. One of the best ways to enhance a user&#039;s experience is to give them what they are looking for fast! Site performance is often overlooked or relegated to the end of a project; but, it could be the most important factor in the success of your project.</div></div></div>Thu, 30 Jul 2015 16:56:34 +0000Cheeky Monkey Media: Toolbar and Admin Menu Tweakshttp://cheekymonkeymedia.ca/blog/drupal-planet/toolbar-and-admin-menu-tweaks
<div class="field field--name-field-article-image field--type-image field--label-hidden"><div class="field__items"><div class="field__item even"><img src="http://cheekymonkeymedia.ca/sites/default/files/toolbartweeks.jpg" width="1380" height="444" alt="Toolbar and Admin Menu Tweaks" /></div></div></div><div class="field field--name-body field--type-text-with-summary field--label-hidden"><div class="field__items"><div class="field__item even"><p>Have you ever been working on a site, and had your QA department, or your client come back with issues because when logged in, the local tabs (view, edit, etc) distort the page layout? Or maybe there are a lot of pages that contain a lot of content, and it has become frustrating for site admins to have to scroll all the way back up to edit the page? Wouldn’t it be great to still have easy access to the local tabs and not have them add extra bulk to the page layout and content?</p>
<p>We have began using a few different tweaks to add in the local tabs into the shortcuts menu area of a...</p></div></div></div>Thu, 30 Jul 2015 15:55:24 +0000Mpumelelo Msimanga: Defining Drill Downs in Drupal Viewshttp://msiman.ga/2015/07/defining-drill-downs-drupal-views
<div class="field field-name-title"><h1>Defining Drill Downs in Drupal Views</h1></div><div class="field field-name-field-image img-responsive"><a href="/2015/07/defining-drill-downs-drupal-views"><img typeof="foaf:Image" class="img-responsive" src="http://msiman.ga/sites/msiman.ga/files/styles/medium/public/2015/07/drupal-views-drilldown.png?itok=pLvmNL2M" width="220" height="58" alt="Drupal Views Drill Down" title="Drupal Views Drill Down" /></a></div><div class="field field-name-body"><p>The logical way to analyse data is to start by looking at summarised data before looking at the detail. This is referred to as <a href="https://en.wikipedia.org/wiki/Drill_down">drilling down</a>. In this post I demonstrate how to define drill down functionality between two Drupal Views. This is a continuation on my series of posts showing how Drupal can be used as a BI or data analysis front end.</p></div>Thu, 30 Jul 2015 13:00:00 +0000Sooper Drupal Themes: How Drupal Developers Can Be More Productivehttp://www.sooperthemes.com/drupal-blog/how-drupal-developers-can-be-more-productive
<div class="field-blog-image">
<img typeof="foaf:Image" class="img-responsive" src="http://www.sooperthemes.com/sites/default/files/styles/bootstrap3_col9/public/blog-images/business4_2.jpg?itok=J67KtD61" width="848" height="300" /> </div>
<h3 class="field-label">
Tags </h3>
<div class="field-tags">
<a href="/category/tags/drupal" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">drupal</a> </div>
<div class="field-tags">
<a href="/tags/life" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Life</a> </div>
<div class="field-tags">
<a href="/category/tags/productivity" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">productivity</a> </div>
<div class="field-tags">
<a href="/tags/work-life-balance" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Work life balance</a> </div>
<div class="field-tags">
<a href="/category/tags/planet" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">planet</a> </div>
<div class="field-tags">
<a href="/category/tags/drupal-planet" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">drupal planet</a> </div>
<div class="field-body">
<p>The life of a Drupal developer… it can be a drag. After all, we sit at our chairs for hours on end, sipping on tea or Coke, and staring blankly at the screen. We do what we can to keep ourselves awake. We occasionally divert our eyes to relieve the strain or get up and walk around to ease the tension in our back.</p>
<p>But, is it really that bad?</p>
<p>Well..</p>
<p>The life of a Drupal developer is also very busy. After all, the inbox is overflowing with emails asking about a progress update and there are deadlines you need to meet by week’s end. What are you to do? It seems like a never-ending cycle of work.</p>
<p>When you do finally start working, you may feel like you’re being productive; but, the reality is… your workload is piling up. Do you really need to burn the midnight oil… just to catch up? As a Drupal developer, you have a few things to learn.</p>
<p>Are you ready to learn?</p>
<p> </p>
<h2>What Is The Issue With Productivity Science</h2>
<p>Have you ever noticed the amount of productivity studies circulating the Internet? If you sit down to read through the various studies, it’s not going to take you long to realize how many nitwits are actually writing these studies. Many people just sit at their computers, making Facebook updates, playing Candy Crush and just surfing the ‘Net.</p>
<p>It’s been documented that what you read in the majority of scientific studies needs to be taken with a grain of salt. However, you need to ask yourself if it’s possible to have a business that increases productivity. When it comes to productivity studies, there is an array of invaluable information that everyone can learn from. </p>
<p>After all, there is work that must be done and you need to complete. You have clients that depend on you to ensure their website is up and going… all the time. And, as much as you love to build websites or modules, you still have interests outside the Drupal environment.</p>
<p>In order to be more productive, you need to know what to put your attention on if you are to get more things done for the day.</p>
<p>What should you realize if you’re going to better your productivity levels? Well, you need to realize that there isn’t a perfect answer. After all, what works for one person may not work for someone else.</p>
<p> </p>
<h2>Find A Balance In The Business</h2>
<p>When it comes to productivity, it doesn’t mean you need to cram more coding hours in your day. It means you need to do more coding in the same amount of time or in less time. When your projects begin piling up or when you have clients constantly contacting you about those pesky little deadlines. It’s so easy to add screen time to compensate for it all. </p>
<p>Here’s what you need to understand: the more time behind the computer you spend, the less productive you actually become.</p>
<p>Therefore, take some time away from your career life – away from all the Drupal setup – and throw yourself into your life. You need to eat right, exercise and spend time with your family and friends in order to boost your productivity level. Without that balance, your work is going to suffer… in time. And, all that productiveness you’ve been aiming for is going to get thrown out the window.</p>
<p>It’s important you lay out the different parts of your life so you know what part is most important to you. After you’ve done this, decide the amount of time you should dedicate to it. Remember, there are only 24 hours in a day. Thus, you need to figure out how much time to give each one.</p>
<ul><li>Work</li>
<li>Time w/ Family</li>
<li>Time w/ Friends</li>
<li>Hobbies</li>
<li>Fitness</li>
<li>Sleep</li>
</ul><p>So, if you must spend more time on client projects, you must take away time from other areas. Make sure you choose which one is less important to give your “work” time to.</p>
<p> </p>
<h2>What’s Your Work Environment Like?</h2>
<p>Did you know that your work environment can have a huge effect on your productivity level? Look at things around you. How organized is your desk? Is it cleaned off? Does the desk look like a tornado went through it?</p>
<p>It’s worthwhile to have a physical and digital clean desk. The less distraction you have, the more creative your mind can be.</p>
<p><img class="media-element file-default img-responsive" typeof="foaf:Image" src="http://www.sooperthemes.com/sites/default/files/clean-desk2_0.jpg" alt="" /></p>
<p> </p>
<h2>Set Up Intervals To Maintain Structure</h2>
<p>Okay, so you’re looking at intervals as something only athletes do, right? Well, when it comes to Drupal development, intervals are a thing too. You see, people are often told that sitting down for seven to nine hours a day, with a couple of breaks in between, is the way to be productive. If you’re lucky, you can have a little energy to exercise, play with the kids or have a talk with your significant other. </p>
<p>What if you threw interval training in your Drupal development business? Your schedule could look a little like this:</p>
<p> </p>
<ul><li>8 a.m. – Wake up</li>
<li>8:15 a.m. – Answer emails, work on projects for clients</li>
<li>10:30 a.m. – Breakfast</li>
<li>10:45 a.m. – Go to the gym</li>
<li>12:30 a.m. – Work on client projects</li>
<li>4 p.m. – Answer emails</li>
<li>4:30 p.m. – Lunch</li>
<li>3 p.m. – Social media and marketing</li>
<li>3:30 p.m. – Work on client projects</li>
<li>4 p.m. - Take a 20 minute walk</li>
<li>4:30 p.m. – Work on home projects</li>
<li>5 p.m. – Spend time with family, social gathering and dinner</li>
<li>9 p.m. – Plan the next day out</li>
<li>9:45 pm. – Relax</li>
<li>11 p.m. – Go to bed</li>
</ul><p> </p>
<p>Yeah, it seems like a pretty segmented day and, by design, it really is. You’ll need to be flexible and give it some personality. What you’ll notice is that the shorter the timeframe, the more intense the energy bursts are going to be. </p>
<p> </p>
<h2>Better Prioritization and Focus</h2>
<p>If you’re going to boost your productivity level, you must effectively prioritize your day. Think of it this way: 20% of what you do during your day will be responsible for 80% of your household income. Be sure to prioritize that 20%, scheduling the important tasks first thing in the morning.</p>
<p>When you sit in front of a computer screen all the time, you’re hit with distractions from every angle – family, friends, business associates, etc. And, when you get sidetracked by the distractions, you may find it difficult to get back on track. There are going to be times when these distractions cannot be accepted. Your first and second work intervals must be when you are 100% engrossed in the job. This means nothing else must be scheduled during this time period. Your focus on these work times should only be WORK.</p>
<p> </p>
<h2>Make Plans To Stay Productive</h2>
<p>Have you gone through a day without a plan? Many people have, and these kinds of days are never very productive. As you get to your desk, look over your list of 20 tasks that you haven’t prioritized. Do you suddenly feel overwhelmed? Do you feel like you don’t know where to go? You may find yourself an hour into work with nothing to show for it.</p>
<p>The last thing you should do every day is plan out the next day’s work, making sure you label what’s important and what’s not as important. Write these tasks down or type them out.</p>
<p> </p>
<h2>How To Get Started</h2>
<p>The surefire way you’ll get the productive working environment you are after is to get started with the tasks you’re faced with. Of course, it’s the most obvious thing to do; but, you may suddenly realize that you’ve gone through the day and didn’t do a single thing that would be considered productive.</p>
<p>A huge barrier in productivity is failing to get right into the task. If you handle an array of client projects, it’ll be easier to avoid the task you need to be working on. Planning will certainly solve that issue. When you notice you’re having issues with the tasks at hand, ask yourself if you had a prioritized list. Create this all-important list the night before.</p>
<p> </p>
<h2>Be Open To The Possibility Of Experimentation</h2>
<p>The above concepts are important; but, that doesn’t mean they’re all going to work for you. Most will however, make a huge difference. The steps you need to take are fairly easy to implement:</p>
<p> </p>
<ul><li>Create a systematized, clean work environment</li>
<li>Lay out the things in your life</li>
<li>Prioritize and put attention on tasks and areas considered important</li>
<li>Use intervals to arrange your day</li>
<li>Make plans ahead of time</li>
<li>Get moving</li>
</ul><p> </p>
<p>Lastly, you need to be creative. This means you need to experiment with your schedule, and find what does and does not work for you. You will find that your productivity level is going to improve drastically!</p>
<p> </p>
<p class="text-muted text-small">Business vector designed by Freepik</p>
</div>Thu, 30 Jul 2015 09:16:40 +0000Wunderkraut blog: build.shhttp://www.wunderkraut.com/blog/buildsh/2015-07-30
<p class="field-ns-blog-post-lead">
We are HUGE fans of simplicity, automation and open source. Here&#039;s one of our solutions for keeping track of Drupal module versions, custom/contrib code, deploying and taking backups. And more! </p>
<div class="field-ns-blog-post-body clearfix">
<div class="field-item even"> <p>A while back I was introduced to a script which was used to download a given version of the Drupal core with a handful of modules AND copy any custom modules/profiles/themes under a given path inside the Drupal installation AND run the Drupal installation from shell! SO COOL! This completely eliminated the need to have 3rd party code in our repositories and it made (at least) my life a whole lot more worry free.<br /><br />So as it happened, we quickly adopted the script in our workflow and everyone was happy with it. Time went on and we found the script lacking and started modifying it, improving it, and finally after a couple of rewrites we ended up with <a href="https://github.com/wunderkraut/build.sh">build.sh</a>.<br /><br />Things it does for you:</p><ul><li>download and install Drupal</li><li>update Drupal core and modules</li><li>copy &amp; link custom code directories and/or files</li><li>handle separate settings.php for each environment</li><li>take backups</li></ul><p><br />Our continuously evolving workflow is:</p><ol><li>Grab a copy of build.sh</li><li>Modify conf/site.make to our liking</li><li>Enable contrib &amp; custom modules as a dependency in code/profiles/wk/wk.info</li><li>Run ./build.sh new</li></ol><p><img alt="build.sh-new.gif" class="media-image" height="407" title="build.sh-new.gif" width="541" src="http://www.wunderkraut.com/sites/wunderkraut.com/files/build.sh-new.gif" /><br /><br />If things go well this should result in a folder called drupal, this is where your fresh installation is.<br /><br />Next, we might want to update the version of Drupal core.</p><ol><li>Bump up the version of Drupal core in conf/site.make</li><li>Run ./build.sh update</li></ol><p><img alt="build.sh-update.gif" class="media-image" height="407" title="build.sh-update.gif" width="541" src="http://www.wunderkraut.com/sites/wunderkraut.com/files/build.sh-update.gif" /></p><p><br />But wait - theres more! Build.sh allows you to define your own commands that do whatever you want. Have a look at the <a href="https://github.com/wunderkraut/build.sh/blob/master/README.md">README.md</a> for further information.<br /><br /><a href="https://github.com/wunderkraut/build.sh">https://github.com/wunderkraut/build.sh</a><br /> </p> </div>
</div>Thu, 30 Jul 2015 08:00:12 +0000CiviCRM Blog: Pro-bono Drupal work availablehttps://civicrm.org/blogs/cividesk/pro-bono-drupal-work-available
<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-item even" property="content:encoded"> <p><a href="http://www.cividesk.com">Cividesk</a> is one of the leading CiviCRM service providers. Giving Back is a cornerstone of our company culture, and we proudly support many charitable and humanitarian organizations with pro-bono or reduced-cost services. While our <a href="https://www.cividesk.com/about/giving-back">Giving back</a> program is usually full, we still have a few Drupal openings this summer and would therefore be glad to support nonprofits that need Drupal work with pro-bono services.</p>
<p>Criteria for being part of the program are simple: being a primarely volunteer-run non-profit organization providing free and secular services to the underprivileged (every word is important!).</p>
<p>If your organization fits these criteria, please drop us a line at <a href="mailto:info@cividesk.com">info@cividesk.com</a> with your wishes and we might make turn them into reality!</p>
<p> </p>
<p> </p>
</div>
</div>
<div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-hidden clearfix">
<ul class="field-items">
<li class="field-item even">
<a href="/category/civicrm-blog-categories/drupal" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Drupal</a> </li>
</ul>
</div>Thu, 30 Jul 2015 04:33:10 +0000Drupal Commerce: Commerce Kickstart 2.27 Releasehttps://drupalcommerce.org/blog/37842/commerce-kickstart-227-release
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>Commerce Kickstart 2.27 was released today, and includes quite a few bugfixes and features. Recently Commerce Kickstart 2 upgraded from Features 1.x to the Features 2.x API, and we've added some measures to help with the upgrade process! If you're not using <a href="https://www.drupal.org/project/features_override">Features Override</a> yet, go on get it! Use this to save your customizations to the distribution and have a smoother upgrade. For more information, see the <a href="https://drupalcommerce.org/commerce-kickstart-2/install">Installing &amp; Upgrading guide</a>.</p></div></div></div>Thu, 30 Jul 2015 02:14:48 +0000Pantheon Blog: Composer vs. Drush Make: Which Should You Use?https://pantheon.io/blog/composer-vs-drush-make-which-should-you-use
(Picture of Ryu and Ken by FioreRose)
Michael Prasuhn recently sent out a tweet regarding Composer vs Drush Make:Wed, 29 Jul 2015 19:49:00 +0000Drupal Watchdog: VIDEO: DrupalCon Los Angeles Interview: Rudy Grigarhttps://drupalwatchdog.com/blog/2015/7/video-dcla-rudy-grigar
<div class="field field--body field-type-text-with-summary field-label-hidden field--rss">
<p><strong>Rudy Grigar</strong> (Infrastructure Manager, Drupal.org) would love to have learned Drupal in pre-school, but alas, he had to wait till third grade.<br />
Here, he opens up about Git commits and DevOps which sounds very hush-hush. As I probe further, Rudy lets slip controversial remarks about Drupal’s potential for subversion, the NSA’s consequential attempts to suppress open source (if I understand him correctly), and an upcoming article he’ll write for <em>Drupal Watchdog</em>. (Hurry, subscribe! <a href="https://drupalwatchdog.com/subscribe/2015">https://drupalwatchdog.com/subscribe/2015</a>)</p>
</div>
<div class="field field--tags field-type-taxonomy-term-reference field-label-above field--rss">
<div class="field-label"><span class="icon glyphicon glyphicon-tag" aria-hidden="true"></span>Tags:&nbsp;</div>
<div class="field-items"> <a href="/tags/video" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Video</a> <a href="/tags/drupalcon-la" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">DrupalCon LA</a> <a href="/tags/drupalcon" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">DrupalCon</a> </div></div>
<div class="field field--video field-type-video-embed-field field-label-above field--rss">
<div class="field-label">Video:&nbsp;</div>
<div class="embedded-video">
<div class="player">
<iframe width="640" height="360" src="//www.youtube.com/embed/Q41dBed6xlw?width=640&amp;height=360&amp;autoplay=0&amp;vq=large&amp;rel=0&amp;controls=1&amp;autohide=2&amp;showinfo=1&amp;modestbranding=0&amp;theme=dark&amp;iv_load_policy=1&amp;start=0&amp;wmode=opaque" frameborder="0" allowfullscreen></iframe> </div>
</div>
</div>Wed, 29 Jul 2015 17:45:54 +0000Commercial Progression: Michigan Drupal Developers and their Summer Projects (E10)https://www.commercialprogression.com/podcast/episode/michigan-drupal-developers-and-their-summer-projects-e10
<div class="field field-name-field-media field-type-file field-label-hidden">
<div class="field-items">
<div class="field-item even"><div class="mediaelement-audio"><audio src="https://www.commercialprogression.com/sites/default/files/podcasts/Hooked_on_Drupal-summer_of_drupal-e10.mp3" class="mediaelement-formatter-identifier-1438202254-0" controls="controls" ></audio><div class="mediaelement-download-link"><a href="https://www.commercialprogression.com/sites/default/files/podcasts/Hooked_on_Drupal-summer_of_drupal-e10.mp3">Download</a></div></div></div>
</div>
</div>
<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-items">
<div class="field-item even"><p><iframe allowfullscreen="" frameborder="0" height="360" src="https://www.youtube.com/embed/Ec3K2xCbrJY?rel=0" width="640"></iframe></p><p dir="ltr">Commercial Progression presents Hooked on Drupal, “Episode 10: <strong>Summer of Drupal with Special Guests Hillary Lewandowski and Michael Zhang</strong>". In this episode of Hooked on Drupal, the usual crew is joined by two new members to the CP team. <a href="https://www.commercialprogression.com/user/hillary">Hillary Lewandowski</a>, the latest member to the development team brings her wisdom from a formal education in computer science. </p><p dir="ltr"><a href="https://youtu.be/Ec3K2xCbrJY?t=10m52s"><img alt="Michael Zhang of Northville DECA, the world's happiest intern" src="/sites/default/files/compro_happy_intern_interview.jpg" style="width: 600px; height: 400px;" /></a></p><p dir="ltr">Additionally, Michael Zhang is one of two summer interns from <a href="http://nhs.northvilleschools.org/">Northville High School</a> and an active member of <a href="http://www.northvilledeca.com/">Northville DECA</a>, with a focus on marketing.</p><p>Hooked on Drupal is available for <a href="http://www.commercialprogression.com/podcast/hooked-on-drupal/podcast.xml">RSS syndication here</a> at the <a href="https://www.commercialprogression.com/podcast/hooked-on-drupal">Commercial Progression site</a>. Additionally, each episode is available to watch online via our <a href="https://www.youtube.com/playlist?list=PL-GArqUv8d1_nIuIGhbAzP4nca69MoUvz">YouTube channel</a>, within the <a href="https://itunes.apple.com/us/podcast/hooked-on-drupal/id934844910">iTunes store</a>, on <a href="https://soundcloud.com/comprodrupal">SoundCloud</a>, and now via <a href="http://www.stitcher.com/podcast/commercial-progression/hooked-on-drupal">Stitcher</a>.</p><p>If you would like to participate as a guest or contributor, please email us at</p><p dir="ltr"><a href="mailto:social@commercialprogression.com">social@commercialprogression.com</a></p><h2>Content Links and Related Information</h2><p>We experienced this year's DrupalCon vicariously through our last <a href="http://www.meetup.com/midrupal/events/222614258/">Michigan Drupal meetup</a> and our previous <a href="http://www.commercialprogression.com/podcast/episode/drupalcon-la-2015-highlights-steve-burge-ostraining-e9">podcast with Steve Burge from OSTraining</a>. This summer proves to be quite busy with new team members, projects, and Drupal 8 investigations.</p><p>As the Commercial Progression team size grows, our development team has begun to specialize. <a href="https://www.commercialprogression.com/user/brad-czerniak">Brad</a> has focused on developing new processes for site architecture and shares his discoveries for <a href="http://www.commercialprogression.com/post/streamlining-development-process">preparing a Drupal project for design and development</a>. Other team members share their personal project subject matter.</p><p><strong>OOP In Drupal 8</strong></p><p>In addition to working with the new <a href="http://realityloop.com/blog/2015/06/17/wysiwyg-fields">WYSIWYG Fields</a> and <a href="https://www.drupal.org/project/conditional_fields">Conditional Fields</a>, Hillary shares some of her thoughts and computer science background with <a href="https://www.commercialprogression.com/post/drupal-8-oop-part-1-building-block">Object Oriented Programming and Drupal 8</a> in her latest blog post.</p><p><strong>Personalize Module</strong></p><p><a href="https://www.commercialprogression.com/user/chris-keller">Chris</a> and <a href="https://www.commercialprogression.com/user/shane">Shane</a> discuss the Acquia contrib <a href="https://www.drupal.org/project/personalize">Personalize module</a> based on <a href="https://www.acquia.com/products-services/acquia-lift">Lift technology</a> for content personalization via URL based campaign parameters, geography, visitor cookies, A/B or Multi-variate testing, and a host of other variable session data.</p><p><strong>Paragraphs Module</strong></p><p>Inspired by Jeff Eaton and the <a href="https://events.drupal.org/losangeles2015/sessions/battle-body-field">Battle for the Body Field</a> DrupalCon presentation, Brad dug into the <a href="https://www.drupal.org/project/paragraphs">Paragraphs module</a> and put together a popular <a href="http://www.commercialprogression.com/post/paragraphs-are-drupals-answer-structured-content">paragraphs blog post</a> with some best practices for winning the battle for the body field. When Brad is not fighting the good fight for the supremacy of the Paragraphs module, he has also created an automated competitive marketing intelligence research script… yeah I know, really.</p><p> </p><h2>Hooked on Drupal Content Team</h2><p dir="ltr"><a href="https://www.commercialprogression.com/user/brad-czerniak">BRAD CZERNIAK</a> - Developer</p><p dir="ltr"><a href="https://www.commercialprogression.com/user/chris-keller">CHRIS KELLER</a> - Developer</p><p dir="ltr"><a href="https://www.commercialprogression.com/user/hillary">HILLARY LEWANDOWSKI</a> - Developer</p><p dir="ltr"><a href="http://www.northvilledeca.com/northville-deca-leadership/">MICHAEL ZHANG</a> - Intern</p><p dir="ltr"><a href="https://www.commercialprogression.com/user/shane">SHANE SEVO</a> - Host</p><div> </div><h2>Podcast Subscription</h2><ul><li dir="ltr"><p dir="ltr"><a href="https://www.commercialprogression.com/podcast/hooked-on-drupal">Podcast</a></p></li><li dir="ltr"><p dir="ltr"><a href="http://www.commercialprogression.com/podcast/hooked-on-drupal/podcast.xml">Podcast RSS Feed</a></p></li><li dir="ltr"><p dir="ltr"><a href="https://www.commercialprogression.com/blog-tags/hooked-drupal">Hooked on Drupal Blog</a></p></li><li dir="ltr"><p dir="ltr"><a href="https://www.youtube.com/subscription_center?add_user=comprodrupal">YouTube Channel</a></p></li><li dir="ltr"><p dir="ltr"><a href="https://itunes.apple.com/us/podcast/hooked-on-drupal/id934844910">iTunes Podcast</a></p></li><li dir="ltr"><p dir="ltr"><a href="https://soundcloud.com/comprodrupal">SoundCloud Stream</a></p></li><li dir="ltr"><p dir="ltr"><a href="http://www.stitcher.com/podcast/commercial-progression/hooked-on-drupal">Stitcher</a></p></li></ul><p dir="ltr"><a href="https://www.commercialprogression.com/podcast/episode/michigan-drupal-developers-and-their-summer-projects-e10"><img alt="Michigan Drupal Developer podcast" src="/sites/default/files/episode10_summer_titleslide2.jpg" style="width: 600px; height: 338px;" /></a></p></div>
</div>
</div>
<div class="field field-name-field-tags field-type-taxonomy-term-reference field-label-inline clearfix">
<div class="field-label">Tags:&nbsp;</div>
<div class="field-items">
<div class="field-item even"><a href="/blog-tags/hooked-drupal">Hooked on Drupal</a>, <a href="/blog-tags/drupal-8">Drupal 8</a>, <a href="/blog-tags/oop">OOP</a>, <a href="/blog-tags/personalize">Personalize</a>, <a href="/blog-tags/planet-drupal">Planet Drupal</a>, <a href="/blog-tags/podcast">podcast</a></div>
</div>
</div>Wed, 29 Jul 2015 15:44:42 +0000Drupalize.Me: Release Day: Send Email Using MailChimp with Drupal 7https://drupalize.me/blog/201507/release-day-send-email-using-mailchimp-drupal-7
<div class="field field-name-body field-type-text-with-summary field-label-hidden text-content text-secondary"><div class="field-items"><div class="field-item even"><p>This week we'll be continuing our <a href="//drupalize.me/series/using-mailchimp-drupal-7">Using MailChimp with Drupal 7</a> series. And like last week, all the tutorials are free. <a href="//drupalize.me/blog/201507/release-day-integrate-mailchimp-drupal-7" title="Release Day: Integrate MailChimp with Drupal 7">Last week</a> we looked at creating, and collecting contacts for, a <a href="http://mailchimp.com">MailChimp</a> mailing list. This week we'll look at all the different ways we can send email to our lists.</p>
</div></div></div><div id="comment-wrapper-nid-2256"></div>Wed, 29 Jul 2015 13:00:46 +0000Realityloop: Community driven developmenthttp://realityloop.com/blog/2015/07/29/community-driven-development
<div
class="field field-name-post-date field-type-ds field-label-hidden">
<span class="day">29</span> Jul </div>
<div
class="field field-name-author field-type-ds field-label-hidden">
Stuart Clark </div>
<div class="field field-name-field-image"><img typeof="foaf:Image" src="http://realityloop.com/sites/realityloop.com/files/cdd_header.png" width="720" height="338" alt="" /></div><div class="field field-name-body"><p>Realityloop has a long history with the Melbourne Drupal community; We’ve
been heavily involved in the monthly Drupal meetups and began the monthly
mentoring meetups. However, the monthly mentoring only came about after a
failed experiment in community based web development.</p>
<p>While that experiment may have failed, the idea of community driven Drupal
development has been of great interest to me as it truly embraces the spirit
of open source.</p>
<p>In the last two weeks I have release two websites for the Drupal Melbourne
community, a <a href="http://melbourne.drupal.org.au" target="_blank">DrupalMelbourne
community portal</a> and a landing page for the upcoming <a
href="http://dcm2015.drupal.org.au"
target="_blank">DrupalCampMelbourne2015</a>. In this tutorial I will be
demonstrating how anyone can get involved with the development of these sites,
or how the process can work for the benefit of any other community based
website.</p>
<p>&nbsp;</p>
<h3>The workflow:</h3>
<ol>
<li>Build the codebase</li>
<li>Setup and install the site</li>
<li>Make your changes</li>
<li>Update features and makefiles</li>
<li>Test the changes</li>
<li>Fork repository / push changes / pull request</li>
</ol>
<p>&nbsp;</p>
<h3>Build the codebase</h3>
<p>As per usual for myself and Realityloop, these sites are built using a slim
line profile / makefile approach with the GIT repository tracking custom code
only, which means you will require Drush to build the site codebase.</p>
<p>If you are not familiar with Drush (<strong>DRU</strong>pal
<strong>SH</strong>ell), I highly recommend familiarising yourself as it’s not
only incredibly useful in everyday Drupal development, it is also a
requirement for this tutorial. Installation instructions can be found at <a
href="http://www.drush.org/en/master/install/" target="_blank">http://www.drush.org/en/master/install/</a>
</p>
<p>Assuming you have Drush ready to go, building the codebase is as simple as
running the following, relevant command:</p>
<ul>
<li><strong>DrupalMelbourne​</strong>
<span class="geshifilter"><code class="text geshifilter-text">drush make --working-copy=1 https://raw.githubusercontent.com/drupalmel/drupalmel/master/stub.make drupalmel-7.x</code></span>
</li>
<li><strong>DrupalCampMelbourne2015</strong>
<span class="geshifilter"><code class="text geshifilter-text">drush make --working-copy=1 https://raw.githubusercontent.com/drupalmel/drupalcampmel/2015.x/stub.make dcm-2015.x</code></span>
</li>
</ul>
<p>The resulting codebase contains the specified Drupal core (currently 7.38)
along with the relevant install profile containing all custom and contrib code
(modules, themes and libraries).</p>
<p><strong>Note:</strong> <em>--working-copy=1</em> is used to retain the link
to the GIT repository.</p>
<p>&nbsp;</p>
<h3>Setup and install the site</h3>
<p>Once your codebase is built you simply need to install a site as you would
normally do so, ensuring that you use the relevant installation profile
(DrupalMelbourne or DrupalCampMelbourne).</p>
<p>The sites are constructed in such a way that there is absolutely no need to
copy down the production database, any content is either aggregated from
external sources, or dummy content is created via the Devel generate module
for the purposes of development. This means that there is no laborious data
sanitization processes required, allowing contributors to get up and running
in as short of time as possible.</p>
<p>For more details on how to setup a Drupal site, refer to the <a
href="https://www.drupal.org/documentation/install" target="_blank">Installation
Guide</a> or your *AMP stack.</p>
<p>&nbsp;</p>
<h3>Make your changes</h3>
<p>No change is insignificant, and a Community driven site thrives on changes;
if you think you can make the site look better, found a bug that you can fix,
or want new functionality on the site, the only thing stopping you is you!</p>
<p>&nbsp;</p>
<h3>Update features and makefiles</h3>
<p>Once you’re happy with the changes you’ve made, be it content, theme or
configuration, you need to ensure that it’s deployable, and as we’re not
dealing with databases at all, this means that you need to update the
codebase; features and makefiles.</p>
<p>If you’re not familiar with Features or Makefiles, much like Drush, I highly
recommend them, as again, they are required for this particular approach of
Community driven development.</p>
<p>You can find more details on Features, Makefiles and Drush at my DrupalSouth
2012 talk "<a
href="http://realityloop.com/blog/2012/01/07/ezy-bake-drupal-cooking-sites-distributions"
target="_blank">Ezy-Bake Drupal:Cooking sites with Distributions</a>".</p>
<p>&nbsp;</p>
<h4>Features</h4>
<p>Features allows you to capture most of your configuration in the filesystem,
allowing to be deployed via GIT.</p>
<p>In the case of these sites, there is only one feature which encapsulates all
configuration, as these sites have a relatively straight forward purpose. Some
sites may warrant more, that is a discussion for another day.</p>
<p>To update the feature, it’s an extremely simple process:</p>
<ol>
<li>Navigate to the relevant path within your site:
<ul>
<li><strong>DrupalMelbourne:</strong>
admin/structure/features/drupalmel_core/recreate
</li>
<li><strong>DrupalCampMelbourne2015:</strong>
admin/structure/features/drupalcampmel_core/recreate<br/>
&nbsp;</li>
</ul>
</li>
<li>Add or remove any required components (Page manager, Strongarm, Views,
etc).<br/>
&nbsp;</li>
<li>Expand the Advanced options fieldset and click the Generate feature
button.
</li>
</ol>
<p>More information can be found at the <a
href="https://www.drupal.org/project/features" target="_blank">Features
project page</a>.</p>
<p>&nbsp;</p>
<h4>Makefiles</h4>
<p>Makefiles are recipes of modules, themes and libraries that get downloaded by
Drush make, including their versions and patches.</p>
<p>Updating a makefile is relatively straightforward, it’s just a matter of
opening the file in your IDE / text editor of choice and updating the
entries.</p>
<p>There are two makefile in these sites, stub.make and drupal-org.make; the
stub.make contains Drupal core and the install profile (and any relevant
patches) and the drupal-org.make contains all third-party (contrib) code.</p>
<p>Any new or updated modules, themes or libraries (and any relevant patches)
need to be added to this file, as no third-party code is tracked in the GIT
repo.</p>
<p>The makefiles are organized into three primary sections; Modules, Themes and
Libraries. Below are some examples of how an entry should be defined:</p>
<p>&nbsp;</p>
<p><strong>Bean module, version 1.9:</strong></p>
<span class="geshifilter"><code class="text geshifilter-text">projects[bean][version] = 1.9</code></span>
<p>&nbsp;</p>
<p><strong>Reroute Email module, specific GIT revision with patch
applied:</strong></p>
<div class="geshifilter"><pre class="text geshifilter-text"><ol><li class="li1"><div class="de1">projects[reroute_email][download][revision] = f2e3878</div></li><li class="li1"><div class="de1">; Variable integration - http://drupal.org/node/1964070#comment-7294928</div></li><li class="li1"><div class="de1">projects[reroute_email][patch][] = http://drupal.org/files/reroute_email-add-variable-module-integration-1964070-2.patch</div></li></ol></pre></div>
<p><strong>Note:</strong> It is always important to include version, if you need
a development release then use a GIT revision as otherwise what you build
today may be drastically different from what you build tomorrow.</p>
<p>&nbsp;</p>
<p><strong>Bootstrap theme, version 3.1-beta2:</strong></p>
<div class="geshifilter"><pre class="text geshifilter-text"><ol><li class="li1"><div class="de1">projects[bootstrap][type] = theme</div></li><li class="li1"><div class="de1">projects[bootstrap][version] = 3.1-beta2</div></li></ol></pre></div>
<p><strong>Note:</strong> As the default projects&nbsp;'type' is set to module,
themes need to specify their type. This is a personal choice in the Drush make
file configuration, as it is highly likely you will always have more modules
than themes.</p>
<p>&nbsp;</p>
<p><strong>Backbone library, version 1.1.2:</strong></p>
<div class="geshifilter"><pre class="text geshifilter-text"><ol><li class="li1"><div class="de1">libraries[backbone][download][type] = get</div></li><li class="li1"><div class="de1">libraries[backbone][download][url] = https://github.com/jashkenas/backbone/archive/1.1.2.zip</div></li></ol></pre></div>
<p><strong>Note:</strong> As libraries are not projects hosted on Drupal.org (in
general), you need to specify the URL of which the files is downloadable, or
cloneable, from.</p>
<p><br/>
More information can be found on the <a
href="http://www.drush.org/en/master/make/" target="_blank">Drush make
manual page</a>.</p>
<p>&nbsp;</p>
<h4>Other changes / hook_update_N()</h4>
<p>Sometimes changes don’t fall under the realm of features or makefiles, either
due to a modules lack of integration with features, or when dealing with
content rather than configuration. This still needs to be deployable via the
codebase, and can be done with the use of a hook_update_N() function.</p>
<p>A <strong>hook_update_N()</strong> is a magic function that lives in a
modules .install file, where <strong>hook</strong> is the machine name of the
module and <strong>N</strong> is a numeric value, formatted as a 4 digit
number in the form of <strong>XY##</strong>, where <strong>X</strong> is the
major version of Drupal (7), <strong>Y</strong> is the major version of the
module (1) and <strong>##</strong> is a sequential value, from 00 to 99.</p>
<p><strong>Example:</strong> <em>drupalmel_core_7100()</em> / <em>drupalcampmel_core_7100()</em>
</p>
<p>The contents of a hook_update_N() is whatever you wish it to be, and Drupal
API function or PHP.</p>
<p>An example of one such function is:</p>
<div class="geshifilter"><pre class="text geshifilter-text"><ol><li class="li1"><div class="de1">/**</div></li><li class="li1"><div class="de1"> * Assign 'ticket holder' role to ticket holders.</div></li><li class="li1"><div class="de1"> */</div></li><li class="li1"><div class="de1">function drupalcampmel_core_update_7105() {</div></li><li class="li1"><div class="de1"> $query = new EntityFieldQuery();</div></li><li class="li1"><div class="de1"> $results = $query-&gt;entityCondition('entity_type', 'entityform')</div></li><li class="li1"><div class="de1"> -&gt;entityCondition('bundle', 'confirm_order')</div></li><li class="li1"><div class="de1"> -&gt;execute();</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"> if (!empty($results['entityform'])) {</div></li><li class="li1"><div class="de1"> $entityforms = entityform_load_multiple(array_keys($results['entityform']));</div></li><li class="li1"><div class="de1"> foreach ($entityforms as $entityform) {</div></li><li class="li1"><div class="de1"> $user = user_load($entityform-&gt;uid);</div></li><li class="li1"><div class="de1"> $user-&gt;roles[3] = 'ticket holder';</div></li><li class="li1"><div class="de1"> user_save($user);</div></li><li class="li1"><div class="de1"> }</div></li><li class="li1"><div class="de1"> }</div></li><li class="li1"><div class="de1">}</div></li></ol></pre></div>
<p><br/>
For more details, refer to the <a
href="https://api.drupal.org/api/function/hook_update_N/7" target="_blank">hook_update_N()
API documentation</a>.</p>
<p>&nbsp;</p>
<h3>Test the changes</h3>
<p>Once you’ve made your changes and prepared your features and makefiles, it’s
ideal to ensure that everything is working as expected before you push it up
to the GIT repo.</p>
<p>This is a multi-step process, but it’s easy enough, especially given that we
don’t have a database that we have to worry about.</p>
<p>&nbsp;</p>
<h4>Features:</h4>
<ol>
<li>Take a database dump of your local (development) site; Safety first.<br/>
&nbsp;</li>
<li>Re-install the site with the the relevant install profile:
<ul>
<li><strong>DrupalMelbourne:</strong>
<span class="geshifilter"><code class="text geshifilter-text">drush si drupalmel -y</code></span>
</li>
<li><strong>DrupalCampMelbourne2015:</strong>
<span class="geshifilter"><code class="text geshifilter-text">drush si drupalcampmel -y</code></span>
</li>
</ul>
</li>
<li>Test to ensure your changes are present and working as expected.</li>
</ol>
<p>&nbsp;</p>
<h4>Makefiles:</h4>
<p>Testing your makefile can be a little bit trickier than testing your
features, as when you download a module, theme or library there are various
places they can be stored, and it’s easy to get a false positive.</p>
<ol>
<li>Build a <strong>--no-core</strong> version of the drupal-org.make file
into a temporary directory. A <strong>--no-core</strong> build is exactly
what it sounds like, build the makefile excluding Drupal core.<br/>
<br/>
<strong>Example:</strong>
<div class="geshifilter"><pre class="text geshifilter-text"><ol><li class="li1"><div class="de1">cd ~/temp</div></li><li class="li1"><div class="de1">drush make --no-core --no-gitinfofile ~/Sites/drupalmel-7.x/profiles/drupalmel/drupal-org.make dm-temp</div></li></ol></pre></div>
</li>
<li>Run a diff/merge tool over the --no-core build’s sites/all directory and
your local (development) site’s relevant profile directory (e.g.,
profiles/drupalmel).<br/>
<br/>
I personally use <a href="http://martiancraft.com/products/changes.html"
target="_blank">Changes</a> on OS X, but there are
different free and paid diff/merge tools for different operating
systems.<br/>
&nbsp;</li>
<li>Ensure that all third-party (contrib) code is identical on both sides of
the diff/merge, any discrepancies imply that you may be missing an entry in
your makefile, or that your local version of the code is located in an
incorrect location.
</li>
</ol>
<p>If your changes aren’t working as expected, or something is missing, simply
restore your database dump and go back to the Update features and makefiles
step.</p>
<p>&nbsp;</p>
<h3>Fork repository / push changes / pull request</h3>
<p>Now that you have made your changes and everything is good to go, it’s time
to push those changes back to the repository.</p>
<p>For the sake of a manageable review process, it’s preferable that all changes
should be made in a fork with a pull request back to the master
repository.</p>
<p>If you’ve only ever lived in the realm of Drupal.org, then this may be an
entirely alien process, but it is again a relatively straight forward
process.</p>
<p><strong>Note:</strong> If you don’t have a Github account, you will need one.
Signup for free at <a href="https://github.com/join" target="_blank">https://github.com/join</a>
</p>
<ol>
<li>Go to the relevant Github repository:
<ul>
<li><strong>DrupalMelbourne:</strong> <a
href="https://github.com/drupalmel/drupalmel" target="_blank">https://github.com/drupalmel/drupalmel</a>
</li>
<li><strong>DrupalCampMelbourne2015:</strong> <a
href="https://github.com/drupalmel/drupalcampmel" target="_blank">https://github.com/drupalmel/drupalcampmel</a><br/>
&nbsp;</li>
</ul>
</li>
<li>Click the <strong>Fork</strong> button (top right of the page) and follow
the onscreen instructions.<br/>
&nbsp;</li>
<li>Click the <strong>Copy to clipboard</strong> button on the <strong>clone
URL</strong> field (in the right sidebar).<br/>
&nbsp;</li>
<li>Add a new GIT remote to your local (development) site with the copied URL.<br/>
<br/>
<strong>Example:</strong>
<div class="geshifilter"><pre class="text geshifilter-text"><ol><li class="li1"><div class="de1">cd ~/Sites/drupalmel-7.x/profiles/drupalmel</div></li><li class="li1"><div class="de1">git remote add fork git@github.com:Decipher/drupalmel.git</div></li></ol></pre></div>
</li>
<li>Commit and push the changes to your fork.<br/>
&nbsp;</li>
<li>Create a pull request via your Github fork by clicking the <strong>Pull
request</strong> button, providing as much detail as possible of what your
changes are.
</li>
</ol>
<p>If all goes well, someone will review your pull request and merge the changes
into the relevant website.</p>
<p>&nbsp;</p>
<h3>The review process</h3>
<p>So this is the not so community friendly part of the process; In a perfect
world the community should be able to run itself, but Github isn’t necessarily
setup this way, nor is Drupal.org. Someone has to specifically approve a Pull
request. Currently this is only myself and Peter Lieverdink (<a
href="https://www.drupal.org/u/cafuego" target="_blank">cafuego</a>).</p>
<p>I’m absolutely open to suggestion on how to improve this, comment below if
you have any thoughts on how this could be improved.</p>
<p>&nbsp;</p>
<h3>The uncommitables</h3>
<p>Not everything should be committed, especially in a public repository. A
perfect example of something that shouldn’t be committed is an API key.</p>
<p>The DrupalMelbourne website integrates with the Meetup.com API to pull in all
DrupalMelbourne Meetups, but exposing the API key to the codebase would open
the DrupalMelbourne meetup group to abuse and spam.</p>
<p>To deal with this, API keys and other sensitive items can be dealt included
directly on the server or in the database, and placeholders can be user for
local development.</p>
<p>&nbsp;</p>
<h3>Open source your site?</h3>
<p>Exposing your website codebase is definitely not the normal practice, and
it's absolutely not for everyone. I couldn't imagine trying to convince a
client to go down this road. But for a community site, especially a Drupal
based community site, it just makes sense. While I wouldn't expect every
visitor with Drupal knowledge to volunteer their time to help with the sites
development, any who do is 100% more than you'd get otherwise.</p>
</div><div class="field field-name-field-tags">drupaldrupal planet</div>Wed, 29 Jul 2015 08:05:34 +0000Modules Unraveled: 142 Why Drupal 8 is the Most Important Product Release in the History of the WCM Market with Tom Wentworth - Modules Unraveled Podcasthttps://modulesunraveled.com/podcast/142-why-drupal-8-most-important-product-release-history-wcm-market-tom-wentworth-modules
<div class="field field--name-field-image field--type-image field--label-hidden"><div class="field__items"><div class="field__item even"><img typeof="foaf:Image" src="https://modulesunraveled.com/sites/default/files/styles/podcast_default/public/podcast/image/TomWentworth.jpg?itok=fqr_IjyO" width="350" height="350" alt="Photo of Tom Wentworth" /></div></div></div><span class="submitted-by">Published: Wed, 07/29/15</span><div class="field field--name-field-podcast-file field--type-file field--label-hidden"><div class="field__items"><div class="field__item even"><div class="mediaelement-audio"><audio src="http://traffic.libsyn.com/modulesunraveled/142_Why_Drupal_8_is_the_Most_Important_Product_Release_in_the_History_of_the_WCM_Market_with_Tom_Wentworth_-_Modules_Unraveled_Podcast.mp3" class="mediaelement-formatter-identifier-1438153266-0" controls="controls" ></audio><div class="mediaelement-download-link"><a href="http://traffic.libsyn.com/modulesunraveled/142_Why_Drupal_8_is_the_Most_Important_Product_Release_in_the_History_of_the_WCM_Market_with_Tom_Wentworth_-_Modules_Unraveled_Podcast.mp3">Download this episode</a></div></div></div></div></div><div class="field field--name-body field--type-text-with-summary field--label-hidden"><div class="field__items"><div class="field__item even" property="content:encoded"><p>So, Doug Vann emailed the two of us a while ago and said that I should have you on because</p>
<blockquote><p>"I'm on the record as a huge fan of Tom's for his well educated and well rounded perspective on proprietary and Open Source software solutions. ... I'd be excited to hear Tom interviewed on the topic of how Drupal 8 will continue to erode into the proprietary market."</p>
</blockquote>
<p>I thought that sounded good, so here we are!</p>
<h2>Web Content Management</h2>
<ul><li>When you replied, you said that Drupal 8 is the most important product release in the history of the WCM market. Can you start out by explaining what WCM stands for and what qualifies software as a WCM product?</li>
<li>You also mentioned that the 2nd most important release was Day Software’s CQ5. What is that?</li>
<li>When I hear about Drupal’s competitors, I generally hear about Wordpress and Joomla. Why aren’t either of those number two?</li>
</ul><h2>Drupal’s Place in the WCM Market</h2>
<ul><li>How has Drupal faired in the WCM market so far?</li>
<li>What do you see Drupal 8 bringing to the table that sets it apart from other products?</li>
</ul><h2>Questions from Twitter</h2>
<ul><li>
<p>Jacob Redding</p>
<ul><li>How does Drupal 8 change the comparison with AEM? Specifically what are the features with Drupal 8 that bring Drupal to a more level playing field with AEM? Is there a single specific feature that Drupal does hands down better than AEM?</li>
</ul></li>
<li>
<p>Doug Vann</p>
<ul><li>MY MOST IMPORTANT QUESTION
<ul><li>Drupal promotes an "Ownership Society" where Universities, Media Companies, Governments, etc. hire in ​Drupal talent and build sites inhouse. How does D8 impact that trend? Is D8 more for shops and agencies and less for DIYers or is that just F.U.D. talking?​</li>
</ul></li>
<li>Any Drupaler would state that Drupal has been "disruptive" insofar as we have allowed highly visible sites to ditch their proprietary CMS in favour of Drupal.
<ul><li>To date, has that success been "truly disruptive" by your definition?</li>
<li>With the astounding advancements baked into D8, are you looking forward to an even more disruptive presence in the CMS playing field?</li>
</ul></li>
<li>Shops
<ul><li>Is Drupal 8 ushering in a new era which will see a fundamental shift in how Drupal is delivered in the areas of customer procurement, engagement, and delivery?</li>
<li>To reword that. Are Adobe CQ5 and Sitecore shops operating significantly different than Drupal shops today AND are we going to see Drupal shops retooling and reshaping to a more enterprise looking organization?</li>
<li>In The past 18+ months, it seems that more people are willing to ​admit that Drupal 8 is moving Drupal "Up Market." Agencies are often the vendor of choice in those deep waters. Should we expect some more mergers and acquisitions which will ultimately empower agencies to deliver Drupal services inhouse?​</li>
</ul></li>
<li>​The little guys
<ul><li>Where are the little guys in the D landscape?</li>
<li>Do you still see the $10K and the $45K range websites feeding the smaller end of the Drupal ecosystem?</li>
</ul></li>
</ul></li>
</ul></div></div></div><div class="field field--name-field-items-mentioned field--type-link-field field--label-above"><div class="field__label">Episode Links:&nbsp;</div><div class="field__items"><div class="field__item even"><a href="https://www.drupal.org/u/twentworth12" rel="nofollow" target="_blank">Tom on drupal.org</a></div><div class="field__item odd"><a href="https://twitter.com/twentworth12" rel="nofollow" target="_blank">Tom on Twitter</a></div><div class="field__item even"><a href="https://www.drupal.org/drupal-8.0" rel="nofollow" target="_blank">Drupal 8 Info Page</a></div><div class="field__item odd"><a href="https://www.acquia.com/blog" rel="nofollow" target="_blank">Acquia Blog</a></div><div class="field__item even"><a href="https://www.acquia.com/drupal-8" rel="nofollow" target="_blank">Acquia’s Drupal 8 Info Page</a></div><div class="field__item odd"><a href="https://www.acquia.com/sites/default/files/library/attachment/ultimate-guide-drupal-8.pdf" rel="nofollow" target="_blank">Acquia’s Ultimate Guide to Drupal 8 (Exclusive direct link!)</a></div></div></div><div class="field field--name-field-tags field--type-taxonomy-term-reference field--label-above"><div class="field__label">Tags:&nbsp;</div><div class="field__items"><div class="field__item even"><a href="/tags/drupal-8" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Drupal 8</a></div><div class="field__item odd"><a href="/planet-drupal" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">planet-drupal</a></div></div></div>Wed, 29 Jul 2015 05:00:00 +0000Jim Birch: Googlebot cannot access CSS and JS on your Drupal sitehttp://jimbir.ch/blog/googlebot-cannot-access-css-js-your-drupal-site?utm_source=feed&amp;utm_medium=drupal-planet&amp;utm_campaign=node/41
<a href="http://jimbir.ch/blog/googlebot-cannot-access-css-js-your-drupal-site?utm_source=feed&amp;utm_medium=drupal-planet&amp;utm_campaign=node/41" title="Googlebot cannot access CSS and JS on your Drupal site"><img src="http://jimbir.ch/sites/default/files/styles/drupal_planet/public/img/blog/Lego-Uncle-Jim-at-the-Cape.jpg?itok=yDB3yjET" width="620" height="465" alt="Lego Uncle Jim at the Cape" title="Lego Uncle Jim at the Cape" /></a><br>
<p>There was a time when search engine bots would come to your site, index the words on the page, and continue on. Those days are long past. Earlier this year, we witnessed Google's ability to determine if our sites were mobile or not. Now, the evolution of the Googlebot continues.</p>
<p>I would say that it was not uncommon for web developers to receive at least a few emails from Google Search Console today.</p>
<blockquote style="font-family:Lato;font-size:80%;">To: Webmaster...<br />
Google systems have recently detected an issue with your homepage that affects how well our algorithms render and index your content. Specifically, Googlebot cannot access your JavaScript and/or CSS files because of restrictions in your robots.txt file. These files help Google understand that your website works properly so <strong>blocking access to these assets can result in suboptimal rankings</strong>.</blockquote>
<p>Well, that's a little bit of information that I never thought about before, Google wanting to understand, how my "website works", not just understanding the content and the structure of it. Turns out, Google has been working toward this since <a href="http://googlewebmastercentral.blogspot.com/2014/10/updating-our-technical-webmaster.html" target="_blank">October of last year</a>.</p>
<h3>Update your robots.txt</h3>
<p>To allow Googlebot to access your Javascript and CSS files, add a specific User-agent for Googlebot, repeating the rules you already have, and adding the new "Allow" rules.</p>
<p><a href="http://jimbir.ch/blog/googlebot-cannot-access-css-js-your-drupal-site?utm_source=feed&amp;utm_medium=drupal-planet&amp;utm_campaign=node/41" title="Googlebot cannot access CSS and JS on your Drupal site">Read more</a></p>Tue, 28 Jul 2015 23:27:03 +0000Midwestern Mac, LLC: Nginx Load Balancer Visualization on a Raspberry Pi Clusterhttp://www.midwesternmac.com/blogs/jeff-geerling/nginx-load-balancer
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>After some more tinkering with the <a href="https://github.com/geerlingguy/raspberry-pi-dramble">Raspberry Pi Dramble</a> (a cluster of 6 Raspberry Pis used to demonstrate Drupal 8 deployments using Ansible), I finally was able to <a href="https://github.com/geerlingguy/raspberry-pi-dramble/issues/45">get the RGB LEDs to react to Nginx accesses</a>—meaning every time a request is received by Nginx, the LED toggles to red momentarily.</p>
<p>This visualization allows me to see exactly how Nginx is distributing requests among the servers in different load balancer configurations. The default (not only for Nginx, but also for Varnish, HAProxy, and other balancers) is to use round-robin distribution, meaning each request is sent to the next server. This is demonstrated first, in the video below, followed by a demonstration of Nginx's <code>ip_hash</code> method, which pins one person's IP address to one backend server, based on a hash of the person's IP address:</p></div></div></div>Tue, 28 Jul 2015 17:03:30 +0000Mediacurrent: Mediacurrent Dropcast: Episode 8http://www.mediacurrent.com/blog/mediacurrent-dropcast-episode-8
<img typeof="foaf:Image" src="http://d1l4od7sxc8nwf.cloudfront.net/sites/default/files/styles/thumb_blog_spotlight/public/introducing-meidacurrent-dropcast-01.png?itok=f65GiXYs" width="200" height="152" /> <p dir="ltr">This episode we welcome Shellie Hutchens, Mediacurrent’s Marketing Director, to talk about upcoming webinars and and the fact that Mediacurrent is hiring. Ryan picked Stage File Proxy as the Module of the Now. We discuss our first non-drupal article from Four Kitchens about Saucier (pronunciation TBD). Mark stumbles through some D8 News and of course we finish off with some great conversation during Ryan’s Final Bell.</p>Tue, 28 Jul 2015 17:01:21 +0000Drupal Association News: Drupal Association Board Meeting: July 22, 2015https://assoc.drupal.org/blog/holly.ross.drupal/drupal-association-board-meeting-july-22-2015
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p><img alt="" src="https://assoc.drupal.org/files/2081905148_9bd4f8b133_m.jpg" style="width: 240px; height: 161px; border-width: 0px; border-style: solid; margin: 5px; float: left;" />Here we go again! It's your monthly summary of all things board meeting at the Drupal Association. This month we covered board governenance (there's a seat opening up), the D8 Accelerate Campaign, and the Association strategic frame. Plus, as a bonus, the board approved the Q2 financials for publication. As always, if you want to catch up on all the details, you can find everything you need to know about the meeting online, including minutes, materials, and a recording. If you're just here for a summary view, read on!</p>
<h4>
<a href="https://docs.google.com/document/d/1dLsJ9zMadG8dnAvRFtWzpIr_4gOz4OmXpPXtueDFUQ8/edit#heading=h.y7z6p71yx5nr">Meeting Minutes</a></h4>
<h4>
<a href="https://drive.google.com/drive/folders/0B8gZDNT4xrvZfmt6TUFfUERWSERaX0VlNnRWWUo0djRmMk00WWxFS1k3M0Nkb0hLaWhJYTQ">Related Materials</a></h4>
<h4>
<a href="http://17 June, 2015 Meeting Minutes Related Materials Video Recording">Video Recording</a></h4>
<h3>
Board governance</h3>
<p>Angie Byron's term on the board is going to be up this fall, and she has expressed her desire not to renew that term. We're going to be very sad to see Angie go, but thrilled that she will have one less hat to talk about when explaining which hat she is wearing at any given point during your next meeting with her. Seriously - she's brought so much thoughfulness and passion to the board. She's not leaving us yet (her term expires 10/31), but our Governance Committee will be working with the Nominations Committee to recruit candidates and help the board make the next selection.</p>
<h3>
D8 Accelerate</h3>
<p>As I write these words there are just 10(!) release blockers standing between us and a release candidate for Drupal 8. Part of the momentum this year has come from <a href="https://assoc.drupal.org/d8accelerate">Drupal 8 Accelerate</a>. We've made over 40 grants, worth more than $120,000 so far. That's helped us close nearly 100 issues, addressing some really important features, like a beta to beta upgrade, security bugs, and performance. If you're curious about what's getting funded, you can always see <a href="https://assoc.drupal.org/d8-accelerate-awarded-grants">the full list</a>. And, we're getting close to reaching our goal - we've raised $223,000. You can help us reach our $250,000 goal by <a href="https://www.crowdrise.com/fundraise-and-volunteer/donate-desktop/project/d8accelerate/drupalconinc">making a donation today</a>!</p>
<h3>
Drupal Association Strategic Frame</h3>
<p>Why are we doing the work we do? Because everyone at the Association wants to have a positive impact for Drupal. The best way for us to have an impact is to pick a few goals that we are going to focus on achieving. The Association board used their January retreat to set some 3-5 year goals for the Association:</p>
<ul><li>
To develop sufficient professionals to meet global demand for Drupal</li>
<li>
To lead the community in focused, efficient, effective development of Drupal</li>
<li>
To ensure the sustainability of the Drupal project and community</li>
<li>
To increase Drupal adoption in target markets</li>
<li>
To increase the strength and resilience of the Drupal Association</li>
</ul><p>We've been working since then to select the right strategies and objectives (1 year to 18 month time frame) for our work. You can see the directions we're headed in the <a href="https://drive.google.com/open?id=17sj9U5yOFapP1NFgUjXOfOqWq6kt2hY1pIjoGMHYHQ0">presentation we shared</a>. It's important to note that we expect to revisit our strategies and objectives on a quarterly basis to adjust as we go. The world of Drupal moves fast, and we need to as well. So, although we are setting 12 to 18 month objectives, we will be adjusting the frame much more frequently, and won't be sticking with objectives that we find don't really support the work.</p>
<h3>
2015 Q2 Financials</h3>
<p>And in the most exciting news of all, the second quarter financials were approved by the board. You can always find whatever financials have been released in the <a href="https://drive.google.com/drive/folders/0B-RxSgrdyiH0MjM1MzQxMGUtMTlmZi00YWMwLTg4OTAtMjYyNmM5ODQzZmEx/0B8gZDNT4xrvZNjV2b2NSRjFwMlk/0B8gZDNT4xrvZfjNKUDVnX1dEVEdmVmM3ZTluV0daU3Jod3dadzFBbWp5azkxUUhhZDhuckE">public financials folder</a>. If you have never taken a look at the financials before, I recommend it. Although I tease about them being boring, I love financial statements! A while back, I wrote up a post about <a href="https://assoc.drupal.org/blog/holly.ross.drupal/how-read-association-financial-statements">how to read our financial statements</a>. I also like pointing out that each Con has it's own tab in our financial statements, so you can see exactly how that money coems in, and where it is spent. </p>
<h3>
See you next time!</h3>
<p>And that's it for this summary. But, if you have questions or ideas, you can always <a href="mailto:holly@association.drupal.org">reach out to me</a>!</p>
<p><em>Flickr photo: <a href="https://www.flickr.com/photos/symbi/2081905148/in/photolist-4aYiSm-aMSzap-aMSzaa-aMSz9i-aMSz9z-9Y6rR-5gES87-9Bc7qX-9BeYJh-6sVxbF-54Xuz1-3nbfvT-9ge6NQ-9gaVo6-9gdWrS-9gaQux-9fYzx3-9fVnhD-9fVnbV-98szdt-4FxrG2-3fYhsV-7Gq938-btAcj1-9gaSFT-9gdS2s-9fYP4s-9fVFjK-9fYLWo-9fVEtM-9fVzZX-9fYFQS-9fYhkE-9fUYwi-9fUXJc-9hojp7-9hoiSG-9hkboF-9hoi6s-bJxmh-rtxfRD-3nbfvZ-3nbffp-4YjriD-bGuRxx-btA3i7-bGuRdX-btA3eA-eSuwwo-rKYYEZ">Joeri Poesen</a></em></p>
</div></div></div>Tue, 28 Jul 2015 16:37:23 +0000InternetDevels: The ABC of Creating Reliable Backups in Drupalhttp://internetdevels.com/blog/the-abc-of-creating-reliable-backups-in-drupal
<div class="field field--name-field-preview-image field--type-image field--label-hidden"><div class="field__items"><div class="field__item even"><img src="http://st1.internetdevels.net/sites/default/files/public/blog_preview/backups.jpg" width="863" height="577" alt="The ABC of Creating Reliable Backups in Drupal " /></div></div></div><div class="field field--name-body field--type-text-with-summary field--label-hidden"><div class="field__items"><div class="field__item even"><p><i>Find some useful tips on Drupal website data security from our guest blogger Jack Dawson, founder of Big Drop Inc.</i></p><p>In <a target="_blank" href="http://internetdevels.com/services/drupal-development">Drupal web development</a>, there are a number of things that can be done to ensure the superior user experience and consistency, as well as save time and pain for the webmaster in times to come. First, you’ll need to have in mind the theme structure of Drupal and how you intend to draft your content in order to take advantage of Drupal’s best aspects and make the site efficient.</p>
<a href="http://internetdevels.com/blog/the-abc-of-creating-reliable-backups-in-drupal">Read more</a></div></div></div>Tue, 28 Jul 2015 15:28:54 +0000LevelTen Interactive: A Simple Entity Data API for Module Buildershttp://getlevelten.com/blog/tom-mccracken/simple-entity-data-api-module-builders
<img typeof="foaf:Image" src="http://getlevelten.com/sites/default/files/styles/600x300/public/content/blog/images/entity_data.png?itok=-mGxtONP" width="600" height="300" alt="" />
<p><a href="https://www.drupal.org/project/entity_data">Entity Data</a> is a handy little API to make module builder's lives easier. If you need to build a module that adds functionality and data to an entity, no longer will you have to implement your own CRUD and export/import support.</p>
<h3>A module builders dilemma</h3>
<p>Fields are a powerful way to add data to Drupal entities. However, sometimes fields can be rather cumbersome. Particularly when you want to add something and thus attach fields to entities that already exists.... <a href="/blog/tom-mccracken/simple-entity-data-api-module-builders" class="more-link">Read more</a></p>Tue, 28 Jul 2015 15:26:20 +0000