Travel Butlers, African Safari Holiday Specialists - Google Maps development

Richard Benson10 January 2011Company News, Portfoliocomments

Travel Butlers provide tailored holiday packages in South Africa and the neighbouring countries.  Traditionally their website development had been done in-house but they needed some advanced Google Maps API programming to push their site forward and make the experience for their customers that little bit better.

Working together with Travel Butler's director Paul Campbell, Surrey Business IT produced a module they could bolt-on to their existing website and infrastructure that would automatically generate a number of different types of Google Map; from details of attractions in specific regions to itineraries for individual bespoke holiday packages.

Example Travel Butlers Map 3Example Travel Butlers Map 4
Built from the ground up, the solution allows them to customise anything in the map and replace all of their existing static image maps with interactive versions all from the same code-base and an XML file.  Working this way meant that Travel Butler's in-house developer only had to produce simple XML from their own back-end to be able to create any number of different map varieties.
Example Travel Butlers Map 1Example Travel Butlers Map 2

Continue reading Travel Butlers, African Safari Holiday Specialists - Google Maps development

A pseudo Windows sudo

Richard Benson10 January 2011Administration, IT Proscomments

Often when using the command prompt in Windows Vista and Windows 7 you'll need to run the command as an Administrator and whilst running a command prompt elevated is not tough, it's fiddly. If you've forgotten to do it before you've moved your way around the file system it can be very annoying.

Linux has sudo but Windows has no alternative, so we knocked together a very simple sudo for Windows.
To use it, you'll currently need Visual Studio 2010 to compile, then place it in System32 (or any PATH folder) and simply type:
sudo <your-command> <arguments>
To run a permanently elevated command prompt, you can simply type "sudo cmd" into your start bar search and save yourself the additional mouse clicks required to do this the traditional way.

The code is available on our GitHub. There is a pre-compiled binary available, but check your dependencies first.

IPTables / Firewall set up for clusters

Richard Benson09 August 2010Web, IT Proscomments
Upon creation, most Rackspace Cloud Servers have a completely open firewall policy that will allow any computer into any port on your machine.  Linux uses IPTables to firewall connections into and out of your server but needs a fair amount of configuration to get it working and for it to stay working on a reboot.

In this article we will cover basic saving and loading of IPTables rules in Debian/Ubuntu on shutdown and boot up as well as common rules that go with our other guides.
Continue reading IPTables / Firewall set up for clusters

Load Balancing and failover for replicated MySQL

Richard Benson09 August 2010Web, IT Proscomments
NB: At present you cannot request or share additional internal IP addresses with Rackspace Cloud, so you are going to have to use the external addresses.  With large databases this will incur additional bandwidth charges, be sure to evaluate this additional cost against the benefits provided by high availability.  When Rackspace allow the allocation of additional internal IPs, this article will be updated to reflect that.

Through two related tools and some cheap Rackspace Cloud servers, you can provide a front-end for your database that will balance between multiple replicated database servers and automatically failover if one of your balancers develops a fault.

This article will cover setting up heartbeat and pacemaker to handle the transfer of an IP from one machine to another on a failure and then another install of HAProxy on both boxes to balance the load between your database servers and cope with either of them failing.
Continue reading Load Balancing and failover for replicated MySQL

MySQL Master to Master Replication on Rackspace Cloud

Richard Benson09 August 2010Web, IT Proscomments
To go with our Load Balanced Web Cluster, which provides good availability for your web services, providing high availability for your database is also likely to be an important requirement.  In most modern web apps, there's not much use having your webservers available constantly if your database is down.

There are a number of solutions to this with MySQL and every situation will require a different response, there are a lot of good articles out there to help you decide which solution is best. In this article we will be covering MySQL Master-Master replication and installation on Debian (Lenny) using Rackspace Cloud Servers.

The standard model of MySQL replication is a single master with multiple slaves, which provides you with very good read reliability, but writes can only be made to the master node.  This means that if the master fails, you can't just switch to another node and carry on as before, your slaves will become out of sync.  Additionally you can't load balance between your nodes for reads and writes.  By using a multiple master configuration, you can drop a node at any point and either switch your connection string to using the remaining master, or use load balancing and failover with HAProxy.
Continue reading MySQL Master to Master Replication on Rackspace Cloud

Setting up MySQL Cluster in the cloud

Richard Benson09 August 2010IT Pros, Webcomments

Before embarking on a MySQL Cluster installation, it is important to remember that MySQL Cluster is 'just' a storage engine for your existing MySQL database servers.  It stores data at the table level, not the whole database, it is therefore on the same functional level as MyISAM or INNODB.  You still need a standard MySQL server to access the table data and store the database information.  This has the fringe benefit that you can target specific tables to be saved to the cluster, rather than the whole database, if you have some tables that are either more important, or more heavily used.

In this article we are going to cover MySQL Cluster, it's installation on Debian (Lenny), Master-Master replication and how to tie all this together with HAProxy for a very high availability solution.

Continue reading Setting up MySQL Cluster in the cloud

Action Stream field list

Richard Benson13 May 2010MT Tipscomments
The Action Stream plugin provides a lot of information about your profiles which isn't accessed by default.  With a little playing (as described in my previous posts) you can really start making your action streams work for you and provide a "lifestream" to your own blog.

The following is a description of all the fields found in the default plugin (without any additional profile plugins) in the following format:

  • service_type
    • stream_type
      • MTStreamActionVar name="xx"
I will try to keep this up to date as new streams are added to the plugin.  One important difference to note is that between "stream_type" and "service_type". The difference is a stream type gathers together similar feeds, i.e. the photos stream_type will be all services where you post photos to, whereas a service_type of �flickr� will just be all actions based on flickr (including favourites etc).

Continue reading Action Stream field list

Sporepedia Action Stream v0.3

Richard Benson13 May 2010Spore Action Stream, MT Pluginscomments
Updated to show creations now that the official site has an RSS feed.

Working on�achievements�and Sporecasts for the next versions

YUI Editor in Movabletype v1.1

Richard Benson13 May 2010YUIEditor, MT Pluginscomments
This update merely makes the plugin use the latest (2.6.0) library.

A small change was made in config.js, so back that up if you've made your own customisations, and change ConfigYUIBase to be "".

The other change is in load.js, so if you are hosting the YUI scripts locally you'll still need the update.

Download YUI Rich Text Editor for Movabletype 4 v1.1

YUI Editor in Movabletype v1.2

Richard Benson13 May 2010YUIEditor, MT Pluginscomments
Another simple update to use the latest YUI library (2.7.0)

There's changes in config.js and js/load.js as the Element utility came out of Beta

Download YUI Rich Text Editor for Movabletype 4 v1.2
PreviousPage 2 of 4Next
Support Ticket
Remote Support
clever girl