Electronic vote

Three facts before I start writing:

  1. I love technology advances, I love programming and I like how the world evolves thanks to technology.
  2. In Argentina there is a debate about electronic vote (Wikipedia has part of an article speacking about our case here).
  3. This blog is not about politics, and I do not sympathize with any political party. Of course I have political ideas, but I don’t trust in politicians.

The first impression is that I would love to have an electronic way to vote. It is fast, less paper consumed, less ways to do political patronage. But… I am against voting that way.

Let me tell you why:

  • Fraud: Some people says that voting this way avoids fraud because counting votes and filling telegrams is not anymore in (corrupted) human hands. Well, the program is made by (maybe corrupted) human hands. At that point this is just changing who put the hands moving from visible cheating to a slightly more difficult cheating, but the cheating factor is not deleted, it is only more difficult to find it.
  • Porposal: Computers count faster than humans. It is ok. But also computers count what programmers want to count, but we will go to that point later. The system that wants to be implemented in Argentina uses computers but also papers that are printed from the computers, so, votes in paper should be counted, unless we trust what the computer says. If we have to count paper either way, why use computers?
  • Source code: Here is for me as a developer, the main point: Who codes the voting program, and more important: who audits it? If it is the state or justice, you have trust a player that is also a referee. If it is a private corporation, it is contracted by the state, so, nothing changes. One solution is that the code is open source, so anyone with programming skills can read and audit.
  • Source code part II: Let’s say that the code is open source and the company that developed the voting systems gives you the code, who audits that the code is the same that the election computers have?
  • Source code part III: In the middle of voting, a machine stops working. It is changed, who audits that? (ok, the last three points could be resumed as one).
  • Security: ANY software is vulnerable. No matter how secure the company makes it (and lets be nice and say that the company really wants to make it secure), any software is vulnerable. About the BUE, there are some articles (In spanish) about vulnerabilities in the system. Here, Here, Here.
  • Examples: Venezuela is a good example of electronic voting manipulation. Most people in the country rejected to vote in the last election. Maduro’s government said that 8 million people voted and even the company that made the software, Smartmatic said that there was a big fraud. In other elections, Maduro himself claimed that he can know who voted against him.
  • Examples II: Lots of countries that had electronic voting systems are starting to ban it. Netherlands and Germany are some examples.

So, is electronic vote the problem? At some point I am starting to think that fraud is going to happen no matter what kind of voting system we use, but using computers the difference is that fraud will happen without most of the people notice it.

Game of Life

gol1

Today we are going to talk about something that fascinated me for a long time. The Game of Life by John Conway.

Game of Life is a zero-player game created by mathematician John Conway in 1970 and is a cellular automation game.  This game is about cells that are born, live and dies in different turns with some simple rules.

Let´s say our world is a grid and every position of the grid can have a living cell or no cell. In every turn by some rules that I am about to describe, for every point of the grid a cell can born, keep alive or die.

The rules are:

  1. Any live cell with fewer than two live neighbors dies, as if caused by under-population.
  2. Any live cell with two or three live neighbors lives on to the next generation.
  3. Any live cell with more than three live neighbors dies, as if by over-population.
  4. Any dead cell with exactly three live neighbors becomes a live cell, as if by reproduction.

Simple, right? Well, yes, but still fascinates lots of people (including me).

Another thing: What is the meaning of “neighbors”? Every point on the grid has 8 neighbors that are the adjacent points (I am trying to use points instead of cells, because I am using “cells” for our living creatures in the game).

If you still don’t understand well what is this about, well, maybe John Conway can explain a little more about his “game”, some good concepts and if he hats or not his creation (the channel Numberphile that is really great BTW contains some other videos of John Conway).

There are some “patterns” that appear in the game:

Game of Life Patterns
Game of Life Patterns

 

There are lots of implementations of the game in any language that you like, so, starting next post lets do some code to implement this on JavaScript and Canvas (yes, last post I was talking about how great is Python, but in the first coding post I will be doing this in JavaScript, this is how crazy is this blog).

What´s more, I just found an old video in my channel about an implementation I made using QB64: