Progress Report: Linux 6.19 - Asahi Linux
Porting Linux to Apple Silicon
Awesome Asahi progress update just posted by James, if you'd like to see what we've been up to recently! GPU stuff is SO fun and happy to answer any questions about it or anything M3. :)
asahilinux.org/2026/02/prog...
18.02.2026 10:48
👍 19
🔁 2
💬 1
📌 0
What should we do with CLs generated by AI?
Anyway, read Russ Cox's take on AI tool use in the Go project.
groups.google.com/g/golang-dev...
16.02.2026 13:35
👍 27
🔁 8
💬 2
📌 0
Now that we have LLM coding agents:
* The value of simple code is ~$0.
* The value of high quality and necessarily-complex code is higher than ever.
10.02.2026 18:22
👍 40
🔁 5
💬 4
📌 1
Eine Weltkarte mit Fokus auf den Nordpol, ein Bereich von Kanada über Grönland bis Europa ist gekennzeichnet, daran steht "Arctic Alliance"
Ein Perspektivwechsel lohnt sich oft: wenn man die Erdkugel richtig herum hält, hat das Bündnis aus #EU und #Canada auch einen sinnvollen Namen - Arctic Alliance 🤷♂️
21.01.2026 18:08
👍 971
🔁 324
💬 34
📌 20
CVEs affecting the Svelte ecosystem
Time to upgrade
We've released fixes for 5 CVEs affecting the Svelte ecosystem. Please upgrade your apps!
Read the post to learn if you're affected:
svelte.dev/blog/cves-af...
15.01.2026 17:27
👍 66
🔁 20
💬 1
📌 4
Yeah I'm not a big fan of the new Apple Creator Studio icons... I came around to really like the Big Sur era icons for Final Cut Pro / Logic Pro / Motion / Compressor / Mainstage, but these new ones just obliterate every bit of charm and whimsy and creativity that the old ones had.
14.01.2026 08:56
👍 10
🔁 1
💬 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
Krieg gegen Europa: Wir haben next level madness erreicht... Und das wird auch auf die Schweiz wirken. Die beiden deutschen HateAid-Geschäftsführerinnen Josephine Ballon and Anna-Lena von Hodenberg sowie der frühere EU-Kommissar und Franzose Thierry Breton sind jetzt "Persona Non Grata" in den USA.
24.12.2025 09:05
👍 66
🔁 17
💬 5
📌 1
Map of European train punctuality showing punctuality per station. Germany and Italy clearly have worse punctuality, while Switzerland is has the most on-time trains.
We tracked like 17 million train arrivals last year to see where delays happen, and this is the result 🗺️
Find out the best and worst stations, routes and times of day in our 2025 Wrapped overview: chuuchuu.com/2025wrapped
(on that note, we have a new website so check that out too)
#traintravel
19.12.2025 17:17
👍 32
🔁 15
💬 2
📌 4
Just so I'm clear on this, computer memory has tripled in price because a bunch of it that hasn't been produced yet has been ordered to populate GPUs that aren't installed in data centers that aren't built yet in order to service a demand that doesn't exist to make profits that don't happen.
15.12.2025 12:21
👍 16181
🔁 6530
💬 187
📌 320
Are we stuck with the same Desktop UX forever? | Ubuntu Summit 25.10
YouTube video by Canonical Ubuntu
My Ubuntu Summit talk is up! Where I talk about:
1. How Desktop UX is effectively dead
2. Why I hate the term UX/UI with the heat of 1000 suns
3. How OSS can actually innovate in #ux
www.youtube.com/watch?v=1fZT...
12.12.2025 05:51
👍 153
🔁 32
💬 15
📌 17
If you think reading books is boring maybe you should pick less boring books to read.
27.11.2025 19:07
👍 39
🔁 6
💬 1
📌 1
Wo kann man das für einen Fonds nachschauen?
20.11.2025 15:54
👍 1
🔁 0
💬 1
📌 0
In our essay, we distinguish descriptive, prescriptive, and aspirational models. Assessing a models' character is useful because it affects how we should use them. Write the blog post, this deserves more exploration (and please let me know when you do, I'm not on socials much and I'd miss it)
28.10.2025 08:39
👍 4
🔁 1
💬 1
📌 0
The quote "All models are wrong but some are useful" should not be read as an excuse to stick with your model. It's a call to actively search for more useful models.
27.10.2025 19:28
👍 22
🔁 9
💬 4
📌 2
Trotzdem habe ich alle Benachrichtigungen an einem Ort und kann Files und Texte problemlos zwischen den Profilen hin und her kopieren. Für iOS gibt es leider nichts Vergleichbares. Zudem ist die Unterstützung bei verschiedenen Android-Herstellern verschiedenen gut. Meine Erfahrungen sind mit Pixels.
27.10.2025 16:36
👍 2
🔁 0
💬 0
📌 0
Android-Arbeitsprofil
Mit einem Android-Arbeitsprofil können Sie Ihre geschäftlichen und privaten Daten auf einem Gerät voneinander trennen. So werden Unternehmensdaten sowie die Privatsphäre von Mitarbeitern besser geschü...
Bei Android, wenn das dein Arbeitgeber unterstützt, gibt es Arbeitsprofile. Ich bin grosser Fan davon, weil es mir eine starke Separation von Privat- und Geschäftsprofil ermöglicht. Das Geschäftsprofil kann mit einem Knopf deaktiviert und reaktiviert werden, es gibr sogar einen Timer.
27.10.2025 16:36
👍 1
🔁 0
💬 1
📌 0
…or under the same domain, maybe even consider another TLD.
21.10.2025 19:23
👍 3
🔁 0
💬 0
📌 0
.NET Conf 2025 Zurich Watch Party
.NET Conf is a free, three-day, virtual developer event that celebrates the major releases of the .NET development platform. Celebrate and learn about what you can do with .NET 10.
Location:
nxt Eng...
Microsoft's .NET Conf is happening on Nov. 11th — and we're watching the Keynote live at nxt. If you'd like to join our little watch-party, you're wholeheartedly invited. Please register, so that we know how much pizza to order:
forms.gle/JHmZtSAgAK3F...
#dotnet #switzerland #zurich #oerlikon
21.10.2025 15:20
👍 1
🔁 0
💬 0
📌 0
Gibt es nicht Steuerungen, die Strom auf die Panels geben, um diese zu erwärmen, damit der Schnee abschmilzt? Ich dachte mal sowas gehört zu haben.
16.09.2025 19:07
👍 2
🔁 0
💬 1
📌 0
Why does one have to return to office to manage AI agents?
10.09.2025 17:21
👍 14
🔁 2
💬 2
📌 0
Managers probably.
26.08.2025 09:04
👍 1
🔁 0
💬 0
📌 0
DRY is often confused as "don't repeat code," which was never the intended meaning.
DRY is about knowledge. Don't repeat knowledge.
You can repeat identical lines of code that don't repeat or leak knowledge.
1/2
27.07.2025 04:48
👍 24
🔁 6
💬 1
📌 0
GraphQL Fragments: Why Are They Useful?
I don’t see many teams using GraphQL fragments, and I think they’re missing out.
Fragments let you co-locate your components data requirements with your components.
I wrote a quick post showing how this works to make maintaining your apps simpler.
Check it out: brookehatton.com/blog/enginee...
02.06.2025 13:25
👍 5
🔁 3
💬 1
📌 1
A visual overview about the available flags, their current configuration, their progression, etc.; so that our non-technical stakeholders can see the current flag configuration. Stretch-Goal: Display the exported data in the UI.
27.05.2025 11:07
👍 0
🔁 0
💬 1
📌 0
Wo gibt's denn ein Balkonkraftwerk für 490? Hast du es selbst zusammengestellt?
30.04.2025 06:14
👍 1
🔁 0
💬 1
📌 0