Skip to main content
Randomly Typed

Randomly Typed

By Randomly Typed

Computer science, alpacas and other musings.
Available on
Apple Podcasts Logo
Google Podcasts Logo
Overcast Logo
Pocket Casts Logo
RadioPublic Logo
Spotify Logo
Currently playing episode

33 - Two Generals' Problem

Randomly TypedDec 07, 2020

00:00
22:06
34 - DNS design iterations

34 - DNS design iterations

JS and Lance talk about how DNS works and how different improvements have been designed and implemented to overcome a variety of flaws that have arisen over time.


Show notes: https://www.randomlytyped.com/34

Jan 10, 202130:30
33 - Two Generals' Problem

33 - Two Generals' Problem

Lance and JS talk about the Two Generals' Problem and try to understand its real impacts on networked systems.


Show notes: https://www.randomlytyped.com/33

Dec 07, 202022:06
32 - Lossless compression algorithms

32 - Lossless compression algorithms

Lance and JS try to make things smaller! In this episode, we explore how to compress information efficiently in a variety of different ways with different tradeoffs.


Show notes: https://www.randomlytyped.com/32

Nov 23, 202036:47
31 - Signalling System Number 7 (SS7) and phone networks

31 - Signalling System Number 7 (SS7) and phone networks

JS and Lance discover the inner working of the SS7 protocol used in networks by phone carriers, how it’s being abused, and why it’s something we should probably be more concerned about. 


Show notes: https://www.randomlytyped.com/31

Nov 02, 202034:57
30 - How to Bring Down the Internet with Regex

30 - How to Bring Down the Internet with Regex

JS and Lance chat about a couple of interesting and very public incidents of a regular expression unexpectedly causing major outages at well-known software companies. We walk through exactly how these incidents happened and discover how easy it is to write a regex with no time complexity guarantees.

Oct 19, 202027:43
29 - Great Cannon of China

29 - Great Cannon of China

Lance and JS discuss censoring attacks from China targeting Github.

Show notes: https://www.randomlytyped.com/29

Oct 07, 202013:48
 28 - Software Versioning Schemes

28 - Software Versioning Schemes

We’re back! JS and Lance are ready to talk about software versioning schemes. Who would have that boiling down complex software systems into a series of numbers would be so hard?

Sep 12, 202030:59
27 - Dial-up Modems

27 - Dial-up Modems

Max and JS talk about dial-up modems and try to understand how they work while sharing their nostalgia.


Show notes: https://www.randomlytyped.com/27

Mar 21, 202028:56
26 - Variance in Type Systems

26 - Variance in Type Systems

Type systems can be intimidating. Listen in as JS and Lance struggle to understand type variance! Contravariance, covariance, invariance, bivariance... What do they mean?!


Show notes: https://www.randomlytyped.com/26.html

Feb 29, 202027:53
25 - CQRS: Command-Query Responsibility Segregation

25 - CQRS: Command-Query Responsibility Segregation

CRUD isn’t the only way! Lance and JS talk about how separating reads from writes in your domain models can open up a world of possibilities. 

Show notes: https://www.randomlytyped.com/25.html

Feb 15, 202013:35
24 - Protocols Over The Air, Used And Abused

24 - Protocols Over The Air, Used And Abused

On this episode, Lance and JS discuss the evolution of wireless car unlocking technologies. We talk about some different type of attacks and how they were countered. 

Feb 01, 202017:13
23 - Immutable Data Structures

23 - Immutable Data Structures

Most data structure are only useful if you can modify them. Today, JS and Lance talk about immutable data structure which don't allow for direct modification but instead encourage extension. We consider the situations in which these could be useful and how to build one from scratch.

Jan 18, 202024:39
22 - Digital Rights Management (DRM)

22 - Digital Rights Management (DRM)

JS and Lance discuss the technical and legal implications of digital rights management systems of the past, leading up to the complex and secretive implementations of today.

Jan 04, 202024:55
21 - Voting Systems & Arrow's Theorem

21 - Voting Systems & Arrow's Theorem

JS and Lance continue their conversation about voting systems and ultimately discover how the outcome of an election could possibly be dictated by a single person.

Dec 21, 201923:19
20 - Voting Systems & The Condorcet Paradox

20 - Voting Systems & The Condorcet Paradox

Lance and JS examine the social sciences to see what it means to have a fair voting system, and how every system we’ve come up with so far has some fatal flaws.

Dec 07, 201923:19
19 - Gödel's incompleteness theorems

19 - Gödel's incompleteness theorems

Some of the toughest problems in mathematics went unsolved for long periods of time, only for them to be proven hundreds of years later. Can anything and everything eventually be proven with the right level of ingenuity? Gödel's shocking proofs tells us that there are some statements which just aren't provable, even if they appear to be true.

Nov 23, 201926:23
18 - The Halting Problem

18 - The Halting Problem

We travel back in time to the 1930s to discuss the mathematical landscape which lead to The Halting problem and how a machine constructed as a mental model for a proof defined modern computers.

Nov 09, 201914:48
17 - Applied Cryptography and Security

17 - Applied Cryptography and Security

JS and Lance discuss the real-world applications and implications of cryptography with topics like key sharing, password keeping and end-to-end encryption.

Oct 26, 201933:56
16 - Asymmetric cryptosystems and digital signing

16 - Asymmetric cryptosystems and digital signing

JS and Lance continue their cryptography explorations by working through an example of RSA, an asymmetric cryptosystem, while discovering its surprising relationship to the concept of digital signatures.

Oct 12, 201923:44
15 - History of Symmetric Cryptosystems

15 - History of Symmetric Cryptosystems

JS and Lance are reunited! We go back in time to discover how the earliest cryptosystems worked and cover some ground on the basics of cryptography.

Sep 28, 201926:50
14 - The Slow Web

14 - The Slow Web

JS and special guest Max discuss the slow web phenomenon and discuss what makes some technological experiences more meaningful than others.

Sep 14, 201921:08
13 - P vs. NP, why not both?

13 - P vs. NP, why not both?

We discover why the unsolved P == NP millennium problem is so difficult, and how the ramifications affect our every-day programming.

Sep 01, 201913:42
12 - Bloom filters

12 - Bloom filters

We talk about Bloom filters, a probabilistic data structure for set membership queries, how they work, and what all the fuss is about.

Aug 18, 201924:28
11 - Libra

11 - Libra

We explore Facebook's new cryptocurrency and discuss it's potential ramifications on our society and global economy.

Aug 03, 201921:15
10 - Prefix Scans

10 - Prefix Scans

We look at the prefix scan algorithm for the sum operation, and discover how it can be parallelized in a relatively simple but unintuitive way.

Jul 24, 201917:31
9 - Accessibility

9 - Accessibility

We discuss the origins of accessibility and how things changed as society moved into the digital age.

Jul 06, 201927:50
8 - Distributed Systems Introduction

8 - Distributed Systems Introduction

We go over the fundamentals of distributed systems and get to the bottom of buzzwords like scalability, availability and transparency.

Jun 22, 201935:59
7: Technical Debt

7: Technical Debt

We explore the topic of software quality and discover what technical debt actually means.

Jun 08, 201930:22
6: Side Projects

6: Side Projects

We discuss the projects we have been working on in our spare time and what we've learned in the process.

May 18, 201921:20
5: Transactions, ACID or Just Basic?

5: Transactions, ACID or Just Basic?

In this episode, we discuss the different kinds of database transactions, how they are implemented, and what guarantees they provide.

May 04, 201929:12
4: Software Licenses

4: Software Licenses

Can I take your code and sell it? We discuss the variety of available licenses and whether they make sense in our current technological landscape.

Apr 20, 201928:52
3: Divide and Conquer

3: Divide and Conquer

In this episode, we discuss divide and conquer algorithms like merge sort, and see why it's more challenging to analyze their complexity.

Apr 06, 201927:45
2: To the Hype Train!

2: To the Hype Train!

Are cryptocurrencies just hype? Probably, but let's still talk about how they were created, their merits and their problems.

Mar 24, 201929:37
1: The Simple Complexity Episode

1: The Simple Complexity Episode

An overview of computational complexity theory.

Mar 14, 201927:17