Monday, June 27, 2022

aphoristic noodling

I read this post by Baldur Bjarnason, listing "Everything I’ve learned about web development in the almost twenty-five years I’ve been practising", and this followup, which says:

Some of the aphorisms ended up not-so-pithy, but it was overall a fun little experiment that I recommend: note down everything relevant about the craft that you can think of over the space of a week.

I thought about this, and then I thought: Ok, what exactly is my craft? I do computer shit. So I started a list about that, challenging myself to be descriptive about things and not veer too far into pure advice.

A year or so passed, and I noticed this post was still sitting in my "work in progress" directory. I tried picking it back up and noticed how much overlap it would have with other posts like these:

This style of writing is basically catnip to people like me, whether it's of much use to anyone else or not. This post ultimately felt like a dead end, because instead of a blog post, it really wants to be some long document where I collect all sorts of aphorisms, pithy quotes, eponymous laws, and so forth about technical work and maybe just work generally. Maybe I'll start that document one of these days.

Anyway, that very partial and uneven list:

  1. Caching is hard to think about and breaks often.
  2. Cleverness in code is generally a sign of danger.
  3. Business ruins everything.
  4. Some forms of interoperability are a trap.
  5. Bad ideas aren't limited to bad people.
  6. Good people aren't limited to good ideas.
  7. An aesthetic is not an ethic.
  8. The customer is usually wrong.
  9. If it's written in:
    • C: It'll work, but I should remember there's a buffer overflow or something.
    • PHP: It'll probably work, but there's an SQL injection vulnerability somewhere and the cool kids will be shitty about it being PHP.
    • Python: 50/50 whether it'll just barf stack traces into my terminal for non-obvious reasons.
    • Ruby: Decent chance I'll wind up reading the source code and cursing at clever Ruby programmers.
    • Haskell: It works, but I'm not smart enough to understand it.
    • Rust: Probably works, if they finished writing it. I'm not smart enough to understand the code.
    • Go: Total crapshoot, but either way I bet the CLI has a bunch of infuriatingly nested subcommands.
    • JavaScript: Life is too short to deal with whatever package management and runtime I'm supposed to use for this now.
    • Java: If I have to find out it's Java, I'm probably in trouble.
  10. Lightweight markup languages are fundamentally in tension with the range of structures that their users will inevitably want to express.
  11. Design, marketing, and management are all real undertakings, but they are also aggressively self-reproducing ideological systems and political projects.
  12. Environments within which small tools can be combined to operate on simple abstractions are powerful. An environment might be what you think of as an operating system, a programming language, a database, or an application. All else being equal, the ones that can bridge to other environments are more powerful.
  13. There are few abstractions in computing more stable than filesystems, standard IO, text files, and the shell. Boring relational databases aren't too far behind, but the barriers to entry and data transfer are higher.
  14. Technology is at least as fashion-oriented as the sartorial choices of highschoolers, actors, and musicians. Changes are driven as much by a desire for difference from the perceived status quo as anything else.
  15. Technical politics are also organizational, labor, and identity politics. The currents of power they involve are illegible without taking those factors into account.
  16. There's no guarantee that your technical preferences will match up with the ideas, people, or power structures you find agreeable in other domains. (Or vice versa.)

tags: topics/technical, topics/work

p1k3 / 2022 / 6 / 27

Sunday, May 29, 2022

One earlier this month from Tyler on notebooks and paper notes.

This was a reminder that I’d been meaning to update notes on notes with the current shape of my system. My habits haven’t changed drastically in three years, but I’ve made some extensions worth describing. (In particular, I now make heavy use of the tagged log format I wrote about last year. In turn, that’s shown me some things that could be better.)

On a meta level, that document is still mostly boring technical specifics. I’d like it to include more of the why of things, the stuff I’ve come to realize after years of overthinking.

tags: topics/notebooks, topics/notes

p1k3 / 2022 / 5 / 29

wednesday, march 16, 2022

what's the distance
between a nervous habit
and a ritual tradition?

maybe just time and the collection plate
or how much group dynamics and trappings of
the numinous you can gin up

but i notice how
a lot of us have lost all touch with the latter
while accumulating a distinct excess
of the former

p1k3 / 2022 / 3 / 16

Monday, February 21, 2022

why i don't blog much, any more

I read Tyler’s Why I Blog earlier today, and it reminded me of a draft I started here back in early January. I thought: These are compelling reasons to write in public, or at least I used to think so. Then I remembered I’d been been writing about not doing that any more.

I used to. Lately… Well, prior to a bit about writing on paper from the 7th, I last posted anything of length here in July. In all of 2021, I wrote 19 entries. This is the fewest in any year that I’ve had a blog, including the ones where it lived on GeoCities or still had a tilde in the URL. Reading back over the year, there’s not much weight to any of it. A few incomplete thoughts. Some rabbitholing on mundane topics. Mostly: Going through motions and repeating myself.

I could overthink this, but it isn’t warranted. The reasons not to write here are all just themes I’ve been repeating at (numbing) length for years: Self-expression in the open seems like an attack surface. A public record is, as much as anything, a liability. Kinds of text that once felt liberating now feel like an embarrassment at best. The internet in general is owned by bad people and has gone septic as a culture, even as it determines culture as a whole.

Besides all of that, writing on the internet in 2022 is a lot like photos in 2022: There’s just so much of the stuff. It’s not just that anything I write here might be used to train a language model a la GPT-3, it’s that increasingly it feels like it could be the product of one.

And so it naturally works out that instead of writing more p1k3 entries, I chat with my friends, post to a handful of people on Mastodon, and take notes in local files.

I still feel some kind of an attachment to this. It’s my longest-running project, more or less, and writing here has been a lot of how I sorted out the world for myself. Back in 2017, I wrote:

On the other hand. Writing is one of the only real powers I've ever had, and the surface of this terrible website is still mine to write on. The web is dead to me, as a hope or a cause, and the world it's made — the world that so many thousands of us helped to make — is in bad shape and getting worse. But why should I give up my only real canvas, the only place where I have any voice at all?

Possibly (almost certainly) having a voice is itself an illusion, irrelevant to the course of things now. But I guess it's something.

Over time, though, it feels less and less like something. On matters public, there are infinite voices. The repetition and variation, the algorithmic swell, is vast. If I have anything to say, someone else is probably saying it better. At least if it can be said in any useful way. The usefulness of saying things itself is frequently washed out in the deluge. The impossibility of communication feels like a defining feature of the age.

The only thing that’s left is whatever’s particular to my perspective, and it rarely feels like the networked ebb and flow has a healthy use for that.

Anyway, I’m repeating myself again.

For a while I’ve been thinking about changing the structure of this whole site into something less reverse-chronological, writing something besides the personal narrative that a blog lends itself to, or just publishing somewhere away from the public web. Maybe somewhere away from screens altogether. Who needs Substack when you’ve got a laser printer and a roll of stamps?

I’m not sure what I’ll do any different, if anything. It’s just hard to let go of something you’ve made at considerable length, even if it isn’t worth much, even if it’s just a habit of talking mostly to yourself. Maybe I’ll let it lie fallow for years until I get hit by a bus, or find some better use for the hosting costs and let it drop off the web without fanfare. Maybe I’ll change my mind about all of this in six months or a decade.

(Of course this is more meta-whatever.)

tags: topics/writing

p1k3 / 2022 / 2 / 21


The Joy of Easy Personal Radio: FRS, GMRS, and Motorola DLR/DTR


On syntactic sugar


Puppet’s new owner is laying off staff -

Sharing Slow Ideas | The New Yorker

Use One Big Server - Speculative Branches

List of national independence days - Wikipedia

Bil Keane's Dotted Line: An Appreciation : NPR


Saturday Morning Breakfast Cereal - Thermodynamics

The Beths - "Expert In A Dying Field" (Official) - YouTube — I really like this one.

Locking Engineering HierarchyThe first part of this series covered principles of locking engineering. This part goes through a pile of locking patterns and designs, from most favourable and easiest to adjust and hence resulting in a long term maintainable code base, to the least favourable since hardest to ensure it works correctly and stays that way while the code evolves. For convenience even color coded, with the dangerous levels getting progressively more crispy red indicating how close to the burning fire you are! Think of it as Dante’s Inferno, but for locking.


Phabricator: Configuring Backups and Performing Migrations

Wikipedia:Wikipedia Signpost/2022-08-01/Election guide/Candidate Op-Ed – Kunal Mehta - Wikipedia

Tick–tock model - Wikipedia — «As a general engineering model, tick–tock is a model that refreshes one side of a binary system each release cycle.»

I’m the Average Driver on the Road Right Now, and I’m Out of My Fucking Mind

Code Snitching: Nashvillians Are Weaponizing Metro Codes Against ‘Undesirable’ Neighbors | Cover Story |

How life — and rent — improved when residents took ownership of a Longmont mobile home park

There is a rooster crowing outside a full 3 hours after sun rise and I want to tell him, "buddy you had one job."