HN user

9dev

9,223 karma

Head of Engineering @ matchory.com

<first letter of my company name> at 9dev.de

[ my public key: https://keybase.io/radiergummi; my proof: https://keybase.io/radiergummi/sigs/_bPlsZ-Tii8Qag-Ne5n2bNSqVB8CDqke1kLgzTytb-s ]

Posts24
Comments3,068
View on HN
www.independent.co.uk 2mo ago

Trump says it's 'treasonous' to say US not winning war in Iran

9dev
20pts9
github.com 4mo ago

Show HN: Tspages – static site hosting platform for your Tailscale network

9dev
1pts1
news.ycombinator.com 6mo ago

Ask HN: How to introduce Claude Code to a team?

9dev
11pts7
github.com 8mo ago

Show HN: Avoid Docker builds in GH Actions if the context didn't change

9dev
2pts0
news.ycombinator.com 1y ago

Ask HN: New RevOps guy wants to switch us from M365 to GSuite+Slack

9dev
4pts18
news.ycombinator.com 1y ago

Ask HN: To get married, I need to send an email the shortest time possible. How?

9dev
10pts23
121gigawatts.org 1y ago

A pretty visualisation of the European power grid (2022)

9dev
311pts194
news.ycombinator.com 1y ago

Ask HN: Looking for Collaborators on Gaia, an MMO Ecosystem Simulator

9dev
3pts4
www.jpl.nasa.gov 1y ago

NASA's Perseverance Rover Scientists Find Intriguing Mars Rock

9dev
2pts0
www.eurekalert.org 2y ago

New way of fabricating carbon nanotube fibers with ultrahigh dynamic strength

9dev
2pts0
github.com 2y ago

Galah: An LLM-powered web honeypot using the OpenAI API

9dev
2pts0
news.ycombinator.com 2y ago

Ask HN: Docker Swarm silently abandoned, what can I do?

9dev
3pts4
news.ycombinator.com 3y ago

Ask HN: Storing encrypted, copyrighted material for users

9dev
5pts0
news.ycombinator.com 3y ago

Tell HN: IPv6-only still pretty much unusable

9dev
686pts631
news.ycombinator.com 4y ago

Ask HN: Should we hire a remote development team?

9dev
1pts0
community.spotify.com 4y ago

Spotify silently disabled friend feed

9dev
1pts0
www.moritzfriedrich.com 5y ago

Partial Migration to Webflow

9dev
2pts0
iopscience.iop.org 5y ago

Reversible dynamics with closed time-like curves and freedom of choice (2020)

9dev
14pts11
repman.io 6y ago

Private, Open Source PHP Package Repository Manager

9dev
2pts0
www.moritzfriedrich.com 6y ago

Automatically deployed feature branch previews

9dev
1pts0
news.ycombinator.com 6y ago

Ask HN: How to handle database migrations with multiple applications?

9dev
13pts6
adrien.poupa.fr 7y ago

Empirical study of performance in Laravel applications

9dev
1pts0
news.ycombinator.com 7y ago

Ask HN: Where to find hi-res images of earth?

9dev
5pts12
github.com 7y ago

Show HN: Phoenix – a modular code documentation framework

9dev
1pts0

It’s really not that hard, especially with an AI agent to help you. Running a Postgres server and a read replica in Hetzner with pgBackRest backing up to their S3 buckets and a cloud volume can be had for under 50€, has HA, PITR, 3-2-1 backups, and will carry you through your series A comfortably, with GDPR compliance built-in.

What does the equivalent RDS setup cost you?

I find it fairly easy to distinguish between US model labs and North Korea.

Do you now? Remember the girls school bombing in Iran, of which we still don't know if an AI agent was involved in the target planning?

I do unterstand why a (assuming here) US citizen might sleep all sound and comfy, but to the rest of the world the distinction is neither as clear nor as comforting.

As a European, all I know is that we cannot trust the USA anymore, and being so utterly dependent on them to not fuck up the most important technological revolution in our history so far over greed, cronyism, incompetence... it is terrifying.

I never really understood these complaints about the standard library, that's not what makes a language really. Yes, it's ugly, yes, it carries 30 years of baggage, but it's PHP the language that allows you to interact with a much more convenient abstraction layer provided by Laravel.

PHP can run the same code fully dynamically typed or with very strict type annotations, depending on your requirements. It has runtime reflection APIs that are so cheap that you don't really have to think about using them. You can do OOP or FP with PHP, or even procedural HTML-interleaved-with-PHP if that's your thing. It has late static binding, so you can defer to child classes from their parent class. There are generators and fibres as first-class language constructs now. Property hooks are an extremely clear pattern, way better than in many other languages.

Generally, there have been tons of new syntax extensions over the years, and they all slot in gracefully. With PHP 8.6, we're going to get partial application for functions, which will make PHP 8.5's match expressions one of the most ergonomic implementations I have seen yet!

These "very new things" have, in part, been available for more than 6 years now. Not to speak of all the other PHP features WordPress chose to forgo, like PDO with prepared statements (which completely eliminates SQL injections), which came out 21 freakin' years ago.

There are many very successful and professional PHP projects with millions of users that seem to be able to migrate to newer PHP versions just fine.

Whatever the WordPress developers are claiming are the reasons for their irresponsible codebase and their inability to improve it is nobody's fault but their own.

Kimi Work 2 days ago

That might even be a beneficial move, creating (well, actual, not artificial) scarcity works well to draw interest usually. Curious how this one plays out.

So, you move into a new flat. In the living room, there's five sockets on the west side, but only one on the east side, and that's planned for a lamp already.

Does it make more sense to

  a) put up your TV and gaming console on the east side, and have an electrician run another power line across the room (they can install five plugs there too so you can keep the lamp and even charge your phone, which is nice), or
  b) simply put up your TV and console on the west side?
I know parent didn't say anything about DCs, but this is a thread about power lines to data centres. Before you go out of your way to span expensive power lines all across the country to get the power where the consumers are, it's a lot smarter to move consumers where the power already is.

Video streaming or game streaming both depend on close proximity to the end user

That's a straw man for this discussion. Yes, there will be a need to place some DCs close to users, but most of them could be located closer to energy production, attached to a backbone network, and the vast majority of customers would not suffer any degradation of service from it.

Even just introducing emulation layers for the old parts and making the new parts opt-in would be better than just giving up and keep on going. Plugin authors can choose the new subsystem as they publish updates or new plugins and themes, and in return they get speed and security guarantees.

And since the WordPress foundation controls the extension marketplace, they can reliably determine which parts of the API surface are in use, or even invest a chunk of money every month to send AI-written patches to plugin maintainers to ease the transition.

There would be so many ways to improve the situation (to the benefit of WordPress maintainers, customers, and ecosystem vendors alike, mind you!), but alas, they are stuck to their ways and will not.

Let me convince you! :-)

There are match expressions and arrow functions:

  $slug = $title
      |> trim(...)
      |> (fn($str) => str_replace(' ', '-', $str))
      |> (fn($str) => str_replace('.', '', $str))
      |> strtolower(...);
There is meta-programming with annotations:
  final class PostsController
  {
      #[AccessControl(fn(Request $request, Post $post)
          => $request->user === $post->getAuthor()
      )]
      public function update(Request $request, Post $post): Response {
          // ...
      }
  }
Native (and optionally value-backed) enums:
  enum Status
  {
      case Draft;
      case Published;
      case Archived;
  }
Proper class property hooks, fully replacing getters and setters:
  class Data
  {
      public string $fullName {
          get => "{$this->firstName} {$this->lastName}";
          set(string $value) {
              [$first, $last] = explode(' ', $value);
              $this->firstName = $first;
              $this->lastName = $last;
          }
      }
  }
And tons of other features—among them asymmetric property visibility, fibres/green threads, DNF types, lazy object instantiation, an ever-improving yet fully opt-in static type system with runtime validation, a JIT compiler, an amazing package ecosystem and -manager, annotation-backed deprecation, and more.

Well, in Germany at least - if the living space differs drastically, that is at least 10%, you can lower the rent accordingly and make a demand for a refund of the entire rent you overpaid since you moved in - and you probably should also make a second case for damages due to purposeful deception.

A consumer doesn't buy anything from a business "as seen", that is not a thing over here. There are binding rules to protect consumers from malevolent sellers or landlords, and legal obligations you can't subvert by tricking customers into purchasing something different from what was advertised.

…and define rules for the measurement taken, like no stairs, count areas below roof sloping or outside on balconies etc. with a lower factor, exclude shared areas and cellars/attics, and so on.

Not measuring correctly, not publishing the measurements, or publishing incorrect measurements outside an error margin gets counted as deception. Offer a simple reporting contact point to citizens to report landlords or offers that violate this regulation without a lawsuit.

I'm way too afraid of a "paperclip problem"-style target overfitting to use it really; how could I even describe a goal so well it doesn't sacrifice other things that are important to me? Like, if my goal is to make an endpoint faster, will it create an over-engineered mess out of the clearly readable code I have to reach that goal?

I take that comic a bit personal, to be honest - I just returned from a two-month odyssey to find a way of offering our customers a simple way of connecting our MCP Server to their Copilot Chat. Digging through a mindboggling number of documentation that was often outdated, sometimes contradictory, but always written both verbose and yet very light on information was part of that; talking to broken AI chatbots and clueless support staff was, just as trying out four (four!) different ways to create an Agent wrapper - only to discover that multi-tenancy is not supported for any of these, and two of the three SDKs are outdated but still referenced in docs everywhere.

What's more, people seemed to be actively confused by the use case ("Why would your customers even want to use an external tool that isn't part of their Microsoft environment?").

I finally found out about "declarative agents", which seem to be able to do what I need. And if I don't trash my computer against the wall out of pure rage over page changes in partner center taking 15 seconds or longer, I might just be able to complete the 40-step form required for the marketplace listing. Progress!