There have been multiple accounts created with the sole purpose of posting advertisement posts or replies containing unsolicited advertising.

Accounts which solely post advertisements, or persistently post them may be terminated.

programmer_humor

This magazine is from a federated server and may be incomplete. Browse more on the original instance.

Pyro , (edited ) in Positive Affirmations for Site Reliability Engineers

It’s always a good day when Krazam uploads.

I just wish it was more than twice a year.

Ephera , in Stop using floats

I have been thinking that maybe modern programming languages should move away from supporting IEEE 754 all within one data type.

Like, we’ve figured out that having a null value for everything always is a terrible idea. Instead, we’ve started encoding potential absence into our type system with Option or Result types, which also encourages dealing with such absence at the edges of our program, where it should be done.

Well, NaN is null all over again. Instead, we could make the division operator an associated function which returns a Result<f64> and disallow f64 from ever being NaN.

My main concern is interop with the outside world. So, I guess, there would still need to be a IEEE 754 compliant data type. But we could call it ieee_754_f64 to really get on the nerves of anyone wanting to use it when it’s not strictly necessary.

Well, and my secondary concern, which is that AI models would still want to just calculate with tons of floats, without error-handling at every intermediate step, even if it sometimes means that the end result is a shitty vector of NaNs, that would be supported with that, too.

Lmaydev ,

Nan isn’t like null at all. It doesn’t mean there isn’t anything. It means the result of the operation is not a number that can be represented.

The only option is that operations that would result in nan are errors. Which doesn’t seem like a great solution.

Ephera ,

Well, that is what I meant. That NaN is effectively an error state. It’s only like null in that any float can be in this error state, because you can’t rule out this error state via the type system.

Why do you feel like it’s not a great solution to make NaN an explicit error?

CapeWearingAeroplane ,

Theres plenty of cases where I would like to do some large calculation that can potentially give a NaN at many intermediate steps. I prefer to check for the NaN at the end of the calculation, rather than have a bunch of checks in every intermediate step.

How I handle the failed calculation is rarely dependent on which intermediate step gave a NaN.

This feels like people want to take away a tool that makes development in the engineering world a whole lot easier because “null bad”, or because they can’t see the use of multiplying 1e27 with 1e-30.

Ephera ,

Well, I’m not saying that I want to take tools away. I’m explicitly saying that a ieee_754_f64 type could exist. I just want it to be named annoyingly, so anyone who doesn’t know why they should use it, will avoid it.

If you chain a whole bunch of calculations where you don’t care for NaN, that’s also perfectly unproblematic. I just think, it would be helpful to:

  1. Nudge people towards doing a NaN check after such a chain of calculations, because it can be a real pain, if you don’t do it.
  2. Document in the type system that this check has already taken place. If you know that a float can’t be NaN, then you have guarantees that, for example, addition will never produce a NaN. It allows you to remove some of the defensive checks, you might have felt the need to perform on parameters.

Special cases are allowed to exist and shouldn’t be made noticeably more annoying. I just want it to not be the default, because it’s more dangerous and in the average applications, lots of floats are just passed through, so it would make sense to block NaNs right away.

gandalf_der_12te ,

What do you do about a dataset which contains 11999 fine numbers, but one of them is NaN because George called in sick that week? Throw away the whole dataset because it doesn’t fit the data type?

gandalf_der_12te ,

idk if you ever had to actually work with floats,

but in statistics, you deal with NaNs all the time. Data is absent from the data set. If it would be an error every time, you wouldn’t get anything done.

Kissaki ,

It doesn’t have to “error” if the result case is offered and handled.

Lmaydev ,

Float processing is at the hardware level. It needs a way to signal when an unrepresented value would be returned.

Ephera ,

My thinking is that a call to the safe division method would check after the division, whether the result is a NaN. And if it is, then it returns an Error-value, which you can handle.

Obviously, you could do the same with a NaN by just throwing an if-else after any division statement, but I would like to enforce it in the type system that this check is done.

Lmaydev ,

I feel like that’s adding overhead to every operation to catch the few operations that could result in a nan.

But I guess you could provide alternative safe versions of float operations to account for this.

Ephera ,

I would want the safe version to be the default, but yeah, both should exist. 🙃

xmunk ,

I agree with moving away from floats but I have a far simpler proposal… just use a struct of two integers - a value and an offset. If you want to make it an IEEE standard where the offset is a four bit signed value and the value is just a 28 or 60 bit regular old integer then sure - but I can count the number of times I used floats on one hand and I can count the number of times I wouldn’t have been better off just using two integers on -0 hands.

