Planet Drupal

Syndicate content - aggregated feeds in category Planet Drupal
Updated: 37 min 53 sec ago

Drupal @ Penn State: ELMSLN performance tuning

Wed, 04/08/2015 - 15:06
Update 2: Apache tuning / Costs There’s another posting thats dedicated to the cost and scale metrics of ELMSLN vs D6 legacy systems we were using. This is an example performance pack of conf settings that should work to do sane tuning on ANY apache system let alone drupal.

Drupal @ Penn State: Drupal, Singularity, Digital Activism, and saving our institutions

Wed, 04/08/2015 - 15:06
It is as important to tell a great story using technology as it is to author technology that allows more stories to be told.

Modules Unraveled: 132 How and Why Acquia is Training Drupal Talent Before They Hire Them with Amy Parker - Modules Unraveled Podcast

Wed, 04/08/2015 - 07:00
div class=field field--name-field-image field--type-image field--label-hiddendiv class=field__itemsdiv class=field__item evenimg typeof=foaf:Image src= width=200 height=200 alt=Photo of Amy Parker //div/div/divspan class=submitted-byPublished: Wed, 04/08/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= class=mediaelement-formatter-identifier-1428473308-0 controls=controls /audiodiv class=mediaelement-download-linka href= 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:encodedh2AcquiaU/h2 pWhile this episode might end up sounding like a giant advertisement for AcquiaU, it’s really not intended to be. I wanted to have you on to talk about the concept of, how a company that hires Drupal developers, can and should go about training them embefore/em they are hired./p pIn order to set the backdrop for the rest of our conversation, I’d like to quote a bit from the a href= website/a:/p blockquotepThe challenge the community is facing is one of supply and demand. Simply put, there just aren’t enough people to fill the needs. At any given time in the past 6 months, job aggregator has over 2,500 open position across the US for Drupal talent./p pHow do we close the gap? Find the people with the right passion and grow their talent from the inside-out. We're not looking for people with years and years of Drupal experience. We're looking for people who are curious, motivated, determined, and who can inspire a little crazy in us all. At Acquia, culture and a person's POTENTIAL to contribute and grow with us matters. A lot. These are the underpinnings of a successful candidate./p/blockquote pWhat I love about that is that you’re not looking for senior level developers with 5+ years experience. Because you’re not going to find them. They all already have jobs./p pMike and I ranted about that in the last podcast, so I won’t rehash it here, but what we boiled it down to is that Drupal shops need to create a talent pipeline for recruitment, which, as I understand it, is essentially what AcquiaU is for Acquia./p pOk, with all that said, I’ll shut up now, and let you do the talking./p ulliCan you give us your description of what AcquiaU is?/li li pThe program is 14-weeks of hands-on training in Drupal, Acquia Products, related web technologies, and professional development skills like team building, leadership, and communication skills. We spend the first 6 weeks in a classroom environment, which is a combination of lecture, group projects, individual assignments, and self-paced learning. The most recent graduates’ project was to redesign the program’s website, Each participant is assigned an Acquia Mentor who is there to not just be a buddy, but to help from a technical perspective. The next 8 weeks are spent with job rotations where they work with our customer facing Professional Services developers and customer support. Each person is assigned a client team and works side-by-side on real projects. You might think it is like any other tech bootcamp out there but we differentiate ourselves in a couple of key areas. First, we make sure we have an open job opportunity for each person who joins the program and second, we pay people to learn. Many other bootcamps have a high cost- on average up to $10,000 and while they help with job placement, I can’t say how many have jobs lined up for graduates BEFORE they join the program./p /li li pHow do you select your candidates? Or can anyone join the class?/p /li li pWe have a rigorous screening process and look for people with 2-3 years of technology experience, but who might not be able to get a job with a development shop. A lot of times, this level of talent is overlooked because companies don’t have the internal mechanisms to train, mentor, and coach junior level talent. They are already stretched thin and want new hires to hit the ground running at a fairly high level of proficiency./p /li li pWhat types of skills do you teach?/p /li li pWe dive deep into Drupal and other web tech skills like Drush, GitHub, and Agile and a dive into our own products and services. Helping people become well rounded also means that we do workshops in team building, communication skills, and presentation skills. The next session will have an engineering focus so we will be digging into LAMP stack and web architecture./p /li li pDo the students have any obligation to Acquia at the end of the program? (Like they have to work for you for a given time period after the program?)/p /li li pPeople are hired on as temp employees and we really hope they have had a great experience and want to stay on. The program’s goal is to hire them at Acquia or with one of our partners./p /li li pWhat percentage of students would you say you hire on average?/p /li li pSo far we have a 90% hire rate. The goal for 2016 is to expand the program and hire more people into other Drupal shops/p /li li pDo you have information about those that you don’t hire? Do you know if they’re employed somewhere else? Or did they decide Drupal wasn’t for them?/p ulli/li /ul/li /ulh2Expanding the Concept/h2 ulli pNow that you have a few classes under your belt, is this something you think other shops should look into doing?/p ulliPeople have asked me this and I think they should think about what the end goal is. Our program is not to just train more people for Acquia, but to give back to the Drupal community by creating a long-form drupal training program with learning paths and a structured hands-on curriculum. /li /ul/li li pWe were talking before we started recording about this idea. Mike had mentioned that shops should create a talent pipeline. And while I agree with that in theory, what that means is that the shops first have to develop a training program, and one or more people who are skilled at both Drupal and teaching in a way that doesn’t alienate the trainee. From your perspective, how would you respond to that?/p ulliHaving a talent pipleline means that you have a people development strategy that aligns to your business strategy, and that you have launched that people plan long before you launch the business strategy. Most companies play catch-up and are more reactive than proactive. Being proactive means you’re looking ahead 2-4 years out and making plans for your people. /li /ul/li li pIf there is a shop owner out there listening right now, what would your advice be on how to go about creating a program like this?/p ulliI think you really have to be prepared to commit. Budgets need to allow for hiring junior talent, the business needs to be ready to bring in this level of need. It takes a lot of planning to launch a program like this. For companies that can’t support hiring 5-10 junior level talent, they should start out with a smaller number. A really strong learning program doesn’t just focus on the skills, but on different ways that people will need to learn and being able to translate really complex ideas into ways that different people will relate to. If you’ve ever heard about the adult learning cycle and experiential learning, we know that people tend to be most successful learning new skills when they can reach back into their own experience and apply them to the new content. Being a really strong developer doesn’t always mean that you can tap into other peoples’ experiences and make it relevant to them now. So when you look at creating that pipeline and having junior level talent come on board, you also have to figure out the most effective way to do it./li /ul/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= rel=nofollow target=_blankAmy on Twitter/a/divdiv class=field__item odda href= rel=nofollow target=_blankAcquia on Twitter/a/divdiv class=field__item evena href= rel=nofollow target=_blankAcquiaU on Twitter/a/divdiv class=field__item odda href= rel=nofollow target=_blankAcquiaU 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/jobs typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Jobs/a/divdiv class=field__item odda href=/tags/careers typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Careers/a/divdiv class=field__item evena href=/tags/hiring typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Hiring/a/divdiv class=field__item odda href=/planet-drupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=planet-drupal/a/div/div/div

