May 09, 2008
Providing exceptional service - and carrying on doing so.
Nothing gives me greater please than to hear from a customer who writes "My line manager is quite keen for me to work on those web programming skills for various proposed, so we've already discussed it, and I don't think he'd be looking at me going elsewhere for training - what you do is so much better than everywhere else we've looked. It's just matter of what the training budget will allow!" And that's because we're achieving what we want to achieve - a product that's exceptionally suited to our client's needs.
Actually, it's been rather a good week for such things; a conversation with guests checking out this week - a group of three with two back next week and the third staying elsewhere because we were full. yes, he is wait listed. And as he explained as he checked out - "I'm the boss and I want my staff to be really comfortable when they're away from home; I'm used to a lot of different places" and with an assurance that the following booking - when we do have room - he'll be with us.
These two discussions related to the PHP Techniques Workshop and to hotel rooms at Well House Manor
But we have to be careful - very careful - not to rest on our laurels; it would be so natural and easy
for us to let standards slip which is why the opportunity has been taken this week, with things a little quieter than normal, to catch up on a few things, adjust things to crisp them up before they are customer visible, and so on. Which has left me doing some very odd things like photographing bed settings to remind me (and everyone else) just how those duvets look in the duvet covers.
Posted by gje at 05:11 PM
| Comments (0)
More about Graham Ellis of Well House Consultants
May 08, 2008
What to do if the Home Page is missing
The Web Server Administrator has two choices as to what he / she should do when a content provider doesn't supply a home page (index.html or similar) in a directory - either he can generate an error such as a 403 ("Forbidden") or 404 ("Not found"), or he can generate a directory listing, so that the web site visitor can access the content of the directory anyway.
Question - How does the web site admin turn directory listing on and off?
The Web Server configuration file is usually called httpd.conf, though were you find it varies depending on your operating system and configuration. For a web server installed on a Linux server, as configured on our Linux Web Server and Deploying Apache httpd and Tomcat courses, you'll be looking at /usr/local/apache2/conf.
Find the Options line for the directory in which the directory tree you're interesting in altering is located and add (or remove) Indexes. For example:
<Directory "/home/www/htdocs">
Options Indexes FollowSymLinks
allows web directories served from within /home/www/htdocs to display their contents, but
<Directory "/home/www/htdocs">
Options FollowSymLinks
will give anyone who tries a 400 series error.
Question - can the web develop control this too?
Yes, if given such permission by the Web Site Admin. The Web Site Admin need to allow overrides - if the httpd.conf file says
AllowOverride None
then the web developer has no control but it it says either of
AllowOverride Options
or
AllowOverride All
the it CAN be overridden by the web developer ... who would provide a file called .htaccess in the top level directory to which the automatic indeing should apply. The line in that file would be either
Options Indexes
to allow Indexes (only) or
Options +Indexes
To turn indexes on in addition to options inherited from the directory above.
There may be other things in the .htaccess file too, and these files can exist in multiple places on the web site - here's an example of mine that allows a directory listing and turn off any page rewrites too:
RewriteEngine Off
Options Indexes
and here's one which (by contrast) diverts all .html and .htm requests to a script with the undescriptive name 8.php, passing in the name of the page that was called up as a parameter.
RewriteEngine On
RewriteRule ^(.*)\.htm 8.php?pagename=index&sharename=$1&%{QUERY_STRING}
Question - is it a good idea to allow automatic indexes?
In general NO. If you leave out the home page from a directory by mistake, you'll be exposing yourself to anyone who visits your web site. When I go to a web site following a link to an obscure page on a domain I don't know, I often "research" the domain by cutting sections off the path. By disallowing, you stop people like me spying around, and perhaps finding backup files (e.g. copies of .php scripts that have a .bak extension) from which I could (but wouldn't!) break holes in your site.
But if you want to make a directory from which people can quickly and easily grab pictures and you're not too worried about it looking pretty, then in these LIMITED CIRCUMSTANCES it can be a good idea.
In fact I have turned in on for one of my directories today - here where you can some some record shots of this morning's breakfast setup, and of Devizes last night.
Note - than answers on this page apply to the Apache httpd web server, which is used to serve the majority of domains on the web. Options and configuration files differ for other servers.
Posted by gje at 05:01 PM | Comments (0)
Spring in Devizes
Yesterday evening, Lisa and I got a breath of fresh air in Devizes - a beautiful Spring evening with leaves on the trees where 2 weeks ago there were just twigs.
Moored at the wharf on the Kennet and Avon Canal was a cluster of modern narrowboats (and what a wonder it is that my modern camera let me shoot this right into the sun!
Looking out towards Honey Street and Pewsey, "Unity" is moored up. Now "Unity" is a famous name - a barge built in the days of commercial carrying, horse drawn, and operated by Robbins Lane and Pinnegar - a long established firm of carriers on the canal. She looks beautiful - but is she original, or a reproduction? And if she's original, just how much of the original boat remains? Questions that I don't know answers to!
Questioning "Unity"s credentials is rather like questioning our credentials to describe our breakfast as "Continental" when we're certainly not on the mainland of Europe, and our breakfast products are sourced locally where possible. Not only do local products help us to support local businesses, but they also cut down on greenhouse gases from Transport, and they give distant visitors a local taste rather than the standard fayre from a worldwide chain.
Our niche at Well House Manor, where we cater for business travelers to our computer courses and to other local businesses also allows us to provide products that would be out of the question at a more general hotel. The picture here shows the preparation of fruit which we allow guests to juice for themselves - bringing a true new meaning to FRESHLY squeezed orange juice - but it's something we couldn't entertain allowing if we were to accept bookings from children.
Posted by gje at 03:38 PM | Comments (0)
May 07, 2008
Kiss and Book
The headline on our story reads "We've got a New Online Booking System for our Open Source courses" ... but there's a story behind that headline.
We pride ourselves in our flexibility - the ability to treat each customer as an individual and offer him a solution to meet his or her needs. And that means that we're likely to ask each and every delegate booking a course with us a whole string of questions - some to establish that he or she is booking on the right course (not something too advanced or basic), whether she or he prefers to work at a Linux system, with a Mac, or with Windows Vista, whether a station pickup is required and if there are any special dietary requirements, and whether a hotel room is wanted - if so, bath or shower preferred? But our flexibility leads to the danger of a very complex online booking system!
"KISS" - "Keep it Simple, Stupid" ... a 4 letter acronym! A booking system needs to be simple and easy to use - and our new one is.
• On the first page, simply fill in the names of the delegates you want to send on each course, and if necessary check a box if they don't want a hotel room.
• On the second page, fill in the contact details of the person who's making the booking, and an order number.
• And on the third page, tell us how you want to pay. If that's by credit or debit card, the whole of the booking system is using a secure site so you can enter the details.
• The final page isn't a form - it's a confirmation. Yes, it's that easy! You'll get an automated email to let you know that your order is in the system.
You'll also get a nice note from Lisa, thanking you for your booking and dealing with many of the things that we're very flexible about - and it will be personalised. Book from outside the UK and Lisa will ask you whether you need directions from the airport, or a taxi. Book from one of our regular client companies, and she'll know how you PO system works .. or from a new company but requesting to pay on account, and she'll set that ball rolling.
Our conundrum of how to keep it straightforward, and yet provide the flexibility, isn't unique to us - in fact it's a common feature of most customer-aware businesses. When I book a train ticket and I'm offered (as I was the other day) 37 different fares for the same journey on the same train, I take an object lesson and say "please let this be a reminder to me to make sure that our system NEVER gets like that".
Go on - try it out ... why not find a course and book it today!
Posted by gje at 12:22 PM | Comments (0)
May 06, 2008
Changing a screen saver from a web page (PHP, Perl, OSX)
Here's a challenge. I want to change the screen saver on a mac mini, running OSX, from a browser anywhere in the world.
You may well ask why ... the screen of the mac mini is to be visible at Well House Manor where it will provide an information screen at the front door when it's not otherwise in use, and we want it to say things like "Sorry - no Vacancies" and "Welcome to the Chamber of Commerce"
Task achieved! Using PHP ... and Perl ... and Web2 technology. With a smattering of OSX!
Here's the control widget on our web page ... the page is in PHP and this particular widget is only displayed to staff members who are logged in - if you look at our Staff Resources Page you won't see it.
And the PHP that's run when you press the update button:
if ($_POST[door] == 12) { // Door Status changed
$ds = $_POST[doorst];
$fho = fopen("door.txt","w");
fputs ($fho,stripslashes($ds)."\n");
fclose ($fho); // Host and Port changed for security
$done = file("http://zzz.wellho.net:8080/cgi-bin/dodo.pl?$ds");
}
That piece of viewing software was called a controller on the Mac - which is running as a Web Server on a port enabled on our firewall, and redirected with NATS to the Mac Mini.
The Perl software dodo.pl looks like this:
#!/usr/bin/perl
print "content-type: text/html\n\n";
print "Changing Page";
`rm -rf /Users/lisaellis/FrontDoor`;
`cp -r /Users/lisaellis/$ENV{QUERY_STRING} /Users/lisaellis/FrontDoor`;
open (FH,"ps aux|");
while (<FH>) {
if (/ScreenSaverEngine/) {
@n = split;
kill 9,$n[1];
print "$n[1]<br>";
}
}
sleep 1;
open (FH,'|/System/Library/Frameworks/ScreenSaver.framework/Versions'.
'/A/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine' );
close FH;
print "Changing Page";
And there's also a standalone version here if you want to download a copy for your own use.
You'll notice - typical use of PHP to front a web application, typical use of Perl as "glueware", and typical use of a Unix / Linux / OSX utility - in this case Mac's ScreenSaverEngine - to do the oddball job we needed.
Posted by gje at 05:49 PM
| Comments (0)
Useful links: Perl training, PHP training
May 05, 2008
Lua - a powerful, up and coming scripting language
Lua is a powerful, lightweight scripting language. It combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. It is ideal for configuration, scripting, and rapid prototyping. Lua has been used in many industrial applications, with an emphasis on embedded systems and games, and indeed is currently the leading scripting language in games.
Here's a quick Download, build, install, test procedure for Lua
• Download from http://www.lua.org/ftp/ and save to disc. The file you choose is lua-5.1.3.tar.gz
• unpack tar file and build
tar xzf lua-5.1.3.tar.gz
cd lua-5.1.3
make linux
• Install (as root, into /usr/local)
su -
cd ~trainee/lua-5.1.3
make install
exit
• Test (as trainee, once again)
[trainee@holt ~]$ lua
Lua 5.1.3 Copyright (C) 1994-2008 Lua.org, PUC-Rio
> print "hello world"
hello world
>
[trainee@holt ~]$
I've put a simple program - the next step beyond "Hello World" that shows some of the basics of the language here, and I would be delighted to spend a day or two going through the language with you ... (Keywords - Lua Courses / Training / Classes!)
Posted by gje at 10:57 AM | Comments (0)
May 04, 2008
Looking back through some photos
A Sunday afternoon - and a Bank Holiday one at that. I'm not sure why (suggestions of age and workload are probably along the right lines!) but I lay down just after lunchtime and dozed ... and, up again now, I am starting to do some low key stuff including labeling up some old pictures.
Photoshop is, of course, a marvelous piece of software for adding art and zest to a dull picture such as this one of a steam engine at Bressingham, taken just a fortnight ago. You may argue that the best place for this picture was the recycle bin - but, hey, I'm an amateur and an amateur will show you as many of his pictures as he possibly can. In fact - if you want to see the other ones that I have just been labeling up they are here
Another picture - from last Thursday, at Bibury. [more pictures of Bibury]. A certain timelessness, and an opportunity to take a rare picture - one that has no road, no vehicles, no signs of the 21st or even the 20th Century in it. Or so one might think, but I do wonder as to just how similar (or otherwise) this scene might have been in 1908 rather than 2008.
And finally, a pair of pictures that lead me to start thinking just how European we have become in Great Britain - with photographs on the steps in Norwich and in Rome.
![]() | ![]() |
Stop Press - Image search at http://www.wwuu.co.uk
Posted by gje at 04:41 PM | Comments (0)
To provide external links, or not?
My email this morning brought me a report of a broken link on our web site. Which I investigated, and found to be within a blog entry I had written a year ago, and linked to someone else's site over which I have no control.
I'm a great believer in providing a wide range of linked resources for our customers, and for other visitors to our web site. With links to sites that we manage (and there are lots of them, from our company overview microsite to Save the Train and from our PHP course pages through to image reuse details via the hotel and the First Great Western customer page), I know how likely (or otherwise) it is that the URLs will go away or change in the future (and can link accordingly), but with most external sites, the best I can do is make an educated guess!
This is not an exact science ... so what can I suggest?
a) That links to the major pages of well established organisations are likely to remain substantially correct, as are links to pages that one's encouraged to link to
b) That links by IP address, to obscure URLs especially within blogs, forums and wikis, are likely to go out of date
It's regrettable that there's no way that you can register any links you add and get the people to whom you've linked to let you know when they take pages away ... but the good ones will replace pages they remove with "301" redirects rather than just abandoning you - as I found this morning - to a "404" not found.
There's another option. You can write a spider / script that will visit all the pages to which you have provided links from time to time, and update you on their status. I have one of these somewhere in a dusty directory - written in Perl and using the LWP module, it trawled my own pages for external references, then visited each of those internal references in turn. But I admit - it's years since I've looked back at it and I need a month of Sundays to catch up on such things.
My current view is that external links within my main pages are very carefully selected, and will rarely go out of date - and I would typically know very quickly. External links on blog articles and on forum answers - well - the reasonable person may expect them to go out of date over time, especially if they're something like an advert for an event in July!
Posted by gje at 08:50 AM | Comments (0)
May 03, 2008
A short introduction to our courses
Hotel guests and other visitors are often interested in the Computer Training we do at Well House Manor, but hitherto our sales and marketing material really hasn't included a handy single sheet to explain. There's a good reason for this - with niche course such as ours, our main market hasn't been a local one (and that's why we have the hotel, after all!)
However - in response to a request at last Friday's Staff meeting, I have put together a page, suitable for printing out on a single sheet, that pulls together the training and the hotel business.
See what you think here
Posted by gje at 04:29 PM | Comments (0)
Gant charts - drawing them with a PHP script
I wrote a piece of project planning code - to generate GANT charts in PHP - when we were planning all the works on Well House Manor the best part of 2 years ago now. And although I did little more that provide a screen capture here on "The Horse's Mouth", one of our popular hits has turned out to be that page.
So I've looked through the code and realised that I can publish it, and the sample data - and indeed I can have a running copy on our web server. So here you are:
Example Gant chart (PHP)
Source code for Gant Chart program
Sample Data file
Techniques such as these are covered on our new PHP Techniques course
Posted by gje at 03:47 PM
| Comments (0)
Useful link: PHP training


