Sign in

Thomas Cannon

@thomascannon.me
822 followers 899 following 1K posts

Web developer, musician, semi-pro party mom. +3 to Persistence Rolls. Operations & systems nerd. Building my own apps on the side @practical.computer thomascannon.me little-crm.com practical.computer

PostsRepliesMedia
Thomas Cannon @thomascannon.me · 28/09/2026
Also! My face absolutely lit up seeing this. So happy that I’m chipping in, and can’t wait to donate more!
The list of sponsors for ReActionView, including Practical Computer
110
Thomas Cannon @thomascannon.me · 12/09/2026
@saramccandless.bsky.social proof of dog hardware, cat software
My dog, Kira, sitting like a weird cat
250
Thomas Cannon @thomascannon.me · 05/09/2026
My face as I watched The Happening for the first time; and as I read effusive Letterboxd reviews for The Happening
A photo of my white, spotted dog, confused and squinting into the middle distance
010
Thomas Cannon @thomascannon.me · 04/09/2026
I’ve been running OS 27 and trying to figure out all the different places to turn off “writing assistance” (buzz off, I have a brain). The inline suggestions are buried in the keyboard settings; along with the 3 other plac... microblog.thomascannon.me/2026/09/0…
020
Thomas Cannon @thomascannon.me · 21/08/2026
@panic.com @househouse.com is this very dumb Big Walk meme anything?
An extremely poorly photoshopped Big Walk meme, titled "Gourd in Sixty Seconds," where an avatar from Big Walk and a light orb are superimposed over a "Gone in Sixty Seconds" poster
230
Thomas Cannon @thomascannon.me · 31/07/2026
Middle managers in the Klingon Empire
A poorly cropped screenshot, with a t-shirt that says “This Meeting Could Have Been A Fist Fight”
150
Thomas Cannon @thomascannon.me · 07/06/2026
🎶Tale as old as time🎶 www.theregister.com/software/…
He said he set out to develop a digital audio workstation. He tried Go, but found interoperability with C libraries difficult, and said the garbage collector caused audio delays. He tried C++, or coding C-style using a C++ compiler, but found that small mistakes led to memory corruption bugs that took weeks to fix. He tried Rust but “really struggled to write code that would satisfy Rust’s rules,” and spent a month trying to make font rendering work.Kelley’s solution was to go in a different direction and create a new programming language. Zig, he said, “does not give up any of the power that C offers, while improving the flaws and weaknesses that C has.”As far as we can tell, the digital audio project remains in its early stages.
020
Thomas Cannon @thomascannon.me · 03/06/2026
I saw the greatest minds of my generation order Chipotle
A screenshot from a news report:&10;&10;“Called Microsoft Scout, the agent can schedule meetings around both personal and work calendars, remind users when tasks have fallen through the cracks, order Chipotle”&10;
220
Thomas Cannon @thomascannon.me · 05/05/2026
I felt very bashful towards my serious collaborators, to engage them in such a fairy tale world, but for me it was real. “What has this to do with the year 1923?” said Walter Ruttmann. “Nothing,” I could only say, “but that I am alive now, and I want to do it as I have the chance.” But he did the most wonderful things for this film, and the bits I did together with him are the ones I am most proud of.
000
Thomas Cannon @thomascannon.me · 03/05/2026
Blue Ridge Ruby 2026: microblog.thomascannon.me/2026/05/0…
My Ruby Passport, stamped with the Blue Ridge Ruby entry stamp
230
Thomas Cannon @thomascannon.me · 02/05/2026
The deep, meaningful, acerbic insights I expect from The Verge
A screenshot from an RSS reader, from a Verge Story:

