Turning complexity into clarity.

Acquia Developer Center Blog: Learn Drupal 8 Online and Get Certified with this New Course

News from Planet Drupal - Tue, 06/13/2017 - 19:06

One of the questions we get most often is, "How do I prepare for the Acquia Certified Developer - D8 Exam?" Now we've got an answer: the Drupal 8 Developer Immersion Course w/ Certification Prep - an 8-week, instructor-led, project-based online course that covers all areas of Drupal 8 and prepares you to take the Acquia Certified Developer - D8 Exam.

Tags: acquia drupal planet
Categories: Drupal

Wordpress Developer - Upwork

WordPress Work From UpWork - Tue, 06/13/2017 - 18:39
Looking for an experienced Wordpress developer to implement the new design for our website. We have an existing wordpress site with a Finanza theme. We created a new design for the site in PSD with all the assets.  The developer can either use our current theme and tweak it to match the design or choose a new responsive template that will work for the design provided.  There is also a 3 part form included in this design and some basic interactive functionality needed.

We have all design assets completed in a PSD file.  3 pages of content changes, 4 pages of header/footer only.

Must be able to turn this around ASAP. Please send a link to similar projects you have worked on and quote your hourly rate/number of hours this will take you to complete.  We are looking for a fixed price for this project that is budget friendly. Please provide an estimate of hours and will send you the details of the website and design files to review for a firm quote.


Posted On: June 14, 2017 04:10 UTC
Category: Design & Creative > Other - Design & Creative
Skills: Adobe Creative Suite, Adobe InDesign, CSS, CSS3, GUI Design, HTML, Illustration, Mobile UI Design, Responsive Web Design, Web Design, WordPress
Country: United States
click to apply
Categories: WordPress Maintenance

Tameesh Biswas | Blog: GSoC17 : Client Side File Crypto : Week 2

News from Planet Drupal - Tue, 06/13/2017 - 17:50
GSoC17 : Client Side File Crypto : Week 2

This blog post summarizes the second week of coding with Drupal in Google Summer of Code 2017 

tameeshb Tue, 06/13/2017 - 23:20 Tags GSoC Google Summer of Code 2017 Drupal Drupal Blog
Categories: Drupal

iOS and Android Developer - Tonit - Kelowna, BC

NodeJS jobs - Tue, 06/13/2017 - 17:25
We are immediately looking for aspiring mobile app developer with a great attitude to join our team. We are seeking someone capable of bringing apps to market $40,000 - $90,000 a year
From Indeed - Tue, 13 Jun 2017 17:25:24 GMT - View all Kelowna, BC jobs
Categories: NodeJS

Drupal core announcements: Make a difference for D8 at the DrupalCamp Montréal sprints

News from Planet Drupal - Tue, 06/13/2017 - 17:18
Start:  2017-06-15 (All day) - 2017-06-18 (All day) America/Toronto Organizers:  xjm Event type:  Sprint

DrupalCamp Montréal is coming up this Thursday to Sunday (June 15th to 18th), with great trainings, two days of sessions, and a dedicated sprint day on Sunday. The sprint gives you a great opportunity to get involved and make a difference for the things that affect Drupal and your projects. You don't need to be an expert, developer, or existing contributor to get involved. Here are three current focus areas that we'll collaborate on on this week!

Major issue triage

Major issue triage sprints have been held at many DrupalCons and camps recently and Montréal will continue these efforts. We want to fix the most important bugs in Drupal, but the first step to that is making sure bug reports are up to date and actionable. That is where major issue triage helps: identifying reports that should be critical, closing ones that are no longer relevant, downgrading ones that are actually less severe, and making sure relevant reports can move forward to a fix. Sometimes just asking questions for clarification on bug reports will move things ahead a lot. Still not convinced this sprint is for you? Read more in my blog post from earlier this year.

Make upgrade paths easier with @deprecated documentation

We made several changes in the release process with Drupal 8 to make Drupal upgrades easy forever. One of them is that we improve Drupal's APIs in scheduled six-month minor releases, but also leave the old ways of doing things in place and mark them as deprecated until Drupal 9. This huge shift for Drupal allows module maintainers to adapt to changes gradually, on their own schedule, instead of needing a massive push all at once on some later release date.

API deprecations are documented in change records on Drupal.org, and also marked directly in the code documentation. We started marking deprecated code almost two years ago as we were preparing to release Drupal 8.0.0, and we have been creating change record documentation since the release of Drupal 7. Unfortunately, we did not start to connect the two until recently, so it was not possible to read more about a certain change when you encountered a deprecated API. Help make these connections for an easier upgrade path for everyone.

Clearly define Drupal's public APIs

As we mentioned above, Drupal 8 has 6-month minor releases that improve APIs (as well as adding new features). In order to make this safe, clear, and maintainable, we defined what parts of Drupal's APIs are internal through a documented policy, but that is not very explicit for developers. Making this explicit in code documentation is more effective for anyone reading the code or developing with an IDE. By helping with this effort, you can learn a lot about Drupal 8 APIs and help with the upgrade path through documenting a better-defined API surface.

Also, help me help sprinters!

I'll be in the Montréal sprint room all four days of the camp to work with potential contributors and show them how to help with these tasks, but I could use some help myself. If you have experience with Drupal 8 (even a little) or have past experience sprinting on major triage or mentoring at Drupal events, please ping me. Helping others is an especially important way to contribute back. On that note, many thanks to camp organizers for making these sprints possible.

À jeudi! See you at the camp!

Thanks to Gábor Hojtsy for help with this post.

Categories: Drupal

Integrating Ontraport PilotPress With My Wordpress Membership Site - Upwork

WordPress Work From UpWork - Tue, 06/13/2017 - 13:08
Hi, I am looking for somebody to help me integrate PilotPress with my existing Wordpress Membership site.

I am currently using OptimizePress2 for my members pages / content.

A few things I'm looking for are the following:

1. Creating a Login Page etc / password lost sequence
2. Creating Partner Centre etc
3. Creating Customer Centre etc
4. Setting up the basis of a dripped course

I currently have a 12 module training program, which I would like configured so it is dripped at specific intervals to my customers.

I only really need the BASICS of this setting up because once the basics are done, I can then login myself and take over.

I would like my affiliates to be able to login and get access to their links and I would like my customers to be able to login and get access to their billing etc.

I would like my customers to be able to login and get access to the trainings they’ve purchased.

If you can help with this project, please let me know.

Many Thanks
Gavin


Posted On: June 13, 2017 18:12 UTC
Category: Web, Mobile & Software Dev > Web Development
Skills: Ontraport, WordPress
Country: United Kingdom
click to apply
Categories: WordPress Maintenance

Sooper Drupal Themes: Drupal 8: My Experience Crossing The Chasm With SooperThemes

News from Planet Drupal - Tue, 06/13/2017 - 12:54

Drupal 8 adoption has been very slow, and many people have been putting it off. Some even gave up on Drupal because of D8's (perceived) complexity, focussing their career or hobby on easier CMS software. The past 3 months I've been fully engaged in embracing Drupal 8 and moving my premium Drupal themes along with the supporting ecosystem of modules, installation profiles, and infrastructure to Drupal 8! Going forward we will develop and maintain our products on both Drupal 7 and Drupal 8. 

It's been an interesting but also difficult journey and I'm writing to tell other Drupal professionals (and hobbyists) about my experience. I divided this long read into several chapters so you can skip to whichever topics you care about most. If this topic is important to you, please do comment and share your thoughts and experience!

Theming: Easier and Better But Completely New

Drupal 8 uses a new templating system for theming called Twig. While skeptical at first about having to learn a new language, I've grown to like Twig a lot... but to be very frank I would have been totally OK with keeping PHPTemplate in Drupal 8. It's what I've been using for 10 years and it's what I know. My Drupal 7 theme is full of preprocessing, custom features, and integrations with certain modules, and it's all coded in PHP. The transition to Twig means there is a huge amount of work for me to not just convert templates but also re-architect all the logic and features in the theme. I'll say that Twig works great and has a bright future but I'll also say that I can empathize with all the Drupal themers who are unhappy about having to learn a whole new way of working.

Theme Settings

If you develop base themes or premium themes like I do I have some good news as well: Theme Settings are largely implemented the same way. For me this means that many hundreds of lines of FAPI code for the 200+ theme settings in my flagship Glazed Theme can be copied and pasted into the Drupal 8 codebase and 80% of the form generating code just works. Of course the code that reads the theme settings still has to be ported from PHPTemplate, preprocessing and custom PHP to use Twig and Drupal 8's APIs. 

Logic Inside Twig Templates

The most confusing thing when starting out with Twig was that all logic for printing classes happens right inside the Twig template. For years I've been telling people to use preprocess functions for any logic, whether it be if/else or some code to retrieve a field value. In Twig any logic related to printing template code (that includes classes and other attributes) goes right into the twig template. I'm not yet entirely happy about have a lot of logic in my template files. Then again I can also imagine that to the unitiated the Drupal 7 architecture with classes being added in preprocess, or process functions that can be in multiple locations could be even more confusing.

