The Curious Engineer

All blogs / Math

Entropic Thoughts

entropicthoughts.com

MathSoftware / engineering practiceHaskellAI / ML

Posts
424 from 26 Oct 2014 to 28 Oct 2026
Posting
weekly (69 in the last year)
Kind
personal blog
Feed
https://entropicthoughts.com/feed

2026 53

  1. Extremely brief history of PDP computers
  2. MTL-style circuit simulator
  3. Script dependencies with Nix
  4. NixOS Is Making Me Less Afraid
  5. The geometric model of maintenance
  6. Swemak: Colemak for Swedish
  7. Predicting Peace
  8. Donating to open source
  9. Shrinking a Fedora virtual disk
  10. Cheaper LLM labelling
  11. Tag index for Org mode blog
  12. Better AI code comment detector
  13. Claude comment detection
  14. A curmudgeon tries a language server
  15. Snakes and Ladders
  16. A noob learns FFT
  17. Purely functional digital circuit simulator (SICP 3.3)
  18. Digital circuit simulator in Haskell (SICP 3.3)
  19. Kuiper Q-Q plot: are these the same?
  20. Intuition for distribution differences
  21. A full body MRI earns you a year of smoking
  22. Data-directed programming in Haskell (SICP 2.4.3)
  23. Tagged data in Haskell (SICP 2.4.2)
  24. GLM 5.2 playing text adventures
  25. Lean, not backpressure
  26. LLMs and almost good code
  27. Is the Monaco Grand Prix decided at qualifying?
  28. 90 % of the t distribution
  29. The stock market returns 4 %
  30. Pythagorean Addition
  31. Regatta Starting Stations – Chi-squared Continued
  32. Article previews in RSS
  33. Fizz Buzz Through Monoids
  34. Understanding systems
  35. Spaced Repetition: Beginner Guide/FAQ
  36. Object Oriented Programming in Ada
  37. Readership maths skills
  38. The MVC Mistake
  39. Lines of code are useful
  40. Esqueleto Tutorial
  41. Are LLMs not getting better?
  42. Rebasing in Magit
  43. Teaching Children to Bicycle
  44. Flake Checks in Shell
  45. Learning KeyBee
  46. Wilks’ Tolerance Intervals
  47. Laws of Succession
  48. Solving Systems of Equations Faster
  49. Survival Analysis of the Supreme Court
  50. Nvidia Stock Crash Prediction
  51. ACX 2025 Prediction Contest Retrospective
  52. You Need A Kitchen Slide Rule
  53. Disaster Costs, 1900–2024

2025 71

  1. Updated LLM Benchmark (Gemini 3 Flash)
  2. Go in 9×9 is Awesome
  3. Military Standard on Software Control Levels
  4. Packaging Perl and Shell for NixOS Deployment
  5. Deprecate Like You Mean It
  6. Advent of Code in Dialog
  7. Transparent Leadership Beats Servant Leadership
  8. Feynman vs. Computer
  9. Renewing GPG Subkeys in 2025
  10. Software Never Fails
  11. Questions for Cloudflare
  12. What Killed Perl?
  13. Arrival Radar
  14. Advent of Code on the Z-machine
  15. AWS DynamoDB Outage Analysis
  16. Weather Forecasts Are Punctuated
  17. Haiku 4.5 Playing Text Adventures
  18. The Greatness of Text Adventures
  19. Non-Obvious Haskell Idiom: Bind to Lambda Case
  20. Hazardous States and Accidents
  21. Non-Obvious Haskell Idiom: ViewPattern Argument Transform
  22. Why I Keep Blogging With Emacs
  23. What the Meteorologist: Announcing wxpull
  24. The Wind, a Pole, and the Dragon
  25. Procedural Rhetoric: Opinions as Algorithms
  26. You Want Technology With Warts
  27. Wiggling Into Correlation
  28. Debugging nixpkgs Package Build
  29. Search Index in 150 Lines of Haskell
  30. NixOS Hetzner Boot Repair
  31. Guessing Game: Haskell Style
  32. Non-Obvious Haskell Idiom: Conditional For
  33. Non-Obvious Haskell Idiom: Guard-Sequence
  34. Evaluating LLMs Playing Text Adventures
  35. Getting an LLM to Play Text Adventures
  36. Android Unexpected Keyboard Review
  37. Interacting With Text Adventures Through Perl
  38. Pay Off Mortgage Or Invest?
  39. Lessons From Creating My First Text Adventure
  40. Financial Calculations in Emacs
  41. Various Hill Plots
  42. The Low-Altitude Economy Is About War
  43. The Most Mario Colours Revisited
  44. Intuiting Monty Hall
  45. Do Stonks Go Up?
  46. When Is Insurance Worth It?
  47. Generating Shorthand SVG in JavaScript
  48. org-element Reimplements Emphasis Parsing
  49. Single-File Stateful Haskell Web App
  50. Announcing Decision Drill
  51. Sidenotes, Footnotes, Inlinenotes
  52. Reading GHC Errors
  53. Haskell: A Great Procedural Language
  54. Checking TLS Certificates with OpenSSL from Terminal
  55. Log-Survival to Death Rate
  56. Parser Combinators Beat Regexes
  57. The Surprising Richness of Correlations
  58. Insurance Perils
  59. Using Emacs More
  60. Actor-Motivation Forecasting Web Tool
  61. Locking Yourself Out With Firewall Configuration
  62. Arithmetic Models: Better Than You Think
  63. Deploying a Single-Binary Haskell Web App
  64. Brier Score
  65. An Opinion is not a Take
  66. Intention-to-Treat Experiments
  67. Featured Flashcards 2024 H2
  68. Quarterly Cup 2024 Q4 Retrospective
  69. The Discovery of Magnetic Variation
  70. Limiting Process Memory with systemd-run
  71. Statistical Literacy

2024 74

  1. The Making of a Forecasting Bot
  2. Book Review: War and Peace
  3. Chi-Squared From Fundamentals
  4. Practices of Reliable Software Design
  5. The Sample Size Curve
  6. Build Failure Rate from Build Times
  7. Using Nix to Try Tools
  8. Book Review: Savage Money
  9. So You Think You Know Ada?
  10. Opening any CLI in Emacs
  11. The Lying p Value
  12. Reading Notes: MPI and Message Passing Concurrency
  13. Quarterly Cup 2024 Q3 Retrospective
  14. Probability-Generating Functions
  15. Incident Inference From Symptoms
  16. Announcing Engineering Enigmas
  17. Enhanced Session with Fedora 40 in Hyper-V
  18. No Feedback ∴ No Good
  19. Tagnostic: Determine Tag Quality
  20. Happy Petrov Day 2024
  21. How Often Does a Child Get Sick?
  22. What Does an AI Revolution Look Like?
  23. Code Reviews Do Find Bugs
  24. Python Programmers’ Experience
  25. Types as Interfaces
  26. Bubble Sort Is Not Robust Either
  27. Sample Unit Engineering
  28. My Most Complicated Prompt So Far
  29. Why Story Points Don’t Work
  30. The Vindication of Bubble Sort
  31. Traffic Flow Fundamentals Flashcards
  32. ACX 2024 Prediction Contest Halfway Review
  33. q What do I title this article?
  34. Student Resampled His t Distribution
  35. Launching a Much-Requested Newsletter
  36. Entropic Thoughts: New Name for Two-Wrongs
  37. Publish Your Observations!
  38. Washing Machine Energy Estimations
  39. Continuous Kelly Trainer: Ship Investor 2
  40. Binary Kelly Trainer: Ship Investor Game
  41. Map of Pontypandy in Fireman Sam
  42. Troubles In Solving Uno
  43. Keep a Safe Following Distance
  44. Neat Inventions
  45. Getting Better at Counter-Strike
  46. Failing at Combinatorics with Haskell
  47. Inventing Fisher’s Exact Test
  48. Fermi, Majorana and Mental Maths
  49. Generating Almost Normally Distributed Values
  50. Forecasting ADIZ Violations
  51. When Is a Counter-Strike Player Good?
  52. Why Donate to Charity
  53. Free Banking Monopoly
  54. The Parking Lot Drill
  55. Browser-Based XmR Charts
  56. Quarterly Cup 2024 Q1 Retrospective
  57. Programming Apprenticeships
  58. Laws of Software Evolution
  59. Intrusive Unit Testing
  60. Extreme Value Statistical Process Control
  61. Deliberate Abstraction
  62. Common Mistakes in Modularisation
  63. Useful Uses of cat
  64. The Curse of Capital Management
  65. Static Actor–Motivation Forecasting: Peace in Middle East
  66. Software and Orders of Magnitude
  67. War – What is it Good For?
  68. SI Units for Request Rate
  69. .NET on Linux: What a Contrast
  70. Steady-State Actor–Motivation Forecasting
  71. Markets vs. Politics and Organisational Structure
  72. Improving a Gut Feeling Forecast
  73. Quarterly Cup 2023 Q4 Retrospective
  74. Outlier Detection

