Drupal Planet

Syndicate content
Drupal.org - aggregated feeds in category Planet Drupal
Updated: 1 hour 21 min ago

CiviCRM Blog: The quest for performance improvements - 5th sprint

Thu, 01/26/2017 - 8:47am
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encoded pThe last two days we spent another sprint at socialist party to improve performance.  And again we used a guy with database knowledge to analyze our queries. We have optimized a few things so far one of the major areas to improve next was the ACL part of queries. That is the part of the query to decide which contacts you are allowed to see. So at the socialist party they have local chapter administrator who are only allowed to see the active members in their local area./p pTo decide which contacts you are allowed to see a search query is rebuild to include this ACL part. So there is a join on the membership table and a join on the chapter-structure table and then a where expression is to filter on the chapter and to filter on active memberships. Meaning that the MySQL will scan all records in the table civicrm_contact which at the socialist party is around 350.000./p pWe have worked on a proof-of-concept solution so far which is to create a table with the user_id and which contact_ids the user is allowed to see. We then do a join on this table resulting that only that subset of contacts is scanned by mysql. Which in fact improved the search query from running a few seconds to just a few milliseconds./p pWhen a user logs in we check how long ago it was when we last updated this table and if it is longer than 24 hours we will delete the entries for that user and re-insert the entries./p pWe have also reported this at the CiviCRM issue Queue see: a href=https://issues.civicrm.org/jira/browse/CRM-19934https://issues.civicrm.org/jira/browse/CRM-19934/a/p pThe next thing we are going to work on is to make the proof-of-concept stable and do some refactoring of the core civicrm_acl_contact_cache table.  As this proof-of-concept looks like a bit what civicrm_acl_contact_cache should do but does not do.  Also we want to add a setting in the user interface where site-administrators could set the value for the validity time./p pWe are also wondering what your thoughts are about our performance quest so far and about our proposed solution./p p /p /div/div/divdiv class=field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-hiddendiv class=field-itemsdiv class=field-item evena href=/blog/tags/drupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal/a/div/div/div
Categories: Drupal Feeds

Acquia Developer Center Blog: Drupal 8 DIY: Creating Content Tabs with Theme Libraries and Slick

Thu, 01/26/2017 - 8:22am
div class=field field-name-field-blog-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evenimg typeof=foaf:Image class=img-responsive src=https://dev.acquia.com/sites/default/files/styles/blog__190_x110_/public/blog/lidar2.png?itok=ea0EJQ6S width=140 height=85 alt= //div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpContinuing from our previous post, a href=https://dev.acquia.com/blog/drupal-8-diy-creating-a-slideshow-with-theme-libraries-and-slick/12/01/2017/17511Drupal 8 DIY: Creating a Slideshow with Theme Libraries and Slick/a, we wanted to build on the power of theme libraries provide us in Drupal 8./p/div/div/divdiv class=field field-name-field-blog-tags field-type-taxonomy-term-reference field-label-inline clearfixdiv class=field-labelTags:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/tags/acquia-drupal-planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=acquia drupal planet/a/div/div/div
Categories: Drupal Feeds

Acquia Developer Center Blog: 245: Drupal Association Board Community Elections 2017 - meet Megan Sanicki

Thu, 01/26/2017 - 7:41am
div class=field field-name-field-podcast-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evenimg typeof=foaf:Image class=img-responsive src=https://dev.acquia.com/sites/default/files/styles/blog_node_image/public/podcast/images/8810235392_4d108003a2_k.jpg?itok=H7q_FlV9 width=340 height=260 alt=DrupalCon-2013-BrokenBanjo-6.jpg - Photo by Trav Williams, Broken Banjo Photography www.BrokenBanjo.net title=DrupalCon-2013-BrokenBanjo-6.jpg - Photo by Trav Williams, Broken Banjo Photography www.BrokenBanjo.net //div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedp In this podcast and video, Megan Sanicki, Executive Director of the Drupal Association, and I talk about what the DA Board is all about and why you might want to run for a community directorship. The 2nd half of the podcast is also a chance to get to know Megan. Megan fell in love with the intersection of tech and community work and has been with us in the community since 2009 (or 2010, she's not sure ...). /p p Talking about the business side of Drupal, I really like what she has to say: /p blockquotep It's more important to me how we move through life together as a community to create amazing software. /p/blockquote h2 Should you run for the Drupal Association Board of Directors?br //h2 p One interesting aspect of the DA Board that sets it apart from the rest of the community is that it goes against the grain, the nature of how we usually go about things. We're a community of doers. If you want to fix something specific, there are probably better places for you in the Drupal community, places where you can get busy, help, and improve stuff. The Board is an odd corner of the Drupal community where it's not about getting things done. I imagine a lot of people would be frustrated by that. /p p Listen to my conversation with Megan and if you want to serve the community in this capacity, here's what you need to do: /p ulliSelf-nomination for the election runs February 1-19, 2017. /li liRead Megan's blog post a href=https://assoc.drupal.org/blog/megansanicki/2017-community-board-election-begins-1-february2017 Community Board Election Begins 1 February/a. /li liFollow any of the links it contains to get a full picture of the process. /li liWatch the a href=https://www.youtube.com/watch?v=aQ7G9g9E_-cCommunity Election Candidate Brief video/a (also embedded in Megan's post). a href=mailto:megan@association.drupal.org?Subject=Request%20for%20Elections%20Video%20TranscriptRequest a transcript/a if you need one. /li liRead the a href=https://assoc.drupal.org/files/BRDDCIRevisedBylaws0423014.pdfDrupal Association bylaws/a /li liRead the a href=https://association.drupal.org/files/BoardAgreementTemplate.pdfboard member agreement/a /li liRead a href=https://assoc.drupal.org/aboutThe Drupal Association mission statement/a /li liThe a href=https://assoc.drupal.org/drupal-association-board-elections2017 Drupal Association Board Elections page/a contains further information and it is where you can begin your self-nomination from February 1 to 19, 2017. /li /ulh2 More background infobr //h2 ulliMichael Schmid and I recorded a follow up and analysis of the 2016 DA Board community election that I published audio and video of as a href=https://dev.acquia.com/podcast/225-drupal-association-director-large-2016-election-commentaryAcquia Podcast 225/a. /li liI recorded a conversation with the 2016 DA Board community election, Shyamala Rajaram and published audio and video of it as a href=https://dev.acquia.com/podcast/243-walk-through-new-orleans-shyamala-rajaramAcquia Podcast 243/a. /li /ulpiframe width=640 height=360 src=https://www.youtube.com/embed/MmYPSDgVvVA frameborder=0/iframe/p /div/div/divdiv class=field field-name-field-skill-level field-type-taxonomy-term-reference field-label-inline clearfixdiv class=field-labelSkill Level:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/skill-level/beginner typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Beginner/a/divdiv class=field-item odda href=/skill-level/intermediate typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Intermediate/a/divdiv class=field-item evena href=/skill-level/advanced typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Advanced/a/div/div/div
Categories: Drupal Feeds

Blair Wadman: Transitioning from Drupal 7 to Drupal 8: programatically creating blocks

