|Robert Glass Software Creativity 2.0.
Quite an interesting reading. The author attempts to answer the recurring question whether writing software be a procedural task or a creative process. The question is very interesting and it is at the core of software engineering practices. If the answer is the first, then writing code can be automatized and programmers may be considered interchangeable. The topic is difficult and the author attempts to follow a pragmatic if not formal approach to give the answer. I liked the answer (yes it is a creative process, sorry to spoil, but I couldn’t resist), but I find the book somewhat weak in giving short and fit references to help programmers in dealing with management to get their points… not that management would care anyway.
|James W. Grenning Test-Driven Development for Embedded System.
Firmware development tends to be one of those niche where the “NAH” (Not Applicable Here) defense is used for preventing proper software practices to be applied. Structured, Hardware independent, Object Oriented… in many circles are considered techniques unsuitable for embedded software. I am pretty convinced of the contrary, and this book really is a valuable allies. The book is about test driven development (that is, first write tests, then code) which is another “heresy” for bare metal programmers. I found very well presented, although sometimes a bit verbose (if you are an experienced programmer you may find yourself often skipping through some examples). If you are curious about unit test, and how to apply it to firmware then this book is a must read.
What you won’t find is how to unit test interrupt depending code (i.e. critical run and critical sections) and how to test multithreading code.
|Umberto Eco Il Cimitero di Praga (The Cemetery of Prague).
I enjoyed reading Eco in the past (“Baudolino” and “Il pendolo di Focault“, “In nome della rosa“) although I found his book having two speeds – the first for the first half of the book quite modernly paced, the second, slow and hyper-detailed for the rest of the book. I had the impression the writer was more devoted in showing the result of his culture and his researches rather than telling the story. This is true to a lesser extent for this one.
The story is intriguing and I felt really at discomfort to read in first person the actions and the motivation of the main character (a late 1800 forger involved with European country intelligences) a selfish racist that has no hesitation in faking friendship and then killing those who trusted him. Nonetheless the book given big bytes of food for thoughts both about recent history and how intelligence works.
|Alexander Stepanov, Paul McJones Elements of Programming.
The title is a clear declaration of intent – this is a text book, in the same shelf where you would look for elements of mathematical analysis, elements of algebra and so on. The book follows strictly the cliche, feeding theorems and lemmas to the reader. So it is not a light reading. By reading this book I finally discovered an application for those strangely named algebraic structures (Ring, Semi-Ring and so on). Basically when dealing with generic programming you need some mathematical tools to request the shape of the data types on which you may (or may not) instantiate the generic algorithm. The book is mostly about answering in a formal way to this need. Do you need to read this? I am quite doubtful, if you want to learn programming, this is not the book for you. If you are fluent with template metaprogramming, I guess you won’t find much for you in this book. If you are studying the theoretical connection between mathematics/algebra and meta programming, then maybe this is what you are looking for.