Category: Computing

Mini review: “Coders: Who They Are, What They Think and How They Are Changing Our World” by Clive Thompson (audiobook edition)

This book is a must read if you are considering becoming a coder – and also if you work with them. The first half or so of the book goes into detail about how most people get into writing software (formal education or being self taught), the nature of the job (what they do all day), possible career paths and the personality characteristics found in many coders – both good and bad. It looks at the different types of people coming into the industry, the misleading myths that have built up, the particular challenges for women and the realistic outlook if you are looking for a mid-career job change – coming in from a different industry. Very interesting, and not something that I recall seeing dealt with in such detail elsewhere.

The remainder of the book examines the tech scene in more general terms – a look at the early days of computing and how people got into computers in previous decades, the decline in the proportion of women in the profession over time, the rise of AI and machine learning, the social problems (little predicted at the beginning but now very much in evidence) that arise with becoming a massive scale platform and how the venture capital industry determines how companies have to behave.

There is a bit of repetition as things that are mentioned briefly in the first part are dealt with in more depth in the second, but the author does a good-enough job at bringing things back to how these things are relevant to coders. The final chapter on “blue collar” coders is particularly good, so the book finishes on a high. It should give people thinking about going into this field some things to consider, which can only be a good thing.

The narration of the audiobook is interesting – often the soul of these technology / business books is sucked out of them by a narrator who talks in some “default-American” tone, unremarkable and uninspiring. At first I thought that this was going to be yet another example, but the performance is more nuanced – it feels like it is the author reading their own text but it is more professional. He gets the tone just right.

Mini review: “The Soul Of A New Machine” by Tracy Kidder

This wonderful slice of computing history comes from 1982 and tells the background story of the creation of a new computer by a team at the company Data General. They had a successful line of 16-bit computers but the business was being threatened by competitors who were already producing 32-bit machines.

I’d never heard of Data General but it turns out that at the end of the 1970s they were a big deal, although a lot more brash and rough around the edges than their competitors such as IBM.

There is always a concern with a book this old that the issues would no longer be relevant, the technology archaic. Neither is true. Processors have advanced in the meantime (and to some extent regressed – see below) but they still represent the core of a system. The issues the author raises are more than just technical – his focus is on the personalities of the team members, the challenges and the pressures they face.

In the last couple of years we have seen issues such as Spectre and Meltdown arising from flaws introduced in CPUs in the 1990’s, so processor design and microcode still impact modern computing. Also, check out the new Mac Pro from Apple – a computer that they had to design and build from scratch under severe time pressure to ensure that the company kept an important section of it’s user-base happy. I’m sure that the experience of the engineers on that project would echo what happened decades ago in the Data General offices.

The author does an excellent job of explaining the technical issues without going too deep (or finds a suitable metaphor to put his point across) and keeps the pace flowing nicely.

And to wrap it up, the bitter-sweet ending rings true – he managed to capture a special moment in time and did it brilliantly. You are fully engaged in the story and the people. This is an excellent book and I recommend it to everyone, especially if you work in IT.

• Wikipedia: Data General

• The Computer Museum History Center: Core 2.1 – The Data General Nova (direct link to PDF file)

• Wired: Souls, Lost and Found (2008)

• Spare Cycles: Article: “SPACEWAR” by Stewart Brand (Rolling Stone magazine, December 1972)

• Spare Cycles: Mini review: “Troublemakers: How a Generation of Silicon Valley Upstarts Invented The Future” by Leslie Berlin

• Spare Cycles: Article: “The Tinkerings of Robert Noyce” by Tom Wolfe

Setting up Wireguard VPN so that it can be used with an iPhone or iPad

 

wireguard

 

Note: This is correct as of December 2018 and should be seen only as an experiment because Wireguard is not yet production ready (pre version 1.0).

I have heard a lot about Wireguard VPN recently because I listen to some Linux-related podcasts and they were being very positive so I thought I’d try it out.

My aim was to set up a Wireguard VPN server on Amazon Web Services (AWS) and configure it to work on an iPhone (currently running iOS 12).

To do this I found very good two articles online and used bits from both. Combining those with installing a beta version of the Wireguard iOS app got me up and running.

The two articles I used were:

Article 1: Installing WireGuard on Amazon Lightsail 

Article 2: Wireguard VPN: Typical Setup

I suggest reading both in full before you start. There are many other articles out there that also explain how to set up Wireguard, so try them if these particular articles are not to your taste.

Setting up a virtual server on AWS

Article 1 is very good on this. It explains how to set up a virtual server on AWS, so follow the steps mentioned there.

I made a couple of changes. Firstly, I chose a different operating system. My choice was Ubuntu LTS 16.04. I did this for two reasons – I am familiar with Ubuntu and Article 2 also uses Ubuntu in its example.

The second change was that I used a different UDP port. Neither article specified a particular port number that should be used so I went with port 53133, which was mentioned here.

I mention the UDP port because it is something that has to be specified when setting up the virtual server on AWS.

Note about the user on the AWS Ubuntu server

When you log onto the virtual server, you do so as the user “ubuntu”. There is no password for this user. You must specify sudo otherwise you will get permission denied messages when running commands or modifying configuration files.

 

Setting up Wireguard on the virtual server

I used Article 2 for most configuration steps (eg installing Wireguard, generating server and client keys, generating server and client configs, firewall, DNS) and carried out the steps in the same order.

Make sure you read what you are copying / pasting from the article(s) as you have to insert your own specific information in some places (key details, IP address, UDP port number).

The only change I made was when naming the client config. Instead of calling it wg0-client.conf, I chose to call it simply client1. I thought it might be easier to follow later if I want to configure more clients so that they can connect to the server.

In Article 2 I finished with part 7 (configuring DNS). This is the last stage of setting up the server.

Part 8 is about setting up a client, but it is referring to a Linux machine. I want to get it working on iOS so there are some different steps to take.

Installing the Wireguard iOS app

The Wireguard iOS app is still in beta so you have to use Apple’s Testflight app to install it. First install Testflight and then see the details here.

This will change in future once the app is out of beta, when you will be able to install it in the normal way.

 

Setting up the Wireguard iOS app with your configuration details

For this, I return to Article 1. Go to the “Client setup” section.

Ignore the fact that it talks about an Android app.

At this point we have already set up the client config file on the server so it is not necessary to do that again.

The bit that you need describes how to create a QR code. Run the “qrencode” command, ensuring that the client name you use matches the name of the client config file on the server (mine is called client1).

Note that qrencode was not installed by default on Ubuntu 16.04 but was quickly installed with apt-get.

This will actually display a QR code in the terminal window.

In the iOS app choose the option to create a Wireguard tunnel from a QR code, give the app permission to use the phone’s camera if necessary and then point the phone at the QR code on the screen.

An entry for your Wireguard server will appear in the app – just switch it on.

I’d recommend that you do the checks to make sure that your phone is routing through the VPN server by testing your IP address and DNS queries.

Mini review: “A Logic Named Joe” by Murray Leinster (From “Machines That Think”, an early 1980s science fiction short story anthology)

logic_named_joe

For a while now I have been reading more about the history of computing (in the USA and in particular Silicon Valley).  It started with the sublime article “The Tinkerings of Robert Noyce” by Tom Wolfe in Esquire magazine and followed by the revelatory – to me at least – Rolling Stone article “SPACEWAR” by Stewart Brand.  Next up was the wonderful book “Troublemakers” which covered Silicon Valley from 1969 to 1984.

The reason I’m interested in this is because the more I find out about the history of computing, the more I realise that the world that we live in today was conceived several decades ago.  Ideas that we think of as modern originated back then.

What they predicted back then, we are enmeshed in today.

The story “A Logic Named Joe” features in “Machines That Think”, a science fiction short story anthology from 1984.

The story is just 17 pages long but I was astounded.  This story from 72 years ago appears to predict the internet, artificial intelligence and some of the less salubrious social consequences of having the world’s information at our fingertips.

The introduction talks about the importance of the story due to the way it predicted widespread ownership of computers, made possible by the reduction in size and cost of the machines.  In fact, the world the story was describing had not yet arrived in 1984 – it was too early to comment on the story and truly understand how predictive it would become.

You can read the story in full and listen to the excellent radio adaptation – both highly recommended.

 

 

 

 

IBM 5 in 5 predictions (2018): blockchain, cryptography, AI and quantum computing

The “5 in 5” is IBM’s annual prediction of five things that will change our lives in the next five years.

If these are correct, the future will be here sooner than you might think…

• IBM: 5 in 5 – Five innovations that will help change our lives within five years

• IBM: Changing the Way the World Works: IBM Research’s “5 in 5”

Mini review: “Troublemakers: How a Generation of Silicon Valley Upstarts Invented The Future” by Leslie Berlin

troublemakers_cover

This unconventional, informative and entertaining book looks at the history of Silicon Valley between 1969 and 1984 by interweaving the personal stories of seven people who are not necessarily widely known.

I was drawn to the book by the fact that Bob Taylor featured, who I knew played an important role at Xerox PARC and at the beginnings of the ARPANET, which would go on to form the basis of the internet. I had recently read about him in an article in Rolling Stone magazine from 1972 and wanted to find out more. Mike Markkula was also a name that rang a bell but I did not know about his story. It was really interesting to find out the essential role he played in the early days of Apple Computer – I follow Apple news closely so I was surprised how little I knew about him.

It was also good to have a couple of women amongst the men – this book takes a good look at their particular battles against the attitudes of the time. Having said that, it is not the only reason they have been included. All the stories – regardless of gender – highlight the skills, hard work and dedication needed to succeed, and also how they dealt with setback or failure.

What was occurring in Silicon Valley at that time really was remarkable, even if it did not always seem that way to the people there at the time, and even if the magic of that moment was not to last.

I would highly recommend this book to anyone interested in Silicon Valley, especially if they work in the field of IT – a bit of insight into how we got to where we are today would be valuable, and this is an easy, likeable read.

Also:

• Spare Cycles: Article: “The Tinkerings of Robert Noyce” by Tom Wolfe (an excellent article if you want to go back to the very earliest days of the Valley, from the 1950’s to the 1970’s).