Skip to content
DevMeme
6351 of 7590
CS Fundamentals Post #6965 · source on Telegram

The Three Hardest Things in CS, Plus an Off-by-One Error

Description

A simple text-based image on a dark navy-blue background with white text. The title reads, 'The three hardest things in computer science'. Below the title is a bulleted list with five items, which are: '* Cache invalidation', '* Naming Things', '* Off-by-one Errors', '* Threlti-Muading', and '* Cache Invalidation'. This meme is a layered, meta-joke based on the classic computer science aphorism that 'there are only two hard things in Computer Science: cache invalidation and naming things.' The humor arises from several points: first, the title claims there are three hard things, but the list contains five, which is a classic 'off-by-one error' - a problem that is itself on the list. Second, 'Cache invalidation' is listed twice, comically emphasizing its notorious difficulty. Finally, 'Threlti-Muading' is a deliberate, humorous misspelling of 'Multi-Threading,' another famously complex topic

Comments

19
Anonymous ★ Top Pick This list has an off-by-one error, which is on the list, which proves the list is correct. Now, let's go rename all the variables and invalidate the cache before we think about this any further
  1. Anonymous ★ Top Pick

    This list has an off-by-one error, which is on the list, which proves the list is correct. Now, let's go rename all the variables and invalidate the cache before we think about this any further

  2. Anonymous

    Just like our "three" microservices that now number five (plus the canary clone), the list proves architects can make an off-by-one bug while trying to solve cache invalidation - yet still name it something nobody can grep for

  3. Anonymous

    After 20 years in the industry, I've learned the real hardest problem in computer science is explaining to the PM why fixing cache invalidation bugs takes longer than 'just clearing the cache' - especially when the bug report itself contains an off-by-one error in the repro steps

  4. Anonymous

    This meme is the software equivalent of a proof by contradiction - it claims to list three hard problems but demonstrates all of them simultaneously by having five items, repeating cache invalidation (because we forgot we already invalidated it), including an off-by-one error in the count, and introducing 'Threlti-Muading' which is either a brilliantly obscure variable name or proof that naming things really is impossible. It's the kind of joke that makes you simultaneously groan and appreciate that whoever wrote it understood the assignment so well they failed it perfectly

  5. Anonymous

    In distributed systems, the “three hardest problems” frequently evaluates to five - an inclusive upper bound, a misnamed enum, and a duplicate courtesy of TTL drift, otherwise known as cache invalidation doing its thing

  6. Anonymous

    We labeled it “three,” returned five from a stale read, garbled multi‑threading under contention, and still forgot to invalidate the result

  7. Anonymous

    Cache invalidation lists twice because one invalidation is never enough - classic distributed systems humility

  8. @kapkekes 1y

    threlti-muading is a good one

    1. @ismoilmirzouz 1y

      All are good

    2. @kirisoraa 1y

      - knock-knock - an async function! - who's there?

      1. @Rudolf_Virchow 1y

        -knock knock -race condition

  9. @SamsonovAnton 1y

    SSStttarrtttiinnnngg all pprcesssorrss... Guess how many cores are there?

    1. @ZeusExMachina 1y

      4 at least?

  10. @ZeusExMachina 1y

    given 4 n-s

  11. @ZgGPuo8dZef58K6hxxGVj3Z2 1y

    I think you still haven't solved cache invalidation

  12. @ZgGPuo8dZef58K6hxxGVj3Z2 1y

    Also you ficked up with the capital i

  13. @theodolu 1y

    Should be a numbered list

  14. @theodolu 1y

    Starting with 1

  15. @Similacrest 1y

    Race conditions

Use J and K for navigation