Hacker Newsnew | past | comments | ask | show | jobs | submit | hamandcheese's commentslogin

If this becomes a big enough problem, surely we can add artificial rotational inertia to the grid, right?

I must be the only one in here who thinks $1.5M is a small sum compared to Anthropic's size and the amount of value they have gotten out of Python. Good press is cheaper than I thought.

You are right, it is. But it would be a mistake for us to use this opportunity to attack them for it.

We should applaud their donation today, and at another time assess the meager contributions of many companies that should be shamed.


Every single financial institution on Wall Street, the City of London, Amsterdam, Tokyo, Dubai and so on, uses Python. Very few contribute.

I've worked at a few that use the 'mold' linker to dramatically reduce their build times. Again, very few contribute. In this particular case, I managed to get one former employer to make a donation.

But the list goes on.

Short arms, deep pockets, as the saying goes.


It’s interesting to see everyone advocate for open source software with permissive licenses, then get mad when companies use them.

If python wants to require money for updates or for customers over $X in revenue, they can!

If companies don’t want to donate, they don’t have to just as python contributors don’t have to if they’re annoyed at how it’s used.


very easy way to make bank would be to support extended security updates for old versions of python

a couple of paid engineers could support every previous version essentially forever


Money has limited impact and has all sorts of drawbacks.

A more impactful change from firms might be to celebrate and reward community contributions of their own employees. This can establish a more productive culture than just money. If an engineering company is willing to donate money (yay!), perhaps consider making sure that employees are celebrated for contributions they make in a manner that is similar to how we currently celebrate monetary transactions.

For an example of the opposite, Google laid off their entire Python team, something that also made HN front page: https://news.ycombinator.com/item?id=40171125


All people do here is complain.

We can both applaud the effort and indicate it’s not enough. Two things can be true simultaneously.

It may not be enough, but I think it'd be more appropriate/constructive to point to other companies benefiting from Python that have never contributed, rather than saying one that contributed didn't do enough.

An opportunity for you to convince the leadership at your company to contribute.

Even if it would be a small fraction of $1.5M


that was my first thought too, $1.5M is peanuts for Anthropic, however $1.5M is better than nothing, so it worth some PR too. Good they do, I think we have to encourage companies to do it, shaming will not help.

I mean, it's 1.5M more than the foundation knows what to do with.

don't compare everyone with your mom, shepard

Reading data is overrated. I highly recommend S4:

http://www.supersimplestorageservice.com/


It's particularly well suited for backups

This is very cool!

But I also think it's worth a mention that for basic "I want to access my home LAN" use cases you don't need P2P, you just need a single public IP to your lan and perhaps dynamic dns.


Where will you host the wg endpoint to open up?

- Each device? This means setting up many peers on each of your devices

- Router/central server? That's a single point of failure, and often a performance bottleneck if you're on LAN. If that's a router, the router may be compromised and eavesdrop on your connections, which you probably didn't secure as hard because it's on a VPN.

Not to mention DDNS can create significant downtime.

Tailscale fails over basically instantly, and is E2EE, unlike the hub setup.


To establish a wg connection, only one node needs a public IP/port.

> Router/central server? That's a single point of failure

Your router is a SPOF regardless. If your router goes down you can't reach any nodes on your LAN, Tailscale or otherwise. So what is your point?

> If that's a router, the router may be compromised and eavesdrop on your connections, which you probably didn't secure as hard because it's on a VPN.

Secure your router. This is HN, not advice for your mom.

> Not to mention DDNS can create significant downtime.

Set your DNS ttl correctly and you should experience no more than a minute of downtime whenever your public IP changes.


> one node needs a public IP/port

A lot of people are behind CGNAT or behind a non-configurable router, which is an abomination.

> Secure your router

A typical router cannot be secured against physical access, unlike your servers which can have disk encryption.

> Your router is a SPOF regardless

Tailscale will keep your connection over a downstream switch, for example. It will not go through the router if it doesn't have to. If you use it for other usecases like kdeconnect synchronizing clipboard between phone and laptop, that will also stay up independent of your home router.


A public IP and DDNS can be impossible behind CGNAT. A VPN link to a VPS eliminates that problem.

The VPS (using wg-easy or similar solutions) will be able to decrypt traffic as it has all the keys. I think most people self-hosting are not fine with big cloud eavesdropping on their data.

Tailscale really is superior here if you use tailnet lock. Everything always stays encrypted, and fails over to their encrypted relays if direct connection is not possible for various reasons.


When I said "you just need a single public IP" I figured it was clear that I wasn't claiming this works for people who don't have a public IP.

> What if you need to copy a element with tailwind, this later gets altered to include a slightly different style, but wait, now you have a original somewhere else in your code base, that is missing those updates. So you require the discipline just like CSS to keep things up to date.

You solve these problems by creating abstractions in JavaScript (most likely react components), exactly the same way you'd solve any other sort of code duplication.

By using tailwind (or inline styles), you go from two system of abstraction (CSS, JavaScript) to one (just JavaScript).


If you're using JS for any kind of "components", you can use JS for scoped CSS too.

This is technically true, but misses the point. Tailwind classes are fine grained utility classes, the fact that they are CSS classes at all is pretty much an implementation detail.

Compare tailwind classes to bootstrap classes and you'll see what I mean.


I wish the site showed information even on mobile/non chrome browsers.

Updated to have info on mobile. Thanks for the feedback!

It’s working here on iOS safari.

Not on my iOS safari

Yea, there is quite a lot of survivorship bias in this comparison. "People who succeeded at controlling hunger and improving diet" vs "People who stopped taking their medicine". It is very unsurprising.

Where do you see that they are comparing "people who succeeded" in the study?

I'm not the best at reading medical studies, but it seems to me like they are taking averages over all subjects in the randomized controlled trials, not just "successful" subjects.


You can't regain weight without having lost it first.

A "fair" comparison would be to compare weight gain of people who lost weight naturally, with Ozempic users who _would have_ lost weight naturally, but it's not really possible to know which Ozempic users fall into that category.


The group average can lose weight without every member having lost weight.

The study compared "everyone who did this intervention" vs " everyone who did this other intervention". That seems perfectly fair to me, it's just answering a different question to your proposed comparison.


Lite claims that it can be modified in-place, but I'm curious how that works with variable-length structures like strings?


If the new value is equal size or smaller, it will overwrite the old value in-place. If it is larger, then the new value is appended to the buffer and the index structure is updated to point to the new location.

In the case of append, the old value still lives inside the buffer but is zeroed out. This means that if you keep replacing variable-sized elements, over time the buffer will fragment. You can vacuum a message by recursively writing it from the root to a new buffer. This will clear out the unused space. This operation can be delayed for as long as you like.

If you are only setting fixed-size values like integers or floats, then the buffer never grows as they are always updated in-place.


Interesting. Sounds like you are getting copy-on-write-with-sharing for growing sizes and in-place updates when your data shrinks?


I enjoy programming, sure. But I also enjoy the act of creation, which as others here point out, is usually much more than just programming.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: