Planet Drupal

Syndicate content
Drupal.org - aggregated feeds in category Planet Drupal
Updated: 22 min 18 sec ago

Forum One: Behind the Curtain: The Making of the DrupalCon Prenote

Thu, 05/21/2015 - 19:00
pa class=image-link href=http://forumone.com/wp-content/uploads/2015/05/17541609186_b6b6140022_k.jpgimg class=aligncenter wp-image-11361 src=http://forumone.com/wp-content/uploads/2015/05/17541609186_b6b6140022_k-700x298.jpg alt=The Drupalcon song - with actions! width=806 height=343 //a/p blockquotepI am never missing the a href=https://twitter.com/hashtag/DrupalCon?src=hash#DrupalCon/a a href=https://twitter.com/hashtag/prenote?src=hash#prenote/a again. So brilliant./p p— Kelley Curry (@BrightBold) a href=https://twitter.com/BrightBold/status/598152658138968064May 12, 2015/a/p/blockquote pscript src=//platform.twitter.com/widgets.js async= charset=utf-8/scriptbr / DrupalCon always leaves me full of energy, and a href=https://amsterdam2014.drupal.org/ target=_blankAmsterdam 2014/a was no exception. The three of us – a href=http://forumone.com/staff/adam-juran/ target=_blankAdam Juran/a, a href=http://forumone.com/staff/campbell-vertesi/ target=_blankme/a, and my wife a href=https://www.drupal.org/u/bryn-vertesi target=_blankBryn/a – sat together on the short train ride back home to Cologne. Some chit chat and reminiscing quickly led to anticipation of the next a href=http://losangeles2015.drupal.org/ target=_blankDrupalCon, in LA/a. We were excited about the possibilities of this world-class host city. The home of Hollywood, Venice Beach, and Disneyland sounded like a great destination, but after three years of co-writing the DrupalCon #8220;opening ceremony#8221; with a href=drupal.org/u/horncologne target=_blankJam/a and a href=https://drupal.org/u/robertdouglass target=_blankRobert/a, we were more excited about the possibilities for the Prenote. We knew we had to up the ante, make something new and different from previous years, and LA seemed like a gold mine of possibilities./p pEvery DrupalCon, before the keynote from Dries, this small group has staged a #8220;a href=https://www.youtube.com/watch?v=7zvCOKzY3kAamp;list=PLjVW3kqu-3e_Q41ETbML6RfbRssEdVvC4 target=_blankpre-note/a.#8221; The goal of the prenote is to break the ice, to remind everyone present that Drupal is a friendly, fun, and above all, inclusive community. It#8217;s often themed after the host city: in Munich, Jam and Robert taught everyone how to pour a good Bavarian beer, and brought in a yodeling instructor for a singalong (yodel-along?) at the end. In Portland we held a #8220;weirdest talent#8221; competition, featuring prominent community members juggling and beat boxing. Every year it gets more fun, more engaging, and more entertaining for the audience./p div style=width: 610px class=wp-caption aligncentera href=http://www.amazeelabs.com/sites/default/files/beer.jpgimg class= src=http://www.amazeelabs.com/sites/default/files/beer.jpg alt=Learning how to pour beer at the Drupalcon Munich prenote, 2012 width=600 height=400 //a p class=wp-caption-textLearning how to pour beer at the Drupalcon Munich prenote, 2012/p /div pOn that train ride home, we threw around a lot of possibilities. Maybe the prenote could be set on a muscle beach, with Dries as the aspiring #8220;98 pound weakling.#8221; Or the whole thing could be a joke on a hollywood party. We briefly considered a reality-TV style #8220;Real coders of Drupalcon#8221; theme, but nobody wanted to sink emthat/em low. That#8217;s when the idea struck: strongwe could do it as a Disney musical!/strong/p h2bPart of Your World/b/h2 pThe Prenote was Jam and Robert#8217;s baby, though. We knew that we would have to have some absolutely knock-down material to convince them of our concept. With beer in hand, the three of us started work on emPart of your world/em from the Little Mermaid, as the client who is excited for the worst website idea ever./p blockquote style=float: right;pi#8220;I#8217;ve got sliders and icons a-plenty,/ibr / iI#8217;ve got OG with breadcrumbs galore./ibr / iYou want five-level dropdowns?/ibr / iI#8217;ve got twenty!br / But who cares? No big deal.br / I want more!#8221;/i/p/blockquote pWe quickly moved on to the song for the coder who would save the day, emYou ain#8217;t never had a friend like me/em from Aladdin. We got halfway through this fun number before we realized that the song titles alone could do a lot of the convincing. Another beer, and we had a list of potential songs. There was so much material just in the song titles, we knew that the music would take center stage./p pSome of our favorite titles from this first list were ultimately cut. Maybe someday we#8217;ll flesh them into full songs for a Drupal party, but in the meantime you can let your imagination run wild. emHakuna Matata/em from The Lion King was to become emWe#8217;ll Build it in Drupal!/em The Frozen parody, emDo You Wanna Build a Website/em was a big hit, and so was Aladdin#8217;s emA Whole New Theme/em./p pWe showed our idea to Jam and Robert the first chance we got. They took one look at our list of songs and said the three words we wanted to hear: strong#8220;run with it.#8221;/strong/p h2bYou Ain’t Never had a Friend Like Me/b/h2 div style=width: 309px class=wp-caption alignrighta href=https://amsterdam2014.drupal.org/sites/default/files/wonder-twins.jpgimg class= src=https://amsterdam2014.drupal.org/sites/default/files/wonder-twins.jpg alt=Forum One's Adam Juran and Campbell Vertesi as width=299 height=398 //a p class=wp-caption-textForum One#8217;s Adam Juran and Campbell Vertesi as #8220;Themer#8221; and #8220;Coder#8221; at the Drupalcon Austin prenote, 2014/p /div pWe divided up responsibility for  the remainder of the songs and started to experiment with the script. What kind of story could we wrap around these crazy songs? How much time did we really have, and could we do all this music? We were all absorbed in our normal work, but every chance we got, the group of us would get together to throw ideas around. I don#8217;t think I#8217;ve ever laughed as much as while we wrote some of these songs./p pWriting parody lyrics is entertaining on your own, but as a duo it#8217;s a laugh riot.  More than once we checked the a href=https://www.drupal.org/project/drupal_lyrics target=_blankDrupal song lyrics project/a for inspiration. We riffed on ideas and tried different rhyme schemes until things seemed to just #8220;fit.#8221;/p h2bHeigh Ho, Heigh Ho/b/h2 pIn the last few weeks leading up to DrupalCon, Adam and I met two and three times a week for long sessions, brainstorming new lyrics. We powered through writing the script around the whole thing, and started to address the logistical problems of backtracks, props, and costumes as well./p div id=attachment_11353 style=width: 278px class=wp-caption alignlefta class=image-link href=http://forumone.com/wp-content/uploads/2015/05/20150512046055-683x1024.jpgimg class=wp-image-11353 title=Ronai Brumett tries on an Ariel wig src=http://forumone.com/wp-content/uploads/2015/05/20150512046055-683x1024-250x375.jpg alt=via Mendel at Drupalcon LA. Ronai Brumett as the perfect hipster Ariel width=268 height=402 //a p class=wp-caption-textvia a href=https://mendel.me/events/drupalcon/drupalcon-la/Mendel/a at Drupalcon LA. Ronai Brumett as the perfect hipster Ariel/p /div pFinally we set about casting the different songs. Adam and I had always wanted to sing the emAgony/em duet from Into the Woods, so that one was easy. We had a tentative list of who we wanted in the other songs, but we had no idea who would be willing. All of a sudden the whole endeavor looked tenuous again. Why did we think a href=https://drupal.org/u/dries target=_blankDries/a would be OK to make a joke about Drupal 8 crashing all the time? Would a href=https://www.drupal.org/u/jthorson target=_blankJeremy Thorson/a (maintainer of the test infrastructure on Drupal.org) even be interested to get up on stage and sing about testing? We realized that we#8217;d never heard these people sing karaoke, much less in front of thousands of people!/p pOne by one we reached out to the performers and got their approval. Some of them were more enthusiastic than others. Dries replied with #8220;OK, I trust you guys,#8221; while a href=https://drupal.org/u/crell target=_blankLarry Garfield/a and Jeremy Thorson insisted on rewriting some of their lyrics and even adding verses! The day before the show, Larry was disappointed that we couldn#8217;t find giant foam lobster claws for his version of emUnder the Sea/em from the Little Mermaid. a href=https://www.drupal.org/u/porter.aaron1 target=_blankAaron Porter/a bought a genie costume and offered to douse himself in blue facepaint for his role, and a href=https://twitter.com/RonaiBrumett target=_blankRonai Brumett/a spent a weekend building the perfect #8220;hipster Ariel#8221; costume./p h2bWhen You Wish Upon a Star/b/h2 pOn DrupalCon – Monday the day before the show – the cast assembled for the first time for their only rehearsal together. I arrived a few minutes late, direct from a costume shop on Hollywood Boulevard. Jam had built karaoke tracks on his laptop, and Robert had put together a prompter for the script, so the group huddled around the two laptops and tried to work through the whole show./p div style=width: 790px class=wp-caption aligncentera href=https://mendel.me/wp-content/uploads/2015/05/20150511146008-1024x683.jpgimg class= src=https://mendel.me/wp-content/uploads/2015/05/20150511146008-1024x683.jpg alt=Via lt;a href= width=780 height=520 //a p class=wp-caption-textVia a href=https://mendel.me/events/drupalcon/drupalcon-la/Mendel/a at Drupalcon LA. The prenote cast rehearses. From left to right, Larry Garfield, Aaron Porter, Adam Juran, Jeffrey McGuire, Campbell Vertesi./p /div pThe rehearsal showed us what a hit we had created. The performers had embraced the motto: #8220;if you can#8217;t sing it, perform it#8221; and they started to feed off each other#8217;s energy. We all laughed at Ronai#8217;s dramatic rendition of emPart of My Site/em, and the emAgony Duet/em raised the energy even further. It turned out that Dries had never heard emWhen You Wish Upon a Star/em from Pinocchio before, but he was willing to learn as long as he could have someone to sing along with him!/p div style=width: 286px class=wp-caption alignlefta href=https://mendel.me/wp-content/uploads/2015/05/20150512126062-683x1024.jpgimg class= src=https://mendel.me/wp-content/uploads/2015/05/20150512126062-683x1024.jpg alt=via Mendel at Drupalcon LA. Aaron Porter codes with his butt - on Dries Buytaert's laptop! width=276 height=414 //a p class=wp-caption-textvia a href=https://mendel.me/events/drupalcon/drupalcon-la/Mendel/a at Drupalcon LA. Aaron Porter codes with his butt #8211; on Dries Buytaert#8217;s laptop!/p /div pThe rehearsal really started to hit it#8217;s stride when Aaron delivered emYou Ain#8217;t Never had a Dev Like Me/em. Aaron had never sung in public before, and we could tell he was nervous. Then the backtrack started playing with its blaring horns, and he came alive. It#8217;s a difficult piece, with lots of fast moving text and a rhythm that can be hard to catch. Aaron launched into it with gusto. He had us in stitches when he shouted #8220;can your friends do this!#8221; and grabbed Dries#8217; laptop to start typing with his butt. When he nailed the high note at the end with a huge grin on his face, it was a deciding moment for the group./p pFrom that moment on we were on a ride, and we knew it. emSimpletest/em (to the tune of emBe Our Guest/em from Beauty and the Beast) turned out to be a laugh riot, and Jeremy led us naturally into a kick line for the grand finale. We cheered Larry#8217;s choreography skills during the dance break of emRTBC/em, and a href=https://www.drupal.org/u/ben-finklea target=_blankBen Finklea/a was a natural (as ever) at leading us all in emCommit/em, to the tune of emHeigh Ho/em from Snow White./p pForum One UX lead a href=http://forumone.com/staff/kristina-bjoran/ target=_blankKristina Bjoran/a, had protested the most of everyone about having to sing, but the moment she started with our version of emLet it Go/em from Frozen, we were caught up in the feeling of it. I don#8217;t think anyone expected the goosebumps that happened when we sang that chorus together, but we all appreciated what it meant./p h2bLet it Go/b/h2 pThe morning of the show saw the whole cast up bright and early. Though we joked about doing a round of shots before going on stage, no one seemed nervous. In fact we spent most of the setup time laughing at one another. Larry discovered that he has great legs for red tights. Aaron got blue face paint emeverywhere/em. We cheered at Jam and Robert#8217;s Mickey and Minnie costumes, and laughed at Ronai#8217;s perfect Hipster Ariel./p pSome of us had last minute changes to make: Jeremy spent his time crafting oversized cuffs for his costume. I had forgotten the belt to my ninja outfit, so we made one out of duct tape. Kristina discovered that her Elsa costume limited her movement too much for the choreography she had planned. Dries was the only one who seemed nervous to me – this guy who has spoken in public countless times was afraid of a little Disney! We sang through the song together one last time, and it was time to go on./p div style=width: 790px class=wp-caption aligncentera href=https://mendel.me/wp-content/uploads/2015/05/20150512176066-1024x683.jpgimg class= src=https://mendel.me/wp-content/uploads/2015/05/20150512176066-1024x683.jpg alt=via Mendel at Drupalcon LA. Jeremy Thorson leads the width=780 height=521 //a p class=wp-caption-textvia a href=https://mendel.me/events/drupalcon/drupalcon-la/Mendel/a at Drupalcon LA. Jeremy Thorson leads the #8220;Simpletest#8221; song. Behind him, from left: Campbell Vertesi, Ronai Brumett, Adam Juran, Aaron Porter, Dries Buytaert/p /div pEveryone knows the rest – or at least, a href=https://www.youtube.com/watch?v=7zvCOKzY3kA target=_blankyou can see it on youtube/a. What you probably don#8217;t know is how hard we all laughed as we watched the show backstage. Even knowing every word, the energy from the audience was infectious. In the end, there#8217;s nothing quite like standing in front of three thousand people and shouting together: strong#8220;we come for code, but we stay for community!#8221;/strong/p div style=position: relative; padding-bottom: 76%; height: 0; overflow: hidden;iframe id=iframe style=width: 100%; height: 100%; position: absolute; top: 0; left: 0; src=https://flickrit.com/slideshowholder.php?height=75amp;size=bigamp;count=20amp;setId=72157652693943439amp;click=trueamp;credit=2amp;trans=1amp;theme=1amp;thumbnails=1amp;transition=0amp;layoutType=responsiveamp;sort=0 width=300 height=150 frameborder=0 scrolling=no/iframe/div div style=position: relative; padding-bottom: 76%; height: 0; overflow: hidden;emPhotos via a href=https://mendel.me/events/drupalcon/drupalcon-la/Mendel/a at Drupalcon LA, and from the a href=https://www.flickr.com/groups/drupalconlosangeles/pool/with/17541609186/ target=_blankDrupal Association Flickr page/a./em/div

Drupal CMS Guides at Daymuse Studios: Stop Broken Internal Links with this Drupal Module Tutorial

Thu, 05/21/2015 - 18:49
div class=field field--name-field-image field--type-image field--label-hiddendiv class=field__itemsdiv class=field__item evendiv id=file-138 class=file file-image file-image-jpeg class=file file-image file-image-jpeg h2 class=element-invisiblea href=/file/drupal-fix-broken-internal-linksjpgdrupal-fix-broken-internal-links.jpg/a/h2 div class=content img typeof=foaf:Image src=http://www.daymuse.com/sites/daymuse.com/files/drupal-fix-broken-internal-links.jpg alt= / /div /div /div/div/divdiv class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item even property=content:encodedpInternal link tutorial to use modules to automate your Drupal internal paths in WYSIWYG or CKEditor. Find existing broken links with Link Checker module./p /div/div/div

Drupal Association News: Sponsored Post: Reclaim Control of Your Server, Running Drupal on a Freedom Host

Thu, 05/21/2015 - 18:01
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpemThis article was submitted by our Premium Hosting Supporter a href=https://www.drupal.org/node/2419559Linode/a./em/p pWe’ve all experienced these before: slooow server hardware; unlimited disk space that is capped once you begin to actually fill it; local directory software installs because you’re not allowed to alter the root system. Managed hosting emerged to help solve these problems. And it did - but sacrificed the true power of a host’s infrastructure. Fortunately, an alternative exists that overcomes the deficiencies of both shared and managed hosting. I call it a “Freedom Host.”/p h2 What is a Freedom Host?/h2 pA Freedom Host respects your needs and creativity. It gives you full root access to the server leaving you with the most powerful processors and lightning-fast, solid-state storage.br / Why choose a Freedom Host?/p p“Getting off the Island.”/p pThis counters a long-standing community practice of exclusively using Drupal. We now see large opportunities in combining Drupal with other powerful auxiliary software. Managed providers have long offered users click-to-deploy for Drupal; but where’s the Node.js button? HA Proxy button? Split-DNS? Magento? These options don’t exist on a managed host./p h2 A Freedom Host allows you to run what you want when you want./h2 pSecurity is a priority when running your Drupal website, right? You verify file permissions, sanitize all site forms and enforce strict password rules to protect against risky Internet traffic. But what about protection from other websites on the same server? What about local containers running on the same private subnet as your own? A Freedom Host, whether dedicated or VPS, a href=https://zeltser.com/security-risks-and-benefits-of-docker-application/offers you greater security/a than what’s provided through today’s shared-hosting or containers./p h2 How do I get Managed comfort with Freedom’s power?/h2 pemDeployment/em - Deploying on a Freedom Host doesn’t have to be difficult. Between pre-made images, a href=https://www.linode.com/stackscriptsStackScripts/a, a href=http://cpanel.com/cPanel/a, or Bitnami, plenty of Drupal deployment options exist./p pemDrush/em – You can install Drush in seconds with full functionality on any Freedom Host./p pemControl Panels/em - While many Freedom Hosts provide you with a remote terminal to get started, you can install and run the GUI you want, not just what you’re limited to./p pemBackups amp; Monitoring /em- Any reputable Freedom Host provides a backup solution but additional options are limitless. Save your Drupal site as a tarball, dump your MariaDB/MySQL database or mirror to an external slave server. You can even image the entire server to backup or test locally in a href=https://www.virtualbox.org/VirtualBox/a. System metric software, including a href=https://www.linode.com/longviewLongview/a, New Relic or Piwik, measure, graph and store server traffic./p h2 So, what can I do with all this Freedom?/h2 pWhile impossible to compile a full list, some interesting Drupal projects I’ve seen include:/p ulli swapping out “Zen” PHP for Facebook’s HHVM for speed improvements in Drupal 8/li li testing Drupal 8 using PHP7/li li compiling Nginx to include custom features for Drupal/li li custom compiling a kernel for improved performance./li /ulpA Freedom Host provides options when choosing what and how you run your Drupal website. Options aside, a Freedom Host is more powerful and less expensive than most managed providers. You can’t lose with Freedom./p pemThis article was written by a href=http://about.me/RicardoFelicianoRicardo N Feliciano/a. He is currently a Developer Evangelist for Linode, and is an Information Systems Technician in the U.S. Navy./em/p /div/div/div

Midwestern Mac, LLC: DrupalCamp St. Louis 2015 - Keynote Speaker and Session Submission Deadline

Thu, 05/21/2015 - 17:52
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedp style=text-align: center;a href=https://2015.drupalstl.org/img src=http://www.midwesternmac.com/sites/midwesternmac.com/files/drupalcamp-stl-2015-hero.jpg width=575 height=232 alt=DrupalCamp 2015 St. Louis - SLU LAW //a/p pa href=https://2015.drupalstl.org/DrupalCamp St. Louis/a is scheduled for June 20-21, 2015, and will be held at SLU LAW in downtown St. Louis, MO. Less than a month away, there are a few important bits of news:/p h2DrupalCamp STL.15 Keynote Speaker: Alina Mackenzie (alimac)/h2 pAlina Mackenzie is a developer and system administrator based in Chicago. In the Drupal community she is a camp organizer, speaker and communications lead for DrupalCon mentored sprints. She is passionate about learning organizations, automation, and making open source friendly for beginners./p pAlina's keynote will focus on emFinding the entrance: Why and how to get involved with the Drupal community/em./p pAlina's Drupal.org profile is a href=https://www.drupal.org/u/alimachttps://www.drupal.org/u/alimac/a/p h2Session Submission Deadline: May 29/h2 pPlease a href=https://2015.drupalstl.org/propose-sessionsubmit your session proposals/a by Friday, May 29—just over a week from today! We'll notify speakers on June 5th whether a session was accepted or not./p pWe hope to see you at DrupalCamp St. Louis 2015! Registration will open next Monday, and sessions will be announced on June 5th./p /div/div/div

Drupal Watchdog: The Farmischt Freelancer

Thu, 05/21/2015 - 17:25
div class=field field--article-edit-printtype field-type-list-text field-label-hidden field--rss Column /div div class=field field--article-body field-type-text-long field-label-hidden field--rss pimg src=/sites/default/files/images/web/4.2-Farmischt.jpg alt= Gorilla align=right width=65% class=img-responsive img-thumbnail margin-left / It is one thing to be brought into a project as a team player, where the project is managed or you are delivering a predefined piece of it. However, that is typically not the way things happen when doing work for a small business or an initial project which will result in a business launch./p p The more challenging and demanding opportunities for a freelancer are those one-man top-to-tail projects: creating the whole megillaha href=#note1 id=ref1[1]/a. Here is a brief look at the steps that could give the poor shluba href=#note2 id=ref2[2]/a a fighting chance./p ollistrongInitial Meeting:/strong The client transfers his vision to you. Determine what specifically makes or breaks its success. pstrongOutput:/strong Management Summary: Mirror the client’s vision back to him in your own words, for validation./p /lilistrongReference site(s):/strong Ask the client to point to sites exemplifying functionality that works and functionality that doesn’t. pstrongOutput:/strong Create a spreadsheet that will contain a row for each function, and identify that function as either a launch requirement, nice to have for launch, post-launch, or unneeded./p /lilistrongConceptual design:/strong Using the approved spreadsheet, decide what the site will look like. pstrongOutput:/strong Some conceptual prototype, such as wireframes, storyboard, etc./p /lilistrongFunctional design:/strong The details behind the elements of the conceptual design; how front-end elements should work, as well as the back-end functionality, business rules, and the seemingly small details (being able to print receipts with a receipt printer, accepting input from card-swipers, syncing with third-party applications, etc). pstrongOutput:/strong Functional design document./p/li/ol /div

Tag1 Consulting: Access Control

Thu, 05/21/2015 - 16:35
h3Drupal 7/h3 pIn Drupal 7, a emhook_node_access/em implementation could return emNODE_ACCESS_IGNORE/em, emNODE_ACCESS_ALLOW/em and emNODE_ACCESS_DENY/em. If any of them returned emNODE_ACCESS_DENY/em then access was denied. If neither did but one returned emNODE_ACCESS_ALLOW/em then access was allowed. If neither of these values were returned by any implementation then the decision was made based on other rules but at the end of the day some code needed to grant access explicitly or access was denied. Other entities didn’t have access control./p pa href=http://tag1consulting.com/blog/access-control target=_blankread more/a/p

Cheeky Monkey Media: Drupal Bootstrap - Grid system

Thu, 05/21/2015 - 16:00
div class=field field--name-field-article-image field--type-image field--label-hiddendiv class=field__itemsdiv class=field__item evenimg src=http://cheekymonkeymedia.ca/sites/default/files/drupal-bootstrap-gridsystem.jpg width=1380 height=444 alt=Drupal amp; Bootstrap - Grid system //div/div/divdiv class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item evenpImagine this scenario. You add three different blocks in your footer region and the mockups call for them to be side by side. Here are 3 ways to accomplish this:/ph3Regions/h3pUsing regions, we could add and create more footer regions and call them Footer first column, Footer second column, third and forth just like in bartik theme. I personally don’t like this solution because what if we decide in the future to only have 3 columns instead of four?  Then we will need to remove regions and change the css, clear the cache etc.. not ideal./ph3CSS/h3pAnother way to do this.../p/div/div/div

Code Karate: Automatically Hide Content in Views Based on Date

Thu, 05/21/2015 - 15:02
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpNormally, I would do this video style, but I'm a wildcard people and today we write!/p/div/div/div

Acquia: Karma and the journey from consumption to contribution - Drupal in India

Thu, 05/21/2015 - 01:04
div class=form-item form-type-item labelLanguage /label Undefined /div div class=field field-name-body field-type-text-with-summary field-label-hidden div class=field-items div property=content:encoded class=field-item evenp At Drupal Camp London 2015, I spoke with Piyush Poddar, Director of Drupal Practice at a href=https://axelerant.comAxelerant/a. We talked about Piyush's history in Drupal, Drupal as a business-ready solution, India's coming of age in open source culture, and how that is driving business value. /p/div /div /div figure class=field-item even rel= resource=https://www.acquia.com/sites/default/files/piyush_london_15.png class=field-item even div id=styles-2 class=styles styles-field-image styles-style-scale_width_280 styles-container-image styles-preset-scale_width_280 img typeof=foaf:Image src=https://www.acquia.com/sites/default/files/styles/scale_width_280/public/piyush_london_15.png?itok=dbPp2Ggq alt= title= //div !-- render the title tag as caption -- /figure span property=dc:title content=Karma and the journey from consumption to contribution - Drupal in India class=rdf-meta element-hidden/span

DrupalCon News: How to Request a Certificate of Attendance

Wed, 05/20/2015 - 22:55
div class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item evenpDid you have a great time at DrupalCon Los Angeles but want something to show for it? nbsp;/p pWe are happy to issue a certificate of attendance in PDF format for anyone who picked up their conference badge or signed in at a training./p pSimply submit your request via our a href=https://events.drupal.org/losangeles2015/contactcontact page/a with the subject Request a Certificate of Attendance, and be sure to include the associated order number./p /div/div/div

DrupalCon News: Let's Talk PHP at DrupalCon Barcelona

Wed, 05/20/2015 - 21:59
div class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item evenpHow would you like to present at one of the largest PHP conferences in Europe? DrupalCon Barcelona is coming, and we are actively looking for sessions for our new PHP track./p pUnlike the Coding and Development track, the PHP track is all about the larger PHP community. We're not looking for Drupal-specific talks but for sessions about PHP itself (PHP 7 anyone?), about related PHP tools like Guzzle, general PHP leading practices, software architecture, and so on./p/div/div/div

Drupal Association News: DrupalCon New Orleans and Louisiana’s Religious Freedom Bill

Wed, 05/20/2015 - 20:10
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpYesterday (May 19), the Louisiana Legislature’s House Civil Law and Procedure Committee voted 10-2 to return a href=http://www.legis.la.gov/legis/ViewDocument.aspx?d=937123 target=_blankHB707/a to the calendar, effectively voting it down, at least for the current session. The bill would allow businesses to refuse, in accordance with religious beliefs, to provide goods and services on the basis of a patron’s sexuality./p pDescribed as the protection of “the free exercise of religious beliefs and moral convictions”, were the bill to pass it would preclude the state from taking “any adverse action against a person, wholly or partially, on the basis that such person acts in accordance with a religious belief or moral conviction about the institution of marriage.”/p pHowever, hours after the committee’s vote, a href=http://www.nytimes.com/2015/05/21/us/bobby-jindal-louisiana-governor-issues-executive-order-on-same-sex-marriage.html?_r=0 target=_blankLouisiana Governor Bobby Jindal issued an executive order/a in an attempt to accomplish much of what HB707 is intended to achieve. We’re aware that at least some of the bill’s opponents doubt the executive order may create substantive law. We’re also aware that the U.S. Supreme Court may issue a ruling (before its current term ends in late June) that preempts any contradictory Louisiana law./p h2 Why We’re Talking About Louisiana/h2 pEarlier this year, we chose New Orleans as the site for DrupalCon North America 2016. a href=https://www.municode.com/library/la/new_orleans/codes/code_of_ordinances?searchRequest=%7B%22searchText%22:%22public%20accommodation%22,%22pageNum%22:1,%22resultsPerPage%22:25,%22booleanSearch%22:false,%22stemming%22:true,%22fuzzy%22:false,%22synonym%22:false,%22contentTypes%22:%5B%22CODES%22%5D,%22productIds%22:%5B%5D%7Damp;nodeId=PTIICO_CH86HURE_ARTVIDIPUAC_S86-33UNPRPUAC target=_blankSection 86-33 of New Orleans’ municipal code/a explicitly forbids discrimination by public businesses and stores. In much the same spirit as New Orleans’ code, we want to take this opportunity to unequivocally state that no one at any DrupalCon should be denied service, assistance, or support because of who they are or whom they love./p pCommunity. Collaboration. Openness. These are our ethos. At our core, we’re as committed to these values being principles for how we treat each other as we are for how we do our work./p pThe very nature of open source means contributions can come from anyone. That means muting voices is inconsistent with our values. That means we believe inclusivity is progress. And that means it’s important we speak when our community asks questions about the risk of discrimination./p pAlong with logistics—such as available event space, and costs—our DrupalCon site selection process has always considered whether we’d be able to truly celebrate the diversity of the Drupal community and the spirit of the a href=https://www.drupal.org/dcoc target=_blankDrupal Code of Conduct/a. We believe, despite the bill and executive order, that we can still create a safe, diverse, celebratory space for our community in New Orleans next year. We’re happy to bring the diversity of DrupalCon to New Orleans, and we’re confident it’ll be a fantastic event./p h2 Talk To Us/h2 pWe want to hear about your experiences at DrupalCon New Orleans—any and all of them. Tell us your opinions, voice your perspectives, and share what you see. In the meantime, comment on this post, or a href=mailto:rachel@association.drupal.orgemail us/a, with your questions and insights./p /div/div/div

Promet Source: A Break from the Ordinary at DrupalCon Los Angeles

Wed, 05/20/2015 - 19:04
pNormally I’m sitting at home in Iowa, rocking the boxer shorts on the couch. The Xbox controller is in arm’s reach. Or maybe I’m tearing up a single track course on my mountain bike. But this week, none of that. This week is different./p pIt’s DrupalCon, so you know I have to put away the games and pack up the power brick so I can join in the fun. I ran through this quick Qamp;A about my plan for DrupalCon with Promet's marketing team to help understand my goals for this year's big show./p

Drupal for Government: Part 3 - adding heatmaps with open layers and views

Wed, 05/20/2015 - 18:51
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpMapping in drupal with a target=_blank rel=nofollow href=https://www.drupal.org/project/openlayersopen layers/a and a target=_blank rel=nofollow href=https://www.drupal.org/project/viewsviews/a is hella awesome./p/div/div/divspan property=dc:title content=Part 3 - adding heatmaps with open layers and views class=rdf-meta element-hidden/span

ERPAL: Drupal security: How to deliver Drupal updates continuously

Wed, 05/20/2015 - 12:30
div class=field field-name-field-blog-intro-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evenimg src=http://www.erpal.info/de/sites/default/files/styles/blog_detail_image_700x180_/public/branches.png?itok=MZRBo6B1 width=700 height=180 alt= //div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpWhile developing a system to automate Drupal updates and using that technology to fulfill our Drupal support contracts, we ran into many issues and questions about the workflows that integrate the update process into our overall development and deployment cycles. In this blog post, I’ll outline the best practices for handling different update types with different deployment processes – as well as the results thereof./p h3The general deployment workflow/h3 pMost professional Drupal developers work in a dev-stage-live environment. Using feature branches has become a valuable best-practice for deploying new features and hotfixes separately from the other features developed in the dev branch. Feature branches foster continuous delivery, although it does require additional infrastructure to test feature branches in separate instances. Let me sum up the development activity of the different branches./p p class=rtecentera href=/blog/sites/default/files/dropguard_branches.png class=fancybox rel=gallery1img alt= src=/blog/sites/default/files/resize/dropguard_branches-350x344.png style=height:344px; width:350px width=350 height=344 //a/p pstrongDev/strong/p pThis is where the development of new features happens and where the development team commits their code (or in a derived feature branch). When using feature branches, the dev branch is considered stable; features can be deployed forward separately. Nevertheless, the dev branch is there to test the integration of your locally developed changes with the code contributions of other developers, even if the current code of the dev branch hasn’t passed quality assurance. Before going live, the dev branch will be merged into the stage branch to be ready for quality assurance./p pstrongStage/strong/p pThe stage branch is where code that’s about to be release (merged to the master branch and deployed to the live site) is thoroughly tested; it’s where the quality assurance happens. If the stage branch is bug-free, it will be merged into the master branch, which is the code base for the live site. The stage branch is the branch where customer acceptance happens./p pstrongMaster/strong/p pThe master branch contains the code base that serves the live site. No active changes happen here except hotfixes./p pstrongHotfix branches/strong/p pHotfixes are changes applied to different environments without passing through the whole dev-stage-live development cycle. Hotfixes are handled in the same way as feature branches but with one difference: whereas feature branches start from the HEAD of the dev branch, a hotfix branch starts from the branch of the environment that requires the hotfix. In terms of security, a highly critical security update simply comes too late if it needs to go through the complete development cycle from dev to live. The same applies if there’s a bug on the live server that needs to be fixed immediately. Hotfix branches need to be merged back to the branches from which they were derived and all previous branches (e.g. if the hotfix branch was created from the master branch, it needs to be merged back to the master to bring all commits to the live site, and then it needs to be merged back to the stage and dev branch as well, so that all code changes are available for the development team)/p h3Where to commit Drupal updates in the development workflow?/h3 pTo answer this question we need to consider different types of updates. Security updates (including their criticality) and non-security updates (bug fixes and new features)./p pIf we group them by priority we can derive the branches to which they need to be committed and also the duration of a deployment cycle. If you work in an continuous delivery environment, where you ship code continuously,the best way is to use feature branches derived from the dev branch./p p /p p class=rtecentera href=/blog/sites/default/files/dropguard_priorities_0.png class=fancybox rel=gallery1img alt= src=/blog/sites/default/files/resize/dropguard_priorities_0-450x248.png style=height:248px; width:450px width=450 height=248 //a/p p /p pstrongLow (lt;=1 month):/strongbr / - Bug fix updates - Feature updates/p pThese updates should be committed by the development team and analysed for side effects. It’s still important to process these low-prio updates, as high-prio updates assume all previous code changes from earlier updates. You might miss some important quality assurance during high-prio updates to a module that hasn’t been updated for a long time./p pstrongMedium (lt;5 days):/strongbr / - Security updates that are no critical and not highly critical/p pThese updates should be applied in due time, as they’re related to the site's security. Since they’re not highly critical, we might decide to commit them on the stage branch and send a notification to the project lead, the quality assurance team or directly to you customer (depending on your SLA). Then, as soon as they’ve confirmed that the site works correctly, these updates will be merged to the master branch and back to stage and dev./p pstrongHigh (lt;4 hours):/strongbr / - Critical and highly critical security updates/p pFor critical and highly critical security updates we follow a usecurity first/u strategy, ensuring that all critical security updates are applied immediately and as quickly as possible to keep the site secure. If there are bugs, we’ll fix them later! This strategy instructs us to apply updates directly to the master branch. Once the live site has been updated with the code from the master branch, we merge the updates back to the stage and dev branch. This is how we protected all our sites from uDrupalgeddon /uin less than two hours!/p h3Requirements for automation/h3 pIf you want to a href=http://www.dropguard.net target=_blankautomate your Drupal security updates with the Drop Guard service/a, all you need is the following:/p ulliCode deployment with GIT/li liTrigger the update of an instance by URL using e.g. Travis.ci, Jenkins CI, DeployHQ or other services to manage your deployment or alternatively execute SSH commands from the Drop Guard server./li /ulh3Also to keep in mind:/h3 ulliKnow what patches you’ve applied and don't forget to re-apply them during the update process (Drop Guard helps with its automated patch detection feature)/li liAutomated tests reduce the time you spend on quality assurance/li /ulh3Conclusion/h3 pWhere to commit an update depends on its priority and on the speed with which it needs to be deployed to the live site. Update continuously to ensure the ongoing strongquality and security/strong of your project and to keep it future-proof. Feature and bug fix updates are less critical but also important to apply in due time./p pFor those of you interested in a href=http://dropguard.net target=_blankDrop Guard/a to automate the process as described in this blog post, please sign up for the free trial period so you can test all its features – for free – and get a personal on-boarding./p /div/div/div

