Compression - the Starr Guide
Compression is an exciting topic - and here's an exciting explanation that shows why, via encryptions, Morse code, entropy and saying "umm" too often.
View ArticleBrackets are Trees
Brackets are at the heart of programming. Understand brackets and you can rule the earth - no, seriously! Brackets, trees and stacks are all interconnected in a very deep and fundamental way.
View ArticleSorting Algorithms as Dances
The surprise viral success of I Programmer's year has to be the amazing "Sorting Algorithms as Dances", a set of videos by Sapientia University that show how to sort things by dancing the various...
View ArticleA Simple Virtual Machine
Virtual Machines have more uses than you might imagine. We have a real example of how a VM can be used to increase the security of your code.
View ArticleUnderstanding the Fourier Transform
The Fourier transform crops up in a wide range of everyday programming areas - compression, filtering, reconstruction to mention just three general areas. You can get away with using it without...
View ArticleThe Programmer's Guide To The Transfinite
You may have heard a rumor that infinity comes in a number of different types. Now you can get to the bottom of the theory and the misconceptions with Aleph Zero and all that, a programmer's view of...
View ArticleSimple Runtime Framework by Example
These days we are surrounded by different software frameworks. Java, and .NET to name but two, and, there are many more. Have you ever wondered how they work or have you ever wanted or needed to...
View ArticleLambda Calculus For Programmers
You may have heard of "the lambda calculus" - it's the reason lambda expressions are so called. You may know that it is something to do with computability, and so any explanation of how it works should...
View ArticleThe Invertible Bloom Filter
If you think that the Bloom filter is magic, wait until you see the invertible Bloom filter. This not only keeps a record of data, it allows you to add, delete and make a list of the data you have...
View ArticleDangerous Logic - De Morgan & Programming
Programmers are master logicians - well they sometimes are. Most of the time they are as useless at it as the average joe. The difference is that the average joe can avoid logic and hence the mistakes....
View ArticleWhat Exactly Is A First Class Function - And Why You Should Care
You may have heard people saying that in some language or another that functions were first class objects, or have come across the term first class function. What does it mean? And why is it so good?
View ArticleWhat Is Asynchronous Programming?
Asynchronous programming has become very important in the last few years, but many programmers find out about it by doing it. So what exactly is asynchronous programming, why is it necessary and why is...
View ArticleAxiom Of Choice - The Programmer's Guide
This week's xkcd cartoon is all about the axiom of choice. It sounds complicated or trivial depending on what you read into it. We just think it's a good opportunity to explain a really interesting idea.
View ArticleFunctional And Dysfunctional Programming
This week's xkcd cartoon raises a can of worms - not a pretty picture. What is functional programming? Surely all our programs should function in some way or other? No - that's not what it means....
View ArticleWho’s Afraid of eXtreme Programming
You probably have heard of eXtreme Programming or XP. It's a type of agile software development and a lot of people think it's great. Some are trying to turn it into something more like software...
View ArticleThink Global, Act Local - The Bigger Pattern
The big issue in architecture is usually the choice between global and local implementation. However, this is so all-pervasive a choice that we tend to miss that there is more to the idea that you...
View ArticleThe Monty Hall Problem
The Monty Hall problem is an exercise in probability theory that even experts get wrong. It seems to be subtle and even paradoxical, but when you notice exactly what is going on it becomes obvious....
View ArticleThe Working Programmer's Guide To Language Paradigms
You would think that we would agree on how best to program. In fact we are still warring tribes trying to make the case for our own particular view of how programming should be done. The question is:...
View ArticleCovariance And Contravariance - A Simple Guide
Programming, and computer science in particular, has a tendency to use other people's jargon. Often this makes things seem more difficult. You may have heard of covariance and contravariance and...
View ArticleLate Binding - Myths and Reality
Late binding in .NET – the accepted wisdom is that it’s complicated, advanced and VB does it better than C#. We explain that it’s easy and C# and VB are equally good at it and illuminate what is going...
View Article
More Pages to Explore .....