Planet Drupal

Syndicate content - aggregated feeds in category Planet Drupal
Updated: 5 min 51 sec ago

Don't Panic: A blog about Drupal: Sprinting for the first time

Sat, 10/04/2014 - 08:27
article id=node-137 class=node node-illustrerande-bild clearfix about=/en/sprint typeof=sioc:Item foaf:Document header h2 class=title property=dc:title datatype=a href=/en/sprint/a/h2 /header div class=content div class=field field-name-field-image field-type-imagefield-crop field-label-hiddendiv class=field-itemsdiv class=field-item evenimg typeof=foaf:Image src= width=589 height=253 alt= //div/div/div /div footer /footer /article !-- /.node -- pFor many years, I've been using Drupal as many people do - by clicking, publishing information and creating websites through the addition of modules and themes. I know how to code in PHP, but with my involvement in the local Drupal community, organizing three DrupalCamps in Gothenburg (2012, a href= and a href= and having family and friends, there hasn't been much time to dig down into Drupal and help out with issues and writing code./p pWhen DrupalCon Amsterdam came closer I chose to take a couple of vacation days, and stay for the sprints after the camp. To take part in the First-time Sprinter Workshop on Friday and learn how to code in Drupal./p h2span style=line-height: 20.7999992370605px;First-time Sprinter Workshop/span/h2 pWe were a big bunch of people, gathered in a room at the Amsterdam RAI, to learn how to code, or at least how to help out. We would have three hours of introduction, which I had high hopes for. Apart from us, there were about 20 mentors helping out. The first thing we had to do was to install all necessary programs, like GIT, Acquia Dev Desktop, Limechat etcetera. Since I work with GIT, have been on IRC for many years, nothing of this was new. Installspan style=line-height: 1.6em;ing the Dev Desktop was troublesome though, and much time went to figure out what was wrong. During this time I couldn't pay attention to what was said about and the issue queue, so suddenly I had no idea of what to do with my (slightly) new coding environment. I just didn't know what to do. I asked one of the mentors, and he said to go find an issue in the Drupal Core and work on that. Work on it how? What should I do with it? This was why I wanted to stay for the sprinting, to learn what to do, perhaps even how to do it. Frustration was creeping up on me.../span/p h2YesCT to the rescue!/h2 pSo I sat down in front of the issue queue and tried to find something to do. I didn't know what to look for, and I ended up helping out on IRC and helping a guy sitting next to me, who knew less about GIT than me. Felt good to help someone, and to actually feel useful. Then suddenly Cathy Theys, YesCT on a href=, comes in and asks some of the guys in the room if the mentors had explained what to do when the coding environment installation is done. Since they hadn't been that thorough, Cathy took some time to do so, and that was so welcome. Suddenly I actually had some clue of what to do. A little better clue anyway. With Cathy's words in mind, I also asked a mentor called Andy if he could help me finding something to focus on. He took care of me, placing me next to two other guys who are new to Drupal coding as well, and together we explored the issues queues, trying to find appropriate tasks to do./p h2Is that a wall heading my way?/h2 pI realised quickly that even an issue tagged with 'novice' was often to hard for me, since I'm new to Object Oriented Programming, but after a while I started reviewing a patch here, a patch there and summarizing an issue here and an issue there. A fellow podcast member, Kristoffer Wiklund, said that even though everyone here wants as many as possible working on, patching and reviewing Drupal 8, there are still thousands of themes and modules out there, both getting re-written for Drupal 8, but also having issues for Drupal 7. Therefore, I also took time to look at some of the modules and themes that I use, to see if I could help out there. And I could! You can't imagine the feeling when I'm suddenly taking baby-steps towards helping out more and more. My Dashboard on was, within the hours, filling up with comments of what I've summarized, what I've added and reactions to my comments. That, my fellow Drupalistas, is something you can't put a price tag on./p h2Ending on a high note/h2 pThe day started quite bad, but ended much better, in two ways. Apart from the wounderful mentoring of Andy, we were also approached by some other mentors handing out a handful of cards, with different tasks on them. It was Sprint task cards, and when summarizing what I've been doing with Drupal for the last 4 years and what I've done during DrupalCon Amsterdam, I suddenly was eligible for 4 out of 6 cards. Sure, the mentors were a bit nice on some tasks, but it felt really good on getting 4 stickers with Explorer, Mentor, Issue mover and Community contributor. The last one was extra nice, since I work quite hard on arranging the a href= in Sweden/a./p h2One more thing... /h2 pBut that was only one thing that made the day extra special. What about the other? At 5 o'clock, Cathy entered the room and announced it was time to see when webchick, Angie Byron, commits patches to Durpal 8 core live - on stage. Well, there wasn't a stage, but at least in front of everybody. I was sitting at the desk in the front, so I had a very good seat. They did the commits, and denied some, and everything was nice and so. Webchick has a really good sense of humour which made everything extra nice. In the end she thanked the people who had made the patches she committed this afternoon but then span style=line-height: 20.7999992370605px; - and I could applause this for a very long time - /spanshe also said that it's all of us who are important, from the tiniest little bug reporter to those who do screenshots and write summaries. That showed me that I really can make a difference and that I shouldn't pack it up and go home, just because I can't write code that fixes all the major bugs in Drupal 8. And now for the good part - when Angie asks everyone that had helped out with patches to stand up I thought I shouldn't stand, but my mentor Andy encouraged me to stand up. Sure, I had helped, but I didn't think it mattered that much. But he did. And I thank him for that. That extra encouragement made me want to go home and continue looking through the issue queues at, helping out, fixing it. So we can get Drupal 8 out the door. Together./p p(I ended up visiting an art exhibition of LEGO statues called 'Art of the brick' that evening, but that's a href=/node/137a different story/a.)/p

Appnovation Technologies: Unit and Functional Testing in Drupal

Sat, 10/04/2014 - 01:12
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encoded pDrupal 7 comes by default with the simpletest (Testing) module which allows you to run test cases against your code, whether it's a small piece of code such as a function, or an entire workflow./p/div/div/divdiv class=field field-name-field-blog-header-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evena href=/blog/unit-and-functional-testing-drupalimg typeof=foaf:Image src= width=680 height=200 alt= //a/div/div/divdiv class=sharethis-buttonsdiv class=sharethis-wrapperspan st_url= st_title=Unit and Functional Testing in Drupal class=st_facebook/span span st_url= st_title=Unit and Functional Testing in Drupal class=st_twitter/span span st_url= st_title=Unit and Functional Testing in Drupal class=st_sharethis/span script type='text/javascript'var switchTo5x = false;/scriptscript type='text/javascript' src=''/scriptscript type='text/javascript'stLight.options({publisher:dr-75626d0b-d9b4-2fdb-6d29-1a20f61d683});/script/div/div

Blue Drop Shop: Drupal Camp A/V Kit REBOOT!

Fri, 10/03/2014 - 23:15
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpemThis is a continuation of the discussion started here: a href= pThe session record kits we tested at DrupalCamp Fox Valley 2014 show a lot of promise for easy-to-use, affordable recording stations. There are some issues that need to be worked out and some additional testing to be done before we can approach the Drupal Association to consider making them available for camps./p pWhile most sessions were recorded flawlessly, we ran into a few issues:/p ulliOne presenter laptop (MacBook Air) never successfully made a connection, but luckily we were able to capture a QuickTime screen record/li liThere is no indicator of the audio levels, and three sessions were lost due to no audio/li liThe record is stopped if the presenter laptop goes to sleep, so we lost a session due to that/li liThe touch audio panel is visually misleading to presenters, and very touch sensitive/li liThere is only one audio input, so to record multiple presenters, we need to test a small mixer to accept multiple inputs and output one audio channel to the recorder/li liThe projector must be able to take a 1920x1080 signal/li liThe VGA to HDMI adapter didn’t hold a tight connection to the VGA cord for the projector, so we scored some tip ties from the venue AV department. This was inconvenient when we had to switch out the cords/li liThe audio was a bit too quiet, so we should have used the +20db boost for the records/li liThere is a detectable clicking on some of the audio records, though can’t say why/li liAdditional dongles need to be purchased and tested to capture from various tablets for presenters that come in without a laptop/li /ulh2Next Steps/h2 pBefore this can be ready for prime time, the audio issue definitely needs to be overcome. I’m hoping to find a digital audio recorder that can feed audio out, which would then pipe into the recording device. This would give direct feedback via the audio recorder as well as a backup audio channel. If we had this, we could have saved three session records, since the video capture was perfect. /p pThe mics proved to be the weakest link. Three sessions were lost because of no audio channel. Hard to say why, but it’s possible that the on/off switch was inadvertently switched off after initial setup, or the unit was muted (seems less likely). It would be worth testing if a portable audio recorder can feed audio in to the record device. That would also overcome the issue of multiple presenters./p pAlso, with better communication with the presenters, after we hook up the kit, they can be in charge of the start/stop of the record, since that big red “easy” button can’t get any simpler. Maybe a simple printed sheet listing the various indicators on the device. This would eliminate the need to trim and re-process in post./p pUltimately, with predictable/boosted audio and no need of trimming, session videos could be uploaded directly from the thumb drives./p pBonus points if there is a converter out there to take the 1080 signal out of the recorder and downsample it for older projectors./p h2 The Beta Kit/h2 pstrongRecord Device - $140/strongbr / Hauppauge HD PVRbr /a href= pThis device provides a pass-through record of the presenters laptop directly onto a USB thumb drive. The movie format is an H.264 1920 x 1080 AAC 30 FPS MP4 video. /p pThe unit takes HMDI or component video (with a provided adapter cable) in and provides HDMI out. For audio, there is a 3.5mm microphone jack. To start and stop the record, you basically push the big red button. The audio touch panel lets you mute/unmute the microphone, increase the volume and add 20db boost. /p pstrongPowered Microphone - $32 /strongbr / Audio-Technica ATR-3350 Lavalier Omnidirectional Condenser Microphone  br /a href= pstrongHDMI to VGA (connects to projector) - $10/strongbr / VicTsing 1080P HDMI Male to VGA Female Video Converter Adapter Cable For PC Laptop DVD HDTV PS3 XBOX 360 and other HDMI inputbr /a href= pstrongVGA to HDMI (support non-HDMI PC laptops) - $25/strongbr / IO Crest VGA to HDMI Convertor with Audio support (SY-ADA31025)br /a href= pstrongMini Display Port to HDMI (support non-HDMI Mac laptops) - $10/strongbr / PNY A-DM-HD-W01 Mini DisplayPort to HDMI Adapterbr /a href= h2 Additional Untested Equipment/h2 pstrong2-4 Presenters, if a standalone digital audio recorder does not work/strong/p p4-channel mixer - 17.44br / Nady MM-141 4-Channel Mini Mixerbr /a href= p1/8” to 1/4” - 2.3br / Hosa GPM-103 3.5mm TRS to 1/4 TRS Adaptorbr /a href= p1/4” to 18” - 1.95br / Hosa Cable GMP386 1/4 TS To 1/8 Inch Mini TRS Mono Adaptorbr /a href= pstrongVarious tablet support and alternate dongles/strong/p pCable Matters SuperSpeed USB 3.0/2.0 to HDMI/DVI Adapter for Windows and Mac up to 2048x1152/1920x1200 in Black - 47.99br /a href= pVicTsing Dock to HDMI AV Cable Adapter for iPhone 4 4S iPad 1 2 New iPad (1080P) - 11.99br /a href= pLightning Digital AV Adapter - 43.37br /a href= pEnjoyGadgets Thunderbolt to HDMI Video Adapter Cable, with Audio Support - 9.98br /a href= pMicro HDMI (Type D) to HDMI (Type A) Cable For Microsoft Surface - 5.99br /a href= pSkiva MHL Micro USB to male HDMI cable (6.5 feet) for Samsung Galaxy S3 (SIII LTE i9300 L710 i747 i535 T999), Samsung Note 2, Galaxy S2, Galaxy Note, HTC One X, LG Optimus HD and other MHL Devices (HD-X3) - 11.99br /a href= pLinkS Micro USB to HDMI MHL cable +Micro 5pin to 11pin adapter + 3 Feet Charging Cable in Black Kit-(Compatible with any MHL enable smartphones and tablets) (Adapter kit) - 12.99br /a href= pCable Matters Gold Plated DisplayPort to HDMI Adapter (Male to Female) with Audio in Black - 11.99br /a href= pSamsung ET-H10FAUWESTA Micro USB to HDMI 1080P HDTV Adapter Cable for Samsung Galaxy S3/S4 and Note 2 - Retail Packaging - White - 28.91br /a href= pUSB A Male to Mini 5 pin (B5) Female Adapter - 2.97br /a href= pVarious HDMI converters - 13.99br / AFUNTA Hdmi Cable Adapters Kit (7 Adapters)br /a href= pHDMI cable - 7.69br / Twisted Veins 1.5ft High Speed HDMI 3 Packbr /a href= pVGA to component video (would still need component video cables) - 7.24br / 6-Inch HD15 to Component RCA Breakout Cable Adapter - M/F (HD15CPNTMF)br /a href= pstrongPersonal Voice Recorder Option/strong/p pPersonal Voice Recorder with audio line out - $160br / Zoom H2n Handy Recorderbr /a href= pZoom APH2n Accessory Pack for H2n Portable Recorder - $40br / AC adapter, case, wired remote, tripod, and other goodiesbr /a href= p3.5mm audio cable - $9br / FRiEQ® 3.5mm Male To Male Car and Home Stereo Cloth Jacketed Tangle-Free Auxiliary Audio Cable (4 Feet/1.2M)br /a href= p32MB SD Card - $17br / SanDisk Ultra 32GB SDHC Class 10/UHS-1 Flash Memory Card Speed Up To 30MB/sbr /a href= /div/div/divdiv class=field field-name-field-tags field-type-taxonomy-term-reference field-label-above clearfixh3 class=field-labelTags: /h3ul class=linksli class=taxonomy-term-reference-0 rel=dc:subjecta href=/tags/drupal-planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=drupal planet/a/lili class=taxonomy-term-reference-1 rel=dc:subjecta href=/tags/drupal-camps typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=drupal camps/a/lili class=taxonomy-term-reference-2 rel=dc:subjecta href=/tags/session-recording typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=session recording/a/li/ul/div

Blue Drop Shop: Adding Your Theme Classes to CKEditor

Fri, 10/03/2014 - 23:08
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpWYSIWYG editors are the bane of my existence, yet they are a necessary evil if you have clients that want to edit their site content./p pBut somewhere between all the inline styles they create to editing source code, there simply had to be a solution that would let me open up my theme css to content creators. /p pAfter much searching and testing, I have found that unicorn. /p pCKEditor populates the style drop down menu with a js file, and it lets you override it. Problem is, as stated in the docs, it doesn't work. And there were a few various options posted in the CKEditor module issue queue. /p pFirst off, you create a new js file to name a function that will build the drop down select items and the parameters for each. Contrary to what has been suggested in various posts, I put this in my theme's js folder. That way it won't get overridden by a module or library update, and it just makes sense since it's tied to my theme. Only CKEditor will be looking for this file, so there's no need to call it in your template files nor add it to your .info file. /p pFor example, I created a file named ckeditor_styles.js like so:br /  /p p( function() {br /     CKEDITOR.stylesSet.add( 'my_styles', [ // this is the styles set name you will call laterbr /         { name: 'Teal Heading 2', element: 'h2', attributes: { 'class': 'teal' } }, br /         { name: 'Teal Text', element: 'span', attributes: { 'class': 'teal' } },br /         { name: 'Unbold Heading', element: 'span', attributes: { 'class': 'unbold' } }br /     ]);br / } )();/p pIt's pretty straightforward. The name parameter is what you will actually select in the drop down. The element is where you specify where to inject the class. If it's a block-level element (h1, h2, div, p, etc.), the class will added. If it's a span, then the selected text will be wrapped in a classed span. As for attributes, that's where you specify you are calling a class, and also provide the name of the class you want to inject. The resulting drop down will be split into block styles and inline styles./p pThe second step is to let CKEditor know where to find this file, via the advanced options section in the configuration. Navigate to admin/config/content/ckeditor and edit the profile you wish to add this to, most likely Full HTML. Docs will say you only need to set config.stylesSet, but as gleaned from the issue queues (and tested personally), you need to also set config.stylesCombo_styleSet./p pExpand the Advanced Options field set and add the following to the Custom JavaScript Configuration with your styles set name and the path to your js file:/p pconfig.stylesCombo_stylesSet = 'my_styles:/sites/all/themes/mytheme/js/ckeditor_styles.js';br / config.stylesSet = 'my_styles:/sites/all/themes/mytheme/js/ckeditor_styles.js';/p pClear your caches and you should now be able to pick styles from your drop downs that will add either standard elements or spans with the desired classes. /p pSources:br /a href=!/guide/dev_howtos_styles!/guide/dev_howtos_styles/abr /a href= /div/div/divdiv class=field field-name-field-tags field-type-taxonomy-term-reference field-label-above clearfixh3 class=field-labelTags: /h3ul class=linksli class=taxonomy-term-reference-0 rel=dc:subjecta href=/tags/theming typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=theming/a/lili class=taxonomy-term-reference-1 rel=dc:subjecta href=/tags/configuration typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=configuration/a/lili class=taxonomy-term-reference-2 rel=dc:subjecta href=/tags/drupal-7 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=drupal 7/a/lili class=taxonomy-term-reference-3 rel=dc:subjecta href=/tags/drupal-planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=drupal planet/a/lili class=taxonomy-term-reference-4 rel=dc:subjecta href=/tags/site-building typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=site building/a/li/ul/div

Blue Drop Shop: Drupal Camp Organizers, Unite!

Fri, 10/03/2014 - 23:04
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpAt DrupalCorn Camp 2014, there seemed to be a fairly high number of camp organizers in attendance, so we held what I like to think of as a SuperBOF. I think we pulled four banquet tables together in order to fit everyone./p pThe purpose was to share pain points and just brainstorm camp stuff. Notes were taken and the doc is shared publicly here: a href= pMost of the discussion was centered around information sharing and coordination of efforts and how to accomplish that. We had thought that creating a private group on g.d.o for organizers to share not-ready-for-prime-time information would work. Turns out, that's not the case, as private only means there is moderation on who can join, but all posts are fully public./p pWhy a private group? Well, mostly for shared contact lists, proposed dates for coordinated planning before announcements, things like that. The intent also is to publicly share as much knowledge as we can, but in a centralized place that's a little less cumbersome than g.d.o./p pIn addition, we created a #drupalcamp IRC channel, and you should totally join if you are a camp organizer. /p pSo stay tuned, add your name to the doc if you want to be included on the proposed quarterly meeting, and join the channel so collaboration can start now!/p /div/div/divdiv class=field field-name-field-tags field-type-taxonomy-term-reference field-label-above clearfixh3 class=field-labelTags: /h3ul class=linksli class=taxonomy-term-reference-0 rel=dc:subjecta href=/tags/drupal-camps typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=drupal camps/a/lili class=taxonomy-term-reference-1 rel=dc:subjecta href=/tags/drupal-planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=drupal planet/a/lili class=taxonomy-term-reference-2 rel=dc:subjecta href=/tags/irc typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=irc/a/li/ul/div

Chapter Three: Chapter Three at Drupalcon Amsterdam

Fri, 10/03/2014 - 20:51
pspan id=docs-internal-guid-667dfd53-d755-7766-07bb-8910b9613770 style=line-height: 1.538em;Wrapping up today, a href=https://amsterdam2014.drupal.orgDrupalcon Amsterdam/a/spanspan style=line-height: 1.538em; created a big buzz around Drupal 8. A crew of over 2,100 participated in /spanspan id=docs-internal-guid-667dfd53-d755-7766-07bb-8910b9613770 style=line-height: 1.538em;sessions, sprints and keynotes, and celebrated the release of the /spana href= style=line-height: 1.538em;Beta 1 version of Drupal 8/aspan style=line-height: 1.538em;./span/p

CiviCRM Blog: Future First's Contact View Edit

Fri, 10/03/2014 - 20:10
div class=field field-name-body field-type-text-with-summary field-label-hidden div class=field-item even property=content:encodeddiv Sadly all good things must come to an end./div div  /div div Here at the CiviCRM 2014 Edale Sprint we've been working closely with members of the core team. As well as fixing bugs, working on integrating Google Summer of Code projects, and readying extensions for release, it's been an excellent opportunity for the Future First Software Developers to learn directly from the CiviCRM experts themselves./div div  /div div In a presentation I showed something that the Future First Software Development Team made recently - a brand new contact screen. It went down a treat, so here's a blog article revealing how we did it!/div div  /div div strongBackground:/strong/div div  /div div Future First is a charity that helps state-funded schools and colleges mobilise their former students for the benefit of their current students. Former students can do this by attending in-school events to inspire current students, by offering mentoring or work experience opportunities, by assisting in fundraising, or even by appearing on a poster displayed in the school!/div div  /div div A key part of Future First's offering is a Teacher Dashboard that teachers can log into to engage with their former students. This mostly involves an extensive search system and a communal inbox. It is built from a combination of Drupal custom modules and CiviCRM custom extensions./div div  /div div strongThe legacy:/strong/div div  /div div Future First's Teacher Dashboard is a legacy system. Initially a screen was created to allow teachers to view contacts, based off a profile (with a separate screen to edit). Then notes were attached, so that teachers could add, edit, and remove notes about the alumni. When our Mailbox was operational we added each mail send to and from that alumnus to the profile screen too. Afterwards we added the ability to record mobilisations, so they made their way onto the screen as well!/div div  /div div The result was not pretty: an overburdened, messy screen that didn't allow teachers to view or edit all of the information that was being stored by CiviCRM. It was very slow, as all the mobilisations and emails had to be loaded just to add or remove a note. And everything had to be loaded once to view the contact, then again to edit it, and then a third time to see the saved edit./div div  /div div It was time to start over. /div div  /div div strongThe requirements:/strong/div div  /div div Our main requirements were: /div div - fast/div div - have only one screen for both editing/div div - neater/div div - view and edit everything/div div - maintainable. Our system is growing rapidly, and the screen should be ready to support that./div div  /div div strongThe plan:/strong/div div  /div div With three members of staff to work on the project, it needed to be modular. The data was broken into logical categories, and an api and template file was created for each of these. This structure translated directly into the different tabs./div div  /div div Only the data on the first tab is loaded. When other tabs are clicked AJAX calls the API function for that tab. This retrieves the relevant data, which some jQuery then puts into the appropriate place./div div  /div div Inline editing was used for each field. This feature, provided by the CiviCRM core, allows our users to view and update data without needing to move between different screens. Sadly, this didn't let us update custom data, so we patched it and offered our patch to the core!/div div  /div div strongThe results:/strong/div div  /div div  /div /div /div div class=field field-name-upload field-type-file field-label-hidden div class=field-item eventable class=sticky-enabled theadtrthAttachment/ththSize/th /tr/thead tbody tr class=oddtdspan class=fileimg class=file-icon alt= title=image/png src=/modules/file/icons/image-x-generic.png / a href= type=image/png; length=88576contact_screen_1.png/a/span/tdtd86.5 KB/td /tr tr class=eventdspan class=fileimg class=file-icon alt= title=image/png src=/modules/file/icons/image-x-generic.png / a href= type=image/png; length=70812contact_screen_2.png/a/span/tdtd69.15 KB/td /tr tr class=oddtdspan class=fileimg class=file-icon alt= title=image/png src=/modules/file/icons/image-x-generic.png / a href= type=image/png; length=99346contact_screen_3.png/a/span/tdtd97.02 KB/td /tr tr class=eventdspan class=fileimg class=file-icon alt= title=image/png src=/modules/file/icons/image-x-generic.png / a href= type=image/png; length=67521contact_screen_4.png/a/span/tdtd65.94 KB/td /tr /tbody /table /div /div div class=field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-hidden clearfix ul class=field-items li class=field-item even a href=/category/civicrm-blog-categories/drupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal/a /li li class=field-item odd a href=/category/civicrm-blog-categories/extensions typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Extensions/a /li /ul /div

Victor Kane: DrupalCon Amsterdam 2014 - Historic Mirror on Drupal's Future

Fri, 10/03/2014 - 18:18
!-- google_ad_section_start --pDrupal has immersed all our lives in the web, and the biggest conclusion we can draw from this DrupalCon is that Drupal in particular and we, as creators and consumers of Drupal, are all being rocked to the core by the fast pace of change in the industry. Changes in the development, scope, architecture, process and workforce dynamics prevalent in the development and acquisition of ever-more complex web applications and systems are rocking Drupal too, and the result is a scrambling for solid footing./p pThe footing we all find, and the journeys we take to find it, will determine our future./p pFirst and foremost we need to come to grips with the debates, with what is shaping up. We need to learn a lot just to fathom the consensus on what the options are now. Then we must prick up courage and make choices./p pBut one truth is acknowledged by all: there is no simple and straightforward path forward, from here on in we mix and match, we build on an industry-wide workbench to common standards, or we build not at all. There is no more protective balloon, the big blue bubble has burst, or worse, is in the act of bursting now./p pBut this is not a bad thing. We just need to keep our heads, even ifnbsp;a href= target=_blankDrupal cannot/a. If we can drivenbsp;a href= target=_blank@eaton/a'snbsp;a href= target=_blankPromiscuous Drupal/anbsp;to its logical limit, if we cannbsp;a href= target=_blankKeeping it Simple/anbsp;withnbsp;a href= target=_blank@sdboyer/anbsp;we can bring that knowledge back to the community no matter what, asnbsp;a href= target=_blank@crell/anbsp;guides us throughnbsp;a href= target=_blankManaging Complexity/anbsp;(be sure to check outnbsp;emhis/emnbsp;reading list) and thenbsp;a href= target=_blankportals decouple/a, while beset withnbsp;a href= target=_blankNew Wave PHP/a, and at every turn:nbsp;a href= target=_blankDrupal in the Hip Hop Virtual Machine/anbsp;with thenbsp;a href= target=_blank@outlandishjosh/a./p pThat's the intoxication of sampling the key presentations from this historic DrupalCon Amsterdam 2014: let's find out what it's all about./p pOf course, this is just my own shortlist (grouped by topics, of which, it is worth pointing out, headless is second only to Drupal 8 and way ahead of anything else as a concern), but whether or not I left out any well-deserving items from the list, it's more than enough to be able to say Wow, we live in interesting times./p h3Keynote/h3 ul lia href= target=_blankKeynote: Dries Buytaert/a/li /ul h3Drupal 8/h3 ul lia href= target=_blankDrupal 8: The Crash Course/a/li lia href= target=_blankManaging Complexity/a/li lia href= target=_blankDrupal 8 CMI on Managed Workflow/a/li lia href= target=_blankTwig and the new Drupal 8 Theme System/a/li lia href= target=_blankDrupal 8 multilingual hands-on/a/li lia href= target=_blankDrupal 8 Media/a/li /ul h3Headless Drupal/h3 ul lia href= target=_blankTurbocharging Drupal syndication with Node.JS/a/li lia href= target=_blankDecoupled Front-end and the Future/a/li lia href= target=_blankBuilding Modern Web Applications with Ember.js and Headless Drupal/a/li lia href= target=_blankA Decoupled Drupal with Silex/a/li lia href= target=_blankBOF: Zariz amp; RESTful - We've got your headless covered/a ul lia href= target=_blankVideo/a/li /ul /li /ul h3PHP Renaissance/h3 ul lia href= target=_blankDrupal in the Hip Hop Virtual Machine/a/li lia href= target=_blankNew Wave PHP/a/li lia href= target=_blankOOP For Drupal Developers/a/li lia href= target=_blankDrupal’s PHP Component Future/a/li /ul h3Web Dev Future/h3 ul lia href= target=_blankStyleguide-Driven Development: The New Web Development/a/li lia href= target=_blankDistributed Companies are the Future/a/li lia href= target=_blankOpen Source Enterprise Continuous Delivery with Go/a/li /ul h3Drupal 7/h3 ul lia href= target=_blankFuture-Proof your Drupal 7 site/a/li /ul pCheck some of these out, we need to talk about this over the next few days./p pAnd in later articles and repos, I will be sharing concrete examples of how I am dealing with all of this, and how I am planning, well, my future./p !-- google_ad_section_end --div class=og_rss_groups/divpa href= target=_blankread more/a/p

Code Karate: Drupal 7 Search Krumo Module

Fri, 10/03/2014 - 18:16
div class=field field-name-field-episode-number field-type-number-integer field-label-abovediv class=field-labelEpisode Number:nbsp;/divdiv class=field-itemsdiv class=field-item even171/div/div/divdiv class=field field-name-field-ddod-video field-type-file field-label-hiddendiv class=field-itemsdiv class=field-item evenimg src= alt=Drupal 7 Search Krumo Module - Daily Dose of Drupal episode 171 //div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpThe Drupal 7 Search Krumo Module extends the Devel module and makes it easier to debug PHP variables while developing Drupal modules or building Drupal themes. It adds a simple search box that allows you to quickly search through the Krumo output that is generated by the dpm function./p pIf you want to try it out quickly, simply download and install the module and run the following code on the variable you want to debug:/p/div/div/divdiv class=field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-abovediv class=field-labelTags:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/category/tags/drupalDrupal/a/divdiv class=field-item odda href=/category/tags/drupal/drupal-7Drupal 7/a/divdiv class=field-item evena href=/category/tags/drupal/module-developmentModule Development/a/divdiv class=field-item odda href=/category/tags/drupal/theme-developmentTheme Development/a/divdiv class=field-item evena href=/category/tags/drupal-planetDrupal Planet/a/divdiv class=field-item odda href=/category/tags/tips-and-tricksTips and Tricks/a/div/div/div

ThinkShout: Getting Started with Behat

