Planet Drupal

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

Open Source Training: The State of Drupal 8: March 2015

Tue, 03/10/2015 - 23:23
div class=ost-intro-imageimg title=Drupal 8 Logo src=https://www.ostraining.com/images/drupal/drupal-8-logo.png alt=drupal 8 logo width=165 height=169 data-src=https://www.ostraining.com/images/drupal/drupal-8-logo.png //div pOver the last few years we've been writing a regular series called the State of Drupal 8./p pWe aim to give a short, plain English update for people who don't follow Drupal development closely./p pHere's your busy person's guide to Drupal 8 in March 2015 .../pimg src=//feeds.feedburner.com/~r/ostrainingdrupal/~4/_AopHHDrmVg height=1 width=1 alt=/

Mediacurrent: Why Care About Accessibility

Tue, 03/10/2015 - 22:21
img typeof=foaf:Image src=http://d1l4od7sxc8nwf.cloudfront.net/sites/default/files/styles/thumb_blog_spotlight/public/website-accessibility-overview-01.png?itok=Q5NX4lz9 width=200 height=152 alt=Why website accessibility matters title=Why website accessibility matters / pIn 2008, I met a person who had a mobility impairment. She had limited use of her arms and hands. While we were chatting, she mentioned some issues she was having with her computer. I was intrigued. How could she be using a computer without using her hands?  Hoping I wasn't being offensive, I asked her if she'd mind showing me how she interacted with the computer. To my relief, she was happy to enlighten me. The enlightenment was more like a slap upside the head to realize that not everyone uses a mouse and keyboard to operate a computer./p

DrupalCon News: Los Angeles Session Submission Overview

Tue, 03/10/2015 - 20:32
div class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item evenpOur call for papers closed recently for DrupalCon Los Angeles, and we couldn't be more excited about how many fantastic submissions we received. While selections are still in process, we can share data with you on how many sessions we received, and on what topics -- and we can give you some tips for getting your session selected./p/div/div/div

Drupal Association News: Drupal Events at SXSW 2015

Tue, 03/10/2015 - 19:10
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpimg alt=SXSW 2015 logo class=left src=https://assoc.drupal.org/files/sxsw2015.png style=width: 240px; height: 96px; /South by Southwest Interactive starts this Friday in Austin, Texas. The largest tech conference in the world wouldn’t be complete without Drupal, which is why we’ve assembled a guide to all things Drupal at this year’s SXSW./p pIf there’s a session, party, or workshop that you think should be included, let us know and we’ll add it to the list. In the meantime, here’s all the best Drupal things at SXSW this year./p h2 Workshops:/h2 h3 a href=http://http://schedule.sxsw.com/2015/events/event_IAP38353Web Content Publishing with Drupal Eight/a/h3 pstrongemNote: This session requires advance signup to attend./em/strong/p pExperience The New Power of Drupal 8 in this Hands-On workshop! In this workshop, you will learn:/p ulli How to leverage Drupal's new responsive content authoring features./li li How to customize your site with Drupal's powerful content modeling features including content categorizing./li li How to creating listing pages and blocks of lists with the enhanced VIEWS module, now a CORE feature, out of the box!/li /ulpMonday, March 16, 9:30AM - 1:30PMbr / JW Marriott Room 303-304 (110 E 2nd St)/p h3 a href=http://schedule.sxsw.com/2015/events/event_IAP42400Hands On: Inclusion, Accountability and Empowerment/a/h3 pThis hands-on, two and a half hour long workshop will give you the tools to:/p olli Develop strategies for building more inclusive, accountable and effective spaces — and be better at what you do./li li Find ways to be an effective ally to those who are marginalized in your workplace, and build a more inclusive culture./li li Find allies outside of your workplace if you can't find any within./li /olpMonday, March 16, 3:30PM - 6:00PMbr / JW Marriott Room 310-311 (110 E 2nd St)/p h3 a href=http://schedule.sxsw.com/2015/events/event_IAP42024Large Drupal Projects/a/h3 pThe goal of this workshop is to have the participants take away:/p p    What developer workflow (git, code review) techniques can make a larger project successfulbr /     Techniques for coordinating teams that are geographical dispersed among different organizationsbr /     What scaling and performance issues are more likely to arise in a larger project, and how to anticipate and plan for thembr /     Planning for a maintainable codebasebr /     What advanced project management issues might arise from a large Drupal project/p pTuesday, March 17, 9:30AM - 1:30PMbr / JW Marriott Room 303-304 (110 E 2nd St)/p p /p h2 Sessions:/h2 h3 a href=http://schedule.sxsw.com/2015/events/event_IAP38811Interconnected: The Future of the Experience Web/a/h3 pThe first wave of the web was open: anyone could build a website and get found through search engines or social media. The second wave was mobile, leading entire nations to leapfrog the initial desktop -- and laptop-centric web. And we’ve just scratched the surface of the third wave: the experience web. It’s driven by internet-connected-everything, and it’s all around us. This third wave gives control to a few intermediaries -- particularly companies that own the entire experience. How can a local Indian restaurant deliver the right experience to a passenger in Google’s self-driving car? The key is mastering context and delivering personalized content to meet consumers where they are./p pDries Buytaert, creator of Drupal amp; Acquia co-founder, will discuss how we’ll interact with companies and each other in this freewheeling third wave of the experience web./p pSunday, March 15 5:00PM - 6:00PMbr / JW Marriott Salon A (110 E 2nd St)/p h2 br / Parties:/h2 h3 a href=http://austin2015.sched.org/event/aa2b5a473b458877817fc2f0bf3a5fb0#.VP77Y0Zb6q4Tech Lover’s Karaoke Night/a/h3 pJoin Rocksauce Studios and Four Kitchens for a fun evening of karaoke, drinks, and tech fun!/p pTech Lover's Karaoke Night, hosted at the historic Old School Bar amp; Grill at the heart of Dirty Sixth, will be an evening filled with music, drinks, great food, and tattoos!/p pFriday March 13, 2015 6:00pm - 9:00pmbr / Old School Bar amp; Grill (401 E 6th St, Austin, TX 78701)/p h3 a href=http://schedule.sxsw.com/2015/events/event_OE03850Drupal Drop In/a/h3 pThis event is open to anyone currently using or interested in Drupal. You can look forward to live music, great food amp; drink and networking with top innovators that are using Drupal to transform their business./p pSaturday, March 14 12:00PM - 3:00PMbr / Maggie Mae's Rooftop (323 E 6th St)/p /div/div/div

Commercial Progression: Streamlining the Development Process

Tue, 03/10/2015 - 18:24
div class=field field-name-field-blog-image field-type-image field-label-hidden div class=field-items div class=field-item evena href=https://www.commercialprogression.com/sites/default/files/keeprollin.jpgimg src=https://www.commercialprogression.com/sites/default/files/styles/large/public/keeprollin.jpg?itok=pZBunZ6P width=480 height=270 alt= //a/div /div /div div class=field field-name-body field-type-text-with-summary field-label-hidden div class=field-items div class=field-item evenpEfficiency feels good./p pTo some extent, the joy of efficiency (or at least de-cluttering) is a href=http://www.nytimes.com/2015/02/16/opinion/the-clutter-cures-illusory-joy.htmlillusory/a. The pursuit of efficiencies may only make sense a href=http://xkcd.com/1205/over long time scales/a. Making a decision a href=http://en.wikipedia.org/wiki/Program_optimization#When_to_optimizewhether to optimize/a is fraught./p pOr is it? The common rule of thumb for duplication in computer programming is a href=http://en.wikipedia.org/wiki/Rule_of_three_%28computer_programming%293 duplicates/a. Anything you do twice, at the cost of labor, is something you should make faster the third time./p h3Things we've made faster/h3 pAt the beginning of the year, the dev team committed to increasing efficiency, leading to the eventual ability to type a couple lines in a terminal prompt and have a 95% developed site with all the enterprise-grade Drupal fixins./p pHere are some things we do really often that we've automated (or are working on):/p ulliConfigurations for a href=https://www.vagrantup.com/Vagrant/a and a href=https://puphpet.com/Puphpet/a/li liModule for a href=https://bitbucket.org/alexfisher/contact_infocontact info/a with tokens and blocks and fanciness/li liFeature (to be used by a script soon) with a a href=https://bitbucket.org/alexfisher/fprefix_ctypecontent type and basic views/a/li lia href=https://bitbucket.org/alexfisher/compro_customSite-specific custom module/a, with icon fonts and ready-to-go hooks for common tweaks/li lia href=https://bitbucket.org/alexfisher/compro_paragraphsParagraph feature/a with fields for headings and templates for stuff/li lia href=https://bitbucket.org/alexfisher/compro_contentContent feature/a with reasonable roles, filters, WYSIWYGS, Image styles, etc./li lia href=https://bitbucket.org/alexfisher/compro_install_profileAn install profile/a that rolls it all together/li liBash utils to spool up local sites using drush and your choice of web server/li lia href=https://bitbucket.org/alexfisher/compro_configShared configs/a for stuff like settings.php, .gitignore, .gitconfig, etc./li liDeveloper-specific themes without any dependencies/li /ulh3How this works/h3 pConceptually, a dev does something like:/p p/pdiv class=geshifilterdiv class=bash geshifilter-basholli class=li1pre class=de1 compro site span class=re5-b/span newclient/pre/li/ol/div/div p...has a new local site set up, rolls the repo with a stage/prod model, pushes it to bitbucket, and has a reasonable set of Drupal configurations for making a modern site. One command, emgiant head start/em./p pWhen it comes time to make a new content type, we'd type:/p p/pdiv class=geshifilterdiv class=bash geshifilter-basholli class=li1pre class=de1 compro ctf pressrelease/pre/li/ol/div/div p...and a new feature would appear in sites/all/modules/features containing a content type and view (with a page and block of teasers, both disabled by default). We could then ostensibly use drush's field commands in conjunction with drush's feature commands to roll an entire IA without looking at the site in a browser./p pOnce the content model is in place and there's sufficient real or dummy content, we theme it using our excellent in-house practices; entity view modes, minimal CSS, blockify, extra fields, etc./p pThen, for added efficiency, when it's time to roll the stage code onto production, we use:/p p/pdiv class=geshifilterdiv class=bash geshifilter-basholli class=li1pre class=de1 span class=kw2git/span roll prod/pre/li/ol/div/div pThis git alias looks like so:/p p/pdiv class=geshifilterdiv class=bash geshifilter-basholli class=li1pre class=de1 span class=br0[/spanspan class=kw3alias/spanspan class=br0]/span/pre/lili class=li1pre class=de1 roll = span class=st0!CURRENT=span class=es4$(git rev-parse --abbrev-ref HEAD)/span amp;amp; git checkout span class=es3${1}/span amp;amp; git merge span class=es3${CURRENT}/span amp;amp; git push origin span class=es3${1}/span amp;amp; git checkout span class=es3${CURRENT}/span amp;amp; git status amp;amp; bash -c 'aplay ~/repos/compro_config/rollin.wav'/span/pre/li/ol/div/div pIn English, it checks out the production code, merges the staging code, pushes the merged code to the remote production repo, checks back out to staging, tells the user which branch it's on, and plays a clip of a Limp Bizkit song./p h3What's next/h3 pWe'd like to automate our staging and production servers more, and leverage our CI tools to a greater extent. This will mesh nicely with our efficient local machines./p pOn the local development end, we're working to make removing local sites faster. It would be a dream to be able to spool up a site, test a single thing, and remove the site permanently in the span of a minute or two./p pThe theming and design processes have some real opportunities for streamlining. We haven't landed on the exact best approach, but are talking about it in the office constantly./p h3Efficiency/h3 pEfficiency feels good. In helping to write many of these streamlining pieces, I would literally say out loud this feels good. If making systems more efficient is an illusory joy, I don't want to be dispelled of this illusion./p pLooking for efficient Drupal development? Contact a href=mailto:sales@commercialprogression.comthe experts/a/p pa href=http://www.commercialprogression.com/get-quoteimg alt=get a quote for your responsive design project src=/sites/default/files/responsive_design_quote.jpg style=width: 600px; height: 228px; //a/p /div /div /div

Drupalize.Me: Creating Block Types with Bean

Tue, 03/10/2015 - 13:13
div class=field field-name-body field-type-text-with-summary field-label-hidden text-content text-secondarydiv class=field-itemsdiv class=field-item evenpWhether you're a Drupal beginner or veteran module developer, one thing everyone understands about Drupal is the core block system is very limiting. There are lots of modules out there that attempt to make blocks more robust. Heck, site builders have even used Views as a complete block replacement. There is one module that makes blocks a ton more useful and that is the a href=https://www.drupal.org/project/beanBean/a module (Block Entities Aren't Nodes). The Bean module replaces a lot of modules we used in the past to give blocks more power and function. Drupal 8 even works just like the Bean module out of the box. Instead of using Views or making nodes blocks, Bean gives us fieldable block types./p /div/div/divdiv id=comment-wrapper-nid-2117/div

InternetDevels: Drupal modules for social networks integration Part 2

Tue, 03/10/2015 - 09:43
div class=field field--name-field-preview-image field--type-image field--label-hiddendiv class=field__itemsdiv class=field__item evenimg src=http://st4.internetdevels.net/sites/default/files/public/blog_preview/social-network-modules2.jpg width=937 height=624 alt=Drupal modules for social networks integration //div/div/divdiv class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item evenp style=text-align: justify;In our previous blog post we have presented a list of 7 popular and useful a href=http://internetdevels.com/blog/drupal-social-media-integration-modules target=_blankDrupal modules for integration with social networks/a. After that we've received some queries like Are there some other modules of such kind?. Thus we've decided to make up a new list!/pp style=text-align: justify;/p a href=http://internetdevels.com/blog/drupal-social-media-integration-modules-2Read more/a/div/div/div

ShooFlyDesign: Drupal 7, Tags, Unpublished Content, and You

Tue, 03/10/2015 - 02:29
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpDrupal has a very flexible a href=https://www.drupal.org/documentation/modules/taxonomytaxonomy system/a for tagging and categorization content (and users, and anything else). This flexibility is one of its interesting differentiating features — you can create as many dimensions of categorization and tagging as you like, which is very attractive for librarians and other enthusiasts of organization. To keep that flexibility from totally bogging down the system, Drupal maintains an index table that maps those terms onto the pieces of content to which they're attached./p/div/div/divdiv class=field field-name-node-link field-type-ds field-label-hiddendiv class=field-itemsdiv class=field-item evena href=/buzz/drupal-7-tags-unpublished-content-and-youRead more/a/div/div/div

xjm: Contribution, Influence, and Drupal 8

