Safety: Only YOU Can Prevent Harm to Yourself

The other day, someone in my extended network posted something about how Toronto just isn’t safe for their kids. This has got me thinking about safety and responsibility. I thought about how when I was a kid, I was instructed on how to behave in public spaces. “Look wrong way, right way, then wrong way before crossing the street, because if someone’s driving on the wrong side of the road they’re going extra fast.” “Sure, go play outside, but stay out of the road.” “When you ride your bike, keep as far over as you can; the cars can’t see you.” My safety and security was definitely something I was supposed to be actively engaged in, and if I got hurt, it was probably in no small part down to my own decision making.

This gets me thinking about those “Baby on Board” stickers you see in so many car windows. Like, who needs to see that? Emergency responders are trained to look for a car seat. Believe it, if there’s a baby in the wrecked car that they’re opening with the Jaws of Life, they’re gonna notice it. That sticker isn’t for them, it’s for the rest of us. It’s saying, “The safety of the occupants of this vehicle is the responsibility of everyone around the vehicle.” Implicit, there, is the idea that the person with the most direct control over the safety of the vehicle’s occupants — the driver — is less responsible.

Baby on board sticker, featuring Brett Kavanaugh as the baby

I had some kind of point in mind the I started writing this, but honestly, I let time pass and I’ve edited out a lot of the snark and digressions, and it’s really just come down to the simple observation that I stated in the post’s title. Your safety is your own responsibility, first and foremost. Other people may be able to act in ways that affect your safety independent of your own decisions and actions, but you are always the person in most immediate control of your security. Act like it.

Experimenting With Federation

Generally, I reserve this blog for, you know, blog stuff. Long form, where I ramble about things and post code snippets and multiple links to things I’m thinking about. For quite a while, now, I’ve had the ActivityPub plugin enabled on this site, as I tried to figure out how to engage with the Fediverse after I deleted my other social media accounts. Today, I saw an explainer video that contained an interesting comment about how a WordPress blog could, in effect, be a single-user Fediverse instance. So I started poking around.

Read more: Experimenting With Federation

The ActivityPub plugin takes care of publishing blog posts in the ActivityPub format. This means that people on other Fediverse instances can follow my blog by following @pirateguillermo@mechadarwin.com and that works just fine. However, that’s only half the equation, right, because that’s essentially shouting into the void and not ever listening. When I first started doing Fediverse/Mastodon stuff, that was all I had so I wound up setting up an account on a “local” Mastodon instance, sfba.social. That isn’t bad, really, but it means that I wind up having two places where I type stuff and where people can engage with me.

Today I learned about the Friends plugin for WordPress, and it takes care of the listening half of the federation process. It adds a tab to the WordPress bar on my blog where I can see a feed of posts from accounts I follow. So, that’s cool. I already mostly use MarsEdit to compose posts, as I really hate having to use a web browser to do that. If I could get the reading and actions to work within an app as well, then I’d be a happy camper. As it is, this blog is not a Mastodon instance, and the swell native apps that are Mastodon clients will not pretend that it is. That means that, if I were to migrate all my Fediverse presence to this blog, I would be able to post from a variety of tools that I like, but I’d be stuck reading via a web browser, which is not the way I want to do it.

It might be acceptable for some folks, just not for me.

Just Say No to AR

I’m seeing a lot of people being excited, today, about putting in their orders for the first visionOS devices. Although it would be easy to dismiss this as simple Apple fan dribbling, their excitement is sort of hyperbolic. “This is a once in a lifetime opportunity,” says one person, talking about how now is the time to develop programs for this platform before all the existing tech giants come along and repeat their horrible “attention slot-machine” applications for this “new way of computing.”

Continue reading “Just Say No to AR”

Neat™ Document Database

Problem

Every day, I receive physical documents, such as receipts, invoices, account statements, insurance policy updates, and so forth. Each of these documents should be retained for some period of time. Some of these documents should be forwarded to other people (such as, insurance provider or CPA). Physical documents take up space, and unless one is really, really dedicated to filing and indexing, they’re time-consuming to search, copy, and purge.

Continue reading “Neat™ Document Database”

Note Application Obsidian

There’s one person I know of who is an enthusiastic user of Obsidian. After seeing them fanboy about it for, like, a year, I finally thought I’d take a look at what it is.

It’s a note app. There are some cool affordances it offers, like built-in synchronization between devices, but fundamentally it’s all about recording, reading, and publishing your process mediated via a glowing rectangle that talks to a server somewhere. So, like, Evernote or something. I get the feeling that it could have some overlap or perhaps synergy with DevonThink (which is also a thing that I don’t use, but I know people who do).

It doesn’t solve a problem I have right now, although I can conceive of situations where I might want to use it. It can, for example, turn a big pile of notes into a wiki, which can be published to a server (or local drive?) so, kind of yay? It uses Markdown, which means that linking one note to another note is pretty easy, and because it parses its notes, it can draw a graph of the note blob as a network.

For now, though, my life is better off with a paper book and a pen.

Let’s Not Argue About Tools

I just ran across1 a thread in which a person asserts that GitHub Copilot is a bad tool precisely because it makes it easy to write lots of repetitive code. Their argument amounts to the claim that repetitive, boilerplate code is bad, and if you find yourself writing enough of it that Copilot seems like a good idea then You’re Doing It Wrong.

Read more: Let’s Not Argue About Tools

This is a thing I love2 about public discourse: not only do people tell other folks how to live their lives, but they manage to do it while also denigrating all the ways that are not theirs. This is not even confined to short-form social media; it’s even a staple of the lifestyle sections of newspapers.3 This drives “engagement” because insulting people gets them angry and defensive, and people who are feeling strongly about stuff (like, protecting their identities or their feelings of self-worth) are pretty motivated to take some kind of action.

If I pause to reflect, however, I am not able to come up with a single instance of having changed a person’s mind about something by telling that person that they’re an idiot and they’re doing it wrong. (That may, of course, be because I did it wrong.)

You know another tool that some people say you shouldn’t use? An adjustable wrench. Oh, there are reasons, and there are many times when another tool will serve you better, but people still have them and use them. Does that make them bad people?

Oh, yeah, and the argument that Copilot makes it easy to write lots of bad code? That’s just elitist gatekeeping. That’s just saying that you had to work really hard and think really hard and learn a lot of stuff in order to write elegant code, and nobody who didn’t do that should have the ability to bang out a steaming pile of spaghetti that accomplishes the same end.

Copilot is still problematic at best. It’s been trained on a bunch of code that was released under licenses that prohibit its use in that way, and because it is treating programming code as if it were language and not actually instructions, it can make some rookie mistakes just because the training code base also includes rookie mistakes. So, there are cautions and, as I wrote before, it’s really incumbent on the person using the AI tool to understand the limitations of the AI tool.

But let’s stop clutching our pearls and gasping, and let’s also stop calling each other names because of our choice of tools.

  1. By “ran across,” of course I mean that a friend boosted someone’s bumper sticker opinion and I allowed myself to read the whole sniping series. So that’s on me. ↩︎
  2. I specifically do not love this. ↩︎
  3. …and magazines and television and books and… ↩︎

Oh, You Meant Angst!

Two days ago the U.S president took a plane trip from the relative security of Washington, D.C. to somewhere in Israel (Tel Aviv?), which is an active war zone. He did this in order to…I have no idea. Be seen and talked about, I guess.

This morning, I saw a headline about the governor of California going to visit Israel, and I’m mystified. Why? What possible good does this serve?

And then, as I was washing dishes, I happened to think of a bumper sticker I used to see on hippie cars all the time when I was a kid: “What if they threw a war and no-one showed up?” And now, I get it.

That wasn’t an aspirational message, like, “Let’s not spend energy on wars,” but an anxious, fear-of-missing-out message, like, “Oh my god, you mean they went to all that trouble to throw a war and you didn’t even show up?”

Why do these people get elected?

Code Editor Nova

I hate having to come up with titles for things. I’m bad at it. With blog posts it’s even worse, since the thing I am thinking about when I start writing is often not even the thing that the post turns out to be about, and I suck at titles anyway, and then looking back, it’s all nonsensical. Case in point: I want to write about a “code editor” that I’ve now looked at a couple of times (Nova, by Panic) but the way I got to this point now was by looking through my email inbox (which currently has 110 “unread”) emails and so I thought maybe I should write about email and why I’m not unsubscribing from the marketing list that got me to take a look at the editor. So the initial title I filled in at the top was, “Inbox Zero Is Bunk,” but then as I started typing I thought about looking through all my old posts and their titles (wondering if I’ve already written about this editor) and how my clever titles mean I have no fucking clue what most of these things are about.

Continue reading “Code Editor Nova”

Doing DB Stuff in Vapor

Having imported a bunch of tables from an Access database into a Postgres database, I want to transform them so that the information can be used by a Vapor application. Mostly, that app is just going to do exporting again, but you never know; someday someone might actually want to do something more intricate.

Continue reading “Doing DB Stuff in Vapor”

Be Careful What You Wish For

So, a lawyer decided to use ChatGPT to “help” write some papers he filed in court, but got in trouble when the included citations were bogus.

The naive interpretation of this is that the computer program is broken, and it’s a danger to society and ought to be really regulated, and actually, I don’t disagree. However, there’s even more going on, here, that shows up below the fold in the story.

The lawyer, Steven Schwartz, claims that he was unaware that ChatGPT just makes stuff up. Never mind that this has been talked about openly in non-technical forums.

So here’s a flaw in the program:

• ChatGPT is utterly ignorant of and indifferent to the notions of “true” and “false.”

And here’s a flaw in the lawyer:

• Mr. Schwartz is fully cognizant of the notion of “true” and “false” and doesn’t care about them in and of themselves, but only insofar as getting caught telling falsehoods actually gets him in trouble.

And here’s a flaw in society:

• When a student submits a paper with false citations, that student suffers (gets a bad grade). When a person tells a lie in court, that person suffers (charged with perjury). When ChatGPT makes some shit up, ChatGPT does not, in fact, suffer. There is no negative consequence, so we don’t actually expect that its behavior is going to change.

“But what about fiction? It’s not always wrong to make stuff up!” I hear you say, because it makes my own objection sound like a chorus. And that’s true. But the thing that makes fiction okay is that we have figured out larger contextual cues that allow us to signal when it’s okay and when it is not okay to tell lies.

But that’s a really hard problem to solve! It’s way easier just to program the thing to “tell the truth only” or “don’t care about the truth” and not have to worry about switching back and forth between those two. But guess which of those two strategies is harder to implement? Right, it’s definitely harder to care than to be indifferent. So here’s another flaw:

• The programmers chose to implement a chatbot that emulates human writing and which is utterly indifferent to the truth.

…which is not actually a problem all by itself but then:

• The company took this program that writes prose like a human and is utterly immune to the consequences of its speech and turned it loose on the world.

The way I see it, there has to be feedback. Punish the system, and that system definitely includes those humans who are responsible for the system. If you want to participate in society, then you have to really participate, and that looks like learning, and trying not to do harm.