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

I can appreciate that Discord is dealing with a lot of sides on this issue, and this response seems well measured with meaningful changes to the roll-out. As someone who has been fretting about replacing Discord communities with an alternative, this makes me feel better over all.


measured and flavorless. As expected of a company trying to IPO.

I know my country is a circus right now, but I haven't forgotten the steps a "civilized" corporation does to creep into your privacy. This is just the first step: "It won't affect most of you don't worry. We pinky promise your data won't leak too".

I'm tired of words. I want actions taken. The current actions is "we will wait until it's too late and disassociate with any 3rd party that gets hacked". Doesn't really help now that my data is out there.


I think Java has plenty of features that end up implicitly banned at least. e.g. you will really never see a `java.util.Vector` in any modern code base. No one `implements Serializable` anymore in practice. `Objects.equals()` and `Objects.hashCode()` get you through 99% of equals/hash code implementations. The list goes on.

I guess the difference is it's rarely "dangerous" or "hard to reason about" using the old features unlike what I see in the C++ list. Java replaces things with better things and momentum shifts behind them kind of naturally because the better things are objectively better.


I always advocate that TODO comments include a link to a ticket tracking the TODO during code review.

It’s easy to get a team to make this 2nd nature and gets immediate debt in the backlog. It can of course still be ignored and unfinished for a long time still but no amount of automated nagging will change that in my experience


Java 8 -> anything 11+ wasn't great at scale. It's been smooth sailing for a long time again though.


What started as a "this should be just a few namespace changes" might have cost thousands of person days in my current job. So many tests red, the whole CI/CD broken, and when all "fixed" and done, there were still some uncaught production bugs haunting us for many months... Simply horrible.

On paper, it really was just a few changes. In practice, it forced a massive transitive dependency and technical debt cleanup for many companies.


Java 4 to 5 was very rough. Sun kept trying to defer major changes, sort of how Elixir claims it is mostly done. But something changed in 5 and the floodgates opened. They made too many changes at once, and so out in the field you would bump into projects stuck on Java 4 even as 6 was in beta. And then 7, and a few past that.


Honest question. Is java whatever version today worth learning again? Java is something I shoved of my life together with the MS stuff and never looked back, but there is still plenty of market for it anyway


I don't remember anything significantly bumpy for about 30 large-ish applications we migrated from 8 to 11, guess the mileage varied. JDK is serious stable stuff.


Uh, wasn't the only breaking change a rename/changed path in some standard lib path?


Deprecations, which also affects libraries, i.e. the dusty one you were chugging along on top of might need to be replaced or adopted because the original maintainer gave up years ago.


Introduction of modules, closing down of APIs that no one should be using, since Java 9 deprecated methods actually get removed a few versions later.

Also breaking changes do happen, see list of removed methods

https://docs.oracle.com/en/java/javase/17/migrate/removed-ap...


On top of that, there was the removal of built-in J2EE; you needed to add external copies of the J2EE pieces, and some of them (like CORBA) weren't available as separate packages. And later versions of these external J2EE packages changed the namespace of all their classes, which is especially painful in Java due to its common use of dynamic loading of classes by name and lazy linking (and lazy linking errors do not inherit from Exception, which allows them to escape from catch-all "catch (Exception e)" clauses). The rest of the ecosystem is starting to depend on these new versions, so staying with old versions of these J2EE packages is not an option.


The fact that Sun never removed any deprecated methods even after they were proven dangerous was a sticking point that generated friction between coworkers over new code using deprecated functionality.


Looking at this in a vacuum, sure maybe it's time to touch grass.

Looking at this in the context of everything else going on in the country, maybe there are a lot of warning signs that are pretty hard to ignore?


Accepting an anonymous and unverifiable characterization of a spreadsheet as evidence of fascism is not justified by other equally specious claims you've accepted as evidence of fascism.


Who is characterizing the other evidence as "equally specious" besides you in this new strawman argument?

Is your position that there are zero reliable indicators that fascism is on the rise in the United States


Notably, a lockfile does not solve this problem either.


True, but the lockfile is imposed at build time. Swapping out the version of a transitive dependency might build totally fine, but also might result is broken behaviour at runtime if the behaviour of the dependency changed.


Less charitable or More cynical? How is Amazon supposed to track a 3rd party pulling their SDK and then reverse-engineering their own service side to work with the SDK? Assuming we're all okay with that premise to begin with, all sorts of other questions start popping up.

Do these 3rd parties get veto power over a feature they can't support?

Can they delay a launch if they need more time to make their reverse-engineered effort compatible again?

It seems a hard to defend position that this is at all Amazon's problem. The OP even links to the blog post announcing this change months ago. If users pay you for your service to remain S3-compatible that seems like its on you to make sure you live up to that promise, not Amazon.

Clicking through to the actual git issues, it definitely seems like the maintainers of Iceberg have the right mental model here too. This is their problem to fix. After re-reading this post this mostly feels like a click-baity way to advertise OpenDAL, which the author appears to be heavily involved in.


Requiring a header "just because you sniffed it to usually be there" is not Amazon being cynical, it's creatively-developing-overly-strict-checks. And it happens on the side of the S3-compatible service.

If your service no longer works with the AWS SDK because you crash at `headers["content-md5"]` just because "it seemed a good way to make things more correct" - it is on you to fix it, IMO.

Like, this changeset https://github.com/minio/minio/pull/20855/files#diff-be83836...

Why does Minio mandate the presence of Content-MD5? Is it in the docs somewhere for the S3 "protocol"? No, it's not. It's someone wanting to "be extra correct with validating user input" and thus creating a subtle extra restriction on the interface they do not control.


I think you misread my response. I think assuming Amazon did this to hurt “s3 compatible” services is cynical. Amazon implemented a feature, well within their rights. Writing a blog post saying they “broke backwards compatibility” is cynical and disingenuous. Amazon never committed to supporting any random use of their SDK.


I did, mea culpa!


Hard agree. If AWS were offering “S3 compatibility certification” or similar I could see framing this as an AWS/S3 problem. This seems like the definition of “S3 compatible” changed, and now everyone claiming it needs to catch up again.


Does 5 of a kind beat a royal straight?


Traditionally, in poker variants with wild cards that enable 5 of a kind hands, it does IIRC beat a royal flush. )"Royal straight" isn't a thing; AKQJT straights are sometimes called "broadway", but they're never distinguished as a separate hand type. Whereas royal flushes do get distinguished from straight flushes, but not for any good reason.)

But all of this is moot because TFA doesn't define "suits" for the "cards" anyway. And of course the relative probabilities do change when you only have 5 ranks. (And we're also effectively "drawing" without replacement; there are an effectively unlimited number of each rank available.)


According to Balatro, it does


If an Uber driver caused you to miss a flight by driving around a parking lot in circles at a speed you can't exit the vehicle, you don't think it would be a reasonable request for the customer to ask Uber to make it right?


Fair enough, there is a difference. But now we are not looking at a missed flight so much as attempted kidnapping or imprisonment or some other much more serious crime. Which is interesting to think about with the Waymo example, but hard to take seriously in the context of the video since the rider declines to do what the customer service rep asks them to do (at least appears to for the sake of producing additional outrage for their video)


Reasonable to make a request. Also reasonable for it to be denied.


it seems important to note that they didn't miss their flight.


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

Search: