Planet Drupal

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

Drupal @ Penn State: Dynamic Memory Allocation in Vagrant Virtual Machines on Windows Hosts

Sun, 04/12/2015 - 01:36
pspan style=line-height: 1.6em;Whenever there is a constraint on the number of developers in a pool, it can make it more difficult to solve issues. As we have been developing Nittany-Vagrant, I have found that there is definitely a smaller pool of developers running on a Microsoft Windows host for their vagrant based virtual machines./span/p p/p pThe extra credit problem of the day for me was how to allow vagrant to automatically size a virtual machine's memory pool when utilizing VirtualBox as the VM provider on Windows. This is a well known solution on OSX:/p

DrupalOnWindows: Calling .Net Framework and .Net Assemblies from PHP

Sat, 04/11/2015 - 23:48
div class=form-item form-type-item labelLanguage /label English /div div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpYou know that the PHP ecosystem is not yet (but heading to) professional or truly business ready. Something as simple as doing good and solid PDF manipulation, interacting with Word and Excel and others emstrongare simply a nightmare. /strong/emYou will of course find libraries to handle all that, the problem is that they are all half broken, slow and not even close the the professional offering you can find the in the .Net environment./p/div/div/divdiv class=view view-read-more view-id-read_more view-display-id-entity_view_1 view-dom-id-584ebd4997ef582bd68b5912672442cb div class=view-header hr/ h2More articles.../h2 /div div class=view-content div class=item-list ul li class=views-row views-row-1 views-row-odd views-row-first div class=views-field views-field-title span class=field-contenta href=/en/blog/node-comment-and-forum-working-together-boost-user-participationNode Comment and Forum working together to boost user participation/a/span /div/li li class=views-row views-row-2 views-row-even div class=views-field views-field-title span class=field-contenta href=/en/blog/build-git-windows-sourcesBuild GIT on Windows from Sources/a/span /div/li li class=views-row views-row-3 views-row-odd div class=views-field views-field-title span class=field-contenta href=/en/blog/bypassing-form-validations-and-required-fields-drupal-bfv-moduleBypassing Form Validations and Required Fields in Drupal: the BFV module./a/span /div/li li class=views-row views-row-4 views-row-even div class=views-field views-field-title span class=field-contenta href=/en/blog/drupal-iis-or-apacheDrupal on IIS or Apache/a/span /div/li li class=views-row views-row-5 views-row-odd div class=views-field views-field-title span class=field-contenta href=/en/blog/adding-native-json-storage-support-drupal-7-or-how-mix-rdbms-nosqlAdding native JSON storage support in Drupal 7 or how to mix RDBM with NoSQL/a/span /div/li li class=views-row views-row-6 views-row-even div class=views-field views-field-title span class=field-contenta href=/en/blog/hiding-fact-your-site-runs-drupalHiding the fact that your site runs Drupal/a/span /div/li li class=views-row views-row-7 views-row-odd div class=views-field views-field-title span class=field-contenta href=/en/blog/setting-code-syntax-higlighting-drupalSetting up Code Syntax Higlighting with Drupal/a/span /div/li li class=views-row views-row-8 views-row-even div class=views-field views-field-title span class=field-contenta href=/en/blog/installing-drupal-windows-and-sql-serverInstalling Drupal on Windows and SQL Server/a/span /div/li li class=views-row views-row-9 views-row-odd div class=views-field views-field-title span class=field-contenta href=/en/blog/decent-pdf-generation-drupalDecent PDF generation in Drupal/a/span /div/li li class=views-row views-row-10 views-row-even views-row-last div class=views-field views-field-title span class=field-contenta href=/en/blog/calling-net-framework-and-net-assemblies-phpCalling .Net Framework and .Net Assemblies from PHP/a/span /div/li /ul/div /div /div

tanay.co.in: Some quick statistics from scraping the Acquia Certification Registry

Sat, 04/11/2015 - 19:38
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;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;As /spana href=https://www.acquia.com/blog/acquia-certification-program-ready-turn-1span 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;Acquia Drupal Certification turned 1/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; recently, I was trying to make sense of how many people have taken the certification exam, especially from India./span/span/p p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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 certification team had recently launched the Acquia Certification Registry portal @ /spana href=http://training.acquia.com/registryspan 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;http://training.acquia.com/registry/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; where you can search through and browse the list of candidates that have cleared the certification exam(s)./span/span/p p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;I built a small script that scraped the results, crawling through all 20 pages currently available on the registry portal, into a spreadsheet as well as a MySQL database, that I could run queries later to mine for the data I was looking for. /span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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=483px; src=http://www.tanay.co.in/sites/default/files/cdn/2015/04/11/lWyQRJSnhp8hiIONH9zeojf8ppdf6cS-quhNLWj1C4Q5C2X8LlXGjK0BGzStOyc9PeStI85MTTIhwqsTMBWuAbAKgAg2HsZt6k4HMuYTTVOlvoWnnUGcTodUSIiwdXqh9WW0Liw 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;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;Finally, after a few minutes, I had a local consolidated database of the data publicly available from the certification registry, which I could run queries against, to find the answers I was looking for./span/span/p p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;FInally, I have the numbers that I was interested in.../span/span/p p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span style=font-size: 48px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Total/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; Number of /spanspan style=font-size: 48px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Certifications/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; = /spanspan style=font-size: 48px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;777/span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;(As on the registry on Sat April 11 9am IST)/span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;Number of /spanspan style=font-size: 48px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;People Certified/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; = /spanspan style=font-size: 48px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;685/span/span/p p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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=459px; src=http://www.tanay.co.in/sites/default/files/cdn/2015/04/11/eLBL5eyfF_pVu--L5cuIw4VcMcLVcsdSihvY4ExKB6o48LoYYKrVCksZ6tvmtgAYRKuS5osBClaSsAA1A-01r9ir_7zxdPEdr1McPeg6nwzq7RwL4crQ9Sy2r9hulSRPALrvR_w style=border-style: none; transform: rotate(0rad); -webkit-transform: rotate(0rad); width=624px; //span/span/p p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span style=font-size: 48px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Unites States/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; tops the chart with /span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span style=font-size: 48px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;307 certifications/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; of /span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span style=font-size: 48px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;259 certified candidates/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;, followed by/span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span style=font-size: 48px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;India/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; with /spanspan style=font-size: 48px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;86 candidates!/span/span/p p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;Number of /spanspan style=font-size: 24px; font-family: Arial; color: rgb(0, 0, 0); font-weight: bold; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Certifications/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; - Top 6 Countries/span/span/p div dir=ltr style=margin-left:0pt; table style=border: none; width: 624px; colgroupcol width=* /col width=* //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.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;United States/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.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;307/span/span/p /td /tr 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.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;India/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.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;86/span/span/p /td /tr 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.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;Canada/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.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;58/span/span/p /td /tr 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.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;Australia/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.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;48/span/span/p /td /tr 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.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;United Kingdom/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.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;44/span/span/p /td /tr 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.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;Belgium/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.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;35/span/span/p /td /tr /tbody /table /div p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;Number of /spanspan style=font-size: 24px; font-family: Arial; color: rgb(0, 0, 0); font-weight: bold; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Certified Developers/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; - Top 6 Countries/span/span/p div dir=ltr style=margin-left:0pt; table style=border: none; width: 624px; colgroupcol width=* /col width=* //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.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;United States/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.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;259/span/span/p /td /tr 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.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;India/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.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;76/span/span/p /td /tr 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.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;Canada/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.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;53/span/span/p /td /tr 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.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;Australia/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.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;45/span/span/p /td /tr 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.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;United Kingdom/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.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;34/span/span/p /td /tr 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.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;Belgium/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.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;32/span/span/p /td /tr /tbody /table /div p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;Acquia Certified Developers are spread over /spanspan style=font-size: 48px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;40+ Countries!/span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;On this context, I had a quick chat with /spana href=https://twitter.com/petermanijakspan 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;Peter Minijak/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; from the Acquia Certification team for a more deeper insight into the numbers. Was surprised to know that this list is going to explode soon to at least 150% as the total number of registered profiles including those who are yet to give their exam currently stands at 60+!/span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span style=font-size: 48px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;img height=271px; src=http://www.tanay.co.in/sites/default/files/cdn/2015/04/11/J1UcJ1ymlTrKp_tX6oxOh3B0PUw4Q4jY6MAUTQAfLsHsb43Zq5yzokLlfW6-d5rlJAiYi3GyIy8i9UxQziidrF7B6I3Ti6Nf3NsDfkAOhhGxtaNLW60NhyzvgR9zahXW3uFfRIw 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;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span style=font-size: 48px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;66/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; /spanspan style=font-size: 48px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Developers/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; have/span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span style=font-size: 32px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;more than/spanspan style=font-size: 48px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent; 1/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; /spanspan style=font-size: 48px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;certification!/span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span style=font-size: 32px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;img height=459px; src=http://www.tanay.co.in/sites/default/files/cdn/2015/04/11/DJq_ceI67lY4u3QvXmjtTORsZzdDxyCJK_tC3g2mly5U4BS9KNq8Lx2TAj__827zOX4lE6svp1HjLjh_VnN-MGrq0wesbcmjAKv7DInB49csegZaVjRy3JWX4aILQfqNwQR0o8E 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;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;Acquia also gives a /spanspan style=font-size: 48px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;”Grand Master”/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;title to candidates who have cleared the first 3 examinations. There are /span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span style=font-size: 48px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;11/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; such /spanspan style=font-size: 48px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;candidates/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; currently. /span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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 same are listed @ /spana href=http://training.acquia.com/registry/grand-mastersspan 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;http://training.acquia.com/registry/grand-masters/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;  /span/span/p p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span style=font-size: 48px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;14/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; /spanspan style=font-size: 48px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;countries/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; have /spanspan style=font-size: 48px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;developers/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; holding /span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span style=font-size: 48px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;more than/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; /spanspan style=font-size: 48px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;1 certification/span/span/p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span style=font-size: 32px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;img height=437px; src=http://www.tanay.co.in/sites/default/files/cdn/2015/04/11/fx9_K3FHilrBJqPo73u0rhtkQCqnFkaE8XxwFxMlbRubog1ROvzzg6ilmujxHGzgYwXK9B2bGZAj6h8athDGa0IukbyJ_5JceaIPe47K9AgFOVsReVagiop3lt-ZkXiWgpqdmk8 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;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span 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;Feels good to see India at #2, by absolute numbers. But if seen relatively, considering the large number of Drupal shops and Service Integrators in India, I think the number is still small and definitely bound to make a huge leap in the coming months./span/span/p p p dir=ltr style=line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-4679a4c5-a99e-8bca-9d79-f46bf8734c74span style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-weight: bold; font-style: normal; font-variant: normal; text-decoration: underline; white-space: pre-wrap; background-color: transparent;NOTE: /spanspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-decoration: underline; white-space: pre-wrap; background-color: transparent;These numbers were scraped from the Certification Registry portal. They are no where close to being reliable. There could be some bugs from my script or the bad queries I write ;-)  /span/span/p p/p /div/div/div

Théodore 'nod_' Biadala: Visualization of jQuery use in Drupal 8

Fri, 04/10/2015 - 20:00
pSince FrontendUnited 2012 Amsterdam, I#39;ve been saying Drupal core should significantly cut it#39;s jQuery use. Until now it was without much data to back it up. What follows is a visualization of jQuery modules use in Drupal 8 code, it#39;s fancy so feel free to click everywhere. There is additional information in titles, be sure to check those out. Took long enough to make, sorry mobile users./p div id=rss-frienda href=http://read.theodoreb.net/2015/viz-drupal-use-of-jquery.htmlimg src=http://read.theodoreb.net/assets/2015-04/jquery-modules-use-drupal.png alt=preview of the visualization graph/a/div div id=rss-fiend style=display:none div id=graphdiv id=bubblewrapa class=node depth-0 title=undefined #0 style=left: 0px; top: 0px; width: 927px; height: 599px;span/span/aa href=#traversing class=node depth-1 title=traversing #883 style=left: 0px; top: 0px; width: 328px; height: 599px; background: rgb(31, 119, 180);spantraversing/span/aa href=#traversing-has class=node depth-2 hidden data-module=traversing title=has #7 style=left: 245px; top: 499px; width: 44px; height: 34px;spanhas/span/aa href=#traversing-closest class=node depth-2 hidden data-module=traversing title=closest #78 style=left: 0px; top: 314px; width: 119px; height: 144px;spanclosest/span/aa href=#traversing-index class=node depth-2 hidden data-module=traversing title=index #10 style=left: 203px; top: 499px; width: 41px; height: 52px;spanindex/span/aa href=#traversing-add class=node depth-2 hidden data-module=traversing title=add #9 style=left: 203px; top: 552px; width: 41px; height: 47px;spanadd/span/aa href=#traversing-addBack class=node depth-2 hidden data-module=traversing title=addBack #5 style=left: 282px; top: 534px; width: 25px; height: 42px;spanaddBack/span/aa href=#traversing-parent class=node depth-2 hidden data-module=traversing title=parent #50 style=left: 227px; top: 314px; width: 101px; height: 108px;spanparent/span/aa href=#traversing-parents class=node depth-2 hidden data-module=traversing title=parents #5 style=left: 245px; top: 570px; width: 36px; height: 29px;spanparents/span/aa href=#traversing-parentsUntil class=node depth-2 hidden data-module=traversing title=parentsUntil #1 style=left: 320px; top: 577px; width: 8px; height: 22px;spanparentsUntil/span/aa href=#traversing-next class=node depth-2 hidden data-module=traversing title=next #22 style=left: 203px; top: 423px; width: 64px; height: 75px;spannext/span/aa href=#traversing-prev class=node depth-2 hidden data-module=traversing title=prev #23 style=left: 120px; top: 539px; width: 82px; height: 60px;spanprev/span/aa href=#traversing-nextAll class=node depth-2 hidden data-module=traversing title=nextAll #2 style=left: 301px; top: 577px; width: 18px; height: 22px;spannextAll/span/aa href=#traversing-prevAll class=node depth-2 hidden data-module=traversing title=prevAll #6 style=left: 290px; top: 499px; width: 38px; height: 34px;spanprevAll/span/aa href=#traversing-nextUntil class=node depth-2 hidden data-module=traversing title=nextUntil #6 style=left: 245px; top: 534px; width: 36px; height: 35px;spannextUntil/span/aa href=#traversing-siblings class=node depth-2 hidden data-module=traversing title=siblings #4 style=left: 308px; top: 534px; width: 20px; height: 42px;spansiblings/span/aa href=#traversing-children class=node depth-2 hidden data-module=traversing title=children #43 style=left: 120px; top: 423px; width: 82px; height: 115px;spanchildren/span/aa href=#traversing-contents class=node depth-2 hidden data-module=traversing title=contents #2 style=left: 282px; top: 577px; width: 18px; height: 22px;spancontents/span/aa href=#traversing-filter class=node depth-2 hidden data-module=traversing title=filter #52 style=left: 120px; top: 314px; width: 106px; height: 108px;spanfilter/span/aa href=#traversing-find class=node depth-2 hidden data-module=traversing title=find #462 style=left: 0px; top: 0px; width: 328px; height: 313px;spanfind/span/aa href=#traversing-not class=node depth-2 hidden data-module=traversing title=not #21 style=left: 268px; top: 423px; width: 60px; height: 75px;spannot/span/aa href=#traversing-is class=node depth-2 hidden data-module=traversing title=is #75 style=left: 0px; top: 459px; width: 119px; height: 140px;spanis/span/aa href=#attributes class=node depth-1 title=attributes #564 style=left: 329px; top: 0px; width: 372px; height: 337px; background: rgb(255, 127, 14);spanattributes/span/aa href=#attributes-attr class=node depth-2 hidden data-module=attributes title=attr #190 style=left: 329px; top: 0px; width: 203px; height: 207px;spanattr/span/aa href=#attributes-removeAttr class=node depth-2 hidden data-module=attributes title=removeAttr #9 style=left: 679px; top: 261px; width: 22px; height: 76px;spanremoveAttr/span/aa href=#attributes-addClass class=node depth-2 hidden data-module=attributes title=addClass #102 style=left: 533px; top: 0px; width: 168px; height: 134px;spanaddClass/span/aa href=#attributes-removeClass class=node depth-2 hidden data-module=attributes title=removeClass #57 style=left: 533px; top: 135px; width: 100px; height: 125px;spanremoveClass/span/aa href=#attributes-toggleClass class=node depth-2 hidden data-module=attributes title=toggleClass #25 style=left: 606px; top: 261px; width: 72px; height: 76px;spantoggleClass/span/aa href=#attributes-hasClass class=node depth-2 hidden data-module=attributes title=hasClass #25 style=left: 533px; top: 261px; width: 72px; height: 76px;spanhasClass/span/aa href=#attributes-prop class=node depth-2 hidden data-module=attributes title=prop #38 style=left: 634px; top: 135px; width: 67px; height: 125px;spanprop/span/aa href=#attributes-val class=node depth-2 hidden data-module=attributes title=val #118 style=left: 329px; top: 208px; width: 203px; height: 129px;spanval/span/aa href=#event class=node depth-1 title=event #341 style=left: 702px; top: 0px; width: 225px; height: 337px; background: rgb(44, 160, 44);spanevent/span/aa href=#event-event class=node depth-2 hidden data-module=event title=event #25 style=left: 816px; top: 229px; width: 79px; height: 69px;spanevent/span/aa href=#event-on class=node depth-2 hidden data-module=event title=on #158 style=left: 702px; top: 0px; width: 225px; height: 156px;spanon/span/aa href=#event-one class=node depth-2 hidden data-module=event title=one #2 style=left: 896px; top: 299px; width: 20px; height: 20px;spanone/span/aa href=#event-off class=node depth-2 hidden data-module=event title=off #36 style=left: 816px; top: 157px; width: 111px; height: 71px;spanoff/span/aa href=#event-trigger class=node depth-2 hidden data-module=event title=trigger #92 style=left: 702px; top: 157px; width: 113px; height: 180px;spantrigger/span/aa href=#event-triggerHandler class=node depth-2 hidden data-module=event title=triggerHandler #1 style=left: 917px; top: 299px; width: 10px; height: 20px;spantriggerHandler/span/aa href=#event-focus class=node depth-2 hidden data-module=event title=focus #6 style=left: 896px; top: 229px; width: 31px; height: 41px;spanfocus/span/aa href=#event-load class=node depth-2 hidden data-module=event title=load #2 style=left: 896px; top: 271px; width: 15px; height: 27px;spanload/span/aa href=#event-click class=node depth-2 hidden data-module=event title=click #2 style=left: 912px; top: 271px; width: 15px; height: 27px;spanclick/span/aa href=#event-select class=node depth-2 hidden data-module=event title=select #1 style=left: 896px; top: 320px; width: 11px; height: 17px;spanselect/span/aa href=#event-error class=node depth-2 hidden data-module=event title=error #1 style=left: 908px; top: 320px; width: 11px; height: 17px;spanerror/span/aa href=#event-bind class=node depth-2 hidden data-module=event title=bind #14 style=left: 816px; top: 299px; width: 79px; height: 38px;spanbind/span/aa href=#event-unbind class=node depth-2 hidden data-module=event title=unbind #1 style=left: 920px; top: 320px; width: 7px; height: 17px;spanunbind/span/aa href=#manipulation class=node depth-1 title=manipulation #246 style=left: 329px; top: 338px; width: 209px; height: 261px; background: rgb(214, 39, 40);spanmanipulation/span/aa href=#manipulation-clone class=node depth-2 hidden data-module=manipulation title=clone #4 style=left: 504px; top: 545px; width: 34px; height: 25px;spanclone/span/aa href=#manipulation-text class=node depth-2 hidden data-module=manipulation title=text #43 style=left: 434px; top: 338px; width: 104px; height: 91px;spantext/span/aa href=#manipulation-append class=node depth-2 hidden data-module=manipulation title=append #38 style=left: 329px; top: 430px; width: 86px; height: 97px;spanappend/span/aa href=#manipulation-prepend class=node depth-2 hidden data-module=manipulation title=prepend #19 style=left: 479px; top: 430px; width: 59px; height: 70px;spanprepend/span/aa href=#manipulation-before class=node depth-2 hidden data-module=manipulation title=before #7 style=left: 504px; top: 501px; width: 34px; height: 43px;spanbefore/span/aa href=#manipulation-after class=node depth-2 hidden data-module=manipulation title=after #13 style=left: 416px; top: 501px; width: 46px; height: 61px;spanafter/span/aa href=#manipulation-remove class=node depth-2 hidden data-module=manipulation title=remove #43 style=left: 329px; top: 338px; width: 104px; height: 91px;spanremove/span/aa href=#manipulation-empty class=node depth-2 hidden data-module=manipulation title=empty #3 style=left: 504px; top: 571px; width: 22px; height: 28px;spanempty/span/aa href=#manipulation-html class=node depth-2 hidden data-module=manipulation title=html #28 style=left: 329px; top: 528px; width: 86px; height: 71px;spanhtml/span/aa href=#manipulation-replaceWith class=node depth-2 hidden data-module=manipulation title=replaceWith #2 style=left: 527px; top: 571px; width: 11px; height: 28px;spanreplaceWith/span/aa href=#manipulation-detach class=node depth-2 hidden data-module=manipulation title=detach #5 style=left: 463px; top: 545px; width: 40px; height: 26px;spandetach/span/aa href=#manipulation-appendTo class=node depth-2 hidden data-module=manipulation title=appendTo #20 style=left: 416px; top: 430px; width: 62px; height: 70px;spanappendTo/span/aa href=#manipulation-prependTo class=node depth-2 hidden data-module=manipulation title=prependTo #8 style=left: 416px; top: 563px; width: 46px; height: 36px;spanprependTo/span/aa href=#manipulation-insertBefore class=node depth-2 hidden data-module=manipulation title=insertBefore #8 style=left: 463px; top: 501px; width: 40px; height: 43px;spaninsertBefore/span/aa href=#manipulation-insertAfter class=node depth-2 hidden data-module=manipulation title=insertAfter #5 style=left: 463px; top: 572px; width: 40px; height: 27px;spaninsertAfter/span/aa href=#css class=node depth-1 title=css #180 style=left: 539px; top: 338px; width: 153px; height: 261px; background: rgb(148, 103, 189);spancss/span/aa href=#css-css class=node depth-2 hidden data-module=css title=css #60 style=left: 539px; top: 338px; width: 153px; height: 86px;spancss/span/aa href=#css-show class=node depth-2 hidden data-module=css title=show #37 style=left: 624px; top: 425px; width: 68px; height: 118px;spanshow/span/aa href=#css-hide class=node depth-2 hidden data-module=css title=hide #45 style=left: 539px; top: 425px; width: 84px; height: 118px;spanhide/span/aa href=#css-toggle class=node depth-2 hidden data-module=css title=toggle #14 style=left: 539px; top: 544px; width: 55px; height: 55px;spantoggle/span/aa href=#css-:hidden class=node depth-2 hidden data-module=css title=:hidden #11 style=left: 639px; top: 544px; width: 53px; height: 45px;span:hidden/span/aa href=#css-:visible class=node depth-2 hidden data-module=css title=:visible #11 style=left: 595px; top: 544px; width: 43px; height: 55px;span:visible/span/aa href=#css-swap class=node depth-2 hidden data-module=css title=swap #2 style=left: 639px; top: 590px; width: 53px; height: 9px;spanswap/span/aa href=#sizzle class=node depth-1 title=sizzle #137 style=left: 693px; top: 338px; width: 234px; height: 129px; background: rgb(140, 86, 75);spansizzle/span/aa href=#sizzle-:checkbox class=node depth-2 hidden data-module=sizzle title=:checkbox #2 style=left: 863px; top: 431px; width: 23px; height: 18px;span:checkbox/span/aa href=#sizzle-:checked class=node depth-2 hidden data-module=sizzle title=:checked #41 style=left: 693px; top: 338px; width: 69px; height: 129px;span:checked/span/aa href=#sizzle-:first class=node depth-2 hidden data-module=sizzle title=:first #18 style=left: 763px; top: 338px; width: 59px; height: 66px;span:first/span/aa href=#sizzle-:selected class=node depth-2 hidden data-module=sizzle title=:selected #4 style=left: 896px; top: 385px; width: 31px; height: 26px;span:selected/span/aa href=#sizzle-:radio class=node depth-2 hidden data-module=sizzle title=:radio #1 style=left: 900px; top: 450px; width: 11px; height: 17px;span:radio/span/aa href=#sizzle-:visible class=node depth-2 hidden data-module=sizzle title=:visible #11 style=left: 823px; top: 338px; width: 51px; height: 46px;span:visible/span/aa href=#sizzle-:has class=node depth-2 hidden data-module=sizzle title=:has #1 style=left: 914px; top: 434px; width: 13px; height: 15px;span:has/span/aa href=#sizzle-:not class=node depth-2 hidden data-module=sizzle title=:not #17 style=left: 763px; top: 405px; width: 59px; height: 62px;span:not/span/aa href=#sizzle-:input class=node depth-2 hidden data-module=sizzle title=:input #10 style=left: 823px; top: 385px; width: 39px; height: 55px;span:input/span/aa href=#sizzle-:header class=node depth-2 hidden data-module=sizzle title=:header #1 style=left: 887px; top: 451px; width: 12px; height: 16px;span:header/span/aa href=#sizzle-:disabled class=node depth-2 hidden data-module=sizzle title=:disabled #4 style=left: 863px; top: 385px; width: 32px; height: 26px;span:disabled/span/aa href=#sizzle-:focus class=node depth-2 hidden data-module=sizzle title=:focus #1 style=left: 887px; top: 434px; width: 12px; height: 16px;span:focus/span/aa href=#sizzle-:hidden class=node depth-2 hidden data-module=sizzle title=:hidden #11 style=left: 875px; top: 338px; width: 52px; height: 46px;span:hidden/span/aa href=#sizzle-:last class=node depth-2 hidden data-module=sizzle title=:last #5 style=left: 823px; top: 441px; width: 39px; height: 26px;span:last/span/aa href=#sizzle-:enabled class=node depth-2 hidden data-module=sizzle title=:enabled #2 style=left: 863px; top: 450px; width: 23px; height: 17px;span:enabled/span/aa href=#sizzle-:eq class=node depth-2 hidden data-module=sizzle title=:eq #1 style=left: 900px; top: 434px; width: 13px; height: 15px;span:eq/span/aa href=#sizzle-:nth class=node depth-2 hidden data-module=sizzle title=:nth #2 style=left: 863px; top: 412px; width: 23px; height: 18px;span:nth/span/aa href=#sizzle-:odd class=node depth-2 hidden data-module=sizzle title=:odd #2 style=left: 887px; top: 412px; width: 19px; height: 21px;span:odd/span/aa href=#sizzle-:even class=node depth-2 hidden data-module=sizzle title=:even #2 style=left: 907px; top: 412px; width: 20px; height: 21px;span:even/span/aa href=#sizzle-:file class=node depth-2 hidden data-module=sizzle title=:file #1 style=left: 912px; top: 450px; width: 15px; height: 17px;span:file/span/aa href=#data class=node depth-1 title=data #66 style=left: 693px; top: 468px; width: 111px; height: 131px; background: rgb(227, 119, 194);spandata/span/aa href=#data-data class=node depth-2 hidden data-module=data title=data #63 style=left: 693px; top: 468px; width: 111px; height: 125px;spandata/span/aa href=#data-removeData class=node depth-2 hidden data-module=data title=removeData #3 style=left: 693px; top: 594px; width: 111px; height: 5px;spanremoveData/span/aa href=#ajax class=node depth-1 title=ajax #41 style=left: 805px; top: 468px; width: 122px; height: 74px; background: rgb(127, 127, 127);spanajax/span/aa href=#ajax-active class=node depth-2 hidden data-module=ajax title=active #1 style=left: 899px; top: 535px; width: 28px; height: 7px;spanactive/span/aa href=#ajax-ajax class=node depth-2 hidden data-module=ajax title=ajax #22 style=left: 805px; top: 468px; width: 65px; height: 74px;spanajax/span/aa href=#ajax-get class=node depth-2 hidden data-module=ajax title=get #17 style=left: 871px; top: 468px; width: 56px; height: 66px;spanget/span/aa href=#ajax-parseJSON class=node depth-2 hidden data-module=ajax title=parseJSON #1 style=left: 871px; top: 535px; width: 27px; height: 7px;spanparseJSON/span/aa href=#offset class=node depth-1 title=offset #30 style=left: 805px; top: 543px; width: 122px; height: 56px; background: rgb(188, 189, 34);spanoffset/span/aa href=#offset-offset class=node depth-2 hidden data-module=offset title=offset #21 style=left: 805px; top: 543px; width: 85px; height: 56px;spanoffset/span/aa href=#offset-position class=node depth-2 hidden data-module=offset title=position #5 style=left: 891px; top: 543px; width: 36px; height: 31px;spanposition/span/aa href=#offset-offsetParent class=node depth-2 hidden data-module=offset title=offsetParent #1 style=left: 919px; top: 575px; width: 8px; height: 24px;spanoffsetParent/span/aa href=#offset-scrollTop class=node depth-2 hidden data-module=offset title=scrollTop #3 style=left: 891px; top: 575px; width: 27px; height: 24px;spanscrollTop/span/a/div/div form id=controls p id=statsstrong2488/strong occurrences of jQuery-related code./p p id=modules label class=selected major style=background-color:rgba(31, 119, 180, 0.55) title=Modules: traversing, traversing/findFilterinput type=checkbox checked name=module value=traversingtraversing/label label class=selected major style=background-color:rgba(255, 127, 14, 0.55) title=Modules: attributes, attributes/attr, attributes/classes, attributes/prop, attributes/support, attributes/valinput type=checkbox checked name=module value=attributesattributes/label label class=selected major style=background-color:rgba(44, 160, 44, 0.55) title=Modules: event, event/ajax, event/alias, event/supportinput type=checkbox checked name=module value=eventevent/label label class=selected major style=background-color:rgba(214, 39, 40, 0.55) title=Modules: manipulation, manipulation/_evalUrl, manipulation/supportinput type=checkbox checked name=module value=manipulationmanipulation/label label class=selected major style=background-color:rgba(148, 103, 189, 0.55) title=Modules: css, css/addGetHookIf, css/curCSS, css/defaultDisplay, css/hiddenVisibleSelectors, css/support, css/swapinput type=checkbox checked name=module value=csscss/label label class=selected major style=background-color:rgba(140, 86, 75, 0.55) title=Modules: sizzleinput type=checkbox checked name=module value=sizzlesizzle/label label class=selected major style=background-color:rgba(227, 119, 194, 0.55) title=Modules: data, data/Data, data/acceptsinput type=checkbox checked name=module value=datadata/label label class=selected major style=background-color:rgba(127, 127, 127, 0.55) title=Modules: ajax, ajax/jsonp, ajax/load, ajax/parseJSON, ajax/parseXML, ajax/script, ajax/xhrinput type=checkbox checked name=module value=ajaxajax/label label class=selected major style=background-color:rgba(188, 189, 34, 0.55) title=Modules: offsetinput type=checkbox checked name=module value=offsetoffset/label label title=Modules: dimensionsinput type=checkbox name=module value=dimensionsdimensions/label label title=Modules: effects, effects/Tween, effects/animatedSelectorinput type=checkbox name=module value=effectseffects/label label title=Modules: serializeinput type=checkbox name=module value=serializeserialize/label label title=Modules: wrapinput type=checkbox name=module value=wrapwrap/label label title=Modules: core, core/access, core/init, core/parseHTML, core/readyinput type=checkbox name=module value=corecore/label label title=Modules: deprecatedinput type=checkbox name=module value=deprecateddeprecated/label label title=Modules: deferredinput type=checkbox name=module value=deferreddeferred/label label title=Modules: exports/amd, exports/globalinput type=checkbox name=module value=exportsexports/label /p pstrongView data from folders:/strong p id=folders label class=selected major title=Contains drupal.js, form.js, vertical-tabs.js, tabledrag.js, etc.input type=checkbox name=folder value=misc id=misc checkedcore/misc/label label class=selected major title=All the javascript from core modulesinput type=checkbox name=folder value=modules id=modules checkedcore/modules/label label class=selected major title=All the javascript from core themesinput type=checkbox name=folder value=themes id=themes checkedcore/themes/label label class= title=Third party javascript (jQuery and jQueryUI excluded)input type=checkbox name=folder value=assets id=vendorcore/vendor/label /p /form/p div style @media (max-width: 767px) { label {display:block;} } label {cursor:pointer;display:inline-block;cursor:pointer;margin:0;padding:0.5em 0.75em;overflow:hidden;text-align:center;} label input {position:absolute;overflow:hidden;width:1px;height:1px;} label.focus {text-decoration:underline;} #rss-friend {display:none;} #rss-fiend {display:block!important;margin:3em 0;} #bubblewrap {position:relative;height:600px;width:100%} #modules, #folders {display:flex;flex-wrap:wrap;} #modules label {flex: 1 1 auto;} #folders .selected {background-color:lightgrey;} .major {font-weight:bold;} .node, #modules label.selected {color:white;} .node { border: solid 1px white; overflow: hidden; position: absolute; display:flex; text-align:center; } .node span {flex: 1 1 auto;align-self: center;} .depth-1 {font-weight: bold;} .hidden {visibility: hidden;} .node {text-decoration: none;} .node:focus, .node:active {text-decoration: underline;} /style /div p/div/p pI#39;ve been working on a tool that inspect javascript files and show all jQuery methods and Sizzle selectors used in that file. I will be releasing it soon, once the npm namespace issue has been sorted out and I polished it a little bit more. Meanwhile, I ran it on Drupal code and got this: button type=button id=viewtableView raw data/button./p pre id=rawdata hiddencode/code/pre div script src=/assets/2015-04/d3.min.js/script script src=/assets/2015-04/jquery-drupal-viz.js/script scriptdataQuery.display();/script /div

DrupalCon News: Announcing DrupalCon Los Angeles Keynote Speaker Whitney Hess

Fri, 04/10/2015 - 18:16
div class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item evenpWe are so excited to announce our final keynote speaker for the upcoming DrupalCon Los Angeles, Whitney Hess./p pWhitney is a coach, writer and speaker helping people bring their whole selves to their work. For the last decade, she has coached hundreds of companies on how to make their products easier and more pleasurable to use, boost the bottom line, and do work they love. Whitney is the co-host the podcast Designing Yourself, writes on her blog Pleasure amp; Pain, and speaks at conferences and corporations worldwide. /p/div/div/div

Drupal Association News: New Try Drupal Program

Fri, 04/10/2015 - 18:05
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpOne of the Drupal Association's primary missions is to grow the adoption of Drupal.  We are about to launch a new program on April 15th called Try Drupal.  The program will make it easy and fast for evaluators to try Drupal and have a simple, great experience while on Drupal.org./p pWe’ve created Try Drupal with our a href=https://www.drupal.org/supporters/hostingPremium Hosting Supporters/a to make it easier for CMS evaluators and Drupal.org newcomers to test and work with a Drupal demo site.  The Program will showcase a selection of Hosting Companies where a new user can quickly (in less than 20 minutes) sign up and have a Drupal demo site up and running for them to use for free. /p pThis is part of the Drupal Association’s initiative to develop a new revenue stream through advertising a href=https://www.drupal.org/news/drupalorg-2015-advertising-initiativesprograms/a on Drupal.org.  This revenue will help fund various site a href=https://www.drupal.org/roadmapinitiatives/a by the Association to improve Drupal.org performance, and make it easier to use and more secure.  After interviewing many members of the community, we determined that new advertising products should be useful to Drupal.org visitors, support our mission to grow the adoption of Drupal, and should not interfere with visitors contributing to the project./p pimg alt=Try Drupal src=https://assoc.drupal.org/files/Try_Drupal.png style=width: 511px; height: 464px; //p pTo ensure a positive Drupal experience, partners need to adhere to the following guidelines:/p ulli Users are directed to a self-serve sign up platform/li li Users can create a free account for the demo site that accommodates a trial installation of Drupal 7 or 8/li li Users can create a website in 20 minutes or less/li li The demo site should be available to the user for a minimum of one day upon sign up/li li The partner cannot include a paywall or require a credit card upon sign up/li /ulpThe Try Drupal program will be featured on the homepage of Drupal.org.  It will launch with a larger a href=https://www.drupal.org/node/2463205iterative change/a to the homepage, with an emphasis on helping users move from newcomer, to learner, to skilled Drupal community members./p pIt’s important that we fund Drupal.org improvements, and that we do so in a responsible way that respects the community. We anticipate rolling out more key advertising programs throughout 2015, stay tuned for more updates.  Thanks for taking the time to read about our initiatives, and please tell us your thoughts!/p /div/div/div

SitePoint PHP Drupal: Integrate Elasticsearch with Silex

Fri, 04/10/2015 - 18:00
ppIn the previous article I started exploring the integration between Drupal 7 and the a href=http://www.elasticsearch.org/Elasticsearch/a engine (henceforth referred to as Elastic). The goal was to see how we can combine these open source technologies to achieve a high performance application that uses the best of both worlds. If you’re just now joining us, you should check out a href=https://github.com/upchuk/d7-elastic-silexthis repository/a which contains relevant code for these articles. /p pimg src=http://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2015/03/1425574421esdrupalsilex.png alt=esdrupalsilex width=800 height=281 class=alignnone size-full wp-image-100794//p pWe’ll now create a small Silex application that reads data straight from Elastic and returns it to the user. /p h2 id=silex-appSilex app/h2 pa href=http://www.sitepoint.com/introduction-silex-symfony-micro-framework/Silex/a is a great PHP micro framework developed by the same people that are behind the Symfony project. It is in fact using mainly Symfony components but at a more simplified level. Let’s see how we can get started really quickly with a Silex app./p pThere is more than one way. You can add it as a dependency to an existent composer based project:/p pre class=prettyprint prettyprintedcodespan class=strsilex/silex/spanspan class=pun:/spanspan class=pln /spanspan class=str~1.2/spanspan class=pun,/span/code/pre pOr you can even create a new project using a nice little skeleton provided by the creator:/p pre class=prettyprint prettyprintedcodespan class=plncomposer/spanspan class=pun./spanspan class=plnphar create/spanspan class=pun-/spanspan class=plnproject fabpot/spanspan class=pun//spanspan class=plnsilex/spanspan class=pun-/spanspan class=plnskeleton/span/code/pre /ppemContinue reading %a rel=nofollow href=http://www.sitepoint.com/integrate-elasticsearch-silex/Integrate Elasticsearch with Silex/a%/em/p

Midwestern Mac, LLC: Thoughts on the Acquia Certified Developer - Back End Specialist Exam

Fri, 04/10/2015 - 17:31
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpA little under a year ago, I took the Acquia Certified Developer exam at DrupalCon Austin, and posted a href=http://www.midwesternmac.com/blogs/jeff-geerling/thoughts-acquia-drupalThoughts on the Acquia Drupal Developer Certification Exam/a. My overall thoughts on the idea of certifications for OSS like Drupal remain unchanged, so go read that previous post to hear them./p pI wanted to post a little more about the additional certifications Acquia is now offering; in addition to the initial, more generalist-oriented a href=https://www.acquia.com/customer-success/learning-services/acquia-certified-developer-exam-blueprintAcquia Certified Developer Exam/a, Acquia now offers:/p ullia href=https://www.acquia.com/customer-success/learning-services/acquia-certified-developer-back-end-specialist-exam-blueprintAcquia Certified Developer-Back End Specialist Exam/a/li lia href=https://www.acquia.com/customer-success/learning-services/acquia-certified-developer-front-end-specialist-exam-blueprintAcquia Certified Developer-Front End Specialist Exam/a/li lia href=https://www.acquia.com/customer-success/learning-services/acquia-certified-drupal-site-builder-exam-blueprintAcquia Certified Drupal Site Builder Exam/a/li /ulpEarlier today, I took the strongBack End Specialist Exam/strong, which focuses more specifically on things like Drupal's core API, general PHP syntax and style, secure code, content caching, debugging, and interacting with the Drupal community./p p style=text-align: center;img src=http://www.midwesternmac.com/sites/midwesternmac.com/files/acquia-certified-back-end-specialist-2015-badge.png width=153 height=156 alt=Acquia Certified Developer - Back End Specialist badge //p pLike the other certification exams, you get 90 minutes to complete the exam (60 questions total), and you have to take the exam either online or in a testing center with an active proctor. This time, I elected to take the exam on my own computer, which was a little more annoying than taking the exam in-person at a test center (as I did at DrupalCon last year)./p /div/div/div

Promet Source: Composing a Drupal 7 Site

Fri, 04/10/2015 - 17:07
pWith Drupal 8 on it's way in, PHP's standard practice of using Composer is working its way into a Drupal developer's normal life. Jump ahead of the curve with Promet Source and start using this tool for your Drupal 7 projects with this complete demonstration of a composer workflow using the following packages:/p

InternetDevels: Big Manual for creating CTools popups in Drupal 7

Fri, 04/10/2015 - 15:55
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/photo_for_the_article.jpg width=830 height=553 alt= //div/div/divdiv class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item evenpCreating CTools popups (modal windows) is not a complicated thing, but it has many important nuances. Therefore, this article is devoted to the various nuances of popup creation./pp/ph3span style=font-size: 24px; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;The simplest CTools popup/span/h3p/p a href=http://internetdevels.com/big-manual-for-creating-ctools-popups-in-drupal-7Read more/a/div/div/div

Lullabot: Mental Health and Open Source

Fri, 04/10/2015 - 11:01
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpThis week we have a special episode to talk about mental health. This is a hard topic for many people to speak about publicly, so we're lucky to have Addison Berry joined by Mike Bell, Greg Dunlap, and Blake Hall to dive into this subject. Mike recently a href=http://mikebell.io/mental-health-and-drupalcamp-londongave a presentation/a on this topic at Drupalcamp London. The four of us discuss some of the pressures we feel, ways we try to handle them, ideas for how the community can support help support all of us in good mental health, and some resources to check out./p/div/div/div ul class=field field-name-field-show-notes field-type-link-field field-label-hidden li a href=http://osmihelp.org/Open Source Mental Illness Help/a /li li a href=http://mikebell.io/mental-health-and-drupalcamp-londonMike's presentation slides: Mental Health and Open Source/a /li li a href=https://medium.com/@heyrocker/this-article-was-originally-a-keynote-presentation-at-the-pacific-northwest-drupal-summit-in-5e7c7f93131bGreg's Stay for the Community post/a /li li a href=https://www.youtube.com/watch?v=LlO2_GecWo8amp;index=14amp;list=PL37ZVnwpeshFXOP2lqCUykYPXYNsK_fgNBrian J Brennan: Being Human - JSConf 2014 Video/a /li li a href=https://www.youtube.com/watch?v=0_mgp_VWIe0amp;index=8amp;list=PL37ZVnwpeshFXOP2lqCUykYPXYNsK_fgNJenn Turner: Lessons in Emotional Safety FTW - JSConf 2014 Video/a /li li a href=https://www.youtube.com/watch?v=tt8jjB5gyV4amp;index=41amp;list=PL37ZVnwpeshFXOP2lqCUykYPXYNsK_fgNMatthew Bergman: Health Myths We Tell Ourselves in Tech - JSConf2014/a /li li a href=http://www.thinkpacifica.com/Pacifica: stress management app/a /li li a href=https://www.headspace.comHeadspace: guided meditation/a /li li a href=http://www.calm.com/Calm: sound and visuals for relaxation/a /li li a href=https://drupalize.me/series/introduction-object-oriented-phpIntroduction to Object-oriented PHP video tutorials/a /li li a href=https://drupalize.me/blog/201504/backbonejs-and-underscorejs-drupal-8Backbone.js and Underscore.js in Drupal 8 article/a /li li a href=https://events.drupal.org/losangeles2015/community-summitDrupalCon LA Community Summit/a /li /ul

Chuva Inc.: Drupal Developer Days 2015 is next week!

Fri, 04/10/2015 - 05:00
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpNext week, Drupal Developer Days 2015 will be held in Montpellier, France. For those of you who haven't heard of the event before, Drupal Developer Days is the second most important Drupal event in Europe, held every spring in a different city from the old continent./p img src=http://chuva-inc.com/sites/default/files/cdp-h-present_en.png alt=Drupal Developer Days Montpellier 2015 Logo align=right pThe event is highly technical (expect several advanced talks about Drupal 8 and beyond) and still has the cozy atmosphere we used to have in the old DrupalCons (DrupalCon Barcelona 2007, anyone?), lately it has been my favorite Drupal event./p pEvery year, we from Chuva ship around 5 of our Drupal Developers to attend the event, it's a 10.000 km trip from our home in São Paulo State, Brazil to Montpellier, France; but it's well worth the effort as it allows us an unique opportunity to meet our friends from the Drupal Community, Contribute code on the several sprints and share knowledge with our fellow Drupalistas./p pIf you haven't booked your flight and bought your ticket yet, there is still time, the stronglate bird ticket/strong is strongonly 150.00 €/strong em(which is a bargain when you compare that with $ 550 USD for DrupalCon LA, huh?)/em, it's your best opportunity to connect, meet, share with other drupalistas, a href=http://montpellier2015.drupaldays.org/buy-your-ticket target=_blankbuy your ticket here!/a/p /div/div/divdiv id=comment-wrapper/divdiv class=field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-hiddendiv class=field-itemsdiv class=field-item evena href=http://chuva-inc.com/blog/tags/drupaldeveloperdayDrupalDeveloperDay/a/divdiv class=field-item odda href=http://chuva-inc.com/blog/tags/montpellierMontpellier/a/divdiv class=field-item evena href=http://chuva-inc.com/blog/tags/drupal-planetdrupal planet/a/div/div/div

Mediacurrent: Why Good Markup Matters

Thu, 04/09/2015 - 22:21
img typeof=foaf:Image src=http://d1l4od7sxc8nwf.cloudfront.net/sites/default/files/styles/thumb_blog_spotlight/public/why-good-markup-matters-01.png?itok=tN_nrxmY width=200 height=171 alt=Why Good Markup Matters title=Why Good Markup Matters / pI recently had the opportunity to work on a project for one of a href=http://www.mediacurrent.com/workour clients/a that consisted of building two landing pages using only HTML, CSS and JavaScript. This is not a typical project for us, almost all of the projects we work on are Drupal projects. However, it was a reminder of how great things can be when we have full control of markup authoring./p pAfter working with Drupal for a while, not having to deal with 10 nested divs just to get to the element I want to theme, was refreshing./p

Shomeya: Web-Consulting's Dirty Little Secret

Thu, 04/09/2015 - 22:05
img alt=Article_circle_iris height=199 src=http://cdn.shomeya.com/uploads/article/image/43/article_circle_iris.jpeg width=590 /pIt#39;s the day after a launch and your client calls you in a sheer panic. Traffic is not as high as they#39;d like! Why aren#39;t their new social media features paying off? Don#39;t you know what you#39;re doing? And to top it all off the site is emslow!/em You need to emfix/em this strongnow/strong./p pAs you listen to your client yell, you drift back in time to that first meeting where you both are posturing and laying down the ground rules for each other. Business as usual planning out the new details with excitement and anticipation./p pAnd then emthe/em moment comes back to you. The moment when you said nonchalantly, quot;We can do that feature, but it may cause the site to slow down. Why is this feature so important?quot; And the client, also nonchalantly said, quot;We just need it, our competitors all have it.quot; And you both went back to going over the other features on the list, strongnot realizing that you had just wasted thousands of your client#39;s dollars and hours of your life on something that most users don#39;t give a flying flip about bringing almost zero value to the world, all because everybody#39;s doing it./strong This is how the business just works, and hardly anyone ever questions it./p a href=http://shomeya.com/articles/web-consulting-s-dirty-little-secret?utm_campaign=web-consulting-s-dirty-little-secretamp;utm_medium=rssamp;utm_source=tag-drupal-planetRead more/a

Drupal Watchdog: VIDEO: DrupalCon Amsterdam Interview: Dries Buytaert

Thu, 04/09/2015 - 19:19
div class=field field--body field-type-text-with-summary field-label-hidden field--rss pOn the final Sprint Day of DrupalCon Amsterdam, DRIES BUYTAERT (Drupal Creator and Co-Founder amp; CTO Acquia) generously interrupts his lunch-break for this interview. We find a quiet – more or less – hallway and begin./p pstrongRONNIE RAY/strong: What was the first computer you owned?/p pstrongDRIES BUYTAERT/strong: The first one that I actually used was a Commodore 64, when I was about six years old. It was my dad's, so I can't say that I owned it, but I was able to use it. I liked to use it./p pSo when I was about six or seven years old, my parents bought me some computer books for kids. They were in BASIC. What you had to do was type over these programs. I could barely read or write at the age of six, right? And so I literally spent hours copy-pasting BASIC code from the book into the computer. And then when I would run the program – assuming I did the copy-pasting right, there would be a very little game that I could play./p pSo that’s how I learned BASIC programming even before I could write or read./p pMy dad was a doctor, a medical doctor. He asked me to automate – or to basically make a patient management system – a computer program instead of using paper. And one night he came home from work and he gave me Clipper. I don’t know if anyone remembers Clipper, but it was a data base and programming language not unlike D-Base. He gave me a stack of books, a compiler book, and all these books in English, which was really hard. I remember spending my entire summer vacation trying to help him build this program so he could use a computer to manage his patients. I would read these books along with a dictionary, English to Dutch, to try to figure out how this all works./p pSo increasingly more I got into computers. And then when I finished high school – when I was 17 – I enrolled in a computer science program at the local university./p pstrongRR/strong: Listening?/p pstrongDRIES/strong: I listen to music whenever I can. When I wake up, one of the first things I do is turn on the music. Or when I get home from work, one of the first things I do is turn on music. I listen to everything, and I like a variety. Part of me is still stuck, sort of, in the late-‘90s music, whether it’s Pearl Jam or these kinds of bands./p pstrongRR/strong: Reading?/p pstrongDRIES/strong: I read a lot. I love reading, I love writing as well. I primarily read business books./p pstrongRR/strong: What’s on your nightstand now?/p pstrongDRIES/strong: I was actually reading a book on stoicism, which told the history of stoicism and then tries to apply it to modern life./p pThere is a new book from Peter Thielson, an early investor in FaceBook and co-founder of PayPal. It’s called emFrom Zero to One/em, which is a book of start-ups./p pEver since I moved to the U.S. I’ve gotten into American football. Just watching it on Sunday afternoon, it’s kind of a nice lazy activity after a very active week or travel. I like to sit down on the couch and watch football for an hour or two. I usually don’t watch the entire game, just record it and then I’ll fly through it and watch the end./p pstrongRR/strong: To sum up.../p pstrongDRIES/strong: I’m kind of really interested in scaling, both from a technical point of view -- my PhD research was about scaling software in Java, virtual machines, and Java applications. A lot of the work I did in Drupal also involved scalability in Drupal. Even in business: How do we scale the Drupal Association? How do we grow that organization? Or how do we scale Acquia?/p pSo I feel like maybe it’s a bit of a theme. I’m interested in both the technology side, and also the business side and the people side, and I think that excites me. It excites me to think about what we could be, and I’m trying to figure out: If this is what we want to be, how do we actually get there?/p /div div class=field field--tags field-type-taxonomy-term-reference field-label-above field--rss div class=field-labelspan class=icon glyphicon glyphicon-tag aria-hidden=true/spanTags:nbsp;/div div class=field-items a href=/tags/drupalcon-amsterdam typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=DrupalCon Amsterdam/a a href=/tags/drupalcon typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=DrupalCon/a a href=/tags/video typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Video/a /div/div div class=field field--video field-type-video-embed-field field-label-above field--rss div class=field-labelVideo:nbsp;/div div class=embedded-video div class=player iframe width=640 height=360 src=//www.youtube.com/embed/KPIXeCafc1w?width=640amp;height=360amp;autoplay=0amp;vq=largeamp;rel=0amp;controls=1amp;autohide=2amp;showinfo=1amp;modestbranding=0amp;theme=darkamp;iv_load_policy=1amp;start=0amp;wmode=opaque frameborder=0 allowfullscreen/iframe /div /div /div

Drupal Watchdog: VIDEO: DrupalCon Amsterdam Interview: Dries Buytaert

Thu, 04/09/2015 - 19:19
div class=field field--body field-type-text-with-summary field-label-hidden field--rss pOn the final Sprint Day of DrupalCon Amsterdam, DRIES BUYTAERT (Drupal Creator and Co-Founder amp; CTO Acquia) generously interrupts his lunch-break for this interview. We find a quiet – more or less – hallway and begin./p pstrongRONNIE RAY/strong: What was the first computer you owned?/p pstrongDRIES BUYTAERT/strong: The first one that I actually used was a Commodore 64, when I was about six years old. It was my dad's, so I can't say that I owned it, but I was able to use it. I liked to use it./p pSo when I was about six or seven years old, my parents bought me some computer books for kids. They were in BASIC. What you had to do was type over these programs. I could barely read or write at the age of six, right? And so I literally spent hours copy-pasting BASIC code from the book into the computer. And then when I would run the program – assuming I did the copy-pasting right, there would be a very little game that I could play./p pSo that’s how I learned BASIC programming even before I could write or read./p pMy dad was a doctor, a medical doctor. He asked me to automate – or to basically make a patient management system – a computer program instead of using paper. And one night he came home from work and he gave me Clipper. I don’t know if anyone remembers Clipper, but it was a data base and programming language not unlike D-Base. He gave me a stack of books, a compiler book, and all these books in English, which was really hard. I remember spending my entire summer vacation trying to help him build this program so he could use a computer to manage his patients. I would read these books along with a dictionary, English to Dutch, to try to figure out how this all works./p pSo increasingly more I got into computers. And then when I finished high school – when I was 17 – I enrolled in a computer science program at the local university./p pstrongRR/strong: Listening?/p pstrongDRIES/strong: I listen to music whenever I can. When I wake up, one of the first things I do is turn on the music. Or when I get home from work, one of the first things I do is turn on music. I listen to everything, and I like a variety. Part of me is still stuck, sort of, in the late-‘90s music, whether it’s Pearl Jam or these kinds of bands./p pstrongRR/strong: Reading?/p pstrongDRIES/strong: I read a lot. I love reading, I love writing as well. I primarily read business books./p pstrongRR/strong: What’s on your nightstand now?/p pstrongDRIES/strong: I was actually reading a book on stoicism, which told the history of stoicism and then tries to apply it to modern life./p pThere is a new book from Peter Thielson, an early investor in FaceBook and co-founder of PayPal. It’s called emFrom Zero to One/em, which is a book of start-ups./p pEver since I moved to the U.S. I’ve gotten into American football. Just watching it on Sunday afternoon, it’s kind of a nice lazy activity after a very active week or travel. I like to sit down on the couch and watch football for an hour or two. I usually don’t watch the entire game, just record it and then I’ll fly through it and watch the end./p pstrongRR/strong: To sum up.../p pstrongDRIES/strong: I’m kind of really interested in scaling, both from a technical point of view -- my PhD research was about scaling software in Java, virtual machines, and Java applications. A lot of the work I did in Drupal also involved scalability in Drupal. Even in business: How do we scale the Drupal Association? How do we grow that organization? Or how do we scale Acquia?/p pSo I feel like maybe it’s a bit of a theme. I’m interested in both the technology side, and also the business side and the people side, and I think that excites me. It excites me to think about what we could be, and I’m trying to figure out: If this is what we want to be, how do we actually get there?/p /div div class=field field--tags field-type-taxonomy-term-reference field-label-above field--rss div class=field-labelspan class=icon glyphicon glyphicon-tag aria-hidden=true/spanTags:nbsp;/div div class=field-items a href=/tags/drupalcon-amsterdam typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=DrupalCon Amsterdam/a a href=/tags/drupalcon typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=DrupalCon/a a href=/tags/video typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Video/a /div/div div class=field field--video field-type-video-embed-field field-label-above field--rss div class=field-labelVideo:nbsp;/div div class=embedded-video div class=player iframe width=640 height=360 src=//www.youtube.com/embed/KPIXeCafc1w?width=640amp;height=360amp;autoplay=0amp;vq=largeamp;rel=0amp;controls=1amp;autohide=2amp;showinfo=1amp;modestbranding=0amp;theme=darkamp;iv_load_policy=1amp;start=0amp;wmode=opaque frameborder=0 allowfullscreen/iframe /div /div /div

Drupal Watchdog: Testing 1 2 3

