Hacker News new | past | comments | ask | show | jobs | submit login
Mac finder uses 1,000,000 bytes instead of 1,048,576 bytes for file sizes (2011) (discussions.apple.com)
71 points by danielyaa5 75 days ago | hide | past | favorite | 133 comments



Correctly.

1MB is one million bytes, and files do not intrinsically come in power-of-two sizes.

It may still make sense to use MiB for RAM though.


Files may not, but file-systems do.

All else being equal, I see it as better to under-promise and over-deliver than the reverse:

In a world where there was one commonly-accepted meaning for MB (ie, the world where computers were invented, proliferated and became ubiquitous), and one assumed meaning (however logical it may be), users without the requisite nugget of binary knowledge would be positioned to be pleasantly surprised that they had "more than they paid for". In the case of file-sizes, this is to that users detriment, but in the case of the potentially more litigious issue of amount of drive space or RAM being purchased, this is to the users advantage.

For those that simply knew, on the other hand, things were just as expected.

Conversely, in the world where we now have two justifiable hard meanings for MB (one historical, one "canonical"), and people who go about endlessly correcting each other about them, we have handed the "things are as expected" situation to the everyday users, while the rest have inherited a mix of "less than I paid for" and "confusion".

All-up, not a worthwhile trade IMO.


There was never one commonly accepted meaning for a MB. Storage has always been base10. Linespeed has always been base10. RAM is native to a matrix, and lazy programmers like to pretend that means everything is.

The first commercial drive, the IBM 305, stored 100,000 characters on each of 50 platters, for 5 million total characters. Drives have been a base10 number of sectors for my entire lifetime.


> There was never one commonly accepted meaning for a MB.

If that was correct, this HN post wouldn't exist.

For the 50 years preceding Apple's intervention, any example that can be produced of MB equalling 1,000,000 bytes, likely has about one MiB-worth of counter-examples showing it equalling 1,048,576 bytes.



This wikipedia article quoting a standard formalised in the late 90's, and only beginning to gain adoption from that point on, largely supports my statement.


The Wikipedia article lists things that always used the base 10 definition. It has examples of disks from the 1970s. And it mentions a 3rd definition of megabyte used since the 1980s.


>For the 50 years preceding Apple's intervention, any example that can be produced of MB equalling 1,000,000 bytes, likely has about one MiB-worth of counter-examples showing it equalling 1,048,576 bytes.

You'd be surprised...

M has been the accepted prefix for 1,000,000 since the 19th century, widely used in science, networking standards and disks, decades before Apple made any change itself...


The "highest selling single computer model" of all time was not called the Commodore 65.536, it was called the Commodore 64.

As was the common convention, all advertising materials, all reviews, all documentation and all common understanding was that the 64 in its title represented 64KB as in Kilobytes.

This same convention, for MB = Megabytes, and GB = Gigabytes and all of these representing powers of 2 (no matter how "incorrect" that may be), was proliferated through the overwhelming majority of advertising, commentary and documentation both previously through the 70's, and through the 80's, 90's and 2000's.

This was the convention commonly understood for the many-decades-long duration of the birth of modern computing.

To attempt to change it after decades of intrenchment for the "technically correct" version and gain loads of confusion, and almost nothing in return, is a bad value proposition.


I've never disputed that this was the convention for RAM. But it never has been for harddrives.

To borrow your C64 example, the most popular harddrives to add to a C64 were Lt.Kernal(Fiscal) drives. The first model, sold as 10MB, was 256 bytes per sector, 32 sectors per track, for 1224 tracks. Giving us a raw capacity of 10,027,008 bytes - 10MB or 9.5MiB.

