Performance improvements

Just wanted to let you all know that I’ve made a couple of changes recently, which should result in a somewhat faster performance of this site.

Firstly, before the last weekend, I’ve moved all my DNS hosting to Amazon Route 53 service.  This should result in faster DNS queries all around the globe and minimize the potential downtimes.

Secondly, I’ve installed and configured the JS & CSS Optimizer WordPress plugin, which now results in much fewer HTTP requests needed to load the page, as well as fewer bytes to be transferred around.   I’m still tweaking the settings for this one to see how much I can squeeze out of it, but I already see an improvement.

As always, if you see any issues, please let me know.

You just gotta love the HTML that comes out of the Microsoft Word. Particularly useful are the HTML comments, which are not closed, breaking the rest of the webpage below the paste.   Yes, exactly where, for example, JavaScript is being loaded in the footer of the page.

This is a good old case of “Don’t trust any user input”, reinforced with “especially if they are using Microsoft tools”.

Reducing the size of PNG images

I had an interesting problem today.  I was uploading a third-party theme to a WordPress hosted on the server that I don’t control and really don’t have much access to.  The server had a limitation of the upload size set to 10 MB.  Yeah, I know.  But not much I could do about that.  The theme that I was uploading was packed into an 11 MB ZIP file.  The theme itself was rather complicated (one of those commercially developed themes that are based on a framework and bring in a few plugins required for their functionality), so I couldn’t really remove anything from it.

Upon a quick inspection, I realized that more than half of the ZIP weight is due to a multitude of PNG images.   And while some image were small and legitimate – like, say, icons – quite a few others were packing lots of bytes for nothing – demos, sample images, and such.  Obviously, I wanted to reduce the size of these files significantly.

My usual tool of choice for such tasks is usually ImageMagick.  To tell you the truth, I rarely work with PNG images.  JPEGs are a more frequent target for me.  So, I didn’t realize that ImageMagick handles -quality parameter differently for different image formats as fast as I’d like.  But even when I did, the results weren’t all that great.  In fact, the file sizes slightly grew in my tests.

Looking for a different approach, I came across this article about a tool called optipng, which can be conveniently installed in Fedora via yum.  Unleashing this tool onto my PNG image collection showed me that whoever made the WordPress theme new what they were doing.  opmipng reported that all images are already optimized and there isn’t much to do.

That’s when I found yet another tool to play with.  This discussion at StackOverflow SuperUser suggests pngquant, which is also a breeze to install on Fedora with yum.  So finally, I did something like this:

$ sudo yum install -y pngquant
$ cd folder/with/images
$ pngquant --force --ext .png --quality=0-75 *.png

That gave me exactly what I needed – a sufficient enough reduction in file sizes for the ZIP archive to fit into the upload limit set on the server.