Thu, 01/26/2017 - 5:58am
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpIf you are used to creating Drupal 7 modules, one of the major challenges of moving to Drupal 8 is all the changes under the hood. Almost everything has changed and that can be very overwhelming. But it doesn't have to be. One method to learn how to create Drupal 8 modules is to compare it to what you are used to in Drupal 7 module development./p/div/div/div
Categories: Drupal Feeds

Real Life Digital: Drupal and SEO: A fly-by tour

Thu, 01/26/2017 - 5:55am
div class=field field--name-field-main-images field--type-image field--label-hiddendiv class=field__itemsdiv class=field__item evena href=/blog/drupal-and-seoimg typeof=foaf:Image src=http://www.reallifedigital.com/sites/default/files/styles/flexslider_full/public/fields/blog_main_imgs/rld_website-element_blog-drupal-seo_wide-1.jpg?itok=ivRfFpw9 width=1200 height=500 alt=Drupal SEO - written in dark blue on a light blue background. The #039;O#039; has been replaced with the Druplicon Drupal Icon. //a/div/div/divdiv class=field field--name-field-intro field--type-text-long field--label-hiddendiv class=field__itemsdiv class=field__item evenpWe are often asked by those who are new to a href=https://www.drupal.com/Drupal/a and familiar with a href=https://wordpress.com/Wordpress/a - what SEO options are available?. In order to answer this, we've put together an overview of some of the tools available for Drupal. We're only really going to scratch the surface, but here's a few things that Drupal can do for you to boost your rankings in search engine results./p /div/div/div
Categories: Drupal Feeds

Agiledrop.com Blog: AGILEDROP: The Importance of Drupal Events

Thu, 01/26/2017 - 3:01am
a href=http://www.agiledrop.com/blog/importance-drupal-eventsimg src=https://www.agiledrop.com/sites/default/files/2017-01/bright-1296538_1280.png //a Drupal Global Sprint Weekend will happen at the end of this week almost all over the world, so we have made a list for you, where you can attend it. We have also analysed Drupal Camps on all continents last year and presented you the reasons why you should attend DrupalCons. All together with user group meetups, they form Drupal events. But why is organizing and attending them important? Here are the reasons. Have you ever been to any of the described Drupal events? If your answer is yes, then you'll already familiar with things. But since you probably did not take the full advantage of it,… a href=http://www.agiledrop.com/blog/importance-drupal-eventsREAD MORE/a
Categories: Drupal Feeds

DrupalCon News: Musings of a Business Track Lead

Wed, 01/25/2017 - 4:05pm
div class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item evenpBefore working on the Session Track description, I spent some time researching. There are lots of blog posts on the embusiness of Drupal,/em plus surveys and articles - and, of course, what other Session Track committees have researched and put together./p pWhat it seemed to come down to this year was our own unified experiences - and the first ever a href=https://www.drupal.org/about/media-kit/first-annual-drupal-ceo-surveyDrupal CEO survey/a that supports what we see and directs our topics./p/div/div/div
Categories: Drupal Feeds

Mediacurrent: Dropcast Episode 28: Ahh Fabian Franz

Wed, 01/25/2017 - 3:49pm
img typeof=foaf:Image src=https://www.mediacurrent.com/sites/default/files/styles/thumb_blog_spotlight/public/introducing-meidacurrent-dropcast-01.png?itok=f65GiXYs width=200 height=152 / p dir=ltrRecorded January 19th, 2017/p pThis episode we are ringing in the new year and giving you all a treat, by letting someone else talk. We welcome Fabian Franz, a core committer for Drupal 7  and co-creator of Ryan’s favorite thing in the whole wide world, Big Pipe. You do have to listen to us a little as we talk about Mediacurrent’s awesome blog posts, and Drupal News. Mario brings us the first Pro Project Pick of the year and we’ll finally shut up with Ryan’s Final Bell./p
Categories: Drupal Feeds

Drupal.org Featured Case Studies: University of Minnesota

Wed, 01/25/2017 - 3:42pm
div class=field field-name-field-mainimage field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evenimg src=https://www.drupal.org/files/styles/case588x306/public/UMN-homepage.png?itok=2ysFzWDq width=588 height=306 alt=Screenshot of homepage at umn.edu //div/div/divdiv class=field field-name-field-link field-type-link-field field-label-abovediv class=field-labelCompleted Drupal site or project URL:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=http://umn.eduhttp://umn.edu/a/div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpSimply put, University of Minnesota is enormous. Nearly 70,000 students are enrolled at this Big Ten university with five major campuses spread throughout the state of Minnesota. Much has evolved since it was founded in 1851, but the University’s core values remain the same: enrichment by understanding, advancement of learning through education, and the search for truth through research; all of this to benefit the people of the state of Minnesota, the nation, and the world./p pThe University of Minnesota was planning to replace its existing Oracle Universal Content Management (UCM) system with a flexible, hosted Drupal implementation. The University’s UCM implementation had more than 600 sites, which represented a considerable amount of storage, and millions of site visitors monthly. Furthermore, while the University has a central Office of Information Technology (OIT), the system is a distributed environment where each collegiate unit has its own management structure and its own internal Web team./p pOIT wanted to create a centralized platform that would be an attractive and more easily maintainable alternative to departments spinning up their own independently-hosted sites. Several pilot sites would serve to provide representative real-life examples of various use cases for the platform./p/div/div/divdiv class=field field-name-field-module field-type-node-reference field-label-abovediv class=field-labelKey modules/theme/distribution used:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/project/panopolyPanopoly/a/divdiv class=field-item odda href=/project/workbenchWorkbench/a/divdiv class=field-item evena href=/project/migrateMigrate/a/divdiv class=field-item odda href=/project/zenZen/a/div/div/divdiv class=field field-name-field-developed-org field-type-node-reference field-label-abovediv class=field-labelOrganizations involved:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/palantirnetPalantir.net/a/div/div/divdiv class=field field-name-field-profiles field-type-user-reference field-label-abovediv class=field-labelTeam members:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/u/agentrickardagentrickard/a/divdiv class=field-item odda href=/u/crellCrell/a/div/div/div
Categories: Drupal Feeds

Mediacurrent: Drupal 8: How to Reference a Views#039; Block Display from a Field

Wed, 01/25/2017 - 12:49pm
img typeof=foaf:Image src=https://www.mediacurrent.com/sites/default/files/styles/thumb_blog_spotlight/public/drupal-bits-bytes.png?itok=RnuV7DHd width=200 height=152 alt=Drupal bits and bytes title=Drupal bits and bytes / pIn Drupal 7, if you wanted to reference a view display from a node field, you had to use a module such as a href=https://www.drupal.org/project/viewfieldViewfield/a. In Drupal 8, this can be done with Drupal core alone by using the built in entity reference to reference a block instance created from the view./p h2Step 1: Create a hidden region in your theme./h2 p1. Open your THEMENAME.info.yml file.br /2. Find the section for regions:br /3. Add a new line: hidden: 'Hidden region for referenced blocks'/p
Categories: Drupal Feeds

LevelTen Interactive: New Year New Drupal Events

Wed, 01/25/2017 - 12:15pm
img typeof=foaf:Image src=http://getlevelten.com/sites/default/files/styles/600x300/public/content/blog/images/new_yearnew_drupal_events.png?itok=Uyh9hCgq width=600 height=300 alt= / divspan style=font-size: 14px;As the first month of the new year comes to an end, the Drupal Community is ramping up for the many /spanDrupalCampsspan style=font-size: 14px; and annual /spanDrupalConspan style=font-size: 14px; that are sure to happen. As part of our emWeb /em/spanemDev/emspan style=font-size: 14px;em Wednesday/em, we compiled a list of /spanDrupalCampsspan style=font-size: 14px; in the United States everyone should attend. /span/div div /div ullispan style=font-size: 14px;February 4, 2017 -/span/li...a href=/blog/felipa-villegas/new-year-new-drupal-events-0 class=more-linkRead more/a/ul
Categories: Drupal Feeds

MTech, LLC: Entity Lookup Generate migrate process plugins

Wed, 01/25/2017 - 10:06am
spanEntity Lookup Generate migrate process plugins/span div class=field field--name-body field--type-text-with-summary field--label-hidden field--itempThanks to the drupaleros community, Drupal 8 has two new plugins added in the migrate plus module: strongentity_lookup/strong and strongentity_generate/strong. These can be used to lookup and create an entity if it does not exist. I will show you a way in which we can implement these plugins and we will see for what applications they can be used./p/div spana title=View user profile. href=https://www.mtech-llc.com/blog/ada-hernandez lang= about=https://www.mtech-llc.com/blog/ada-hernandez typeof=schema:Person property=schema:name datatype= xml:lang=Ada Hernández/a/span spanWed, 01/25/2017 - 10:06/span
Categories: Drupal Feeds

DrupalEasy: Learning Drupal: Time is On Your Side  

Wed, 01/25/2017 - 9:15am
h5 dir=ltremimg alt=Take your time concept clock data-entity-type=file data-entity-uuid=4f648b43-9548-4b71-9242-43bc1f7e3600 src=https://www.drupaleasy.com/sites/drupaleasy.com/files/inline-images/046886752-take-your-time-concept-clock.jpg class=align-right //emMiriam Webster defines effort as emconscious exertion of power: hard work/em/h5 pIf you want to learn Drupal, you need to put forth some effort, and if you want to do it properly, get ready to exert some power for months, not days.  People ask us all the time if they can get a job right out of our a href=https://www.drupaleasy.com/academy/dco/course-informationDrupal Career Online/a program. The truth is, it depends on how much hard work you put in to get out ready enough for an internship or junior position. Whether it’s Drupal or anything else, learning something and being able to apply it well depends on how much you absorb and practice, both of which are best done over time./p pLast summer, James Dennin wrote an a href=http://fusion.net/story/303385/coding-bootcamps/insightful piece of advice/a for those seeking careers in coding for Fusion.net. It touches on a lot of the same issues with bootcamps that we have heard about for years from students who come to a href=https://www.drupaleasy.com/academyDrupalEasy Academy/a after disappointing experiences. While we don’t like to throw barbs, we like less the sad stories of lost dollars and time in unguided crash courses where people are seated in a room, immersed in videos and teamed with other, non-skilled newbies on trying learn Drupal. A 5- or 10-day whirlwind of information overload is seldom a successful learning experience./p pBecoming proficient in Drupal is no cakewalk; it includes amassing knowledge, learning best practices and developing skills as part of a challenging learning process, whatever your process may include. Education experts recognize as many as seven different a href=http://www.learning-styles-online.com/overview/styles of learning/a, including:  a href=http://www.learning-styles-online.com/style/visual-spatialVisual/a, a href=http://www.learning-styles-online.com/style/aural-auditory-musicalAural/a, a href=http://www.learning-styles-online.com/style/verbal-linguisticVerbal/a, a href=http://www.learning-styles-online.com/style/physical-bodily-kinestheticPhysical/a, a href=http://www.learning-styles-online.com/style/logical-mathematicalLogical/a, a href=http://www.learning-styles-online.com/style/social-interpersonalSocial/a and a href=http://www.learning-styles-online.com/style/solitary-intrapersonalSolitary/a. Most people find a combination works best. For anyone, regardless of the learning style; taking the time to really soak it in and get some hands on experience is key. The bottom line is that Drupal takes time and practice./p pFor those who do well on the solitary route, a href=https://buildamodule.com/Build-a-Module/a, which routinely supports students and alumni of our career training program, has a solid, comprehensive library of instructional videos that you can take your time to work through with a modest monthly subscription.  You can also check out a href=https://drupalize.me/Drupalize.me/a./p pFor those who learn better with a formal course or need to train-up a team; our a href=https://www.drupaleasy.com/academy/dco/organizationsDrupal Career Online/a program uses live instruction; a stackable-skill designed curriculum; practical exercises; and group learning.  We also provide resources like lesson guides, screencasts for every lesson, and help when you need it. In addition to all the great a href=https://www.drupaleasy.com/training/testimonialsfeedback/a we get from our students and all the great a href=https://www.drupaleasy.com/academy/drupal-resourcesgraduate case studies/a, we ensure our program meets accepted educational standards as a career program, so we go through an annual review to ensure we remain a licensed, post-secondary institution through the a href=http://www.fldoe.org/core/fileparse.php/7748/urlt/1516annualreport.pdfFlorida Department of Education, Commission for Independent Education/a (see page 21 of the linked PDF.)  /p p dir=ltrWe are committed to Drupal and developing awesome Drupal talent, which is why we cringe when we hear about drinking-out-of-the-firehose learning scenarios. It is also why we have been perfecting our course (yes even making it longer) over the past 6 years. Best practices and allowing students the time to soak up what they’ve learned, along with hands-on projects and expert-developer instruction are fundamental elements of Drupal Career Online. It includes 84 hours of live, online instruction over 12 weeks as part of the learning community of current students and alumni. The course covers practical projects and assignments, and includes 12 co-working labs and instructor office hours, which are available to current students and alumni every week. The a href=https://www.drupaleasy.com/academy/dco/course-informationSpring 2017 session/a begins March 13, with the deadline to apply March 6.  /p p dir=ltrFor most, learning anything, especially Drupal, is a process that takes an investment of time and effort, not just from the students, but from those who endeavor to help them learn.  Don’t cheat yourself and risk wasted time by trying to save time. Whatever learning styles work for you, make sure you take the time and put in the effort to follow a logical path that builds knowledge and helps you get comfortable with key skills in the way that ensures your hard work leads to your ultimate success./p p dir=ltrFor more resources about becoming a Drupal developer, take a look at our a href=https://www.drupaleasy.com/academy/drupal-resourcesCareer Resources/a.  To learn more about our upcoming a href=https://www.drupaleasy.com/academy/dco/course-informationDrupal Career Online/a Spring session, a href=https://www.drupaleasy.com/dco/tastesign up/a for one of our strongfree /strongTaste of Drupal online information sessions in February./p pema href=https://www.drupaleasy.com/photo/46886752/take-your-time-concept-clock.htmltake your time concept clock/a Photos by a href=https://www.pond5.com/Pond5/a/em/pdiv class=feedflare a href=http://feeds.feedburner.com/~ff/DrupalEasy?a=CvSf4dVg7eg:vWhNQ5NG55Q:yIl2AUoC8zAimg src=http://feeds.feedburner.com/~ff/DrupalEasy?d=yIl2AUoC8zA border=0/img/a a href=http://feeds.feedburner.com/~ff/DrupalEasy?a=CvSf4dVg7eg:vWhNQ5NG55Q:qj6IDK7rITsimg src=http://feeds.feedburner.com/~ff/DrupalEasy?d=qj6IDK7rITs border=0/img/a /divimg src=http://feeds.feedburner.com/~r/DrupalEasy/~4/CvSf4dVg7eg height=1 width=1 alt=/
Categories: Drupal Feeds