Mon, 03/09/2015 - 23:11
span data-quickedit-field-id=node/21/title/en/fulltext class=field field-node--title field-name-title field-type-string field-label-hiddenContribution, Influence, and Drupal 8/span span data-quickedit-field-id=node/21/created/en/fulltext class=field field-node--created field-name-created field-type-created field-label-hiddenMon, Mar 09, 2015 - 17:11/span span data-quickedit-field-id=node/21/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/21/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-itempemIn the most recent issue of a href=http://drupalwatchdog.com/Drupal Watchdog/a, a href=https://www.drupal.org/u/nedjoNedjo/a submitted an article on a href=http://drupalwatchdog.com/volume-4/issue-2/will-revolution-be-drupalizedsoftware freedom and social change in Drupal/a. While this article raises a number of thoughtful questions about the social implications of the Drupal community's evolution, it includes some misinformation (both because it misrepresents the data that are easily available and because it lacks data that are not easily available). In the a href=#correctionsfirst part of this post/a, I look at the specific information presented in the article and provide some more depth, including some first-hand information about a href=https://www.acquia.com/Acquia/a, since I work in Acquia's Office of the CTO. In the a href=#org-influencesecond part/a, I explore how we can mitigate some of the concerns the article raises./em/p h2 id=mestrongWho am I and why do I care?/strong/h2 pI'm a href=https://www.drupal.org/u/xjmxjm/a. I started contributing to Drupal 8 core in 2011 when I was working as a part-time a href=http://en.wikipedia.org/wiki/Hourly_workerhourly/a at a university. Core contribution was a life-changing experience for me, and I've been high in the list for a href=http://drupalcores.com/Drupal 8 patch commit mentions/a since late that year. I also led what later became the a href=https://www.drupal.org/core-mentoringCore Contribution Mentoring/a initiative. I wanted to pay it forward and help make core contribution more accessible to other outsiders like myself. I guessed that I was not the only one who had an interest in participating in open source in general and Drupal in particular, but had not done so because of underconfidence, time limitations, lack of information, bad previous experiences, or that that same outsider feeling./p pa href=https://www.flickr.com/photos/63401575@N02/7262182808/in/set-72157629878092340/img alt=tim.plunkett shows sprint participants how to write automated tests class=caption-img caption data-entity-type=file data-entity-uuid=a85f22ec-5710-45c7-9c03-3c6df64503c1 src=/sites/default/files/inline-images/tcdrupal_core_mentoring_sprint.jpg //a/p pa href=https://www.flickr.com/photos/63401575@N02/7262182808/in/set-72157629878092340/emsmallTCDrupal core mentoring sprint, 2012. Photo credit: xjm/small/em/a/p pIn 2012, a href=https://www.drupal.org/u/merlinofchaosmerlinofchaos/a invited me to be on the team for the a href=http://angrydonuts.com/help-fund-views-in-coreViews in Drupal Core/a initiative. I cut my hours back at the university and started drawing a salary from the community chipin for that initiative. My budget was tight, but the opportunity to be paid for contributing to that project was an amazing privilege. Views was a href=http://cgit.drupalcode.org/drupal/commit/?id=c7b7cmerged into Drupal 8 core/a in October of 2012./p pIn 2013, a href=https://www.drupal.org/u/DriesDries/a offered me a position in Acquia's a href=http://buytaert.net/announcing-the-office-of-the-cto-at-acquiaOffice of the CTO (OCTO)/a to work on Drupal 8 full time. Last week was my a href=http://xjmdrupal.org/blog/my-new-job-octotwo-year anniversary at Acquia/a. I spend almost all of my paid time doing release management for Drupal 8, and part of my job is gathering metrics to help the community make informed decisions about the codebase and the upcoming release. (For example, see the critical issue charts at a href=https://www.drupal.org/drupal-8.0/get-involvedHelp Get Drupal 8 released!/a)./p h2 id=correctionsstrongThe Watchdog article's misleading chart (and corrections to it)/strong/h2 pUnder a header titled Structured for Profit?, the Watchdog article tries to illustrate which individuals are involved in formal decision-making roles in Drupal, with the goal of asking whether current decision-making in Drupal is a href=http://www.chapterthree.com/blog/drupal-8-and-the-enterpriseenterprise/a-oriented and with a specific focus on a href=https://www.acquia.com/Acquia/a. The article describes the following influential roles:/p blockquote ullistrongCore committers/strong These are the individuals who have final say over which particular changes are made to Drupal core. There is a single permanent core committer, Buytaert. For each major version of Drupal, Buytaert appoints one or more “branch maintainers” who commit changes to that version of the software. [a href=https://www.drupal.org/node/21778#branch-maintainersreference/a]/li listrongOfficial Drupal 8 initiative leads/strong Drupal 8 development was organized around a series of official initiatives, approved by Buytaert, who appointed an individual to lead each initiative. [a href=https://www.drupal.org/node/2107085reference/a] Official initiatives shaped the core directions and solutions adopted in Drupal 8./li listrongThe Drupal Association/strong The Drupal Association is a nonprofit that, according to its mission, “fosters and supports the Drupal software project, the community and its growth.” [a href=https://assoc.drupal.org/aboutreference/a]/li listrongDrupal Working Groups/strong Three Working Groups – Community, Documentation, and Technical – oversee key areas of the Drupal project. Individuals are appointed to these groups by Buytaert or his designate(s). [a href=https://www.drupal.org/governancereference/a]/li /ul Beyond formal decision-making roles, the individuals whose code contributions are accepted also exert a significant influence on the software and, by extension, the Drupal project./blockquote p(For a background on the history of decision-making in Drupal, I recommend reading Randy Fay's article from three years ago: a href=http://randyfay.com/content/drupals-governanceDrupal Governance/a. Two primary changes have occurred since Randy's post was written: Drupal 8 now has multiple branch maintainers who collaborate to provide quick feedback and strategic focus in core issues, and the a href=https://www.drupal.org/governanceDrupal Working Groups/a were added precisely to help address some of the concerns that Randy eloquently lays out in that post.)/p pThe Watchdog article's summaries of these roles (each accurate on its own) are followed by a chart, which I at first found confusing, then found misrepresentative, and eventually (after close examination) decided was misleading:/p pimg alt=Watchdog representation of number of individuals in each role at different organizations. This is a misleading chart. data-entity-type=file data-entity-uuid=fbaeea35-8c13-4215-8c01-1ff339b0eb20 src=/sites/default/files/inline-images/misleading_chart.png //p pemsmallOriginal image from a href=http://drupalwatchdog.com/volume-4/issue-2/will-revolution-be-drupalizedDrupal Watchdog/a/small/em/p pSeveral of the misrepresentations in this chart are due simply to the fact that complete data are not easily available (especially historically), and I attempt to correct this by providing better data with this post. However, there is one particularly misleading distortion in the chart that obscures everything else, even with the data that are available, and I address that first below./p h3 id=multiple-rolesstrongA contributor with two responsibilities is not two people/strong/h3 pThe first thing that made me squint at the illustration in the post was a claim that there were somehow 15 people from Acquia that were Drupal decision makers and top contributors, but I could not account for anywhere near that many people who worked for Acquia in the categories described. Then I squinted more and noticed that there were two people counted for a href=http://www.chapterthree.com/Chapter Three/a -- a Drupal core branch maintainer and, separately, a top 10 Drupal 8 contributor. Huh? While a href=https://www.drupal.org/u/alexpottalexpott/a does enough work for two people, there are not actually two alexpotts (oh if only!)./p pimg alt=Two 'individuals' are listed for Chapter Three, but it is actually only one 'individual'. data-entity-type=file data-entity-uuid=c969d856-4a12-4342-8b00-a2ad049e8fc7 src=/sites/default/files/inline-images/c3.png //p pimg alt= src= /emsmallThe original graph is labeled as indicating the number of individuals in key roles, but many people are counted twice or even three times./small/em/p pIt wasn't until my third read of the article that I actually absorbed this bit in the text:/p blockquote pParticular individuals may fill multiple roles and therefore be counted more than once./p /blockquote pAha. So it's not stated outright, but perhaps this was meant to illustrate the size of an individual's influence based on different ways they might be involved. In particular, Dries is undeniably more influential than any other person in the project, so perhaps counting him three times (once as the project founder, a second time as a Drupal Association board member, and a third time as a branch maintainer) is an attempt to represent that. Unfortunately, I don't think this is clear or effective, and it actually seems rather misleading. The axis on the left side of the chart is labeled Number of individuals, and even though the note about multiple counting is right there in the text, I (and others) missed it and took the chart at face value./p pimg alt=15 'individuals' in Acquia are represented, but it is actually only 7 or so. data-entity-type=file data-entity-uuid=f9cafd72-32ab-4bfd-8854-84940d6df952 src=/sites/default/files/inline-images/not_15_acquians.png //p pimg alt= src= /emsmallAcquia does not actually employ 15 individuals who are currently decision-makers in the project; instead, there about 7 individuals currently at Acquia who hold or have held one or more roles as the Watchdog article lists them. Three Acquians in particular are counted for a total of 9 of the individuals indicated in the chart./small/em/p pThree of the roles represented in the chart (core branch maintainers, initiative leads, and top 10 patch contributors) reflect prominent participation in Drupal core development, and there is actually significant natural overlap between those roles. Our core development process also includes many checks to individual influence for all three roles. All patches must undergo peer review, and we have a culture of a href=https://www.drupal.org/dcoc#collaborationcollaboration and consensus-building/a rather than overruling others' decisions. Even branch maintainers cannot commit patches that they contribute to in a nontrivial way (either as patch authors or by providing the RTBC or peer review signoff). Finally, when a patch contributor disagrees with a branch maintainer about a change, the branch maintainer a href=https://www.drupal.org/dcoc#conflict-resolutionconsults others/a (either other patch contributors, or other branch maintainers)./p pFor all these reasons, double-counting people for different aspects of their involvement in core development is particularly flawed. The Drupal 8 initiative leads contributed to many patches both directly and indirectly; the specific number of commits that mention them does not reflect or substantially add to their impact on Drupal 8's development. And all the branch maintainers (excluding Dries) are equal to each other, regardless of whether or not they also author many patches./p pIt's less clear to compare the influence of core contributors with the Drupal Association board or the working groups, because the responsibilities are so different, but double-counting still doesn't reflect reality. For example, webchick is arguably more influential than other members of the Community Working Group because she is a branch maintainer, but emnot/em more influential than other branch maintainers because she is a member of the Community Working Group. In summary, not all individuals on the chart have equal influence, but their influence is a function of their most significant role, not of the number of roles they hold./p h3 id=contributors-change-jobsstrongContributors change jobs/strong/h3 pDrupal 8 has been under development for four years. Drupal Association board member terms are two and three years. Many people change jobs more frequently than that, so it's imbalanced to only represent contributors' current employers. For example, four of the seven a href=https://www.drupal.org/node/2107085Drupal 8 initiative leads/a have changed jobs since Drupal 8's feature completion deadline in February 2013. strongTheir current employers weren't their employers when they were doing the work./strong/p pIn the a href=http://cgit.drupalcode.org/drupal/log/Drupal core commit log/a, branch maintainers mention all the individuals who contributed directly to a patch for an issue in its commit message. Generally, the more work an issue takes, the more people end up in the commit message (though this isn't always the case). The Watchdog article includes top 10 patch contributors based on an a href=https://github.com/ericduran/drupalcoresopen source script that parses and analyzes these commit mentions/a. tim.plunkett and I both work at Acquia now, and are both in the top 10 patch contributors to Drupal 8 by commit mention, in part because of our work on the Views in Drupal Core initiative. Except... Views was in core before either of us started at Acquia, and most of our other contributions were made before then as well. To illustrate this, we can compare the commit log references to tim.plunkett before his first full day at Acquia, versus after it:br /codegit log --before=2014-06-01 --after=2011-03-09 | grep tim\.plunkett | wc -lbr / 985br / git log --before=2015-03-01 --after=2014-06-01 | grep tim\.plunkett | wc -lbr / 182/code/p pSo not only is the chart overstating Acquia's influence by crediting them with all our previous contributions, it's also under-crediting Tim's previous employers, Zivtech and Stanford, as well as the hundreds of community contributors who gave money to the chipin that paid my salary in 2012 as I worked on Views in Core./p pimg alt=Views in Core donation box: 'Can I has Views in core?' data-entity-type=file data-entity-uuid=2137a9f1-4e96-4b2c-be00-c6b8c2cb4d04 src=/sites/default/files/inline-images/can_has_vdc.jpg //p pemsmallViews is in Drupal 8 core thanks to hundreds of contributors who gave money to the initiative. Photo credit: xjm/small/em/p pAnother interesting aspect of this is that patch contributions are not immediate. In fact, 20% of Drupal core issues take over 6 months to complete. For most of the past two years, I've rarely contributed to patches directly. And yet, between March 2013 and now, I got many of my Drupal 8 commit mentions:br /codegit log --before=2015-03-01 --pretty=oneline | grep xjm | wc -lbr / 451br / git log --before=2015-03-01 --after=2013-03-04 --pretty=oneline | grep xjm | wc -lbr / 199/code/p pThis disparity comes from the fact that emlots of my work from 2011 and 2012 wasn't committed until later/em. Even if I left Acquia today, never visited Drupal.org again, and threw my laptop in a href=http://en.wikipedia.org/wiki/Lake_MononaLake Monona/a, I would continue to get commit mentions for work I did in the past./p h3 id=volunteersstrongContributors are usually volunteers/strong/h3 pAcquia currently has six employees who are paid to be core contributors, all in the Office of the CTO: a href=https://www.drupal.org/u/G%C3%A1bor-HojtsyGábor Hojtsy/a, a href=https://www.drupal.org/u/Wim-LeersWim Leers/a, a href=https://www.drupal.org/u/tim.plunketttim.plunkett/a, a href=https://www.drupal.org/u/webchickwebchick/a, a href=https://www.drupal.org/u/effulgentsiaeffulgentsia/a, and myself. During recent months, Wim, Tim, and Gábor are mostly full-time Drupal core engineers; their main role is to work on patches and do code review for issues that block Drupal 8's release. effulgentsia and I do a mix of code review, occasional patch work, issue management, and release management. We work on problems like:/p ulliHow can we help get Drupal 8 done sooner and give people accurate information about it?/li liHow do we make it easier for people to contribute to Drupal 8 criticals?/li liHow do we unblock this nasty bug that no one is working on or that other contributors can't agree on how to solve?/li /ulpwebchick also currently works primarily on these sorts of problems, plus does code review and patch committing in her role as a branch maintainer. Dries (who is not full-time on core) sets the goals for what we work on in our paid time, though in practice, we have a lot of autonomy and we set our own objectives with Dries' feedback and approval./p pOn the other hand, a href=https://www.drupal.org/u/pwolaninpwolanin/a works for Acquia, but is not paid to contribute. He works on Drupal 8 in his free time. His efforts to lead the a href=https://groups.drupal.org/node/456353Princeton critical issue sprint/a were all his own volunteer contribution. He used paid vacation time to participate during the sprint. Does Acquia deserve the credit for his work?/p pimg alt=tim.plunkett, YesCT, pwolanin, mpdonadio, dawehner, and kgoel sprinting data-entity-type=file data-entity-uuid=6ec39502-f39a-4464-920b-11c0a86d04ae src=/sites/default/files/inline-images/nj_sprint.jpg //p pimg alt= src= /emsmallPrinceton critical issues sprint. Photo credit: xjm, taken with pwolanin's camera./small/em/p pBranch maintainer a href=https://www.drupal.org/u/catchcatch/a works for a href=http://tag1consulting.com/Tag1/a. Tag1 does not typically pay their employees to contribute to core. Instead, according to catch, they have good employment practices that make it possible for him to spend more unpaid time contributing. Is Tag1 exerting influence over Drupal 8's direction by having good employment practices? Should Tag1 get the credit for work catch contributes as a volunteer?/p pimg alt='Volunteer' pointing at Tag1 individuals on chart, and 'Paid' pointing at Chapter Three data-entity-type=file data-entity-uuid=178abd80-5a0c-469b-ba03-3aece7894b04 src=/sites/default/files/inline-images/volunteer_vs_paid.png //p pemsmallcatch and alexpott are both branch maintainers, but catch and other Tag1 contributors are volunteers, while alexpott is paid to contribute by Chapter Three./small/em/p pOrganizations can affect the contributions of the people affiliated with them in a variety of ways:/p ul id=#organizational-influencesliIn rare cases (for the six of us in OCTO, for branch maintainer alexpott at Chapter Three, and for a number of others), the organization might employ the contributor to do open source contribution full time./li liMore commonly, companies give their employees some paid time where they can work on their own projects, outside their normal work responsibilities. Friday afternoons might be contribution time at the office, for example./li liMost frequently, people run into a problem in the course of their day jobs, and contribute to a fix for it because this contribution also helps them solve their problem. This can be done entirely within working hours, though often the contributor might get intrigued by the issue and work on things related to it in their free time. For example, a href=http://www.md-systems.ch/en/blog/2015-03/np8-is-ready-to-goMD Systems is building and maintaining Drupal 8 sites and modules/a, so a href=https://www.drupal.org/u/BerdirBerdir/a contributes to issues he encounters on those projects in addition to his extensive voluntary contributions./li liFinally, organizations affect the individual indirectly. A contributor's day job affects what the contributor thinks about Drupal, what parts of it they know well, what seems important or good or bad. And, as described above, the organization's employment practices might make it easier or harder for the individual to contribute./li /ulpTo examine the role of influence in contribution, and to acknowledge contribution with proper credit, we should avoid lumping together these different aspects. There is a a href=https://www.drupal.org/node/2288727set of Drupal.org features under development/a that will allow contributors to indicate when their contribution is sponsored by a particular organization, and when they are contributing on their own as volunteers. Until those data are available, it's up to us to consider the specifics, and to remember that contributors are usually volunteers./p pFinally, none of the forms of influence above cause contributors to lose their own particular passions and interests, their own unique view and skills. People are individuals, not automatons operating within a corporate machine. Even the six of us in OCTO contribute outside of paid time, to things that are not part of our jobs but that we care about. Gábor leads the multilingual initiative because he wants to make Drupal support all languages; Acquia did not prioritize it. Tim voluntarily works on core problems that bug him based on experience building sites and contributed modules, in addition to critical issues Acquia pays him to help fix. And Acquia doesn't own what I think or what I do with my spare time. So while we should recognize the influences organizations may exert over contribution, we should stronggive individuals the credit for their own work/strong./p h3 id=top-10strongCounting the top 10 patch contributors makes no sense/strong/h3 pThe Watchdog article's chart represents the top 10 patch contributors by commit mention, but no others. If we treat one commit mention as a unit of work in Drupal 8 core (an imperfect, but not unreasonable metric), this means it provides no representation for over 75% of the work that has been done on Drupal 8. (a href=https://docs.google.com/spreadsheets/d/18F--JQaQct9-KzK6tBz0dYl0sx2vRo3DuoBA0slvsOo/edit#gid=0source data/a)/p pField API maintainers a href=https://www.drupal.org/u/swentelswentel/a, a href=https://www.drupal.org/u/amateescuamateescu/a, and a href=https://www.drupal.org/u/ychedyched/a come in 13th, 14th, and 15th from the top respectively. They are each mentioned in around 300 commits. The have built and re-built what is perhaps the most fundamental Drupal API -- the one that makes Drupal, Drupal -- making fields compatible with new systems in Drupal 8 like the Configuration Management system and the APIs that support Web Services, doing the equivalent of an initiative's worth of work. Why aren't they counted in the graph? Are they really less important to Drupal 8 than me, such that I get a little blue rectangle and none of them do? I'd say the opposite is true--each one of these brilliant developers has done more for the codebase than I have. emAnd all three of them are currently independent./em/p pDrupal 8 core has over 2700 contributors (a href=http://www.knaddison.com/drupal/contributors-drupal-7-final-numbersnearly three times as many as Drupal 7/a). This contribution follows a stark a href=http://en.wikipedia.org/wiki/Long_taillong tail/a distribution of commit mentions to individual:/p piframe height=370 scrolling=no src=https://docs.google.com/spreadsheets/d/18F--JQaQct9-KzK6tBz0dYl0sx2vRo3DuoBA0slvsOo/pubchart?oid=1011452465amp;format=interactive width=600/iframe/p pa href=https://docs.google.com/spreadsheets/d/18F--JQaQct9-KzK6tBz0dYl0sx2vRo3DuoBA0slvsOo/edit#gid=1587225181emsmallThe long tail of Drupal 8 contribution, March 1 2015/small/em/a/p pInspecting the a href=https://docs.google.com/spreadsheets/d/18F--JQaQct9-KzK6tBz0dYl0sx2vRo3DuoBA0slvsOo/edit#gid=0data/a and a href=https://docs.google.com/spreadsheets/d/18F--JQaQct9-KzK6tBz0dYl0sx2vRo3DuoBA0slvsOo/edit#gid=1587225181chart/a closely, there is a head on the distribution of a small group of individuals that account for a significant portion of the work done. I'd say it's about the top 50 people, those with 100 Drupal 8 commit mentions or more. Then there is a middle tier of regular contributors, the next 100 or so, who have between 20 and 100 commit mentions. And finally there's the long tail, the 2500-some contributors with fewer than 20 commit mentions over the four years of Drupal 8's development. (Among them, 1200 contributors have worked on only one patch.)/p pstrongBy this metric, the long tail has done more than a quarter the work in Drupal 8./strong These are people from all over the world helping to improve the open source software they collectively own. By excluding the long tail, the article is not crediting a big chunk of the participatory, collective, grassroots audience that it seeks to encourage./p pFinally, while top contributors indeed have disproportionate influence in a pure do-ocracy, Drupal's top contributors emcannot commit their own patches/em and do not have any particular decision-making authority. So counting patch contributors identically with people who actually have formal decision-making roles does not make sense./p h3 id=other-contributionsstrongMany kinds of contribution are not represented/strong/h3 pA strength of the Watchdog article is that it includes two forms of non-code contribution (Drupal Association board membership and Drupal Working Group membership). However, it's important to keep in mind that there are many other essential influences in our community. As mentioned above, peer review is a required part of our core development process, but typically the Drupal core commit log only credits patch authors, not reviewers. (See the a href=https://www.drupal.org/node/2230579proposal to change this policy/a.) Furthermore, training, documentation, and mentoring are all essential Drupal contributions, as are the sponsorships and crowd-funding that make sprints and large initiatives feasible. This omission is understandable since these contributions aren't surfaced very well on Drupal.org, but it's important to remember that all are influential./p pFinally, there's also no representation of contributed module development. This is reasonable for Drupal 8 since core does not yet have a stable release, but many 8.x branches of contributed modules are already under development using a href=https://www.drupal.org/drupal-8.0.0-beta1Drupal 8 betas/a, and these projects will play a bigger role following the release of 8.0.0. It's also worth noting that contributed module development also has its own formal decision-making role, since we have a a href=https://www.drupal.org/node/1011698contributed project application process/a where ultimately one of our a href=https://groups.drupal.org/node/142454Git administrators/a must approve each application./p h2 id=different-picturestrongA different picture/strong/h2 pThe following chart has several differences from the Watchdog article's:/p olliI'm representing the actual number of individuals rather than counting someone once per role, because a href=#multiple-rolesinfluence is not a function of the number of roles/a./li liI list the organization the individual was actually in during the majority of their term in their role, because a href=#contributors-change-jobscontributors change jobs/a. (I look more into how contributors move toward particular organizations later.) In cases where an individual has been at more than one organization during their active term, I provide an explanation for the organization used in the a href=https://docs.google.com/spreadsheets/d/1RkrEJdKCbFDuXQrch22gm_-ZMd71T4WEogdllyk_zm4/edit#gid=0source data/a. (Sometimes it's close, but I think counting half-individuals would also be a bit confusing. If you see an error, please comment on the cell in the a href=https://docs.google.com/spreadsheets/d/1RkrEJdKCbFDuXQrch22gm_-ZMd71T4WEogdllyk_zm4/edit#gid=0spreadsheet/a so I can correct it.)/li liI'm excluding the a href=#top-10top 10 patch contributors/a, because these individuals do not have any particular authority. (I illustrate patch contribution separately further down.)/li liI'm not indicating the nature of each individual's role(s) on the graph, but you can see these in the a href=https://docs.google.com/spreadsheets/d/1RkrEJdKCbFDuXQrch22gm_-ZMd71T4WEogdllyk_zm4/edit#gid=0source data/a./li liI'm using current data (the Watchdog article is from Sept. 2014)./li /olpiframe height=370 scrolling=no src=https://docs.google.com/spreadsheets/d/1RkrEJdKCbFDuXQrch22gm_-ZMd71T4WEogdllyk_zm4/pubchart?oid=1061343858amp;format=interactive width=600/iframe/p pa href=https://docs.google.com/spreadsheets/d/1RkrEJdKCbFDuXQrch22gm_-ZMd71T4WEogdllyk_zm4/edit#gid=179369351emsmallDrupal contributors in formal decision-making roles by organization/small/em/a/p pNot all individuals on the chart have equal influence, as described earlier, but I think this illustration is less confusing than representing numerous individuals multiple times, and a better starting point for discussion. While it's still clear that Acquia has the most individuals involved in formal Drupal decision-making roles for a single company, it's a reasonable difference rather than an enormous imbalance./p pNext I'll look at the Drupal 8 commit mentions for individuals emwhile/em they were affiliated with a particular organization. This reduces the distortions related to my second point above (that a href=#contributors-change-jobscontributors change jobs/a). Keep in mind, however:/p ullia href=#volunteersContributors are usually volunteers/a, and we can't yet distinguish between volunteer and paid contributions on Drupal.org./li liContributors' work while they are affiliated with one organization might be committed after they move to another organization./li liIndividual contributors still matter more than the companies they work for./li lia href=#other-contributionsMany forms of contribution are not represented/a./li /ulpTo make this chart, I first crowdsourced information on a href=https://docs.google.com/spreadsheets/d/18F--JQaQct9-KzK6tBz0dYl0sx2vRo3DuoBA0slvsOo/edit#gid=0which contributors worked where when/a. This information is from a variety of sources, like Twitter, Linkedin, personal knowledge, etc. (If you see an error in it, please leave a comment on the cell in the spreadsheet so I can correct it.) To keep this mini-project manageable, I limited this to contributors with 50 commit mentions or more (who collectively account for about 2/3 the commit mentions in Drupal 8). For less prolific contributors, I merged in a href=https://docs.google.com/spreadsheets/d/18F--JQaQct9-KzK6tBz0dYl0sx2vRo3DuoBA0slvsOo/edit#gid=704411254current organization data from Drupal.org/a, gathered using a a href=http://cgit.drupalcode.org/sandbox-xjm-core_metrics/tree/contributor_orgs/queries/current_orgs.txtdatabase query run on Drupal.org's staging servers/a. Finally, I adapted the a href=https://github.com/ericduran/drupalcoresdrupalcores script/a to also parse the date that each commit was made, and then matched that date to the timeframes listed for each patch contributor./p piframe height=370 scrolling=no src=https://docs.google.com/spreadsheets/d/18F--JQaQct9-KzK6tBz0dYl0sx2vRo3DuoBA0slvsOo/pubchart?oid=1235201070amp;format=interactive width=600/iframe/p pa href=https://docs.google.com/spreadsheets/d/18F--JQaQct9-KzK6tBz0dYl0sx2vRo3DuoBA0slvsOo/edit#gid=2120259078emsmallCommit mentions and contributor affiliations, March 1 2015/small/em/a/p pNote that I've only represented the top 15 organizational affiliations and put the rest under other. In reality, there are emmany/em other organizations that have people contributing prolifically, and I encourage a href=https://docs.google.com/spreadsheets/d/18F--JQaQct9-KzK6tBz0dYl0sx2vRo3DuoBA0slvsOo/edit#gid=919431409examining the full data/a./p pThe first interesting thing here is that by far the most important group is that of independent contributors: people who are freelancers, self-employed, etc., or who list no affiliation on Drupal.org. For the long tail, some of these people might be mis-categorized under other, since there's no easy way for my query to distinguish between the name of someone's one-person freelance business and the name of a multinational corporation./p pThe second interesting thing is that we confirm that Acquia does indeed employ the most prolific contributors for a single company, even when the data are updated so employees' previous contributions are listed with their previous employers. However, other organizations also make a significant mark, and the individual contributors are still the most influential factor (compare a href=https://docs.google.com/spreadsheets/d/18F--JQaQct9-KzK6tBz0dYl0sx2vRo3DuoBA0slvsOo/edit#gid=919431409the full organization data/a with the a href=https://docs.google.com/spreadsheets/d/18F--JQaQct9-KzK6tBz0dYl0sx2vRo3DuoBA0slvsOo/edit#gid=0individual commit mentions/a). As tim.plunkett put it:/p blockquote pTwo dawehners and an andypost == one Acquia./p /blockquote h2 id=org-influencestrongSo do we still need to worry about organizational influence?/strong/h2 pYes, we always should. In practice, Acquia does not direct my work for specific company interests, nor Chapter Three alexpott's. But theoretically they could. We are none of us immune to the a href=#organizational-influencesorganizational influences/a described above, nor are we above conflict of interest. And while independents and volunteers remain the lifeblood of the Drupal core community, professional contribution has been a very important part of the development of both Drupal 7 and 8, and numerous prominent volunteer contributors are choosing to work for certain organizations (like Acquia, Tag1, Lullabot, and PreviousNext) more than others./p pThe availability of these volunteer and professional resources is still a emgood/em thing--it means individuals and organizations are giving back and helping the project thrive, to the benefit of everyone who uses the software. Still, in order to benefit from these resources while protecting the community against any one group having too much influence, we need a diversity of perspectives. Professional developers building large-scale sites have valuable perspective and experience. So do freelancers who build small sites for local organizations. So do people who need a website and don't care what the code looks like inside, and just want something that works. What can we do to prove a href=http://www.chapterthree.com/blog/drupal-8-and-the-enterpriseDrupal 8 is for everyone/a and to make sure that anyone can still contribute?/p pFirst, I recommend reading Ashe Dryden's thoughtful and well-researched article on a href=http://www.ashedryden.com/blog/the-ethics-of-unpaid-labor-and-the-oss-communityThe Ethics of Unpaid Labor and the OSS Community/a for perspective on why potential contributors have unequal resources and face unequal barriers to contribution. Then, here are specific steps we (as a community) and you (as someone in the community who cares) can take:/p pstrongLower barriers to volunteer contribution/strong/p pAs mentioned above, Drupal 8 core has had over 2700 patch contributors. The goal of the a href=https://www.drupal.org/core-mentoringCore Contribution Mentoring initiative/a is to inspire, enable, and encourage new core contributors, regardless of background or affiliation, and to work on the core tools, process, and community to make it easier for new contributors to get involved. /p pa href=https://www.flickr.com/photos/63401575@N02/8504392725/img alt=sprint workshop participants raising hands data-entity-type=file data-entity-uuid=7b00cc17-1b61-4d65-a200-0db647e6e145 src=/sites/default/files/inline-images/sydney_workshop.jpg //a/p pemsmallMentors in orange shirts stand ready to help sprinters at the DrupalCon Sydney a href=https://drupalize.me/community-toolsCommunity Tools Workshop/a, led by a href=https://www.drupal.org/u/add1sunadd1sun/a. The workshop prepared first-time sprinters to contribute to Drupal 8 core. add1sun is not referenced in the Drupal 8 commit log. a href=https://www.flickr.com/photos/63401575@N02/8504392725/Photo credit: xjm/a./small/em/p pOver the past three years, core mentors have learned a lot about what makes contribution easier or harder for volunteer contributors, and we have a href=https://www.drupal.org/node/2173425lots of recommendations for improvements to Drupal.org that need work/a. You can also help by a href=https://events.drupal.org/losangeles2015/sign-mentormentoring at DrupalCon Los Angeles/a, in IRC, or in your local community, or by joining the conversation at one of the proposed DrupalCon sessions (see a href=https://events.drupal.org/losangeles2015/sessions/drupalorg-changes-support-first-time-contributors-and-mentorsDrupal.org changes to support first time contributors and mentors/a, a href=https://events.drupal.org/losangeles2015/sessions/how-do-we-change-so-we-have-more-repeat-contributors-drupal-coreHow do we encourage repeat contributions to Drupal Core?/a, and a href=https://events.drupal.org/losangeles2015/sessions/pain-points-learning-and-contributing-drupal-communityPain points of learning and contributing in the Drupal community/a)./p h3 id=ux-axstrongContinue to improve Drupal's usability and accessibility/strong/h3 pIf Drupal itself is a barrier, then that's a barrier to contribution. Help with a href=https://www.drupal.org/project/issues/search/drupal?project_issue_followers=amp;status%5B%5D=1amp;status%5B%5D=13amp;status%5B%5D=8amp;status%5B%5D=14amp;status%5B%5D=4amp;version%5B%5D=8.0.x-devamp;issue_tags_op=%3Damp;issue_tags=usabilityusability/a and a href=https://www.drupal.org/project/issues/search/drupal?project_issue_followers=amp;status%5B%5D=1amp;status%5B%5D=13amp;status%5B%5D=8amp;status%5B%5D=14amp;status%5B%5D=4amp;version%5B%5D=8.0.x-devamp;issue_tags_op=%3Damp;issue_tags=accessibilityaccessibility/a issues on Drupal.org, or do usability and accessibility testing and report the results./p h3 id=creditstrongCredit and support all forms of contribution/strong/h3 pThe proposal to a href=https://www.drupal.org/node/2230579credit reviewers and other non-coders as first-class contributors/a will help highlight the impact of contributors in these roles, and the proposal for a a href=https://www.drupal.org/node/2281763new design for user profiles/a also highlights non-patch contributions more prominently. The work to a href=https://www.drupal.org/node/2288727provide credit to organizations/a is also essential to recognize how contributions are funded./p h3a href=https://www.flickr.com/photos/63401575@N02/10106499856/img alt=svettes holding a tray of fruit and cookies data-entity-type=file data-entity-uuid=ba98fb9a-60ce-4597-a90c-12e677eb3470 src=/sites/default/files/inline-images/svettes.jpg //a/h3 pemsmallProject manager a href=https://www.drupal.org/u/svettessvettes/a helped run all of the official Drupal 8 initiatives. She is not referenced in the Drupal 8 commit log. a href=https://www.flickr.com/photos/63401575@N02/10106499856/Photo credit: xjm/a/small/em/p h3 id=fund-morestrongMake it easier to sponsor contribution, and fund more contribution more diversely/strong/h3 pSustainable funding for Drupal core has been a topic of discussion throughout Drupal 8 development. a href=https://amsterdam2014.drupal.org/keynote-dries-buytaertDries' DrupalCon Amsterdam keynote/a explores social theory and research related to how we sustain open source projects, and the a href=https://amsterdam2014.drupal.org/session/funding-drupal-corecore conversation on funding Drupal core/a from the same event discusses specifics for funding core in the near term./p pIn December, the Drupal Association announced the a href=https://assoc.drupal.org/d8accelerateDrupal 8 Accelerate/a program to help fund critical work on Drupal 8. The fund makes it possible for independent contributors to receive grants for work that brings Drupal 8 closer to release. You can contribute to the fund financially by becoming a Drupal Association a href=https://assoc.drupal.org/membershipmember/a or a href=https://www.drupal.org/supporterspartner/a, or contact the Drupal Association about donating directly at a href=mailto:accelerategrants@association.drupal.orgaccelerategrants@association.drupal.org/a. Or, if you have an idea on how funding could help speed Drupal 8's release, a href=https://assoc.drupal.org/d8accelerateread the program details and apply for a grant/a./p pa href=https://www.flickr.com/photos/63401575@N02/15843213188/img alt=yched, Wim Leers, and pfrenssen at a sprint, wearing bunny ears data-entity-type=file data-entity-uuid=f271cc1f-a905-4166-ae02-2cd391db432f src=/sites/default/files/inline-images/ghent.jpg //a/p pemsmalla href=https://www.drupal.org/u/ychedyched/a, a href=https://www.drupal.org/u/Wim-LeersWim Leers/a, and a href=https://www.drupal.org/u/pfrenssenpfrenssen/a sprint on critical issues in Ghent. The a href=https://groups.drupal.org/node/453798Ghent critical issue sprint/a was funded by a grant from the Drupal Association. a href=https://www.flickr.com/photos/63401575@N02/15843213188/Photo credit: xjm/a./small/em/p pFor information on how organizations can invest in contribution through their employees, read YesCT's thorough article on a href=http://www.blackmesh.com/blog/strategies-businesses-investing-drupal-8-through-giving-their-employees-drupal-contributionstrategies for businesses to invest in Drupal 8/a. If you are a business owner, you might even consider whether you could join with Acquia, a href=http://chapterthree.com/blog/joining-chapter-threeChapter Three/a, a href=https://pantheon.io/blog/open-source-open-strategy-announcing-greg-and-katePantheon/a, a href=http://www.blackmesh.com/BlackMesh/a, and other companies in employing full-time open source contributors./p pFinally, the a href=https://gratipay.com/DrupalCoreGittipTeam/Drupal Core Gratipay Team/a exists to help fund regular contributors who are not paid for core work./p h3 id=employment-practicesstrongAdopt employment practices to make contribution both fair and feasible/strong/h3 pa href=http://www.ashedryden.com/blog/the-ethics-of-unpaid-labor-and-the-oss-communityAshe's article/a (referenced already above) has lots of great recommendatons on fair employment practices that enable contribution./p h3 id=transparent-decisionsstrongBe transparent about governance and decision-making/strong/h3 figure class=caption caption-img align-rightimg alt=Flowchart of allowed changes during the D8 beta. data-entity-type=file data-entity-uuid=80f170b0-380e-478d-ad1a-26632c84f425 src=/sites/default/files/inline-images/allowed_d8_beta_changes_thumbnail.png /figcaptionFlowchart for a href=https://www.drupal.org/core/beta-changesallowed changes during the Drupal 8 beta/a./figcaption/figurepWhen the Drupal community was smaller, we didn't have the same need for formal structures for decision-making, because most core developers knew each other. That is no longer feasible; contributors shouldn't need to know someone to get something done. As our community grows, transparency is essential./p pI was not involved during the development of Drupal 7, so I don't have firsthand experience of how the community responded to these challenges before 2011. Nonetheless, I think we've made a lot of progress in Drupal 8. For example, the introduction of the a href=https://www.drupal.org/governanceWorking Groups/a emimproved/em the transparency of community decision-making. We've added the a href=http://drupal.org/core-gatescore gates/a, a href=https://www.drupal.org/issue-summariesissue summaries/a, a href=https://groups.drupal.org/core/updatesDrupal Core Updates/a, and a href=https://www.drupal.org/core/beta-changesbeta evaluation criteria/a all to make core development and patch acceptance more transparent. Branch maintainers now also collaborate to give quicker feedback on issues, including regular triage of a href=https://www.drupal.org/core/issue-priority#criticalcriticals/a so the community has accurate information on what is blocking Drupal 8's release./p pNone of these changes have completely resolved transparency problems around core development, and some of them have been rocky, especially at first. It's a struggle to scale core development without adding unneeded overhead. Our next challenge is definiting the roles of core component, topic, and branch maintainers more clearly./p h3 id=transparent-fundingstrongBe transparent about volunteer and paid contribution/strong/h3 pFinally, for all the reasons in this post, transparency about both volunteer and paid contribution is essential. The most important step is the work to a href=https://www.drupal.org/node/2288727provide credit on Drupal.org for organizations sponsoring development/a. This change will simultaneously provide fairer credit to emall/em organizations--not just those employing full-time developers--and clarify what contributions are funded versus contributed by volunteers./p pI'm glad Acquia invests directly in Drupal 8 core contribution the way that it does. After all, the fact that I'm getting paid to contribute full time is awesome and the entire reason I work for Acquia in the first place. I also think we need to talk more about all the emother/em organizations that contribute in significant ways, and most especially the individuals who do. I still recognize that we are all prone to conflict of interest, and it's crucial that we maintain and expand Drupal's diversity to provide balance. Accurately representing the current diversity of contribution is the first step./p pemThanks to YesCT, effulgentsia, catch, and alexpott for contributing to this post. All data are from March 1, 2015./em/p pemFeedback? a href=https://www.drupal.org/user/65776/contactContact me on Drupal.org/a. /em/p /div /div /div div data-quickedit-field-id=node/21/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/26 property=schema:aboutDrupal core/a/li lia href=/taxonomy/term/31 property=schema:aboutDrupal community/a/li lia href=/taxonomy/term/1 property=schema:aboutDrupal 8/a/li lia href=/taxonomy/term/6 property=schema:aboutDrupal Planet/a/li lia href=/taxonomy/term/41 property=schema:aboutmetrics/a/li lia href=/taxonomy/term/11 property=schema:aboutAcquia/a/li /ul /div section rel=schema:comment data-quickedit-field-id=node/21/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/contribution-influence-drupal-8%23comment-formLog in/a to post comments/li/ul

Drupal core announcements: This month in Drupal documentation (February 2015)

Mon, 03/09/2015 - 22:09
pHere's an update from the a href=https://drupal.org/governance/doc-working-groupDocumentation Working Group (DocWG)/a on what has been happening in Drupal Documentation in the last month or so. Because this is posted in the Core group as well as Documentation you can not comment on this post. If you have comments or suggestions, please see the a href=https://drupal.org/governance/doc-working-groupDocWG home page/a for how to contact us./p h3Notable Documentation Updates/h3 pMost of the hook_help texts for the Drupal 8 core modules have been finished, but there are still a few that some review. If you can help, hop over to a href=https://www.drupal.org/node/1908570 title=https://www.drupal.org/node/1908570https://www.drupal.org/node/1908570/a to find the remaining issues. Most of these help texts need to a review because they have been written over a course of two years and Drupal 8 has evolved since then. If you want to help reviewing them, check a href=https://www.drupal.org/node/2283477 title=https://www.drupal.org/node/2283477https://www.drupal.org/node/2283477/a./p h3Thanks for doocumenting/h3 pFebruary 2015 was a extraordinary productive documentation month with 245 people revising and writing more than 1000 pages. The most active editors were:/p ul li class=firsta href=https://www.drupal.org/u/pierre.vriens title=View user profile. data-uid=1689304 class=usernamePierre.Vriens/a (288 revisions)/li lia href=https://www.drupal.org/u/hongpong title=View user profile. data-uid=60005 class=usernameHongPong/a (47 revisions)/li lia href=https://www.drupal.org/u/sidharrell title=View user profile. data-uid=3133635 class=usernamesidharrell/a (32 revisions)/li lia href=https://www.drupal.org/u/spleshka title=View user profile. data-uid=810676 class=usernameSpleshka/a (27 revisions)/li lia href=https://www.drupal.org/u/gisle title=View user profile. data-uid=409554 class=usernamegisle/a (21 revisions)/li lia href=https://www.drupal.org/u/nonprofit title=View user profile. data-uid=148995 class=usernameNonProfit/a (18 revisions)/li lia href=https://www.drupal.org/u/ryan-weal title=View user profile. data-uid=412402 class=usernameRyan Weal/a (16 revisions)/li lia href=https://www.drupal.org/u/lolandese title=View user profile. data-uid=210402 class=usernamelolandese/a (15 revisions)/li lia href=https://www.drupal.org/u/cs_shadow title=View user profile. data-uid=2828287 class=usernamecs_shadow/a (14 revisions)/li lia href=https://www.drupal.org/u/webchick title=View user profile. data-uid=24967 class=usernamewebchick/a (14 revisions)/li lia href=https://www.drupal.org/u/benjy title=View user profile. data-uid=1852732 class=usernamebenjy/a (13 revisions)/li lia href=https://www.drupal.org/u/lshey title=View user profile. data-uid=2799359 class=usernamelshey/a (12 revisions)/li lia href=https://www.drupal.org/u/tvn title=View user profile. data-uid=999848 class=usernametvn/a (11 revisions)/li lia href=https://www.drupal.org/u/colan title=View user profile. data-uid=58704 class=usernamecolan/a (10 revisions)/li lia href=https://www.drupal.org/u/iampuma title=View user profile. data-uid=2529238 class=usernameiampuma/a (10 revisions)/li lia href=https://www.drupal.org/u/juankvillegas title=View user profile. data-uid=568110 class=usernamejuankvillegas/a (10 revisions)/li lia href=https://www.drupal.org/u/jhodgdon title=View user profile. data-uid=155601 class=usernamejhodgdon/a (9 revisions)/li /ul pMany thanks go out to everyone that helped improving Drupal's on line documentation./p h3Documentation Priorities/h3 pThe a href=https://www.drupal.org/documentation/prioritiesCurrent documentation priorities page/a is always a good place to look to figure out what to work on, and has been updated recently./p pThe two meta issues to a href=https://www.drupal.org/node/1908570update/a and a href=https://www.drupal.org/node/2283477review/a of help texts currently have a high priority: Not only do we need them for a good user experience of Drupal 8, they also need to be translated once they are ready.br / Working on them is also a good way to find out already how Drupal 8 will work for site builders and site administrators./p pIf you're new to contributing to documentation, these projects may seem a bit overwhelming -- so why not try out a a href=https://drupal.org/contributor-tasks/writersNew contributor task/a to get started?/p h3Upcoming Events/h3 ul li a href=http://montpellier2015.drupaldays.org/ title=http://montpellier2015.drupaldays.org/http://montpellier2015.drupaldays.org//a - Drupal Dev Days, Montpellier (France), 14-18 April 2015 /lili a href=http://frontendunited.org/ title=http://frontendunited.org/http://frontendunited.org//a - Frontend United, Bristol (UK), 5-7 June /lili a href=https://events.drupal.org/losangeles2015 title=https://events.drupal.org/losangeles2015https://events.drupal.org/losangeles2015/a - DrupalCon Los Angeles, 11-15 May /li/ul h3Report from the Working Group/h3 pIn February, we met with the Drupal Association's Joshua and Tatiana who presented us the ideas for the future of on line documentation on drupal.org. It seems that in the future we will be able to use several different types of documentation on drupal.org, most noticeably we will be able to have documentation that is much tighter integrated with contributed modules and themes. We were able to give useful feedback on the DA's plans and some of our long wished improvements, as outlined in a href=https://www.drupal.org/governance/docwg-goals title=https://www.drupal.org/governance/docwg-goalshttps://www.drupal.org/governance/docwg-goals/a seem to be going to be realised. Despite that, some of our requests have not been met yet and some doubts remain over the implementation of the DA's plans./p

Four Kitchens: The Great Consolidation - ew.com migration case study presentation

Mon, 03/09/2015 - 20:37
div class=field-body pAt 1am Pacific on January 29th, 2015, Entertainment Weekly quietly switched to Drupal 7. Ten WordPress span class=capsVIP/span blogs and a monolithic Vignette V6 Content Suite were deprecated. Over a half million articles and images were migrated to a new design and modern publishing platform, and Four Kitchens led thenbsp;development./p pOn February 27th, 2015, three of the web chefs on the project presented a migration case study to a full room at span class=capsSAND/spancamp 2015. Myself, Matt and Patrick fielded questions about the project. While no recording was available, I’d like to share the presentation withnbsp;you./p /div div class=field-blog-categories-term-tree a href=/topics/projects typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Projects/a /div div class=field-blog-categories-term-tree a href=/topics/development typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Development/a /div div class=field-blog-categories-term-tree a href=/topics/drupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal/a /div div class=field-blog-categories-term-tree a href=/topics/events typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Events/a /div

Drupal Association News: Voting is Open for the 2015 At-Large Board Elections

Mon, 03/09/2015 - 16:13
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpimg alt= src=https://assoc.drupal.org/files/7157055718_4bc129954f_m.jpg style=width: 240px; height: 188px; border-width: 0px; border-style: solid; margin: 10px; float: left; /Voting is now open for the 2015 At-Large Board positions for the Drupal Association! If you haven't yet, check out the a href=https://assoc.drupal.org/election/8/candidatescandidate profiles/a and review thea href=https://assoc.drupal.org/election/8/candidates Meet the Candidate sessions/a (we ran three) that we held. Get to know your candidates, and then get ready vote./p h3 a href=https://assoc.drupal.org/2015-voting-openCast Your Vote! /a/h3 pHow does voting work? Voting is open to all individuals who have a Drupal.org account by the time nominations open and who have logged in at least once in the past year. These individuals' accounts will be added to the voters list on association.drupal.org and they will have access to the voting./p pTo vote, you will rank candidates in order of your preference (1st, 2nd, 3rd, etc.). The results will be calculated using an instant runoff method. For an accessible explanation of how instant runoff vote tabulation works, a href=https://www.youtube.com/watch?v=wA3_t-08Vr0amp;feature=relatedsee the this video/a./p pElections will be held from 9 March through 20 March (midnight UTC) 2015. During this period, you can still review and comment on a href=https://assoc.drupal.org/election/8/candidatescandidate profiles/a./p pHave questions? Contact Drupal Association Executive Director a href=mailto:holly@association.drupal.orgHolly Ross/a./p /div/div/div

Wuinfo: Easy Way Out Before Lost inside Views Maze

Mon, 03/09/2015 - 13:30
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpAs I have talked in my previous blog about a href=/blog/how-import-large-number-nodes-or-other-entitiesimporting large quantity of node without feeds module/a. Today, I will show you how to build complicated block views without using views module./p pDid you have ever faced the situation that views can not solve the problem? I have a unique request from my client a href=http://www.wview.com/http://www.wview.com//a this week. We need to have a related video block for video node page. There are three levels of sorting. First show the episode videos from the same series. Then show the videos having same tag. At last, show the rest of the videos that are not in the same series and have no tags in common. What are those three requirements really means? We need to sort all video nodes according to current node's taxonomy tags. So, views block is not the solution since we select all the nodes. Even though, views is one of the most used modules among Drupal websites; it is not a medicine for everything. As a rule of thumb, if any problem can not solved by one SQL query, then we should look for a solution in other places. The problem we are solving is related to complicated sorting that views can not do it. It is one of the case./p pIt took me and another Drupal developer all most two days to make a view on it. We can not find a good way to sort them. In the end, we give up views and decide to make a custom module for it. Within couple hours, a customized block was built. I found that a custom block was easier to build. It is more efficient than the views block. Here I would like to show you how does it work./p pThere are three parts of the module. First, get a list of the nodes. Second, render the list of the nodes. Third part is using the ajax framework to add the load more button. /p pMost difficult part of the module is to get the list of the nodes. Since all the request of 3 levels of sort are all done with the list of nodes. It is where views is not able to accomplish it. But it is more related to the business logic. Different project may face different logic. There is one thing I want to mention on this part. We need to be careful when build query. We are adding more and more videos to the website. Try to avoid loading too many videos into memory will be the key point to make sure the system will running smoothly after the site grow big. Check blog a href=/blog/design-drupal-website-million-nodes-mindbuild website with a million nodes/a for more detail on it./p pHere are the codes for the rest of 2 parts./p pRender the list of nodes into a block. We use node teaser displays for each node in the block. /p div class=codeblockcode/*br / * Render the list of nodes into HTML.br / */br /function related_videos_render_json($count = 7, $position = 0, $cur_nid = 0) {br /  $nodes = related_videos_get_list($count, $position, $cur_nid);br /  $nid = array();br /  foreach ($nodes as $key =gt; $node) {br /    $nids[] = $node-gt;nid;br /  }br /  if (!empty($nids)) {br /    if ($count gt; count($nids)) {br /      $count = 0;br /    }br /    $nodes = node_load_multiple($nids);br /    $build = node_view_multiple($nodes);br /    if ($count != 0) {br /      $build['loadmore'] = array(br /        '#prefix' =gt; 'lt;ul id=related_videos_link class=load-moregt;lt;ligt;',br /        '#suffix' =gt; 'lt;/ligt;lt;/ulgt;',br /        '#type' =gt; 'link',br /        '#title' =gt; 'Load More',br /        '#href' =gt; 'related_videos/nojs/' . $count . '/' . ($position + $count) . '/' . $cur_nid,br /        '#id' =gt; 'videos_ajax_link',br /        '#options' =gt; array('attributes' =gt; array('class' =gt; array('use-ajax'))),br /        '#ajax' =gt; array(br /          'wrapper' =gt; 'related_videos_link',br /          'method' =gt; 'json',br /        ),br /      );br /    }br /  }br /  else {br /    $build['no_content'] = array(br /      '#prefix' =gt; 'lt;pgt;',br /      '#markup' =gt; t('There is currently no content.'),br /      '#suffix' =gt; 'lt;/pgt;',br /    );br /  }br /  return render($build);br /}/code/div pThe function related_videos_get_list($count, $position, $cur_nid) is to get the list of node where we put our node sorting logic there./p pThen we use two block hooks to create a block for the list of video./p div class=codeblockcode/**br / * Implements hook_block_info().br / */br /function related_videos_block_info() {br /  $blocks['related_videos_block'] = array(br /    'info'    =gt; t('Related videos block'),br /    'cache' =gt; DRUPAL_NO_CACHE,br /  );br /  return $blocks;br /} p/**br / * Implements hook_block_view().br / */br /function related_videos_block_view($delta = '') {br /  switch ($delta) {br /    case 'related_videos_block':br /      $cur = related_videos_current_node();br /      drupal_add_library('system', 'drupal.ajax');br /      $block['subject'] = t(Related Videos);br /      $block['content'] = 'lt;section class=col-xs-12 col-sm-8 wv-contnet video-related-wrappergt;lt;h2gt;Related Videoslt;/h2gt;';br /      $block['content'] .= related_videos_render_json(7, 0, $cur-gt;nid);br /      $block['content'] .= 'lt;/sectiongt;';br /      break;br /  }br /  return $block;br /}/p/code/div pSo, now we have a block can be assign to anywhere with Drupal block system, panel or context module./p pThe last part is to use Drupal Ajax framework to add a load more button. We load more videos without reload the page./p pFirst, implements the hook_menu to define the callback link for ajax request./p div class=codeblockcode/**br / * Implements hook_menu().br / */br /function related_videos_menu() {br /  $items = array();br /  $items['related_videos/ajax'] = array(br /    'page callback' =gt; 'related_videos_ajax',br /    'access callback' =gt; 'user_access',br /    'delivery callback' =gt; 'ajax_deliver',br /    'access arguments' =gt; array('access content'),br /    'type' =gt; MENU_CALLBACK,br /  );br /  $items['related_videos/nojs'] = array(br /    'page callback' =gt; 'related_videos_nojs',br /    'access callback' =gt; 'user_access',br /    'access arguments' =gt; array('access content'),br /    'type' =gt; MENU_CALLBACK,br /  );br /  return $items;br /}/code/div pThe second menu item items['related_videos/nojs'] is for the fall back of browser have javascript disabled. For more detail, check a href=https://api.drupal.org/api/drupaAPIncludes%21ajax.inc/group/ajax/7Ajax framework document/a./p pThen we build the callback function related_videos_ajax. We use the callback function in the implementation of hook_menu./p div class=codeblockcode/**br / * Ajax callback for related videos content.br / */br /function related_videos_ajax($count, $position, $cur) {br /  $data = related_videos_render_json($count, $position, $cur);br /  $commands = array(); p  $commands[] = ajax_command_replace('#related_videos_ajax_link', $data);br /  $page = array('#type' =gt; 'ajax', '#commands' =gt; $commands);br /  return $page;br /}/p/code/div pThe function related_videos_render_json is the function we used to render the HTML. We use the same function for the initial block content. Here, we got the HTML of the list of the node and delivered to the browser in JSON format for the load more button. The parameters $count, $position, $cur was passed in from the URL. The URL of the load more link is defined by the related_videos_render_json function./p pThose three parts formed a custom block display a uniquely ordered video nodes. Use the powerful Drupal theme function and Ajax framework, it is easy to build a block like this./p /div/div/div

Josh Taylor: Automatically testing contrib modules when 8.0.x updates

Mon, 03/09/2015 - 13:16
pMany 8.0.x contrib modules are being developed on Github, due to the flexibility it offers whilst 8.0.x is being developed./p pAs the complexity of 8.0.x has grown, needing to test modules using Continuous Integration (CI) is critical. Drupal.org offers CI for modules, but we need custom steps each build./p pFor example, to build a href=http://github.com/commerceguys/commercecommerce 2.x/a the following steps are required:/p ol lidrush si #8211;db-url=mysql://root:@127.0.0.1/drupal #8211;account-name=admin #8211;account-pass=admin #8211;site-mail=admin@example.com #8211;site-name=#8221;Commerce#8221; #8211;yes/li lidrush en -y composer_manager simpletest/li lidrush composer-manager-init/li licd core/li lirm -rf vendor/li licomposer drupal-rebuild/li licomposer update #8211;prefer-source -n #8211;verbose/li licd ../li lidrush en -y commerce commerce_product commerce_order/li liphp core/scripts/run-tests.sh #8211;verbose #8211;color #8211;concurrency 4 #8211;php `which php` #8211;url http://localhost #8220;commerce#8221; | tee /tmp/test.txt; TEST_EXIT=${PIPESTATUS[0]}; echo $TEST_EXIT/li /ol pAs you can see, quite a few commands are needed. For the full command list, check out the a href=https://github.com/commerceguys/commerce/blob/8.x-2.x/.travis.yml.travis.yml/a file commerce uses./p h2Travis/h2 pSo what exactly is Travis? Well, wikipedia says:/p pTravis CI is an open-source hosted, distributed continuous integration service used to build and test projects hosted at GitHub. Travis CI is configured by adding a file named .travis.yml, which is a YAML format text file, to the root directory of the GitHub repository./p pSimilar to Drupal.org, everytime a new Pull Request is added on Drupal.org, it is tested against Travis to make sure everything passes./p pThis is all fine and dandy, but what happens whenever 8.0.x updates? 8.0.x can update many times a day thanks to the tireless work of the contributors and core committers, and change records come in thick and fast with breaking changes often happening./p pTravis doesn#8217;t offer a feature to do new builds via API out of the box unfortunately, however there is a script called a href=https://github.com/neoascetic/travis-cron#8220;travis-cron#8221;/a which is a shell command to trigger rebuilding the latest build of a certain branch, so I use this to rebuild the 8.x-2.x branch of Drupal Commerce, as only merges are done on this branch./p pTo get this to work, I use an opensource tool called a href=https://github.com/cantino/huginnHuginn/a, which is very similar to IFTTT. IFTTT basically means #8220;If this, than that#8221;, so you can perform an action whenever something happens./p pI use Huginn for this, because IFTTT doesn#8217;t have Webhooks yet, and I also need to run a bash command anyway, so hosting on a small VPS ($5/month) is worthwhile./p pThe first thing we want to do is enable the RSS agent, which will allow us to know whenever core has updated. This can be found as a link on the a href=https://drupal.org/node/3060/commitsCore Commits page/a, with the direct RSS link being a href=https://www.drupal.org/node/3060/commits/feedhere/a./p pTo create a new RSS agent in Huginn, click #8220;Agents -gt; New Agent#8221;br / a href=http://joshtaylor.id.au/wp-content/uploads/2015/03/Selection_009.pngimg class=alignnone size-full wp-image-188 src=//joshtaylor.id.au/wp-content/uploads/2015/03/Selection_009.png alt=Selection_009 width=547 height=140 //a/p pFrom here, you can add all the settings you need, such as the URL to parse, how often to check the RSS feed (I have mine set to every 5 minutes)br / a href=http://joshtaylor.id.au/wp-content/uploads/2015/03/Selection_010.pngimg src=//joshtaylor.id.au/wp-content/uploads/2015/03/Selection_010.png alt=Selection_010 width=1154 height=634 class=alignnone size-full wp-image-189 //a/p pAfter this is done, we need to setup another Agent, that will react on whenever a feed item is added. Since we want to react on all feed changes, not just certain items, this is easy to do, just adding a ShellCommandAgent will do the trick. You can use #8220;travis-cron#8221; to do this, reacting on the #8220;Drupal Core Updates#8221; RSS item.br / a href=http://joshtaylor.id.au/wp-content/uploads/2015/03/Selection_011.pngimg src=//joshtaylor.id.au/wp-content/uploads/2015/03/Selection_011.png alt=Selection_011 width=1148 height=772 class=alignnone size-full wp-image-190 //a/p pNow whenever core has updated, travis-ci will rebuild the branch you have chosen with travis-cron!br / a href=http://joshtaylor.id.au/wp-content/uploads/2015/03/Selection_012.pngimg src=//joshtaylor.id.au/wp-content/uploads/2015/03/Selection_012.png alt=Selection_012 width=1105 height=477 class=alignnone size-full wp-image-192 //a/p

Liran Tal's Enginx: Apache Obfuscation by disabling trace and server tokens

Mon, 03/09/2015 - 07:40
pApache Obfuscation can be achieved very easily and the benefits are great #8211; it doesn#8217;t disclose server information such as versions, OS, and does output verbose errors when #8216;bad things happen#8217;, and they happen./p pa href=http://enginx.com/wp-content/uploads/2015/03/2870445260_82be0db1db_z.jpgimg class=aligncenter wp-image-584 src=http://enginx.com/wp-content/uploads/2015/03/2870445260_82be0db1db_z.jpg alt=2870445260_82be0db1db_z width=419 height=250 //a/p pEdit apache configuration, usually available here for RedHat based distributions: code/etc/httpd/conf/httpd.conf/code/p pMake sure the following settings are present, save, and restart apache:/p pcodeTraceEnable Offbr / ServerSignature Offbr / ServerTokens Prod/codebr / How do we test that this is actually working?/p pstrongHow to TraceEnable/strong:br / 1. curl -v -X TRACE http://#8230;br / 2. Confirm you get a forbidden response/p pstrongHow test ServerTokens/strong:br / 1. Make a request to the website and check the response headersbr / 2. Confirm the response contains only #8220;Apache#8221; information in the Server header/p pstrongHow to test ServerSignature/strong:br / 1. Make a request to the website for a URL that should respond with Apache server errorbr / 2. Confirm you don#8217;t see information about the apache server software version, OS, etc./p pnbsp;/p !-- Easy AdSense V7.43 -- !-- [leadout: 1 urCount: 1 urMax: 0] -- div class=ezAdsense adsense adsense-leadout style=text-align:center;margin:12px; script async src=//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js/script !-- enginx-blog-wide-post -- ins class=adsbygoogle style=display:inline-block;width:728px;height:90px data-ad-client=ca-pub-9677997565991773 data-ad-slot=6746030703/ins script (adsbygoogle = window.adsbygoogle || []).push({}); /script/div !-- Easy AdSense V7.43 -- pThe post a rel=nofollow href=http://enginx.com/blog/apache-obfuscation-disabling-trace-server-tokens/Apache Obfuscation by disabling trace and server tokens/a appeared first on a rel=nofollow href=http://enginx.comLiran Tal#039;s Enginx/a./p

ardihundt.com: How we built a Drupal distribution for the Estonian Government, part 2 – functionality highlights

Sun, 03/08/2015 - 20:42
pA while back I wrote the a href=http://ardihundt.com/2014/01/26/estonian-government-drupal-distribution-part1-why/Part I/a of how we built the Estonian Government web platform. I had all the intentions to quickly follow that up with Part 2 and 3, but as always, things got busy. The good news is, however, that all the sites are now live for several months and I can use live examples to illustrate my text here./p pPart II is about some of the functionality we built and the technical solutions used for it. The development phase lasted throughout the second half of 2013 and first months of 2014 #8211; 7 months of development means a lot of different stuff was built. Instead of trying to cover it all, I will try to focus on the parts that I feel characterize this project the best./p pspan id=more-106/span/p pI already wrote about how we a href=http://ardihundt.com/2013/09/15/filtered-google-site-search-for-drupal/implemented the Google Site Search for the Government platform/a, which definitely was one of the big and complex parts of the project. But yet another big one was#8230;/p h2 class=westernIntegration with centralized state personnel database/h2 pEstonian Government is keeping the contact information of its employees – that is, the ministers, officials, department personnel, etc. #8211; in a unified information system, based on a href=http://en.wikipedia.org/wiki/SAP_SESAP/a technologies. That is a good thing, as theoretically only a single integration is needed to show the public contact details of those people on the Government web platform sites. There was a lot of value there – over the 14 sites, that#8217;s thousands of people, whose contact details, positions and careers within their organizations are in constant change, and keeping that information up to date would be a huge task for a lot of web editors. Instead, we were aiming to get all that data from internal systems, where it was kept up to date anyway./p pBut there were problems:/p ol liDifferent organizations had different hierarchies #8211; ie., Government Office had two levels of departments, while the Ministry of Economics had 4 levels./li liThe SAP database did not contain or could not export all the information that was required to be displayed in the web./li liDifferent Ministries had slightly different practices about how they stored the contact information in the data fields, so there were a lot of exceptions of what could be directly presented to the public and what needed manual sanitation to get a more or less unified picture across all the Ministries./li /ol div id=attachment_126 style=width: 200px class=wp-caption alignrighta href=https://ardihundt.files.wordpress.com/2015/03/screen-shot-2015-03-08-at-19-06-49.pngimg class=wp-image-126 size-medium src=https://ardihundt.files.wordpress.com/2015/03/screen-shot-2015-03-08-at-19-06-49.png?w=190#038;h=300 alt=Screen Shot 2015-03-08 at 19.06.49 width=190 height=300 //ap class=wp-caption-textThe field lock checkboxes on Contact node edit page/p/div pIt was clear quite fast that there were too many exceptions and some of those could not be predicted with 100% accuracy. So we needed some sort of a combination of having 95% of contacts automatically imported, but having the possibility to manually override – and making sure that manual work can be switched back to automatic or vice versa if needed./p pThe technical solution was to build a #8220;field lock#8221; functionality. A Feeds import made a daily automatic import that created or updated Contact nodes. Each node contained about 10 different fields of data for a person, such as Name, Position, Department, Education etc. If any of those fields needed manual adjustments, the editor could do so, and then use a special checkbox for that field to lock it from automatic overrides – so that when the next automatic import happened the next day, that field was not overwritten. If the data was later corrected in the backend SAP system, the lock could be removed and Feeds would resume writing into that field./p pExamples of the views displaying those semi-automatic Contacts can be seen a href=https://www.mkm.ee/en/contacthere/a and a href=https://riigikantselei.ee/en/contacthere/a./p h2WYSIWYG content templates/h2 pGovernment sites contain a lot of content, and it can get quite overwhelming for a visitor who needs to go through and get a sense of several topics fast. So the Government Office wanted each content page to be something more than just a wall of text, to have more structure, sections, visual data and differentiation. We needed a tool that would help content editors craft pages like that themselves, without having to learn HTML and CSS for many months./p pSo we used the a href=https://www.drupal.org/project/wysiwyg_template target=_blankWysiwyg API template plugin/a module to add a template selector functionality for CKEditor. Our frontend wizard a href=http://www.wunderkraut.com/people/hannes-kirsman target=_blankHannes/a pre-baked some 10-15 nice content templates, and content editors only had to select the correct one from a popup, replace the dummy text, and enjoy a professional-looking, rich content experience. Content templates were WCAG 2.0 AA level compatible, fully responsive, and could even be used inside one another./p div id=attachment_131 style=width: 510px class=wp-caption alignnonea href=https://ardihundt.files.wordpress.com/2015/03/screen-shot-2015-03-08-at-20-00-17.pngimg class=wp-image-131 src=https://ardihundt.files.wordpress.com/2015/03/screen-shot-2015-03-08-at-20-00-17.png?w=500#038;h=274 alt=Screen Shot 2015-03-08 at 20.00.17 width=500 height=274 //ap class=wp-caption-textTemplate selector popup within CKEditor/p/div pnbsp;/p pHere are some examples of pages (in beautiful Estonian) made by content editors who probably didn#8217;t have to write a single line of CSS: a href=https://www.mkm.ee/et/tegevused-eesmargid/energeetika target=_blankMinistry of Economic Affairs and Communications is writing about energetics/a, a href=http://www.kul.ee/et/tegevused/valisvahendid target=_blankMinistry of Culture describes how they use foreign resources/a, a href=https://riigikantselei.ee/et/valitsuse-toetamine/euroopa-liit/eesti-eesistumine-2018 target=_blankGovernment Office introduces Estonian Presidency of the Council/abr / a href=https://riigikantselei.ee/et/valitsuse-toetamine/euroopa-liit/eesti-eesistumine-2018 target=_blankof the European Union 2018/a./p h2Aggregating content between the sites/h2 pOne goal of the Government platform was to unify the content across different Ministries. This included several behind-the-scenes processes, but also a technical solution to aggregate content across different sites into one central source./p pEach Ministry had their own page for a href=http://www.agri.ee/en/news target=_blanknews/a, a href=http://www.envir.ee/et/eelinfo target=_blankweekly schedule/a, and a href=http://www.hm.ee/en/contact target=_blankcontacts/a. These in turn had RSS feed outputs, like a href=http://www.envir.ee/et/weekly-schedule/feed target=_blankthis/a and a href=http://www.hm.ee/en/contact/feed target=_blankthis/a, which could be used for news readers, open data initiatives and other machine-reading purposes, and also for aggregation./p pThe central information source and aggregator was to be valitsus.ee (translated, government.ee), which was also running on the Government platform and didn#8217;t represent any physical institution emper se/em, but the government as a whole. So a href=https://valitsus.ee/en/weekly-schedule target=_blankweekly schedule/a, a href=https://valitsus.ee/en/news target=_blanknews/a, and a href=https://valitsus.ee/en/contact-search target=_blankcontact search/a pages on the valitsus.ee site would display content from all the Ministries, pulled in over RSS. You can see #8220;Source#8221; filters there, in case someone would need to focus on content from just a few of the Ministries./p pUnfortunately, the RSS export-import has not yet been configured for all the sites and therefore there is no active aggregation yet #8211; I#8217;m planning to write more about the woes of deploying 13 big sites and the importance of follow-up phases in Part 3 of this series./pbr / Tagged: a href='http://ardihundt.com/tag/case-study/'case study/a, a href='http://ardihundt.com/tag/drupal-7/'Drupal 7/a, a href='http://ardihundt.com/tag/integrations/'integrations/a, a href='http://ardihundt.com/tag/planet-drupal/'planet drupal/a a rel=nofollow href=http://feeds.wordpress.com/1.0/gocomments/ardihundt.wordpress.com/106/img alt= border=0 src=http://feeds.wordpress.com/1.0/comments/ardihundt.wordpress.com/106/ //a img alt= border=0 src=http://pixel.wp.com/b.gif?host=ardihundt.com#038;blog=57269041#038;post=106#038;subd=ardihundt#038;ref=#038;feed=1 width=1 height=1 /

Drupal for Government: 3d Printing Drupal Commerce Profile with Profiler Builder

Sun, 03/08/2015 - 17:33
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpWe're almost ready to release the a target=_blank rel=nofollow href=https://rpl.mae.virginia.eduhttps://rpl.mae.virginia.edu/a site - not all of the features are working right now - I'm having some trouble with conversions of STL files in to the correct units.. PITA, but the Rules module and a target=_blank rel=nofollow href=https://www.drupal.org/u/jpontaniJoe Pontani /ahave made the process a lot simpler = thanks Joe!  As part of the release we're putting the code up in github, and we're now using a target=_blank rel=nofollow href=https://www.drupal.org/project/profiler_builderProfiler Builder/a to facilitate distribution = thanks a target=_blank rel=nofollow href=https://www.drupal.org/u/btoprobtopro/a :)  we're also using it with the a target=_blank rel=nofollow href=https://github.com/alibama/cvillecouncilusCvillecouncil.us distribution/a... thanks for the feedback on github to improve this aspect of the work. a href=/file/profile-builder-1st-pageimg alt=Profile Builder 1st page title=Profile Builder 1st page class=media-element file-teaser typeof=foaf:Image src=https://www.cvillecouncil.us/sites/default/files/styles/medium/public/Screen%20Shot%202015-03-08%20at%2012.08.23%20PM.png?itok=ZOTtAgdW //a The first bit about profile builder is adding libraries, patches, and even the variable table to the profile./p/div/div/divspan property=dc:title content=3d Printing Drupal Commerce Profile with Profiler Builder class=rdf-meta element-hidden/span

Code Karate: Building a Dynamic display block with Minipanels

Sun, 03/08/2015 - 06:19
div class=field field-name-field-episode-number field-type-number-integer field-label-abovediv class=field-labelEpisode Number:nbsp;/divdiv class=field-itemsdiv class=field-item even196/div/div/divdiv class=field field-name-field-ddod-video field-type-file field-label-hiddendiv class=field-itemsdiv class=field-item evenimg src=http://codekarate.com/sites/default/files/styles/large/public/media-youtube/z9hichZzA9A.jpg?itok=zWKlMyG7 alt=Building a dynamic display block with Minipanels in Drupal 7 //div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpSometimes you need to display something dynamically based on the page the user is currently viewing. Sure you can accomplish some of this with blocks, or even just panels, but sometimes it's nice to have the best of both worlds. /p/div/div/divdiv class=field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-abovediv class=field-labelTags:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/category/tags/drupalDrupal/a/divdiv class=field-item odda href=/category/tags/drupal/contrib/panelsPanels/a/divdiv class=field-item evena href=/category/tags/drupal/drupal-7Drupal 7/a/divdiv class=field-item odda href=/category/tags/drupal/layout-toolsLayout Tools/a/divdiv class=field-item evena href=/category/tags/drupal/site-buildingSite Building/a/divdiv class=field-item odda href=/category/tags/drupal-planetDrupal Planet/a/div/div/div

valechatech: Tips to become a git administer at drupal.org

Sat, 03/07/2015 - 06:04
span style=font-family: Verdana, sans-serif;br //spanspan style=font-family: Verdana, sans-serif;Previously we read a href=http://blog.valechatech.com/2015/01/tips-to-be-webmaster-on-drupalorg.htmlhow to be a webmaster at drupal.org/anbsp;, Now/spanspan style=font-family: Verdana, sans-serif;nbsp;I became thenbsp;/spana href=https://www.drupal.org/node/2445643 style=font-family: Verdana, sans-serif; target=_blankgit administer/aspan style=font-family: Verdana, sans-serif;nbsp;at drupal.org/spanspan style=background-color: white; font-family: Verdana, sans-serif;span style=color: #333333;span style=line-height: 24.2857151031494px;. So I think to write a blog post so that others cannbsp;benefit and also get to know how to become git administer./span/span/spanbr /span style=background-color: white; font-family: Verdana, sans-serif;span style=color: #333333;span style=line-height: 24.2857151031494px;br //span/span/spanspan style=font-family: Verdana, sans-serif;span style=background-color: white; color: #333333; line-height: 24.2857151031494px;In simple words: Start Contributing. Git Administer privileges are granted to the users with proven record of contributions in the a href=https://www.drupal.org/project/issues/projectapplicationsProject Applications issue queue/a. A solid history of consistent contributions on drupal.org is a must to get consideration for an elevated role./span/spanbr /br /span style=font-family: Verdana, sans-serif;b style=color: #333333; line-height: 24.2857151031494px;How to start contributing/bspan style=background-color: white; color: #333333; line-height: 24.2857151031494px;nbsp;bamp; where you can contribute/bnbsp;:/span/spanbr /br /ollispan style=color: #333333; font-family: Verdana, sans-serif;span style=background-color: white; line-height: 24.2857151031494px;span style=color: #222222; line-height: normal;Join the a href=https://groups.drupal.org/code-reviewcode review group/a/span/span/span/lilispan style=color: #333333; font-family: Verdana, sans-serif;span style=background-color: white; line-height: 24.2857151031494px;span style=color: #222222; line-height: normal;Read a href=https://www.drupal.org/node/894256How to review full project applications/a/span/span/span/lilispan style=color: #222222; font-family: Verdana, sans-serif;span style=background-color: white;Some helpful tools for reviewing :/span/spanullispan style=color: #333333; font-family: Verdana, sans-serif;span style=background-color: white; line-height: 24.2857151031494px;span style=color: #222222; line-height: normal;a href=https://groups.drupal.org/node/427683Use the Review template/anbsp;it will cover all the things during the review./span/span/span/lilispan style=color: #333333; font-family: Verdana, sans-serif;span style=background-color: white; line-height: 24.2857151031494px;span style=color: #222222; line-height: normal;Automated Review tool/span/span/span/li/ul/lilispan style=color: #222222; font-family: Verdana, sans-serif;span style=background-color: white;Learning Sources :nbsp; /span/spanullispan style=color: #333333; font-family: Verdana, sans-serif;span style=background-color: white; line-height: 24.2857151031494px;span style=color: #222222; line-height: normal;See the project applications that have a href=https://www.drupal.org/project/issues/search?issue_tags=PAReview%3A%20securitySecurity issues/a/span/span/span/lilispan style=color: #333333; font-family: Verdana, sans-serif;span style=background-color: white; line-height: 24.2857151031494px;See the Reviews done by previous git administers a href=https://groups.drupal.org/node/413903mpdonadio/a, a href=https://groups.drupal.org/node/434943er.pushpinderrana/a, a href=https://groups.drupal.org/node/421748heddn/a or a href=https://groups.drupal.org/node/439043myself/a./span/span/li/ul/lilispan style=color: #222222; font-family: Verdana, sans-serif;span style=background-color: white;if you found any problem while contributing,just comment on the below post/ if you need immediate answernbsp;/span/spanspan style=background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 17.9999942779541px;you can try and find one of the a href=https://groups.drupal.org/node/142454git administer/a onnbsp;/spana href=https://www.drupal.org/irc style=background-color: white; border: 0px; box-sizing: border-box; color: #0678be; font-family: Verdana, sans-serif; font-stretch: inherit; line-height: 17.9999942779541px; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;IRC/aspan style=background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 17.9999942779541px;nbsp;- #drupal-codereview IRC channel on Freenode./span/li/oldivspan style=font-family: Verdana, sans-serif;span style=background-color: white; color: #222222; line-height: 17.9999942779541px;I would encourage you to learn more about that process and join thenbsp;/spana href=http://groups.drupal.org/code-review rel=nofollow style=background-color: white; border: 0px; box-sizing: border-box; color: #0678be; font-stretch: inherit; line-height: 17.9999942779541px; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;group of reviewers/aspan style=background-color: white; color: #222222; line-height: 17.9999942779541px;./span/span/divdivspan style=color: #222222; font-family: Verdana, sans-serif;span style=font-size: 12.8000001907349px;br //span/span/divspan style=color: #222222; font-family: Verdana, sans-serif;Next article: nbsp;A guide to review project applications/span

tanay.co.in: This is how India is sending its best Drupaler to Drupalcon LA 2015!

Sat, 03/07/2015 - 05:46
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenp dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;My colleague /spana href=https://twitter.com/nagwanizspan style=font-size: 15px; font-family: Arial; color: rgb(17, 85, 204); font-weight: bold; font-style: normal; font-variant: normal; text-decoration: underline; white-space: pre-wrap; background-color: transparent;Prafful Nagwani/span/aspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent; and I recently launched a crowdsourcing campaign to send one of India’s finest Drupal contributors - /spana href=https://www.drupal.org/u/piyuesh23span style=font-size: 15px; font-family: Arial; color: rgb(17, 85, 204); font-weight: bold; font-style: normal; font-variant: normal; text-decoration: underline; white-space: pre-wrap; background-color: transparent;Piyuesh Kumar/span/aspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent; - to /spana href=https://events.drupal.org/losangeles2015span style=font-size: 15px; font-family: Arial; color: rgb(17, 85, 204); font-weight: bold; font-style: normal; font-variant: normal; text-decoration: underline; white-space: pre-wrap; background-color: transparent;Drupalcon LA/span/aspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;, scheduled to happen in the second week of May 2015./span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify; /p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;img height=303px; src=/sites/default/files/cdn/2015/03/07/QXatYA0f4QQwYrygI8VistNHt1mXcYgFEw29BMVFLli9E9Uvzs8UVawEtG93L5RdtRQ6erjBX-4cM3Vdix-d1ZeVV5GXeSo8WSx2FeE69WUoeTJTpV-ASt73fSR_f-Z2Fg5RDSA style=border-style: none; transform: rotate(0rad); -webkit-transform: rotate(0rad); width=624px; //span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify; /p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Thanks to /spanspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-weight: bold; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Indiegogo/spanspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;, we were able to launch the campaign very quickly after the thought./span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cea href=https://www.indiegogo.com/projects/let-s-send-piyuesh-kumar-to-drupalcon-la-2015span style=font-size: 15px; font-family: Arial; color: rgb(17, 85, 204); font-style: normal; font-variant: normal; text-decoration: underline; white-space: pre-wrap; background-color: transparent;https://www.indiegogo.com/projects/let-s-send-piyuesh-kumar-to-drupalcon-la-2015/span/a/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;img height=365px; src=/sites/default/files/cdn/2015/03/07/w0kbZQhjt-sr-FnSQ5QQOSwj6w5z9zgx91M0pAuo_uZE-F_Br6reBBDU8Lv-_4f_ONAG696PZV703XXTpf54yPnj-0SbNIRSEWwo6Y2Ed6zZVuxeQ1xp2xw7Lw4mAcBtVu3Cyg0 style=border-style: none; transform: rotate(0rad); -webkit-transform: rotate(0rad); width=624px; //span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify; /p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Our initial estimate for the trip came to/spanspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-weight: bold; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent; ~$3500/spanspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;. /span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;img height=278px; src=/sites/default/files/cdn/2015/03/07/a-MGErVE9b8yg-LJYibbosQX29v1tXZryi4WlSa3YCgZEa9ZrxCrR6sfVFuY4Lh1e_BjrgxtqmMoGyg27hyCPp0S93u3P1GLxoukEjYm_TyuhWP6H5F1Zd9uwGzLBkgYg7zU0kw style=border-style: none; transform: rotate(0rad); -webkit-transform: rotate(0rad); width=447px; //span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify; /p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Thanks to /spana href=https://twitter.com/megansanickispan style=font-size: 15px; font-family: Arial; color: rgb(17, 85, 204); font-weight: bold; font-style: normal; font-variant: normal; text-decoration: underline; white-space: pre-wrap; background-color: transparent;Megan Sanicki/span/aspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-weight: bold; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent; /spanspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;and/spanspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-weight: bold; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent; /spana href=https://twitter.com/megansanickispan style=font-size: 15px; font-family: Arial; color: rgb(17, 85, 204); font-weight: bold; font-style: normal; font-variant: normal; text-decoration: underline; white-space: pre-wrap; background-color: transparent;Drupal Association/span/aspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;. We have now been promised a free Drupalcon ticket. So the estimated cost of travel came down to/spanspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-weight: bold; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent; $3000/spanspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;./span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify; /p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;One thing we did not consider initially when we estimated was the charge deducted by Indiegogo, which seems to come around to 10% of the total./span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;img height=268px; src=/sites/default/files/cdn/2015/03/07/1OqmpHNG6zRNrWd8b9FzL0NhnGxsJiIcfff5PWwPwCBe2wtmK_7Lddf8uJwoVURNmieO19RAO2e4_YUPleVgN75zjewLFvRbK2qPy-zqR1CXb0TvGywnMQyRWt-hKYD69nPPLaU style=border-style: none; transform: rotate(0rad); -webkit-transform: rotate(0rad); width=624px; //span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify; /p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;The campaign was fairly successful. We succeeded in raising $1892 of the estimated $3000 required.  So we clock a nice 63% on the target!/span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify; /p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;img height=273px; src=/sites/default/files/cdn/2015/03/07/m0pFJyI15i_YbS99H38g0h-3wxG7WeECtGt0qpQve6xVdn0V9itLSllzg_yvT5uMGSj8ShlzlJqRzUxaYBBHmmGgdiHyqvFLhhI7oRyEMfKr9IPCAPmqE9JUW0M1frQ-9PxTgyQ style=border-style: none; transform: rotate(0rad); -webkit-transform: rotate(0rad); width=460px; //span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify; /p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-weight: bold; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Thanks to all those who contributed. /span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify; /p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;img height=475px; src=/sites/default/files/cdn/2015/03/07/LOcf-0E_WQca9E8LGWGp9gqFm3ZshZ2O8onq9DMESYAuVgLY6XqaKgq5nTw2hVU0ytAGG0H1f-qmbjMXixDIbrljIr8XNxBkeUh0N2BU3cnzkINXSt8wt2wBTlUxBVX5DOLH3og style=border-style: none; transform: rotate(0rad); -webkit-transform: rotate(0rad); width=624px; //span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 11px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;(In random order. Pictures from taken from public profiles of the contributors. Anonymous contributions excluded. Some contributors could not be mapped to any public social profile by their name and hence might not appear on the collage above)/span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify; /p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;A Big Thanks to /spanspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-weight: bold; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Mike Lamb and Drupal Mumbai amp; Pune communities, /spanspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;for promoting and contributing to the event during the recent Drupal Camp Mumbai!/span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify; /p div dir=ltr style=margin-left:0pt; table style=border: none; colgroupcol width=312 /col width=366 //colgroup tbody tr style=height:0px td style=border-left-style: solid; border-color: rgb(0, 0, 0); border-top-style: solid; vertical-align: top; padding: 7px; p dir=ltr style=line-height:1.2;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;img height=257px; src=/sites/default/files/cdn/2015/03/07/j9g_vp28yzK-ix5SyMyAO_lIkbErgFZcVbI9OKdwThACm4JhdxnBQTZpgsaUZjMMvjWQ9_iO4XkvwGhvEqhLVbvI7BfOpWxm11Bp3ubBR8rfYUg_dHEqHzUG5sOPSIKVeBW9J1A style=border-style: none; transform: rotate(0rad); -webkit-transform: rotate(0rad); width=342px; //span/span/p p dir=ltr style=line-height:1.2;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;img height=197px; src=/sites/default/files/cdn/2015/03/07/44vfTB3cEYZ8HAmhm-FrXWTtjR5pka7G33VpdhcO5Nd7hMdBT1GdmdtZvZaxsrPOSV_eKMWz6zkkHN7A4bi08Dc3HixcfzN7yMfmoEG8z4fmvkSYF3m8z70rezciluwWaPcnF78 style=border-style: none; transform: rotate(0rad); -webkit-transform: rotate(0rad); width=295px; //span/span/p p dir=ltr style=line-height:1.2;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;img height=159px; src=/sites/default/files/cdn/2015/03/07/01VYbwoEAKYH60gV_1BYRQMED49lCqYmMJcyJiwE6npbyhAFTPXs4PItU73tELrQc-jxtQnEc4SoW6p5H-DYjfpDz-f9EC3lswBGx_l-nmEv5QcZhiFW7dCN7TZC-e_MJUx3sZ0 style=border-style: none; transform: rotate(0rad); -webkit-transform: rotate(0rad); width=297px; //span/span/p /td td style=border-left-style: solid; border-color: rgb(0, 0, 0); border-top-style: solid; vertical-align: top; padding: 7px; p dir=ltr style=line-height:1.2;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;img height=659px; src=/sites/default/files/cdn/2015/03/07/3ShU52urqrn97XqqnbFOgceXszV7bXbCvfgn7Y0jQjUKVBDUb0zrVfFWcS5VPG9vJ8a9O2ezzkjdEIYuLl1xuu7Y9kchtjcGtwB2QLzzszlSGrLEtn8346LczCYvAYbiCNxfmK0 style=border-style: none; transform: rotate(0rad); -webkit-transform: rotate(0rad); width=345px; //span/span/p /td /tr /tbody /table /div p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify;  /p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Thanks to /spanspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-weight: bold; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Megan, Rachel and Drupal Association/spanspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent; (yeah, once again). This time for featuring the campaign on DA Newsletter that definitely helped a lot in giving the final push that was very much required for this campaign!/span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify; /p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;img height=300px; src=/sites/default/files/cdn/2015/03/07/Ms6v81chNi2DhpSImxeXRFdO2MJSJbwqVr-Iap0F7OAmDBw0Qsj0A9lvG5c7heHp9ot7xS5_n4WkVpYzYopq_8ysUxuxJ6lGot7ZZltnjqIpJktjfJbjMU7K5MQb_oBGlkM_iFE style=border-style: none; transform: rotate(0rad); -webkit-transform: rotate(0rad); width=480px; //span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify; /p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;We definitely fall short of the required fund by around ~$1000. The good news is /spana href=http://www.qed42.com/span style=font-size: 15px; font-family: Arial; color: rgb(17, 85, 204); font-weight: bold; font-style: normal; font-variant: normal; text-decoration: underline; white-space: pre-wrap; background-color: transparent;Qed-42/span/aspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent; / /spana href=https://twitter.com/dipenchspan style=font-size: 15px; font-family: Arial; color: rgb(17, 85, 204); font-weight: bold; font-style: normal; font-variant: normal; text-decoration: underline; white-space: pre-wrap; background-color: transparent;Dipen Chaudhary/span/aspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;, Piyuesh’s employer has come forward to cover any costs that would be required above the funds collected. /spanspan style=font-size: 16px; font-family: Arial; color: rgb(0, 0, 0); font-weight: bold; font-style: italic; font-variant: normal; white-space: pre-wrap; background-color: transparent;Way to go Qed 42!/span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;img height=127px; src=/sites/default/files/cdn/2015/03/07/tRsv1EFvPRmRby1aLAi4viAdgXf0G_P3-rycxjV9eYAxHGHoMyYkdfhadzw3WaWuPG0S_6pz58CrHpgcJJ2nLVb9yAhC2XonXi2mfjjYc0x1NeBnaHdtkXvqKuLYZKJPCPdSpBA style=border-style: none; transform: rotate(0rad); -webkit-transform: rotate(0rad); width=624px; //span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 11px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;(Image generated by IQuelt from /spana href=http://www.qed42.com/teamspan style=font-size: 11px; font-family: Arial; color: rgb(17, 85, 204); font-style: normal; font-variant: normal; text-decoration: underline; white-space: pre-wrap; background-color: transparent;www.qed42.com/team/span/aspan style=font-size: 11px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;)/span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify; p  /p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-weight: bold; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;One question that has repeatedly popped up is - Isn’t there a Drupalcon scholarship / grant already?/span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify; /p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Well, there is one.  And as one of the earlier recipients of the scholarship, I have been there, done that!/span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify; /p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;But unfortunately when it comes to travelling to a US/Europe Drupalcon from India, the cap of $1000/€800 hardly covers 75% of economy airfare. We thought this guy deserves a fully covered trip to Drupalcon for his contribution to the Indian Drupal Community and hence was this campaign./span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify; /p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Thanks again to everyone who chipped in./span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify; /p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;text-align: justify;span id=docs-internal-guid-3f030a88-f294-3dd6-ecac-ecf2923d18cespan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;And another good news is that some of the contributors have proposed that we do this /spanspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-weight: bold; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;every year/spanspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent; and send the most deserving person from the Indian Drupal Community on a fully sponsored trip to Drupalcon. That definitely would be the most awesome thing to do and I am all up for it!/span/span/p div  /div /div/div/div