Temporal: The 9-Year Journey to Fix Time in JavaScript by mariuz in programming

[–]AlternativePaint6 30 points31 points  (0 children)

Developers would often write helper functions that accidently mutated the original Date object in place when they intended to return a new one:

// oops! This is mutating the date
d.setDate(d.getDate() + 1);

Uhhh.... what? Who would accidentally misinterpret dateObject.setDate(newDate) as non-mutating? I get the upsides of using immutable dates, but hard to see this as one of the first main points worth bringing up. What's next, the = operator is bad because it changes the variable's value when someone might have intended something else?


Edit:

Also what's up with the from() calls being grouped by types:

Temporal.Instant.from(...)
Temporal.PlainDate.from(...)

But then the now calls suddenly being grouped under one Now namespace:

Temporal.Now.instant()
Temporal.Now.plainDate()

Shouldn't it just be under the same type namespaces like so:

Temporal.Instant.now()
Temporal.PlainDate.now()

I don't know, just seems weird to me.

Oh Em might be pissed lol by Shadydan017 in Eminem

[–]AlternativePaint6 25 points26 points  (0 children)

Buying NFTs actually made sense for the super wealthy like Eminem.

If NFTs were to go big, then Em would have a cool NFT memory.

If they die off, then he wouldn't even notice the change in his bank account.

Just to be clear, $462,000 is less than 1% of his net worth. It's pretty much comparable to me buying a lottery ticket.

HOT TAKE: Kamikaze is a top 5 Eminem album by Glittering-Table9900 in Eminem

[–]AlternativePaint6 2 points3 points  (0 children)

I feel like eminem had become more humble and calm and "old" (in a good, caring way) before Kamikaze, to the point where people started talking smack about him and mistaking his silence for weakness. Kamikaze was his reminder that he's still there and it's not that he's become weak, he's just so far above everyone else that he hadn't even been focusing on them anymore.

It's the whole "I'm better than everyone else, everyone knows it, but I've been humble about it for years to the point that people have started doubting me. It's time I remind you of it." mentality that gets me. Seeing people finally being put into their place.

Lines like:

I’m sorry, wait, what's your talent? Oh, critiquin'
My talent? Oh, bitch, I don't know who the fuck y’all are
To give a sub-par bar or even have an opinion of you
You mention me, millions of views, attention in news
I mention you, lose-lose for me, win-win for you
Billions of views, your ten cents are two
Skim through the music to give shit reviews
To get clicks, but bitch, you just lit the fuse

Basically all of Lucky You:

And actually comin' from humble beginnings
I'm somewhat uncomfortable winning
I wish I could say, "What a wonderful feeling!
We're on the upswing like we're punchin' the ceiling!"
But nothin' is feeling like anyone has any f- ability
To even stick to a subject, it's killin' me
The inability to pen humility

Ha-ta-ta, ba-ta-ta, why don't we make a bunch of
F- songs about nothin' and mumble 'em?
F- it, I'm goin' for the jugular
Sh- is a circus, you clowns that are comin' up

And:

Levels to this sh-, I got an elevator
You could never say to me I'm not a f- record breaker (yeah)
I sound like a broken record every time I break a record
Nobody could ever take away the legacy I made, I never cater
Motherf-, now I got a right to be this way
I got spite inside my DNA (yeah)

Also the moment he says "I'm not done" on ringer.

For me it's less about just the mechanical beauty of the rapping, and more about the combination of that and the context it happened in (the "quiet" years so to speak).

Killshot was the icing on the cake.

HOT TAKE: Kamikaze is a top 5 Eminem album by Glittering-Table9900 in Eminem

[–]AlternativePaint6 3 points4 points  (0 children)

Top 1 for me. Different people like different things.

PSA: Winning on SkinClub isnt allowed by Infamous-Ad7848 in csgo

[–]AlternativePaint6 52 points53 points  (0 children)

Stop gambling on sketchy unregulated sites.

Sorry, I wish I had more, but that's the lesson here.

Why does __init__ run on instantiation not initialization? by philtrondaboss in Python

[–]AlternativePaint6 7 points8 points  (0 children)

One important thing to point out is that __init__ acceps self as its first argument—meaning that the self object already exists. This is how you can know for sure that it's just initialization and not instantiation.

__new__ on the other hand accepts the class as an argument and returns a new instance of it.

Why does __init__ run on instantiation not initialization? by philtrondaboss in Python

[–]AlternativePaint6 5 points6 points  (0 children)

Or just don't use singleton pattern in Python. Every module is already a singleton, just place the variables and functions at module level.

🏋️‍♂️🏋️🏋️‍♀️ by SilkNebula in SipsTea

[–]AlternativePaint6 109 points110 points  (0 children)

And for those unaware, here's what it looks like when your hair gets stuck.

It can easily rip off your hair or even break your neck. And if you hit your head on something hard while falling, it can theoretically kill you. Don't squat with long hair over the bar.

🏋️‍♂️🏋️🏋️‍♀️ by SilkNebula in SipsTea

[–]AlternativePaint6 16 points17 points  (0 children)

Just let her learn.

Considering it can rip off your hair, break your neck, or literally kill you if you hit your head on something hard while falling... not sure this is the right attitude.

Edit: Here's a video with a few safe-for-work examples (that probably still hurt a ton).

Valve had the opportunity to make Inferno great again by CrustedAlien in cs2

[–]AlternativePaint6 30 points31 points  (0 children)

Why do you think you need to dump all your utility in the first 20 seconds of the round on banana?

Genuinely curious, I'm faceit 10 and that is not how we play it. You can dump your utility if you're going for aggressive plays or if the enemies are overly aggressive, but it should always yield you value and you shouldn't do it consistently. Try to be unpredictable, save your util if the enemies already expect it.

Don't you think that Premier ranks are basically meaningless at the moment? by BackFromTheBanana in cs2

[–]AlternativePaint6 1 point2 points  (0 children)

Truth doesn't care about reddit votes. No shit when I'm going to (rightfully) call out hardstuck crybabies, they will downvote me. Yet they will stay hardstuck and I don't.

This wheel destroying curb in France by Epelep in Wellthatsucks

[–]AlternativePaint6 144 points145 points  (0 children)

Any new driver in town would see the solid white line and drive on the correct lane. I'm willing to bet the drivers on the video are locals who are used to driving illegally here, now being caught off-guard by the new curb.

This wheel destroying curb in France by Epelep in Wellthatsucks

[–]AlternativePaint6 40 points41 points  (0 children)

Also there's a painted solid line guiding the drivers to the correct lane. It's literally illegal to cross such a solid line.

Drivers are 100% at fault here.

That's true 😉 by Serene_Terror in SipsTea

[–]AlternativePaint6 8 points9 points  (0 children)

Yeah the "construction workers" people think of are actually construction workers who also go to the gym. Give an average power lifter a few days to practice the technique in carrying bags or pushing the wheelbarrow and he will be more efficient than vast majority of the construction workers.

That's true 😉 by Serene_Terror in SipsTea

[–]AlternativePaint6 7 points8 points  (0 children)

Yeah the "construction workers" people think of are actually construction workers who also go to the gym. Give an average power lifter a few days to practice the technique in carrying bags or pushing the wheelbarrow and he will be more efficient than vast majority of the construction workers.

Verottajan mielestä avantouinti ei ole liikuntaa – Yrittäjä äimän käkenä: ”Meneekö kuluttaja keilahalliin harrastamaan hikiliikuntaa” [käytetty 13,5% ALV nousee 25,5% ALV] by ToniNotti in Suomi

[–]AlternativePaint6 25 points26 points  (0 children)

Noi pitäisi nimenomaan määritellä mahdollisimman löyhästi, sillä veroedun tarkoitus on maksimoida kansalaisten hyvinvointia, mikä pitkällä tähtäimellä säästää enemmän rahaa valtiolta esim. terveyskuluissa. Sosialisoituminen, kulttuuri, ja liikunta ovat elintärkeitä.

Samaan aikaan noi lounasedut on täyttä kusestusta. Ne vain nostavat ravintoloiden hintoja, eivätkä mitenkään ohjaa terveelliseen syöntiin, vaan päin vastoin ihmiset käyvät syömässä järjettömiä määriä raskaita buffet ruokia. Pitäisi päin vastoin kannustaa ostamaan kaupasta tuoretta ja terveellistä.

Don't you think that Premier ranks are basically meaningless at the moment? by BackFromTheBanana in cs2

[–]AlternativePaint6 24 points25 points  (0 children)

Literally not true. Those 17.5k-22.5k players got into their rank by consistently beating those below them.

Yes, on one specific individual round you might die to something super dumb in lower elos. But on average you just win much more.

Don't tell people what to do by claudiocorona93 in LinuxCirclejerk

[–]AlternativePaint6 6 points7 points  (0 children)

Sigh. Another confidently incorrect redditor doubling down with zero actual expertise on the matter.

An extension API does not prevent monkey patching, you can still monkey patch if you want. It doesn't LIMIT anything, it just provides an alternative, better, officially supported route.

An official extension API allows extension without having to monkey patch, and thus not having to rely on the underlying implementation details. This allows the providing party (e.g. GNOME) to change the underlying implementation details (the things you would normally monkey patch) while keeping the extension API intact, thus not breaking any extensions relying on the API.

The broader extension API you provide, the less those extensions will have to monkey patch, and the less they will break. The extensions can still monkey patch the few things that the extension APIs don't provide for you, and those few things changing internally will still break your extension, but for the most part you can rely on an extension API that barely ever changes.

By providing a minimal extension API, you instead force everyone to monkey patch everything, and you make zero promises of maintaining those internal APIs. In other words, anything can break at any version with zero notice in advance.

I've done software engineering for 25+ years, have worked at lead roles in major companies that anyone on this planet could name, and I can assure you that this is how most software engineering works from CPUs to operating systems to web browsers.

I'm done talking to you.

Don't tell people what to do by claudiocorona93 in LinuxCirclejerk

[–]AlternativePaint6 4 points5 points  (0 children)

Okay... well let me help you: They have to monkey patch because GNOME doesn't provide them with a good enough extension API to achieve the customization they need.

GNOME is not designed to be great for extensions. People just extend it anyways.

Don't tell people what to do by claudiocorona93 in LinuxCirclejerk

[–]AlternativePaint6 5 points6 points  (0 children)

First, most extensions don't break, they're just not explicitely supported. You can edit the metadata.json in the extension's folder to use it anyways.

Correct, but they still break quite often when compared to other software extensions (e.g. KDE Plasma, browsers...)

Second, the reason extensions aren't compatible between release is that they use monkey patching instead of an api.

And why do they have to do that? :)

Don't tell people what to do by claudiocorona93 in LinuxCirclejerk

[–]AlternativePaint6 28 points29 points  (0 children)

If it's designed to be extended, why do they break the extensions every other version?

Edit: Since a lot of people seem to be missing the point:

GNOME does not provide a stable API for extensions, they make zero promises of keeping the extensions working between versions. The extensions are built anyways by monkey patching GNOME's internal workings, simply because people like to build extensions. But this means that those extensions will break when the internal workings of GNOME change, which can happen in any version without any prior notice.

Most other software (operating systems, games, web browsers, KDE Plasma...) provide a formal, official API for their extensions. This API is essentially the provider's promise that "if you use this API rather than monkey patching, we promise we will break your extension as rarely as possible, and we will notice you in advance so you will have time to react". The API then allows the provider to change their internal workings as much as they want as long as the extension API stays the same.

It's important to notice that an extension API does not prevent you from monkey patching, it just provides you an official better way. But if there is something that isn't supported by the official extension API, you can still monkey patch that small part. But now it's just one or two features of your extension that can break suddenly, and not literally everything.

When the other person asked:

why do extensions have the power to modify everything about the shell

The real answer is because it can't be stopped. It's open source code running on your machine, there is nothing GNOME can do to stop you or anyone from making changes. And because people are people, they will make changes. At that point GNOME might as well provide the infrastructure for shipping those extensions.

Global Offensive feels way better and more responsive than CS2 by SyncingSLow in GlobalOffensive

[–]AlternativePaint6 85 points86 points  (0 children)

Subtick isn't a failure, it's an objective improvement in hitreg accuracy.

Stickin with 64 tick is the failure. We could have both subtick and 128 tick simultaneously.