“The logic of the racist Supreme Court isn't adding up”
010
Thomas Cannon @thomascannon.me · 02/05/2026
I can’t thank @aidosaur.bsky.social enough for the permission to use one of my favorite illustrations of all time in my second talk. I can genuinely say it would have been a worse talk without it
A slide with Yuko Ota’s seminal: “WHAT ARE YOU DOING. WHY ARE YOU DOING IT.” Illustration
160
Thomas Cannon @thomascannon.me · 01/05/2026
I’m not gonna lie; I got a real rush getting my first stamp on my Ruby passport @blueridgeruby.com Thanks for this @adrianthedev.com!!
My Ruby Passport, stamped with Blue Ridge Ruby
1111
Thomas Cannon @thomascannon.me · 30/04/2026
Draw me like one of your French Rubyists @blueridgeruby.com
A Ruby Passport embassy application; with a sketch drawing of me, leaning horizontally
040
Thomas Cannon @thomascannon.me · 28/04/2026
@columboscreens.bsky.social for your consideration
Columbo staring in astonishment, sitting on a polyester wicker chair
010
Thomas Cannon @thomascannon.me · 22/04/2026
A bandcamp download dialog for an album in AAC format, 119MB. The link text: “Download Chris”
020
Thomas Cannon @thomascannon.me · 10/04/2026
I was just trying to look up teardowns of EWIs, and YouTube decided to drag my ass in the harshest way possible.
A screenshot of YouTube search results on mobile, searching for Akai EWI Solo.&10;&10;Most of the screen is taken up by a BetterHelp ad, with a woman whose face is actively grimacing saying to a man “You were a mess.” The title of the ad is: “Healing is Possible. Find it in Therapy.”
010
Thomas Cannon @thomascannon.me · 30/03/2026
Legion of Doom levels of “nightmare blunt rotation” here
A marketing email from Slack for a Webinar, with the subject: “Tomorrow: See how Anthropic, MrBeast, and Salesforce are using Slack to move faster”
47224
Thomas Cannon @thomascannon.me · 18/03/2026
They just don’t make TV like this anymore
A still from Columbo, where a woman is eating chocolates in a bed, in her nightgown. She is holding a gun in her lap and staring off camera
110
Thomas Cannon @thomascannon.me · 11/03/2026
A photo of a book of haikus and photos. The photo is a beagle sniffing a bulldog’s groin. The haiku is:

Howl

I saw the best minds
Of my generation lick
Each other's buttholes
030
Thomas Cannon @thomascannon.me · 17/02/2026
Week 3 of dealing with a proprietary WebView wrapper for an Android app
The "Bro, I'm straight-up not having a good time" meme
000
Thomas Cannon @thomascannon.me · 11/02/2026
A truly amazing gift that my dad made; a 3D woodcut of the Practical Computer logo. And the color matching is perfect too! It deserves to be right under @jennyrjohnsonart.bsky.social’s amazing work.
A sunlit photo of a shadow-boxed, CNC-d, painted version of the Practical Computer logo. It is hung under an oil painting of an iconic scene from Deep Space Nine’s “Far Beyond The Stars”
061
Thomas Cannon @thomascannon.me · 08/02/2026
A riff on the Heroku Blog post announcing its EOS. The author is Mr. Beast, and the opening paragraph is:

Today, Mr. Beast will pay you $100,000 if you move all your servers to Heroku and you’re not allowed to migrate anywhere else within the next 2 years
162
Thomas Cannon @thomascannon.me · 24/01/2026
To quote @alexhillman.com: "this is delightfully simple" I love how straightforward this setup is. This is (basically) my entire `.caddy-dev` file
A screenshot of my nested `.caddy-dev` file contents. Code below:

==> /Users/tcannon/.caddy-dev/Caddyfile <==
import imports/*

==> /Users/tcannon/.caddy-dev/imports <==

==> /Users/tcannon/.caddy-dev/imports/hello <==
hello.test {
  tls internal
  respond "Hello, world"
}

==> /Users/tcannon/.caddy-dev/imports/littlecrm <==
littlecrm.test, *.littlecrm.test {
  tls internal

  reverse_proxy http://localhost:3006
}
010
Thomas Cannon @thomascannon.me · 23/01/2026
Real "The beatings will continue until morale improves" energy. This is such a fatalist, bullshit, anti-labor take. God forbid you refuse to partake in the wildly unregulated tool, propping up a massive speculative bubble, and care about your craft. Let folks do work with the tools they like.
The other quiet conversation going on among leaders is what to do about team members who blanket refuse to use AI, even when they have been given ample opportunities and expectations have clearly been set that they are expected to make AI part of their workflow. Perhaps they have strongly-held environmental or ethical concerns about AI, and no amount of pair programming will alleviate that. If that's the case, it may be time to have a hard conversation about whether they're still a fit for your team.
230
Thomas Cannon @thomascannon.me · 22/01/2026
Nice try, but I've already got one that checks all the boxes.
A DS9-themed Lunch box? Cooler? Work bag? Who can say.
040
Thomas Cannon @thomascannon.me · 06/01/2026
Replaced the battery on my iPod and only busted up the case a little. These buggers are a nightmare.
An iPod with minor case damage on the topAn iPod, opened up with its battery detached and pry tools everywhere An iPod with plastic wedges sticking out of it
170
Thomas Cannon @thomascannon.me · 03/01/2026
Incredible things are happening in 2026
A photo of heated fingerless gloves (with mitten covers) that look like Klingon gauntlets, with a DS9 branded cooler in the background
030
Thomas Cannon @thomascannon.me · 01/01/2026
This BETTER work y’all
A meal of the traditional black-eyed peas and collard greens, with braised zucchini
030
Thomas Cannon @thomascannon.me · 30/12/2025
Pop Quiz: is this a bug? Or how iPad OS 26 decided multitasking should be? How is this SO BAD?
A screenshot of iPad OS, with tiny traffic light icons everywhere, but no grounding or idea of there being overlapping windows.
010
Thomas Cannon @thomascannon.me · 29/12/2025
Them: “Bulbous The Elephant on The Repair Shop Can’t Hurt You” Bulbous The Elephant on The Repair Shop:
A photo of Bulbous The Elephant, cursed and decrepitThe skull of Bulbous The Elephant, with a subtitle: “ He appears to be made of a wood sawdust-type composite”One of the technicians in The Repair Shop, simultaneously enthralled and terrified, with the subtitle: “ We’ve sort of taken his skin off, but we need your help”A photo of Bulbous The Elephant on a table in The Repair Shop, with the subtitle “These worry me, Julie!”
000
Thomas Cannon @thomascannon.me · 29/12/2025
Having a normal one while writing docs
After all, what is an email address but a handle for transmitting email? A phone number a handle for telecommunication protocols? Websites, handles for information on the web (generally tied to a person or team)? And handles in other platforms, instagram, bluesky; they can be resolved too…&10;&10;In some of the most resplendent Pepe Silvia work of my lifetime, I zeroed in on my favorite artifact of the digital era: the Universal Resource Identifier.&10;&10;(Almost) every handle I could think of could be resolved to a URI! tel, sms, mailto the humble https! No matter how you communicated with someone, I could compress it down to a universal standard: a type, a human label, and an almost always a URI.&10;&10;It was beautifully simple in its modeling, endlessly extendable, future-proof, maximally compressible. And ultimately unworkable in real-world usage.
030
Thomas Cannon @thomascannon.me · 28/12/2025
This bodes well for us, the household with a dog that intently watches television
Dog would become the single most featured recurring guest character in the show, becoming nearly as synonymous with the Lieutenant as the cigar, the raincoat and the beat-up car.A white, spotted dog, intently watching television
011
Thomas Cannon @thomascannon.me · 22/12/2025
How to think about errors

Bad error messages (and why)
• is invalid
• Why is it invalid? What can be done about it?
• Unable to delete this record

• Why can't it be deleted? Is there something that I can do?
• Something went wrong

• You gonna tell me what went wrong? Whatcha gonna do about it, bub?
151
Thomas Cannon @thomascannon.me · 15/12/2025
Please do not speak to me or my son ever again.
a lamp shaped like a robot, made of discarded parts welded together. The light comes from the eyes, wearing green glasses
041
Thomas Cannon @thomascannon.me · 03/12/2025
Wait, what?? How?? This has never happened before.
A headline from The Verge: “Silicon Valley is rallying behind a guy who sucks”
230
Thomas Cannon @thomascannon.me · 30/11/2025
There was apparently an absolute dogshit adaptation; and this is one of the most jabbing Wikipedia sentences I’ve ever read.
These major plot changes were explained at the film's panel, which involved Anthony Russo stating that they did find the original material as "fascinating" and compared their experience to adapting it as similar to the Marvel films. But he also stated that it was difficult for them to understand the story and felt that the world was not shown enough in the graphic novel, which caused the idea of developing it into a two-hour film as challenging. This led to them using the artwork as inspiration to make an entirely new story that featured the usage of 1990s aesthetics and the plot addition of robotic animatronics developing artificial intelligence, which involved them campaigning for equal rights in a retro-futuristic society
120
Thomas Cannon @thomascannon.me · 29/11/2025
That's...a lot of dead code
A Github diff summary, showing 599 changed files with 2,594 additions and 22,874 deletions
030
Thomas Cannon @thomascannon.me · 29/11/2025
This always bodes well as a Linear ticket (doing major Little CRM refactoring to remove cruft from prototypes)
A Linear ticket with the title: 'Remove Crafts code' and the body: 'I legitimately keep forgetting it’s here, and no one asks for it'
000
Thomas Cannon @thomascannon.me · 25/11/2025
A photo of Bari Weiss talking with her hands, superimposed with Green Eggs and Ham
021
Thomas Cannon @thomascannon.me · 21/11/2025
UI/UX folks: What's the best way to handle this kind of input grouping, where you want to provide a checkbox to mark something for removal, but also allow for undoing? I'm not a fan of "removing" the section on a click, because it leads people to think the data has been removed.
A screenshot of a form where a checkbox is on the left of each section, which toggles if something is removed or not.
120
Thomas Cannon @thomascannon.me · 06/11/2025
I do regret that this is gonna get cut from a work presentation because it doesn’t fit in the flow.
A version of the "My body is a machine" meme, but with "My [Safari Icon] is a machine that turns Dispatched Events into Handled Events"
010
Thomas Cannon @thomascannon.me · 10/10/2025
Yea
They "hey little man how's it going?" meme, but the baby is Crimson King's "21st Century Schizoid Man" on infinite repeat
020
Thomas Cannon @thomascannon.me · 10/10/2025
I stand by my words
A text message where I said: “Dolly shouldn't need to know about Al”
050
Thomas Cannon @thomascannon.me · 06/10/2025
The first pass at Practical Adaptive, a hybrid of Soda + Adaptive for Sublime Soda Light/Dark Adaptive Light/Dark
020
Thomas Cannon @thomascannon.me · 06/10/2025
There’s a reason that the reaction to @lollibeepop.bsky.social’s work here is: “yea”
Me, as Pepe Silvia, as drawn by Wren
020
Thomas Cannon @thomascannon.me · 24/09/2025
Comeon @fastruby.io, this is arguably misleading of the situation. It continues to conflate Rubygems.org & the original repo as the same thing. It also leads headline scanners to think that Ruby Central was within their legal right to make the changes they made on Github; which is false.
The future of Ruby packaging has been a focal point of recent discussions within the community. Ruby Central has moved to centralize the governance of RubyGems and Bundler, citing concerns over security and sustainability. However, longtime maintainers argue that the sudden removal of their access and roles undermines community trust and collaboration. This is an evolving situation, with ongoing dialogue:
230
Thomas Cannon @thomascannon.me · 21/09/2025
I put the 1.0 layer of polish on it; just for @kaspth.com to nail me dead-to-rights with a blindside.
Me: I think this is it?
Kasper: ohhh I like it!
*sends a photo of The Joker in a car. Ir matches the blue, orange, green of my theme*
Me: oh god dammit Kasper
151
Thomas Cannon @thomascannon.me · 20/09/2025
Is this anything?
A screenshot of a text editor theme I’m working on
020
Thomas Cannon @thomascannon.me · 11/09/2025
I am days away from giving my first ever conference talk; about why people need to hire more juniors. While it’s for my programming language of choice, it’s a sentiment I believe for basically all fields of study
The promo image for my talk in Atlanta, “EMPTY PIPELINE, EMPTY FUTURE”
010