Fri, 10/03/2014 - 18:00
h2Situation/h2 pSuppose you build a site, it works great, the client loves it, you launch it, and the client still loves it. Yay! Now life goes on, and six months later, the client comes back to you saying they see a red box when they are logged in, with a message about security updates. You look and see that Drupal core, ctools, rules, views, commerce, date, and a handful of other modules have updates availalbe. Some are security updates, and others are bugfix/feature updates./p pSo you want to update this code to resolve security issues and improve the functionality of the site. But how can you be sure that these code updates will not hurt or break any of the existing functionality? You could revisit all of your feature work from six months to a year ago and confirm that those features still work as intended. But that can be time consuming and disrupt your other work./p pSo how do you make updates, whether updating contrib code or doing new custom work, with confidence that you#39;re not breaking essential funcionality and without wasting countless hours doing a bunch of manual testing?/p h2A Better Solution: Automated Testing/h2 pLet a machine do it for you. There are several categories of automated testing:/p ul liUnit testing. This tests that a small piece of code, a function, behaves as expected./li liIntegration testing. These combine several Unit tests in logical groups, to ensure that they work together properly./li liSystem testing. This tests the system as a whole, and is mainly code oriented, but starts to touch how real people would use the system./li liBehavioral testing. Acceptance testing. Customer testing. This involves clickthroughs, user behavior. This is what we are mainly interested in, and what I am talking about today. You will also hear this referred to as BDD or Behavior Driven Development./li /ul h2Enter Behat/h2 pa href=http://behat.orgBehat/a is an automated testing system. Its strength is in behavioral testing, so it fits perfectly in our use case./p pBehat tests are written in plain English phrases which are then combined into human readable scenarios. This was inspired by Ruby#39;s a href= project and a href= syntax. This is probably the most appealing aspect of Behat. Most tests are understandable by anyone, whether you#39;re a developer, project manager, or business owner./p pBehat is the core framework used for running tests. It is capabable of testing several types of systems: terminal commands, REST APIs, etc. To enable Behat to test web pages, you need to add a href=http://mink.behat.orgMink/a and a browser emulator to the mix. Mink functions as the connector between Behat and browser emulators, and provides a consistent testing API./p pThere are several commonly used browser emulators. Some, like a href=, are very fast, but don#39;t support JavaScript. Others, like a href= and a href=http://www.firefox.comFirefox/a, are full-featured browsers, but will run more slowly./p pSo when you hear people talking about Behat, they#39;re usually talking about all three components: Behat, Mink, and browser emulators./p h2Why Behat Versus Others?/h2 pMainly becuase of popularity, which comes mainly from its human readability. There are certainly other contenders with other strengths, but we#39;re focusing on Behat today because it is a popular PHP-based testing framework. Its tests are written as human readable scenarios, can be easily extended by writing additional PHP methods, and, as you#39;ll see soon, getting set up is not too difficult./p h2Business Use/h2 pEven though this all seems like a good thing, it does take some time to write tests, set up a testing environment, and determine what the best tests are. We need to allocate time to do this, and it shouldn#39;t just be a surprise at the end of the project. Automated testing should be considered in several phases of a web project. When writing custom code, it#39;s a good practice to write unit tests, and time should be allocated for that. When developing custom features for a site, behavioral tests should be written to accompany them, and again, time should be allocated. It#39;s good if clients know at the beginning of a project that test writing is part of the development process, and test running is part of deployment./p pThings that are measured always get more attention than things that just happen. Clients should have a large say in what is measured and tested. As a result, project managers can gain a better insight into priorities of the client and project. By making behavior tests something that is intentionally done, project stakeholders must clarify and prioritize the most important aspects of the site./p h2Run Tests/h2 pLet#39;s use the scenario where we#39;re ensuring that the user login experience is correct. This will verify that the site is up amp; running, that valid users can log in, and that invalid credentials will not work. Here#39;s a test run, using a local development site:/p pimg src=/assets/images/blog/behat-test-run.png alt=behat test run/p pAnd it only takes a few seconds to run./p pIf you run this test after a code update and find that the test fails, you know immediately that something must be fixed before it can be deployed to the production environment./p h2Write Tests/h2 pBehat tests are written in quot;Featurequot; files. They#39;re just text files with a .feature extension on the name, instead of .txt or .php. They are usually placed in a quot;featuresquot; directory inside your Behat directory. More on that in the next section./p pIn the test run above, I was in my project#39;s Behat directory, and ran codebin/behat features/loginout.feature/code. That launches Behat and tells it to run the tests that are in loginout.feature. Here are the entire contents of that file:/p div class=highlightprecode class=language-text data-lang=textFeature: Log in and out of the site. In order to maintain an account As a site visitor I need to log in and out of the site. Scenario: Logs in to the site Given I am on quot;/quot; When I follow quot;Log Inquot; And I fill in quot;Usernamequot; with quot;adminquot; And I fill in quot;Passwordquot; with quot;testquot; And I press quot;Log inquot; Then I should see quot;Log outquot; And I should see quot;My accountquot; Scenario: Logs out of the site Given I am on quot;/quot; When I follow quot;Log Inquot; And I fill in quot;Usernamequot; with quot;adminquot; And I fill in quot;Passwordquot; with quot;testquot; And I press quot;Log inquot; And I follow quot;Log outquot; Then I should see quot;Log inquot; And I should not see quot;My accountquot; Scenario: Attempts login with wrong credentials. Given I am on quot;/quot; When I follow quot;Log Inquot; And I fill in quot;Usernamequot; with quot;badusernamequot; And I fill in quot;Passwordquot; with quot;boguspassquot; And I press quot;Log inquot; Then I should see quot;Sorry, unrecognized username or password.quot; And I should not see quot;My accountquot; /code/pre/div pIndentation is only for readability, and has no impact on how the tests are run./p pNow let#39;s look at each line and see what each is doing. The first few lines are essentially comments./p pcodeFeature: Log in and out of the site./code/p p^ Name of the feature./p pcodeIn order to maintain an account/code/p p^ Benefit./p pcodeAs a site visitor/code/p p^ Role./p pcodeI need to log in and out of the site./code/p p^ Feature itself./p pBehat tests are written in the form of scenarios, and they comprise the rest of the feature file./p pcodeScenario: Logs in to the site/code/p p^ Description of the first scenario./p pcodeGiven I am on quot;/quot;/code/p p^ The context. This is the first line that is actually executed. In this case, it will load quot;/quot; (the home page) in a browser./p pThis (a quot;Givenquot;) as well as the next things (quot;Whenquot; and quot;Thenquot;) are each called a quot;Step.quot;/p div class=highlightprecode class=language-text data-lang=textWhen I follow quot;Log Inquot; And I fill in quot;Usernamequot; with quot;adminquot; And I fill in quot;Passwordquot; with quot;testquot; And I press quot;Log inquot; /code/pre/div p^ The events that need to happen. codeWhen/code kicks it off. codeAnd/code adds more events. If Behat is unable to do any of these events, the test will fail. codeI follow quot;Log Inquot;/code looks for a link with the text quot;Log Inquot; and clicks it. codeI fill in quot;Usernamequot; with quot;adminquot;/code looks for a field with the label of quot;Usernamequot; and types quot;adminquot; into it. codeI press quot;Log inquot;/code looks for button with the text quot;Log inquot; and presses it. Pro tip: codefollow/code is for clicking links, and codepress/code is for buttons on forms./p div class=highlightprecode class=language-text data-lang=textThen I should see quot;Log outquot; And I should see quot;My accountquot; /code/pre/div p^ The desired outcome. codeThen/code starts it, and codeAnd/code adds more outcomes. These are the actual tests that need to pass. Other testing frameworks often call these quot;assertionsquot;. codeI should see quot;Log outquot;/code looks for the text quot;Log outquot; anywhere on the page./p pThe other two scenarios follow the same format, as well as using codenot/code to ensure that certain things do not happen./p pThat#39;s the quick walkthrough of writing scenarios, but you can dig deeper at a href= and a href= and find out about other aspects like a href= Outlines/a, a href= and Multiline Arguments./p h2Get Set Up/h2 pI#39;ve looked at several resources from and elsewhere, and ended up just having to piece things together to get something that will work. I#39;ve consolidated those notes to ease the setup in the future. a href= Installation and Use/a./p pThere are a number of dependencies, so the easiest way to handle them all is to let composer do it for you. So install composer if you haven#39;t already. On a mac, using homebrew works great: codebrew install composer/code./p pMake a Behat directory, either for a project you#39;re working on, or in a generic location. Copy this a href= file into it. Run codecomposer install/code, which might take a while. It#39;s installing Behat, Mink, several Mink extensions, and webdriver, which is for Selenium. Then run codebin/behat/code to make sure that Behat is actually available and doing something. You should see something like codeNo scenarios/code./p pInstall selenium. This part is optional, if you don#39;t need to test Javascript. Download the latest version of a href= You#39;ll also need Firefox and a Java runtime installed. If you get output from codejava -version/code you should be good./p pIn your Behat directory, add a features folder if there#39;s not one already, and add a something.feature file to it. You can use this a href= as an example./p pThe last thing you need is a behat.yml file in your Behat directory. Use this a href= as an example, replacing the domain with the site you want to test. Also remove the selenium2 line if you#39;re not using it./p pAt this point, running codebin/behat/code in your Behat directory should run any tests located in the features directory./p pHopefully, that gets you started on your road to readable automated testing. The best resources I#39;ve found are on the a href=http://behat.orgbehat site/a. You#39;ll probably be redirected to something like a href= Please leave a comment with your successes or other suggestions. Thanks for reading, and good luck!/p

Verbosity: Drupal Sprint Cards

Fri, 10/03/2014 - 10:26
div class=field field-name-field-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evenimg src= width=220 height=183 alt= //div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpAnnouncing the sprint cards! My team created these cards as a condensed version of the DrupalCon Autsin mentor training. They summraize the top tasks needed for new contributors and coders and can be printed at any local print shop (usually in 12-24h) because we formatted them to be printed on standard business cards. So they are cheap to print and ready when you need them./p pThese cards have been seen at many Drupal events now and they get a good response wherever they go. The first sprint where they appeared was at the Jersey Shore (thanks again to the NJ team for bringing us there!) and they have since been at camps across North America and now at DrupalCon Amsterdam./p pYou can find them on our a href= page, or usea href= this handy PDF link/a./p pstrongPrinting Specifications/strong/p pTake this information to your local print shop./p ulliBusiness card size (formatted for North America, so 3.5 × 2 inches... in metric that is 88.9 × 50.8mm [you may ask them to scale the PDF to your local size])/li licardstock (thick paper)/li limatte (not glossy... sometimes people want to write on them)/li lidouble-sided/li licolor/li lino bleed (extra cropping not necessary)/li liPDF file/li liquantity $x (most print shops have a special rate for different quantity, good to ask)/li /ul/div/div/divdiv class=field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-abovediv class=field-labelCategory:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/drupal-8Drupal 8/a/divdiv class=field-item odda href=/drupal-planetDrupal Planet/a/div/div/div

Károly Négyesi: Following up on Doctorow's keynote

Fri, 10/03/2014 - 04:14
pYou will find often find the less you are allowed to do with a computer the more user friendly it seems. This is hardly a coincidence. You need to make your decisions on how much inconvenience you are willing to take for freedom in computing. The first and most important step is to make these decisions deliberate. Perhaps after the keynote this necessity is clear./p pI will detail my choices and my rationale. As Doctorow said, I avoid everything Apple. They have made DRM'd computing mainstream and I do not really want anything to do with them. When work makes me use a Mac (happens) then I use a very old second hand Mac Mini but have plans to switch to a Hackintosh. The best is if you can find a free hand down piece to make sure you are not fueling the Apple ecosystem even indirectly. And, I run OS X 10.7.4 because 10.7.5 comes with Gatekeeper and that software is simply not acceptable because it can limit the computer to only run Apple sanctioned applications. Another possible choice is to refuse work that requires a Mac -- I never claimed to be perfect./p pAlas, the above decision makes you use Linux as your primary OS. Mind you: there are no good choices in the OS space. The classic Linux problems of laptops not sleeping, wifi, projectors are gone by now. Buying printers need a little care but most work./p pProbably you want a smartphone and with the iPhone ruled out that probably means an Android phone. Pick one with an unlockable bootloader and install a custom recovery and a custom ROM. Consider as you install each free app on what are you giving up. I decided that using Google Maps is worth it for me but that's something everyone needs to decide for themselves and that's one of the hardest decisions. Practice healthy paranoia by sniffing your own traffic with tPacketCapture or a similar tool from time to time to make sure you know what's happening on the phone./p pSpeaking of traffic, make sure you can trust your router: buy one that is compatible with open source firmware and flash one. I was much afraid to make this step because I feared I will get another maintenance and/or stability nightmare but nothing like that occured. These days you can find a few with preinstalled DD-WRT even. If you choose one of these, make sure to email the manufacturer saying you've choosen their device because of the open source firmware. This perhaps will spur them to make more of the same. There are companies that purport open source compatibility but at the same time the small print says installing such violates warranty. Ask them why./p pIn eReaders, avoid the Kindle. I had a Kindle once -- the Paperwhite screen made me waver -- but no longer. These days I have a Kobo Aura HD for the beautiful screen of it. Make sure your eReader radio is off. Another of those convenience vs freedom decisions -- I very strongly prefer my device and my books being controlled by me and in turn I can suffer plugging the reader in to download a book or four. I recommend buying books from Barnes amp; Noble because their DRM is super easy to remove. Don't forget to email them thanking for this -- it's understandable they don't have the choice to sell DRM free books but at least they don't use the vile Adobe system many places use. Also, tech books at O'Reilly are DRM free, yay!/p

Forum One: DrupalCon Amsterdam, Day 4: Our Kung fu is more powerful than yours!

Fri, 10/03/2014 - 01:37
pa class=image-link href= class=alignleft wp-image-4443 src= alt=Drupal Kung Fu width=311 height=218 //a/p pCampbell and I presented our session, a href= vs. Themer/a, Thursday morning and it was a huge success! The gist of the session was this: Campbell and I are both martial artists in addition to Drupalists, and we drew comparisons between our respective martial arts (Ninjitsu and Kung fu) and our respective Drupal roles (coder and themer). Then we both attempted, in real time, to build a Drupal site from a markup. I could only use the theme layer and Campbell could only use the code/module layer. The 302 attendees were more than spectators, they were active participants, cheering us on when we found clever solutions and booing when we took hacky shortcuts! Who won?!/p h2Watch the video (slides with audio) and decide for yourself!!/h2 piframe src=// width=853 height=480 frameborder=0 allowfullscreen=allowfullscreen/iframe/p pa class=image-link href= class=alignright wp-image-4444 src= alt=Birds of a feather width=299 height=224 //aLater that afternoon we also led a BOF (Birds of a Feather) expanding on our earlier session. We dubbed this follow-up a href= vs. Themer: Fight Club/a, and in it the attendees are divided into small development teams, each containing at least one coder and one themer. We then challenged them to collaborate and build out mockups. We had the luxury of having Augustin Delaporte and Robert Douglass of Commerce Guys there to provide development servers on their a href= hosting platform. All the teams did well and more importantly everyone had fun./p pa class=image-link href= class=alignleft wp-image-4442 src= alt=2015 DrupalCon Europe width=299 height=128 //aDrupalcon Amsterdam’s closing session always has the big reveal of next year’s European Drupalcon venue, and we were all very excited when it was announced that the a href= Drupalcon Europe/a would take place in beautiful Barcelona, Spain on September 21-25. Campbell and I cannot wait and are already planning several new, fun, energetic, and engaging sessions!/p

Chapter Three: We Need Digital Experience Directors

Thu, 10/02/2014 - 21:35
pOur industry needs a new position. A person whose entire job is owning, directing and overseeing a website. We need a new title for them. I propose we call them strongDigital Experience Directors/strong. /pbr / br / h2The current landscape for smaller companies/h2br / br / pAt best, people who currently do this work are called emWeb Master, Site Administrator or Marketing Coordinator—/emall titles which are low on the political totem pole. At worst (and more commonly), it’s a task tacked on to someone’s job, often forgotten or ignored./pbr / br / h3How this hurts companies/h3br / br / pBusinesses suffer because of this hierarchy. The lack of long-term strategic oversight devalues the investments companies make in websites. Relegating content upkeep to roles without director-level authority creates headless websites. This usually produces sites with:/p

Get Pantheon Blog: See The Future: Drupal 8's Configuration Management

Thu, 10/02/2014 - 10:56
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpThe biggest news from DrupalCon Amsterdam is the announcement that a href= 8 is now in Beta/a. One of the most anticipated features of D8 is the a href= Management Initiative/a, which aims to solve the well-known problem of how do I deploy changes I made in my admin interface? /p pWe've been involved in this work over the past few years. Our CTO David helped architect the solution, and he and Co-Founder Matt Cheney presented the results in one of the most packed presentations at the Con:/p p align=centera href= src= alt=Crowd for CMI Presentation //a/p pCheck out the video of their presentation to see the shape of things to come./p!--break-- p align=centeriframe width=480 height=360 src=// frameborder=0 allowfullscreen/iframe/p pIf you want to skip to the magic, it starts a href= around minute 20/a with a live demo./p pIf you'd like to try this yourself, you can a href= up a D8 Beta Site today/a and see the future of Drupal site development. For those of us who have been watching and waiting on this for years, it's an exciting moment to see that this solution is really going to work./p /div/div/divdiv class=field field-name-field-blog-categories field-type-taxonomy-term-reference field-label-abovediv class=field-labelBlog Categories:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/blog/educationEducation/a/divdiv class=field-item odda href=/blog/engineeringEngineering/a/div/div/divdiv class=field field-name-field-blog-related-posts field-type-entityreference field-label-abovediv class=field-labelRelated posts:nbsp;/divdiv class=field-itemsdiv class=field-item evenPantheon Drupal 8 Development (for free)/div/div/divdiv class=easy_social_box clearfix horizontal easy_social_lang_und div class=easy_social-widget easy_social-widget-twitter firsta href= class=twitter-share-button data-url= data-count=horizontal data-lang = en data-via= data-related=:Check it out! data-text=See The Future: Drupal 8's Configuration ManagementTweet/a/div div class=easy_social-widget easy_social-widget-facebookiframe src=//;href=https%3A//;send=falseamp;layout=button_countamp;width=88amp;show_faces=trueamp;action=likeamp;colorscheme=lightamp;font=amp;height=21amp;appId= scrolling=no frameborder=0 style=border:none; overflow:hidden; width:88px; height:21px; allowTransparency=true/iframe/div div class=easy_social-widget easy_social-widget-googleplusdiv class=g-plusone data-size=medium data-annotation=bubble data-href= div class=easy_social-widget easy_social-widget-linkedin lastscript type=in/share data-url= data-counter=right/script/div /div !-- /.easy_social_box --

Last Call Media: We sold Drupal to the world

