« December 2004 | Main | February 2005 »
January 31, 2005
An Open Source course on the Channel Islands
I trained on Guernsey last week. My first visit to this particular island, and in many ways it felt more English than England, yet with a taste of France. A midweek crossing on the "Commodore Clipper" took me there, 7 hours from Portsmouth. Commodore Clipper is a smaller ship than most of the cross channel ferries that I'm used to and is short and squat; she bucks and heaves a bit even in what looked like fairly gentle seas - I have to say that's a good thing for me, as it helped lull me off to sleep. Others weren't so sure - there was a lady across from me who was telling folks that she was concentrating on the TV to avoid being sick!
As a general rule, I travel by land and sea to on site courses. It allows me to provide one workstation per trainee for the duration of the course, to carry plenty of books on the subject I'm teaching, and to arrive fresh and early on site with my own transport rather than having to trouble the customer for airport pickups, taxi runs during my stay, etc. "Just provide a room and the students ... we do the rest" applies just as much to locatons on Guernsey as it applies to Manchester or Sheffield.
The two main Channel Islands are Jersey and Guernsey, each around 10 miles long. And there are smaller islands too - Alderney, Herm and Sark, famous for "The Dame of Sark" and its lack of cars. They're all just a few miles off the French coast, and were the only part of the UK to be occupied by Germany during the second world war. There's a number of museums here that recall those times; many are close for the winter, though, and I didn't have much chance to get to the others as I was there to work and I did so all day until Saturday.
St Peter Port on Guernsey is the Island's main town, and where the ship berthed. My hotel was just a few hundred yards away in narrow back streets, ovelooking the picturesque harbour. Parking there was nonexistant (I brought the car to carry about 10 laptops for my trainees to use during my course - for "normal" people public transport would be MUCH more sensible!) and in a touch of irony, the hotel's best offer was to "park back at the ferry". Good hotel though - most importantly it's got a wireless hotspot so that I could work from there. The kippers were good at breakfast, the old Georgian building gave me a few ideas for fine tuning of our place of a similar age, and my room was spacious.
Before arriving, I had heard that the speed limit on the Island's roads is 35 mph and I felt this was a bit cautious. Having seen the roads, I think it's about right. The busiest roads are still just country lanes that snake around the island, with high walls, hidden gateways from houses and blind corners at every twist. You're lucky if you can actually get up to the 35 mph. Oh - and petrol at 47p per litre; I filled up before my return.
The Channel Islands have a curious status; they're part of Great Britain, yet not a part of the European Community and much of their activity is centred on being a tax shelter. Even in January, they're busy. On return, I had no passport control, but had to go through customs as if we were coming in from outside the EU (I was!) with a 145 pound per person limit. And, yes, I had special "duplicate list" paperwork to allow me to carry all my tools of trade without getting hit for a further 17.5% VAT and import duty as I tried to re-import them into the UK.
Posted by gje at 05:08 AM
More about Graham Ellis of Well House ConsultantsJanuary 30, 2005
Customer service - examples to warn us
"Open" says the sign in big bright words on the end of the snack kiosk set amongst the sandhills in Vazon bay, Guernsey. What a relief - I had completed a course on Friday and was spending Saturday waiting for the boat home by doing a little sightseeing; fascinating to see all the French remains from Napolionic times (carefully labelled and signposted) and the Germain remains from their occupation in the second world war (preserved, but without any interprettaion signs) - and I was just dying for a cup of tea; most other places had been closed.
Coat on, deep breath, open car door. Step out and get nearly blow away but, heck, at this stage I'll walk a mile for a cuppa.
And - disappointment. When I reach the kiosk (half hidden by the sands), I discover it's not open; not only that, but the sign is painted on so that 24 hours a day, 7 days a week it sits there as a siren to travellers tempting them to abandon their cars and treck over. I found myself thinking "what a cheek" and "how disrespectful"; it wasn't as if the sign had been left out in error, but a snub on visitors - no doubt my time (and the time of countless other tourists) tracking over to the kiosk was far less valuable than the few minutes it would take for the kiosk owner to change his "open" sign for a "closed" one.
I'm proud of my country, and I'm proud of most of my fellow British. But just once in a while ... an incident like this. I've not been proud when overseas visitors have been ("accidentally") given older large 10p or 50p coins in change, or have been directed from office (a) to office (b) for a service because the woman at office (a) couldn't be bothered. Yet every cloud has a silver lining.
Two senior members of staff from a large and well known company had booked places on an Advanced Perl course to be given by a training outfit somewhere in the Home Counties. The course wasn't scheduled very often so it was really a bit late for one of them, and the other had had to reschedule his family holiday so that he could attend - such was there need for the course. Hotels booked, and the morning of the course they get up early and travel into London on one side, back out on the other to the venue ... arriving at a quiet looking building by taxi from the nearest station. In they walk, to find the place manned by a single receptionist. "Oh - didn't they let you know - the course has been cancelled" she said.
The organisation for whom these two senior staff still work is now an excellent customer of ours; after their disappointment, one of them recalled a Learning to Program in Perl course I had presented to him before we were running them under the "Well House Consultants" banner, and he "Googled" me. Yes, we did (and continue to) offer advanced Perl courses - both for users who are writing large Perl projects and for those who are more concerned with Perl on Internet and Intranet web site.
We have a luxury here at Well House Consultants - the luxury of having a strong enough business that we CAN afford to run courses even if there are very few people booked. Indeed - once your booking is confirmed only the most extreme of circumstances would force a cancellation and that would NOT be due to a lack on numbers. If necessary, we run "one on one". We also have the luxury of a team of thoughtful, mature staff who have been in your shoes as a customer and know how to handle things to ensure that slipups are very, very rare and positivley solved.
Posted by gje at 03:07 PM
Published Photographer
As the days were getting shorter and the leaves were falling shorter ... a few months back ... an email arrived out of the blue asking if my image of the Caen Hill Locks in Devizes could be used on a company's 2005 calendar. I was flattered - especially when I discovered that the company making the request was Peter Brett Associates, who were involved as consulting engineers in the project to reopen the locks a few years ago.
Caen Hill Locks has matured into a beautiful spot to wander on a summer's evening, less that 5 miles from our training centre. Canalside pubs like the Barge at Seend, the Three Magpies at Sells Green and the Black Horse and the Artichoke in Devizes provide good pub meals and liquid refresements, and for trainees on our courses there's a late bus (about 10pm) back from Devizes via Sells Green to Melskham. A big thank you to Peter Brett and everyone else associates with all the canal restoration work - "we locals" much appreciate it.
What resolution is needed for an image such as this to be sucessfully printed? It depends on the final print size, but the image on our web site (1600 x 1200 pixels) was more than plenty for the purposes - they wanted an image about 3.5" wide and 2.5" tall. Had they been looking for an A4 print, the image on our site would have been woefully inadequate. And why have such a high res image on the web site? Two reasons:
a) These images are designed to be used as screen savers on our own systems, and we use our own web site as a resource centre for them. Better keep them as highres as possible, so that whenever we use them as a screen saver we don't have a degraded image.
b) The slideshow on our UK website uses Javascript to resize the image to fit the window width. Again, we want to store the pictures to as high a resolution as possible on the server for this purpose.
The Caen Hill Locks image used is on our site in the slide show section and you can also download the calendar page if you wish.
Posted by gje at 12:24 PM
January 29, 2005
The wrong MySQL
"MySQL won't let me log in and I'm sure I have my password right"
"I've just installed MySQL and I'm using it the first time - but it seems to have a lot of data about your books already loaded"
"I'm running MySQL version x, but it claims to be version y"
Occasional incidents of MySQL courses. A possible cause? With every trainee running a MySQL daemon on their computer so that they can practise administration tasks, someone may be connecting to the wrong server. Remember that MySQL provides its service through TCP/IP port 3306 (default) and so it can be just as easy to talk to a server on another machine as the server on yours. How is the decision made?
1. Within the code of MySQL clients, defaults are defined which are used if there's no other indication given
2. A file called /etc/my.cnf is checked for any changes from the default
(On Windows systems - my.ini in the Windows system directory)
3. A file called .my.cnf in the user's home directory is checked for any changes from default
(On Windows systems - my.cnf in the root directory)
4. Command line options can override settings
In the sourcing and Installing MySQL module of our notes, we say:
If Mysql has been pointed to elsewhere you may need to
mv /etc/my.cnf /etc/mycnf.old
mv ~/.my.cnf ~/mycnf.old
and on a new installation this will revert your MySQL clients back to defaults unless you use command line overrides.
Posted by gje at 07:29 AM
January 28, 2005
Current MySQL and PHP paths and upgrades
Upgrading from PHP 4 to PHP 5
Upgrading from MySQL 4.0 to MySQL 4.1
PHP5 was "production released" last July, and MySQL 4.1 became a "GA" release which is their equivalent later in the year. In both cases, the new release is not 100% "plug and play" compatible with the old, and at present most users are still running PHP4 and MySQL 4.0 or even 3.23.
I've been running a MySQL course the last couple of days and even though the customers are using the older versions, I'm showing them the new too and giving some thoughts / ideas as to how they should work so that their current systems will be easily upgraded in the future.
Things particularly effecting the upgrade of PHP / MySQL systems:
- PHP5 object model slightly different to PHP4 model
- MySQL client libraries no longer bundled with PHP5; new Mysqli functions available in their place
- MySQL login password scheme changed at MySQL 4.1
Note - LOTS of lovely new facilities; here I've just noted issues that may be "gotcha"s when transferring code.
For newcomers to PHP and MySQL, the changes between the versions are small enough for our courses to cover both, with you doing your practicals on whichever setup is most appropriate. If you're an existing PHP / MySQL site and looking to plan your upgrade route, let us know and we can provide you with a day or two of training covering the aspects above and other things such as templated queries, SQLite, XML handling and the PHP5 object model.
Posted by gje at 05:30 PM
Useful link: PHP training
January 27, 2005
Setting up a training room for a course
"Just provide a room and the students, and we'll do the rest" So we say in our marketing material, and we mean it; we have the facilities and equipment to set up in a wide variety of venues and run proffessional courses there. In the last few days, I've set up in three different venues taking about 45 minutes in each for a network of around 10 machines.
Setting up a training course is rather like taking over a paint job that's already been started. Sometimes, you can just drop your systems into place but at other times a certain amount of reorganisation is needed. What are the factors I consider as I do the setup?
* Give all the trainees plenty of space - not only for computers but also for notes, notepads, etc
* Arrange the room so that all trainees can see the projector screen, whiteboard and other aids, preferably at the same time as their computer screen
* Allow somewhere for the tutor to sit or stand (prefereable both) so that he does not block the students views
* Give the tutor plenty of space too, and a seat where he can type during a demo.
* Set up so that the tutor can interact with the students - good eye contact, etc
* Leave enough aisle space for the tutor to visit each student to help during practicals
* Lay out the reference books so that students are encouraged to use them during the course
* Clear excess chairs, but leave one or two so that the tutor can pull up a seat beside student he's stopping to chat with.
* Set up cabling so that all the students can get to their seats without stepping over cables
* Set up cables so that students don't run over them as they roll their chairs back
* Don't use a cable that's JUST long enough unless you have to; allow a little slack so that things won't pull if
a student moves a laptop by a few inches.
* If running a multi-operating system course, ensure that the systems are mixed around the room so that trainees who are using Linux can look across to the person beside them with Windows, and vice versa
* Learn the lighting of the room so that you can dim when you're projecting
* Adjust the tilt and swivel and zoom of the projector. Use a smaller display size if the lighting can't easily be reduced.
* Have a spare machine at hand "just in case" - preferable quietly on the network
* Check all machines are up and networked via our tkpingle script
All of this is second nature to us; it's the first time I've formally written it up and I hadn't realised just how many things I do automatically!
Posted by gje at 06:17 PM
January 26, 2005
Python engines
Most Python users run the language "native". But that's not the only way to run it - Jython is the Python syntax under Java where it provides a useful scripting language with access to Java classes and objects. Then there's Python for .NET, and what's this I hear about a grammar being defined to let Python run under Parrot? ((Wait - that last is dated 1st April ... but stranger things have happened))
Posted by gje at 04:51 AM
Useful link: Python training
January 25, 2005
Tuesdays and Fridays
I've travelled a great deal on business, and one of the less rewarding results is that I've stayed alone in a number of business hotels over the years in towns that wouldn't be my top choice for pleasure trips, at times of year when they're not at their best for sightseeing. The hotel restaurant is populated by men eating alone, and rooms service is busy serving all the women-on-their-own who didn't want to come down for fear of being 'hit on', or for fear of being thought to be looking for 'clients' by the staff.
I choose not to frequent such restaurants as a general rule. I prefer to get out, have a walk, grab "fast food" and eat it back in my room, or in the fast food joint; there's just something about eating alone in a restaurant that makes me want to crawl under the table. But I will make exceptions; some restaurants / chains have it right.
If I'm hungry and there's one to hand, I'll eat alone at TGI Fridays. Why? Isn't it a brash, American Family and Party restaurant? Well, yes, it is ... but they have something right. Something in how the staff interact with and treat the customers. You're not stood over as the order is taken; typically they'll squat at the end of the table to take the order (and I've even had the server sit at the inevitable second seat to take the order). They know if you're on your own that you don't want a long wait to talk (to yourself?) so serve quickly. And they come back to see how the food is ... fill up your drink ... somehow they seem able to get the timing right.
Over the years, I've watched servers in restaurants and learn from them - the good and the bad. Training is very much a service industry, with trainees returning and recommending if they enjoy the experience. Watch us as we interact and serve coffees, lunches; you'll see the friendly Fridays approach. Even watch me as I present the course and then go round the trainees during practicals and you'll see some startling similarities ...
Heathrow Airport. Terminal 3. Airside.
Does this sound like a distinctly difficult place to provide good restaurant service. Have you even been through these bigger UK airports and found the staff less than enthusiastic, the food lacklustre and the individuality missing? Well - I have!
Last Thursday, Lisa and I flew to Washington DC from Heathrow. Check in, a dream. Security fast (and no queues) and time to kill in the shops and restaurants. Chose TGIFs ... and pleasantly surprised. Friendly young gent served us - I guess he was from one of the ....nias that joined the EU last year. Came back to check. Food brought out fresh when ready (and not from under a heatlamp), checked we were OK, more coffee offered. Good to see the chain still has these gems of surprises.
Ashburn, Virginia
Sunday, and a great storm had swept over North East Virginia the previous 24 hours, blanketing it in snow. Everyone was alerted to the risks of going out, and a blizzard followed blowing the snow around. By late morning, roads had been swept but the windchill tempertarure was just 5 degree F (minus 15 C) so we were amongst the first to "brave" out and eat with Sister-in-Law before returning to the airport for our flight home.
Ruby Tuesday's was open. Good meals in the past there, so in we wander. More staff than customers, and we're seated and served quickly. But my order of a steak, rare, turned out to be what I would describe as "well done". Oh well - nice piece of meat; different dish to that ordered but what the heck. SIL felt I should make comment, and did so when the waitress came to check up on "hows the meal". Cutting a longs story short (yes, I CAN), I elected to keep the steak rather that switch to a new one which would have been a different dish, and accepted a desert on the house. Waitress had spoken with manager, apology offered and accepted, recompense offered and, yes, I would eat there again.
Thank you Tuesdays, thank you Fridays for your service and your demonstrations of how it should be done. I'm happy to learn how some of your customer service techniques apply in our field (and we do apply them), and I'll be visiting both of your establishments again in the future.
Posted by gje at 02:16 AM
January 24, 2005
Pink elephant and appreciation
A flight from London to Washington is a rare opportunity for me to read a book undisturbed for a few hours. I'm not good at the technical books on such flights, so I often choose a more generic book.
"Drop the Pink Elephant" by Bill McFarlan was my choice today. Thought provoking. Subtitled "15 ways to say what you mean and mean what you say". As we approach the USA coastline, I've turned my laptop on and I've already modified the text of a web page for later update on which I had a "durr - you twat, Graham" moment and I'm writing this review. Yes, Bill, if you ever stumble across this I am aware that ...
- The spoken word is more powerful than the written
- It should be kept short and simple.
I want to say - to record - an appreciation of Lisa and Leah in the office. We're an odd company, we've already had a busy month (and look like remaining busy), and at the end of a hard day's training I don't always spend the time I would like looking at what they've been working on. My interest and appreciation should be obvious, yet it often isn't.
Posted by gje at 01:00 PM
January 23, 2005
a popular bus number
With all the numbers that are available, why is it that some numbers are especially popular for some uses? Take the number 72 which seems to be a favourite for bus numbers.
Here in Melskham, we have the X72 which runs from Bath, through Melksham, close to our training centre and on to Devizes, Easterton (site of the original "Well House" after which our company was named) and Urchfont.
Then there's the 72. That's a town service that starts across at Dunch Lane, runs into the town centre then close to our training centre and on to Berryfields.
If I drive into Swindon - our closest really big place - I'll probably end up waiting behind another 72 as it takes on passengers in Wroughton for the journey into the centre there.
Posted by gje at 01:03 PM
January 22, 2005
Lull
I'm writing today from my sister-in-law's house in Virginia, not too far from Washington DC. A trip with two full days here to visit relatives, to get a taste (especailly for Lisa, who originates from the USA) of American and international foods that are rarer that a unicorn in Melksham, and to catch up on what's in the bookstores on the computer shelves, in the computer stores, and on other bits and pieces.
Chance would be a fine thing. We flew in Thursday, with predictions of a storm from dawn on Saturday; yesterday was spent from first light right though to way past dark in a round of visiting - people, places, stores, and we got back late and tired. And, yes, all the important stuff complete.
When I looked out the window, dawn today, all was quiet. It's very cold, and the air is so dry that there's an electrostatic discharge every time the dog come up to say "hi". The road is just turning from the black of tarmacadam to a pure white as gentle flakes have started to settle. Chance for a really good family day here. Every cloud has a silver lining.
Posted by gje at 01:52 PM
January 21, 2005
Who am I
Do you know who I am? I'm Graham Ellis, author, and trainer on the Perl, PHP, Python (and other) courses run by Well House consultants.
If you were reading "The Horse's Mouth" from day 1, last August, you'll now this. If you're a customer you'll know it too. But we've been growing; these daily jottings are now syndictated, our printed Newsletter has a steadily increasing print run and there's a good proportion of readers who don't really know my background.
I was talking about this with Lisa earlier today and wondering "should I, like a magazine sometimes does, rework and recirculate the older articles for new readers". Now - Lisa comes from the magazine world and her answer wasn't no - it was "HELL NO". Recirculation shows a lack of good material and a "what do I write about now" issue which is far from the situation. She's right and I already have two good topics for every one I post.
"Should I re-introduce myself" is an excellent topic. Maybe, but not waste even one post exclusively on it. I'm just going to give you a clue as to where you can read more:
My personal home page is at http://www.grahamellis.co.uk
Well House Consultants courses are listed at http://www.wellho.net
I answer open source programming questions at http://www.opentalk.org.uk
and you can browse through the full history of this diary at http://www.wellho.net/horse
Posted by gje at 11:56 AM
January 20, 2005
MTBF of coffee machines
Updated - see end of story
REAL coffee. Mmmmmm. Ever since we started running courses here, we've provided customers with superb coffee. Grind the beans as required, brew the coffee with freshly heated pure water and supply a choice of sugars and sweeteners for those who want such things.
Our first coffee machine had a water capacity enough to make 4 mugs of coffee. Beans had to be replenished every 10 mugs or so, and the coffee grounds cleared out about once in every 7. The drip tray needed to be emptied every 12.
Ever come across MTBF - "Mean Time Between Failure" calculations? You take the reciprocal of the sum of the reciprocals of each component failure frequency to calculate your overall failure frequency. Of in our example:
earth-wind-and-fire:~ grahamellis$ perl
print 1/( 1/4 + 1/10 + 1/7 + 1/12 )
1.73553719008264
earth-wind-and-fire:~ grahamellis$
This coffee machine needed servicing more frequently than every two mugs
Our current coffee machine is a commercial machine "That looks like it's suitable for a small but classy cafe" said my son Chris when he visited last weekend and he's right - it came with a table showing numbers of cups of coffee served daily, and prices we could charge, to make certain amounts of money. That bit's irellevant to us since we don't charge customers for coffee - it's free and available whenever it's wanted - but it just shows you.
The capacities of the new machine are much higher, but perhaps not as high as you might think. But that give us a new opportunity. It's called "preventitive maintainance" in the jargon of this article and it means that we can service the coffee machine overnight, and between coffee breaks, and be reassured that it's not going to be forever demanding attention.
Updated with the opening of our new training centre at Well House Manor .... We've installed a new coffee machine that's plumbed in to the mains, that has its own drain, and dumps its grounds into an enormous bin. The coffee hoppers are large too so we're a step further improved!
But the MTBF calculation is an excellent example, and so I've written another example - this time for use on our Ruby course which shows how operator overloading can be done in that language. The source code of the example is available on line, of course!
Posted by gje at 03:27 AM
January 19, 2005
The elegance of Python
If I need a little utility and I'm running a Perl course, then I'll write it in Perl. Training in Tcl ... then that's the scripting language to use for other requirements that day (two languages in a day is too much). And of course if I'm running Python Programming it has to be .....
MY GOODNESS - what an elegant language Python is!
import os
have = os.listdir(".")
for fname in have:
print "-" * 30,fname
fh = open(fname,"r")
for cline in fh.xreadlines():
print cline,
That little script took all the examples I'd written into a directory and packaged them into a single file - bit of redirection and emailing, and all the trainees had a copy.
Posted by gje at 06:35 AM
Useful link: Python training
Your personal Google ranking
Writing a piece (elsewhere - I'm not just limited to "The Horse's Mouth") about job applications in the UK - and it struck me that in the high tech world that I inhabit, when we receive an interesting CV we have a habit of "Googling" the applicant. It's amazing what you can learn about the person behind the application sometimes, and gain a further insite as to how they may or may not fit into a team.
Suggestion - do yourself a favour if you're likely to be on the job market and check into your personal search engine presence. Some pages you can change straight away if they're not in keeping with the image you wish to present, other a bit less so. And you can really work on the positive, can't you?
Am I positive or negative about this? Primarily positive. As someone who has historically taken on a new team member from time to time, their on line presence gives me a rare insite as to whether they'll fit in with the team in the broader sense - it saves THEM finding themselves in the wrong job and it saves US having the wrong person. A real "win / win". You might argue whether it's politically correct to look at applicants outside their job skills - I don't know, but if you're going to argue that way, I'm going to worry as a potential employer that you'll lack flexibility as the job flexes, and I would have to consider carefully whether you would fit into a senior role at a small company, which is my experience area.
I'm happy with my private Google ranking. What can you learn from ...
Google
Yahoo
Ask Jeeves
Alexa
Alltheweb
Hotbot
Microsoft
AOL
Looksmart
Teoma
Gigablast
AltaVista
Lycos
There's one thing I should perhaps add here. We have a small and select team and we are NOT recruiting for the forseeable future. If you happen upon this Horse's Mouth please use the information as a thought-provoker, to help you better apply elsewhere to people who do have job openings.
Posted by gje at 06:05 AM
January 18, 2005
Maximum number of trainees on a course
If I run a course for you, a big part of the cost is my time and travel; the incremental cost of each trainee added is relatively small. This means that a course of 12 persons is lower cost that two courses for six each. Thus the question gets asked "how many trainees can you realistically take on a course". There's no single figure answer to this ...
For PUBLIC courses, where each individual may come from a different background and have different detailed goals (e.g. sure they all want to learn Perl, but Boris is going to use it to maintain system admin scripts and Doris to write new web applications), we limit bookings to just SEVEN trainees. That gives the tutor plenty of time to spend with everyone during practicals and helps to ensure that each person leaves having covered the bases that they need.
On a PRIVATE course where the trainees all work for the same organisation, the warning flags start showing when the client wants to exceed TEN trainees. If each of the ten has a different role and background within the organisation, and has different requirements of the subject being taught, then each additional trainee beyond the ten leads to a dilution of focus, and potentially to trainees having to wait for the tutor to assist with their issues during practicals.
On a PRIVATE course where the background and roles of the trainees is similar, I've happily taught a group of SIXTEEN trainees, and we were able to provide one computer per trainee for the course ... it all went very well. Note that the particular group that I describe knew each other, interacted between themselves excellently, and made my life easy. It would have been a different story had the organisation been factional and / or playing company politics.
There are occasions when I address a larger audience - but that's not a class or course, rather it's a series of lectures or talks. Such occasions do not include the provision of equipment and guided practicals. Without the change of pace that's natural during the lecture and practical sections of a regular course, both audience and lecturer would find it hard to concentrate beyond five hours of sessions on a single day.
Posted by gje at 07:04 AM
January 17, 2005
Skunk works
3 + 3 is 6 and 3 x 3 is 9. If you can get factors to multiply togther rather than just add, you can be on to a winner. This has been the case since time immemorial - if you double the dimensions of a ship, you increase 8 fold the internal volume, allowing for a more powerful engine, more fuel, more cargo space and more passenger comfort.
What I learn in my work I can use for related hobby / leisure activities, and what I learn in my activities outside of Well House Consultants' requirements I can use as appropriate within. We're actively encouraging of this - the term "skunk works project"s has been used, and thus the title of this piece. Helps us and our staff develop, though with clear notes that the result needs to be neutral of for our interests, and that it's clear that such projects are not done under the auspices of the company, but are independent. See our posting policy if you want to read further how we're encouraging this form of staff (and our own) development.
Posted by gje at 06:10 AM
January 16, 2005
The hunt for unique words
I understand that there are around 200000 different forenames in use in this country, of which a half (100000) apply to only one individual. OK - it's not a workday today, so am I purveying unusual facts as part of my relaxation? No - I'm getting me and you thinking.
Our web site is huge. There's over 5000 pages (and possible pages if you look at the information such as this that's fronted by a program) and the possibility for spelling errors is huge. For sure, there are certain common mistakes I make, but then there are other errors that occur once off and can remain for years until someone points them out. So does it really matter? Yes, it does; for every person who reports an error in a web page, there will be 10 others who will have noticed the error but not bothered to say anything and the error will reflect badly on the content provider and site owner in the eyes of these 10.
We've got the opportunity at the moment to proof read / spell check a great deal of material that's been generated in the last couple of years; with posts such as "the horse's mouth" some level of repetition and error is expected and accepted, but elsewhere that's not the case. How to proof read elsewhere efficiently?
Scheme:
a) We're going to re-use our search engine databases to find words that occur only once and are similar to other words on the site - an excellent way of highlighting potential problems. These words won't ALL be typos, but there's probably going to be quite a good hit rate
b) When we do find a typo, (through a route other than the uniqueness scheme of point (a) ), we're going to search our site and see if it occurs elsewhere so that we can fix repeating errors.
Posted by gje at 07:44 AM
January 15, 2005
Calling a spade a spade
The first "business" email I received this year was a threat - "We advise you to remove the following information from your website with immediate effect or we will take legal action". I was fascinated to get such an email even on a public holiday.
I'm careful - very careful - what I post here, elsewhere on this site, and on the web as a whole. But if I consider that something's poor value, I'll say so. If I feel that something's a scam, I'll say so. If I feel that people need warning about the downside of something, I'll post that warning here, but also encourage people to discuss the upside if they wish.
In this particular event, I did modify the page concerned as one particular sentence (critically quoted from the complainant's own web site) has caused offense, and I was able to leave the gist of my story in place; two days later, he wrote and thanked me for my co-operation. And yesterday, I received an unsolicited email thanking me for my information page. I seem to have acheived the impossible and kept both sides happy.
Links ...
Our Page and their page
Posted by gje at 04:35 PM
January 14, 2005
Blogs come of age
I've just been reading comments about people being sacked or sued for what they've written in their "blogs" - daily diaries.We should all be aware - if we write something we shouldn't, and put it up online even in a really obsure place, it will be found.
So when I write here, I need to review for copyright, libel, incitement, invasion of privacy, official secrets and decency to ensure I'm within the law of (well - is it the UK law where I'm posting from, or the USA law where the server is located). Then I need to ensure that I'm writing within what's allowed by my contract of employment, by the Acceptable User Policy of my ISP, and and other civil torts through which I'm limited. If it's part of a commercial operation (as this page is), I need to consider disability access. And it's quite a good idea for me to review my posts to ensure that they're not boring, repetitititive, smug, or showing me up as a complete wally.
Is there a complete source showing all these consideration? Probably not; I have attempted to put together pointers on these issues with regard to web site content, and that information is available for download as a pdf too.
Posted by gje at 06:46 AM
January 12, 2005
Extra chips
A long work day yesterday ... and we ended up getting a takeaway from "Tricia's Plaice" - our favourite chippie in Melksham. It's in an obscure suburb (can a town with an 18000 population have suburbs??) and I had to wait while they cooked fresh cod; I guess that they don't want to have too much stock lying around cooked at 9pm on a Tuesday.
Portions are always good, and I really don't mind the wait - I could always have phoned in the order if I wasn't prepared for it. But I'm always slightly amused to see that when they keep you waiting (a) they apologise for the wait [good business practice there, Tricia], and (b) the size of the portions of chips increases in proportion to the time taken.
Posted by gje at 06:23 AM
January 11, 2005
Worthwhile
I'm posting here very late in the day for me; just finished a truely delightful (but hard work) two days of MySQL - being used to help in the management of episodic data for a long term disease so that research scientists can glean as much as possible from history that will give them clues and help them to find treatments to retard and hopefully cure a dreadful affliction. Such days / sessions make me feel how really worthwhile our work is, even if it's "n" levels removed from the actual people who can be effected by the results. So - I'm not apologising for posting so late - I was proud to be coding by first light.
And .... just look at the wonder of what's being done with Open Source.
Posted by gje at 07:00 PM
January 10, 2005
Contrast - the storm and the calm.
There's a howling gale blowing outside our training room as I sit here this morning writing "The Horse's Mouth". Nothing new in that - indeed it seems that it's been pretty windy for a number of days now. Apart from the noise - the sound of raindrops lashing the windows in some of the stronger gusts - the inside of the room is remarkably unaffected; a still atmosphere, a steady light, and a U shaped long table with seven laptops plus a spare set out ready for a quiet course that starts today, followed by a full course on Wednesday to Friday.
A new noise - a crunching on the gravel drive, followed by a flapping of the letterbox, and I know the newspaper's arrived. Within the next few minutes, I expect further sound effects as our post arrives. The very fact that I hear (and comment) on these gentle sounds of morning shows you how - in general - it's very quiet here. Even the carpenter working on the extension which we need to allow us to claim back some "personal space" from the business can't be heard from here and the neighbours around here as so quiet that they might as well not be there.
Posted by gje at 07:31 AM
January 09, 2005
Data Mining
Our web site seems to be becoming more and more an interface to web based applications, and less and less a web site with "regular" .html pages. No bad thing, as it allows us to make easy changes to data in one place and have the change reflected elsewhere, and it also allows us to examine our visitor's request and provide information tailored to that request - for example, if someone links to a page that provides a training quote from a page that's talking about Python training, we can tune the results presented to talk about the cost of Python training specifically.
Posted by gje at 10:13 AM
January 07, 2005
Public courses in London
By upbringinging, I'm a Londoner - but we don't offer public courses in London. Why not?
London is an expensive location in which to have an office; were we to offer public courses there, the prices would have to be higher that we charge at Melksham in Wiltshire, and the facilities would have to be much more restricted. Unless we were very lucky indeed, I'm sure a London location would be much noisier, and I know that trainee's overnight costs to stay in the area would double or treble.
For the majority of our customers, our current location works very well indeed. For people who don't live in London, we're easy to get to with good public transport and road links, and there are plenty of places to stay at a reasonable price within a mile or two. For Londoners, it's a chance to get away to study, and to NOT have an hour's commute on each end of the day to dull their ability to concentrate on what is probably going to be quite an intensive course.
There are two situations where we're told that we don't get people's business because we don't have a London centre. The first of these is for London based trainees who need to get home by a specific time due to family responsibilities; I really feel for such people, but even if we had a London course on offer, chances are that they would be arriving late and/or leaving early anyway unless our venue happened to be exactly right. The second situation is for overseas visitors who want to combine a course with sightseeing and / or visiting friends and family who live in London. Our strong advise to such people is to separate the business and pleasure parts of their visit - to put aside the days of their course just for learning, and to spend a few other days just visiting.
I'm not saying "never", but I would need a lot of convincing to run public London courses. It seems to me that the main reasons that people ask for such courses are nothing to do with the course itself, and that in effect they're looking for a less good product at a higher price, primarily to provide them with something that suits them personally at the expense of a less good learning experience.
[As an aside - private courses at customer's offices in London are a different matter. We can and do provide such courses, and if you have 4 or more trainees needing the same course at the same time, it will work out lower cost over all. There are sample quotations for such courses on this site.]
Posted by gje at 08:55 AM
January 06, 2005
Skills and techniques of being a successful trainer
An Adult can listen for 90 minutes with 20 minutes retention. This means that it's important to change pace every 20 minutes.
You only remember 30% of what you learn after 24 hours without a review cycle. However, you can remember 80% of what you learn after 6 months with regular short reviews.
- Anon
- Noted from posters on the wall of a training room in which I was giving a private course.
I'm a professional teacher and an IT professional with practical experience of the subjects I teach. And I wouldn't have anyone without BOTH of the qualities listed giving our courses. I've seen just too many courses where the presenter can't answer questions, and too many courses where the presenter doesn't get through to his class to make the mistake of employing someone who's half qualified for the job, even though many others do.
But I mustn't be smug - so I'm always looking to improve and learn myself, and to look at reminders such as those quoted at the start of this posting. I'm also pround to have books on "professional training" subjects in our library (and, yes, I have read them) to give me reminders, pointers, new ideas.
Posted by gje at 05:52 AM
MySQL, Java, PHP and Linux - new technical articles
For the more technical reader, I've added the following articles to our Solution Centre in the last couple of weeks:
Complex joins (including left joins) in MySQL
When should you denormalize a database?
Formatting numbers in Java
Why partition a disc drive?
Writing a web site search that suggests alternative spellings
Posted by gje at 05:45 AM
Useful links: Linux training, PHP training, Java training
January 05, 2005
A pleasure to train
When we put together our 2005 schedule, we didn't put any courses on for this week (from 4th January). It's the very first few days back in the new year, and we've found historically that people want a few days in their office to get back into the swing of things before learning anew.
However - things have been busy, and the week got filled with training. It was a real pleasure to be running some more advanced MySQL training yesterday - looking at complex joins and remote access - with security issues such as firewalling, NATS and IP rewrite. Today will be a Java Utility Classes day, and tomorrow it's Tomcat.
Perhaps it's just me ... but it's a real pleasure to train people - to help them learn the strengths of using a web based PHP system v RMI to access remote databases, or to show them a simple solution to an issue and same them hours and days of work. Don't get me wrong - I enjoyed the Christmas break, but it's great to be back.
Posted by gje at 07:35 AM
January 04, 2005
Welcoming Leah Davies to our team
I'm delighted to welcome Leah Davies as a new member of our team here at Well House Consultants.
Open Source Applications are becoming an increasingly important part of many web sites. Packages like YaBB, Simple Machines SMB, PHPbb, OSCommerce, Zope, Plone and MoveableType are written in Perl, PHP or Python ... and there's a new breed of network and web site developer and administrator who looks after the developement installation, deployment and maintenance of sites. Leah is one of this new breed - she's been using some of these Open Source Applications at sites like The Knee Guru, UK Yankee and Clean it up, applying mods and amending code where necessary to provide additional features on the site. Leah also comes with experience of small business operation, from booking through payment collection, from sales and marketing through accounts and tax.
Well House Consultants is a small company, and we all do what needs to be done - none of us really has a job title that describes our role accuratley, and Leah will be no exception. Her work will be wideranging, from managing finances and files through the marketing and helping with web site updates. She'll also be answering training enquiries "turn and turn about" with Lisa and Graham, allowing us to respond even quicker and better than we've done to date.
Posted by gje at 08:30 AM
January 03, 2005
Upgrade to the Library
The term "an enabling upgrade" seems to be used whenever someone does a major overhaul on a piece of software, but doesn't add a lot of extra facilities ...
I was going to write this morning about the "enabling upgrade" that I've performed on our library pages, but it's turned into rather more - there are a number of new features included.
We now have some 530 Open Source books on our shelves - and you can search through them by subject, title, synopsis or author. The search algorithm is faster than it ever was, and suitable for easy expansion as we acquire more books through 2005 ...
Posted by gje at 10:53 AM
January 02, 2005
Acronyms
The question "What does Java stand for" is a familiar one in my mailbox ... in a world of acronyms, it seems that folks assume that any short computer words must be sets of initials.
Here are the origins (to the best of my knowledge) of the names of the subjects we teach.
| Perl | Practical Extraction and Reporting Language |
| Python | Naming derived from Monty Python's Flying Circus |
| PHP | Origin: Personal Home Pages Now: PHP Hypertext Protocol |
| Tcl | Tool Control Language |
| Tk | Toolkit |
| MySQL | My is the name of the daughter of the originator ... then Structured Query Language |
| Java | Just a name - said to have come from the fact that the team was sitting round looking for a new name for their Oak language, drinking Java coffee. |
| Linux | Linus Torvalds originates this Unix-like operating system |
Please let me know of any corrections - these things get confused in the mists of time ...
Posted by gje at 02:17 PM
January 01, 2005
Implementing an effective site search engine
Our web site started small - perhaps half a dozen pages about 10 years ago. Since then it's built up from 6 to 60 to 600 to (now) approaching 6000 pages as we've added extra services such as our solutions centre, our open source help forum and its archives, and the daily diary of which this page forms a part. Information about our courses is also very complete, and you'll find almost anything you want to know about Well House Consultants in our resource centre.
But how can we make it easy for you to find what you need? We try to ensure that no page is ever more than three clicks away, and a clear navigation system helps. But with the best will in the world, these principles that work well for a small site aren't so effective as it grows ... and we expect it to continue to grow.
When our web site size hit 60 pages, we added a simple search engine that went through the text of each page and let you look for search terms on the fly. It worked excellently, and it still worked well when the site reached 600 pages. By the time we were approaching 6000 pages, though, it was beginning to run out of steam; the server load was high (to the extent that it was timing out at busy times of day), and as parts of the web site data migrated from plain pages into MySQL databases, they were no longer found by the search mechanism.
In the past few days, I've updated the search facility on our website and it's now available through the search box that appears on virtually all of our pages - or try it here:
The new mechanism includes a tailored search to look through each of the areas of our site as relevant (and to eliminate as may repetitions as possible - for example between full and summary course page listings), and also searches the MySQL databases. Matches are sorted not only by relevance, but also by the area of the site in which the hit occurs; a truely tuned search engine. If you enter a search term that fails to match (or only matches one or two times), our engine will suggest alternative searches, in each case suggesting only words or terms that actually occur on the site. Phonetic matching helps to ensure that you'll be offered good alternative words even if you mis-spell your initial term, and the system even looks for two words in one in case you've run your search words together.
If you're looking to improve your own site search, there's some technical information available on how our new engine now works and on how we suggest alternative search terms. You can learn about the technoligies we use on our PHP course and our MySQL course; I present both of these personally and will be very happy to talk with you about searching.
Our new mechanism is some 200 times faster than the system it's replaced, and is extensible. It will see us through the way to 60000 pages and perhaps to 600,000.
Posted by gje at 08:52 AM