Promet Source: My Experience with Acquia Certification

Tue, 04/07/2015 - 23:03
My Advice p /p Preparing for the exam: p- Review this great guide: a class=external-link href= rel=nofollow style=color: rgb(59, 115, 175); text-decoration: none;Five Steps to Get Ready for the Acquia Certified Developer Exam/a (pdf)/p p- As the guide says, review topics (in the pdf appendix) and identify your weaknesses, read up on your weaknesses./p

Drupal Easy: Drupal Goes to College

Tue, 04/07/2015 - 22:04
pimg style=border: 1px solid black; margin-top: 5px; margin-bottom: 5px; src= alt=Stetson Celebration Campus width=500 height=156 //p pDrupalEasy is so excited to announce that we are teaming up with a href=http://www.stetson.eduStetson University/a to present the first comprehensive, university-based Drupal career professional development program in Florida! The a href= Career Certificate Program/a (DCCP), which is built on DrupalEasy’s a href= Career Starter Program/a curriculum, marks an official entrance to the Drupal talent pipeline through the US higher education system. The DCCP, now part of the university’s Boundless Learning programs, will be officially announced at Florida DrupalCamp 2015!nbsp; The first course will kick off this Fall at the Stetson Celebration Center located right in the middle of Florida's High Tech corridor on the outskirts of Orlando. /p !-- rdf:RDF xmlns:rdf= xmlns:dc= xmlns:trackback= rdf:Description rdf:about= dc:identifier= dc:title=Drupal Goes to College trackback:ping= / /rdf:RDF -- pa href= target=_blankread more/a/pdiv class=feedflare a href= src= border=0/img/a a href= src= border=0/img/a /divimg src= height=1 width=1 alt=/

Drupalpress, Drupal in the Health Sciences Library at UVA: equipment booking system — simplify(ing) comments

Tue, 04/07/2015 - 20:52
pWe don#8217;t have a lot of feedback about how our patrons are using the current equipment booking system. There may be information that users could share with one another (and the library) if given a mechanism to do so. So as part of the new booking system implementation in Drupal, we set a task of including a commenting feature. Each reservable piece of equipment stands alone as a node so all we have to do is turn on commenting, right?/p pBasically./p pBut there are a couple of things that are worth noting about that./p pIf you#8217;re enabling comments on a content type, it#8217;s probably a good idea to consider who can view (and post comments to) that content. That#8217;s all in the permissions table./p pIn our scenario, we didn#8217;t want unauthenticated comments and we didn#8217;t want to restrict the individual equipment pages (e.g. the page for iPad copy 2) to any kind of login. The request to reserve equipment emfrom/em that page would trigger the login./p pThe snippet from the permissions table below shows how we adjusted the comment access. Note that these will be permissions that will apply anywhere else on we#8217;re using comments on our site #8230; we#8217;re not currently, but if we do in the future we#8217;re fine with this access level./p a href= class=aligncenter size-medium wp-image-895 src= alt=permissions table for comment settings toggled on for authenticated users width=300 height=160 //a pOnce authenticated, the comment form defaults to give users a text format selection option. There are advantages to users selecting a WYSIWYG format This too can be handled in the text format configurations or even the permissions table. An easier way is with the a title=simplify module drupal 7 href= module./p pSimplify gives you an interface to hide a bunch of stuff that may be noisy to users adding content — publishing options, path settings, etc./p pAnd for comments it lets you hide text formats./p pThe finished product:/p a href= class=aligncenter size-medium wp-image-894 src= alt=comment box without text format width=300 height=202 //a

Red Crackle: Why We Chose Drupal Organic Groups: A Comparative Study

Tue, 04/07/2015 - 19:30
This article explains why we went ahead with Organic Groups for one of our Drupal projects. As part of our research, we did a detailed analysis of the following platforms: Organic Groups, Open Atrium, Drupal Commons, Open Scholar and Domain Access. We have listed the positive and negatives in the article. You will understand why we finally decided to go with Organic Groups. Follow this article to make informed decisions while choosing a platform for your business needs.

Mediacurrent: Mediacurrent Dropcast: Episode 3

Tue, 04/07/2015 - 18:40
img typeof=foaf:Image src= width=200 height=152 / p dir=ltrThis week on the show we will be discussing the new Configuration Management system in Drupal 8 based on an article by Victor Kane, and once again dive into RESTFUL Drupal, or Headless as the cool kids say, based on a blog post from Joris Snoek. We’ll go over some Drupal 8 news and once again Ryan will bring it home the Closing Bell./p

Free Energy Media: Drupal and WordPress as a RESTful Backend for iOS and Android Apps or the Web of Things

Tue, 04/07/2015 - 16:43
pa href= src= alt=finalrest width=990 height=798 class=aligncenter size-large wp-image-13505 //abr / The future of the web is inarguably mobile. Mobile use is clearly increasing as people spend more time on their phones, and the rate that people are using dedicated mobile apps rather than their mobile browser is also increasing. But with web services, mobile apps can integrate popular web-based content management systems and in the process save hundreds of development hours while providing enhanced user experience for both the end user and web editors. This also creates tremendous, largely untapped business opportunity for agencies./p pspan id=more-13498/span /p pDrupal and WordPress power 2.1% and 23.3% of the web, respectively. There are many contrasts you can make to decide “which is better,” but in the end it comes down to the question of “what is the right tool for the job?” Drupal runs a smaller percentage of the web so it is targeted less by hackers, thus making it less vulnerable. In Drupal all contributed code or “modules,” are peer reviewed at, helping to ensure quality and stability. Conversely, because of the smaller community and the strict review process there are less modules that get released than WordPress “plugins.” This puts Drupal at a distant second in the volume of contributed plugins/modules that are available. Still, Drupal 8 (the next release of Drupal), shows foresight into the future direction of the web, taking into account “the web of things” or to many web developers the “elephant in the room” Mobile Apps./p pDrupal has fully mature projects that turn it into a powerful backend or RESTful “web service” that can be used to provide data to mobile apps via API calls. Drupal 8 comes with the very powerful and stable “Services” module built into D8 core, meaning it will come bundled in every new site of Drupal 8./p pTo put it simply, your Drupal or WordPress website could be powering the next best mobile app. “The web of things” is another way to say web services, the things that make the apps we use every day “do” things or “talk to” things. Snapchat for example is a popular app, but the native code, the kind written by an iOS or Android developer in the languages Java or Objective C, is quite simple. The heavy lifting is done by a web server somewhere which exposes data through “REST endpoints”;” this web server could be a web app like Drupal or WordPress running the ubiquitous language PHP./p pPHP runs on about 75% of websites today, it can be looked at as a big ship – it takes a while for it to turn around (incorporate latest innovations) but it eventually does. While newer languages innovate quicker, PHP has proved to have a dedicated community that eventually does evolve with the times. For these reasons PHP is here to stay./p pThere are a variety of methods to utilize Drupal or WordPress to create an app that can be purchased on the iOS and Android app stores. For larger budget projects or projects started from scratch, the best method is to code the entire front-end presentation layer of the app in a native language, then use a web service to pull data in from a Drupal/Wordpress web app on “the cloud.” Some people may be able understand this by thinking in the terms of “feeds,” though the technology is quite different. The benefits are clear — you could have a powerful website and also a mobile app for less effort than it would cost to develop each individually with completely unique data sources. It also allows editors to login to their familiar Drupal/Wordpress editors and push out content that will then go to the app and website simultaneously./p pAnother hybrid method I developed which is very useful for smaller budget projects and for websites that already exist, is to create an API only for the login interface. I created a very simple API and native front-end to handle the login and password reset functionality. The rest of the app is a web view or #8220;wrapper,#8221; meaning that after you login, you just see the website. What makes this so cool is that it does feel quite “appy.” The native feel is enhanced by native navigation and custom offline messaging. After the user enters their email and password into the native interface they never have to login again, thus giving an experience identical to an app in every way. They simply click the icon on their homescreen and they are in. What is happening behind the scenes is that the email and password are getting saved and the user is being logged into the website via the API every time they click the icon. /p pThrough the growth of RESTful web services we can have it all. We can build both web and mobile apps with greater ease than ever before, by simply reusing the same backend infrastructure for multiple platforms./p

Drupal Easy: DrupalEasy Podcast 149: Magnetic Pants (Erik Baldwin and Mike Herchel, Florida DrupalCamp 2015)

Tue, 04/07/2015 - 15:19
div class=field field-type-link field-field-embed a href= rel=enclosureDownload Podcast 149/a /div pErik Baldwin (a href= and Mike Herchel (a href=, two of the featured speakers for a href=https://www.fldrupal.campFlorida DrupalCamp/a join Ted Bowman and Mike Anello to talk about their sessions, the other featured speakers, and the wide-range of other activities going on around this weekend's camp. We also pay our respects to Aaron Winborn, discuss content types and other entities, D8 Accelerate, and a host of other Drupal-related topics from the past few weeks./p pa href= target=_blankread more/a/pdiv class=feedflare a href= src= border=0/img/a a href= src= border=0/img/a /divimg src= height=1 width=1 alt=/

Drupalize.Me: Backbone.js and Underscore.js in Drupal 8

Tue, 04/07/2015 - 15:05
div class=field field-name-body field-type-text-with-summary field-label-hidden text-content text-secondarydiv class=field-itemsdiv class=field-item evenpThe Drupal 8 development cycle has definitely been a long one. There are several exciting features on the way, but the improvements to the authoring experience in Drupal 8 have definitely drawn a lot of attention. (I know a href=// is clamoring for in-place editing for this blog.) The a href= project/a is the home to much of this work. Several new core modules that contribute to these improvements (Contextual, Quickedit, Toolbar, CKEditor and to a lesser extent, Tour) leverage a pair of popular javascript libraries a href=http://backbonejs.orgBackbone.js/a and a href=http://underscorejs.orgUnderscore.js/a./p pBoth Backbone.js, and its dependency Underscore.js were a href= to Drupal 8 two years ago/a! Let's take a quick look at both Backbone.js and Underscore.js, how they're used in core, and how you might be able to use them to simplify some javascript for your site./p /div/div/divdiv id=comment-wrapper-nid-2164/div

Zivtech: Accessibility in Drupal Themes

Tue, 04/07/2015 - 13:00
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even pWe at Zivtech care about accessible websites and strive to make our projects usable by the widest range of people possible. We aim to produce websites that adhere to Section 508 standards and WAI-ARIA guidelines./p pSometimes a client has specific needs for compliance, like a government or university website. In general though, accessibility should be a goal for any website, so that users of any ability can meaningfully interact with the Internet./p pWith that in mind, you may find yourself focussing on ensuring old browser support, like IE (Internet Explorer) 10 or earlier. You want the widest audience using your website. Yet a href= browser statistics/a show IE 8 at around 3-4% usage over the last year. Since IE 9 and 10 auto update to IE 11, their usage is nearly non-existent at this point. (note: Some clients emneed/em old browser compliance, but that is less often the case.) At the same time, it's possible that more of your website visitors have a href= vision/a. Thus it's arguable you'll get a higher return on your development dollars if you prioritize accessibility rather than IE 8 support./p pTo provide accessible websites, Zivtech produces a contributed starter theme for Drupal called a href= Skin/a. It was recently updated to include more accessible markup, and is free for use./p h2Accessibility in the Bear Skin theme/h2 pWe made our Drupal theme more accessible by focussing on three major sets of updates: semantic markup, 508 compliance, and ARIA. The first two sets, markup and 508 compliance, are really the low hanging fruits. They provide great enhancements, but require the least effort. Letting Drupal render accessible markup with ARIA is more time intensive, but ultimately provides the best experience for screen readers./p h3Semantic Markup/h3 pSemantic markup comprises the intent and purposes of HTML5 standards. These standards introduced several new HTML elements and deprecated some others. Ensuring your theme markup uses semantic HTML is the easiest way to provide a minimal amount of accessibility for people with screen readers or other assistive technology./p pMy favorite resource for keeping up with HTML5 standards is the a href= Doctor/a website. They provide contextual documentation for standards, including sample markup. It's easy to compare your Drupal theme markup with compliant HTML5 markup, and suss out where you need improvements./p pWhile it may seem like a big task, we found it pretty straightforward to update Bear Skin's markup. For example, the main content area of the page uses the codemain/code HTML element. Also, the previous Bear Skin revision used the codehgroup/code element to group titles and subtitles on pages. Yet that element has been removed from the HTML5 spec, and was plucked out of Bear Skin as well./p h3508 Compliance/h3 pMany of the requirements for 508 compliance are thought of as best practices for HTML, so it's likely your Drupal theme is nearly compliant already! For example, a href= 508/a stipulates that images need meaningful codealt/code tags and each form element needs a meaningful codelabel/code. These two examples are things you hopefully have in your theme already./p pWhile updating Bear Skin, we also went over this a href= compliance checklist provided by WebAIM/a. Some additional features added to make Drupal 508 compliant were skip links to direct a user straight to the main page content, and ensuring the page is still usable without CSS./p h3WAI-ARIA Integration/h3 pThe Web Accessibility Initiative section of W3C created ARIA standards as a way to provide screen readers the ability to meaningfully interact with a web page. ARIA standards are very in depth and wide-reaching, and can be somewhat confusing at first glance./p pIf you're going to review your own Drupal theme for ARIA compatibility, take a look at this spec produced by the W3C, a href= WAI-ARIA in HTML/a. It includes all the basics of ARIA, as well as a short table of commonly used elements./p pLandmark roles and aria-* properties are sprinkled throughout Bear Skin, and can provide your own website with a great base-level of support for screen readers./p h2Testing Tools/h2 pBefore beginning your adventure in making your website more accessible, or after you've made updates for 508 amp; ARIA compliance, there are some tools available to help validate your work./p pWhile it's not yet perfect, the regular a href=http://validator.w3.orgXHTML validator/a is good about spotting errors in ARIA. Since a lot of Section 508 is also considered best practice for HTML, the validator is even better about spotting a lot of 508 compliance pitfalls./p pWebAIM produces a tool for accessibility checking called a href= It can review your site for many things, like 508 compliance and ARIA. It also checks more general things like ensuring high enough contrast between text color and its background color./p pIf your website is in development or behind a firewall, you might not be able to provide a public link for the WAVE website. If that's the case, you can use a a href= for Firefox/a or a a href= for Chrome/a./p h2Accessible Development and Design at Zivtech/h2 pZivtech is experienced with adhering to government standards for accessibility, and it's important to us that people of all abilities can use your website. If you need help making your current website more accessible, or if you want to start a fresh site with a focus on accessibility, contact us for help./p /div/div/divdiv class=field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfixdiv class=field-labelTerms:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/terms/drupalDrupal/a/divdiv class=field-item odda href=/terms/drupal-planetDrupal Planet/a/divdiv class=field-item evena href=/terms/accessibilityaccessibility/a/divdiv class=field-item odda href=/terms/section-508-complianceSection 508 Compliance/a/divdiv class=field-item evena href=/terms/themingtheming/a/divdiv class=field-item odda href=/terms/bear-skinbear skin/a/div/div/div

Web Wash: Create a Frequently Asked Questions Page Using FAQ Field in Drupal 7

Tue, 04/07/2015 - 12:45
div class=field field-name-field-ww-summary field-type-text-long field-label-hiddendiv class=field-itemsdiv class=field-item evenpa href= asked questions/a, or FAQ for short, are fairly common on websites these days. A good FAQ page can help in reducing the number of support requests for basic questions. Whenever I need help on a website, the first thing I look for is the FAQ page before I contact them./p pIn Drupal, a FAQ page can be created in a few ways. First, you could write the HTML and anchor tags by hand or you could use a module like a href= Field/a./p pThe a href= Field/a module comes with a custom field called FAQ Field which you can add to any type of entity. It also has a few handy formatters to display the FAQ./p pI should also mention that you can use the a href= module to create these pages. The biggest difference is that the FAQ module has its own content type, whereas, the FAQ Field is based around a field. This is useful for creating FAQs on a Product content type./p pIn this tutorial, you'll learn how to setup and use the FAQ Field module. We'll add the field to the Basic page content type that comes with the standard installation of Drupal./p /div/div/div

Wim Leers: renderviz: tool visualizing Drupal 8's render tree

Tue, 04/07/2015 - 10:37
pI#8217;m working on making Drupal 8 faster as part of my job at Acquia. The focus has been on emrender caching/emsup id=fnref:1a href=#fn:1 rel=footnote1/a/supsup id=fnref:2a href=#fn:2 rel=footnote2/a/sup, which implies that strongcacheability metadata is of vital importance/strong in Drupalnbsp;8./p pTo be able to render cache all things that can possibly be render cached, Drupal 8 codenbsp;must:/p ul liset the right cache codemax-age/code — to ensure only the cacheable parts of the page arenbsp;cached/li liset the right cache codecontexts/code — to ensure content is varied as expected (per language, per role, per timezone, per usernbsp;…)/li liset the right cache codetags/code — to ensure rendered content is invalidated when the data it depends on isnbsp;modified/li /ul pBefore Drupal 8, approximately zero attention was given to cacheability of the rendered content: everything seen on a Drupal 7 page is rendered dynamically, with only the occasionalnbsp;exception./p pBy flipping that around, we make developers more conscious about the output they#8217;re generating, and how much time it takes to generate that output. This in turn allows Drupal 8 to automatically apply powerful performance optimizations, suchnbsp;as:/p ol lienabling Drupal#8217;s internal page cache (for anonymous users) by default: a href=, which requires cache tags to benbsp;correct/li lismartly caching partial pages for all users (including authenticated users): a href=, which requires cache contexts to benbsp;correct/li lisending the dynamic, uncacheable parts of the page via a href= BigPipe-like mechanism/a: a href= /ol p(The first of those three will likely happen this week. We#8217;re working hard to make the last two anbsp;reality.)/p h2Visualization/h2 pCaching means better performance, but it also means that without the correct cacheability metadata, the wrong content may be served to end users: without the right cache contexts, the wrong variation may be sent to a user; without the right cache tags, stale content may be sent to a user. Therefore we should make it as easy as possible to analyze the cacheability of a rendered block, entity (node/user/taxonomy term/…), view, region, menu, and sonbsp;on./p pIt should work not only for cacheability metadata, but for emall/em bubbleable metadatasup id=fnref:4a href=#fn:4 rel=footnote3/a/sup: it#8217;d be emvery/em valuable to be able to see which part of the page caused an expensive cache context or tag sup id=fnref:3a href=#fn:3 rel=footnote4/a/sup, but it#8217;d be at least equally valuable to see which part of the page attached a certain assetsup id=fnref:5a href=#fn:5 rel=footnote5/a/sup./p pSince bubbling happens across a tree, it#8217;s important to visualize the hierarchy. The best hierarchy visualization I know in the web developer world is the a href= Developer Tools 3D view/a./p pa href= rel=original-imageimg src= width=420 height=512 alt=Firefox 3D view of //a/p pI think a tool for visualizing, analyzing and understanding the bubbleable metadata (cache contexts, cache tags, cache max-age, assets) should work in a similar way. The developer should be ablenbsp;to:/p ul lilook at the document in 3D in different layers and/or queries (assets, cacheability as a whole, but also only cache contexts, only cache tags, or onlynbsp;max-age)/li lizoom in a specific element, and look at emall/em of its bubbleablenbsp;metadata/li lireposition the 3D view, to look from different angles — humans are very proficient at processing visualnbsp;data/li /ul h2Prototype/h2 pSo, over the past weekend, I worked on a prototype. I read the a href= class=capsCSS/span Transforms spec/asup id=fnref:6a href=#fn:6 rel=footnote6/a/sup and read a a href= class=capsCSS/span 3D transforms introduction/a. As somebody with little span class=capsCSS/span knowledge and not having touched span class=capsCSS/span nor 3D programming in years, it was fun to play with thisnbsp;) Thenbsp;result:/p pa href= rel=original-imageimg src= width=420 height=408 alt=renderviz prototype, visualizing the #039;timezone#039; cache context. //a/p pAnd finally, a short screencast demonstrating it innbsp;action:/p pvideo src=/sites/ alt=renderviz prototype — demo screencast width=420 height=465 controls preload=none autobuffer/video/p pGive it a try yourself by applying the a href=/sites/ patch/a to Drupal 8 at commit codedaf9e2c509149441d4d9a4d1964895179a84a12c/code and installing the coderenderviz/codenbsp;module./p h2Want tonbsp;help?/h2 pThere are many rough edges — actually there are emonly/em rough edges. Everything needs work: span class=capsCSS/span, JavaScript, span class=capsUI/span (there isn#8217;t any yet!), even thenbsp;name!/p pBut it#8217;s a lot of fun to work on, and it#8217;s very different from what most of us tend to work on every day. If you#8217;d like to be able to build sites in Drupal 8 with a developer tool like this, please contact me, or leave a commentnbsp;:)/p div class=footnotes hr / ol li id=fn:1 pAvoiding to render exactly the same chunks of span class=capsHTML/span endlessly on every request. See a href=;a href=#fnref:1 rev=footnote#8617;/a/p /li li id=fn:2 pFor more about that, see the a href=/talk/render-caching-drupal-7-and-8qRender caching in Drupal 7 and 8/q/a talk I did with Fabian Franz span class=ampamp;/span Marco Molinari at DrupalCon Amsterdam.#160;a href=#fnref:2 rev=footnote#8617;/a/p /li li id=fn:4 pDrupal is all about reusable content and reusable components. That#8217;s why starting in Drupal 8, we don#8217;t attach assets at the page-level (i.e. global), but we attach them to the places where we actually need them (e.g. when rendering a taxonomy term, we attach the assets to style the taxonomy term to the taxonomy term#8217;s render array). They then “bubble” the render tree, just like JavaScript events bubble the span class=capsDOM/span tree. The assets bubble all the way to the response level, i.e. to a span class=capsHTML/span response#8217;s codelt;headgt;/code element. Similarly, cache tags and contexts bubble to a response#8217;s codeX-Drupal-Cache-Contexts/code and codeX-Drupal-Cache-Tags/code headers.#160;a href=#fnref:4 rev=footnote#8617;/a/p /li li id=fn:3 pA cache tag is expensive if it#8217;s invalidated relatively frequently (which causes all render cache items that have that tag to be invalidated). A cache context is expensive if it causes many variations (for example: per-user caching requires a variation of the render array to be created for every single authenticated user).#160;a href=#fnref:3 rev=footnote#8617;/a/p /li li id=fn:5 pIn Drupal 8, all assets are defined in emasset libraries/em, which can contain any number of span class=capsCSS/span or span class=capsJS/span assets, and which can depend on other asset libraries. See a href=;a href=#fnref:5 rev=footnote#8617;/a/p /li li id=fn:6 pFirefox’ 3D view is built using WebGL, not span class=capsCSS/span Transforms. We might eventually need that too, but not just yet. Oh, and for the origins of Firefox’ 3D view, see a href=;a href=#fnref:6 rev=footnote#8617;/a/p /li /ol /div ul class=tags lispan class=lineage-item lineage-item-level-0CSS/span/li lispan class=lineage-item lineage-item-level-0DX/span/li lispan class=lineage-item lineage-item-level-0Drupal/span/li lispan class=lineage-item lineage-item-level-0WPO/span/li lispan class=lineage-item lineage-item-level-0performance/span/li /ul ul class=files lispan class=fileimg class=file-icon alt= title=video/mp4 src= / a href= type=video/mp4; length=13198510 title=renderviz-prototype.mp4renderviz prototype — demo video/a/span/li lispan class=fileimg class=file-icon alt= title=text/x-diff src= / a href= type=text/x-diff; length=17692 title=renderviz-prototype.patchrenderviz prototype/a/span/li /ul

Chapter Three: Spreading the Drupal Knowledge

Mon, 04/06/2015 - 21:04
pimg alt=florida drupal camp data-picture-align=right data-picture-group=c3 src= style=float: right; margin-left:20px; /The Chapter Three team is getting out and about this weekend to attend two Drupal camps on opposite sides of the country.  These camps are great opportunities to learn new skills and connect with the Drupal community. Looking forward to seeing you there!/pbr / br / pa href=/about/bala-boschBala Bosch/a, a href=/about/andy-klepnerAndy Klepner/a, a href=/about/drew-bollesDrew Bolles/a and a href=/about/casey-wightCasey Wight/a will be at stronga href= target=_blankFlorida Drupal Camp/a/strong in Orlando./pbr / br / pCasey and Drew are presenting on some advanced theming concepts:/p

Chen Hui Jing: Drupal 101: Customising field markup with Display Suite

Mon, 04/06/2015 - 02:00
pA minor complaint I often have about Drupal is the mess of markup it generates. Don’t get me wrong, there are times when all those default classes help when it comes to styling, but there are also times when there is so much nesting it puts Inception to shame. (This is a repeat joke, excuse me if you’ve heard me mention it before.)/p pThis post actually came about because I was trying to include using Display Suite to set up fields as an optional step in the a href= method for accordions/a post. However, that step ended up being so ridiculously long it warranted its own post./p ol liInstall Display suite. precode class=language-bashdrush dl ds -y/code/pre /li liEnable Display Suite,...

Chen Hui Jing: Drupal 101: An alternative method for accordions

Mon, 04/06/2015 - 02:00
pAccordions are commonly used graphical control element. The a href= Design Pattern Library/a has a good explanation on the purpose of accordions, as well as recommendations on their usage. Accordions are usually used when you have limited space and a long list of related items. Seriously, the a href= Design Pattern Library/a is a valuable reference for all designers. I recommend you bookmark it./p pThere are a number of Drupal modules that help implement accordions (just google drupal accordion), but they didn’t really fit my particular use-case, so I did my accordions differently. This method was a little complicated and required some jQuery, but fit my use-case well./p h3 id=create-the-accordion-content-typeCreate the Accordion content type/h3 p class=no-marginstrongRequired modules/strong/p ul li class=no-margina...

Acquia: Streamline your local Drupal workflow with Acquia Dev Desktop 2

Mon, 04/06/2015 - 01:50
figure class=field-item even rel= resource= 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= alt= title= //div !-- render the title tag as caption -- /figure figure class=field-item odd rel= resource= class=field-item odd div id=styles-3 class=styles styles-field-image styles-style-scale_width_280 styles-container-image styles-preset-scale_width_280 img typeof=foaf:Image src= alt= title= //div !-- render the title tag as caption -- /figure figure class=field-item even rel= resource= class=field-item even div id=styles-4 class=styles styles-field-image styles-style-scale_width_280 styles-container-image styles-preset-scale_width_280 img typeof=foaf:Image src= alt= title= //div !-- render the title tag as caption -- /figure figure class=field-item odd rel= resource= class=field-item odd div id=styles-5 class=styles styles-field-image styles-style-scale_width_280 styles-container-image styles-preset-scale_width_280 img typeof=foaf:Image src= alt= title= //div !-- render the title tag as caption -- /figure 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 evenpSince we introduced the original version of Acquia Dev Desktop, thousands of people have used it to quickly create local Drupal sites on their Mac or Windows PCs. Over the years we have received a lot of great feedback, and so we redesigned Dev Desktop 2 from the ground up, incorporating the most requested improvements. Thousands of users have tried the beta version, and now it's ready for prime time. If you haven't upgraded to the latest Dev Desktop 2, a href=/downloads target=_selfdownload it now/a and give it a try. It's free!br /img typeof=foaf:Image src=/sites/default/files/dd2-wizard-install.gif alt= title= //p h3What's new in Dev Desktop 2?/h3 ulliA streamlined UI makes it easy to work with all your local Drupal sites and their code, database or files from the GUI or the command line./li liA welcome wizard makes it easy to get started with any Drupal sites including: ullimany popular Drupal distributions (including Drupal 8)/li liany Drupal site on your local machine or any a href= target=_selfDrupal distribution you download/a /li /ul/li liBuilt-in a href=/products-services/acquia-cloud target=_blankAcquia Cloud/a integration lets you host any of your local sites for free, or sync locally with any of your Acquia Cloud sites. More on this below./li liThe latest xAMP stack components are included including Apache 2.4, MySQL 5.5, as well as PHP 5.6, 5.5, 5.4 and 5.3 so you can easily test your site with multiple PHP versions. /li lia href= target=_selfDrush 7/a is configured to manage all of your Drupal sites via the command line. Click Dev Desktop's terminal icon to start a command line pre-configured with Drush aliases for all your sites./li liBrowse, query and edit your local site's database using a href= target=_selfphpMyAdmin/a./li liTake advantage of Dev Desktop's deep integration with Acquia Cloud to: ulliHost your local sites on a href=/free target=_selfAcquia Cloud for free/a. Dev Desktop takes care of packaging up your Drupal site and importing it. Once there leverage Acquia Cloud's scalability, dev and stage team environments, Git workflow, site tests and more./li liSynchronize any code, database, or file changes between your sites on Acquia Cloud and your local sites. Easily pull or push your code, database or files between Acquia Cloud and the local site running in Dev Desktop./li liAdd modules to your local file system and then click Push code to add those modules to your Acquia Cloud site and git repository without using Git. Use Git directly for more complex operations./li liSSH in to your Acquia Cloud environment by clicking the terminal icon. Use drush commands to manage it./li liWhen pulling an Acquia Cloud site database locally, use the sanitize checkbox to scrub the local database's user emails and passwords to keep it secure and prevent accidental email blasts while working on your site./li liAlready using Acquia Cloud? Clone any of your Acquia Cloud sites locally to work on them in Dev Desktop and your local toolchain./li /ul/li /ulpimg typeof=foaf:Image src=/sites/default/files/host-on-cloud2.gif alt= title= //p h3And much more/h3 ulliKeep up to date with the newest Dev Desktop features and fixes by selecting the Check for updates menu. This is also done automatically when Dev Desktop starts./li liTake advantage of the command-line installer to script the installation on multiple machines, or embed it as part of another installer that includes your custom Drupal distrobution./li liCreate multiple sites sharing the same codebase using a href= target=_selfDrupal multi-site/a./li liEasily report feature suggestions or issues via the menu Help gt; Report an issue. /li /ulh3See it in action!/h3 pWith these improvements Dev Desktop 2 is the fastest way to create Drupal sites on your Mac or Windows PC, and optionally sync them at any time with Acquia Cloud. a href=/downloads target=_selfDownload it now/a, and try it out! There are more great things in the works so be sure to check for updates regularly./p /div /div /div div class=field field-name-field-tags field-type-taxonomy-term-reference field-label-inline clearfix div class=field-labelTags:nbsp;/div div class=field-items div rel= class=field-item evena href=/resources/dev-desktop-0 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=dev desktop/a/div div rel= class=field-item odda href=/resources/acquia-drupal-planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=acquia drupal planet/a/div /div /div span property=dc:title content=Streamline your local Drupal workflow with Acquia Dev Desktop 2 class=rdf-meta element-hidden/span

agoradesign: 3rd party library integration in Drupal 8

Sat, 04/04/2015 - 14:24
div class=field field-name-body field-type-text-with-summary field-label-hidden div class=field-items div class=field-item evenDuring my work on the D8 port of our Outdated Browser module, I’ve got in touch with several API changes of Drupal 8. One of them I want to describe now is the integration of third party Javascript libraries./div /div /div

Jimmy Berry: Drupal testbot command line tool

Fri, 04/03/2015 - 23:31
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpAre you a developer familiar with the patch submission workflow?/p ul liload the issue page in your browser/li liadd some helpful text describing the patch/li licreate a patch file/li liupload it to the issue/li lichange the issue status to 'Needs review'/li liwait 20 minutes (at best) to find out if the tests pass or fail with your patch/li /ul pIf the tests fail, then you get to do it all over again, including making possible revisions to the issue summary./p pEver wanted to run the tests while iterating on a change, but are reluctant due to:/p ul liinsufficient local machine resources or configuration to run tests efficiently/li liinconsistent results compared to the official testbot/li lidisruption of your 'creative coding moments' due to the patch submission workflow/li lilong test runtime on qa.d.o/li /ul pWell you may be in luck./p pWhat if you could type span class=geshifiltercode class=text geshifilter-textdrush testbot/code/span to have the changes in your working branch submitted and tested as a patch against Drupal? And be able to view the results in five minutes or less? If this sounds interesting, then install the span class=geshifiltercode class=text geshifilter-textdrush testbot/code/span command file (see instructions) and take it for a spin./p h2Suggested usage/h2 pIf your changes only affects a single module (or a few), then an assessment of your changes can often be had by simply running the tests for that module (or those modules). Once you know that your changes do not break the immediate context, then the entire test suite can be run before posting the patch on the issue queue./p pYou can do so by including a list of test classes to run (see examples); in so doing you might reduce your response time to a matter of seconds./p h2Drupal 8 examples/h2 pRun the command from the working directory with your code changes. The default test environment for Drupal 8 is mysql 5.5 and php 5.4. In lieu of setting properties on the command line, add them to a '.testbot' file in the repository root directory (i.e. the same directory that contains the .git directory)./p table tr thDescription/th thCommand/th /tr tr tdAll defaults (without .testbot file)/td tddiv class=geshifilterpre class=text geshifilter-text style=font-family:monospace;drush testbot/pre/div/td /tr tr tdUsing properties from .testbot file/td tddiv class=geshifilterpre class=text geshifilter-text style=font-family:monospace;drush testbot/pre/div/td /tr tr tdSingle test class/td tddiv class=geshifilterpre class=text geshifilter-text style=font-family:monospace;drush testbot --properties='{quot;classesquot;:[quot;Drupal\taxonomy\Tests\TermTestquot;]}'/pre/div/td /tr tr tdAlternate environment and multiple test classes/td tddiv class=geshifilterpre class=text geshifilter-text style=font-family:monospace;drush testbot --database='mongodb-2.6' --php-version='php-5.5' --properties='{quot;classesquot;:[quot;Drupal\node\Tests\NodeQueryAlterTestquot;, quot;Drupal\node\Tests\NodeRevisionsTestquot;]}'/pre/div/td /tr /table h2Drupal 7 examples/h2 pThe default test environment for Drupal 7 is mysql 5.5 and php 5.3. The command syntax matches that shown above with the addition of the 'branch:7.x' parameter to the properties. An example of testing two classes is:/p div class=geshifilterpre class=text geshifilter-text style=font-family:monospace;drush testbot --properties='{quot;branchquot;:quot;7.xquot;,quot;classesquot;:[quot;NodeQueryAlterquot;,quot;NodeRevisionsTestCasequot;]}'/pre/div h2Instructions/h2 pPoint your browser to a href= and see the README file for installation instructions./p h2Caveat/h2 pIf our test queue is empty when you submit a patch (and do not specify a list of classes to test), the actual response time for a Drupal 8 patch will be under ten minutes based on existing test suite and available hardware at the time of this writing. If the queue is full, we may not run your patch and will let you know./p h2Final thoughts/h2 pIf you have questions, would like to offer constructive comments or suggestions, or want to let us know that you found the tool useful, please post in the a href= issue queue/a./p pThe testbot is provided as a complimentary service to the Drupal community. No financial assistance is received from the Drupal Association (to defray even the hardware costs). Unlike the current testbot which runs on the most powerful compute instances offered by Amazon Web Services, these tests are run on hardware with roughly 25% the processing power yet return results in under half the time./p /div/div/divdiv class=field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfixh3 class=field-labelTags: /h3ul class=links inlineli class=taxonomy-term-reference-0a href=/taxonomy/term/2drupal/a/lili class=taxonomy-term-reference-1a href=/taxonomy/term/27reviewdriven/a/lili class=taxonomy-term-reference-2a href=/taxonomy/term/