This section is not normally visible or accessible using the usual site navigation.

Its purpose is to automate the production of data used on and to run checks. Wherever possible these tasks are automated to make them simple and foolproof so that they are run regularly, at the appropriate time, and without human error.

If a browser does not support the page scripts, its link is disabled.

Contents of this section may not be available on-line.

The index will appear here unless there is a fault in a startup function, or a duff date in the New and Updated localStorage soon ... ... ... ...

When pages are updated

What pages are new today?

Standard Files: sitemap.xls and mobile/index.htm are complete files. rss.xls, home_map.htm and news_index.htm are partial data files for insertion.

Validate Data Comprehensive checks of menu_db, reunions_db, badge_db & extra_db, members_db and rallies_16. Run dev_datacheck.htm as an independent diagnostic if standard pages fail to display.

Close the job then FTP this list to the web server.

Charts are now included in Statistics, imported into an iframe.

Special page data

Clean Text removes and replaces characters that do not encode properly.

Paste text into here to create web friendly version.

Removes unwanted spaces.
Replaces all quote marks by codes.
Spaces punctuation.
Capitalises I.
Converts well known initials to capitals.
Replaces foreign letters by Latin alphabet.

Add Star Ratings after copying and renaming star.eml files into admin/stars and running 1st_run.bat to rename as .txt files and create a list.
Reads data imported as text files in an iframe and therefore need to be from a server.

