EntBlog
Code, 3D, Games, Linux and much more...
The Art of Intrusion
May 10, 2008 @ 18:48 | In Books, Hacking | 8 Comments |
The Art of Intrusion
Author: Kevin D. Mitnick & William L. Simon
Pages: 349
Published: 2005
Kevin Mitnick is one of the most famous hackers in the world. In the 80’s he was able to break the most secured systems and computers getting lot of private information. In 1995, with lot of controversy, he was arrested.
After five years in prison and as a logical maturation process, he changed sides and became a computer security consultant. A “white” hacker.
This book is about “real” hacking stories that have been contrasted by Mitnick himself. Although all the stories are presented as real, all the relevant details are altered so that nobody can try the same hack again.
This book got to my hands, months ago, while I was in a library. A first look at the book revealed interesting technical details of each episode and lots of external web links with more information. So I decided to buy it. This book can be perfectly read by a person without computer knowledge although the book is targeted to techy readers.
The book is structured in ten episodes about hacking, cracking, phreaking and social engineering. Some stories are greatly exaggerated to be believable (for example, I think that the story about social engineering is absolutely 100% fiction) but others (like the one about cracking) are incredible believable with lots of technical information about the details. It is hard to believe that those details are being invented. Working in a big Video-Game Studio (at least when I wrote this article), one detail that made me smile was in the episode about cracking. In that chapter the hacker being interviewed reveals that their team was successfully able to break most of the big Video-Game companies. Probably there are lots of fantasy elements in all of this, but my intuition tells me that there is something real under the hood…
The book is very easy to read and if you have spare time I recommend it. Probably I will read the book Mitnick wrote before this: The Art of Deception. It is getting quite good reviews.
Rating: 7 / 10
Peopleware: Productive Projects and Teams
January 2, 2008 @ 2:42 | In Books, Programming | 2 Comments |
Peopleware: Productive Projects and Teams
Author: Tom DeMarco & Timothy Lister
Pages: 245
Published: 1999
Peopleware is the second edition of a classic book (I have not read it, but jumped directly to this one). It is a book about software teams written by two software consultants experts although probably all the stories may be applied to other engineering areas. Do not expect technical comments in this book as this is about people and teams. It is structured in six parts where the last has been added into the second edition. Each part includes a series of short essays. Why most problems are not so much technological as sociological, why you must not save money on space for your team, why a good programmer (the right people) can give you a 10x factor productivity against a normal programmer, why you should make teams jell at your company and why you should avoid teamicide are an example of the topics covered in this book.
Although the first edition was written almost two decades ago, all commentaries are still valid. You will be able to identify with many of the situations described. I specially like the chapter about the workplace quality and the importance of not breaking concentration moments (the flow state). The additional chapter, Son of Peopleware, is written with another perspective. It is not surprising given that it had been written ten years later. Instead of concentrating in the design of projects and the environment it is focused in the design of an entire organization that creates teams with aligned goals. The last chapter, The Making of Community, is my favorite. This quote particularly strikes a chord: “An organization that succeeds in building a satisfying community tends to keep its people.”. I have yet to find find a company where this rule is being applied, but I shall continue my search.
This book plus The Mythical Man-Month are my two preferred classic books. What are you waiting for? Read them.
Rating: 9 / 10
Joel on Software
October 18, 2007 @ 3:30 | In Books, Programming | 4 Comments |
Joel on Software
Author: Joel Spolsky
Pages: 362
Published: 2004
What new can be said about Joel Spolsky? His blog, Joel on Software, is in the top 100 of the most visited blogs and it is probably the most visited blog about software. This book, with the same name as the blog, is a compilation of the best articles published in the past in that website. The book is organized in three chapters: the first part is about good practices to improve your abilities to make software, the second part, about managing programmers and a third part dedicated to the software development business.
A little bit of reading through this book and you instantly discover why Joel writings are so popular. Joel is incredibly incisive in his opinions, bringing lot of subjective opinion based in his past experience (mostly, experiences when he worked in the Excel Team at Microsoft). That makes Joel’s articles very useful and with a vision hard to find in other sites. Do not expect to find here nothing on theoretical subjects. Topics like Architecture Astronauts or the one about the necessity of Technical Managers in the world of software engineering are good examples of what you will find in the book.
Joel is probably not right in all his statements. For example, when he talks about the two software cultures: Windows and Linux. He writes, Windows Software is for non-programmers, while Linux Software is for programmers. To me, this is absolutely wrong. Linux is a better stratified culture with two clearly separated layers: functionality and user interface. Most of the time, in Windows both layers are in a inseparable mixed state. In Linux, it is very usual to have a clear separation between server and client with GUI only in the client part. He writes, too, about how the Mozilla project committed its fatal error: starting from scratch. Time is starting to show that this was a good decision, Firefox is starting to threaten to that monolithic monster that IE has become.
In conclusion, and incredibly fresh read that I earnestly recommend. I am wishing to read his other book about user interface: User Interface Design for Programmers.
Rating: 9 / 10
CLR via C#, Second Edition
August 12, 2007 @ 15:28 | In Books, Programming | 2 Comments |
CLR via C#
Author: Jeffrey Richter
Pages: 693
Published: 2006
I learned all the internal details about NT reading Advanced Windows (whose last edition was titled Programming Applications for Microsoft Windows) by Jeffrey Richter, co-founder of Wintellect. I like how he writes his books. He is able to cover a broad range of topics without being too dense when presenting them and with the right balance between technical text and examples. I have been programming C# (mostly in my spare time) since Microsoft released it. But until this time, I didn’t have time enough to study the language and all the infrastructure thoroughly. And when I discovered this book, I knew that it was time to master .NET and C#.
CLR via C# is a book dedicated to CLR. It is not a book about C#. C# is the language used for all the samples in the book. The author makes emphasis in how the implementation of C# is layered above .NET. Whenever there is an important detail in the interaction between C# and .NET it is described by the author. And although the book is published by Microsoft, Richter holds a critical role with all the aspects that are presented about .NET noting where things can be improved, where Microsoft is working for the next version and why certain decisions were chosen.
The book is divided into five parts:
- CLR Basics: About internal details of the CLR’s Execution Model and what assemblies are and how they are deployed.
- Working with Types: Information about type fundamentals, namespaces, castings, boxing and type operators.
- Designing Types: Dedicated to methods, properties and events.
- Essential Types: About strings, enumerated, arrays, interfaces, delegates and generics.
- CLR Facilities: This is, in my opinion, the more interesting part of the book: Exceptions, Garbage Collection, CLR Hosting, Reflection, Asynchronous Operations and Threads Synchronization. I really liked the chapter about Exceptions. It is especially well written.
As all the books written by Jeffery Richter, I recommend this book. If you are going to fight with the .NET Framework this book is a must have in your bookshelf.
Rating: 8 / 10
Test-Driven Development by Example
March 13, 2007 @ 3:17 | In Books, Programming | No Comments |
Test-Driven Development by Example
Author: Kent Beck
Pages: 220
Published: 2003
Test-Driven Development is part of the Extreme Programming movement, created by Kent Beck (author of the book), Ward Cunningham and Ron Jeffries. It is an iterative technique to develop software where you only code the things that are strictly necessary.
If you want a new feature in your code you write a test using that feature and later you write the new code that makes that test work properly. You write new code only if an automated test has failed. And iteratively you continue until you finish all the requisites. Between test and test you always have a code that compiles and works.
This is described by Kent Beck as the Red/Green/Refactor rule:
- Red - Write a little test that doesn’t work, and perhaps doesn’t ever compile at first
- Green - Make the test work quickly, committing whatever seems necessary in the process
- Refactor - Eliminate all of the duplication created in merely getting the test to work
The book itself is written using this philosophy. With small steps the first part of the book teachs you the technique with a very simple example. The second part describes a more complicated example and introduces a framework for writing tests. Third part is dedicated to patterns for Test-Driven Development.
Part two and three of the book were boring to me but I really enjoyed the first part of the book. It is an example very well written and very easy to read that demonstrates you the heart of the technique. I like the incremental approach of writing source code that always compiles (something that I have been using for years) against the opposite technique: writing tons of code at first and later spending hours (even days) making it to compile.
Although you probably won’t be able to put into real practice the entire philosophy (I’d like to see a real project 100% Test-Driven Developed) you can learn very valuable things from this book: tests are useful and simplicity is your friend.
Rating: 8 / 10
Exceptional C++ Style
November 30, 2006 @ 3:35 | In Books, Programming | 3 Comments |
Exceptional C++ Style
Author: Herb Sutter
Pages: 325
Published: 2005
I have been programming C++ for more than 15 years following the evolution of one of the more mature languages still in use today. There have been lot of changes since the beginning, and more of them are to come. Yes, may be it is time for change to other more modern language but I still enjoy learning new things about C++. And if those things are taught by Herb Sutter the reading becomes almost obligatory.
Exceptional C++ Style continues where Exceptional C++ and More Exceptional C++ left off. With the same philosophy than the previous books (topics classified by category and with a associated difficulty rating) the author cover topics previously described in other publications: C/C++ User Journal, Dr. Dobb’s Journal, Guru of the Week, etc.
The book is divided into seven parts: Generic Programming and the C++ Standard Library, Exception Safety Issues and Techniques, Class Design - Inheritance and Polymorphism, Memory and Resource Management, Optimization and Efficiency, Traps - Pitfalls and Puzzlers (really funny) and Style Case Studies (where the author himself dissects real-world published code finishing with a depth analysis of std::string and why its monolith design was really a bad decision)
I really enjoyed the book while learning more things about the language: why you should overload template functions instead of specialize, the current status of the export keyword, what the distinct levels of exception safety are, what the Nonvirtual Interface pattern is, why you should make destructors for a base class public virtual or protected nonvirtual, a precise description of the implications of the inline keyword, etc, etc…
In conclusion, if C++ is your main programming language and you really like it, you should read this book.
Rating: 8 / 10
Best C++ Books
August 11, 2006 @ 22:01 | In Books, Programming | 3 Comments |
Scott Meyers (author of the Effective C++ saga) has written on his blog a list of the most important C++ books written to date. I had this same idea and may be this is a good time to publish my list so you can compare. This is my personal ranking of the five best C++ books:
- The C++ Programming Language
Although I have not read the last Special 3rd Edition (it is in my list of books to be bought), I always have the 3rd edition handy as my C++ reference book. It is written in a academic style ready to be consulted whenever you have questions about all the language details.
- Effective C++
I wrote a mini review of this book months ago.
If you are a serious C++ programmer this book is a must read for you. If you haven’t read it stop wasting your time reading this blog and get a copy of the book. Effective C++ is the perfect book to accompany your main C++ book. Although intended to be your secondary book on C++, Effective C++ will learn you more that simple C++ tricks - C++ Coding Standards. 101 Rules, Guidelines, and Best Practices
I also wrote a review for this.
The book is more high-level than other related books (Effective C++, Modern C++ Design, Exceptional C++) and all the topics about C++ can be found in those books. You won’t find new topics or advices. But this book is about standars for your development team. In fact, it is designed to be used as a basic for your team’s coding standards. You can get good ideas from this book to be discussed with your team (and in fact, you do not have to agree all of them): coding conventions, hungarian notation, automated build system, version control, code reviews, etc. - Exceptional C++
The book version of the Guru of the Week webpage created and written by Herb Sutter. This book includes expanded versions of the first 30 issues on that popular page.
- Modern C++ Design
Template Metaprogramming in C++ was born with this book. This book will open your mind to choose the red pill. Even if you think templates will do more harm than good in your team at least you should read this book to know the enemy. The book describes an actual C++ library called Loki. I have work in lots of projects where subparts of that library was being used. This book is the hardest of the five, be prepared!
Debugging Applications
July 15, 2006 @ 18:36 | In Books, Programming | No Comments |

Debugging Applications for Microsoft .NET and Microsfot Windows
Author: John Robbins
Pages: 801
Published: 2003
If you read MSDN, you probably read the column Bugslayer written by John Robbins. I’m a fan of Bugslayer so when I discovered this book I couldn’t resist to buy and read it.
This book is the Holy Bible for debugging. Seriously, I didn’t think someone could write more than 800 useful pages about debugging before reading Debugging Applications. 80% of the book is dedicated to Native Programming and the rest is for Managed Programming. Both using Microsoft Visual Studio 2003.
The book is divided in four parts. The first part is about general debugging topics not related with Windows: What Are Bugs?, Debugging Process, Bug Tracking Systems, Regression Tests, Defensive Programming (the chapter dedicated to assertions should be a must read for every member of a programming team).
The second part is about Win32 and .NET debugging support with two chapters entirely dedicated to native code: x86 assembly, symbols, dump files, windbg…
Third part is about Tools for debugging. It describes how to extend the Visual Studio IDE, introducion to Add-Ins and profiling API for .NET.
The fourth part is entirely dedicated to Native Code Techniques: Crash Handlers, Windows Services, Multithread Deadlocks, Automated Testing, C Run-Time Library and Working Set are the more relevants topics.
I really recommend this book. John Robbins is an expert and it is demonstrated in a very well written book. I really enjoyed reading this book.
By the way, the next revision of this book will be break into two books: one for the managed and one for native. The .NET version is already available for presale in Amazon
Rating: 9 / 10
C++ Coding Standards
May 30, 2006 @ 1:22 | In Books, Programming | 1 Comment |

C++ Coding Standards. 101 Rules, Guidelines, and Best Practices
Author: Herb Sutter, Andrei Alexandrescu
Pages: 220
Published: 2005
Although a little bit tired of reading gem style books (Effective C++, Game Programming Gems, AI Game Programming Wisdom, GPU Gems, ShaderX, …) the authority of the authors made me find time to read C++ Coding Standards. Definitely, it was well invested time.
The book is divided in twelve sections (Organizational and Policy Issues; Design Style; Coding Style; Function and Operators; Class Design and Inheritance; Construction, Destruction, and Copying; Namespaces and Modules; Templates and Genericity, Error handling and Exceptions; STL: Containers; STL: Algorithms; Type Safety) each one having ten topics (more or less).
The book is more high-level than other related books (Effective C++, Modern C++ Design, Exceptional C++) and all the topics about C++ can be found in those books. You won’t find new topics or advices. But this book is about standars for your development team. In fact, it is designed to be used as a basic for your team’s coding standards. You can get good ideas from this book to be discussed with your team (and in fact, you do not have to agree all of them): coding conventions, hungarian notation, automated build system, version control, code reviews, etc.
Definitely, this book will help to improve the code quality of a team. My recommendation: read it.
Rating: 8 / 10
Conceptual Blockbusting: A Guide to Better Ideas
April 11, 2006 @ 3:03 | In Books | No Comments |

Conceptual BlockBusting: A Guide to Better Ideas, Fourth Edition
Author: James L. Adams
Pages: 220
Published: 2001
Being addict to computer books, this one is a little bit of fresh air to my book collection. I read a good recommendation about this book in Programming Pearls, so I decided to buy and read it.
Conceptual Blockbusting is a book about how the human mind works. Guided by the idea that the same way you can learn to play chess you can learn to think, the book is divided in several chapters discussing several blocks we find in our thinking process. That way, we find Perceptual Blocks (stereotypings, bad habits using sensory inputs), Emotional Blocks (emotions and its role in problem-solving), Cultural and Enviromental Blocks (eg: taboos and education are important blockers) and Intellectual and Expressive Blocks (this chapter trains us to use the correct language -verbal, mathematical, visual- to solve problems). These blocks are described in the first part of the book. Rest of the book is about social groups and organizations.This second part of the books was boring to read in contrast with the first (although you may find it useful if you are managing groups of people and want to get the maximun perfomance from them).
The book is full of practical exercises and problems. You should try them (and yes, some of them are really embarrassing) if you really want to get some benefit from this book.
In conclusion: If you are an engineer making money from your mind (as you should) I encourage you to read this book. Reserve enough time for reading this book. Although it is only 200 pages, you should work the exercises. Second part of the book was a little boring to me. I would publish a book with only the first part (about mind blocks) and I would rate it with 9 / 10
Rating: 7 / 10
Fri, 25 Jul 2008 11:44:27 +0200 / 22 queries. 1.919 seconds / 3 Users Online
|
|
|
|
|
Theme modified from Pool theme. Valid XHTML and CSS










Previous Page
About
Categories