Expanding the Elo rating system

Oliver Brown
— This upcoming video may not be available to view yet.

One of the features I have planned for Tic-tac-toe Collection is a player rating system.

One such common rating system is the Elo rating system, most famously used in chess. There is a lot of discussion about how good it is, but for my purposes it seems fine - at least as a starting point.

There are two fundamental restrictions on Elo that I would have to overcome though:

  • It is limited to two players.
  • It assumes each player has an equal chance of winning if they have equal skill.

Elo

First an introduction into how Elo rating works. There are two parts:

Given two player ratings, calculate an expected result.

The expected result is essentially the chance of winning, given as a decimal between 0 and 1, in which 0 represents a guaranteed loss and 1 a guaranteed win.

Given a player rating, an expected result, and an actual result, calculate how much the rating should change.

If you do better than expected then your score will go up. If you do worse then your score will go down. With a bigger difference there will be a bigger change.

Multiplayer

Simple Multiplayer Elo

I found an existing implementation of Elo for more than two players by Tom Kerrigan called Simple Multiplayer Elo.

In SME, players are ordered by performance, and then a simulated match is played between pairs of consecutive players, with the players’ ratings updated using the normal Elo method for two players.

This is certainly acceptable, and Tom includes some tests to show it works well. One oddity is if you get a victory over someone with a much higher rating than you, but also beat them by more than one place, you essentially don’t get the benefit for it. For example, consider the following result:

Position Player Initial rating vs player above vs player below Total
1st A 1000 +24 +24
2nd B 1200 −24 +27 +3
3rd C 1500 −27 −27

Here, Player A with a rating of 1000 has beaten Player C with a rating of 1500, but essentially hasn’t gotten the credit for it.

My unnamed Elo

My solution is to conceptually run the algorithm on every pair of players (in this case there would be A v B, B v C and A v C). There is a straightforward optimization so that the estimating part of the operation does not directly depend on the other players, just the difference between a single player’s expected and actual scores. So the algorithm is actually:

  1. Calculate the expected scores for each pair of players.
  2. Sum the expected score for each player.
  3. Divide each score by the number of players to normalize back to the range 0 to 1.
  4. Calculate the rating change for each player using their actual score and the combined expected score.

The details

With the same data as above, the results are as follows:

Player Initial rating Expected score
A 1000 0.097
B 1200 0.304
C 1500 0.599

Which is made up of the following score pairs:

Pair A B C
A v B 0.24 0.26
B v C 0.15 0.85
A v C 0.05 0.95

This results in rating changes of:

Position Player Initial rating Change
1st A 1000 +29
2nd B 1200 −9
3rd C 1500 −19
  • Player A has gained more which is good. That was basically the goal of the change.
  • Player B has now changed a small gain into a moderate loss. That’s a little odd and probably not desired, after all the victory against C should be more significant than the loss against A
  • Player C has changed a big loss into a slightly smaller (but still big) loss. After some thought, that is probably reasonable. Although C is expected to win just having more players should generally reduce your expectation of winning and therefore how much you are penalized for failing.

Improvements

So why did these results happen? It might be better to look at a table also including expected and actual results, which reveals a choice that has to be made that I have not yet mentioned:

Position Player Initial rating Expected score Actual score Change
1st A 1000 0.097 1 +29
2nd B 1200 0.304 0 −9
3rd C 1500 0.599 0 −19

Notice the actual scores used. Player A has a score of 1 indicating a win. Players B and C have a score of 0, which indicates a loss, but an equal loss.

If we instead use different values for the actual score we get a more sensible result

Position Player Initial rating Actual score Change
1st A 1000 0.67 +18
2nd B 1200 0.33 +1
3rd C 1500 0 −19

In this case, the “actual score” for a player placed Nth out of C is:

2 N C × C - 1
Explain this formula

This formula is conceptually simple, but a bit opaque when simplified.

Think of it as each player getting a number of shares of the total score. The person in last gets 0 shares, the person second from last gets 1 share, then next player gets 2 shares, and so on. The person in first place gets C−1 shares.

That means each player gets N shares and the total number of shares is equal to the C−1th Triangular number.

The formula for a triangular number is:

T x = x × x + 1 2

Substituting C-1:

T C - 1 = C - 1 × C - 1 + 1 2

This simplifies to: T C - 1 = C × C - 1 2

Therefore each player gets:

N / C × C - 1 2

which simplifies to:

2 N C × C - 1

Handling ties

To be as general as possible (and because it actually happens in some of my multiplayer Tic-tac-toe variants) we need to handle arbitrary ties.

The simplest way is to evenly distribute the score to all the players that are tied. So if the top two players in a three-player game tie, their scores of 0.67 and 0.33 are summed and split between them (0.5 each).

As a more complex example, consider:

Position “Raw” score Actual score
1st 0.286 0.262
1st 0.238 0.262
3rd 0.190 0.143
3rd 0.143 0.143
3rd 0.095 0.143
6th 0.048 0.048
7th 0 0

Final thoughts

I’ve addressed the first restriction of Elo, only supporting two players. As for unfair games, that will have to wait as this post is long enough as it is.

When is Easter?

Oliver Brown
— This upcoming video may not be available to view yet.

I wrote a post about calendar reuse that included an offhand comment about Easter. The common definition of when Easter is, is:

the first Sunday after the first full moon that falls on or after the vernal equinox

That isn’t quite right, and I made a vague mention of the correct definition.

Since then, someone has made a video explaining the the correct definition in depth with details about the history and why it is this way.

Interacting with this video is done so under the Terms of Service of YouTube
View this video directly on YouTube

Star Trek episode titles: an interlude

Oliver Brown
— This upcoming video may not be available to view yet.

Existing work

Firstly, after doing this much work, I have discovered someone already has done a similar investigation: How long is a Star Trek title? by Bruce Bennett, so check that out. One thing it does have that I don’t, is charts.

Improving workflow

The analysis so far has been done using a Google Docs spreadsheet. I then manually wrote the Markdown for the blog posts, which involved some tedious and error prone tables.

I was originally not going to include the giant list of every single-word episode title, since creating that table did not look like fun.

But… I also started working a little program to do more sophisticated processing, and realised I could also make the program generate the Markdown for me.

The program is a .NET 7 console application writen in C#, and writing it was probably quicker than the manipulation I had to do with the spreadsheet in the first place. It was definitely quicker than producing the Markdown tables in the first post manually.

The end result is I can generate tables of all sorts of random episode lists with different properties of varying levels of interest with very little effort.

What is the shortest Star Trek episode title?

Oliver Brown
— This upcoming video may not be available to view yet.

After starting my previous post with this question but not answering it, I’ll get straight to the point. There is a tie for first place, with two episode titles that are two characters long:

Shortest episode titles

Title Length Series Episode
Q2 2 letters Voyager 7x19
2 letters Enterprise 3x21

The shortest title per series is:

Title Length Series Episode
Miri 4 letters The Original Series 1x11
Bem 3 letters The Animated Series 2x02
Qpid 4 letters The Next Generation 4x20
Dax 3 letters Deep Space Nine 1x08
Q2 2 letters Voyager 7x19
2 letters Enterprise 3x21

Every series has several single word episode titles.

See them all
Title Length Series Episode
Miri 4 letters TOS 1x11
Arena 5 letters TOS 1x19
Catspaw 7 letters TOS 1x01
Metamorphosis 13 letters TOS 1x02
Obsession 9 letters TOS 2x18
Yesteryear 10 letters TAS 1x02
Bem 3 letters TAS 2x02
Albatross 9 letters TAS 2x04
Haven 5 letters TNG 1x05
Justice 7 letters TNG 1x09
Battle 6 letters TNG 1x10
Datalore 8 letters TNG 1x14
11001001 8 letters TNG 1x16
Symbiosis 9 letters TNG 1x22
Conspiracy 10 letters TNG 1x25
Contagion 9 letters TNG 2x11
Manhunt 7 letters TNG 2x19
Evolution 9 letters TNG 3x01
Allegiance 10 letters TNG 3x18
Sarek 5 letters TNG 3x23
Transfigurations 16 letters TNG 3x25
Family 6 letters TNG 4x02
Brothers 8 letters TNG 4x03
Legacy 6 letters TNG 4x06
Reunion 7 letters TNG 4x07
Clues 5 letters TNG 4x14
Qpid 4 letters TNG 4x20
Redemption 10 letters TNG 4x26
Darmok 6 letters TNG 5x02
Disaster 8 letters TNG 5x05
Unification 11 letters TNG 5x07
Violations 10 letters TNG 5x12
Conundrum 9 letters TNG 5x14
Ethics 6 letters TNG 5x16
Relics 6 letters TNG 6x04
Schisms 7 letters TNG 6x05
Rascals 7 letters TNG 6x07
Aquiel 6 letters TNG 6x13
Tapestry 8 letters TNG 6x15
Birthright 10 letters TNG 6x16
Lessons 7 letters TNG 6x19
Suspicions 10 letters TNG 6x22
Timescape 9 letters TNG 6x25
Descent 7 letters TNG 6x26
Liaisons 8 letters TNG 7x02
Interface 9 letters TNG 7x03
Gambit 6 letters TNG 7x04
Phantasms 9 letters TNG 7x06
Attached 8 letters TNG 7x08
Inheritance 11 letters TNG 7x10
Parallels 9 letters TNG 7x11
Homeward 8 letters TNG 7x13
Masks 5 letters TNG 7x17
Genesis 7 letters TNG 7x19
Firstborn 9 letters TNG 7x21
Bloodlines 10 letters TNG 7x22
Emergence 9 letters TNG 7x23
Emissary 8 letters DS9 1x01
Babel 5 letters DS9 1x05
Q-Less 6 letters DS9 1x07
Dax 3 letters DS9 1x08
Vortex 6 letters DS9 1x12
Storyteller 11 letters DS9 1x14
Progress 8 letters DS9 1x15
Forsaken 8 letters DS9 1x17
Duet 4 letters DS9 1x19
Cardassians 11 letters DS9 2x05
Melora 6 letters DS9 2x06
Sanctuary 9 letters DS9 2x10
Rivals 6 letters DS9 2x11
Whispers 8 letters DS9 2x13
Paradise 8 letters DS9 2x14
Shadowplay 10 letters DS9 2x15
Crossover 9 letters DS9 2x23
Tribunal 8 letters DS9 2x25
Equilibrium 11 letters DS9 3x04
Meridian 8 letters DS9 3x08
Defiant 7 letters DS9 3x09
Fascination 11 letters DS9 3x10
Destiny 7 letters DS9 3x15
Visionary 9 letters DS9 3x17
Explorers 9 letters DS9 3x22
Shakaar 7 letters DS9 3x24
Facets 6 letters DS9 3x25
Indiscretion 12 letters DS9 4x05
Rejoined 8 letters DS9 4x06
Homefront 9 letters DS9 4x11
Crossfire 9 letters DS9 4x13
Accession 9 letters DS9 4x17
Rapture 7 letters DS9 5x10
Resurrection 12 letters DS9 6x08
Waltz 5 letters DS9 6x11
Inquisition 11 letters DS9 6x18
Valiant 7 letters DS9 6x22
Afterimage 10 letters DS9 7x03
Chrysalis 9 letters DS9 7x05
Covenant 8 letters DS9 7x09
Chimera 7 letters DS9 7x14
Penumbra 8 letters DS9 7x17
Caretaker 9 letters VOY 1x01
Parallax 8 letters VOY 1x03
Phage 5 letters VOY 1x05
Emanations 10 letters VOY 1x09
Cathexis 8 letters VOY 1x13
Faces 5 letters VOY 1x14
Jetrel 6 letters VOY 1x15
Initiations 11 letters VOY 2x02
Projections 11 letters VOY 2x03
Elogium 7 letters VOY 2x04
Twisted 7 letters VOY 2x06
Parturition 11 letters VOY 2x07
Tattoo 6 letters VOY 2x09
Maneuvers 9 letters VOY 2x11
Resistance 10 letters VOY 2x12
Prototype 9 letters VOY 2x13
Alliances 9 letters VOY 2x14
Threshold 9 letters VOY 2x15
Meld 4 letters VOY 2x16
Dreadnought 11 letters VOY 2x17
Lifesigns 9 letters VOY 2x19
Investigations 14 letters VOY 2x20
Deadlock 8 letters VOY 2x21
Innocence 9 letters VOY 2x22
Tuvix 5 letters VOY 2x24
Resolutions 11 letters VOY 2x25
Basics 6 letters VOY 2x26
Flashback 9 letters VOY 3x02
Remember 8 letters VOY 3x06
Warlord 7 letters VOY 3x10
Macrocosm 9 letters VOY 3x12
Coda 4 letters VOY 3x15
Unity 5 letters VOY 3x17
Darkling 8 letters VOY 3x18
Rise 4 letters VOY 3x19
Displaced 9 letters VOY 3x24
Scorpion 8 letters VOY 3x26
Nemesis 7 letters VOY 4x04
Revulsion 9 letters VOY 4x05
Hunters 7 letters VOY 4x15
Prey 4 letters VOY 4x16
Retrospect 10 letters VOY 4x17
Unforgettable 13 letters VOY 4x22
Demon 5 letters VOY 4x24
One 3 letters VOY 4x25
Night 5 letters VOY 5x01
Drone 5 letters VOY 5x02
Timeless 8 letters VOY 5x06
Counterpoint 12 letters VOY 5x10
Gravity 7 letters VOY 5x13
Bliss 5 letters VOY 5x14
Juggernaut 10 letters VOY 5x21
11:59 5 letters VOY 5x23
Relativity 10 letters VOY 5x24
Warhead 7 letters VOY 5x25
Equinox 7 letters VOY 5x26
Alice 5 letters VOY 6x05
Riddles 7 letters VOY 6x06
Pathfinder 10 letters VOY 6x10
Virtuoso 8 letters VOY 6x13
Memorial 8 letters VOY 6x14
Tsunkatse 9 letters VOY 6x15
Collective 10 letters VOY 6x16
Muse 4 letters VOY 6x22
Fury 4 letters VOY 6x23
Imperfection 12 letters VOY 7x02
Drive 5 letters VOY 7x03
Repression 10 letters VOY 7x04
Nightingale 11 letters VOY 7x08
Shattered 9 letters VOY 7x11
Lineage 7 letters VOY 7x12
Repentance 10 letters VOY 7x13
Prophecy 8 letters VOY 7x14
Workforce 9 letters VOY 7x16
Q2 2 letters VOY 7x19
Homestead 9 letters VOY 7x23
Endgame 7 letters VOY 7x25
Unexpected 10 letters ENT 1x05
Civilization 12 letters ENT 1x09
Fusion 6 letters ENT 1x17
Acquisition 11 letters ENT 1x19
Oasis 5 letters ENT 1x20
Detained 8 letters ENT 1x21
Shockwave 9 letters ENT 1x26
Minefield 9 letters ENT 2x03
Marauders 9 letters ENT 2x06
Singularity 11 letters ENT 2x09
Dawn 4 letters ENT 2x13
Stigma 6 letters ENT 2x14
Canamar 7 letters ENT 2x17
Judgment 8 letters ENT 2x19
Horizon 7 letters ENT 2x20
Cogenitor 9 letters ENT 2x22
Regeneration 12 letters ENT 2x23
Bounty 6 letters ENT 2x25
Anomaly 7 letters ENT 3x02
Extinction 10 letters ENT 3x03
Rajiin 6 letters ENT 3x04
Impulse 7 letters ENT 3x05
Exile 5 letters ENT 3x06
Twilight 8 letters ENT 3x08
Similitude 10 letters ENT 3x10
Stratagem 9 letters ENT 3x14
Harbinger 9 letters ENT 3x15
Hatchery 8 letters ENT 3x17
Damage 6 letters ENT 3x19
2 letters ENT 3x21
Countdown 9 letters ENT 3x23
Home 4 letters ENT 4x03
Borderland 10 letters ENT 4x04
Forge 5 letters ENT 4x07
Awakening 9 letters ENT 4x08
Kir’Shara 9 letters ENT 4x09
Daedalus 8 letters ENT 4x10
United 6 letters ENT 4x13
Affliction 10 letters ENT 4x15
Divergence 10 letters ENT 4x16
Bound 5 letters ENT 4x17
Demons 6 letters ENT 4x20

Longest episode titles

Unlike with the shortest episode title, I had a good idea what the longest one was. At least, I had two candidates, but without sitting down and counting, picking one would have been a guess. I can confirm they are the longest two, and I present them both since they are such outliers compared to the rest.

Title Length Series Episode
For the World is Hollow and I Have Touched the Sky 50 letters The Original Series 3x10
Looking for par’Mach in All the Wrong Places 44 letters Deep Space Nine 5x03

And the longest per series:

Title Length Series Episode
For the World is Hollow and I Have Touched the Sky 50 letters The Original Series 3x10
How Sharper Than a Serpent’s Tooth 34 letters The Animated Series 2x05
Where No One Has Gone Before 28 letters The Next Generation 1x06
Looking for par’Mach in All the Wrong Places 44 letters Deep Space Nine 5x03
The Haunting of Deck Twelve 27 letters Voyager 6x25
Two Days and Two Nights 23 letters Enterprise 1x25

This brings us our first controversial result. I decided that ellipses should be treated as a single letter (if only for a sense of typographical superiority). In this case, treating it as three letters would produce a different result:

Title Length Series Episode
These Are the Voyages… 24 letters Enterprise 4x22

The titles so far have been longest by letter-count. Longest by word-count can also be determined. This gives identical results, except Voyager and the Animated Series now have ties:

Title Length Series Episode
For the World is Hollow and I Have Touched the Sky 11 words The Original Series 3x10
One of Our Planets is Missing 6 words The Animated Series 1x03
How Sharper Than a Serpent’s Tooth 6 words The Animated Series 2x05
Where No One Has Gone Before 6 words The Next Generation 1x06
Looking for par’Mach in All the Wrong Places 8 words Deep Space Nine 5x03
The Q and the Grey 5 words Voyager 3x11
Someone to Watch Over Me 5 words Voyager 6x25
The Haunting of Deck Twelve 5 words Voyager 5x22
Two Days and Two Nights 5 words Enterprise 1x25

Current time abstraction coming to .NET

Oliver Brown
— This upcoming video may not be available to view yet.

It is often necessary in computer systems to get the current date and time. .NET has had a straightforward way to do that since its inception. What it hasn’t had is a built-in way to customize the behavior, particularly for mocking during automated tests.

Quite why this situation has persisted for so long is a bit of mystery. The importance of automated tests has only risen over time and questions about how to deal with this crop up quite frequently. The general solution is to provide an abstraction that you can inject and mock easily.

The popular date and time library Noda Time includes IClock, and any developers are often directed to use Noda Time for anything making use of anything but the simplest of time-based logic. But it is still odd there is nothing built-in, especially considering there is an existing private implementation in .NET, as well as several in ASP.NET.

Well .NET 8 will finally be getting System.TimeProvider:

namespace System
{
    /// <summary>Provides an abstraction for time. </summary>
    public abstract class TimeProvider
    {
        protected TimeProvider();
        public static TimeProvider System { get; }
        public static TimeProvider FromLocalTimeZone(TimeZoneInfo timeZone);
        public abstract DateTimeOffset UtcNow { get; }
        public DateTimeOffset LocalNow { get; }
        public abstract TimeZoneInfo LocalTimeZone { get; }
        public abstract long GetTimestamp();
        public abstract long TimestampFrequency { get; }
        public TimeSpan GetElapsedTime(long startingTimestamp, long endingTimestamp);
        public abstract ITimer CreateTimer(TimerCallback callback, object? state, TimeSpan dueTime, TimeSpan period);
    }
}

Here is the original GitHub issue and the pull request implementing it.

As well as providing a mockable abstraction to get the current time (including a default implementation providing the system time), it also adds supports to a bunch of other APIs to use a specified instance instead including Task and Timer.

And, best of all, despite my earlier claim that this is a .NET 8 feature, this will also be made available as a package targeting .NET Standard 2.0, so it can be used on .NET Framework and other targets.

Analyzing Star Trek episode titles

Oliver Brown
— This upcoming video may not be available to view yet.
Gorn from Star Trek episode Arena

I recently found myself idly wondering what the shortest Star Trek episode title was. The first to come to mind was the Original Series episode “Arena” (the one which Captain Kirk fights a humanoid lizard in one of the most striking examples of 1960 “makeup”).

I guessed there were probably shorter ones, but was rather disappointed I didn’t know the answer for sure. So I decided to find out.

While investigating, I also started wondering other things, like: what is the longest episode title? Which series has the shortest or longest titles on average? How many episodes begin with “the”?

I have decided to gather the answers to these questions and more together into a series of blog posts.

Some ground rules

I quickly realised even for “shortest episode title” there were some decisions I would have to make about what would count.

What counts as a letter?
Any character is a letter. So including (but not necessarily limited to):
  • The letters A-Z (regardless of case or accents).
  • The digits 0-9.
  • Any punctuation symbol.
  • A space.
  • An ellipsis (so three dots … is a single character).
What counts as a word?
Spaces separate words, nothing else does. 37's is one word, as is 11001001.
Which series/episodes are included?
I decided to include all episodes from The Original Series (including “The Cage”), The Animated Series, The Next Generation, Deep Space Nine, Voyager and Enterprise. This is for the simple practical reason that no more episodes are being produced for these (with the recent annocunement that season 5 of Discovery will be its last, I may redo this including Discovery in the near future).
What about two-part episodes?
For two part episodes (that don’t have completely different titles), I’m just using the “base name”.

About those two-part episodes

