E. David Aja's Avatar

E. David Aja

@edavidaja.com

posting is such sweet sorrow.

492
Followers
113
Following
141
Posts
10.07.2023
Joined
Posts Following

Latest posts by E. David Aja @edavidaja.com

Snippet from runtime news about drone strikes on AWS data centers

Snippet from runtime news about drone strikes on AWS data centers

I'm so glad we've found a second life for the phrase "regional stability."

05.03.2026 00:17 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

bsky.app/profile/edav...

01.03.2026 18:03 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

Emoji kitchen is on it

01.03.2026 18:01 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 2

Meat wall
Meet wall
Mete wall
πŸ₯©πŸ§±

01.03.2026 17:59 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Post image
28.02.2026 14:40 πŸ‘ 649 πŸ” 181 πŸ’¬ 4 πŸ“Œ 7

πŸ™ˆ this may be true of some installers for a particular piece of software

21.02.2026 20:30 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

shoutout vos selections, a small new york wine/spirits importer that sued the administration in spring 2025:

20.02.2026 15:30 πŸ‘ 113 πŸ” 31 πŸ’¬ 1 πŸ“Œ 3
Angry goose: whose temperance and restraint?

Angry goose: whose temperance and restraint?

"DHS remained the largest federal law enforcement agency with massive funding, sweeping surveillance authority, and worryingly unclear checks on its own power... a loaded weapon sitting on a president's desk in the Oval Office, only held back by their personal sense of temperance and restraint."

16.02.2026 17:06 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
ICE & DHS: Last Week Tonight with John Oliver (HBO)
ICE & DHS: Last Week Tonight with John Oliver (HBO) YouTube video by LastWeekTonight

The problem with Reign of Terror by @attackerman.bsky.social is that you will watch a video like www.youtube.com/watch?v=5-KD... where Oliver will talk pointedly the Trump administration firing the loaded gun but obliquely about who left it there, and then you will start shouting at your phone.

16.02.2026 17:06 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Oof

12.02.2026 18:55 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Soccer: set pieces are everything
Superbowl: field goals and punts

The convergence is on.

09.02.2026 02:20 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Feels worthy of an ALAB episode

08.02.2026 18:36 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

When will the woke mob come for "goofy stance"?

07.02.2026 20:29 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

0 days since I had to think about the jvm

04.02.2026 17:11 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

As @attackerman.bsky.social points out today we shouldn’t lose sight of the way Democratic administrations allowed for the present crisis.

www.forever-wars.com/i-guess-were...

03.02.2026 20:11 πŸ‘ 147 πŸ” 46 πŸ’¬ 6 πŸ“Œ 2

πŸŒπŸ‘¨πŸΎβ€πŸš€πŸ”«πŸ‘¨πŸΎβ€πŸš€

02.02.2026 18:22 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I can’t stress this enough. The state of 4th Amendment law is that the cops can’t force you to type in a passcode but they can force you to swipe your finger or present your face. Never stop using passcodes/passwords to unlock your devices. And consider additional code to unlock Signal.

01.02.2026 00:08 πŸ‘ 3891 πŸ” 2045 πŸ’¬ 61 πŸ“Œ 81
Preview
Best gas masks β€œHow did these people go out and get gas masks?” AG Bondi asked.

me, emotionally writing an essay on the use of force by federal agents: ok but what if i packaged this in the most insane way possible www.theverge.com/policy/86857...

29.01.2026 14:25 πŸ‘ 2799 πŸ” 937 πŸ’¬ 109 πŸ“Œ 138

I can't tell if I enjoyed this as much as I did because I studied philosophy as an undergraduate or because of how totally it implicates my work in data science. But I think you should listen to it.

29.01.2026 01:11 πŸ‘ 2 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

I, being daft, read "2-2" as a draw and was briefly confused. Punctuation!

29.01.2026 01:02 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image Post image Post image

One person I walked by was braving it but most people are walking in the street.

27.01.2026 23:16 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

@alexandriavagov.bsky.social @wmata.com please fight over who is clearing the sidewalk on N West St between the Braddock Road Metro and First Street; I would like to walk there without being run over by a bus. Thank you!

27.01.2026 21:03 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Impassible Route 1 southbound bridge over main line blvd

Impassible Route 1 southbound bridge over main line blvd

@alexandriavagov.bsky.social I only almost fell a couple of times trying to get over the route 1 bridge on foot.

Southbound is in terrible shape; northbound is not much better, and the sidewalks around both are basically impassable. pls fix thx

27.01.2026 21:00 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Tim Cook and Sundar Pichai are cowards Once you’ve traded your principles for proximity to power, do you even run your own company?

I sat in a fucking court room and heard Apple imply that a naked cartoon banana was somehow inappropriate but somehow Grok non consensually undressing women and children is ok?? www.theverge.com/policy/85990...

09.01.2026 21:30 πŸ‘ 1855 πŸ” 565 πŸ’¬ 7 πŸ“Œ 30

When the critics from Sky won't stop saying goodbye, ...

05.01.2026 22:37 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Don't know, why?

05.01.2026 13:02 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
AI Is Forcing Us To Write Good Code When Best Practices Are Best

this blog really nails a few things I’ve noticed about good architecture/coding practices for using agents, big recommend.

bits.logic.inc/p/ai-is-forc...

30.12.2025 14:27 πŸ‘ 67 πŸ” 15 πŸ’¬ 3 πŸ“Œ 7

"Birmingscam FC"?

27.12.2025 19:25 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
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.

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

24.12.2025 16:49 πŸ‘ 170 πŸ” 92 πŸ’¬ 7 πŸ“Œ 2