Category Archives: Reviews

Review: Boost.Asio C++ Network Programming


Boost.Asio is a phenomenal framework that will allow you to write portable, scalable, and efficient asynchronous I/O code.

Unfortunately, the framework leverages some interesting design patterns and is not well documented beyond simple examples and tutorials.  So when I saw a book written on Boost.Asio, I leapt at the chance to read it.

My initial reactions were quiet negative.  The book is an expanded, fluffed up version of the official Asio examples and documents. There are a lot of gaps in the book as the authors shift from synchronous to asynchronous, and vice versa.

If you are an experienced Asio user, you won’t benefit from this book.

In any event, I would recommend watching Christopher Kohlhoff’s BoostCon presentation regardless:

[Review] Evil Mad Scientist Discrete 555 Timer electronics kit


Three Fives - Discrete 555 Timer Kit

The “Three Fives” Discrete 555 Timer kit from Evil Mad Scientists is a transistor-scale replica of the ubiquitous NE555 timer IC, packaged as an easy to assemble kit.

And by easy to assemble, I mean easy.  The component values are clearly printed on the silkscreen on the board.  I never once had to look at the schematic or parts list.  In fact, I didn’t even look at the assembly instructions until it came time to test with the example circuit.


Building the Kit

DSC_0014The Three Fives kit is one of the easiest-to-build soldering kits I’ve encountered.  It includes the circuit board, PVC foam legs, resistors, transistors, 8 color coded thumbscrew terminal posts, and assembly instructions.

To build the kit, you will need the basic electronic soldering skills and tools: soldering iron, solder, wire clippers, and a Phillips head screwdriver.  That’s it.

Using the Kit

DSC_0018Since the kit is the equivalent circuit for an NE555 timer, you can lookup one of the hundreds of 555 timer circuits freely available on the internet and implement them with spare parts.  The only caution is that if you are using a power supply above 6.5V, you cannot connect the RESET pin directly to the 6.5V source directly; you’ll have to use a 100k resistor in between the connections.

Review: Craftsman Axess 32 Piece Driver Set

I picked up the Craftsman Max Axess driver set a few weeks ago and finally had a chance to use it; I’ve slowly grown to like it.

Honestly, it was an impulse buy which I rationalized as something I could use around the house.  I have a growing collection of screwdriver and security bits, and I’m always fumbling for a driver.

The set stands alone or can be purchased to augment one of the other Max Access mechanics toolsets.  This particular set has something the other sets don’t provide – a screwdriver bit adapter.

Generally speaking, the Max Axess system was designed to eliminate the need for deep sockets, and can be used where no standard 6pt or 12pt sockets can fit.

The set includes a hollow-shaft driver handle which can be used with the 1/4” go-thru sockets, with or without the included 3-inch extension.

How Comcast Lost a Customer, Before it Even Had One

imageFive years ago, I “cut the cord” and decided never to do business with Comcast ever again.  While I don’t recall the exact circumstances that led me to cancel Comcast, I do remember a week long stretch without any internet or TV service.  I actually remember laughing when the customer service representative tried to talk me into ordering phone service, right after telling me that the earliest appointment time to have a technician fix the cable was in a week or two.

I purchased a DTV antenna, and to my surprise, it turns out that the over-the-air digital TV signal in my area is pretty darn good.  I also bought a Netflix subscription, and later an Apple TV.

Everything was good, for five years.  But time has a way of washing away bad memories.

Sometimes, Cheap Isn’t Worth It.

Roughly four weeks ago, I saw a promotion featuring “Blast” internet service and digital cable.  For less than I’m paying for naked DSL, I could have 50mbps and cable TV.  A chat window popped up and a somewhat pushy and annoying customer service representative “helped” me order and schedule the installation appointment. 

And by “helped,” I mean slowly answering my questions and asking me if I was done yet.  Comcast obviously has their own definition of helpful.

Within a week, I started getting hang up calls on my cell phone.  I called the phone number back only to be told that they were calling (and hanging up) to offer me a self-install kit.  They would ship out the modem and cable box, waive the installation fee, cancel the installation appointment, and I’d be up and running in minutes.  It was a win-win situation, so I agreed.

Imagine my surprise when the day before the installer was originally scheduled to arrive, there is no package and I get a confirmation email reminding me that a cable technician would be arriving at my home.

Confused, I called Comcast and learned that the original installation order was never cancelled.  Moreover, I also learned that the self-installation kit was never shipped.  The customer service representative couldn’t cancel the self-install kit, but could cancel the installer appointment.  He suggested that we cancel the installation appointment and the package should arrive “in a few days.”

Several days later, I came home to find a big box on my doorstep. I immediately opened the box, and started pawing through the contents.  What I saw was disappointing. 

While everything was wrapped in plastic, and they had gone to great lengths to make it appear as if it was new, it wasn’t.  The cable box was obviously very old and very used.  No HDMI outputs.  I smelled the faint smell of stale cigarettes.  The unit, a Motorola DCT2244 was discontinued long ago, and if I read the date code correctly, it was manufactured in 2000.  That was fourteen years ago.

As an aside, these cable boxes lease for $8 a month.  14 years * $8/month = $1,344.00.  It’s no wonder why they want to keep sending them to customers.

I plugged in the cable box and started to activate the service online, but couldn’t.  Notice the screen shot, and the lack of a phone number.  I tried again in a different browser and a phone number magically appeared.


I called the activation number and robotic voice patiently prompted me to enter my information.  The cable box clicked and shut down.  I wondered if it died.

I turned the cable box back on and we had cable.   That is when I noticed that the box was defective.  The picture was blurry, and when I changed channels, the picture rolled over and would finally sync after a second.  When I turned the cable box off, audio still played on the TV.  I had been given a defective cable box that someone had replaced.

As I started sifting through the channels, I noticed that we basically had the same local channels that we had with the antenna, and Bravo.  Just about every other channel said “Not Authorized.”

I started to regret my decision.

“You shouldn’t even have service.”

But wait, my adventure was just beginning. 

On Wednesday, I received an automated call from “Equipment Recovery Services” saying that I should return my cable equipment.

That was the weirdest telemarketing call I have ever gotten.

My phone rang again, and this time it was Sean from Comcast asking about my order, seeing that my order was cancelled he decided to call me.  After I expressed my frustration with Comcast, he talked me into upgrading the cable box and upsold me into another service tier.  He said he would call me back. 

When I arrived home, there was no cable.

I called Comcast and was connected to technical support.  After hard hitting questions like “what does your cable box look like?” and “is the cable plugged in?”  The CSR was able to reset the TAP and reactivate service.  He stated that an installer was supposed to arrive between 6pm – 9pm that night.  (no one showed up).

The next day, I received an email from Comcast stating that a technician was going to arrive that day.  Given that my wife and I would be at work, I called to cancel the appointment.

That’s when the customer service representative told me that there were two installation orders outstanding and she couldn’t close them out.  I was told I shouldn’t even have service. 

My phone rang a few hours later; it was Equipment Recovery Services robotically telling me to return my equipment.  I called back and they “made a note” on my account that I was using it.

How on earth does this company stay in business?

When I arrived home, the cable was dead.  Again.  I unhooked the cable box and plugged the antenna back in.  My wife and I watched Big Bang Theory via the Apple TV.

I can’t take anymore.  I give up.  The great cable experiment of 2014 was officially over.

When I awoke Friday morning, Sean from Comcast called again.  I told him I wasn’t interested.  I would pack up the equipment and take it to an Xfinity service center and give it back.  And that is just what I did.

Book Review: Getting StartED with Dojo

imageOne of the clients that I’m working for is actively porting a large client/server application into JavaScript/Dojo.  The current application was several hundred thousand of lines of code in Java, XHTML, and JavaScript.

When finished, this will probably be the largest and most complex Dojo applications ever created.

The total sum of training received by the permanent team members consisted of a single class in JavaScript, and several shared copies of Peter Higgins’s book, Getting StartED with Dojo.

The consultants, of course, were not permitted any training, but when I saw this book being passed around, I purchased it for myself just to see what it contained.

Since I’ve read several other books on Dojo and this one was my third, I thought I would give my opinions on the book.  Overall, the text is an easy read, and the examples are extremely basic.  The author obviously took pains to explain the material.

However, be warned that some of the code examples are broken and won’t work.   As far as I’m aware, these haven’t been corrected, and there is only one edition of the book.  The book references Dojo 1.3; The current version is 1.7, but that really doesn’t matter considering what isn’t covered in the book – a lot of stuff.

The book is segmented into nine chapters.

The first two try to cover basic JavaScript.  If you guessed that teaching someone a dynamic language like JavaScript within the scope of two chapters would be a recipe for two poor chapters on JavaScript, congratulations! You guessed right and have now finished 1/4th the of the book.

Furthermore, the book is punctuated by blocks of text with headers like, “NotED,” “ExplainED,” and “LinkED.”  While other authors would write notes like these as a inset sidebar, this author injects them randomly throughout the text which is disturbing if you are reading on a Kindle.  While reading about a topic, injected within the middle is a block pointing towards a website, a note, or a reference to another chapter.  On the kindle, these can span a page or more.

At this point, I have to wonder if Peter Higgins hatED his English teacher, or just had a crush on someone with the initials E.D., with the kind of love that burns so hotly it must be stamped on books.  What does ED mean?  Erectile Dysfunction?  Only Higgins knows for sure.

The next chapters cover in detail: dojo.byId, dojo.query, dojo.forEach, dojo.filter, dojo.create, dojo.attr,, dojo.connect, dojo events and listeners, dojo.fadeOut, dojo.FadeIn, animations, slides, and a few more tidbits.  To Higgins’s credit, he explains these concepts far better than anyone else.

Ajax is sparsely covered, but no server software or scripts are covered.  So in essence, it is only discussed.

The rest of the book discusses various topics, with few actual examples.  The last chapter entitled, “Where do you go from here?” has a few pages about ShrinkSafe, but doesn’t cover actually using it or setting up a custom build.

What it does not cover: the build system, building a custom version of Dojo, charting, the data grid control, any details about any of the widgets (calendars, pickers, etc), or the contents of DojoX.

Is this book the best book to learn Dojo?  Absolutely not, but it is an super easy introduction to get you started.  While it isn’t enough to implement a full blown Dojo app, it will give you just enough to start adding some widgets to your website.

I have to note, this would be a excellent book to throw at someone to get them stop asking you basic questions.  If you are a lead on a Dojo project and are assigned resources without any JavaScript/Dojo knowledge, I would hand them this book and tell them to tell me when they are done so I wouldn’t have to teach them Dojo from the ground up.  That in of itself makes it useful.

If you are motivated and can setup a simple LAMP stack, you can finish the book in two days, including typing in and debugging the examples.

Review: Fundamentals of Logic Design, 7th Edition


What is the best book to buy to learn digital logic design?  Well, it’s not this one.  That much I tell you for sure.

If you are required to purchase this, don’t get the kindle version.  You will find yourself flipping back and forth between the practice problems and the text in order to try to figure out what you missed. 

And trust me, you will figure you missed quite a bit, because there is a dramatic mismatch between the text and the practice problems.

I found myself mumbling things like, “Convert 111010110001.0112 to octal and then directly to hex?  What page was that on?”  Oh wait.  It wasn’t.

The book is filled with many such puzzles, where you try to intuitively fill the gap between what is presented in the text and the practice problems. 

This book doesn’t teach the material, it punishes you and forces you to look for better information on the subject. 

Bose QuietComfort 15 (QC-15) Long Term Review

imageSeveral years ago, I posted a long term review of the Bose QuietComfort 15 (QC-15) over-the-ear headphones, complete with the picture that you should see on the left. 

Based on the comments I received, I decided to update the blog post.

If you are looking at this post right now, your are probably in one of three categories: 1) you have already purchased the headphones and are looking for reviews to validate your decision and make you feel good, 2) you’ve already purchased it and your headphones are screaming with howls of feedback, or 3) you are shopping for headphones.  If you are in the first category, prepare the nerd rage.

First of all, let me say that the QC15s currently being sold have been supposedly reengineered.  The original QC15s had problems with stress fractures on plastic headband; I purchased the second generation, roughly five years ago.

I’m easily distracted by noise.  A slammed door, shrill giggle, or a foreign language conversation can destroy my productivity by pulling me out of the zone.

So after I flew back from Japan in business class, and was given a complementary set of QC15s for eight hours, I decided to purchase a set.  After eight solid hours of flying, there was no pinching or pressure points, and I found that I wasn’t as mentally tired as when I normally fly overseas.

Since I would be wearing them for six to eight hours continuously in a noisy environment, they seemed like a perfect fit. 

Keep in mind that most QC15 buyers wear them intermittently when traveling or at home, and hardly ever for eight hour stretches like I did, every workday.

The cord is replaceable, so you don’t have to worry about a chair rolling over the cord and having to figure out how to repair the headset – you simply unplug the damaged cord and plug in a new one.

The sound quality was fantastic, provided you have a charged battery.  When the battery was dead, the headphones were non-functional.  I was using a battery every two weeks, so I had to keep a stash of batteries at my work desk.  I switched to rechargeable and found that I was changing and charging the battery every week.  I went back to lithium batteries.

However, within the first year, the black leather ear cushions started to flake off.  I would end up with black specks of leather on my ears and face.  At first, it wasn’t entirely obviously to me it was from the ear cushions.  I would go to the bathroom, look up in the mirror and I would see black specks on my face.  This appears to be a common issue.

Next, the adhesive holding the fake leather to the inside of the ear cups gradually let go, exposing the foam insulation.

Lastly, the headphones developed a loud piercing high pitched feedback squeal,  The squeal would start around the four hour mark and then if I turned my head I would get a random high decibel squeal, like someone let loose with an air horn.

As time went on, the usage time to get the feedback decreased, until is would only take 30 minutes to an hour to get a shriek.  I ultimately cracked the headphones open to cut the microphone in a futile attempt to get rid of the feedback.  It didn’t work.

Ultimately, the headphones ended up in the trash can. 

The squeal has also been reported heavily with the Bose Aviation headset (MSRP $1095),  Before my QC15s started developing a feedback squeal, I was interested in getting a set the A20s.  Not anymore.

And to answer most of the comments on the previous post:

Yes, Bose would have accepted the damaged set as a trade in, and I could have walked out with a brand new pair for $129. 

However, I would end up paying another $129 for a set of headphones that loudly squeals like a stuck pig, eats batteries, and leaves leathery pepper flakes all over my face and clothes. 

No thanks.