Category: Geek

  • A Few More Thoughts on Literate Programming

    A while back, I became intrigued by Donald Knuth’s idea of Literate Programming, and decided to give it a shot. That first attempt was basically just me writing down what I knew as quickly as I learned it, and trying to pass it off as a knowledgeable tutorial. More recently, I tried a second project, […]

  • Readable Code: Variable Overload

    It’s well known that reading code is a lot harder than writing it. But I recently got some insight as to why that is. I was debugging someone else’s sh script. This one seemed harder to read than most. There was a section that involved figuring out a bunch of dates associated with a particular […]

  • Why Can’t I Subscribe to an Address Card?

    The other day, I was talking to an old friend and doing that annoying ritual where I told her all of the phone numbers and email addresses I had for her, and she told me which ones were out of date and which ones I was missing. And I wondered why there’s not a better […]

  • The Triumph of Looks over Function

    Back when the Macintosh first came out, in the 1980s, it was presented as a more user-friendly alternatives to PCs running MS-DOS: it had a mouse that you could point with, and a graphical interface. Instead of memorizing commands and reading cryptic error messages, you could click on icons, or explore menus to see what […]

  • Staying on Top of the Wave

    I used to work for a computer researcher who didn’t actually use computers. Academics can sometimes be quirky, you know? He just had ~/.forward set up to print every message (on paper) as it came in. One problem with this setup was that people would send him résumés as PostScript (and later PDF) attachments. The […]

  • What the Hell Is Up With MacOS Periodic Jobs?

    Yesterday, Feb. 25 at 13:19, my Mac ran periodic monthly. I thought it odd that this would run on the 25th rather than the 1st of the month, and in the afternoon rather than late at night, so I dug a little deeper. It looks as though Apple now deprecates cron in favor of launchd […]

  • Ansible: Roles, Role Dependencies, and Variables

    I just spent some time banging my head against Ansible, and thought I’d share in case anyone else runs across it: I have a Firefox role that allows you to define a Firefox profile with various plugins, config settings, and the like. And I have a work-from-home (WFH) role that, among other things, sets up […]

  • Recursive grepping

    Sometimes you just need to grep recursively in a directory. If you’re using find $somedir -type f -exec grep $somestring {} \;, don’t: Use xargs to avoid creating a bazillion grep processes:find $somedir -type f -print | xargs grep $somestring But spaces in the output of find (i.e., spaces in filenames) will confuse xargs, so […]

  • Campaign Manager: Serializing Recursive Objects

    There’s an idea for a game that’s been rattling around my brain for a while, so I finally decided to learn enough Unity to birth it. To get an idea of what I have in mind, think Sid Meier’s Civilization, but for elections: you play a campaign manager, and your job is to get your […]

  • WFHing with Emacs: Work Mode and Command-Line Options

    Like the rest of the world, I’m working from home these days. One of the changes I’ve made has been to set up Emacs to work from home. I use Emacs extensively both at home and at work. So far, my method for keeping personal stuff and work stuff separate has been to, well, keep […]