Babbage's Bag


A Programmers Guide To Interrupts
Written by Harry Fairhead   
Friday, 29 April 2022

The trick the computer uses in order to be so productive is to divide its attention between a number of tasks – and for this it uses interrupts. But what exactly is an interrupt and how should programmers think about this essentially hardware idea?

Last Updated on Friday, 29 April 2022
Read more...
 
Advanced Hashing
Written by Mike James   
Thursday, 22 April 2021

Hashing is arguably one of the great ideas of computing and it has hidden depths. Extensible hashing and perfect hashing are ideas that are worth exploring.

Last Updated on Thursday, 22 April 2021
Read more...
 
All About Kinect
Written by Harry Fairhead   
Wednesday, 30 March 2011

The Kinect is currently the hardware that provides developers with the greatest opportunities for innovative programs - both games and "serious" artificial applications. How does it work? How do you use it? What can you use it for?

Last Updated on Thursday, 14 July 2011
Read more...
 
Artificial Intelligence - Strong and Weak
Written by Alex Armstrong   
Monday, 04 May 2015

The search for intelligent machines started long before the computer was invented and AI has many different strands. So many that it can be difficult to see what it is trying to do or what it is for. We already have an easy way to create intelligent beings from scratch why do we need another one?

Last Updated on Tuesday, 05 May 2015
Read more...
 
Assemblers and Assembly Language
Written by Harry Fairhead   
Friday, 03 May 2019

The sort of instructions that most computers recognize are too simple for humans to be bothered with - and so we invented assembly language. Find out how it works and how it started the whole movement to abstract away from the computer's hardware.

Last Updated on Saturday, 04 May 2019
Read more...
 
Binary - Negative Numbers
Written by Mike James   
Sunday, 25 June 2023

Binary arithmetic is easy, so easy a computer can do it, but what about negative numbers? This is altogether more tricky and isn't just a matter of putting a negative sign in front of the number - although that is one way to do it..

Last Updated on Sunday, 25 June 2023
Read more...
 
Binary Arithmetic
Written by Mike James   
Monday, 30 October 2023

Do you know binary? There are only 10 possible answers and even if it's a 1 it's still fun to consider the wider concepts.

Last Updated on Saturday, 04 November 2023
Read more...
 
BIOS
Written by Administrator   
Wednesday, 26 May 2010

You don't often encounter the BIOS any more but when you do it is usually something very messy and unpleasant. What is the BIOS and why do we need it?

Last Updated on Wednesday, 26 May 2010
Read more...
 
Bus Basics
Written by Harry Fairhead   
Sunday, 18 September 2022

Buses are everywhere and yes when you are looking for one they tend to come in threes! With that joke out of the way, let’s take a look at what a bus is in general and in particular.

Last Updated on Sunday, 18 September 2022
Read more...
 
Cache Memory And The Caching Principle
Written by Harry Fairhead   
Thursday, 23 September 2021

The caching principle is very general but it is best known for its use in speeding up the CPU. We take a look a the basics of cache memory, how it works and what governs how big it needs to be to do its job.

Last Updated on Thursday, 23 September 2021
Read more...
 
Cellular Automata - The How and Why
Written by Mike James   
Friday, 26 October 2018

You may know about Cellular Automata. If not you may have come across them in John Conway's game of Life, but why is this whole subject so interesting? We take a look at not only what a CA is, but why it is so important.

Last Updated on Saturday, 03 November 2018
Read more...
 
Codd and His Twelve Database Rules
Written by Mike James   
Thursday, 09 March 2023

Theories of how we should organize databases are thin on the ground. The one exception is the work of E.F. Codd, the originator of the commandment-like “Codd’s Rules”. This approach to database has been codified into SQL - Structured Query Language -  and so into most of the databases on the planet, despite what the NoSQL movement might want you to think. So what are Codd's Rules and what is a relational database?

Last Updated on Saturday, 11 March 2023
Read more...
 
Coded Easter Eggs
Written by Sue Gee   
Monday, 18 April 2022

A software Easter Egg is an intentionally hidden novelty or message concealed for personal reasons within a computer program or application.  We take a look at its history and original motivation and see how things changed when Googlers expanded the tradition.

Last Updated on Tuesday, 19 April 2022
Read more...
 
Compilers, Interpreters, VMs and JIT
Written by Mike James   
Thursday, 09 May 2024

The distinction between a compiler and an interpreter is one that can cause controversy. One programmer's compiler is another's interpreter and the whole subject gets very murky when you throw in the idea of the Virtual Machine and Just In Time compilation. So what is it all about?

Last Updated on Thursday, 09 May 2024
Read more...
 
Computational Complexity
Written by Mike James   
Thursday, 26 April 2018

A lightning guide to the basic ideas of computational complexity without the maths or the proofs. It's almost more fun than programming!

Last Updated on Thursday, 26 April 2018
Read more...
 
Copy protection and DRM
Written by Administrator   
Thursday, 13 May 2010

Copy protection, or Digital Rights Management (DRM) in general, is something that in most cases users hate and the entertainment industry really likes.

Last Updated on Thursday, 13 May 2010
Read more...
 
Data Compression The Dictionary Way - ZIP
Written by Alex Armstrong   
Thursday, 04 June 2020

One of the most important lossless forms of compression is the LZW dictionary based method. It turns up in lots of compression utilities - ZIP, Compress, Deflate and in GIF and PNG format files. It is also an important idea in programming and you really do need to know something about how it works - if only to avoid reinventing it from scratch.

Last Updated on Thursday, 04 June 2020
Read more...
 
Data Structures - Trees
Written by Mike James   
Thursday, 02 November 2017

Classic data structures produce classic tutorials. In this edition of Babbage's Bag  we investigate the advanced ecology of trees - perfectly balanced trees, AVL trees and B-Trees. 

Last Updated on Thursday, 02 November 2017
Read more...
 
Data Structures Part II - Stacks And Trees
Written by Harry Fairhead & Mike James   
Friday, 15 October 2021

Part II of our look at data takes us into more sophisticated structures that are fundamental to computing  - stacks, queues, deques and trees. If you don't know about these four then you are going to find programming tough and you will have to reinvent the wheel to solve otherwise simple problems.

Last Updated on Friday, 15 October 2021
Read more...
 
Dates Are Difficult
Written by Mike James   
Thursday, 29 August 2019

Date and times follow their own regularities, and they have nothing at all to do with binary, or even simple decimal, counting. First, clock and watch makers had to find ways of working with hours, minutes, seconds;  and then programmers had to find ways that were much simpler. Join us on a quick tour of the time and date system and how it can be mastered using the mod function. 

Last Updated on Monday, 13 April 2020
Read more...
 
«StartPrev12345NextEnd»

Page 1 of 5