Articles

Tidy Caseless Ordering in Django

Sorting by name in Django is a common admin annoyance. By default upper-case names come before lower-case ones because of their raw ASCII encodings. This isn't fun to try and explain to clients. For years I've ordered my models using a forced lower-case slug, but sometimes you need the big guns: database functions. Let's use that powerful ordering, while keeping our code nice and neat.

AVR Multi-Programmer

I'm about 10 years late to the party, but in this project a cheap Arduino UNO clone becomes a very handy AVR programmer for everything from a little 8-pin ATtiny13 to a 28-pin ATmega.

Automatic Low-Voltage Cutoff

Running a battery completely flat can permanently damage it, lead-acid and lithium-polymer types especially. I put together this circuit to protect a small lead-acid UPS battery. It's cheap, has a high current capacity, and use only very common parts. Did I mention that it's cheap?

Cheap Electronics as a Sudoku Alternative

Today's challenge is to drive a cheap 8-digit LED display. Months ago I bought a cheap module from Aliexpress. Too cheap. Instead of a nice smart LED driver chip as I had expected, it features instead the jewel of 1980's technology: a pair of 74HC596 shift registers. Let's explore this puzzle!

Term + hoes = Theorems

An alternade is one of those fun word puzzles that I enjoy solving by cheating, using wizardry rather than brain sweat.