• 2 Posts
  • 18 Comments
Joined 3 years ago
cake
Cake day: July 1st, 2023

help-circle



  • You are wrong.

    DRY has been applied to written code at least since the book Clean Code, which has been widely recommended to programmers for nearly two decades.

    I’m not making a stance here about whether or not that is the right recommendation, but saying that DRY was never meant to be applied to “the code you write” is simply wrong.

    (I remember DRY being pushed before that book, but it’s the only primary source I have at this moment.)




  • However, Linus’s kernel was more elaborate than GNU Hurd, so it was incorporated.

    Quite the opposite.

    GNU Hurd was a microkernel, using lots of cutting edge research, and necessitating a lot of additional complexity in userspace. This complexity also made it very difficult to get good performance.

    Linux, on the other hand, was just a bog standard Unix monolithic kernel. Once they got a libc working on it, most existing Unix userspace, including the GNU userspace, was easy to port.

    Linux won because it was simple, not elaborate.






  • cbarrick@lemmy.worldtoComic Strips@lemmy.world•Dreamcatcher
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 years ago

    Album art I see:

    • Sgt Pepper’s Lonely Hearts Club Band (1967)
    • The Velvet Underground and Nico (1967)
    • Led Zeppelin (1969)
    • Dark Side of the Moon (1973)
    • Weezer (the blue album) (1994)

    Other music art:

    • The Nirvana logo (smiley face) is on the wall.
    • The Rolling Stones logo is shown as an album art (IIRC it was never the cover of a studio album).
    • Yellow Submarine (1968) is there, but it’s not the album art.

  • With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).

    To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.

    With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.

    It’s a bit similar to the role of an intermediate representation in compilers.








  • The alternative to IPv6 is CGNAT.

    CGNAT is really annoying for users, since the entire ISP looks like a single IP address. This can lead to situations where the entire ISP accidentally gets classified as a bot or otherwise blocked. It’s not too hard to find these kinds of stories from StarLink customers.

    We are at the point where we are are legitimately out of IPv4 addresses. Household NAT isn’t enough and CGNAT has too many problems. IPv6 code was written ages ago and is very stable in all OSs these days.

    It really is just these legacy middle boxes holding us back.