You're talking about it being a convention in home computers when the vast, vast majority of them simply didn't have harddrives - While the machines that did have harddrives were already using base10 (an RK05 was 1.2Mwords - 1,200,000 words. Twice the RK04's 600kwords).

The convention has always been base2 for RAM and base10 for storage. And yes, it's always caused confusion. Just as the convention has always been bits/sec instead of bytes/sec for linespeed, even though this also causes confusion to this day.

The awkward truth is that none of this was ever intended to be consistent. From the day we started selling computers to people who weren't 100% sure what these numbers meant, it's always been "close enough".


Exactly.

If we may now agree that the original, widespread understanding of a KB was of 1024 bytes, and a MB of 1024 KB, and that only later did a widespread impression start to be spread that actually a KB|MB could be 1000 instead, we strike at the very heart of this issue:

Adopting an alternative "standard" spearheaded by particular (and not all) storage manufacturers incentivised in the first instance to use the previously well-established terms KB and MB duplicitously in their favour, strikes me as the worst way to resolve any consumer confusion surrounding it.


>This was the convention commonly understood for the many-decades-long duration of the birth of modern computing.

As countless others already wrote here, that (and all your examples) where the case (and remain the case) for memory.

Disks, network, etc, have used the powers of ten since forever...


Disks are memory, and many floppy disk manufacturers for example seemed perfectly capable of following the long-established convention for memory without (much) issue.


Which is neither here, nor there.

Hard disks are not floppy disks or memory, they always used base10 since half a millenium, and Apple just continues the same, like everybody else.

End of non story.


>M has been the accepted prefix for 1,000,000 since the 19th century

Except when it, of course, isn't. $10M is certainly not ten megadollars.

Even science isn't that consistent about it. The SI base unit for mass is the kilogram. Yet we don't have megakilograms. We have megagrams, but nobody uses them. Instead we use tons. Somehow kilotons and megatons are used though.

If we're willing to accept the above then why couldn't we have stuck with the powers of 2? Digital information at some level is going to become base 2.


> The SI base unit for mass is the kilogram.

This reminds me of something I was unaware of until very recently; the decibel (dB), is one tenth of a Bel. The discussion was that you'll never confuse a B(byte) with a B(bel) because we never specify 10dB as 1B, and we almost never need to specify a 10th of a byte.

But back to your point - we use base10 for everything but RAM. So if we'd stuck to one system to avoid confusion, RAM probably wouldn't have won.


> Except when it, of course, isn't. $10M is certainly not ten megadollars.

The unit of currency is the dollar. There is no units of currency that corresponds to 1M dollars.

The SI system of units devised a systematic way to define derived units that reflect a certain amount expressed in the base unit.

Currency don't have the benefit.


>$10M is certainly not ten megadollars.

Money is not covered by S.I./metric units anyway, so not sure what's the point of this argument.

And even at that, while M here is the "mega" unit, the value 10M is still 10 million (1010^6) dollars (not 102^20 dollars).


That's a good point. We might have to start saying megadollars.

M$10 looks kind of clumsy, though.


Nobody over-promises (or under-promises for that matter) when the meaning of units and prefixes are clear.

Division by powers of 1000 ceased to be an expensive operation relative to user interaction a very very long time ago. And even back when it was, I am sure would the error have been in the order of 10% (as it is now with TB vs TiB), they absolutely would have taken the more expensive but more correct operation.

I just see no advantage in continuing to resist the unification of the meaning of prefixes. And where people prefer the old way for some nostalgic reason, just put the 'i' in there and you are good.


This makes sense when dealing with intrinsic units that also follow the base10 pattern.

Bytes do not. Bytes are made up of 8 bits, and bits are powers of 2. Neither of these facts have any relation to base10.

There is inevitable shoe-horning happening on either side of the argument.

If a new metric was to be introduced to provide for those who wish for "everything to be neat and tidy, excepting for the base unit", they should be the ones using a new term, while the rest of everyone continues using the incumbent one.

Overriding the commonly-accepted and widely-used term with a secondary meaning is a sub-optimum solution.


8 bits is just a convention. 6 and 9 bit bytes were common until the 1980s. Standards still say octet or specify 8 bit bytes.

ISO and IEC standards defined a byte as 8 bits in the 1990s. But they also defined kilo and mega as powers of 10.

Powers of 2 were never used exclusively.


Powers of 2 remain fundamental to bits regardless of how many bits are grouped together.

I've only made the correct claim that the logical continuance the employment of powers of 2 into units of scale was sufficiently widespread as to be considered convention, something those who created the standards you cite also readily acknowledge.


> Nobody over-promises (or under-promises for that matter) when the meaning of units and prefixes are clear.

This sounds like a lame excuse for fraud.

Megabytes had a very specific meaning. Afterwards, for any random reason, that definition was turned upside down to mean about 5% less, and a terabyte to mean 10% less.

If you're going to buy a HD and you end up finding out it provides 100MB or 200MB less than advertised, you'd righteously feel defrauded.


That’s on you for not knowing hard drive manufacturers have always measured in base 10, not base 2. I have a 1 TB drive with 931 GiB of capacity. That due to Windows using base 2, not because I was “defrauded”.

That SD card you have? Base 10. Flash drive? Base 10. Hard drive? Base 10. SSD? Base 10. The only outlier here is RAM being base 2, but that’s because it’s in a grid, so 16 GB is easier to write than 17.18 GB.


Except that all of these things are "memory", and an interim technology called Floppy Disks used base2, or in some cases at least were base2ish (some were 1000 x 1024).

I remember quite clearly at the time HDD's first started proliferating that many (intelligent) people were legitimately fooled and felt cheated.

In fact I wouldn't be at all surprised if there were lawsuits about it.


All the more reason to standardize on what we use literally everywhere else.


Nothing against standardisation.

But like many things on this earth, sometimes the less logical and more confusing is what ends up being the accepted norm.

Why metric and imperial? Makes no sense, is confusing.

Why left side right side driving? Makes no sense, is confusing, causes accidents.

Bits and bytes had a standard, it was widespread, understood, logical and useful for those who most had to deal with them. Then one group went out, very likely seeing dollar signs, and decided to be different. They should be the ones adopting the incumbent, logical standard, not the rest of us adopting their less-useful new one, and definitely not ending up with two conflicting standards with a single lowercase letter separating them.


The logical standard are SI prefixes. Do you proprose that a milligram should become 1/1024th of a gram instead?


That would be completely inconsistent with what I've stated about why standards are desirable. So, we evidently agree on that.

It is not logical to apply the same standard uniformly to everything regardless of its inherent characteristics. It's also not always the best course of action to blindly apply any rule without making exceptions. Bits and bytes already and inherently do not fit into a base10 paradigm, but a base2 paradigm.

Making an exception for the application of scale measurements for those units makes sense and worked perfectly fine, for decades. Confusion was created by those adopting a different standard, for dubious reasons.

The issue of consumer ignorance, which was largely created by storage manufacturers and later now embedded by Apple could have been easily and simply resolved with a tiny bit of education.

Indeed, at least through the 80's it often was.

It's actually not that hard for people to remember one four digit number to multiply or divide by, after they've had an explanation of why that's important and make sense. Building this into the UI along with explanation is also not difficult. Exactly the same as many other important things that are prone to being misunderstood are explained.

Everyone would be better off for it.


> an explanation of why that's important

There is just none


In computer memory, why is 1 Kilobyte equal to 1,024 bytes and not 1,000 bytes?

In the standard metric system, Kilo / K = 1,000 units of something, Mega / M = 1,000,000 units of something (and down in scale also by dividing by 1,000). This applies for anything where the standard singular unit is 1, and assumes it can also be multiplied by, or divided into 1,000 pieces. For example: 1 gram equals 1,000 milligrams.

A computer however, does not have one base unit, but two: the bit and the byte. Neither are usefully divisible by 1,000. Conversely, multiplying the byte by 1,000 hides aspects of its structure that are essential to consider when building and programming a computer system. Considering that the metric system is about notating scale, and that there are issues in both directions of scale when applying the metric system to computers, it made sense to modify it slightly when doing so.

Luckily, there is a number very close to 1,000 that does usefully represent the inconvenient internal structure of a bit and a byte, at least at larger scales. That number is 1,024. Early computer scientists decided that for computers, Kilo / K = 1,024 bytes. It followed that Mega / M was 1,024 x 1,024 = 1,048,576 bytes, and so on. (1 GB = 1,024 x 1,024 x 1,024 = 1,073,741,824 bytes, or close to 1 billion bytes).

This "1,024 rule" for the computer application of metric system, matches the physical structure of computer memory exactly - and crucially, the parts of a computer that physically access memory - making it straightforward for programmers and hardware designers to work with and talk about.

---

And, from an alternate 1990's addendum to the previous:

It also means that when you see a Hard Drive advertised with a size of 240 MB, you can be sure that you are in fact getting 240 x 1,048,576 bytes of storage, or 251,658,240 bytes (well over 251 million bytes). That 251 million is, on appearance, quite a bit "more" than 240 MB is one of the bonuses of the "1,024 rule" for the computer metric system that can impact you directly. You're welcome!


I don't see any 'problem' caused by the fact that we nowadays standardized on SI prefixes. In the olden days, you would get inaccuracies like the so called 1.44 'MB' floppy disk (which wasn't very floppy, either) by the insistence on the illogical dual meaning of the prefixes.


Exactly. It was, and is illogical to have a dual meaning.

Sticking with the first, widely-proliferated meaning we already had, which existed because of its usefulness, along with its direct honouring of the structure of what it was describing, is IMO the superior choice. This versus cementing the source of the confusion - the secondary meaning - even further by introducing it not only as an additional standard, but also as the de facto, nullifying years of text and understanding and rendering it inaccurate.

To me, that was, and is absolute madness.


There is no use in this obfuscation.


> All else being equal, I see it as better to under-promise and over-deliver than the reverse:

But "over-promise" could mean multiple things. If I'm buying a hard drive "over promise" means larger. If I'm figuring out how much space a game will take up on my hard drive before I buy it, "over promise" means smaller.


File systems don't come in power of 2 sizes. They come in arbitrary numbers of blocks. Most storage devices have a power of 2 block size. But not all.[1]

[1] https://en.wikipedia.org/wiki/Data_Integrity_Field


Says who?

Okay, that question actually has an answer: the IEC. Unfortunately, lots of software disagrees with them, including Windows, because for some strange reason the IEC thought it was a good idea to redefine an existing measurement and then add a new term to mean what the old term used to mean.

The result was 100% predictable. Files now have two different sizes depending on which software you're using, and it's very difficult to tell which definition is in use. Even worse, the difference between these measurements is quite large, and converting between them isn't simple.

As much as I wish the United States used the metric system, I don't think we should redefine an inch to equal two centimeters...


>Says who? Okay, that question actually has an answer: the IEC

Well, also the S.I?

Preffix "mega", initial "M", short for 10^6 since 1873...


MB never consistently meant MiB.


Since when? It was defined as such originally and stood for decades without much controversy until computers became more mainstream and self-interested parties started changing the meaning.


Disk and networking hardware manufacturers have used base 10 for ages.


Including Ethernet in the 1980s. And disks in the 1970s.


>It was defined as such originally and stood for decades without much controversy until computers became more mainstream

M (as in MB) has meant 10^6 (1,000,000) in the S.I / metric standard since the 19th century...


In e.g. 1985 were there really people measuring a kilobyte as 1000 bytes? I know floppy disk capacities used base-2 measurements...


Bus and line speeds always used powers of 10. Different disk formats used different conventions.[1][2]

[1] https://en.wikipedia.org/wiki/Kilobyte#Examples

[2] https://en.wikipedia.org/wiki/Megabyte#Definitions


Floppy disks were a mix of bases 2 and 10.


It may make sense for SI to stick to physical units business.


And there's already a unit for "amount of substance": the mole (symbol mol). 6.02214076e23 bytes is rather more than one encounters every day, but prefixes can handle that. A zeptomol of data is 602.221476 bytes, an obviously convenient number for indivisible amounts of data.


