Version 6

Welcome to Version 6 of this website. As promised a few months ago, I decided to take this website, which has been using the Pelican static site generator since 2014, and rewrite it to use the Zola static site generator. This was a pretty painless process; I wrote some Python scripts to take all the Pelican markdown and convert it to Zola format1 and to generate redirects for all the old URLs.

Some notable changes:

  • I've removed commenting functionality; Commento's spam filtering has gotten really lousy the last few months and I'm tired of having to translate and delete a bunch of Hindi spam posts every morning.
  • Building the site from scratch now takes ~1s instead of ~3s. (woo)
  • A bunch of the repetitive inline HTML in posts has been rewritten as shortcodes
  • There's now only an Atom feed (no RSS 2.0), at least until this item gets resolved upstream
  • I removed the tag cloud from the sidebar because it seemed too noisy
  • All the pages have new permalinks, but there are redirects at the old URLs, so hopefully I'm still in compliance with the "Cool URLs Don't Change" rule.
1

Mostly, this just entailed changing the format of the front-matter to TOML and adding newlines between footnotes in the Markdown.

On “enshittification” and the future of knowledge

A few months ago, Cory Doctorow wrote a very memorable blog post about the enshittification of social-media platforms, focused on TikTok. I've been thinking since then about how prevalent this trend is and how much it makes me worry for our future.

It's mentioned in Doctorow's piece, but I really want to emphasize how deleterious this effect has been on Google Search. I remember when Google was introduced! By the time I first had access to the Internet in school (perhaps 1998 or 1999), there were two options for finding things you didn't already have a link to: Yahoo (which had terrible free-form search but a passable directory you could click through like the index to some giant poorly-edited encyclopedia), and Ask Jeeves (which was pretty good at letting you type a query into a box and get results). Then, some time around 2000 or 2001, Google entered into the public consciousness, and it was like crack. Anything you wanted to know about, you could just put into the box and get real, high-quality results from legitimate sources! Unbelievable!

read more

Daniel Tiger's Neighborhood

Daniel Tiger's Neighborhood

My two-year-old's current Favorite Thing is the PBS television show Daniel Tiger's Neighborhood, which is a latter-day spinoff of the excellent Mister Roger's Neighborhood. It's a cartoon about the eponymous Daniel Tiger (who was a puppet on Mister Roger's Neighborhood) and his family, where various small children/animals learn important lessons about sharing and whatnot; standard fare for TV aimed at a two-year-olds.

My son has been home sick1 for the last week or so, so I've watched a lot of Daniel Tiger's Neighborhood, and there are some things that annoy and/or confuse me:

  1. Why do Daniel and his father2 never wear pants? Everyone else in this universe wears pants. The Tiger men clearly understand pants, because when they go to the sleep-over at school, Daniel brings special pajama bottoms for the occasion. Mom Tiger always wears pants, so it's not a species thing. What's going on here?
  2. Speaking of Dad Tiger: he's a clockmaker, but none of his clocks or watches have hands. Is this a deep statement about how childhood is free of deadlines, or is it just that it would be too much work to animate hands?
  3. The magical land of this show is populated by a mix of humans and anthropomorphic animals; however, there are also some animals that are kept as pets.3 Are the pets also sentient, and this is some kind of slavery situation, or are there some animals that are sentient and some that are not? If so --- where's the boundary? I notice that all the sentient animal characters are obligate carnivores, so is this a universe where all carnivores are sentient and all herbivores aren't?
  4. Does anyone other than Prince Tuesday actually have a paying job in this town? He's the waiter, the grocer, the crossing guard, the lifeguard at the pool, and probably some other jobs. Plus he's also next in line for the hereditary monarchy and lives in a literal castle. Some of the other adults have vocations (such as Dad Tiger making useless clocks, and Stan the Music Man... playing music?) but none of them seem to have actual jobs. I guess Teacher Harriet has a job.
  5. Speaking of the pool: where does this show take place? It snows regularly, but also has a seaside beach with palm trees.

I know, I know, it's just a kids' show, and I'm reading too much into it. It just... bugs me!

Anyhow, my kid isn't sick any more, so he's going back to school and maybe I can watch less of this nonsense.

1

Just a cold, although now it's turned into an ear infection. Nothing serious

2

"Dad Tiger". They did not put a ton of effort into character naming on this show.

3

Daniel Tiger's Neighborhood Season 2 Episode 15: Daniel Takes Care of Snowball

Mastodon Move (Again)

I know I just moved mastodon servers three months ago, but unfortunately tenforward.social just wasn't working out for me. I do like Star Trek, but my initial impression had been that the community would be a little more general interest, and unfortunately the Local Timeline ended up looking a bit more like a 90's era single-subject forum than I'd like. So, anyhow, I've moved to hachyderm.io (specifically, to @roguelazer@hachyderm.io), which is a tech-focused instance and where a lot of folks from mastodon.technology ended up going.

Beyond that, the fact that it was a small instance with a single moderator meant that there were some things I disagreed with (like the total defederation with mastodon.cloud, journa.host, and fosstodon.org)1 and sometimes it just felt like a little more friction than I want in my life right now.

Hopefully this will be my last move for a while and there will not be any more metaposting about Mastodon on here.

While I was fixing things, I also got my keyoxide profile all fixed up. Hooray green checkmarks!

In unrelated news, I've been playing with Zola as a static generator to replace Pelican, which this blog uses right now. So maybe, if I can find a few free hours to convert over the minor syntax differences, y'all will get a metapost about that some time soon.

Cheers!

1

This is not at all a dig against Guinan; in fact, I was able to persuade them to drop the bans on journa.host and fosstodon.org. It's just got to be hard to do moderation more subtle than "drop the ban hammer" as one person.

New Style

I decided that this website looked a little too much like a product of the early aughts, and decided to redo the theme. Key changes since the last revision:

  • No more Bootstrap
  • No more JavaScript (except for Commento and GoatCounter, neither of which impacts any important functionality)
  • Simpler layout that looks more like Web 1.0 and works better with browser-default stylesheets.
  • Some more-modern CSS features (all flexbox all the time, variables for all colors, a less-janky dark mode than before, using the ch unit for some text width things)

Hopefully it's a little less visually-distracting. 🤷

If you want to talk about it, you can leave a comment below, or come find me on Mastodon.

Mastodon Move

Unfortunately, the Mastodon server I've been on for the last few years (mastodon.technology; since 2018) is shutting down next month. Thankfully, the decentralized nature of Mastodon means that it's pretty easy to jump ship to another server1, and there are even semi-automated migration tools. Since Twitter seems to be about to dive back into being the hosting platform of choice for neo-nazis, I don't want there to be any gap in my Fediverse access; I've set up a new Mastodon account at @roguelazer@tenforward.social2. Hopefully it'll be another great community, like mastodon.technology was.

1

Compare and contrast to how annoying it was when app.net shut down in 2014

2

tenforward.social is, of course, named after the bar on the Enterprise-D in TNG. It seems to have originally been Star Trek-themed, but now is just generally nerdy.

What's Next?

Today was my last day at EasyPost. At a bit over seven years1 this was the longest-running job I've ever had, which is very odd to think about. In those seven years, the company's grown from 10 people sitting around a scavenged table in another company's lobby on 2nd St in San Francisco to a large enterprise with a veritable hydra of subsidiaries and hundreds of employees; from one transaction per second to thousands; from 50,000 SLoC in one monolithic application to several million SLoC in hundreds of microservices. While I was at EasyPost, I seem to have done 19,752 commits (1,226,816 +, 995,640 -), which is about 25% of the total commits across the codebases. Those commits led to 11,096 deploys, so I guess I didn't quite nail the continuous integration thing. I also built a few teams, ran hundreds of trainings on various topics, and attended somewhere in the vicinity of 4,000 meetings. Oh yeah, and I also wrote a bunch of blog posts2.

In retrospect, seven years is probably too long to stay at a startup... We built a bunch of neat stuff, but at some point every startup either fails or lives to see itself become an enterprise. Anyhow, I'm off to another very small company where I can learn some new things and build some new products. I'm sure you'll hear about it here soon.

1

2564 days; 1832 business days

SSH MITM at Best Western

I'm currently staying in a Best Western hotel in Eureka, CA, avoiding the Bay Area heat wave, and I noticed something remarkable: the hotel's free WiFi network performs automatic man-in-the-middle interception of all SSH traffic. I've literally never seen this before on public WiFi... Check it out:

$ ssh github.com
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:lDE/b9yqZmX2oUniEgQvWsxWeq7wyRTghSYS649tLHk.
Please contact your system administrator.
Add correct host key in /Users/jbrown/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/jbrown/.ssh/known_hosts:5
Host key for github.com has changed and you have requested strict checking.
Host key verification failed
read more

Let's Talk About Elastomeric Masks!

As has become abundantly clear recently, COVID-19 isn't going away; in fact, it's striking more and more of my friends and family who had successfully avoided it for years. At this point, we have ample evidence that masks work to drastically reduce the spread of COVID; however, none of the local, state, or federal governments are willing to take the low-cost, high-return step of requiring mask usage in public settings, so most people just don't bother. The fact that I'm usually the only one wearing a mask in any given space, combined with the increased contagiousness of the Omicron family of variants, means that I've been spending the last few months wearing N95 masks a lot of the time. Given that I had an unavoidable plane trip coming up, and spurred by the recent New York Times article on elasticmeric masks, I decided that it was time to investigate reusable (and potentially both more-protective and more-comfortable) options. In general, reusable respirators (often called "elastomeric" because of the rubbery plastic they're made of) offer better filtration and much better seals than disposable masks -- if you wear glasses and have problems with fogging due to a poorly-fit disposable mask, you should strongly consider an elastomeric mask. After some research, I ended up buying three different reusable half-facepiece respirators, and this post has some brief impressions of them.

Just a note up front: I am (of course) not a doctor and can't give you medical advice. As far as I know, all of these respirators are suitable for reducing your risk of catching COVID-19, but you should probably talk to an actual expert. You can find some useful information on the CDC's page about elastomeric respirators.

read more

Reflecting on Photography Gear; Leaving Micro Four Thirds

As far back as I can remember, I've enjoyed photography as a hobby. It's probably because my father's father was a journalist and he never went anywhere without his Leica around his neck --- or maybe it's just because there's something magical at being able to hold the past in your hand and look at it whenever you want.

My grandfather, seen with his Leica Minilux

While it's absolutely true that your camera doesn't matter, I've just recently changed up my camera gear again, and I thought it might be fun to look back at some of the cameras I've used over the last 20 or so years.

We had some cheap 35mm (and APS) film cameras when I was young, but things really took off when we got a Sony Digital Mavica (the very first one, the MVC-FD5 which took digital pictures and record them onto regular 3.5" floppy disks). No more driving to CVS and waiting 3 days for them to develop your photos? Wow! The pictures were awful, but it was a start, and I was hooked on digital photography. A few years later (in 2001), the family upgraded to an HP PhotoSmart (I think model 215, but it's not in the EXIF data) with an unbelievable 1.3MP resolution and a 4MB CompactFlash card that could store so many more photos than a 1.44MB floppy. Just look at this image (whose EXIF data says 2001-01-01, but couldn't been earlier than March 2001):

This is what pre-9/11 America looked like. Really bad exposure

In 2003, there was a brief sidegrade to the still-1.3MP (but much prettier and smaller) Sony CyberShot DSC-U10. It didn't really take better pictures, but because it was smaller and lighter, it could go more places, and like Chase Jarvis says, "the best camera is the one you have with you."

read more