I couldn't agree more (see my comment interactions in this thread.) It surprises me how ideological people get about it in several ways:
1. You must feel ashamed for your laziness and greed - anything other than humble capitulation to this is 'making excuses' and maybe you're 'not ready' to make the changes you need.
2. Dieting's easy - just eat less, fatty!
3. Dieting is literally energy in/energy out and weight/BMI is a perfect measure of progress. If you eat X calories a day and log it accurately you will ALWAYS lose weight Y/week and if you keep this up permanently you will keep it off. If anything happens that this model can't explain, it's because you fucked up and are being lazy/greedy again/lying to yourself.
4. I absolutely discount any possibility of this being a psychological crutch that will not be replaced if you lose weight (often the person doing the judging has several of their own that would render them miserable if they gave up, but those are not 'special' topics that are allowed to be brought up in polite conversation.)
5. I am saying all this only because I am concerned for your health, not due to this being a good source of feeling superior or insecurities in this area or just finding fat people amusing.
And I'm sure I could go on.
I should point out that I am very much _not_ in favour of the whole 'fat pride' movement stuff - having digs at people for being fat is not ok, but being significantly overweight is a serious health hazard and extremely bad for you.
What most people miss in this is how incredibly hard it is to actually get your damn body to lose weight and keep it off. A lot of the problem is psychological, and we genuinely do need to look at means of being smarter about how we tackle the problem, instead of using the blame game as an excuse when we are facing an absolute epidemic of obesity. Blaming is not making those numbers any smaller.
Do you think this is a civil way to respond to a point? Would you like me to talk to you like this in real life? How would you feel if I did? Or how might you expect me to react to you if you spoke to me that way?
I used to hold HN to a higher standard than say YT comments, and I hate to say it but yeah it's really not what it was.
I'll reply to the actual point to the more civil commenter above.
again the smart arse comments... How about, instead of lashing out questioning/attacking what I said in a civil way? Is it so hard? Would you talk to someone this way in person and expect a good response? This isn't YouTube.
Anyway, I meant the alleged self-delusion of the author. Maybe I wasn't clear in how I put it, but I wasn't accusing anybody of it, I was saying that the implication is the author is self-deluded since she claims 800kcal/day + 1hr gym and yet didn't lose weight.
No problem, I know the feeling :) it can be hard to avoid responding emotionally if you see something that is aggravating even if it might be a misinterpretation (as I sincerely think it is here.)
I should not have made the 'smart arsed comments' comment which was rather ironic also, so sorry for that as I distracted from my point and deservedly got karma-hammered...
I don't know how else to help you. You are delusional, and it is caused by your lack of a basic education in physics. Studying physics will help you realize that.
The only persons that are condescending are the ones going off in an argument without first putting in the work needed to not waste everyone's time.
It's not worth responding here really so this'll be the last - you assume calories in and weight out are perfect measures of energy conservation in a closed system. Here's an experiment that refutes your position despite your constant insults - weigh yourself. Drink 1 litre of water. Weigh yourself again.
Are you sure about that? The body is not as simple as you assume, and weird stuff happens that makes literally no sense based on a simple energy in/energy out equation that can't only be explained by self-delusion.
It's funny how much weight loss is an ideological issue to usually quite logical people - don't assume you know this is impossible simply because you have a model in your head that says so.
EDIT: When I say self-delusion here I am referring to the apparent self-delusion of the author that the parent implies - to say you are only consuming 800kcal when there is an assumption that that MUST result in weight loss leaves only self-delusion as an explanation. My point is that there might be other factors (Emphasis on MIGHT...)
Extraordinary claims require extraordinary evidence. And that is quite the extraordinary claim. Why are you so quick to believe something that is so obviously self-delusion, especially when it has never been duplicated in a laboratory? When scientists look into these kinds of claims it always turns out to be the case that the person is eating significantly more than they have claimed. Always.
Wait, what do you mean the claim "has never been duplicated in a laboratory"? The article was about EXACTLY THAT THING.
A dozen former Biggest Loser contestants went into a laboratory for a few days for a study in which they had their metabolism analyzed and it was verified that six years after losing weight on the show, all their metabolic rates were substantially reduced - by an average of 500 calories/day - from what would be normal for someone their weight.
In the context of this study result, a small woman failing to lose weight on an 800-calorie/day diet should not constitute an extraordinary claim.
(Doing the math: imagine her normal metabolism level might previously have required 1200 calories/day. Subtract ~500 due to having dieted, add ~100 for her "hour of exercise", and we're at ~800/day.)
If their metabolic rates were reduced by 500 from a high level (> 2500/day) that doesn't mean you can generalize this effect to people with BMR of 1200.
Nevertheless, physics is NOT violated during dieting. Its a fact of physics that energy in/energy out must add up to energy gain/loss in the system. Lets stop arguing about that.
The likely issue is, cheating on the diet. Sure, eating limited calories at a meal is a good idea. Its also necessary to avoid adding 300-1000 kC with that fast-food burger after work or that donut at the meeting. Its so easy to do; it explains all the "I limited my calories and didn't lose weight!" claims. Simplest answer is often correct answer.
I'll reply to all the dissenting comments just here to avoid duplication and since you were actually civil about it.
Yes that is the most likely answer I agree, however it doesn't make it the ONLY one. I have dieted using a 'food diary' and been amazed at how many calories you can eat/drink without realising it, it's really quite something.
HOWEVER, if she's so serious as to exercise that much, and knows the calories and it's at that low a level, it seems the error bars would likely preclude this.
I've noticed weird results when I've dieted where the 'energy equation' just does not match reality when I have dieted STRICTLY using a food diary and known-calorie food/drink. The 'dieting plateau' is famous and encountered by many so maybe there are more factors here.
Factors that might be at play (other than self-delusion):
1. Water/body fluid retention - This can vary quite a bit and is often (apparently) the explanation for dramatic results at the beginning of a diet. Water is dense enough for this to cause there to appear to be no weight change. In this case, the body fat _would_ be being used by the body as an energy source it just wouldn't show up in weight changes.
2. Inaccurate scales - It's surprising how often bathroom scales can be significantly off. Usually they are consistent + their delta, however maybe she measured on 2 different scales before and after (seems unlikely given how often we dieters like to check)
3. Use of muscle mass as an energy source - This can and does happen, though as I understand it usually as a 'last resort' by the body.
4. Reduced body temperature/energy usage - The body is capable of reducing energy used in starvation situations (though it renders you not feeling great often), this could happen here.
5. Change in efficiency of energy extracted from food - The body is complicated, it's not obvious that energy extracted from food will always remain the same.
6. Difference in diet composition - calories aren't the entire answer as some food is more easily digested than other food, and some types of food are more likely to result in weight gain than others.
7. Hormonal changes - Hypo and hyper-thyroidism can change body mass accumulation without ANY change in food intake, so this could easily apply to other hormonal changes.
8. Constipation - It sounds silly, but perhaps more retention of feces in the system could result in apparent lack of weight change.
9. Change in weather - Perhaps a hotter climate requires less heating and hence less energy usage by the body?
My principle point here is that things are just not as simple as energy in -> energy out - yes 'basic physics' holds that has to be an equilibrium, however you might not be measuring what these are correctly. A car must maintain an equilibrium too, but the type of car, its condition and what you do with it significantly varies the energy it requires despite the same distances being traversed.
All sound true (except #7 - no possibility of accumulating mass without mass input) and a good starting point for a sensible conversation about diet. Water retention alone is probably responsible for almost all the perceived irregularities, IMO.
Your conclusion doesn't follow, there's nuance here.
She claimed it over 3 months, it might just be errors in measurement, water retention can make a big difference, there might be muscle mass loss (small amount, countered by water retention perhaps), etc. (see my other comment for some other potentials.)
Let's not just assume our model is definitely correct because it correlates to energy conservation - energy conservation assumes we know exactly energy in/out and that weight is a good measurement of the balance of the two and that we are measuring it accurately.
Ah yes! The sanctimonious blame game. So very common with this problem. I do have to ask though, did you read the article at all?
'For example, men with severe obesity have only one chance in 1,290 of reaching the normal weight range within a year; severely obese women have one chance in 677. A vast majority of those who beat the odds are likely to end up gaining the weight back over the next five years. In private, even the diet industry agrees that weight loss is rarely sustained. A report for members of the industry stated: “In 2002, 231 million Europeans attempted some form of diet. Of these only 1 percent will achieve permanent weight loss.”'
I'm pretty certain studies generally conclude that people who lose weight are _overwhelmingly_ likely to regain it. Of course you can play the blame/shame game with them and say they're all just lazy, but you're really starting to walk away from the facts and towards the all-too-common ideology that surrounds weight.
Also:
'After several months of eating fewer than 800 calories a day and spending an hour at the gym every morning, I hadn’t lost another ounce.'
So the 'not much science involved' calorie balance really REALLY should have resulted in a loss at this rate, yet it didn't - how do you explain that? I mean that literally entirely contradicts your claim.
I'm overweight. I take full responsibility for my situation and make no excuses. But losing weight is surprisingly, intensely difficult and your body fights you every damn inch of the way and this kind of blaming, sanctimonious 'it's simple' shite you hear so often does NOT fit reality.
Congratulations on your loss, but don't assume you'll sustain it. I lost about the same amount of weight as you with the same calorie limit as you, and despite all this will likely try again and have good results at least initially. But I think longer term you have to think more carefully about how the hell you'll sustain it, it really _isn't_ simple.
> Ah yes! The sanctimonious blame game. So very common with this problem. I do have to ask though, did you read the article at all?
This breaks the HN guidelines in two ways: by calling names ('sanctimonious') and by playing the 'did you read the article' card. Please follow the guidelines, even when someone else is wrong and the topic is personally charged. It's hard, but those are also the times it matters most.
>'After several months of eating fewer than 800 calories a day and spending an hour at the gym every morning, I hadn’t lost another ounce.'
>So the 'not much science involved' calorie balance really REALLY should have resulted in a loss at this rate, yet it didn't - how do you explain that? I mean that literally entirely contradicts your claim.
Explanation is simple: The author either lied to herself or she lied to us. Her diet and workout plan did not violate the laws of physics, so she's wrong.
Mass is not the same as energy. If she claimed to be eating 1.5kg of food a day, and excreting 1.55kg, then your explanation/accusation would hold. But she didn't - she talked about energy intake and expenditure which is not the same.
You would expend more than 800 calories from breathing alone at the weight of 125lb.
The Base Metabolic Rate in the cited paper is still much higher than that even for people whose metabolism slowed down.
Normally, it's calculated as
(9.99 x weight_in_kg) + (6.25 x height_in_cm) – (4.92 x age) – 161 for women.
So for her (assuming she is 5' tall and late 20's), to remain at normal weight and not move at all it would have been
(9.99 x 56.699) + (6.25 x 152.4) – (4.92 x 27) – 161 = 1225
This is without any exercise. She must have missed some source of calories.
Eating too little when cutting is a classic noob mistake. Starving yourself makes your body get protein from where it can, which turns out to be from your muscles.
I think the most sustainable way for normal people to lose fat and not muscle is to try to stay as strong as you were during a bulk while maintaining a small calorie deficit.
I don't want any empathy nor do I have a 'situation' other than being fat :)
I am responsible for being overweight it's totally my fault and responsibility, I make no excuses, I just dislike the often seemingly ideological discussions that result.
I gave some thoughts on why you might be wrong on that in a separate reply... yes basic physics apply, but your ideas of what the energy in and energy out is might not be correct. The body is complicated.
This can be observed by anybody who's dieted with a _strict_ food diary eating precisely the same things + quantities with known calories - weight change can vary surprisingly and significantly without the laws of physics being violated.
The grandparent IS _very_ sanctimonious:
'This while article sounds like a justification for the author not losing weight.
...
...there's not much science involved, eat the right stuff and work out.'
I hate this attitude of 'you're just making excuses' vs. overweight people - it's unfalsifiable as you put literally anything down to excuses.
Losing weight is very hard because your body doesn't want you to do it for evolutionary reasons and weird shit happens even when you do everything right.
Sanctimonious blame games are harmful not only because you might just be wrong, but because food is so often a crutch that when dieting you no longer have, and I've found that people tend to come out with the harshest comments when you are dieting and actually trying to fix things, which can be devastating when you literally have no crutch any longer.
Also most of the time the people who make such comments are emphatically _not_ motivated by health concerns, and there's a culture where just being a dick is acceptable in this one area but no others. People don't like you telling them about their personality flaws and how they are just idiots and should stop being such a twat, and it's not socially acceptable, but the exact same approach to overweight-ness is totally acceptable, and does fuck all to help the situation.
TL;DR The VAST majority of dieters fail in the long run, things are more complicated than just dieting and staying at low cals for the long run both physically and psychologically.
So it's not ok to point out blatant product placement in an otherwise great article on a historic figure?
If somebody wrote a piece on Abraham Lincoln, then interjected the piece several times with discussion about their political research website product, you'd remain silent and think to yourself 'oh God HN, focusing on the wrong thing again' if anybody dared comment on it?
And how is it disingenuous? Have you read the piece? It's pretty blatant!
I consider that it took a lot of effort, and find the piece really excellent other than this stuff, but it can't just go uncommented on because some overly sensitive souls can't tolerate dissenting comments.
Personally I find these hipster-ish 'I hate the hate man' type comments disingenuous...
Yes, I read the piece fully. Found it to be quite insightful, compared to other ones, I read earlier. And of course I too noticed the product placement, must add, that I found it to be quite relevant e.g. the link for the no. 1729 . Which adds few more key facts regarding the number.
Also his article point out a lot of interesting things. For example some new photos of Ramanujan, (I didn't know for e.g. he was stout and short, having just seen his passport photo in earlier articles), and some very relevant observations onto his Math and style (experimental & the analogy with Mathematica quite apt I thought).
So overall for such an elaborate article covering so many details in different domains - personal, historical & mathematical. Just to see somebody harp on product placement does seem like a deliberate nit-pick if not disingenuous.
Moreover the guy wrote the original piece on his blog first. And he is fully entitled to his thoughts. And the parallels he draws actually make sense. Just put aside your prior image of him for a minute. To me, honestly, the critique looked to of pattern matching to Wolfram's known stereotype. He is actually making that case. I would rather like to read a critique of why Wolfram is wrong, in making that comparison, than a shallow product placement criticism.
> Personally I find these hipster-ish 'I hate the hate man' type comments disingenuous
Wow. You must love recursion. I like to discuss, but please make specific points. Like I did above.
>Wow. You must love recursion. I like to discuss, but please make specific points. Like I did above.
I made points, a number of them, not sure what you're saying here? And how is it recursive? I am responding to you, that's how discussions work.
You were the one to talk about these kind of comments being disingenuous, I was both parodying that and wondering whether you are in fact being so yourself - it seems fashionable to 'go against the grain', I was openly wondering if that's what you were doing.
If you read the article he repeatedly interrupts the story to make comments about his products and how wonderful they are, in fact he talks as if they are the only means of doing mathematics in software available.
I cannot be bothered to pull down all the quotes and make this line-by-line because it's a waste of everybody's time, if you didn't find it jarring/interrupting then I envy you, and fine we can agree to disagree on subjective grounds. I do not at all find them subtle and in line with the article's text, so I disagree entirely with you on that.
I hate the 'he is entitled to' arguments - and? Yes he is entitled, he is entitled to write anything, what does it matter? I and others who read a really interesting piece about a historical figure interjected with what _we_ find to be jarring product placement are entitled to comment on it, and I am also entitled to disagree with you about how incredibly tiresome and 'disingenuous' these comments are.
I don't disagree the article wasn't good, in fact I've said about 3 times now I find it excellent apart from this aspect, so that whole bit about how wonderful it is is totally irrelevant...
To finish (because this discussion is becoming... tiresome), let me correct your straw-manning of me - I actually didn't come in to it with a known image of him as a self-aggrandising bullshitter. I read this with an open mind because I find Ramunjan fascinating, having heard about him 15 years ago when I was hoping I could pursue mathematics as a career (before events out of my control screwed that up.)
I put aside my 'prior image' of him for more than a minute, as I didn't maintain one to start with... be careful of these kind of assumptions, it's probably part of why you find these kind of comments so frustrating!
I didn't care it was Wolfram, but as I read the whole article, I found these things jarring and just sad, since the piece is otherwise excellent and well written. Ah well.
Great :) I am glad there was something at least somewhat constructive in there, I did intend to debate the points rather than you or anybody else personally if that wasn't clear.
The irony is that I am not _hugely_ that interested in Wolfram and his tendencies anyway :)
I saw the link to 1729 and the rest of the links to the Mathematica wormhole and noted (but resisted) the opportunity to go exploring. As it was it they were largely inline. That's some pretty subtle calls-to-action, marketing folks can't be happy with that. Whither the shaded buttons? Whither the popovers?
Wolfram's efforts to relate how Ramanujan's maths differ from the mainstream were certainly worth the price of admission. He spent a lot more time fleshing out several of the other historical figures than his own background; possibly he could have mentioned more people who are currently working in this exploratory mathematics, perhaps that's another post. Maybe we can take this for what it is, and precisely what one has come to expect from Wolfram – nerdy native advertising, in the form of a well-researched long-form essay by a dude with subject-matter expertise. If he starts skipping the inline links we'll know that he's secretly divested shares.
If a well-known politician wrote a piece on Abraham Lincoln, then interjected the piece several times with discussion about their political opinions, I'd say that was fair for an article by the politician about another politician.
'...then interjected the piece several times with discussion about their political research website product'
If you're making the comparison in that Wolfram is a mathematician giving his opinion on Ramanujan, a historical mathematician, well you're missing my point entirely - in fact if you read my comments here you'll see that I find the article really excellent in those parts where he refrains from his advertising.
My issue is with comments like:
"Today with Mathematica and the Wolfram Language we have immensely more powerful tools with which to do experiments and make discoveries in mathematics (not to mention the computational universe in general)."
Well, today with 'modern software' would do don't you think? If it was once or twice it'd be forgiveable, but there are several paragraphs like this throughout the article.
Yes, I realise it was first posted on the wolfram blog, but I think it would have been a little more respectful had Wolfram restrained himself at least a bit in this regard, it's incredibly jarring when you're talking on a historical subject.
How would you feel if you read the same piece on a microsoft site with constant interjections about how you can do amazing stuff with excel now?
Would you find the comments here 'tiresome' and make a passive aggressive comment about how irritating and uninteresting those commenters are compared to this microsoft guy?
I find the piece really fascinating, but filling an otherwise excellently written article on a really fascinating historical figure with what is blatantly product placement is frustrating, and guess what - people get to comment on it on a comment site. If you find the comments tiring, don't read them.
And note what your comment is doing - you're meta-commenting on tiresomeness, how riveting! Perhaps we can have another meta level and then... they'll be interesting? ;)
Also just to clarify - are you claiming that Wolfram doesn't self-promote? I'd suggest re-reading the piece if you don't agree.
I was thinking the same thing as the top commenter here, and was glad to see that I wasn't the only one who noticed it (I wasn't aware there was a tendency towards disdain - probably justified - for Wolfram here beforehand actually.)
Having said all that, it's a fascinating piece once you filter out that noise!
I agree that Wolfram has a tendency for self promotion, and didn't claim otherwise. When people on HN constantly point this out and assume negative intent, every time something he has written is submitted, the result is tiresome noise. But having read both of your extensive comments, I get it that you feel strongly about this: that comes across very clearly.
Tip for these kind of discussions - don't get personal unless it's relevant - my feelings on this (which you misinterpret actually) are irrelevant, and this just sounds like a bit of an underhand dig whether you intended it as such or not.
In actuality I am not really that bothered about Wolfram at all haha, I just disagreed with what _you_ said :)
Back to the discussion, I am glad you agree on the self-promotion aspect. Personally I don't ascribe negative intent, but I do think it's worth pointing out this stuff when you see it, so still fundamentally disagree with what you said.
Also, I tend to write a lot in every comment, so length of comment != importance to me, rather consider me overly verbose...
EDIT: Downvoted for criticising an ad hominem - ah HN, don't you ever change, you cute, cute little dandelion!
How secure were these devices? How much work was put onto application developers to maintain isolation? I mean it wasn't feasible back then since we didn't have MMUs (ifaik)
This argument is pretty poor, since we've done a lot of things - cooperative multitasking, windows versions which had little to no isolation between the root user and other users, etc. etc. it doesn't mean they are the best approach now, or were even a good idea at the time. Yes we got them to work. Microsoft Bob and Windows ME worked too.
I don't think the javascript PC emulator runs that acceptably fast either. That was more of a toy example, I don't think you'll find many people using that for anything real.
At the kernel level performance/resource usage really does matter. I don't know enough about OCaml to comment on how it performs but especially when you make your argument about how (allegedly) terribly linux performs in certain circumstances, and that's a lot of what the selling point of unikernels are, it doesn't really follow to talk about how 'acceptable' performance is possible from higher level languages.
> How secure were these devices? How much work was put onto application developers to maintain isolation? I mean it wasn't feasible back then since we didn't have MMUs (ifaik)
I'm almost willing to bet money VM has been used in production for longer than you've been alive. And of course machines had MMUs back then: They built a special one for the IBM System/360 model 40, to support the CP-40 research project, and the IBM System/360 model 67, which supported CP-67, came with one standard. IBM, being IBM, called them DAT boxes, because heaven and all the freaking angels forfend that IBM should ever use the same terminology as anyone else...
> This argument is pretty poor, since we've done a lot of things - cooperative multitasking, windows versions which had little to no isolation between the root user and other users, etc. etc. it doesn't mean they are the best approach now, or were even a good idea at the time. Yes we got them to work. Microsoft Bob and Windows ME worked too.
The difference between this and Windows Me is that we knew Windows Me was a bodge from day one. Windows 2000 was supposed to kill the Windows 95 lineage. (What's a "Windows 2000"? Exactly.)
Anyway, the hypervisor design concept came from people who'd seen what we'd now call a modern OS; in this case, CTSS, the Compatible Time-Sharing System (Compatible with a FORTRAN batch system which ran in the background...). They weren't coming from ignorance, but from the idea that CTSS didn't go far enough: CTSS was a pun, in that it mixed the ideas of providing abstractions and the idea of providing isolation and security into the same binary. The hypervisor concept is conceptually cleaner, and the article gives evidence it's more efficient as well.
> I don't think the javascript PC emulator runs that acceptably fast either. That was more of a toy example, I don't think you'll find many people using that for anything real.
You missed my point. My point was that it works acceptably fast (yes, it does, I've used it, and you won't convince me my perceptions are wrong) even though it's operating in the worst possible context: In a userspace process on an OS kernel, where everything it does involves multiple layers of function call indirection and probably a few context switches. Compared to that, getting a stripped-down unikernel written in OCaml to be performant has got to be relatively easy.
> At the kernel level performance/resource usage really does matter. I don't know enough about OCaml to comment on how it performs but especially when you make your argument about how (allegedly) terribly linux performs in certain circumstances, and that's a lot of what the selling point of unikernels are, it doesn't really follow to talk about how 'acceptable' performance is possible from higher level languages.
First: Only the unikernel would be written in OCaml. The hypervisor would have to be written in C and assembly.
Second: I never said Linux performs terribly. Linux performs quite well for what it is. It's just that what it is imposes inherent performance penalties.
Third: Although the article focused on performance, the main reason I support hypervisors is security. Security means simplicity. Security means invisibility. Security means comprehensibility, which means separation of concerns. Hypervisors provide all of those to a greater extent than modern OSes do.
>I'm almost willing to bet money VM has been used in production for longer than you've been alive. And of course machines had MMUs back then: They built a special one for the IBM System/360 model 40, to support the CP-40 research project, and the IBM System/360 model 67, which supported CP-67, came with one standard. IBM, being IBM, called them DAT boxes, because heaven and all the freaking angels forfend that IBM should ever use the same terminology as anyone else...
You clearly know more about the details :) however my point is that modern requirements aren't the same as those of the past, particularly with regard to security but also workloads, use cases, etc. are generally very different.
>The difference between this and Windows Me is that we knew Windows Me was a bodge from day one. Windows 2000 was supposed to kill the Windows 95 lineage. (What's a "Windows 2000"? Exactly.)
You said "The best argument is this: We've done it" - the point of these examples is that, yes we've done many things, so it's not a very good argument. If you want to skip over ME, then 3.1 - it used cooperative multitasking. Arguably this might be more efficient than pre-emptive multitasking (I'm not saying it is, rather saying maybe somebody _could_ argue this), and it was good enough for the time, but the fact we've done it doesn't mean we should do it.
This applies even more to security - for many years there were little to no efforts made towards hardening software. We live in a world where this just cannot happen any longer.
I'm not saying by the way that the past use doesn't have value or demonstrate the usefulness of the approach, it might do, just that the fact it was done before doesn't _necessarily_ mean it's a good idea now.
>Anyway, the hypervisor design concept came from people who'd seen what we'd now call a modern OS; in this case, CTSS, the Compatible Time-Sharing System (Compatible with a FORTRAN batch system which ran in the background...). They weren't coming from ignorance, but from the idea that CTSS didn't go far enough: CTSS was a pun, in that it mixed the ideas of providing abstractions and the idea of providing isolation and security into the same binary. The hypervisor concept is conceptually cleaner, and the article gives evidence it's more efficient as well.
Interesting. Not sure the article does demonstrate that though, it does suggest performance penalties, some serious, due to the abstractions of a modern OS. I'd want to look more closely at these before I believe the penalties are THAT severe, other than in the case of networking where it seems more obvious the problem would arise.
>You missed my point. My point was that it works acceptably fast (yes, it does, I've used it, and you won't convince me my perceptions are wrong) even though it's operating in the worst possible context: In a userspace process on an OS kernel, where everything it does involves multiple layers of function call indirection and probably a few context switches. Compared to that, getting a stripped-down unikernel written in OCaml to be performant has got to be relatively easy.
I raised the performance issue because this seems to be the main selling point of a unikernel, but now we're losing performance because it's acceptable? Ok fine, but I think a 'normal' kernel in most cases has acceptable performance penalties. This is something that really requires lots of data, and maybe even ocaml is nearly as fast anyway (I hear great things about it), but I just wanted to point out the contradiction.
>First: Only the unikernel would be written in OCaml. The hypervisor would have to be written in C and assembly.
>Second: I never said Linux performs terribly. Linux performs quite well for what it is. It's just that what it is imposes inherent performance penalties.
Absolutely, and agreed there are inevitable perf penalties (as the article describes well.)
>Third: Although the article focused on performance, the main reason I support hypervisors is security. Security means simplicity. Security means invisibility. Security means comprehensibility, which means separation of concerns. Hypervisors provide all of those to a greater extent than modern OSes do.
I really find it hard to believe that security is really wonderfully provided for in a unikernel - you have a hypervisor yes, but if you get code execution in the application running in the unikernel you have access to the whole virtual system without restriction. I'd bet on CPU-enforced isolation over software any day of the week, even memory safe languages have bugs, and so do hypervisors.
I may have made incorrect assumptions here so feel free to correct me. I'm certainly not hostile to unikernels, either!
> I'd bet on CPU-enforced isolation over software any day of the week, even memory safe languages have bugs, and so do hypervisors.
... and so do CPUs! I do like CPU protections as long as they are dirt-simple, but it really scares me sometimes how complicated CPUs and chipsets are getting with their "advanced" security features. When an exploitable flaw is found, and malware survives OS/firmware reinstalls, it will be a mess.
Yeah this frightens me too :) and things like rowhammer [0] are surprising in this regard. Nothing can be trusted, but you can have a little more faith in some things.
> I really find it hard to believe that security is really wonderfully provided for in a unikernel
I think you've missed the point: The hypervisor provides security. The unikernel does not. Everything in the same unikernel guest is in the same security domain, meaning everything in the same unikernel guest trusts everything else in that unikernel.
The hypervisor is the correct level to provide security because that's all it does. It exists to securely multiplex hardware, to allow multiple unikernel guests to run on the computer at the same time without having to be aware of each other. The hypervisor is, ideally, invisible, in that its only "API" is intercepting hardware access attempts and doing its magic at that point; it provides no abstractions of any kind, so it can be as simple as possible. You can't hit what you can't see, and you can't exploit code which isn't there.
The hypervisor of course uses all of the hardware tricks the CPU provides to provide isolation. Modern virtualization hardware fits the bill just fine here.
It's therefore possible for unikernels to establish and enforce their own security policy, just like how you can run Linux as a guest under Xen. It's just that it shouldn't be necessary in a proper hypervisor/unikernel setup, because everything running in the same guest should trust each other and only need to worry about information coming in from the outside world.
Sure, but what about private state in the unikernel? If I exploit it, I have access to everything inside it without restriction, I could even change the way the drivers work totally transparently to the rest of the software.
Is the idea that a single unikernel is equivalent to a single process? Surely we're getting into realms of serious performance issues if that's the case?
I do take your point on there being less going on meaning there is less to attack, and what you are saying is very interesting, don't get me wrong :) I'm just trying to understand it.
There have been hypervisor exploits, but of course far fewer than linux/windows/mac escalations
> Is the idea that a single unikernel is equivalent to a single process?
Yes.
A unikernel is equivalent to a process in a more traditional system. We usually don't secure parts of a process against other parts of the same process. We just start more processes.
> Surely we're getting into realms of serious performance issues if that's the case?
I think I'll get downvoted for this, esp. on HN, but I think the main surprise people have with this kind of thing (+ what you're missing out with the comparison to men frankly) is the significant biological difference between men and women - it's far, far easier for a woman to find a male partner than vice-versa. Generally, women choose.
In history 40% of all men have reproduced, while 80% of all women have. It's just biology.
So it's surprising they couldn't find this in real life. Additionally, women tend to have better support networks than men.
Of course, this doesn't mean it's easy to find a decent guy, and yes, partners are not commodities, so maybe that is the real issue while still wanting some companionship.
And it's not just way better for _women_ to be single than to have the wrong partner, it's way better for a person to be single than to have the wrong partner.
The Win32 documentation is sometimes best treated as historical fiction with an unreliable narrator. This is why Wine has a massive suite of test cases.
That's a clever way of perpetuating vendor lock-in: write shitty documentation that is still helpful for application developers but also simultaneously makes life VERY hard for interop layer developers (like the WINE project).
And given MS's business practices in the past (seem a very different company these days) it's actually pretty believable at least some of this was on purpose.
Certainly when you take into account all the undocumented API functions used by office et al.
Perhaps Microsoft's recent move towards open source might might thinks easier - as far as I can tell there are far too many copyright issues with the _entirety_ of the windows source code for a complete open sourcing there, but they could perhaps open up core parts of the codebase.
Imagine Microsoft engineers contributing to wine also. Perhaps I am dreaming :)
This is in large part why I am so impressed by the fix. U9 arguably one of the worst games ever released, though largely because the series is otherwise so great (8 wasn't great but after patches wasn't _terrible_.)
Not many people want to play it these days as a result, so if they're fixing _this_ then they must really be comprehensive.
I see this kind of article posted regularly, and it has been for at least the past decade (if not longer.)
Worse, it's often accompanied with 'but profession X is so much better and they are all certified and do things properly unlike us awful cowboys!'. In the worst case you get the whole 'in the future everyone will program and programmers will become totally redundant'.
I have a feeling the developers writing these posts don't have a huge amount of experience, and have a natural tendency to want to turn the table up side down and start afresh to get rid of all this cruft. I understand it, but it's frustrating
But what they perceive to be the cruft isn't just cruft. In programming the possibility of starting afresh is there, and has been done several times - haskell, erlang, go, rust, clojure, etc. etc. etc. on the programming side. In the web world the front end is filled with the latest great solution that just pushes aside all this terrible accidental complexity, and this happens in other realms too, yet we still see these articles.
I think there are a number of things at play here:
1. Programming is hard and often in annoying, frustrating, and painful ways. Nothing you do can change that, and blaming it on tooling or legacy or whatever doesn't change the _intrinsic_ complexity at hand. People like to imagine it's hard in challenging and enjoyable ways, and sometimes it is, but more often it's just frustrating.
2. Abstractions won't save you. They help, but always involve trade offs of one kind or another. Something that is declarative enough hides imperative details which eventually leak in horrible ways unless you come to understand how they work, and something too imperative invites duplication, complexity and bugs. Having seen giant T/SQL stored procedures, Microsoft Access queries that take hours to run and excel sheets that are so complicated nobody can vet them, I have seen my fair share of collapsed abstractions which started wonderful.
3. Programmers are needed. A great example is excel - some people point to it as the philosopher's stone of the 'everyone is a programmer' world, but as soon as you start doing things it's not good at, or exceed a certain complexity, it explodes into horrible pieces and fails in all kinds of terrible ways. Then the programmers need to step in. It's not something special or conceited, personally I think only a certain % of the population are capable of thinking in a sufficiently logical way to understand what a computer needs, whether employed as 'programmers' or not, and these are the only people who can help beyond the simplest case. Nothing to do with intelligence, just a kind of thinking. The power of software + the rarity of this way of thinking combined with people actually using it is why programmers are expensive, it's not an anomaly imo.
4. Real world work is largely boring and/or painful. I think particularly here people miss this point, in fact PG wrote a great piece relating to this (http://paulgraham.com/schlep.html), but it's so important - even the most interesting problem involves a great deal of schlep to get things _nicely_. No matter how wonderful programming could possibly be made, there is no avoiding this. It's true not only of programming but any job. I think there's too much of a delusion sold by many that work can be nothing but a joy if only you pick the right one - no. It can _net_ be wonderful, but in that net are wins and losses. If you love programming, the kick of solving problems and seeing an application do something for somebody easily outweighs the pain of schlepping to that point.
5. Other professions aren't magically better. I did a civ eng degree at arguably the top civ eng school in the world, and worked in a practising office for a couple of years and believe me the insight I got from both the theory and practice of engineering made it incredibly clear that the kind of abominations and messes you see in programming are nothing compared to that. You think you lack freedom in programming (you don't btw), ha! At least in programming things can be fixed only conceptually and not risk lives :)
6. Programming is actually wonderful. Despite the schlep and pain, you can build things that are actually useful using only 'thoughtstuff'. Everything that is broken can be fixed, and a great idea and a decent community around it can be enough to change anything that really is broken out there. That is totally counter to most industries out there. Problem solving in such a pure fashion, even in the compromised and often boring ways commercial programming causes you to do it is still an amazing privilege.
7. The possibility for shifting your area of programming are huge. In how many other industries could you change your specialisation by doing hobby work on a project open to anyone? You'd usually either have to 'start again' or simply not have the opportunity to change what you work on.
I feel like I have a blog post in me about this that refines and expands on the points above, but these are my thoughts on this perennial and understandable pattern of articles.
As a final note, a sad aspect is that this kind of article (not necessarily in this case) seems to downplay programming skills as just knowledge of the mess we have, or suggest it is not a nice job to have, or whatever else, which can have real world consequences. I think we have a lot to improve in programming, but to suggest it's some terrible sucky mess is a mistake, and a fatal one if you think that in the cases where in fact there is something wrong, they can't be fixed.
I remember entering a long and painful depression after reading an article by a well known author (who will go unnamed) who talked about how programming utterly sucks but if you do a real job and use programming then it's amazingly useful, just avoid the former. I think that was not a well thought out point to make and reflected more on the author than reality, including the grass is greener imagining of how somebody in another job could use programming and how great that could really be.
These kind of discussions have real world impact, let's not leap to 'X sucks' before we really know that it does.
> In the worst case you get the whole 'in the future everyone will program and programmers will become totally redundant'.
Yeah, not going to happen because not everyone can think in the level of detail required to program.
Some people just think programming is like waving a magic wand, but when you keep asking them "so, what should it do if this happens? What about if that happens?" they slowly start to understand...
Yeah this is exactly what I mean by a certain kind of logical thinking. It's made worse by these tasks seeming a lot more simple than they actually are, before you even think about accidental complexity.
What's frustrating is when programmers mistake inherent complexity for the accidental kind and therefore label the whole enterprise a terrible mess.
In fact overall I think this distracts from ACTUAL accidental complexity since if you think programming is generally terrible you'll probably not be too interested in some small details of that :)
1. You must feel ashamed for your laziness and greed - anything other than humble capitulation to this is 'making excuses' and maybe you're 'not ready' to make the changes you need.
2. Dieting's easy - just eat less, fatty!
3. Dieting is literally energy in/energy out and weight/BMI is a perfect measure of progress. If you eat X calories a day and log it accurately you will ALWAYS lose weight Y/week and if you keep this up permanently you will keep it off. If anything happens that this model can't explain, it's because you fucked up and are being lazy/greedy again/lying to yourself.
4. I absolutely discount any possibility of this being a psychological crutch that will not be replaced if you lose weight (often the person doing the judging has several of their own that would render them miserable if they gave up, but those are not 'special' topics that are allowed to be brought up in polite conversation.)
5. I am saying all this only because I am concerned for your health, not due to this being a good source of feeling superior or insecurities in this area or just finding fat people amusing.
And I'm sure I could go on.
I should point out that I am very much _not_ in favour of the whole 'fat pride' movement stuff - having digs at people for being fat is not ok, but being significantly overweight is a serious health hazard and extremely bad for you.
What most people miss in this is how incredibly hard it is to actually get your damn body to lose weight and keep it off. A lot of the problem is psychological, and we genuinely do need to look at means of being smarter about how we tackle the problem, instead of using the blame game as an excuse when we are facing an absolute epidemic of obesity. Blaming is not making those numbers any smaller.