Get in touch ...

WebPure is John Drummond's web design business.

It is different from many website design outfits in that:

  • We are not designers, our background is business, so we concentrate on the business purpose of the website.
  • We are software engineers rather than graphic artists. Function is everything to us, we like data technology and speed.
If a bit of practicaility and a business ear is what you are after, do please give us a call on 44 (0) 208 144 9374 or contact us through the website.

"Functionality is everything"

...chaotically, probably. However, there are a couple of things that mean a bit to us:
  • The best way to get a website project done is to meet and map it out on pieces of paper. London-based and on the Central Line, we can be with you at short notice.
  • The client should, as much as possible, be able to update their own website easily and speedily.
  • If the graphic side is troublesome, leave it out - be minimalist. I don't know who said it but its a lovely phrase: "the eye craves white space".
  • The website should work from a functional standpoint as soon as possible. With the technologies we use, there is lots of functionality we can build in to the site.
  • We may have to run with a couple of designs whilst we come to a conclusion about the best one to use. You have to be comfortable with your online identity.
  • Text matters: design elements merely amplify your message.
We use a range of common, inexpensive (mostly free) technologies.
  • Starting in the bowels of the operation, we host our sites and our clients sites on Linux Servers, which are inexpensive, reliable, secure and high performing. We can also work with sites hosted on your web server, of course.
  • We write our web pages in PHP, the widespread scripting language famous for rapid development.
  • Pages often need to access data held in a database, and we use MySQL and PostgreSQL.
  • We use CSS to write the style sheets that control the look of web pages, in common with nearly all website developers.
  • We use JQuery, a massively popular Javascript tool that is able to provide dynamic behaviour to a webpage and communicate small packets of information to the server using a technique called Ajax.
  • We use Flash for displaying some media items.
A bit more diagrammatic techno-babble showing how the various techniques fit together is in this pdf.
A one-stop shop:
  • We can design your website, understand what you want on the site, prepare the graphics
  • We can host your website on our web server, saving you the bother of running a webserver.
  • We can design and/or host a back-end database.
  • We can register domain names on your behalf, in your name or ours and deal with that side of things.
  • We can be on-hand at very short notice to maintain your website when things stop working, or the functionality is not up to the mark and needs to be improved.
06 feb 14
Online Spreadsheets
Are the future. I have spent a lot of my life working in Lotus -1-2-3 and Excel and I am always sending models back and forth to clients. For simpler scenarios online is great because you be sure its going to work for the client, and you can even watch as he uses it. The new online Excel Web App 2013 is a marvel although it can be a bit slow to load up initially. Word is similarly awesome. I see now that Google have raised their game and actually I will use theirs for my current client. Exciting times, the first major shift for 20 years is afoot!
01 feb 10
I survived PHP 5.3
I am going to crow a bit here. Look, I'm a bit of a duff programmer. This doesn't normally hold me in good stead, but with the upgrade to PHP 5.3 it certainly did.

PHP 5.3 has broken nearly ALL PHP shopping carts (eg OSCommerce, Zen-Cart). They have released patches but these may or may not work. Several weeks after the release of 5.3 the shopping cart builders have not caught up, the changes are numerous, and if your server has recently upgraded you have a bit of a disaster on your hands.

I've always built my own shopping carts, which is why they are so rubbish-looking, don't have log-ins and are a pain to build in new features. But all I want to say is: without any changes, they work under PHP 5.3. I know I'm weird, but I'm actually very proud of that!

12 jul 09
Normalize or Not to Normalize?
I spend a lot of time designing databases, often starting from scratch every time.

One of the main questions is whether to go for a cardfile type simple list or fully normalize.

On the face of it, it is a technical no-brainer. But if you cogitate on this long enough, it becomes quite a teaser. When, for example, does a list of widgets actually become a list of components of type widget or a list of things of type component of type widget. Before long, you can find yourself writing the database of everything. And it takes longer than the beautifully simple list.

The pros of normalisation are in every textbook. The cons of normalisation are often not. Here are what I think are the cons:

  • Your input forms become harder to write. Adding an attachment to widget involves adding an item to attachments and linking it, instead of simple filling in the items 'attachment1' field.
  • Retrieval will involve one or more complex queries with joins, instead of just sucking in the whole table.
  • Users will find it harder to understand the internal structure of the database - they may sometimes get confused.
  • Quite often, a denormalised table is what is required as an output, because we like to look at long lists with all the fields showing. I found that if you import to a spreadsheet Excel you nearly always end up denormalising because you want a single table sucked in and Excel is not relational like a database is.
That last point gives me my criteria for choosing how far and whether to normalise.

JD's normalisation criteria:

  1. If in doubt normalise because its the RIGHT thing to do.
  2. If all the outputs of this database require a denormalised output and/or your data inputting users would do their job much quicker with denormalised, then go for the simplest flat list you can.
28 may 09
Why use a back-end database for a website?
Traditionally, a website is just a bunch of HTML web pages, perhaps with some JPEG or Flash graphics.

We tend to use a database to hold the text of the web page, with links to any images on the server, and have a simple PHP script that serves up these pages, extracting the text from the database. Why? Here are the main advantages of using a back-end database instead of the 'bunch of pages' approach:

  • More easily updateable by the client/user. It is straightforward to have a password protected online form so that the client can tweak the wording on their website.
  • Its easy to link the tables to MS Access to rapidly update the content.
  • Easier to implement multilanguage support.
  • Encourages the use of standard page look and navigation.
  • Easier to implement site searches.
Every time I have started a website project, I have very quickly moved from a bunch of pages to putting the content in a database. Call it intuition or geekiness, its what feels right.
21 mar 09
Using PHP Calls in a bespoke Content Management System
Its quite useful to be able to call your own PHP functions from within the text of your database, for things like boilerplate text. So if you have a function called php_lorem() within your PHP script, you could call this from the text by:
  1. Entering % php_lorem somewhere in your text field. The % is just my way of making the syntax of call a bit more unique.
  2. Within PHP you need a php_lorem() function.
  3. When you come to display the text via the script, you run it through preg_replace thus: $txt = preg_replace('/%php_(w+)/e', 'php_$1()', $txt). What this does is look for %php_, then compile and store a reference from the following letters until it hits whitespace. The /e means that PHP is going to use the replacement text as PHP code. So the $1 is substituted for the reference. So it means that you can call the PHP function what you like as long as its got the php_ prefix.
Things get more interesting when you want to pass an argument to your function. I couldn't get this to work with text arguments, but it seemed to work fine for numerical ones in a boilerplate system I use:
  1. You have text in your database like % boilerplate(1).
  2. You get PHP to parse the output using a more sophisticated preg_replace: $txt = preg_replace('/%boilerplate((.+))/e', 'boilerplate($1)', $txt);
Here is a real life to call to % php_lorem:

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum

01 mar 09
MS Access: A Nice Little Technique for Updating Data On The Server

I am writing this not in a text editor or an online form, but straight into MS Access 2007.

I find that I increasingly use that humble little database Microsoft Access to maintain data on my Linux servers. On the server, the databases are in MySQL and PostgreSQL, 2 industrial scale databases that work great with web pages. Getting data into them is a bit cumbersome if your server is remote, as most are, and you end up using PHPMyAdmin or PHPPGAdmin, 2 excellent database administration tools.

But the fastest way to deal with the real data is to have an MS Access database locally, and then link to the remote tables via ODBC. Its pretty easy to set up, you can even store the database passwords in Access. You are not using Access as a database but more as a forms front-end, which of course it is very good at. So you can have checkboxes, comboboxes, text fields all on nice forms, and very time to save or move to the next record, behind the scenes your data gets saved to the server. Great for productivity!

You can also use this as a CMS for your clients, because you can just giove them an Access database with the forms in and tell them how to set up an ODBC link to their database on the server.

John Drummond

John is more likely to understand your business than wow you with design flair, but at least you won't have to explain everything to him.

2001+Director Business Functions, Business Software Developers and Modellers
1991-2001Canary Wharf Group plc, property developers, Head of Business Planning and Appraisal
1989-19913i plc venture capitalists, Investment Excecutive
1987-1989MBA London Business School , full time
1982-1987BHP Billiton, Petroleum Division, Engineer/Economist
1981-1982MSc Petroleum Engineering, Heriot Watt Univ.
Recent IT test certificatesBrainbench: PHP4, PHP5, C++ Fundamentals, Excel 2003 Fundamentals.
John's Other websites
Business Functions
Personal Website
Business Modelling Epping Forest Guitar Group
Property Modelling