Strange invoice from Verizon
-
Lol, I don't even use Facebook anymore. I kinda got sick of people equating facebook = friendship. I think I'd rather put it on Twitter maybe.
-
The bigger these large corporations grow, the more they act like government bureaucrats! :sigh:
Yep lol. It's a little disheartening.
-
It's amazing how many people have had problems like this. It's 2015 already, can't people count yet? I have no idea how their systems are made, but shouldn't something like
if(outstandingBalance > f0.01) { SendBill(customer); }
prevent this kind of thing happening? It just seems like such a simple problem, so simple that it couldn't possibly happen - but it does, so much. -
Although that doesn't sound like a very pleasant experience, that's nothing compared to what I had to endure for over six months with our leading Telco. I signed up for a phone plan, years ago, but when the phone arrived, it was the wrong phone, and when I phoned them to get them to send the right one, I then found out they put me on the wrong plan! But that's not all of it... They kept making mistakes over the phone, and putting me on hold. After a while, they came back and said that I should have been declined, because the particular service I was signing up for was exclusive to existing customers only - not new customers. And since I had only just received my phone - I had never used it to make calls, and since they told me I was able to sign up for that particular service and did so, and since I never used the service - common sense and logic proves that I owe them nothing. I sent the phone back, and they told me they would cancel the service, and that would be that. Weeks go by... I get a letter in the mail. Those idiots sent me a bill of $0.02. Yep. That's right. 2 cents. I phoned them and explained that the service was canceled due to their incompetence and that I had not used the service, so they have no right to charge me anything but they simply were not able to understand that. I told them that I couldn't even pay them 2 cents because in Australia, we stopped producing 1 and 2 cent coins decades ago! They still insisted that I pay them 2 cents. I hung up the phone (after yelling at them). Weeks go by... I get a letter in the mail. It's from a Debt Collection agency, threatening to take me to court for 2 cents. Not only was I extremely angry, but after reading it again and showing it to my parents, I just couldn't stop laughing at how stupid some people really are. Not only do they have absolutely zero legal or moral basis for charging me anything at all - they were asking me to do something that was just not even possible to do - and - they spent more money threatening me with legal action than what the actual "debt" was worth! IDIOTS! Anyway, it took over six months to get this stuff sorted out. I still have a copy of the paper here. I should frame it someday. Put it up on my wall.
I had very similar experience with a telecommunications carrier who couldn't get it sorted over the course of nine months. Among other stupid things, they kept sending me invoices even though they never even activated my account. After countless calls and several tries they finally managed to cancel the invoices, at least with respect to charging fees. But they still sent an invoice over 0.00, and then added a fee of 2.00 for postage :mad: I'm still waiting for the reimbursement of the sim card they sent me (without ever unlocking it), and the compensation for my efforts they promised in letter. But I gave up on that one: it won't make up for the damage to my mental health if I need to contact their incompetent hotline again. :rolleyes:
GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)
-
Daniel Pfeffer wrote:
I suspect that their accounting package is written in COBOL and data are stored using the packed-decimal format, which also has positive and negative zeroes.
You are probably right about them using COBOL. I was just responding to the question that the OP didn't know that negative zero existed. I didn't know that COBOL had a "packed decimal" format, or anything else about COBOL for that matter, and that "packed decimal" format (whatever that is) had a positive and negative zero in that format.
Once you lose your pride the rest is easy. In the end, only three things matter: how much you loved, how gently you lived, and how gracefully you let go of things not meant for you. – Buddha Simply Elegant Designs JimmyRopes Designs
JimmyRopes wrote:
I didn't know that COBOL had a "packed decimal" format, or anything else about COBOL for that matter
For those poor souls born too late to experience the Joy of COBOL :): COBOL's Packed Decimal format is a signed-magnitude format that packs two binary coded decimal characters in a single byte, i.e. 42 decimal could be represented as 0x42. This holds for all bytes except the last, which contains 1 decimal place and either C (positive or credit) or D (negative or debit). For example: -1 would be stored as 0x1D +1 would be stored as 0x1C +1234 would be stored as 0x01 0x23 0x4C
If you have an important point to make, don't try to be subtle or clever. Use a pile driver. Hit the point once. Then come back and hit it again. Then hit it a third time - a tremendous whack. --Winston Churchill
-
A couple of weeks ago, I got my regular monthly invoice from Verizon for my cellphone, and paid it. Today I got another invoice from them for minus zero dollars! WTF?? I think I will write them a check for minus zero dollars, just to satisfy their accounting computers! I don't want my service suspended for non-payment of my account. :doh: I did not even know that zero can be negative.
How much did Verizon spend for this invoice? If it was an email invoice, perhaps free. If a postal delivery, they spent a non-zero positive amount to get back zero dollars.
-
JimmyRopes wrote:
I didn't know that COBOL had a "packed decimal" format, or anything else about COBOL for that matter
For those poor souls born too late to experience the Joy of COBOL :): COBOL's Packed Decimal format is a signed-magnitude format that packs two binary coded decimal characters in a single byte, i.e. 42 decimal could be represented as 0x42. This holds for all bytes except the last, which contains 1 decimal place and either C (positive or credit) or D (negative or debit). For example: -1 would be stored as 0x1D +1 would be stored as 0x1C +1234 would be stored as 0x01 0x23 0x4C
If you have an important point to make, don't try to be subtle or clever. Use a pile driver. Hit the point once. Then come back and hit it again. Then hit it a third time - a tremendous whack. --Winston Churchill
Daniel Pfeffer wrote:
+1234 would be stored as 0x01 0x23 0x4C
:thumbsdown: X| That is crazy. Hex representing decimal values, before converting from hex. :confused: Sounds like someone took the path of least resistance on that solution. If it works, I guess it's right. Here's the code I will use in my new language. Brilliant = dumbest person ever Manager = person most likely to create most foul solution that s/he considers ingenius. Solution = tird which rolled to the bottom of the hill. Here's an example sentence in my new language. My brilliant manager created a solution and now I am forced to fix it. :-\
-
If they'd be smart, they'd make it even
if(outstandingBalance > postageFee) { SendBill(customer); }
Actually I recall one instance of an invoice that specifically stated they didn't want the money because it was less than 1.00. But that was a one-time experience and I don't expect that to ever happen again: over the past years charges were raised for pretty much anything that used to be free of charge, such as using a cash point to retrieve your own money. :wtf:
GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)
-
JimmyRopes wrote:
I didn't know that COBOL had a "packed decimal" format, or anything else about COBOL for that matter
For those poor souls born too late to experience the Joy of COBOL :): COBOL's Packed Decimal format is a signed-magnitude format that packs two binary coded decimal characters in a single byte, i.e. 42 decimal could be represented as 0x42. This holds for all bytes except the last, which contains 1 decimal place and either C (positive or credit) or D (negative or debit). For example: -1 would be stored as 0x1D +1 would be stored as 0x1C +1234 would be stored as 0x01 0x23 0x4C
If you have an important point to make, don't try to be subtle or clever. Use a pile driver. Hit the point once. Then come back and hit it again. Then hit it a third time - a tremendous whack. --Winston Churchill
Daniel Pfeffer wrote:
For those poor souls born too late to experience the Joy of COBOL
I wasn't born too late but I successfully avoided COBOL. I coded in IBM Assembler back in the day.
Once you lose your pride the rest is easy. In the end, only three things matter: how much you loved, how gently you lived, and how gracefully you let go of things not meant for you. – Buddha Simply Elegant Designs JimmyRopes Designs
-
How much did Verizon spend for this invoice? If it was an email invoice, perhaps free. If a postal delivery, they spent a non-zero positive amount to get back zero dollars.
Maybe it was an email invoice with an ad that produced a bit of revenue and Verizon deducted (part of) that revenue from the invoice, causing the -0? :cool:
GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)
-
Maybe it was an email invoice with an ad that produced a bit of revenue and Verizon deducted (part of) that revenue from the invoice, causing the -0? :cool:
GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)
-
Daniel Pfeffer wrote:
+1234 would be stored as 0x01 0x23 0x4C
:thumbsdown: X| That is crazy. Hex representing decimal values, before converting from hex. :confused: Sounds like someone took the path of least resistance on that solution. If it works, I guess it's right. Here's the code I will use in my new language. Brilliant = dumbest person ever Manager = person most likely to create most foul solution that s/he considers ingenius. Solution = tird which rolled to the bottom of the hill. Here's an example sentence in my new language. My brilliant manager created a solution and now I am forced to fix it. :-\
newton.saber wrote:
That is crazy. Hex representing decimal values, before converting from hex.
It actually makes a lot of sense, considering that operations must be performed in decimal, rather than binary: * Multiplication and division by powers of 10 are trivial * Numerical fields of arbitrary length may be defined (just terminate the last byte with C or D) * Extraction of single digits (e.g. for display formatting) is very fast * Values may be verified at a glance in the core dump (no interactive debuggers in those days...) All this at a minor increased cost in complexity and storage requirements. Our predecessors may have worked on (by our standards) underpowered processors with primitive tools, but never assume that they were stupid!
If you have an important point to make, don't try to be subtle or clever. Use a pile driver. Hit the point once. Then come back and hit it again. Then hit it a third time - a tremendous whack. --Winston Churchill
-
Daniel Pfeffer wrote:
For those poor souls born too late to experience the Joy of COBOL
I wasn't born too late but I successfully avoided COBOL. I coded in IBM Assembler back in the day.
Once you lose your pride the rest is easy. In the end, only three things matter: how much you loved, how gently you lived, and how gracefully you let go of things not meant for you. – Buddha Simply Elegant Designs JimmyRopes Designs
JimmyRopes wrote:
I coded in IBM Assembler back in the day
Ah, yes. Those were the days... I learnt IBM System/360 assembly language in University, but never had occasion to use it after graduation (I still have the IBM System/360 Assembly Language card, and Struble's book on the language at home). However, I did write quite a lot of code in 8086 & 80286 assembly language.
If you have an important point to make, don't try to be subtle or clever. Use a pile driver. Hit the point once. Then come back and hit it again. Then hit it a third time - a tremendous whack. --Winston Churchill
-
If they'd be smart, they'd make it even
if(outstandingBalance > postageFee) { SendBill(customer); }
LOL good one!
-
A couple of weeks ago, I got my regular monthly invoice from Verizon for my cellphone, and paid it. Today I got another invoice from them for minus zero dollars! WTF?? I think I will write them a check for minus zero dollars, just to satisfy their accounting computers! I don't want my service suspended for non-payment of my account. :doh: I did not even know that zero can be negative.
In many apps, -0 means "unlimited". Screwed you are, Luke.
I wanna be a eunuchs developer! Pass me a bread knife!
-
Daniel Pfeffer wrote:
I suspect that their accounting package is written in COBOL and data are stored using the packed-decimal format, which also has positive and negative zeroes.
You are probably right about them using COBOL. I was just responding to the question that the OP didn't know that negative zero existed. I didn't know that COBOL had a "packed decimal" format, or anything else about COBOL for that matter, and that "packed decimal" format (whatever that is) had a positive and negative zero in that format.
Once you lose your pride the rest is easy. In the end, only three things matter: how much you loved, how gently you lived, and how gracefully you let go of things not meant for you. – Buddha Simply Elegant Designs JimmyRopes Designs
-
A couple of weeks ago, I got my regular monthly invoice from Verizon for my cellphone, and paid it. Today I got another invoice from them for minus zero dollars! WTF?? I think I will write them a check for minus zero dollars, just to satisfy their accounting computers! I don't want my service suspended for non-payment of my account. :doh: I did not even know that zero can be negative.
-
newton.saber wrote:
That is crazy. Hex representing decimal values, before converting from hex.
It actually makes a lot of sense, considering that operations must be performed in decimal, rather than binary: * Multiplication and division by powers of 10 are trivial * Numerical fields of arbitrary length may be defined (just terminate the last byte with C or D) * Extraction of single digits (e.g. for display formatting) is very fast * Values may be verified at a glance in the core dump (no interactive debuggers in those days...) All this at a minor increased cost in complexity and storage requirements. Our predecessors may have worked on (by our standards) underpowered processors with primitive tools, but never assume that they were stupid!
If you have an important point to make, don't try to be subtle or clever. Use a pile driver. Hit the point once. Then come back and hit it again. Then hit it a third time - a tremendous whack. --Winston Churchill
Daniel Pfeffer wrote:
Our predecessors may have worked on (by our standards) underpowered processors with primitive tools, but never assume that they were stupid!
That's a very good point, actually. It's just so odd to use 0xZZ where ZZ is a digit and then to just use those digits basically like strings. Just feels odd since most modern languages see 0x as indicating the value that follows will be a hex value. If they had used something lik cbZZ cbZZ I could've almost accepted it more easily. But again, I have the benefit of looking back on history. But it's a lot more fun to act like there is no history and just poke fun at the way they designed the solution. :)
-
-
JimmyRopes wrote:
Given standard accounting requirements, I very much doubt that Verizon are keeping their accounts in binary floating-point values. Accounting (and banking) operations must be EXACT; it is impossible to represent 0.01 exactly in binary, and therefore binary floating point is not used in accounting packages. I suspect that their accounting package is written in COBOL and data are stored using the packed-decimal format, which also has positive and negative zeroes.
If you have an important point to make, don't try to be subtle or clever. Use a pile driver. Hit the point once. Then come back and hit it again. Then hit it a third time - a tremendous whack. --Winston Churchill
Daniel Pfeffer wrote:
Given standard accounting requirements, I very much doubt that Verizon are keeping their accounts in binary floating-point values
Valid point. But then the invoice wasn't a direct view into a database either but rather a processed piece of something (paper or email) that was generated from a process, very likely involving a number of steps. And certainly something in one of those steps decided to put a minus sign there.