Information related to computer programming

An insight on the relation between latency and throughput alvin March 9, 2017 - 8:29am
Take time to think(!) alvin February 5, 2017 - 10:43pm

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? alvin February 5, 2017 - 2:02pm

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 alvin February 4, 2017 - 9:34pm

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.)

The most important principle for the algorithm designer is to refuse to be content alvin January 20, 2017 - 2:35pm

“Perhaps the most important principle for the good algorithm designer is to refuse to be content.”

~ Alfred Aho

Rubber Duck Debugging alvin January 17, 2017 - 2:56pm

I was just reminded of Rubber Duck Debugging. From this Wikipedia link, “The name is a reference to a story in the book The Pragmatic Programmer in which a programmer would carry around a rubber duck and debug their code by forcing themselves to explain it, line-by-line, to the duck.” For me, my rubber duck is Albert Einstein.

Not a great programmer; just a good programmer with great habits alvin January 17, 2017 - 10:07am

“I’m not a great programmer; I’m just a good programmer with great habits.”

~ Kent Beck

Vital assets of competent programmers (Edsger Dijkstra) alvin January 14, 2017 - 9:46am

“Besides a mathematical inclination, an exceptionally good mastery of one’s native tongue is the most vital asset of a competent programmer.”

~ Edsger Dijkstra

Chapters from The Handbook of Applied Cryptography alvin January 13, 2017 - 9:58am

Chapters from The Handbook of Applied Cryptography are available from the publisher and authors as PDFs at this link.

“I fear things unless I understand them” alvin December 3, 2016 - 9:26am

“Years ago I knew little, but was comfortable using things I didn’t understand. Now I’m experienced, I fear things unless I understand them.”

~ A good quote from Jon Pretty