`Tis the season for performance reviews. That time of year when we give, and get, evaluations of our annual performance. These annual rituals come with occasional joy and often a lot of shock.In Radical Openness, there is a lesson on Learning from Corrective Feedback, which seems applicable to all those...
Wednesday, March 12, 2025
Wednesday, August 10, 2022
On the Fight for Software Liberty
RMS writes in Why Open Source Misses the Point of Free Software:
Sometimes [developers of proprietary software] produce a program that is powerful and reliable, even though it does not respect the users' freedom. Free software activists and open source enthusiasts will react very differently to that.
A...
Tuesday, July 14, 2020
rm != rg
I use ripgrep, rg. It's like recursive grep, only 100x better.
Today, I had this session:
$ rm pattern
rm: pattern: No such file or directory
$ rg pattern
$
See that? I meant to type "rg pattern" the first time, but typed "rm pattern". Luckily no harm was done in this case. But what if I had typed...
Tuesday, October 30, 2018
Emulating block scope in PHP

Variables are born, they live their lives, and then they die. But beware! (Cue spoopy theme music.) Zombie variables lurk in the simplest of PH...