Kibibyte and mebibyte - WTF? - Page 1
Forum section: electronics / general

author: david77
author_rank: Frequent Contributor
timestamp: November 09, 2013, 10:20:59 pm
content: Was just watching yesterday's QI and heard about the kibibyte.http://en.wikipedia.org/wiki/KibibyteSubsequently also found the mebibytehttp://en.wikipedia.org/wiki/Mebibyteand also the gibibytehttp://en.wikipedia.org/wiki/GibibyteThis really annoys the hell out of me. I guess I'll just ignore it.

author: c4757p
author_rank: Super Contributor
timestamp: November 09, 2013, 10:34:56 pm
content: QuoteWell, since "byte" is not an SI unit, what the flipping hell does it matter?

author: Unknown
author_rank: Unknown
timestamp: November 09, 2013, 10:36:09 pm
content: I agree, just stick to the decimal prefixes and ignore the confusing base-2 units.

author: Monkeh
author_rank: Super Contributor
timestamp: November 09, 2013, 11:39:46 pm
content: Quote from: c4757p on November 09, 2013, 10:34:56 pmKilo, I'm afraid, is an SI prefix. Redefining it to suit you is just stupid.

author: nitro2k01
author_rank: Frequent Contributor
timestamp: November 10, 2013, 12:48:20 am
content: The binary prefixes are perfectly reasonably because of how solid state computer memories (ROM, RAM) are physically constructed and addressed. Your other options are to abuse the SI prefixes to work in orders of 1024 instead of 1000, or to write memory sizes like "4.3 GB" (that is, 4*1024*1024*1024, or 4294967296 bytes) instead of "4 GiB".These prefixes were invented to resolve an ambiguity in a specific context. It's not like people will start talking about "kibimeters" anytime soon.

author: amyk
author_rank: Super Contributor
timestamp: November 10, 2013, 02:43:56 am
content: I prefer the usual SI prefices with the understanding that memory is measured in powers of 2 instead of 10, the "binary prefices" just sound silly and almost no one uses them...

author: Monkeh
author_rank: Super Contributor
timestamp: November 10, 2013, 03:01:28 am
content: Quote from: amyk on November 10, 2013, 02:43:56 amSo where else are we going to add the 'understanding' that the prefix no longer means what it is meant to mean?

author: IanB
author_rank: Super Contributor
timestamp: November 10, 2013, 03:40:51 am
content: Nothing is meant to mean anything. The English language is generally descriptive, not prescriptive. If common usage describes 1024 bytes as one kilobyte, then that is what it is. Since nobody in computer science (except disk drive manufacturers, bless them) thinks that one kilobyte is 1000 bytes, then no ambiguity arises. I know without ambiguity that 1 km is 1000 m and that 1 KB is 1024 bytes. Similarly I know that 1 MB is 1024 KB.

author: Unknown
author_rank: Unknown
timestamp: November 10, 2013, 03:59:51 am
content: Quiz: how long does it take to transfer a 1 TiB (8 Tibits) file over a gigabit ethernet connection assuming no overhead? Answer: about11008800 seconds, not 8000, since network bandwidth is also measured in base 10. Memory size is about the only thing always measured in base 2, and for some reason early OS developers thought it was a good idea to extend this to file size since base 2 calculations are faster on binary computers. Disk size, network bandwidth, memory bus bandwidth, etc are all base 10. How long can a scope sample at 1 GS/s if it has 1 Mpts of memory?So no, it's not obvious from context how large a 500 GB partition on a 1 TB drive is. Is that 50% or 55% of the total size of the drive?

author: IanB
author_rank: Super Contributor
timestamp: November 10, 2013, 04:23:15 am
content: So how can we get people to describe disk size, network bandwidth, memory bus bandwidth etc. properly, instead of using this silly base 10 nonsense?

author: Unknown
author_rank: Unknown
timestamp: November 10, 2013, 04:36:55 am
content: 931Mbit/s ethernet doesn't sound as nice, for starters. It's not like they only started using base 10 recently, it's just that CS people have been sloppy in this regard by mixing base 2 and base 10. Historically they could get away with it since the difference between 1 kB and 1 kiB is only 2.4%, but differences get larger now we're talking about TBytes and up.Your 1 GS/s scope doesn't sample at 1 GiS/s. And neither does that 3 GHz CPU run at 3 GiHz or your DDR3-1600 memory at 200 MiHz, which means any multiple of this frequency (eg. bandwidth, FLOPS) is also going to be base 10. So you'll always have an overlap area where base 2 and base 10 are both used. Wouldn't it make sense to distinguish these somehow? And no, you're not going to get the rest of the world to change their definition of the km, kg and kV just to make life easier for computer memory makers.

author: IanB
author_rank: Super Contributor
timestamp: November 10, 2013, 04:48:59 am
content: Powers of 2 only need to be used when measuring bits. So 1 Kb/s is 1024 bits per second, but 1 kHz is 1000 Hz. I have no reason to be confused about my scope sample rate or CPU frequency since neither is a measure of bits or bits per second.I didn't know ethernet bit rates were not what they claimed to be, but thanks for letting me know. I have just lost a bit more respect for computer industry marketing people.

author: Monkeh
author_rank: Super Contributor
timestamp: November 10, 2013, 04:50:26 am
content: Quote from: IanB on November 10, 2013, 04:48:59 am

author: nitro2k01
author_rank: Frequent Contributor
timestamp: November 10, 2013, 05:18:50 am
content: Quote from: alm on November 10, 2013, 03:59:51 amIncorrect. You confused bit and bytes.A 1 TiB file is 1024^4=1,099,511,627,776 bytes.A gigabit connection can transfer (again assuming no overhead) 1,000,000,000 bits, or 125,000,000 bytes per second.So the answer is 1,099,511,627,776 / 125,000,000 = ~8796 secondsQuote from: IanB on November 10, 2013, 04:48:59 amIncorrect. (Data) bits have nothing to do with it per se. Ethernet is using bit rates based on base 10, so there nothing in that particular example that warrants use of base 2, per se.Where base 2 comes from is the physical layout of memory chips. You have an array of memory locations with a number of rows and number of columns which will both be a power of 2. This follow naturally from the way the address lines are used. A number of address bits (n) will be fed into a demultiplexer which will output one of 2^n rows or columns. There is no such "intrinsic reason" to use binary prefixes in the example "1024 bits per second". 1024 is just an arbitrary data rate. The array size of solid state memories is not arbitrary, but by design.Just to be clear, I wouldn't want to force anyone to use binary prefixes. What I would encourage people to do is use whatever prefixes they use correctly. k, M, G, T are base 10 prefixes, period. If you use them for RAM, you ought use them correctly and say for example "4.3 GB", as described in my previous post.Quote from: alm on November 10, 2013, 04:36:55 amThis is an important point. For those may not get it, the difference between the binary and decimal prefixes increase for the bigger prefixes, since it accumulates for every multiplication by 1024.ki = 1024 -> 2.4% differenceMi = 1048576 -> 4.9% differenceGi = 1073741824 -> 7.4% differenceTi = 1099511627776 -> 10% differenceAnd it grows - no joke - exponentially.

author: Unknown
author_rank: Unknown
timestamp: November 10, 2013, 05:35:02 am
content: Quote from: nitro2k01 on November 10, 2013, 05:18:50 amDoh! Editted.Quote from: IanB on November 10, 2013, 04:48:59 amThe problem is that bytes often get multiplied by clock rates. For example sampling at 1 GS/s in single (8-bit) channel mode for 1 second will produce 953 MiB of data. Filling up 6400 MiB of memory via the DDR2-800 memory bus, which is 64 bits wide and runs at 800 MT/s, giving it a bandwidth of 6400 MB/s, takes 1.05 seconds. All very clear and consistent; not at all a mess.

author: Kjelt
author_rank: Super Contributor
timestamp: November 10, 2013, 08:09:41 am
content: Quote from: david77 on November 09, 2013, 10:20:59 pmThat,s exactly the mentality why we got in this predicament in th efirst place.Oh yeah lets ignore it nobody is going to notice.Now hdd manufacturers had lawsuits because their stated capacity on hdd,s was too low, while in reality they were the only ones doing it right. Oh well since a lot of people don,t even want the SI in this world go and make you,re own standard, or MEBI thats not such a good idea?

author: apelly
author_rank: Unknown
timestamp: November 10, 2013, 09:26:49 am
content: Are these formatted sizes?

author: TMM
author_rank: Frequent Contributor
timestamp: November 10, 2013, 02:14:12 pm
content: Quote from: apelly on November 10, 2013, 09:26:49 amNo, they are exactly the same size, just different units. Like Kilograms and Pounds... e.g. A 1TB harddrive is 931GiB whether it is formatted or not.Quote from: Kjelt on November 10, 2013, 08:09:41 amEveryone should sue Microsoft for having Windows count everything in powers of two and display SI prefixes. Linux displays the correct prefixes.

author: c4757p
author_rank: Super Contributor
timestamp: November 10, 2013, 02:18:21 pm
content: Quote from: apelly on November 10, 2013, 09:26:49 amThere is no such thing as a "formatted size". Your 500 GB hard drive holds 500 GB exactly (once you define what a GB is). The fact that the operating system puts tables of contents into it is no fault of the hard drive (and will vary from system to system depending on configuration, anyway, so it's futile to list). Trying to list a "formatted size" of a hard drive is like trying to list a "printed size" of a piece of paper, accounting for margins.

author: AndrejaKo
author_rank: Frequent Contributor
timestamp: November 10, 2013, 02:23:51 pm
content: Interesting that nobody mentioned the dreaded 1.44 MB floppy yet! The size was derived by mixing binary and decimal prefixes, so we have formatted capacity of 1440 KiB, which we divided with 1000 to get 1.44 kKiB.

author: rr100
author_rank: Frequent Contributor
timestamp: November 10, 2013, 03:25:33 pm
content: Yea, the floppy was interesting!With the CDs they went to full binary (MiB) and then with the DVDs to full decimal I think. Nowadays also the USB sticks (especially the bigger capacities) are decimal (of course, why should they give you extra capacity for free).I never understood the tenacity of non-technical people towards the binary prefixes. More scientifically oriented people usually can't conceive that 1 GX/GY can mean anything than 1 X/Y, instead of 0.931322574615478515625 X/Y or 1073741824 X/Y. But for laymen I think they feel there's something special and surprising knowing what they learned once that sometimes K mean 1024 instead of 1000 and they don't want to let it go. However it is extremely detrimental for any practical purpose to have those non-decimal units because is just hard to convert between them without a calculator. If you have 40GB (decimal GB) left on a disc and you need to write on it 41 234 567 890 bytes (which is how the info is presented sometimes) then you know, you just can't write them. However if you have 40 GiB space then you'll be able to fit those 41 234 567 890 bytes and have some extra space. But you certainly can't tell immediately unless you're pretty good at this already.

author: nitro2k01
author_rank: Frequent Contributor
timestamp: November 10, 2013, 03:39:08 pm
content: Quote from: c4757p on November 10, 2013, 02:18:21 pmThe overhead is actually quite predictable given a certain disk size and file system. And in particular, what formatted size usually refers to in this context is the advertised size on the packaging. Many manufacturers print both the total and formatted size on the packaging, because this is required by consumer protection laws in some places. Hopefully they have enough quality control to predict the formatted size of the particular drives that they are shipping.

author: Kjelt
author_rank: Super Contributor
timestamp: November 10, 2013, 04:08:16 pm
content: Quote from: rr100 on November 10, 2013, 03:25:33 pmWhat's wrong with just letting the computer take care of this, it will tell you within a us if it fits or not. Because what you are suggesting means in fact that we should abandon the binary system al together and switch computerscience into a decimal system since humans are not great in binary arithmetic.Oh but wait is this not why we invented the computer to take care of some hard mathematical problems in the first place

author: rr100
author_rank: Frequent Contributor
timestamp: November 10, 2013, 04:19:33 pm
content: I am not suggesting anything, this is in your imagination.I just said that it is not good to have to reach for a calculator for the most simple things, if you like to do it anyway feel free.

author: sync
author_rank: Frequent Contributor
timestamp: November 10, 2013, 04:53:20 pm
content: Quote from: Kjelt on November 10, 2013, 04:08:16 pmYes, CS should switch to decimal SI prefixes. They are used for representation to humans and humans can easily multiply or divide by 1000 but not with 1024. I really hate it to use a calculator to convert file sizes from GiBs to bytes.Bit and byte should become SI units. Then this bullshit ends.

author: IanB
author_rank: Super Contributor
timestamp: November 10, 2013, 06:12:48 pm
content: Quote from: sync on November 10, 2013, 04:53:20 pmBut bits and bytes are not decimal. A long time ago industry settled on a convention of 8 bits to a byte rather than, say, 10 bits to a byte, and so there will never be a base 10 scaling between megabits and megabytes.The problem of remaining disk space mentioned above would not require a calculator if all capacities were quoted in 2-based arithmetic. For instance if you had 40 GB free on your disk the system could say "41,943,040 KB free, 41,956,352 KB to be written". You can immediately see that the data won't fit.Are we really suggesting that disks should have 500 byte logical sectors, rather than the 512 byte sectors they have now? (Or 4096 byte--4 KB--sectors on newer disks.) It's most efficient of course to transfer data to and from disks (or across the wire) in units aligning with the size of memory pages. There is no reason other than marketing that disks have 1024 byte kilobytes, but 1,000,000 byte megabytes.Microsoft apparently agrees with this.

author: rr100
author_rank: Frequent Contributor
timestamp: November 10, 2013, 06:53:51 pm
content: a. you are wrong, a byte isn't always 8 bitsb. even if it would be there is no reason why this should translate to the representation of some units to humans. Science doesn't work particularly better if we use some prefixes instead of others, we could as well use the full numbers or some exponential notation but when we chose some notation we'd better make it easier on ourselves and have it straightforward (as in not having to take out the calculator to find out how much is 17GB in KB) and consistent (as in meaning the same without having to guess the context, with the bonus that mathematics still works as expected, as in you can simplify k/k without any complications)c. with all the ECC and spare sectors we are very far from any "natural" powers of 2. I don't think there's any hard drive on the market that has a capacity an integer number of GiB, never mind TiB. In any case I don't understand why all the arguments that we will give up computer science or that we would be making things extremely inefficient bydisplaying(because this is what we're talking about) some value divided by 1000 instead of 1024.

author: Kjelt
author_rank: Super Contributor
timestamp: November 10, 2013, 07:01:00 pm
content: Quote from: rr100 on November 10, 2013, 04:19:33 pmThen I have misread your post.Still your example is flawed IMO, if you want to write 41 234 567 890 bytes then you still miss a lot of information. How many files, which filesystem, how was it formatted (which allocation unit size / how many bytes overhead per file) etc.No computer user is ever going calculate this (perhaps as a theoretical example in class but not on a daily basis as a user) , he/she is just simply going to start the copy process and let the computer find out if it fits or not. And if it is a smart computer with a smart OS it is going to tell you that right away.

author: rr100
author_rank: Frequent Contributor
timestamp: November 10, 2013, 07:03:09 pm
content: @IanB:And now that I think even more Ireallydon't get how the fact that because there are (usually)"8 bits to a byte rather than, say, 10 bits to a byte, and so there will never be a base 10 scaling between megabits and megabytes"10^3 is 1000 yes, but 8^3=512 ! So what is in your mind the algorithm that makes 8 to 1024 what 10 is to 1000 ?

author: rr100
author_rank: Frequent Contributor
timestamp: November 10, 2013, 07:10:49 pm
content: Quote from: Kjelt on November 10, 2013, 07:01:00 pmIt doesn't matter, it can be even one file. The point is that it's ridiculos to not be able to make immediate calculations between prefixes. Ultra-simple example, if you would have the same non-sense in EE. You measure a resistor, it's supposed to have 14.7 KOhm (and let's say it's the binary K, called nowadays Ki). It shows on the multimeter 15000.0 ohm. Now, QUICK, is this more or less than 14.7K(i) ?

author: marshallh
author_rank: Unknown
timestamp: November 10, 2013, 07:12:42 pm
content: Why stop there? You know, a "byte" actually can mean anything! even 9 bits! So let's take things to their logical conclusionsI propose the following:1. New unit: "butts" for explicit denotation of 8 bits, assuming a bit can be on or off, and meaning the same as an octal;2. New postfix: "poop" to denote power of 2 numbers instead of decimal.Example:megapoopbutts- 1048576 sets of 8 bitsgigapoopbutts- 1073741824 sets of 8 bitsYes, that is how stupid this "mibibyte" crap sounds like. And now it's infecting the rest of wikipedia.

author: rr100
author_rank: Frequent Contributor
timestamp: November 10, 2013, 07:18:42 pm
content: We already have a unit for 8 bits, it's called octet.These discussions with kilo=1024 and byte=always 8 bits are fine, just like using "Xerox" for anything. Everybody understands what you mean and it doesn't matter, until it does.

author: IanB
author_rank: Super Contributor
timestamp: November 10, 2013, 07:20:06 pm
content: Quote from: rr100 on November 10, 2013, 06:53:51 pmIf I said a byte is always 8 bits I would indeed be wrong. But I didn't say that, so I'm not.

author: rr100
author_rank: Frequent Contributor
timestamp: November 10, 2013, 07:29:50 pm
content: Can you elaborate on the more interesting point and tell us how is 1024 to 8 as 1000 is to 10 ?

author: sync
author_rank: Frequent Contributor
timestamp: November 10, 2013, 07:30:38 pm
content: Quote from: IanB on November 10, 2013, 06:12:48 pmThat is a good example why the binary prefixes are bad for presentation to humans.The OS show 40.0GB free not 41943040KB. So I have to use a calculator.With decimal prefixes this is easy. 40GB are 40000000KB. No need to calculate.And the sole purpose of the prefixes are to present a big (or small) value in a convenient format to humans. Computers don't know and work with Kilo, Mega, etc internally.QuoteThat's not the point. It's about the usage of prefixes. And they should be decimal based. Except for the few cases when there is a physically defined power of two value, e.g. page sizes, raw solid state memory, ... For this use KiB, etc.But disk and file sizes are not defined by power of twos. So it makes no sense to use binary prefixes. And disks sizes traditionally uses decimal prefixes. I saw a disk specification from 1960ies with uses 1 kiloword = 1000 words. Bandwidth also uses decimal prefixes. In the today computer world a MB is not equal a MB!QuoteMicrosoft is the authority of truth?I found a few totally wrong claims on support.microsoft.com.

author: IanB
author_rank: Super Contributor
timestamp: November 10, 2013, 08:03:37 pm
content: Quote from: sync on November 10, 2013, 07:30:38 pmThere I think the answer is simple. Measure in bits rather than bytes and use the decimal prefixes for bits as has always been done in communications contexts (modems and network links).1 kb = 1000 bits. 1 kb/s = 1000 bits per second.Similarly 1 Mb = 10^6 bits; 1 Gb = 10^9 bits, and so on.Now your 40 GB becomes ~340 Gb (343.597 Gb). All nice and decimal.

author: Kjelt
author_rank: Super Contributor
timestamp: November 10, 2013, 08:08:10 pm
content: Quote from: sync on November 10, 2013, 07:30:38 pmI think you need another OS see picture.

author: sync
author_rank: Frequent Contributor
timestamp: November 10, 2013, 08:11:45 pm
content: Quote from: IanB on November 10, 2013, 08:03:37 pmGreat! Now a byte is 8.58993 bits.

author: Kjelt
author_rank: Super Contributor
timestamp: November 10, 2013, 08:30:22 pm
content: Quote from: rr100 on November 10, 2013, 07:10:49 pmYour example is besides the point since it is a decimal system example. It is not logical to use binary prefixes in a decimal system.And that is exactly the truth the other way around, it makes no logical sense to use decimal prefixes in a binary based value system

author: sync
author_rank: Frequent Contributor
timestamp: November 10, 2013, 08:37:02 pm
content: Quote from: Kjelt on November 10, 2013, 08:30:22 pmRight! But i never saw a prefix on a binary value. I saw 35KB but never 0b100011KB. And the 35 is decimal.

author: Kjelt
author_rank: Super Contributor
timestamp: November 10, 2013, 08:58:52 pm
content: Quote from: sync on November 10, 2013, 08:37:02 pmI am getting confused now, your point is that in a binary based value system one shall not use decimal or hexadecimal notation for values? HmmmWell the kilo is actually a decimal based power factor of 3 (103) and if you look at it in that way I agree and it should be limited to decimal systems.A KiB is then very confusing since it has a totally different power factor of 10 (210).If you look at it in that (mathematical) way 1kB should be 8 bytes (23)

author: rr100
author_rank: Frequent Contributor
timestamp: November 10, 2013, 09:00:40 pm
content: Quote from: Kjelt on November 10, 2013, 08:08:10 pmNow you think you have the hole picture? Think again. It shows 67 935 817 728 and 63.3GB. Is this more or less than 100 x 650MB CDs?It is MUCH trickier than it seems. First you need to decide "which G" and "which M". For G it's clearly not the decimal one but you can't be sure without a calculator what "G" it is. Maybe it is 1000x1024x1024? Or 1000x1000x1024? It can happen, if it did to floppies why not to explorer? Anyway it is pretty pointless already to need the full value because you can't decide from the GB what it's supposed to mean. But let's move to the MB. Start researching wikipedia, etc. What is the M prefix used for CDs? Ok, we decide it's in fact Mi (1024x1024) and NOW we can start to compare. Oh, it's not that simple even with all data. 1024x1024x6500 versus 67 935 817 728 (which is the same as 63.3 Gi). Who wins?Anyway whole discussion is kind of pointless. Usually there isn't any reason to use binary prefixes (especially in all things people usually use, like disk size, free space, file size, etc) but sometimes there is (for example when you want to be both precise and concise, like "this tool will align the partition at 1MiB"); anyway when there is such reason you can just use the complete an unambiguous notation, with that "i", it can't be that hard.

author: Kjelt
author_rank: Super Contributor
timestamp: November 10, 2013, 09:03:26 pm
content: Quote from: rr100 on November 10, 2013, 09:00:40 pmI agree the decimal based prefixes should be banned from binary systems

author: IanB
author_rank: Super Contributor
timestamp: November 10, 2013, 09:07:12 pm
content: Quote from: rr100 on November 10, 2013, 09:00:40 pmIf you ever consider writing 63 GB of data to ~100 CDs you have bigger problems than arithmetic...

author: sync
author_rank: Frequent Contributor
timestamp: November 10, 2013, 09:09:02 pm
content: Quote from: Kjelt on November 10, 2013, 08:58:52 pmWhat do you mean with a binary based system?Do you mean stored as binary values or based on power of two values?Disk and files sizes are the former but not the latter.

author: rr100
author_rank: Frequent Contributor
timestamp: November 10, 2013, 09:11:44 pm
content: Quote from: Kjelt on November 10, 2013, 09:03:26 pmI think in my somehow meandering post you missed this part:it's not that simple even with all data. 1024x1024x6500 versus 67 935 817 728 (which is the same as 63.3 Gi). Who wins?You still have this problem even if everything is "binary".

author: dfmischler
author_rank: Frequent Contributor
timestamp: November 10, 2013, 09:23:30 pm
content: Quote from: nitro2k01 on November 10, 2013, 05:18:50 amNo. The use of powers of 2 in sizes predates the existence of integrated circuits of any type. It comes from addressing memory (of any type) using binary address values, and making all addresses usable.Decimal computers were tried in the dark ages of computing, but it was quickly determined that this is not a very efficient use of hardware resources.Software allocates disk space by the sector (or clusters of sectors), each of which is generally 512 or 4096 bytes (although I recall a brain-dead TI system that made them 288). So the disk manufacturers are starting with binary sizes, but want to market in decimal sizes (because they sound bigger). Do not even think about changing disk drives to use decimal sector sizes or the software guys will go on strike (e.g. 4KiBpages can be easily mapped to disk sectors for virtual memory purposes).We're not going to stop addressing memory with binary values, and telecomm bit rates have always been decimal. And who wants to confuse all the poor folks who have to actually weigh and measure things? So learn and use the "new" binary prefixes and kwitcherbitchin.

author: sync
author_rank: Frequent Contributor
timestamp: November 10, 2013, 09:54:33 pm
content: Quote from: dfmischler on November 10, 2013, 09:23:30 pmEven today there are disks which can be formatted to a non power of two sector size, eg. 524 bytes (http://www.seagate.com/files/www-content/product-content/savvio-fam/enterprise-performance-15k-hdd/savvio-15k-4/en-us/docs/100721324b.pdf). Of course only 512 bytes are used for the real data and the rest for meta data.

author: dfmischler
author_rank: Frequent Contributor
timestamp: November 10, 2013, 10:04:33 pm
content: Quote from: sync on November 10, 2013, 09:54:33 pmYes, but as I said there is not a virtual memory operating system on the planet that would be happy with non-binary sector sizes. This includes Linux, BSD, MacOS X, and even Windows. To say nothing of whatever legacy operating systems might still be in use hiding under a rock (or a mainframe).Disk sectors are memory, and memory needs to be addressed with binary addresses and so should have binary sizes. Don't fight it, you'll just hurt yourself.

author: sync
author_rank: Frequent Contributor
timestamp: November 10, 2013, 10:20:28 pm
content: The non power of two sector size are used in high end storage systems. These uses the extra bytes for internal purposes. The computer operating system sees only 512 or 4096 byte blocks.But there is no good reason to use binary prefixes for disk sizes.

author: Stonent
author_rank: Super Contributor
timestamp: November 10, 2013, 10:34:48 pm
content: Too many people complained that their 500GB drives were only 488GB so now they tend to specify in both on the boxes.

author: dfmischler
author_rank: Frequent Contributor
timestamp: November 10, 2013, 10:53:13 pm
content: Quote from: sync on November 10, 2013, 10:20:28 pmAgreed.Quote from: StevenWhitney on November 10, 2013, 10:34:27 pmSo don't say them. If you say, "1 gig ethernet" nobody is confused (decimal). If you say, "That computer has 16 gigs of RAM" everybody should assume that is 16GiB: 16*1024*1024*1024. Disk drive sizes are now generally assumed to be decimal. The most ambiguous case is for a file, but as far as I know all operating systems report binary sizes. So for, "This file is 15 meg" everybody should realize that is 15MiB: 15*1024*1024. And they can ask you if they are in doubt.

author: c4757p
author_rank: Super Contributor
timestamp: November 10, 2013, 10:57:43 pm
content: Quote from: nitro2k01 on November 10, 2013, 03:39:08 pmThe available space on a piece of paper is quite predictable as well, considering most word processing software uses the same default margin sizes, but we've decided as a society that people aren't so brain-dead as to not understand that the margins will use a bit of the paper. Nobody is enough of a dumbass to come into a store furious that he could only print 6.5x9 inches on his 8.5x11-inch paper. How about we stop treating computer users like kindergartners?

author: baljemmett
author_rank: Unknown
timestamp: November 10, 2013, 10:59:15 pm
content: Quote from: Stonent on November 10, 2013, 10:34:48 pmTo be fair, I'd be pretty pissed off in that case too. A thousand-fold discrepancy is pretty harsh, regardless of whether that's a decimal or a binary thousand

author: sync
author_rank: Frequent Contributor
timestamp: November 10, 2013, 11:13:12 pm
content: Quote from: dfmischler on November 10, 2013, 10:53:13 pmAnd that for a value which has a granularity of 1 byte. It's just idiotic to use binary prefixes for file sizes. IFIAK Apple has changed to decimal prefixes.

author: Unknown
author_rank: Unknown
timestamp: November 10, 2013, 11:18:42 pm
content: Clearly both base 2 and base 10 prefixes are commonly used for bytes, so it makes sense to distinguish them if we want to specify numbers with less than 10% uncertainty. Since base 10 prefixes pre-date the binary prefixes by about a century and are common both in CS and in other engineering disciplines, I think it would make sense to change the base 2 prefixes. If you think 'kibibytes' sounds stupid, feel free to convince the IEC to change the standard, pronounce it as 'kay eye bytes' or just avoid using base 2 prefixes all together. In the mean time, using TB and TiB will allow us to specify file and disk sizes without guesswork.

author: Stonent
author_rank: Super Contributor
timestamp: November 11, 2013, 03:45:48 am
content: Quote from: baljemmett on November 10, 2013, 10:59:15 pmDERP! I was writing from my phone.

author: johnwa
author_rank: Frequent Contributor
timestamp: November 11, 2013, 06:44:55 am
content: I used to be quite against the new prefixes, seeing them accommodating the 'evil' HDD manufacturers in their attempts to short-change their customers. However, when you look into it, decimal prefixes are already used in some applications - a 28.8kbps modem = 28000 bits/second (forgetting about compression for now). And I realised that attempting to bend the metric prefixes into something that they are not would only result in confusion.While the prefixes may sound a bit funny initially, their real value is that they allow unambiguous communication. If your meaning is 1048576 bytes, then the only way to communicate this unambiguously, other than writing it out in full, is to say 1MiB. It didn't really take long for me to go from hearing "mebibyte" and thinking "the speaker is a fool", to hearing it and thinking "the speaker values precision and clarity". A lot of programs are starting to use the new prefixes, so it seems that support for them is growing.

author: rr100
author_rank: Frequent Contributor
timestamp: November 11, 2013, 07:00:28 am
content: Speaking about greedy hard drive manufacturers: I think this part of the issue is exaggerated. Capacities were increasing all the time and still are, we just go the first 2TB "normal size" laptop drive (as in no thicker). Each time they go up one prefix they go up 1000 times (that's 100 000%) and we bicker about losing 2.4% ?! The difference is absolutely staggering, even across multiple prefixes and starting with 2 handicap (K and M) if you take from 10 MB to 3TB for example, that's 300 000 times increase (or if you want 30 000 000%). And we bicker about 10% for Ti vesus T.The only part where it matters is consistency. If some manufacturer sold a 0.90TB drive and one a 1.0TB drive and have in fact the same capacity, now that would obviously suck for the manufacturer advertising 0.9.

author: IanB
author_rank: Super Contributor
timestamp: November 11, 2013, 07:32:35 am
content: Quote from: johnwa on November 11, 2013, 06:44:55 amUnfortunately, they don't succeed even in this. If you write 1 MB I still don't know whether you mean 1,048,576 bytes or 1,000,000 bytes. You still have to disambiguate by providing extra commentary ("1 MB, where M means one million decimal"). Without commentary, I would follow the normal practice of computer science and assume 1024 KB.

author: Kjelt
author_rank: Super Contributor
timestamp: November 11, 2013, 07:55:00 am
content: Quote from: IanB on November 11, 2013, 07:32:35 amand what is a KB? Oh you mean kB. You are messing up the prefixes and expect other people to know what you mean? That is exactly why I think it is important to have the new binary prefixes. k means 1000, M means a million PERIOD. not 1024 or 1024*1024.

author: westfw
author_rank: Super Contributor
timestamp: November 11, 2013, 09:19:12 am
content: QuoteOr maybe bits rather than bytes.But it's hopeless; the binary "prefixes" are born out of laziness rather than any serious attempt at a meaningful prefix definition. The roots are back in "Microsoft 4k basic", and "16k S100 memory boards"; there wasn't even a UNIT!

author: rr100
author_rank: Frequent Contributor
timestamp: November 11, 2013, 10:37:08 am
content: And this is precisely the thinking that created this mess ot of nothing.

author: Kjelt
author_rank: Super Contributor
timestamp: November 11, 2013, 11:21:19 am
content: Indeed, we have a perfect SI prefix system where k (not K) is a 1000 but when at a sudden we step into the CS dimension it needs to be something different because some dumbo's in the 70's made that mistake? Naaah mistakes are there to be corrected, people should adapt and move on.Another generation and no-one will know about this fluke anymore.

author: Fsck
author_rank: Super Contributor
timestamp: November 11, 2013, 11:32:09 am
content: the more amusing thing is that *nix have *iB unitsso apparently not all CS are weird

author: dfmischler
author_rank: Frequent Contributor
timestamp: November 11, 2013, 12:02:22 pm
content: Quote from: Fsck on November 11, 2013, 11:32:09 amWell, some unix/linux systems are using *iB, in some places. It has not fully penetrated yet.Quote from: Kjelt on November 11, 2013, 11:21:19 am"The use of K in the binary sense as in a "32K core" meaning 32×1024, or 32768, can be found as early as 1959." I don't think it was a mistake to use "K" to mean 1024 in that context at that time. Thank Dog they didn't use Latin prefixes (e.g. M for 1000, still on my natural gas bill as in "Mcf" for 1000 cubic feet). That would have been a nightmare

author: amyk
author_rank: Super Contributor
timestamp: November 11, 2013, 12:43:20 pm
content: QuoteAnother inconsistency that has always annoyed me about hard drive sizes is that they still need to be an integral multiple of 512 (2^9 aka 0.5K), the sector size. HDD manufacturers should start making "real-sized" drives; if they can make a "2TB" one that shows up as a little less than 1.86TB to the OS, they clearly have the technology to make a "1TB" one that contains exactly 2^40 = 1,099,511,627,776 bytes and shows up as 1.0TB. Then market it as a "REAL ONE TERABYTE" drive!I still have a 16MB(!) USB drive that really does have a capacity of 16,777,216 bytes, or 8192 sectors.Regarding communication speeds: again, I've only seen the binary sizes used in things like download progress bars and the like, so it's consistent with the rest of the presentation ofsizesin the OS.

author: rr100
author_rank: Frequent Contributor
timestamp: November 11, 2013, 01:29:19 pm
content: I very much prefer a 1.86 TiB drive to a hypothetical 1.0000000000000 TiB drive, thank you.

author: sync
author_rank: Frequent Contributor
timestamp: November 11, 2013, 01:36:18 pm
content: Quote from: amyk on November 11, 2013, 12:43:20 pmIt's not the hard drive manufactures fault. They are real 1 terabytes disks. It's the OS fault displaying the wrong value/ units.

author: ovnr
author_rank: Frequent Contributor
timestamp: November 11, 2013, 02:40:15 pm
content: I've always used thetraditionalk/M/G prefixes (that is, 1024^n) for CS-related things. I'm not going to start using Mebibytes because it's fucking stupid, and the morons who decided it's a good idea are nuts.If you cannot deal with the fact that some symbols and prefixes change meaning when changing technical fields, please find something else to do, like knitting. Because god help you if you ever start doing serious math or physics.No, when I see people use kiBs and GiBs, I laugh at it, because you're a sheep going "baaa" at whatever you're told. Fucking stupid if you ask me.

author: c4757p
author_rank: Super Contributor
timestamp: November 11, 2013, 02:43:29 pm
content: Quote from: ovnr on November 11, 2013, 02:40:15 pmOh god. Another dude who thinks it's cool to call people sheep.Sure, you might be a sheep doing whatever your told. Or, you think it's a good idea for the same reasons as the people who came up with it.

author: Monkeh
author_rank: Super Contributor
timestamp: November 11, 2013, 02:43:50 pm
content: Quote from: ovnr on November 11, 2013, 02:40:15 pmWhy thank you, would you care to insult us some more for being precise and sane?

author: sync
author_rank: Frequent Contributor
timestamp: November 11, 2013, 02:49:34 pm
content: Quote from: ovnr on November 11, 2013, 02:40:15 pmDo you use 1024 based prefixes for bandwidths too?

author: Kjelt
author_rank: Super Contributor
timestamp: November 11, 2013, 03:45:44 pm
content: Quote from: ovnr on November 11, 2013, 02:40:15 pmIt were the scientists and serious ones too who decided to introduce the binary prefixes because there was confusion in the world. And if you are a serious scientist and practitioner there is one thing you do not want and that is that something that has the same name has a different meaning depending on the context.So give us a good example of serious mathematics or physics where the same prefix has a totally different value?

author: IanB
author_rank: Super Contributor
timestamp: November 11, 2013, 03:49:08 pm
content: Quote from: Kjelt on November 11, 2013, 07:55:00 amNo, I mean KB. With an upper case K. As in 1024 bytes. As is the normal typographic convention for that quantity of bytes

author: Monkeh
author_rank: Super Contributor
timestamp: November 11, 2013, 03:50:28 pm
content: Quote from: IanB on November 11, 2013, 03:49:08 pmOnly amongst those who don't know what K is.

author: IanB
author_rank: Super Contributor
timestamp: November 11, 2013, 03:59:06 pm
content: Quote from: Kjelt on November 11, 2013, 03:45:44 pmIn US engineering the unit MMBtu/hr means one million Btu's per hour. A single M in front of a unit is a thousands multiplier, so MM is thousand thousand, or million, as in MMbbl/d. (M comes from the Latinmille, meaning thousand.)

author: Kjelt
author_rank: Super Contributor
timestamp: November 11, 2013, 04:06:08 pm
content: Quote from: IanB on November 11, 2013, 03:49:08 pmAh you mean the JEDEC standard, yeah gotcha, but not the normal convention anymore since the JEDEC spec is not fully SI compliant anymore, K is still OK but the M and G are obsolete:The International Bureau of Weights and Measures (BIPM), which maintains the International System of Units (SI), expressly prohibits the use of SI prefixes to denote binary multiples, and recommends the use of the IEC prefixes as an alternative since units of information are not included in SI.

author: Kjelt
author_rank: Super Contributor
timestamp: November 11, 2013, 04:08:35 pm
content: Quote from: IanB on November 11, 2013, 03:59:06 pmSorry but that is outside the SI standard, other topic about metric vs imperial. Same with the US AWG, how strange is that calling the biggest diameter the lowest number and when you ran out of numbers at 0 just add more 0's.Do you call that serious science?

author: IanB
author_rank: Super Contributor
timestamp: November 11, 2013, 06:14:20 pm
content: Quote from: Kjelt on November 11, 2013, 04:06:08 pmNo, I don't mean the JEDEC standard. Neither do I mean SI, since, as your following link points out SI prefixes are not used for data in computer science.What I mean is that in computer science a kilobyte is written as KB and not as kB.

author: Kjelt
author_rank: Super Contributor
timestamp: November 11, 2013, 06:23:03 pm
content: Quote from: IanB on November 11, 2013, 06:14:20 pmOn what planet?

author: Kjelt
author_rank: Super Contributor
timestamp: November 11, 2013, 06:36:55 pm
content: Darn Ok i give in, I just saw that one of my bibles (Computer Architecture a quantitive approach from Hennesy & Patterson) do use the term KB in one of their tablesI am sad now

author: IanB
author_rank: Super Contributor
timestamp: November 11, 2013, 07:22:14 pm
content: Quote from: Kjelt on November 11, 2013, 06:36:55 pmI do try to be very precise in what I write. If I make a mistake it will be a genuine error and not simple carelessness.

author: Kjelt
author_rank: Super Contributor
timestamp: November 11, 2013, 08:29:39 pm
content: Quote from: IanB on November 11, 2013, 07:22:14 pmSo would you consider switching to the unambiguous KiB and use that in the future?

author: Monkeh
author_rank: Super Contributor
timestamp: November 11, 2013, 09:15:01 pm
content: Quote from: Kjelt on November 11, 2013, 08:29:39 pmBut KB, GB, and TB aren't ambiguous because he knows what they mean!

author: Monkeh
author_rank: Super Contributor
timestamp: November 11, 2013, 10:07:15 pm
content: Quote from: StevenWhitney on November 11, 2013, 10:04:30 pmAnd the French, Spanish, Germans, Finns, Danes, Poles, Swiss, Swedes, and many, many others still do use long scale.

author: johnwa
author_rank: Frequent Contributor
timestamp: November 12, 2013, 09:01:59 am
content: Oh dear, this is worse than a PIC vs AVR debate!And, although I am a confirmed metric nazi, sometimes I think things would be a whole lot easier if we had all been born with 16 fingers...

author: Kjelt
author_rank: Super Contributor
timestamp: November 12, 2013, 11:07:30 am
content: Quote from: mojo-chan on November 12, 2013, 10:28:56 amThat is the same as saying we created a bug in the software code some years ago, let's adapt the requirements instead of fixing the bug

author: rr100
author_rank: Frequent Contributor
timestamp: November 12, 2013, 12:27:28 pm
content: Quote from: mojo-chan on November 12, 2013, 10:28:56 amThere was no such thing as "if they have defined 1000 as kibi", we had in the metric system since year 1799 kilo as 1000. Of course many strange things happened but I think it would be quite implauzible and pointless to have both kilo and kibi define 1000.kilo was chosen specifically because everybody knew it meant 1000. Otherwise they could've used something else and there is A LOT of "something else" out there that was in fact used, just some examples: sniff, crumb, quad, tayste, tydbit, nickel, decle, playte, chomp, dinner, goblle, octlet (not the same as octet), hexlet, tryte.Now to complain that you used 1000 to mean about 1000 and usually 1024 and now you want 1000 to mean 1024 all the time it sounds pretty lame.Even if we go now bananas and reverse the tables and use the "i" for the metric prefixes and replace all 1000 kilo with kibi and for example your car speedometer to read in kibimeters and your scope to be specified in mebiHerz STILL we won't solve the basic problem most people face. Namely they buy a 1TB or 1TiB drive or however you call the drive with 1000... bytes and then windows will show them it has 0.90 TB.

author: dfmischler
author_rank: Frequent Contributor
timestamp: November 12, 2013, 04:25:38 pm
content: Quote from: mojo-chan on November 12, 2013, 04:14:03 pmYeah. I get it. Change now rather than putting it off any longer.QuoteSo what? There is essentially no confusion with main memory sizes. And the divergence on a few megabytes is pretty insignificant.QuoteIf the community adopts the (now 15 year old) "new" convention then peer pressure will make it work. Don Knuth will probably fix his stuff if the community begs him adoringly (enough).Hakmemand the like don't seem to have a problem. Most young hackers don't seem to know about anything from before they were born, anyway.

author: sync
author_rank: Frequent Contributor
timestamp: November 12, 2013, 04:27:12 pm
content: Quote from: mojo-chan on November 12, 2013, 04:14:03 pmWhich?An ST-506 doesn't.32 * 256 * 612 = 50135045 * (2^20) = 5242880And hard disks from the 1960ies uses also 1M = 10^6.

author: rr100
author_rank: Frequent Contributor
timestamp: November 12, 2013, 04:38:06 pm
content: Quote from: mojo-chan on November 12, 2013, 04:14:03 pmYEP, in SOME places SOME people were using kilo to mean 1024 for decades and YES, BECAUSE of that we have this confusion for decades (even the humble completely messed-up in terms of units "1.44" floppy is more than 25 years old).If we take the "old" approach then kilo = 1000 is coming from late 1700's so much older than "decades". And no, having just a new unit doesn't justify having a new meaning for a prefix. We didn't have Ohm and Hertz when the prefix was invented but still we don't have 1 kOhm = 1234 Ohm or 1 kHz = 1012 kHz just because some calculation is easier. And again, just to see how stupid and pointless is the whole discussion: tell us again quickly how much would be a 14.7 kOhm rezistor in Ohms if the "k" would be 1024?

author: westfw
author_rank: Super Contributor
timestamp: November 12, 2013, 04:51:57 pm
content: QuoteSure there is. The average computer user probably has no idea that their "GB" of memory is actually 2^30 bytes.Nor do they care. Nor do they need to care.QuoteThis too. Even on a few TB.No matter how it were done, most people would not be able to tell you how many 14Mpixel images will fit on a 4GB flash card...

author: Monkeh
author_rank: Super Contributor
timestamp: November 12, 2013, 07:27:35 pm
content: Quote from: mojo-chan on November 12, 2013, 04:14:03 pmBecause there would still be confusion, and quite simply, it iswrong.

author: Tuomas
author_rank: Contributor
timestamp: November 13, 2013, 06:27:59 am
content: Quote from: Monkeh on November 12, 2013, 07:27:35 pmEven if we would do that, it would just shift the problem. Then the networking guys would start complaining about how ridiculous Gibibit ethernet sounds along with a bunch of other protocols.There are going to be pissed off people either way.

author: rr100
author_rank: Frequent Contributor
timestamp: November 13, 2013, 07:16:00 am
content: I also don't understand the fixation with the particular names. Oh, they're so funny, kibi-gibi, ha, ha. But we don't say them too often and most of the times we say it the difference doesn't matter, you can say anything. "I have only 10 gigs left, it won't fit"; there might be giga or gibi or whatever, it won't matter much anyway. If you give a presentation or a course an it really matters and you really can't say kibi you can put it in writing in the correct for with "i" and explain "that's the binary k" and then refer to it as "key" (spoken) and write "Ki".But in writing and in programs there's no reason not to add that "i". Well, maybe in some very limited displays or interfaces you don't have the space but in general nothing except some misguided pride prevents you from just adding that "i" and squash all the ambiguity and be correct by any standard.

author: rr100
author_rank: Frequent Contributor
timestamp: November 13, 2013, 09:27:43 am
content: ... to be replaced by?

author: hammy
author_rank: Unknown
timestamp: November 13, 2013, 10:04:01 am
content: Quote from: mojo-chan on November 13, 2013, 09:50:28 amI work in IT. The only people who use kibibytem, mebibyte (...) are nitpicker who have generally a problem with their communication skills because of their asperger syndrome.If a programmer is not able to implement the correct code (k=1024 or k=1000) because someone had not said "kibibyte" than there is something more in disorder. How has he worked all the years before kibi and mibi wasinvented?Sorry for my rude german profanity.

author: Kjelt
author_rank: Super Contributor
timestamp: November 13, 2013, 11:44:22 am
content: Quote from: mojo-chan on November 13, 2013, 09:18:56 am32K flash?That is not many times you can flash it then, because I now assume you are talking about the amount of times the flash memory can be flashed, other wise it would have been "32KB of flash memory" and according to the JEDEC spec it would be indeed 32*1024 bytes of memory.

author: amyk
author_rank: Super Contributor
timestamp: November 13, 2013, 11:57:53 am
content: Quote from: Kjelt on November 13, 2013, 11:44:22 am...It seems you've never worked much in the industry? Those conventions have been around for decades.

author: Monkeh
author_rank: Super Contributor
timestamp: November 13, 2013, 12:07:20 pm
content: Quote from: mojo-chan on November 13, 2013, 11:40:45 amKilo was already taken. A few centuries ago.

author: hammy
author_rank: Unknown
timestamp: November 13, 2013, 12:21:11 pm
content: Quote from: Monkeh on November 13, 2013, 12:07:20 pmYes, but in context withbytesist is absolutely clear whatkilobytesmean. If you work in this field it is clear what a byte is and what this means.If you are a butcher you are maybe confused that a kilobyte on you harddisk is not the same like a kilogram meat. But when I buy meat I can also distinguish between 1000 gram meat and 1024 gram meat.Sorry for my rude german profanity.

author: Monkeh
author_rank: Super Contributor
timestamp: November 13, 2013, 12:24:00 pm
content: Quote from: hammy on November 13, 2013, 12:21:11 pmReally? Okay. 1kB. Do I mean 1000 bytes or 1024?

author: Unknown
author_rank: Unknown
timestamp: November 13, 2013, 12:29:13 pm
content: Recent versions of MacOS X report decimal gigabytes. Most Linux desktops report in GiB or decimal GB. End users won't care and will report whatever the OS tells them, so if their OS switches, so will they. So it will mostly depends on whether MS is going to switch. I imagine some people are already getting support calls why their file that was 2 G(i)B on a Windows system is suddenly smaller on Macs.

author: Monkeh
author_rank: Super Contributor
timestamp: November 13, 2013, 12:30:37 pm
content: Quote from: alm on November 13, 2013, 12:29:13 pmIt'd be really easy to switch, too. If Windows just used the appropriate prefix and added a little explanatory note, we'd be clear of the stupidity and confusion in what, 10 years?Except for the obscenely stubborn ones, anyway.

author: hammy
author_rank: Unknown
timestamp: November 13, 2013, 12:41:20 pm
content: Quote from: Monkeh on November 13, 2013, 12:24:00 pmIn data transfer context you mean 1000 bit = 1 kilobit = 1 kB.I had a apprenticeship as technician for information and communication technologies before my academic study. I also knowthis context.It's all about the context! I don't mix memory with data transfer or meat.Sorry for my rude german profanity.

author: Monkeh
author_rank: Super Contributor
timestamp: November 13, 2013, 12:44:51 pm
content: Quote from: hammy on November 13, 2013, 12:41:20 pmI didn't say kb. I said kB. I actually meant kilobytein the data transfer context, or 1000 bytes. So you figured out half the trap.QuoteBut you do mix your bits and bytesandyour kilo and kibi.Stop being ridiculously stubborn, and learn to use prefixes appropriately. Before I start selling 850-gram kilos of sugar.E: Wait, no, I can't do that, there are laws against that, it's usually referred to as fraud. Totally fine to misrepresent data, though, or you're just being nitpicky and have problems with your communication skills.And now, back to actually working.

author: Kjelt
author_rank: Super Contributor
timestamp: November 13, 2013, 12:46:57 pm
content: Quote from: amyk on November 13, 2013, 11:57:53 amOnly about 16 yearsWhat conventions? To say something in the datasheet that is ambiguous and can mean a lot of other things then the writer intended, as I gave a clear example of?At our company we have reviews of documentation and these sort of issues are addressed each time as soon as it can be read by different people in a different way so itcouldhave a different meaning. If you specify an interface (like a protocol) better be 100% sure the specification is unambiguous or problemscanwill start.

author: Kjelt
author_rank: Super Contributor
timestamp: November 13, 2013, 12:49:47 pm
content: Quote from: hammy on November 13, 2013, 12:41:20 pmWHAT? Only in serial datatransfer you talk about bits and then you keep on talking about bits per second. As soon as you want to talk bytes you need to specify the transfer protocol , for simple serial: how many start, stop, parity bits, perhaps crc?

author: hammy
author_rank: Unknown
timestamp: November 13, 2013, 12:50:07 pm
content: Quote from: Monkeh on November 13, 2013, 12:44:51 pmRight. Keep calm and solder on!

author: Monkeh
author_rank: Super Contributor
timestamp: November 13, 2013, 01:32:45 pm
content: Quote from: mojo-chan on November 13, 2013, 01:21:41 pmUh, no, ls does not print KB or KiB (or MB, MiB, GB, GiB, etc), and that's not how the options to ls work, either. It does differentiate between kilo and kibi by case, but the format does not allow for an extra character. Don't try these things with a sysadmin.Quote"Someone else does it wrong, so I should too!"QuoteQuote from: mojo-chan on November 13, 2013, 01:18:23 pmHere, enjoy your 1KG of sugar, where KG = 851.56 grams.

author: sync
author_rank: Frequent Contributor
timestamp: November 13, 2013, 01:36:26 pm
content: Quote from: Tuomas on November 13, 2013, 06:27:59 amThe networking people already get it right. 1 gigabit ethernet is 10^9 not 2^30. No need to change it to 0.93 gibibit ethernet.

author: sync
author_rank: Frequent Contributor
timestamp: November 13, 2013, 01:48:40 pm
content: Quote from: hammy on November 13, 2013, 10:04:01 amI also work in IT. There are many confusions. For example I once meet an storage expert. He said that a that particular storage system reserves 7% of the disk space for them self. After seeing his calculation I saw that the 7% was the difference between the disks sizes in TB (10^9) and the reported capacity in TB (2^30) of the storage system.Now the situation is that 1TB != 1TB on the same system! It's worse that hundred years ago when every town has it's own meaning of foot. At least they were coincident within a town.

author: westfw
author_rank: Super Contributor
timestamp: November 13, 2013, 05:22:21 pm
content: Don't forget that 100Mbps comm lines need that 125Mbps bandwidth; cause 8b/10b encoding. But your 10Mbps ethernet needs 20Mbps bandwidth, and your 115200bps modem is only like 8000 baud.Basically, your CS types are really lazy when it come to actual numbers, or units, or silly concrete concepts like that.

author: rr100
author_rank: Frequent Contributor
timestamp: November 13, 2013, 05:44:40 pm
content: Quote from: mojo-chan on November 13, 2013, 01:21:41 pmNow that's a new one, software will crash and burn if we add that "i". OMFG, run in circles, scream and shout. Would you care to show us such software? I'm sure it's a kludgy POS that would be better off to be shot in the head.Everything can and will be changed. You just need to chose the right direction.python changed from one version to next one in such a fashion that"Hello World" wasn't working anymore. And still people use python and the world did not transform into a Mad Max world. And realize how many pieces of software use python compared cu how many might be using k input and not accept Ki (I don't know about any, again maybe you care to share some).Quote from: mojo-chan on November 13, 2013, 01:21:41 pmThat I do not understand, is something crashed because of the extra "i" ?Quote from: mojo-chan on November 13, 2013, 01:21:41 pmNo, that would really make the problem outlive us. Now at least Ki is clear what it is, there's no doubt; some people swear they'll rather die than use it but that's it. If you make it NOW 1000 it will be like "oh, Ki, hm, is that early 2013 Ki or late 2013 Ki?". And the doubt about k would still stand, some people would use it for 1000 as it was used since late 1700's and some people would insist to use it as 1024. And you'll get double the mess.

author: sync
author_rank: Frequent Contributor
timestamp: November 13, 2013, 06:21:44 pm
content: Quote from: rr100 on November 13, 2013, 05:44:40 pmAnd the best is that the linux ls doesn't output "KiB" and AFAIK never done.

author: Monkeh
author_rank: Super Contributor
timestamp: November 13, 2013, 06:33:51 pm
content: Quote from: sync on November 13, 2013, 06:21:44 pmI already said that

author: Monkeh
author_rank: Super Contributor
timestamp: November 13, 2013, 10:09:27 pm
content: Quote from: mojo-chan on November 13, 2013, 10:07:26 pmYou're the one complicit with the redefinition of a prefix which existed long before you were born.

author: rr100
author_rank: Frequent Contributor
timestamp: November 14, 2013, 05:32:10 am
content: I'm still waiting for examples of the situation mentioned previously bymojo-chan: "software that parses printed output would suddenly fail."Is this something that exists for real or (plausible and possible but still) imagination?

author: Monkeh
author_rank: Super Contributor
timestamp: November 14, 2013, 05:36:02 am
content: Quote from: rr100 on November 14, 2013, 05:32:10 amIf he tries it on with ls again I'll print out POSIX and brain him with it..

author: amyk
author_rank: Super Contributor
timestamp: November 14, 2013, 10:10:50 am
content: Quote from: rr100 on November 13, 2013, 05:44:40 pmIt seems with all the Python hype these days people are thinking it's bigger than it really is, when in fact Python 3 is still in the minority and the whole base of Python software is just a drop in the ocean compared to all the other systems that are out there.Whatever the confusion between units has cost (financially), I am almost going to bet that it's tiny in comparison to what it would cost to rewrite/update everything. And when rewriting software, there's a very large chance that bugs are going to be introduced, making things even worse than they were. It's a net loss. (But then again, I know of a few large companies who lovemaking breaking changesbecause they seem to have developers who wouldn't have/want anything else to do...)

author: Unknown
author_rank: Unknown
timestamp: November 14, 2013, 10:48:54 am
content: Quote from: amyk on November 14, 2013, 10:10:50 amRewrite/update everything? The far majority of APIs (like fstat(2)) use bytes, not kBs or kiBs. And even the ones that do would just need a change to the documentation that said parameter is in kiB, not kB. Most application software would at most require superficial changes (eg. displaying the size of the currently open file somewhere). Only some UIs would need changing, for example Windows Explorer / Finder, web browser download dialogs and the file open dialog. All of these go through much larger changes every major Windows release than this change require. Apple did it for OS X 10.6, and I don't remember shareholders complaining about development costs or users complaining about major bugs caused by this change.

author: rr100
author_rank: Frequent Contributor
timestamp: November 14, 2013, 10:57:20 am
content: Quote from: amyk on November 14, 2013, 10:10:50 amThe point is that Python3 (2008) programs are still a lot and used a lot. Certainly their usage dwarfs completely any and all programs like mojo-chan mentioned.The simple fact that we need to go to such extreme examples like super-duper programs known only to mojo-chan that anyway break from many other reasons means the problem, if any, is fantastically limited. Otherwise we would have already the example code to discuss and evaluate what's the impact, what, why and how it breaks and so on. It's such a big and costly problem to fix but somehow it impacts just one program nobody else heard about but one of our colleagues here!

author: amyk
author_rank: Super Contributor
timestamp: November 14, 2013, 11:49:11 am
content: Quote from: alm on November 14, 2013, 10:48:54 amThat's because OS X is a minority...QuoteYou'd be surprised how many "legacy" systems are still around. It's usually things like banks that use them, and the codebase there is huge.The Y2K problem is probably of comparable magnitude, although the difference there is that there was a deadline to it, while this issue isn't really a problem except to the SI purists and "standards lawyers"...

author: rr100
author_rank: Frequent Contributor
timestamp: November 14, 2013, 12:47:34 pm
content: Quote from: amyk on November 14, 2013, 11:49:11 amThere are so many that we can't get even one good example to analyze!In any case I don't understand the argument with "too many systems to change". There are a lot of places where certainly nothing would happen if you would just use "i" or better yet the proper values for the metric prefixes. Post number #36 is a good example and no, don't come saying there's some OCR recognizing the digits and letters from the picture and it won't like the different units. For those cases there's no reason to insist to do it wrong, except maybe to puzzle customers with things like "I bought a 1TB drive why it shows only 0.90TB".Then we MAYBE have some programs (not THAT many as we couldn't find yet any good example) that might be parsing the output and barf on Ki. FINE, then don't use the "i" and put k but use the right value, 1000. Don't tell me you use the binary k for any precision! Do you know how much is 1 byte in Ki? It is0.0009765625 Ki! 11111 bytes = 10.8505859375 Ki. You get the picture.Even better, 1B = 0.0000000000009094947017729282379150390625 TiB ! It is much more efficient to just use the value directly in octets without any prefix!!!As I don't think anybody can claim that some software outputs and some software parses such nonsense it means even if there are some calculations done they aren't precise but just a rough estimate. If you don't compute to the last bit (and I'm sure you don't, not even close, see what kind of output we're talking about) you anyway have to build in large tolerances for anything to work. You can have two 1kb files put together and get either 2kb or 3kb. And if you have tolerances and anyway use just estimates why not use 1000 for k as it should be?

author: sync
author_rank: Frequent Contributor
timestamp: November 14, 2013, 01:31:50 pm
content: Quote from: hammy on November 14, 2013, 08:52:53 amLucky these protocols doesn't use any unit prefixes.

author: sync
author_rank: Frequent Contributor
timestamp: November 14, 2013, 01:41:25 pm
content: Quote from: mojo-chan on November 14, 2013, 08:42:37 amTypical bad implementation. I have seen that a lot of times done by people which don't know what they doing. There are FTP libraries which are robust against different FTP servers and updates.

author: sync
author_rank: Frequent Contributor
timestamp: November 14, 2013, 01:50:39 pm
content: Quote from: mojo-chan on November 14, 2013, 01:33:57 pmWrong! These protocols doesn't use unit prefixes. The designer of them aren't that stupid. They uses plain numbers of octets or lines. No prefixesallowed.

author: Kjelt
author_rank: Super Contributor
timestamp: November 14, 2013, 01:53:15 pm
content: Quote from: mojo-chan on November 14, 2013, 01:40:49 pmIn your universe 1KiB = 1000 in the universe of all other human beings 1KiB = 1024 and this is 0x400 in hex. Perfect

author: sync
author_rank: Frequent Contributor
timestamp: November 14, 2013, 01:56:15 pm
content: Quote from: mojo-chan on November 14, 2013, 01:40:49 pmWhat? Almost all people doesn't know what hex numbers are. They only see that a 1TB disk is only 0.9TB in Windows. Please leave your ivory tower.

author: AlfBaz
author_rank: Super Contributor
timestamp: November 14, 2013, 02:22:36 pm
content: I haven't read this whole thread, so it may have been mentioned already, but doesn't it take a special breed of arrogance (aka software programmers) to take a long standing international standard and assume it is polymorphic?

author: Tepe
author_rank: Frequent Contributor
timestamp: November 14, 2013, 03:03:03 pm
content: Quote from: AlfBaz on November 14, 2013, 02:22:36 pmPolymorphism is used in computing so no problems there.

author: rr100
author_rank: Frequent Contributor
timestamp: November 14, 2013, 04:51:28 pm
content: Quote from: mojo-chan on November 14, 2013, 04:16:19 pmThey don't (many programmers don't) but can easily see the 1TB on the box and 0.90TB in the pie chart.Anyway the point was that "it breaks easy hex numbering that people are used to" is false BECAUSE "Almost all people doesn't know".Don't tell us now that most people don't know what 1TB is but would prefer to use the TiB because it looks better in hex!