The early Internet

A vision of on-line shopping from 1969.

An old news story about The Internet from 1993.

Using The Internet before The Web: gopher and Telnet.

Is the Internet 'Pie in the Sky' - a news story from the 90s
Scott Reynolds: Explaining The Web and the Internet in 1996. Covers how to connect your modem, using email, bookmarking webpages, using a search engine and gopher.

CBC-TV introduces the Internet 1993

Want more computing history? Check out our timeline of computing.
#computingHistory #EarlyInternet

Anand Agarawala: BumpTop desktop is a beautiful mess

Very cool stuff - I want!

BumpTop organises your desktop like your physical desktop. A rich way of interacting with your stuff. +1 geek point for Anand Agarawala.  What a shame it is no longer available for download.


A weird website design trick that might just work

Following a conversation with an A-level computing student today, we agreed to experiment with a strange website design trick: put a QR code to your home page on your homepage.

(....pause for dramatic effect)

You might be wondering why you would want a QR code that links to the page you are already on?

Simply to allow easy sharing of the page with anyone looking over your shoulder.

I've put one on our other website (which, yes, I know needs a whole new redesign to stop it looking like a garish, teletext nightmare.  I wish I had the time.  It certainly won't win any awards for design), and I will put one on this page as well soon too.

Thanks to Matthew for sharing his thoughts and doing most of the work in coming up with my idea. Does anyone know of any websites that have tried this?

A QR code to replace the 'home' button for easy sharing of a website across devices.
I wonder how many website designers I will offend with this post.....?

#QRcodes #websitedesign

Doctor Who Theme (all of them)

Just because I heard this tune this morning, I've decided to post it here, with some facts so I can pretend I'm teaching you something:

Doctor Who meets Orbital Timeline.
Below is a video montage of all the Doctor Who themes so far (nearly), or check out the Doctor Who theme soundboard.

#doctorWho #orbital

Windows 10 looks amazing

I've just caught up with the announcement from Microsoft, and can say that I am genuinely excited about Windows 10 which looks truly amazing.  Code written once that runs on every device in an appropriate way.  Seamless transition between tablet and desktop mode.  The MS-Word engine sitting inside your outlook app.  Cortana integrated into desktops.  It all looks like good stuff for those interested in productivity, but they have improved the experience for gamers as well, with the Xbox app sitting on every device.  I know my gamer friends will be interested in the ability to stream Xbox content onto any Windows 10 device.  Even the new web-browser (codename Spartan) looks great.  Microsoft have revolutionised the way we can share content from the web (please, please, please be standards compliant).  I am very interested in the new Surface Hub device, an 84 inch screen with integrated Win 10 and OneNote.  They didn't talk education, but this device has clear applications in the classroom.

The year ahead looks very compelling.

If you haven't already, then do check out the live event: announcement from Microsoft.

All the best of Win 7 and Win 8.  Am I dreaming?  This looks like a quantum leap in Computing.

Oh...and did anyone mention holograms?

Addendum:  Do check out the competition as well.  I understand that Apple may make one or other of their devices a little bit bigger or a little bit smaller this year.

