Nook Feedback - Reading Textbooks

by Aaron 22. December 2011 07:24

I may have mentioned once or twice, I really like my Nook. I bought a Samsung Galaxy Tab 10.1 not long ago. I installed the Nook app on there and use it as another reader on occasion. It's a fantastic compliment to the Nook. I'll get into that later.

Because I like the Nook so much for reading, I decided to take it a step further. I bought a technical book (textbook) to read on it. The book was "The Art of Unit Testing" by Roy Osherove. I reviewed it in my last post. My opinion of reading textbooks on the Nook wasn't as positive as my review of Mr. Osherove's book. Which, if you read my review, you're probably making a face right now. The kind of face like you just watched a video of some guy getting kicked in the nuts. That face!

Here are what I feel the pros and cons are for reading tech books on the Nook.

Pros

First of all, think of the biggest, thickest, heaviest tech book (or any kind of book for that matter) that you've read or own. If you have it handy, pick it up. try reading a page from it. If you don't have it handy, visualize it in your mind. Feel or picture the strain on your wrists. Maybe the book is so unwieldy that you have to set it down and read it on a table or desk.

Now picture reading that same book, except it's height and width are similar to a paperback. It's about 1/4" thick, and it's held easily in one hand. That's the major pro! On the Nook, a book that's wide, thick, 500 pounds, or some other undesirable attribute, is now easy to hold and read! Aching wrists and losing your place are things of the past!

Another pro, if the book is part of your Barnes & Noble library (read: you bought it from Barnes & Noble), you can read the same book on multiple devices: phone, tablet, laptop, Nook, whatever device there's an app for it. If you bought your eBook from, say, Manning for example, you don't have that page sync feature. I want to find something for that, but its not a priority yet.

Searching for keywords is another pro. It's not something that you can do easily on device though. I just tested it out on my tablet using the Android Nook app, and I got a nice listing of what chapter and page the keyword was on, and a snippet of the line that contains it. Very nice since if I'm searching for a keyword, I'm probably not going to do it from my Nook itself. I'm more likely to look for specific things while on my tablet or PC.

If you've got an eReader, or have read about them, then you're probably familiar with the other pros of using them. I'm not going to elaborate anymore on them here.

Cons

There are a couple of things that I don't really care for with reading textbooks on the Nook. After looking into it, I think they're probably just obstacles for a device like the Nook and probably the Kindle.

The first thing was the font. The font for the majority of the text is fine, but the code samples in the book I read were in a fixed width font that was really thin. It was like a really thin Courier New. It was difficult to read. I tried changing fonts without much, if any, improvement. It's not as bad in the Nook app on my tablet.

The other issue was with the code samples themselves. Most of them were fine, but there were a couple of samples that were so long they ran off the bottom of the screen. That would be fine if the sample continued on the next page, which happened with most of the samples. But a couple of them ran off the page and I'm assuming into oblivion. I'll never know how those code samples ended. I wish that I had kept track of them because I wanted to compare with the PC and Android versions to see if it was simply a device issue. I skimmed through the samples on my tablet and on the desktop to see if I could find the same kind of issue on the apps, but they appeared to be fine. I also compared the look to how the Kindle app rendered the mobi version, and while there were some differences, it rendered fine there too. So I think that it's a shortcoming of the device.

Another con is that you can't put your books on display. How are people going to know that you're smart if you can't put all of your tech books on display for them to see? Nobody's going to be able to "oh" and "ah" over your big brain made smrter by reading yor big books.

Summary

Initially I really had hoped for better. After finishing "The Art of Unit Testing", I vowed that I wasn't going to buy another tech book in eBook format! I swore that I was going to tell the world about how horrible it is to read a tech book on an eReader!

I bought two more eBooks from Manning a few days ago...

Since the initial read, I've played with the Nook apps for PC and Android. Now, I think the freely available Nook apps help overcome the pain I felt when reading on the Nook itself. And the reality is that I'm moving more toward the convenience and awesomeness of the Nook and the free Nook apps. I'm finding it harder and harder to justify having a physical book when I can carry so many books around in such a convenient package and be able to search through them easily like I would a white paper or the internet.

I'm going to continue to grow my eBook collection and eventually stop buying printed books. Though for tech books, I might use my tablet more for reading instead of the Nook itself. Unfortunately, I won't be able to show off my growing book collection, but my officemate has died or moved away (spiders hate cold weather?) and wouldn't appreciate what he was seeing anyway.

Tags: , , , , ,

Book Review: The Art of Unit Testing by Roy Osherove

by Aaron 13. September 2011 22:19

Let me start off by saying, I didn't seek this book out.  It was recommended by a friend after I read "Working Effectively with Legacy Code" by Michael Feathers (see my review here).  With that, here's the bad, the good, and the summary (in that order!).

The Bad

First, the bad.  The book (official site) itself wasn't bad.  Unfortunately, I didn't learn much from the book.  I had followed up Michael Feathers book with this one, and maybe that was the issue.  Michael Feathers book was densely packed with tons of information.  "The Art of Unit Testing" felt pretty light in comparison.

There was nothing really ground breaking about the book.  A good amount of the information presented is information that can be easily found around the web, in samples from the unit testing tools available, and in other books that maybe aren't even about unit testing (link). It made more than a couple of references back to Michael Feathers book encouraging the reader to maybe go look at that book.

The Good

It was written well and easily understood. I feel like it's organized well.  It also goes into detail about techniques you can use to try to integrate unit testing into your organization.  The author himself has been through the scenario multiple times and is able to relate his experiences.

The first thing that was new to me was how to hide some of the constructors from the public interface, but make them visible for testing.  Declare them as internal and add the InternalsVisibleTo attribute in the AssemblyInfo file.  That helped settle a disagreement I was having with one of my former coworkers.  He felt reflection should be used to set fields and properties instead of using dependency injection techniques like overloaded constructors.  Declaring the constructors as internal gave him more of a warm, fuzzy feeling than having them public, and it let me do what I felt was best.  So thanks for settling that Roy!

The author was working for Typemock while writing the book.  He even gave that disclosure multiple times throughout the book in an attempt to dissuade the user from feeling like he was secretly trying to sell the reader on Typemock products like Isolator.  He did give lots of examples using Typemock Isolator, but they were to demonstrate what's possible with various tools.  Typemock Isolator definitely has a lot of power and features, as it should since it's a commercial product.

While a lot of examples were around Typemock Isolator, many (and probably more) examples were given using Moq and Rhino Mocks.

The other place that I found useful information was in the appendices.  The appendices went through and described various tools that can fill various needs in testing (unit, integration, and even acceptance).  The listings and descriptions were really good.  It pointed out some tools that I didn't know about and plan on investigating.  For now though, I'm pretty happy with xUnit.net, MS Test, and Moq.

Summary

Overall the content in the book really felt too too basic for me.  Maybe that's my fault for following up the Michael Feathers book with this one.  Maybe I expected the same level of detail and amount of content that was in my previous read.  Maybe I'm just wicked smart!  Who knows?

I wouldn't recommend this book to anybody except people that are looking to get started with unit testing and haven't read Michael Feathers book yet.  I feel like this might be a better book to start with and followed up with Michael Feathers book "Working Effectively with Legacy Code".  Reading in that order may lead to better enlightenment.

While it was pretty basic, I did get some useful information out of it.  Now though, it'll probably just collect cyber dust sitting on my cyber bookshelf (I got the eBook version if you're wondering what the hell I'm talking about).

Tags: , , , ,

Book Review: Working Effectively with Legacy Code by Michael Feathers

by Aaron 22. August 2011 04:09

The book isn't new (published in 2005), and I'm certainly not the first to review the book (link).  I'm also not the first to tell you, it's a good book (link).

I could just leave it at that: it's a good book.  But I feel like I should tell you why I think that: because it's awesome!  Also, it's written by a really smart guy.

If that's not reason enough, here's some more detail.

When I started reading the book, I was a little apprehensive.  I was told the book is pretty dry and dense.  I was more than a little surprised to find that the book was a real page turner!  I rarely go through a technical book wanting to read the next page or chapter because of the very reason thing I was warned about with this book: dry and dense.  I couldn't put this book down.  I raved to Chris Slee about it repeatedly.  I know he was tired of hearing about it, but he was a good sport about it,  I think he even bought the eBook eventually.

Early in the book, there's mention that the book doesn't need to be read cover to cover, and it's okay (recommended even) to skip around.  There are references to later pages and chapters related to the current topic.  Those are pointing you to the part of the book that defines and describes the pattern/technique being described.  That's the one thing I did wrong: I didn't go to those while I was reading.  Why?  Because I'm OCD about not skipping around in a book.  I also thought that it was making reference to other sections, and I was afraid of getting lost!  My fear was unfounded.  One: I'm a man.  Men don't get lost.  Am I right, guys? Huh?  Two: it was just to read through the technique.  I have a finger and book marks,  I could have saved my place and gone right back.

Even though I did it wrong, the book still changed how I do my work.  That applies to both greenfield and brownfield development.

The book uses C++, Java, and .NET for examples, but the techniques can be applies to other technologies.  That is, if you understand it.  I glossed over the C++ examples and techniques.  Not because I don't care, but because...well...I guess I don't care.  I don't do C++ development, and my exposure is usually pretty limited to it.

I actually finished reading this book months ago, but it still stands out in my mind, and my work reflects the things I learned from it (you're welcome everybody working with my most recent work).  It made that much of an impression on me.

To make a long rambling shorter, the book was very good.  It was a little dry in a few places, but the information was presented very well throughout the entire book.  I now have a much different and better view of what a unit test really is, how to write them, and how to integrate unit tests into existing code.  I'm even considering reading it again.  That says a lot.  I probably won't re-read it, but the fact that I'm considering it is monumental because I never re-read books.

Tags: , , ,

My New Office

by Aaron 16. August 2011 04:49

I didn't announce it, but I recently left AWH to join the Great Migrations team as a new partner! It's a really exciting opportunity for me, and it should prove interesting.

Because we're a small product team, we all work from our homes. That's great, except for a few things:

  1. When I worked from home while at AWH, I sat at the kitchen table and worked from my laptop. This was because of the next few reasons.
  2. My office is a wreck. Some of Sarah's stuff is in here, there's clutter everywhere.
  3. My desk is the same roll-away desk I got as a junior in college (over a decade ago).
  4. My monitor is an old 17" (19"?) CRT.
  5. It's dark, I'm hungry, and there's nobody to laugh at my various witty remarks.

The good news is that most of that is easily remedied!

A little over a week ago, Sarah and I borrowed my mother-in-law's van and went to IKEA with a couple of friends. While there, we got some furniture for my son's new bedroom, and we picked up a desk for me.

Once we got home, I started clearing out the office. I moved everything out that I needed to, filling another room and blocking the front door. Sarah took some of her stuff upstairs, and I assembled the desk.

The desk that I got is the Galant series corner desk with an extension on each end. I experienced this particular desk while I was at AWH, and for IKEA, it's pretty sturdy. There's a good brace underneath the table top that holds any weight pretty well, and the legs are pretty solid. Assembly wasn't too bad. I had it together in an hour or so.

In addition to the desk, I ordered a couple of monitors from Newegg.com. They had the Hannspree 23" LCDs on sale for $140/each with free shipping. I ordered three: two for me; one for Sarah.

After getting everything set up, I continued to clean the office and organize it. Here's a picture of the office:

The new office

Here's a picture of my officemate:

My officemate (it's a spider!)

Here in the home office, I have a strict "I'm going to kill my officemates eventually" policy. Your days are numbered my friend...

I need to hang some office policies around the room too. I was thinking about printing and posting the office sexual harassment policy, which is pretty strict:

Sexual Harassment Policy:
Strictly NO sexual harassment!

Not sure where to put it though...

Anyway, that takes care of the first few things on the list, but what about #5? I end up talking to myself by the end of the day. It's going to require some effort on my part and on the part of my friends. I need to get out and meet up with people for lunch, code and coffee, drinks, whatever. I need to get out.

So, if you haven't seen me for a while, let me know and we can get together! I'll be happy to get out of the office and see some friendly faces.

Tags: , , ,

The Droid Eris and Gingerbread

by Aaron 11. August 2011 00:13

I rooted my phone some time ago. I then flashed it with a custom ROM with undesirable results. I've been pretty unhappy with my phone lately because of a lack of storage space for apps, it's slow, and I get bored easily.

Do I get a new phone? No, not yet.

Do I try flashing it with a ROM again? I think Yoda said it best. You know what he said.

In my search, I discovered that some of the newer ROMs give the user the ability to move apps to the SD card. Sounds like just the thing! But what ROM do I use? I did some research and found that there is a ROM (more than one actually) that is based on the latest CyanogenMod release. I read a little about it, and I decided to do it, not try it since...you know...thanks Yoda.

The splash screen that comes up is pretty cool. Totally non-functional, but I appreciate CyanogenMod's splash screen.

I have found very little reason to complain about this ROM! It's been very stable with some minor exceptions. I find that I can't run Navigator with GPS on and listen to music through the player at the same time. After a while, the phone spontaneously reboots. Also, for some reason, it couldn't get location through GPS once.

I'm also not a huge fan of LauncherPro, which is the UI installed as opposed to something like HTC Sense. It works fine, and I've got it customized now, but every once in a while, I would accidentally start to resize a widget or icon, and it would nag about buying the upgraded version to allow for resizing your home screen widgets. Not a deal breaker by any means.

The ability to move apps to the SD card has been great for me. This made the effort of reinstalling all of my apps totally worthwhile.

After about a week, I installed an app called Battery Calibration. I reset the battery stats (whatever that is or does). My battery life has been great. I can go a couple of days without having to charge the phone. A definite improvement over the stock ROM!

I've been running the ROM for a few weeks now, which is more than I can say about KaosFroyo (sorry Kaos!). If you're getting tired of your Eris (or other older Android phone), I would definitely recommend trying one of the CyanogenMod "unofficial" ROMs. For me, it's been mostly stable, snappy, and refreshing to use!

Tags: , , , , , , , , ,