That horrible rubbery plastic coating that turns sticky

 I hate that horrible rubbery plastic coating, that they sometimes put on small electronic devices, that turns sticky after a year or three .  If I want to keep using the device, I have to remove the coating which has turned sticky, which is a major undertaking.

To clean the rubbery coating I need to use eucalyptus oil, ti tree oil, citrus oil, alcohol, propyl alcohol or a mixture of one or two of them and some old cloth.  The process is messy and time consuming.

Just stop it. 


Browsing slightly more safely and privately

Companies and governments glean massive amounts of data from users on the web.  This data gets to huge data warehouses where it's matched together and used by many companies and not for your benefit.  Part of the issues are the secrecy and lack of oversight and control by the users themselves.  Often you are paying in multiple ways for them to collect your data.  Remember if it's free on the web, then you are the product, not the customer.  Just because you pay doesn't mean that changes either.

There are a number of things you can do to make web browsing safer and more private and give yourself more control.  I use Firefox because although it has issues, it is flexible and has lots of useful extensions that help make browsing safer.  Just remember that as you get more safety browsing, browsing can become more difficult.  Many sites use scripts from other places to do many things but those scripts often track you and snoop on you.

You can use other browsers but they all have issues.  Chrome is OK but it desperately wants you to sign in to Google and then once you do that, everything you do, every site you go to, every search you make, belongs to Google.  I can't really tell you about Edge as I usually don't use Windows.  I expect Edge browsing is part of the extensive Windows telemetry gathered by Microsoft.


Don't leave browsers on their default settings.  Although they make it hard, you can change important things like the default search engine.  Most browsers are paid in some way by search engines for the privilege to be the default search engine on that browser.  Or like Edge and Chrome they have a default from the company that supplies them.  I should mention here that you should try and avoid Google or Bing for your searches.  For a long time I used duckduckgo.com but I learned a while ago that they use a lot of data from bing although I think they have their own indexing, and some links redirect through bing.   It is still my fallback search engine and rarely I still use Google too.  Learn how to change your default search engine.  I prefer to have a separate navigation bar and search bar and not to allow searching from my navigation bar.  I actually sometimes type out full URLs.  That's all harder on a phone though.  Don't use google search if you're logged into google.  All that data goes straight into your Google history.   Remember you don't always have to use the same search engine.  Sometimes specialised search engines are much more useful, for example wikipedia, youtube, google maps, etc.

My favourite search engine at the moment is Searx Randomizer.  This sends your search to a random searx instance. Searx is an open source meta-search engine.  Official Searx website Searx Wikipedia Entry  Your search is relayed to many other search engines but without information about you, the searcher being relayed.  It often gives me unusual and interesting search results and useful, did I mention useful?  Google tends to show you results it thinks you want or it thinks you should have.  Also note that searx instances are quite fluid, coming and going occasionally.  In part, because the big search engines don't appear to like non-humans doing searches.  Google, who has robots trawling every web page on the planet, apparently doesn't like anyone doing Google searches without it knowing who is doing it.  Bing ditto but they have taken to using special Bing links that redirect through Bing.  Because of this, sometimes I'll have to repeat a searx search because it fails the first time.  Slow down. 

Fingerprinting.  Fingerprinting is a way tracking companies have of identifying you using features of your browser.  Things like languages, fonts, page size, operating system, IP address, colours of pixels on your monitor.  Why do browsers even give out this information?  Some of the extensions that follow make fingerprinting much harder.

Firefox extensions

Firefox has a number of useful extensions for safety and privacy.  


Apart from getting rid of objectionable and sometimes unsafe and even malware filled ads, these help lower your bandwidth.  There is a huge war between advertisers and adblockers that has been going on for a while.  

I use uBlock Origin. uBlock Origin website I'm sure there are many other adblockers that work. 

No Mining:

No Coin Stop scripts that use your browser to mine bitcoin for someone else. Sigh. 

Fingerprint Blocker:

CanvasBlocker  This add-on allows users to prevent websites from using some Javascript APIs to fingerprint them. Users can choose to block the APIs entirely on some or all websites (which may break some websites) or fake its fingerprinting-friendly readout API.

Tracker Blockers:

I tend to use a few of these.  There is just so much tracking at the moment. 

Privacy Badger by The Electronic Frontier Foundation.

Ghostery is a tracker blocker.  It is a commercial company but I've found it's quite good and easy to use.

Duckduckgo Privacy Essentials  A whole bunch of privacy features.  Also blocks fingerprinting.

Decentralize Protects you against tracking through "free", centralized, content delivery. It prevents a lot of requests from reaching networks like Google Hosted Libraries, and serves local files to keep sites from breaking. Complements regular content blockers.

AdNauseum not only blocks ads, it obfuscates browsing data to resist tracking by the online ad industry. To throw ad networks off your trail AdNauseam “clicks” blocked and hidden ads, polluting your data profile and injecting noise into the economic system that drives online surveillance. Just a bit of fun.

TrackMeNot An artware browser add-on to protect privacy in web-search. By issuing randomized queries to common search-engines, TrackMeNot obfuscates your search profile and registers your discontent with surreptitious tracking.  Just a bit of fun too.

Cookie Autodelete When a tab closes, any cookies not being used are automatically deleted. Keep the ones you trust (forever/until restart) while deleting the rest. Containers Supported. 

Facebook Container Prevent Facebook from tracking you around the web. The Facebook Container extension for Firefox helps you take control and isolate your web activity from Facebook.  Facebook is a surveillance company, it's not what you thought.

F.B Purity While you are logged onto Facebook, this lets you hide all the Facebook Ads, Suggested Posts / Related Posts / Sponsored Posts / Sponsored Posts / Upcoming Events / Games your Friends are playing / Games You May Like / Similar To / Related Articles / More Like / More From etc, etc.

Cross-site script blocking:

uMatrix Prevents cross-site scripting.  Warning: This extension can make it harder to use webpages.  You need to understand how to use it and you often have to enable scripts to get the page to work.  If you're prepared to deal with the hassle, it's very good.   Unfortunately even IT professionals find this one difficult to use, other alternative suffer from the same issues.

Smart Referer Every time you click on a link, your browser helpfully tells the website the link takes you to, what web page you came from.  This extension stops that. In tech speak: Automatically hide HTTP Referer and JavaScript document.referrer for cross-domain requests!

Redirector Some pages have links that redirect through their own site so they see what you click on.  Google and Bing both do this.  This extension might help with that, but it requires a bit of work.  May not be worth it.

Making pages more readable:

Remove/Crop to Selection Sometimes you may want to print or save only a part of a web page. With this add-on you can select a part of a web page (text, images, etc), right click on the selection.  Remove parts of a webpage (it's not permanent, just reload the page).  Remove annoying animations etc.

Kill Sticky Remove fixed headers or buttons that obscure or limit content on a web page.  Again, non-permanent but can be very useful.  Based on Alisdair McDermid's Kill Sticky.  This is a javascript bookmarklet not an extension as such.

Lots of tabs users:

Tab Session Manager Save all your tabs and restore them.

Tree Style Tab This extension provides the ability to work with tabs as "trees".  What can I say, I usually have a lot of tabs open.


Review of Neal Stephenson's "Fall, or Dodge in Hell" (spoilers)

Neal Stephenson - Fall, or Dodge in Hell
Warning Spoilers

I really love some Neal Stephenson books, but some I find unreadable.  I think his book "The Diamond Age" one of the best science fiction books I have ever read.  I loved Anathem, although I had issues with the ending.  His endings are often strange.  I can't actually read his "Baroque Cycle" trilogy - only ever got a couple of pages into it.  I find many of his books just OK, Snow Crash - OK; Cobweb - a good potboiler, Cryptonomicon - ditto; Reamde - meh, OK if you like 'Murrican Ayn Randian libertarian cyber westerns; Seveneves - couldn't read, got about a third of the way through.

I liked Fall but some things just gave me the screaming irrits.

Warning Spoilers ahead:

The book is a continuous story but I'll divide it into 4 different sections, where there are different main characters, and scenarios. 

Fall has like Stephenson's other books, a lot of technical detail.  Interesting if you like that sort of thing, and I usually do.  IT people are often good at technical detail but not so good with biology (non-technical biology), sociology, or economics.  For instance, there are no discussions about different ways of making societies.  Everyone has two options.  An Ayn Randian libertarian feudal structure with Dodge as top alpha male superman and an Ayn Randian libertarian feudal structure with El as top alpha male superman. 

Section 1

In the first section Dodge is still alive and then dies and has his head frozen.  This section ends around when his brain is destructively scanned and uploaded into a computer.

Section 2

Dodge's brain in the computer creates a virtual world.

My first real gripe with the story is that the second section, really doesn't make much sense, here's why:  Dodge's brain has been scanned and uploaded into a computer.  Just his brain.   Actually, just his neurone connecting structure.  There appears to be no communication between the uploaded brain and all the living people around it in the real world.  Putting a living person into complete sensory deprivation for even a short length of time will make them quite insane and surely that's what they did. He is just a brain with no body, no senses and they made him alive in the simulation that way.  Instead of going mad, Dodge, after some time, creates a virtual world in the computer.  A kind of multiplayer online role-playing game all by himself with not even senses, just his brain.  But still no communication with the outside.  They can sort of vaguely see the virtual world that he's created but not communicate with Dodge.  I know it's a story artefact done to divide the current world and the virtual world to keep the story going but it just doesn't really make much sense. All that technology and they can't even make vibrations in his ears or listen to vibrations in the air of the world?  How do the virtual inhabitants communicate with each other?

Section 3

Then more and more people are uploaded into the computer network that grows over time.  No-one apparently thinks of having more than one virtual world.  Virtual inhabitants don't appear to remember their "previous" lives. Dodge's world grows much more complex and Dodge becomes the creator and alpha male king or god of his world with a pantheon of uploaded characters who have special powers and many ordinary uploaded people.  Dodge's world has a very simple societal structure - a feudal hierarchy with an alpha male at the top.  One of his pantheon, a woman, manages to create self-reproducing life and eventually manages to create native self-reproducing humans.  (It had to be a woman to do this?  Like women are better at biology?)  Dodge's nemesis El doesn't like Dodge's world, in part because he has to pay for the computer resources to maintain the self-reproducing native life, but rather than create his own world, he makes plans to take over Dodge's world.  El, dies and gets uploaded with lots of people who have paid him to be uploaded, some of whom become powerful "angels".  El and his angels take over Dodge's world and kick him out, Dodge ends up a prisoner in a distant corner of his world (the "Fall").

Uploaded people appear to be able to die in the virtual world but come back, at least some times, a sort of virtual reincarnation.

Section 4

A complicated quest among friends of Dodge in the El dominated world eventually allows Dodge to come back and fight El and somehow kill him.  Will El reincarnate?  Not known.  So it comes down to a giant shoot out at high noon between the alpha males, which Dodge wins.  Just a change to the alpha-male at the top.  The feudal society with all its faults goes on.


The basis of randomness

I was thinking today about the basis of randomness.

I'm still thinking about how to write this down so bear with me here.

After the invention of calculus, mathematicians saw the world as a sort of giant clockwork machine.  "Give me the initial conditions and the law of motion, and with calculus I can predict the future -- or better yet, reconstruct the past."  Einstein's spacetime implies the same thing, that all of time and space are fixed, that we can move forward or back, given the mathematical ability.  There is no randomness in this view of the universe.

And so we thought until the discovery of quantum theory.  The problem being that the world is not infinitely divisible.  Eventually everything must collapse into particles.  This collapse introduces a rounding or truncation error, that is the basis of randomness.  The universe is really digital not analog.  The present is the moment that the continuous changes into steps, quanta.  It's the present that changes infinitely divisible potential into particular actuality.  The collapse of the present is the reason we can't go forward or backward - forward - we can't know the future before it arrives, backward - we can't tell exactly what happened from what we know about the present.

Update: I have been thinking about this and I think the point of collapse is simply the present.  I am not sure what the present is exactly, when considered in the light of Einstein's general relativity, but then as I said before, spacetime and quantum collapse don't seem compatible anyway.  The idea that the point of collapse is the present does not require an observer or multiple universes, although I do wonder if the collapse releases energy and/or information.


Trampolines from oztrampolines online are dangerous. Don't buy them.

Trampolines from oztrampolines online are dangerous. Don't buy them.

Here is my experience.

In March of 2014 bought a 7 x 10ft Rectangular Trampoline from Oztrampolines online.  It was delivered fairly promptly but when I got it here is a picture of what I got. 

Actually a 6ft x 9 ft trampoline with an extra rail 1 foot around the outside.  But this is just disappointing not dangerous.  The legs are complicated and not especially stable, but again not dangerous, just annoying.

From about 18 months after I got the trampoline, the springs started breaking.  They would snap and would fly off and hit the person on the trampoline causing at least bruising.  Thank goodness they haven't hit anyone in the head or eye yet.  This continued on and off since.

5 or 6 have broken this way.  I complained to oztrampolines online and they said that the trampoline had a five year warranty but the springs had only a two year warranty and they would sell me a new set of springs cheaply.  Presumably with a two year warranty.   The complaints went on for a while and they would say: did you install the springs the right way round?  Yes I had.  Did you have the guard pads installed?  Yes I did. 

Everyone seems to believe oztrampolines when they say that the spring guard pads should stop this happening but the physics is quite clear, the pads stop someone landing on the springs and hurting themselves, but they don't stop the springs flying off and hitting the person on the trampoline. 

I went to my government consumer group to dispute the fact that the trampoline I bought was not fit for purpose, but they wouldn't take it any further.  I tried the checkout but they weren't interested. 

A friend had an idea to put cable ties on the springs to stop them flying off.  We did that but they don't work as it has just happened again.

I am now throwing the trampoline out as I believe it is unsafe to use as a trampoline.

1. Who sells dodgy springs in trampolines that break?  I have owned trampolines that are decades old that no spring has ever broken.

2. These springs all break at a similar point, the frame side hook.

The physics:  When you are at the bottom of a trampoline jump, your feet or what ever part of you is contacting the mat are well below the level of the frame.  The mat applies something like 7G* of acceleration to you at the lowest point.  That is the time the springs have the most force on them, and are most likely to break.  It is also the time when the springs are below and not touching the guard pads.  If the springs break at the frame side or anywhere in the middle, the part that is on the mat side will be propelled in the direction of the force, ie towards the person on the mat.

You can clearly see in this picture how the guard mat does not cover the springs at the bottom of a jump.


Here is a sketch of the forces at the bottom of a jump:

And the forces on a spring:
You can see that the guard pad does not cover the spring any more. If the spring breaks before the person reaches the bottom of a jump the force that caused the spring to break will launch the spring above the mat.  In the lower picture you can also see that the hook on the mat when it hits the mat side of the triangular clip will be launched upwards.


Bots, Metadata, big data, linkity and that time I broke the family googles.

I guess this started a long time ago when companies started collecting data from users on the internet.  What triggered me to write linkity was our government deciding to make ISPs collect and store our metadata.

I wrote linkity to create lots of metadata.  It looks at lots of things at random on the internet.  I wanted a program that didn't download much and so cost the user much, and didn't cause much traffic on any remote sites but went to lots of random websites and generated lots of metadata.  I believe it's completely legal to use this and hope it stays that way.

If our government wants to store our metadata, this program helps give them more.  It increases the signal to noise ratio on your metadata.  It's a bit of security by obscurity and probably an annoyance only.  Don't rely on it to do anything much.  It may give you a bit of plausible deniability.  If many people use it, it will create a massive haystack to look for needles in, so I want the program to scale without being too annoying on the internet.

I thought it would be relatively easy at first.  I would run a few searches for random words on google and scrape follow the links. 

That seemed to go well, but while I was just testing and tuning it, google objected and banned my house from searching for using a bot.  My family were not impressed.  I hadn't noticed because I don't use google that much.  They told me "fix the googles!"  Who'd've thought that google didn't like people using bots on google.  Google, who run more and more powerful bots than anyone else in the world or at least the public world.

I decided to stop and rethink my plan.  The googles came back to our house after a day or so.  Family happy again.

I guess google uses its massive machine learning to try and improve its responses to people's questions and runs a lot of checks to make sure it's really people.  I hadn't realised or hadn't thought about the massive numbers of robots and robotic activity out there in the wild internet doing all sorts of things, probably related to making money in good or bad ways. 

I had planned to make scrapers for other search engines, so I bought those plans forward.  I changed the program so it collected the links in a database instead of just viewing them and throwing them away.  Then I found I could harvest links from any page I visited, so I didn't have to do go to search sites very much. 

I did manage to break the googles again but this time their AI only seemed to have blocked my script briefly and not the rest of the household.  Clever googles.

Now I have it working, I can watch how my script wanders around the net. Sometimes it fixates on certain sites.  Sites that have a lot of subdomains.  It's fascinating how websites are networked through links.

Bug reports, ideas and comments welcome.

Oh and lynx developers, why have a non removable error message when you have a non-lynx useragent?  Why are we forced to hand over information about ourselves when we use the web? 

Technical details:
Download: linkity

It runs on linux systems, BSD or Mac.  It uses some unix utilities: lynx, sqlite3, perl and with perl it uses the URI::Escape module. 

On debian/ubuntu systems you can install them like this:
sudo apt-get install sqlite3 lynx liburi-perl

On a mac with MacPorts:  On a Mac with MacPorts:
sudo port install lynx sqlite3
I'm pretty sure MacPorts installs perl5 automatically and URI::Escape is:
sudo port install p5.24-uri

You could use CPAN, to get URI::Escape but I can't really help you with that.


randword: Generating memorable random passwords

This started when I decided to learn python by rewriting one of my old perl scripts in python.  randstring is a script to generate a random string of characters.  I use it sometimes to generate passwords, but password strings or random characters usually can't be remembered, at least not easily.  Passwords like that can be useful at times.  You need to store them in an encrypted password safe.

I have another script that generates more memorable passwords.  Some people I know, have found it useful.  There are always some passwords you need to be memorable.  For instance your login password and the password to your password safe.  randword generates a bunch of words from a dictionary.  XKCD style passwords, if you like.  In the process of examining it, I rewrote it in both perl and python, fixed some bugs and added some features.

In general a bunch of words can be much easier to remember and can be just as difficult or far more difficult  to crack.  I like to generate a bunch and choose a few at random.  4 or 5 or more words is OK.  Hint: misspellings are good but not if you can't remember what you did.  Passwords on websites are a bit mad at the moment with complicated rules, like: "there's an illegal character" or "you must have an upper-case letter and a number", or "that password is too short", or "too long" etc. 

New features of randword:
  • There's a couple of new options about output format, like camel case.   
  • randword can use any dictionary or word frequency lists as long as they have a fairly simple format - ie at least a word and an optional number at the start of each line. 
  • randword can also take a bunch of text and create dictionaries of words that it can use to generate random passwords.  
For word lists, I have used various texts, for instance Jane Austen's complete works, Shakespeare, Mark Twain, Chaucer.  There are many works that can be easily got from Project Gutenburg among other places on the net.  Also word lists and text that can be found at COCA or Lancaster University  etc.Since I only want ascii because I can't type non-ascii characters easily, I used unidecode (python or original perl version) to turn them into ascii.  Python unidecode comes with a command line script.  I wrote a very simple perl script to detect non-ascii characters, (not included) although working out what encoding a page is in is a kind of major headache and you need to know the encoding before unidecode will work, grrrr. 

The links below include word lists from Chaucer, Shakespeare, Mark Twain, and the linux word dictionary.

This is my original blog post on the scripts with all the links to the scripts and associated stuff.

randstring.pl randstring.py
randword.pl randword.py
some word lists
tarred and zipped archive of scripts and wordlists