More freedom in doing things

I would always incline to the option that left more freedom to users to customize and to make it unique.

Reading note of SICP (4)

Completed the 1st chapter of sicp.

I really appreciate the exercises within each subsections, because I can feel that they are well designed. I used to have the same feeling when I did the homework from Dan’s course of programming languages. The exercises make the general concepts concrete and doable.

The abstraction is far from merely making the code more structured and readable. It is a design choice. Sometimes, it takes experience to find out where should be abstracted. And sometimes, it takes much more endeavors than simply mix everything together. But once the choice of abstraction is right, the program becomes clearer, and it increases many degrees of freedom for the design afterwards.

Reading note of SICP (3)

At the end of the 1st chapter, it enumerates the basic reason for the powerful lisp: first-order procedure.

Reading note of SICP (2)

While I am reading, I always try to distinguish which part of thoughts I used to learn from here when I read it for the first time, and which part I learned from Dan’s course. And, surprisingly enough, I learned almost all basic factors from Dan, though I always felt I learned a lot of things last year when I began to read it.

Reading note of SICP

P59. I still don’t think it is necessary to use “square” instead of (* x x) everywhere we perform this operation, but I appreciate the idea of “abstraction”. It is really a good idea (and practice) to abstract concepts in different levels and use them accordingly.

Python/Numpy version collisions

Before this accident, I did not even know there were so many places relevant with a single program… I opened the pandora’s box beginning with using brew doctor  which told me to move directory /usr/local/bin/ prior to /usr/bin/ so that all the homebrewed packages could be found automatically. After I did this, if I executed matplotlib, I would have this runtime error RuntimeError: module compiled against API version 8 but this version of numpy is 6 which was somewhat correct by the way. Because I used superpack installed the latest version of numpy(1.8), scipy(0.13), and matplotlib(1.4), but if I printed out the “numpy.version” in a script, it showed 1.6.1.

Setup emacs in Mac OS

The setup is much harder than I thought…

C++ rants

By Linus Torvalds:

C++ rants (continued)

(link)

excerpt from Effective C++

    Cpp is like some stubborn old man, who always says “i have lots of obscure habits, dealing with it”……