Jim Birch: Using Drupal#039;s Environment Indicator to help visually manage Dev, Stage, and Production Servers

Wed, 05/20/2015 - 11:00
a href=http://jimbir.ch/blog/using-drupals-environment-indicator-help-visually-manage-dev-stage-production-servers?utm_source=feedamp;utm_medium=drupal-planetamp;utm_campaign=node/32 title=Using Drupal#039;s Environment Indicator to help visually manage Dev, Stage, and Production Serversimg src=http://jimbir.ch/sites/default/files/styles/drupal_planet/public/img/blog/Lego-Uncle-Jim-at-The-Pool-Bar.jpg?itok=ZIt9FQVS width=620 height=465 alt=Lego Uncle Jim at the Pool Bar title=Lego Uncle Jim at the Pool Bar //abr pThere are days that I work on half a dozen different websites.  I'm sure some of you are in the same boat.  We make client edits and change requests with rapid effieciency.  We work locally, push to staging, test and review, then push to the live server and repeat.  I would be remiss in saying that I never made a change on the live or staging site accidentally./p pThe a href=https://www.drupal.org/project/environment_indicatorDrupal Environment Indicator/a module allows you to name, color, and configure a multitude of visual queues for each of your different servers, or other variables, like Git branch or path.  It is very easy to install, and can integrate with Toolbar, Admin Menu, and Mobile Friendly Navigation Toolbar for no additional screen space. /p pOnce installed, set the permissions of the roles you want to give permission to see the indicator.  You can adjust the general settings at /admin/config/development/environment-indicator/settings/p pa href=/sites/default/files/img/blog/Drupal Environment Indicator Settings.pngimg alt=Environment Indicator Settings src=/sites/default/files/img/blog/Drupal%20Environment%20Indicator%20Settings.png //a/p pWhile you can create different indicators inside the admin UI, I prefer to set these in the settings.php files on the various servers so they are not overidden when we move databases back from Production back to Staging and Dev./p pa href=http://jimbir.ch/blog/using-drupals-environment-indicator-help-visually-manage-dev-stage-production-servers?utm_source=feedamp;utm_medium=drupal-planetamp;utm_campaign=node/32 title=Using Drupal#039;s Environment Indicator to help visually manage Dev, Stage, and Production ServersRead more/a/p

Modules Unraveled: 135 Writing the Book Drupal 8 Configuration Management with Anja Schirwinski and Stefan Borchert - Modules Unraveled Podcast

Wed, 05/20/2015 - 06:40
div class=field field--name-field-image field--type-image field--label-hiddendiv class=field__itemsdiv class=field__item evenimg typeof=foaf:Image src=https://modulesunraveled.com/sites/default/files/styles/podcast_default/public/podcast/image/Photo%20of%20Anja%20and%20Stefan.png?itok=hzC992xm width=350 height=176 alt=Photo of Anja Schirwinski and Stefan Borchert //div/div/divspan class=submitted-byPublished: Tue, 05/19/15/spandiv class=field field--name-field-podcast-file field--type-file field--label-hiddendiv class=field__itemsdiv class=field__item evendiv class=mediaelement-audioaudio src=http://traffic.libsyn.com/modulesunraveled/135_Writing_the_Book_Drupal_8_Configuration_Management_with_Anja_Schirwinski_and_Stefan_Borchert_-_Modules_Unraveled_Podcast.mp3 class=mediaelement-formatter-identifier-1432099083-0 controls=controls /audiodiv class=mediaelement-download-linka href=http://traffic.libsyn.com/modulesunraveled/135_Writing_the_Book_Drupal_8_Configuration_Management_with_Anja_Schirwinski_and_Stefan_Borchert_-_Modules_Unraveled_Podcast.mp3Download this episode/a/div/div/div/div/divdiv class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item even property=content:encodedh2Writing a Book for D8/h2 ulliWhat’s it like writing a book for a piece of software that isn’t even officially released yet?/li liHow long did the writing process take? ulliPackt publishing sent us a proposal to write this book in December of 2013. We got started quickly, sending them an outline of the chapters and an estimated page count in the same month. The original estimated page count was 150, it turned out to be around 120. We received a pretty strict time line, having to finish a chapter every two weeks, starting in December of 2013. /li liWe managed to finish most chapters in two weeks, but some of the longer ones took a little longer since we also started one of our biggest projects we had had until then, also in January. That was pretty tough because that project took up way more than a regular full time job, so we ended up having to write all of the chapters late at night and on the weekends. In May, all of our chapters then went to the editors and we didn’t hear back from the publisher for a really long time. /li liWe also told them that we will have to rewrite a lot of the chapters since there was so much work in progress with the Configuration Management Initiative and they were changing a lot about how it worked, like going from the file based default to the database default. I think it was in January of 2015 when chapters came back with some feedback and we started rewriting every chapter, which was pretty painful at the time. We were able to update some of the documentation at drupal.org with the changes we found. It felt good to contribution at least a small part, when with our project and the book we had no time left to contribute code to Drupal 8 like we usually do./li liWe spent around 40 days on the book between the two of us. /li liIn December, Packt asked the first publisher to review the book. We had recommended them one of our team members at undpaul, Tom, who has a similar amount of Drupal knowledge as Stefan. We really wanted to have someone from CMI to review the book, like Greg Dunlap. They had turned down reviewing the book after the first chapters were written, because too much would still change. Then after the changes went in we kept recommending Greg but I never heard anything back, maybe he was busy or they didn’t bother to ask. At the beginning of this year they told us the book was planned to be published by March. We recommended waiting because we didn’t expect a release candidate before the European Drupalcon and we would have rather had someone like Greg take the time to review, but Packt had another opinion :) Since most of CMI changes were finished, we didn’t feel too uncomfortable about the time of publishing, and it was also kind of nice to finally be done with this thing :) So it took a little over a year from start to finish. It was published on March 24th./li /ul/li liDo you expect to need to rewrite anything between now and when 8.0 is released?/li /ul!-- Last chance to send in questions using the hashtag: #MUP135 --h2The Book: Drupal 8 Configuration Management/h2 ulliWhat do you cover in the book? ulliWe start of with a basic introduction to what Configuration Management in Drupal means, because it is a thing in Software development in general, that doesn’t usually refer to what it is in Drupal, where it basically just means that configuration is saved in files which makes deployment easier. In the first chapters, we make sure the reader understands what Configuration Management means and why version control is so important. We mention some best practices and then show how to use it for non-coders as well, since there’s a nice backend non-technical folks can use, even if you don’t use version control (which of course we don’t recommend). We also have a part that describes how managing configuration works in Drupal 7 (Features!) and then dive into code examples, explaining schema files, showing how to add configuration to a custom module, how to upgrade Drupal 7 variables to the new system and cover configuration management for multilingual sites. /li /ul/li liWho is the target audience of the book?/li liWhy did you decide to write about Configuration Management? ulliWe have used Features to deploy configuration changes for a very long time, I don’t recall not using it since we started the company 5 years ago. We have talked about it at several DrupalCamps and Drupal User Groups and always tried to convince everyone to use it. We were really excited about the Configuration Management Initiative and thought it was a very good fit for us. /li /ul/li liBefore we started recording, you mentioned that there is a companion website to the book. Can you talk about what content we’ll find there, and what purpose that serves?/li liAre you building any sites in D8 at Undpaul?/li /ul/div/div/divdiv class=field field--name-field-items-mentioned field--type-link-field field--label-abovediv class=field__labelEpisode Links:nbsp;/divdiv class=field__itemsdiv class=field__item evena href=https://www.drupal.org/u/aschiwi rel=nofollow target=_blankAnja on drupal.org/a/divdiv class=field__item odda href=http://twitter.com/aschiwi rel=nofollow target=_blankAnja on Twitter/a/divdiv class=field__item evena href=https://www.drupal.org/u/stborchert rel=nofollow target=_blankStefan on drupal.org/a/divdiv class=field__item odda href=http://twitter.com/stborchert rel=nofollow target=_blankStefan on Twitter/a/divdiv class=field__item evena href=https://www.packtpub.com/application-development/drupal-8-configuration-management# rel=nofollow target=_blankWhere to buy the book/a/divdiv class=field__item odda href=http://drupal-8-configuration-management.undpaul.com/ rel=nofollow target=_blankThe website for the book/a/divdiv class=field__item evena href=https://twitter.com/undpaul rel=nofollow target=_blankundpaul on Twitter/a/divdiv class=field__item odda href=http://instagram.com/undpaul rel=nofollow target=_blankundpaul Instagram/a/divdiv class=field__item evena href=http://undpaul.de rel=nofollow target=_blankundpaul website/a/div/div/divdiv class=field field--name-field-tags field--type-taxonomy-term-reference field--label-abovediv class=field__labelTags:nbsp;/divdiv class=field__itemsdiv class=field__item evena href=/tags/drupal-8 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal 8/a/divdiv class=field__item odda href=/tags/book typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Book/a/divdiv class=field__item evena href=/planet-drupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=planet-drupal/a/div/div/div

Gizra.com: Visual regression tests on every commit

Tue, 05/19/2015 - 23:00
pAs we dive deeper into visual regression testing in our development workflow we realize a sad truth: on average, we break our own CSS every week and a half./p pDon#39;t feel bad for us, as in fact I#39;d argue that it#39;s pretty common across all web projects - they just don#39;t know it. It seems we all need a system that will tell us when we break our CSS./p pWhile we don#39;t know of a single (good) system that does this, we were able to connect together a few (good) systems to get just that, with the help of: Travis-CI, a href=https://github.com/webdriverio/webdrivercsswebdriverCSS/a, a href=http://shoov.io/Shoov.io/a, BrowserStack/Sauce Labs, and a href=https://ngrok.com/ngrok/a. Oh my!/p pDon#39;t be alarmed by the long list. Each one of these does one thing very well, and combining them together was proven to be not too complicated, nor too costly./p pYou can jump right into the a href=https://github.com/Gizra/Gizra/blob/master/.travis.yml.travis/a file of the Gizra repo to see its configuration, or check the a href=https://github.com/Gizra/Gizra/blob/master/ui-tests/test/tests.js#L36-L37webdriverCSS/a test. Here#39;s the high level overview of what we#39;re doing:/p pa href=http://gizra.comGizra.com/a is built on Jekyll but visual regression could be executed on every site, regardless of the underlying technology. Travis is there to help us build a local installation. Travis also allows adding encrypted keys, so even though the repo is public, we were able to add our Shoov.io and ngrok access tokens in a secure way./p pWe want to use services such as a href=http://www.browserstack.com/BrowserStack/a or a href=https://saucelabs.com/Sauce-Labs/a to test our local installation on different browsers (e.g. latest chrome and IE11). For that we need to have an external URL accessible by the outside world, which is where ngrok comes in: codengrok http -log=stdout -subdomain=$TRAVIS_COMMIT 9000/code from the code.travis.yml/code file exposes our Jekyll site inside the Travis box to a unique temporary URL based on the Git commit (e.g. codehttps://someCommitHash.ngrok.io/code)./p pWebdriverCSS tests are responsible for capturing the screenshots, and comparing them against the baseline images. If a regression is found, it will be automatically pushed to Shoov, and a link to the regression would be provided in the Travis log. This means that if a test was broken, we can immediately see where#39;s the regression and figure out if it is indeed a bug - or, if not, replace the baseline image with the quot;regressionquot; image./p div class=thumbnail img src=http://www.gizra.com/assets/images/posts/shoov-travis/image1.jpg div class=captionVisual regression found and uploaded to shoov.io/div /div pa href=http://www.gizra.com/content/visual-regression-travis-shoov-ngrok/Continue reading…/a/p

