HNHacker News
TopNewBestAskShowJobs

marksomnian

936 karma · joined February 3, 2015

DevOpsian and unsalvageable tinkerer.
submissionscomments
marksomnian··on Is your Postgres migration safe or not safe?
I like the concept and I'm trying to work out if it'll be useful for me, but I just cannot get past the cookie-cutter LLM style of the landing page. A Go library doesn't need a marketing page with a seemingly unrelated artwork and call-outs like "Climb from easy to nightmare →". Put a runnable example front and centre.
marksomnian··on In-toto: A framework to secure the integrity of software supply chains
To answer your question:

> Does Debian already provide signature on .deb files (that is, provide a manifest of their hashes and and sign each)?

Yes it does. If you look at https://ftp.debian.org/debian/dists/trixie/InRelease it's a PGP-signed file containing a list of files and their hashes. Each of those files (eg https://ftp.debian.org/debian/dists/trixie/main/binary-amd64...) then contains a list of .deb files along with their shasums. In other words, a Debian repo is a set of deb files, metadata files with their hashes, index files with hashes of the metadata files, and PGP signatures for the indexes, so the whole chain can be verified.

This means that anyone can set up a deb mirror by (essentially, there's some extra steps) copying that entire structure and the integrity is guaranteed because only the upstream admins can sign the metadata.

marksomnian··on In-toto: A framework to secure the integrity of software supply chains
That's exactly where I keep getting caught. I've looked at in-toto a number of times, and each time I've been left wondering "how is this better than a signed list of hashes?".

Which I suppose is what in-toto is at its core, but it's taken me a long time and lots of reading to get to that point, and I'm not seeing the advantages of it (except it being a standard, OK, fair enough).

I must be missing something.

marksomnian··on We scaled PgBouncer to 4x throughput
nginx (2004, ok, 22 years), ClickHouse (2016)
marksomnian··on Real-time map of Great Britain's rail network
That data is in fact made publicly available by Network Rail: https://wiki.openraildata.com/index.php/TD

though interpreting it isn't the easiest thing in the world...

marksomnian··on Bluesky CEO Jay Graber is stepping down
It's not that unusual to have an interim CEO hold the reins (read: sign anything that needs the CEO's signature) while a permanent one is found.
marksomnian··on I hate GitHub Actions with passion
In fact, uv's docs half-suggest this:

> With uv, it turns out that it's often faster to omit pre-built wheels from the cache (and instead re-download them from the registry on each run). On the other hand, caching wheels that are built from source tends to be worthwhile, since the wheel building process can be expensive, especially for extension modules.

https://docs.astral.sh/uv/concepts/cache/#caching-in-continu...

marksomnian··on Why users cannot create Issues directly
In my experience, the remote shell weirdness is usually because the remote shell doesn’t recognise ghostty’s TERM=xterm-ghostty value. Fixed by either copying over a terminfo with it in, or setting TERM=xterm-256color before ssh’ing: https://ghostty.org/docs/help/terminfo
marksomnian··on Building a macOS app to know when my Mac is thermal throttling
Site appears to be hugged to death, repo is: https://github.com/angristan/MacThrottle
marksomnian··on Denial of service and source code exposure in React Server Components
Meta don’t use RSC: https://bsky.app/profile/en-js.bsky.social/post/3lmvwmr5rfs2...

> We are not using RSC at Meta yet, bc of limits of our packaging infra (it’s great at different things) and because Relay+GraphQL gives us many of the same benefits as RSCs. But we are fans and users of server driven UI and incrementally working toward RSC.

(as of April 2025)

marksomnian··on Doing Rails Wrong
And `rails new` required me to install Ruby and Rails. I'm not sure what the point you're making is.
marksomnian··on Shopify, pulling strings at Ruby Central, forces Bundler and RubyGems takeover
GitLab too: https://gitlab.com/gitlab-org/gitlab
marksomnian··on Can You Develop Film in a Jägerbomb?
Looks like the source the article is based around is https://www.diyphotography.net/develop-film-at-home-with-a-j..., which itself is a write-up of https://www.youtube.com/watch?v=5_Oja2mpYqg.
marksomnian··on How we exploited CodeRabbit: From simple PR to RCE and write access on 1M repos
If I were a CodeRabbit customer, I'd still be pretty concerned after reading that.

How can CodeRabbit be certain that the GitHub App key was not exfiltrated and used to sign malicious tokens for customer repos (or even used for that in-situ)? I'm not sure if GitHub supports restricting the source IPs of API requests, but if it does, it'd be a trivial mitigation - and one that is absent from the blog post.

The claim that "no malicious activity occurred" implies that they audited the activities of every repo that used Rubocop (or any other potential unsandboxed tool) from the point that support was added for it until the point that the vulnerability was fixed. That's a big claim.

And why only publish this now, when the Kudelski article makes it to the top of HN, over six months after it was disclosed to them?

marksomnian··on Performance and telemetry analysis of Trae IDE, ByteDance's VSCode fork
> might be good to mention that for transparency, because people can tell anyway and it might feel slightly otherwise

Devil's advocate: why does it matter (apart from "it feels wrong")? As long as the conclusions are sound, why is it relevant whether AI helped with the writing of the report?

marksomnian··on TODOs aren't for doing
I like this style. In a project I worked on we had CI reject any FIXMEs outright and any TODOs that weren't accompanied by an issue ticket[^1], so the hierarchy would be

FIXME: I am leaving a note to myself to not get distracted, but this code is not considered finished/mergeable until it's resolved

XXX: this needs fixing soon, but the code will still be functional without it

TODO: this needs revisiting but the code is perfectly useable without it - a lower priority XXX

NOTE: this does something unusual and you need to bear in mind while working on this code

[^1]: the value of doing (or not doing) this is a subject that has already been extensively rehashed in sibling comments

marksomnian··on Ryanair may increase commission to staff identifying oversized cabin bags
O'Leary has form for this sort of ragebaiting - recall the non-stories about standing "seats" and paying to use the toilet.
marksomnian··on In React {Transitions} = F(state)
> But a few instances were to conditionally set one piece of state whenever another piece of state was changed

That use case is explicitly called out on the "You Might Not Need An Effect" article in the docs (which everyone writing React should read, and arguably was published years too late): https://react.dev/learn/you-might-not-need-an-effect

TLDR:

When updating a useState based on another useState, don't use the first useState at all, just compute it inline. If it's expensive, wrap it in a useMemo.

When updating a useState based on props, call the setter directly from the component function, and React will immediately re-render the component (instead of rendering it, running the effect, and then rendering it again).

marksomnian··on When imperfect systems are good: Bluesky's lossy timelines
From TFA:

> Generally, this can be dealt with via policy and moderation to prevent abusive users from causing outsized load on systems, but these processes take time and can be imperfect.

So it’s a case of the engineers accepting that, however hard they try to moderate, these sorts of cases will crop up and they may as well design their infrastructure to handle them.

marksomnian··on Statement on planned protests during the upcoming FOSDEM 2025
> if a peaceful protest were to take place during the talk in question, we will not take action, provided the protest is indeed peaceful and does not disrupt the proceedings

Would staging a sit-in explicitly intended to prevent the booked speaker from speaking be classed as “disrupting the proceedings”?

marksomnian··on Android XR
> Titanfall was a game that couldn't be made until the cloud

What do you mean by this?

marksomnian··on Moving Off Heroku, Slowly
From an infosec perspective, as long as the queries are encrypted (with proper TLS verification), that angle is covered (though there are other considerations about data sovereignity etc.).

In terms of response time, that's something you'd need to benchmark for your application - though, given most DBaaSes run in the same major cloud providers are your application, it'll either be the same region or go cross-region via their private backbone, so the latency delta should be manageable. Of course if your app is particularly latency-sensitive for the DB that won't work.

marksomnian··on Warning: DNS encryption in Little Snitch 6.1 may occasionally fail
Assuming arguendo that apple did want to do that kind of messing with DNS though - what's there to stop them from changing getaddrinfo() in the same way? As someone pointed out upthread, if you don't trust your OS vendor to do DNS lookups correctly, your only option is to not usre your OS vendor for DNS lookups, which is in the realm of Byzantine faults.

(And further, assuming arguendo that there was DNS meddling happening but somehow getaddrinfo() was exempt - now the user has one app that behaves differently to all their others, which is worse in every practical sense.)

marksomnian··on Zed AI
Seems like a non-sequitur? Why does LLM integration mean that Zed is less good of an editor for junior devs?
marksomnian··on Jepsen: Jetcd 0.8.2
Interesting footnote:

> In the 2022 engagement, the client’s engineers were enthusiastic about the prospect of a public analysis, and Jepsen was allowed to file public issues against systems including etcd. Following the conclusion of the contract, Jepsen independently completed a written report discussing the behaviors we’d found in etcd. However, Jepsen was unable to secure official permission from the client’s legal department to disclose that the client had funded part of the work. This created an unusual state of affairs: the issues, test suite, and reproduction instructions were all public, but per Jepsen’s ethics policy, the analysis itself could not be published. Jepsen shelved that analysis and it remains unpublished. The present analysis is based on entirely new work and verifies a different software system: jetcd, rather than etcd

marksomnian··on SimSig: Railway Signalling Simulations
Some lines on the London Underground do use ATO without platform barriers. The driver closes the doors, checks that the platform is clear, then starts the train. ATO takes over until the next station, where the driver watches to make sure there's nobody too close to the edge, ready to slam on the emergency brake.
marksomnian··on SimSig: Railway Signalling Simulations
And https://www.map.signalbox.io/, which tries to interpolate signal locations onto a geographic map (with the expected level of inaccuracy, though still not half-bad)
marksomnian··on ICANN's list of abandoned vanity TLDs
I believe http://go isn’t special cased, but instead (ab)uses DNS search domains - the server is actually something like go.corp.google.com, and all Google PCs are configured to use corp.google.com as a search domain
marksomnian··on Thanksgiving 2023 security incident
Also it's a violation of Obsidian's license:

> Obsidian is free for personal and non-profit use. However, if you use Obsidian for work-related activities that generate revenue in a company with two or more people, you must purchase a commercial license for each user. Non-profit organizations are exempt from this requirement.

https://obsidian.md/license

marksomnian··on Nintendo Switch Emulator: Progress Report December 2023
Interesting that Ryujinx is written in C# - I'm not sure why, but at first thought I'd have expected something like a console emulator (where one would have to do "unusual" memory / GPU operations to fully match the quirks of the platform) to be written in C or C++, like Dolphin or PCSX2 (Wii / PS2 emulators) are. Though clearly they can make C# work well for it, and the benefits of working in a managed language are probably worth it.
Page 1 of 10Next →