To show you what I mean here is an excerpt of my html.html.twig template:

{% set html_classes = [ theme.settings.sticky_footer and not theme.settings.boxed_layout ? 'html--glazed-sticky-footer', ] %} {% set body_classes = [ 'html', logged_in ? 'user-logged-in', not root_path ? 'path-frontpage' : 'path-' ~ root_path|clean_class, node_type ? 'page-node-type-' ~ node_type|clean_class, db_offline ? 'db-offline', theme.settings.navbar_position ? 'navbar-is-' ~ theme.settings.navbar_position, theme.has_glyphicons ? 'has-glyphicons', theme.settings.header_position ? 'body--glazed-header-side' : 'body--glazed-header-top', not theme.settings.header_position and not theme.settings.header_style == 'overlay' ? 'body--glazed-header-not-overlay', not theme.settings.header_position and not theme.settings.header_style == 'overlay' ? 'body--glazed-header-' ~ theme.settings.header_style, not theme.settings.header_position and not theme.settings.header_top_sticky and theme.settings.header_top_fixed ? 'body--glazed-header-fixed', ] %} <!DOCTYPE html> <html {{ html_attributes.addClass(html_classes) }}>   <head>     <head-placeholder token="{{ placeholder_token|raw }}">     <title>{{ head_title|safe_join(' | ') }}</title>     <css-placeholder token="{{ placeholder_token|raw }}">     <js-placeholder token="{{ placeholder_token|raw }}">   </head>   <body{{ attributes.addClass(body_classes) }}>{{>

Some templates, like my menu--main.html.twig template that is responsible for rendering dropdown menus contain more advanced logic, including a powerful Twig tool called a  macro. The ratio of markup to logic is so low in this template that it kind of seems to defeat the purpose of having a templating system. Then again, if I look at the equivalent of PHP code I've had to write in its D7 counterpart it's equally cumbersome.  

Despite my reservations about twig, looking back at the work I've done so far in porting my theme to Drupal 8 (it's about 75% done) I'm creating a more maintainable, better product. And that's what Drupal 8 is all about. There's some pain in migrating all your work but in return you get what I believe is a more solid and maintainable theme.

Site Building: Pretty much the same

For a CMS that was basically built differently from the ground up, the authoring and site building experience is surprisingly similar to Drupal 7. You're still going through the same steps and forms to create content types, taxonomies, views, nodes etc. This is because the idea of Drupal as a flexible and powerful CMS has remained the same. For Drupal 7 users who didn't do much coding before, not much will change when upgrading to Drupal 8. Without investing at all in learning new things you can hit the ground running and install a nice Drupal 8 theme or distribution and it's business as usual.

Module Development: Definitely harder

Building Drupal 8 modules is not rocket science. It's just that there is a lot to learn before you're fluent at it. New APIs, more complicated object oriented architecture, services and plugins. The learning curve is steeper and higher than ever. However, if you start small, read the docs, and copy code from the examples module it's doable. The learning process very much reminds me of my first experience building my very first Drupal (5.x) module.

This is why I decided that building our most complex Drupal 8 modules should be handled by experienced Drupal 8 experts and not me. While I started upgrading some tiny modules as well as our theme I contracted Ivan (Chi on d.o.) and Jay Friendly (Jaypan on d.o.) to build the SooperThemes Portfolio and Glazed Drag and Drop Builder modules... completely written from the ground up for Drupal 8's architecture. Without their help there's no way I would have upgraded these modules myself without first spending at least 2 months learning Object Oriented Programming and the inner workings of Drupal 8. If anyone is looking to consult about Drupal 8 upgrade work I can highly recommend both Ivan and Jay. Jay is currently writing a book on Drupal 8 development that is targeted at Drupal 7 veterans as well as completely new users.

Development has been in full swing for the past 2-3 months and it has been the most intense and sometimes stressful time in my years building SooperThemes products. All of our products are now almost finished but still being tested and refined. It has been a great learning experience but also a great lesson in technical debt and the reality of Drupal 8's complex architecture. For me personally with my background in theming, design, and marketing I feel intimidated by the complexity introduced by Drupal 8. Conversely I feel that my customers will have more easy to use, solid, reliable and performant website thanks to Drupal 8. Luckily for many of my customers the whole point of my products is that you can build and customize everything without coding, using our Drag and Drop tools and extensive theme settings. 

Plugins, Services, Controllers, and Schema Metadata

That is a list of some of the software architecture concepts I've had to get acquinted with in the short time of 2 months. I can't say that I've learned these concepts just yet. In Drupal 7 understanding the hook system and Forms API could really get you a long way building even very large Drupal websites. In Drupal 8 not so much.

Before I started feeling like I'm on a learning curve, I ran into a wall. Drupal 8 really demands you delve deeper into software architecture than before. It's hard but the beauty of the new system is that as you're learning Drupal you're also learning Symphony and proper Object Oriented Programming design patterns. Those who can make the neccesary investment of time and energy will come out of it with skills that are valuable beyond the Drupal ecosystem.

Installation Profiles: Similar But Better

Installation profiles are a critically important part of our business at SooperThemes. We don't just sell themes, we develop, support, and maintain all the Drupal code that brings our designs to life. For our customers this means they can download a turn-key installation profile that contains their selection of designs, features, and demo content.

For us this means we maintain a ton of configuration, demo content, and modules, and wrap it all into installation profiles. We even provide an interface to generate customized installation profiles and install them on your hosting fully automatically. My experience so far with Drupal 8 installation profiles has been great. 

Demo Content

A notable improvement is the great support for demo content in Drupal 8 with help of the Default Content module. In Drupal 7 the go-to module was UUID Features. Over the past years I've spent many hours fixing bugs, implementing file support, and patching up poor support for referenced entities and menu links in Drupal 7's UUID Features code. 

The Drupal 8 Default Content module is still in alpha and if you're doing a lot of default content work you still might need to hit the issue queue and download (or contribute) a little patch but this module already feels more stable than the UUID Features suite. D8 and Default Content also import content faster, allowing even the lowest of low-end hosting to install our bulkier demo installation profiles.

Configuration 

I've read that Features is still a thing in Drupal 8 but I've not yet found the need to try it out. Whereas previously we used Features to package all our CMS components into modules this is now done with Drupal core's configuration system. It's working well so far. Automatic exporting of configuration and dependencies into modules is done using drush, and we can now split optional and required configuration which is also great for components that include lots of views that add value but are not indispensable. I did experience some quirks with optional configuration not being installed during the profile's installation process even while dependencies were certainly met.  

Media: Work In Progress

It took many years for the Media module to have a stable (2.x) release in Drupal 7. Drupal 7 Media works great and  it handles drop-in file uploads, multi-file uploads and various media gallery browsing features excellently. In Drupal 8 great work is being done to bring Media features into core. I'm a big fan of the initiative but I'm also concerned about how to provide provide future proof media featurs in my installation profile right now. 

Drupal 8 Entity Browser

At the moment of writing this, the successor of the Media module is Entity Browser. The module File Entity Browser (it builds on top of Entity Browser module) will give you a media library popup browser similar to the D7 media module's browser. Installing this module requires 5 modules (dropzonejs, embed, entity_browser, entity_embed, and file_browser) and 3 external libraries: dropzoneimagesloaded, and masonry. Part of the Drupal 8 media initiative is to include features similar to what the File Browser module provides in core, but in a cleaner architecture with fewer dependencies.

A module similar to File Entity Browser is Media Entity Browser and the major difference is that it uses the more flexible Media entity as opposed to the file entity. What exactly this means and how all this will be upgraded to the new Drupal 8.4 core features, I'm not sure. Therefore I decided to launch my distribution and products without image re-usability on Drupal 8.3. To protect my customers against potentially needing complex upgrade processes I'll hold off on advanced Media management until Drupal 8.4 comes out. It's planned to come out late this summer and I'm looking forward to it. 

Improvements In Documentation

This is not really a Drupal 8 improvement as much as it is a Drupal.org improvement. The quality of documentation available to day is so much better than on the day Drupal 7 came out. The new documentation page design immediately gives more credibility to the content and the content is carefully curated and better written. Even though this is not really a feature of Drupal 8 it certainly is a great benefit to those starting to learn Drupal 8 today. 

I also want to give a shout out to Drupalize.me, who are giving away free subscriptions for their premium training videos to people who have contributed on Drupal.org. Terms and details.

My Prediction: Drupal 8.4 Will Bring Up The Numbers

I see Media features as the #1 core advantage of WordPress over Drupal. Other major weaknesses of Drupal are a leaner offering of themes and niche-specific tools like portfolio plugins, drag and drop building options, and other fancy add-ons. But those can be fixed by contrib projects and through premium themes. Media is a challenge that took too long to get right in Drupal 7. It was only several months ago the Drupal 7 Media module had it's first truly stable Drupal 7 release. Thanks to this development, we can now expect to see more niche-specific add-ons for the Media module as there is a stable API to build on top on. Next week I will blog about the release of such an add-on module that SooperThemes has co-sponsored and co-developed. 

If the Drupal 8 Media Initiative is executed according to plan Drupal 8.4 will bring features to that will appeal strongly to the masses of Drupal site builders who are unable or unwilling to create custom configurations for Entity Browser. Drupal 8's more rapid emergence of a stable Media API can awaken growth of Media contrib modules that make the lives of content creators and site builder easier.

SooperThemes Drupal 8: Upgrade Status

To those who are waiting: Please be patient as we're finishing up and fine-tuning. I meant to release a public beta of some products this week but I decided it's better to focus on finishing the components that are currently <90% done. I'll re-evaluate the possibility of public beta testing  next week, and the week thereafter.

SooperThemes Products Drupal  8 Upgrade Progress  %_of_total** Glazed Theme 75% Complete 25% Glazed Drag and Drop Builder 95% Complete 25% Sooperthemes Portfolio (replacement of D7 glazed_portfolio) 90% Complete (only missing hover effect designs) 15% Glazed GridStack 95% Complete  5% Glazed Helper 75% Complete (only missing Page Design tools) 7.5% Glazed Drupal CMS Distribution (drupal.org/project/cms) 95% Complete (finetuning, future-proofing) 10% Demo Content and Installation Profiles 0/15 Completed (pending completion of above) 5% Product infrastructure* 50% Complete 7.5%

* demo sites, trysooperthemes.com, automatic installation profile testing and provisioning, support forum, etc. The kind of stuff you don't think about before starting a big Drupal 8 upgrade project.

** Estimated proportion to the total amount of work of all items in the table

Categories: Drupal

CUSTOM CODER FOR E-COMMERCE WORDPRESS SITE FOR APPAREL / CLOTHING STARTUP - Upwork

WordPress Work From UpWork - Tue, 06/13/2017 - 12:24
Hello,  

95% of the website's front-end (UX/UI/theme/content) has been created and wire-framed.

I am looking for a coder to build out the back-end in a Wordpress site that MUST have a 360-degree user-friendly admin panel - front-end, back-end.

Also must be responsive to various computer makes/models, devices like tablets, and especially powerful/responsive for mobile.

*YOU MUST BE ABLE TO DO CUSTOM CODING - NOT LOOKING FOR SOMEONE WHO USES DIVI / TEMPLATES / THEMES AND DOES NOT KNOW HOW TO SIGNIFICANTLY CHANGE THOSE THEMES*
I need the back-end built not only for me to update items like inventory, check analytics and change communications here and there, but I also need the platform used to be easy to make updates to the front-end as well, for me to be able to make actual changes to things like updating pictures and user-facing text easily in the future as well.

1) Please sign the attached NDA, to which I will send you the &quot;under-development&quot; site shortly after
2) Reach out with questions / proposals

Thanks and I look forward to hearing from you soon.


Posted On: June 13, 2017 18:12 UTC
Category: Web, Mobile & Software Dev > Ecommerce Development
Skills: CSS, HTML, HTML5, JavaScript, PHP, Web Design, Website Development, WordPress
Country: United States
click to apply
Categories: WordPress Maintenance

Roman Agabekov: Setting up Nginx on a Debian server as front-end for Apache

News from Planet Drupal - Tue, 06/13/2017 - 11:08
Setting up Nginx on a Debian server as front-end for Apache

Welcome to the next installment of the series of articles for Drupal sysadmins. Today, you are going to learn the process and nuances of setting up Nginx so it works as Apache’s front-end on a Debian server.

In the previous article, we covered setup of a web server on a Debian machine and Drupal installation. The solution offered there has a couple of drawbacks:

admin Tue, 06/13/2017 - 11:08 Теги
Categories: Drupal

Ixis.co.uk - Thoughts: Top tips: How to protect your Drupal website

News from Planet Drupal - Tue, 06/13/2017 - 09:49

The extraordinary scale of the WannaCry ransomware infection has acted as a dramatic warning to organisations in all sectors. With thousands of organisations worldwide – including a significant proportion of the NHS – falling victim to the ransomware, it’s a timely reminder of the importance of robust cybersecurity.

 

Your organisation’s website is potentially one of the biggest parts of your overall ‘attack surface’, which cybercriminals will probe for a route into your network. As such, it is vital to implement solid tools and processes specifically designed to protect it against attack – and those tools and processes should be tailored to the content management system underpinning your site.

So, if your site is built on Drupal, what are the best practices you should be following?

1. Upgrade to the latest version of Drupal

The WannaCry attack has proliferated so dramatically because it relies on an exploit in an old version of Windows – one that Microsoft is no longer supporting. It is usual commercial practice for vendors and manufacturers to gradually withdraw support from older hardware and software – this is the case with Drupal, as with Microsoft. If you have not yet migrated to the latest version – Drupal 8 – that should be your first priority.

 

2. Upgrade to the latest version of modules

Drupal is a modular CMS, with thousands of options available to extend your basic system. As such, it is not enough to simply ensure you’re running the latest, best-protected version of Drupal – you need to make sure you’re doing the same with each individual module. The author of each extension is responsible for providing appropriate security upgrades and patches, but these will generally only apply to the latest version of the module. If you’re running an old one, you’re not protected.

 

3. Remove unnecessary modules

By the same token, running modules on your site that you no longer need is simply increasing your potential attack surface – and your security management burden. Implement a process to ensure that you are continually reviewing all of the modules you have added, and get rid of the surplus.

 

