Incapsula – fast, secure and reasonably priced CDN

A month and a half ago I blogged about CloudFlare – a Content Delivery Network with security concerns and simple users in mind.   CloudFlare is flexible for webmasters and they make it easy for us to take advantage of all the benefits they offer. I have moved several of my sites to CloudFlare and I am pretty happy with the service they provide.  One of the things that I didn’t do at the time (or every since) though is a review or research for some alternatives.  I mean, of course, we all know about Akamai and that big guns use it.  We also know that Akamai is one of the most expensive services on the Web.  But who else is out there?

Today I received an email from Incapsula. In essence, they offer a service which is similar to CloudFlare.  They do caching, global delivery, and security.  They do also offer a free plan for small, personal websites.  They also have a few packages of varying prices and features.

As I mentioned earlier, I do run all of my important sites now through CloudFlare.  And I don’t feel like moving to Incapsula just yet.  However, I do want to try them out.  I have a couple of new projects coming up, and I think I will use Incapsula for them just to see all the features they are offering and to compare with other alternatives out there.  I’d be interested to hear the reviews, if you’ve tried the service.  Especially, how they compare to the others and if they offer anything cool that nobody else does.

As a side note, website performance is becoming more and more important – with increased competition, impatient users and more weight to search results metrics in Google.  Also, web application security is becoming increasing complex – it takes so much time and effort even for trained technical people such as myself, that I can’t imagine how huge of a task it is for “normal” people to maintain common sense security levels for their websites.  It’s nice to see that there are more and more services and applications that take care of all the infrastructure problems, leaving more time to do the cool stuff – blogging, sharing, communicating, etc.

P.S.: Reading about Six Great Human and Computer Collaborations will expose you to new technology developments.

Trying out CloudFlare

I’ve heard a few mentions of CloudFlare before, but I never gave it much attention. Today, after reading this blog post, I decided to give it a try.

What’s more, that 30-40% increase that people used to see is now in the range of at least 50-60% as the team continues to find ways to make CloudFlare faster, while still offering security at the forefront.

What is CloudFlare, you ask?  As per their own website:

CloudFlare protects and accelerates any website online. Once your website is a part of the CloudFlare community, its web traffic is routed through our intelligent global network. We automatically optimize the delivery of your web pages so your visitors get the fastest page load times and best performance. We also block threats and limit abusive bots and crawlers from wasting your bandwidth and server resources. The result: CloudFlare-powered websites see a significant improvement in performance and a decrease in spam and other attacks.

In simple terms: CloudFlare is very cheap (even free) content delivery network (CDN).  It provides speed and security improvements, and it is extremely easy to configure.  I know so, because I’ve already registered for the free account and configured this site to benefit from the service.  Whether it actually lives up to all the hype – I don’t know yet, but I’ll see in the next few days.  I suspect it does, since there are numerous positive reviews around the web.  I will of course let you know.  Especially if you remind me.

[youtube=http://www.youtube.com/watch?v=AaMWqyg_xMo]

 

Why reporting bugs is so important

Here is a quote from the Google Chrome 12 stable release blog post:

We’d also like to call particular attention to Sergey Glazunov’s $3133.7 reward. Although the linked bug is not of critical severity, it was accompanied by a beautiful chain of lesser severity bugs which demonstrated critical impact.

My focus here is not on the money that Sergey earned with his bug report, even though that is definitely an important and motivating factor.  My focus is on the chain of the events.  While this chain of events happens pretty much every time a bug is fixed, few people know about it.  Maybe nobody, in fact, except for developers themselves.

The thing is that when a bug is discovered and fixed, pretty much every developer searches the code for problems similar to those brought up by the bug report.  Be those issues typing mistakes, documentation inconsistencies, memory leaks, security issues, performance bottlenecks, or anything else – the code will be checked to make sure that the same problem doesn’t come up twice. From this perspective, I think that bug reports are so important not because of the specific bugs that they report, but because of those other bugs which aren’t yet fixed and probably aren’t yet reported.

Conclusion: every time you come across a bug in the application, don’t just work around it – take a few minutes of your time to report the problem properly to the developers.  Chances are, they will fix some problems that you haven’t yet come across, but have pretty good chances to otherwise.

Pagoda Box – scalable platform for your PHP application

I got my hands on a private beta of Pagoda Box.  It is a platform that you can deploy your PHP applications to.   I gave it a brief look around and I have to say it’s pretty sweet.

Right after you register and get access to your dashboard, you can add applications.  Applications are cloned from GitHub repositories.  Both public and private repositories are supported.  Once you add an application, you can access it at http://your-app-name.pagodabox.com. If you’d rather have your own domain – you can assign it to your application from the dashboard and all that will remain to be done is adding an A-record in your DNS zone.  Super easy!

There is more to it, even at this beta stage.  Pagoda Box supports a number of PHP frameworks, including all major ones – CakePHP, CodeIgniter, Lithium, Symfony, Zend, and more.  You can also optionally have a MySQL database for your application.  They even help you out with outgoing email.

On top of that, you have control as to how many instances of the application you want (the more you have, the more requests you can serve at the same time, and the more you’ll have to pay).  There are statistics of your application performance, requests, and a few other parameters (I’m sure those will grow together with the project).

I’ll admit, I am too used to hosting my projects on my own servers to take immediate advantage of Pagoda Box.  But I am now seriously considering which projects I can move out of my server and into this platform.  It just makes things so much easier.  Deploying and re-deploying works wonders for any GitHub commit of your project.  Initial resources that one usually needs to try an idea out are free of charge.  If the idea picks up, the prices are more than reasonable (and comparable to other hosting solutions).

Out of those things that I consider necessary, I haven’t see any mentioning of files (uploaded via application, for example), support for build systems (such as Phing), and some sort of common library of frequently used code (PEAR modules, for example).  But I’m sure that either I simply didn’t look for these hard enough, or they will be added in the future.

If you are a PHP developer or involved with PHP source on GitHub in any other way, I suggest you try it out.  You can request a private beta invite directly from Pagoda Box website.  Or, if you prefer, I can send you one (I have about 10 of them left for now).  Also watch the demonstration screencasts,  and read through other platform features.

MySQL prompt

I’ve been using MySQL for quite a few years by now, but only today I learned that it is possible to define MySQL prompt.  As per this blog post, all it takes is a couple of lines in .my.cnf file with something like:

[mysql]
prompt="\u@\h (\d)> "

That alone will help to prevent a gadzillion of destructive mistakes when you think that you are working with one database, when, in fact, you are working with a totally other.  On top of that, the blog post suggests using rlwrap tool, with which one could add some colors to the prompts as well.