Hacker Newsnew | past | comments | ask | show | jobs | submit | pif's commentslogin

If only people learnt to program properly and ditched unions completely...

Which means that fasting helps you reduce the global calory intake, which is the only way to loose weight.

No yeah I wasn't disagreeing with the article,but it's also false that it helps with the calorie restriction itself, depending on the food I eat I can get easily more than 2000 calories in one meal. It's all the things together that make the intermittent fasting work.

Not only that, but intermittent fasting works because of all the food nutrients, when I tried before I was just thinking about food all the time and it was a horrible experience.

Lot of micronutrients, high protein, high fiber, food with slow glucose absorbition, no starch, build up to fasting (start with 12, then next week 18, then 24). Also sleep a lot the day before fasting and drink a lot of water


> Why don’t kilobyte continue to mean 1024

Because it never did!


Which universe do you hail from? Because nobody except pedants have relented to this demand from non-computer scientists to conform to a standardization that has nothing to do with them or the work they do.


For all the people commenting as if the meaning of "kilo" was open to discussion... you are all from the United States of America, and you call your country "America", right?


> I've never heard

It doesn't matter. "kilo" means 1000. People are free to use it wrong if they wish.


All words are made up. They weren’t handed down from a deity, they were made up by humans to communicate ideas to other humans.

“Kilo” can mean what we want in different contexts and it’s really no more or less correct as long as both parties understand and are consistent in their usage to each other.


I find it concerning that kilo can mean both 10^3 and 2^10 depending on context. And that the context is not if you're speaking about computery stuff, but which program you use has almost certainly lead to avoidable bugs.


That latter part is only true since marketing people decided they knew better about computer related things than computer people.

It's also stupid because it's rare than anyone outside of programming even needs to care exactly how many bytes something else. At the scales that each of kilobyte, megabyte, gigabyte, terabyte etc are used, the smaller values are pretty much insignificant details.

If you ask for a kilogram of rice, then you probably care more about that 1kg of rice is the same as the last 1kg of rice you got, you probably wouldn't even care how many grams that is. Similarly, if you order 1 ton of rice, you do care exactly how many grams it is, or do you just care that this 1 ton is the same as that 1 ton?

This whole stupidity started because hard disk manufacturers wanted to make their drives sound bigger than they actually were. At the time, everybody buying hard disks knew about this deception and just put up with it. We'd buy their 2GB drive and think to ourselves, "OK so we have 1.86 real GB". And that was the end of it.

Can you just imagine if manufacturers started advertising computers as having 34.3GB of RAM? Everybody would know it was nonsense and call it 32GB anyway.


Not as far as I can tell. There's power of 10 bits and power of 2 bytes. I've never seen the inverse of those in an actual real world scenario outside of storage manufacturers gaming the numbers but even then the context is once again perfectly clear.


The "which program you use" confusion was instigated by the idiots insisting that we should have metric kilobytes, megabytes and gigabytes (cheered on by crooked storage manufacturers).

Before all that nonsense, it was crystal clear: a megabyte in storage was unambiguously 1024 x 1024 bytes --- with the exception of crooked mass storage manufacturers.

There was some confusion, to be sure, but the partial success of attempt to redefine the prefixes to their power-of-ten meanings has caused more confusion.


Now that RAM prices have spiked perhaps manufacturers should try marketing it in power of ten seven bit bytes.


Since DDR5 has on-chip ECC bits they could just include those in the marketing number.


That's a terribly nihilistic outlook on language.

We agree to meaning to communicate and progress without endless debate and confusion.

SI is pretty clear for a reason.


> We agree to meaning to communicate and progress without endless debate and confusion.

We decidedly do not do that. There's a whole term for new terms that arbitrarily get injected or redefined by new people: "slang". I don't understand a lot of the terms teenagers say now, because there's lots of slang that I don't know because I don't use TikTok and I'm thirty-something without kids so I don't hang out with teenagers.

I'm sure it was the same when I was a teenager, and I suspect this has been going on since antiquity.

New terms are made up all the time, but there's plenty of times existing words get redefined. An easy one, I say "cool" all the time, but generally I'm not talking about temperature when I say it. If I said "cool" to refer to something that I like in 1920's America, they would say that's not the correct use of the word.

SI units are useful, but ultimately colloquialisms exist and will always exist. If I say kilobyte and mean 1024 bytes, and if the person on the other end knows that I mean 1024 bytes, that's fine and I don't think it's "nihilistic".


You could think of the SI as a form of language planning.

https://en.wikipedia.org/wiki/Language_planning

(Then you could decide what you think about language planning.)


I didn't say all language is planned and agreed on. But we absolutely do plan and agree on things.


> That's a terribly nihilistic outlook on language.

I'm pretty sure any linguist will agree with this definition. All language normalisation is an afterthought.


Technical terms need to be more precise about their definition than regular words.


Incorrect.


Can you elaborate on what's not correct, and what's the correct way to think about it?


> “Kilo” can mean what we want in different contexts

Fair enough.

1000 watts is a kilowatt

1000 hertz is a kilohertz

1000 metres is a kilometre

1000 litres is a kilolitre

1000 joules is a kilojoule

1000 volts is a kilovolt

1000 newtons is a kilonewton

1000 pascals is a kilopascal

1024 bytes is a kilobyte, because that's what we're used to and we don't want to change to a new prefix


It's not even inconsistent if we consider kilo as meaning 10^3 in base 10 and 2^10 in base 2, rather than just '1000 times' always.


Translation: It's not inconsistent if we consider the deviation from the rule as a second rule. Any future deviation will get their own rule. Perfectly consistent


I don't think that's fair, I'm just saying considering kilo to mean 1000x in all bases is too narrow as a definition. Is 'car' a 'petrol-powered four-wheel transportation device with human-operated left-hand control'?


Watt, hertz, meter, joule, volt, newton and pascal are all SI units, a byte is not.


>> It doesn't matter. "kilo" means 1000. People are free to use it wrong if they wish.

> All words are made up.

Yes, and the made up words of kilo and kibi were given specific definitions by the people who made them up:

* https://en.wikipedia.org/wiki/Metric_prefix

* https://en.wikipedia.org/wiki/Binary_prefix

> […] as long as both parties understand and are consistent in their usage to each other.

And if they don't? What happens then?

Perhaps it would be easier to use the words definitions as they are set up in standards and regulations so context is less of an issue.

* https://xkcd.com/1860/


> Yes, and the made up words of kilo and kibi were given specific definitions by the people who made them up

Kilo was generally understood to mean one thousand long before it was adopted by a standards committee. I know the French love to try and prescribe the use of language, but in most of the world words just mean what people generally understand them to mean; and that meaning can change.


> Kilo is derived from the Greek word χίλιοι (chilioi), meaning "thousand".

* https://en.wikipedia.org/wiki/Kilo-


> Yes, and the made up words of kilo and kibi were given specific definitions by the people who made them up

Good for them. People make up their own definitions for words all the time. Some of those people even try to get others to adopt their definition. Very few are ever successful. Because language is about communicating shared meaning. And there is a great deal of cultural inertia behind the kilo = 2^10 definition in computer science and adjacent fields.


That also makes your comment unreadable, no idea what the definition of any word in your comment means anymore.

Can’t use a dictionary, those bastards try to get us to adopt their definitions.


This is https://en.wikipedia.org/wiki/Reductio_ad_absurdum

Inability to communicate isn't what we observe because as I already stated, meaning is shared. Dictionaries are one way shared meaning can be developed, as are textbooks, software source codes, circuits, documentation, and any other artifact which links the observable with language. All of that being collectively labeled culture. The mass of which I analogized with inertia so as to avoid oversimplifications like yours.

My point is that one person's definition does not a culture, make. And that adoption of new word definitions is inherently a group cultural activity which requires time, effort, and the willingness of the group to participate. People must be convinced the change is an improvement on some axis. Dictation of a definition from on high is as likely to result in the word meaning the exact opposite in popular usage as not. Your comment seems to miss any understanding or acknowledgement that a language is a living thing, owned by the people who speak it, and useful for speaking about the things which matter most to them. That credible dictionaries generally don't accept words or definitions until widespread use can be demonstrated.

It seems like some of us really want human language to work like rule-based computer languages. Or think they already do. But all human languages come free with a human in the loop, not a rules engine.


I don't think that the xkcd is relevant here, because I'm arguing that both parties know what the other is talking about. I haven't implicitly changed the definition because most people assume that kilobyte is 1024 bytes. Yeah, sure, it's "wrong" in some sense, but language is about communicating ideas between two people; if the communication is successful than the word is "correct".


Yes!

(And by that I mean "what the fuck, no...")


All you've done is created a homonym for no good reason at all.


If Bob says "kilobyte" to Alice, and Bob means 5432 bytes, and Alice perceives him to mean 5432 bytes, then in that context, "kilobyte" means 5432 bytes.


What are the odds of Charlie meeting Bob and Alice?


Is charlie a marketing exec?


No, in that context, kilobyte means 1024 bytes, like in every other context. :)


Man let a drug dealer give me a binary 'kilo' of some drug. That's almost a free ounce included!


In North America blackmarket drugs are often sold in pounds and ounces but measured in grams so you do see some rounding.


Such a myopic view when reality and marketing is messier than dramatic self-righteousness. This unnecessary bikeshedding nonsense has already been solved by using mebi, kibi, etc. to disambiguate sloppy abuse of SI units.


Fortunately SI doesn’t get to own terms or prefixes and trying to enforce different usage by fiat fails in the real world, exactly as it should.


Exactly.

If you're talking loosely, then you can get away with it.


> Edit: I'm wrong.

You need character to admit that. I bow to you.


> The wish is for "kilobyte" to have one meaning.

Which is the reality. "kilobyte" means "1000 bytes". There's no possible discussion over this fact.

Many people have been using it wrong for decades, but its literal value did not change.


That is a prescriptivist way of thinking about language, which is useful if you enjoy feeling righteous about correctness, but not so helpful for understanding how communication actually works. In reality-reality, "kilobyte" may mean either "1000 bytes" or "1024 bytes", depending on who is saying it, whom they are saying it to, and what they are saying it about.

You are free to intend only one meaning in your own communication, but you may sometimes find yourself being misunderstood: that, too, is reality.


It's not even really prescriptivist thinking… "Kilobyte" to mean both 1,000 B & 1,024 B is well-established usage, particularly dependent on context (with the context mostly being HDD manufacturers who want to inflate their drive sizes, and … the abomination that is the 1.44 MB diskette…). But a word can be dependent on context, even in prescriptivist settings.

E.g., M-W lists both, with even the 1,024 B definition being listed first. Wiktionary lists the 1,024 B definition, though it is tagged as "informal".

As a prescriptivist myself I would love if the world could standardize on kilo = 1000, kibi = 1024, but that'll likely take some time … and the introduction of the word to the wider public, who I do not think is generally aware of the binary prefixes, and some large companies deciding to use the term, which they likely won't do, since companies are apt to always trade for low-grade perpetual confusion over some short-term confusion during the switch.


Does anyone, other than HDD manufacturers who want to inflate their drive sizes, actually want a 1000-based kilobyte? What would such a unit be useful for? I suspect that a world which standardized on kibi = 1024 would be a world which abandoned the word "kilobyte" altogether.


It is helpful in telecommunication.


> with the context mostly being HDD manufacturers who want to inflate their drive sizes

This is a myth. The first IBM harddrive was 5,000,000 characters in 1956 - before bytes were even common usage. Drives have always been base10, it's not a conspiracy.

Drives are base10, lines are base10, clocks are base10, pretty much everything but RAM is base10. Base2 is the exception, not the rule.


I understand the usual meaning, but I use the correct meaning when precision is required.


How can there be both a "usual meaning" and a "correct meaning" when you assert that there is only one meaning and "There's no possible discussion over this fact."

You can say that one meaning is more correct than the other, but that doesn't vanish the other meaning from existence.


When precision is required, you either use kibibytes or define your kilobytes explicitly. Otherwise there is a real risk that the other party does not share your understanding of what a kilobyte should mean in that context. Then the numbers you use have at most one significant figure.


The correct meaning has always been 1024 bytes where I’m from. Then I worked with more people like you.

Now, it depends.


In computers, "kilobyte" has a context dependent meaning. It has been thus for decades. It does not only mean 1000 bytes.


I understand the usual meaning, but I use the correct meaning when precision is required.


That's funny. If I used the "correct" meaning when precision was required then I'd be wrong every time I need to use it. In computers, bytes are almost always measured in base-2 increments.


When dealing with microcontrollers and datasheets and talking to other designers, yes precision is required, and, e.g. 8KB means, unequivocally and unambiguously, 8192 bytes.


Ummm, should we tell him?


That I can't type worth shit?

Yeah, I already knew that, lol.

But thanks for bringing it to my attention. :-)


I kid good-naturedly. I'm always horrified at what autocorrect has done to my words after it's too late to edit or un-send them. I swear I write words goodly, for realtime!


Knuth thought the international standard promulgated naming (kibibyte) was DOA.

https://www-cs-faculty.stanford.edu/~knuth/news99.html

And he was right.

Context is important.

"K" is an excellent prefix for 1024 bytes when working with small computers, and a metric shit ton of time has been saved by standardizing on that.

When you get to bigger units, marketing intervenes, and, as other commenters have pointed out, we have the storage standard of MB == 1000 * 1024.

But why is that? Certainly it's because of the marketing, but also it's because KB has been standardized for bytes.

> Which is the reality. "kilobyte" means "1000 bytes". There's no possible discussion over this fact.

You couldn't be more wrong. Absolutely nobody talks about 8K bytes of memory and means 8000.


The line between "literal" and "colloquial" becomes blurred when a word consisting of strongly-defined parts ("kilo") gets used in official, standardized contexts with a different meaning.

In fact, this is the only case I can think of where that has ever happened.


"colloquial" has no place in official contexts. I'll happily talk about kB and MB without considering the small difference between 1000 and 1024, but on a contract "kilo" will unequivocally mean 1000, unless explicitely defined as 1024 for the sake of that document.


> on a contract "kilo" will unequivocally mean 1000, unless explicitely defined as 1024 for the sake of that document.

If we are talking about kilobytes, it could just as easily the opposite.

Unless you were referring to only contracts which you yourself draft, in which case it'd be whatever you personally want.


> And if you've ever dug into the guts of glibc's loader it's 40 years of unreadable cruft.

You meant: it's 40 years of debugged and hardened run-everywhere never-fails code, I suppose.


No, I meant 40 years of unreadable cruft. It's not hard to write a correct loader. It's very hard to understand glibc's implementation.


Eh, nice times, when you could type an email just by telnetting to port 25...


I've certainly sent thousands of emails this way. It was a simpler time.



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

Search: