HNHacker News
TopNewBestAskShowJobs

majewsky

15,703 karma · joined January 5, 2016

This process emits code when Premium Cola is present on standard input.

https://xyrillian.de (podcasts and blog) https://github.com/majewsky Mastodon: https://digitalcourage.social/@xyrill

What I say is often colored by my work experience, but opinions are always my own and not those of my employer.

submissionscomments
majewsky··on A Faster Alternative to Jq
I still saw the same bug just now (Firefox on macOS).
majewsky··on Redox OS has adopted a Certificate of Origin policy and a strict no-LLM policy
> It is very unclear whether the output of an AI tool is subject to copyright.

At least for those here under the jurisdiction of the US Copyright Office, the answer is rather clear. Copyright only applies to the part of a work that was contributed by a human.

See https://www.copyright.gov/ai/Copyright-and-Artificial-Intell...

For example, on page 3 there (PDF page 11): "In February 2022, the Copyright Office’s Review Board issued a final decision affirming the refusal to register a work claimed to be generated with no human involvement. [...] Since [a guidance on the matter] was issued, the Office has registered hundreds of works that incorporate AI-generated material, with the registration covering the human author’s contribution to the work."

(I'm not saying that to mean "therefore this is how it works everywhere". Indeed, I'm less familiar with my own country's jurisprudence here in Germany, but the US Copyright Office has been on my radar from reading tech news.)

majewsky··on You Just Reveived
Not exactly the same, but "sb." and "sth." are common abbreviations in dictionaries, e.g. "to meet sb." or "to pick sth. up". To those familiar with this convention, "s.o." can generally be inferred from context.
majewsky··on iPhone 17e
This does not square with especially Apple's unending obsession to make phones as thin as possible. Which is doubly stupid when it makes them so fragile that the first thing you do after taking it out of the box is to wrap it in a thick rubber shell.
majewsky··on “Microslop” filtered in the official Microsoft Copilot Discord server
> Klopilot

I like "Copy-lot".

majewsky··on Why Go Can't Try
The problem with the zero value business is that it also makes adding these QoL things in libraries difficult or outright impossible. Case in point, I tried building a library for refinement types, so you can have a newtype like,

  type AccountName string
except you write it like (abridged)

  type AccountName refined.Scalar[AccountName, string]

  func (AccountName) IsValid(value string) bool {
    return accountNameRegexp.MatchString(value)
  }
and that enforces an invariant through the type system. In this case, any instance of type AccountName needs to hold a string conforming to a certain regular expression. (Another classical example would be "type DiceRoll int" that is restricted to values 1..6.)

But then you run into the problem with the zero value, where the language allows you to say

  var name AccountName // initialized to zero value, i.e. empty string
and now you have an illegal instance floating around (assuming for the sake of argument that the empty string is not a legal account name). You can only really guard against that at runtime, by panic()ing on access to a zero-valued AccountName. Arguably, this could be guarded against with test coverage, but the more insidious variant is

  type AccountInfo struct {
    ID int64 `json:"id"`
    Name AccountName `json:"name"`
  }
When you json.Unmarshal() into that, and the payload does not contain any mention of the "name" field, then AccountName is zero-valued and does not have any chance of noticing. The only at least somewhat feasible solution that I could see was to have a library function that goes over freshly unmarshaled payloads and looks for any zero-valued instances of any refined.Scalar type. But that gets ugly real quick [1], and once again, it requires the developer to remember to do this.

[1] https://github.com/majewsky/gg/blob/refinement-types-4/refin...

So yeah, I do agree that zero values are one of the language's biggest mistakes. But I also agree that this is easier to see with 20 years of hindsight and progress in what is considered mainstream for programming languages. Go was very much trying to be a "better C", and by that metric, consistent zero-valued initialization is better than having fresh variables be uninitialized.

majewsky··on RAM now represents 35 percent of bill of materials for HP PCs
Because they are only allowed to review what the LLM has come up with.
majewsky··on LLM=True
> Claude is now forbidden from using `gradlew` directly, and can only use a helper script we made. It clears, recompiles, publishes locally, tests, ... all with a few extra flags. And when a test fails, the stack trace is printed.

I think my question at this point is what about this is specific to LLMs. Humans should not be forced to wade through reams of garbage output either.

majewsky··on Using go fix to modernize Go code
We've finally figured out how to spread ossification from network protocols to programming languages! \o/
majewsky··on Russia's economy has entered the death zone
> "I have said many times that the Russian and Ukrainian people are one nation, in fact. In this sense, all of Ukraine is ours [...] But you know we have an old parable, an old rule: wherever a Russian soldier steps, it is ours."

https://www.aljazeera.com/features/2025/6/27/putin-confirms-...

majewsky··on I’m joining OpenAI
76k gross per year in Germany is basically the same as that. 100k gross comes out to about 5.5k net per month. The big question is how much is already covered once you're down to the net pay.
majewsky··on Skip the Tips: A game to select "No Tip" but dark patterns try to stop you
Doesn't matter in touristy places though, because you don't rely on repeat customers.
majewsky··on Skip the Tips: A game to select "No Tip" but dark patterns try to stop you
(I'm German. This is my personal stance.)

Charging a tip for to-go items is preposterous. When dining in, I will indeed tip, usually by rounding up to the next 5 or 10 euro increment for a group meal, or to the next 1 or 2 euro increment for single meals (e.g. during lunch hours near the office). But this is only if the service is actually good. If a restaurant makes me wait more than 30 minutes for a quick lunch, they will be paid exactly the amount posted on the menu.

majewsky··on Claude Opus 4.6
> He doesn't give hard data

And why is that? Should they not be interested in sharing the numbers to shut up their critics, esp. now that AI detractors seem to be growing mindshare among investors?

majewsky··on Claude Opus 4.6
Sucks that you got a really shitty response to your prompt. If I were you, the model provider would be receiving my complaint via clay tablet right away.
majewsky··on Lennart Poettering, Christian Brauner founded a new company
> You could tell this sort of insinuation to anyone. Including you.

Yes. You correctly stated the important point.

majewsky··on Lennart Poettering, Christian Brauner founded a new company
> A silver lining, is it would likely be attempted via systemd. This may finally be enough to kick off a fork, and get rid of all the silly parts of it.

This misunderstands why systemd succeeded. It included several design decisions aimed at easing distribution maintainers' burdens, thus making adoption attractive to the same people that would approve this adoption.

If a systemd fork differentiates on not having attestation and getting rid of an unspecified set of "all the silly parts", how would they entice distro maintainers to adopt it? Elaborating what is meant by "silly parts" would be needed to answer that question.

majewsky··on jQuery 4
Nearly every time I write something in JavaScript, the first line is const $ = (selector) => document.querySelector(selector). I do not have jQuery nostalgia as much as many others here, but that particular shorthand is very useful.

For extra flavor, const $$ = (selector) => document.querySelectorAll(selector) on top.

majewsky··on Our approach to advertising
> How do you propose they fund the free usage otherwise?

Why do random HN commenters have to come up with a business model for free LLM usage? If LLMs are so great, they should not need to offer a free tier at all. Surely word of mouth would make people line up around the block to snatch one of those highly coveted subscriptions.

majewsky··on Ask HN: Share your personal website
https://xyrillian.de - Most of it has not been touched in quite a while, but I do post podcasts every three weeks.
majewsky··on Ozempic is changing the foods Americans buy
That's true of any human. It's just particularly bad for tech bros because they base their entire personality on their supposed hyper-rationalism.
majewsky··on Go.sum is not a lockfile
At this point I'm just assuming that all of the official actions under https://github.com/actions are unmaintained garbage until proven otherwise, given that high-impact issues like this can sit for years without as much as an initial triage: https://github.com/actions/delete-package-versions/issues/16...
majewsky··on Go.sum is not a lockfile
This is not the experience that I have. I use vendoring heavily because it's nice to be able to review all the relevant code changes when Renovatebot updates a dependency [1], and to get a feel for how heavy or lightweight certain dependencies are. If vendoring was incomplete, I would see it trying to download missing dependencies at compile time, but the "go: downloading $MODULE $VERSION" lines only show up when I expect them too, e.g. during "go get -u" or "go mod tidy/vendor".

[1] Before you ask, I'm not reading the full diff on something like x/sys. Mostly on third-party dependencies where I find it harder to judge the reliability of the maintainers.

majewsky··on I changed my personality in six weeks
I remember a rule of thumb being "if you cannot remember the last day on which you did not have any alcohol, you're an alcoholic". Probably not what AA goes by, but I like the simplicity of it.
majewsky··on Odoo: Open-Source ERP
> Disclaimer: I am the founder of Odoo.

Oh hey, it's my favorite pet peeve. When flagging a potential conflict of interest, the word is "Disclosure". "Disclaimer" means "I'm just a random guy who cannot assume responsibility for what they're saying", like in IANAL.

majewsky··on Upcoming Changes to Let's Encrypt Certificates
It absolutely has to do with ACME. There used to be CAs that would generate a service certificate including private key for you. This is obviously a terrible idea, but it is made impossible by ACME only allowing exchanging CSRs for certs.
majewsky··on Upcoming Changes to Let's Encrypt Certificates
Only for devices that do not allow you to patch the CA bundle as an aftermarket repair. Call your representative and demand Right to Repair legislation.
majewsky··on Ask HN: How can I get better at using AI for programming?
Yes, that's exactly the problem. There's good reasons why any particular team doesn't onboard new engineers each day, going all the way back to Fred Brooks and "adding more people to a late project makes it later".
majewsky··on Ask HN: How can I get better at using AI for programming?
Wasn't most of that caused by that one change in 2022 to how R&D expenses are depreciated, thus making R&D expenses (like retaining dev staff) less financially attractive?

Context: This news story https://news.ycombinator.com/item?id=44180533

majewsky··on Germany's train service is one of Europe's worst. How did it get so bad?
It's actually kind of the opposite with DB [1]: Regional trains are decently on-time, and commuter trains even more so because they usually have dedicated tracks. Long-distance trains and cargo trains are the ones with abysmal punctuality, the former because the schedules are so tight that a random passenger coughing at the wrong time can fuck everything up, and the latter because they have to yield when a late passenger train has to make up time.

[1] Source (2024): https://zbir.deutschebahn.com/2024/en/interim-group-manageme...

← PreviousPage 2 of 34Next →