Live data from Hacker News

Never update anything

blog.kronis.dev

171–180 of 288 posts

Re: Never update anything

#171

Earlier quoted context omitted.

Easy to blame AWS, but as the post you linked said, Postgres 9.6 is no longer going to be receiving updates from 11 November. What do you want AWS to do here? Keep running software that won't get security updates? That seems a bit wild to me. Communication could have been better, but there is no universe in which a managed database provider should be expected to continue to maintain instances with discontinued versio…

> What do you want AWS to do here? Keep running software that won't get security updates? That seems a bit wild to me. PostgreSQL is open source, so they could keep patching the old version with security fixes. Or... they could keep using just the community-supplied free-of-charge version and pocket all the money from not maintaining security patches themselves.

They are providing easier maintenance and monitoring for open source DBs. You can always avoid RDS and install Postgres manually on EC2, if you so desire.

I'm not saying RDS couldn't be better, but I wouldn't expect them to maintain unsupported versions of 3rd party software.

Re: Never update anything

#172

Earlier quoted context omitted.

Sort of off topic I guess, but: if I wanted to learn react nowadays (coming from extensive backend experience but not much in the front end) where should I start? From ignorance, it seems like react has changed a fair amount during its lifetime, in terms of good practices, features available, etc. Where can one find resources that are both complete for a begginer and not outdated?

create-react—app is a good way to create the necessary scaffolding. There’s an O’Reilly book called Learning React (2nd Edition) which is great. It brings you up to speed on the history of the framework as well.

I can second that book, speaking as someone who also hasn't really programmed in JS in a while.

Re: Never update anything

#173

AWS: “Postgres 9.6 is old. On January 22 we will forcibly update your instances to 12. We hope you noticed this alert. We certainly didn’t email you about this. You’d better get off your ass and test/fix your clients for any potential issues.”

I think they email account owner, because in our case he forwarded it to tech team. So if he would have chosen to not forward it to us, then we could have been in the same situation as you. Just wanted to mention that they actually sent an email about that issue. At least to somebody :D

We did our upgrades few months back (9.6 -> 13) and luckily in our case it wasn't big of a hassle. Just finding out correct upgrade path with Postgis took some investigation, but overall the upgrade documentation was good.

Re: Never update anything

#174

Earlier quoted context omitted.

Because many times security updates are tied to fancy changes nobody asked for but consumers are expecting.

Don't package maintainers for Debian and what not often backport changes without breaking things? I agree that the mental complexity of understanding so many components of software and staying relevant is near impossible, and that is specifically why I try to avoid JavaScript development altogether.

Yesterday, a package (redis-server) for Debian Stretch in non-backports repository was updated, and now relies on a package not present for Stretch (libjemalloc2).

https://packages.debian.org/stretch/redis-server

So much about not breaking things.

Re: Never update anything

#175
post #128

This is only somewhat related, but I wish semantic versioning had settled on four fields instead of three. A transition from 13.1.2 -> 14.0.0 could be a major update that revamps the API, or a tiny incompatible change. Another field at the front would fix this: major.breaking.feature.bugfix. It would help with the "zero-based versioning" problem where projects sit at 0.y.z forever because there's an aversion to frequ…

"Breaking" is undefinable. I remember reading about some user complaining that a small bugfix broke their work setup because it fixed a bug that used to make the CPU go 100% when the spacebar was held. The user would hold it with a weight and get the CPU to make heat that way. The small fix broke his experience.

There are many other examples of this. Breaking compatibility by fixing bugs people rely on for instance.

Any change can break something for a user downstream. It's a very subjective evaluation for the producer to imagine potential impact to their consumers. It's easier if the relationship is rich and exclusive. In open-source where people do it on their free time and have thousands of consumers with widely different interests, it's pretty much impossible to label the release in a way that's conveying the right message to every user.

Semver, the way i see it, is just a way for the producer to subjectively label the amplitude of changes. The consumer should then ideally be familiar with the producer and get a sense of how they work and what they perceive as big. Still at the end of the day it's a very subjective judgment call system that doesn't offer real guarantees to consumers. If your software needs to be stable, don't upgrade, or spend time to review the changes in the dependencies. The version numbers are no guaranty.

Re: Never update anything

#176
post #98

"When your company won't be the first to market, because about 20% of your total development capacity needs to spent on keeping up" In the world of JS and Typescript this ratio looks more like 80%. I swear that node hipsters at my last job spent four out of five of their working days wrangling with dependencies or their transpilers, linters, packagers, bundlers and whatever the hell else needs to happen to actually m…

Do your Java geezers work with Maven? Give me NPM (well, yarn, or pnpm) any day of the week.

Re: Never update anything

#177
I appreciate the contrarian point of view, and I don't want to pick on the author, but this sounds like words of wisdom from someone who doesn't have much real world experience.

I worked in such a project who never upgraded once. And then Specter/Meltdown hit, and we had the mandate to patch all our systems (and the threat was very real). Welcome to a hellish mess of outdated deps that took weeks to sort out.

But is not only me. I watched a talk from a Principal Engineer from Amazon builder tools, and one of their biggest mistakes was not to upgrade often enough, which made each upgrade more painful.

So what do we do now working in multiple, large, multi-year projects?

First, we set tools that tell us when deps are outdated, and alarm when vulnerabilities are found.

Second, upgrading deps is part of the regular dev process. When you make a change, take the chance to upgrade the deps. Vulnerabilities are addressed proactively. The vast majority of times upgrades require no code changes.

Third, we regularly upgrade deps of inactive packages.

Lastly, if a dependency upgrade requires significant work, we create a ticket for it and address it as a new feature. In practice this happens very rarely, so it doesn't disrupt the development process much.

As other's said, the key is to upgrade often, and then it wont be as painful.

Re: Never update anything

#178
post #74

I couldn't help but notice the author's using of i and i'm (note the lower case 'i'). I think i like it! Oh, and pascal is cool too!

i's used to be lowercase back in the day. nobody is certain why they changed to being uppercase but there are some theories that its because 'i' on its own could easily look like it had drifted away from another word or that it could have been made by accident. previously 'i' had been 'ic' or 'ich' so it would have been a lot easier to see.

im not sure i agree with the accident theory though because 'i' looks a lot more deliberate that 'I'

Re: Never update anything

#179
Hilarious post as expected from this camp. But there is some truth to it. Eg we explicitly do the equivalent of apt update -y: apt upgrade -y on our test builds to see update errors early. Only then our work dockers can be upgraded.

Of course those folks don't have these luxuries. npm upgrades without testing, dependency tracking in XML, closed source deps, no symbol versioning, loose dll hell.

But even with simple glibc binaries I have to maintain up-to-date and lts (ie outdated) versions for the recent fstat and time64_t changes. Then you start appreciating go. And podman.

Re: Never update anything

#180

I literally never update anything unless it is not working. Quite happy here with Firefox 66.x on Ubuntu LXDE 14.x, which is what happened to come with this particular device. I have an iPad running iOS 8.x, which I'm also happy with, especially when I do testing on the clusterfucks that are later iOS and Firefox releases. Browsing a handful of reputable text-based websites from behind a NAT, I don't see the problem.…

I really appreciate people like you reminding most everyone that new != better. I live in Japan which people usually mock for still using fax machines, or keeping "the old ways" in many aspect of society.

There are important positive things that people don't realize are lost as we "modernize" society.

For example, these days the TV spies on my usage and sends that data back to the maker company; they will then sell it to advertisers. Every update is aggressively pushed to me, and after i accept it, i notice more ads (rebranded "you may enjoy" or "now trending") on the home screen.

Another example would be how awesome paper is. It displays information without requiring an energy source. It can be folded and unfolded. May not impress you until your phone battery dies on a trip or at the airport/stadium where you need to present your e-ticket

Post reply on HN