Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "arithmetic"
-
TOP 10 PROGRAMMING BEST PRACTICES
#1 Start numbering from 0.
#10 Sort elements in lexicographic order for readability.
#2 Use consistent indentation.
#3 use Consistent Casing.
#4.000000000000001 Use floating-point arithmetic only where necessary.
#5 Not avoiding double negations is not smart.
#6 Not recommended is Yoda style.
#7 See rule #7.
#8 Avoid deadlocks.
#9 ISO-8859 is passé - Use UTF-8 if you ▯ Unicode.
#A Prefer base 10 for human-readable messages.
#10 See rule #7.
#10 Don't repeat yourself.12 -
There are only 1.9999999999999998 types of devs in the world: those who understand floating point arithmetic, and those who use it.4
-
We called it "Project Hindenburg".
A huge planning and logistics app with hundreds of screens and dozens of interwoven subfunctions, suddenly needed to be able to support multiple time zones. Our project was to retrofit every area that touched on dates or times, to allow the user to specify, and work in, any time zone.
At this point in the story I can tell whether you have had to work with time zones in code. People who haven't are butting in with something that begins, "that should be fairly simple, you just need to..." followed by some irrelevant noise that betrays their ignorance.
People who have worked with time zones are nodding in shared pain, like fellow attendees of a survivors meeting.
You see, programmers tend to think of time zones as arithmetic; in reality, they are confusing, ambiguous, chaotic, and individual. You can't translate everything into a central time zone (eg UTC) because you lose the user's intent. For example, if you schedule a meeting for 3pm and then move it to the next day, you want it at 3pm even if the clocks have changed.
Project Hindenburg ended up using the entire development staff of the company for well over a year. It smashed our release projections to rubble, made an already tangled code base completely unmaintainable, introduced mind-bending edge case bugs that reduced staff across the company to tears (literally), and led to most of the mid-level and senior developers eventually quitting (including me).
I am @fuckfuckityfuck, and that was the story of Project Hindenburg.11 -
What is a pointer?
A descriptive and ELI5 answer found on Reddit:
You have a house.
When you’re outside, and you want to go home, you don’t make another house right where you are, because it’s too big for you to carry around or take apart.
So you carry a piece of paper or store on your phone the address of your house. Now you always know exactly how to find your house so that you can go home.
The piece of paper or your phone is a variable.
The variable contains an address (a reference) to your house.
You can make a copy of this piece of paper and hand it out to your friends when you invite them over, instead of building each friend a copy of your house.
You can have an address book filled with pages, where each page is an address (i.e., an array of pointers). Each page you turn (each index you increment) goes to the directly next address-containing variable.
Now if you cut the address book in half along its height, and then attach the lower half behind the upper half, then you have a book with smaller pages but more pages.
You can store phone numbers in this, and even if it’s the same total size, you have double the number of pages and double the number of phone numbers (if you store one number on each page).
Now, since the pointers to home-addresses are different from pointers to phone-numbers, turning the page in an address book (increment pointer by 1) moves forward by one address.
But turning the page in the phone book (incrementing pointer by 1) leads you to the next phone number, even if you technically turned only “half a page”.
That’s how pointer arithmetic works.
Source: https://reddit.com/r/...8 -
Should I ever design a programming language, I'll aim for the golden middle course and let arrays start at 0.5.7
-
I have been gone a while. Sorry. Workplace no longer allows phones on the lab and I work exclusively in the lab. Anyway here is a thing that pissed me off:
Systems Engineer (SE) 1 : 😐 So we have this file from the customer.
Me: 😑 Neat.
SE1: 😐 It passes on our system.
Me: 😑 *see prior*
Inner Me (IM): 🙄 is it taught in systems engineer school to talk one sentence at a time? It sounds exhausting.
SE1: but when we test it on your system, it fails. And we share the same algorithms.
Me: 😮 neat.
IM: 😮neat, 😥 wait what the fuck?
Me: 😎 I will totally look into that . . .
IM: 😨 . . . Thing that is absolutely not supposed to happen.
*Le me tracking down the thing and fixing it. Total work time 30 hours*
Me: 😃 So I found the problem and fixed it. All that needs to happen is for review board to approve the issue ticket.
SE1: 😀 cool. What was the problem?
Me: 😌 simple. See, if the user kicked off a rerun of the algorithm, we took your inputs, processed them, and put them in the algorithm. However, we erroneously subtracted 1 twice, where you only subtract 1 once.
SE1: 🙂 makes sense to me, since an erroneous minus 1 only effects 0.0001% of cases.
*le into review board*
Me: 😐 . . . so in conclusion this only happens in 0.0001% of cases. It has never affected a field test and if this user had followed the user training this would never have been revealed.
SE2: 🤨 So you're saying this has been in the software for how long?
Me: 😐 6 years. Literally the lifespan of this product.
SE2: 🤨 How do you know it's not fielded?
Me: 😐 It is fielded.
SE2: 🤨 how do you know that this problem hasn't been seen in the field?
Me: 😐 it hasn't been seen in 6 years?
IM: 😡 see literally all of the goddamn words I have said this entire fucking meeting!!!
SE2: 😐 I would like to see an analysis of this to see if it is getting sent to the final files.
Me: 🙄 it is if they rerun the algorithm from our product. It's a total rerun, output included. It's just never been a problem til this one super edge case that should have been thrown out anyway.
SE2: 🤨 I would still like to have SE3 run an analysis.
Me: 🙄 k.
IM: 😡 FUUUUUUUUUCK YOOOOOU
*SE3 run analysis*
SE3: 😐 getting the same results that Me is seeing.
Me: 😒 see? I do my due diligence.
SE2: 😐 Can you run that analysis on this file again that is somehow different, plus these 5 unrelated files?
SE3: 😎 sure. What's your program's account so I can bill it?
IM: 😍 did you ever knooooow that your my heeeerooooooo.
*SE3 runs analysis*
SE3: 😐 only the case that was broken is breaking.
SE2: 😐 Good.
IM: 🤬🤬🤬🤐 . . . 🤯WHY!?!?
Me: 😠 Why?
SE2: 😑 Because it confirms my thoughts. Me, I am inviting you to this algorithm meeting we have.
Me/IM: 😑/😡 what . . . the fuck?
*in algorithm meeting*
Me: 😑 *recaps all of the above* we subtract 1 one too many times from a number that spans from 10000 to -10000.
Software people/my boss/SE1/SE3: 🤔 makes sense.
SE2:🤨 I have slides that have an analysis of what Me just said. They will only take an hour to get through.
Me: 😑 that's cool but you need to give me your program's account number, because this has been fixed in our baseline for a week and at this point you're the only program that still cares. Actually I need the account to charge for the last couple times you interrupted me for some bullshit.
*we are let go.*
And this is how I spent 40+ useless hours against a program that is currently overrunning for no reason 🤣🤣🤣
Moral: never involve math guys in arithmetic situations. And if you ever feel like you're wasting your time, at least waste someone else's money.10 -
It all began yesterday in my math lesson.My teacher introduced us into a new subject: The Heron method.
This is a method for iteratively computing the square root of a number which was made up by Hero of Alexandria.
But here's the cool part:
When my teacher said "method" I had the thought that I could make a programm on my TI-82 Stats (my calculator).
So I used the next break to make a little programm that does exactly the same what my mates has to do in several steps, in just one step.
Here is a picture so I can explain the programm:
First it asks for the root that it should calculate then for a value to begin with and finally for the amount of arithmetic operations.
Then it goes trough the algorithm and displays the interim results (this is important for later ...) .
So back in story.It wasn't surprising that we got exercises with this method as homework but through my programm I just needed 5 minutes instead of 20 minutes (like my class mates).9 -
Besides the fact that there would be an error handler, wouldn't it store a phone number as an object other than a computable number, like a string, cuz phone number is like a handler, a reference, and not something you'd ever perform arithmetic on?6
-
Snippet of an overheard conversation today:
"LOL maths beyond basic arithmetic is so dumb. No-one needs pythagoras, trig, calculus or any of that crap unless they have some unholy desire to find the geometric properties of their sandwich."
"What do you want to do when you leave school then?"
"Something to do with AI. That stuff is really cool."
🤦♂️🤦♂️🤦♂️8 -
console.log(0.47-0.01===0.46);
Output: false :/
That got me stuck for quite a while..
Learned more about floating point arithmetic and representation 😊7 -
Time to rant about JavaScript tutorials.
If you don't know the 'jQuery basic arithmetic' joke, Google it now. It'll make you laugh, promised.
In that manner i just remembered a JavaScript tutorial my fiancee tried to follow when she did an internship at the company i work for last year.
She was tasked to create a temperature interface for our server rack, which she wanted to do via an Arduino and a webserver aswell as an SQL database.
The Arduino part wasn't really a problem, but since she had no experience with js she very closely clinged to a chart visualisation tutorial.
All of that worked very well, but beeing the person i am i looked at the code and found something off.
The chart library had no dependencies to external libraries or any local files for any of them. Though the tutorial used a jQuery import.
So why did it use jQuery?
Well...
To load the chart initialization after the page has loaded.
So they pulled the entirety of jQuery in just to do what fucking window.addEventListener('DOMContentLoaded',function(){...}); could have done.
I wonder how many people who just want something to work did this shit. I hate it that so many tutorials do not adhere any kinds of standards, override behavior because they don't like it, even though it may have a very good reason to exist, pull entire libraries in for something vanilla <language> can do in 3 lines, etc.
Fuck.7 -
math be like:
"Addition (often signified by the plus symbol "+") is one of the four basic operations of arithmetic; the others are subtraction, multiplication and division. The addition of two whole numbers is the total amount of those values combined. For example, in the adjacent picture, there is a combination of three apples and two apples together, making a total of five apples. This observation is equivalent to the mathematical expression "3 + 2 = 5" i.e., "3 add 2 is equal to 5".
Besides counting items, addition can also be defined on other types of numbers, such as integers, real numbers and complex numbers. This is part of arithmetic, a branch of mathematics. In algebra, another area of mathematics, addition can be performed on abstract objects such as vectors and matrices.
Addition has several important properties. It is commutative, meaning that order does not matter, and it is associative, meaning that when one adds more than two numbers, the order in which addition is performed does not matter (see Summation). Repeated addition of 1 is the same as counting; addition of 0 does not change a number. Addition also obeys predictable rules concerning related operations such as subtraction and multiplication.
Performing addition is one of the simplest numerical tasks. Addition of very small numbers is accessible to toddlers; the most basic task, 1 + 1, can be performed by infants as young as five months and even some members of other animal species. In primary education, students are taught to add numbers in the decimal system, starting with single digits and progressively tackling more difficult problems. Mechanical aids range from the ancient abacus to the modern computer, where research on the most efficient implementations of addition continues to this day."
And you think like .. easy, but then you turn the page:17 -
Fixed a bug in my emulator that was completely breaking almost every program I ran on it.
Turns out the virtual ALU set its arithmetic flags (zf, nf) even when a non-arithmetic operation was run. -
Imagine the horror of learning C programming with manual memory management, pointer arithmetic and without your cool utility libraries after programming for 2 years in Python just becoz it's in the fukin syllabus!!13
-
*literally any arithmetic operation which is hideously wrong*
Almost every JS dev : Is this JavaScript?1 -
So i'm visiting the JavaScript bubble every now and then when i'm writing on the userscript i develop to fix bugs in our ticketing system or fix some clients website they negelected. Every time i'm searching for answers to the weird problems that inevitably turn up i have to filter out all the threads that derail with the classic 'google jQuery basic arithmetic plugin' craziness to find an actual vanilla solution to my problem.
All the time i wonder why on earth people put up with this framework hell. This is part serious question and part rant but seriously, how did we come to this? With all that jQuery, React, Node, whatever stuff i'm kinda losing the overview over what's even todays standard. I always try to keep my code as vanilla as possible without using external libraries. But it seems the entire web development industry is heading the completly other way. I tried to look into a few frameworks but i never really see the appeal. Just now i looked up react native because the last 20 rants talked about it and immediately noped out because they fucking create a DOM in js, why the fuck would you do this?!
Worst thing about this framework shithole is that some frameworks are beeing pulled into the mix for very weird and unnecessary reasons. Best example is a charts library i recently used to visualize a database of temperatures that was completely written in native js but pulled jQuery in for the equivalent of window.addEventListener('load',function(stuff)) and i was furious. I rewrote the code and could throw out the jQuery dependency with no problem. What the fuck is wrong with people?
Alright since you made it here: I'm not trying to throw any of you under the bus for using frameworks. I just fail to understand why you would use these. To each their own and unless your site has the performance of the ticketing system i use at work that takes like 15 seconds to load one fucking page i won't complain at all. But pull in a framework just to do a task you can easily do in native js in remotely the same timeframe you are on my list.2 -
"A work of art is one of mystery, the one extreme magic; everything else is either arithmetic or biology." - Truman Capote1
-
How I approach pointer arithmetic:
Code something that seems ok, compile, and just keep fucking with it until gcc doesn't give any more errors.1 -
In other to sharpen my algorithm and data structure skill.
I implemented the complete *eval()* function for arithmetic Expression in java
It can compute any kind of arithmetic Expression even with parenthesis grouping
Here is the github repo
https://github.com/Afrographic/...1 -
So, forgive my ignorance, this isn't a troll just a question.
How are continued fractions related to modular arithmetic?
Take the following example:
70%32 = 6
70//32 = 2
which we can just represent as
6+(32*2)
Now, as a continued fraction, we would do
70/32 = 2 + 6/32
and repeating what we just did but for 6/32, as you would with a continued fraction.
Am I actually doing everything correctly here or am I missing something?4 -
Write a function that adds two numbers together. However, do not use + or any arithmetic operations to do so.12
-
Assembly IA-32
Does someone know why arithmetic left shift changes the original binary number's sign (1 to 0,vice versa) , but arithmetic right shift keeps the same sign?6 -
It should be possible to prove the collatz conjecture by mapping the unit digit transitions between numbers, namely into a finite state machine. From there we could use predicates and quanitifiers to prove, by process of exclusion, that for any given combination of 10s digit and 1s digit, no number can transition to anything but whats specified in the state machine assuming that number equals x in x3+1 or x/2
Ipso facto, a series of equations proving by process of elimination, that state machines transitions are the only allowable ones, would prove the collatz conjecture by proving the fsm is a valid representation for any given integer N.
I'm actually working on it now but I don't know enough about modular arithmetic and predicate logic to write a proof. I just have the state diagrams on some dot matrix paper at the moment.
If anyone wants to beat me to it, feel free.
So for example any number ending in 13, will, after x3+1, end in 40.
Any number ending in 40 will end in 20. Any number ending in 20 will end in 10, which will end in 5 as the unit digit.
It's easier to prove in the single digit case, and the finite state machine for that is already written, at least on paper.
I'll post pictures when I get a chance.7 -
When you waste 2 fucking days on a program that does all sorts of math (eigenvalues, matrixes, logarithmic ranking, etc) because you fail at simple arithmetic average (not accounting for empty values) because you wrote it that line at 6AM
:/ -
Not dev related so don't shoot me. If you like writing I figure you maybe might enjoy this and thought I'd share.
This is a section from an unfinished novel about 2050s America, set in a corporate subsidized mega-fevela sprawling across washington state, ruled by gangs and patrolled by the officers of a bankrupt nation suffering through austerity and on-and-off again spasms of mass civil conflict.
"Averice - Sex, drugs, and vice, in the downfall and dying days of america."
we lived in a smoke government, where everything was bullshit they blew up your ass so you could continue make believe while
you were bent over with your head in the hole in the ground you mistook for your ass to start with. And if you questioned it all, one bit, the mouth organ of the state would command
hate upon you, like an old latin curse, with a lexicon armada of phrases like "terrorist", and "troubled individual" to character assassinate you by drowning you in the humbling river of societies mass delusion giver, those two sweet letters "TV."
No, we were on the industry edge here, inventing better bait to catch what the state politiburo labelled 'bandits', all for what?
It had, in later years become fashionable to call those who didn't want to be stolen from any more, projected as it were, "thieves", in the same fashion as those in the middle east, defending
their homeland from foreigners, were labelled "insurgents." Tyranny had not so long ago grown a sense of irony it would seem.
And if you became enemy number one of the state, as thousands were, you would spend your days on the run, always looking over your
shoulder for the states vanish vans--black escalades with men in dark suits and mirrored glasses, like bugmen with shiny inhuman, and inscrutable eyes full of alien malice.
These were sordid summers, full of plastic playhouses where the cost of a days wages you could lay with a synthetic lover and pay away the days tense tax for a good lay, and forget your toils and troubles. And so many were kept in poverty because of easy habit and routine that they forget they were not living.
But for me, I had none of it. I preferred the troubled thing on the corner when I could coax one into my state issued sedan. She was sulky, with bright blonde curls, 19, maybe 20, with empty eyes, as if watching some invisible horizon. And in the glow of the blue neon, among the wet sidewalks, and trash, she leaned into my car. No words were exchanged. I nodded, and
she got into the car, a miniskirt, and slinky little handbag.
This was no more than state business with a bureau guy like me, and for her, little more than the prison trade taken public.
She huffed some powder and climbed spraddle leg onto my lap, grabbing me along my jawline, eyes locked onto the depths of my soul, and
for the next ten minutes as she moved on top of me, I was motionless property while my lusts became animal, and she, my cream cup.
After, I arrested her to the standard protests, but she new the game and quickly hushed. This was the verdant arithmetic of the state. I was awarded x amount of pension points for every criminal, no matter how, and it was no gentle hand, not the judge, not the jury, or the executioner of their will. It was the rigid touch of a long arm, dislocated from the law, and now, like frankenstein's monster, cobbled onto the mechanism of the state not unlike the manner of a combine harvester.
We were the owners of all by virtue of all we could take, and we took all we could get. The serial romeos of state police power, romancing
the unwilling citizenry with televised patriotism and five minute power talks at the beginning of the corporate day.
It could be paradise or a wasteland if we wanted it to be. And for a time it was.
Edit: devrant always breaks my formatting. sigh. -
ISO floating point numbers are essentially wrapped in a hardware-level monad because the normal meaningful values aren't closed over basic arithmetic so conceptually wrapping everything in Maybe using the 'infectious sentinel value' NaN leads to substantial speedups.
With this in mind, I think high-level languages that have a Maybe should use those and have the language-type float refer to a floating point that isn't NaN.2 -
Probably a veery long time ago, but being able to use what you use in if(...){} for e.g. booleans like "bool(ean) isX = a == x;".
And than reusing that value in if again and so on.
Even if it sounds trivial, there was a time where it was not and "==" was only associated with "you use that in if/while only" rather than "a == b" returns a bool(ean)/int.
Same goes for other arithmetic operators and && / || ofc.6 -
Well, I'm not saying I just spent a couple of hours trying to fix bugs in a basic ML tutorial, but...
I hate matrix arithmetic. -
Docuware, oh Docuware.
Meant to be an archiving system, but the moment work flows were seen by our director the ball just went out of the court in terms of implementation.
We've gotten to a point where we don't want to use Asana for ticket tracking and task assignment, we don't want to use a tool that acts as a man in the middle to push information to dbs, we want to use workflows with set conditions to automate every single process in the company. Why? It's cheaper.
The syntax is alrightish for arithmetic expressions, but there are so many limitations that we've gotten to the point where we're absolutely circumventing the entire point of the software.
Initialise variables, Condition, condition, condition, draw data from external sheet, process based thereof.
"oh, why doesn't it display images on the populated forms? I don't want it just as an attachment I need to click next to see".
Frustration is paramount, but the light is at the end of the tunnel.
"Oh, did I mention that we need digital signitures?" you need an additional module Mr boss. "no, I bought the cloud bundle. Make it work".
Powerful tool, I'll give it that, but it's downfall is its lack of being comprehensive.
Month 3, here we go.4 -
in vb.net i can declare a void function:
Declare Function some_func& Lib "some_lib.dll" ()
then try to assign its return value to a variable:
some_return = some_func()
and get no errors during compilation, not even a warning
but in runtime it produces integer arithmetic overflow exception
in what way it is not even a warning?4 -
Brain fart.
In Java and many other languages there are basic types, like char and String. So why does Java have char and String, but not a digit type?
A number is basically a series of digits. For modular arithmetic it is very useful to be able to extract the 3 in the number 1234, it's just the 3rd digit in a number.
Base 2, base 10, base anything could be supported easily too. E.g. a base 2 digit would be:
digit d = 0b2; // or 1b2, but 2b2 would be a compilation error
A number would then be some kind of string of digits.
Any thoughts on this?9