Colin Dean
banner
colindean.mastodon.social.ap.brid.gy
Colin Dean
@colindean.mastodon.social.ap.brid.gy
Bon vivant, scholar, champion of the oppressed. Software engineer and community builder. My words are my own. Quotes and boosts are not necessarily my views […]

[bridged from https://mastodon.social/@colindean on the fediverse by https://fed.brid.gy/ ]
#wasteland3 is uncomfortably prescient in its post-apocalyptic world has a cult called "The Gippers" that worship a disembodied, LLM chatbot-like, limited-AI "God-President" Reagan, managed and interpreted by a posse of red-dressed, nun-like women using "Nancy" as a title.
January 4, 2026 at 5:26 PM
Reposted by Colin Dean
January 3, 2026 at 7:57 PM
2025 sucked.
January 3, 2026 at 8:09 PM
Reposted by Colin Dean
Already against the next war
January 3, 2026 at 5:28 PM
Reposted by Colin Dean
RE: https://mastodon.social/@VeroniqueB99/115822408473038400

JUST SO WE ARE CLEAR:

GOING TO THE POST OFFICE TO PERSONALLY HAVE YOUR VOTE POSTMARKED DOES NOT SOLVE VOTER SUPPRESSION

THIS IS A POLL TAX.

what of the cost to people who don’t have a post office nearby?

what of the cost to people […]
January 2, 2026 at 9:12 PM
Reposted by Colin Dean
git-pkgs really needs to be in Go or some other language that compiles to a binary but this first version in Ruby is a good experiment and it’s more than fast enough.

What would be really, really cool is to get it integrated into forges like forgejo for a truly open source dependency graph […]
Original post on mastodon.social
mastodon.social
January 2, 2026 at 12:04 AM
I'm trying to move my desktop _primarily_ from Windows 10 to Bluefin by the end of the weekend.

…I closed around 78 Firefox tabs today, dating as far back as May 2023. I'm actually really proud that my session lasted that long without getting blown away.
January 2, 2026 at 5:12 AM
And on the 11th day of vacay, one of my elderly dogs hurt her neck playing with the puppy that's 9 years younger than her.

But we finished the powder room—crown molding, wallpaper, and chair rail remained— except for one coat of polyurethane on the chair rail, which will take a whole minute to […]
Original post on mastodon.social
mastodon.social
December 28, 2025 at 1:05 AM
Reposted by Colin Dean
Package managers keep using git as a database, it never works out.

https://nesbitt.io/2025/12/24/package-managers-keep-using-git-as-a-database.html
Package managers keep using git as a database, it never works out
Using git as a database is a seductive idea. You get version history for free. Pull requests give you a review workflow. It’s distributed by design. GitHub will host it for free. Everyone already knows how to use it. Package managers keep falling for this. And it keeps not working out. ## Cargo The crates.io index started as a git repository. Every Cargo client cloned it. This worked fine when the registry was small, but the index kept growing. Users would see progress bars like “Resolving deltas: 74.01%, (64415/95919)” hanging for ages, the visible symptom of Cargo’s libgit2 library grinding through delta resolution on a repository with thousands of historic commits. The problem was worst in CI. Stateless environments would download the full index, use a tiny fraction of it, and throw it away. Every build, every time. RFC 2789 introduced a sparse HTTP protocol. Instead of cloning the whole index, Cargo now fetches files directly over HTTPS, downloading only the metadata for dependencies your project actually uses. (This is the “full index replication vs on-demand queries” tradeoff in action.) By April 2025, 99% of crates.io requests came from Cargo versions where sparse is the default. The git index still exists, still growing by thousands of commits per day, but most users never touch it. ## Homebrew GitHub explicitly asked Homebrew to stop using shallow clones. Updating them was “an extremely expensive operation” due to the tree layout and traffic of homebrew-core and homebrew-cask. Users were downloading 331MB just to unshallow homebrew-core. The .git folder approached 1GB on some machines. Every `brew update` meant waiting for git to grind through delta resolution. Homebrew 4.0.0 in February 2023 switched to JSON downloads for tap updates. The reasoning was blunt: “they are expensive to git fetch and git clone and GitHub would rather we didn’t do that… they are slow to git fetch and git clone and this provides a bad experience to end users.” Auto-updates now run every 24 hours instead of every 5 minutes, and they’re much faster because there’s no git fetch involved. ## CocoaPods CocoaPods is the package manager for iOS and macOS development. It hit the limits hard. The Specs repo grew to hundreds of thousands of podspecs across a deeply nested directory structure. Cloning took minutes. Updating took minutes. CI time vanished into git operations. GitHub imposed CPU rate limits. The culprit was shallow clones, which force GitHub’s servers to compute which objects the client already has. The team tried various band-aids: stopping auto-fetch on `pod install`, converting shallow clones to full clones, sharding the repository. The CocoaPods blog captured it well: “Git was invented at a time when ‘slow network’ and ‘no backups’ were legitimate design concerns. Running endless builds as part of continuous integration wasn’t commonplace.” CocoaPods 1.8 gave up on git entirely for most users. A CDN became the default, serving podspec files directly over HTTP. The migration saved users about a gigabyte of disk space and made `pod install` nearly instant for new setups. ## Go modules Grab’s engineering team went from 18 minutes for `go get` to 12 seconds after deploying a module proxy. That’s not a typo. Eighteen minutes down to twelve seconds. The problem was that `go get` needed to fetch each dependency’s source code just to read its go.mod file and resolve transitive dependencies. Cloning entire repositories to get a single file. Go had security concerns too. The original design wanted to remove version control tools entirely because “these fragment the ecosystem: packages developed using Bazaar or Fossil, for example, are effectively unavailable to users who cannot or choose not to install these tools.” Beyond fragmentation, the Go team worried about security bugs in version control systems becoming security bugs in `go get`. You’re not just importing code; you’re importing the attack surface of every VCS tool on the developer’s machine. GOPROXY became the default in Go 1.13. The proxy serves source archives and go.mod files independently over HTTP. Go also introduced a checksum database (sumdb) that records cryptographic hashes of module contents. This protects against force pushes silently changing tagged releases, and ensures modules remain available even if the original repository is deleted. ## Beyond package managers The same pattern shows up wherever developers try to use git as a database. Git-based wikis like Gollum (used by GitHub and GitLab) become “somewhat too slow to be usable” at scale. Browsing directory structure takes seconds per click. Loading pages takes longer. GitLab plans to move away from Gollum entirely. Git-based CMS platforms like Decap hit GitHub’s API rate limits. A Decap project on GitHub scales to about 10,000 entries if you have a lot of collection relations. A new user with an empty cache makes a request per entry to populate it, burning through the 5,000 request limit quickly. If your site has lots of content or updates frequently, use a database instead. Even GitOps tools that embrace git as a source of truth have to work around its limitations. ArgoCD’s repo server can run out of disk space cloning repositories. A single commit invalidates the cache for all applications in that repo. Large monorepos need special scaling considerations. ## The pattern The hosting problems are symptoms. The underlying issue is that git inherits filesystem limitations, and filesystems make terrible databases. **Directory limits.** Directories with too many files become slow. CocoaPods had 16,000 pod directories in a single Specs folder, requiring huge tree objects and expensive computation. Their fix was hash-based sharding: split directories by the first few characters of a hashed name, so no single directory has too many entries. Git itself does this internally with its objects folder, splitting into 256 subdirectories. You’re reinventing B-trees, badly. **Case sensitivity.** Git is case-sensitive, but macOS and Windows filesystems typically aren’t. Check out a repo containing both `File.txt` and `file.txt` on Windows, and the second overwrites the first. Azure DevOps had to add server-side enforcement to block pushes with case-conflicting paths. **Path length limits.** Windows restricts paths to 260 characters, a constraint dating back to DOS. Git supports longer paths, but Git for Windows inherits the OS limitation. This is painful with deeply nested node_modules directories, where `git status` fails with “Filename too long” errors. **Missing database features.** Databases have CHECK constraints and UNIQUE constraints; git has nothing, so every package manager builds its own validation layer. Databases have locking; git doesn’t. Databases have indexes for queries like “all packages depending on X”; with git you either traverse every file or build your own index. Databases have migrations for schema changes; git has “rewrite history and force everyone to re-clone.” The progression is predictable. Start with a flat directory of files. Hit filesystem limits. Implement sharding. Hit cross-platform issues. Build server-side enforcement. Build custom indexes. Eventually give up and use HTTP or an actual database. You’ve built a worse version of what databases already provide, spread across git hooks, CI pipelines, and bespoke tooling. None of this means git is bad. Git excels at what it was designed for: distributed collaboration on source code, with branching, merging, and offline work. The problem is using it for something else entirely. Package registries need fast point queries for metadata. Git gives you a full-document sync protocol when you need a key-value lookup. If you’re building a package manager and git-as-index seems appealing, look at Cargo, Homebrew, CocoaPods, Go. They all had to build workarounds as they grew, causing pain for users and maintainers. The pull request workflow is nice. The version history is nice. You will hit the same walls they did.
nesbitt.io
December 24, 2025 at 4:49 PM
Reposted by Colin Dean
Earlier I noticed that vandamme, the ruby changelog parser I use, had it's repository archived. So I've put together my own alternative: https://github.com/andrew/changelog-parser
GitHub - andrew/changelog-parser: Parse changelog files into structured data
Parse changelog files into structured data. Contribute to andrew/changelog-parser development by creating an account on GitHub.
github.com
December 23, 2025 at 9:12 PM
December 23, 2025 at 6:02 PM
What's your favorite tool for clearing out GitHub repos that are forks used for That One PR Years Ago?

I've got almost 300 repos. I've spent about 30 minute today checking and deleting ones from the last few months. My passerby commits are numerous and go back ~15 years probably.
December 23, 2025 at 2:05 AM
Reposted by Colin Dean
@xgranade @glyph I gave a talk a couple months back where I updated "A Modest Proposal" to illustrate the rather alarming state we're in re: AI Industry.

This was within a conference where several talks, including a keynote, were focused on how to implement LLM tools into your workflows.

The […]
Original post on hachyderm.io
hachyderm.io
December 20, 2025 at 11:21 PM
And on the seventh day of vacation, Ernie died.

I was there at his beginning and his end. He was not an easy dog to care for: one year away from us became 9 years of precautions. There were lighthearted moments and he finally got along with his mother […]

[Original post on mastodon.social]
December 20, 2025 at 2:15 PM
The cleaning out a closet at my parents house, a shelf not touched since probably 2007, I find interesting artifacts showing my interests going back 25 years—when I moved into this bedroom after we completed the addition of the second floor of the house […]

[Original post on mastodon.social]
December 18, 2025 at 7:51 PM
Days since I've finally had a first floor restroom once again:

3

The number of times in those days I've gone upstairs to use the restroom forgetting about the first floor restroom working now:

7
December 16, 2025 at 3:44 AM
Reposted by Colin Dean
This is extremely relatable for me right now. #jobsearch #IndistinguishableFromMagic
December 15, 2025 at 1:49 PM
Ik wil meer Nederlandse berichten lezen. Deel met me jouw favoriete mensen wie je volgt.

#nederlands #taalleren #dutch #languagelearning
December 15, 2025 at 12:40 AM
Reposted by Colin Dean
\o/ as promised we have released a new version of #flohmarkt ten ten minutes ago. We're 50 minutes early :)

I think it's our biggest release since 0.2.0 and we thank @nlnet and @NGIZero for making this possible.

As spoilered, the most important changes are Support for multiple authentication […]
Original post on 23.social
23.social
December 12, 2025 at 7:47 PM
Reposted by Colin Dean
I'm hiring a Director of Product Engineering for our product team at @ProPublica. If you're an engineering leader in the US who wants to truly make a difference, we're a nonprofit newsroom investigating abuses of trust in the public interest. Please consider joining us. #amhiring #getfedihired […]
Original post on werd.social
werd.social
December 11, 2025 at 3:19 PM
Reposted by Colin Dean
Remember when the internet wasn't awful? We can go back to that.

Some friends and I have released the Resonant Computing Manifesto: a call to bring back such a time, to see if we can bring back a world where technology works for us, rather than against us.

resonantcomputing.org
The Resonant Computing Manifesto
Technology should bring out the best in humanity, not the worst—a manifesto for resonant computing built on five principles that reject hyper-scale extraction for human flourishing.
resonantcomputing.org
December 5, 2025 at 5:57 PM
Reposted by Colin Dean
Insurance is delaying payment. His two jobs aren't covering bills for their large blended family. Flights aren't cheap.

If you've got spare cash this holiday season, consider dropping some in this pot.
December 6, 2025 at 8:06 PM
Reposted by Colin Dean
A high school friend of mine & his family are in a bind in Texas. Inside a week, both their cars were totaled in accidents neither of them caused. His wife after hers was ordered to bed rest for a high risk pregnancy. Then his father in PA was diagnosed w/ cancer.

www.gofundme.com/f/support-gr...
Donate to Support Greg & Chelsea's Family in Crisis, organized by Callie Burke
This is a gentle plea to the world, family, and friends of Greg & Chelsea. … Callie Burke needs your support for Support Greg & Chelsea's Family in Crisis
www.gofundme.com
December 6, 2025 at 8:06 PM