The Curious Engineer

All blogs / Software / engineering practice

DaFoster

dafoster.net

Software / engineering practicePythonWeb developmentTesting / QADev tools / editors / IDEs

Posts
101 from 17 Sep 2010 to 17 Apr 2026
Posting
now and then (2 in the last year)
Kind
personal blog
Feed
https://dafoster.net/atom.xml

2026 2

  1. AI Attribution in Git
  2. Oops, I wrote a database

2025 4

  1. Issue counts always go up
  2. Designing Software in the Large
  3. The trouble with the Symbol type
  4. Dumping a traceback when an error message is printed

2024 4

  1. Effective Code Reviews
  2. PyCon US 2024 Highlights
  3. Redis relicensing: Why is this a problem?
  4. Bulkheads: A pattern for handling unexpected errors in software

2023 4

  1. Debugging a deadlock in Python
  2. Custom file icons, folder icons, and app icons on different operating systems
  3. How to make a binary .deb Debian package using Docker
  4. Debugging bash scripts with the bashdb debugger

2022 2

  1. Crystal Web Archiver 1.3.0b Released!
  2. CompressedTextField for Django & MySQL is released!

2021 11

  1. Interview with David Foster
  2. Crystal Web Archiver 1.1.0b Released!
  3. You might not need centralized continuous integration
  4. Reliable rendering of web pages that view concurrently modified data
  5. Real-time updates in Django with WebSockets, Channels, and pub-sub
  6. Building web apps with Vue and Django (2024) - The Ultimate Guide
  7. Database clamps: Deterministic performance tests for database-dependent code
  8. Privacy Sandbox: Google's answer to privacy-conscious advertising
  9. Tests as Policy Automation
  10. Python's type checking renaissance
  11. I no longer trust The Great Suspender

2020 2

  1. Power Naps
  2. Stress

2019 2

  1. OS Abstractions are Failing Us
  2. Dependent Types: Impressions of a software practitioner

2018 6

  1. Timecharts
  2. Why isn't the external link symbol in Unicode?
  3. The Flat Module Pattern in JavaScript
  4. Performance Testing
  5. Unsound type systems are still useful
  6. How to implement a large software feature

2017 4

  1. How to annotate a new recipe
  2. Learning to cook better: My journey
  3. The Trouble with Global Variables
  4. How to Design Large Programs with Abstraction and Encapsulation

2016 6

  1. How to upload from OS X Photos to Facebook (2016)
  2. Glue in Functional Programming Languages
  3. Abandonment vs. Unchecked Exceptions for Error Handling
  4. A Programmer's Guide to Practical Hats
  5. Notes on “The Clean Coder”
  6. Roles on Software Teams

2015 7

  1. State of the Union in Programming Languages (2015)
  2. Algorithms 101 for Software Applications
  3. Unicode 101
  4. Optional Structural Static Typing in Python
  5. Block Distracting Websites
  6. Semantic Versioning vs. Romantic Versioning
  7. Proof terms in Idris

2014 8

  1. Spectrum of Languages by Hardware Distance
  2. Error handling styles in programming
  3. Learning Japanese - the first 6 months
  4. Submitting a Python App to the Mac App Store
  5. Reading Japanese text from images
  6. Agda: Second Impressions
  7. What is Color?
  8. Agda: First Impressions

2013 34

  1. How to move notes from an iPhone to an email account
  2. Impressions of Haskell
  3. Scrivener: An IDE for thinkers, creators, and writers
  4. Shame on the NSA
  5. WA Initiative 522: GMO Food Labeling
  6. Strange Loop 2013 Highlights
  7. Regular Expressions
  8. How I learn new programming languages
  9. Interactive Computing
  10. Fixing a function at runtime without restarting the program
  11. Skills I'm Learning at Splunk
  12. Skills I Learned at Microsoft
  13. Sending email from command line scripts
  14. Error Handling
  15. Handling Text Correctly
  16. RDiscount 2.1.6 released
  17. Implicit Partial Application Considered Harmful
  18. Programming for Perfectionists (P4P): A Book Outline
  19. Avoid feeling like a port on the Mac
  20. Copyrights and Licenses for Software
  21. Exploring Onionland: The Tor .onion Darknet
  22. Making an Existing Python Program Unicode Aware
  23. Beautiful Code: SQLite
  24. Migrating from BBEdit to Sublime Text
  25. Introducing p4status: A status command for Perforce
  26. Killer apps for software platforms
  27. Notes on Racket (PLT-Scheme)
  28. Notes on Prolog
  29. Visual Guide to Programming Language Properties
  30. RDiscount 2.0.7 released
  31. Learnings from SICP (and Lisp)
  32. Unique Features of Various Programming Languages
  33. Things I Wish I Knew Before Working in Industry
  34. Programming is Fun. But What Matters is Solving a Real Problem.

2012 2

  1. This website is now powered by Jekyll
  2. Why I no longer use Drupal

2010 3

  1. Retrospect vs. Time Machine
  2. Impact of Anime on my Programming Experience
  3. Comparing Writing Utensils