If you need to export your documents to pdf, ePub, and ppt (pptx), this article may come of handy. I have been in a project recently as a part a team working on an electronic educational web site, where educational materials were available online as articles, and also convertable from HTML to either a pdf document, an ePub document, or a Powerpoint pptx document. Then, it was required to render some articles into screenshots for presentations (mostly for PowerPoint). We have reviewed the libraries that were available, and came up with our choice of tools. And no, you don’t need expensive commercial solutions to do it!
How low is low? Yesterday I published my upsetting tests about the Drupal 7 to 8 RC1 performance. Clearly, 3 times drop of performance is not a nice thing to have in Drupal 8. Now, the question is, would that make me consider WordPress as the best alternative? We can safely say that Wordpress is the industry's standard. How does Drupal 7 and Drupal 8 performance compare to that of Wordpress?
After Wim Leer's article on the Drupal 8 enhanced cache, I decided to run a performance test comparing Drupal 7.39 and the new Drupal 8 RC1 performance. I had high hopes. However, the results for Drupal 8 are still not good. For anonymous users, Drupal 7 beats Drupal 8 as much as 3 times still. For logged in users, Drupal 7 beats drupal 8 as much as 2 times.
I did not want to build a copy of a New Relic but smaller. I needed a slightly different logic. When thinking of a tool to monitor multiple web sites, I wanted to create a type of alert for admins when it was necessary. The logic was to gather relevant data as unobtrusively as possible without taxing performance, and then, to tell an admin, whether everything was basically ok, or not.
When you are a small company that tries to establish long-term relationships with its customers, you want to provide as much integration with them after the launch as possible. This may include hosting or hosting reselling, a support and update plan, and a continuous growth/integration plan. This may also mean, that you will provide performance support as well. It is this last aspect of performance support that I have been thinking about recently, writing a proof-of-concept mechanism to implement it. I would like to bring out some thoughts into a wider community to discuss.
Now that we have had an anatomic overview of Drupal 8's Ban module, we can proceed further to have a closer look at it's code. In this second part, we will have a look at YAML, and the concepts of services, subclassing, autoloading, and the dependency injection.
The best way to get to know a technology closer is to study it's code. Drupal 8 is a huge step forward technologically from Drupal 7, and it has literally tons of code that I feel I need to review and learn from. And I welcome comments and crtiticism from the readers.
The module that I chose to start with is a simple one: the Ban module. It's used to ban IPs via interface and first appeared in Drupal 7, undergoing a rewrite for Drupal 8. Why I chose this module? Because it's simple. We'll take the Drupal 8 module as an example and lay out it's anatomy and of how a Drupal 8 module is built, and try to explain some new concepts with it. And, you can always get Drupal 8 from drupal.org and see the code yourself, and play with it.
I have been watching / following the initiative to convert Drupal 8 to be compatible with PHP 7. This is so freaking exciting! Drupal community and some of the best Drupal devs are now actively contributing to the testing and development of PHP language itself, and the Symfony project, helping to file bug reports and run tests. This tells me, that Drupal 8 is very serious, and stands on a high and modern and rather professional level of implementation.
It has been 3 months since March 25, when I publiched Drupal 7 vs Drupal 8 speed tests results. Now, after there has been a significant performance work on Drupal 8 caching, I am revisiting the issue, comparing Drupal 8 beta 11 to Drupal 7.37.
Tests were conducted my my work Lenovo ThinkPad E530c laptop with 8Mb RAM and SSD hard drive, with Ubuntu 14.10, LAMP stack with MariaDB 10.1 and PHP 5.6.9. No APC or any other cache except the build-in PHP's opcache and Drupal's native's cache. The ab test command ran 1000 requests with concurrency of 20. Because Drupal 8 now has caching turned on by default, I have also turned caching on for Drupal 7, to make sure that I test performance under the similar settings. All test results here are taken with Drupal 7 native caching on.
So, what's the result?