Thu, 10/02/2014 - 02:43
span class=field field-node--title field-name-title field-type-string field-label-hidden data-quickedit-field-id=node/106/title/en/rssWe sold Drupal to the world/span div class=field field-node--field-blog-image field-name-field-blog-image field-type-image field-label-hidden data-quickedit-field-id=node/106/field_blog_image/en/rss div class=field-items div class=field-item img class=image-style-blog src= width=758 height=545 alt= / /div /div /div div class=field field-node--body field-name-body field-type-text-with-summary field-label-hidden data-quickedit-field-id=node/106/body/en/rss div class=field-items div class=field-itemp(emIllustration by a href= target=_blankColin Panetta/a/em)/p pMuch of the world has standardized on Drupal as their solution for a Content Management System for over a million websites. This is not hard to see. For example, Drupal makes headlines when organizations like NYSE (before merging with a href= target=_blankICE/a) decided to switch to it./p blockquote pstrongNYSE/strongbr / “Once we had those sites up and running there was a huge pent up demand for other sites in the company, and we launched 37 more. It was a big task, as some of those websites hold tens of thousands of pages - being highly regulated we are required to post everything we do online.”br / - Bob Kerner, NYSE SVP amp; Chief Digital Officer 2010/p p“The important thing for us is that we are able to keep a relatively small team of 60 developers”br / - Bob Kerner, NYSE SVP amp; Chief Digital Officer 2010/p p“We have tons of work to do, but we will rely on Drupal to build our social community.”br / - Bob Kerner, NYSE SVP amp; Chief Digital Officer 2010/p p- a href= target=_blankem /blockquote pAnother example is NBC Universal./p blockquote pstrongNBC/strongbr / “[NBC Universal has] 30 to 40 leading brands, such as Bravo, Syfy, Telemundo.”br / - Christopher Herring, Director, Publishing Program, NBC Universal/p p“We continue to push Drupal as our standard across the company.”br / - Rob Gill, Director, Operations, NBC Universal/p pem- a href= target=_blank /blockquote pOne of the most recent large scale pushes to Drupal is well underway at Pfizer. I asked Mike Lamb, Director of Marketing Technology at Pfizer, a few questions about it./p blockquote pemHow many Drupal websites are currently in action at Pfizer?/embr / Approx 500 - /p pemHow many people would you say it takes to support these sites?/embr / Easiest to calculate suggesting a core team of 12 and then approx 1 person for every 15 sites, so approx 45 people. That’s to keep the platform running – projects and enhancements is additional./p pemHow many non-Drupal sites will become Drupal sites over the next few years?/embr / I’d say approx 200 migrations per year. Drupal launches are a combination of site migrations and completely new sites./p /blockquote pThis is a serious amount of Drupal for one, although a big one, company. I gave this info as a talk at a a href= target=_blankDrupal Camp in Connecticut, MA/a. In two years, it will take the total attendance of that camp to support Drupal at Pfizer./p pA little closer to home, I asked Gary Parker, Systems Analyst at University of Massachusetts (my alma mater), about it./p blockquote pemHow many Drupal websites are currently in action at UMASS?/em/p pOIT hosts around 120 production sites.  I believe there are probably another two dozen hosted by various departments managing their own servers./p pemHow many will become Drupal over the next few years?/em/p pGiven the number of sites currently in development and our rate of growth, I'd expect 30-50 additional Drupal sites within the next year./p /blockquote pThese numbers are lower but this is still a lot of Drupal. The holy grail of this type of information, however, is perhaps the growing a href= target=_blanklist of Drupal sites in government/a. The “list includes embassies, parliaments, governmental portals, police, research centers, ministries/departments, monarchies etc. in more than 150 countries.” Check it out if you haven’t yet. It is awe inspiring./p pstrongHow did this happen?/strong/p pA popular answer involves a long list of Drupal’s amazing feature set. But how did that happen? Drupal is not alone. It is just another shining example of a wildly successful open source project. Drupal is to the Content Management System what Linux was for the Operating System. So how do these things happen?/p pThe reason, I think, takes the following points as its premise:/p ulliOpen Source software is inherently inclusive and collaborative./li liThe vast majority of participation is driven by intrinsic motives for personal growth, relationships, and helping others./li liParticipating is an endeavor that creates actual happiness, dedication, and community./li liOpen Source thrives to the extent it is shared./li /ulpIt is fairly straightforward to get involved in open source. Despite current issues with tech culture, the code is available, the tools are collaborative, and the standards are, for the most part, objective. Community develops from solving intrinsically interesting programming problems. This is rewarding not only to the individuals involved, but open source and the world benefits from this collaboration./p pDrupal has fostered such a community for itself by being adequately inclusive and collaborative. It is trusted experts, from this community, that are being asked what they recommend be the solution to the Content Management System issue. Across the world, they are saying, “Drupal, hands down.”/p pIt is in this sense that we have effectively sold Drupal to the world. Now, we must stand by our recommendation. We must support it./p pWith worldwide adoption at the rate and scale we are seeing, there are some challenges that are coming with it. Here are some:/p ulliAre we supporting our solution efficiently?/li liSeeming talent shortage/li liTeam retention/li liRecruiting/li liCommunity/li /ulpEach of these challenges are not unique to Drupal and are painfully experienced across the entire IT industry. Solutions are many and vary significantly between each challenge. Taken one by one, each tell a familiar story./p h3Are we supporting our solution efficiently?/h3 pDrupal is a powerful system with a lot of complexity. It has an infamous learning curve with nearly every Drupal project needing access to an expert a few times in its existence. Are we able to provide the needed level of Drupal support at a sustainable and affordable rate? The number of new Drupal sites is quickly outpacing the number of new Drupal experts. Salaries and rates have been increasing dramatically over the years. Is there a supply and demand issue with supporting Drupal?/p pA popular response from Drupal experts, “Is this a problem? What’s wrong with being in demand and making a lot of money?” During my survey on this topic, I also got responses like this:/p blockquote pWe are basically pretty unhappy about that migration - it almost killedbr / support for Drupal on this campus, and still might. If we could do it allbr / over again we'd probably still be on / -Name Withheld - VIP, A Five College Institution/p /blockquote pThe move from Drupal 6 to Drupal 7 has been very painful for many. Affordable Drupal expertise is rare and in demand, but the show must go on even if it ends horribly at times. It is reasonable to believe that, if this experience were to continue, Drupal would be abandoned./p h3Seeming talent shortage/h3 pFacts on this are popular across the entire computing industry. This one is concise and popular:/p blockquote pSome 1.2 million computing jobs will be available in the US in 2022, yet United States universities will produce only 39 percent of the graduates needed to fill / -NCWIT “By the numbers”/p /blockquote pWith a couple hundred million people out of work worldwide, an industry with an apparent talent shortage should give us pause. If you are a professional in the IT industry, consider this question:/p pstrongHow did you get into your field?/strong/p pNearly all answers to this question involve an entertaining tale of happenstance abruptly ending in, “...and that’s how I got into IT.” A popular term for this is, “a href= target=_blankaccidental techie/a.” Since no career path was chosen, nor specific degree given, the person’s resulting career was accidental. For example, it is not unusual to find an English or Math degree in a Senior Programmer position. To go even further, I don’t find it unreasonable to consider Computer Science degrees in a web developer position as “accidental” in this sense. There is no college course that teaches you how to optimize your local development stack or the importance of limiting rounds of revisions./p pI don’t fully agree, however, with the widespread use of this term. I’m sure some people truly do accidentally fall into a career in IT, but the rest end up there by following their heart. The issue is that the paths to entry are confusing, intimidating, and just damn hard for seemingly no good reason. It is not so much that there is a talent shortage as much as the directions in are mostly undefined./p pDrupal, it seems, is no exception./p h3Team retention/h3 pIf there is a talent shortage, then retention will be a challenge. Many organizations are finding themselves a stepping stone for their employees to reach greener pastures. The big players, with deeper pockets and bigger promises, are harvesting talent from smaller players, leaving the latter’s quality of work inconsistent as they scramble to find and train new talent./p pAnd then there are statistics like this:/p blockquote p56% percent of Women leave IT by mid careerbr / -Harvard Business Review - #10094/p /blockquote pNot only are we not producing enough talent to support this industry, but we are driving a staggering portion of it away./p h3Recruiting/h3 pOn the question, “What is the biggest recruiting challenge your organization faces?” a Talent Technology 2012 recruitment survey found “Finding good candidates” way out ahead of the pack with, “Filling positions fast,” in close second. Not only can we not find good candidates, but we can’t find them fast enough. There is no surprise here given the discussion so far. /p h3Community/h3 pThe last challenge to be considered is us; ourselves. What do we do about this? For challenges so closely related, our solutions tend to be astonishingly specific. What can we do?/p pemHack Talent Shortage?/em /p pWe can’t solve this by staying up late and building a website. And what good will it really do to find a way to pump more people into an industry where a substantial portion are going to leave mid career?/p pemBuy more kegs for the office?/em /p pThe people who want more kegs aren’t missing from this equation. The issue is that we’ve hired all the people that are excited by this sort of thing./p pemGet recruiters access to some NSA backdoors?/em/p pObviously no, but allowing recruiters to be more invasive won’t fix this./p blockquote p“And, what did you do?” br / -Rita (Nana) Albrecht, My Grandmother (1914-2014)/p /blockquote pWhen I was a kid, my grandmother used to do this thing when I would tell on my sister. I would come running to my grandmother, “She’s annoying me, she’s annoying me, make her stop.” My grandmother would always ask, “And, what did you do?” meaning, what had I done to my sister, which of course I would try to answer, “Nothing…”/p pShe may have just been trying to get the full story but what always stuck with me was, if I just took a look at myself, I could see, I had a role to play in the situation./p pSo, community, we need to look at ourselves./p h3Talent Shortage - We need to look at ourselves/h3 pFind and support those working to ease entry into this field. Some example organizations (is there a good list somewhere?):/p ulliNCWIT: a href= target=_blank liAnyone doing anything with Scratch: a href= target=_blank /ulpHere are two examples close to my home:/p ulliCAITE: a href= target=_blank liNERDs: a href= target=_blank /ulpGroups are working hard on this already and they need our support and collaboration. Find and support organizations with goals of increasing student interest in, and preparation for, careers in STEM./p h3Retention - We need to look at ourselves/h3 pHere are some things we can do in our organizations to solve our retention issues:/p pstrongManager and Maker schedule distinction (a href= target=_blanksee here/a)/strong/p pI’ve seen this change IT company culture drastically for the better. a href= target=_blankThis is a topic all its own/a, but the basic idea is in recognizing the value in giving your Makers uninterrupted time to complete their work. A Maker is someone who makes something. Writers, Craftsman, Musicians, Painters, and Programmers are examples of Makers. They need schedules with long stretches of uninterrupted time to focus on doing a good job. With this understanding, Managers work to be a distraction buffer, managing incoming issues in order to optimize the experience of the Makers, whose work quality then excels and personal enjoyment increases. Tasks deliver with higher quality resulting in Managers producing overall better projects. Teammates are much less likely to leave a team which works like this./p pstrongConsider who your policies and improvements benefit/strong/p pTeam retention means considering everyone. If your policies and improvements tend to focus on a subset of your team, other team members are at risk of increasingly feeling excluded. Not feeling like good fit, they will start to consider your team as a stepping stone to a better situation. A new ping pong table or keg in the office may seem a quick win for smaller homogenous teams but will foster fracturing in better evolved and more realistic situations./p pstrongIncrease inner company dialog and communication/strong/p pHave regular conversations about how things are going internally. Work to foster feelings of safety in sharing one’s pain points within the company. It is hard at first but invaluable once people become comfortable with sharing without fear of endangering their job and as people learn to listen without getting defensive. Increasing dialog, increases accountability and alleviates resentments that would otherwise lead to a breakdown in the team. /p pstrongIncrease inner company transparency/strong/p pThis one is scary for many at first: Work to share more administrative details about the decisions that concern your team. Work to eliminate closed door meetings. Increasing transparency, increases trust, feelings of being trusted and feelings of true belonging to a group. It is also a way to share responsibility and, in that sense, ownership. Bad news is easier for a team to bear, and good news has a greater impact and is more intimate, when the decisions leading up to it were shared./p pstrongMake a Company Code of Conduct/strong/p pYour team may be full of people that feel they don’t need something like this. They may think things like, “if people mistreat me, I’ll just tell them off” or, “we don’t need this because we don’t have a conduct problem.” There is nothing wrong with putting it in writing what is expected and what isn’t tolerated at your company. In fact, doing so means you take it seriously. It means you recognize that people are fallible, don’t always know how to act, and putting it in writing is the first step to actually making an effort to be considerate and accepting of each member of your team. You can be sure this is extremely important to at least a few people on your team, even if they haven’t found a way to express it. Do some research on other Codes of Conduct, it is very worthwhile./p h3Recruiting - We need to look at ourselves/h3 pWe saw earlier that the biggest challenge recruiters face in an organization is finding good candidates, and fast enough. We can look at ourselves here and ask, “Who are we attracting?”/p pDoes the organization prioritize things like:/p ulliBeer outings/li liPing pong/Air hockey/li liLong hours with big one-time rewards/li /ulpThe first two are examples of things that can feel exclusionary to a good candidate looking for a new team to call home. The last one doesn’t work at all for people with families, for example, and is really only a great thing for very specific individuals having certain responsibilities and not others, like children. Your organization may currently feel on top of the world with those example perks above, but your next great candidates are turning and running away./p pWe can also ask, “How are we attracting talent?” For example, is the classic intimidating job posting involved?/p pConsider replacing things like this:/p blockquote pIf you think you have the drive and positivity to fill these shoes:/p ulliOne/li liMillion/li liBulletpoints/li /ul/blockquote pWith things like this:/p blockquote pIf you have skills in one of these and are excited by the rest:/p ulliFewer/li liBulletpoints/li /ul/blockquote pAdjustments to our hiring techniques that make them more inviting and less intimidating are essential changes to make. We must also take this further by asking ourselves, “How hard are we looking?”/p pConsider this fact:/p blockquote p26% of the computing workforce in 2013 were women. br / -NCWIT “By the numbers”/p /blockquote pin the context of how you answered this question earlier:/p pemHow did you get into your field?/em/p pMost of us are having to find our way into IT accidentally, and many of us aren’t finding our way at all. The path to an IT career is currently pretty intimidating and rather obfuscated. It can be very hard to know whether or not you are going in the right direction or even just wasting your time trying./p p /p pYour next Drupal expert could be hiding beneath a rock of self doubt./p p /p h3Community - We need to look at ourselves/h3 pa href= the rest here/a./p /div /div /div

Wim Leers: Render caching in Drupal 7 and 8

Thu, 10/02/2014 - 02:43
pTogether with Fabian Franz span class=ampamp;/span Marco Molinari from Tag1 Consulting, I had a talk about render caching in Drupal 7 andnbsp;8./p div class=field field-name-field-slideshare-link field-type-link-field field-label-inline clearfixdiv class=field-labelSlides:nbsp;/divdiv class=field-itemsdiv class=field-item evena href= caching in Drupal 7 and 8/a/div/div/divdiv class=field field-name-field-conference field-type-text field-label-inline clearfixdiv class=field-labelConference:nbsp;/divdiv class=field-itemsdiv class=field-item evenDrupalCon Amsterdam/div/div/divdiv class=field field-name-field-location field-type-text field-label-inline clearfixdiv class=field-labelLocation:nbsp;/divdiv class=field-itemsdiv class=field-item evenAmsterdam, The Netherlands/div/div/divdiv class=field field-name-field-date field-type-date field-label-inline clearfixdiv class=field-labelDate:nbsp;/divdiv class=field-itemsdiv class=field-item evenspan class=date-display-single property=dc:date datatype=xsd:dateTime content=2014-10-01T10:45:00+02:00Oct 1 2014 - 10:45/span/div/div/divdiv class=field field-name-field-duration field-type-number-integer field-label-inline clearfixdiv class=field-labelDuration:nbsp;/divdiv class=field-itemsdiv class=field-item even45nbsp;minutes/div/div/divdiv class=field field-name-field-extra-info field-type-text-long field-label-inline clearfixdiv class=field-labelExtra information:nbsp;/divdiv class=field-itemsdiv class=field-item evenpSee a href= /div/div/divul class=tags lia href=/tags/wpo typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=WPO/a/li lia href=/tags/performance typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=performance/a/li lia href=/tags/drupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal/a/li /ul

Mediacurrent: Draggableviews and Custom Publishing Options, an Alternative to Nodequeue

Wed, 10/01/2014 - 22:08
img typeof=foaf:Image src= width=200 height=151 alt=Draggable Views title=Draggable Views / pWhen approaching new Drupal projects, I’m always excited to listen and learn about the project’s requirements. It’s an occasion to create just the right solution. With a recent project, I took the opportunity to rethink the use of Nodequeue to manage front page content, and instead used the Draggableviews and Custom Publishing Options projects. Before diving into that solution, let’s step through other solutions to manage front page content, so we can undestand the pros and cons of each./p

Drupal core announcements: This Month in Drupal Documentation

Wed, 10/01/2014 - 21:30
pHere's an update from the a href= Working Group (DocWG)/a on what has been happening in Drupal Documentation in the last month or so. Sorry... because this is posted in the Core group as well as Documentation, comments are disabled./p pIf you have comments or suggestions, please see the a href= home page/a for how to contact us. Thanks!/p h3Notable Documentation Updates/h3 pHere are some Community Documentation pages that were updated this past month:/p ul liruscoe updated several pages of documentation about the Drupal Commerce IATS module. We always love to see contributed module maintainers documenting their modules -- thanks Dan!/li liandrisek updated several pages of documentation about the ERPAL CRM system contributed module. In this case, he's not even an official maintainer of the project -- we always love to see community members updating documentation too -- thanks Daniel!/li lichrischinchilla went through the Installation Guide and made updates for Drupal 8. That was one of our Priority tasks -- thanks Chris!/li liMany people updated documentation in preparation for code sprints in Amsterdam, to help new contributors get up to speed quickly. Always a good idea!/li liAnd there were many more updates... see below./li /ul pSee the a href= home page/a for how to contact us, if you'd like to be listed here in our next post!/p h3Thanks for contributing!/h3 pSince September 1 (a href= previous TMIDD post/a), 229 contributors have made 629 total documentation page revisions, including 2 people that made more than 20 edits (andrisek and realityloop) -- thanks everyone!/p pIn addition, there were many many commits to Drupal Core and contributed projects that improved documentation -- these are hard to count, because many commits combine code and documentation -- but they are greatly appreciated too!/p h3Documentation Priorities/h3 pThe a href= documentation priorities page/a is always a good place to look to figure out what to work on, and has been updated recently./p pIf you're new to contributing to documentation, these projects may seem a bit overwhelming -- so why not try out a a href= contributor task/a to get started?/p h3Upcoming Events/h3 pa href= title=https://amsterdam2014.drupal.org - DrupalCon Amsterdam - strongTHIS FRIDAY, October 3 - sprint!/strong/p pa href= title= - DrupalCon Latin America, Bogotá, Columbia, Feb 10-12, 2015/p h3Report from the Working Group/h3 pWe're pleased to announce that Antje Lorch (ifrik) has officially joined the Documentation Working Group. She's been a leader of documentation events and has been participating in WG meetings for a while, so it's great to have her officially on board. Welcome Antje!/p pIn our last This Month post, we forgot to report on a couple of our infrastructure and tools projects that were completed in August:/p ul liWe updated the Documentation Management page (log in to see it): a href= title= -- it is wider and has improved columns and filters. Use it to find a page you want to work on!/li liWe updated the tab navigation for the Community Documentation pages: a href= title= /ul pWe're currently working on a new project: a href= results into the search box/a -- stay tuned for updates on that!/p pFinally, our next meeting will be October 22nd. We normally meet using Google Hangouts (although last month we met in IRC due to technical difficulties); if you'd like to join us, a href= Boris (batigolix)/a./p

Mediacurrent: Exploring the Picture Element Module (Part 2)

Wed, 10/01/2014 - 19:57
img typeof=foaf:Image src= width=200 height=152 alt=Featured Drupal Module Series title=Featured Drupal Module Series / pIt has been an interesting week since I wrote a href= 1 of this blog series/a. For one, more people have been talking about the lt;picturegt; element and that is a good thing because the more we talk about it the more attention is brought to an issue that is due for best practices and standards./p