Do you eRead?
Posted on Tuesday, October 25, 2011 ( Ergology | Technology )

ebooksWhen people ask if I'm a big reader I usually say not, because typically I assume they mean novels and stories and just I don't read many of those. However, there are two topics on which I read constantly. One is of course technology, primarily software tech. If you know me, you know I'm a computer geek so that's no surprise. The other is the Bible and books about it. I am committed to its central character and find the topic totally engrossing. So I do read quite a lot, just not necessarily what I assume most people mean when they ask.

Scott Hanselman blogged that he now reads more than ever because of the Amazon Kindle. When you read, do you use an e-book reader? I didn't for a long time. For one thing I've found the Kindle to be lacking when it comes to technical books. My wife has one and she loves it for reading her books, but when I've tried to use it with technical books it just doesn't work. It’s hard to pin down why, exactly, but I think the screen size is a factor and the lack of color can be a problem depending on the material. It turns out that since I do most of my technical reading during the day anyway, I end up just reading while I'm on the computer working. The computer screen doesn't seem to bother me - I still absorb the material all the same. But it isn’t the same as curling up on the couch with a book. And that brings me to my second category of reading.

I tried a few times to read the Bible on our Kindle. It didn’t work. One of the big challenges with e-Ink screens is slow refresh rates, and the Kindle, though it has improved with each iteration, is still pretty slow to update the image. That’s not a big deal when reading a book front to back, but when I read the Bible I’m flipping constantly back and forth. That type of reading is not front to back, it’s almost haphazard at times and I need to be able to move quickly from book to book, chapter to chapter, and verse to verse. The Kindle just simply cannot do that. And then there were iPhones.

As strange as it seems, I found it much easier to read the bible on the iPhone than on Kindle. There’s an impressive platform called YouVersion (by LifeChurch.tv) which has made multiple translations available for free, so not only can I flip around between books but I can also flip between translations without losing my place. That’s pretty amazing, but the screen is really too small to read for any length of time, so I still resorted mostly to the DTBs (dead tree books.)

Recently I took a new job with a startup out of California named Subtext. Their mission, in their words, is to put community in the pages of your book. I knew it was a great idea and after getting some background on the company, I couldn’t pass it up. Since their product is an iPad app, working there meant I needed an iPad, so I bought one. And I have to say, having been an iPhone user for almost two years prior to getting an iPad, it’s not really much different. For the most part, I’m happy to do everything on my iPhone that I would do on the iPad – except for one: reading.

When I opened YouVersion’s Bible app on the iPad, it totally stole the show. It’s only been a few weeks and I’ve found that I rarely use a printed Bible anymore. It’s either on the computer or on the iPad or in a pinch, on the iPhone.

Today, I bought Steve Jobs’ biography by Walter Isaacson. Largely because I wanted to read it, but I’ve wanted to read a lot of books I didn’t buy. This one I bought because I want to experience it in Subtext. For me, this is the future of reading. This will get people to read more than they would have otherwise. This changes the game.

I’ve droned on long enough about my history with e-books so I won’t bore you with my take on the app. Fortunately, others have done a better job describing it than I could have anyway. So take a minute and check out Gizmodo’s review of Subtext and if you don’t already have one, pick up an iPad and download Subtext for free. It really is a new way to read.

They Are Watching You
Posted on Thursday, August 05, 2010 ( Technology )

eyeborgs Make no mistake; you are being watched. Surely you knew this already. Remember your last trip to a store? Were there not cameras in the sky? Walmart is an example of a store that makes no bones about putting you on video. In their parking lots. Inside stores. Even watching you key your PIN number at checkout. When you shop at Walmart (and most anywhere else) you are being watched. The thing is, you have a choice – you can choose to shop somewhere that doesn’t use video surveillance. Or not shop at all; pay someone to shop for you. I can imagine a hundred ways to avoid being monitored, but you will give up convenience and it will almost certainly be more expensive.

The same is true on the web.

The Wall Street Journal ran a series recently about online privacy. Using various tactics to cast FUD they paint a dim picture of the web as a cesspool of amoral, greedy data hounds. It’s true, of course; in as much as man-kind is a cesspool of amoral, greedy hounds, but it’s not more true on the web than it is in the brick-and-mortar world. Though it is, perhaps, easier and cheaper to enact these monitoring techniques in the digital world than it is in the physical world. Certainly gathered digital data is easier to analyze.

