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

I have 2 better ideas;

1. Start charging money for/of deprecated APIs. Just like Oracle did it with Java 8.

- OR -

2. Add a timestamp-based RuntimeException to the very same code-path. If the date is greater than (>) the deprecation date, simply throw RuntimeException. for 100% of the requests, all the time.

Yes, it will page someone, and yes, it will get fixed immediately!


The post is a sarcasm, see the below.

Love this idea, as it is already implemented in a $FAANG company tool. (used company wide by 80k+ SDEs). I got used to seeing these in the logs and terminal. So much that my brain now automatically ignores it from my view/seeing like it does for my nose.

Static Typing != Strongly Maintained Relationships.

While I am happy to see types in Python and Javascript (as in Typescript) I see far more issues how people use these.

In 99% of the time, people just define things as "string" or if doesn't cover, "any". (or Map/Object etc)

Meanwhile most of these are Enum keys/values, or constants from dependencies. Whenever I see a `region: string` or a `stage: string`; a part of me dies. Because these need to be declared as `region: Region` or `stage: Stage`. Where the "Region" and "Stage" are proper enums or interfaces with clear values/variables/options. This helps with compile (or build) time validation and checking, preventing issues from propagating to the production (or to the runtime at all)...


No worries, they will also introduce an AI "rephrase" (no way to opt-out) which will "translate" these in real-time!

This was one of the best & heartfelt blog posts I have read on the HN so far.

I can relate because of 2 things; 1. I also played a lot of legos during my childhood & loved it. 2. I have a similar "preference" on configurations & shell-profile. (ie. overall setup)

At work, I am the only person who has a personal configuration & automation package (ie. dotfiles) at my director's level organization. (Maybe there is another one or two at most)

Not only that, I also have a nearly complete automation to provision a new machine, virtual or otherwise using the same code. (usually maintained by make && make install)

I update things regularly. It has bunch of "utility" scripts. As it being a $FAANG company, once in a while, here and there, people stumble on scripts/solutions/docs (also markdown). There were even occasional CRs (code-reviews / pull-requests) I received.


I agree for internal names but disagree for public software/external names.

I disagree for public/open-source software, because: So many kinds of software actually have good names. Yes they use mythical names but with the similar function or relatedness.

Meanwhile, I agree for internal names, because: So many (legacy) code I worked with had terrible naming. This goes beyond only the names themselves but also their capitalization or consistency. I kid you not, in a $FAANG company I saw "SpidermanActivity" and "BatmanActivity" on a system that is used by Tier-1 services' on-calls.

> (Although this thing was not a Tier-1 service, it was not also completely Tier-2 either, as it was actively supporting operations of Tier-1 services, depending on the incident, a downtime could cause significant problems...)

Imagine you are trying to make sense of a large system, which has maybe tens of dependencies and as much of dependents, you are also trying to remember which API was Spiderman and how it related to the business at all...

More on the naming conventions, the horrible case of acronyms (which spans outside of software engineering) and PMs creating polls/surveys for "fun names for our new shiny thing that does X but we don't wanna call it that".

Going even lower-levels, engineers themselves are not careful. I had way too many CDK stacks named with not only varying dash vs underscore differences, but also with subtle "case-sensitivity" differences.

Each year, I am solving issues of Java devs' issues. Some of being "but it works on my machine" type of problems. And significant percentage of that is most developers use a Mac & macOS. Hence the filesystem is case-insensitive by default. But the deployment target & CI being a Linux, filesystem is case-sensitive. As you can see here, The camel-case combined with inattentiveness can simply cause many hours of waste.

> It's a plague.

Yes, there is an AI slop, but there is also human sloppiness too. I am quite happy with LLMs/GenAI that it is able to catch and capture these and less prone to make such sloppiness in the first place. (As it being a "predictive-text engine", next word suggestion is a clone of existing copy of historically occurring words)

At the same time, amount of "hallucinations" for various acronyms are staggering. Obviously I cannot expect otherwise. Even as a human, if I am missing the context, I would be either confused or plug-in something I already know...


Amazon ($AMZN) has moved to M365 in an “all-in” fashion just this year. Being maintained an old (2016?) on-premise exchange server and share-point installations for 10 years…

I wonder how it will fit with the “Frugality” LP.


love the hangup part. so, i can finally "rage quit" the meeting that discusses 99th revision of a doc where a comma should be added here or there.


You can quit anyway, just say "I've given you write permission, I trust you"


pkill -9 -f '(chrome|firefox)' is my rage quit, it's like hanging up but hitting the keys on the keyboard as hard as you'd throw the phone down


interesting to see Turkey is leading the list. Although it is well known that Turkey is overall cheap compared to the Europe in terms of basic goods, apparently inflation on the minimum wage is greater than the inflation of the basic goods. However, I would like to note that cheapest of the cheapest things you can get in Turkey will have significantly less quality than European counterparts. Even the "rejects" from EU being sold in internal market. This includes produce with risky levels of GMO. I think the "Big-Mac Index" would have a comparable result. Just divide minimum wage into how many meals per month (30 days * 3 meals-per-day = 90 meals-per-month) times Big-Mac price. (~6 euros?). So, 540 euros. Given ~12.82 euros minimum wage in Germany (gross), you gotta work 540 / 12,82 = ~42,122 hours per month. Which slightly above 1 week given 40h work-week or the "German" way, ~6 days with 35h work-week...


Turkey topping the “fewest hours” list doesn’t mean “everything is great”; it just means that for a single renter the price of a minimal basket divided by typical local net hourly pay is low in time terms. We’re measuring affordability in hours, not product quality.

Quality: Out of scope here. The basket is priced to minimal staples (rent, basic utilities, staple groceries, local transit). We’ll add a “quality bands” sensitivity so readers can see how hours move if you upgrade items.

Big-Mac Index: That’s a tradables proxy and food-only. Our hours include rent + utilities, which usually dominate time cost. Also, you used minimum wage; we use typical/median net hourly pay—minimum-wage calculations will overstate hours vs our method.

Your math note: €540 ÷ €12.82 ≈ 42 hours, but again, that’s food-only and gross wage, so it isn’t comparable to our basket or denominator.

Happy to post Turkey’s component line-items (rent/utilities/food/transit) and the sources in the article for auditability.


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

Search: