News for hackers. Stuff that matters.

alfons_foobar

Re:Rolling the Root Key on Sunday October 11, 2026 @04:28PM (#50047485)
> 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.

Re:Rolling the Root Key on Sunday October 11, 2026 @01:44PM (#50045774)
You mean because the majority of the DNS is still unsigned?
Re:The Twelve-Factor App on Saturday August 29, 2026 @12:39PM (#49491299)
that link 404's :(
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...)

not an app per se, but pandoc is great...
Re:The startup's Postgres survival guide on Thursday July 23, 2026 @01:46PM (#49025446)
ahh, gotcha! thanks!
Re:The startup's Postgres survival guide on Thursday July 23, 2026 @01:47AM (#49017385)
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?
Re:The startup's Postgres survival guide on Wednesday July 22, 2026 @03:34PM (#49012229)
I might be outing myself as a noob here, but... what is the (better) alternative?
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?

Re:Why IPv6 is so complicated on Thursday May 14, 2026 @07:18AM (#48133846)
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.

Re:Why IPv6 is so complicated on Saturday May 02, 2026 @12:47PM (#47988009)
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).

Re:An update on recent Claude Code quality reports on Saturday April 25, 2026 @08:02AM (#47900769)
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.

Re:NASA Built Artemis II's Fault-Tolerant Computer on Friday April 10, 2026 @02:52AM (#47714475)
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.

Re:Carelessness versus Craftsmanship in Cryptography on Sunday February 22, 2026 @07:01AM (#47110333)
While I agree in principle, as of now the latest commit to the pyaes repo and its latest release to pypi are from 2017...
Re:Parse, Don't Validate and Type-Driven Design in Rust on Saturday February 21, 2026 @05:47PM (#47105714)
> `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...

Re:Parse, Don't Validate and Type-Driven Design in Rust on Saturday February 21, 2026 @04:50PM (#47105185)
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...
Re:Your job is to deliver code you have proven to work on Thursday December 18, 2025 @03:05PM (#46317904)
> 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?

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".

Re:Why Today's Python Developers Are Embracing Type Hints on Monday September 29, 2025 @10:30AM (#45414303)
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).

Re:Why Today's Python Developers Are Embracing Type Hints on Sunday September 28, 2025 @07:54AM (#45403677)
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

Re:Why Today's Python Developers Are Embracing Type Hints on Sunday September 28, 2025 @03:34AM (#45402447)
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"...)

Re:S3 scales to petabytes a second on top of slow HDDs on Thursday September 25, 2025 @12:44PM (#45375203)
He explicitly mentioned RAID0 though :)
Re:Thundering Herd Problem: Preventing the Stampede on Tuesday September 23, 2025 @04:10PM (#45352140)
This sounds intriguing and terrible at the same time :D
Re:How to Motivate Yourself to Do a Thing You Don't Want to Do on Wednesday September 17, 2025 @04:39PM (#45281129)
This 100%
Re:Uv format: Code Formatting Comes to uv (experimentally) on Friday August 22, 2025 @07:48AM (#44983354)
The formatter already exists, my understanding is that this is merely an alias for "uvx ruff"...
Re:An Algorithm for a Better Bookshelf on Friday July 04, 2025 @02:10AM (#44461591)
> 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.

Re:Claude Code now supports Hooks on Tuesday July 01, 2025 @01:49PM (#44436365)
Huh, I had not heard of claude code cloud before.

(Also almost swallowed my tongue saying that out loud)

Re:Claude Code now supports Hooks on Tuesday July 01, 2025 @02:58AM (#44431303)
Why is it that regular git hooks do not work with claude code?
Re:Use keyword-only arguments in Python dataclasses on Monday June 30, 2025 @08:46AM (#44422600)
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).

Pretty sure it has eSIM (at least my FP4 has it...)

Older »