Books Programmers Don't Really Read But Recommend - <AUTHOR> http://www.billthelizard.com/2008/12/books-programmers-dont-really-read.html <comment><USER3> I actively disrecommend Code Complete. I bought the first edition back when I uncritically acquired everything with a Jolt Award logo. It's a pile of tautologies and common sense. It tries to teach stuff that is best learned through experience.

K&R was my second C book, and I love it for its authenticity, but I learned more from Kelly & Pohl's "A Book on C".

The Mythical Man Month I read in anger after a project failed. It not only resonated with me, but cheered me up.

Programming Pearls can't be "read" in the usual way, it's something I flip through when facing particular problems, but generally I savor it (ended up selling my copy after my 2 year backpacking trip, back when I swore I'll never write software again .. oops!)

Effective Java (C++) are practitioner lore. Their teachings have been subsumed by the language community and you can see it in code bases.

My advice is to learn to use your favorite editor with a TAGS file, then go navigate through a large open source project, and extend it in some minor way. That's more profitable than enduring any book on "design".

I never cared for "Pragmatic" or "Test-driven" or "Agile" publications.

<comment><USER4> I am sure that for you it was a pile of tautologies and common sense, but I think most people graduating with an undergraduate degree would benefit from reading Code Complete as they start their career.

I have to admit I thought it worth the time to read. It is an easy read. There are certainly books on this list that provide >10x the value, but take >10x the effort to assimilate.

      >> It tries to teach stuff that is best learned through experience.

Experience is a harsh teacher.

<comment><USER5> "Experience keeps a dear school, but fools will learn in no other, and scarce in that" \-- Benjamin Franklin

</comment></comment></comment><comment><USER6> Ya know, I would put a lot of the books most programmers have read on the second list. How many have actually read Code Complete (HN is probably a bad sample)?

I totally agree about Design Patterns. That is perhaps the driest (I mistyped that as "direst"; Freudian slip?) technical book (or any book for that matter) I have ever tried (and failed) to read.

Thing is, technical books don't have to be that way. The early Michael Abrash books (eg [1]) are actually highly entertaining. Effective C++ and Java are eminently readable.

I lot of people recommend CLRS and I've certainly studied from parts of it but I found Skiena's The Algorithm Design Manual to be far more approachable and enjoyable. If your goal is to learn I suggest that. CLRS seems more aimed at people who want or need to know mathematical proofs or are bound for postgrad CS.

TAOCP and the Dragon book are classic examples of books that get recommended all the time (on SO, here and elsewhere) but I'm convinced only a handful have actually read them.

[1]: [http://www.amazon.com/Zen-Assembly-Language-Knowledge- Progra...](http://www.amazon.com/Zen-Assembly-Language-Knowledge- Programming/dp/0673386023)

<comment><USER7> "How many have actually read Code Complete (HN is probably a bad sample)?"

Honestly, how many programmers have actually read _any_ book about programming outside of University classes? I'm guessing not many.

On another note, Effective C++ is not only a great book, it is the book which single-handedly made me a _much_ better programmer, and made me understand C++. This is after half a year of training/working in C++. It is my most highly recommended book for really grokking C++. My only regret is that there isn't a similar book for most of the languages I know.

<comment><USER8> Why wouldn't people read programming books outside of university classes? How do you improve your craft? Reading is an instrumental part in growing as a developer and as a human being.

<comment><USER7> You're talking about whether people should. I'm talking about whether people actually do. As for why people wouldn't read, there's one giant reason: people don't care about programming.

Obviously you care, and I care, and arguably most people reading HN care. But I believe that for a large percentage of programmers, programming is just their job. They do it, they get paid for it, and as long as they can keep getting paid for it, they don't need or care to "grow as a developer". It's just not a priority in their life, or even a goal.

</comment></comment></comment></comment><comment><USER9> Surprised Tufte's books aren't on the second list. I see programmers referring to Tufte but I doubt many have read his books. I recommend them.

I nominate Stepanov's _Elements of Programming_ to the second list. Beautiful, dense, and a perpetual shelf ornament. Stepanov's papers, especially the one that launched the STL, _Fundamentals of Generic Programming_ (with James Dehnert) is a masterpiece.

I have some favorites that show my age:

 _Software Tools_ by Kernighan and Plauger. Can be thought of as the poor- man's Dragon book.

 _The Practice Of Programming_ by Kernighan and Pike. As if the UNIX way needed any defending after almost 40 years.

 _Reliable Software Through Composite Design_ and _Composite/Structured Design_ by Glenford Myers. You have to get past the ancient languages and flowcharts. These books describe modularity and module strength and coupling and are full of good ideas that still apply.

 _Database In Depth_ by C.J. Date, for programmers who haven't read Date's textbook on databases and probably don't need to. I do wish the NoSQL weenies would read Date's _Introduction To Database Systems_ for some history and humility. Database technology has been there, done that, moved on.

<comment><USER10> I second _The Practice of Programming_. I was also forced to read _Pragmatic Programmer_ for a class in school, I was happy to find that this review sums up my thoughts perfectly about that: [http://www.amazon.com/review/R3KBSGSQDBND0N/ref=cm_cr_pr_per...](http://www.amazon.com/review/R3KBSGSQDBND0N/ref=cm_cr_pr_perm?ie=UTF8&ASIN=020161622X&nodeID=&tag=&linkCode=)

Another commenter mentioned _SICP_ , I'd add _Let Over Lambda_ and _On Lisp_ which while I haven't read cover to cover I've enjoyed every section I've read so far...

In the end I don't really agree with the author's conclusions that we shouldn't recommend books we haven't read at all. Passing on recommendations of others is defensible--after all, if someone asks for a recommendation they usually want one, not a response of "I don't know" or "Go do your own research!"

</comment></comment><comment><USER11> I think many people consider CLRS (Intro to Algorithms) to be far more daunting than it actually is. I have read 80% of it (wasn't interested by some parts, maybe will go back to them) and I have several friends who have done similar read-throughs. Doing all of the proofs is a bit much, but a lot of the exercises are quite good and I would hope that most programmers were familiar with the majority of algorithms described in CLRS. Essentially, I think many people are far too intimidated by CLRS. I actually found it to be quite readable, as textbooks go. Note that I did this before actually taking any algorithms class.

Perhaps the post should be rephrased to "However, unless you have at least a Masters degree in Computer Science (and in Algorithms specifically), I doubt you've HAD TO read more than a few selected chapters from Introduction to Algorithms."

<comment><USER12> CLRS is essential to any good undergrad CS programme.

<comment><USER13> Why?

While I have worked through a decent amount of CLRS myself, I think there are much better ways to learn how to solve algorithmic problems. For example, programming competition books like Programming Challenges[1] forces students to solve real-world-ish problems according to performance constraints - a time constraint, either artificial (e.g., problem statement requires execution within 2 seconds) or actual (e.g., choosing an algorithm that is too slow means the sun will burn out before the algorithm terminates).

Books and contests of this nature teach algorithmic _thinking_ , which is far more important than the actual algorithms themselves. It also provides a context for implementing these algorithms, which means the student gets to see the more practical aspects as well: testing it on corner cases, fighting with the chosen implementation language, relying on compiler optimization, etc.

If the goal of the undergraduate program is to develop practitioners of computer science, or even graduates headed for academia, algorithmic thinking is essential. I don't think CLRS is necessarily the best way to teach that, and it certainly isn't the only way.

[1]: <http://www.programming-challenges.com/pg.php?page=index>

<comment><USER14> It's possible that you're confusing programmers with computer scientists. Not all programmers are computer scientists, and vice-versa.

I understand that the title of the post is about books _programmers_ recommend, but computer science extends far, far beyond programming and learning how to engineer solutions to real-world problems using algorithms.

The important parts to people doing research in algorithms are well-covered in CLRS, and that's part of why it's such an excellent book. It's full of rigorous proofs and a lot of theory, but that's because the point of the text is the design and analysis of _algorithms themselves_ , rather than the application of them.

A university has an obligation to its undergraduate students majoring in computer science to teach them about computer science, and learning to think about designing algorithms, rather than merely learning about using them, is something that I would fully expect as an undergraduate majoring in computer science at any major university.

I suspect this is part of why more and more universities are offering degrees in Software Engineering, where the theoretical aspects of the field are not as important.

</comment></comment></comment></comment><comment><USER15> The first list includes books that professionals read 2+years into their careers, the latter is a list of books that higher-level students read while doing an undergrad or masters degree.

I'm guessing people lie about the latter because:

        a) they're much drier, and take more discipline to read
        b) they indicate a more rigorous training.

<comment><USER16> I'm about a year into professional programming with no education, and decided a couple of months back to buy Intro to Algorithms. I've worked through about 3/4 of the chapter, including the exercises (with no answers :-\\). It is actually not very dry at all, considering the material!

<comment><USER17> As suggested elsewhere, read The Algorithm Design Manual, it's much more readable (even if not as rigorous, with math proofs and such).

</comment></comment></comment><comment><USER18> This story about Steve Jobs is probably relevant:

I was sitting in Steve's office when Lynn Takahashi, Steve's assistant, announced Knuth's arrival. Steve bounced out of his chair, bounded over to the door and extended a welcoming hand.

"It's a pleasure to meet you, Professor Knuth," Steve said. "I've read all of your books."

"You're full of shit," Knuth responded.

([http://www.folklore.org/StoryView.py?project=Macintosh&s...](http://www.folklore.org/StoryView.py?project=Macintosh&story=Close_Encounters_of_the_Steve_Kind.txt))

<comment><USER19> I sort of wish this were true, though it doesn't sound like something Knuth would say, but apparently it's a myth: <http://www.catonmat.net/blog/don- knuth-steve-jobs/>

</comment></comment><comment><USER20> My current list of most recommended books (and that I _have_ read) are, in no particular order:

 _Seven Languages in Seven Weeks_

 _The Elements of Computing Systems: Building a Modern Computer from First Principles_

 _The Pragmatic Programmer_

 _Programming Challenges_

 _Statistics: A Gentle Introduction_ (not exactly a programming book, but statistics is good for everyone to know and this is book is easy to read and good at explaining the concepts)

I may also recommend SICP, CTM, The Art of Multiprocessor Programming, The Joy of Clojure, the OReilly book on Intel Threading Building Blocks, Reversing: Secrets of Reverse Engineering, Test Driven Development for Embedded C and others in certain situations but the above list is a general list I would recommend regardless of the persons proficiency level or programming interests.

</comment><comment><USER21> I pretty much assume that anyone who claims to have read Introduction to Algorithms or TAOCP is using the claim colloquially. I've read parts (large parts, in the case of Introdcution to Algorithms), but neither is a book that I want to read cover-to-cover. They're best used as reference books.

That said, there's definitely a huge number of people who _claim_ to have read Design Patterns, but actually have only read about Singletons and Factories in a Java book. It's a shame, because Design Patterns is one of the most formative books I've read as a programmer. Everyone _should_ read it -- observing the way that patterns are (mis-)used in Java is a poor substitute for wrapping your head around the insights in GoF.

</comment><comment><USER22> My data stuctures course used AOCP but we skipped the first section on MIX, and didn't use MIX at all. "Just ignore that junk," our prof said.

I have fond memories of the second half of the first volume. I've used the other two volumes as references. The fourth volume I bought, but haven't had time to read in any detail; I might never get to it.

Personally I liked Sedgewick's books on algorithms ("light and fluffy and readable") though I can't stand his coding style.

</comment><comment><USER23> Funny that SICP isn't on either of the author's lists...

<comment><USER24> I'm the author of that post. SICP is definitely the book that people most often tell me I missed when they read this. I hadn't even cracked it open at the time I wrote the post, so I didn't feel qualified to comment on it. (I've started reading it since. I haven't finished it yet, but I'd still recommend it to anyone who wants to learn Scheme or functional programming.)

</comment></comment><comment><USER25> The C++ Programming Language and the ARM(Annotated Reference Manual) won me many interviews. After reading those I could claim that I know the language. Sadly, I could never find such concise reference for Python or Java (or Erlang, but there was no documentation anyway).

<comment><USER26> Python: [http://www.amazon.com/Python-Essential-Reference-David- Beazl...](http://www.amazon.com/Python-Essential-Reference-David- Beazley/dp/0672329786)

Java: [http://www.amazon.com/Java-Language-Specification-The- Editio...](http://www.amazon.com/Java-Language-Specification-The- Edition/dp/0321246780/ref=sr_1_1?s=books&ie=UTF8&qid=1332729944&sr=1-1)

What do you mean you can't find them?

<comment><USER27> 688 pages is not concise.

</comment></comment></comment><comment><USER28> Christopher Alexander's _A Pattern Language: Towns, Buildings, Construction_ is a candidate. It is cited as the inspiration of the Design Patterns book. But it is actually a very good (though long-winded) book.

<comment><USER29> His book ___A Timeless Way of Building_ __is also good. Nothing thats really applicable to software though, but very insightful.

</comment></comment><comment><USER30> Tangentially, I recently made a list of books I think every programmer would _enjoy_ reading: [http://williamedwardscoder.tumblr.com/post/19794076450/a-few...](http://williamedwardscoder.tumblr.com/post/19794076450/a-few- books-you-must-read)

Aside, in every programming job I've been in, there's been other programmers keen to lend me Terry Pratchett books.

</comment><comment><USER31> I've read a good chunk of both the Dragon Book and CLRS. I can't even understand why someone would recommend the dragon book as a 'must read', if I was going to write a compiler again (outside of class) I would definitely search for a good alternative. It's good on theory, but I've never found it particularly enlightening. If you're not actually writing a compiler I can't think of any reason to read it.

The CLRS on the other hand I really recommend anyone interested in CS and programming purchase a copy of. It's not a book you read cover to cover, but get the first 1/3 well understood, and then when you have some downtime pick it up, scan the chapters, pick one the piques your interest and either learn a new algorithm or refresh on something you're getting fuzzy on.

To be fair I haven't spent any serious time with other recommended algorithms books, which I should. But every few months I find my self reading the CLRS and enjoying it.

<comment><USER32> The Dragon book is not necessarily for people wanting to write compilers. That's an easy task for simple languages that gets even simpler by the usage of modern tools. Any developer that understands regular expressions and remembers some material from their Theory of Computation classes should have no problem building compilers.

The Dragon Book is however for people wanting to build parser combinators.

<comment><USER33> I mistakenly upvoted you instead of downvoting you.

You can't parse context-free or context-sensitive languages with regular expressions. You probably mean that there are _lexer_ generators that generate a lexer based on a regular expression specification, but you still need to provide a grammar to the _parser_ generator if you don't write a parser by hand.

To be able to produce a grammar specification for the parser generator you need to understand formal grammars. To be able to produce an _useful_ specification you really need to understand the general parsing algorithms and how the specific parser generator works.

All of this is vastly more involved than just understanding regular expressions. And this is just parsing, arguably the easiest part, not generating code or interpreting or all the other steps compilers might do.

Yacc is at least 33 years old, newer tools are better in some ways, for example Bison can generate a GLR parser, but they are just as easy (or hard) to use and require the same knowledge.

> The Dragon Book is however for people wanting to build parser combinators.

You probably meant parser generator, parser combinator is a different thing: <http://en.wikipedia.org/wiki/Parser_combinator>

<comment><USER32>
         You can't parse context-free or context-sensitive
         languages with regular expressions

I didn't say that.

Also, to add to your point, current regexp libraries have capabilities that far exceed the concept in the formal languages theory. Features like capturing buffers or look-ahead assertions cannot describe a finite-state machine.

Also, Perl has had support for recursive regular expressions. Perl 5.10 even has support for recursive capture buffers.

         To be able to produce a grammar specification
         for the parser generator you need to understand
         formal grammars

IMHO, that's the same as saying that in order to be a programmer then you need to know lots of math, which is in general bullshit. Even before the formal theory was available, people have been building compilers the good-old fashioned way - by writing top-down LL(k) parsers, without necessarily having a name for this technique.

But I also said that one should remember some basics from its theory of computation class, as it is helpful to know what a pushdown automaton is and the difference between it and a finite-state machine.

         All of this is vastly more involved than just
         anding regular expressions

It involves functions calling each other, sometimes recursively and loops and switches and remembering where you are in the text and doing repetitive transformations. It's as if you're doing real programming.

         You probably meant parser generator, parser combinator
         is a different thing

No, I meant parser combinator.

<comment><USER34> I wonder how often you looked at a compiler's implementation to make such claims. First of all, there are many parts in a compiler that are not fully automated (lexer and parser generators making frontend development easier; basically BURS systems for backend automation (w.r.t. instruction selection), but then in optimization you have to deal with instruction scheduling, register allocation, etc.)

Then, I also think that your comment about people having written top-down recursive descent parsers for a long time without concrete historical reference is suprising, particularly when we all know of a prominent example (C) that you cannot parse with LL techniques (I rememeber a professor at university remarking on K&R probably not knowing about LL -- though I can't attest to this being true or not.)

I can also not figure out how you connect the Dragon book to Parser combinators. Having implemented parsers in both, monadic and combinatoric style (both of which btw. are a mess to debug) the best connection I can think of is translating formal grammar descriptions using parser combinators. Is this what you are referring to?

I like your characterization of compilers being just calling functions and loops plus switches and pointers to text. While we know about Church-Turing thesis, I am positive that the intricacies of database system implementation, operating system implementation and programming langauge implementation deserves distinction (which is supported by many of them having dedicated special interest groups.)

<comment><USER32>
          I also think that your comment about people having
          written top-down recursive descent parsers for a long
          time without concrete historical reference is
          suprising

I do not have concrete knowledge or evidence about it, it was a statement based on intuition alone, sorry about that.

The reason why I said it is because the first parser I ever wrote (something like 10 years ago), was a top-down LL(k) parser and I had absolutely no idea about what I was doing, but in the end it worked. Many programmers are choosing LL(k) implementations for their manually-built parsers because they are so easy to reason about and build manually.

I was under the impression that C can be described as LL(k). C++ definitely can't be.

About a compiler's implementation, I realize that it can get really messy, especially for statically typed languages and especially if you want to add type inference to it. Also agree on optimization. But the thing is, most people don't need to build turing-complete languages or need efficient translations to the target representation, they just need to parse DSLs or network protocols (hence my original comment).

</comment></comment></comment></comment></comment></comment><comment><USER35> Don't forget to add Goedel, Escher, Bach to the list of books most recommend, claim to have read, but haven't.

</comment><comment><USER36> I'd be tempted to add Numerical Recipes in C to the second list. I've often referred to it for various algorithmic problems thinking that it will be helpful and practical (examples in C!), but I'm usually disappointed. Most of it is targeted at very technical, math heavy problems. But hey, should my job require use of Toeplitz Matrices, NR is just an arm's length away!

This is NOT at all a knock on the book, since the title makes quite clear what it's about. But for whatever reason this one seems to end up on various "good to have on your shelf" lists when it probably isn't.

<comment><USER37> I think Numerical Recipes is more of a reference.

Eg. my professor owned NRC, and he did use it, especially the CD, to take algorithms as a plug-and-play starting point when doing some numerical analysis. Of course, you can also get similar algorithms off the web, but some professors are old-school like that.

</comment></comment><comment><USER29> From the article:

 __ _The problem with Design Patterns is that much of the information in the book (but not enough of it) is accessible elsewhere._ __

Maybe now, but I don't think this was true when the GoF book was published in 1995. My recollection is that there weren't a lot of books on software architecture (code- or system-level) back then because it wasn't so much of an issue. Most of us were writing monolithic C code or trying to get reuse of C++ libraries. The whole "architecture astronaut" thing hadn't got started.

That is was so ahead of its time is what makes it an important book.

<comment><USER24> You're absolutely right. Maybe that should have been "The problem with _design patterns_..." That is, it's not a problem with the book itself at all, but a problem with the message in the book being disseminated and often watered down.

</comment></comment><comment><USER38> Mythical Man Month and Silver Bullet essay ought to be mandatory. K&R as well, and Stroustrup (both C++PL and Design and Evolution of C++).

Programmers don't stand on each others' shoulders, but each others' feet.

<comment><USER24> Anyone who's working in industry (particularly if you're in any danger of being promoted to project lead) should read Brooks. The others are more language-dependent, but the lessons in MMM and NSB are applicable to everyone in software industry or any kind of project management.

</comment></comment><comment><USER39> Anytime I'm a little unclear or need a refresher on a sorting algo or how a data structure is implemented, I've found CLRS to be an extremely useful resource. It has been a life saver in my algorithms class (undergrad)...I think it works best as a supplement to lectures and exercises you would encounter in any data structs/algo class. It's especially useful for exam practice. I would guess that the exercises would also be really helpful practice for job interviews..But its not the kind of book I'd sit and read cover to cover.

</comment><comment><USER40> I'm surprised that GEB isn't on the list of 'recommended but not read'

</comment><comment><USER41> I'm an avid reader but was disappointed with the dragon book. I felt like once finished, I still couldn't write a simple interpreter! I guess it's a good reference.. or maybe a second book, but that's definitely not the best book to get started and learn compilers.

I did actually read The C++ Programming Language when I was in high school.. at that time I thought it was a very important book. Now, with the insight, how dull it was and useless!

</comment><comment><USER42> I can honestly say that I have not read any single one of those books. My first C++ book was C++ for dummies, after that everything I learned was from online tutorials, from actually doing it, and then by the time I reached college my knowledge was already above what the instructors were teaching in class.

I have quite a few programming books, mostly cookbooks though, that show little examples/snippets and or O'Reilly reference books that I used to purchase when starting a new language to get an idea for the syntax. The best book that I have ever bought and read was "Advanced UNIX Programming" by Marc J. Rochkind. It helped me get a much firmer grasp on Unix programming and along with it C which I was lacking at the time.

I've got a copy of the Dragon book sitting on my desk, it is waiting to be read, waiting to be devoured and played with, but so far I just haven't had the time.

One book I would like to read and wrap my head around is the Gang of Four book, it seems like it is important to know the various different design patterns, but so far I don't feel like I have missed out and can recognise good design practices based solely on how they feel while I am writing them.

</comment><comment><USER43> To me, a lot of this divide is between books I read cover to cover and books I consider references or pick up for very specific sections (like "Algorithms on Strings, Trees and Sequences").

CLRS, TAOCP, and Gang of Four are all books I haven't read in their entirety, but have been indispensable for certain topics. I still recommend them to people all the time, and feel perfectly justified doing so.

<comment><USER44> Agreed. But, a lot of the recommendations are written not with the tone you mention, but the tone of, "yeah, I worked my way through the whole book."

In fact, very few do more than read selective chapters (which is OK).

</comment></comment><comment><USER45> Some of the people responding to this thread might consider that they are proving "Bill the Lizard" correct :).

I laughed when I read the article because I have checked out every one of the books he says programmers claim to have read (TAOCP, etc) from my company's internal library, and though I skimmed interesting parts (Go4, especially), I hardly _read_ them.

</comment><comment><USER46> _Introduction to Algorithms (CLRS) This book may have the most misleading title of any programming book ever published. It's widely used at many universities, usually in graduate level algorithms courses. As a result, any programmer who has taken an algorithms course at university probably owns a copy of CLRS. However, unless you have at least a Masters degree in Computer Science (and in Algorithms specifically), I doubt you've read more than a few selected chapters from Introduction to Algorithms._

Really? Because I still have mine from undergrad, and when I was using it to prep for a Google on-site, I was surprised that I had forgotten how far into it we had gone (there are dog ears back to chapter 36). Of course, that class was over ten years ago, and I (unfortunately) don't get to use it much these days, being that I mostly deal with RF and E&M.

</comment><comment><USER47> At the risk getting flamed to a crisp for even suggesting the language or the title, I'd recommend PHP for Dummies and the companion book, everyday projects in PHP, as a starting point for a completely new web developer.

It's highly digestible, covers many basic concepts (HTML, loops, control flow, variables, sessions, databases, oop), and has a number of good projects to walk through. While I've moved on to significantly more advanced topics (Python, functional programming), it took me a long way and laid a pretty solid foundation for the future. They actually went relatively deep in the details of how a website works.

BTW - I'd avoid ASP.Net for dummies. Relatively little code contained in that one...

</comment><comment><USER48> My first programming book was K.N. King's "C Programming, a Modern Approach" That remains one of the few programming-related books I own that has endured some wear.

I actually have read the GoF book, but I'm not sure that I'd recommend it to anyone.

</comment><comment><USER49> I have read none of the books on the first list, but 4 of 5 on the second, is it something wrong with me?

To be more serious. All the books on the second list comes from people that were signinficant contributors to the field the book is about. That does not automatically make them good writers. All of the books on the second list is on the dryer end of the scale. I would recommend Appel's compiler book instead of the Dragon Book for example, even if it is less comprehensive. The Dragon book is written in an extremly confusing way (some oldtime compiler people have even described it as confused, esp in first edition).

</comment><comment><USER50> Despite the author mentioning it, I could not get through Effective Java. It was well written and informative, but I got the feeling that it mostly taught me about deficiencies of JVM or the language design.

<comment><USER51> I've always found that knowing the deficiencies of a language is the best way to know the language. Anything that works well should be pretty intuitive and comfortable, but knowing exactly where the trouble spots of a language are let you be aware when you approach them, and know how to handle them.

</comment></comment><comment><USER52> CLRS is a great book, I have read it, and other people should read it too. The first time I tried to read it I couldn't do the necessary math, so it took a bit more than two times through to grasp it.

TAOCP I generally recommend as a reference because I can only speak to its usefulness when used as a reference.

Edit: By "Other people" I do not mean "Other people who are doing graduate work" or "Other people who are in a senior level algorithms course." Really anyone who plans to do a significant amount of programming should read CLRS, even if he or she is still in high school.

</comment><comment><USER53> This is so true and I'm completely guilty of it. I have a signed copy of The C++ Programming Language and often find myself recommending it when in fact, I've only read bits and pieces myself.

<comment><USER54> My problem with that book is the italic, thin, proportional font all the code is in (I have he hard cover). It hurts my eyes and I keep missing punctuation.

<comment><USER53> I started nodding my head when I read your post. That must say something...

</comment></comment></comment><comment><USER55> I try as hard as I can to turn even aspiring compiler writers away from the Dragon Book. You don't need a the theoretic underpinnings of 5 types of parsing to write a compiler, and I doubt anyone could use the Dragon Book to actually write a compiler.

I give an emphatic thumbs up to "Engineering a Compiler" (Cooper/Torczon) and also to the Appel books. They are fantastic, readable and digestable, and actually help get a compiler written.

</comment><comment><USER56> I can't believe "Structure and Interpretation of Computer Programs" isn't on that list anywhere.

<comment><USER57> See there: <http://news.ycombinator.com/item?id=3754747>

</comment></comment><comment><USER58> I read most from the second list, but only two from the first... hipster coder.

</comment><comment><USER59> I am an undergrad and have read most of CLRS and the dragon book.

And I will certainly read TAOCP once I have the money to reasonably justify spending it on the set.

I wouldn't really _want_ to ever read a book on design patterns.

<comment><USER60> I bet you $50 you'll never finish reading even book 1 of TAOCP.

<comment><USER61> All the volumes are a good read - just skip the maths and assembly sections in the first book. The rest of the work is understandable/readable without them.

<comment><USER19> Skip the maths?! I bought volume 4 because the math was interesting. I just skip all of the coding bits. Reading Knuth, for me, is similar to reading Martin Gardner's books.

</comment></comment></comment></comment><comment><USER62> I've read quite a few of these, the problem with most of the ones listed is simple - they are technical or seemingly so simple (K&R) that reading them all the way through is a test of attention.

</comment><comment><USER63> > I often hear TAOCP described as the series of programming books "that every > programmer should read." I think this is simply untrue. Before I'm burned at > the stake for blasphemy, allow me to explain.

Really? I find that articles, blog posts and comments like to point out that this is something people actually say. I think _that_ is untrue _. It feels like one of the standard pseudo-oppositions that people take in order to write a piece - as if it was controversial - even if it isn't.

_ Obviously it's placed on greatest CS books list, or something that is valuable to have as a reference, but that's not the same thing as it being recommended reading for programmers.

</comment><comment><USER64> Among the books "programmers have read", I have read K&R, Programming Pearls and bits and pieces of Effective Java and C++. I thoroughly enjoyed these books.

The other books on the "have read" list are on my "don't bother reading" list. Code Complete, Pragmatic Programmer, Mythical Man Month et al aren't my kind of books. As far as design patterns go, I believe if you code in Python/Ruby/Perl etc, books covering them in Java/C++ are needlessly verbose and boring. I recommend Alex Martelli's talks

<http://www.youtube.com/watch?v=0vJJlVBVTFg>

<http://www.youtube.com/watch?v=1Sbzmz1Nxvo>

And this book which covers design patterns using Ruby.

[http://www.amazon.com/Design-Patterns-Ruby-Russ- Olsen/dp/032...](http://www.amazon.com/Design-Patterns-Ruby-Russ- Olsen/dp/0321490452)

Both approaches actually show you practical examples of design patterns in the standard library or real world problems, and shuns patterns which aren't applicable to the language or are too trivial. These talks aren't the end-all, but they will give you a good overall knowledge, and will make further exploration easy.

And from the "haven't read" list, CLRS is a good book and isn't as dense as it is generally taken to be. It does have sections on proofs, but you can skip it and jump directly to the data structure/algorithm. The pseudo code used in the book is extremely clear, and will convert to simple python in most of the cases. Use it as a reference, or read first few hundred pages. If the book isn't for you, you will know it after you have read the first 100 pages.

Another book I recommend is Sedgewick's book on Algorithms. I have read the C version. It mostly covers basic data structures and some accompanying algorithms. The code is succinct(sometimes needlessly so) and more importantly, it works. It doesn't sit well with everyone, but I liked it - <USER2> helps me see the whole picture without bombarding me with a lot of code.

Skiena is another obvious favorite.

Dragon book is decent, but you need guidance and discipline to make anything out of it. Consult your peers or teachers while using the book, or use another book.

I haven't read TAOCP and it's low on my list for now. I have read bits and pieces and I didn't find it as fascinating as I had hoped. It's dense and extensive, and can be used as reference.

"Effective C++" will be a better alternative to "The C++ programming language". But I must say, when I first read "The C++ programming language", I found it fascinating - lengthy, but fascinating. That would be mainly because I was beginning programming when I first read it.

</comment><comment><USER65> no recommendation for 'c interfaces and implementation', surprised...

</comment><comment><USER66> Huh, seems I'm a strange guy. From the "everybody has read" list I just read 2 books (pragmatic programmer and the 2nd edition) but from the list "everybody recommends but no one actually reads" I only haven't read introduction to algorithms.

</comment><comment><USER67> I read programming pearls about halfway until I discovered that a several of the samples were using gets() and could be trivially exploited for buffer overflows.

Calling programs like that "pearls" just seemed too wrong to me to go on.

<comment><USER68> As to my understanding, Programming Pearls focused lies between the range of elegant code and algorithms/problem solving as opposed to secured coding practice in the C programming language.

<comment><USER60> Still, someone like Knuth will argue that correctness should not be sacrificed for elegance.

<comment><USER68> Feel free to crucify John Bentley.

I know I'll learn more out of the book if I don't care of the small nitpicks like "gets()".</comment></comment></comment></comment>


Holding Machine Learning Models Accountable - <AUTHOR> https://medium.com/pachyderm-data/hold-your-machine-learning-and-ai-models-accountable-de887177174c#---0-52.en3sp2kbk <comment><USER2> Can someone explain why this doesn't basically ban deep learning in the EU?

<comment><USER3> To me it comes down to 2 things:

1) I don't fully understand the "significant legal impact" requirement, but intuitively "Applying for credit/insurance/school/job" is an area where you'd need to be transparent or open to contest. But which product to show based on your purchase history or what your friends liked on <social-site> wouldn't be subject to contest or transparency.

2) The requirements on the explanation are somewhat vague, and what exactly interpretability even is remains an open question. Does a layperson need to understand it or is an expert in the field sufficient? This will probably be iterated and supplemented after some interactions between 'Data Controllers' and the EU. The good news is that this has prompted a lot research on how to understand high dimension/feature models.</comment></comment>


How would you disrupt the patent system? - <AUTHOR> http://blog.iandavis.com/2011/08/05/how-would-you-disrupt-the-patent-system/

<comment><USER2> A class-action suit against the patent office.

The main problem today is that the patent office grants too many trivial patents. It isn't surprising that it does so, it is motivated to do that: It gets paid per patent, and the faster a reviewer agrees to a patent, the quicker the work for that patent ends.

The only way to fix that is to reverse or at least balance the incentives. Which means, a big cost for every trivial patent the patent office issues.

It would be good if lawmakers passed legislature that did that. But we can't expect them to. A class-action lawsuit can do the same, though. Everyone that has ever been sued or forced to take a license for a trivial patent has been harmed by the patent office not doing its job properly. All those people have standing to sue. For such a massive amount of people, a class-action lawsuit is the way to go.

<comment><USER3> And sadly, the Obama guy responsible for the current "patent reform" wants the Patent Office to make the filing and acceptance of patents even _faster_.

They're completely going in the wrong direction, full speed ahead.

</comment></comment><comment><USER4> There's probably problems with this, but...

Patents should not be an exclusive license. Instead they should be a limited time income tax benefit. In other words, when you are granted a patent then you get some small percentage break in your income taxes for some number of years. So the only way to benefit from granted patents is to have some actual income! Once an idea is patented, you cannot charge a license fee for the idea as the idea is now public. You can, however, still license implementations of the idea - just like you can with implementations of proprietary ideas covered by trade secret.

The granting of patents would work the same way they do now - first one to file wins. However since you do not get the benefit of owning an idea for the next 20 years and collecting licensing fees on it, the benefit of filing for a patent on new ideas immediately might be a lot lower than it would be to just keep it secret under trade secret and use it yourself as long as possible. The idea here would be to balance the value of an idea in trade with the value of it as an income tax benefit. If you have a bunch of good ideas you've been using for years but are no longer really "secret" you could attempt to patent those old ideas so that the rest of the world can share them and you can get some tax breaks on perhaps the down swing of a product's life cycle. If someone else has already patented the idea ahead of you, well, so be it. The idea is out there already so society hasn't lost anything.

My thinking is that this could be balanced so that the tax benefits are such that companies would want to keep things secret for awhile but then attempt to patent older ideas once products near end of life. It's a race and balance there between keeping something secret and trying to get the tax benefit out of old ideas that might not be very profitable on their own anymore. Any tax benefit would be better than none, so it would seem that old ideas that are no longer used but were being hoarded by the company would suddenly be "valuable" to them, so they'd get the idea out into the public and everybody wins in the long run.

<comment><USER5> It's really easy to come up with patentable ideas at the current standard of patentability. If you _paid_ people for patents as you suggest, you'd just get flooded with patents for novel but useless contraptions. So then you'd need to get the government deciding whether something is useful and paying people create allegedly useful inventions, rather than the marketplace.

<comment><USER4> No one would be getting paid (by way of tax discount) for a patent unless they're already doing something the market values and therefore generating an income to tax in the first place. It doesn't matter if the income is from use of the idea in the patents or not. Any income generation is a sign the market is rewarding them for _something_. The government doesn't need to decide anything differently than they do now.

The patent system is already flooded with useless and novel things. The reason is that people are hoping that over the next 20 years (or whatever) that the idea might suddenly become valuable and they can profit off it. With my idea, at least, you cannot profit from a patent unless you're already profiting in the market.

<comment><USER5> You're proposing that Joe the candy store owner be given money by the government for filing a patent on kite-powered lawn mowers.

You claim that since Joe is evidently providing _something_ the market values, we should cut his taxes.

But that's what _everybody_ with income does. So why not cut everybody's taxes? We could do that without a sideshow of filing useless patents.

This idea

1\. Does not tie rewards in any way to actual innovation.

2\. Explicitly suggests that people keep things as trade secrets for a while, which negates the actual purpose of the patent system!

<comment><USER4> If you know the perfect solution, I'm sure we'd all love to hear it. All you're doing it tearing me down. You're not offering any suggestions to fix these apparently obvious glaring problems in my idea or the current system.

</comment></comment></comment></comment></comment><comment><USER3> I think patent pools are the quickest way to solve this issue in the short term. It won't solve the patent troll problem, but it will slow it down because everyone in the pool will have access to a vast amount of patents, so it will be harder for the troll to reach any company that participates in the pool, or at least there won't be as many trolls going after them.

But it should work very well in protecting the companies from the pool against large "patent aggressors", or even against other pools from competing firms. Think of it as NATO vs Russia+China.

In the long term, if patents don't get abolished, at least I'd like to see a law that allows companies to _opt-out_ of the patent system[1], so they don't get to sue others, even if they become big companies, but others can't sue them either. This won't kill the patent system overnight, so big companies who are against abolishing patents, because they have so many, will still be able to assert their patents against other big (or small) companies who also have a lot of patents and don't want to lose them overnight.

 _[1]This opting out of the patent system idea came from someone else here on HN._

<comment><USER6> > In the long term, if patents don't get abolished, at least I'd like to see a > law that allows companies to opt-out of the patent system[1], so they don't > get to sue others, even if they become big companies, but others can't sue > them either.

That's the most ridiculous idea for patent reform I've ever read. There are two possibilities.

1\. Patents in fact do encourage innovation (at least in some industries) by allowing innovators to recoup their R&D costs before the copiers can jump in. Without this, copiers would get in too fast and reduce the price to where the innovator never makes back the R&D costs.

2\. Not #1.

In case #2, we should just get rid of patents.

In case #1, which is most likely the correct case at least for industries where it takes a huge amount of R&D to get a new product to market (e.g., drugs), your suggestion would in effect encourage the formation of more copier companies, and give them free reign to copy.

<comment><USER3> And what's so wrong about copying? Do companies really start a business thinking they won't get copied? Getting copied by more companies means you'll have to innovate faster, and the end result will be higher quality products for customers, and lower prices. I don't think a little higher competition across the board will stop companies from being built.

<comment><USER7> The religious faith in free markets you seem to imply is a bit naive. In reality, startups would be crushed by the biggest player sucking up their innovations and broadcasting it faster and to a larger audience. Let's not forget that patents were originally meant to level the playing field, and that's not a terrible goal (the execution is another matter).

Mathematically, your free markets need to be clamped at some boundary conditions if you don't want them to get stuck in a local optimum (e.g., big company swallows all). Patents are one way to do this, in theory at least.

<comment><USER3> And your faith that small companies actually use patents to defend themselves against big ones is a bit naive, too. If anything the big companies use their vast amount of patents to crush small startups that compete against them, even if they managed to get 2-3 puny patents. But the truth is many of them can't even afford to buy a lot of patents.

</comment></comment></comment></comment></comment><comment><USER8> 1\. Cut the patent expiration time. Cut it by 50%. 2\. Cut the patent expiration time further of non-original owner patents. Cut it by 75%.

<comment><USER3> They should last anywhere from 1 year to 5 years, depending on the importance of technology. For example, if it's a web related patent, like a "one-click payment system" it should only last a year. If it's a really important technology, in a slower industry, it could last up to 5 years. In the mobile industry, which is very fast paced, it should last only 2-3 years.

</comment></comment><comment><USER9> How would I do it?

I would create a patent pool administered by a non-profit that only grants licenses (for free) to people or entities who do not own their own patents or own other entities which own patents. Owners of patents would not be granted licenses even for a fee. Patents would be donated to the pool as a form of charity.

No idea if that would work, but that's what I'd try. A key problem I see is that getting a patent is expensive, it's hard for individuals (from whom most contributions would undoubtedly come) to compete with companies who make a game of churning out as many patents as possible (IBM for example). If however it became large enough, and there were changes in the current system to make defensive patents less valuable, hopefully it could reach a certain critical mass where it would make sense for companies to gift all their patents to the pool in order to gain access to the others.

Startups without existing patents would of course benefit from this.

</comment><comment><USER10> Government will not solve this problem. Companies should operate anonymously on the internet, and just ignore patents and copyrights. Then they can't be stopped and IP laws will become obsolete.

</comment><comment><USER11> 5 years exclusive ownership - must be available to be licensed and may not be buried. Renewal costs double each time. Don't renew and it becomes available for anyone to use.

</comment><comment><USER12> Possibly this method might help in disrupting patents <http://peerpatent.org/></comment>


David Rosenhan's fraudulent Thud experiment set back psychiatry for decades - <AUTHOR> https://www.spectator.co.uk/2020/01/how-david-rosenhans-fraudulent-thud-experiment-set-back-psychiatry-for-decades/ <comment><USER2> Note that Rosenhan was a social psychologist. The list of faulty or outright fraudulent experiments done by psychologists grows ever longer. The entire field seems bankrupt to me. Part of the problem are perverse incentives. Get one positive and interesting result (which you can tailor to the zeitgeist for maximum impact) and you can live off books, TED talks and lectures for your whole life. Recent examples include power posing and confidence [1] (poor experiment) or changing political bias regarding gay rights [2] (outright fraud).

If psychology wants the status and rewards of being considered a legitimate science, it needs to make dramatic changes. In the meantime any initial result psychological research produces must be considered not just preliminary, but suspect.

[1] [https://en.m.wikipedia.org/wiki/Power_posing](https://en.m.wikipedia.org/wiki/Power_posing) [2] [https://science.sciencemag.org/content/348/6239/1100.2](https://science.sciencemag.org/content/348/6239/1100.2)

<comment><USER3> I can't seem to figure out the incentives behind [2], the idea that during door-to-door canvassing only gay people can be effective at changing non-gay people's minds about same-sex marriage seems like an odd narrative for someone to _want_ to push.

Other than encouraging employment of gay individuals by political campaigns/canvassers or maybe a general superiority complex, by stating that only gay people are capable of changing people's minds on the subject.

I have noticed a general pattern on Twitter, from people who push this sort of social science stuff, that they believe only people who are in the in-group (ie, race, gender, class, etc) are allowed to have opinions or engage in research about the group itself. Which always seemed anti-intellectual and borderline dangerous, as it actively discourages the wider population not only from doing useful research but also helping overcome ignorance in their day- to-day conversations, writing books, political projects, etc and generally engaging in issues.

It just makes everyone even more scared, careful, and closed off to the subject(s). Which is the opposite incentive structure for 'producing a cascade of opinion change' (as the study claims).

This just seems to be a punitive approach to change/progress, where oppressed groups, or people representing the groups, are just in it to collect an endless amount of things to shame other people for "not getting it", which ties back into the superiority thing. Assuming the actual goal is ending oppression, this is taking a totally backwards approach by providing ever more ways to minimize and degrade the opinions and personhood of other groups. And when this (self-)destructive strategy is challenged it's met with a bunch of hand-wavy stuff about privilege to justify everything.

Meanwhile the average person on the outside is just trying to live there life and aren't heavily invested. This punitive approach, particularly via social media, would seem to me to make them _more_ likely to just avoid, ignore, or even resent such talk of change.

<comment><USER2> If you are talking about the seeming 'wokeness' of this research well yes, that is probably a fair comment. But that would be fine if they actually did a proper experiment. I don't think it is a coincidence that particularly woke research may be of poor quality. I agree with you that a strong idealogical bias is a hazard to generating truth. This is most pertinent in preventing certain types of research from being performed or results from being released. This is mostly a problem for psychology and sociology, which among their other merits have limited impact on actual life.

</comment></comment></comment><comment><USER4> While this is fascinating and I'm glad to have read it, it doesn't substantiate that this experiment set back psychiatry. The fact that the DSM- IV was prompted or encouraged by the experiment is suggested, but there's no argument for it. Even beyond that, the article doesn't even hint at an argument that the DSM-IV set back psychiatry (except offering the bare assertion that reductionism is false).

Of course, the DSM is very controversial, and many people could fill in the argument, but this article doesn't do it.

<comment><USER5> Interestingly, the article makes no mention of the followup experiment where it seems a hospital invited a repetition and then claimed to have found 40 or so fake patients during the agreed period. Only to be told that the experimenters had sent none.

Or at least that's the version told in Adam Curtis' documentary _The Trap_ (part 1)[1] which engages in Curtis's usual enthusiasm for fashioning a sweeping historical narrative out of somewhat sparse materials - in this case presenting the "Thud" experiment and its followup as a pivot point in the tale of how R. D. Laing's anti-psychiatry ironically led to the advent of the DSM IV era.

However that may be, _if_ Curtis' account of the followup is correct it seems harder to argue the diagnostic prowess of the psychiatrists was not open to question, regardless of the status of the original experiment.

1: In the section beginning here: [https://youtu.be/y97Ywl7RtUw?t=2204](https://youtu.be/y97Ywl7RtUw?t=2204)

<comment><USER6> > Interestingly, the article makes no mention of the followup experiment where > it seems a hospital invited a repetition and then claimed to have found 40 > or so fake patients during the agreed period.

The reason is simple. This article is pure propaganda along the lines of the book "The great pretender" by Susannah Cahalan.

The experiment might have flaws, but this second part is conclusive and no critics ever address it.

This is just another brick on the long propaganda road to a destination that is very worrisome.

<comment><USER7> My default position on the follow-up is likewise skepticism. It seems like the filters at the time were so low that it is likely the follow-up is just a better constructed lie.

<comment><USER6> What about the argument, used at the time, that in order for someone to participate in an experiment like that they had to be mentally ill?

</comment></comment></comment></comment></comment><comment><USER8> The experiment sounds plausible, whether or not it happened or was done properly. But the claimed response of the hospitals also sounds perfectly reasonable to me. What do people expect?

A virtually infinite number of things can cause symptoms which have some overlap with schizophrenia, and that's why today (I'm not an expert, but I'm assuming what I know of is representative) on intake they classify someone as "schizophreniform" \- apparently a fancy way to say "looks like/might be schizophrenia" without committing to anything.

For every person that has a chronic condition, there are going to be many that have one episode and it never recurs. Maybe it was a virus. Maybe they had some weird allergic reaction. Hospitals are never going to know for sure what's wrong with everyone, so the humane thing is not to insist they determine whether the remainder is "real" or not.

Being involuntarily admitted as a psych patient has permanent consequences, and it's uncomfortable to think about someone who doesn't "deserve" the stigma being caught up in it. I think an obsession with this scenario drives the people who crusade against psychiatry. But putting more pressure on medical professionals to always get it right is only liable to make things worse. You can't get better results by applying thumbscrews to people who genuinely try their best to deal with a fundamentally intractable problem.

This did jump out at me:

"then, as now, no scans, no blood tests, no laboratory findings allowed them to distinguish the mad from the sane"

In the 21st century, I believe hospitals in the US typically screen for likely drugs first, when someone appears to have psychotic symptoms. But they also (at least where I know about) do pretty comprehensive blood tests that show clear metabolic abnormalities and then just discard the results when they don't know what it means. So in a sense, sure, there's no blood test for mental symptoms, and yet if positive tests for various things are routinely met with a shrug and typical psychotropic drugs administered, then the statement is misleading.

<comment><USER9> > But the claimed response of the hospitals also sounds perfectly reasonable > to me.

Keep in mind, a major part of his paper was about how the pseudo-patients were admitted after describing extremely limited and mild symptoms. And a major part of the investigation was determining that, at least in one case, this is untrue; Rosenhan claimed to have extremely severe symptoms, including suicidal ideation.

In other words, it now sounds like the hospitals responded reasonably, but Rosenhan's paper claimed something quite different.

<comment><USER10> throughout the article I was confused by the term "pseudo-patient". What does it mean in this context?

Did Roseanhan claim to have a dr-patient relationship with them. Do they just mean alleged-patients or alleged study subjects?

<comment><USER9> It's the term he used for the subjects he claimed to have recruited (or for himself, in one case) who pretended to have symptoms to get admitted.

It's to make the point that he didn't recruit _actual_ patients for the study, but (in his telling) perfectly sane people to _pretend_ to be ill.

</comment></comment></comment></comment><comment><USER11> Hm, the experiment took place before 1973 and involved 8 pseudo-patients, all anonymous. This person was able to deanonymize and locate 3 of the pseudo- patients. Because they didn't find all 8 they then claim the study was fraudulent and never involved 8 people. That seems an absurd conclusion. It's not reasonable to think one could find all the anonymous/identity cloaked participants in a nearly 50 year old study.

<comment><USER7> Given that the researcher was a participant directly, and that he lied about his actions (he in fact presented suicidal thoughts, etc), I believe the balance of evidence says we should reject the study.

<comment><USER11> I agree completely the study is useless and should be withdrawn. But the author did not prove or even reasonably establish at all that there were 3 and not 8 participants. Not finding 5 out of 8 anonymous participants in a half century old study is to be expected. Even decloaking 3 was remarkable. Look at how hard it is to deanonymize data even now with the computational power, combined with endemic surveillance and monitoring of the public. It's totally unreasonable to conclude the other 5 didn't exist.

Even without the anecdotal information that things were not presented as they were told, the study is still, and always has been, useless. If someone presents at an asylum begging to be admitted, and describing strange symptoms that they say are causing them distress, it is reasonable to admit them for observation.

</comment></comment></comment><comment><USER12> Thoughts:

The problem of false priors, deliberate misdirection, and motivated reasoning are insidious. Having to un-learn false models is difficult and expensive, personally, bit especially socially.

Even if Rosenhan's experiment was a fraud, the notion that psychiatric institutions or the field of psychology _does not_ engage in the practice of arbitrary, thinly-supported, or entirely fictitious diagnosis, or failure to account for changes in condition, _at least at times_ isn't disproved. And ... at least to my lay understanding ... this does seem to manifest elsewhere than in Rosenhan's accounts.

There are two competing sets of motivated reasoning to be considered here, which makes determination of ground truth that much more difficult.

On false priors, I've been familiar for a time with the notion of "Wittgenstein's Ladder", a/k/a "Lies told to children" ([https://en.wikipedia.org/wiki/Wittgenstein%27s_ladder](https://en.wikipedia.org/wiki/Wittgenstein%27s_ladder)):

 _My propositions serve as elucidations in the following way: anyone who understands me eventually recognizes them as nonsensical, when he has used them—as steps—to climb beyond them. (He must, so to speak, throw away the ladder after he has climbed up it.)_

 _He must transcend these propositions, and then he will see the world aright._

\-- _Tractatus Logico-Philosophicus_ 6.54

This leads to the challenge over time of finding oneself having climbed the ladder, but in discussions with others, constantly confronted with it, and having to explain around or over it. Wittgenstein's Ladder becomes, when erected horizontally across a passage of understanding rather than vertically to greater heights or across gulfs, Wittgenstein's Barricade.

It's this constant having-to-retread-fundamentals which seems to actively impede further development of knowledge and understanding, and which I've found increasingly intolerable in much popular media and discussion. Worse when it's not even the fundamentals which are being retread, but someone's self-serving current reformulation (often worse than the original). See Schopenhauer's "On Authorship".

</comment><comment><USER13> Perhaps more disturbing than getting a mental illness diagnosis (correct or not) is that there is no scientific way to prove that you are cured.

<comment><USER10> The only think I find more terrifying than a mental illness misdiagnosis, is a misdiagnosis with forced incarceration.

Assuming Rosenhan's study was fictional, what was his intent? Was it a lie intentionally designed to discredit, destroy, or reform these institutions?

<comment><USER13> Forced incarceration is pretty rare, and doesn't seem likely to become common or misused in severe ways.

I'm more worried about a diagnosis -- even a correct one -- that marks you forever and limits your freedom in overt and subtle ways.

I'm sure that prevents a lot of people from seeking treatment, unfortunately.

<comment><USER14> > Forced incarceration is pretty rare, and doesn't seem likely to become > common or misused in severe ways.

How do you know if it's pretty rare? I'm unaware of anyway for people to collect data on it. I'm doubtful anyone can get justice when it happens, unless insanely rich and or large media following while being wrongly forcibly incarnated.

I'm not aware of many limitations besides some people getting their driver's license taken away. I think most people don't seek treatment because they don't really believe in the psych illnesses. Also the baggage that comes with relying on medication with the short or long term side effects.

<comment><USER6> > I'm not aware of many limitations besides some people getting their driver's > license taken away.

Forget ever legally owning a gun. Or get a security clearance. And if you ever end up in court it'll almost immediately disqualify your testimony.

</comment></comment></comment></comment></comment><comment><USER15> wikipedia link to get summary [https://en.wikipedia.org/wiki/Rosenhan_experiment](https://en.wikipedia.org/wiki/Rosenhan_experiment)

</comment><comment><USER16> This is the first time I'm hearing that it was a hoax from the start. I've heard this study referenced more times than I can count in discussions on mental illness and mental hospitals. Could it really be that it was complete horseshit?

<comment><USER17> The article says the book only suggests it _could_ have been fiction, in that no records exist that allow people's participation to be verified.

It's still entirely possible that it happened as reported, but that the (properly) confidential records were destroyed/lost.

According to Wikipedia, "'[s]he writes that she cannot be completely certain that Rosenhan cheated', despite entitling her book as she did." [1]

[1] [https://en.wikipedia.org/wiki/Rosenhan_experiment](https://en.wikipedia.org/wiki/Rosenhan_experiment)

<comment><USER18> > It's still entirely possible that it happened as reported, but that the > (properly) confidential records were destroyed/lost.

Did you read the article? This isn't possible at all.

> the distinguished psychologist Eleanor Maccoby, who was in charge of > assessing Rosenhan's tenure file, reported that she and others were deeply > suspicious of him, and that they found it 'impossible to know what he had > really done, or if he had done it', granting him tenure only because of his > popularity

True, this is just circumstantial.

> At various times, Rosenhan had proffered sometimes contradictory > biographical fragments about pseudo-patients 2 through to 8, but even with > the assistance of a private detective, these leads led nowhere.

Hmm, it'd be hard for everything to have happened as reported, given that what was reported contradicted itself.

> In a larger sense, it scarcely matters, because Cahalan uncovered so much > other evidence of Rosenhan's malfeasance and lies.

Hmmmmmmmm...

> He claimed, for example, to have carefully coached his volunteers before > sending them forth. Bill Underwood and Harry Lando emphatically denied this.

OK, now we know it didn't happen as reported even in cases where there wasn't an internal contradiction in the reporting.

> Lando appears to have been dismissed from the study, not because he violated > protocol, but because, as Rosenhan incredulously noted about his > confinement, 'HE LIKES IT!'

The "throw away any data you don't like" school of research.

> Most damning of all, though, are Rosenhan's own medical records. When he was > admitted to the hospital, it was not because he simply claimed to be hearing > voices but was otherwise 'normal'.

Note that this is what he reported he had claimed.

> On the contrary, he told his psychiatrist his auditory hallucinations > included the interception of radio signals and listening in to other > people's thoughts. He had tried to keep these out by putting copper over his > ears, and sought admission to the hospital because it was 'better insulated > there'. For months, he reported he had been unable to work or sleep, > financial difficulties had mounted and he had contemplated suicide. His > speech was retarded, he grimaced and twitched, and told several staff that > the world would be better off without him.

<comment><USER19> Not sure why you're being down voted. Maybe just tone with the 'hmmmmm' and such. Anyway, I agree that there appears to be ample evidence for this conclusion.

<comment><USER20> wasn't me who downvoted, but my guess is it's because of the guideline against commenting on whether someone read the article.

<comment><USER19> Ah, yes, I missed that.

</comment></comment></comment></comment></comment></comment><comment><USER21> The fact is psychiatry today still lacks tests or any proof of its claims of "chemical imbalance", which remains unproven. No one had established a profile for what a "balanced brain chemistry"looks like, nor do they test for any brain chemistry imbalance.

Diagnosis is still left to the subjective assessment of the practitioner before prescribing powerful psychotropics that DO change brain chemistry in unpredictable ways, and cause a host of side effects often worse than the original symptoms.

So the argument today that psychiatry lacks any scientific basis and rigor for its practices is still very valid and legitimate.

<comment><USER22> This seems overly pessimistic to me, there are drugs that significantly improve patients wellbeing and do so consistently and repeatably, despite the fact that we don't have a complete understanding of the complete mechanism of action.

If I do a study showing that handwashing in surgeons measurably reduces risk of infection, does the fact that I don't know about microbes make lacking in scientific rigor and remove its scientific basis?

<comment><USER23> >> there are drugs that significantly improve patients wellbeing and do so consistently and repeatably,

No, there are not. A given drug may work consistently for some people, while having no effect, or detrimental effects on other people with the same diagnosis.

<comment><USER24> Either you misunderstand or you're being disingenuous here.

"Consistently and repeatedly" does not mean "this works 100.0% of the time."

Would you deny that exercise fails to consistently and repeatably help people lose weight? Would you say that existing treatments for heart attack victims fail to consistently and repeatably help victims? Would you say umbrellas fail to consistently and repeatably stop rain from falling on your head?

None of these things work 100% of the time, but they are frequently successful.

Psychiatry is a field still in its infancy due to the difficulty of studying the mind. We should hold it accountable for its failings and work to make sure it improves. But, it has successes as well.

It's not the only game in town when it comes to mental health, for sure, but it's also compatible with a lot of other things that can have great benefits for mental health. Meditation, lifestyle changes, exercise, therapy, environment... none are incompatible with psychiatry, which is not perfect but can be a valuable tool in the toolbox.

</comment></comment></comment></comment><comment><USER25> Article without paywall [https://pastebin.com/gDBDdTB6](https://pastebin.com/gDBDdTB6)

</comment><comment><USER26> > set back psychiatry for decades

Milgram, Zimbardo all these experiments from the 50's onwards are junk. Doesn't mean it set back psychiatry.

How psychiatry works is you get something that you intuitively think is true, make up a experiment to prove it (so it's ok for others to agree without getting in trouble)

Then consensuses decides.

It's blockchain.</comment>


Study: The Human Brain Can Solve Maths Problems Subconsciously - <AUTHOR> http://nocamels.com/2012/11/study-the-human-brain-can-solve-maths-problems-subconsciously/

<comment><USER2> Isn't this obvious? Your brain does an uncountable number of things for you subconsciously. Seems like the interesting result would be to identify a set of problems your brain cant solve subconsciously.

</comment><comment><USER3> During school days, many times it used to happen with me. I used struggle for solving some problem for many hours then used to sleep. And after waking up, I used to solve them immediately.

<comment><AUTHOR> I familiar with this situation also...</comment></comment>


Ask HN: What do you want to accomplish in 2018? - <AUTHOR> <comment><USER2> Money.

</comment><comment><USER3> Lots and lots of reading</comment>


The Wasteful Legacy of Programming as Language - <AUTHOR> http://coliveira.net/software/the-wasteful-legacy-of-programming-as-language/

<comment><USER2> Interesting, but I think the author is overlooking the point that we use programming languages because they are a reasonable, though far from perfect, match to the way we think about solving problems. Human language is not just a means of communication, it is our primary medium for conscious thought.</comment>


Beyond college rankings: A value-added approach - <AUTHOR> http://www.brookings.edu/research/reports2/2015/04/29-beyond-college-rankings-rothwell-kulkarni <comment><USER2> I'm not sure monetary value is the only type of value college can (or should) provide.

<comment><USER3> Furthermore, the obsession with mid-career salaries is misplaced. Four problems:

1\. Focusing on the mid-career salaries can over-value college. Without longer-running longitudinal data, you're essentially just measuring whether colleges / universities provide people with skills that are in high demand in the decade or so following graduation. That says absolutely nothing about the critical back half of people's careers, when they should be earning more than ever and putting a lot of it away for retirement and/or funding the higher education (or business ventures etc.) of their children and/or investing in or starting new businesses.

2\. It reeks of (bad) central planning. Is it any surprise that Software Engineers are in such short supply and Lawyers in such over-supply? People were just making "rational" choices when shying away from CS following the dot com bubble burst, and now we have a massive under-supply of skilled software engineers (and, conversely, an over-supply of other types of professions that were supposed to be highly paid). And in X years, everyone's going to shut up about STEM when there's a dip and it's hard to find a high paying job in software. And then we'll be asking why all these idiots are taking out loans to get degrees in CS.

3\. Focusing on the mid-career under-values college. Many of the benefits of a well-rounded education -- improved writing, increased awareness of one's own culture and others' cultures, familiarity with different fields, interaction with people who have varying interests, deep connections to people who go into other industries -- are skills that pay dividents _especially_ long after the mid-point in a career. The last one or two decades of a career are when employees are being paid for their insight, discipline, awareness of both the big picture and details, and ability to communicate in addition or even instead of rote technical skills that came from their major.

4\. Salary is a poor indicator for the value-add of college at the societal level. If we're going to go down this (ill-advised) route, we should also be measuring things like health of family life, degree to which people contribute back to their community (by taking on voluntary leadership roles), etc.</comment></comment>


Google's "Bacon number" search - <AUTHOR> https://www.google.com/search?q=Bacon+number+Simon+Pegg

<comment><USER2> I'm disappointed it doesn't work with Erdös numbers.

I thought Google was supposed to be a geeky company.

<comment><USER3> Probably because there's no easily accessible data store like IMDB for famous mathematicians or computer scientists.

<comment><USER4> Actually there is an automated Erdos number search here:

<http://www.ams.org/mathscinet/collaborationDistance.html>

using the MathSciNet reference database. Unfortuately, it is only accessible to MathSciNet subscribers, so basically on all university campuses or libraries.

My Erdos number is no higher than 5 :-).

<comment><USER5> Hm. My old professor has an Erdős number of 3. I should see about authoring a paper with him…

</comment></comment></comment></comment><comment><USER6> Weird, Adolf Hitler is meant to have a Bacon number of 3, but he doesn't return anything on Google. From the Wikipedia page:

Adolf Hitler was in Ewige Jude, Der (1940) with Curt Bois Curt Bois was in Great Sinner, The (1949) with Kenneth Tobey Kenneth Tobey was in Hero at Large (1980) with Kevin Bacon

<comment><USER7> I see little need to waste CPU cycles on him, personally.

</comment></comment><comment><USER8> Google says Justin Bieber's bacon number is 4, but he was in Men In Black III with Josh Brolin and Josh Brolin was in Hollow Man with Keven Bacon.

</comment><comment><USER9> Turns out that Kevin Bacon is only the 444th best candidate for being the center of a six degrees search of Hollywood.

<http://oracleofbacon.org/center.php>

<comment><USER9> The top five best centers for six degrees of hollywood separation are:

       Dennis Hopper (2.802166)
       Harvey Keitel (2.812642)
       Donald Sutherland (I) (2.819748)
       David Carradine (I) (2.819993)
       Udo Kier (2.826828)

</comment></comment><comment><USER10> I wonder what the cutoff for notability is. It seems to work for big names but not bit part players. Oracle Of Bacon works with all of imdb, but I guess google can't use that resource...

<comment><USER11> Boo, I have a bit part listed on IMDB and it does not work on my name.

<comment><USER10> I'm thinking they're using something like wikipedia movie entries as the source. Something that just lists topline cast. As some other threads mention, cameos from even well-known types may not be factored in.

</comment></comment></comment><comment><USER12> 7

[http://www.google.com/search?num=100&hl=en&newwindow...](http://www.google.com/search?num=100&hl=en&newwindow=0&suggon=0&safe=off&q=Bacon+number+William+Rufus+Shafter&btnG=Search)

<comment><USER13> It should be 2.

      William Shatner was in Loaded Weapon 1 (1993)[0] with Denise Richards[1]
      Denise Richards was in Wild Things (1998)[2] with Kevin Bacon

Source: [http://www.cs.washington.edu/education/courses/cse373/11wi/h...](http://www.cs.washington.edu/education/courses/cse373/11wi/homework/7/expected_output_all.txt)

[0] <http://www.imdb.com/title/tt0107659/fullcredits#cast>

[1] <http://www.imdb.com/name/nm0000612/>

[2] <http://www.imdb.com/title/tt0120890/>

<comment><USER14> Shafter, not Shatner.

This guy is famous in Baconumerology, but I am skeptical that all the links included count as "films".

</comment></comment></comment><comment><USER15> Doesn't work with Erdös number, in case any of you were wondering.

<comment><USER16> Right. I tried finding out Erdös' Bacon number and nothing came up.

<comment><USER17> 4, if an Erdos/Bacon number were a thing:

P. Erdős and C. Pomerance published "On the largest prime factors of n and n +1"

C. Pomerance and L. Adleman published "On Distinguishing Prime Numbers From Composite Numbers"

L Adleman was a mathematical consultant in Sneakers with David Strathairn.

David Strathairn and Kevin Bacon appeared in The River Wild.

//edit, Randy Pausch actually appeared in a movie so I'm sure there's a connection there, too.

<comment><USER18> Yes, the elusive Bacon-Erdos number: <http://en.m.wikipedia.org/wiki/Erdős–Bacon_number>

</comment></comment></comment></comment><comment><USER19> Hm, it seems like basically any actor you can think of off the top of your head has a Bacon number of 2 (or less). I guess that makes sense. Anyone have some interesting examples of 4+ bacon numbers??

<comment><USER20> Justin Bieber (4) - admittedly an edge case, but a popular candidate without close ties (yet). It also includes the "classical baby i ' m grown up now the poetry show" link, with which I wasn't previously familiar.

<comment><USER21> Justin Bieber is actually a 2. [http://oracleofbacon.org/cgi- bin/movielinks?a=Kevin+Bacon...](http://oracleofbacon.org/cgi- bin/movielinks?a=Kevin+Bacon&b=Justin+Bieber)

</comment></comment></comment><comment><USER22> For the curious, confused, or uninitiated, this whole phenomenon is almost certainly based on the coincidence that "separation" and "Kevin Bacon" sound similar, combined with the well-known phrase "six degrees of separation" (<https://en.wikipedia.org/wiki/Six_degrees_of_separation>). Thus, "six degrees of Kevin Bacon".

</comment><comment><USER23> Well colour me shocked, I thought I would give Google a workout and try "Orson Welles"... turns out his number is a very run-of-the-mill 2

<comment><USER24> As are Charlie Chaplin and Alfred Hitchcock (they even share the same Bacon liaison).

</comment></comment><comment><USER25> It took me a while to find someone with a Bacon number>2: Prince

<comment><USER26> Try foreign _and_ old actors, e.g. Mazzaropi (famous Brazilian comedian from the 1950'-70's), Google computes a bacon number 5... but The Oracle of Bacon returns 3, they have a bigger database.

<comment><USER27> I got to 3 with Bela Lugosi. I couldn't get any further, so I finally turned to the comments to see who had >3.

</comment></comment></comment><comment><USER28> It doesn't appear to work if you are using google (even .com) in another language, confirmed with Spanish (Castilian).

<comment><USER29> append &hl=en to the URI : [https://www.google.com/search?q=Bacon+number+Simon+Pegg&...](https://www.google.com/search?q=Bacon+number+Simon+Pegg&hl=en)

</comment></comment><comment><AUTHOR> Discussion - [http://www.guardian.co.uk/film/2012/sep/13/google-six- degree...](http://www.guardian.co.uk/film/2012/sep/13/google-six-degrees- kevin-bacon)

</comment><comment><USER30> Not using IMDB sometimes leads to incorrect results. For "Louis de Funès", Google finds a Bacon number of 3:

Louis de Funès and Terry-Thomas appeared in Don't Look Now... We're Being Shot At!. Terry-Thomas and Tom Aldredge appeared in The Mouse on the Moon. Tom Aldredge and Kevin Bacon appeared in Taking Chance.

The Oracle finds 2: Louis de Funès was in Les aventures de Rabbi Jacob (1973) with Janet Brandt was in Queens Logic (1991) with Kevin Bacon

</comment><comment><USER31> What would be the most intuitive way to define negative Bacon numbers? If we take this suggestion for negative Erdos numbers ([http://infactorium.blogspot.com/2009/01/negative-erdos- numbe...](http://infactorium.blogspot.com/2009/01/negative-erdos- numbers.html)), then this would be people who turned down an offer to star in a movie with Bacon. There must be many people in this category.

</comment><comment><USER32> I have an Erdös number of the first kind of 2, and an Erdös number of the second kind of at most 3. I'm working on my Bacon number. So far I've appeared on television with: Carol Vorderman, Gareth Jones, Angela Rippon, Fred Dineage, and several others that I need to track down, but are even less well known.

My challenge is working out who I have been with that might have been in a film.

<comment><USER33> You were juggling on How2?

<comment><USER32> Yup - "How do you juggle your numbers?" - the SiteSwap notation in action, with the "jugglometer".

</comment></comment></comment><comment><USER34> It's flawed. Google claims a Bacon number of > 1 for Johnny Carson, Rosie O'Donnell and Jay Leno, but he sat for interviews on their talk shows. Also, the results for some musicians include recorded-footage appearances in movies where they had no interaction with the cast.

<comment><USER35> Still seems to be just a rather clear distinction between being in a movie or not being in a movie, regardless of significance of the part or role played. To me this doesn't seem like a flaw.

</comment></comment><comment><USER36> What this tells me is that someone in the Google PR department had an idea, and a bunch of really smart people actually were resourced to work on it. While at the same time, my search results for useful queries have more spam than ever.

Hm.

<comment><USER37> Hopefully this was a 20% project.

</comment></comment><comment><USER38> so far, the highest bacon number i've found is from another actor with the last name "Bacon"

<https://www.google.com/search?q=bacon+number+lloyd+bacon>

</comment><comment><USER39> Apparently I have a Bacon Number of 4. I dated a girl who was an extra in "Footloose" (2011 remake), with Dennis Quaid, who was in "The Right Stuff" with Fred Ward, who was in "Tremors" with Mr. Bacon.

Neat.

<comment><USER40> I do too, through actually appearing on film, even.

Ok, videotape. I was in a videotaped school play with someone who according to Oracle of Bacon has a Bacon number of 3. (Google doesn't work since he's pretty obscure, Oracle of Bacon uses all of IMDB I guess.)

Now I just need to find out if I can get an Erdos number out of any of my advisors.

</comment></comment><comment><USER41> Ahmadinejad is 5 [https://www.google.com/#hl=en&output=search&q=Bacon+...](https://www.google.com/#hl=en&output=search&q=Bacon+number+ahmadinejad&fp=1)

</comment><comment><USER42> Well, I guess this makes the Oracle of Bacon obsolete. Wonder how those guys feel about this.

</comment><comment><USER43> Does this mean you can ask Google Now for Bacon numbers?

<comment><USER44> It worked for me.

</comment></comment><comment><USER45> There's a Gareth Bacon...

:(</comment>


Show HN: Instagram photos in real-time - <AUTHOR> http://kaleidoscope.thematic.me/

<comment><AUTHOR> Made with node.js. Source code available here: <https://github.com/christopherhan/kaleidoscope>

Uses WebSockets so should be used with Chrome, Safari, or FF with WebSockets enabled.

Would appreciate feedback.

<comment><AUTHOR> Photos might not be rendering. I get an HTTP 400 when I make a request to the Instagram API. Not sure what happened. Maybe I exceeded my API limit.</comment></comment>


WWII Propaganda Popularized Myth That Carrots Help You See in the Dark (2013) - <AUTHOR> http://www.smithsonianmag.com/arts-culture/a-wwii-propaganda-campaign-popularized-the-myth-that-carrots-help-you-see-in-the-dark-28812484/?no-ist <comment><USER2> Seriously I really believed this thing: back in the days when I was practicing Ninjutsu I ate carrots 2 times a day!

I always thought that it didn't work just because you needed a few years of carrots eating to get results.

Now I feel fooled and by a 75 yo fake news at that!

<comment><USER3> As a child my parents would tell me to not sit so close to the TV as it'd ruin my eyesight. I concocted some sort of wacky formula for how many carrots I needed per unit of time sitting close to the TV.

It turns out that I have excellent eyesight, the only one in the family who doesn't wear glasses. If it weren't so ridiculous I'd actually wonder a bit about the effect my formula had.

<comment><USER4> So, what's the formula? :)

Might work for people with children, have the kids pay for computer time with carrots LOL

<comment><USER5> This is a technique that I actually do use with my 4-year-old. He can "buy" extra time to stay up reading (2 baby carrots), 3 extra games of splatoon (7 baby carrots), and so on.

</comment></comment></comment></comment><comment><USER6> It amuses me to see this pop up from time-to-time in movies and TV.

"And what's with all the carrots? What do they need such good eyesight for anyway? Bunnies! bunnies! It must be bunnies!!"

<comment><USER7> +1 for your Anya/Buffy reference alone.

<comment><USER6> My first-born is named Anya.

</comment></comment></comment><comment><USER8> Fake "science". Vitamin A deficiency most definitely can cause night blindness. In the event you suffer from a deficiency, carrots most definitely can address it. I have personal experience with this. I couldn't see anything at all in low light, so I took up drinking fresh carrot juice in significant quantities, and within two weeks it was like a dark curtain had been withdrawn from before my eyes.

I have doubts that eating a carrot a day would do a whole lot of good, but I can tell you that 8 ounces of fresh carrot juice a day definitely does!

<comment><USER9> I think the takeaway is that for anyone who is not vitamin A deficient, eating carrots will do nothing.

Vitamin A deficiency certainly causes poor night vision because the body cannot produce rhodopsin. But no amount of beta carotene will make normal night vision better, and therefore the article is not fake science at all.

<comment><USER10> >I think the takeaway is that for anyone who is not vitamin A deficient, eating carrots will do nothing.

I imagine that vitamin-A deficiency must have occurred rather frequently under WWII rationing. Perhaps this was a real concern at the time?

<comment><USER11> Vitamin A deficiency is surprisingly common today.

An interesting story about Eduard Schwarz, an early doctor/researcher (plus much about vitamin A) is at:

[http://www.westonaprice.org/health-topics/abcs-of- nutrition/...](http://www.westonaprice.org/health-topics/abcs-of- nutrition/vitamin-a-saga/)

An Excerpt:

"Eduard Schwarz (1831-1862), a ship's doctor on an Austrian frigate that was sent around the world on a scientific exploration. Before his departure from Vienna, several physicians had asked Schwartz to test the old folk remedy of boiled ox liver against night blindness. On the voyage, 75 of the 352 men developed the condition. Every evening when dusk came, they lost their vision and had to be led about like the blind. Schwartz fed them ox or pork liver and found that the night vision in all of the afflicted was restored."

More about Schwarz:

[http://www.sciencedirect.com/science/article/pii/S0899900797...](http://www.sciencedirect.com/science/article/pii/S0899900797002037)

Should you want to test yourself, a teaspoon of cod liver oil should do the trick. Animal-based versions of vitamin A seem to be more efficacious than their vegetable analogs.

Meanwhile eat your liver(mmmm!), fish, carrots and blueberries.

<comment><USER9> I have experienced reduced night vision to a degree while driving at night. I now take cod liver oil capsules (for other reasons), and have no trouble at all now.

</comment></comment></comment></comment></comment><comment><USER12> WWII Propaganda Popularized the Myth That the US and not the soviets defeated the nazi army.

</comment><comment><USER13> This story, and the UFO stories from the 50s and 60s, demonstrate the enduring power of a well-crafted cover story.

Long after the real secret information is widely known (radar and experimental aircraft), the cover stories are still widely believed.

</comment><comment><USER14> This still doesn't explain why I've never seen a rabbit wearing glasses.

</comment><comment><USER15> Well, I _still_ love carrot almond halwa :)

<comment><USER16> One of the best sweets ever. In Punjab, we majorly use buffalo milk, and my grandma used to feed one of the buffalos special diet of "varhevein" (mustard seed pith cake after de-oiling), then the milk underwent process of "kaarhni", essentially slow boiling over an afternoon which gives it a very unique taste akin to smokey BBQ. We used fresh carrots for the halwa, and make it on open pit in a cast iron pan. No recipe or method has come closer to that. Insanely rich sweet.

<comment><USER15> That sounds delicious!

</comment></comment></comment><comment><USER17> My parents made me LOVE carrots as a kid in the early 90s by promising that they would grant me this super human power of night vision and damnit I bought into it hook, line, and sinker. I'm not sure if carrots would be my favourite vegetable today if it wasn't for this propaganda.

</comment><comment><USER18> How about cannabis then?

[http://hightimes.com/medicinal/new-study-suggests- cannabis-i...](http://hightimes.com/medicinal/new-study-suggests-cannabis- improves-night-vision/)</comment>