4. Use the Status Report tool

The Status Report functions sits within your Drupal Admin area. Its job is to alert you to any issues with the code base underpinning your site – which includes out of date modules and code. It is the easiest way to keep on top of your website management and ensure that you are deploying the latest versions of everything. Don’t forget to enable your core update manager module so that you get regular notifications.

 

5. Practice strong user management

As the old saying goes, people are the weakest link in any security chain. Keeping a tight handle on the people who actually use your website can dramatically shore up your overall security posture. Undertake a regular check to ensure that you are removing inactive users such as those who have left the organisation, and ensure that those who remain only have access to the minimum areas of the site they need to, not the whole site by default.

Various functions are available within Drupal to shore up login and user processes, such as the Login Security module, which restricts unauthorised access attempts, and blocking the ‘user #1’ account that is created during setup, which automatically has all permissions in place.

 

6. Monitor your logs

Drupal’s integrated log viewer, within the reports area, is an extremely valuable tool when it comes to ascertaining that a cyberattack is taking place and assessing what has actually happened. Make sure you check your log reports regularly, and are alert to early warning signs such as failed login attempts.

 

7. Enable HTTPS

HTTPS is most commonly used for ecommerce sites and online banking, but any site that transfers sensitive information between user and web server should also be using it.

These seven best practices will have a dramatic effect on the overall security of your Drupal website, and ensure you can continue benefitting from the flexibility of the platform without sacrificing protection.

 
Categories: Drupal

Dropsolid: Memcache in Drupal 8

News from Planet Drupal - Tue, 06/13/2017 - 07:50
13 Jun Memcache in Drupal 8: how to optimize performance Kevin VB Tech

In this blog post, our technical lead Kevin guides you through the best caching strategies for Drupal 8.


Flow improvements with Drupal 8

The way data is cached has been overhauled and optimized in Drupal 8. This means that cached data is aware of where it is used and when it can be invalidated, which resolved in two important cache bins responsible for holding the rendered output, cache_render and cache_dynamic_page_cache. In previous versions of Drupal, the page cache bin was responsible for rendered output of a whole page.

Consequently, the chance of having to rebuild a whole page in Drupal 8 is far lower than in previous versions, because the cache render bin will contain some blocks already available for certain pages - for example a copyright block in your footer.
Nevertheless, having to rebuild the whole render cache from scratch on a high-traffic website can result in a lot of insert query statements for MySQL. This forms a potential performance bottleneck.
 

Why use Memcache?

Sometimes you need to rebuild the cache. Doing this on large sites with a lot of real-time visitors can lead to a lock timeout of MySQL, because the cache tables are locked by the cache rebuild function. This means that your database is unable to process the cache sets queries in time and in worst case resulting into a down time of your website.

Using Memcache allows you to directly offload cache bins into RAM, which makes cache sets, speeding up the cache along the way and allowing MySQL more breathing space.
 

How to install Memcache?

Before you can connect to memcache, you need to be sure that you have a memcache server up and running. You can find a lot of tutorials how to do this for your distribution, but if you use MAMP PRO 4 you can simple spin the memcache server up. By default, memcache will be running on port 11211.

When you have the memcache server specifications, host IP and port you need to download and install the Memcache module, available here: https://www.drupal.org/project/memcache

This module is currently in alpha3 stage and ready to be used in production sites.

Once you have installed the module, it should automatically connect to memcache using the default settings. This means that the memcache server is running on localhost and listening on port 11211. If your server is running on a different server or listening on another port you need to modify the connection by changing the following line in your settings.php.

$settings['memcache']['servers'] = ['127.0.0.1:11211' => 'default'];
Configuring Memcache

Once you have installed memcache and have made the necessary changes to the settings.php file to connect to the memcache service, you need to configure Drupal so it uses the Memcache cache back end instead of the default Drupal cache back end. This can be done globally.

$settings['cache']['default'] = 'cache.backend.memcache';

However, doing so is not recommended because it cannot be guaranteed that all contrib modules only perform simple GET and SET queries on cache tables. In Drupal 7, for example, the form caching bin could not be offloaded to Memcache, because it can happen that the cache key gets overwritten with something else resulting in a cache miss for specific form cache entries.

Therefore it is recommended to always check if the cache bin is only used to store cache entries and to fetch them later on while not depending on it to be in cache.

Putting cache_render and cache_dynamic_page_cache into memcache is the safest and most beneficial configuration: the larger your site, the more queries those tables endure. Setting up those specific bins to use Memcache can be done with the following lines in settings.php.

$settings['cache']['bins']['render'] = 'cache.backend.memcache'; $settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.memcache';
How does it work?

To be able to test your setup and finetune Memcache, you should know how Memcache works. As explained before, we are telling Drupal to use the cache.backend.memcache service as cache back end. This Service is defined by the Memcache module and implements like any other cache back end the CacheBackendInterface.This interface is used to define a cache back end and forces classes to implement the necessary cache get, set, delete, invalidate, etc. functions.

When the memcache service sets a cache entry, it stores this as a permanent item in Memcache, because validation is always checked in cache get.

Invalidation of items is done by setting the timestamp in the past. The entry will stay available in RAM, but when the service tries to load it it will detect it as an invalid entry. This allows Drupal to recreate the entry, which will then overwrite the cache entry in Memcache.

Conclusion: when you clear all cache with Memcache installed, you will not remove all keys in Memcache but simple invalidate them by setting them with an expiration time in the past.
 

Optimizing your Memcache setup

Simply using Memcache will not always mean that your site will be faster. Depending on the size of your website and the amount of traffic, you will need to allocate more RAM to Memcache.

How best to define this amount? If you know how much data is currently cached in MySQL, this can help to summarize the sizes of all cache tables and check how much of these tables are then configured to go into Memcache.

Let me give an example: consider a 3GB cache_render table and a 1GB cache_dynamic_page_cache table, resulting in 4GB of data that would be offloaded to Memcache. Starting with a 4GB RAM setup for Memcache would give you a good start.

But how can you check if this setup is sufficient? There are a few simple rules to check if you have assigned sufficient -or perhaps too much - RAM to Memcache.

  • If your evictions are increasing, meaning that memcache is overwriting keys to make space. And your hit rate is lower than 90% and dropping, you should allocate more memory.
  • If your evictions are 0 but the hit rate is still low, you should review your caching logic. You are probably flushing caches to often or your cached data is not reused, meaning that your cache contexts are too wide.
  • If your evictions is at 0 and your hit rate is 90 and higher, and the written bytes in memcache is lower than the allocated RAM, you can reduce the amount of RAM allocated to Memcache.

It is very important that you never assign more RAM than available. If your server needs to start swapping, the performance will drop significantly.


Conclusion

If you are considering using memcache for Drupal, you need to think a few things through in advance:

  • Which cache bins will be offloaded into Memcache? Only offload cache tables that do not depend on an cache entry.
  • Does the site has a lot of traffic and a lot of content? This will result in larger render cache tables.
  • The amount of RAM allocated to Memcache, depending on the amount available on your server and the size of the cache bins you offloaded to Memcache.

Also keep in mind that the allocation of RAM for Memcache is not a fixed configuration. When your website grows, the cache size grows with it. This implies that the amount of necessary RAM will also increase.
 

We hope this blog post has been useful! Check our training page for more info about our Drupal training sessions for developers and webmasters.

Categories: Drupal

Need exisiting website updates and redesign - Upwork

WordPress Work From UpWork - Tue, 06/13/2017 - 03:54
We have an exisiting website that needs content changed and updated as well as some redesign in part.

Our website has been created in Wordpress. This is not a complete build more moving things around and adding or deleting content.

This job was posted from a mobile device, so please pardon any typos or any missing details.


Posted On: June 13, 2017 07:43 UTC
Category: Web, Mobile & Software Dev > Web Development
Skills: WordPress
Country: Australia
click to apply
Categories: WordPress Maintenance

Front End Developer - Backbone Technology Inc. - Vancouver, BC

Drupal Jobs from Indeed - Tue, 06/13/2017 - 00:51
Knowledge and Experience with CMS (Wordpress, Drupal, etc). Our Front-End Web Developers research, design, and develop web solutions individually and as part of...
From Indeed - Tue, 13 Jun 2017 00:51:36 GMT - View all Vancouver, BC jobs
Categories: Drupal

Customize WordPress Vancouver Template - Upwork

WordPress Work From UpWork - Mon, 06/12/2017 - 21:50
I'm looking for someone that can customize our wordpress vancouver template, enhance seo, lockdown security features, and help with branding.   
   
The template is already installed at southowalkabout - I've started tweaking it a bit but it really needs an expert to clean it all up, add all the necessary pages, posts, email prompts, and other content.

I have a plan and examples of what I want so it should be a simple job for the right person.   Ideally, I'm looking for an experienced wordpress expert located in the US that has scored in the top 10% wordpress test  (intermediate or expert)

I suspect the job will take an expert about 10 hours. Our deadline for completion is June 28th. We will consider both hourly rate and fixed rate bids. Must be fluent in English.

This is for a beach town community event so we'll be looking for an expert that can give our website a west coast beach life feel without any kitsch.


Posted On: June 13, 2017 07:43 UTC
Category: Web, Mobile & Software Dev > Other - Software Development
Skills: WordPress
Country: United States
click to apply
Categories: WordPress Maintenance

[REQUEST] PayPal real-time* counter

Talk about plugins - Mon, 06/12/2017 - 21:31

Hey,

I'm wondering if there's a counter for paypal? I.e. something is bought/donated/etc, and the counter is updated to reflect the total donations/money paid,etc. Ideally, this is "real-time", but not a must. Obviously it wouldn't be making calls back every second, but say every 5 minutes or so

submitted by /u/simonmerch
[link] [comments]
Categories: WordPress Maintenance

Need A Designer For New Website, Wireframe &amp;amp; Style Guide - Upwork

WordPress Work From UpWork - Mon, 06/12/2017 - 21:17
I need an experienced Web Designer who has Agency experience working with Clientele who require proposals, timelines etc.

The client is looking for us to come to them with a mock-up, however, we have a challenge in that we don't have new photography yet.

We have a design concept that we want to work off of. You'll be taking this, and helping me strategize on how we can work the actual clients brand into the mock-up, provide wireframes and visuals to help the clients' management look at design concepts and make decisions.

We'll need to work together to bring them some visuals by Friday, so this is a tight deadline. I'm hoping this won't be a significant sticking point because we already have the design mock-ups partially developed.

I also need your experience to tell me what inner pages we need to mock up so that we can show them multiple examples of what various inner content pages will look like.

You must be fluent native English speaking, and be responsive and available during US Work hours. I cannot work with anyone who cannot be totally available this week, during those hours.

NOTE: Upwork's calendar for when the job will start is giving me an error when I set it for today. We need to start today. So when you see that it's for tomorrow, that's simply because I couldn't get the job to post otherwise.


Posted On: June 13, 2017 07:43 UTC
Category: Web, Mobile & Software Dev > Web & Mobile Design
Skills: Graphic Design, Web Design, WordPress
Country: United States
click to apply
Categories: WordPress Maintenance

DrupalEasy: DrupalEasy Podcast 193 - Evolving Community Governance - Adam Bergstein

News from Planet Drupal - Mon, 06/12/2017 - 21:06

Direct .mp3 file download.

Adam Bergstein (nerdstein) joins Mike Anello to discuss the potential need to evolve Drupal Community Governance.

Interview DrupalEasy News Sponsors Upcoming Events Follow us on Twitter Five Questions (answers only)
  1. Playing with is kids.
  2. Docker for Mac.
  3. Making Drupal 8 core an amazing experience for content authors.
  4. Holding an alligator.
  5. Working with Drupal at Penn State
Subscribe

Subscribe to our podcast on iTunes, Google Play or Miro. Listen to our podcast on Stitcher.

If 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 contact page.

Categories: Drupal