The first two-part episode of Star Trek was called “The Menagerie”. In the episode title sequence it is styled as "THE MENAGERIE" PART I and "THE MENAGERIE" PART II, with the part information clearly outside the quotation marks used to identify the title. This suggests the title is in fact “The Menagerie”.

“The Menagerie” (as far as I am aware) was never produced as a single feature length episode. Many other two-part episodes were either broadcast originally as a single episode, or later made available as one (often with additional footage included). This means an episode could potentially have three different names (one for each part individually and one for the whole) and using the “base name” seems most sensible in this case.

It should also be noted, there is little consistency in how the two-part episode titles are handled. Some of them give the first part the “base name” and add “Part II” after whereas others include the part information in both titles. Whether the part information is inside the quotes varies, and even whether the word “part” is included.

So overall, I feel justified in in using the “base name”, just as a way of establishing some kind of order. Although I can already tell I’m going to have to write a detailed blog post covering all of this (especially if I get to including Discovery, since that messes everything up by having an episode titled as if it is the third part of a three-part episode, the first two parts of which are from another series).

Image copyright © Paramount Global and used under fair use.

Updated Discworld audiobook release dates

Oliver Brown
— This upcoming video may not be available to view yet.
As an Amazon Associate I earn from qualifying purchases. See here for more information.

New audio versions of all* of the Discworld books are being produced. They aren’t being released in order though and as far as I can tell there is no convenient page listing all the release dates.

So here are the release dates currently listed on Audible as of 15th March, 2023. There are a few different ways Discworld books get grouped. “Series” below is how Audible have grouped them (and I assume matches the narrator).

Release date

2021 December 21st

Title Series
Hogfather Death 20

2022 April 28th

Title Series
Equal Rites Witches 3
Wyrd Sisters Witches 6
Witches Abroad Witches 12
Lords and Ladies Witches 14
Maskerade Witches 18
Carpe Jugulum Witches 23
Small Gods Standalone 13

2022 July 7th

Title Series
The Colour of Magic Rincewind 1
The Light Fantastic Rincewind 2
Sourcery Rincewind 5
Eric Rincewind 9
Interesting Times Rincewind 17
The Lat Continent Rincewind 22
Unseen Academicals Rincewind 37

2022 October 6th

Title Series
The Amazing Maurice and His Educated Rodents Standalone 28

2022 October 27th

Title Series
Mort Death 4
Reaper Man Death 11
Soul Music Death 16
Thief of Time Death 26

2023 February 23rd

Title Series
The Truth Industrial Revolution 25
Monstrous Regiment Industrial Revolution 31
Going Postal Industrial Revolution 33
Making Money Industrial Revolution 36
Raising Steam Industrial Revolution 40

2023 March 30th

Title Series
Pyramids Standalone 7

2023 May 18th

Title Series
Moving Pictures Industrial Revolution 10

2023 May 25th

Title Series
Guards! Guards! Ankh-Morpork City Watch 8
Men at Arms Ankh-Morpork City Watch 15
Feet of Clay Ankh-Morpork City Watch 19
Jingo Ankh-Morpork City Watch 21
The Fifth Elephant Ankh-Morpork City Watch 24
Night Watch Ankh-Morpork City Watch 29
Thud! Ankh-Morpork City Watch 34
Snuff Ankh-Morpork City Watch 39

2023 June 15th

Title Series
The Wee Free Men Tiffany Aching 30
A Hat Full of Sky Tiffany Aching 32
Wintersmith Tiffany Aching 35
I Shall Wear Midnight Tiffany Aching 38
The Sheperd's Crown Tiffany Aching 41

Reading order

Title Series Release date
The Colour of Magic Rincewind 1 2022 July 7th
The Light Fantastic Rincewind 2 2022 July 7th
Equal Rites Witches 3 2022 April 28th
Mort Death 4 2022 October 27th
Sourcery Rincewind 5 2022 July 7th
Wyrd Sisters Witches 6 2022 April 28th
Pyramids Standalone 7 2023 March 30th
Guards! Guards! Ankh-Morpork City Watch 8 2023 May 25th
Eric Rincewind 9 2022 July 7th
Moving Pictures Industrial Revolution 10 2023 May 18th
Reaper Man Death 11 2022 October 27th
Witches Abroad Witches 12 2022 April 28th
Small Gods Standalone 13 2022 April 28th
Lords and Ladies Witches 14 2022 April 28th
Men at Arms Ankh-Morpork City Watch 15 2023 May 25th
Soul Music Death 16 2022 October 27th
Maskerade Witches 18 2022 April 28th
Interesting Times Rincewind 17 2022 July 7th
Feet of Clay Ankh-Morpork City Watch 19 2023 May 25th
Hogfather Death 20 2021 December 21st
Jingo Ankh-Morpork City Watch 21 2023 May 25th
The Lat Continent Rincewind 22 2022 July 7th
Carpe Jugulum Witches 23 2022 April 28th
The Fifth Elephant Ankh-Morpork City Watch 24 2023 May 25th
The Truth Industrial Revolution 25 2023 February 23rd
Thief of Time Death 26 2022 October 27th
The Amazing Maurice and His Educated Rodents Standalone 28 2022 October 6th
Night Watch Ankh-Morpork City Watch 29 2023 May 25th
The Wee Free Men Tiffany Aching 30 2023 June 15th
Monstrous Regiment Industrial Revolution 31 2023 February 23rd
A Hat Full of Sky Tiffany Aching 32 2023 June 15th
Going Postal Industrial Revolution 33 2023 February 23rd
Thud! Ankh-Morpork City Watch 34 2023 May 25th
Wintersmith Tiffany Aching 35 2023 June 15th
Making Money Industrial Revolution 36 2023 February 23rd
Unseen Academicals Rincewind 37 2022 July 7th
I Shall Wear Midnight Tiffany Aching 38 2023 June 15th
Snuff Ankh-Morpork City Watch 39 2023 May 25th
Raising Steam Industrial Revolution 40 2023 February 23rd
The Sheperd's Crown Tiffany Aching 41 2023 June 15th

* There are 41 Discworld books. The website says “40 magnificent new recordings”. The one that seems to be missing is “The Last Hero”.

Blazor Numbers Game

Oliver Brown
— This upcoming video may not be available to view yet.

Over the weekend I was playing around with Blazor and created a little number game based on part of a popular British TV show.

In the future this may expand in functionality as part of my exploration into Blazor.

You can try the number game full screen.

Mettle is probably not suitable for tech businesses

Oliver Brown
— This upcoming video may not be available to view yet.

Just to avoid any confusion, everything in this post is based on how things work in the UK and is for things available in the UK.

So far I have operated various business ventures off my personal bank account. Since I’ve been doing this as a sole trader, this is allowed. It does however make tax returns take more effort than necessary.

FreeAgent

I recently had reason to interact with FreeAgent, which is some pretty cool accounting software that makes a lot of things simpler. Unfortunately to really use it to its potential, you need to link it to a bank account used solely for your business.

Conveniently, they offer a free account to anyone who has a Mettle account. I had seen Mettle before, and it is described as “the free mobile business account with no hidden fees or charges”, and is operated by NatWest, one of the big UK high street banks.

E-money accounts

After a quick investigation, it seems one of the reasons it is free (which is the norm for personal accounts in the UK but not business accounts) is that it is not actually a bank account, but an “e-money account”. You get an account number as well as a debit card, but it is not subject to the Financial Services Compensation Scheme (a scheme in the UK in which the government guarantees bank balances up to a certain amount if a bank goes under).

That limitation seemed fine to me since I did not intend to keep a large balance, so I created an account. Sadly, I found out there are other limitations which basically rendered it useless to me.

Prepaid cards

Firstly, it does not come with an IBAN (international bank account number). This means I cannot receive payments from Apple. Secondly, the card is a prepaid card. Since it is tied to the e-money account they give you, it feels like a debit card to use, except some things just don’t accept payments using them. Crucially for me, Microsoft Azure and Google Ads.

Conclusion

In the end, I opened a business account with Royal Bank of Scotland. RBS and NatWest business accounts also get free FreeAgent accounts. The application was more involved (for Mettle, besides verifying your ID you just have to declare you aren’t in one of their list of prohibited business) but in the end was fine.

New Discworld audiobooks

Oliver Brown
— This upcoming video may not be available to view yet.
As an Amazon Associate I earn from qualifying purchases. See here for more information.

New audio versions of all* of the Discworld books are being produced. They aren’t being released in order though and as far as I can tell there is no convenient page listing all the release dates.

So here are the release dates currently listed on Audible. There are a few different ways Discworld books get grouped. “Series” below is how Audible have grouped them (and I assume matches the narrator).

Release date

2021 December 21st

Title Series
Hogfather Death 20

2022 April 28th

Title Series
Equal Rites Witches 3
Wyrd Sisters Witches 6
Witches Abroad Witches 12
Lords and Ladies Witches 14
Maskerade Witches 18
Carpe Jugulum Witches 23
Small Gods Standalone 13

2022 July 7th

Title Series
The Colour of Magic Rincewind 1
The Light Fantastic Rincewind 2
Sourcery Rincewind 5
Eric Rincewind 9
Interesting Times Rincewind 17
The Last Continent Rincewind 22
Unseen Academicals Rincewind 37

2022 October 10th

Title Series
The Amazing Maurice and His Educated Rodents Standalone 28

2022 October 27th

Title Series
Mort Death 4
Reaper Man Death 11
Soul Music Death 16
Thief of Time Death 26

2023 February 23rd

Title Series
Moving Pictures Industrial Revolution 10
The Truth Industrial Revolution 25
Monstrous Regiment Industrial Revolution 31
Going Postal Industrial Revolution 33
Making Money Industrial Revolution 36
Raising Steam Industrial Revolution 40
Pyramids Standalone 7

Release date - To be released

2023 April 27th

Title Series
Guards! Guards! Ankh-Morpork City Watch 8
Men at Arms Ankh-Morpork City Watch 15
Feet of Clay Ankh-Morpork City Watch 19
Jingo Ankh-Morpork City Watch 21
The Fifth Elephant Ankh-Morpork City Watch 24
Night Watch Ankh-Morpork City Watch 29
Thud! Ankh-Morpork City Watch 34
Snuff Ankh-Morpork City Watch 39
The Wee Free Men Tiffany Aching 30
A Hat Full of Sky Tiffany Aching 32
Wintersmith Tiffany Aching 35
I Shall Wear Midnight Tiffany Aching 38
The Sheperd's Crown Tiffany Aching 41

Unknown

Title Series
The Last Hero Rincewind 27

Reading order

Title Series Release date
The Colour of Magic Rincewind 1 2022 July 7th
The Light Fantastic Rincewind 2 2022 July 7th
Equal Rites Witches 3 2022 April 28th
Mort Death 4 2022 October 27th
Sourcery Rincewind 5 2022 July 7th
Wyrd Sisters Witches 6 2022 April 28th
Pyramids Standalone 7 2023 February 23rd
Guards! Guards! Ankh-Morpork City Watch 8 2023 April 27th
Eric Rincewind 9 2022 July 7th
Moving Pictures Industrial Revolution 10 2023 February 23rd
Reaper Man Death 11 2022 October 27th
Witches Abroad Witches 12 2022 April 28th
Small Gods Standalone 13 2022 April 28th
Lords and Ladies Witches 14 2022 April 28th
Men at Arms Ankh-Morpork City Watch 15 2023 April 27th
Soul Music Death 16 2022 October 27th
Maskerade Witches 18 2022 April 28th
Interesting Times Rincewind 17 2022 July 7th
Feet of Clay Ankh-Morpork City Watch 19 2023 April 27th
Hogfather Death 20 2021 December 21st
Jingo Ankh-Morpork City Watch 21 2023 April 27th
The Last Continent Rincewind 22 2022 July 7th
Carpe Jugulum Witches 23 2022 April 28th
The Fifth Elephant Ankh-Morpork City Watch 24 2023 April 27th
The Truth Industrial Revolution 25 2023 February 23rd
Thief of Time Death 26 2022 October 27th
The Last Hero Rincewind 27 Unknown
The Amazing Maurice and His Educated Rodents Standalone 28 2022 October 10th
Night Watch Ankh-Morpork City Watch 29 2023 April 27th
The Wee Free Men Tiffany Aching 30 2023 April 27th
Monstrous Regiment Industrial Revolution 31 2023 February 23rd
A Hat Full of Sky Tiffany Aching 32 2023 April 27th
Going Postal Industrial Revolution 33 2023 February 23rd
Thud! Ankh-Morpork City Watch 34 2023 April 27th
Wintersmith Tiffany Aching 35 2023 April 27th
Making Money Industrial Revolution 36 2023 February 23rd
Unseen Academicals Rincewind 37 2022 July 7th
I Shall Wear Midnight Tiffany Aching 38 2023 April 27th
Snuff Ankh-Morpork City Watch 39 2023 April 27th
Raising Steam Industrial Revolution 40 2023 February 23rd
The Sheperd's Crown Tiffany Aching 41 2023 April 27th

* There are 41 Discworld books. The website says “40 magnificent new recordings”. The one that seems to be missing is “The Last Hero”.

Interacting with this video is done so under the Terms of Service of YouTube
View this video directly on YouTube