HNHacker News
TopNewBestAskShowJobs

alfons_foobar

151 karma · joined November 30, 2022

submissionscomments
alfons_foobar··on Rolling the Root Key
> major providers (including all of Cloudflare) responded to it by disabling DNSSEC

Yeah I was very confused by this as well.

But then again, I think/hope that anyone relying on DNS / DNSSEC for security-related $THINGS is _probably_ running their own validating resolver.

alfons_foobar··on Rolling the Root Key
You mean because the majority of the DNS is still unsigned?
alfons_foobar··on The Twelve-Factor App (2025)
that link 404's :(
alfons_foobar··on Go is an ideal language for AI-assisted software engineering
just curious, what problems do you see with gobgp?

(I have only a rather basic familiarity with go, but was considering gobgp for an infra project...)

alfons_foobar··on Show HN: Write.md – A free, open-source, themeable Markdown editor for macOS
not an app per se, but pandoc is great...
alfons_foobar··on The startup's Postgres survival guide
ahh, gotcha! thanks!
alfons_foobar··on The startup's Postgres survival guide
Sorry, I am being dense... how does that solve the problem?

I still have to get a connection from the pool, I just do it inside the function body now, right?

So this

    @app.get("/users")
    def get_users(conn = Depends[get_db_conn]):
        users = conn.execute("SELECT * FROM users")
        return users
would become that instead:

    @app.get("/users")
    def get_users(pool = Depends[get_db_pool]):
        with pool.get_conn() as conn:
            users = conn.execute("SELECT * FROM users")
        return users
But I still need enough connections in the pool to handle all concurrent requests, no?
alfons_foobar··on The startup's Postgres survival guide
I might be outing myself as a noob here, but... what is the (better) alternative?
alfons_foobar··on Jack Dorsey launches Buzz to combine team chat, AI agents and Git hosting
Am I the only one seeing _crazy_ levels of CPU usage when opening the project's homepage (https://buzz.xyz)?

Like "maxing-out-8-cores"-crazy?

alfons_foobar··on Why IPv6 is so complicated
I am not a mobile dev :D

I am aware that NAT is often used in corporate networks, but it does not automatically make any more sense there - the isolation is achieved by the firewall, not by NAT.

NAT (address or port translation) and a firewall (allowing traffic from/to those addresses or ports) are orthogonal concepts.

You can do NAT on IPv6, if you so desire.

It _should_ make no difference whether any adversary knows "what's behind a NAT", because it is your firewalls job to block any unwanted traffic.

Relying on "nobody knows what is inside our network so it can't be attacked" is not a viable strategy.

alfons_foobar··on Why IPv6 is so complicated
NAT is a crutch to circumvent the problem of "there are not enough addresses for each device".

I _assume_ you are referring to a default deny inbound firewall (so that devices are not reachable from the outside), but these are very different, completely orthogonal concerns (and independent of the IP version in use).

alfons_foobar··on An update on recent Claude Code quality reports
I am not sure this approach can take you very far.

In my experience, CC makes it very very easy to _add_ things, resulting in much more code / features.

CC can obviously read/understand a codebase much faster than we do, but this also has a limit (how much context we can feed into it) - I think your approch is in essence a bet that future models' ability to read/understand code (size of context) improves as fast or faster than the current models' ability to create new code.

alfons_foobar··on How NASA built Artemis II’s fault-tolerant computer
I wondered about this as well.

OTOH, consider that in the "pick the majority from 3 CPUs" approach that seems to have been used in earlier missions (as mentioned in the article) would fail the same way if two CPUs compute the same erroneous result.

alfons_foobar··on Carelessness versus craftsmanship in cryptography
While I agree in principle, as of now the latest commit to the pyaes repo and its latest release to pypi are from 2017...
alfons_foobar··on Parse, Don't Validate and Type-Driven Design in Rust
> `NonZeroU32::saturating_add(self, other: u32)` is able to return `NonZeroU32` though!

I was confused at first how that could work, but then I realized that of course, with _unsigned_ integers this works fine because you cannot add a negative number...

alfons_foobar··on Parse, Don't Validate and Type-Driven Design in Rust
Would have to be F32, no? I cannot think of any way to enforce "non-zero-ness" of the result without making it return an optional Result<NonZeroF32>, and at that point we are basically back to square one...
alfons_foobar··on Your job is to deliver code you have proven to work
> added random blank lines and deleted others from code that was not even in the file they were supposed to be working in.

Maybe some kind of auto-formatter?

alfons_foobar··on Tiger Style: Coding philosophy (2024)
Agree that "splitting for splittings' sake" (only to stay below an arbitrary line count) does indeed not make sense.

On the other hand I often see functions like you describe - something has to be executed step-by-step (and the functionality is only used there) - where I _whish_ it was split up into separate functions, so we could have meaningful tests for each step, not only for the "whole thing".

alfons_foobar··on Python developers are embracing type hints
Fair point!

Maybe I am just a bit burned by this particular example I ran into (where this pattern should IMO not have been used).

alfons_foobar··on Python developers are embracing type hints
I ran into some code recently where this pattern caused me so much headache - class A has an attribute which is an instance of class B, and class B has a "parent" attribute (which points to the instance of class A that class B is an attribute of):

  class Foo:
      def __init__(self, bar):
          self.bar = bar
  
  class Bar:
      def __init__(self, foo):
          self.foo = foo
Obviously both called into each other to do $THINGS... Pure madness.

So my suggestion: Try not to have interdependent classes :D

alfons_foobar··on Python developers are embracing type hints
Agreed that this "hack" is very ugly!

On the other hand, I tend to take it as a hint that I should look at my module structure, and see if I can avoid the cyclic import (even if before adding type hints there was no error, there still already was a "semantic dependency"...)

alfons_foobar··on How AWS S3 serves 1 petabyte per second on top of slow HDDs
He explicitly mentioned RAID0 though :)
alfons_foobar··on Thundering herd problem: Preventing the stampede
This sounds intriguing and terrible at the same time :D
alfons_foobar··on How to motivate yourself to do a thing you don't want to do
This 100%
alfons_foobar··on Code formatting comes to uv experimentally
The formatter already exists, my understanding is that this is merely an alias for "uvx ruff"...
alfons_foobar··on An Algorithm for a Better Bookshelf
> I think there's a distinction between worst-case and adversarial behavior.

I think _technically_ there is no difference - it does not matter if the worst-case-behavior is triggered by an "adversary" or by chance.

It _does_ give a different mental model though.

alfons_foobar··on Claude Code now supports hooks
Huh, I had not heard of claude code cloud before.

(Also almost swallowed my tongue saying that out loud)

alfons_foobar··on Claude Code now supports hooks
Why is it that regular git hooks do not work with claude code?
alfons_foobar··on Use keyword-only arguments in Python dataclasses
I guess some prefer to stick with the stdlib instead of third party libs.

Also, dataclasses feels more straightforward and less "magic" to me (in the sense that it is more or less "just" a way to avoid boilerplate for class definition, while pydantic does way more "magic" stuff like de-/serialization and validation, and adding numerous methods and attributes to the classes).

alfons_foobar··on Fairphone 6 is switching to a new design that's even more sustainable
Pretty sure it has eSIM (at least my FP4 has it...)
Page 1 of 3Next →