StackOverflow recently voted on the “most influential programming book”. The Internet Security Blog brings a neatly formatted list. Finally, the question was repeated on Slashdot; which is of course like asking a class of ten year olds about their favourite bubble gum. Surprisingly, some interesting information could be extracted from the noise.
The top ten:
Code Complete (2nd Edition)
The Pragmatic Programmer: From Journeyman to Master
Structure and Interpretation of Computer Programs (2nd ed.)
The C Programming Language (2nd ed.)
Introduction to Algorithms
Refactoring: Improving the Design of Existing Code
Design Patterns: Elements of Reusable Object-Oriented Software
The Mythical Man-Month: Essays on Software Engineering
Art of Computer Programming, Volume 1: Fundamental Algorithms (3rd Edition)
Compilers: Principles, Techniques, and Tools (2nd Edition)
The C Programming Language
Deitel & Deitel
The Mythical Man-Month
John von Neumann: Theory of self-reproducing automata
The Art of Unix Programming
Starting Forth by Leo Brodie
Peter Norton’s Guide to Programming the IBM PC
Bruce Eckel’s Using C++ and Thinking in C++
The Design of Everyday Things by Donald Norman
Algorithms + Data Structures = Programs by Niklaus Wirth
And there’s even more.
The “Real Names” discussion is raging these days, and it’s great to see not only fringe opinionist chipping in, but big names on both sides. Danah Boyd from Microsoft chooses to focus on the power people ought to have to secure themselves. While Alexis Madrigal, senior editor at The Atlantic, looks at pseudonyms and how they can be used to avoid persisting and attaching information to one’s real identity. The Slashdot crowd says, “if you don’t like it, don’t use their service”. Everybody has a story from Facebook when sensitive information leaked out to the wrong people.
All this starts to sound familiar, and indeed the various points raised now were all neatly collected about two years ago in Viktor Mayer-Schonberger’s book “Delete: The Virtue of Forgetting in the Digital Age“. Schonberger’s argument was not focused on real name or pseudonyms, but rather examined what happens when the default shifts from forgetting to remembering almost everything. He investigates several options and solutions to the problem of eternal memory, and has at least one suggestion which might help: expiration dates for information.
Although engineers and managers alike would get much back from reading the book, I fear that Schonberger’s argument would be lost on many of them. It would drown in technical details and resistance, never making it into code. Expiring digital information is so counter-intuitive to how engineers work and think, it would be written off as impossible.
As for the “Real Names” debate, my take is “trust no one”. “Enemy of the State” is definitely worth a re-watch if you haven’t seen it lately.
Free Software Foundation just announced that two new books by Richard Stallman are available. They can be ordered from their web site, with both for a total of 36 USD. However, Mr. Stallman also signs your copy for 50 USD each. And soon, I will be the proud owner of two signed copies!
Looking for a Python sparkline library, I found Perry Geo’s excellent code. “In the minimalist spirit of sparklines, the interface was kept simple”:
a = [32.5,35.2,39.9,40.8,43.9,48.2,50.5,51.9,53.1,55.9,60.7,64.4]
That’s it, and here’s the result. Just download his single Python module, start up interactive Python, and off you go.
This of course sent me on a tangent, off to Edward Tufte’s work and creation of sparklines. It seems I have a book or two to buy.
The forth volume of Donald Knuth’s The Art of Computer Programming is now ready for print, and can be pre-ordered at Amazon. At about $200, I think I might add it to my next order.