Mediacurrent: Contrib Committee Status Review for April, 2015

Tue, 05/19/2015 - 22:47
img typeof=foaf:Image src=http://d1l4od7sxc8nwf.cloudfront.net/sites/default/files/styles/thumb_blog_spotlight/public/contrib-committee-progress-april-01.png?itok=Rc_nLaZE width=200 height=152 alt=Contrib Committee Status Review for April 2015 title=Contrib Committee Status Review for April 2015 / pThe fourth month of the year brought reminders that Winter can show up at unexpected times, with snow flurries during the early parts of the month. It also that we can only juggle so much. With many of us involved in organizing regional events and preparing for a href=http://events.drupal.org/losangeles2015Drupalcon/a, our code contributions waned for a second month, down to a rather low 20 hours./p

Drupalpress, Drupal in the Health Sciences Library at UVA: executing an r script with bash

Tue, 05/19/2015 - 22:43
pHere#8217;s a tangent:/p pLet#8217;s say you need to randomly generate a series of practice exam questions. You have a bunch of homework assignments, lab questions and midterms, all of which are numbered in a standard way so that you can sample from them./p pHere#8217;s a simple R script to run those samples and generate a practice exam that consists of references to the assignments and their original numbers./p div style=background: #000000; overflow: auto; width: auto; border-width: .1em .1em .1em .8em; padding: .2em .6em; pre style=margin: 0; line-height: 125%; background: #000000;span style=color: #888888;## exam prep script/span span style=color: #888888;## build hw data/span j lt;- span style=color: #3399cc; font-weight: bold;1/span hw lt;- data.frame(hw_set = span style=color: #008800; font-weight: bold;NA/span, problm = seq(span style=color: #3399cc; font-weight: bold;1/span:span style=color: #3399cc; font-weight: bold;17/span)) span style=color: #008800; font-weight: bold;for/span (i span style=color: #008800; font-weight: bold;in/span seq(span style=color: #3399cc; font-weight: bold;1/span:span style=color: #3399cc; font-weight: bold;12/span)) { hw[j,span style=color: #3399cc; font-weight: bold;1/span] lt;- paste0(span style=color: #dd2200; background-color: #fff0f0;hw/span,j) j lt;- jspan style=color: #3399cc; font-weight: bold;+1/span } library(tidyr) hw lt;- expand(hw) names(hw) lt;- c(span style=color: #dd2200; background-color: #fff0f0;problm_set/span, span style=color: #dd2200; background-color: #fff0f0;problm/span) span style=color: #888888;## build exam data/span j lt;- span style=color: #3399cc; font-weight: bold;1/span exam lt;- data.frame(exam_num = span style=color: #008800; font-weight: bold;NA/span, problm = seq(span style=color: #3399cc; font-weight: bold;1/span:span style=color: #3399cc; font-weight: bold;22/span)) span style=color: #008800; font-weight: bold;for/span (i span style=color: #008800; font-weight: bold;in/span seq(span style=color: #3399cc; font-weight: bold;1/span:span style=color: #3399cc; font-weight: bold;8/span)) { exam[j,span style=color: #3399cc; font-weight: bold;1/span] lt;- paste0(span style=color: #dd2200; background-color: #fff0f0;exam/span,j) j lt;- jspan style=color: #3399cc; font-weight: bold;+1/span } library(tidyr) exam lt;- expand(exam) names(exam) lt;- c(span style=color: #dd2200; background-color: #fff0f0;problm_set/span, span style=color: #dd2200; background-color: #fff0f0;problm/span) span style=color: #888888;## create practice exam/span prctce lt;- rbind(exam,hw) prctce_test lt;- prctce[sample(span style=color: #3399cc; font-weight: bold;1/span:nrow(prctce), size=span style=color: #3399cc; font-weight: bold;22/span),] row.names(prctce_test) lt;- span style=color: #3399cc; font-weight: bold;1/span:nrow(prctce_test) print(prctce_test) /pre /div pAs the last line indicates, the final step of the script is to output a prctce_test #8230; that will be randomly generated each time the script is run, but may include duplicates over time./p a href=http://blog.hsl.virginia.edu/drupalpress/wp-content/uploads/sites/13/2015/05/Screen-Shot-2015-05-19-at-3.54.45-PM.pngimg class=aligncenter size-medium wp-image-903 src=http://blog.hsl.virginia.edu/drupalpress/wp-content/uploads/sites/13/2015/05/Screen-Shot-2015-05-19-at-3.54.45-PM-300x208.png alt=output from r script width=300 height=208 //a pSure. Fine. Whatever./p pProbably a way to do this with Drupal #8230; or with Excel #8230; or with a pencil and paper #8230; why use R?/p pTwo reasons: 1) using R to learn R and 2) scripting this simulation let#8217;s you automate things a little bit easier./p pIn particular, you can use something like BASH to execute the script strongn/strong number of times./p div style=background: #000000; overflow: auto; width: auto; border-width: .1em .1em .1em .8em; padding: .2em .6em; pre style=margin: 0; line-height: 125%; background: #000000;span style=color: #008800; font-weight: bold;for /spann in {1..10}; span style=color: #008800; font-weight: bold;do /spanRscript examprep.R gt; span style=color: #dd2200; background-color: #fff0f0;YOUR_PATH_HERE/practice${n}.txt/span; span style=color: #008800; font-weight: bold;done/span /pre /div pThat will give you 10 practice test txt files that are all named with a tokenized number, with just one command. And of course that could be written into a shell script that#8217;s automated or processed on a scheduler./p a href=http://blog.hsl.virginia.edu/drupalpress/wp-content/uploads/sites/13/2015/05/Screen-Shot-2015-05-19-at-4.02.24-PM.pngimg class=aligncenter size-medium wp-image-902 src=http://blog.hsl.virginia.edu/drupalpress/wp-content/uploads/sites/13/2015/05/Screen-Shot-2015-05-19-at-4.02.24-PM-300x105.png alt=automatically generated practice tests with bash and r script width=300 height=105 //a pSure. Fine. Whatever./p pOK. While this is indeed a fairly underwhelming example, the potential here is emkind of /em interesting. Our next step is to investigate using Drupal Rules to initiate a BASH script that in turn executes an algorithm written in R. The plan is to also use Drupal as the UI for entering the data to be processed in the R script./p pWill document that here if/when that project comes together./p