Floats specifically solve the issue of how to store a ln absurdly large range of values in an extremely modest amount of space - that’s not a problem we need to generalize a solution for. In most cases having values up to the million magnitude with three decimals of precision is good enough. Generally speaking when you do float arithmetic your numbers will be with an order of magnitude or two… most people aren’t adding the length of the universe in seconds to the width of an atom in meters… and if they are floats don’t work anyways.

I think the concept of having a fractionally defined value with a magnitude offset was just deeply flawed from the get-go - we need some way to deal with decimal values on computers but expressing those values as fractions is needlessly imprecise.

RustyNova ,

While I get your proposal, I’d think this would make dealing with float hell. Do you really want to .unwrap() every time you deal with it? Surely not.

One thing that would be great, is that the / operator could work between Result and f64, as well as between Result and Result. Would be like doing a .map(|left| left / right) operation.

Ephera ,

Well, not every time. Only if I do a division or get an ieee_754_f64 from the outside world. That doesn’t happen terribly often in the applications I’ve worked on.

And if it does go wrong, I do want it to explode right then and there. Worst case would be, if it writes random NaNs into some database and no one knows where they came from.

As for your suggestion with the slash accepting Results, yeah, that could resolve some pain, but I’ve rarely seen multiple divisions being necessary back-to-back and I don’t want people passing around a Result<f64> in the codebase. Then you can’t see where it went wrong anymore either.
So, personally, I wouldn’t put that division operator into the stdlib, but having it available as a library, if someone needs it, would be cool, yeah.

harry315 , in Normal day in the life of a developer

<span style="color:#323232;">myList = list(
</span><span style="color:#323232;">    78,
</span><span style="color:#323232;">    99,
</span><span style="color:#323232;">    15,
</span><span style="color:#323232;">    78,
</span><span style="color:#323232;">    03,
</span><span style="color:#323232;">    22,
</span><span style="color:#323232;">    12,
</span><span style="color:#323232;">    73
</span><span style="color:#323232;">)
</span>
JargonWagon ,

Nice try, you clearly googled to make this /s

Randelung , in Every language has its niche

Goddammit, I’m feeling for an anthropomorphic programming language that I don’t even know.

blargerer , in STOP USING GITHUB

Jokes on you, I just never stopped using SVN out of laziness.

DacoTaco ,
@DacoTaco@lemmy.world avatar

Jokes on me for saying github != git though

itsnotits ,

Joke’s* on me

(Short for “The joke is on me”.)

cupcakezealot ,
@cupcakezealot@lemmy.blahaj.zone avatar

everyone knows the proper place for code is stuffing it into a trunk

herrcaptain ,

I just store mine in memory (meat memory, not the computer stuff). If someone wants the source code I just tell them. Version control by oral tradition.

MostlyBlindGamer ,
@MostlyBlindGamer@rblind.com avatar

You joke, but that’s how a lot of the stuff I work on is documented. Passed along from one developer to the next - legends, really.

PlasterAnalyst ,

The year of the punch card desktop.

itsnotits ,

Joke’s* on you

(Short for “The joke is on you”.)

Kyatto , in Hey, I'm new to GitHub!
@Kyatto@leminal.space avatar

Me when I have to do anything other than copy and paste build, or package manager, commands /s

GluWu , in More believable for a Linux OS

Fuck off, I know what I’m doing.

Omg someone please help how did I get this far they’re going to realize I’m stupid when they fire me everything will collapse because it’s all in a single excel file I need to figure out how to live in a tent in the woods and hunt and forage

MajorHavoc , in I had to design a simple general purpose language for university, so I tried creating "ZoomerScript" with Jetbrains MPS

It’s so beautiful!

Now I’m thinking about how to alias “flex X on the haters” into other development environments…

ExperimentalGuy , in Fuck this. I am creating a new language. Some guy in 2006.

What happened

Finadil ,

OP commented if you didn’t notice:

For those who don’t know, Graydon Hoare created rust language after seeing memory bug on out of order elevator.

ExperimentalGuy ,

Oh I commented before that my b

Finadil ,

Yeah, I noticed the times, that’s why I was letting you know. 😁

noodlejetski , (edited ) in FLOSS communities right now

every time I run into an issue with Proton-GE it makes me angry again: github.com/GloriousEggroll/proton-ge-custom?tab=r…

Potatos_are_not_friends ,

Unpopular opinion:

For a open source project like the above which has so many constant moving parts, a discord is probably a good idea to ensure the author of the issue can provide more details about their problem and respond to follow up immediately.

Because I can absolutely see a breaking change involving something outside of the open-source project itself.

I say that as a person who hates discord. But I’m also part of the older generation so waiting 3-9 months for a reply is kinda normal. And the projects I support, it’s pretty common to make a merge request that finally gets approved a two years later.

noodlejetski ,

to ensure the author of the issue can provide more details about their problem and respond to follow up immediately.

if you actually visit that Discord (like I reluctantly do, from time to time), you’ll find that all issues are being discussed in a handful of general channels with multiple people discussing multiple issues at the same time in one never-eding stream of messages. if you miraculously find a proper keyword that brings up someone else having the same issue as you do, the only way to find if someone else replied to it is by scrolling through all that noise.

kurwa ,

Discord has like a Q/A section now doesn’t it? That should definitely be utilized more than the chat portion for projects like this.

tonkatwuck ,

You mentioned “keyword”, are you aware of the search feature in discord?

noodlejetski , (edited )

yes, I’m aware of how absolutely useless it is.

Evil_Shrubbery , in It's not DNS

Literally this, literally today.

subtext ,

Same here, quite literally this morning, it was fucking DNS

Evil_Shrubbery ,

Those little bastards, so sneaky. I’ve checked if d(uck)dns is working before my local DNS.

cm0002 , in We are not same

I don’t think that will have the impact people think it will, maybe at first, but eventually it’ll just start treating “wrong” code as a negative and reference it as a “how NOT to do things” lmao

Nighed ,
@Nighed@sffa.community avatar

It needs to understand that that code is bad to be able to do that though

cm0002 ,

For sure, but just like that whole “poison our pictures” from artists thing, the people building these models (be it a company or researchers or even hobbyists) are going to start modifying the training process so that the AI model can recognize bad code. And that’s assuming it doesn’t already, I think without that capability from the getgo the current models would be a lot worse at what they generate than they are as is lmao

FaceDeer ,
@FaceDeer@kbin.social avatar

That's just a matter of properly tagging the training data, which AI trainers need to do regardless.

Rindel , in Bartender Qualifications

I might be missing the joke, but Bartender is actually a real program for managing barcode readers!

____ , (edited )

Are they based out of the PNW? Now that I think about it, I may actually have interviewed with them at one point.

ETA: Yeah, pretty sure it was them, they’re PT and have a 425 DID for sales, and the company name is wholly unrelated to the product. Had forgotten about them entirely, and would have had the same reaction as OP to getting that email now.

And it probably is the sw product the email was referencing, since Bartender is capitalized.

Natanael ,

All of those qualifications require that you can handle a cascade of requests and manage tables

iAvicenna , in What if we added a social component like "Stories" to this calculator app?
@iAvicenna@lemmy.world avatar

the CEO has read in this obscure online tech blog that …

Sprokes , in Every Family Dinner Now

Didn’t ChatGPT become very bad recently? It used to give really working code but now it gets things wrong and doesn’t follow context. It gives code but when you ask it to improve by give more context, it ignores the previous answer and give wrong code.

It even sometimes answers by saying it does not have the answer for questions that it answered few months ago.

anus ,

The latest update from openai calls this “laziness” and discusses a fix coming

PopShark ,

Whoa really? AI “laziness” is actually a really interesting concept imo

Evotech ,

Last time I asked a niche api question it showed me how to formulate the question so I could post it on this GitHub issues…

Edit

https://lemmy.world/pictrs/image/cb6cad7c-f0bf-47f5-b79a-bfa8dcf0ecfa.png

Clent ,

How is that a niche api question? That’s a public api that is scraped up.

It’s also a terrible way to ask the question. It’s how a clueless newb asks questions. Anyone hoping to help needs to at least know: What are you attempting to use the end point for and What results are you receiving vs expecting?

Black616Angel ,

Also also it told him to include the API key and used v3 in the URL.

LemmyRefugee ,

It is a perfect example of why you still need good programmers, that know what/how to ask.

RedstoneValley ,

That looks like advice on how NOT to ask for technical support on a public forum.

  1. Be generic and vague. Omit as many details as possible, this will only distract from the problem at hand.
  2. remember to include your private API key to share it with the world.
explodicle ,

I keep telling the stupid thing to stop wasting time and space apologizing, and it won’t.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • [email protected]
  • random
  • lifeLocal
  • goranko
  • All magazines