Planet Drupal

Syndicate content - aggregated feeds in category Planet Drupal
Updated: 23 min 28 sec ago

Modules Unraveled: Installing Git on Windows and Mac - Free Video Series

Fri, 05/08/2015 - 19:00
div class=field field--name-field-image field--type-image field--label-hiddendiv class=field__itemsdiv class=field__item even rel=og:image rdfs:seeAlso resource= typeof=foaf:Image src= width=480 height=270 alt=Installing Git //div/div/divspan class=submitted-by/spandiv class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item even property=content:encodedpThe Installing Git series is a free series that walks you through the process of installing Git for the first time and/or updating Git to the latest release on both Windows and Macs./p pa href=/installing-git/installing-git-windows rel=nofollowInstalling Git on Windows/a is pretty straight forward, you just download the Git for Windows installer, and step through the process./p pOn a Mac though:br / * a href=/installing-git/installing-git-if-you-do-not-have-xcode-or-command-line-developer-tools-installed rel=nofollowYou might not have any version of Git installed/abr / * a href=/installing-git/updating-git-if-you-have-only-version-comes-xcode-or-command-line-developer-tools rel=nofollowYou might have the version that comes with Xcode or the Command Line Developer Tools/abr / * a href=/installing-git/updating-git-if-you-have-version-apple-well-official-install rel=nofollowYou might have the version from Apple as well as an official install/abr / * a href=/installing-git/updating-git-older-version-latest-release rel=nofollowOr, you might just need to update an existing official install/a/p pThis series covers all of those scenarios to get you updated to and running on the latest release./p pIt also covers the a href=/installing-git/configuring-git rel=nofollowbasic Git configuration options/a you need to set in order to use Git effectively./p pSo, what are you waiting for? a href=/installing-git rel=nofollowWatch them now!/a They're free!/p /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 even rel=dc:subjecta href=/tags/git typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Git/a/divdiv class=field__item odd rel=dc:subjecta href=/planet-drupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=planet-drupal/a/div/div/div

Forum One: Content After Launch: Preparing a Monkey for Space

Fri, 05/08/2015 - 16:16
pWe’re excited to announce this talk, a title=Content After Launch at DrupalCon 2015 href= After Launch #8211; Preparing a Monkey for Space/b/ab /bon Wednesday, May 15, 2015 from 5pm to 6pm at DrupalCon LA!/p pSo what’s it all about? Well, coupled with a silly metaphor, I#8217;m going to be talking about what happens to content during various stages of a website build, from the initial kickoff, through the production, and well after launch. The talk will touch on:/p ul lihow all team members can get involved in the success of a launched website./li lisetting and managing expectations for what it takes to run a site post-launch./li lieverything you might have missed while focused on designing and building the website./li /ul pCome for the metaphor, stay for the juicy takeaways! Spoiler alert – there will be an abundance of monkey photos./p

iterate.: Creating custom cron tasks in Drupal 7

Fri, 05/08/2015 - 16:11
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpIn one of our latest projects we developed a Facebook app which integrates with Drupal. Even though Drupal 7 has a powerful set of core tools to manage files and images, using it would unnecessarily overcomplicate a simple PHP app. /p /div/div/divspan rel=schema:url resource=/blog/creating-custom-cron-tasks-drupal-7 class=rdf-meta element-hidden/spanspan property=schema:name content=Creating custom cron tasks in Drupal 7 class=rdf-meta element-hidden/span

Lullabot: The SyFy Project

Fri, 05/08/2015 - 15:02
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpThe redesigned website is a beautiful example of the latest in front-end technology. Lullabot developers a href= title=Mike HerchelMike Herchel/a and a href= title=Chris AlbrechtChris Albrecht/a join the Drupalize.Me podcast to explain it all./p /div/div/div ul class=field field-name-field-show-notes field-type-link-field field-label-hidden li a href= /li li a href= Herchel's Presentation at Florida Camp/a /li li a href=[Video] Lullabot: Building /li /ul

Code Drop: Creating Custom Config Entities in Drupal 8

Fri, 05/08/2015 - 12:35
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpDrupal 8 is skipping through the betas and it won’t be long until we’re staring at a release candidate. With that in mind, i’m now taking the time to learn some of the key concepts that you’ll need to know as a day to day site builder using Drupal 8./p h2Custom Config Entity Types/h2 pA custom configuration entity type referred to as a config entity for most of this article is a custom definition of an entity that allows you to provide a config class, validation schema and custom storage./p pThey'll have hundreds of practical usages during development custom development. To give some examples, core uses them for user roles, blocks, image styles and plenty more. Use your IDE to see what’s extending ConfigEntityBase if you’re interested./p h2Creating Our Config Entity Type/h2 h3Schema/h3 pFirst up, lets define our schema. The schema allows us to say what fields our config entity should have and what type those fields should be./p/div/div/div

Jim Birch: Drupal 7: Google Analytics and Google Webmaster Tools Setup

Fri, 05/08/2015 - 12:00
a href=;utm_medium=drupal-planetamp;utm_campaign=node/13 title=Drupal 7: Google Analytics and Google Webmaster Tools Setupimg src= width=620 height=465 alt=Lego Uncle Jim googles, yes he does! title=Lego Uncle Jim googles, yes he does! //abr pAt first, I dismissed the need for yet another module.  I have always added the Google Analytics code straight into a template file in various other CMS and static sites I have been involved in over the years.  Why do I need a module to do that?  Well, you don't, but the a href= Google Analytics Module/a does offer a lot more functionality that will make it worth your while./p pThe first thing you need to do, it you haven't is a href= up for a Google Analytics account/a.  It's pretty straight forward process. /p pOnce you are signed up, the most confusing thing to me was the Account vs. Property vs. View:/p pa href=/sites/default/files/img/blog/Google-Analytics-Admin.pngimg alt=Google Analytics Admin src=/sites/default/files/img/blog/Google-Analytics-Admin.png //a/p pI break it down like this.  Account is the company or the owner.  The Property is the website.  The view is segmented data of the website.  At first, you should have a default All Website Data view, but moving forward you may have an app and a website, or a view for different languages on the site like /en and /de./p pa href=;utm_medium=drupal-planetamp;utm_campaign=node/13 title=Drupal 7: Google Analytics and Google Webmaster Tools SetupRead more/a/p

Wim Leers: The Montpellier Perf Sprint, and what’s next

Fri, 05/08/2015 - 11:37
pAt least 20 people helped push one or more issues forward in Montpellier, at the a href= Dev Days Performance Sprint/a!/p pHere#8217;s an overview of what we set out to do, what we did, and what the next stepsnbsp;are./p h2The plan for span class=capsDDD/spannbsp;Montpellier/h2 ul liPriority one: uncover the “unknown unknowns”, i.e. finding more performancenbsp;issues./li liPriority two: a href= 8’s internal page cache was enabled by default shortly before span class=capsDDD/span Montpellier/a, so we should try to find edge cases where it breaks (where stale content is served from the internal pagenbsp;cache)./li liPriority three: fix known performance problems, as well as those uncovered by the work done for priorities one span class=ampamp;/spannbsp;two./li /ul pfigure a href= rel=original-imageimg src= width=420 height=227 alt=Drupal Dev Days Montpellier Performance sprint board — midweek //a/p figcaptionemThe sprint board, midweek. Yellow stickies are performance stickies. Middle of the board is “in progress”. Bottom right is “fixed”./em/figcaption p/figure/p h21. Finding more performancenbsp;issues/h2 pWe already know that certain things are slow, and we know how to fix them. But significant portions of slowness do not yet have explanations for, let alone precise or even rough plans on how to reduce the / The parts of Drupal 8 that are slow that we do not have a strong grasp on yet are the bootstrap phase in general, but also routing, container services and route accessnbsp;checking./p pBerdir, amateescu, dawehner, yched, znerol, pwolanin and I did a lot of profiling, testing hypotheses about why certain things took a given amount of time, comparing to Drupal 7 where possible, figuring out where the differences lied, and so / Bits and pieces of that profiling worksup id=fnref:1a href=#fn:1 rel=footnote1/a/sup are in a href=, including patches that help profile the routingnbsp;system./p pIn the weeks since span class=capsDDD/span Montpellier, effulgentsia and catch have continued discussions there, posted further analyses and filed many more issues about fixing individualnbsp;issues./p h22. Try to break Drupal 8’s internal page cache span class=ampamp;/span fixnbsp;it/h2 pSo, Drupal 8 had the a href= page cache enabled by default/a shortly before span class=capsDDD/span Montpellier, with only a few known problems. Having many people to try to break it, using scenarios they use daily in their day jobs, that’s the ideal way to find any remaining cache invalidationnbsp;problems./p pMany tried, and most did emnot/em succeed in breaking it (yay!nbsp;:)), but about half a dozen problems were discovered. See a href= h2What we gotnbsp;done/h2 pWe fixed so incredibly many issues, and we had more than emtwenty/em people helping out! Notably, a href= was all over class loading-related issues, a href= and a href= got many of the page cache issues fixed, a href= pushed routing/span class=capsREST/span/menu links issues forward significantly, and we overall simply made progress on emmany/em frontsnbsp;simultaneously./p pWe made Drupal 8’s authenticated user page loads several percent faster in the course of thatnbsp;week!/p pMost of the page cache problems that were discovered (see above) were fixed right at the sprint! There are 4 known issues left, of which one is critical on its own, one is blocked, and the two others are verynbsp;hard./p p(If you want more details, we have a href= updates/a on what gotnbsp;done.)/p pfigure a href= rel=original-imageimg src= width=420 height=237 alt=Drupal Dev Days Montpellier Performance sprint board end result //a/p figcaptionemThe sprint board, end result. Focused on the bottom right corner: look at all those yellow stickies!/em/figcaption p/figure/p h2Nextnbsp;steps/h2 pWe currently have a href=;status%5B%5D=1amp;status%5B%5D=13amp;status%5B%5D=8amp;status%5B%5D=14amp;status%5B%5D=15amp;status%5B%5D=4amp;priorities%5B%5D=400amp;version%5B%5D=8.xamp;issue_tags_op=%3Damp;issue_tags=Performance11 remaining criticals with the “Performance” tag/a. Getting that to zero is our top priority. But many in that list arenbsp;difficult./p pIf you specifically care about performance for authenticated users: less difficult issues can be found in the child issues of the a href= contexts meta issue/a. And for some least difficult issues, see the child issues of the a href= issue/a./p pGenerally speaking, a href=;status%5B%5D=1amp;status%5B%5D=13amp;status%5B%5D=8amp;status%5B%5D=14amp;status%5B%5D=15amp;status%5B%5D=4amp;priorities%5B%5D=300amp;version%5B%5D=8.xamp;issue_tags_op=%3Damp;issue_tags=D8+cacheability%2C+Performanceall major issues tagged with either “Performance” or “span class=capsD8/span cacheability”/a can use anbsp;hand./p pHopefully see you in the queues!nbsp;:)/p div class=footnotes hr / ol li id=fn:1 pIt was impossible to capture all things we considered in an issue, that’d have slowed us down at least tenfold.#160;a href=#fnref:1 rev=footnote#8617;/a/p /li /ol /div ul class=tags lispan class=lineage-item lineage-item-level-0Acquia/span/li lispan class=lineage-item lineage-item-level-0Drupal/span/li lispan class=lineage-item lineage-item-level-0performance/span/li /ul

Another Drop in the Drupal Sea: DrupalCon for n00bs

Fri, 05/08/2015 - 11:29
pa href= LA/a is right around the corner! Woo hoo! I'll be there. Will you?/p pIf this will be your first DrupalCon, I'd like to provide you with some ideas of how you can approach things. You have different options available to put together your Con:/p pa href= target=_blankread more/a/p

xjm: Getting Drupal 8 done: DrupalCon Los Angeles sprints

Fri, 05/08/2015 - 00:51
span data-quickedit-field-id=node/26/title/en/fulltext class=field field-node--title field-name-title field-type-string field-label-hiddenGetting Drupal 8 done: DrupalCon Los Angeles sprints/span span data-quickedit-field-id=node/26/created/en/fulltext class=field field-node--created field-name-created field-type-created field-label-hiddenThu, May 07, 2015 - 17:51/span span data-quickedit-field-id=node/26/uid/en/fulltext class=field field-node--uid field-name-uid field-type-entity-reference field-label-hiddenspan lang= about=/user/6 typeof=schema:Person property=schema:name datatype=xjm/span/span div data-quickedit-field-id=node/26/body/en/fulltext class=clearfix field field-node--body field-name-body field-type-text-with-summary field-label-hidden div class=field-items div property=schema:text class=field-itempThe a href= Los Angeles extended sprints/a start emthis/em Saturday, May 9, and the main sprint day on Friday, May 15 is just a little over a week away. I'll be leading a Drupal 8 Critical Burndown sprint to help get D8 done, and  a href= and a href= will be leading a sprint to triage Drupal 8 majors. And we need your help! a href= up for the sprints now/a, or read on for more information on what we'll be doing and why./p pimg alt=Sprinters talk and code at DrupalCon Munich data-entity-type=file data-entity-uuid=6b4c582b-00b9-4742-b700-aad9dabc619b src= /br /smallemDrupalCon Munich contribution sprints. Photo credit: a href= Lozano/a./em/small/p h2strongHelp fix the 29 remaining issues blocking Drupal 8's release/strong/h2 pA a href= candidate/a for Drupal 8.0.x will be created once there are zero critical issues remaining. In the past six months, we've reduced the critical issue count from 130 issues then to just a href=;status%5B%5D=1amp;status%5B%5D=13amp;status%5B%5D=8amp;status%5B%5D=14amp;status%5B%5D=4amp;priorities%5B%5D=400amp;version%5B%5D=8.0.x-devamp;issue_tags_op=%3D29 issues as of today/a. This ongoing progress is thanks to the hard work of dozens of contributors./p pimg alt=Graph of critical issue counts over the past six months, with drops during sprints indicated data-entity-type=file data-entity-uuid=7538bc7e-a738-4490-8104-4c716464b4cc src= //p pOver these six months, we've held three focused sprints on critical issues: in a href= in December/a, a href= in January/a, and a href= Days Montpellier in April/a. The impact of each of these sprints on the critical issue count was clear: a focused sprint is the best way to get a lot of work done efficiently. Help us with the next burst of momentum! Come to webchick's a href= Drupal English guide to the remaining Drupal 8 criticals/a, and a href= up for the Los Angeles critical issue sprint/a./p pimg alt=Post-It notes with issue names and IDs on a chalkboard data-entity-type=file data-entity-uuid=2b53b3f8-37d6-42b9-b560-9618f2ee744b src= /br /smallemIssues fixed during the Dev Days critical and performance issue sprint/em/small/p h2strongHelp triage major Drupal 8 issues/strong/h2 h3strong900 reasons to get involved/strong/h3 pThe a href= for critical issues/a are very specific: the issue needs to be serious enough that we're not going to support Drupal 8 for emany/em of the hundreds of thousands of sites that run Drupal without it. However, they're not the only issues we need to solve. Like most beta software, Drupal 8 still has plenty of bugs that need to be fixed, but that aren't severe enough to block release. Among these are the a href= issues/a, which are not a critical problem for every site, but still nasty enough to ruin someone's day./p pimg alt=A spreadsheet of critical issues and committer assessments data-entity-type=file data-entity-uuid=f79ab8b1-5590-4f1c-a300-cb9dd5cb12fa src= /br /smallemDrupal 8 core committers assess each issue that is marked critical/em/small/p pThee Drupal 8 core committer team systematically evaluates every single critical issue to make sure it's relevant and that it really should block release, but we don't have the resources to do this for major issues. Over the four years of Drupal 8's development, we've racked up a href=;status%5B%5D=1amp;status%5B%5D=13amp;status%5B%5D=8amp;status%5B%5D=14amp;status%5B%5D=15amp;status%5B%5D=4amp;priorities%5B%5D=300amp;categories%5B%5D=1amp;categories%5B%5D=2amp;version%5B%5D=8.0.x-devamp;issue_tags_op=%3Dnearly 900 major issues/a that are still outstanding. Many of these issues are still relevant and important to make Drupal 8.0.x more robust. However, many others are outdated; they might already have been resolved, they might no longer be relevant, or they might be candidates to postpone until a href= or 9.x/a instead because they're no longer a href= during the Drupal 8 beta/a./p pThis is where you come in! If you don't really see yourself helping with those 29 criticals, but you do have some experience with Drupal 8 and with core contribution in general, help us sort through these majors during DrupalCon LA. Take a look at the a href= instructions/a for the sprint, and if you're up for it, a href= your name down for the major triage sprint in our sprint sign up sheet/a./p h3strongBetter faster stronger/strong/h3 pLike I mentioned above, a lot of the major issues in the queue probably aren't relevant anymore, and fixing the rest is going to make Drupal 8 better. There's another reason to sort through them though: there might actually be some critical issues hiding in that queue. The average critical issue takes between 1 and 4 weeks to fix emonce it's marked critical/em. However, a third of critical issues start at some other priority before their significance is recognized. This is actually a big challenge for Drupal 8 release management: we can organize resources for the criticals we know about, but not for ones we don't. So not only does helping move majors along make Drupal 8 better, it might also get it ready faster./p h3strongMaintainers wanted/strong/h3 pRecently, Dries posted a new proposal on a href= core's structure, responsibilities, and decision-making/a, which definitively established the a href= and responsibilities for core subsystem maintainers/a. We have lots of vacancies to fill. :) And it just so happens that triaging major issues triaging major issues for a particular component is a chance to learn a lot about that specific topic area and maybe to find your niche in Drupal core. We'll be organizing the major triage sprint into teams by subsystem so that each team has the chance to focus and build some expertise over the course of the sprint. Contributing to one patch will build your technical skills; contributing to the big picture through triage will build your understanding at a higher level. Participating in the major triage sprint is one way to explore what it would be like to be a subsystem maintainer -- and, as the a href= community/a has put it, maintainers are what distinguish a good project from a great one./p pimg alt=dawehner and damiankloip discuss Views issues at DrupalCon Munich data-entity-type=file data-entity-uuid=4db0c461-cf6b-45c3-961d-29f90b991839 src= /br /smallemViews subsystem maintainers dawehner and damiankloip. Photo credit: a href= Labs/a./em/small/p h2strongNew to Drupal core contribution? Come to the Mentored Core Sprint/strong/h2 pIf you're just getting started with Drupal 8 or with core contribution, there's still a spot for you on the Friday sprint day! Join the a href= Core Sprint/a./p /div /div /div div data-quickedit-field-id=node/26/field_tags/en/fulltext class=field field-node--field-tags field-name-field-tags field-type-taxonomy-term-reference field-label-above clearfix h3 class=field-labelTags/h3 ul class=links field-items lia href=/taxonomy/term/1 property=schema:aboutDrupal 8/a/li lia href=/taxonomy/term/6 property=schema:aboutDrupal Planet/a/li /ul /div section rel=schema:comment data-quickedit-field-id=node/26/comment/en/fulltext class=field field-node--comment field-name-comment field-type-comment field-label-above comment-wrapper h2 class=titleComments/h2 /section ul class=links inlineli class=comment-forbiddena href=/user/login?destination=/blog/getting-d8-done-drupalcon-la%23comment-formLog in/a to post comments/li/ul

Freelock : Why Drupal is a great fit for startups

Fri, 05/08/2015 - 00:30
div class=g-plusone-wrapper style=margin: 0 1em 1em 1em;float:right g:plusone href= size=medium annotation=bubble width=250 /g:plusone/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpAnother sales call today, with a prospective start-upper who thought Drupal might lower his costs to get a web startup launched./p pAnd I didn't really answer the question directly -- because in the long run, if you're building something successful, you're going to spend as much on your Drupal site as you would building from scratch./p pThe key difference? How quickly you can get something in front of users that might help you get some traction and build your business./p/div/div/divdiv class=field field-name-taxonomy-vocabulary-5 field-type-taxonomy-term-reference field-label-hiddendiv class=field-itemsdiv class=field-item evena href=/tag/drupalDrupal/a/divdiv class=field-item odda href=/tag/drupal-planetDrupal Planet/a/divdiv class=field-item evena href=/tag/operationsOperations/a/divdiv class=field-item odda href=/tag/devopsDevOps/a/div/div/div

Drupal @ Penn State: Using Nittany Vagrant to Develop an Existing Drupal Site

Thu, 05/07/2015 - 22:56
pOne of the options in Nittany Vagrant is to build a local, development version of an existing Drupal site - copying the files and database, then downloading it to the Vagrant VM.  Its is pretty straightforward, but there is the occasional trouble spot./p pHere is a short video of how to do it./p

Another Drop in the Drupal Sea: Can we (Drupalistas) compete with an AI Website Builder?

Thu, 05/07/2015 - 22:36
pI'm speechless. And in awe. And maybe a little bit scared./p pThrough a bit of an odd synchronicity I have just come to learn about a new technology that is getting ready to make its debut. And, while the term disruptive gets totally overused these days, I do think that this particular technology may have the power to disrupt my livelihood./p pI don't know whether to celebrate this technology, appreciate this technology, or update my resume. At any rate, I just signed up for a href= It's kind of mind blowing./p pa href= target=_blankread more/a/p

Aten Design Group: Defining a Technical Architecture: Creating Structured Content from Wireframes