Getting started with the Little Man Computer (post #02)

Continuing our series on The Little Man Computer.  This time - adding.

<-- previous post.  

The little man has an instruction for adding - simply "ADD". An instruction for adding might look like "ADD X", which means "add the value at the address labelled 'X' onto the accumulator." 

Example program number four.

Add three numbers together.

...adds three numbers together

lda x
add y
add z
.. the values of x, y, z
.. are coded here
x dat 5
y dat 10

z dat 100

When the LMC compiles this program it translates the first four commands into the codes, 599 (lda x), 198 (add y), 197 (add z) and 902 (output) as shown in the image below.

The LMC memory showing how the first four commands have been translated into codes.
The values of 'x', 'y' and 'z' are placed at locations 99, 98 and 97 (the little man decides that this is the best place to put them).  In the image below you can see the values 5, 10 and 100 in these locations.
The little man puts the values of 5, 10 and 100 into address 99, 98 and 97 and labels them x, y and z.

What is happening?
First the little man reads code 00: 599 and translates this as "Load the value in address at 99 into the accumulator.  This is our value 5.
Now that we have a value in the accumulator, we can add the other two values on, so...
The code 01: 198 means 'Add the value at address 98 onto the accumulator.'  This means that 10 is added to 5 and stored in the accumulator.  The accumulator should now contain the value 15.  The next code, 02:197 means, 'Add the value at address 97 onto the accumulator', so the value 100 is added to the current value in the accumulator - 15, giving an answer of 115.  Opening the output report should prove this:

The output instruction puts the current value of the accumulator into a file for easy reading.

Mnemonics used in this post:

add  -  adds a value at an address onto the accumulator.  For example 'add 99' adds the value at the address '99' onto the accumulator.  CAREFUL!  This is NOT the same as adding the value 99 to the accumulator.

lda  -  loads a value at an address into the accumulator.  For example 'lda 99' puts the value at address '99' into the accumulator (replacing any other value currently there.

out  -  writes the current value in the accumulator into the output file. 

dat  -  puts a value into the computer memory.  for example, 'one dat 001' puts the value '1' into an address and labels it 'one'.


Getting started with the Little Man Computer (post #01)

The Little Man Computer is a simple way of showing how a real computer works underneath.

We can imagine a little man running around inside the computer fetching instructions, and faithfully executing them.  

The little man uses the following instructions, which can be either coded as mnemonics in a program, or posted directly into the computer's 'brain'. The computer memory is represented as one hundred boxes numbered 0-99.

Instruction                    Mnemonic          Code
ADD                            ADD               1..
SUBTRACT                       SUB               2..
STORE                          STA               3.. 
LOAD                           LDA               5..
INPUT                          INP               901
OUTPUT                         OUT               902
BRANCH ALWAYS                  BRA               6.. 
BRANCH IF ZERO                 BRZ               7..
BRANCH IF ZERO OR POSITIVE     BRP               8.. 

For example, the Code 399 means 'STORE the current value in box 99.  We could write this as "STA 99"

Example program one.
Get a number from the human and store it in the computer memory (for later).

... a simple LMC program

sta 99

The first line is a comment and is ignored by the little man.  It is there to help us understand our program.
The second line is a request for input.
The third line is our STORE in address 99

Here is a screenshot:
Your program after you compile it and press "execute".  You should see the LMC has converted our mnemonics into two codes in adresses 00 and 01.  The value we entered is put into address 99.

In fact we could store our value at any point in the computer memory.  Try the following program:

Example program two.
Get a number from the human and store it in the computer memory (for later).

... a simple LMC program two

sta 54

Here we store the human's input at address 54.

What is happening?
Here, the mnemonic "INP" has been translated to the command "901".  When the little man reads this, he knows that it means, "get input from the human".  Here I typed the number '4', and the value of 4 is placed into the accumulator. The mnemonic instruction "sta 54" is translated to "354" and the little man understands that this means, "write the value in the accumulator into address 54".

Example program number three.

Let the little man decide where to put the human's input.

...example of variables
sta first

sta second

Here the little man has decided that it is best to store the first value in address 99 and the second in 98.
What is happening?
In this program there are two inputs.  The little man also receives the instruction "sta first", which means "store the value in the accumulator into the next available address and label it 'first'".
The instruction "sta second" means "store the value in the accumulator into the next available address and label it second."

Next time.  Adding numbers together.
Algorithms song

Algorithms song

A cheesy* song about algorithms.

*Note that there is no such things as 'cheesy', only 'emotionally resonant'.
The (Unofficial) Talisman Computer Game

The (Unofficial) Talisman Computer Game

I discovered that I still have a back-up copy of the original Unofficial Talisman Computer Game (the one that was removed by request of Game's Workshop's over-cautious legal department in 2009), so I decided to upload the site to a new server (for educational and legacy purposes only).

There is an even older version of the website here as well.

You still won't find the actual game on any websites I control, so here is a video of it running instead.

Starwars name generator NOT phishing attack

Although intended only as a bit of fun, my Starwars name generator has received more than its fair share of criticism.  Some users are worried that the app was a phishing attempt; in other words, an attempt to harvest security question details. Although this is not the case (and you are free to view the source code by pressing CTRL+U to check yourself, and despite the presence of disclaimers) I have altered the questions so that it no longer asks for potentially sensitive details.

Mother's maiden name has been replaced with "random object", and first car replaced with "object to left".

Phew!  Do please like and share, enjoy in the spirit intended and rest assured that I do not, and never will farm your personal information.  Find your Starwars name now.

PLEASE do be careful when you play on the Interwebs - don't give personal information to apps you don't recognise.  In the words of C3PO - "R2D2, you know better than to trust a strange computer" (The Empire Strikes Back).

  1. “Ben! I can be a Jedi. Ben, tell him I’m ready!” (Thumps head on ceiling.) “Ow!”


Timetrek is a game by D.Elliot for Program Power (released in Europe in 1982).  I remember this game fondly and so when I found it on the brilliant BeebEm BBC Microcomputer emulator, I thought I would have a go at porting it over to the Windows platform. I hope that neither D.Elliot nor Program Power mind that I have done this.

For the most part all I have had to do is slow the game down so it runs correctly on modern PCs, although I also have made a slight change to the Enterprise's phasers - they didn't work well under Windows.

DOWNLOAD executable and source code. (BB4W source code)

Timetrek is a version of the Star Trek text games that were popular in the 1970's and 80's.  Your mission to command the Enterprise and rid the galaxy of all klingons.  Yes, every single one!  Not a bad little game, from a time when you could squeeze a good game into 11 kilobytes.

Timetrek in all its glorious teletext graphics goodness.

The Enterprise (the 'E') shown on both the galactic map and the short range scan.  The asterisk is a star (don't collide with it), and there appears to be one pesky klingon one quadrant up.

The Enterprise in battle with two klingon ships.  Good stuff!

The rules (part 1)

The rules (part 2)

Choose your skill level carefully as the difficulty ramps up very quickly.

The original cover from the Micro Power release.