Linked by Thom Holwerda on Wed 30th Jan 2013 00:38 UTC
Marco Arment: "Everyone should play by the same rules. A proposal: storage capacities referenced or implied in the names or advertisements for personal computers, tablets, and smartphones should not exceed the amount of space available for end-user installation of third-party applications and data, after enough software has been installed to enable all commonly advertised functionality. With today's OSes, iPads could advertise capacities no larger than 12, 28, 60, and 124 GB and the Surface Pros could be named 23 and 83 GB." Wholly agreed. When I buy a box of 100 staples, I expect it to contain ~100 staples - not 50 because the other 50 are holding the box together.

Member since:
2005-11-16

Hi,

The problem is that the number of people who do not comply with the standard is larger than the people who do.

Yes, these uneducated people still need to be educated. Sadly, some of them are teachers - I've even seen university professors use "Gb" when they meant "GiB".

There is almost no situation where knowing the number of bytes in a MB/GB is required in order to successfully use a computer.

Let's try this. If you've got a 2 MB disk and you're downloading data at a rate of 8 KB per second; how long until you run out of space to store received data?

a) 2*1024*1024/(8*1024) = 256 seconds
b) 2*1000*1024/(8*1024) = 250 seconds
c) 2*1000*1000/(8*1024) = 244.14 seconds
d) 2*1024*1024/(8*1000) = 262.144 seconds
e) 2*1000*1024/(8*1000) = 256 seconds
f) 2*1000*1000/(8*1000) = 250 seconds

Note: Networking hardware typically uses "K = 1000" and hard drive manufacturers have a nasty habit of using "M = 1000*1024", so (e) is potentially the most likely answer, unless the disk is SSD or USB flash where (a) might be more likely, or the prefixes comply with international standards and (f) is the only right answer.

Standards bodies, I think, overstepped their bounds. While they are responsible for setting standards, they should have sought the opinion of the major stakeholders before making the change they did. And if it transpired they could not at least get a majority YES vote, then it should not have happened.

No. The use of "K = 1024" was always wrong and never complied with any standard (despite common usage). The common usage of "wrong" is likely to have been caused by laziness/convenience (e.g. it's easier to say "1 KB of RAM" and be wrong, and harder to say "1.024 KB of RAM" and be right).

The only thing the standards bodies did was create a more convenient alternative that is right (e.g. it's easy to "1 KiB of RAM" and be right and harder to say "1.024 KB of RAM" and be right).

But yes, some people aren't educated and prefer to remain wrong.

- Brendan

Member since:
2005-10-19

Hi Brendan,

Congratulations on this years most arrogant and silly post so far. Don't get your hopes up though, the year is young.

Calling people uneducated simply because they dissagree with you makes you sound opinionated. Your reputation doesn't improve when you try to provide an example of why you're right, and only succeed in proving the opposite point.

I asked why anyone would need to know how many bytes there are in a MB/GB/TB.

You gave this silly and contrived example:

Let's try this. If you've got a 2 MB disk and you're downloading data at a rate of 8 KB per second; how long until you run out of space to store received data?

a) 2*1024*1024/(8*1024) = 256 seconds
b) 2*1000*1024/(8*1024) = 250 seconds
c) 2*1000*1000/(8*1024) = 244.14 seconds
d) 2*1024*1024/(8*1000) = 262.144 seconds
e) 2*1000*1024/(8*1000) = 256 seconds
f) 2*1000*1000/(8*1000) = 250 seconds

This is beyond laughable. When was the last time you needed to know how many seconds it would be until you ran out of disk space? When or why would anyone need to know this? How would it go: "Geez is it 244.14 seconds until I run out, or is it 250 seconds? I'd better work this out or else ... oh wait."

No. The use of "K = 1024" was always wrong

Why was it always wrong? It never complied with any standard, simply because there wasn't one. That doesn't make it wrong at all.

It did however have a de-facto standard that was in use by 100% of interested parties. That is a standard. It's not codified, but it is a standard.

But yes, some people aren't educated and prefer to remain wrong.

This statement tells a story about you. And it's not pretty.

Member since:
2006-05-30

Network speeds are generally quoted in MegaBITS not BYTES and therefore the entire premise he made his comment based on was incorrect. If my Cable modem is providing me a 20Mb connection, that's 20 megabits, not 20 megabytes in old money (or migglebytes or whatever the crappy SI want's us to call it now.) So, 1Mb is 122KB in old money. There you go. I refuse to use the new prefixes based on the fact no one ever discussed it with the greater computer community and fcuked it up for all the software engineers that still deal with real computer hardware, which really does use base 2 and therefore the SI can go fcuk themselves.

Member since:
2005-11-16

Hi,

Congratulations on this years most arrogant and silly post so far. Don't get your hopes up though, the year is young.

May I assume you're trying to win back the crown?

Calling people uneducated simply because they dissagree with you makes you sound opinionated. Your reputation doesn't improve when you try to provide an example of why you're right, and only succeed in proving the opposite point.

But calling my post arrogant and silly just because it disagrees with you is awesome!

I asked why anyone would need to know how many bytes there are in a MB/GB/TB.

And I made up an example to highlight how things get more confusing once you start mixing different systems.

You gave this silly and contrived example:

And you completely missed the point. I'm still trying to figure out if you've deliberately missed the point, or if you're simply not smart enough to see it.

Why was it always wrong? It never complied with any standard, simply because there wasn't one. That doesn't make it wrong at all.

You can't see the difference between "no standard applies" and "misusing something that is both an established standard and common usage"?

Do you understand that "kilo" comes from the Greek word for "thousand" and was probably in use for centuries before it even became an international standard?

Can you see how this is like taking the word "dozen" and using it to mean "thirteen", then attempting to argue that it's correct to do so?

If your answer to the 3 questions above is "no", then I don't think it's reasonable for you to complain about me calling you uneducated.

- Brendan

Edited 2013-01-30 18:21 UTC

Member since:
2009-06-30

The whole situation is unfortunate but not that important as we (geeks) paint it. I've been using binary prefixes in the past but nowadays I just stick to SI system. IMHO over time the use of "kilo=1024x" will become sort of a slang in niche markets.

There are many reasons for that:

"Kilo" has always meant "1000x". That's the concept 99% of users are familiar with. Yes, 20 years ago most users were geeks and had no problem with binary numbers but now we are a minority.

As you mentioned, "kilo" means "1000x" in all non data storage applications (e.g. networking). That's because all performance figures are derived e.g. from frequency, which has always been decimal (at least above 1 Hz).

Even in data storage applications, memory size is no longer tied to the size of a 2D array (overhead of error correction, framing added by interfaces etc.). So binary units are no longer better suited to measuring memory size.

Finally, most users don't care about it and the difference is small enough even at "tera" scale. We can just stick to a familiar decimal system and forget binary units altogether (which is already happening).

Myself, I have adopted following practices:
- I always use decimal prefixes when providing data.
- I check what the author has assumed when getting such data (unfortunate but unavoidable step anyway).
- If I absolutely have to use binary units (very rare now), I tend to write X*2^N rather than using "kibi" prefixes, which frankly speaking look even more geeky to me than use of kilo=1024x. Since such data are consumed by technical users it works just fine.

Member since:
2006-10-28

Networking hardware typically uses "K = 1000"

They are also wrong, or not using the S. I. prefix. In S. I. the kilo prefix is lower case k, and uppercase case means Kelvin.

From a Mathematical point of view. b for bit is right, but byte shouldn't be B. The Mathematical scales are in uppercase when they represent the name of a scale that was named in honor of someone, and in lowercase for the rest. So stand for N = Newton, K = Kelvin, C = Celsius, Hz = Hertz, m = meter, s = seconds and so on.

But remember that in computer science we love to create a lots of standards that break every previous standards. And we write the scales the way they look better and not the way we should.