Categories
library reading

Programming Style: Writing and Computation

After yesterday’s (somewhat lame) post on Beautiful Code, I realized that there have been a number of books I’ve read, source code I’ve read, and projects I’ve participated on that have influenced my sense of software style and craft.

While most lists like this emphasize the computation books, I’ve noticed that there’s an implicit book missing from most of these lists, namely “The Elements of Style.”

Here’s my top set of core books on coding style that I really thing matter:

  • The Unix Programming Environment, by Kernighan and Pike,
  • The C Programming Language, by Kernighan and Ritchie,
  • the various ‘Lambda papers’ Guy Steele (Lambda, the ultimate imperative, etc.)
  • the Anatomy of Lisp by John Allen,
  • On Writing Well, by Zin
  • The Elements of Style by Strunk and White,

and, influenced by Strunk and White:

  • The Elements of Programming Style, by Kernighan and Plauger
  • The Elements of Java Style, by Vermeulen, Ambler, Bumgardner, Metz, Misfeldt, Shur, & Thompson

Interesting overlap with the list over at the Association for Computing Machinery (Classics).

What influenced you?

Dak

Categories
cheap security time management tips trade-offs

The Elements of Security: Omit Needless Software

[Inspired by a mail virus that’s going around, and the classic Strunk and White text, The Elements of Style]

DO NOT install random software from friends, links you get in email, ‘free’ screen savers, and the like. Less is better. Your systems will be faster and more secure, and you don’t need them.  Even if they work, they are a waste of your time and system resources.

Here’s a longer aside for those of you who are thinking “But surely you don’t mean avoid installing anything?”

If  you DO need something, do the research and get what you need for the time and money price you are willing to pay.  (Free isn’t necessarily what’s best for you;  the ‘more expensive’ package can easily be better for you in the long run.)

Here are a couple of relevant examples:

1) Web browsers:  Firefox, Safari, and Chrome.  Great web browsers, all free, and worth the minor work to keep them up to date. They all have their strengths; I use Firefox most often, but both Safari and Chrome for some other tasks.  (Comments are more than welcome!)  Sorry, I’ve been burned too many times by Internet Explorer to want to use it, and the other browsers support a wider range of machines, since Microsoft has dropped upgrade support for older Windows versions, and doesn’t support other operating systems.  Your mileage may vary.

2) EVault data protection software.  Yes, there are free alternatives, but for your business servers where you really, really have to be able to recover, these folks are really good.  I’m no longer with the company, but I did run the engineering team for a year and a half, and I still happily recommend the products and services.  The free/’freemium‘ alternatives are good as far as they go, but system restoration is tricky, and EVault gets it right.  EVault software is owned, and the service operated, by i365, a Seagate company, so you know they’ll be around.  Highly recommended.

I’d love to have comments on other ‘elements of security,’ so please feel free to chime in.

Thanks,
Dak