This website uses cookies

I’m running Google AdSense on this website to help me get a few cents for the hosting bill (it’s literally cents, not millions of dollars, like some of you apparently think).  Google now in compliance with EU Cookie Law requires publishers to have the cookie warning.

Please ensure that you comply with this policy as soon as possible, and not later than 30th September 2015.

If your site or app does not have a compliant consent mechanism, you should implement one now. To make this process easier for you, we have compiled some helpful resources at cookiechoices.org.

Usually, I don’t care about these things, or avoid them all together.  But since we are facing similar issues at work, I decided to run with it and see how it works and if it has any affect at all.

Gladly, I didn’t have to do any work at all.  The good folks have already implemented the Cookie Law Info plugin for WordPress, so that’s what I have now.  You have the choice to either accept the cookies, or leave the site.  I’m not going to fish out each cookie one by one and explain what it does.  Nobody cares. And if you do, you are probably here by mistake anyway.

WordPress Benchmark of MySQL server on Amazon EC2

I have a friend who is a newcomer to the world of WordPress.  Until recently, he was mostly working with custom-built systems and a PostgreSQL database engine, so there are many topics to cover.

One of the topics that came up today was the performance of the database engine.  A quick Google search brought up the Benchmark plugin, which we used to compare results from several servers.  (NOTE: you’ll need php-bcmath installed on your server for this plugin to work.)

My friend’s test server showed a rather poor 48 requests / second result.  And that’s on an Intel Core2 Duo E4500 machine with 4 GB of RAM and 160 GB 7200 RPM SATA HDD, running Ubuntu 12.04 x86-64.

So, I tried it on my setup.  My setup is all on Amazon EC2, using the smallest possible t2.micro servers (that’s Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz, with 1 GB of RAM and god knows what kind of hard disk, running Amazon AMI).

First, I ran the benchmark on the test server, which hosts about 20 sites with low traffic (I didn’t want to bring up a separate instance for just a single benchmark run).  MySQL runs on the same instance as the web server.  And here are the results:

Your System Industry Average
CPU Speed: 38,825 BogoWips 24,896 BogoWips
Network Transfer Speed: 97.81 Mbps 11.11 Mbps
Database Queries per Second: 425 Queries/Sec 1,279 Queries/Sec

Secondly, I ran the benchmark on one of the live servers, which also hosts about 20 sites with low traffic. Here though, Nginx web server runs on one instance and the MySQL database on another. Here are the results:

Your System Industry Average
CPU Speed: 37,712 BogoWips 24,901 BogoWips
Network Transfer Speed: 133.91 Mbps 11.15 Mbps
Database Queries per Second: 1,338 Queries/Sec 1,279 Queries/Sec

In both cases, MySQL is v5.5.42, running on the /usr/share/doc/mysql55-server-5.5.42/my-huge.cnf configuration file. (I find it ironically pleasing that the tiniest of Amazon EC2 servers fits perfectly for the huge configuration shipped with documentation.)

The benchmark plugin explains how the numbers are calculated. Here’s what it says about the database queries:

To benchmark your database I use your wp_options table which uses the longtext column type which is the same type used by wp_posts. I do 1000 inserts of 50 paragraphs of text, then 1000 selects, 1000 updates and 1000 deletes. I use the time taken to calculate queries per second based on 4000 queries. This is a good indication of how fast your overall DB performance is in a worst case scenario when nothing is cached.

So, it’s a good number to throw around, but it’s far from the realistic site performance, as your WordPress site will mostly get SELECTs, not INSERTs or UPDATEs or DELETEs. And then, you’ll obviously need to see how many SQL queries do you need per page. And then you’ll need to examine all the caching in play – from browser, web server, WordPress, MySQL, and the operating system. And then, and then, and then.

But for a quick measure, I think, this is a good benchmark. It’s obvious that my friend can get a lot more out of his server without digging too deep. It’s obvious that separating web and database server into two Amazon instances gives you quite a boost. And it’s obvious that I don’t know much about performance measuring.

Rank of top languages on GitHub.com over time

GitHub blog shares some trends in regards to programming languages, which includes both public and private repositories:

GitHub programming languages

Interesting.  I haven’t seen many Java and C# projects myself, but I’m in a very different bubble.  PHP stays on #4 for years.  VimL, the language in which most plugins for Vim editor are written, makes it to #10 in 2010, which suggests that there are way more plugins than I ever thought.  The drop in Perl is also quite notable, but not very surprising.

Using Graphviz dot for ERDs, network diagrams and more

I’ve mentioned Graphviz many a time on this blog.  It’s simple to use, yet very powerful.  The dot language is something that can be jotted down by hand in the simplest of all text editors, or generated programmatically.

The official website features a gallery, which demonstrates a wide range of graphs.  But I still wanted to blog a few examples from my recent use.

Continue reading “Using Graphviz dot for ERDs, network diagrams and more” »

Bootstrap 4 alpha release

Bootstrap 4 alpha has been released.  After a few more alphas, and a couple of betas, we’ll have a new and much improved Twitter Bootstrap.  Though it seems like just yesterday I was looking forward to the release of Bootstrap 3.

Can you imagine that Bootstrap is only 4 years old?  It feels like I’ve been using it forever.  And the rest of the Internet seems to agree…

Custom Single Sign-On with Nginx and Auth Request Module

In a recent project I crashed into a wall.  At least for a couple of days that is.  The requirement was to integrate the Request Tracker (aka RT) installation on CentOS 7 server with Nginx to a client’s company single sign-on solution.  Which wasn’t LDAP.  Or Active Directory.  Or anything standard at all – a complete homegrown system.

Continue reading “Custom Single Sign-On with Nginx and Auth Request Module” »

WordPress 4.3 “Billie” is out

The brand new and shiny version 4.3 of WordPress is out, bringing more bells and whistles to Customizer, formatting shortcuts to the editor (looks like Markdown made its mark), and more.

I’ve upgraded and also switched this site to Twenty Fifteen theme, just to see how it all works.  No coding customization done yet – only whatever is available through the mouse clicks.

How to Choose the Right Domain Name

First Site Guide runs a good article on how to choose the right domain name.  I mostly agree with it, except for maybe this part:

No numbers or hyphens
Numbers and hyphens (especially hyphens) cause confusion. Stay away from them at all costs. Even something as clever as the number1website.com will cause confusion. Make the name speak for itself.

Especially the part about hyphens.  Ideally, I’d say you should use a single word domain.  But if you do have two or more words, use hyphens.  Hyphens act as separators, much like spaces, and make your domain more readable.  Have a look at these domains and imagine them hyphened – that’d be a totally different story, don’t you think?