Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
For 2021 - online Python 3 training - see ((here)).

Our plans were to retire in summer 2020 and see the world, but Coronavirus has lead us into a lot of lockdown programming in Python 3 and PHP 7.
We can now offer tailored online training - small groups, real tutors - works really well for groups of 4 to 14 delegates. Anywhere in the world; course language English.

Please ask about private 'maintenance' training for Python 2, Tcl, Perl, PHP, Lua, etc.
Backups, Codebase, Strategy and more - dealing with forum incidents

I've spent much of this evening dealing with an "incident" on our First Great Western Coffee Shop forum, in which a member ran a script on his own computer, from his own forum account, which trashed all of his posts. Well - not exactly all of his posts as it was "a bit broken", but still enough to leave significant gaps in previously-excellent resource threads which discussed and explained various railway issues from track safety to the holding up of connecting trains when incoming connections are late through to the unique identifiers which are applied to each train (headcodes / 4 character codes used in signal boxes / something called RSIDs). The incident has wasted a lot of my time - but it's also provided a useful test and check of our moderation and admin systems in real life, for which I'm grateful. Some lessons / comments that you might like to consider if you're running such a forum - or indeed any user-contributed resource - or indeed any website with scripts.

1. Backups. THESE ARE IMPORTANT. Our server takes a regular copy of the data that changes frequently (i.e. user contributions). In addition to a download of the web site and its data on a cycle, we take intermediate copies that stay on the server. Not quite a transaction log that we can roll back, but we've still got a series of very recent snapshots! And it's important that the backups can be restored, and / or data selectively extracted from them as necessary. Not only do backups have to be taken, but they also have to be checked for fintess for purpose and that purpose is to be able to put things right using them in the event of an incident!

2. Code. I had to selectively untrash around 150 posts, and at my first experiment I ended up with a few <br /> structures and similar displayed on the forum. And that was just a single post. Keen volunteers were available to hand-correct the remaining issues, but the design aspects of my learning to program training courses reminds delegates that it's usually cheaper to develop code well than to have to make heavy maintainance or do other coding later, but that other coding later is in turn much quicker and cheaper that having to do a lot of work on the underlying data. And so it proved - all 150 posts were untrashed in just under an hour via code / a batch process - including writing the code - whereas would have taken all night by going at the data.

3. Strategy. We have an overview / strategy for the site, and systems in place so we know where we're headed, and we can work out the logical and obvious way when an unexpected incident occurs. Much better than having to start thinking "what do we do now?" too often.

4. Team. The incident highlighted the strength of the support team (admin, moderation and regular members too). Without the support of all of these, the job could be much harder (if you get a bunch of mavericks rather than a lone wolf ...). And keep the team - the WHOLE team - informed as you work on the issues. A banner or post admitting problems may look bad to new, casual users, but it's only temporary, helps re-assure regulars, and avoids to omany duplicated reportings of the problem - like that ble and white "Police aware" tape you sometimes see on a vehicle at the roadside.

5. Actions. As I've seen before in these circumstances, you can expect to get an email that seeks to explain the activities and the reasons behind them. Actions, though, speak louder than words, and the victims of the actions are not only the one or two people who have upset the member into triggering the script, but also all the other contributors to the damaged threads, and the people who read them. Half a dozen people - perhaps - had done something, made some little comment that helped spark the incident. But there were 726 unique visitors to the site during the one day alone (true visitors / Google Analytic numbers) all of whom are potential victims.

6. Patterns. Look for patterns in what's happening and look for the begnign steady state. If multiple people have issues with the same post, then look to that post as the cause of problems. But if a single person has problems with lots of posts and threads, by numerouse people and some going back years, then look to that person as the common element when you decide on how to handle the situation.

The time to look through and consider this list above is when you don't have ongoing issues. So it's possibly a bad time for me to be writing and posting this. However, the above are generallities that have stood us in good stead, and should also stand others in good stead. You can't prevent any incident happening, but you can ensure that the waves calm quickly and you're back to a smooth sea again.
(written 2013-03-03, updated 2013-03-04)

Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
G903 - Well House Consultants - Running and moderating forums and social media sites
  [22] Falling out over the silliest things - (2004-08-21)
  [29] Silence is Golden - (2004-08-26)
  [115] Expiration dates or times on web pages - (2004-11-12)
  [130] Spelling and grammar - (2004-11-25)
  [204] The confidence to allow public comments - (2005-02-06)
  [231] Feedback as lifeblood - (2005-02-28)
  [248] Use me, but use me effectively - (2005-03-16)
  [424] How not to run a forum - (2005-08-24)
  [516] Open source questions? Anyone can ask. - (2005-12-03)
  [651] Please Register with Opentalk - but just once! - (2006-03-19)
  [806] Check your user is human. Have him retype a word in a graphic - (2006-07-17)
  [828] Freedom of speech and freedom to post - (2006-08-10)
  [841] Forum help - a push in the right direction - (2006-08-21)
  [919] Freedom for X is denial of privacy for Y - (2006-11-09)
  [923] Why shouldn't I spam? - (2006-11-13)
  [948] Running an on line campaign - (2006-11-27)
  [1088] Why use BBC code not HTML? - (2007-02-21)
  [1190] Save the Forum - A regular clean sweep - (2007-05-17)
  [1362] No Thank You - (2007-09-23)
  [1472] The Horse goes on and on - (2007-12-15)
  [1485] Copyright and theft of images, bandwidth and members. - (2007-12-26)
  [1523] Ive just received an email from myself. Should I be worried? - (2008-01-29)
  [1532] Comment spam blocked. Please comment via Forums - (2008-02-05)
  [1539] A forum is not always the best vehicle - (2008-02-14)
  [1563] Guidlines for posting on a forum - (2008-03-04)
  [1569] I dont care - goodbye - (2008-03-09)
  [1578] Please don't shout at me! - (2008-03-16)
  [1595] First Great Western Weekend - (2008-03-30)
  [1678] Software - changes and delays. But courses must run on time! - (2008-06-15)
  [1759] While the world sleeps ... - (2008-08-19)
  [1923] Making it all worthwhile - (2008-12-04)
  [1972] Pettifog and forum boards away from public view - (2009-01-03)
  [2103] Ask the Tutor - Open Source forum - (2009-03-25)
  [2116] Why do we delay new forum members through authorisation? - (2009-04-03)
  [2156] Stopping forum spam - control of the signup process - (2009-05-04)
  [2162] Admins thoughts on banning a member from a forum - (2009-05-09)
  [2177] Preventing forum spam - checks at sign up - (2009-05-12)
  [2254] Forum membership - a privilege not a right - (2009-06-22)
  [2386] Computing under the influence of alcohol - (2009-08-29)
  [2526] A reluctance to move from old shoes to new - (2009-12-05)
  [2527] Flying tonight - (2009-12-05)
  [2569] How to run a successful online poll / petition / survey / consultation - (2010-01-10)
  [2781] The 500 pound question to get you started - (2010-05-26)
  [2820] Netiquette for forum newcomers - (2010-06-20)
  [3479] Practical Extraction and Reporting - using Python and Extreme Programming - (2011-10-14)
  [3910] Identifying your real customers and keeping them well informed fast - (2012-11-02)
  [4017] Acceptable User Policy / vexatious interacter - (2013-02-24)
  [4065] Handling requests to a forum - the background process - (2013-04-17)
  [4234] Change to Libel and Defamation laws from 1st January 2014 - (2013-12-31)
  [4239] Facebook marketing - early experiences - (2014-01-19)
  [4283] Can a legitimate forum post become illegal a year later? - (2014-07-11)
  [4307] Identifying and clearing denial of service attacks on your Apache server - (2014-09-27)
  [4315] Welcoming genuine forum posters quickly - but turning away off topic advertisers - (2014-11-16)
  [4403] The unbalanced relationship between customer and provider - (2015-01-21)
  [4492] Almost so wrong, but perhaps it's right for some? - (2015-05-11)

Back to
SQL databases from Python - an SQLite example
Previous and next
Horse's mouth home
Forward to
The coffee of the Stars comes to Melksham
Some other Articles
Exception, Lambda, Generator, Slice, Dict - examples in one Python program
Really Simple Class and Inheritance example in Python
Collections in Python - list tuple dict and string.
The coffee of the Stars comes to Melksham
Backups, Codebase, Strategy and more - dealing with forum incidents
SQL databases from Python - an SQLite example
Melksham to Chippenham (Station) bus services - times and routes
A request for all of Melksham transport groups to work integrated
Spike solution, refactored and reusable, Python - Example
Melksham Community - Annual Report / MCAP
4759 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 at 50 posts per page

This is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - the diary and writings of Graham Ellis. Every attempt was made to provide current information at the time the page was written, but things do move forward in our business - new software releases, price changes, new techniques. Please check back via our main site for current courses, prices, versions, etc - any mention of a price in "The Horse's Mouth" cannot be taken as an offer to supply at that price.

Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2022: 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/4025_Bac ... dents.html • PAGE BUILT: Sun Oct 11 16:07:41 2020 • BUILD SYSTEM: JelliaJamb