The title is the abstract. The article is aimed at current reputable CMS web-based frameworks like Drupal, Wordpress, Joomla, Hippo, Rails, Django, etc.
Why this blog post?
Dries Buytaert creator of Drupal raised a simple, yet extensive question on twitter (‘@Dries’):
“What could the Blockchain mean for a CMS like Drupal? #brainstorm”
Let us analyse this question step by step. And then come to a surprising conclusion: it is much more interesting for Drupal to change the question.
We had added a new term reference field to one of our content types, but it already had an term reference field in place, and had data in it. We needed to populate the new term reference field with the data from the old field, so that we could then delete the old field.
The basic idea behind my project Pubkey Encrypt is to encrypt data using users’ login credentials. A tight integration with the Key module is one of the most important parts in my project. So I started the week analyzing that module’s architecture. It deals with administering keys which could be used for the purposes of encryption, authentication etc. Anyone can modify the key handling logic as per the business needs since the module allows for much extensibility via these three plugin systems:
The fabulous duo of K2 (Kristin Bradham) and Lindsay (Lindsay Gaudinier) are off on another trip to get their Drupal on! After having such a great time meeting up with other Drupalers and listening to ghost stories at DrupalCon in New Orleans, K2 and Lindsay are heading up north to the gorgeous multilingual city of Montreal.
Kicking things off, K2 will present her “Conversational Drupal” session that was a hit at BADCamp and Stanford Drupal Camp. Grab a coffee and bagel, and enjoy the eye-opener session on Friday morning. This session is aimed for new Drupalers, although not necessarily new web developers. K2 will give clear and simple explanations of frequently used Drupal terms. This session is great to start off a Drupal Convention because it will familiarize you with Drupal and encourage you to meet a few other attendees.
Later on Friday, Lindsay and K2 will lead a session on Drupal and SEO. Search Engine Optimization (SEO) is vital to websites that want to increase their visibility and get to the top rank on search engines. Navigating the sea of Drupal SEO modules can be daunting when all you want to do is get the basics covered effectively. They will go over SEO terms and terminology, modules and their default configuration, and tips and tricks on how to make your Drupal site rank higher with the search engines.
But K2 and Lindsay aren’t just there to present, they’re also looking forward to learning from other Drupalers. They look forward to collaborating with friends and peers at Evolving Web, Lingotek, Kafei Interactive, and Digital Echidna. K2 is looking forward to Cathy Theys’ keynote speech: “Thoughtfulness and Drupal”. Other great sessions K2 is looking forward to attending include: “Embracing Open-source Thinking for Better Sustainability”, “Object Oriented Programming Design Patterns in Drupal 8”, and “One Drupal to Rule Them All” just to name a few.
Lindsay is excited about attending the following sessions: “Speed up your front-end drupal development using partials”, “Planning a real-life D8 migration”, and “Lessons Learned: Drupal 8 Module Porting”.
So why should you go? Be a part of the Drupal community. Let's make Drupal great now and in the future. Music, culture, bagels, smoked-meat, coffee, and poutine?! If you can’t go, Sprints are being held on Thursday and Sunday - you can join and contribute remotely. Check the Drupal North website for information.
We hope to see you there! Montreal or bust!Kristin Bradham - K2 Lindsay Gaudinier Topics: Services:
When trying to resolve an issue in Drupal, the most common question you’ll hear is, “Have you cleared the cache?” The question is so ubiquitous that we often forget that caching – and more importantly performance – has been an important part of Drupal for a long time. As Drupal has matured, many sites have started to employ additional performance and scaling techniques: utilizing CDNs for additional caching, making optimizations in the theme layer for faster interaction and automating infrastructure to respond to changing demands.
I know Dreis caused a lot of smiles when he used Amazon Echo and Drupal 8 to be notified about “Awesome Sauce” going on sale. The future is bright and requires increasingly more ways of engaging with technology. But what if you wanted to start to have a conversation without Echo to do it? What if we wanted to progressively enhance the browser experience to include lessons learned from conversational input technologies.
For the past two to three years, we’ve been evolving a flexible design solution for marketing pages. We call it the Slice Template.What is the Slice Template?
The Slice Template is kind of like a layer cake. It’s a design structure that enables site authors to create web pages out of modular, horizontal components that span the width of the browser. Popularized by responsive design, this pattern has become a web standard. That’s because it can support a myriad of content.
Our team started calling these components slices early on. You could call them that too. We can make it our little thing :)
The monthly security release window for Drupal 8 and 7 core will take place on Wednesday, June 15.
This does not mean that a Drupal core security release will necessarily take place on that date for any of the Drupal 8 or 7 branches, only that you should watch for one (and be ready to update your Drupal sites in the event that the Drupal security team decides to make a release).
There will be no bug fix or feature release on this date. The next window for a Drupal core patch (bug fix) release for all branches is Wednesday, July 06. The next scheduled minor (feature) release for Drupal 8 will be on Wednesday, October 5.
Drupal 6 is end-of-life and will not receive further security releases.
Recently, we were reviewing the performance of a large site that has a significant portion of its traffic from logged in users. The site was suffering from a high load average during peak times.
We enabled slow query logging on the site for a entire week, using the following in my.cnf:log_slow_queries = 1
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow-query.log
log-queries-not-using-indexes = 1
long_query_time = 0.100
Note that the parameter long_query_time can be a fraction of a second only on more recent versions on MySQL.
You should not set this value too low, otherwise the server's disk could be tied up in logging the queries. Nor should it be too high so as to miss most slow queries.
We then analyzed the logged queries after a week.
We found that the slow queries, on aggregate, examined a total of 150,180 trillion rows, and returned 838,930 million rows.
Out of the total types of queries analyzed, the top two had a disproportionate share of the total.
So these two queries combined were 63.7% of the total slow queries! That is very high, and if we were able to improve these two queries, it would be a huge win for performance and server resources.Voting API Slow Query
It was:SELECT votingapi_vote.*
WHERE value_type = 'points'
AND tag = 'userpoints_karma'
AND uid = '75979'
AND value = '-1'
AND timestamp > '1464077478'
It hogged 45.3% of the total slow queries, and was called 367,531 times per week. It scanned over 213,000 rows every time it ran!
The query took an aggregate time for execution of 90,766, with an average of 247 milliseconds per execution.
The solution was simple: create an index on the uid column:CREATE INDEX votingapi_vote_uid ON votingapi_vote (uid);
After that was done, the query used the index and scanned only one row, and returned instantly.Private Messaging Slow Query
The second query had to do with Privatemsg. It is:SELECT COUNT(pmi.recipient) AS sent_count
FROM pm_message pm
INNER JOIN pm_index pmi ON pm.mid = pmi.mid
WHERE pm.author = '394106'
AND pm.timestamp > '1463976037'
AND pm.author <> pmi.recipient
This query accounted for 18.4% of the total slow queries, and was called 32,318 times per week. It scanned over 1,350,000 rows on each execution!
The query took an aggregate time for execution of 36,842, with an average of 1.14 seconds (yes, seconds!) per execution.
Again, the solution was simple: create an index on the author column.CREATE INDEX pm_message_author ON pm_message (author);
Just like the first query, after creating the index, the query used the index and scanned only 10 rows and over a million! It returned instantly.Results After Tuning
As with any analysis, comparison of the before and after data is crucial.
After letting the tuned top two offending queries run for another week, the results were extremely pleasing:Before After Total rows examined 150.18 T 34.93 T Total rows returned 838.93 M 500.65 M
A marked improvement!Conclusion
With performance, the 80/20 rule applies. There are often low hanging fruit that can easily be tuned.
Do not try to tune because of something you read somewhere, that may not apply to your site (including this and other articles on our site!)
Rather, you should do proper analysis, and reach a diagnosis based on facts and measurements, as to the cause(s) of the slowness. After that, tuning them will provide good results.Tags:
A few months ago, I decided to port the TCPDF module for Drupal 8. My first thought was that it would be an easy task, but I ran into my first problem early, when I tried to pull the TCPDF library into Drupal.
After a few months of testing, I'm happy to announce Hosted Apache Solr now supports Search API Solr with Drupal 8! Both Search API and Search API Solr have been getting closer to stable releases, and more people have been requesting Drupal 8 search cores, so I decided to finish testing and updating support guides this weekend.
Acquia Developer Center Blog: Multisite Governance, Site Delivery, and Other Issues Related to Managing Many Sites: Part 3
This is Part 3 of an interview with Will Eisner, Senior Director, Product at Acquia. Will’s primary focus is on Acquia Cloud Site Factory, which helps organizations create and manage many sites, from a dozen to thousands.
Also sitting in on the interview, via conference line, was Sonya Kovacic, a Junior Product Manager at Acquia who also works on Site Factory.Tags: acquia drupal planet
TLDR: A new, free agile training course for government product owners has been released on the AGL Academy. Sign up now to participate in the introductory webinar scheduled for June 16, 2016 at 1PM ET (or view the webinar recording after that date).Tags: acquia drupal planet
Intrepid developers of the Drupal community!
This year saw the bravest of explorers venture out into the harsh and unforgiving landscapes of the World (Wide Web).
Wearing only t-shirts from past DrupalCons, they put all of their trust in the hard work of their friends and colleagues, as they set out on a mission: to use Drupal 8 on real projects!
This is the second in a series of posts recapping ImageX’s presentations at this year’s DrupalCon.
With so many testing methods available -- code static analysis checks, unit testing, functional testing, front-end performance testing, load testing, visual regression testing, etc. -- it can be difficult for a development team to choose which will work best for their project, particularly with limited time and budget available.
DrupalCon brings together thousands of people throughout the Drupal community who use, design for, develop for, and support the platform. It’s the heartbeat of the Drupal community, where advancements in the platform happen, learnings from its users are shared, and where connections are made that strengthen the community.
As a web agency that specializes in higher education, ImageX keeps its figurative finger on the pulse of the sector. Some weeks are busier than others for new data and studies being released, and this week definitely falls into the busy category. Let’s take a look at the week that was in higher education!
The Bill and Melinda Gates Foundation released a compelling student demographic breakdown of what the higher education landscape looks like in America: