The Curious Engineer

All blogs / C++

Probably Dance

probablydance.com

I can program and like games

C++Performance / optimizationGame developmentEssays / personalSociety / politics / economy

Posts
120 from 6 May 2011 to 23 Sep 2026
Posting
monthly (10 in the last year)
Kind
personal blog
Feed
https://probablydance.com/feed/

2026 9

  1. The Mundanity of Excellence, Small Wins, and Why You Should Fix Bugs Before Writing New Features
  2. If AI Writes All the Code, What Do the Programmers Do?
  3. Book Review: Babel by R.F. Kuang
  4. Apple is Holding my Pictures Hostage Until I Accept Their New Terms of Service
  5. President Graph – FRED Data Broken Down by Party and President
  6. I’m Getting a Whiff of Iain Banks’ Culture
  7. Word Map – A Game About Hill Climbing and Stepping Stones
  8. How Programmers Spend Their Time
  9. How LLMs Keep on Getting Better

2025 6

  1. How to Adjust Your Kids Sleep Schedule for Daylight Savings in 15 Minute Increments
  2. Avalanche Studios NYC Retrospective – An Ambitious Company Ruined by Bad Development Practices
  3. Installing a Mini-Split AC in a Brooklyn Apartment
  4. Revisiting Knuth’s “Premature Optimization” Paper
  5. I’m Open-Sourcing my Custom Benchmark GUI
  6. Why Does Integer Addition Approximate Float Multiplication?

2024 2

  1. Initial CUDA Performance Surprises
  2. How I use LLMs to program

2023 3

  1. Transform Matrices are Great and You Should Understand Them
  2. Two Kids Put Me on a Two Sleep Schedule
  3. Beautiful Branchless Binary Search

2022 5

  1. Fine-grained Locking with Two-Bit Mutexes
  2. Finding the “Second Bug” in glibc’s Condition Variable
  3. Sudoku Variants as Playful Proof Practice
  4. Reasons why Babies Cry in the First Three Months, How to Tell The Cries Apart, and What to Do
  5. Automated Game AI Testing

2021 4

  1. C++ Coroutines Do Not Spark Joy
  2. A Logarithm is Just the Number of Digits
  3. Happy Easter! I hid an Easter Egg in Just Cause 4 for You
  4. Understanding why the CDC Gives the Guidelines that it Does

2020 9

  1. Looking for Voter Fraud (in old elections) with Data Visualization
  2. Using TLA+ in the Real World to Understand a Glibc Bug
  3. On Modern Hardware the Min-Max Heap beats a Binary Heap
  4. Partial Scaling – How to do Half a Multiplication
  5. Concepts for the Current US Mess
  6. The Covid-Shutdowns are Actually a Great Civics Lesson
  7. A New York History of Covid-19, Written at the Half-Way Point
  8. A New Strategy Genre Grows Up: Survival Chaos, my New Favorite Game
  9. Why Video Game AI does not Use Machine Learning

2019 6

  1. Measuring Mutexes, Spinlocks and how Bad the Linux Scheduler Really is
  2. What Happened to the Real Time Strategy Genre
  3. A New Algorithm for Controlled Randomness
  4. Treasure Hunting Systems Found in the History of Video Games
  5. On a Future of Screen-less Computers
  6. A Programmers Take on “Six Memos for the Next Millennium”

2018 4

  1. Fibonacci Hashing: The Optimization that the World Forgot (or: a Better Alternative to Integer Modulo)
  2. A new fast hash table in response to Google’s new fast hash table
  3. A Summary of the Important Points in Capital in the Twenty-First Century
  4. Finding Floating Point Numbers for Exact Math

2017 7

  1. Where do top scientists come from? And what do taxes have to do with it?
  2. Games Are About Personal Development
  3. Evidence For How To Make Great Games
  4. Collected Advice for Doing Scientific Research
  5. Less Weird Quaternions
  6. I Wrote The Fastest Hashtable
  7. Faster Sorting Algorithm Part 2

2016 8

  1. random_seed_seq: A small utility to properly seed random number generators in C++
  2. I Wrote a Faster Sorting Algorithm
  3. Investigating Radix Sort
  4. Lessons Learned from Shenzhen I/O
  5. C++11 Completed RAII, Making Composition Easier
  6. Neural Networks Are Impressively Good At Compression
  7. VR Will Be About Using Your Hands
  8. Functional Programming Is Not Popular Because It Is Weird

2015 10

  1. Quickly Loading Things From Disk
  2. A surprisingly useful little class: TwoWayPointer
  3. Ideas for a Programming Language Part 5: More Flexible Types
  4. Another explanation for the Fermi Paradox
  5. Ideas for a Programming Language Part 4: Reactive Programming
  6. On Self-Improving Intelligence
  7. Recommended Link: Inventing on Principle
  8. Ideas for a Programming Language Part 3: No Shadow Worlds
  9. Recommended Link: Deprecating the Observer Pattern
  10. Ideas for a Programming Language Part 2: A more liberal call stack

2014 15

  1. Ideas for a Programming Language Part 1: Source Code in Database
  2. plalloc: A simple stateful allocator for node based containers
  3. Ideas for a Programming Language
  4. Comma Operator RAII Abuse
  5. Another Opinion on “Almost Always Auto”
  6. The Curious Failure of Functional Programming for Parallel Applications
  7. format_it: Iterator based string formatting
  8. Databases are Fucking Stupid
  9. I Wrote a Faster Hash Table
  10. I Wrote a Fast Hash Table
  11. Reinventing the Wheel for Better Compile Time
  12. How do you secure Bitcoin?
  13. Bitcoin Mining for Space Heating
  14. Introducing the Asserting Mutex
  15. Alias templates with partial specialization, SFINAE and everything

2013 7

  1. Type-safe Pimpl implementation without overhead
  2. The Best Game Stories Are Told in the Past Tense
  3. Source to Source Optimization
  4. 4GB per Vector
  5. Handmade Coroutines for Windows
  6. The problems with uniform initialization
  7. A faster implementation of std::function

2012 17

  1. The importance of std::function
  2. scope(exit), scope(failure) and scope(success)
  3. Learning D Part 4: I’m done
  4. Variadic Coroutines in C++ and D
  5. Implementing coroutines with ucontext
  6. Learning D Part 3: Garbage Collection
  7. Learning D Part 2: Random Little Things I Like
  8. Learning D Part 1: IDE and Libraries
  9. First Class Functions in C++
  10. The privacy implications of databases
  11. How to make successful student games
  12. Job hunting in the Games Industry
  13. Old Wisdom
  14. GDC bragging
  15. Expensive Cheap Code
  16. Code ownership
  17. Towards less side-effects

2011 8

  1. A simple jump
  2. Loving std::unique_ptr
  3. SSE2 in Visual Studio
  4. It’s not a generational thing
  5. Storing information in a .png
  6. My “Way Too Generic Serializer”
  7. Template Metaprogramming, Reflection in C++0x
  8. About Playtesting