Should you worry about tracking cookies and beacons? Today, I say not. If you want something to worry about, then it may be a good option since there are actual, effective steps you can take to stop them. However, as I said before, doing so may make your web surfing less convenient and potentially cost you more. And again I say, it’s not worth worrying about – at least not today.

Don’t get me wrong. There are miscreants lurking about, collecting data about you as you roam around the web. Someone does know that you recently priced Shop-Vacs, added a hunting rifle to your wish list, and bought a lace teddy. And as a result, you may be falsely categorized as a cross dressing adult male. But other than possibly serving up some ads that are of absolutely no interest to you, your life will not be impacted; primarily because they have no idea who you are. These tracking services have no business incentive to identify you as a person. Where they primarily benefit is in aggregating you along with other people who share similar interests and selling you (via a unique identifier associated with your browser, not with you) to advertisers or using information about your interests to customize the pages you see on their website when you visit. Amazon already does this, and does it well! The only difference is, with Amazon you have to be logged in first before they know what to show you. Cross-domain tracking is about enabling that experience without forcing people to self-identify.

I do think there is some risk. My answer about whether or not you should worry about being tacked online had a caveat: “Today.” For the time being, I have not seen or heard of any cases where these tracking services are identifying and/or selling information about individual people. They are simply aggregating data and identifying individual browsers. However, that does not preclude the possibility that in the future they may resort to capturing key strokes and using that to associate everything they know about your browser with information like your name, address, phone number – anything you may type into your browser outside of a secure (SSL) session.

When I recently decided to accept a position at Webtrends, I had to consider these issues for myself at length. What I found, and have continued to find since, is a commitment to ethical, deliberate tracking of “on domain” activity. Any data they collect on behalf of customers is kept strictly confidential and is served only to those customers. They do not mix or associate data collected for different customers – not even for internal use. Contrast this with a company like Flurry which claims ownership of and publicly shares data collected by its customers.

I feel good about Webtrends’ approach to online privacy while providing a valuable service to companies who have a fiduciary responsibility to improve the value they get from their online presence. And I really enjoy the convenience of the web, and will continue to use it, especially since I can’t stand shopping at Walmart.

Trip It, Trip it Good
Posted on Wednesday, May 14, 2008 ( Technology )