Rally Locations Geocodes Hans Veenendaal's Excel data for the European rallies to be plotted.

  1. Download PDF and spreadsheet from Dropbox - Rallies to the Downloads folder.
  2. Transfer files from Downloads to Ben\Rally Import folder.
  3. Rename the PDF file 2019.pdf and transfer to replacing the existing file.
  4. Update standard.js with file size and date.
  5. Delete any old XLS files in Rally Imports.
  6. Open the new imported spreadsheet file.
    1. Scroll to the bottom for changes and cancellations and alter rally.xls accordingly.
      • Change whatever is changed and add a note to the change column. Add date with ctrl: enter f2 , [change code]
      • Move entries that need a new GeoCode to the bottom of the list and delete the empty row.
      • Remove latest duplicate row and add the reference number of this and the extant entry to the duplicate list in rallies2016.js
    2. Sort on Postcode to remove blank lines.
    3. Show hidden columns and delete them. Look for one between rally details and URL.
    4. Start quicky.ahk (AutoHotKey on f1)
      • Find a space between location and rally in column D and press f1 to put a ~ (tilde) between them and move to the next row.
      • Continue down the whole list. Also look for apostophe s in plurals and ... for missing location details.
    5. Start dev_reformat.htm.
      • Paste whole XLS datainto the text area and press CHECK button to reformat for GeoCoding.
      • Check there are no extra lines, errors or queries ( ??? ).
      • Paste the sorted file into GeoCode page.
      • Paste the Country tally data into rallies.js.
  7. Start rally geocode page by clicking Geocode link.
    • Copy the new data and paste into Rally Geocode text area.
    • Include any lines of events that need re coding.
    • Press GEOCODE button.
  8. Copy results back into the rallies.xls Current tab page.
    1. Sort new data on column J so that any uncoded or wrongly coded lines are together and in the correct order.
    2. Reprocess uncoded rallies through the Geocode page several iterations until no more can be coded.
    3. Click the country links beneath the buttons. These open geocode data in the next browser tab.
      • Look for geometry location data and copy both latitude and longitude lines to a text editor.
      • Edit the URL (eg remove postcode) if the geocode fails.
      • Edit the resulting lat long pairs with tabs between lat and long.
      • Paste the resulting list into the area of columns H and I
      • Check the resulting data by pasting back into Rally Geocode and pressing the INTEGRITY button to see they are within the expected country.
      • Delete the error numbers from column J
    4. Copy the next reference number from cell J1 to column J on the first new line using ctrl/shift/v
    5. Put todays date in column K [ctrl+; - check this is correct"].
    6. Add formula =1+↑ in column J of all the other lines of new data and =↑ in column K.
    7. Copy all the numbers in column J and K and paste them back as numbers using ctrl/shift/v
    8. Remove any remaining blank lines and sort the whole page on Start, End, Postcode.
  9. Copy the data into Editpad text editor.
    1. Find all new lines and replace with ", newline "
    2. Top and Tail so the file starts and ends with "quotes.
    3. Copy this file and replace rallie_16 data in rallies.js
    4. Update the date in the up_date variable.
  10. Validate Data
    • Correct any errors in rallies.xls AND rallies.js
  11. Save rallies.xls.
  12. Open data.js, change the date and add the new total of rallies.
  13. Open Rally List and check it is OK.
  14. Create a new sitemap, mobile index and RSS file. Only the top of the RSS changes and delete earlier entries at the bottom of the file.
  15. Run Backup (bat file) and then open transfer.txt.
  16. Open WS FTP lite and upload all the changed files to the server.

Rally List Hard codes rally list data from current rallies.js file into format for pasting into rally_links.htm.

Author's latest page. Click this to trace the most recent report from any author.

Rear Observation Creates rear_obs array for use in rearobs.js either from email forms or by manual input (from paper forms!)

New people and authors Produce data for people.js > author_data[ ] & people_data[ ]. Also checks when people become authors.

News process checklist. Keep open while doing News Update.

Pallet of preferred website colours.

Photo Processing

Copy incoming photos to the admin/photos folder, run dirn.bat then ...

Inspect and Deselect: Choose the photos that can be deleted.

Album Numbers: If creating a new album page, choose an available number from this list.

Rename: Three renaming batch files. By date of photo, by example text and thumbnails for a selected recent page.

Choose Photos: Select photos in required order and groups. Indicates aspect ratios.

Update the photo section sitemap by unremming photoSiteMap() function call in eggstra() function of data.js and then open the page for the XML to appear in the Contact Centre. Add the NEW data to the TOP of the appropriate sitemap file. Then open Image Sitemap page to remove any duplicates. Check XML syntax.

Check Thumbnails: For existance and correct 125x94 dimensions based on menu_db listing.

OpenGraph Image: Create 600x315 if there are enough thumbnails.

Incoming Documents photos and badges as they arrive and are prepared for later addition to the website. The documentation files are gallery/incoming.js and rallies/incoming.js.

Check of next BUT ONE event promo photo.

Badge Work

Additions per week as a shaded table to indicate how many were added.

Prioritise non-rally badges with first letters least represented so far.

Rename batch file Detects foreign characters first !
Create a list.txt of badges using dirn.bat, then run this.
Paste result into renr.bat and original_names.js.
Final badge names need checking.

Perspective Correction For photos taken from an angle. Reduce distortion. Images need further work in PaintShopPro. Capture image with WinKey+Shift+S.
Find existing sizes and locations of the website .GIF files.

Show and measure similar badges by comparing badge_db[ ] badge names with original_name.js > btitle[ ] data.

Badge data Use selected unused badges list from the above program to create data lines for badge_db[ ], extra_db[ ], patch_db[ ] and card_db[ ].

Code Subtypes Code cloth badges (patches), machine badges and stickers with subtypes and replace entries in patch_db[ ].

Count Subtypes Count cloth badge (patch), machine badge and sticker subtypes and find the maximum count.

Badge counts Find the latest totals from badge_db[ ], extra_db[ ], patch_db[ ] and card_db[ ].

Update Badge Sitemap Paste the result into root/sitemap_badges.xml.
Then open Photos Sitemap page to remove any duplicates.

Rally Reports with no badges Writes a badge_db entry when there is a report without a badge. These must be added at the top of the badge_db letter group and NOT sorted and indexed.
Missing Rally Reports List rally reports that are NOT in BOTH menu_db AND badge_db.

Patch class promo pictures Double size promo pictures of latest and embargoed patches, machine badges etc.

Promo & Thumbs For rally reports without photos.

Promo Badges Create a 500x200 Promo banner after adding new badges.

Thumbnails Create thumbnails from badges for rallies that do not have photos.

All Badges Hard HTML code with ALL badges with title and sender in the ALT attribute. Code is transferred to motorcycle_rally_badges.htm. Also update menu_db.

Resize badges based on the pixel size of included scales or coins. Examples of existing badges can be shown.

Badges Checks which badges are anonymous and which badges are not included in badges.js. Before running this page use the badge.bat file to create a badge.txt list of the badges in the rallies/gif folder.

Cycling Tasks

Route Plotting Geocodes polylines on a map and measures approx mileage. Used in cycling.js > fpc[ ].

Cycling Miles Creates data lines for miles from Google Keep list. Used in cycling.js > cycle_db[ ].
Adjust existing data lines for miles above minimum.

Rupert Rhymes Add rhyme to box to create Rupert banner.

WhatsApp reformat Paste in copy of WhatsApp messages to reformat into data suitable for smsnn.js file.

Review Lunches Paste ALL review emails into the reviews folder, click 1st_run.bat to rename and create list, then run this program. Output average values into pubs.js.

Regular administration

People Links Creates hard HTML coded links for everyone mentioned on for home_everyone.htm and all past members mentioned for members_everyone.htm.
[Update January.]

All Badges Hard HTML code with ALL badges with title and sender in the ALT attribute. Code is transferred to motorcycle_rally_badges.htm. Also update menu_db and admin_sitemap.htm.
[Update February.]

Links listed with page address. Keep data in rally_links.xls and paste into external.js. Then use dev_links.htm in IE to find which links no longer work.
[Check March.]

Photographs listed with page and dimensions for gallery data JS files.
[Check April.]

Messages Shows the current messages contained in back_message in data.js shown in the Message Centre and the date of the cookie ID.

Page information Displays information for a page based on the page content and menu_db. Use to cross check consistency.

External services & checks

Closure Compiler Javascript compressor by Google to reduce the download time of common.js etc

RSS Validator to check the RSS conforms to standards.

Check website security. Look for malware, blacklisting and vulnerabilities.

Convert map coordinates Convert between Latitude/Longitude & OS National Grid Reference points.

Changes to common.js

Show/hide all changes.


New and updated

Insert this table into stats.js > history_db

Star ratings are added to history_db by hand from email count.

This table is location dependant and is only correct when regularly viewed!

These figures are graphed on the Statistics page.



Local Storage



This browser in this environment CANNOT access localStorage. Some site features are therefore disabled.

Test Area

all rally badges  


Why are police officers so strong?

Because they hold up traffic.

What did the grape do when it got stepped on? It gave out a little wine.

Example of Scalable Vector Graphics - no pixelation at any size!


Dream Machine

Two test links...
a good one
and a a bad one.