Ask HN: Nicknames for Computer Science Books?
From that scene in Hackers where they were listing off books with nicknames (ex. Compiler: Principles, Techniques and Tools, aka "The Dragon Book," I ended up being curious about what other books might also have the same treatment. This is the current list I have, scoured from places like Wikipedia, Amazon and other forums, but I wondered if anyone found anything else? (This is just for my own curiosity)
The AWK Programming Language, Alfred Aho, Peter Weinberger, Brian Kernighan, aka "The Gray Book"
The C Programming Language, Brian Kernighan and Dennis Ritchie, aka "The White Book"
Compilers: Principles, Techniques and Tools, aka "The Red/Purple Dragon Book"
Computer Architecture: A Quantitative Approach, aka "The Pillar Book"
The Design and Implementation of the FreeBSD Operating System, aka "The Devil Book"
Foundations of Computer Science, Aho, Alfred and Ullman, Jeffrey, aka "The Turtle Book"
Introduction to Automata Theory, aka "The Cinderella Book"
Lions' Commentary on UNIX, 6th Edition, aka "The Lions Book"
Modern Compiler Implementation in ML, aka "The Tiger Book"
Operating Systems: Three Easy Pieces, aka "The Comet Book"
The OpenGL Programming Guide, aka "The Red Book"
The Peter Norton Programmer's Guide to the IBM PC, aka "The Pink Shirt Book"
Principles of Compiler Design, aka "The Green Dragon Book"
Programming Perl, aka "The Camel Book"
Programming Ruby, aka "The Pickaxe Book"
Smalltalk-80: The Language and its Implementation, aka "The Blue Book"
Structure and Interpretation of Computer Programs, aka "The Wizard Book"
Unix Power Tools, aka "The Unix Book"
47 comments
[ 4.8 ms ] story [ 110 ms ] threadIntroduction to Algorithms - “CLRS”
I always felt they got a bad rap. Most of the actual advice in the actual book was fine. However for some reason they get blamed for a lot of terrible 'advice' they never actually gave, often attributed to them by people who never actually read the book.
I think the bad rep comes from over use of these patterns that you see in mid 2000s Java2E "AbstractBeanFactoryBuilderBeanObserver" (hyperbole intended).
AbstractWidgetBuilderFactoryBuilderIteratorFactory
...maybe with Facade thrown in there too somewhere although I could be exaggerating with that.
When you see a classname like that the only rational response is to shrug, look at your watch and wonder how long you still have to work before you can get a strong drink.
Honestly I agree the problem with the GoF is not the content of the book itself but the fact that there is a certain type of personality which is very prevalent in software development (let's call them "pokemon trainers") who when confronted with a classification like that just have to "catch them all" (or in this case get them into every program as often as possible).
As a field guide to spotting and understanding common idioms it's fine. The problem is it's like showing a lexicon of cliches to a creative writing night school class. You know from then on about 90% of the material you read is going to be "It was a dark and stormy night... etc etc".
I just can't really ever forgive them for unleashing that particular demon.
Acronyms can count too!
[0]: https://en.m.wikipedia.org/wiki/Structure_and_Interpretation...
I'm so glad I was too busy to take that advice.
The thing is the stuff that used to be total black magic on sendmail (address rewriting, setting routes up etc) is all pretty straightforward on any of those other mail systems, so I'm struggling to see why you would keep a sendmail install around. If someone called me in to help them with their sendmail, pretty much step 0 would be to uninstall sendmail, install a reasonable MTA and go from there.
I get the feeling that are maybe 5 huge sendmail users still out there somewhere that still pay for support contracts and that is just about enough to pay for someone to turn out regular updates. But beyond that they have reconciled themselves with the fact that they are never getting any new users.
I virtually lived on Usenet between roughly 1996-2006 and hung around a bit for a couple more years after that. I can assure you that Usenet definitely went somewhere. Even by 2005 Usenet felt pretty deserted by everybody other than the warez scene.
I will concede however that I haven't logged onto an NNTP server for probably a decade, so perhaps Usenet has had a resurgence without anyone telling me.
Cereal Killer: Yeah, technicolor rainbow. Yeah. Green one.
Joey: What is that? Let me see? What are these?
Crash Override: International UNIX environments.
Cereal Killer: Luscious orange.
Crash Override: Computer security criteria... DoD standards.
Crash Override: The pink-shirt book... guide to IBM PCs. So-called due to the nasty pink shirt the guy wears on the cover.
Crash Override: Devil book, the UNIX bible.
Cereal Killer: What's that?
Crash Override: Dragon book, compiler design.
Cereal Killer: What's that?
Crash Override: The Red book. NSA-trusted networks. Otherwise known as 'The Ugly Red Book That Won't Fit On A Shelf'.
I've never heard the compiler books being referenced as the color of the dragon: they were the Dragon Book and the New Dragon Book -- or, as time passed, the Original Dragon Book and the Dragon Book.
I've always heard it referred to as "K&R".
Also there are a couple of other great books which are white eg Kernighan and Pike "The Unix Programming Environment" and "The practise of programming", and all of TCP/IP Illustrated. In fact pretty much any book I can think of published by Addison and Wesley is white.
[0]: https://en.m.wikipedia.org/wiki/White_book
Freidl "Mastering Regular Expressions" aka "The Owl Book"
Most of these nicknames aren’t widely known. The Dragon Book is probably the most well-known.
Orange - DoD Trusted Computer System Evaluation Criteria Green - DoD Password Management Guideline Light Yellow - Guidance for Applying TCSEC in Specific Environments Yellow - Technical Rationale Behind CSC-STD-003-85: Computer Security Requirements Tan - A Guide to Understanding Audit in Trusted Systems Bright Blue - Trusted Product Security Evaluation Program Neon Orange - Discretionary Access Control in Trusted Systems Teal Green - Glossary of Computer Security Terms Red - Trusted Network Interpretation Amber - Configuration Management in Trusted Systems Burgundy - A Guide to Understanding Design Documentation in Trusted Systems Dark Lavender - A Guide to Understanding Trusted Distribution in Trusted Systems Venice Blue - Computer Security Subsystem Interpretation of the TCSEC Aqua - A Guide to Understanding Security Modeling in Trusted Systems Red - Trusted Network Interpretation Environments Guideline (TNI) - Trusted Database Management System Interpretation [3] Pink - RAMP Program Document Pink - RAMP Program Document version 2 Purple - Guidelines for Formal Verification Systems Brown - Guide to Understanding Trusted Facility Management Yellow-Green - Guidelines for Writing Trusted Facility Manuals Light Blue - Identification and Authentication in Trusted Systems Light Blue - Object Reuse in Trusted Systems Blue - Trusted Product Evaluation Questionnaire Silver - Trusted UNIX Working Group (TRUSIX) Rationale for Selecting Access Control List Features for the UNIX System Grey Silver - Trusted UNIX Working Group (TRUSIX) Rationale for Selecting Access Control List Features for the UNIX (R) System Purple - Trusted Database Management System Interpretation of the TCSEC (TDI) Yellow - Trusted Recovery in Trusted Systems Bright Orange - Security Testing and Test Documentation in Trusted Systems Purple - Procurement of Trusted Systems: An Introduction to Procurement Initiators on Computer Security Requirements Purple - Procurement of Trusted Systems: Language for RFP Specifications and Statements of Work Purple - Procurement of Trusted Systems: Computer Security Contract Data Requirements List and Data Item Description Purple - Procurement of Trusted Systems: How to Evaluate a Bidder's Proposal Document Forest Green - Guide to Understanding Data Remanence in Automated Information Systems. Hot Peach - Writing the Security Features User's Guide for Trusted Systems Turquoise - Information System Security Officer Responsibilities for Automated Information Systems Violet - Assessing Controlled Access Protection Blue - Certification and Accreditation Concepts Light Pink - Covert Channel Analysis of Trusted Systems