Democracy – maybe we should try it sometime


Embed from Getty Images

We in the rest of the world are watching the run up to the Presidential elections in the USA in November. It has now been decided who the two main contenders will be, Hilary Clinton for the Democrats and Donald Trump for the Republicans. In the USA, there are no significant other parties, so it is very highly likely that the next President of the United States will be one of these two people.

An extraordinary fact is that many US citizens dislike both candidates, with one Republican commentator saying that people might be choosing the lesser of the two evils. Trump is seen as brash and unversed in politics and Clinton is seen as being untrustworthy.

US President Bill Clinton (center with hand up...
US President Bill Clinton (center with hand up), first lady Hillary Rodham Clinton to right of photo; their daughter Chelsea Clinton to left. On procession in public. The President, First Lady, and Chelsea on parade down Pennsylvannia Avenue on Inauguration day, January 20, 1997. (Photo credit: Wikipedia)

So, how did the US voter get left with a choice between two unpopular candidates? The US has a candidate selection process which is complex and unwieldy. A special subset of voters vote on the candidates who present themselves, and the sequential nature of the selection process turns the selection into a horse race, with candidates vying to “collect” the delegates in each state and achieve a threshold which means that they cannot be beaten by other candidates.

Each state selects the candidates using a different method, and there are different numbers of “delegates” in different states. Of course a mining state may and often does prefer a different candidate to the candidate preferred by a farming state. Commentators try to out guess each other in predicting the results, state by state.

Map of number of electoral votes by state afte...
Map of number of electoral votes by state after redistricting from the 2000 census. Modified by User:Theshibboleth for the font to be consistent with electoral maps. Edited with Inkscape. Reuploaded by User:King of Hearts to correct spelling (vs. Image:Electorial map.svg). (Photo credit: Wikipedia)

The wonder of the system is that it often throws up a candidate who has a reasonable amount of public support, in spite of the complexity of the process. This time however, it appears that the selection process has thrown up two candidates who don’t appear to appeal to the electorate. The voters do indeed have to select “the lesser of the two evils”.

In most democracies around the world things tend to be simpler. A candidate puts him or herself up for election, and he or she gets voted for or not as people choose. Of course, a candidate who aligns with a party needs to get the party’s approval, and cannot stand under the party banner without it.

English: National Awami Party (Muzaffar) banne...
English: National Awami Party (Muzaffar) banner at opposition rally, Dhaka. (Photo credit: Wikipedia)

However the above describes the process for electing a local representative. A presidential election raises extra problems. For instance, in the US the president is always a member of a political party. In countries where the president is preferred to be independent and outside of party politics issues arise in his/her selection.

If the president is elected directly by the populace the potential candidates will need to campaign countrywide when seeking election, and this will be expensive. The candidate therefore has to be very rich, sponsored by some organisation or be aligned with a party. The last two options work against the requirement for the president to be independent, and the first option restricts the field to those who have a large amount of money, which may be unacceptable or not achievable in a poor country.

English: Seal of the Executive Office of the P...
English: Seal of the Executive Office of the President of the United States (Photo credit: Wikipedia)

Many countries, including India and the US have got around this by using an electoral college system, though few systems could be as convoluted as the US method of selecting a candidate to stand for election as president. Such a system uses the fact that the population has already elected individuals to government, and uses the already elected individuals to decide on the candidates for president or select the president directly.

While this means that the most powerful political parties select and maybe elect the president, the representatives are doing what they are elected for, which is to make decisions on behalf of their voters. The elected representatives often select someone who may not be the most preferred by the grass roots electorate, but generally the selected person is not too disliked.

English: Sheep pasture The sheep have eaten th...
English: Sheep pasture The sheep have eaten the grass down to the roots, and must appreciate the fodder put out for them in these wheeled feeders. (Photo credit: Wikipedia)

In the case of the latest selection process for US president, the Democrats have selected Hilary Clinton as the most likely Democrat candidate to win, and while this is true, polls show that there is a lack of trust in her at the grass roots level. It is unlikely that this factor will weigh too heavily with the voter come the election, though.

The Republicans have selected Donald Trump, in spite of the belief early in the process that he stood no chance. The Republicans believe that he is the best choice of prevailing over Hilary Clinton, but many people dislike his brashness. On the other hand, many people like his approach to some of the issues that are hot topics in the US, such as immigration and the threat of terrorism. The real issue is whether or not his solutions to such topics are reasonable or will be effective.

While the people get to vote for the person that they want to be president, the process seems to me to not be overly democratic. The sheer number of people in the US and in most other countries means that direct election of a president is never going to be possible. There is always going to be a distance between the President and the populace and this dilutes democracy. As it is, voters can only vote for a few candidates in the election. They have little say in who gets selected to stand.

How much does this dilute democracy? Hmm, good question, Cliff! It depends. Given that “representative democracy” like in many country puts distance between the electorate and the elected, if people do not like the candidates very much, this could reduce voter turn out at the election as people decide not to vote for either of them. If, however, enough people on one side hate the opposition candidate strongly enough this may encourage them to turn out and vote. The president is likely to be elected by the vote of only a few of those allowed to vote.

Italiano: Diluizione-Concentrazione
Italiano: Diluizione-Concentrazione (Photo credit: Wikipedia)

It is likely that the apathy effect is going to override the hate effect, in my opinion, and voter numbers are likely to drop. If only a small number turn out to vote, then has either candidate got a real mandate? Not really, I suggest.

The US form of diluted democracy means that only a favoured few get to stand for president. Up until Obama, all previous presidents back to the early days have been rich white men. Standing in an election for president of the US costs billions of dollars and few people are able to afford the price.

English: Total public debt outstanding, United...
English: Total public debt outstanding, United States, 1993-2011 (billions U.S $) Français : Dette publique totale des États-Unis en milliards de dollars, prix courants, 1993-2011 (Photo credit: Wikipedia)

So we have a rich businessman vying to become the most powerful man in the world, and making ridiculous promises, like a wall between the US and Mexico, and the wife of a previous president vying to become the first female president. While Hilary Clinton is not enormously rich, she is much richer than most of us, and she and Bill Clinton have powerful friends.

US-Mexico border barrier near Monument Road, S...
US-Mexico border barrier near Monument Road, San Diego, California, USA, looking into Tijuana, Baja California, Mexico. Commonsing ok. knoodelhed 17:53, 4 September 2007 (UTC) (Photo credit: Wikipedia)

Updates to software

Embed from Getty Images

It’s obviously a good thing for bugs to be fixed. Software should function correctly and without exposing the user to security issues, and updates to fixes for this reason are essential.

Unfortunately this sometimes, one might say often, has a negative impact on the user. The user may know of the bug and have a workaround for it, and fixing the bug may cause the cause issues with the workaround.

Embed from Getty Images

Not to mention the fact that fixing one bug may result in the appearance of another or bring its existence to the notice of the user. No software can ever be considered to be completely bug free, in spite of the advanced tools which are available to test software.

When I was learning to program, back in the time of the dinosaurs, we were told to give our program and the specs to one of our fellow students to test. We called it “Idiot Testing”. The results were mind blowing. A tester would make assumptions, put in data that they consider valid, but which you, as the program writer had not considered, or maybe you considered it “obvious” that putting in certain types or values of data would not work.

Embed from Getty Images

Almost every time the tester would break the program somehow, which was the whole point, really. So we’d fix up our programs and give them up to be tested again. And the testers would break them again.

We were taught and quickly learned the advantage of sanitising the inputs to our programs. This meant we had to take the data as input by the tester and incorporate in our programs routines to try to ensure that the data didn’t break the program.

Embed from Getty Images

So we’d write our routines to validate the data, and we’d return an error message to the tester. We’d think that we were providing clear reasons in the messages to the tester, but the messages could still confuse the testers.

For example if the message said “The input must be between -1 and 1”, the tester might try putting in “A” or “1/4”. This usually happened when the purpose of the program was not clearly defined and described, not because of any denseness or sheer caprice on the part of the tester.

Then we’d update the programs again, taking into account what we had learned from the tester’s responses, and hopefully there would be more success with the updated program.

Embed from Getty Images

This seems to be more of an issue in mobile software, I believe, as many programs out there are written by a single person working alone, and I know that by the time I finish a program I’m heartily sick of it, and I write programs for myself as intended user. A person may upload a mobile app, with plenty of obvious bugs, and may never update it. It becomes abandonware, which may lead a general disillusion with mobile software as being buggy and never fixed.

When a developer does start to work on his program, and starts to fix the bugs, this takes time and effort. Meanwhile users may keep reporting issues with the published version. The developer has a dilemma. Does he/she drop his work on a particular bug to identify and fix the possible new bug? Or does he/she finish working on the current bug and eventually release a new version which would still contain the old bug?

Embed from Getty Images

Once the programmer starts on a new release, adding new features and improvements over the original version, bug notification and fixing acquires a new layer of complexity, one which a single developer may find impossible to handle, so he or she might abandon the software rather than take on the complexities of bug management.

Other times teams form or businesses take up the software, and bug management and fixing become formalised, but updates still need to be supplied to the users. From the user perspective, updates are more regular and fixes may be supplied in the updates if they are lucky.

Embed from Getty Images

Updates have had a bad reputation in the past. In the early days of computing operating systems (such as Windows) could become unbootable after an upgrade if the user was unlucky. This generally could be tracked down to issues in the driver software that controlled the various attached or builtin devices on the computer.

Things are now a lot better. Drivers are written to be more robust with respect to operating systems upgrades, and operating systems have become better at handling issues with hardware drivers. It is rare these days for an upgrade to render a system completely unbootable, though an upgrade can still cause issues occasionally.

Embed from Getty Images

Users have become used to preforming upgrades to systems and software, and in some cases they, by default, do not have a choice whether or not to upgrade. They do not, in most cases, know exactly what upgrades have gone on to their computers and do not known what fixes are included in these upgrades.

Software updates are often seen by users as a necessary evil. There are reasons for updates though as they may well close security loopholes in software, or they may enhance the functionality of software. Just don’t expect an early fix for that annoying bug though, as the developers will almost certainly have different priorities to you. If it isn’t in this update, maybe it wasn’t serious enough to make it. Hopefully it will be in the next update, which will be along soon!

Embed from Getty Images

Software

ModernSoftwareDevelopment

Coding is a strange process. Sometimes you start with a blank space, fill it with symbols and numbers, and eventually a program appears at the end. Other times you take your or someone else’s work and modify it, changing it, correcting it, or extending it.

The medium that you do this in can be varied. It could be as simple as a command line, a special “Integrated Development Environment” or “IDE” or it could be a fancy drag and drop within a special graphical programming application such as “Scratch“. It could even be within another application such as a spreadsheet or database program. I’ve tried all of these.

 

BasictoPHP - Integrated Development Environment

The thing that is common to all these programming environments is that they run inside another program – the command line version (obviously enough) requires that the command line program, which receives the key presses necessary to build the new program and interprets them, must be running, and the command line program itself runs in another program.

Which itself runs in yet another program, and so on. So, is it programs all the way down? Well, no. One is tempted to say “of course not”, but it is not immediately apparent what happens “down there”.

Hawaiian Green Sea Turtle

What happens down there is that the software merges into the hardware. At the lowest software level the programs do things like read or write data values in specific bits of hardware, and move or copy data values from one place to another. One effect of a write, move or copy might be to cause the hardware to add two numbers together.

Also, the instruction may cause the hardware to select the next instruction to be executed depending on the data being executed. It may default to the next sequential instruction, or it may execute an instruction found elsewhere.

MCS650x Instruction Set

An instruction is just a number, an entity with a specific pattern within the computer. It has a location in the hardware, and is executed by being moved to another location in the hardware. The pattern is usually “binary code” or a string of ones and zeroes.

In the hardware component called a CPU, there are several locations which are used for specific purposes. Data may be found there or it may be copied there. At certain times the data will be executed or processed. Whatever the purpose of the data, it will travel as a train of zeroes and ones though the hardware, splitting, merging and being transformed by the hardware. It may also set signals and block or release other data in the CPU.

Acorn 2MHz6502CPUA

The designers of the CPU hardware have to design this “train system” so that the correct result is achieved when an instruction is processed. Their tools are simple logic circuits which do things like merge two incoming trains of zeroes or ones or split one train into two or maybe replace all the zeroes by ones and vice versa. I think that it is fairly accurate to say that the CPU designers write a program using physical switches and wires in the hardware itself.

So we have reached the bottom and it is not programs, but logic gates, and there are many layers of programming above that to enable us to write “Hello World” on our monitor devices. It’s an elegant if complex system.

Of course we can’t program in logic gates to achieve the “Hello World” objective. We have many layers of programs to help us. But how do the various layers of programs work?

Hello World App

The designers of the CPUs hardware program the device to perform certain actions when a special code is dropped into a special location. There are only 100 to 200 special codes that a CPU recognises and they are patterns of zeroes and ones as described above.

Obviously it would be tedious and error prone to actually code those special codes (and the associated data locations, known as addresses) directly into the computer, so small programs were written in the special codes to recognise mnemonics for the codes and these were then used to write more complex programs to automatically create the strings of codes and addresses necessary to create the lowest level code.

This process is known as boot-strapping, as ever more complex programs are built, culminating in what are known as high level languages, where little or no knowledge of the hardware is required. When a new type of machine comes along, using a different type of hardware, it is even possible to write the programs at a high level on different hardware so that the software can be “ported” to the new system.

Lighthouse at Port Adelaide

The highest level of programs are the ones that actually do the work. These programs may be something like a browser which fetches data and displays it for the user, but a browser is created by a programmer using another program called a compiler. A compiler’s function is to create other programs for the end user.

However to write or modify a compiler you need another program, or maybe a suite of programs. Code is usually written in a human readable form called “source code”. An editor program is needed to read, modify and write the source code. A compiler is needed to change the human readable code to machine executable code and a linker is usually required to add all the bits of code together and make it executable.

GCC-4.0.2-screenshot

All these programs have their own source code, their compiler and linkers, and it may seen as if we have an issue with all programs requiring their own source code and so on. It seems that we have an infinite regress again. But once we have an editor, a compiler and a linker we can compile any program we like, and we don’t need to know the details of the hardware.

And what is more those programs, editor, compiler and linker, can created using an existing compiler, editor and linker on another different machine and simply transferred to the new one. In some ways every compiler, editor and linker program can trace its ancestry back to a prototype written at the dawn of the computer age.

IMGP1181 Colossus

Religious matters

English: Christadelphian Meeting Room, Napton ...
English: Christadelphian Meeting Room, Napton This Christadelphian chapel stands on the corner of Howcombe Lane in Napton. (Photo credit: Wikipedia)

Seen on the signboard of a Christadelphian Church : “Seminar: Brexit and Bible Prophecy”. What?? Anyway, that started me thinking about religion again.

In the days that religion was developing as a means of understanding the world, when natural occurrences like storms and earthquakes were hypothesised to be caused by supernatural agencies, such as spirits and gods, the details didn’t matter too much to people.

English: Cains Folly Landslide (2) Very active...
English: Cains Folly Landslide (2) Very active landslide, Greensand sitting on Lias. (Photo credit: Wikipedia)

If your neighbour believed an evil spirit caused a landslide, it didn’t matter too much if he thought that the spirit was male, while you categorised it as female, and your other neighbour didn’t assign the spirit a gender at all.

Eventually problems arose with this approach. When Johnny arrived home with a bloody nose because he had insisted that the spirit was female and Nigel next door had been told that it was male, issues arose. Nigel always was a bit of a bully, as was his dad.

Bloody nose 1
Bloody nose 1 (Photo credit: Wikipedia)

The tribe as a whole would, over time, discuss the matter and come up with a consensus. The landslide djinn had to be female as it didn’t actually try to kill anyone, but made work for the men, who had to clear the slide from the track.

As time passed, the original idea of the evil spirit would become embedded in a mythos or body of myths, as the spirit’s role and actions are extended upon, firstly by grandparents telling kids scary stories to keep the kids awake at night, then embedded into the structure of the society as the adults, more or less jokingly at first, try to appease the wrathful spirits.

Dance of the Lord of Death, Paro
Dance of the Lord of Death, Paro (Photo credit: Wikipedia)

Eventually people starting taking the stories seriously. A whole structure of myths and stories got inflated into a cosmology and a rationale for the way things were. Johnny’s and Nigels’ descendants took all the stories and hypotheses and treated them as if that was the way things were, and to some extent they were correct.

Except that the daemon that started the rock slide was called gravity and it was not a active being with human characteristics but a force of nature, impassive and impartial.

Lightning.
Lightning. (Photo credit: Wikipedia)

Having experienced the scientific revolution, most societies on Earth these days recognise that earthquakes and landslides are not caused by malevolent supernatural beings, but by the forces of nature, but this has to be taught to kids.

As they grow up they believe in fairies and Father Christmas, but they soon learn to distinguish truth and fact. They may well believe in these beings for the benefit of adults and the possibility of presents and money for some time, but their belief in these beings is ambivalent. Eventually their belief is fake, and everyone knows that. It becomes a game.

Oberon, Titania and Puck with Fairies Dancing
Oberon, Titania and Puck with Fairies Dancing (Photo credit: Wikipedia)

Without any knowledge of science, our ancestors did the best that they could, and make the best guesses as to causes of phenomenon using the tools that they had at the time – myths and stories, based around being of unlimited power and dominion.

With the advent of writing, these myths and stories could be written down. The writings did not change, so the views of people were now tied to these fixed stories. A class of people arose who existed for the single purpose of understanding the writings and even interceding with the supernatural beings.

Illustration from a collection of myths.
Illustration from a collection of myths. (Photo credit: Wikipedia)

Some of the sages, magicians and priests would have been wise individuals who, fundamentally, did not believe the myths and stories in the writings, but who could see an opportunity, but the vast majority of the religious officials would have really believe the religious corpus.

When two culture came into contact there would have been a mismatch in the religious beliefs. Since the supernatural beings were, in general, born from disasters, such as floods and landslides, it would not do to offend them.

Brisbane City Floods
Brisbane City Floods (Photo credit: Wikipedia)

But the guy from the city over there believed that the seas came from the salt tears of the goddess, while you knew that the seas arose when the god split the rocks and the seas sprang from the depths of the earth.

What to do about this? Well, in most cases the traders or travellers would have no problem with this, most people being practical in nature, but when the priests heard, well all hell would break loose.

Priest with cross at Lalibela
Priest with cross at Lalibela (Photo credit: Wikipedia)

At the very least, some people would travel to other lands to try to persuade the inhabitants of their errors, and they would either succeed of fail. If they failed, they could be cast out or, possibly, put to death in various horrible ways.

If the missionaries were put to death, why then that would escalate things and war could be the end result. After all, yours was the one true religion and we can’t have heathens looping off the heads of true believers can we?

A group of believers
A group of believers (Photo credit: Wikipedia)

So we get religious wars, crusades and jihads. Remember, although we cannot really conceive it these days, religion was the only explanation people had of the world. Science would be along in a few centuries. In this rational and largely atheistic world that we live in, we can’t really understand the fundamental belief in religion that used to prevail.

We teach religion as a subject in schools, like maths or geography. It’s largely been dissociated from feelings and even belief. This is why in the Western nominally Christian world we are uneasy when people believe deeply in religion. It seems to us like a sort of throwback to more ignorant times.


Embed from Getty Images

Religion is still strong in the rest of the world, though it does appear to be waning in influence. From our less religious point of view, the rabid followers of Islam seem insane and wrong, and it is hard for us to understand them at all. More moderate Muslims probably think that the so-called “radicals” are wrong, and are horrified by their actions, just as Westerners who are nominally Christian are horrified by the actions of the Klu Klux Klan or other extreme Christian cults.

Religions can and do exist side by side in many societies, but it is an odd situation. So long as people keep their views to themselves and practice their religion discreetly people get along. But if someone believes that their religion is the only true religion and that others are going to burn in hell or whatever, then that person would consider themselves to be justified in trying to save the others from themselves, by force if necessary. Or maybe that person believes that their deity requires them to force others to believe, and the same applies.


Embed from Getty Images

Maybe this is not the end of the story. Science is an explanation of the world, observation based. It is possible, though unlikely in my view, that this world view is as misguided as religion is misguided. Maybe our descendants may look on science as we look on religion, as necessary, but ultimately wrong headed view of life.

Science and Religion are portrayed to be in ha...
Science and Religion are portrayed to be in harmony in the Tiffany window Education (1890). (Photo credit: Wikipedia)