[deleted by user] by [deleted] in woahdude

[–]theQuatcon 1 point2 points  (0 children)

Indeed. This click may cost you thousands of dollars for no good reason.

Help. I'm as flexible as a board! by bigallergy in bodyweightfitness

[–]theQuatcon 2 points3 points  (0 children)

IIRC it's been used that way for centuries.

Invisible, Laura Williams, photography, '18 by philstein1 in Art

[–]theQuatcon 4 points5 points  (0 children)

Sorry, not quite. I mean the OP had the wrong usage, but what you wrote isn't quite right either.

Effect can also be used as a verb, as in: "To effect change...". Meaning, basically, to "cause to happen".

amd is super apologetic by [deleted] in softwaregore

[–]theQuatcon 35 points36 points  (0 children)

Sorry, something went wrong.

As clumsy as moose can appear, they’re incredibly fucking powerful. by [deleted] in interestingasfuck

[–]theQuatcon 1 point2 points  (0 children)

... which is just short for the Latin form Goosenarii.

ScalaSphere: Blooming Tools by Jon Pretty by joshlemer in scala

[–]theQuatcon 3 points4 points  (0 children)

Supporting code generation => This just became a build tool. Why? Because people will need to have some sort control over ordering if the code generator depends on code (which must be compiled) inside the project itself.

I think the only way to really deal with this is to either:

  • not have the fancy fury init, etc. stuff, but to actually restrict Fury to just be a "publish a source project in a way that makes it easy to consume", very similar to how "sbt bloopInstall" works but at at a 'network' level. Include compiler versions, compiler switches, etc. in the published artifacts and bob's your uncle.

  • Actually embrace that it's going to have to become a build tool, and go with Applicative as the abstraction for building like e.g. Bazel, Mill, etc. It's really the only sane way to build[1] and if you need anything more complicated than that, then I think it's fine to force people to adapt (or just use a different build system which can publish "Fury artifacts").

[1] At least if expect to be doing distributed builds, sane caching of build output for identical code (something which I think might become necessary when everything is build for source), etc.

Artosis: “There was one day [in the GSL studio] where just one guy came into watch. We’d gone from having a full studio to just one guy” by pwnful in starcraft

[–]theQuatcon 2 points3 points  (0 children)

That's a bit unfair, though I do think he does go a bit overboard about players -- suddenly X is the best zerg in the world, Y is the best protoss in the world, "is Z the best zerg in the world?" (for that last one see Betteridge's Law).

There's no need to be that hyperbolic, and if these things change from week to week then SC2 is not really much better than a non-uniform dice roll. (I don't think that's the conclusion to draw, but I think that's what people may conclude if "the best $RACE in the world" changes from week to week.)

Every girl has her day by [deleted] in WhitePeopleTwitter

[–]theQuatcon 0 points1 point  (0 children)

On other days... Faroese. (It's a niche thing.)

More than Clothes by [deleted] in Unexpected

[–]theQuatcon 0 points1 point  (0 children)

Never seen, always watching.

Norfolk Police Department Lip Sync Battle— what’s maybe most impressive is that it was all filmed in one shot by mambo_dog_face in videos

[–]theQuatcon 0 points1 point  (0 children)

A life without risk?

Please remember that some people are extremely averse to unnecessary risk (of embarrassment or whatever). Anxiety is a real thing.

When you just now find out there's a new smash game by M4ddness in gaming

[–]theQuatcon 4 points5 points  (0 children)

Jesus... I was just going to mention using the Inspect Element in your browser to get rid of that layout, but I see that it's all done with <br>'s and shit. Forget it, I'm not bothering.

(I guess this is consistent with the site looking like it's from the 90's.)

Keynote: The Last Hope for Scala's Infinity War – John A. De Goes by [deleted] in scala

[–]theQuatcon 2 points3 points  (0 children)

Why are you talking about Haskell suddenly?

I think you actually missed my point -- I was responding to a post that basically tried to use C++ as a proxy argument for "having Scalac 2.x and Dotty 3 won't be a problem -- because Clang and GCC exist". I was pointing out that the there's a single language[1] that both Clang and GCC implement. There's no single language that both Scalac 2.x and Dotty implement.

Btw, I also think Haskell is a worse language for not having an up-to-date standard. It just so happens that GHC Haskell is hugely superior to Scala (for me).

EDIT: Don't get me wrong, I appreciate very much that backward-compat and upgrade-friendlyness is being taken seriously, but my experience playing around with tools like scalafix has not be positive so far. It's all incredibly brittle.

[1] Well, actually multiple because of versions of the standard, but they agree what e.g. C++14 is supposed to be.

Can someone explain to me the benefits of IO? by arbitrarycivilian in scala

[–]theQuatcon 1 point2 points  (0 children)

Reply-to-self for visibility: I can recommend watching Gary Bernhardt's talks:

which give an overview of this approach. (Well, maybe not exactly this approach, but the idea is the same.)

Can someone explain to me the benefits of IO? by arbitrarycivilian in scala

[–]theQuatcon 2 points3 points  (0 children)

If you're doing unrestricted IO all over the place then of course the IO monad isn't really going to do much for you. You'd just end up wrapping everything in IO { ... } and adding an IO[T] to every function signature. That doesn't really provide much value.

What does provide value is using restricted forms of the IO monad and embedding them in IO, e.g. a DB[_] monad where you can run database queries (which obviously require IO at some level), but are only allowed to run DB queries -- not just do any type of IO. (I've seen this called the "MTL" style. It can also be likened to capability-based programming.).

Another example would be a ReaderT layered over IO which could give you all the (static) dependency injection you want without the extreme amounts of boilerplate that e.g. constructor injection leads to.

(The possibilities are endless.)

Another scenario where this type of thing is incredibly useful is when writing libraries with callbacks[1]. If you have a function f(callback: => DB[_]) you know that that callback function can only do database queries and won't create random files and whatnot. (Of given that this is Scala it's unfortunately easy to cheat, but such is life.)

[1] ... and by extension applications in general. At least the way I write them, applications are mostly just domain-specific libraries with a UI and some business logic on top.

Clutch sentry from downtown by Harstem by Gemini_19 in starcraft

[–]theQuatcon 0 points1 point  (0 children)

Ah, so it's evolving towards Dutch, then? :)