posted Sun Nov 06 2011
The idea of computer vision has always fascinated me. The ability to get from a plain image to an understanding of it's contents seems magical. Though I understand a bit of the underlying math, to build my own computer vision system would take years of study. Fortunately, this book and an open source library come to the rescue.
The first half of the book starts with an explanation of basic computer vision concepts then jumps right into build a simple time lapse photography app with a few lines of Python code. Next comes image manipulations such as cropping, color reduction, simple object detection, and histograms. This is enough to create a blue screen effect and parking detector.
The second half contains the real meat of the book: detecting features. SimpleCV can pick out different shapes, filter by colors, look for faces, and even scan barcodes. One of the examples looks at a table of change to calculate the monetary value using coin size. The final chapter covers some advanced techniques like optical flow and key point matching.
While I like the book overall I do have a few nits. First, I really wish it was printed in color. Several chapters have images which can't be easily distinguished when printed in black and white. Second, I wish it was longer. While the book does covert almost every feature of SimpleCV, I'd love to read some larger example apps that combine multiple techniques. All that said, the book was still a good read and informative. It will stay on my shelf for future imaging projects.
posted Tue Feb 05 2013
Most book publishers don't really have a 'brand'. You buy a book because of the title or the author. No one cares who Stephen King's publisher is. However, every now and then a publisher comes along who simply makes cool books. A publisher who's books I will buy regardless of the title or author. No Starch Press is one such publisher.
No Starch has consistently published fascinating books on a wide array of topics. Their slogan is the finest in geek entertainment and they mean it. Currently my shelf includes an illustrated Periodic Table of Elements, Python for Kids, and the Super Scratch Programming Adventure. I'll be writing these up soon, but in the mean time I want to talk about a trilogy of cool books No Starch just sent me. They cover a topic near an dear to many an engineer and hacker: Legos.
Lego Technic Builders Guide
The first title is The Unofficial LEGO Technic Builder's Guide by Pawel "sariel" Kmiec (link). I've read Lego books before, but this is no ordinary title. Devoted exclusively to LEGO's Technic line of models for older children/adults, it dives deeper than I knew Legos could go. While I played with the Technic line as a child, I had no idea the wider Lego enthusiast community had taken their designs so far.
If you've never played with Technic sets, you should really take a look. They are designed around real-world models with functioning gears, motors, and mechanical assemblies. Think of a sports car with rack and pinion steering and a proper differential drive train, or a pneumatically controlled steam shovel. These sets are also the basis of Lego's robotics sets, as they allow you to build almost arbitrarily complex systems entirely from little Lego bricks.
At first glance you might think Pawel's book is just a set of models to build, but it's actually the opposite. He specifically doesn't give you models to build. Instead he focuses on the how, not the what. He explains how a differential drive train actually works, then gives you the instructions to build just that component. Then he shows how to improve it with more robust parts and smoother gears. His goal is to teach you *how* the mechanical systems , giving you the knowledge to integrate the components into your own larger models.
Toy parts, real engineering
As I read through the first few chapters I realized I was not only learning about advanced Lego techniques, but also an introduction to real mechanical engineering. In Chapter 5 he covers the many types of gears, what they are used for, and the unique advantages of each. Chapter 6 covers chains and pulleys, where he explains many of the common pulley combinations used in real mechanical systems. The illustrations are impressively clear and concise. Chapter 7 covers levers and linkages. Even if you've never heard of a Chebyshev linkage or Pantograph, you'll know how they work by the end of the chapter.
My favorite section is probably Chapter 8: Custom Mechanical Solutions. Pawel shows how to improve on the standard LEGO gearing systems with new designs that have unique advantages in strength, locking, and features. The Schmidt coupling is especially intriguing. Later chapters cover advanced mechanics like suspension systems, transmissions, tracked vehicles and the modeling process. The book is impressively comprehensive.
The book covers both old and newer Technic sets, explaining how individual components like the pneumatic system have evolved over the years. (I'm especially fond of the pneumatic claw system I had when I was twelve).
I heartily recommend this book to any adult. Be aware that this really is for older children, probably 12 and up. I imagine an 8 year old would be bored to tears reading it. For younger Lego enthusiasts I suggest one of No Starch's other Lego books (which I will covers soon).
So. Verdict: buy or no buy? Buy! Buy Now!
Though normally 29.95$ you can get it by Christmas for only 19$ if you order with Amazon Prime.
posted Wed Dec 19 2012
I've always meant to go back and read some of the really old scifi that people have always talked about but I've never read. Now is finally that time. As a fan of mainly 50s through 70s (Asimov, Clarke, Heinlein, Niven), I've rarely read anything earlier than the late forties. (Jules Verne being a notable exception.) My goal is not so much to read the novels for pure enjoyment, but to determine if they really are worth of their place in history? Were they really that good? Did scifi get better? Has it gotten worse again? In that spirt, lets the the time machine to 1917.
A Princess of Mars
Edgar Rice Burroughs, 1917, 326 pp
I've read a few of the Tarzan novels by and never felt drawn into them. With the upcoming film adaption, John Carter, I thought it was time to finally get into the series.
A Princess of Mars is the story of Civil War vet John Carter searching for gold out west in the 1870s. He is mysteriously transported to Mars and quickly captured by a race of tall multi-armed green martians. Thanks to his fighting skills, resourcefulness, and a body accustomed to the heavier Earth gravity; he quickly learns the language of his jailers then escapes with the captive princess Dejah Thoris of the red martians (who conveniently look like really attractive humans). Throughout the book he goes on various adventures across the planet, gaining fame and glory among the martians all while learning the secrets of their planet.
The Martians call their planet Barsoom, so you will often hear the novels known as the Barsoom series. Burroughs wrote 10 more in the series over the next thirty years though I get the impression they get progressively derivative as time goes on.
Princess of Mars was his first novel but it's much better than I expected. The science is horrible by today's standards because it was written in a time when we believed Mars had canals, water, and possibly intelligent life, but for the time it was pretty visionary. He reasonably explains the different societies, lighter than air travel, light based power sources, and the thin but sustaining martian atmosphere. Pretty good for the time it was written.
Make no mistake: this is a swashbuckler. People of the teens and twenties liked their buckles fully swashed, and swashed they shall be. The Princess of Mars has exotic women in skimpy outfits, green bug-eyed villains, oodles of chase scenes, and sword fights by the score. It's quite fun to read and imagine it played in a theater between The Lone Range and Flash Gordon. Being public domain and free on the Kindle doesn't hurt either.
So, is it worth reading? I say yes. It's a fun and fast read as well as a piece of sci-fi history. You will find references to Barsoom in many later works throughout the 20th century. It also inspired a generation of authors and scientists from Clarke to Sagan.
posted Sun Nov 20 2011
No Starch Press is on a roll with its series of Lego themed books. While most of them are about model ideas or construction techniques, Beautiful Lego is different. This is a Lego art book. In classic coffee table style it is filled with gorgeous photos to thrill the reader. Beautiful Lego does not seek to discuss 'can Lego be art', but takes it as fact. These are works by artists, just artists using the medium of Lego instead of paint or clay, and the results speak for themselves. Stunning.
Beautiful Lego is written and photographed by Mike Doyle, a lego artist himself as well as an excellent graphic designer, but features the work of over 70 different artists. The book is organized by topic -- spaceships, people, architecture, robots -- with interviews of artists interspersed. Each artist is asked the single question: "Why Lego?"; with an immense variety of answers. There is a common theme, though: the desire to create using an incredibly malleable medium.
Some models are beautiful and some are terrifying, such as "The Doll" (pg 5) and "Disscected Frog" (pg 79). The architectural models really shine; good use of the few curvy pieces in Lego can make amazing results. There is even political art: The Power of Freedom (page 124).
Beautiful Lego surprised me by the diversity of styles within the medium of Lego. Some are hyper detailed, some expressive, some minimalist. Angus MacLane has a cute style known in the book as CubeDudes, which are head on caricatures of famous figures like President Lincoln, Kirk and Spock, and the Stay Puft Marshmellow Man. (page 36)
You will appreciate the book on two levels. First, the beauty or expression of the piece, then a second time as you pour over the photos trying to figure out "How did they do that with Lego?" Mike Doyle's victorian house series in particular will amaze you with the flexibility of Lego. (And make you wonder how big his Lego collection is:) While re-reading the book for this review, I'm struck by how much good photography makes a difference when experiencing a model.
I heartily recommend Beautiful Lego to the adult Lego fan in your life. It just might make you pull out the bin from the garage and build a few orignal models yourself. And yes, there is a Freddy Mercury model called Fried Chicken.
posted Wed Nov 27 2013
If you are a scifi reader but don't know Larry Niven then you aren't reading this blog because you don't exist. However, in the off chance that you slipped in from an alternate dimension where Larry Niven never took up writing, then allow me to explain. Larry Niven is known for hard-SF writing, mainly in the 70s and 80s, though he is still writing today. Unlike contemporary SF that moved on to cyberpunk, steampunk, and singularity visions, Niven still writes about humans exploring the cosmos. He is also quite a stickler for scientific accuracy, to the extent he has created an entire universe called "Known Space" with a history extending from the early 21st century to the 32nd.
Larry Niven is probably best known for the Ring World series, about adventures on a giant ring the diameter of earth's orbit circling an alien star. The book I just finished, World of Ptavvs, is set in the same universe but much earlier. It also happens to be his first full novel, expanded from several short stories. Given that he was still early in his craft, I was impressed that it was so interesting. Clearly he got better, but even this early work is quite entertaining.
World of Ptavvs is a short novel (almost novella) about humanity's first-ish contact with an alien species, under the most strange and amusing circumstances. Kaznol, a greedy alien with power of mind control, is accidentally stuck in a stasis field which freezes him in time. Two billion years ago he crashes on an empty planet that eventually becomes the earth of today. In the mid 21st century humans find the frozen alien at the bottom of the ocean and attempt mental contact using a man with slight telepathic abilities (he practices on dolphins who are by this time known to be intelligent). Due to lack of planning on humanity's part, they accidentally free the alien and in the process the alien imprints his memories on the telepath. So now we have *two* rampaging aliens from billions of years ago bent on conquering the earth.
I know, it's sounds super cheesy but it's actually a very entertaining story with some cool twists. Throw in a team from the ARM (CIA of the future), some angry asteroid miners, and a few stolen spaceships and you get a rockin' adventure. Best of all it's *short*. Less than 200 pages. In an age when many authors feel the need to produce thousand page tomes it's nice to read a book that is no longer than it needs to be.
posted Tue Dec 06 2011
As regular readers know I have recently jumped into Arduino and hardware hacking full-time. One of the things which fascinates me is the idea of monitoring our environment. I mean not only the global environment but also our own local spaces. Sensors and computation are incredibly cheap. Network access is almost ubiquitous. This means we can easily monitor our world and learn interesting things by analyzing simple data points over time.
Being an engineer I started by picking out some books to read. First up is an amazingly thin but info-packed tome from Maker Press: Environmental Monitoring with Arduino: Building Simple Devices to Collect Data About the World Around Us by Emily Gertz and Patrick Di Justo. As the name would suggest, it is exactly the book I was looking for.
Before I continue I must warn you, reading this book will make you spend a lot of money. You will find yourself spending hours checking out cool sensors and outputs on websites like Adafruit, SparkFun, and Emartee. Tracking your environment with simple sensors is simply too intriguing. I apologize in advance for the new habit you will form.
Though short (81 pages by my count), Environmental Monitoring with Arduino contains a lot of information. It starts with a chapter called "The World's Shortest Electronics Primer" introducing Arduino, basic electronics, and then runs through an LED blinking tutorial. From here you jump straight into your first sensing application: a noise monitor with an LED bar graph.
The book is organized in mostly alternating chapters. Each chapter either introduces a new piece of hardware or a project using that hardware. The chapters cover how to measure electromagnetic interference, water purity, humidity / temperature / dew point, and finally atomic radiation as used by individuals in the wake of the Fukushima disaster.
The components required to build most of the projects in the book are surprisingly cheap. For example, Emartee's mini sound sensor, a tiny board containing a microphone and the support circuitry, is only seven dollars.
The only really pricey component is the Geiger counter from Goldmine that costs $137. Of course it uses a special beta and gamma ray sensitive mueller tube from Russia so it's actually fairly cheap. Most components are under $10.
While I love the book there are a few things that could be improved. Each chapter contains a few paragraphs explaining what we are measuring and how it works (water conductivity was especially interesting), but I'd like to learn more about the science behind each effect. This probably isn't possible in a book of this size, so links to external websites would be greatly appreciated.
I'd also like an appendix with links to learn more about Arduino and environmental sensing, as well as a list of sites to buy cheap components that are easy to work with.
Finally, there is no information on the authors. Most books include a short bio or an introduction by the authors to explain who they are and why you should listen to them. This book contains no biographical information at all beyond the authors' names.
Go - No Go?
A definite go.
If you are new to environmental monitoring this book is a great place to start, even if you know nothing about electronics and Arduino. And for the price ($7.99 for the print copy and half that for ebook) it's a steal. You can get it on:
posted Wed Aug 22 2012
Disclaimer: I did not pay for many of the books I review here. One of the perks of being an O'Reilly author is easy access to free copies of almost everything O'Reilly publishes. However, all of these reviews are freely done of my own initiative. I choose the books I review and I receive no compensation other than the free copy. These are my own opinions and do not reflect the opinions of O'Reilly or my employer Nokia.
The Arduino Cookbook, by Michael Margolis
When you first begin hacking with Arduino, as I recently have, you will most likely spend the first few weeks scouring the Internet for information. The Arduino system is so cheap, powerful, and flexible that you will immediately think of a million things to do with it. This can be a problem. Not only do many of us lack the time to build every project we've dreamt up, but using just the web for information is problematic. The docs on Arduino.cc are great for introductory topics but I quickly found my self at its limits. As a software guy I need to know not only about Arduino itself, but sensors, components, 3rd party libraries, and power systems. In short, I need a complete electronics background to fully use my Arduino board. That's where the Arduino Cookbook comes in.
The second edition of Arduino Cookbook, by Michael Margolis, was recently published by O'Reilly. In my opinion this is the best one stop shopping source for Arduino information. It is not a pure introductory tome, though the first chapters do give you a quick review of Arduino to keep you up to date. The bulk of the book is organized around functional topics; things you would actually want to *do* with your Arduino.
The first few chapters cover the Arduino language, math, serial IO, and basic switches. Though it was not hard for me to pick up the Arduino language (essentially a simplified C++), these chapters covered a lot of finer details I had missed when reading the online docs. Each chapter is structured as a series of how-tos such as "Shifting Bits" and "Using a Switch Without External Resistors".
Later chapters cover specific topics like Getting Input from Sensors, Physical Output, Audio Output, and Wireless Communication. I really like that each how-to section not only shows you how to complete the task at hand but also gives you background into what is really going on. This is especially useful when you reach advanced topics like driving motors. The book gives a background of different kinds of motors, how they work, and how they are controlled before diving into specific tasks. This structure gives you a great electronics primer as you learn the ins and outs of Arduino.
If you buy only one book on Arduino, make it this one. It gives you everything you need to get the most out of your hacking endeavors.
posted Sat Sep 22 2012