GeistHaus
log in · sign up

https://nelsonslog.wordpress.com/feed

rss
10 posts
Polling state
Status active
Last polled May 19, 2026 04:15 UTC
Next poll May 20, 2026 03:53 UTC
Poll interval 86400s
Last-Modified Fri, 15 May 2026 21:38:28 GMT

Posts

Charging cheap devices with broken USB-C Charging
Uncategorized
I have a tiny portable Bluetooth speaker (EWA A106) that I like but has an infuriating problem: I can’t charge it via its USB-C Charging port if I plug it into a USB-C charger with a C-to-C cable. I can only charge it by plugging into a USB-A charging port with an A-to-C cable or […]
Show full content

I have a tiny portable Bluetooth speaker (EWA A106) that I like but has an infuriating problem: I can’t charge it via its USB-C Charging port if I plug it into a USB-C charger with a C-to-C cable. I can only charge it by plugging into a USB-A charging port with an A-to-C cable or adapter. There’s a lot of cheap electronics that have this charging problem. They ship an A-to-C “charging cable” in the box and consider it good enough.

USB-C charging is complicated. Fancy devices use USB-PD and a protocol negotiation to charge. Even simple devices require 5.1k resistors on a couple of control pins: without them the USB-C chargers won’t know to charge. USB-A charging is much simpler. A-to-C cables work because USB-A chargers will just put out 5V without any signaling at all.

Another fix is a special C-to-C adapter that has the resistors. Amazon sells one named Hagibis 5.1k Resistor 5V/3A Charging Adapter. This Reddit teardown says it is reasonably well built. Adafruit sells another that’s not as nicely packaged.

It’s infuriating so many devices are being sold with these broken USB-C charging ports. The adapter is cheap enough but I really don’t want to have to carry it around!

nelsonminar
http://nelsonslog.wordpress.com/?p=14622
Extensions
Customizing my Nobara system
Uncategorized
I’ve now set up KDE Plasma desktops under Fedora about 5 times. Here’s my notes on all the things I do. It’s a lot! What’s particularly annoying is there’s no easy way to capture all this config and just replay it all. The config files are too much of a mess. Earliest setup Nobara Welcome […]
Show full content

I’ve now set up KDE Plasma desktops under Fedora about 5 times. Here’s my notes on all the things I do. It’s a lot! What’s particularly annoying is there’s no easy way to capture all this config and just replay it all. The config files are too much of a mess.

Earliest setup
  • Switch to Breeze theme
  • Set wallpaper to solid #001830
  • Install Chrome from downloaded RPM.
  • Install 1Password from downloaded RPM.
  • Install tailscale
    curl -fsSL https://tailscale.com/install.sh | sh
  • Remove the Brave browser and disable its repository.
    sudo dnf remove brave-browser brave
Nobara Welcome App

First steps

  • Update my system. The installer will do this for you if you let it.
  • Install the Nobara codec package. It is very aggressive about launching this!
  • Open Driver Manager: I didn’t need to do anything

Optional Steps

  • Launch Steam. Then use ProtonPlus to Install Proton-GE

Recommended

  • Install Discord
  • Install Flatpak Bazaar
  • Uninstall OBS Studio, Kdenlive, and Blender 3D
Misc

Set up ssh agent stuff

Install RPMs

dnf history list is very helpful for reconstructing this list.

  • ghostty
  • joe
  • input-remapper
  • chezmoi
  • sunshine (beta)
    dnf copr enable lizardbyte/beta
    dnf install miniupnpc
    dnf install sunshine –repo=”copr:copr.fedorainfracloud.org:lizardbyte:beta”
Install Flatpaks

flatpak history or flatpak list can help to reconstruct this.

Use Bazaar (installed above) to find things instead of Flatpost or Discover or whatever.

  • Slack
  • Mission Center. Consider hack to enable wattage info:
    sudo chmod a+r /sys/class/powercap/intel-rapl*/energy_uj
  • Gear Lever
  • Signal. Launch it and follow instructions about kwallet.
  • Plex. Had to install via command line.
Install AppImages (in Gear Lever)
  • LM Studio
Customization
  • sudo systemctl enable --now sshd
  • chezmoi init nelson@sf.somebits.com:~/gitrepos/chezmoi
    chezmoi apply
  • Set up apps for favorites for launcher
  • Move system tray to left side, 146 pixels wide
  • Set date format to ddd MM/dd
  • Set up an ssh-agent for the graphical environment. This is complicated and the linked AI answer is wrong in important ways.
  • Log in to every website, there is no way to copy login cookies to other machines.
Keyboard customizations
  • Fix the function keys
    echo "options hid_apple fnmode=2" | sudo tee /etc/modprobe.d/hid_apple.conf
  • Use Input Remapper to override CapsLock to be F15. Make sure to apply it at boot!
  • Use Shortcuts to bind F15 to launch clipboard in web browser
  • Use Shortcuts to override F13 to take screenshots with Spectacle. (May not be necessary: F13 is in the same spot on my Apple Keyboard.)
  • Set up XCompose key under “Position of Compose Key”
  • Disable the Plasma virtual keyboard. It uses a lot of VRAM (a known bug).

nelsonminar
http://nelsonslog.wordpress.com/?p=14599
Extensions
Chez Moi: modernizing Linux config
Uncategorized
I’ve used Linux since 1994 and Unix since 1989. I have some very old and crufty configurations I’ve hauled around over the years with some clunky script to set up a new machine. I’ve modernized it with help from Gemini. Dotfile management The key tool I used is chezmoi. It’s a nicer version of my […]
Show full content

I’ve used Linux since 1994 and Unix since 1989. I have some very old and crufty configurations I’ve hauled around over the years with some clunky script to set up a new machine. I’ve modernized it with help from Gemini.

Dotfile management

The key tool I used is chezmoi. It’s a nicer version of my clunky script. It feels a little like git, but customized for shell configs. For instance I run chezmod add ~/.bashrc and it makes a copy of my current bashrc to ~/.local/share/chezmoi. If I run chezmod apply it copies all the files from that chezmoi repository to live places. It’s a little goofy but it works and it has advanced features for templating, encrypting secrets, etc. Note you’re expected to use git yourself to keep versions of this chezmoi mirror of your config files.

Setting up chezmoi was a very manual process of deciding what config files I want and manually importing them. In the end I’ve got 31 config files. A bunch of ancient tty stuff from my old configs and some new KDE stuff from my new Linux desktop

Modern Linux file locations

XDG defines is the modern standard location for config files. The key thing is ~/.config, which in theory is where all config files belong. This has been predictably corrupted over the years. Chrome spams it with over 6000 files including a bunch of binary junk. But it’s still a pretty useful standard. ~/.config/lesskey for instance lets you configure the less pager. (And in a text format now, hooray!)

Auditing config files

It’s very confusing what all your config files are. xdg-ninja is a helpful tool. It looks in your home directory for standard config files for a bunch of programs and advises you ways you can modernize and move things to .config. Not a panacea but a helpful tool!

Modern bash shell

There’s some nice tools that make bash really nice to use.

starship is a lovely dynamic prompt framework that is very fast. The key thing I rely on is it showing me git repo status.

atuin turns your shell history into a giant database you can query. It’s very nice if you have the habit of building up complex commands interactively.

Modernizing configs

I had a surprising amount of fun showing Gemini my config files and asking it to advise me on how to update things. For instance it suggested I don’t need 25 year old Netscape environment variables anymore. And that there’s better / newer ways to do some things with modern tools. It was a fun interactive process for an hour or two sweeping off some of the cobwebs. Particularly impressive that I can ask it things like “what does mpage -a do?” and it remembers some 25 year old BSD utility I long since forgot.

nelsonminar
http://nelsonslog.wordpress.com/?p=14588
Extensions
Linux gaming and resolution scaling
Uncategorized
Deep into tinkering with gaming on Linux using Bazzite 44. The problem I’m wrestling with is that fullscreen games are guessing a different resolution than they should. my screen is 6016×3384 natively but instead the game is trying to run at 6863×3860 or some other wrong value. This doesn’t happen for all games. These tests […]
Show full content

Deep into tinkering with gaming on Linux using Bazzite 44. The problem I’m wrestling with is that fullscreen games are guessing a different resolution than they should. my screen is 6016×3384 natively but instead the game is trying to run at 6863×3860 or some other wrong value. This doesn’t happen for all games.

These tests are for the game Rhythm Storm, a fairly simple but graphically intense game. I’m playing on a ProArt display that’s 6016×3384 natively, with a NVidia 5060 and the 595.71 Linux open drivers installed. Bazzite is pretty much an all-Wayland system, with just a bit of X11 compatibility. I am running the display at 225% scaling. This Gemini chat is all the research I’ve done so far.

First, a useful tool: xrandr. That shows a set of resolution that X11 apps think are valid. On my system with 225% scaling it shows 6863×3860, the mode the game is picking. If I change scaling this number changes in some mathematically way I can’t quite understand. Anyway this must be what the Steam game is picking up.

One tool to fix this scaling problem is gamescope. That’s some sort of Steam graphics shim that sits between the game and the Linux display software. It can be told to enforce a specific resolution and you can impose it for a particular game by altering the Steam game launch options. That works! Unfortunately it also hides the Steam overlay. There’s supposed to be a -e or --steam option to work around that, but when I try that the game never launches at all.

I’ve been surprised at how well games work on Steam / Linux in general. Proton is a marvel! But this kind of problem is exactly the sort of infuriating bullshit that makes Linux seem unacceptable as a desktop OS. Right now I’m still cheerful about trying to figure problems like this out, so I’ll stick with it. Wonder how long that will last.

nelsonminar
http://nelsonslog.wordpress.com/?p=14579
Extensions
Remote game streaming
Uncategorized
Some things I’ve learned about playing games by running them on a big computer and using my TV as a client. Basically this is an optimized form of desktop screen sharing. The client TV is a 2160p Sony Bravia. That runs Android and seems the best of the smart TV platforms. The server running the […]
Show full content

Some things I’ve learned about playing games by running them on a big computer and using my TV as a client. Basically this is an optimized form of desktop screen sharing.

The client TV is a 2160p Sony Bravia. That runs Android and seems the best of the smart TV platforms. The server running the games is a desktop gaming PC, I’ve tried both Bazzite Linux and Windows. Both devices are wired on the same LAN. (This stuff works on the Internet too and is surprisingly responsive.)

Steam Remote Play

Valve has had a remote gaming product for some 10 years. I still have working Steam Link client hardware! But these days it’s easier to run a Steam client on the TV.

It works pretty well but is surprisingly flaky. The biggest problem is resolution switching. Steam should change the desktop resolution to the TV’s resolution, or down to 1080p if I tell it to. That only works one time out of three so mostly I have to change the resolution on the PC myself. (The TV can display anything, but 3440×1440 looks terrible on a 2160p display.)

The other knock on Steam Remote Play is that it’s not very optimized. Folks report 20-40ms latency, or maybe 2 frames of a 60fps game. I haven’t really noticed that but I’m not super sensitive to it.

Sunshine / Moonlight

The alternative fancy gamers recommend is the Sunshine streaming game server and the Moonlight client. These have been around quite awhile, started as an open source reimplementation of the NVidia Game Shield protocol. The big advantage folks quote over Steam is latency: it delivers 4ms on my LAN, or well under one game frame.

The server works well on Windows. It seems reliable. It has some nice stuff about launching things when a client connects, like invoking Steam Big Picture. I’m still having to set the Windows desktop resolution manually although I think Sunshine can do that for me.

The server does not work for me on Bazzite Linux. It sort of does. But the NVidia drivers on my old 1080 card aren’t correctly detecting display modes so I’m stuck streaming 3440×1440.

Alternate resolutions

One dumb thing about all these solutions is that they’re displaying what’s on the PC’s screen, at the PC’s resolution. But basically I have a remote screen on the cliente TV: why should I care what’s plugged in on the server?

One solution is a dummy HDMI plug. This does the EDID handshake to make the computer thing you have a monitor plugged in so you can configure the OS to use it as a primary or secondary screen. These are particularly popular for headless machines: with no monitors plugged in some GPUs refuse to operate at all.

The dummy plug seemed to work as a second screen on Linux. But caused all sorts of problems. First, the desktop GUI wants to use that screen! But it’s invisible, so stuff gets placed there you can’t see. Second, I couldn’t reliably get all the gaming stuff to happen on that fake screen while leaving my desktop alone for normal stuff. The software is just not designed to do it.

I went down a rabbit hole of trying to fix the resolution-switching problems on Linux with my 1080. Total disaster. There’s some hack with kernel keyword arguments with display mode lines, yuck! There’s also a hack where you load fake EDID data from a file to trick the graphics card. I couldn’t make any of that work. Honestly why doesn’t the NVidia driver just detect the modes that are there?

The other solution is a virtual display. Basically have a device driver fake a viritual screen disconnected from actual hardware. This feels like the right solution and reminds me of the ancient X11 virtual desktop hacks. Ironically, virtual displays are reportedly unreliable to impossible on Linux.

On a Windows server folks recommend Apollo, a Sunshine fork, which has virtual displays as a headline feature. I’ve tried this server and it works, but I haven’t tried the virtual display feature yet.

nelsonminar
http://nelsonslog.wordpress.com/?p=14561
Extensions
Bazzite desktop impressions
Uncategorized
I’ve had the nicest time using a Linux desktop OS the last few days, so good I may make this my daily driver. For the first time this OS feels like it works better than Windows. Faster, cleaner. Also it feels like a coherent product in a way previous Linux desktops haven’t. I tried Bazzite […]
Show full content

I’ve had the nicest time using a Linux desktop OS the last few days, so good I may make this my daily driver. For the first time this OS feels like it works better than Windows. Faster, cleaner. Also it feels like a coherent product in a way previous Linux desktops haven’t.

I tried Bazzite 43, a Fedora variant intended for gaming. The GUI I’m suing is KDE Plasma 6. Most of what I like about it seems to be the KDE + Fedora stuff. Bazzite adds on top of that a bunch of gaming apps pre-installed, working NVidia graphics drivers, and an atomic OS release system suitable for civilian use.

I’m running this on an AMD desktop system with an NVidia 5060.

First Impressions

I was thrilled that stuff just worked out of the box. I installed it on an external USB drive. Key thing: my NVidia 5060 with a 6K HDR display just worked, first try! Even Windows can’t manage that. I could launch Steam and be playing games full speed in minutes.

I also got an immediate impression that stuff Just Works in this Linux distribution. Windows 11 feels the weight of its history, lots of crufty hacks and weird brokenness. Bazzite felt fresh and new in a nice way. That honeymoon broke down once I got deeper into it but at least there’s a new set of bugs and there’s some hope of hacking your way around them.

Graphics

Linux desktop has come a long way. This is the first time I’ve used Wayland and it’s nice that stuff like font scaling, HDR, etc work correctly. And KDE Plasma is a remarkably coherent system.

One particularly neat trick: I have two screens set at different scaling. If I drag a window across the both it scales correctly, one side at 200% and one side at 250%. Windows can’t manage that.

I did run into rough edges eventually. The Nvidia-open driver that’s the default works great on my 5060, but not on my old 1080 card. The proprietary Nvidia driver does work on the 1080 but isn’t identifying all the display modes it should find. I went deep down a rabbithole of video mode hacking complete with programming video card dot clocks, like it was 1995. Ugh! I never did get it working. TO be fair, the 1080 is nine years old now.

Atomic Linux

Fedora is a pretty solid Linux. I’ve never really used it, I went down the Debian / Ubuntu road instead. But it’s solid.

What’s unusual about Bazzite is it is an atomic distribution. Instead of upgrading individual packages piecemeal you install one giant 5GB release that bundles kernel, important packages, graphics drivers, apps.. Everything you’d want. Then you can reboot to this new release, or roll back. There are tools for layering custom stuff on top of these releases but you are discouraged from doing that.

If you want to add an application, Bazzite suggests you get a Flatpak from some online app store. These work great right until they don’t! You also have the option of running AppImages using GearLever, I use this for LM Studio.

If you want to Linux CLI tools or other low level stuff, Bazzite suggests using Homebrew and installing it just in your home directory. UGH! Homebrew is awful and is the main reason I switched away from MacOS all these years ago. Another option is distrobox, which gives you a nice container for Linux shell work.

The problem I’ve run into with this model is some stuff just doesn’t work. The most pernicious is 1Password. It wants to run a persistent process storing state securely, then a browser extension talks to it. But this won’t work if 1Password is in one Flatpak container and the browser extension is in another container. I tried various hacks to get around it and it got really complicated. I can imagine someone adding a specific integration for this just for Bazzite, a bridge between containers, but no one has yet.

Update: someone made the integration! This worked for me but 😬 at using something so hacky for something as important as my 1Password data store.

Rollbacks are awfully nice though! I experienced this today. Bazzite 44 just came out so I tried it out only to find the graphics driver isn’t working right. Just one button to go back to yesterday’s 43 release, no drama.

Customization

A lot of personalization is nice on Bazzite but not everything is great.

Changing hostname is surprisingly clunky! The default I got was computer. There’s no GUI for changing it!

The keyboard function keys didn’t work as F keys out of the box. On my Apple keyboard they act like “media keys” and do things like screen brightness. There’s various hack fixes for this all involving the command line: really should have a GUI for this.

I’ve done a bunch of other customization. Input Remapper to remap Caps Lock to a script to open clipboard content as web pages. tweaking the desktop to look just so. Etc. It’s always fun for me to re-do this kind of setup, or at least every few years, and in general KDE Plasma is providing a good experience.

Signal

Shame on Signal, WTF is this warning? I tried using their instructions for the experimental “use kwallet6 to store secrets” and it seems to be working but I can’t be sure.

Gaming

It’s funny: I set up Bazzite and pretty much haven’t run any games. But they run great!

One problem I’ve run into is the OS seems to use more GPU RAM. Some of it is wasted, like a virtual keyboard I’ve never used wants 400MB. Some of it is legit, Chrome has 600MB or more even with few tabs open, Discord wants another 250MB, Wayland itself needs a bunch. I’m using a bunch of Factorio mods that want 13GB of GPU RAM and I only have 16. This works fine on Windows but I’m having to close stuff to get it to run in Linux.

The underlying problem is Windows is better at evicting apps from VRAM when a game wants the memory than Linux is. There’s some brand new work about a dmemcg-booster patch to the kernel to allow prioritizing certain processes for GPU memory. This sounds like a good thing. And necessary in the world of Electron bloat.

Conclusion

I like Bazzite enough it makes me want to use Linux as my daily OS. Windows has never been easy to love and seems worse lately. This KDE Plasma environment is good enough that there’s pleasure in making it work for me, not just frustration.

I think I don’t want the Atomic OS though. It’s causing too many problems. And it makes perfect sense for a computer appliance, something like a SteamDeck or a gaming PC where you don’t want to tinker with the OS. But I’m tinkering with Linux all the time and am OK with the instability that comes from manually upgrading things myself. Well, I’m sorta OK with it. At least I prefer it to this set of jails that Bazzite is shoehorning everything in to.

So now I’m looking for some other distribution. Lead contenders are Kubuntu or else Fedora 44. Something that’s not atomic. I think I’d rather try a stock general Linux distro and then add a little bit of gaming stuff (graphics drivers, Steam app). Nobara is also interesting, another Fedora customized for gaming but this one isn’t packaged as an atomic distribution.

Bazzite is a very nice product. And they have a lot of momentum. I’m very glad I tried it out and would definitely recommend it to someone who’s less of a tinkerer.

Update: an Update

Since writing this Bazzite 44 was released. And was silently upgraded to everyone running Bazzite 43. It’s been a confusing update and I think they need to rethink their update notification or policy. Some problems:

  • A serious NVidia driver bug that broke displays. Fixed in one day.
  • They removed the Sunshine that was installed and expects you to install it via Homebrew instead. Folks on Reddit are confused.
  • A MakeMKV flatpak was installed. Again folks on Reddit are confused / alarmed

I think it’s good that the Bazzite team is making new releases and changing features. But not sure how to do that without confusing all the civilians who are just expecting their TV gaming box to work the same every day.

nelsonminar
http://nelsonslog.wordpress.com/?p=14507
Extensions
Secure Boot’s ongoing pain
Uncategorized
Microsoft invented this thing called “secure boot” whose ostensible purpose was to stop malware from installing in your boot loader, but whose actual function is to make it very difficult to use other operating systems on Wintel hardware. Here it is 2026 and I’m still struggling with it. First, to clear any illusions: secure boot, […]
Show full content

Microsoft invented this thing called “secure boot” whose ostensible purpose was to stop malware from installing in your boot loader, but whose actual function is to make it very difficult to use other operating systems on Wintel hardware. Here it is 2026 and I’m still struggling with it.

First, to clear any illusions: secure boot, as deployed for the last 15 years, is a total sham. Every device had a security exploit that made it easy to defeat. Even better pretty much every device trusted a key named DO NOT TRUST, right there on the whitelist in the BIOS. This key was compromised. Whatever apocalypse Secure Boot was supposed to protect us from didn’t happen and good thing since the tech didn’t happen.

What does happen is about once a year I try to do something with Secure Boot and Linux and get flummoxed. For a long time it was Proxmox VMs, I finally just gave up on secure boot in the VM BIOS. But I also have a problem with my old ASUS Z270-P BIOS, it doesn’t make it easy to disable secure root. I’m not sure I even can, I’m supposed to do something scary about erasing boot keys and I’m scared I’ll leave it in a state where Windows won’t boot.

So now I’m playing with Bazzite Linux, a Fedora variant, and it has some complicated crap involving MOK keys which aren’t real secure boot keys but some subsidiary of a Microsoft key. And it’s not working.

Look at that! Turns out, old BIOS had like 64kb of static storage for secure keys. And Microsoft has put so many entries into it over the years that there’s no room left for operating systems from competing companies. Gosh, I wonder how that was allowed to happen?

The “fix” is to go in the BIOS and either delete all the keys (scary)… Or delete the DBX keys, which is a blacklist of all the compromised keys that Microsoft has revoked over the years. Well, however many will fit in 64kb. Anyway none of these are necessary so you can delete them. That leaves enough room for a legitimate operating system to enable itself to boot. Well, sorta…

I think this error means “you need to install our key to boot”. so now I’m off to boot a Linux system that is signed with an existing key that has the tool to add this other key for Bazzite I need.

What a complete farce.

nelsonminar
http://nelsonslog.wordpress.com/?p=14527
Extensions
Outgoing SMTP relay services
Uncategorized
Fiddlesticks. I had my somebits.com email all set up right. DKIM and SPF were working, I had a DMARC policy of rejecting unsigned email for three weeks with no problems. And then I broke my setup by cancelling Google Workspace. Now I’m back but sending email via SMTP2Go. Details below. I broke it Last year […]
Show full content

Fiddlesticks. I had my somebits.com email all set up right. DKIM and SPF were working, I had a DMARC policy of rejecting unsigned email for three weeks with no problems. And then I broke my setup by cancelling Google Workspace.

Now I’m back but sending email via SMTP2Go. Details below.

I broke it

Last year I set up somebits.com to be on Google Workspace for incoming and outgoing email. And then promptly forgot what I did. Last month I stopped using somebits.com for incoming email because it was not working right. Cloudflare’s email relaying seemed better. So I figured I could stop paying $8/mo for Google Workspace since I wasn’t receiving email.

I forgot about sending email. Without Workspace, there’s no way to DKIM sign outgoing emails I send through Gmail. Gmail will still send email from @somebits.com but it won’t even try to sign them. That’s sort of OK, at least once I turned off my p=reject DMARC policy. But I like the idea of DKIM signed emails.

The easy thing would have been to re-enable Google Workspace. But when you do that you get a notice about how things might not work right for 24 hours. Google’s stupid eventual consistency designs still biting me in the ass, 20 years later. Also I just don’t like Google Workspace, it’s a messy product and does way more than I want. Time for an alternative SMTP sender.

SMTP relay services

The trick is finding a reliable sending service that caters to small legitimate users. Clearly all the business is in helping spammers marketers deliver bulk email. Not me!

I asked several AIs what I should use. My main concerns are correctness of DKIM and SPF and a good reputation so I don’t get blocked along with a bunch of spam customers. Here’s a quick summary of what the AIs suggested:

  • SMTP2Go. Generous free tier of 1000 emails / month, supposedly forever. Good reputation, good service.
  • Brevo. Very generous free tier (9000 emails / month). But some question about reputation.
  • Postmark. The leader for correct + good reputation, in part because they segregate marketing email. But the free tier is only 100 messages a month. If I get to the point of needing to pay $15/mo to deliver email I’ll look at them again.
  • Forward Email. They came up as a relay for receiving mail too. The free tier doesn’t allow sending mail via the relay so I didn’t look further. OTOH $3/mo may cover me, worth a look again maybe.
  • MailerSend. Generous free tier (3000 emails/month). Didn’t look further.
  • Amazon SES. Not interested in the mire of AWS.
  • SendGrid / Twilio. Nah.
  • Mailgun. Seemed good but no real free plan.

I wanted to use Cloudflare since I already use them for receiving email. They did finally launch their email sending service in public beta. But near as I can tell they don’t have an SMTP relay suitable for pointing Gmail at to deliver mail. It’s not really their goal, the purpose of their service is more backend stuff.

Sorry for the half-ass evaluation, I was losing patience. I picked SMTP2Go based on what I saw.

SMTP2Go

So far so good with SMTP2Go. It’s pretty simple. You set up an account, tell them what domain you want to send mail as, then they give you three DNS records and you’re off to the races. One neat trick is the DNS records are all CNAMEs to their servers, no need to configure complex TXT records with nonces in them.

I like their dashboard UI. You can set up different users, manage passwords, etc. It’s all overkill for my small use case but easy enough to work with. I appreciate the rapid view into sent email with logs and reporting and the like.

One weird thing: smtp2go explicitly says you don’t need to set up an SPF record. Instead they are using something called VERP that involves a CNAME, see here for more detail. One of the test tools I tried complained about an SPF failure so I went ahead and added smtp2go as an authorized sender for my whole domain, which shut up that error.

nelsonminar
http://nelsonslog.wordpress.com/?p=14493
Extensions
Email receivers for testing
Uncategorized
I keep tinkering with my email setup. It’s very helpful to have an email address you can send messages to that gets you some diagnostics. Here’s a few. Technical tools dmarctester aka learndmarc. A very cute interactive tool. A little cumbersome for quick testing but there’s a fast forward button. It shows results for SPF, […]
Show full content

I keep tinkering with my email setup. It’s very helpful to have an email address you can send messages to that gets you some diagnostics. Here’s a few.

Technical tools

dmarctester aka learndmarc. A very cute interactive tool. A little cumbersome for quick testing but there’s a fast forward button. It shows results for SPF, DKIM, and DMARC. It does not show spam score nor the exact message it received.

dkimvalidator: very barebones but good for basics of SPF, DKIM, DMARC. Shows original message front and center. A little hard to read but then again quite complete. I’ll note this flagged an SPF error where others didn’t. I suspect this isn’t supporting the VERP that SMTP2Go uses or if there’s a real problem. (The problem went away when I added a supposedly unnecessary SPF entry.)

mxtoolbox has a responder on ping@tools.mxtoolbox.com. The email reply gives you basics (SPF, DKIM, DMARC) and you can click through for a nicely formatted detailed report. Not much marketing / reputation info. Does show you the exact message received.

Marketing tools

mail-tester.com. Nice mix of technical stuff (SPF/DKIM/DMARC) and content / marketing stuff. Shows your spamassassin score. Tells you if you’re on any major blocklists. Will show you original message. I like the way this tool looks.

aboutmy.email. Marketing-oriented tool. Does tell you about SPF and DKIM, also Yahoo/Google requirements (like an unsubscribe link)

Not useful

check-auth@verifier.port25.com: this tool was great but recently stopped working (April 2026).

nelsonminar
http://nelsonslog.wordpress.com/?p=14489
Extensions
Another Twitter archive
Uncategorized
Since Twitter was destroyed it’s been frustrating losing access to all the stuff I wrote. X still allows you to download an archive of your own tweets, but then there’s the challenge of making the data useful. For awhile now I’ve been using Julia’s tweet-archive. It works great but I never loved the styling. (I […]
Show full content

Since Twitter was destroyed it’s been frustrating losing access to all the stuff I wrote. X still allows you to download an archive of your own tweets, but then there’s the challenge of making the data useful.

For awhile now I’ve been using Julia’s tweet-archive. It works great but I never loved the styling. (I never tried to improve it, either.) You can see my archive in Julia’s thing here.

Matt Haughey just vibe-coded up an alternative. I like the way it looks. It’s also got a couple of extra tricks. The code works with various old formats of Twitter exports. The Javascript has some nice functions like filtering by year. And it displays reply tweets, albeit not linked to what you’re replying to. You can see my archive in Matt’s thing here.

Matt’s code worked out of the box for me but some of the path management and permissions are a little fiddly. Here’s what I did to get it working, from a Twitter archive I pulled just yesterday.

# Download and prepare the filesmkdir /tmp/t; cd /tmp/tunzip twitter-dump.zipgit clone https://github.com/mathowie/tweet-search-archive# Clean up the repo a bit and link in the datacd tweet-search-archiverm -r tweets_medialn -s ../data/tweets.js .ln -s ../data/tweets_media .sed -i 's/Your Name/Nelson Minar/; s/yourhandle/nelson/' build.py# Build the archivepython build.py# Copy the output to a web server and fix permissionscp -a tweet_search.html ../data/tweets_media ~/public_html/tmp/tweets/find ~/public_html/tmp/tweets/ -type d -exec chmod 0755 {} + -o -type f -exec chmod 0444 {} +
nelsonminar
http://nelsonslog.wordpress.com/?p=14479
Extensions