Bad to the Bone (review)

I just received my copy of “Bad to the Bone” by Steven Barret and Jason Kridner.

Interestingly, there are some reviews on Amazon there which were not up when I ordered it - also Amazon may be having problems with the book? Not sure why as I got my copy in only a few days.

I haven’t delved fully into it yet, but so far I am quite happy with it. My background is LAMP[Linux, Apache, MySQL, and PHP] server setup/configuration and Web Engineering/Design. IE I can install many different flavors of Linux[my preferred currently being Ubuntu but ArchLinux is looking promising]. I am extremely well versed in PHP programming and moderately versed in JavaScript from a web design standpoint. I can hack/modify code in just about any language and have done a lot of that in C, C++, Python, Ruby - it is somewhat mandatory to learn those as a lot of Linux tools are written in them and many times there will be slight tweaks needed, or changes that need to be made to make programs compile[or even small hacks to Linux kernel code to compile the latest/greatest kernel].

I learned about electronics decades ago in college, but never really put those skills to use. In the past couple of years I started playing with small circuits, first with Texas Instruments MSP430 launchpad, and now with the BeagleBone Black. I can read the schematics, but I couldn’t create my own[and as was pointed out recently, my reading of schematics is not 100% up]. Since I am a novice with electronics, there are many things that just are not “drilled” into my mindset. Like I know what a de-coupling capacitor does and sorta why it is important…but when I’m bread-boarding stuff it really doesn’t spring to mind. Same thing with putting a resistor inline with an LED in order to ensure a reasonable current level - I know it has to be done, I know why, but it is not “second nature” so I’ve certainly blown my share of LED’s playing around.

With this background in mind, I have found the book to be an excellent source of material. When they discuss how to design a program in C or Bonescript, they go into enough detail that someone familiar with programming can easily understand it - but they don’t go into the tedious level of detail of teaching you to program from scratch. They do a high level overview of electronics that is not always enough to really explain WHY something works. For example, they explain how to use a capacitor to debounce a switch. They explain why you must debounce the switch. They explain how to do it. They don’t go into the specifics of what the capacitor is doing that makes it work. In my viewpoint this is the perfect amount of data, enough for me to hack around and get something working, without pages of how electronics work that I can find much more easily by reading a book on electronic circuit design if I really want to know the details.

They also explain in sufficient detail many things that are just taken for granted. For example, I have found other books tend to discuss LCD displays in terms of using I2C interface boards because that is most efficient. In Bad to the Bone, they explain how to directly wire up an LCD display module AND then go on to explain how to use a serial to parallel conversion board to save pins.

They make sure to cover development for Linux using the 3.2 kernel[the version originally shipped with the Beagle Bone Black] AND the 3.8 kernel[where there are substantial underlying differences in programming].
All in all, I would say it is a great book for the experienced programmer who is not intensely familiar with electronics design.


Thanks. great review.