Thu, 05/07/2015 - 21:23
img src= width=1000 height=600 alt= /pAs information architects, we love tools that help clients think about the structure of their content. One which we’ve found particularly helpful is what we call our Technical Architecture document. It’s a spreadsheet that defines the structure of the site. This approach is not uncommon, especially within the Drupal community; however, we have promoted this spreadsheet from information architecture tool to site generator. By automating a once manual process, we’ve introduced some really exciting opportunities around rapid prototyping and efficient product iteration. I’ll get into the details of that in a follow up post. For now, we’ll look at how we move from sitemaps and wireframes to the technical architecture document in a way that sets us up for rapid prototyping./p h2From Wireframes to Technical Architecture Document/h2 pAfter the initial discovery phase of identifying goals, personas, user needs, core content and sitemaps, we build out wireframes for the project. The structure behind this content really comes together when we then translate those wireframes into the technical architecture document./p pAs mentioned above, this document breaks the site down into the specific content types, fields, vocabularies, terms, users and other units which together comprise the entirety of the project. You can look through and make a copy of the document for yourself - a href=;authuser=0 title=Technical Architecture documentTechnical Architecture document template/a/p h2Sitemap/h2 pFirst we translate the sitemap as defined in our wireframes into separate rows in the technical architecture document./p pa href=/sites/default/files/wireframe.jpgimg src=/sites/default/files/wireframe.jpg//a/p pa href=/sites/default/files/technical-architecture-sitemap.jpgimg src=/sites/default/files/technical-architecture-sitemap.jpg//a/p pNow we can specify the nature of each page and work with the client to define path aliases./p h2Content Types/h2 pNext we group all of the content into distinct types. We’ve been keeping these potential groupings in mind as wireframes are built out, but it is here in the technical architecture document where we explicitly define them./p pHere is an example of the Course detail page (as shown above) translated into a content type and its associated fields./p pa href=/sites/default/files/technical-architecture-content-types.jpgimg src=/sites/default/files/technical-architecture-content-types.jpg//a/p pThis is where the structure of the content begins to take shape. We have identified the discrete fields which together form a single course. We can also now define field groups and help text where that is relevant and helpful./p h2Fields/h2 pThe fields we saw in the content type sheet validate to fields referenced here. This sheet is where we hash out the finer details of each field. We bring the client into conversations around this sheet when necessary (such as help text and default values), but allow them to concern themselves primarily with the sitemap and content types./p pa href=/sites/default/files/technical-architecture-fields.jpgimg src=/sites/default/files/technical-architecture-fields.jpg//a/p pNext we define in the same level of detail the remaining components of the site, including field groups, vocabularies, image styles and user roles./p pHere is a look at user roles and their associated permissions./p pa href=/sites/default/files/technical-architecture-roles.jpgimg src=/sites/default/files/technical-architecture-roles.jpg//a/p pThis document is a great way to model content and inform developers as to what would be built. It also reveals to clients the underlying structure necessary to implement the functionality and form proposed in the wireframes./p pOf course, there are still limitations in representing a course page in a series of rows and columns. The concept of structured content is now more clear, but it is not until a content author can create that Methodology of Science course that the picture truly comes into focus./p pThis is the exact situation prototypes were made for. In the next post I’ll dive into how we’re using the technical architecture document to automate much of the build process, enabling us to quickly create these prototypes./p

Acquia: Web Accessibility Tips for Developers

Thu, 05/07/2015 - 21:06
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 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 evenpimg src=/sites/default/files/istock_000057254170_large.jpg alt=access //p pCreating the code that makes a website accessible to all visitors doesn’t have to be as time-consuming or resource-intensive as you might think. All you need to do is follow some simple steps that require a little extra time and effort. But these efforts will ensure that your Web content is at the fingertips of everyone — including those with blindness and low vision, deafness, and other disabilities./p pIt’s up to both the developer and the client to achieve site accessibility. Although they usually work together in the planning and later stages of website creation, a developer and client also have separate responsibilities in making a site accessible. This blog post, the first in a four-part series that offers website accessibility tips for developers, will make this important part of development easy to follow. And it comes just in time for a href= target=_blankGlobal Accessibility Awareness Day/a on May 21./p h2Reading More Shouldn’t Take More Effort/h2 pThe visually impaired rely on screen readers to help them learn what’s on a page, and to navigate a site. But without the proper code in place, a screen reader that’s reading a short list of blog posts on a landing page that will direct users to a longer list of items, will only say “read more” over and over again. /p pNot knowing what the “more” is, a user will probably get frustrated and go somewhere else. Fortunately, all that’s needed to get a screen reader to articulate the details that accompany the “more” is just a few snippets of code — commands that accommodate disabled people while at the same time hiding text and not cluttering up the screen for non-disabled people./p pA developer simply needs to include a small snippet of code similar to:/p pcodelt;a href=/gt;Read more lt;span class=readmoregt; [site] Blogslt;/spangt;lt;/agt;. /code/p pThe “read more” CSS class should include code that makes the span class invisible to sighted users but can be heard by non-sighted users. Sighted users would still see “Read More” but non-sighted users would hear “Read More about [site] Blogs.”/p h2Alt Text Should Paint a Clear Picture/h2 pDevelopers should stress to clients the necessity and importance of using alt text on a webpage. It helps visually impaired visitors know all there is to know about an image./p pIt’s easy to overlook when constructing a webpage, but it’s super easy to include alt text in an image’s markup code. A simple description of what the image is, and its title, are all that’s needed — as seen in a href= target=_blankthis example of the markup box for a photo/a of Attorney General Eric Holder./p h2Spell Out What’s Required in a Required Field/h2 pMany websites use an asterisk as a cue for people to know what’s a required field of input on a form — but that’s not the best method to reach everyone. That sort of general warning doesn’t always work with screen readers; the user will be left guessing where the required field is. Not to mention, a colorblind visitor won’t see the red or green that’s typically used to highlight the field asterisk warning./p pThe solution is easy. First, the code behind the field should spell out the name of the required field, and the fact that inputting information there is required — so that people using screen readers will have no doubt about what they need to do. Also, the code should inform users that an asterisk is indeed the warning that’s denoting a required field; that way colorblind visitors who can’t see the red or green text that’s often used on websites as the only type of warning won’t have to second-guess and those using a screen reader will also will know what to do./p h2Don’t Bury Mistakes; Put the Error Message at Top/h2 pAnother thing about website forms: A visitor who errs when completing an online form should be immediately informed on the refreshed page about where they’ve made a mistake. Otherwise, a screen reader will speak the entire page again and mention the errors only when it reaches the incorrect fields. The refreshed page should instead offer — at the very top — a basic box that lists what went wrong and what is required./p pThat’s it for now. Stay tuned for second part of this series, as we take you, the developer, down a true and easy path to website accessibility./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/acquia-drupal-planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=acquia drupal planet/a/div /div /div span property=dc:title content=Web Accessibility Tips for Developers class=rdf-meta element-hidden/span

Palantir: Design Systems and DrupalCon Los Angeles

Thu, 05/07/2015 - 20:51
span class=featured-blog-image img typeof=foaf:Image src= width=262 height=175 alt= / /span pDesign Systems are all the rage in the world of Web design these days, and for good reason. Good design has always been about design system thinking, and when applied to the Web, it results in robust sites that s are able to evolve over time, grow with your business, adapt to new technologies like phones and watches, and provide a better user experience. Drupal is great for design systems thinking, and that's why Palantir is making it a theme of DrupalCon Los Angeles./p pStart off with my article Strategies for a Designer-friendly CMS in the a href= issue of Drupal Watchdog/a, which attendees will find in their conference swag bags. It's based on my presentation Design Systems and Drupal, which you may have caught at a conference in the last few months. (If not, tell your local DrupalCamp to have me come and present it!)/p pTuesday afternoon, fellow Palantiri a href= Persch/a will be presenting on a href= HTML with Drupal; Past, Present, and Future/a, discussing how the Drupal approach to theming has changed over the years and how the mental models we use have evolved. Did you know there's two completely different theming philosophies intertwined into one system? Steve will explain how that came to be, and what the future holds. You can get a jump on the topic with Steve's two part series on the a href= module/a, and a href= we use it extensively/a at Palantir. Catch him at 2:15 pm in room 502B./p pWednesday morning, Drupal Watchdog is hosting a a href= the authors/a session at their booth in the Exhbit Hall with both Steve and I. Come by at 10:15 am to chat Design Systems, Drupal, writing, and vests./p pImmediately after, Steve and I will also be hosting a BoF (Birds of a Feather - group discussion) on a href= Systems/a and their future within Drupal. Join us in room 506 at 10:45 am to discuss how to better leverage design systems in our favorite CMS./p pAnd finally, Thursday kicks off with Steve presenting in the Core Conversations track about a href= Panels can teach us about Web Components/a. Web Components are coming soon to a browser near you, and you need to be ready. Ready in this case means know your Panels module, as it uses the mental model that you will need in a componentized, design-systems-based world. Come by Core Conversations (room 518) at 10:45 am to discuss a design-system-web-component-panels-all-the-things future for Drupal./p pEven if you can't catch one of those sessions, you can still a href= Palantir/a at our booth (Booth 103 on your map) any time if you want to talk about design systems, a project you have, or the fine art of Nerf wars. Or find us at one of our other sessions: a href= 8: The Crash Course/a and a href= sustainable recruiting strategies/a on Tuesday, a href= Mini-Symfony!/a on Wednesday, a href= on Wednesday (yours truly, talking about the importance of focus and prioritization), and advice on a href= strategies for Drupal 8 and the modern web/a on Thursday to finish off sessions. Then join everyone at a href= Trivia Night/a on Thursday to show your Drupal-fu./p pSee you there!/p

Lullabot: The Cultural Construction of Drupal

Thu, 05/07/2015 - 20:00
pDrupal is always changing. The community constantly reinvents Drupal with new code and reimagines Drupal with new words. This article seeks to examine the current narratives about Drupal. By examining the stories we tell about Drupal — the so called cultural constructions — we can better understand what is going well and what should be making us uncomfortable./p

DrupalCon News: Become an Association Member at DrupalCon

Thu, 05/07/2015 - 19:24
div class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item evenpAt the Drupal Association, we love the Drupal project and our fantastic community that we serve. If you want to show your same love for the Association, the project, and the community, consider stopping by the Drupal Store and becoming a Drupal Association member./p/div/div/div

Propeople Blog: Blink Reaction and Propeople at Drupalcon Los Angeles

Thu, 05/07/2015 - 19:13
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedp dir=ltrimg alt=Drupalcon Los Angeles class=media-element file-default typeof=foaf:Image src= //pp dir=ltrNext week, Drupal enthusiasts from around the world will gather in Los Angeles for what is sure to be another fantastic DrupalCon, which we're proud to be supporting as a Diamond sponsor. This year’s conference is especially important to us for a few different reasons. Last month, we announced the opening of our new office in the LA area. We’re very excited to be in beautiful southern California, especially as LA hosts the Drupal community. This also the first major Drupal event since we announced that we are joining forces with a href= Reaction/a to form the largest Drupal agency in the world./pp dir=ltrAt DrupalCon, we will reveal to the community our new name and new identity. We look forward to sharing our vision with you, so please stop by booth 300 to say hello. We will have information on our expanded service offerings and chances for you to win some great swag and prizes. You can even a href= up early/a for an entry in our Drupalcon Barcelona sweepstakes. We look forward to seeing all our familiar friends in the Drupal community and making new ones./pp dir=ltrIn addition to our name reveal, we are excited for our staff members who will be leading DrupalCon trainings and summits, as well as those who will be presenting sessions throughout the week:/ph3 dir=ltr style=line-height: 20.0063037872314px;Data-Driven Marketing/h3p dir=ltr style=font-size: 13.0080003738403px; line-height: 20.0063037872314px;On Tuesday, May 12, at 10:45am our Chief Strategy amp; Insights Officer, Gus Murray, will present a href= With The Pretty Brochures, Let’s Start Building Better Business Tools: The Art of Data-Driven Marketing/a. Gus’s talk will cover how digital insights and personalization are transforming the way organizations can create value from their websites. This session is a must for anyone working with digital marketing or business development./ph3 dir=ltrSymfony2 and Drupal 8 Training/h3p dir=ltrOn Monday, May 11 we will have a team leading the training a href= to Symfony2: Getting Ready for D8/a. This is an introduction to Symfony2 and will help experienced and new PHP developers understand the power and flexibility of Drupal 8’s new development framework. Space for the training is limited, so make sure to sign up for a spot! This training will also serve as preview of the a href= free trainings/a we will offer throughout the rest of the year./ph3 dir=ltrDrupal Business Summit/h3p dir=ltrAlso on May 11, Blink Reaction’s Director of Talent Development, John DeSalvo, will be leading the a href= Business Summit/a. This one-day event is aimed at business leaders who provide Drupal services. Attendees can participate in peer discussion and networking with other Drupal business executives./ph3 dir=ltrDrupal Sessions/h3p dir=ltrWe are proud that five of our sessions  were accepted for DrupalCon LA, ranging in topics and skill level. On Wednesday, May 13th, Yuriy Gerasimov and Andrii Podanenko will hold a session on a href= Testing Workflow Before Merge to Master/a that will demonstrate the building of an actual site based on the changes of pull request (installation profile vs. pulling live database workflow), running automated phpunit, simpletest, behat tests and much more!/pp dir=ltrAlso on May 13th, Matt Korostoff, will present  a href= Survived Drupalgeddon: How Hackers Took Over My Site, What I Did About It, And How You Can Stay Safe/a. This session will be a post-mortem of the a href= SQL injection bug/a  Matt experienced on his personal site. He’ll show you how hackers invaded and how you can defeat a similar attack on your website./pp dir=ltrOn Thursday, May 14th, we will also present a session on a href= Up Drupal 8 Development Using the Drupal Console/a. The Drupal Console is a suite of tools that run on a command line interface (CLI) to generate boilerplate code and interact with a Drupal 8 installation. Jesus Manuel Olivas has been the a href= on this project/a and will be sharing his insights and the latest developments during this session. You don’t want to miss it./pp dir=ltrTess Flynn will present two sessions: a href= Core FUD: We Need a Contrib Champion/a on Tuesday, May 12 , where she will discuss the need for a Contrib Champion and how Example Module’s rewrite exposed the need for a new category and initiative to support contrib developers through the dramatic changes coming in Drupal 8. Her other session will be on a href= the (D8) Flag/a, on Thursday,  May 14, where she’ll discuss tasks, challenges and choices that you’ll encounter when porting your module to Drupal 8.  /ph3 dir=ltrWe Want to Meet You!/h3pIf you’re attending DrupalCon and want to schedule some time to talk to us one-on-one, make sure to a href= us a line/a. We’ll be showcasing the services of our new agency as well as looking to add to our already incredible pool of Drupal talent. See you soon!/p/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/drupalcon-los-angeles typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupalcon Los Angeles/a/div/div/divdiv class=field field-name-field-drupal-planet field-type-taxonomy-term-reference field-label-abovediv class=field-labelCheck this option to include this post in Planet Drupal aggregator:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/drupal/planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=planet/a/div/div/divdiv class=field field-name-field-topics field-type-taxonomy-term-reference field-label-abovediv class=field-labelTopics:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/topics/community-events typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Community amp; Events/a/div/div/div

Acquia: Building a great remote team, helping clients giving back

Thu, 05/07/2015 - 18:26
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 evenpThe European Acquia Client Advisory team had an onsite week in Reading the week after a href= Camp London 2015/a. I got the chance to see a number of them there and sit down with two of my friends from Supporta!–Daniel Blomqvist and Henk Beld. We talked about remote teams and helping others succeed with Drupal, while also paying it back/forward by sharing and teaching what they learn and what they know./p /div /div /div 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 span property=dc:title content=Building a great remote team, helping clients amp; giving back class=rdf-meta element-hidden/span

Chromatic: Vagrant Overview, Tips and Resources

Thu, 05/07/2015 - 17:38
div class=field field-name-body field-type-text-with-summary field-label-hidden pAs developers, oftentimes we want or need our working environment to be an exact match of the production environment. Using MAMP or your Mac’s built in server simply won’t cut it because there would be too much variation in software versions and/or too much configuration differences between projects. This is especially true when your project is running a complex or specific infrastructure. Lucky for us, there’s a href=!/p pemThis post serves as a basic overview of Vagrant, a guide to some handy resources and some tips we’ve learned since we started using it. It kinda touches on everything!/em/p pVagrant is written in Ruby and used for creating and configuring virtual development environments. Although it can use other virtual machine software, the most commonly used is a href= VirtualBox allows you to create a virtual server right on your machine. This allows you to run a Linux server (or whatever else you would like) on your personal Mac or PC. Vagrant is essentially the glue between provisioning software such as a href= or a href= and a href= pVagrant helps you configure your network configurations for VirtualBox as well as run the necessary scripts to provision your virtual machine. The beauty of Vagrant is that once you have your provisioning scripts ready and your Vagrantfile set up, you can spin up a VM with a simple command (vagrant up) and easily dispose of it with (vagrant destroy)./p pThe benefit of this approach, as opposed to manually configuring VirtualBox, is that spinning up and tearing down environments is trivial. When your project is complete you can simply destroy the VM. Six months later, when the project picks back up, just run codevagrant up/code and you pick up right where you left off./p pVagrant is also a great for onboarding new developers. How many times have you wished a new developer could just hit the ground running and not have to spend hours setting up their own development environment? This can be handled by including your Vagrant provisioning scripts in your project’s code repository./p pWhen a new developer needs to get rolling, they simply checkout the project’s repository (as they normally would), navigate to the proper directory and run vagrant up. A few minutes later they have the same development environment as everyone else on the team! This also eliminates the old adage, “It worked on my machine”. Now everyone’s development environment should be identical. What works on one developers machine, will work on another developers machine, no matter their primary platform./p h3Provisioning your Vagrant Machine:/h3 pAnother nice feature of Vagrant is that you have several options for provisioning your VM./p pThe most common options are:/p ul liChef a href= liPuppet a href= liAnsible a href= liShell Script (Probably the best starting point if you aren’t familiar with any the above configuration tools.)/li /ul pBetter yet, you can also use multiple provisioning options on the same VM. For example, you can provision your box using Chef and then finish your provisioning with a shell script afterwards! I have found this particularly handy when I am using Chef recipes that I’ve found in the wild that take me 90% of the way but I still need something a little more specific./p pHere is an example of how you might use Puppet and a shell script together:/p precodeconfig.vm.provision :shell, :path =gt; bootstrap/ config.vm.provision puppet do |puppet| puppet.module_path = modules end /code/pre pWhy is this useful? Let’s say you want to provision a CentOS virtual machine using puppet. Your VM needs puppet installed on it before it can do the provisioning. So your provision requires two steps:/p ol liRun a shell script to install puppet (bootstrap/ liRun your Puppet provisioning./li /ol pstrongFirst the the shell script would run and install Puppet:/strong/p precodesudo yum install -y sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs sudo yum install -y puppet-2.7* /code/pre pstrongThen Vagrant would run the Puppet provisioning:/strong/p precodeconfig.vm.provision puppet do |puppet| puppet.module_path = modules end /code/pre h3Networking:/h3 pNetworking is one the trickiest parts of using a Vagrant setup. Some key concepts to consider are:/p h4Forwarded Ports/h4 pForwarded ports allows you to map ports on your host machine to ports on your guest machine (VM). This is useful direct access to guest ports or services from your host machine. For example, if you wanted to visit a site served from Apache on your VM from your host machine’s browser, you’d want to map host port 8080 to guest port 80 on your VM. This would allow you to hit a href=http://localhost:8080http://localhost:8080/a on your host and have it automatically forwarded to port 80 on the guest. Here’s how you do it:/p forwarded_port, guest: 80, host: 8080 /code/pre pAs your VM gets more complex, you may need to explicitly forward more ports for other services, such as Varnish or MySQL./p h4Private Network/h4 p**Private Network configures your VM with an address from the private address space (something like Private Networks are used when you do not want other machines on the network able to access your virtual machine. The easiest way to set this up is to let the IP address be assigned to you via DHCP. That is as simple as adding ‘ private_network, type: dhcp’ to your Vagrant file./p pIn some instances, however, you may want to define a static ip address for your VM. This can can be done with the following snippet:/p private_network, ip: /code/pre pIn this example, it’s important to make sure the ip address does not conflict with any other addresses on the network. If you are unable to access your virtual server, you may need to check your a href=;sa=Damp;sntz=1amp;usg=AFQjCNG1BQaN9ZKLeY9U9WJu3bbK2mVkRw/etc/hosts file/a or ping the virtual machine’s intended IP address from the command line to make sure that requests for that IP are routed to your virtual machine./p h4Public Network/h4 p**Sometimes, it’s handy to serve your VM over your public network. This might be useful when you need to access your site or application from other devices or when other stakeholders need to access, test, etc. In this case, you would use the public network option. Vagrant will prompt you for which network interface you would want to use, or you can specify it like this:/p public_network, bridge: 'en1: Wi-Fi (AirPort)' /code/pre h3Synced Folders:/h3 pA Synced Folder is a folder that is accessible to both your host machine and your virtual machine. This is particularly useful for syncing your host machine’s codebase changes to your VM. Without synced folders, you’d have to directly checkout your project’s codebase onto your VM or work directly on your VM. Neither of these are ideal./p pWith Synced Folders, your workflow doesn’t have to change. Editing files, making commits, etc. all happens on your host machine and your VM will reflect those changes in real time. The files on your host machine are essentially mapped to a directory on your guest machine./p pstrongHere’s how to do it:/strong/p precodeconfig.vm.synced_folder path/to/host/codebase, path/to/desired/guest/directory, create: true, type:nfs /code/pre pThe codetype/code variable here is strongvery important/strong when it comes to large code bases such as Drupal. If you don’t specify your folder type as nfs you may find your site is extremely slow and drush commands take forever. In fact, you will also need to specify this option for Vagrants base mount folder like so:/p precodeconfig.vm.synced_folder ., /vagrant, create: true, type: nfs /code/pre pFortunately there is a plugin for windows users at: a href= h3LAMP Stacks:/h3 pThere are a lot of Chef and Puppet LAMP environments already available out there in the interwebs./p h4Some examples/h4 ul liPuppet LAMP stack: a href= liChef: a href= liDrupal Specific: a href= /ul h3Quick Start for Drupal:/h3 pFor those new to Vagrant looking to get a machine up and running quickly for a Drupal project, I recommend checking out The a href= Vagrant project/a. This project comes packed with all the bits for running Drupal. Drush, phpMyAdmin, XDebug are all available out of the gate. Even if you end up using your own solution, this will give you a strong place to start./p h3Further Reading/Helpful Links:/h3 ul lia href= lia href= lia href= lia href= lia href= href= lia href= /ul h3Wrapping (vagrant) Up./h3 pVagrant is a powerful tool and I’m only beginning to scratch the surface here in terms of covering it thoroughly. We’re now using it on a couple of projects and have found it incredibly useful. Drop us a line in the comments if you have other tips for folks new to Vagrant or other resources worth reading./p /div