As discussed previously, my (relatively) new employer is very interested in allowing and helping each of us stay on top of the latest tech and trends in the software industry. So much so that my manager actually sent out an email, unprovoked, in January of this year which included a list of conferences of particular interest and asked which, if any, we would each like to attend. Not being one to look a gift horse in the mouth, I quickly submitted a request to attend Microsoft Tech-Ed North America 2008 Developers (that's a mouth full, I know.)

Since then, permission has been granted; tickets purchased; rooms reserved, and I am on my way in June to spend a week in sunny Orlando, FL. However, as any one who has handled the logistics for booking a week long trip knows, it wasn't quite that easy.

First there was the tedious process of finding and selecting the cheapest flights whose timing and accommodations fit both personal and business requirements. That has become a lot easier to do in recent years with the abundance of quality online reservation sites (I used a combination of Expedia, Travelocity, Delta, and ultimately booked through Orbitz.)

Finding a hotel wasn't any less challenging as I needed to select from the list of hotels which had arranged with conference organizers to provide discounts and shuttle services to/from the events. Not only that, but because I stalled into April on booking a room, most of the closest hotels had already filled up. And of course, being a long-time Hilton Honors member, I wanted to make sure I could cash in on my 5-night stay for points! The Hilton family includes all: Hilton, Conrad, DoubleTree, Embassy Suits, Hampton, Homewood Suites, and Waldorf=Astoria hotels; so that's a pretty wide selection, but it can be surprisingly difficult to find one when I need it. Nonetheless, this time I was not only successful in finding one, but actually a bit excited as I will be staying at the Hilton Garden Inn at SeaWorld! That's right - me, the dolphins, and the killer whales, snoozing together in perfect harmony.

That doesn't seem so bad, right? I only have two flights and a hotel stay. Actually, those flights both have lay overs, so it's actually four flights. Plus each flight and the hotel stay have confirmation numbers of which I need to keep track. I've never been very good with memory recall, so clearly I need to keep all of this information somewhere safe and easily accessible. And that is where TripIt enters the picture.

My TripIt Itinerary See it on the left there? That's the picture.

TripIt is absolutely awesome. Partially because of what it does, but much more so because of how incredibly easy it is to use and how well it works. I love software that just works.

Creating a new trip itinerary was as simple as forwarding the email confirmation I received from Orbitz to a special email address: plans@tripit.com. TripIt knows who I am because I previously registered my email address, and simply parses the information provided in the confirmation email to create a new trip and add in all of my flight information including Dates, Times, Locations, Airlines, Flight Numbers, Seat Assignments, and of course, Confirmation Numbers. I did not manually enter one bit of it!

Unfortunately, in this case (because I had to go through the conference's reservation system) I didn't get a typical confirmation email for my hotel booking, so I did have to manually enter my hotel stay details. However, that process was very simple to do via their web site.

TripIt took the liberty of automatically looking up directions from the airport to my hotel (Google Maps) and included that in my itinerary. Had I rented a car I could have also forwarded my confirmation email from Avis (or whatever service used) to get that information into my itinerary as well.

The end result? All of my trip details, at least everything I care to include, recorded and easily accessible in one place. The picture I have above is actually the "Printable Itinerary" which is much more compact than what you see on the normal pages, and is perfect for stuffing in a pocket or carry-on the day before a trip.

If you haven't used TripIt before, I strongly recommend trying it out when planning your next adventure. Certainly it is optimized for arrangements made through online reservation systems, but the manual web interface will allow you to enter just about any type of travel/stay/activity conceivable.

Oh, and I almost left out one of my favorite features. Not only can you add other people as viewers and/or co-travelers on your trip (giving them access to view all the details), but you can also automatically show your TripIt trips on your Google (or other) Calendar as I'm showing off below:

GCal showing my TripIt itinerary

I wasn't sure what to think of TripIt the first time I checked it out. After having used it now for several trips I can say with confidence that it is a perfect fit for someone like me who relies heavily on mechanisms to keep organized and, at the same time, can not stand having to enter the same information in multiple places and keep it all updated.

Toddlers to televisions
Posted on Monday, October 15, 2007 ( Pedology | Cora | Technology )

A while back I wrote about how we wound up with a brand new John Deere riding mower. That was an example of how certain big purchase decisions work out between Crystal and I wherein she expresses her disapproval and I proceed regardless. However, there is another (less contentious) sequence of interactions that also occasionally leads us to major purchases - and I'm going to reveal it now.

Our daughter, Cora, is getting older. I know we all are, but at eight months old her changes with age areKid chewing cord considerably more pronounced than ours. For instance, she now has three bottom teeth (central incisors P and O and lateral incisor N) and just pushed out two top teeth (central incisors E and F) in the last week. She's also sitting up on her own, standing up while supporting herself (tables, etc), and most importantly for this discussion, getting very close to crawling. It's not unheard of for babies to crawl as early as six months, but on average it comes around nine or ten months. Armed with this knowledge, we knew it was time to start baby-proofing the house.

It's actually not that difficult to make a typical house safe for a toddler. Sure, they grab, pull and chew on anything they can reach, but they are extremely short people with very little jumping ability (like an Ewok, but with less fur and better English.) The difficult areas tend to be ones we often overlook, such as the living room entertainment center / TV stand. There's pretty solid empirical evidence that most people forget about the TV issue. To demonstrate, take a walk through your local electronics store's home theater area. Pay attention and you'll notice that the vast majority of current TV stands are completely open: front, back, and sides.

Our entertainment center wasn't bad, except that because the side shelves (behind glass) were too narrow to hold all of our components, we had to keep the larger ones on the bottom. The doors on the bottom were solid wood, which infrared (IR) remote controls do not appreciate. To address that, I had to remove the doors exposing the receiver and DVD player at floor level - just begging to be messed with by a tiny person.

Would it be that horrible if Cora messed up the sound on our TV? Probably not. But it would definitely be annoying and occasionally frustrating enough that we would get mad at her. Plus there existed the slight possibility that she could pull something out or onto her and cause injury. Why risk it?

The moment I realized Crystal and I both wanted a new entertainment center, my mind went into overdrive. Logically, we would have to choose one appropriately sized for our television. However, we also knew that our TV had been toying with death for months and was apparently operating on borrowed time. That meant we'd have to buy an entertainment center that not only fit well with our current TV, but would also work well with our next TV - a nearly impossible feat given recent changes in the home entertainment landscape. Once I consciously made this connection, I knew I had my silver bullet. It was the knight-in-shining-argument [sic] that would enable me to convince Crystal that, indeed, we would have to choose a new TV before we could choose a stand.

So we started shopping for both entertainment centers and TV's, and for several months made very little progress. Everything we liked was outside our fiscal comfort level and as I mentioned earlier, a good majority of the entertainment centers did not meet our standards for child resistance. I also really wanted to support our local A/V dealer, which limited us a bit (but not too badly as Dennis has a great store and their new showroom is outstanding.)

Then one day Crystal noticed an ad from Best Buy for interest-free financing for two years on anything we purchased if it included a TV for $999 or above. We decided to visit the closest store and when we did, we noticed this stand which is beautiful and met all of our requirements. Except one, of course ... price. After some wavering and a full day's research to select the right TV, we eventually went back to the store to make our purchase. A lot of money was spent committed that evening - I'm sure far more than either of us ever imagined spending on home entertainment. But we also got some great deals and exactly what we wanted.

The maxim I'm trying to convey is that had we not been shopping for entertainment centers to keep Cora's cute little hands in check, there is no way I could have successfully argued for a high-end television to replace our existing bottom-end model. Of course, that doesn't mean we wouldn't have wound up with one - but this route was a great deal more pleasant for everyone involved.

Writer, unblocked
Posted on Friday, September 14, 2007 ( Hempology | Technology )

A little patience and persistence usually pays off. I had a feeling if I waited a few more days, someone would identify and publicize a work-around for the Live Writer 64-bit issue. Sure enough, here it is.

Live Writer Lives!

In fact I am writing this post from my Vista x64 workstation using Windows Live Writer Beta 3. Honestly, not much has changed (of the things I care about) since Beta 2, so I may not bother upgrading my other machines. At any rate, I'm a little happier with Live Writer, but still thoroughly disappointed with the Windows Live Team's decision to alienate their 64-bit users.

Writer's Block
Posted on Friday, September 07, 2007 ( Hempology | Technology )

[Update: On 9/14/07 I posted a follow up]

Since I started this blog I've been using a free tool from Microsoft called Windows Live Writer to do all my authoring and publishing. Live Writer retreives all the style information from your blog so as your composing an entry it looks visually just like it will once it's published. As a result, I can work on my entries over several days, weeks, or in a few cases even months. Until I'm satisfied with the content, I just keep the draft saved on my PC. I use another free tool from Microsoft called FolderShare to keep copies of those drafts synchronized on my work computer, home computer, and laptop. That arrangement has worked really well. But back to the point.

My new work machine totally rocks. It has an Intel Core 2 Duo processor, 4GB ram, two SATA-II, perpendicular recording (seriously, you must watch that video) Seagate hard-drives, dual 20" widescreen LCD monitors, etc, etc. It also, which was a bit of a surprise to me, is running Windows Vista x64 Ultimate Editition. The key point there is "x64" which means it's a 64-bit operating system. That's great from both a performance and security standpoint, but it often creates issues with some software that isn't compatible with 64-bit systems.

One company that has been very good about providing 64-bit compatible software is Microsoft. Not terribly surprising given that they're one of the major players pushing 64-bit environments on the computing world. Other companies, especially hardware manufacturers and anti-virus makers have had a harder time rolling out 64-bit ready software.

That is why I was so very, very surprised to find that the latest release of Windows Live Writer (Beta 3) does not include support for Vista x64. It says so right here (at the very bottom). I really hope that it's just a beta issue and they are planning to support 64-bit in future releases.

In the meantime, what frustrates me the most is that when they updated the download links for Beta 3, they also took down the links for Beta 2. Which means I can't even install the old version which does support 64-bit Vista. Oye!

If you can't tell ... I'm really irked by this. And yes, I did leave the Live Writer team some "feedback".

I'll go digging through the download folders on my other machines and see if I can locate a Beta 2 installer. But if not, well, my ability and desire to edit blog entries at work will definitely suffer.

I'm Giddy for Google Puffs!
Posted on Wednesday, June 06, 2007 ( Technology | Email )

Warning: This is pure speculation. I have no inside information and no affiliation with Google or its employees.


I don't think it will be long before Gmail's website is available offline for PC and Mac: http://gears.google.com/.

Why would they put so much energy into developing client-side data storage libraries if they weren't planning to use them? And certainly searching the entire Internet offline isn't going to work (unless you have a REALLY BIG hard drive) - so that only leaves a few remaining services that are useful offline:

  • Gmail (obviously)
  • Contacts (obviously)
  • Calendar (obviously)
  • Docs & Spreadsheets (probably)
  • Blogger (possibly)


Google has a lot of other services in addition to those - but I see the above as being most likely, and in the order presented.

I haven't gotten around to writing my thoughts on Gmail in general, but for now please accept this post as a blanket "thumbs-up" for the Gmail experience. Honestly, I am all kinds of giddy about the near-term possibility of in-browser, offline Gmail.

My fingers are crossed and my eyes peeled for additional developments in this arena.

Is Technology too hard? (or Be Nice to your Geek)
Posted on Sunday, April 15, 2007 ( Technology )

We spent this past Easter weekend visiting Crystal's family in Boardman, Oregon. It's a sleepy little town with only one grocery store and a hardware store that is also the pharmacy and liquor store. Suffice to say, there isn't a great deal to do in Boardman, so we spend a lot of time talking (not a bad thing) with family and friends. One of my conversations was with Crystal's younger brother, Derrin, about his radio show on KLAY 1180 in the Seattle area.

Derrin is a residential loan consultant (and licensed loan originator) for Trusted Home Mortgage in Seattle. In January he broadcast the first installment of his weekly radio talk show. While the show is only aired in NW Washington, his  station has a live feed on the Internet. However, his show comes on at 4pm Pacific, which is one of those rare moments when, more often than not, you'll actually find me working hard for my employer. The end result being, even though I want to tune in, I usually miss his show either because I forget about it or am busy with something else and unable to listen.

Aside from being a world-wide broadcast radio host (isn't the Internet great?), Derrin is also a reasonably intelligent person and a fairly computer savvy guy. He attended college at OSU and works in a field heavily dependent on technology, so I know he can get around a PC without constant hand holding. Which is why I felt comfortable suggesting that he post the digital recordings of his shows on the Internet. And as the (borrowing a term from Scott Hanselman) Chief IT Dude for all my immediate and non-immediate family, I was merely doing what I assumed to be my duty.

Upon my recommendation, Derrin dove head-first into the shallow end and created his own domain name and a hosted website at TheMortgageHour.com. Shortly thereafter, I received a flood of forwarded emails from his host (which I also recommended) with information about new accounts and instructions, along with a question from Derrin, "what do I do now?" While skimming these messages it became clear that even though I viewed the instructions like an experienced checker suffering through the annoying voice prompts of a self-checkout machine at the grocery store, Derrin probably saw them more like I view the simple instructions for a new piece of Ikea furniture. Totally uncertain where to begin.

Technology has been used, even since the beginning, to make life easier for humans. And as such, there is an expectation on the part of humans that technology doesn't work unless it seems easy. Obviously, just like Ikea instructions, what seems easy to one person may seem quite complicated to another.

Ultimately, Derrin's new website led to a series of conversations between he and I with regard to the complexity and, more specifically, his frustration with the complexity of the current state of Internet technology. Why does he have to call me, a profession software engineer, to figure out how to tell people about his radio program, share a bit of mortgage info, and provide links to his recorded shows?

I believe a big part of the answer is, it's all about the money. For instance, if he worked for a large radio conglomerate, like Clear Channel or Entercom, they would provide a website for him, along with an in-house IT person to take care of any difficulties. On the other hand, he could remain independent but opt to pay big bucks for high quality, user friendly web hosting, which would remove all the complex parts from what he's trying to accomplish. Instead, Derrin pays $10 a month for high value bandwidth and server access, and hosts his site with free software written by a community of developers that don't get paid for their time, but rather, do it primarily because they enjoy it - what most people would consider "a hobby." And if he does well, Derrin could stand to make a fair bit of money off of the hard work of those developers' hobbies.

But I digress...

Back to the original question, "is technology too hard?" In some ways, I think the answer is yes - if putting up a decent website requires calling your software engineer brother-in-law, then yes, it is too hard. But the reality is, clichéd or not ... in most cases you really do "get what you pay for." So if you find yourself wanting a faster this, an easier that, or a prettier whatsit, ask yourself a simple question - how much and in what forms are you willing to pay? If the answer is, "not much" or especially, "not any" - then I would encourage you to A) lower your standards and B) always be nice to your geek.

I told Hermione to tell you that Seamus told me that Dean was told by Parvari...
Posted on Friday, April 13, 2007 ( Technology | Software Development )

Geek Alert: This is a technical post for software engineers - those of you uninterested in such things, feel free to skip it (and all posts like it).


We do a lot of things in Software Engineering that seem to be overcomplication for its own sake. One of those is, perhaps, the principle of separation of responsibilities and concerns, partially described by SRP: The Single Responsibility Principle [PDF]. However, I believe most engineers agree that when used with care the benefits of this type of separation, more often than not, outweigh its costs over the life of an application. Certainly Martin Fowler would agree, and he's a kind of rockstar in the agile development world - which if any camp was going to be "anti-separation" I would expect it to be them.

Unfortunately, though, having strict separation creates a scenario not unlike the one depicted in the book, Harry Potter and the Goblet  of Fire, quoted as the subject of this post.Sequence: MVC Basic

A Tablet PC application I worked on utilized a common MVC pattern. We had a View (the User Interface, made up of Forms, Dialogs, etc), a Controller (various controllers, actually, each with their own set of concerns), and a Model (in this case, a Business Object Layer (BOL), Business Logic Layer (BLL), and Data Access Layer (DAL)). Controllers manage critical UI behavior (beyond simple form interactions) and mediate between the View and the Model. The View does not directly cause action in the Model nor does the Model directly interact with the View (a possible exception being, well, exceptions, which if not handled at the controller layer will bubble up into the View).

There was an activity, a long-running activity, that happened in the Model layer. It prepared a large amount of data for export to another system by compiling it into a compressed file and, at the same time, updated the state of that data. That all happened within a single Transaction, such that if any part failed, the whole transaction was rolled back.

This all worked well, but a new requirement was introduced. The BLL (part of the Model) now had to determine as part of its processing whether the amount of data is "very large" (exceeds some configurable limit) and may result in a timeout during export. If the data is "very large" then the user is to be notified and given three options:

  1. Ignore the warning and continue anyway.
  2. Send the data to the local filesystem instead (for manual transmission via SneakerNet).
  3. Cancel the export altogether.

The first two options are simple enough to handle. Since an export is going to be executed in either case, we can perform the first part of processing (gather all the export data and update data states), then validate the size of the export data, receive user input if needed, and finally perform the export (either to web service or local filesystem). Since these scenarios involve an entirely serial workflow, we just modify our sequence diagram slightly.

Sequence: Break up export steps

But wait a minute - there was a third option, right? The one that reads, "Cancel the export altogether." No problem - if the user wants to cancel then just don't make the ExecuteExport call, right? right? Not exactly. See - there's a problem. During the preparation step it updated the data states of all the data to be exported. This all happened within a Transaction such that any failure to complete the task would result in a roll-back of those data states. In fact, this same issue arises with the first two options as well, because there is no guarantee that sending the export data is going to succeed (even SneakerNet fails occasionally...)

This creates a bit of a pickle. Easily resolved, of course, by moving the Transaction Root out of the Model and into the Controller - but should a Controller really be managing transactions? In general, it is assumed that the logical place for transaction management is the BLL and it makes sense because that is where the truly "critical" business decisions are made.

Courtesy of MSDN

If determining which changes are persisted and which are rolled back is a business decision (hint: it is) then transaction management ought to remain firmly planted inside the Model and away from any UI Controllers. And if the Controller can't host transactions, then it certainly shouldn't be responsible for canceling the export and rolling back data states. What to do?!?!?

The solution actually turned out to be fairly simple: fire a synchronous event from the BLL, which is handled by the UI Controller, that returns the user's response back to the BLL within the event arguments. This allows us to maintain isolation of transaction management in the Model while gaining user interactivity in the midst of a long-running process.

Here's the final sequence reflecting the addition of an event and evaluating the result of the user's response.

Sequence: User Interaction outside Model

All content © 2012, Shawn Hempel