Markus on Development and Publishing

This is Markus Egger's professional blog, which covers topics such as development, publishing, and business in general. As the publisher of CoDe and CoDe Focus magazines, and as the President and Chief Software Architect of EPS Software Corp., Markus shares his insights and opinions on this blog.

Content Area Footer

Friday, December 24, 2010
Comparing e-Readers (Kindle, Sony Reader, iPad/iPhone,...)

I love reading. I am a publisher. I am a programmer. Reason enough for me to love e-Readers. In fact, with our own Xiine reading and publishing platform ( I have been involved in writing e-Readers starting at the very early days. As a result, I have had ample opportunity to compare various e-Reading approaches and software as well as hardware. Here is my personal opinion on the subject:

Let me come out with it right away: I think the Kindle platform is by far the best offering. Unlike all competitors, it is not just a single device or a single application, but it is a soup to nuts solution the integrates everything from reading on various devices to buying books, and so forth. But the Kindle has its downsides too. From proprietary file formats to poor support internationally. So let’s take a look at the most important devices and platforms:


Amazon’s Kindle is both a hardware device and a software system that drives it. The main Kindle device currently is the “Kindle 3”, which is now available with a cell connection (“3G” as lots of people call it, although it doesn’t seem that the actual speed is 3G) and a WiFi connection (the model with WiFi only is less expensive selling for an inexpensive $139 at the time I write this - Christmas 2010). Amazon also sells the larger Kindle DX, which was originally conceived for better magazine and newspaper reading and such, but for most reading purposes, the smaller Kindle is the way to go. It is far less expensive and it is simply a more convenient form factor. And I also recommend the one with the cell connection. It is awesome. It is always there and ready to use. No configuration. No extra cost. It just works. Compared to the hassles with some of the other readers (like trying to get a Sony Reader to recognize a WiFi network), this alone is reason enough to pick the Kindle.

The Kindle hardware is great. The device is light and the size is perfect. The buttons on the device used to flip pages are conveniently located. The built-in keyboard is crappy, but you will not need it much, so it serves its purpose. It uses an e-Ink screen, which may look unappealing when you just check the device out at first, but it is actually awesome in real reading-mode. The fact that it doesn’t act as an active light source is great too. The Kindle screen only reflects light, which means that it reflects just enough light at just about all lighting conditions. You will be pleased reading the Kindle screen in low-light conditions under a warm light source and you will also be happy with it on a beach in glaring sunlight. This fact alone sells me on the device.

There are other nice aspects about the hardware too. The device isn’t super-fast (and you will not use it to browse the Internet, even though is has limited abilities on that front), but it is fast enough so you never worry about speed. And the battery life is awesome. It simply is a non factor. I charge mine once every few weeks. The latest devices have a 1-month battery life. I guess mine gets pretty close to that too. I am not totally sure. I just charge mine on occasion (perhaps every 2-3 weeks) and do not worry about it much. Another one of those worry-free hardware aspects is the always-available cell connection (even International on the latest devices) which is included free of charge (note that international charges may apply). This means that you can get new content anywhere any time, without having to worry about finding a wireless hotspot or needing a monthly data plan and contract.

One of the most important aspects of the Kindle however is the software side and the soup-to-nuts approach Amazon is taking. You can buy new content directly from your Kindle device and its integration of the shopping experience. It is quick and painless the way you’d expect it from Amazon (and much better than anything competitors provide). Or, you can shop on’s regular web site and have the purchases delivered to your device from there. In fact, Amazon always remembers what you already bought. You can remove titles from your device and add it back later. Amazon acts as your “bookshelf in the cloud”. And this integration goes further. You can have multiple devices and shuffle books around. When you read a book on once device, you can pick up another device and it will know how far you read. Why would you want multiple devices? Well, you probably won’t have multiple Kindle devices, but you probably have a phone or slate and Amazon has clients for those. It is a very common scenario for me to read on the Kindle, then go somewhere and I pick up my iPhone, launch the Kindle app, and continue reading just where I left off. Amazon’s pervasive support for the Kindle reader on just about all devices (from iPhone to iPad to Android phones, PCs, Mac, Windows Phone, and more) is another feature that makes the overall setup vastly more appealing than any of the competitive offerings.

It is important to realize that the Kindle uses a different file format from most e-Readers. Amazon purchased MobiPocket a while back, and that is the file format used by the Kindle platform (although with a different file extension). That means that the Kindle can use all files that come directly from the Kindle store as well as MobiPocket files you copy to the Kindle manually. In addition, the Kindle has some ability around showing PDFs and other formats like Word documents. However, to make this happen on the common Kindle devices, Amazon converts these files for you, or at least attempts to do so. Having this non-standard file format also means that if Amazon ever decides to abandon the Kindle, or if you ever decide you want a different e-Reader, you are pretty much out of luck and your entire e-Library is useless at that point.

In general, it should be noted that file formats like PDF and Word are not great file formats for e-Readers. Especially PDF is exceptionally crappy, because PDF is a page-oriented format. In other words: It defines what a page is like. And if that page is slightly bigger than the screen of the e-Reader, then you have yourself one crappy reading experience, as it isn’t reliably possible to re-format the document on the fly. (And a PDF’s pages are almost always larger than e-Readers can show, with perhaps the exception of the Kindle DX). So regardless of which e-Reader you have, PDF may sometimes save your bacon, but by and large, you want to avoid these files like the plague.

Here is one more dirty secret you may not know about the Kindle: If you copy files over either through a Kindle cable, or by sending it to your Kindle email address which then forwards it to your device (possibly converted and almost certainly for a fee) than that is a very different ball of wax than the standard Kindle content is. When you do this sort of stuff, you can only read the document on your Kindle device and not on your phone or iPad or PC. And even if you have more than one Kindle device, the different devices aren’t aware of what is going on on other devices. So if you email a MobiPocket file to your Kindle, don’t expect it to show up on your iPhone. And don’t expect your Kindle DX to know how far you read on your regular Kindle. There is no integration there. I am not sure why. To me, it removes a large part of the appeal of the Kindle. And no third party software (like Calibre) will fix that for you. If you want to deal with your own files, then you simply do not get many of the Kindle benefits. (Note: If you are outside the US, this is especially disappointing, since you will practically always deal with your own files… see below).

A lot of people also ask me about the actual reading experience on the Kindle and how I like the screen. Like I mention above, the e-Ink screen is awesome for extended reading sessions under just about any lighting condition (not to mention the low battery consumption). Of course the one lighting condition the Kindle does not do well at is complete darkness, since it doesn’t have a display that emits any light at all. So you need some sort of external light source. Personally, I have a book-light I clip to the device, which works very well for me. This is the setup I would recommend for all e-Readers that are based on e-Ink technology (like the Kindle and the Sony Reader, among others). Using a book light, I get a very comfortable reading experience. I have also tried to read on my iPad in an otherwise dark room. Of course the iPad has the advantage that you can see the display in the dark, but it is so glaring (regardless of the settings) that it does not result in a nice reading experience in a really dark room in my opinion.

One other aspect about Kindle that I want to go out of my way to point out is their customer service. Normally, when I have to deal with customer service, I am just about ready to kill myself. But when you call Kindle customer service, someone picks up the phone right away. I had 2 broken Kindles so far (on one, a piece of the plastic broke off, on the other, I had a faulty screen that made outside reading a pain). On both occasions, not a lot of questions were asked. Amazon simply overnighted me another Kindle while I still held on to mine. They also included a return-box for the broken one so I could ship the problematic device back after receiving the new one. Quick, painless, and completely hassle free. It is by far the best customer service experience I had this millennium.

So there is a lot of good stuff there and very little downside. One other aspect shall not go unnoticed however: If you are outside the US, the Kindle probably is not for you. Although Amazon offers the Kindle internationally these days, there simply isn’t much available around it. You can buy the Kindle in Germany, but you can only get English books (by and large). It is basically a US offering sold in other countries. If you expect to read the latest novel in your native language, you are out of luck. This is completely puzzling to me. After all, Amazon has a strong presence in a number of countries, and I thought for sure that Christmas 2010 would be when Kindle really hits internationally. But apparently not so. The only option you have is to get books from somewhere else and then somehow convert them over to MobiPocket format. Some apps (like Calibre) can help you with that, but as mentioned above, when you do this sort of stuff, a large number of Kindle’s unique features go away.

So bottom line: If you are in the US, the Kindle is the way to go. Otherwise, not so much.

Sony Reader

The Sony Reader is a slick device. Nicely designed. I would argue it looks better than the Kindle. It uses the same screen technology (e-Ink) and thus exhibits many of the same characteristics. The screen is bigger however, since the Sony Reader does not have a hardware keyboard. Instead, it has a touch-screen that shows a soft keyboard whenever it makes sense.

So in theory, that should all be more appealing. Personally however, I am neutral about the whole setup. I guess the bigger screen is nicer, but I never found myself wishing for the Kindle screen to be bigger. It just seems to flow well while reading. And while in theory, the bigger screen is nice, the Kindle is also easier to hold because you simply have more space to put your fingers. Plus, the next/previous page buttons are much more conveniently located on the Kindle. The Sony Reader may look better, but the Kindle works better in that respect. Of course on modern versions of the Sony Reader, you will find yourself using the touch screen to flip pages, and that seems to work reasonably well, although I find I am more prone to accidently flip pages.

So all in all, I like the form factors about equal. You will certainly look hipper on the subway holding a Sony Reader than a Kindle though.

There is one hardware aspect where the Sony Reader is clearly lagging behind the Kindle and that is battery life. While with the Kindle, you may not have to worry about the battery for a month, with the Sony Reader you will find yourself routinely plugging the device in. With the Kindle, I would easily go on a trip without even bringing a charger, while with the Sony Reader, that might just ruin your vacation. You will also find yourself actively managing your power. You will manually turn the reader on and off, while the Kindle you simply put down like a real book without doing anything special at all.

What’s nice about the Sony Reader is that it uses the standard ePub format for its books. This means that you can buy your books anywhere you want and move them to whatever other device you want later if you decide to get something else. (Well, except for a Kindle that is). In fact, most people seem to buy books from other vendors and just put them on their Sony Reader, rather than going through the Sony store. (Note: I have had great difficulty connecting to the Sony Store, especially internationally, so I never used the Sony Store much… and in general, getting a Sony Reader to recognize a WiFi network is often more trouble than it is worth).

Being able to just deal with ePub files also has the advantage that you can manage your library in a device independent fashion, and you can use tools such as Calibre to help you do so. Amazon really needs to provide something similar for the Kindle, because as libraries grow, managing Kindle libraries is getting to be just about impossible. And while you can use Calibre with Kindle devices, it doesn’t integrate into the overall Amazon system, so it is not very helpful.

Of course the Sony Reader does not have the same overall infrastructure and system in place the Kindle does. So it is generally a one-device affair with no cross-device support. There is no Sony Reader software for the iPhone for instance, so you will only read on the reader device. Of course you could copy your ePub files to your iPhone or iPad and read it with any ePub compatible software (such as Apple’s own iBooks for instance), but there is no integration. For instance, iBooks will not know what book you read last on the Sony Reader and how far you got.

Note that the Sony Reader comes in different sizes and configurations. The “Sony Reader Touch Edition” is what I would consider the standard Sony Reader I recommend in general. There also is a “Sony Reader Pocket Edition”, which is smaller and can easily be slipped into a pocket. I would consider that more of a “companion” or “specialty” version of the device. As is the “Sony Reader Daily Edition” which is a larger version that is meant to emulate newspapers. Is is not as big as the Kindle DX, but still, not the device I would want to carry around all the time.

I also have to point out that the overall experience of getting a Sony Reader is total crap compared to getting a Kindle. The Kindle arrives, pre-configured to your account. The device is charged when it arrives. You can start reading and buying new books right away. The Sony Reader on the other hand is a complete pain in the rear. I recently bought one for someone as a gift. Getting it to connect to the store (and getting it to recognize a WiFi connection in the first place) is like an act of Congress. (I also couldn't set the time zone I wanted, because it only7 supports a handful, and so forth...). Then, you have to register your device with Sony for DRM reasons. To do this, you have to manually enter the exact product type and serial numbers and where you bought it and such. And once again, that does not seem to be up to date, so it acted like the device I purchased doesn't exist and I failed to register it. Then, you have to manually install software on your PC and authorize and pick vendors and are redirected to a gazillion web pages. The overall experience is horrid and amaturish. I would not expect a non-technical person to pull this off. (And frankly, I am still struggling with this latest purchase myself and have not yet been able to complete the process). It is unbelievable that Sony would move to market with this kind of experience. Very disappointing.

All in all, the Sony Reader is a slick device but if can’t compete with Amazon’s integrated offering in the US. But if you live outside the US, or if you want more of an open standard than Amazon provides, then the Sony Reader is a good choice.


Apple is also joining the e-Reader craze with their new iBooks offering. This way, you can read books on devices such as the iPhone and the iPad using the iBooks software and you can buy titles through iTunes.

There are a number of pros and cons here. Buying through iTunes is nice if you like Apple. And you are getting books in ePub format, so you get a generic offering and you can use the files on other devices. It might be the best way to buy ePub files. On the other hand, the software used is somewhat simplistic. Your devices are independent and do not integrate the same way the Kindle does, resulting in a lesser experience for people with multiple devices. Plus, there is no over-the-air sync. So if you read on your iPad and you put that down and open the same book on your iPhone, you will not be taken back to your last book and the last page automatically. Bummer! And a great missed opportunity. What were they thinking?!?

As far as the form factor goes: I like the iPhone and the iPad for some things. Certainly, on the go, the iPhone is nice because you can just pull it out of your pocket and start reading (if you have the same book synced to your device, that is). The iPad provides a nice large screen reading experience, and you can flip through pages much more quickly than on a Kindle or Sony Reader (or any other e-Reader, really). Plus, the screen is in color of course, and since it emits light, you can read in bad lighting conditions without the need of a book-light or something like that. (Although in total darkness, I find the screen to glaring to read for hours and hours). I really enjoy the experience for tech books.

The problem with devices like the iPad is that it is more a computer than an e-Reader. That means it is heavier. Holding the iPad for hours while reading a novel is not fun. Plus, the battery dies after a few hours. And of course, the active screen is not nearly as good outdoors and in sunlight as e-Ink. Apple may have one of the best active displays, but the reflective displays simply are more suitable in outdoor conditions.

Personally, I read the occasional iBook when I can’t get a certain title in a Kindle store. I also read PDFs on the Kindle, which works quite well through iBooks (in part due to the relatively large screen of the iPad). Mostly however, I use the Kindle software on the iPad and iPhone. You get the same experience as with iBooks (including color display and such) and in addition, you get the integration with the Kindle devices and other Kindle software.

Other e-Readers

I do not have a lot of experiences with other e-Readers. There are quite a few using similar technology as the Kindle and the Sony Reader. Barnes & Noble’s Nook for instance seems to be quite appealing to some people, but I hear it is slow (especially during startup… the Kindle’s ability to put it down and pick it back up much like a real book is very appealing to me). Many have short battery durations. Most do not have the advanced software infrastructure of the Sony Reader, and none can match the Kindle. I am sure there must be some devices out there that read ePub files that their owners are crazy about, but I simply do not have enough experience with them to recommend one. Personally, I tend to think that sticking with one of the bigger brands is the safest bet at this point.

What Do I Use and Recommend?

I use mainly the Kindle and I read my Kindle books on an actual Kindle device, on my iPhone, my iPad, and my PC. I love reading novels on the device and perhaps get a few extra pages in on the iPhone while I am waiting in line somewhere. Then, I go right back to my Kindle device and it sits right on the page I left off on the iPhone. Awesome! For tech books, I like reading them on the iPad, but using the Kindle app, rather than Apple’s own iBooks. If I can’t get a book in the Kindle store however (doesn’t happen often, but it does on occasion), I buy ePub files through iTunes and read them in the iBooks app. I also tend to read PDF eBooks through the iBooks app on the iPad.

All of this only applies for US readers though. I have given e-Readers as presents to people in Europe, and I would recommend the Sony Reader for that. I generally recommend the regular size Sony Reader, not the tiny one, unless you really need something you can slip into your jacket pocket.

Posted @ 8:13 AM by Egger, Markus ( -
Comments (255)

Thursday, December 02, 2010
Taking Screen Shots of Windows Phone 7 Panorama Apps

I recently encountered an issue with taking screen shots of Windows Phone 7 apps that quite stumped me (and required help from my Microsoft friend Jared Bienz… thanks!): I needed to take a screen shot of a Windows Phone 7 Panorama app (which happened to be a very first version of our CODE Magazine Windows Phone 7 application). What I tried to accomplish was a panorama shot that showed all the panels of the panorama like Microsoft often shows it in promos like this one:

So when I needed to create a similar screen shot myself, my first thought was “I will simply launch the app in the emulator, take a screen shot, then slide to the right, take another screenshot,… and then stich the individual images together”. Unfortunately, this does not work as such, because the panel doesn’t just slide left and right. Instead, it performs “parallax scrolling”, which means that different parts of the panorama scroll at different speeds. The title (“people” in the example above) scrolls slower than the main content for instance. This provides a very nice visual effect, but it also means that individual images don’t just line up when you take screen shots individually and then stitch things together. Bummer.

As it turns out (and by that I mean “as Jared figured out”), the whole panorama actually uses some sub elements (namely PanningTitleLayer and PanningBackgroundLayer) which inherit from PanningLayer. PanningLayer has a property called PanRate, which defines at what rate each individual panel scrolls. In theory, we could just set these properties to 1 and thus have everything scroll at the same speed and could take individual screen shots and stitch them together. Unfortunately, things aren’t quite that simple, since that particular property is a protected read-only property. Hmpf!

To get around this, we can subclass the two panning layers and override the property like so:

public class NoParalaxTitleLayer : PanningTitleLayer
    protected override double PanRate
        get { return 1d; }

public class NoParalaxBackgroundLayer : PanningBackgroundLayer
    protected override double PanRate
        get { return 1d; }

Now we have elements that would scroll properly if they were only used somewhere, which they are not. To fix that, we have to create our own style and template for panorama controls:

<Style x:Key="NonParalaxPanorama" TargetType="controls:Panorama">
  <Setter Property="Template">
      <ControlTemplate TargetType="controls:Panorama">
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
          <local:NoParalaxBackgroundLayer x:Name="BackgroundLayer"
                 HorizontalAlignment="Left" Grid.RowSpan="2">
            <Border x:Name="background"
                    Background="{TemplateBinding Background}"
          <local:NoParalaxTitleLayer x:Name="TitleLayer"
                 ContentTemplate="{TemplateBinding TitleTemplate}"
Content="{TemplateBinding Title}"
                 FontFamily="{StaticResource PhoneFontFamilyLight}"
                 Margin="10,-76,0,9" Grid.Row="0"/>
          <controlsPrimitives:PanningLayer x:Name="ItemsLayer"
                 HorizontalAlignment="Left" Grid.Row="1">
            <ItemsPresenter x:Name="items"/>

Now, all that is left is to tell the used panorama to use the newly created style:

<controls:Panorama Title="CODE Magazine"
          Style="{StaticResource NonParalaxPanorama}">

What is cool about this is that although it was a bit of a pain to create this, we now have a style we can easily assign and remove. This way, we can create our application as always but quickly disable parallax scrolling whenever we want to take screen shots. To take the screen shot, simply launch the app in the emulator, then take a screen shot of the initial view. Then, pan right and take another screen shot. Copy/stitch the screen shots together in any graphics program (they will now align properly) and continue with the next panel until you run out of panels (or room… it may not make sense to do more than 4 or 5 even if your app has more panels, since the resulting screen shot is somewhat odd if you have too many panels).

Here is a screen shot of a very early version of the CODE Magazine Windows Mobile 7 application:

Click for a larger version...

Note: Click on the above image for a zoomed version.

Oh, and one more thing: You may notice that when you run your app in the emulator, you see performance numbers on the right side of the display. These are very annoying when you want to take screen shots. I just blogged about how to get rid of these here.

Posted @ 8:08 PM by Egger, Markus ( -
Comments (413)

Thursday, December 02, 2010
Hiding/Showing Windows Phone 7 Emulator Performance Count Numbers

When you run your application in the Windows Phone 7 emulator, you are likely to see performance counters down the right side of the emulator display:

It may be a bit difficult to see it in this image, so here is a version zoomed in on those numbers:

These numbers are very useful, since they give you interesting performance information. However, at times you may not want them. In particular, I find them problematic when I need to take screen shots of my app in the emulator. So the question is: How do you turn them off?

To answer that question, let’s first examine why they are showing up in the first place. As it turns out, these numbers are added by the debugger. So whenever you start an app in debug mode, these numbers show up. Since most people simply hit F5 in Visual Studio to start a debug session, they see these numbers most of the time. However, if you simply launch the app without the debugger attached (by hitting CTRL+F5 for instance), the numbers are gone:

Another option is to launch your app in debug mode, then hit the Windows symbol (the middle hardware button) to go back to the home screen. Since the phone is not multi-tasked, this shuts down the app, which forces the debugger to detach. If you then click the icon of your app again to go back into your app, you are running without the debugger and thus the numbers are gone in this scenario as well. This particular option is more likely to happen by accident though :-)

There you have it! Perf numbers are gone and you are ready to take your pristine screen shots.

Note: I actually needed this when I took a panomara screen shot of the CODE Magazine Windows Phone 7 app. Taking panorama screen shots is a whole different problem in itself. I blogged about it here.

Posted @ 7:22 PM by Egger, Markus ( -
Comments (322)








Syndication RSS 2.0 RSS 2.0

All My Blogs:
My personal blogs:
Dev and Publishing Dev and Publishing
Travel and Internat. Living Travel and Internat. Living
Other blogs I contribute to:
Milos Blog (US) Milos Blog (US)
VFPConv. Dev Blog (US) VFPConv. Dev Blog (US)
VFPConv. Dev Blog (DE) VFPConv. Dev Blog (DE)


Blog Archives
All Blog Posts

    September (1)
    September (1)
    April (1)
    March (1)
    October (1)
    June (3)
    May (1)
    March (2)
    February (2)
    January (2)
    December (3)
    November (2)
    October (2)
    September (1)
    August (2)
    July (1)
    June (1)
    April (3)
    March (1)
    February (5)
    January (1)
    October (4)
    September (2)
    August (1)
    July (1)
    May (4)
    April (6)
    February (1)
    January (1)
    December (3)
    November (11)
    October (8)
    September (1)
    July (1)
    June (3)
    May (3)
    April (6)
    March (6)
    February (4)
    December (1)
    November (1)
    October (5)
    September (1)
    August (1)
    July (6)
    June (3)
    May (3)
    April (1)
    March (2)
    January (2)
    December (3)
    November (4)
    October (1)
    September (2)
    August (2)
    July (4)
    June (1)
    May (2)
    April (10)
    March (2)
    February (3)
    January (1)
    December (6)
    November (7)
    October (6)
    September (8)
    August (10)
    July (6)
    June (9)




This Blog is powered by MilosTM Collaboration Components.