Blog

There was no blog in 2015 due to a sabbatical. They can't touch you for it.

Unlike every other weblog you ever saw, this one is in correct chronological order so you can read it the right way round.

DateSubject
26 Jan 2016Cookie crumbles
6 Feb 2016Fixed it
5 Mar 2016Queuing
12 Mar 2016Now you see it
17 Mar 2016Sort and sweet
2 May 2016Thistles
13 May 2016Unlucky
4 Aug 2016Driven by you
20 Aug 2016What is it?
10 Sep 2016Brought home

Cookie crumbles

We are supposed to inform you about our use of cookies but can't be doing with all that "click here to accept" nonsense. This is a technical explanation about how we use cookies on LPMCC.net for any geek who wants to know.

In case you are wondering. a cookie is a small piece of information saved on your computer that can be sent to the server when requesting a page. We do not read your cookies. Mainly because it isn't necessary.

LPMCC.net sets cookies so that each page knows when you first and recently visited LPMCC.net. These are used to set the NEW or RECENT menu list on the left of the page. It shows pages that have been added or changed since your last visit (NEW). If there are none it will default to the most recent week of new content (RECENT).

We also record other data on your computer so that LPMCC.net appears to remember some of your input.

  1. Rallies that you add to your list of events are saved and are also shown in the calendar.
  2. Badges that you collect in your own page. The list is used if you print a T-shirt transfer.
  3. The National Rally Matrix page remembers the route that you spend hours puzzling over.
  4. Minor memory tasks on the business cards page, our table top treasure hunt and so we don't keep asking you to once you have completed our annual questionnaire.

This data is called localStorage. It is persistent (just like me) which means it will still be there when you close your computer and come back later. Because it is not sent to and from our servers it is only available on your computer.

Another use of localStorage is to keep your notes in the Contact Centre.

The Contact Centre also makes use of the cookies that LPMCC.net sets. One is used as a unique identifier of your computer based on the first instant that you opened LPMCC.net all those years ago. If we have a back message for someone whose email we don't know, Contact Centre will look for a matching cookie and show a personal message on that computer only. We won't have a clue who it belongs to!

The Contact Centre system has been in place since the early days of LPMCC.net but we are currently trying to bring it to greater prominence. It can be slid out in various ways and the latest is by using a button towards the bottom of the left hand Links menu. It changes colour to draw your attention.

For a longer run-down of our Contact Centre we have added a page in the Help section.

By the way, the identifier for this computer is unavailable. Keep it secret. Keep it safe.

Fixed it

It wasn't broken but I fixed it.

Every page looks for the names of past members, highlights them and adds an information roll-over. Clever stuff that has worked faultlessly for years. I fixed that!

Not every page needs to be searched for past members. Loading the data and running the scripts is just a drain on resources. So 800 pages without members' names on them were stripped of the data and the script told to work (quickly) on an empty file. Except...

The rally section also looks for lost friends and needed that data. So I put that in the dummy file.

And some pages don't mention past members but they do count the numbers. They had to have all the data put back.

A waste of my time and two days of frustrating error messages for you. Sorry.

Google do some useful stuff that they make freely available. LPMCC.net fills its boots with the Google Mapping API. Plotting rallies past and future, mapping routes and marking all the pubs we've stopped at.

Cycle routes are traced using Google MyTracks App. Export the route trace as a CSV file. Works fine these past couple of years.

Thursday I fired up MyTracks to trace our ride and Google announced that MyTracks is being pulled at the end of April!

Had to search for a new app to do my route tracing. Grahame Billington uses MapMyRide and posts the results on Facebook. So I took a closer look at that. My word it is complicated. Tells me my calorie count, height above sea level, diet for the day, inside leg measurement and grannies latest knitting pattern.

Luckily it also tells me the route, after a fashion. In the past I've traced Grahame's mapped route but now I've found that the raw data can be exported for more precise editing. A button labelled TCX downloads the data as a ... er ... TCX file.

Map data is standardised in a multitude of formats. TCX and GPX are both XML files that I can access with a text editor and read using JavaScript. The KMZ format, beloved of Google, is a bit beyond my abilities.

Any-road-up, it meant an upset to my routine important route importing. I had to set too and rewrite the utility page that assists with that task. It is hidden away in the Admin pages of LPMCC.net.

It wasn't broke, but I had to fix it.

Queuing

Charlie Chaplin stands at the lectern to read the service and instinctively his foot feels for the perch of a bar rail. A lovely anachronistic subtlety lost on recent generations.

Buy your drink and then stand at the bar to talk and consume it. Other customers must jostle behind and to either side to be served. There is no queuing at a bar. Was a time I could stand behind patient customers, catch the eye of the bartender and be served first. These days I wave my halfcrown at the front and am ignored.

Queuing is thought to be an English institution. I am old enough to remember shuffling in serpentine queues round the Granby Halls for ration books. How did we managed to make enough munitions to win a war when so much time must have been wasted in those dreadful queues?

But not all queues are equal. The peculiarity of the fish'n'chip shop queue remains a mystery to many people who should know better. Are they all pretending it's the very first time they've been in a fish'n'chip shop?

The rules are ...

  1. Walk right into the shop and queue from the counter across the display of fish, sausages and fritters. That way you can see what is available.
  2. If, when you place your order, they are waiting for an item to come from the fryer, step back from the counter so the next order can be taken while you wait.
  3. If another customer enters the shop now, wave them past you to the real end of the queue that is further inside the shop.

It ain't rocket science, it's an English fish'n'chip shop!

Now you see it

This is a bit techie but if you are a script-bunny you may be interested in the JavaScript insight. It is mainly here as a note to self so I don't have to find it out again the hard way.
What else is a diary (blog) for?

HTML elements can be uniquely identified with an ID attribute: id="foobar". Now JavaScript can pick out that precise element and do its dirty work on it.

You can also give an element a name: name="foobar". There are some important differences between a name and an ID...

  • IDs are unique. Don't give more than one element the same ID.
  • Names usually apply to FORM elements and there can be any number of elements with the same name.

If you want to pick out an element by its ID you use document.getElementById("foobar"). You get just the one element.

If you want to pick out a set of elements by their (common) name you use document.getElementsByName("foobar"). You get all the elements as an array.

BUT...

That works OK if the elements are given their name in the HTML. If it is an element created by JavaScript with document.createElement("TAG"); then element.name="foobar"; does not register the name and it cannot be read ... except if it is a form element.

To give a freshly created non-form element a name that can be read it needs to be Christened using element.setAttribute("name","foobar");.

So now we both know.

Why did I need this piece of wisdom? Because Phil the Spill is sending so many photos that demand the figleaf treatment that I had to come up with a pretty bulletproof system that will attach figleaves to multiple photos shown in a page at random.

First example is Phil's 1983 R-Souls report.

Sort and sweet

My first encounter with a computer was a visit to Manchester in about 1960 when we punched our program onto tapes and peered through a window at the valves flickering in an air-conditioned room.

Then there was a twenty year gap.

At Meriden the prototype electric starter gear train didn't outlive the first Bonneville kickback so I was asked to redesign it as a stub tooth version. I was frustrated not to be able to calculate the same answer twice in a row. An ex-Meriden man fed it into the computer at Massey Ferguson.

About a year later I was analysing wind induced vibrations on electrical transmission lines using iterative maths and thought one of these new fangled ZX80s might make the process less time consuming and error prone. The boss put a ZX80 on my desk for me to use. After reading the instructions several times I still couldn't turn the thing on so I went for lunch. When I returned the boss's 14 year old son was playing a game on the ZX80 that he had written in the intervening hour.

At RoSPA our Motorcycle Training team were the first to have a computer, a Sirius running WordStar, to write up a training manual. After about three years of work I was the only one left to sit in the windowless room and key in the text. First day I tried the computer said "No more room on disk" so I took out the 5½ floppy to put a new one in and promptly corrupted 3 year's work. After several days keeping this catastrophe to myself I confessed it to a colleague who reached up on a shelf for the "backup" disk made by the previous operator. You'd think that should have taught me a lesson...

So I lashed out on a Speccy to find out what computing was all about.

By the mid 1980's I was writing programs in BASIC. A simple "database" program kept all the training scheme details readily available. Sometimes the data needed to be sorted by a different field. It isn't difficult to write a simple sorting algorithm; compare each value in the list with the one next to it and whichever is larger move up the list until there are no more changes made. When I ran this Bubble Sort I thought the Speccy had crashed. The humble Sinclair Spectrum operated on no more than 48Kbytes of memory but it still had to be run overnight to sort the data!

So I researched better sorting algorithms and discovered Shell Sort. This brought sorting my data from an overnight sensation to a one hour wonder.

Very soon I was grappling with Zilog Z80 machine code (and writing it the hard way until I found a decent Assembler). First priority was to write a machine code version of the (bubble) sort routine. The first time I ran this on my data nothing appeared to happen. But when I looked, the data was sorted! That fast!

Into the 1990s and I was using IBM PCs at work. I wrote a program to find where clusters of road accidents were occurring. This used OS Grid Refs of thousands of injury accidents across the county, plotted to the closest 10 metres. The data needed to be sorted. Using MSBasic. The thing about a bubble sort is that doubling the length of data squares the time it takes to sort. (We could be in for another all-nighter) Conversely, halving the data reduces the time to a quarter. I subdivided the data into 10km squares which made the sort about 500 times faster.

Come the new millennium I was beginning to put together LPMCC.net which uses JavaScript as a programming language. The beauty is that JavaScript has its own built in function for sorting text lists - sort(). My days and nights spent trying to speed up data sorting were over.

I have been clearing thistles out of our loft. You know the kind of thistles I mean. The type that you think "Thistle come in handy one day".

In the pages of an old computer book was a card with the dozen lines of a BASIC Shell sort. It should have gone in the bin but I thought "Thistle be interesting..."

So I sat at my computer and, with a bit of help from the interweb, converted the Shell sort to JavaScript to try it against the native sort() function. Just for fun because I didn't think it was really necessary.

Didn't think: those words will be on my gravestone and too soon unless I mend my ways!

The results were a surprise. The Shell sort is almost as fast as the native sort() on all modern browsers and recent PCs. On Google Chrome it actually comes in slightly faster than sort().

Test it for yourself below. This works on a 100,000 long random list. You can choose whether to test the sort as text or as real numbers. I've included a bubble sort as a salutary warning. Do not click the bubble sort button if you are trying it with Internet Explorer on a Windows XP computer - it doesn't like it.

The time in milliseconds is shown under the lists.

Fastest result for numbers was zero (less than one millisecond) using the Chrome browser on an old 1.8GHz Windows Blister laptop. This was faster than Chrome on a dual-core 3.4GHz Windows Hate computer.

The Windows 8.1 machine using native sort() in Internet Explorer 11 was the fastest for text, finishing in 4 milliseconds (the same for numbers but Firefox was twice as fast).

If you are using other browsers and different operating systems let us know your results.

Thistles

I mentioned thistles the other month. When I walk round our local car boot sale I used to look at the rubbish on the stalls then think "Thistle come in handy".

Then I'd remember that I already have one in the loft garage shed somewhere.

However, since recent clearouts I now look at the items and wonder if they were mine once.

There are a lot of thistles on the internet but you can't put those in a box at the back of the garage. They need to be bookmarked or made a note of somewhere. And then you need to index your notes and back them up and check they remain valid and generally lose track. Before you know it you have a computer full of thistles.

There is more to LPMCC.net than the pages that are indexed in the menus. Thistles are kept on-line in a documents folder that is a kind of hidden section of the website. It is where Hans Veenendaal's PDF rally list is downloaded from.

There are a few other thistles, obscure odds and ends that might come in handy some time maybe.

Take a look at the thistles there at the moment.

Let me have your thistles and I'll add them to the list.

Unlucky

I was posting Phil Drackley's Unlucky For Some Rally report when the telephone rang.

Caller display said INTERNATIONAL and because I have several friends abroad I picked up. There was a sweet young Asian sounding lady on the line who asked if I was the main user of the computer.

When I confirmed that I was indeed the main user she gave me the devastating news that over the past month they had been receiving reports that my computer has many faults!

"Oh, this must be my unlucky day."

The young lady asked me to find a pen and paper to write down an identification number. I put the phone on speaker and took out a pencil and notepad.

"Do you have the pen and paper? OK, please write the following - Oh Oh"

"Oh Oh - is that Oh as in letter Oh or zero?"

"It is zero. I'll start again. Zero Zero."

"Zero Zero."

"C for Charlie."

"C for Charlie. Is that capital c or small c?"

"It doesn't matter, just C. Oh - I mean Zero."

"Zero."

"Four ... F for father ... D for delta, seven ... D for delta ... "

This went on at length with me repeating the code back, getting confused, starting from the beginning, missing bits out. I was really having some senior moments.

We eventually got it all down satisfactorily and moved to the next step.

"Is your computer on?"

"Not at the moment." I lied shamefully.

"Please turn it on now." the young lady instructed.

"OK, it's starting. It's an old computer and takes a little while." Long pause while I did a bit more work on Phil's report. Keyboard sounds from my end of the line and noise of a busy office call centre from the other end.

"Is it running yet?"

"Just downloading mail and other start up stuff. Yes, it's running ok now."

"Look at the bottom left of your keyboard. Do you see a key with C T R L on it? ... And the key next to that? ... What is it?"

"It's the Windows Key!" I replied proudly.

"Hold that down and then press R. Release them both together."

I accomplished that with the skill of an old pro. "OK, I now have a dialog titled Run."

"And do you see the word Open? ... And next to it an input box ... is it empty? ... OK, type in it the following - C for Charlie ... M for Mother ... D for Delta ... Now on the bottom line do you see OK Cancel Browse? .. Press OK."

As the DOS system opened "OK, Now I have a window with a black background."

"Do you see a line that begins C:Users? I want you to type in there what I tell you ... A for Apple, S for Sugar, S for Sugar, Oh for Orange, C for Charlie."

There followed a great deal of confusion "Was that two Fs? ... Are you sure it is an Oh and not a zero? ..."

"Not F, S for Sugar ... O for Orange ..."

Helpfully I suggested "I'll tell you what I have typed so far. Do you have a pen and paper there? You write it down and see what it says."

"Alpha Sierra Sierra Oscar Lima Echo"

Give the young lady her due, she did chuckle before slamming the phone down.

Just an unlucky day I guess.

The young lady showed great patience and understanding in coaxing me to fall for her ploy to install malware. We have a few past members who suffer severly from depression and, although we try our best, they need professional help which is hard to provide without their acceptance. If only there were the same rewards for patience and understanding applied for the benefit of our friends as are obviously accrued by criminals who use those talents to take advantage.

Driven by you

Almost all content on LPMCC.net comes from readers. Admittedly it is often down to just a handful of regulars who can string a few words together and know how to attach photos to emails. The result is content that is as interesting to me as it is to anyone else who uses the site.

What you may not appreciate is that most of the gizmos and systems developed on the website also come from readers. Maybe not the tekky nuts and bolts, but certainly the need and aspiration.

Last week Hans Veenendaal passed on messages he had received from continental riders who were having problems finding our European Rally List. It was half a language problem - a "rally" is thought to be a car chase through forest tracks - and half just the plain cussedness of finding one page among 1600 on LPMCC.net.

Adding the colloquial word for "motorcycle rally" in various European languages was quite easy. Making the page a bit more prominent involved putting it up front on the Home Page. That was fixed temporarily by the Contact Centre sliding out with a link to the European Rally/Treffen List (with an assortment of eye-catching words).

A better solution has now been added. It takes the form of a scrolling banner advert for various pages on LPMCC.net. They include, first and foremost, the Rally/Treffen List followed by our next event, most recent page, a note about Skype Night (at an appropriate time) plus a number of other pages that we wish to promote. This banner has now been added to almost all of the main website navigation and index pages.

The banner uses conventional metaphors including visible scrolling, the ability to stop and control the changes, indicators showing which page of the sequence is showing and they are linked to the appropriate pages when clicked. Each banner is linked to no more than five other pages, some at random.

Honest John made contact to request a couple of photos from the website. Honest John is a DJ for a number of rallies.

On most websites it is possible to right click a photo and "save as". Not so LPMCC.net. Against good advice I've hijacked the right click options to present alternative choices in a pop-up context menu. I don't want you to use the piddly 540pixel by 405pixel highly compressed photos that are used on the website. I make them as small as is decent to save opening time and your bandwidth. If you want a photo, use the Contact Centre to ask for it and I'll send you a scan or original digital photo that is usually much bigger and less compressed that the stuff on the website. Often several megabytes in size.

The problem can be identifying which photo you want. Especially on pages where the photos are a subset of a bigger collection shown at random. It isn't just a case of counting photos from the top of the page.

So I had to come up with a better (and easier) system of making your requests.

The National Road Rally riders passing through Kegworth have a special link on their gallery page to put the file name straight into Contact Centre Notes. We've now added a similarly easy method for other pages of photos.

Where more photos can be scrolled left or right using arrows on the picture edges you simply DOUBLE click the photo that you want. The file name is added to the Contact Centre Notes and it opens for you to add your email address. Or carry on adding more photos.

When the photos are displayed as clickable thumbnail sets you need to click the appropriate thumbnail and enlarge it. While it is still open, scroll to the bottom of the page and there is a button marked "Get Big Picture". Guess what that does.

LPMCC.net development is a continuous evolution. Tell us what you want (through the Contact Centre) and it inspires us to improve your experience.

What is it?

More clearing out of old stuff from the garage and attic. Turned up this item, made from a piece of ¼ inch thick bar. Rust isn't a detriment. Belonged to my dad.

If you know what it is for - click and send your guess on the comment form below. I'll list anyone who gets it right.

Clue: My dad was a painter and decorator.

Brought home

Sometimes my mobile phone rings while I'm driving. It means I have to find a safe parking place where I can turn off the engine and call back. So I bought a Hands Free device.

When I next received a call I could answer and carry on driving, except ...

... I can't walk and chew gum.

So, what with trying to drive in traffic, struggling to recognise the voice, hear what was being said, understand the context of the conversation, formulate a response ... things were falling off the edge. It brought it home to me.

From now on my Hands Free kit is going back in the box and the phone will be turned OFF while driving.

Despite dire warnings and terrible accidents, many people seem to think using a mobile-phone/tablet/in-car-entertainment-system while driving is OK. Maybe we should all give a hoot. Problem is that driving needs proper attention to the road ahead so peering at drivers to see if they are on the phone defeats the objective. However there are times when your attention is forcefully drawn to the driver by their erratic behaviour, often failing to keep in their lane and wandering across the centre line.

For a motorcyclist an oncoming vehicle on the wrong side of the road can be lethal. If you swerve onto the nearside verge you could hit roadside furniture while the oncoming driver just pulls back and carries on. Swerving to the right would put you firmly in the wrong. All you can do is an emergency stop and sound your horn.

The Rule of the Road (in this country) is Drive on the Left. Whenever a vehicle goes over the centre line, for whatever reason, we should warn the oblivious driver of our presence using the device that is provided for that purpose. That just might save someone from being brought home in a box.