Thu, 04/09/2015 - 17:47
div class=field field--article-edit-printtype field-type-list-text field-label-hidden field--rss Column /div div class=field field--article-body field-type-text-long field-label-hidden field--rss pIn Behat, anything that doesn’t throw an exception is treated as a success. Every custom step definition presents the developer with the responsibility to check for exceptions and the opportunity to increase the value of scenario automation by providing meaningful feedback about failure./p pWe’ll explore this opportunity in the custom step definitions in the following scenario for a site whose main source of income results from presenting a discounted sale product on the front page:/p pre Scenario: Daily Deal discount Given I am on the homepage When I click the Daily Deal Buy now! link Then I should see the product title And the sale price should reflect the discount advertised on the homepage /prep The product and discount change daily, so instead of matching literal text, the first custom step will use a css selector to find the discount amount and product title./p pTo start implementing, run the scenario to generate stubs for the custom steps. Note: --append-snippets can be used to write the output directly to the FeatureContext.php file./p pIt wouldn’t be uncommon to find the first custom step implemented with something like:/p pre /** * @When /^I click the Daily Deal ([^]*) link$/ */ public function iClickTheDailyDealLink($linkText) { $page = $this-gt;getSession()-gt;getPage(); // Limit to the Daily deal block $el = $page-gt;find('css','#daily'); // Find the title for use in the next step $this-gt;product = $el-gt;find('css','h2')-gt;getText(); // Find the discount amount for use in the next step $this-gt;discount = $el-gt;find('css','span#dd-discount')-gt;getText(); // Go to the product page $link = $el-gt;findLink($linkText); if (empty($link)) { throw new Exception('Link not found'); } $link-gt;click(); } /prep There are many ways to improve this step definition, but with respect to exceptions, the first and perhaps most important thing is:/p /div

Drupal Watchdog: Testing 1 2 3

Thu, 04/09/2015 - 17:47
div class=field field--article-edit-printtype field-type-list-text field-label-hidden field--rss Column /div div class=field field--article-body field-type-text-long field-label-hidden field--rss pIn Behat, anything that doesn’t throw an exception is treated as a success. Every custom step definition presents the developer with the responsibility to check for exceptions and the opportunity to increase the value of scenario automation by providing meaningful feedback about failure./p pWe’ll explore this opportunity in the custom step definitions in the following scenario for a site whose main source of income results from presenting a discounted sale product on the front page:/p pre Scenario: Daily Deal discount Given I am on the homepage When I click the Daily Deal Buy now! link Then I should see the product title And the sale price should reflect the discount advertised on the homepage /prep The product and discount change daily, so instead of matching literal text, the first custom step will use a css selector to find the discount amount and product title./p pTo start implementing, run the scenario to generate stubs for the custom steps. Note: --append-snippets can be used to write the output directly to the FeatureContext.php file./p pIt wouldn’t be uncommon to find the first custom step implemented with something like:/p pre /** * @When /^I click the Daily Deal ([^]*) link$/ */ public function iClickTheDailyDealLink($linkText) { $page = $this-gt;getSession()-gt;getPage(); // Limit to the Daily deal block $el = $page-gt;find('css','#daily'); // Find the title for use in the next step $this-gt;product = $el-gt;find('css','h2')-gt;getText(); // Find the discount amount for use in the next step $this-gt;discount = $el-gt;find('css','span#dd-discount')-gt;getText(); // Go to the product page $link = $el-gt;findLink($linkText); if (empty($link)) { throw new Exception('Link not found'); } $link-gt;click(); } /prep There are many ways to improve this step definition, but with respect to exceptions, the first and perhaps most important thing is:/p /div

Wim Leers: Drupal 8 now has page caching enabled by default

Thu, 04/09/2015 - 16:25
pAfter more than a year and probably hundreds of patches, yesterday it finally happened! As of 13:11:56 span class=capsCET/span, April 8, 2015, Drupal 8 officially has page caching enabled by default!sup id=fnref:1a href=#fn:1 rel=footnote1/a/sup And not the same page caching as in Drupal 7: this page cache comes is eminstantly updated/em when something isnbsp;changed./p pThe hundreds of patches can be summarized very simply: emcache tags, cache tags, cache tags/em. Slightly less simple: a href=/blog/renderviz-prototypecacheability metadata is of vital importance in Drupal 8/a. Without it, we#8217;d have to do the same as in Drupal 7: whenever content is created or a comment is posted, emclear the entire page cache/em. Yes, that is as bad as it sounds! But without that metadata, it simply isn#8217;t possible to do better.sup id=fnref:4a href=#fn:4 rel=footnote2/a/sup/p pI#8217;ve been working on this near-full time since the end of 2013 thanks to Acquia, but obviously I didn#8217;t do this alone — so emenormous/em thanks to all of you whonbsp;helped!/p pThis is arguably the biggest step yet to make Drupal a href=/article/performance-calendar-2013-making-the-entire-web-fastFast By Default/a. I hate slow sites with a passion, so you can probably see why I personally see this as a big victorynbsp;:)/p h2Benchmark/h2 pOut of the box, strongDrupal 8 is now between 2 and 200 times faster than Drupal 7 for anonymous users/strong: Drupal 8 will respond in constant time, for Drupal 7 it depends on the complexity of thenbsp;page./p pOn my machine ( codeab -c1 -n 1000/code, PHP 5.5.11, Intel Core i7 2.8 GHz, warmnbsp;caches,):/p h3Drupalnbsp;7/h3 ul liFront-page: 18.5 ms/request (55nbsp;requests/s)/li licodenode/1/code: 23.5 ms/request (43nbsp;requests/s)/li liMore complex pages: easily hundreds of milliseconds, only few requests pernbsp;second./li /ul h3Drupalnbsp;8/h3 pemAlways/em 8.3 ms/request (120 requests/s)sup id=fnref:6a href=#fn:6 rel=footnote3/a/sup./p h2Win-win/h2 pThe real beauty is that it#8217;s a win-win: enterprise (Acquia), medium, small, tiny (hobbyist) allnbsp;win:/p ul liEnterprise sites get very nice reverse proxy/span class=capsCDN/span-basednbsp;hosting/li liTiny sites can easily serve 100 requests/second (gt;8 million requests/day) on sharednbsp;hosting./li /ul pSo my work was sponsored by Acquia, but benefits emeveryone/em!/p pPeople have been expressing concerns that Drupal 8 has become too complex, that it doesn#8217;t care about site builders anymore, that it is only for enterprises, etc. I think this is a good counterexample.br / Yes, we added the complexity of cacheability metadata, but that only affects developers — for whom we have a href=https://www.drupal.org/developing/api/8/render/arrays/cacheabilitygood documentation/a. And most importantly: site builders reap the benefits: they don#8217;t even have to emthink/em about this anymore. Manually clearing caches is a thing of the past starting with Drupalnbsp;8!/p h2Page cache is just a built-in reversenbsp;proxy/h2 pDrupal#8217;s page cache is just a built-in reverse proxy. It#8217;s basicallynbsp;“poormansvarnish”./p pDrupal 8 bubbles all cacheability metadata up along the render tree, just like JavaScript events bubble up along the span class=capsDOM/span tree. When it reaches the tree#8217;s root, it also bubbles up to the response level, in the form of the codeX-Drupal-Cache-Tags/codenbsp;header./p pThe page cache uses that header to know what cache tags it should be invalidated by. And because of that, other (“real”) reverse proxies can do exactly the same. The company behind Varnish even a href=https://www.varnish-software.com/blog/advanced-cache-invalidation-strategiesblogged about it/a. And span class=capsCDN/spans are even starting to support this exact technique a href=http://www.fastly.com/blog/surrogate-keys-part-1/out of the box/a, for example a href=http://www.fastly.com/blog/surrogate-keys-part-2/Fastly/a./p pLast but not least: all of Drupal 8’s integration tests use the page cache by default, which means all of our integration tests emeffectively verify that Drupal works correctly even if they#8217;re behind a reverse proxy/em!/p h2New possibilities for small sites (and sharednbsp;hosting)/h2 pOn one end of the spectrum, I see great shared hosting providers starting to offer Varnish even on their smallest plans. For example: a href=https://www.gandi.net/hosting/simple?language=phpamp;db=mysqlGandi offers Varnish on their €4/month plans/a. If users can configure Varnish — or even better, if they pre-configure Varnish to support Drupal 8’s cache tag-based invalidation — then almost all traffic will be handled bynbsp;Varnish./p pFor 90% or more of all sites, this would quite simply be emgood enough/em: very cheap, very fast, very flexible.sup id=fnref:3a href=#fn:3 rel=footnote4/a/sup/p pI can#8217;t wait until we see the first hosting provider offering such awesome integration out of thenbsp;box!/p h2New possibilities for enterprise sites (and enterprisenbsp;hosting)/h2 pOn the other hand of the spectrum, enterprise hosting now gains the ability to invalidate (purge) emall/em and emonly/em the affected pages on a span class=capsCDN/spansup id=fnref:2a href=#fn:2 rel=footnote5/a/sup. Without having to generate a list of span class=capsURL/spans that a modified piece of content emmay/em appear on, and then purge those span class=capsURL/spans. Without having to write lots of hooks to catch all the cases where said content is beingnbsp;modified./p pAt least equally important: it finally allows for caching content that previously was generated dynamically for every request, because it was a strong requirement that the information always be up-to-datesup id=fnref:5a href=#fn:5 rel=footnote6/a/sup. With cache tag support, and a href=https://api.drupal.org/api/drupal/core%21modules%21system%21src%21Tests%21Entity%21EntityCacheTagsTestBase.php/class/EntityCacheTagsTestBase/8strong guarantees that cache tags indeed are invalidated when necessary/a, such use cases now emcan/em cache the content and still be confident that updates will immediatelynbsp;propagate./p h2New possibilities fornbsp;developers/h2 pFinally, the addition of cache tags and by extension, all render cacheability metadata (cache tags, contexts and max-age), allow for greater insight and tooling when analyzing hosting, infrastructure, performance and caching problems. Previously, you had to analyze/debug a lot of code to figure out why something that was cached was not being invalidated when appropriate by saidnbsp;code./p pBecause it#8217;s now all standardized, we can build a href=/blog/renderviz-prototypebetter tools/a — we can even automatically detect likely problems: suspiciously frequent cache tag invalidations, suspiciously many cache tags … (but also cache contexts that cause too many variations, too low or too high maximum agesnbsp;…)./p h2Nextnbsp;steps/h2 pWarm cache performance is now excellent, but only for anonymousnbsp;users./p pNext week, at a href=http://montpellier2015.drupaldays.orgDrupal Dev Days Montpellier/a, we#8217;ll be working on improving Drupal 8’s emcold cache/em performance (including bootstrap and routing performance). That will also help improve performance for authenticatednbsp;users./p pBut we already have been working several weeks on improving performance for authenticated users. Together with the above, we emshould/em be able to outperform Drupal 7. This is the plan that a href=https://www.drupal.org/u/fabianxFabian Franz/a and I have been workingnbsp;towards:/p ol lismartly caching partial pages for all users (including authenticated users): a href=https://www.drupal.org/node/2429617d.o/node/2429617/a, which requires cache contexts to benbsp;correct/li lisending the dynamic, uncacheable parts of the page via a href=https://www.facebook.com/notes/facebook-engineering/bigpipe-pipelining-web-pages-for-high-performance/389414033919a BigPipe-like mechanism/a: a href=https://www.drupal.org/node/2429287d.o/node/2429287/a/li /ol div class=footnotes hr / ol li id=fn:1 pThat#8217;s commit code25c41d0a6d7806b403a4c0c555f7dadea2d349f2/code.#160;a href=#fnref:1 rev=footnote#8617;/a/p /li li id=fn:4 pIn other words: all of this is made possible thanks to emoptimal cache invalidation/em. Yes, a href=http://martinfowler.com/bliki/TwoHardThings.htmlemthat/em quote/a.#160;a href=#fnref:4 rev=footnote#8617;/a/p /li li id=fn:6 pWe#8217;re also working on making the page cache a href=https://www.drupal.org/node/2368987faster/a. 5 ms/request, or 200 requests per second should be possible.#160;a href=#fnref:6 rev=footnote#8617;/a/p /li li id=fn:3 pAnd not something any other span class=capsCMS/span offers as far as I know — if there is one, please leave a comment!#160;a href=#fnref:3 rev=footnote#8617;/a/p /li li id=fn:2 pKeep an eye on the a href=https://www.drupal.org/project/purgePurge module for Drupal 8/a. It will make it very easy to apply cache tag-based invalidation to self-hosted reverse proxies (Varnish, ngninx…), but also to put your entire site behind a span class=capsCDN/span and emstill/em enjoy instantaneous invalidations!#160;a href=#fnref:2 rev=footnote#8617;/a/p /li li id=fn:5 pYou could already use code#cache[expire]/code in Drupal 7, but in Drupal 8, the combination of code#cache[max-age]/code and code#cache[tags]/code means that you have emboth/em time-based invalidation emand/em instantaneous tag-based invalidation. Whichever invalidation happens first, invalidates the cached data. And therefore: updates occur as expected.#160;a href=#fnref:5 rev=footnote#8617;/a/p /li /ol /div ul class=tags lispan class=lineage-item lineage-item-level-0Acquia/span/li lispan class=lineage-item lineage-item-level-0Drupal/span/li lispan class=lineage-item lineage-item-level-0WPO/span/li lispan class=lineage-item lineage-item-level-0performance/span/li /ul

Drupal Association News: What's new on Drupal.org - March 2015

Thu, 04/09/2015 - 15:35
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpLook for links to our a href=https://www.drupal.org/roadmapStrategic Roadmap/a highlighting how this work falls into our priorities set by the Drupal Association Board and Drupal.org Working Groups./p h2a href=https://www.drupal.org/roadmap/account-creationBetter account creation/a/h2 h3Community User Role/h3 pThe Community user role is the next step of a larger project of improving user role progression on Drupal.org. We began this work by streamlining the account creation and login workflow, which makes it easier for newcomers to jump into Drupal.org and contribute without losing context. The a href=https://www.drupal.org/node/2454285Community user role/a extends this work further by providing new tools to our existing community members and broadly expanding the base of users who can help shepherd newcomers into the community./p pimg width=300px class=left src=https://assoc.drupal.org/files/1.png /We started by simply a href=https://www.drupal.org/node/2446889adding a “New” indicator/a to all user accounts under 90 days old. It’s a small but critical change that helps long standing community members recognize newcomers to the fold, and encourages them to give these new users a warm welcome and a bit of extra help. /p pThe basis of the Community user role is the old spam fighter role, which previously was manually granted to only a small subset of users. This role has primarily been responsible for confirming that other users on the site are not spammers (by granting them ‘trusted’, now called ‘confirmed’). The expanded Community role has the same job - to confirm that users are human - but will now be a role that can be automatically achieved when users reach a certain level of engagement on Drupal.org. We expect as many as 10,000 users to receive this role in the initial grant when the new feature is enabled. This should dramatically increase the attention paid to confirm new users, and make the process of confirming new users at code sprints and training days much, much easier. /p pThe role itself has already been created, and the ‘confirm’ button appears on user profiles. Early April we’ll make sure that users with Community role can confirm users within comments as well - and then enable the initial role grant along with a communication to all Community users. /p h2a href=https://www.drupal.org/roadmap/profilesOrganization and user profile improvements/a/h2 h3Issue Comment Attribution and maintainer Credit UI/h3 pimg width=300px class=right src=https://assoc.drupal.org/files/screenshot1.png /In mid march we launched the a href=https://www.drupal.org/node/2340363UI for attributing comments/a as individuals - as individuals on behalf of an organization - or as individuals on behalf of an organization and/or a customer./p pSince the release of the comment attribution feature 3 weeks ago, we’ve seen 5,564 comments in the issue queues attributed to an organization, representing around 14% of total comments in the issues queues. /p pimg width=380px class=left src=https://assoc.drupal.org/files/screenshot2.png /We’ve also just launched the a href=https://www.drupal.org/node/2369159UI for project maintainers/a to take the attribution data and store final credit for the users and organizations. /p pAll these steps bring a greater level of transparency and introspection to the project and let give us some real data about how Drupal is driven forward. Work on this attribution system will be ongoing, with an option to a href=https://www.drupal.org/node/2453271explicitly attribute comments as a volunteer/a being released shortly, and work towards integrating these a href=https://www.drupal.org/node/2288727attributions into commit messages/a coming up soon. We’ll also be updating both organization and user profiles to better display the work that has been credited in issues./p h2a href=https://www.drupal.org/roadmap/searchMaking Drupal.org Search Usable/a/h2 pWe have scheduled time with a community member that has extensive Solr configuration experience to see what quick wins we can achieve through better configuration. /p pMore extensive search improvements are going to come out of the content strategy work as we define the most important information to show per content type when they appear as a result in search./p h2a href=https://www.drupal.org/roadmap/designContent Strategy and Redesign/a/h2 pThe draft Governance plan outline was finished and presented to Working Group members last month. This follows previously shared draft Drupal.org Content Model. Forum One was busy working on the first draft version of the updated Site map for Drupal.org./p pIn the second half of the month we were focused on working out detailed content types outline. We had a set of brainstorming meetings, where we discussed how all those potential new content types could be implemented technically. Those brainstorms, as well as helpful feedback from the Working Groups, led us to some of the new ideas and changes to the original plans. Hence we are now working on the next revision of all content strategy deliverables, revision which will incorporate all feedback from the Working Group members we have so far./p pAt this point all the different conversations about separate parts of the whole content strategy project fall into place and we see a clear picture of future state content strategy and information architecture of Drupal.org. We are excited to transfer this vision into a set of slides we can share with the Working Groups, Board and the Drupal Community./p h2DrupalCI (a href=https://www.drupal.org/project/drupalcicommunity initiative/a and Drupal 8 blocker)/h2 pimg width=160px class=left src=https://assoc.drupal.org/files/screenshot3.png /We’ve just wrapped up hosting the DrupalCI sprint made possible by a href=https://assoc.drupal.org/d8-accelerate-awarded-grantsDrupal 8 accelerate/a. It was a herculean effort, but we made a href=https://groups.drupal.org/node/463793#comment-1097773tremendous progress/a./p pThe architecture of the complete stack was built out, the test runner code built to it’s final form, containers for test environments created, and we ran through the complete chain from API → Test Runner → Results Site. There is still significant work ahead, but the community members who joined us in Portland did phenomenal work and put in long nights and extra days to produce an impressive testing suite. /p pAssociation staff architected the integration point between Drupal.org and the DrupalCI API and designed the UI for interacting with DrupalCI in the issue queues. On April 8th, association staff and the community volunteers we sprinted with met to recap the sprint and discuss the roadmap items that remain. /p pSpecial thanks to our community volunteers who sprinted with us in Portland: Jeremy Thorson, Nick Schuch, Bastian Widmer, Ricardo Amaro, Paul Mitchum, Mike Prasuhn,br / Karoly Negyesi-- and to Shayamala Rajaram, Angie Byron, and Jonathan Hedstrom who helped us from afar! /p h2Revenue-related projects (funding our work)/h2 h3Try Drupal/h3 pEarly in April, we’ll be releasing some small changes to the Drupal.org home page -- changes that we will continue to iterate on over the course of the coming months. Primarily we’re trying to create rational pathways through the front page for each of our user personas, as well as updating the homepage to better promote and support some of our revenue programs. Try Drupal is one such program that serves both goals./p pFor Newcomers to the Drupal community Try Drupal will ensure that their first experience with Drupal is first class, by helping these users create a Drupal site in 20 minutes or less. In return, our partners providing this service get to put the best of their work forward together with the best of Drupal. /p h3DrupalCon Barcelona/h3 pimg width=240px class=right src=https://assoc.drupal.org/files/screenshot4.png /Even as we ramp up to DrupalCon Los Angeles in May, we’re getting ready to release the full site for a href=https://barcelona2015.drupal.org/DrupalCon Barcelona/a. This will be the second site on the new events.Drupal.org unified site, so we’ve be proving out some of the work we did to make it multi-event friendly, and making some additional adjustments and changes as we need them. /p pWe’ll also be preparing for announcements for next year’s cons (Shh!) so there’s some additional UX and feature work underway to support those upcoming sites as well. /p h2Sustaining Support and Maintenance/h2 h3Elections 2015/h3 pElections were a great success this year. Improvements to the candidate profiles, ballot pages, and voting UI helped us reach our highest level of community engagement in Board elections. 24 candidates from 14 countries nominated, and with 1,432 ballots cast, we a href=https://assoc.drupal.org/blog/holly.ross.drupal/2015-large-board-elections-announceddoubled our voter turnout compared to last year/a. /p pimg width=300px class=left src=https://assoc.drupal.org/files/screenshot5.png /Congratulations to a href=https://www.drupal.org/u/add1sunAddison Berry/a who joins as the new Director-at-Large from the community! /p pWe’re collecting feedback on the experience from both candidates and voters and will continue to improve the elections process next year. /p h3Fastly/h3 pThe Drupal.org updates infrastructure (updates.drupal.org) is next to receive an architecture refresh. We are working to move the updates infrastructure to use a similar “instance purge” model, allowing for updates to be delivered more quickly. This also lets us set a very long TTL because new updates will purge the previous versions./p p---br / As always, we’d like to say thanks to all volunteers who are working with us and to the Drupal Association a href=https://www.drupal.org/supportersSupporters/a, who made it possible for us to work on these projects./p pFollow us on Twitter for regular updates: a href=https://twitter.com/drupal_org@drupal_org/a, a href=https://twitter.com/drupal_infra@drupal_infra/a./p /div/div/divdiv class=field field-name-taxonomy-vocabulary-4 field-type-taxonomy-term-reference field-label-abovediv class=field-labelPersonal blog tags:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/personal-blog-tags/whats-new-drupal.orgwhats new on Drupal.org/a/div/div/div