I was chatting to my uncle and we were discussing the idea of a digital book. We are both avid readers and with bookshelves overflowing and a growing tendency to read books on the computer screen we were fantasizing about the idea of a digital book that would allow us to store all our books in a digital format and read them on a screen that is completely portable.

So I had a think about how this could work. Firstly you'd need a screen that was only a bit larger the size of one paperback book page. I decided against two pages side-by-side since that would make the screen too wide. Keep in mind I am trying to design this thing to be operable in all conditions that a normal book is, eg in bed. A computer currently doesn't have the luxury of a bendable screen (yes I know they have make LCD paper style stuff but its too expensive for this project) and two pages would make it too wide to be practical while lying on your side in bed.

This screen would have to be of reasonable resolution because there is nothing worse than trying to read small text on a screen whose resolution sucks more than a vacuum cleaner on steroids. People normally hate reading off a screen so it needs to feel natural or people won't use it. The backlight needs to be decent and its brightness adjustable, so in the dark the screen won't become too glarey.

On either side of the screen, just about where the average thumbs would rest if the "digital book" was held from the bottom corners would sit, there would be back and forward buttons. Obviously, these would be used to turn the pages. You get back and forward buttons on both sides of the device to take into account which hand the person is holding the book with (so you end up with four buttons).

"Books" would be saved on a small flash memory stick like a Sony MemoryStick or an SD Card or CompactFlash or some such. That way its easy to buy books: you jump online, go to a book selling website (eg Amazon) buy the book and download it onto your flash card. Smack the flash card into your digital book and, bang, there are all your books. Perhaps real physical book stores would have terminals you could take and plug your flash card into and buy books which are transferred onto your flash card after payment.

Powering the Digital Book can be a piss weak CPU. Obviously a big beefy CPU is not needed to simply display text and perhaps a few JPGs, and the slower the CPU the better. A slower CPU would use less power and in this case battery life is paramount.

The Digital Book needs awesome battery life. I think that a Digital Book needs at least 8 hours of battery life. At LEAST. Why? Because the longest time you are ever going be reading away from an emergency power point is either on a car trip to somewhere distant like Melbourne -> Sydney or a plane flight. And those activities often take around 8 hours. Perhaps longer, but I doubt people read the whole flight from Melbourne to Los Angeles (its 15 hours off the top of my head).

On to the Digital Book's software. Ahh, my personal speciality, software. The Digital Book will need to be able to display its books in an easy to read way on the screen. Text size should be adjustable, so for me I'd have it as small as possible and for the more ocularly challenged the text could be bigger. This means that, unlike PDFs, the amount of text displayed on each page needs to be able to change. I'm not talking zooming. I'm talking about a book being 400 pages with small text, and 600 pages with larger text. The text is not saved on a particular page number but it instead flows. Pages are dynamic.

Well that throws PDFs out for the file format of choice. That sucks since you can already buy books online in eBook format. So a new format is needed for this Digital Book. I think an XML format would be easiest. A schema something along the lines of this could be used:

<book name="Souls in a Great Machine">
    <chapter number="1" title="Champions">
        <paragraph>The girl moved with the calm confidence ...</paragraph>
        <paragraph>The lunar surface was the familiar...</paragraph>
    </chapter>
</book>

That way, the displaying of the text is completely separated from the way the text is saved, unlike PDFs where text is on a specific page and cannot move. The Digital Book would display the text the way it needed to. In that manner, different types and sizes of Digital Books could be made, each displaying the text in a way that best suits it.

You would need to be able to save bookmarks. Perhaps the bookmark would even be saved in the XML book file itself although I think a separate file would make processing easier and smaller in amount (remember the less the CPU is used the longer the battery life). A bookmark cannot be saved as a specific page, since pages are dynamic. Paragraph number seems to be the best bet here. I haven't experimented with XML enough to know whether the schema above would work with that, so the end schema might have to be different.

The Digital Book would also be able to show the list of books stored on the flash card. The user would need be able to open the book of his/her choice and resume a bookmark. A touch screen seems to be the best method of implementing user input here, but I am not sure of the power requirements of such screens and whether they would damage the battery too much.

Fonts are an interesting problem. Different people seem to find reading different fonts easier. So a dynamic font system seems important. Perhaps the flash card could also hold TrueType fonts which the user can select from through the touch screen. Again, the dynamic page layout helps implement this since no font is the same.

Here is a really crappy picture that I made to kind of show what it might look like. Obviously someone who knows art and design would make it look nice, and someone who does usability and ergonomics would place buttons in the right place, but you can get the idea.