Installing GAM to administer Google Workspace from the command line is an exercise in trust.

  1. Install with with curl | bash.
  2. Add an app with some opaque ID to your workspace with full access to everything.
  3. Go to GCP and give the app access to everything there, too.
  4. Do it again with another opaque app ID.
  5. Ta-da! Someone has your Bitcoins, or something?

Utah first state to hold websites liable for users who mask their location with VPNs

[T]he controversial law establishes that a user is considered to be accessing a website from Utah if they are physically located there, regardless of whether they use a VPN or proxy to mask their IP address.

This is the stupidest idea I’ve heard recently. My home router has a built in VPN server. When I’m out running around, my iPhone can route traffic through my house. Pray tell, o sage Utah legislature, by what misguided notion did you expect a website to tell that I’m accessing a it from a hotel in Berlin instead of my house in California? (Which is why we used it last time: I configured my travel router to use that home VPN so we could watch American Netflix at night before bedtime when we just wanted something familiar to relax with.)

Honestly, this is the new “pi equals 3” legislation. “Let’s make laws codifying technical ideas we clearly have no freaking clue about”.

This is who you elected, Utah. Well done.

These words are illegal in Utah

Utah’s stupid new law “prohibits covered websites from sharing instructions on how to use a VPN to bypass age checks.”

It’s probably illegal for minors to access this site from Utah because I say some things that Utah’s leaders probably find offensive. Let me know if I don’t; I’ll work on fixing it. To access it over a VPN, follow these instructions to turn on iCloud Private Relay. Then I can’t see where you’re connecting from.

There. Now I’ve broken the law in Utah.

I’ve been running Ollama on my Mac Studio for local AI experiments. I followed advice to try oMLX instead and it’s ludicrously faster, like maybe 5-10x for both time to first token and completing the response. I haven’t benchmarked it, but it subjectively feels like when I replaced a hard drive with an SSD.

Siri is so bad as a voice assistant that it made me stop caring about device-local AI, which is impressive. Yesterday, “hey Siri, turn off the bedroom lights” worked. Today, that responded with “sorry, I can only set one scene at a time”. The proper phrasing — for now — is “hey Siri, turn the bedroom lights off.”

Walking to work, “hey Siri, podcasts play”, which is/was the documented way to play a podcast, started streaming random music. “Hey Siri, play a 🤬🤬🤬 podcast” did the trick.

Sometimes recent loss means being in the middle of a meeting and your body deciding, hey, know what, this would be an excellent time to consider crying.

I just replied to a recruiter cold call:

Hi [recruiter],

I’ll be honest, in the spirit of feedback: that’s an insultingly low offer at about 60-70% under the local market rate for those skills. Best of luck to your client, because frankly, they’re going to need it with the kind of engineers willing to consider that offer.

As if.

AI is fantastic at configuring Emacs.

Me: Why does Emacs format this TS differently than Prettier does?

Droid: There’s the problem. Apheleia’s prettier-typescript formatter includes (apheleia-formatters-js-indent “–use-tabs” “–tab-width”), which injects –tab-width and –use-tabs flags based on your Emacs buffer settings. These override the project’s .prettierrc.json config, so Prettier gets different arguments than when your coworkers run it from the command line.