The Raspberry Pi might not be a heavyweight in the specifications department but that is no reason why this inexpensive educational computer shouldn't help you learn more about some of the latest technology used to create web sites. The availability of some of the latest open source software in Arch Linux ARM introduces the exiting possibility of using the device as a mini portable web server (you could even battery power it). This could be very useful, not just for learning about these new technologies but also if you wanted to try your sites out with client machines that may not let you install server software locally, e.g. phones, tablets and set top boxes.
Cloud Computing is a hot topic in IT circles right now and many will be keen to try out some of the technology involved to gain an insight into how they or their organisation might be able to benefit from this area. One significant product is the Amazon Elastic Compute Cloud (also known as Amazon EC2) which offers the promise of a server image that can adjust its specifications to cope with peak demands on a website. Getting started with this product has previously meant a lot of preparation though, lots of reading up on new terms and new ways of doing things and that is before understanding a pricing structure which thanks to its pay as you go nature might work out cost effective, but also takes longer to understand. Fortunately Canonical, the commercial backer of Ubuntu has stepped in and introduced an offer where you can test drive an instance of Ubuntu Server 10.10 on EC2 free of charge for an hour. I decided to take up this opportunity and see what I could learn.
Google's App Engine offers an attractive idea for web developers of being able to use Google's famous server infrastructure to serve up their own code and interactive websites. If you develop for it though you might find it is a bit different from developing for other types of web host and some of the concepts are new. I've been asked if I would do a simple run through of how you would set up an application and handle an HTTP GET requests with parameters, so here is a tutorial that will not just say “hello world” but greet you by name. The example is deliberately simple, but the concepts in it can be built on for many other uses. This example uses Python, if you would like to see a Java version then please mention it in the comments.
Most books on Drupal cover various aspects of developing websites using this versatile platform. After reading one of these you might find that you have done a rather good job of it and your site is attracting an increasing amount of traffic. This is great until the point where your site starts to struggle to keep up with demand. Left unchecked this could result in your site becoming slow to use and people becoming impatient and looking elsewhere. At this point you might be tempted to throw money at the problem, maybe an expensive new server or an upgrade to your hosting account. Before you do though it might be worth reading “Drupal 6 Performance Tips” by T.J. Holowaychuk and Trevor James that explains strategies and technologies that might help out.
Since my last blog post on the Nokia N900 I have been experimenting more with this Linux powered device and thought it was time to go a little further to see what it could do. Just over two years ago I wrote about using the Asus EEE PC as a “server in your handbag” running Apache 2, MySQL and PHP. I could not help wondering if such a feat was possible on the N900, after all it is a Linux machine, a small computer, but running the LAMP stack on a mobile phone? Maemo, the N900's operating system is a derivative of Debian, but the packages needed have not (yet) been ported, however, there was another route: Easy Debian.
As with previous blog posts on the subject of virtualisation, I used VirtualBox to run an image of Windows Server 2008 Standard Edition(tm) on Kubuntu 7.10. You will need a fairly powerful machine with a lot of free hard disk space and free RAM. I set aside 15GB of hard disk space for the image and 1GB of RAM to be dedicated to the virtual machine.