2023 83

  1. Estimating Standard Deviation From Timeseries
  2. John the Toolmaker
  3. First Impressions of Manifold
  4. Know Your Uncertainty
  5. Lessons From Evolution
  6. System Observability: Metrics, Sampling, and Tracing
  7. Bet On the Outcome of the Poker Experiment!
  8. Binary Finger Counting
  9. Computing Poker Win Rate From Sessions
  10. Poker is Surprisingly Generous
  11. How Not To Collect Data
  12. Huffman Codes – How Do They Work?
  13. Typing Fast Is About Latency, Not Throughput
  14. Forecasting Mistakes: Dow Jones Barrier
  15. FlowRatio: Work Sampling Made Easy
  16. The Expressivity Limitations of Object-Oriented Programming
  17. The Hypothesis of the Fair Coin
  18. Sensitivity Counts Against You
  19. Retrospective: Metaculus Quarterly Cup
  20. Intuition and Spaced Repetition
  21. Custom TCP Test Harness in Perl
  22. The Misunderstood Kelly Criterion
  23. Relevance Under Uncertainty
  24. Okay, Microservices Have Benefits Too
  25. Getting Used To Microservices
  26. Update On Antarctic Sea Ice
  27. Response Time Is the System Talking
  28. The Compound Poisson Process
  29. It Takes Long to Become Gaussian
  30. Forecasting Covid-19 Variants
  31. Trying A More Vanilla Fedora
  32. Reducing Measurement Error
  33. Optimise the Expensive First
  34. Statistician’s Time Series Hack
  35. Fun With Watercolours
  36. Forecasting Antarctic Sea Ice
  37. Retrospective Prompts
  38. Black Swans in a Permacrisis
  39. Maximum of Two Dice
  40. Limited Investment With Timeboxing
  41. Forecasting Accuracy
  42. First Impressions of Metaculus
  43. A3: Avoid Memos With An Agenda
  44. Word Embeddings in Perl: Baby Steps
  45. Tindall On Software Delays
  46. Latent Semantic Analysis in Perl
  47. Handoff Waste and Taylorism
  48. Scales of Plan-Driven Development
  49. Parallel Agile: Interesting Idea – Does It Work?
  50. Why Perl?
  51. The Unreasonable Effectiveness of Conditional Probabilities
  52. Reading Slightly More Incrementally
  53. Event Sourcing and Microservices – Unix Style
  54. Painting Shapes, Not Details
  55. Who Was On The Winning Team?
  56. Abduction is Not Induction
  57. Learning Some Logarithms
  58. Precel: Like Excel but for Uncertain Values
  59. Early Adventures in Spaced Repetition
  60. Birthday Line Puzzle
  61. What Is Probability?
  62. Update On the Sidescrolling Flight Simulator
  63. Sidescrolling Flight Simulator
  64. Mind the Gap When Learning
  65. Difficult Questions From Children
  66. Data Consistency Is Overrated
  67. Validate Your Skill
  68. Frequentism And False Dichotomies
  69. Historic Mistakes: Carriers And Presses
  70. The Secret of Meritocracy
  71. The Reinforcing Nature of Toil
  72. Three Customers In A Bank
  73. Share Buybacks Are Indirect Investments
  74. Central Banks Do Not Rule By Decree
  75. Stop Saying “Junior” And “Senior”
  76. Emptying the Dishwasher With Systems Theory
  77. Evolution Preserves the Status Quo
  78. Confusing Uncertainty For Information
  79. Predicting Resource Usage From Increased Traffic
  80. You Can (Somewhat) Reliably Measure Change Failure Rate
  81. Hovering a Helicopter
  82. Verifiable Software Development Estimations
  83. Programmers and Non-Coding Work

2022 10

  1. Sampling For Managers
  2. Statistical Process Control: A Practitioner’s Guide
  3. Queueing Systems 2: Percentiles and Simulation
  4. Markov Chains for Queueing Systems
  5. Bootstrapping Kaplan–Meier Survival Curves
  6. Dichotomisation Destroys Data
  7. Long Hiatus: Emacs Upgrades
  8. Poor Man’s Logistic Regression
  9. Quick Variance Computation
  10. Group Decision-Making and Debate

2021 12

  1. Default To Large Modules
  2. Estimating Work Lag
  3. Reading Notes: Accelerated Expertise
  4. Trading Functionality For Time
  5. Screenwriting and Software Development
  6. The Hidden Cost of Heroics
  7. Reuse Begets Coupling
  8. Bayes Rule in Odds Form
  9. Problem, Learning, and Information
  10. Build vs. Buy
  11. Guess ≠ Prediction ≠ Bet
  12. Survival Analysis For Customer Retention

2019 5

  1. Essay Recommendation: On Having Enough Socks
  2. Centered Cursor Mode in Vanilla Emacs
  3. Emacs Calc – Evaluate Expression For Multiple Values
  4. Standard Exception Hierarchy in .NET Core
  5. .NET on Non-Windows Platforms: A Brief History

2018 22

  1. Code Review Checklist, Second Edition
  2. Debugging Common Lisp in Slime
  3. Purely Functional AVL Trees in Common Lisp
  4. Technical Writing: Learning from Kernighan
  5. Update Bound Data Without Replacing It in D3
  6. Intuition around NP-Hard and NP-Complete
  7. The Expressive Ada 2012 Challenge
  8. Matrix Is Everything I Want IRC To Be
  9. Computing Science Dictionary
  10. Blogging With R and ggplot2 in Org
  11. Migrating Away From Use-Package
  12. Top-down vs Bottom-up Programming
  13. Swedish Colemak Hack
  14. A Gentle Introduction to Monad Transformers
  15. Emacs Magic: Simple Pastebin
  16. Ceasing Short-Lived Maintenance of Emacs Versor
  17. Withdrawn: False Alarm About the TP300LA
  18. Asus TP300LA After Three Years: Battery Trouble
  19. Grep, sed and awk – The Right Tool For The Job
  20. The AWK State Machine Parser Pattern
  21. Pet Peeve: Tea, Tannins and Strength
  22. Why You Should Buy Into the Emacs Platform

2017 25

  1. Reading Notes: Understanding Nginx Location Selection
  2. Variable Width Unicode Fallback Fonts in Emacs
  3. Reasons To Like Stockholm: Water
  4. Emacs Calendar with Fixed Width Font
  5. Touchpad Pointer Speed in Xorg on Debian Linux
  6. Display Backlight Keys on TP300LA
  7. Emacs for Humans: Glossary
  8. New and Improved: Two-Wrongs Now Powered By Org Mode
  9. Migrating From iptables To nftables – Link Collection
  10. Temporarily Disabling iptables
  11. Passwordless sudo
  12. On Competing with C Using Haskell
  13. Sensor and Controller Chip in “Roxcore 720p” Action Camera
  14. Extendable Data in Haskell (part 2)
  15. Dynamic Dispatch in Haskell, or: How Can I Make My Code Extendable?
  16. Bayesian Statistics
  17. Pairing Debian Laptop with Bluetooth Headphones
  18. Reading Notes: Guide for Ravenscar in High Integrity Systems
  19. Securing a Debian Laptop with a Firewall
  20. Secure DNS on Laptop with Debian
  21. Selective Delays in SPARK and Ravenscar
  22. Unicode Strings in Ada 2012
  23. Timeout Blocking Requests in Ada
  24. Guessing Game: Ada Style!
  25. Intuition for Time Complexity of Algorithms

2016 24

  1. Basic Firewall Configuration (iptables)
  2. Basic Computer Security: Things I Want to Explore
  3. My Experience Using Yesod for a “Quick Hack”
  4. Current Email Solution: gpg-agent, cron, OfflineIMAP, Notmuch, Alot, Vim and msmtp
  5. Rethinking Text Input on Touch Screens
  6. Pomohoro: Combine the Pomodoro Technique with hledger and Timeclock for Productivity
  7. Fallback Font, Good Fonts and a General Font Recommendation
  8. Fake Bold Small Caps in XeLaTeX with Fontspec
  9. Connecting to KTH Eduroam on Debian Stretch
  10. Why Cyclists Use Public Roads
  11. Starting to Commute by Bicycle
  12. rtorrent missing from Homebrew on El Capitan
  13. Gmail Passwords Trusted, Yet Not Trusted
  14. The Weekly Pure Bullet Journal
  15. rsync.net
  16. Is Learning Shorthand for Personal Note-taking Worth It?
  17. Learning to Say No to Myself
  18. Systemet i Melins system
  19. A Checklist for Renewing GPG Subkeys
  20. Melins system, övning och demonstration
  21. Why I’m Learning Shorthand
  22. A Maze of Storage Cages
  23. The Bug in the Physical Building
  24. Parser Combinators: Parsing for Haskell Beginners

2015 26

  1. Using withPtr From inline-c in Haskell
  2. Darkroom Chemistry and Photograms
  3. Bubble Sort: Not Even Once
  4. On Escape Meta Alt Control Shift
  5. The Joy of Manipulation
  6. A Haskell Time Library Tutorial
  7. The Touchpad On the Asus TP300LA
  8. Redirect Every Subdomain to the Same Subdomain on a Different Host with Nginx
  9. Static Generation with Haskell
  10. Statically Generated Blog
  11. The Case for Controlled Side Effects
  12. The Mystery of the Deterministic Super Shotgun
  13. Web Scraping with Lenses
  14. How Laziness Works
  15. Developing B&W Film at Home
  16. IMAP/SMTP port numbers for Google mail
  17. Monospaced Code Formatting in Skype
  18. Parser Combinators
  19. RecordMyDesktop Videos Going out of Sync
  20. Does My DSLR Have Dead Pixels?
  21. Fast SQL for Inheritance in a Django Hierarchy
  22. Documentation: Reference Manual vs. Cookbook
  23. Why Web Apps Disappoint Me
  24. The Case for Shooting in Manual Mode
  25. How Much Does an Experienced Programmer Use Google
  26. Painting with Light

2014 19

  1. The “What Are Monads?” Fallacy
  2. A Year of Baduk
  3. An Update a Week Keeps the Hackers Away
  4. Debian Linux On the Asus TP300LA, Bad News #1
  5. Move Translations Between Django Apps
  6. Text Selection Behaves as Swipe in WeeChat
  7. Reasons to Know Vim – It’s Similar to ed
  8. Debian Linux On My Asus Transformer Book Flip (TP300LA)
  9. Myth of the Day: Functional Programmers Don’t Use Loops
  10. Discoverability of Functions in Functional Languages
  11. Resize Video While Keeping Quality High with FFmpeg
  12. What Optimisations Are Not
  13. Why Code Review Matters: Suble (Often Non-Breaking) Bugs
  14. Custom Surrounding Text with surround.vim
  15. Draw a Tree Structure With Only CSS
  16. Say What You Mean, Not What Happens to Work
  17. Email Quoting with Vim Visual Block Mode
  18. Calculator in Spotlight Not Doing Simple Arithmetic?
  19. Crash-Only Software on the Desktop, Please