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.
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!
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:
Why do Daniel and his father2never 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?
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?
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?
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.
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
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 keyoxideprofile 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.
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 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.
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.
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.
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
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 ampleevidence
that
maskswork 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.
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.
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):
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."