RSS.Social

DaFoster

follow: @[email protected]

Posts

Issue counts always go up

Designing Software in the Large

The trouble with the Symbol type

Dumping a traceback when an error message is printed

Effective Code Reviews

PyCon US 2024 Highlights

Redis relicensing: Why is this a problem?

Bulkheads: A pattern for handling unexpected errors in software

Debugging a deadlock in Python

Custom file icons, folder icons, and app icons on different operating systems

How to make a binary .deb Debian package using Docker

Debugging bash scripts with the bashdb debugger

Crystal Web Archiver 1.3.0b Released!

CompressedTextField for Django & MySQL is released!

Interview with David Foster

Crystal Web Archiver 1.1.0b Released!

You might not need centralized continuous integration

Reliable rendering of web pages that view concurrently modified data

Real-time updates in Django with WebSockets, Channels, and pub-sub

Building web apps with Vue and Django (2024) - The Ultimate Guide

Database clamps: Deterministic performance tests for database-dependent code

Privacy Sandbox: Google's answer to privacy-conscious advertising

Tests as Policy Automation

Python's type checking renaissance

I no longer trust The Great Suspender

Power Naps

Stress

OS Abstractions are Failing Us

Dependent Types: Impressions of a software practitioner

Timecharts

Why isn't the external link symbol in Unicode?

The Flat Module Pattern in JavaScript

Performance Testing

Unsound type systems are still useful

How to implement a large software feature

How to annotate a new recipe

Learning to cook better: My journey

The Trouble with Global Variables

How to Design Large Programs with Abstraction and Encapsulation

How to upload from OS X Photos to Facebook (2016)

Glue in Functional Programming Languages

Abandonment vs. Unchecked Exceptions for Error Handling

A Programmer's Guide to Practical Hats

Notes on “The Clean Coder”

Roles on Software Teams

State of the Union in Programming Languages (2015)

Algorithms 101 for Software Applications

Unicode 101

Optional Structural Static Typing in Python

Block Distracting Websites

Semantic Versioning vs. Romantic Versioning

Proof terms in Idris

Spectrum of Languages by Hardware Distance

Error handling styles in programming

Learning Japanese - the first 6 months

Submitting a Python App to the Mac App Store

Reading Japanese text from images

Agda: Second Impressions

What is Color?

Agda: First Impressions

How to move notes from an iPhone to an email account

Impressions of Haskell

Scrivener: An IDE for thinkers, creators, and writers

Shame on the NSA

WA Initiative 522: GMO Food Labeling

Strange Loop 2013 Highlights

Regular Expressions

How I learn new programming languages

Interactive Computing

Fixing a function at runtime without restarting the program

Skills I'm Learning at Splunk

Skills I Learned at Microsoft

Sending email from command line scripts

Error Handling

Handling Text Correctly

RDiscount 2.1.6 released

Implicit Partial Application Considered Harmful

Programming for Perfectionists (P4P): A Book Outline

Avoid feeling like a port on the Mac

Copyrights and Licenses for Software

Exploring Onionland: The Tor .onion Darknet

Making an Existing Python Program Unicode Aware

Beautiful Code: SQLite

Migrating from BBEdit to Sublime Text

Introducing p4status: A status command for Perforce

Killer apps for software platforms

Notes on Racket (PLT-Scheme)

Notes on Prolog

Visual Guide to Programming Language Properties

RDiscount 2.0.7 released

Learnings from SICP (and Lisp)

Unique Features of Various Programming Languages

Things I Wish I Knew Before Working in Industry

Programming is Fun. But What Matters is Solving a Real Problem.

This website is now powered by Jekyll

Why I no longer use Drupal

Retrospect vs. Time Machine

Impact of Anime on my Programming Experience

Comparing Writing Utensils