Maybe they tried to, but nobody could agree on a time to do it. :D


>1MB is one million bytes, and files do not intrinsically come in power-of-two sizes.

Given the foundation of computing is binary, yes, files actually do come in power of two sizes.

1 and 0. Two. Base two.

From then, the way our bits, then bytes are structured.

8 bits to a byte for 8 bit addressing.

That's why 1KB was always 1,024 bytes.

Base 2: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024.

Recognize some of those numbers? Common ram sizes, also the increments in how many bits our architectures have been. These numbers remained constant because the foundation of computing was always Base 2.

Using Base 10 to calculate total storage space is a cheat when sector sizes are Base 2. There's no reason to use a different system (Base 10) for storage if Ram is Base 2 unless you're trying to inflate the specs of how much storage is being sold with a system.

Which is how the 1 MB = 1,000,000 Bytes bullshit originally started.

Until you re-format storage and ram sector sizes to be Base 10, and along with it, the number of bits of addressing our computing system uses, (Hello brand new architecture!) then there's no way to justify the renumbering of storage to Base 10.


Additionally, file systems allocate in blocks, so the actual amount of storage is based on number of blocks and isn’t just offsets of bytes.


Not really, in information technology megabyte often is calculated via (convenient) binary multiples, as has been for many decades.

As often in life there is not a single truth.


OK but why Apple then says "GB" for RAM sizes in its marketing materials rather than these bullshit units? I guess "17.179869184 GB RAM" doesn't have the same ring to it?


Hard disks are typically sold with 1000-based units and memory is typically sold with 1024-based units: the market is inconsistent, and therefore so is the user interface; if you by 512 MB of RAM you get 512 MiB, but if you buy 1 TB of disk, you get only like 0.9 TiB, and so if you have a UI showing you how much space a file takes up it should (sadly) likely work different from a UI showing you how much space a process takes up :(.


I am very aware HD manufacturers pushed through the megabyte rebranding via SI back in late 1990s. There is no good technical reason to have inherently power of two quantities in power of ten measures.

The reason for re-standardization effort was deflection of legal responsibility for misleading marketing:

https://en.wikipedia.org/wiki/Byte#Lawsuits_over_definition


Whats inherently power of two about them?

I have two PS/2 era drives that predate your "rebranding". One, 20MB (actual 21.3MB or 20.3MiB) has a CHS geometry 612x4x17. The other, 40MB (41.5MB or 39.5MiB) has a CHS geometry of 1038x2x39.

None of these values are powers of two (other than heads, because platters happen to have two sides)

I'd argue that all we're seeing here is the long, long tail of lazy shortcuts taken in the early-home-computer era. Not a truth, a lazy shortcut - that software took as convention and hardware didn't.


Addressing and alignment of computer memory on binary architectures is happening on binary boundaries due to arithmetic properties. You can not buy a 1,000,000,000 bytes RAM chip for that reason.

Magnetic and paper tape, drums, delay lines and hard disks are (imperfect) hacks to have more memory due to cost of RAM.


> due to cost of RAM.

And its volatility.


TIL that hard drive platters are two sided. It makes perfect sense you can store data on both sides, yet never occurred to me before.


On a local scale, this makes sense. Make the units of data consumption match the units of data capacity. The files are measured in powers of 10, the disks are measured in powers of 10.

If the disk was sold on its power-of-2 capacity, then display the file sizes in their power-of-2 sizes.

On a larger scale, this is a giant mess. Apple is the only one who'd actually try and fix this. Both in terms of power (hardware & software) and in clout.


> Both in terms of power (hardware & software) and in clout.

I'd also add their "bravery", similar to dropping the 3.5mm jack.


worth noting this context free link is 10 yrs old.


I'm not sure everyone will ever agree on this.

I was amused to discover a few years ago when I had to order an E1 network connection at 2 Mbit/s that it was actually 2048000 bit/s, perhaps what you might call a 2 kikbit/s line now-a-days ;-)


I still say the US Office of Weights and Measures should require all computer storage (either RAM or SSD/HD) in the US be measured in base 2 units. This continued base 10 usage in a binary world is confusing and frankly done to rip-off consumers.


I disagree. As Michael Bolton said, "Why should I change? He's the one who sucks!"

Kilo, mega, and other prefixes predate computer storage, and SI is beautiful because it is consistent. The computer industry decided to use standard prefixes with non-standard (base-2) quantities. Now let's cut our losses and return to consistency with everything else.


You're not disagreeing. Parent is talking about the measurement units changing, whereas you're saying the meaning of the SI prefixes shouldn't change. You can have both: require KiB, MiB, etc.


How about micro-inches, or kilo-furlongs. Let's get chaotic in here.


Your proposal lacks what is commonly called a "motivation".


So you’re saying “sow discord” is a no-go


Hail Eris!


I'd be all for that. Please standardize your measurements to one unit, and use constant logarithmically incrementing indicators for larger amounts of these units. Better yet: do not base them on (or name them after) a unit that differs for each person (why does my foot measure 0'11"?)


> constant logarithmically incrementing indicators

Exponentially increasing? 10^3, 10^6, 10^9, 10^12

(I kind of hate being that guy, but I mean it in a positive and helpful sense)



Really vibe with this


Kilofeet are a thing.


Pleasing to say, if nothing else


The problem is that “kibibyte”, “mebibyte”, “gibibyte”, etc. are extremely ugly words whose existence is fundamentally offensive. If you heard anyone say them aloud you’d think they were a toddler with a speech impediment.


I always thought it should just have been "binary/decimal kilobyte" etc which would have neatly sidestepped the awkwardness of saying those words out loud and would have also likely satisfied most people who preferred using the traditional-within-computing binary meanings. In theory that would be universally applicable to any units and any base. Instead we have this ugly linguistic hack.


I'm sure they were picked specifically because they sound bad. Using only the the first letter would probably work for the US (e.g. kbytes) since it wouldn't step on SI's toes.


Looks like me-bit-byte But yeah, phonetically they pretty much suck


Good point, I see I may have misunderstood the parent. Thanks.


Using MB and MiB is more consistent than using 2 meanings of MB. But it's less consistent than using SI units for everything.


Ironically, "consistency" is ambiguous here.

Using MiB avoids confusion, misuse, and ambiguity.

Uniformity (what you're also calling "consistency"), if it's even warranted here, would be far lower priority and could wait.


Sectors are 512bytes or 4096bytes and there are base-2 prefixes. Using base 10 in a base 2 world is consumer fraud and they only do it because they can deliver less.


Sectors come in other sizes.[1] And mega would mean million still if they didn't.

[1] https://en.wikipedia.org/wiki/Advanced_Format


Enjoy your 17.179869184 gigabytes of RAM.

The hardware is using sizes in powers of 2 because it's the only sensible thing to do, and numbers would be very annoying for users if the units didn't account for it.


I will enjoy 16 GiB of RAM, this is an already solved problem.


Do you want SI units or not?

Changing to gibibytes does very little - the users confused by 1024 do not know about the alternate prefixes.

Furthermore, if you just add the "i" to all measurements, then you have accomplished nothing with regards to SI prefix proliferation. Everything but one dialog in a single OS will still use 1024, and HDD manufacturers will still use 1000.


https://xkcd.com/927/

I say this because most regular folks don’t even know what a gigabyte is so asking them to understand what a gibibyte is does not really “solve the problem” of consumer understanding.


The xkcd isn't really relevant here, there are only 2 competing standards here and the proposal is to pick the other one.


There were two standards (different prefix definitions) - the kibi/mibi/... line of prefixes was made as a solution.

So now there are three standards.


Apparently you're meant to use kibibyte for 2^10 (1024) bytes, with the prefix kilo being the International System of Units' version of 1000.

https://en.wikipedia.org/wiki/Byte#Multiple-byte_units


Yes, I would prefer the US government to require that prefix.


The funny thing is kibi is short for kilobinary which still has kilo in it!


One of the responses in that discussion:

> However, if you think about, it does make sense for the computer to use the same standard as the HD manufacturers.

No, it makes more sense for hard drive manufacturers to stop using a system that artificially inflates their disk size advertisements.


1 MB = 1 million bytes. Formatted capacity less.

Somehow they're getting away with this.


Meaning, there are 1 million bytes of storage, but pretty much all filesystems use some of those bytes to represent information about the files in addition to the files themselves. Hence, formatted, the resulting filesystem will have capacity less than that.

You could, if you really wanted to, write 1 million raw bytes to the disk. But you'd need special software to read and write it, because de facto software expect there to be a master partitioning table or whatever it's called.


I understand how file systems work, but then the properties window, in any OS, shows you the raw size anyway. Probably minus the tiniest fraction that the partition table occupies, but still.

My point was that storage device manufacturers somehow get away with redefining units. No one else does this. Imagine if you bought a 1L bottle of milk, only to see in fine print that "1L = 800 ml".


It’s more equivalent to “this package is sold by weight not volume”. You’re getting what you paid for (16 oz of cereal, not that sized box). They’re not redefining measurements (like 1L=800mL would do), just measuring it in a different way.


They obligatory HDD KMA disclaimer.


Networking is also a binary world, yet nobody is using binary prefixes.

Storage manufacturers have been using decimal prefixes for decades, you should probably get over it at this point.


Disk manufacturers use a hybrid system, don't they, since the sectors are powers-of-two but they use decimal multipliers to inflate the size beyond that? So that a "marketing gigabyte" might actually be a megakibibyte.


Don't forget 1.44M floppies.


What is really funny is the size is really 1440 KiB, which is not 1.44 MiB and is also not 1.44 million bytes. So in that case it was a mixture of the two units (they would have been better off calling them 1.47 MB, as the actual size was 1474560 bytes, or 1.406 MiB which is the actual size divided by 1048576).


Those are like 3M floppies, but not quite half as good, right? (-:

* http://jdebp.uk./FGA/1mb44-is-not-a-standard-floppy-disc-siz...

Or are they not quite half as wide?


What do you mean? Networking is definitely done in binary standards. Your router/switch/NIC is almost definitely rated in a bitrate standard.


Bitrates are base 10...


Yep. Communication is its own confusing world given the odd packet sizes. Look up a jumbo frame discussion and reading it efficiently into pages of memory for a bit of a head bender.


IEEE units are base 10. 10Gb/s is 10,000,000,000 bits per second.


How about 10 bit bytes then, would only make more sense, right?


Fibre Channel and Infiniband tried that.


By "US Office of Weights and Measures", I take it you are referring to NIST's Weights and Measures division? They do not have the power to require anything, they publish standards documents and make reference measures available to the public if someone needs to calibrate.


Congress is capable of writing legislation to force a measurement.


Congress passed legislation preferring the metric system.[1]

[1] https://www.law.cornell.edu/uscode/text/15/205b


That would only make sense if these storage mediums had to have sizes exactly aligning on them, but that isn't the case.


If memory is going to be measured in powers of two, shouldn't disks be, so that you can easily tell how many multiples of your memory size they store?


Most of my files aren't memory dumps.


Title needs (2011)



But modern macOS versions still do this.


Mandatory XKCD.[1]

[1] https://xkcd.com/394/


Yes. And it drives me crazy. There is a "defaults write" command to fix it once and for all, right? Please tell me there is.


There was this, but it's broken since ages https://www.google.com/amp/s/brkirch.wordpress.com/2014/11/0...



This is nothing new. Just another example of corporations screwing over consumers with ambiguous/confusing measurements.

See e.g.:

- ISPs advertising network speeds in megabits per second instead of megabytes (who ever uses megabits otherwise???)

- Banks advertising interest-bearing accounts with APY and advertising loans with APR.

Do folks have other good examples? I’m sure there are lots.


The whole megabits/gigabits thing seems like a holdover from when internet speed was measured in bits. Not kilobits, but bits. 300 baud (bits/sec) modems and the like. When 1200 baud was reached, no one wanted to be the one to switch to a “lower” number of ~150 bytes/sec.

EDIT: baud is not exactly the same as bits/second. But in those times, it was pretty much the same. https://stackoverflow.com/questions/20534417/what-is-the-dif...


This may be a historical explanation, but it also seems a tacit agreement with the point above, when it says “no one wanted to be the one to switch to a ‘lower’ number.” No one measures anything in kilobits or megabits today (nor has for decades)—except ISPs measuring the speeds they promise to customers.


Sure they do - nearly all networking gear is sold by bits/sec, e.g. gigabit Ethernet, 10Gb Ethernet, and so on.

Media encoding also commonly uses bit rates, e.g. 320kbps MP3.


Your networking equipment example goes to the same point. Why do I care how many bits are transferring per second? I don’t. I want to know bytes, since everything on my computer is measured in bytes.

Regarding media encoding, there I’m less sure. I guess those values were originally in small enough absolute values, and have not continued to climb exponentially, such that measuring in bits maybe continues to make sense.

Anyway, thanks for sharing those examples.


baud and bps are not actually the same thing, although in the era of 300 baud they may as well have been.


I disagree that HDD manufacturers are screwing anybody over by selling in power of ten units, and bits are actually a more natural unit than bytes (the 8-bit byte is arbitrary and there have been computers with 6-bit bytes for example), but your list is fun so here are more examples:

* ISPs selling “up to” speeds.

* Screen sizes measured in inches-diagonal, without reference to aspect ratio.

* Cost of US products advertised without sales tax.

* Lots of things that “only cost X per day” to make the amount look small compared to the consumer’s monthly income.

* Supermarkets purposefully showing you price-per-unit for one product and price-per-weight for another allegedly comparable product.

* “Miles per gallon” still being used in countries where fuel is sold by the litre.

* Purposefully hard to multiply numbers used in monthly instalments. “Only 27 payments of $79!”

* Use of 9’s. “Only $999.99!”

* Food and drink manufacturers which are legally allowed to describe the quantity of an ingredient as zero if it is below a certain very small amount.

* CPUs sold as “up to X GHz” where that speed can only be sustained in specific and unmentioned thermal scenarios.

* Any product where the price is kept the same over time by decreasing the size over time, without mentioning it.

* Misdirection away from an important metric, like how AWS shouts about the great per-GB storage cost of S3 but doesn’t shout so loudly about the egress data transfer rate.

* Getting really basic now: simply putting a number in the product name to imply superiority. This is why Microsoft had to call the second Xbox the 360: because “Xbox 2” would sound less than its main competitor, the PlayStation 3.

Some of these probably go beyond the theme of misleading measurements and into the realm of my general hatred for the marketing profession.


I think it's more consumer friendly when the product number is comparable to competitors, especially when many buyers don't have much familiarity with the products. A parent choosing between an Xbox 360 and PS3 before Christmas is likely better off.

Similarly, Samsung jumped from S10 to S20 for the 2020 model year, which makes great sense to consumers despite being nonsequential.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: