Science and Technology links (September 1st, 2018)

  1. Our PCs and servers run x64 processors, most of them made by Intel and AMD. In my home, all my x64 processors are made by Intel… except the processor of my PlayStation 4…. so I was surprised to read that AMD and Intel each hold a market share of 50% in terms of units sold. My estimation is that Intel is at least ten times larger as a company. Intel’s processors are typically more expensive (and faster).

    Update: It turns out that this data was for one retailer. In fact, AMD has under 5% of the server market. However, all signs point to the fact that AMD’s market share is growing fast.

  2. What causes the obesity epidemic? Archer et al. think the role of diet is overblown. Rather they believe that obesity is caused by reductions in physical activty below the Metabolic Tipping Point. Their argument is based on the fact that various human population have had various diets (including diets rich in sugar) without triggering widespread obesity. Of course, one would need to demonstrate that physical activity has declined recently. My impression is that many people, being overweight, try to exercise more… without necessarily losing weight.

    Update: Archer clarified his position by email:

    To be precise, the major determinant of the obesity and diabetes epidemics was the loss of matrilineal and maternal metabolic control due to low levels of physical activity (PA) during the pubertal, pre-conception, and prenatal periods. Yet PA only needed to be lower in previous, not current generations.

    The non-genetic evolutionary processes of maternal effects, phenotypic evolution and accommodation (i.e., a form of canalization) allow the recapitulation (inheritance) and/or evolution of obese and metabolically compromised phenotypes without the original environmental context (i.e., low physical activity). In other words, after a few generations of offspring being born less metabolically robust, each successive generation would need to eat less and move more than the previous generation to remain at the same level of adiposity.

  3. A disproportionate number of Thai Buddhist monks are overweight.
  4. Rapamycin is a common drug given to transplantees. It seems that Rapamycin is capable of rejuvenating overaries, and thus prolong fertility in females. It works in mice.
  5. Paul Krugman, a celebrated economist and Nobel-prize recipient, predicts the fall of Bitcoin:

    there might be a potential equilibrium in which Bitcoin (although probably not other cryptocurrencies) remain in use mainly for black market transactions and tax evasion, but that equilibrium, if it exists, would be hard to get to from here: once the dream of a blockchained future dies, the disappointment will probably collapse the whole thing.

    My wife might make peace with the fact that some nice people once granted me a bitcoin (circa 2012), that I quickly discarded without any thought.

  6. Taleb on innovation (in his book Antifragile):

    both governments and universities have done very, very little for innovation and discovery, precisely because, in addition to their blinding rationalism, they look for the complicated (…) rarely for the wheel on the suitcase. Simplicity does not lead to laurels. (…) Even the tax-funded National Institutes of Health found that out of forty-six drugs on the market with significant sales, about three had anything to do with federal funding.

  7. Of the social science studies published in Nature and Science, about a third cannot be reproduced. More critically, the effect being reported is half as large as it should be in the other studies.
  8. Daily aspirin may not help reduce cardiovascular risks. The study is strong with many participants, but there are possible problems like low adherence and insufficient dosage. My understanding is that aspirin may only help if the dosage is just right (not too high, not too low).
  9. Daily aspirin reduced deaths due to several common cancers. Benefit increased with duration of treatment and was consistent across the different study populations.
  10. Statins are regularly prescribed to people at risk of heart attacks or strokes. It is a billion-dollar industry. Okuyama et al. report that statins stimulate atherosclerosis and heart failure.
  11. Few animals have menopause. Besides human beings, it seems that a few whales also have menopause. That is pretty much all.
  12. Common viruses might put you at risk for Alzheimer’s.
  13. The co-inventor of deep learning, Hinton, writes:

    The data efficiency of deep learning will be greatly augmented in the years ahead, and its potential applications in health care and other fields will increase rapidly.

  14. The CEO of a company backed by Amazon’s Jeff Bezos is quoted by CNBC as saying:

    The time has finally arrived that our knowledge of biology and our sophistication level is sufficient that we can attack some of these fundamental, underlying causes of aging

  15. Dairy products protect you from death.
  16. C++ is a popular programming language, especially among videogame developers. I like C++ well enough when the programmers try to avoid fancy features and unnecessary abstraction. However, I have increasingly felt uneasy about the language as it seems to attract people who believe that complexity is a feature. Scott Meyers, a reputed author of books on C++ writes:

    C++ is a large, intricate language with features that interact in complex and subtle ways, and I no longer trust myself to keep all the relevant facts in mind. As a result, (…) I no longer plan to update my books to incorporate technical corrections

    I am not sure we should take Scott litterally. I think he may very well be able to figure out what the C++ standard says, but he might have concluded that the interaction with people who enjoy the complexity a bit too much is too annoying.

    Here is Linus Torvalds on C++:

    (…) the only way to do good, efficient, and system-level and portable C++ ends up to limit yourself to all the things that are basically available in C. And limiting your project to C means that people don’t screw that up, and also means that you get a lot of programmers that do actually understand low-level issues and don’t screw things up with any idiotic “object model” crap.

    If you read Linus carefully, his objection regarding C++ stems from the kind of people who are attracted to the language.

    As I repeatedly write: programming is social.

6 thoughts on “Science and Technology links (September 1st, 2018)”

  1. The Torvalds comment you quote is from 2007. Do any of the developments in C++ since then change the picture? For better or for worse?

    1. In my opinion C++ is much improved with the addition of C++11, C++14, and C++17. After a long period of stagnation and endless standard revisions leading up to C++11, many important things have finally been added and a predictable three-year pace seems to have been adopted. Things that aren’t ready (c.f., concepts) just get moved out of the revision, rather than delaying it.

      The new features make it possible to write in a portable way things that weren’t possible before, often without sacrificing performance, and allow people to stay within the sphere of operations that are provably (or at least probably) safe more of the time (i.e., reducing raw pointer, usage, etc).

      That is said, all of these revisions came with an considerable increase in complexity. New concepts and syntax were added. I was what I would consider an expert C++ programmer prior to C+11, but had not used the language for a while, and fairly recently came back: I was happy with the new additions, but the learning curve was steep, even for someone who was already familiar with the fundamentals. Maybe, it is even harder for someone who was familiar with old C++, since in principle the way to reduce the incredible complexity of C++ is to only learn the “new stuff” or “the good stuff” – the idiomatic ways of doing things using the best available features today, rather than trying to learn everything the language has to offer, much of which is there mostly for backwards compatibility.

      So if your view is that the primary problem with C++ is the complexity, then revisions since 2007 have made that problem worse. People using C++ today, however, are probably doing it because there were few alternatives with much traction as a “more powerful C” – they have already accepted this complexity and probably welcome the improvements. Adding more complexity won’t suddenly tip the balance in favor of another language, since the basic tradeoffs that C++ offers are still the same.

      I see Rust as very promising, and I suspect it is the leading candidate to finally supplant C++ in its primary niche of “zero abstraction cost compiled, non-GC language”. It takes the next step towards safety in many respects: as C++ improved on C by allowing the use of constructs that were safe as long as you used them and followed the rules, Rust effectively requires you to use them, and enforces it at compile time (and is built around it: offers more tools when interacting with the proof-checking part of the compiler). This will lead to safer software.

  2. My current preferred approach is to restrict my use of C++ to stuff that has a straightforward (if less performant) C99 fallback that goes in the #else branch of an #ifdef __cplusplus (or #if __cplusplus > 201103L, etc.) block. This is kind of artificial, since the C99-compiled builds are never used outside of automated testing, but I’ve found it to be a good way to balance access to genuine advantages of C++ over C with staying focused on problem-complexity instead of language-complexity. I feel that the things I still miss out on are more than compensated for by the number of irrelevant decisions I no longer have to make and the classes of locally-invisible side-effects I no longer have to worry about.

  3. My impression is that many people, being overweight, try to exercise
    more… without necessarily losing weight.
    I would say that the key word is “try to”. Overweight people tend to try a lot of diets, exercises and sports. The problem is, in my opinion, the lack of consistency. I was fat myself for most part of my life and in my family and environment I met a lot of overweight people. The problem was that everyone was looking for easy or simple methods for losing weight.

    Then I realized the problem was that I, and others, were doing all those things for a short period of time. And not enjoying the process or the exercise we were engaging in. So, after a small success (losing a few kg), we started failing. One day I didn’t do the exercises, but I though that “I am on track already, so it’s ok”. Then it was a second, third time… And before I realized, I was not exercising and going back to the habits that made me fat again.

    And I see the same pattern in almost anyone who is overweight and is struggling with it for a long time without improvement. I guess it’s because is difficult to build the routine and to feel the need of doing sport. Because otherwise no matter how many things you try, if you don’t do it regularly.

Leave a Reply

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax