Category Archives: Politics

Shop cop

Words interest me. As I’ve been getting interested in green woodworking and the appropriate tools, I’ve become more aware of the US term “shop”. A few days ago, in a discussion of why America is lagging behind on lower level tech education, someone suggested schools needed to reintroduce ‘shop’, to get kids interested in designing and making things. I think young Brits would know this as ‘Design Technology, Resistive Materials’. I did ‘Woodwork’ and ‘Metalwork’.

America takes its cars ‘to the shop’ because their ‘garages’ are being used as ‘car parks’. Obviously, it means ‘workshop’.  A shop where you buy work, a service instead of a product, as you walk down main street. Not at all like a job-shop in Britain where we try to sell spare labour to employers, or shop for jobs, if you prefer.

I came across a meaning from the world of share trading. A stock may be ‘shopped’ – actively sold. I think we’re finally getting to the meaning. A shop is a place (real or virtual) where goods, services and labour are traded, in either direction. A market stall. I almost wrote “store” but stores are where you keep things before selling our when they haven’t sold.

I was slightly side-tracked by coppers, copping criminals and taking them to the cop shop, trading their liberty for their crimes. My government assures me that if I haven’t committed a crime I won’t cop it. I wish I believed them. That’s the cost of lying in a market that depends on trust and information. Their share price is down.

Advertisement

RUNOFF another copy?

I was telling a story about my first job a couple of days ago. I was an ‘applications programmer’ at Cambridgeshire College of Art and Technology. There was an Argentinian lecturer who knew our systems. He asked if his wife could use the computer centre facilities to write up her research thesis during the Summer holidays. We were casual users of a text processing ‘tagging language’ for documentation. It was called DSR, Digital [Equipment Co.] Standard Runoff, so my colleague John suggested she used that. The ‘typing department’ had some fancy new ‘word processors’ (I think they were Wang) but we didn’t have any authority over them and wouldn’t be able to help her with problems. We also had doubts about whether they had the capacity for a whole thesis.

So it was that John and, in his absence, I provided occasional help to a charming, intelligent Argentinian woman during the outbreak of the Falklands War in 1982, while the British press ramped up the hatred of British idiots against the entire Argentinian nation. She was the first Argentinian I’d ever met and it was the first time I had any indication that fascism could also infect the UK or was personally shamed by the state of our newspapers. I remember us scooping up some hate-filled tabloid front page and dumping it, seconds before our guest arrived.

In later jobs I learned of Unix roff, nroff and troff and came to assume that Runoff was DEC’s version of the Unix tools. Today I discovered that isn’t true. DEC’s Runoff came from the common ancestor of the Unix tools, Runoff on CTSS then Multics (1964.)
“types out text segments in manuscript form.”

https://en.wikipedia.org/wiki/TYPSET_and_RUNOFF

CTSS was also the original home of LISP, ALGOL and the text editor QED, the predecessor of ed, vi and vim.

A new target for Software Developers: Sensei.

I originally wrote this as an answer to a question on Quora but I’m increasingly concerned at the cost of higher education for young people from families that are not wealthy. I had parents who would have sacrificed anything for my education but I had clever friends who were not so fortunate. The system is bleeding talent into dead-end jobs. Below, I consider other models of training as I hope it might start a conversation in the technology community and the political infrastructure that trickles money down into it.

Through learning about ‘Agile’ software development, I became interested in related ‘Lean’ thinking. It borrows from Japanese cultural ideas and the way the martial arts are taught. I think the idea is that first you do, then you learn and finally you understand (as illustrated by the film ‘Karate Kid’.) That requires a ‘master’ or ‘Sensei’ to guide and react to what s/he sees about each individual’s current practice. It seems a good model for programming too. There may be times when doing is easier if you gain some understanding before you ‘do’ and advice and assistance with problem solving could be part of this. I’m not alone in thinking this way, as I see phrases like “kata” and “koans” appearing around software development.

I’ve also seen several analogies to woodworking craft which suggests that a master-apprentice relationship might be appropriate. There is even a ‘Software Craftsmanship’ movement. This could work as well in agile software development teams, as it did for weavers of mediaeval tapestries.

A female Scrum Master friend assures me that the word “master” is not gendered in either of these contexts. Of course, not all great individual crafts people make good teachers but teams with the best teachers would start to attract the best apprentices.

If any good programmers aren’t sure about spending their valuable developer’s time teaching, I recommend the “fable in novella form” Jonathan Livingston Seagull, written by Richard Bach, about a young seagull that wants to excel at flying.

Small software companies ‘have a lot on’ but how much would they need to be paid to take on an apprentice in their development teams, perhaps with weekly day-release to a local training organisation? I’d expect a sliding scale to employment as they became productive or were rejected back into the cold, hard world if they weren’t making the grade.

The importance of a letter, to the BBC

I have entered politics. I asked for this tweet to be corrected and the BBC did.
https://twitter.com/BBCr4today/status/904958811546554368
It originally said “your”. I think that 1-letter difference is quite important.

Iceland’s foreign minister says countries want free trade deals with the UK #r4today

It could have been a simple typo. It could have been an optimist, wanting to believe some good news about Brexit or it could have been government propaganda. I wish I could be sure that it wasn’t the latter.

1 letter to change a flood of international imports into hope of exports and fixing the UK’s balance of trade deficit. Politics is the art of getting people to agree with you, whether you are right or wrong. Sadly, the reality of Brexit will still be true, whatever it is, and believing it will work doesn’t actually help much.

Things I used to be Wrong about – Part 1

I get very annoyed about politicians being held to account for admitting they were wrong, rather than forcefully challenged when they were wrong in the first place. Unless they lied, if someone was wrong and admits it, they should be congratulated. They have grown as a human being.

I am about to do something very similar. I’m going to start confessing some wrong things I used to think, that the world has come to agree with me about. I feel I should congratulate you all.

You can’t design a Database without knowing how it will be used

I was taught at university that you could create a single abstract data model of an organisation’s data. “The word database has no plural”, I was told. I tried to create a model of all street furniture (signs and lighting) in Staffordshire, in my second job. I couldn’t do it. I concluded that it was impossible to know what was entities and what was attributes. I now know this is because models are always created for a purpose. If you aren’t yet aware of that purpose, you can’t design for it. My suspicion was confirmed in a talk at Wolverhampton University by Michael ‘JSD’ Jackson. The revelation seemed a big shock to the large team from the Inland Revenue. I guess they had made unconscious assumptions about likely processes.

Relations don’t understand time

(They would probably say the same about me.) A transaction acting across multiple tables is assumed to be instantaneous. This worried me. A complex calculation requiring reads could not be guaranteed to be consistent unless all accessed tables are locked against writes, throughout the transaction. Jackson also confirmed that the Relational Model has no concept of time. A dirty fix is data warehousing which achieves consistency without locking by the trade-off of guaranteeing the data is old.

The Object Model doesn’t generalise

I’d stopped developing software by the time I heard about the Object Oriented Programming paradigm. I could see a lot of sense in OOP for simulating real-world objects. Software could be designed to be more modular when the data structures representing the state of a real-world object and the code which handled state-change were kept in a black box with a sign on that said “Beware of the leopard”. I couldn’t grasp how people filled the space between the objects with imaginary software objects that followed the same restrictions, or why they needed to.

A new wave of Functional Programming has introduced immutable data structures. I have recently learned through Clojure author Rich Hickey’s videos that reflecting state-change by mutating the value of variables is now a sin punishable by a career in Java programming. Functional Programmers have apparently always agreed with me that not all data structures belong in an object

There are others I’m still waiting for everyone to catch up on:

The Writable Web is a bad idea

The Web wasn’t designed for this isn’t very good at it. Throwing complexity bombs at an over-simplified model rarely helps.

Rich Hickey’s Datomic doesn’t appear to have fixed my entity:attribute issue

Maybe that one is impossible.

A Brexit Thought Experiment

I’m a big fan of thought experiments. I like science but I’m too lazy to do real experiments. Why do something when you can think about doing it?

I’ve been observing the political manoeuvring around Brexit and 2nd referendums. I think people are saying things they don’t really believe in order to get an outcome they believe to be right and people are saying things which sound good, to hide the evil swirling beneath the surface.

I asked myself: Which is the greater wrong: doing a good thing for a bad reason or a bad thing for a good reason?

I thought:

‘A good thing’ is highly subjective, depending on your personal values and consequent belief in what is fair. A comparison of  ‘bad thing’s is probably even more fluid. I see it in terms of balance between good and harm to self and others. It’s complex.

‘Good’ and ‘bad’ reasons also depend on your personal targets and motivations along with another subjective moral evaluation of those.

An individual may see a good thing as a positive value and a bad thing as a negative value and believe that as long as the sum is positive, so is the whole package. People call this “pragmatism”. They also tell me it is easier to ask for forgiveness than permission. These people get things done and, generally, only hurt other people.

‘A reason’ sounds like dressing up something you feel you want in logic. Is that always reasonable?

We need to balance what we want and our chances of success against the risks and uncertainty of what we might lose or fail to achieve. To measure success objectively, we need to have specified some targets before we start.

Brexit didn’t have either a plan or targets. It appears to be driven by things that people don’t want. How will we know if it has succeeded or failed? We are told the strategy and tactics must be kept secret or the plan will fail and targets will be missed. If this was a project I was working on, I’d be reading the jobs pages every lunch time. I’ve stopped worrying about the thought experiment.

Women’s Day Intuition

The first thing I did yesterday, on International Women’s Day 2017, was retweet a picture of Margaret Hamilton, allegedly the first person in the world to have the job title ‘Software Engineer’. The tweet claimed the pile of printout she was standing beside, as tall as her, was all the tweets asking “Why isn’t there an International Men’s Day?” (There is. It’s November 19th, the first day of snowflake season.) The listings were actually the source code which her team wrote to make the Apollo moon mission possible. She was the first virtual woman on the Moon.

I followed up with a link to a graph showing the disastrous decline of women working in software development since 1985, by way of an explanation of why equal opportunities aren’t yet a done deal. I immediately received a reply from a man, saying there had been plenty of advances in computer hardware and software since 1985, so perhaps that wasn’t a coincidence. This post is dedicated to him.

I believe that the decade 1975 – 1985, when the number of women in computing was still growing fast, was the most productive since the first, starting in the late 1830s, when Dame Ada Lovelace made up precisely 50% of the computer software workforce worldwide. It also happens to approximately coincide with the first time I encountered computing, in about 1974 and stopped writing software in about 1986.

1975 – 1985:
As I entered: Punched cards then a teletype, connected to a 24-bit ICL 1900-series mainframe via 300 Baud accoustic coupler and phone line. A trendy new teaching language called BASIC, complete with GOTOs.

As I left: Terminals containing a ‘microprocessor’, screen addressable via ANSI escape sequences or bit-mapped graphics terminals, connected to 32-bit super-minis, enabling ‘design’. I used a programming language-agnostic environment with a standard run-time library and a symbolic debugger. BBC Micros were in schools. The X windowing system was about to standardise graphics. Unix and ‘C’ were breaking out of the universities along with Free and Open culture, functional and declarative programming and AI. The danger of the limits of physics and the need for parallelism loomed out of the mist.

So, what was this remarkable progress in the 30 years from 1986 to 2016?

Good:

Parallel processing research provided Communicating Sequential Processes and the Inmos Transputer.
Declarative, non-functional languages that led to ‘expert systems’. Lower expectations got AI moving.
Functional languages got immutable data.
Scripting languages like Python & Ruby for Rails, leading to the death of BASIC in schools.
Wider access to the Internet.
The read-only Web.
The idea of social media.
Lean and agile thinking. The decline of the software project religion.
The GNU GPL and Linux.
Open, distributed platforms like git, free from service monopolies.
The Raspberry Pi and computer science in schools

Only looked good:

The rise of PCs to under-cut Unix workstations and break the Data Processing department control. Microsoft took control instead.
Reduced Instruction Set Computers were invented, providing us with a free 30 year window to work out the problem of parallelism but meaning we didn’t bother.
In 1980, Alan Kay had invented Smalltalk and the Object Oriented paradigm of computing, allowing complex real-world objects to be simulated and everything else to be modelled as though it was a simulation of objects, even if you had to invent them. Smalltalk did no great harm but in 1983 Bjarne Stroustrup left the lab door open and C++ escaped into the wild. By 1985, objects had become uncontrollable. They were EVERYWHERE.
Software Engineering. Because writing software is exactly like building a house, despite the lack of gravity.
Java, a mutant C++, forms the largely unrelated brand-hybrid JavaScript.
Microsoft re-invents DEC’s VMS and Sun’s Java, as 32-bit Windows NT, .NET and C# then destroys all the evidence.
The reality of social media.
The writeable Web.
Multi-core processors for speed (don’t panic, functions can save us.)

Why did women stop seeing computing as a sensible career choice in 1985 when “mine is bigger than yours” PCs arrived and reconsider when everyone at school uses the same Raspberry Pi and multi-tasking is becoming important again? Probably that famous ‘female intuition’. They can see the world of computing needs real functioning humans again.

My New Model of Left-Right Politics

Because (I like to think) I’m human, I make models of the world around me. Because I’m a computer scientist/a bit weird, I write them down or draw pictures of them. Since I got interested in why some intelligent people have different political views to me, a couple of years ago, I’ve been trying to model the values which underlie people’s belief systems, which I believe determine their political views.

My working model for the values of Left-Right politics (I’m a fluffy compromise near the middle of this scale but I have other scales, upon which I weigh myself a dangerous radical) has been that The Left believe in Equality and The Right in Selfishness. As a radical liberal, I obviously think both extremes are the preserve of drivelling idiots – compromise is all. The flies in my ointment have been the selfishness of the Far Left and the suicidal economic tendencies of working class nationalists in wanting to #Brexit. My model clearly had flaws.

This morning I was amusing myself with a #UKIP fan who countered being told by a woman that it was best to have O type blood (presumably because it is the universal donor) by saying it was best to be AB, so he could receive any blood (a universal recipient.) On the surface this seems to confirm the selfishness theory but I made an intuitive leap that he thought he was too special to lose, which was far from the conclusion I’d arrived at, during our discussion.

My new, modified theory is that the Left think ‘no-one should get special treatment’ and the Right think ‘My DNA is special. I deserve more’. This belief that “I am/am not special” has almost no correlation with the evidence, or even with class. I have no evidence of whether the characteristic is inherited or learned but Michael Gove and members of the BNP clearly  decided that they were special and deserve to be treated better than other people. Tony Benn, on the other hand, argued himself out of believing that he had a God-given right to a place in the House of Lords. Please let me know why I’m wrong.

Hybrid Vigour

Having been forced by Mrs. Woo to take a week of holiday from what she usually refers to as “staying at home, doing nothing”, I found myself on the Snowdrop Trail tour in the garden at https://www.nationaltrust.org.uk/sunnycroft. I was quite surprised to discover that the leaflet I was handed had photographs of 17 of the forty-odd different varieties of snowdrop in the garden. Later in the day I was talking to our guide’s long suffering wife who explained that there were over 400 varieties in his garden, of the approximately four and a half thousand types currently known to be in existence.

People with a passion often interest me. Quite why these smallish, mostly white flowers that I would previously have assumed were all the same had become the focus of this man’s life was not clear but his obvious fascination was infectious. It almost made me wish that I was a little less promiscuous in my obsessions. For our second snowdrop trip of the week, we visited https://www.nationaltrust.org.uk/attingham-park to see snowdrops at scale, lining the woodland floor. They all looked the same. I have much to learn.

My favourite Sunnycroft snowdrop fact was that when chasing the holy grail of a large ‘double’ snowdrop, gardeners had used the advantage of ‘hybrid vigour’ to mix and match the desirable characterisics of different species and create a giant amongst snowdrops. Take that, racial supremacists: you’re all snowflakes, by comparison!

https://en.wikipedia.org/wiki/Heterosis

Nothing but the Truthiness

On 2 January 2017, I half-heard on Radio 4, ‘The New World. Nothing but the Truth’, presented by Jo Fidgen of the BBC World Service and produced by Gemma Newby. It lasts 45 minutes and is available on BBC iPlayer Radio for 1 year, at http://www.bbc.co.uk/programmes/b086nzlg, so if you don’t listen to it after reading this, I want a note from a grown-up to explain why.

“Are we really living in a post-truth world?” or is ‘post-truth’ a new label for liberal angst, due to loss of control? It even asked us to consider whether Michael Gove was misrepresented by the media (He was. I’ve seen the transcript.) Sadly, there are a lot of experts in the program, so perhaps you shouldn’t take it as seriously as I want you to. Listen for yourself, in case I can’t be trusted.

It finds that people are not rational in their analysis of facts that challenge their beliefs. They believe The Wrong Thing even harder.

‘Truthiness’ was coined by Stephen Colbert to refer to “what we feel to be true.” Another parody of right-wing politicians, Donald Trump said, “Fact is not always the same as Truth”, though 70% of what he says has been shown not to be true by fact-checkers. People are looking for “a deeper level of truth, their identities”. Trump’s facts are rhetorical tools, not actual information to be taken seriously. He is only President Elect of the USA.

We wear our beliefs as a badge of membership of our group. “We determine the truth by the people and sources we trust. That’s how we know truth.” When faced by ‘an alleged fact’, we decide how we feel about it then look for evidence of how right we are. Educated people are not immune. Numerate people were shown to be better at assessing data but to lose their intellectual advantage when faced with facts related to their political beliefs.

At the end, the programme presented a 10 minute Drill:

  1. Ask the opinion of someone you disagree with and don’t interrupt
  2. Don’t assume they are stupid
  3. Resist forwarding to all you echo chamber buddies that article that proves how right you are
    [ I would add “unless it contains new information, but not without fact checking first” ]
  4. Bear in mind that just because you like the story, doesn’t mean it’s true

What first caught my attention in the programme on first listen was use of the word ‘truthiness’ which the programme has in common with the functional programming language Clojure. Falsiness is ‘nil’ or ‘false’. Truthiness is everything else.

If we imagine ‘nil’ as being a bit like the Scottish legal verdict ‘Unproven’, we should demand higher standards than “You can’t prove I’m lying, yet.” from our politicians.
We need to demand truth, not either value of falsiness.

In hospital statistics, ‘Deaths = 0’ is different to ‘Death data was not measured’. We expect politicians to attempt to try to lead interviewers away from the second option with weasel-words like, “there is no evidence of deaths” and we expect journalists to destroy them whenever they do. Accepting falsiness gives us corrupt politicians and journalists. No politician stands in front of a bus promising £350M per week to spend on the NHS when they known it is not true should have any further input to UK politics. No newspaper calling people who point this out “Remoaners”, to silence them, has any interest in their readers knowing the truth. Resignations are long overdue and it’s almost too late for them to be honourable.