If you are into operating systems: The Design and Implementation of the FreeBSD Operating System https://www.amazon.co.uk/Design-Implementation-FreeBSD-Opera...
Seconded. After being a FreeBSD developer for a dozen years some people might expect me to know everything this book covers, but in fact I pulled it out just last month to help me understand how some details of how the VFS layer and the NFS client worked.
Ask HN: What's the best computer science book you've read recently?
181–190 of 201 posts
Re: Ask HN: What's the best computer science book you've read recently?
#182The Cathedral and the Bazaar by Eric S. Raymond. It's inspiring for embrace Open Source collaboration and also very useful for manage projects. In Guy Kawasaki's quote "The most important book about technology today, with implications that go far beyond programming"
Had reddit :)
That reminds me about the book:
Open Sources: Voices from the Open Source Revolution:
http://www.oreilly.com/openbook/opensources/book/
It is free to read at the above link. I had read many of the chapters some years ago. Pretty interesting stuff.
It consists of multiple chapters, each written by different well-known people associated with prominent projects from the open source movement, at a time when it was relatively new (1999).
The paragraphs that I remember the most from it are from this chapter:
Future of Cygnus Solutions
An Entrepreneur's Account
Michael Tiemann
(Cygnus Solutions was a company which initially ported and improved GCC and its toolchain to multiple Unix platforms, and made a business out of it, before open source was a gleam in many people's eyes. They did well and were acquired by Red Hat some years later.)
Here are the paragraphs:
[ Again, a quote from the GNU Manifesto:
There is nothing wrong with wanting pay for work, or seeking to maximize one's income, as long as one does not use means that are destructive. But the means customary in the field of software today are based on destruction.
Extracting money from users of a program by restricting their use of it is destructive because the restrictions reduce the amount and the ways that the program can be used. This reduces the amount of wealth that humanity derives from the program. When there is a deliberate choice to restrict, the harmful consequences are deliberate destruction.
The reason a good citizen does not use such destructive means to become wealthier is that, if everyone did so, we would all become poorer from the mutual destructiveness.
Heavy stuff, but the GNU Manifesto is ultimately a rational document. It dissects the nature of software, the nature of programming, the great tradition of academic learning, and concludes that regardless of the monetary consequences, there are ethical and moral imperatives to freely share information that was freely shared with you. I reached a different conclusion, one which Stallman and I have often argued, which was that the freedom to use, distribute, and modify software will prevail against any model that attempts to limit that freedom. It will prevail not for ethical reasons, but for competitive, market-driven reasons.
At first I tried to make my argument the way that Stallman made his: on the merits. I would explain how freedom to share would lead to greater innovation at lower cost, greater economies of scale through more open standards, etc., and people would universally respond "It's a great idea, but it will never work, because nobody is going to pay money for free software." After two years of polishing my rhetoric, refining my arguments, and delivering my messages to people who paid for me to fly all over the world, I never got farther than "It's a great idea, but . . .," when I had my second insight: if everybody thinks it's a great idea, it probably is, and if nobody thinks it will work, I'll have no competition!
-F = -ma Isaac Newton
You'll never see a physics textbook introduce Newton's law in this way, but mathematically speaking, it is just as valid as "F = ma". The point of this observation is that if you are careful about what assumptions you turn upside down, you can maintain the validity of your equations, though your result may look surprising. I believed that the model of providing commercial support for open-source software was something that looked impossible because people were so excited about the minus signs that they forgot to count and cancel them.
An invasion of armies can be resisted, but not an idea whose time has come. Victor Hugo
There was one final (and deeply hypothetical) question I had to answer before I was ready to drop out of the Ph.D. program at Stanford and start a company. Suppose that instead of being nearly broke, I had enough money to buy out any proprietary technology for the purposes of creating a business around that technology. I thought about Sun's technology. I thought about Digital's technology. I thought about other technology that I knew about. How long did I think I could make that business successful before somebody else who built their business around GNU would wipe me out? Would I even be able to recover my initial investment? When I realized how unattractive the position to compete with open-source software was, I knew it was an idea whose time had come.
The difference between theory and practice tends to be very small in theory, but in practice it is very large indeed. Anonymous
In this section, I will detail the theory behind the Open Source business model, and ways in which we attempted to make this theory practical.
We begin with a few famous observations: ]
And here is the full chapter by Tiemann:
http://www.oreilly.com/openbook/opensources/book/tiemans.htm...
Re: Ask HN: What's the best computer science book you've read recently?
#183The Algorithm Design Manual by Skiena. Each section contains a story of some situation he was in where he faced a problem which he solved by applying one of various algo techniques (DP, divide and conquer, etc.). After reading CLRS for a class, it was nice to see how some of the most common textbook algorithms have been applied by a notable computer scientist.
prepping for google interview?
Re: Ask HN: What's the best computer science book you've read recently?
#184Earlier quoted context omitted.
The book is basically a scam and panned. He talks about automata like it was new and he invented it. I strongly suggest you read the Amazon reviews.
I can form my own opinion thanks. At least he doesn't have his head up his ass the may Mandelbrot did. And on top of it all he generated a great deal of original work.
Re: Ask HN: What's the best computer science book you've read recently?
#185Earlier quoted context omitted.
I see nothing wrong with GP providing their affiliate tag. They are referring customers to Amazon, and customers don't pay extra.
As an ex-Amazon Affiliate myself, I disagree because the incentive to post those links is not aligned with the reader's expectations. Do you enjoy viewing commercials and product placements without the proper disclaimer? Because this is exactly what this is. I surely don't appreciate hidden advertising, not because of the quality of the advertised products, but because I cannot trust such recommendations, as a salesm…
Please don't project your behavior onto others. I take book recommendations seriously. I actually really enjoy it, people have told me IRL that my recommendations helped them a lot.
> Notice how this is the biggest list of recommendations in this thread.
They are all books that I've read in the last ~4 monthish (not all in entirety). Just FYI I'm not sure how much money you think I'm making off this but for me it's mostly about the stats, I'm curious what people are interested in.
> Do you think that's because the author is very knowledgeable
I'm more than willing to discuss my knowledgeability.
> or is it because he has an incentive to post links?
It's the biggest list because due to circumstances I have the luxury of being able to read a ton. I own all the books on the list, I've read all of them and I stand by all of them and some of these are really hidden gems that more people need to know about. I've written some of the reviews before. Just FYI I've posted extensive non-affiliate amazon links before and I started doing affiliate only very recently.
Furthermore, HN repeatedly upvotes blog posts that contain affiliate links. Why is that any different?
Re: Ask HN: What's the best computer science book you've read recently?
#186Re: Ask HN: What's the best computer science book you've read recently?
#187The Plausibility of Life by Kirschner & Gerhart OK, this is an oddball one, in that a book on Evo Devo is pretty far from CS, but reading it completely changed how I look at software architecture, protocols, formats, programming languages, and a whole range of other CS-related topics. Superficially, it is what it says on the tin: an examination of the mechanisms by which life manages to evolve at all, that keep most…
This book influenced me tremendously. It explains how can random process (e.g. genetic mutation) builds highly non-random structures (e.g. the human eye). Recently I was using American Fuzzy Lop ( http://lcamtuf.coredump.cx/afl/ ) to find bugs in my software, and was able to appreciate the surprising effectiveness of the "random" strategy it employs to discover structures in the program. For example, AFL could constr…
One of the things that I gained from the book was a bit better "feel" for getting the right granularity/modularity in order to facilitate evolvability (as in the chunks I might want to swap out for another implementation, while leaving others in place), as a separate concern from maintainability.
BTW, I've noticed is that the "order blindly emerging from chaos" theme keeps popping up in fiction by writers like Bruce Sterling, Cory Doctorow, and Charles Stross (all favorites of mine).
Re: Ask HN: What's the best computer science book you've read recently?
#188The Plausibility of Life by Kirschner & Gerhart OK, this is an oddball one, in that a book on Evo Devo is pretty far from CS, but reading it completely changed how I look at software architecture, protocols, formats, programming languages, and a whole range of other CS-related topics. Superficially, it is what it says on the tin: an examination of the mechanisms by which life manages to evolve at all, that keep most…
"The Plausibility of Life ends with a brief critique of intelligent design, suggesting that the concept of facilitated variation will provide a solid argument to rebut creationists. I applaud the authors' intention, as it seems to me that more scientists ought to face the realities of public misunderstanding of science. But their presentation is too brief, and a bit too simplistic. The "controversy" about evolution h…
For the viewers following along at home, this passage summarizes why I found the book interesting in the first place:
"Organisms are not analogous to human-engineered machines [...] rather, they are characterized by developmental systems that are capable of accommodating quite a bit of disruption—be that from changes in the external environment (phenotypic plasticity) or from mutations in their genetic makeup (genetic homeostasis). This ability to accommodate is in turn made possible by the modular structure of the genetic-developmental system itself, which allows organisms to evolve new phenotypes by rearranging existing components. "
To which my emotional response at the time was, "Hey, human-engineered machines are becoming less like human-engineered machines in many of the same ways!"
And this bit was the part I found most interesting about this review:
" Inherited epigenetic variants can interact with their genetic counterparts to multiply by orders of magnitude the phenotypic variation available to natural selection, thereby expanding the mechanistic bases of evolutionary theoretical explanations and greatly increasing their plausibility as an account of life's diversity."
Huh. The analogous mechanisms for software seems like they may be those that don't get propagated by code per-se (but certainly affect it), like the surrounding community. I'll have to think about that some more (and probably eventually read additional Evo Devo books).
Re: Ask HN: What's the best computer science book you've read recently?
#189The Algorithm Design Manual by Skiena. Each section contains a story of some situation he was in where he faced a problem which he solved by applying one of various algo techniques (DP, divide and conquer, etc.). After reading CLRS for a class, it was nice to see how some of the most common textbook algorithms have been applied by a notable computer scientist.
This book is highly overrated. Algorithms by Sedgewick ( http://algs4.cs.princeton.edu/home/ ) is a much better book for learning and understanding algorithms. Skienas book is a simple collection of (sometimes very exotic) algorithms. It won't teach you anything, it will only tell you what exists.
The second half of the book is "the catalog" of algorithms and I guess maybe that's what people like but the I had so few "a ha" moments reading the book that I got to page 130 before I threw i the towel.