Information related to computer programming

44 engineering management lessons alvin May 21, 2017 - 5:43pm

This is a good post from 2014 titled, 44 engineering management lessons.

The karma of bad software documentation

Tried to use someone’s software library.
Documentation was bad, couldn’t get it to work.
Used someone else’s.


Functional programming: Everything is immutable

“Remember how weird it seemed when you first learned that a String in Java was immutable? Well, in functional programming it’s all like that. Everything is immutable.”

(From a discussion with a Java developer recently.)

Take time to think(!)

As a note to my future self: Take time to think!


Even at my advanced age, if I don’t think through an algorithm I can still waste an awful lot of time.

As an example I just started working on a complex algorithm for my Android football game based on the initial thoughts in my brain, and came to regret it. After recovering from that faux-pas I decided to write just a few simple notes like this to clarify my thoughts:

Lisp: What is an S-expression?

I spent some time last night reading the book, Practical Common Lisp. In all Lisp books you’ll read about S-expressions, but very few authors explain what they are. This image comes from this Wikipedia page, which states, “In computing, s-expressions (for “symbolic expression”) are a notation for nested list (tree-structured) data, invented for and popularized by the programming language Lisp, which uses them for source code as well as data. In the usual parenthesized syntax of Lisp, an s-expression is classically defined as a) an atom, or b) an expression of the form (x . y) where x and y are s-expressions.” See that link for more information about Lisp and S-expressions.

The history of Lisp

I’ve been interested in the Lisp programming language since I first learned about it, but in the books I’ve read about it, no author has explained the background of terms like cons, car, cdr, and S-expressions. Tonight I found this “History of Lisp” document, which explains the meaning of some of those names.

(If you’re really interested in those terms, this Wikipedia page describes them even more.)