Before I begin, I’ll make a note that I actually do like and use ThinkPads. However, I hate how technologists (well, the ThinkPad enthusiast community, often seen on thinkpads.com, /g/, or /r/thinkpad) have constantly misunderstood them, be it celebrating workarounds for clumsy flaws, or are completely ignorant of their history. Nowadays, I’ve switched to a MacBook Air (since I want a compact laptop that was lightweight and got good battery life… and I am a sucker for an actually good RISC CPU), but I often buy ThinkPads as a “known quantity” for whatever age of machine I need. That is, I know exactly what I’m getting into, and they’re widely compatible with whatever you throw at them. However, I often recommend other lines of machine, be it something radically different like a MacBook or Surface, or something that’s actually more like what a ThinkPad enthusiast’s platonic ideal of a ThinkPad is, like a Latitude or Let’s Note. This post sums up my opinions why.
Continue readingRedirecting privileged ports to unprivileged ports on the same system with pf on FreeBSD
I needed to set up a daemon for a service that’s in the low 1024 ports reserved for root on FreeBSD. However, I didn’t want to run the service as root. Instead, I set up pf (the firewall in BSDs) to simply redirect the port.
Continue readingFixing VisualEditor not being able to contact RESTBase server
If you set up a new wiki with MediaWiki 1.35 (since it adds the PHP-based Parsoid server), and you get this error trying to load VisualEditor:
Error contacting the Parsoid/RESTBase server: (curl error: 28) Timeout was reached
It’s because the server is trying to contact itself with the server name (hostname/IP). If it’s a DNS name, then make sure the name it uses resolves to itself; a quick fix was to add it to the hosts file.
DNS as Code with DNSControl and GitLab
With the “infrastructure as code” renaissance, managing infrastructure has never been easier. Every change is easily recordable and reproducible and, because it’s all code, it’s never been easier to store a history of what’s changed to easily review in git log
.
But short of running your own DNS servers and running custom scripts to convert code into a BIND zonefile, it’s historically been hard to manage DNS in the same way – so often, even though the servers themselves are easy to change, managing DNS means connecting to Route53, or Cloudflare, or any of a myriad of different domain registrars and DNS providers and manually changing fields in their application with no easy way to propagate changes across multiple domains or to roll back to a historical record if a new change causes something to break.
Using a tool like DNSControl, which allows a provider-agnostic view of DNS records as code, along with automatic capabilities to update records at your provides, fixes all of this.
Continue readingMastodon really is crumbling — and it will only get worse
I am 100% serious with the title, despite the appearance of click-bait. Mastodon has a serious structural rot that is only worsening as time gets on. I think this is for a few reasons which I will outline below.
Ironically, I don’t feel safe posting this directly to the fediverse because of the very forces I’m about to describe. I’m not worried about the cancel crew, I just don’t want to deal with hostile interactions right now. I might link to this post but it’s less likely to get hate mail I suspect if I do it that way rather than write this all up in a giant thread on fedi.
What I am presenting is largely anecdotal opinion, although it has been gathered from countless others (I’m not going to name any names, they deserve better than harassment or people trying to change their views and in the process merely reinforcing them).
Continue readingEmbeding application manifests into Windows executables as a resource
If your Win32 application needs to declare that is supports something before it even executes, this is where a manifest file comes in. While you can ship one with your application (in the form of appname.exe.manifest
), it’s more fool-proof to just embed it into your application. You can do so with
RISC-V isn’t as interesting as you think
I had wrote this before the Unleashed was revealed, so some of the bits on economics have changed. As of writing this, I still stand by my other beliefs. One of the most hyped things in hardware design is RISC-V, the open ISA available without license fees. Many organizations including Western Digital have pledged support for RISC-V, and the open source community has a lot of faith in it, and with Nvidia’s recent purchase of Arm, people are concerned. However, I feel these hopes are somewhat misleading, as RISC-V’s openness is less at the benefit of the user and more for CPU vendors.
Brief thoughts on Princess Mononoke
Princess Mononoke has been talked about a lot elsewhere – why wouldn’t it be? It’s a great movie that everyone should watch. What I want to talk about briefly is the motivation for characters, and how they put many “prestige TV” dramas to shame in terms of complexity. Spoilers below the fold!
Continue readingReplicating Machines
Contains: dubious consent, blase mind alteration, genital growth, hyper, furry shit, plural weirdness, and sex(if that wasn’t already clear by now)
Continue readingCareful with butter knives, children
I’ve wanted to write for a while about a serious injury I sustained to my finger in October. Finally getting around to it.
Prologue
I’m now week 9 in recovering from severing my FDP tendon in zone II of my little finger with a butter knife. I was separating some chicken with it (trying to use it as a wedge), when my hand slipped down the shaft and the “blade” cut into my little finger in the worst spot. I noticed something was wrong a few days later when I couldn’t move the end of my little finger. It may not sound like a big deal losing the little finger like that, but trust me, it’s worse than you can imagine. Severing this tendon in the little finger also affected the function of the ring finger (the tendons controlling the two come from the same muscle, and the tendons themselves are usually connected in the wrist).