frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Ratchets in Software Development

https://qntm.org/ratchet
31•nvader•3d ago

Comments

dgoldstein0•1h ago
I built something like this that we use both for migrations and disallowing new instances of bad patterns for my mid sized tech company and maintain it. Ours is basically a configuration layer, a metrics script which primarily uses ripgrep to search for matches of configured regexes, a linter that uses the same configuration and shows any configured lint messages on the matches, a CI job that asserts that the matches found are only in the allowlisted files for each metric, and a website that displays the latest data, shows graphs of the metrics over time, and integrates with our ownership system to show reports for each team & the breakdown across teams. The website also has the ability to send emails and slack messages to teams involved in each migration, and when the configuration for a migration includes a prompt, can start a job for an agent to attempt to fix the problem and create a pr.
Traubenfuchs•1h ago
Do you have any examples?
burticlies•22m ago
I’ve never understood why linters don’t have this baked in. You want to deprecate a pattern, but marking it as an error and failing the build won’t work. So you mark it warning and fill everyone’s editors with yellow lines. And then we just get used to the noisy warnings.

Ratchet is such a good word for it.

arnorhs•19m ago
Interesting, props for coming up with a good name.

But it's weird to me to call this a "ratchet", and not just a custom lint rule. Since it sounds exactly like a lint rule.

The hard-coded count also sounds a bit like something that I would find annoying to maintain in the long run and it might be hard to get a feeling for whether or not the needle is moving in the right direction. - esp. when the count goes down and up in a few different places so the number stays the same.. you end up in a situtation where you're not entirely sure if the count goes up or down.

A different approach to that is to have your ratchet/lint-script that detects these "bad functions" write the file location and/or count to a "ratchets" file and keep that file in version control.

In CI if the rachet has changes, you can't merge because the tree is dirty, and you'd have to run it yourself and commit it locally, and the codeowner of the rachet file would have to approve.

at least that would be a slightly nicer approach that maintaining some hard-coded opaque count.

thraxil•18m ago
Shameless self-promotion, but my own post on Ratchets from a few years back: https://thraxil.org/users/anders/posts/2022/11/26/Ratchet/ Similar basic idea, slightly different take.
dependency_2x•10m ago
Ratchet is a good name/pattern. It is also grandfathering.

It is similar to how code coverage can be done. Old coverage may be low e.g. 40%, but may require 80% coverage on new lines, and over time coverage goes up.

I wonder if there has ever been a sneaky situation where someone wanted to use forbiddenFunction() really bad, so they remove the call elsewhere and tidy that up, so they could start using it.

HPsquared•5m ago
It's like looking for "linter regressions" rather than test regressions.
jiehong•4m ago
I think this could be handled by an open rewrite rule [0], with the side effect that it could also fix it for you.

[0]: https://docs.openrewrite.org/recipes

gorgoiler•3m ago
[delayed]

Defeating a 40-year-old copy protection dongle

https://dmitrybrant.com/2026/02/01/defeating-a-40-year-old-copy-protection-dongle
565•zdw•13h ago•171 comments

Apple's MacBook Pro DFU port documentation is wrong

https://lapcatsoftware.com/articles/2026/2/1.html
112•zdw•7h ago•25 comments

My iPhone 16 Pro Max produces garbage output when running MLX LLMs

https://journal.rafaelcosta.me/my-thousand-dollar-iphone-cant-do-math/
304•rafaelcosta•14h ago•133 comments

What Most People Miss About Getting Promoted – By Yue Zhao

https://news.theuncommonexecutive.com/p/what-most-people-miss-about-getting
13•yuezhao•1h ago•26 comments

Show HN: Wikipedia as a doomscrollable social media feed

https://xikipedia.org
215•rebane2001•10h ago•74 comments

Show HN: NanoClaw – “Clawdbot” in 500 lines of TS with Apple container isolation

https://github.com/gavrielc/nanoclaw
385•jimminyx•12h ago•134 comments

Actors: A Model of Concurrent Computation [pdf] (1985)

https://apps.dtic.mil/sti/tr/pdf/ADA157917.pdf
90•kioku•9h ago•34 comments

Ratchets in Software Development

https://qntm.org/ratchet
31•nvader•3d ago•8 comments

Contracts in Nix

https://sraka.xyz/posts/contracts.html
58•todsacerdoti•1d ago•14 comments

Apple I Advertisement (1976)

http://apple1.chez.com/Apple1project/Gallery/Gallery.htm
241•janandonly•17h ago•129 comments

Adventure Game Studio: OSS software for creating adventure games

https://www.adventuregamestudio.co.uk/
325•doener•20h ago•67 comments

Treasures found on HS2 route stored in secret warehouse

https://www.bbc.com/news/articles/c93v21q5xdvo
66•breve•12h ago•34 comments

Ian's Shoelace Site

https://www.fieggen.com/shoelace/
174•righthand•16h ago•32 comments

Leaked Chats Expose the Daily Life of a Scam Compound's Enslaved Workforce

https://www.wired.com/story/the-red-bull-leaks/
127•smurda•5h ago•59 comments

Time Machine-style Backups with rsync (2018)

https://samuelhewitt.com/blog/2018-06-05-time-machine-style-backups-with-rsync
82•accrual•10h ago•36 comments

Building Your Own Efficient uint128 in C++

https://solidean.com/blog/2026/building-your-own-u128/
82•PaulHoule•14h ago•33 comments

Board Games in Ancient Fiction: Egypt, Iran, Greece

https://reference-global.com/article/10.2478/bgs-2022-0016
4•bryanrasmussen•2d ago•0 comments

Efficient String Compression for Modern Database Systems

https://cedardb.com/blog/string_compression/
126•jandrewrogers•2d ago•32 comments

Rev Up the Viral Factories

https://www.science.org/content/blog-post/rev-viral-factories
12•etiam•2d ago•0 comments

Two kinds of AI users are emerging

https://martinalderson.com/posts/two-kinds-of-ai-users-are-emerging/
211•martinald•11h ago•189 comments

Founding is a snowball

https://blog.bawolf.com/p/founding-is-a-snowball
83•bryantwolf•3d ago•28 comments

EU launches government satcom program in sovereignty push

https://spacenews.com/eu-launches-government-satcom-program-in-sovereignty-push/
15•benkan•1h ago•3 comments

MicroPythonOS graphical operating system delivers Android-like user experience

https://www.cnx-software.com/2026/01/29/micropythonos-graphical-operating-system-delivers-android...
218•mikece•3d ago•81 comments

Library of Juggling

https://libraryofjuggling.com/
4•tontony•2h ago•1 comments

Netbird – Open Source Zero Trust Networking

https://netbird.io/
687•l1am0•1d ago•264 comments

FOSDEM 2026 – Open-Source Conference in Brussels – Day#1 Recap

https://gyptazy.com/blog/fosdem-2026-opensource-conference-brussels/
235•yannick2k•1d ago•162 comments

Stop Using Pseudo-Types

https://f2r.github.io/en/stop-using-pseudo-types.html
14•speckx•4d ago•1 comments

Building a Telegram Bot with Cloudflare Workers, Durable Objects and Grammy

https://flashblaze.xyz/posts/cloudflare-workers-durable-objects-telegram-bot/
23•flashblaze•7h ago•5 comments

A Crisis comes to Wordle: Reusing old words

https://forkingmad.blog/wordle-crisis/
95•cyanbane•16h ago•106 comments

Towards a science of scaling agent systems: When and why agent systems work

https://research.google/blog/towards-a-science-of-scaling-agent-systems-when-and-why-agent-system...
86•gmays•16h ago•30 comments