Convivio: Managing Microsites with Drupal 8

Wed, 01/25/2017 - 9:04am
h4strongThere are lots of situations in which you need to run a series of microsites for your business or organisation — running a marketing campaign; launching a new product or service; promoting an event; and so on. When you’re with Drupal, though, what options do you have for running your microsites? In this article I review and evaluate the options in Drupal 8, make a recommendation and build a proof of concept./strong/h4figureimg alt= src=https://cdn-images-1.medium.com/max/1024/1*au3bqkUaHD2vCvFcYYSywQ.jpeg //figureh3So, I want to run some microsites …/h3pA client brought me an interesting problem recently, something they need to solve for their production a href=https://www.drupal.org/Drupal/a site. They are an international humanitarian agency who, alongside their main production website, want to run some microsites for a number of their public campaigns. Although they could run them on the main site, they’ve found too many limitations in trying to do that. Campaign teams, frustrated with the lack of flexibility and slow protocols for getting changes made to support their bespoke needs, have often gone off with their small budget and dynamic team to create something quick that fits their campaign with a href=https://www.squarespace.com/Squarespace/a or a href=https://wordpress.com/Wordpress/a or something./ppThat made the campaigners really happy. But, when the campaign or event lapsed, the campaign site quickly got out of date and went unloved, the campaign team moved on and no-one could remember how to log into the system and it became abandoned./ppHearing this story was so familiar — the same thing often happened when I was a senior developer at a href=https://www.oxfam.org/Oxfam International/a./ppSo, they said, could something be done about it? What, if anything, could be done with Drupal to support campaigners get their microsites running? What would give them the fast, bespoke solution to their microsite problems, whilst still keeping all the content well-managed and being able to share that content with the main site or other microsites?/ppI scratched my chin and had a think./ph3How about Drupal multisites?/h3pSince some of its earliest versions, a href=https://www.drupal.org/docs/7/multisite-drupal/multi-site-sharing-the-same-code-baseDrupal has included a feature for multi-sites/a — running several sites from a single codebase installation, sharing the core system, contributed and custom modules and themes. Each multisite has its own database, its own settings and configuration, its own content, and so on. Ideally, it also means updates can be done once./ppSo, multisites could be an option. Many people find them to be a real workhorse for their context, and often they are right on the money./ph4Why use multisites/h4pThe a href=https://www.drupal.org/docs/7/multisite-drupal/multi-site-sharing-the-same-code-baseDrupal.org documentation for multisites/a includes a simple rule-of-thumb for a href=https://www.drupal.org/docs/7/multisite-drupal/multi-site-sharing-the-same-code-base#whenwhen to multisite/a:/pblockquoteAs a general rule on whether to use multisite installs or not you can say:/blockquoteblockquote- If the sites are similar in functionality (use same modules or use the same drupal distribution) do it./blockquoteblockquote- If the functionality is different don’t use multisite./blockquotep(DrupalCon Austin [June 2014] held a interesting debate on Drupal multi-sites, its pros and cons, gotchas and suggestions, which is a href=https://www.youtube.com/watch?v=9dJxEUM2YOYavailable on YouTube/a.)/ppThere’s several compelling reasons to use them./ppFirst, having a strongsingle codebase to maintain/strong is a huge plus. Forked codebases can soon become orphaned, and unloved codebases become fraught with problems too quickly./ppSecond, multisites often mean there is also a strongsingle hosting platform to maintain/strong, which is also a major advantage./ppThat can often mean, thirdly, that multisite installations can make strongbetter use of resources/strong, both the server resources and financial, personnel or other physical resources. For example, since multi-sites share the same core and modules, that code need only go into the opcode cache once, saving server resources./ph4Caveat: is the end of multisites support on the horizon?/h4pIt should be noted that a proposal has been made to a href=https://www.drupal.org/node/2306013deprecate support for multisites in Drupal/a, with a view to removing it in the future./ppThe basic argument for this is that it’s an ‘old skool’ way of thinking about handling multiple sites. Git and Composer create practices and codebase structures that point in other directions./pblockquoteThe modern approach to multi-site is: git — Same code, different sites. Under your control. And well-maintainable./blockquotepThere are a number of positive reactions to that proposal, which are variations on a theme:/pblockquote+1. Multisite is a historical oddity at this point and I’d never tell anyone to use it./blockquotepBut there are many more negative reactions, which largely go along these sorts of lines:/pblockquote-1. Multisite has been a workhorse for a ton of Drupal sites and is well established in our code./blockquotepIn that light, Drupal’s multi-site feature is likely to stay around for a while./ph4Classic problems with Drupal multisites …/h4pIt’s not all a bed of roses, though. There are some classic sticking points when working with Drupal multisites./ppFirst off, stronghandling traffic/strong. One site’s traffic spike can be another site’s nightmare when the hosting resources are all hogged by The New York Times tweeting a link to a page on a site of yours; one site’s ‘BEST DAY EVA!’ can be the worst of times for all the rest./ppThe strongload on your database server /strongmay also be an issue. Multisites often use a single database server, and heavy load or slow queries in one DB can impact the performance of others. This might even be caused in the normal running of your Drupal sites, such as when running strongcron/strong./ppstrongRunning updates/strong often causes headaches. When you update code, you’re updating all your sites at once. That means the updates are deployed, well, instantly across all your sites, but if they need update processes to run, such as strongupdating the database/strong, that can throw unexpected problems or errors./ppAnd the worst of the worst: a small piece of poorly written, inadequately reviewed or tested code mysteriously jumps itself onto production — that emnever/em happens, right? No one emever/em lets that happen, do they? *ahem* — and emtakes down all your sites at once!/em It’s just an urban myth, a story to scare the children with at night, right? Never happens./ph4… and how to mitigate them/h4pThere are of course a number of ways to foresee these things happening and be ready for them./ppOn the performance questions, with smaller demands you can just ride it out — sites on the same hosting platform are fairly tolerant of resources being shared around, and the spare capacity is there for times just like there./ppFor larger performance demands, handling the pressure is a challenge in any hosting set-up, dedicated hosting just as much as shared. With modern cloud infrastructure, the option of scaling up your infrastructure or spinning up a new cluster when you’re experiencing ongoing heavy demand is much easier than in the past, especially if you plan for it as a possibility./ppThe next set of mitigations are all about best practice./ppFor starters, strongtest, test, test./strong Don’t let any code onto production that hasn’t been tested thoroughly./ppHave a strongsolid release process/strong that strongyou always follow/strong. If possible, include dev, staging and quality assurance stages. This should give you lots of points to catch things before they’re released onto your production sites./ppstrongAutomate all the things/strong. There are lots of ways of automating things to ensure they run consistently and quickly too, from shell scripts up to continuous integration tools. Use them./ppAnd finally, strongbe intelligent/strong. With code changes that need database updates, for example, design your code so that it can be deployed to handle an interval before the database is updated. Or, with important but more volatile updates, be smart about choosing the time of day and week that you deploy it. Don’t emever/em push something out at 5pm on a Friday afternoon if you want to stay friends with your colleagues, your customers and your family./ppWell, yes, in short, kinda. You could run microsites using Drupal’s multi-site feature. Things would work fine, though of course you’d have all the problems described above and have to take the mitigating actions./ppHowever, it wouldn’t solve all the needs described above without some smart thinking. Plus, I’d suggest that you would also have some other problems to solve./ppFirst, multisites all use different databases (sharing databases and tables is empossible/em with Drupal multisites, but really unadvisable!) so the need of a single place for managing all the site content wouldn’t really be satisfied. The way around that would involve using web services, posting and pulling content from one site to another./ppNeither would we have a unified search. There are fairly straightforward ways around that, using a tool like Apache Solr. The sites would need to share an index, with each document in the index including a site field, and there’s a contrib module that does that already (although no Drupal 8 version yet)./ppLastly, and maybe more pertinently, you would still have all the ‘Drupalisms’ to live with. First of those is the visual design layer, the public user’s interface for the sites, what gets called the ‘theme layer’ in Drupal lingo. Many designers really dislike Drupal’s theme layer, and would really prefer to work with the pure frontend tools they use in other contexts. Drupal 8 has made major strides forward with the theme layer so it’s not as tough for designers as it once was, it’s true, but many (most?) frontend specialists would still rather not work with it./ppSome consider a href=https://pantheon.io/blog/why-drupal-multisite-not-enterprise-gradeinfluential Drupal figures consider multisites as ‘not enterprise grade’/a and opinions like that are worth considering if your situation is enterprise scale./ph3Other approaches with Drupal/h3pThere are a few other ways of supporting microsites with Drupal that might be worth considering./ph4Domain Access/h4pThe a href=https://www.drupal.org/project/domainDomain Access project/a was created to support just this kind of functionality. The project overview says as much:/pblockquoteThe Domain Access project is a suite of modules that provide tools for running a group of affiliated sites from one Drupal installation and a single shared database. The module allows you to share users, content, and configurations across a group of sites./blockquotepThis might work. However, there are many of the same problems with core multisites described above with this approach, with one additional one: everything in one database./ppOur experience of using it, and this is a href=http://wadmiraal.net/lore/2014/10/08/why-i-do-not-recommend-domain-access/echoed by others/a too, is that with a small number of very similar sites Domain Access can work well. With a larger number of fairly different sites, it’s a right pain and actually makes things quite difficult, requiring lots of complicated custom code./ph4Organic Groups/h4pThe a href=https://www.drupal.org/project/ogOrganic Groups/a suite of modules could be a solution for building microsites. The project allows users to create a ‘group’ within a Drupal site. The group can have its own users, admins, content, menus, even its own visual design. However, it would need every microsite to sit internally, within the main site, so does not solve the need to supporting external sites on their own domain. So, not really the perfect fit./ph4Best practice: with Git/h4pI quoted above from a href=https://medium.com/@sun@sun/a in the a href=https://www.drupal.org/node/2306013discussion on deprecating multisite support/a about the modern best practice:/pblockquoteThe modern approach to multi-site is: git — Same code, different sites. Under your control. And well-maintainable./blockquotepThis is certainly my standard recommendation and will give you many advantages: independence of sites for performance, design, etc; single codebase to maintain (though you’ll have a challenge developing and maintaining the variations you’ll want or need for each microsite); better control over updates; and so on./ppYou might even look writing an install profile to make a full distribution, though with Drupal 8 there is less of a need to do this. With Drupal 8, I’d advocate that you use a href=https://github.com/drupal-composer/drupal-projectDrupal Composer/a to build your site and just export your emfull/em site config into your repo (being careful to remove any sensitive settings from the repo with your .gitignore file)./ppOr you might also consider using a href=http://www.aegirproject.org/Aegir/a to manage your multiple sites — use Drupal to deploy Drupal, if that’s not too much Inception./ph3Microsites and Drupal/h3pSo if multisites emcould/em work but would be a bit of a pain, the other Drupal approaches are even less appealing, and you’d rather not keep multiplying Drupal installations, how emelse/em could we do microsites with Drupal?/ppWell, there are two major moves in modern web development that might help here: RESTful web services, and decoupled CMS architectures (a.k.a. ‘headless’ CMS). My proposal for managing microsites in Drupal 8 depends on both these ideas:/pulliTreat your Drupal site as a pure content management system (CMS) — a strongcontent hub/strong that allows authors, editors and administrators to create, update and manage the content for which they’re responsible, but doesn’t have any meaningful frontend presentation layer to it./liliPresent the data of the content in the hub CMS via a strongRESTful API/strong./liliImplement a strongseparate frontend for the visual presentation/strong layer that communicates with the content hub CMS via the API./li/ulpThere need be no limit to the number of frontends that use the CMS’s API (though practically you may limit access with firewalls, a href=http://enable-cors.org/CORS/a or some other means) so you could power a primary public site, other sub-sites, native mobile apps or even another CMS or two, each potentially with their own visual design. The limit is your own imagination and situation./ph4RESTful web services and Drupal 8/h4pA a href=https://www.drupal.org/docs/8/api/restful-web-services-api/restful-web-services-api-overviewnew addition to Drupal 8 is the RESTful Web Services API/a. REST resources can be exposed to allow other things to talk to/consume/feed a Drupal site. Many core entities have REST resources, but it is also fairly easy to build a href=https://www.drupal.org/docs/8/api/restful-web-services-api/custom-rest-resourcescustom REST resources/a. (There a number of interesting web services contrib projects that are worth considering, such as the a href=https://www.drupal.org/project/graphqlGraphQL project/a that presents a a href=http://graphql.org/GraphQL/a schema, and the a href=https://www.drupal.org/project/relaxedRELAXed Web Services project/a that extends the core REST resources.)/ph4Design your own web services API/h4pThe freedom to build custom REST resources in Drupal 8 allows a lot of freedom in designing a RESTful API./ppIn a forthcoming blog post I’ll write in more about designing an API. For now, all I need to say is you need to actually emdesign/em your API. Don’t simply use the out-of-the-box Drupal core REST resources — emthink/em about the RESTful API that would best serve the frontend you want to have./ppMy heartfelt recommendation is you do this, designing your API, using the skills of those who’re best at designing things — your designers. They understand best what your users want to do on your sites, will be able to describe what data they want for the frontend (content with/without markup, etc.) and help you design the API that is most appropriate to your needs./ppThere are some a href=https://www.toptal.com/api-developers/5-golden-rules-for-designing-a-great-web-apiAPI design golden rules/a and a href=http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-apibest practices/a that you should consider. Also I’d recommend using an API design tool like a href=https://apiary.io/Apiary.io/a or a href=http://swagger.io/Swagger.io/a. They’re invaluable for many reasons, not least of which is the lovely documentation they generate and mock data servers they include that can help frontend devs get going quickly./ph4Decoupled frontend/h4pWith the content hub now presenting the managed content as RESTful data, we just need a standalone frontend system to present your website to your users: one for your primary site, and one for each of your microsites. Your frontend specialists can then work with the right tools for the task, then./pfigureimg alt= src=https://cdn-images-1.medium.com/max/1024/1*o2TpK9HuWsUIyIZpeBFMqQ.png //figurepThere are several advantages to consciously uncoupling the content management and the frontend./ppstrongFreedom:/strong frontend specialists are free to the implement the user experience with native tools that are built for the job./ppstrongPerformance:/strong everything in this architecture can be streamlined. The CMS simply presents the content data. The frontend focuses on the display logic./ppstrongExperience:/strong the website can respond to users in real time, communicating back and forth with the CMS to give real-time interactions in the browser./ppstrongFuture proof:/strong it becomes much easier to replace any part of the system as you require, such as redesigning the website without re-building the CMS./ph3Microsites in Drupal 8/h3pSo, how might we do this practically in Drupal 8? Here’s how I tackled it./ppFirst, I thought about designing a quick prototype API that could be used to describe microsites and their content. I used a href=https://apiary.io/Apiary.io/a to design it, and you can view the API at a href=http://docs.campaignmicrosites.apiary.io/docs.campaignmicrosites.apiary.io/a./pfigureimg alt= src=https://cdn-images-1.medium.com/max/1024/1*SryuAIqPaLTe6CYkiSm1Hw.png /figcaptionAPI design at a href=http://docs.campaignmicrosites.apiary.io/docs.campaignmicrosites.apiary.io/a/figcaption/figurepNext, I installed a Drupal 8 instance with a href=http://drupal-composer.org/Drupal Composer/a to act as the editors’ content hub and created a ‘Campaign’ content type with some basic fields. This ‘Campaign’ content type is the core of the microsite support. Each Campaign creates a new microsite./ppSince in this client’s conundrum the microsites can be internal (i.e. sit within the main public site) or external (i.e. on their own domain or sub-domain) I added two fields:/pulliexternal site (true/false boolean)/liliexternal URL (URL)/li/ulpThese will allow requests for the microsite from within the main site to be redirected to the external URL, and will help in constructing the right data in the API resources./pfigureimg alt= src=https://cdn-images-1.medium.com/max/1024/1*cJ5sd8PVw7CUICYeNzwr3w.png /figcaption‘Campaign’ content type in Drupal content hub/figcaption/figurepI also adapted the core Article content to include an entity reference to a ‘Campaign’ node, and included a taxonomy reference field to indicate the ‘type’ of article — news; FAQ; info; etc./ppThe next task was to create the REST resources that matched the APIs I’d designed. For this I created a custom module, campaign_api, and created four classes, one for each of the API resource collections I’d designed, in the `Drupal\campaign_api\Plugin\rest\resource` namespace./pfigureimg alt= src=https://cdn-images-1.medium.com/max/1024/1*jF3rVWANpvIUpmrb-U9f1g.png /figcaptionDrupal custom module for the new REST resources/figcaption/figurepThe quick and dirty code for the `get` method on the Campaigns resource looks like this:/ppreem/**br * Responds to GET requestsbr *br * Returns an array of Campaign data.br * br * /emstrongem@param /em/strongemnull $unserializedbr * /emstrongem@param /em/strongem\Symfony\Component\HttpFoundation\Request $requestbr * /emstrongem@return /em/strongem\Drupal\rest\ResourceResponsebr */br/emstrongpublic function /strongget($unserialized = strongNULL/strong, Request $request) {br $build = [];br // Default langcodebr $langcode = $request-gt;query-gt;get(#39;langcode#39;, #39;en#39;);brbr // Load campaign nodesbr $query = $this-gt;entity_query-gt;get(#39;node#39;)br -gt;condition(#39;type#39;, #39;campaign#39;)br -gt;condition(#39;langcode#39;, $langcode);brbr $nids = $query-gt;execute();br $campaigns = \Drupal::ementityTypeManager/em()-gt;getStorage(#39;node#39;)-gt;loadMultiple($nids);brbr // Array of image styles to supportbr $image_styles = [br #39;large#39; =gt; #39;full#39;,br #39;medium#39; =gt; #39;medium#39;,br #39;thumb#39; =gt; #39;thumbnail#39;br ];brbr em/** /emstrongem@var /em/strongemNodeInterface $campaign */br /emstrongforeach /strong($campaigns strongas /strong$campaign) {br $image_array = [];br $image_file = File::emload/em($campaign-gt;get(#39;field_image#39;)-gt;target_id);brbr strongforeach /strong($image_styles strongas /strong$name =gt; $style_name) {br $style = ImageStyle::emload/em($style_name);br $image_array[$name] = [br #39;url#39; =gt; $style-gt;buildUrl($image_file-gt;getFileUri()),br #39;alt#39; =gt; $campaign-gt;get(#39;field_image#39;)-gt;alt,br ];br }br $external = (integer) $campaign-gt;get(#39;field_external#39;)-gt;getValue();br $build[] = [br #39;id#39; =gt; $campaign-gt;id(),br #39;uuid#39; =gt; $campaign-gt;uuid(),br #39;langcode#39; =gt; $campaign-gt;language()-gt;getId(),br #39;languages#39; =gt; [br $campaign-gt;language()-gt;getId() =gt; $campaign-gt;language()-gt;getName(),br #39;default#39; =gt; $campaign-gt;language()-gt;getId(),br ],br #39;title#39; =gt; $campaign-gt;getTitle(),br #39;created#39; =gt; $this-gt;date_format-gt;format($campaign-gt;getCreatedTime(), strongNULL/strong, #39;c#39;),br #39;external#39; =gt; !strongempty/strong($external),br #39;external_url#39; =gt; $campaign-gt;get(#39;field_external_site_url#39;)-gt;getValue(),br #39;description#39; =gt; [br #39;formatted#39; =gt; check_markup($campaign-gt;get(#39;body#39;)-gt;value, $campaign-gt;get(#39;body#39;)-gt;format),br #39;raw#39; =gt; $campaign-gt;get(#39;body#39;)-gt;value,br ],br #39;image#39; =gt; $image_arraybr ];br }brbr $response = strongnew /strongResourceResponse($build);br $response-gt;addCacheableDependency($langcode);brbr strongreturn /strong$response;br}/prepEnable those resources (by clicking stuff with a href=https://www.drupal.org/project/restuiREST UI module/a installed, if you like), of course, and then create some content to populate the responses — one campaign called ‘DIY succulents’ and the other ‘a href=http://admin.hub.dev/campaign/slow-carb-credSlow-carb cred/a’ (yep, I used some a href=https://hipsum.co/Hipster Ipsum/a)./pfigureimg alt= src=https://cdn-images-1.medium.com/max/1024/1*Xggd4BRyw6GHAiK_5D2aVg.png /figcaptionEnable the resource endpoints/figcaption/figurepThen you should be able to retrieve your data at the appropriate endpoints. A nice way of doing that is with the free a href=https://www.getpostman.com/Postman app/a (there’s a Chrome extension also). Postman makes a request to the endpoints you specify and pretty-prints the response. Marvellous!/pfigureimg alt= src=https://cdn-images-1.medium.com/max/1024/1*O_9gpeo0mrMwDo5n5cl1Gw.png //figurepThe final part is the standalone frontend tool. For this I used React. I used React to build my frontend app, but there’s obviously plenty of other options depending on what the frontend needs to do. React worked for me because I just wanted the view layer, but Angular or Ember could be more appropriate if the frontend needed to be a more substantial app. You’d need to a href=https://www.romexsoft.com/blog/js-frameworks-comparison/evaluate the frontend options carefully/a./ppI’m not a frontend specialist, so my prototyping code is pretty fugly. Despite that, we’re able to serve two microsites simultaneously on different URLs, with a different theme, just by switching the campaign ID in the API request./pfigureimg alt= src=https://cdn-images-1.medium.com/max/1024/1*4TpxfPpeoO9lKUPe_CYo1Q.png //figurefigureimg alt= src=https://cdn-images-1.medium.com/max/1024/1*fT_RwOwZxHg2jpBjDLWaYQ.png //figurepBingo!/ph3Deploying to production/h3pThere’s a few things I might do to deploy this to a production system./ph4Secure serving/h4pAs a good internet citizen, I’d want to put everything on SSL./ph4Frontend deployment/h4pTo deploy the frontend, I’d be looking at options to run the apps on a NodeJS server so that most of the scripts can run server side./ppI’d probably want to put an Nginx instance in front of it, for SSL termination, caching static assets and reverse proxy./ph4Use Drupal multisites ;-P/h4pI think there is actually a neat way of using Drupal’s multi-sites feature here: use a different domain for the RESTful API. For example:/ppstrongEditorial interface:/strong hub.yourdomain.combrstrongAPI interface:/strong api.yourdomain.com/ppBoth of these point to your Drupal codebase but you can then handle requests differently on each domain. For example, you might add an authentication provider that checks the domain to give you some access control, so there’s no access to the editorial interface on the API subdomain, and none to the API on the editorial domain./ph4Caching etc./h4pThis would then allow you to do some smart things with caches and other parts of your hosting stack, offloading much of the pressure on the codebase to the caching architecture and removing the actions of editorial staff from affecting the RESTful API’s performance./ph4Databases/h4pIt might also be possible to configure GET requests to only use a slave database, which could be useful for performance — though may be more hassle than it’s worth. POST, PUT, PATCH and DELETE requests would still need to go to the master./ph3In summary/h3pThis prototype worked really well for me and I was very happy with the results, and it gave me something very interesting to discuss with the client./ppThe advances made in Drupal 8 to operate with current standard web practices are good news for developers and for web projects big and small. For this prototype, the particular improvements with providing RESTful resources means that I was able to create a decoupled Drupal system to support a main website and unlimited microsites in an amazingly short space of time./ph4… and something to take away/h4pIf you’re interested in following up this thought experiment with my Drupal 8 prototype, I’ve put the code into a repo in GitHub:/ppa href=https://github.com/ConvivioTeam/Convivio-ContentHubConvivioTeam/Convivio-ContentHub/a/ppJust …/ppre$ git clone a href=mailto:git@github.comgit@github.com/a:ConvivioTeam/Convivio-ContentHub.git {some_empty_directory}br$ cd {some_empty_directory}br$ composer install/prep… and you’re away./pp(My React code is shamefully dirty, so I’m not prepared to share that at moment. ;-) I may tidy it up in the future and share it here.)/ppMain image: courtesy of Denys Nevozhai/Unsplash. a href=https://unsplash.com/photos/guNIjIuUcgYhttps://unsplash.com/photos/guNIjIuUcgY/a/ph4Convivio helps organisations to work better for people./h4pWe do this mainly by helping them transform their services using digital tools, but also by spreading new ways of working./ppstrongRead our blog: /stronga href=https://blog.weareconvivio.com/strongblog.weareconvivio.com/strong/astrongbrFollow us on twitter: /stronga href=https://twitter.com/weareconviviostrong@weareconvivio/strong/astrongbrGet in touch: /stronga href=mailto:hello@weareconvivio.comstronghello@weareconvivio.com/strong/astrongbrVisit our website at /stronga href=http://weareconvivio.com/?utm_source=medium.comamp;utm_medium=weeknotesstrongweareconvivio.com/strong/a/pimg src=https://medium.com/_/stat?event=post.clientViewedreferrerSource=full_rsspostId=f3c08bcb316a width=1 height=1hrpa href=https://blog.weareconvivio.com/managing-microsites-with-drupal-8-f3c08bcb316aManaging Microsites with Drupal 8/a was originally published in a href=https://blog.weareconvivio.comConvivio/a on Medium, where people are continuing the conversation by highlighting and responding to this story./p
Categories: Drupal Feeds

Evolving Web: SiteDiff - Compare multiple versions of a website

Wed, 01/25/2017 - 9:00am
a href=https://evolvingweb.ca/%20%20___ img src=https://evolvingweb.ca/sites/default/files/styles/medium/public/2017-01/iStock-184846177.jpg?itok=fv5_LaFi width=220 height=131 alt=Different houses typeof=Image class=img-responsive //apIntroduction and quick guide to using sitediff - a handy site version comparison tool which helps you detect changes between various versions of a website./p a href=https://evolvingweb.ca/blog/sitediff-compare-multiple-versions-website hreflang=enread more/a
Categories: Drupal Feeds

DrupalEasy: DrupalEasy Podcast 190 - Ted Sings! (Dan Schiavone, Elizabeth Lipinski - DrupalCon Baltimore Sessions)

Wed, 01/25/2017 - 7:30am
pa href=https://drupaleasy.podbean.com/mf/play/9eyxv2/DrupalEasy_ep190_20170125.mp3Direct .mp3 file download./a/p pDan Schiavone (a href=https://www.drupal.org/u/schiavoneschiavone/a), President, a href=http://www.snakehill.net/Snake Hill Web Agency/a, and local lead front end track for a href=https://events.drupal.org/baltimore2017DrupalCon Baltimore/a and Elizabeth Lipinski (a href=https://www.drupal.org/u/lizardatalizardata/a), Technolgy Strategist (also from Snake Hill) and the local lead business track joins Ted and Mike to discuss session submission for DrupalCon Baltimore. We also discuss Media in Core and changes to Drupal marketplace rankings before making our picks of the week!/p h2Interview/h2 ullia href=https://events.drupal.org/baltimore2017/submit-sessionSubmit a session/a to DrupalCon Baltimore. /li /ulh2DrupalEasy News/h2 ullia href=https://www.drupaleasy.com/dcoDrupal Career Online/a Spring 2017 (evening) class begins March 13! Learn more at one of our upcoming online a href=https://www.drupaleasy.com/dco/tasteTaste of Drupal/a events on February 1st and 28th./li /ulh2Three Stories/h2 ullia href=https://www.drupal.org/drupalorg/blog/recognizing-more-types-of-contribution-in-the-Drupal.org-MarketplaceRecognizing more types of contribution in the Drupal.org Marketplace/a - blog post by Tim Lehnen. /li liMedia in core - a href=http://www.md-systems.ch/en/blog/md-systems/2017/01/09/current-status-of-media-in-drupal-8-core-and-next-stepsCurrent Statue of Media in Drupal 8 Core and Next Steps/a - a href=https://dev.acquia.com/blog/media-essentials-begins-its-journey-to-drupal-core/09/01/2017/17496Media Essentials Begins Its Journey to Drupal Core/a - a href=https://janezurevc.name/results-drupal-8-media-sprintResults of the Drupal 8 Media Sprint/a. /li lia href=http://mikecr.it/ramblings/drupal-project-productivity-curveThe Drupal Project Productivity Curve/a - blog post by Mike Crittenden. /li /ulh2Sponsors/h2 ullia href=http://www.mydropwizard.com/drupal-6-ltsMyDropWizard.com/a - Long-term-support services for Drupal 6, 7, and 8 sites. /li lia href=http://webenabled.comWebEnabled.com/a - a href=https://devpanel.comdevPanel/a. /li /ulh2Picks of the Week/h2 ulliMike - Free a href=https://modulesunraveled.com/blog/new-series-drupal-8-composer-and-configuration-managementDrupal 8: Composer and Configuration Management/a video series from Brian Lewis at Modules Unraveled and a href=https://www.drupal.org/blog/nominations-2017-aaron-winborn-awardNominations are now open for the 2017 Aaron Winborn Award/a. /li liTed a href=https://plugins.jetbrains.com/idea/plugin/7487-drupal-symfony-bridgeDrupal Symfony Bridge for IntelliJ IDEA/a. /li liDan - a href=http://www.frankchimero.com/writing/the-webs-grain/Frank Chimero’s blog/a, a href=http://jordanpagewhite.github.io/drupal-8-front-end-architectureDrupal 8 Front-End Architecture Jordan Page White/a. /li liLiz - a href=https://events.drupal.org/baltimore2017/teamContact DrupalCon track leads with any questions!/a /li /ulh2Upcoming Events/h2 ullia href=https://www.drupalcampnj.org/New Jersey DrupalCamp/a - February 3-5, 2017. /li lia href=https://www.fldrupal.campFlorida DrupalCamp/a - February 17-19, 2017. a href=https://www.drupaleasy.com/blogs/ultimike/2017/01/florida-drupalcamp-now-3-day-networking-and-learning-open-sourceMore info on DrupalEasy.com/a. /li /ulh2Follow us on Twitter/h2 ullia href=http://twitter.com/drupaleasy@drupaleasy/a /li lia href=http://twitter.com/andrewmriley@andrewmriley/a /li lia href=http://twitter.com/liberatr@liberatr/a /li lia href=http://twitter.com/ultimike@ultimike/a /li lia href=http://twitter.com/tedbow@tedbow/a /li lia href=http://twitter.com/sixmiletech@sixmiletech/a /li lia href=http://twitter.com/akalata@akalata/a /li lia href=http://twitter.com/schiavo@schiavo/a /li lia href=http://twitter.com/lizardata@lizardata/a /li /ulh2Five Questions (answers only)/h2 olliTurning conference t-shirts into other things. /li liAvast (anti-virus software). /li liNot afraid of anything. /li liStorks. /li liDan was jazzed after DrupalCon DC. /li /olh2Intro Music/h2 ullia href=https://www.youtube.com/watch?v=u6VoeELTfvMGlory Glory: The Battle Hymn of the Association/a - from the DrupalCon New Orleans pre-note performed by Adam Juran, Campbell Vertesi and Jeffrey Macguire./li /ulh2Subscribe/h2 pa href=https://itunes.apple.com/us/podcast/drupaleasy-podcast/id305745575Subscribe to our podcast on iTunes/a, a href=https://play.google.com/music/listen?u=0#/ps/I563aaw7k5rdnq4ofqlzlchiv5iGoogle Play/a or a href=http://www.getmiro.com/Miro/a. Listen to our podcast on a href=http://stitcher.com/s?fid=28701refid=stprStitcher/a./p pIf you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or corrections. If you'd rather just send us an email, please use our a href=http://DrupalEasy.com/contactcontact page/a./pdiv class=feedflare a href=http://feeds.feedburner.com/~ff/DrupalEasy?a=8SzRGQLlvIo:9zpfIgeMb_Y:yIl2AUoC8zAimg src=http://feeds.feedburner.com/~ff/DrupalEasy?d=yIl2AUoC8zA border=0/img/a a href=http://feeds.feedburner.com/~ff/DrupalEasy?a=8SzRGQLlvIo:9zpfIgeMb_Y:qj6IDK7rITsimg src=http://feeds.feedburner.com/~ff/DrupalEasy?d=qj6IDK7rITs border=0/img/a /divimg src=http://feeds.feedburner.com/~r/DrupalEasy/~4/8SzRGQLlvIo height=1 width=1 alt=/
Categories: Drupal Feeds

Flocon de toile | Freelance Drupal: Set up a guided tour on Drupal 8

Wed, 01/25/2017 - 3:00am
div class=field field--name-body field--type-text-with-summary field--label-hidden field--itempDrupal 8 has a new core module, the Tour module, which allows us to set up a contextual help to guide users of a Drupal 8 site for their first steps on it, whether for the discovery of their user profile, the possibilities offered to them, how to create content or the overall management of the site's contents./p/div
Categories: Drupal Feeds

Third Grove: Benefit Cosmetics Drupal Case Study

Wed, 01/25/2017 - 2:00am
span property=schema:name class=field-name--titleBenefit Cosmetics Drupal Case Study/span span class=field-name--uid rel=schema:authorspan lang= about=https://www.thirdandgrove.com/user/3 typeof=schema:Person property=schema:name datatype= xml:lang=antonella/span/span span property=schema:dateCreated content=2017-01-25T08:00:00+00:00 class=field-name--createdWed, 01/25/2017 - 03:00/span
Categories: Drupal Feeds

Platform.sh: Redis, now for long-term keys and values

Tue, 01/24/2017 - 7:00pm
pRedis is a popular key-value database, well-regarded for its speed and simplicity. Platform.sh has offered a Redis service for quite some time, which is configured not to store data but to keep it only in memory. That makes it an excellent choice for a cache server, and we recommend that configuration for most projects./p pOf course, Redis can do far more than caching. And we’re therefore happy to report we now offer a persistent configuration of Redis, too./p
Categories: Drupal Feeds

Drupal Modules: The One Percent: Drupal Modules: The One Percent — Holmes (video tutorial)

Tue, 01/24/2017 - 6:35pm
span class=field field--name-title field--type-string field--label-hiddenDrupal Modules: The One Percent — Holmes (video tutorial)/span div class=field field--name-field-screenshot field--type-image field--label-hidden field__item img src=http://gogrow.org/sites/default/files/styles/large/public/2017-01/holmes.png?itok=UMFIEyfr width=480 height=240 alt=Project page screenshot typeof=foaf:Image class=image-style-large //div span class=field field--name-uid field--type-entity-reference field--label-hiddenspan lang= about=http://gogrow.org/user/24 typeof=schema:Person property=schema:name datatype= xml:lang=NonProfit/span/span span class=field field--name-created field--type-created field--label-hiddenTue, 01/24/2017 - 18:35/span div class=field field--name-field-episode field--type-integer field--label-inline div class=field__labelEpisode/div div class=field__item16/div /div div class=clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__itempHere is where we bring awareness to Drupal modules running on less than 1% of reporting sites. Today we'll consider Holmes, a module which highlights potentially invalid, inaccessible or erroneous markup./p/div
Categories: Drupal Feeds