May 262015

The distance between the location where a web service is hosted and the locations of users that access its content can have a great impact on the effective page load time. For instance, australian and american users of a web site located in Spain or Germany will experience a noticeably longer page load time than european users.

This problem can be avoided with the help of a Content Delivery Network (CDN).

This post explains the characteristics of this kind of service, with the example of a wordpress site that is configured to make use of the CloudFlare CDN.

Continue reading »

 Posted by at 3:05 pm
Mar 272015

We have already stressed in previous posts the importance of the time it takes for a web page to be fully loaded in the client browser: users will get a better impression of the site if the content is “snappy”. Besides, the page load time is a factor that the major search engines, including Google, take into account in their ranking algorithms.

Downloading and processing external resources is often one of the main contributions to the total page load time. Among these resources, external javascript libraries and CSS stylesheets are most often the main contributors to this.

We have already covered in our previous post on “How to reduce the page load time with asynchronous javascript” the way to load javascript resources in parallel with the main HTML document, so as not to block the rendering of the above-the-fold content.

This post continues the series on web site optimization techniques, explaining how to load asynchronously external CSS stylesheets.

Continue reading »

 Posted by at 3:27 pm
Mar 202015

The total page load time is an important factor to be considered in the optimization of a web site. Among the many elements that contribute to the total time required to load a page, one of the most relevant may be the loading and execution of the external javascript code referenced in the page.

This post explains how to load the javascript code asynchronously to decrease the page load time, and the technical considerations involved in the implementation of this improvement.

Continue reading »

 Posted by at 9:20 am
Mar 072015

There is a wealth of information about the performance of a website available from Google Webmaster Tools. The GWT frontend gives the possibility to manually export this information as several reports in CSV format.

But, to achieve a full integration with an external metrics and monitoring system (for instance, to be able to generate alerts when some conditions are met), a procedure to perform automatically the download of this information is required.

This post reviews a free and open source utility named GWTData that implements this functionality.

Continue reading »

 Posted by at 8:53 am
Feb 192015

Any server connected to the internet is exposed to attacks from hackers. They will attempt to break into the server trying every possible vulnerability, to take control of it and use it for their own purposes. To protect the server as much as possible, it is common to use some kind of firewall. On linux systems, the iptables package is one of the most used options to provide this functionality.

This post goes through a sample installation and configuration of iptables on a Debian system, together with other packages such as fail2ban, that automate the detection and reaction agains break-in attempts.

Continue reading »

 Posted by at 7:28 pm
Feb 142015

There are good reasons that might lead a website administrator to take the decision to implement the HTTPS security layer. Once the certificate is installed and the web server has been configured to accept HTTPS requests, the pages in the site will be accessible using https encrypted connections. But, by that time, surely  many of the pages will have already been indexed as using the http protocol by major search engines such as Google, Yahoo or Bing. There will also be backlinks to the site from pages in other domains, using “http://”

This post explains how to setup a redirect from the old “http://” to the new “https://” urls.

Continue reading »

 Posted by at 12:19 pm
Jan 242015

Hackers never cease trying any possible way to take control of servers connected to Internet.

The most common attacks are maybe those directed against the web service, leveraging any known vulnerabiliy in the underlying CMS: Joomla, WordPress, Drupal,… or implementation weaknesses of the service offered (SQL injection, etc.)

Together with these, servers are also exposed to attacks against the SSH service. SSH is a secure protocol used often by system administrators to open interactive sessions to the server. It is also used by automated procedures that use the rcp, rsync, sftp or similar commands to perform backups, and other administrative tasks.

This post explains some of the safety measures that can be taken to reduce the risk of hackers breaking into the system via SSH, and reduce the (sometimes significative) load that these attacks put on the server.

Continue reading »

 Posted by at 10:04 am
Jan 152015

Any server connected to internet will sooner or later become the target of hackers, that will try every possible vulnerability to break in and take control of it, to use it for their own purposes.

To protect the server as much as possible, it is common using some kind of firewall. In cases where an external firewall is not feasible or affordable, the iptables package that comes as default in most linux distros is one good choice to implement this functionality.

This post explains how to install and configure iptables on a Debian/Ubuntu system, together with fail2ban, that automates the detection and handling of brute force attacks.

Continue reading »

 Posted by at 9:01 am
Dec 292014

Sometimes, a process that we have started from a terminal might be taking longer to complete than what we had estimated. The process has already been running for a long time, and we want it to continue executing, but we need to detach the process from the terminal to close the interactive session.

This post explains how to detach from the terminal a process that has been started from a bash shell on a linux system.

Continue reading »

 Posted by at 1:47 pm