Sunday, August 07, 2011

Alice


Based on this post I wrote an eBook reader. It supports both PDFs and ePub books.

Most eBook readers are witten to support selling books in an online store.  This makes them awkward for reading books from places like Pragmatic Programmer and Craft & Vision. So I wrote my own eBook reader that works the way I'd like it to. Alice monitors directories you choose for eBooks it understands. There is no need to "import" or "install" books. Alice just finds them where you tell it to look. You can look up words in the dictionary by selecting the word, Ctrl-clicking and selecting "Look up in Dictionary". It has a slider at the bottom so you can flip through a book quickly. It keeps track of where you left off when you close a book. It has search for both PDFs and ePubs. (Search is particularly useful for using Alice as a programming reference.)

You can find Alice on the Apple App Store.

Update 12-26-2012: I expected a lot of support issues related to Sandboxing but that hasn't happened. Looks like the "Getting Started" guide is working.

I have a request. If you like Alice, please write a nice review on the Apple App Store. There are only three reviews for Alice. Two are one star reviews, both of which are not valid. The other is a three star review, with some valid points, but still seems harsh.

If you have a bad experience with Alice, please send me email and let me help you rather than writing a nasty review. At least one of the negative reviews claims Alice is missing a feature that does exist. The user jumped to a conclusion without asking for help.

Update 12-22-2012: Version 2.0.0 is available.

I reversed the time order of updates so you don't have to scroll to the bottom to find the latest update.

The major change in this version, and the reason for the 2.0 version number, is Alice is now Sandboxed. I worked around most of the issues and removed a couple features that won't work in a Sandboxed app. What does this mean?

I lowered the price. Alice has been $10 for a long time. It is now $5 since I had to remove features.

Going forward any updates, that are not pure bug fixes (and that is determined by Apple), must be Sandboxed. Sandboxed applications have a very limited set of things they can do. One thing they can't do is send AppleEvents. That means Alice can't do "Show in Finder" since it works by sending an AppleEvent to the finder with the name of the file.

The biggest issue is, without permission, Alice can only look in it's own container on the file system. That is: ~/Library/Containers/com.baldmountain.AliceReader/Data. Since you don't store your eBooks there, you need to give Alice permission to look elsewhere. You must open the Preferences panel (Cmd-,), select the directories tab, and add some directories using the '+' button. Otherwise Alice will not find any eBooks. The technical issue is that Alice needs a security scoped URL to access any file outside of it's Sandbox Container. Using a File Open panel gives Alice permission to look for files in the opened directory.

Alice is targeted at 10.8 Mountain Lion. I tried hard, but Spotlight and security scoped URLs don't play well on 10.7 Lion. The Sandboxed version of Alice can't find books on Lion. You can still read eBooks using Alice; the Library and Storage lists won't list anything. If you are running an OS before Mountain Lion, don't update. This is another reason for lowering the price.

There is some good news in this update. I got a copy of AppCode from JetBrains. It's static analysis tools are really nice. There are many bug fixes, including lots of potential crashing bugs, that are fixed because of AppCode. Very nice tool.

For all those people who run into issues because Alice is Sandboxed, I'm sorry. I tried hard to make as much of Alice work in a Sandboxed environment as I could. It took four tries to get this version approved by the Apple App store. The rejection reasons, not a bug fix, 2 terms of service violations for talking about Sandboxing when Alice starts, and approval on the forth try. (The window talking about Sandboxing became the "Getting Started" window, which I prefer. I'm happy the previous versions were rejected. It made me think of a better experience for users.)


Update 11-18-2012: It's been a while since I've posted an update. I'm still trying to decide what to do about App Sandboxing.

I still use Alice every day and I have been working on the code. It took some time, but I have a version of Alice that works with the Sandbox. I haven't released it because it only works on Mountain Lion. On Lion Spotlight refuses to return any results. I am planning on releasing a Mountain Lion only version in the next day or two. Depending on how upset people get, I'll consider releasing a non-Apple App Store version that has the sandbox turned off. If anyone has suggestions for app distribution I'd be interested.

Update 4-21-2012: Version 1.1.5 is at the App store for review. Just a smal bug fix for a crash I ran into. (A Spotlight result returned a null when queried for a file.) I also changed PDF view to continuous scroll rather than page at a time. Hopefully everyone preferes it.

Big question: Apple is encouraging developers to adopt App Sandboxing. Sandboxing makes the OS more secure by limiting and app's access to APIs and not allowing access to other application's data. This is good. But it will break Alice's ability to list files automatically. I'll have to remove the Library and Storage lists. Alice will still be able to open ePub and PDF files, but you'll have to use the file open dialog or double click the file (if Alice is set as default for the file type.) Supporting App Sandboxing is not mandatory for Alice so I don't have to support it.

What do you think? Suport App Sandboxing and remove the Library and Storage lists or don't support App Sandboxing and keep the Library and Storage lists? Let me know.

Update 1-28-2012: Version 1.1.3 is out. It fixes a crashing bug in the French version due to bad format string. I also connected some menu items to functionality. I'm a bit embarrassed that I needed to make those changes. Sorry...

One other thing I snuck in was the ability to open items exported from iBooks Author. (.ibooks files.) The files are ePub files so Alice has no trouble opening them. But, and there is usually always a but, iBooks uses a TON of CSS extensions to create neat effects for the iBooks app. Alice uses WebKit to display the xhtml files in an ePub book. Since WebKit doesn't understand the iBooks CSS extensions, iBooks files don't render well. At some point I'll submit a feature request to Apple to have them update WebKit to understand ibooks CSS extensions.

Update 1-9-2012: Sigh, I forgot that not everyone is just like me. I also knew that the Spotlight change would cause issues. I just checked in a change to allow users to monitor the directories they want rather than ONLY the home directory. The default is still the user's home directory. I need to test to make sure this works. Once I'm sure this works fine, and I update Alice's Help, I'll release it.

Update 12-22-2011: Version 1.1.0 is available. This is a major change to how Alice finds files. It no longer scans the filesystem. Alice now uses Spotlight to find files in your Home directory. The major thing you'll notice is Alice starts MUCH faster than in the past. If you run into an issue where you know Alice should be finding files and it doesn't, try Alice's Help. It's most likely that ePub files have the wrong file type setting. Alice does skip files in the Library directory in your home directory. Otherwise Alice would find documentation and temporary files as well as Mail attachments, which is probably not what you want. I hope it works for you. Happy Holidays!

Update 12-4-11: Version 1.0.4 is out. Hopefully everyone got the update OK and I have resolved the threading issues.

I'm considering a new way of monitoring files. Rather than scanning user selected directories for ePub and pdf files, Alice would use Spotlight to find all ePub and pdf files in your home directory. It would skip files in the Library directory in your home directory otherwise it would display mail attachments and the like. Files you probably don't want to display. (I think.) I've implemented this on a branch and I think I like it better than the old scan directories approach. If nothing else, it is much faster. If you have a view one way or the other I'd love to hear it.

Update 11-19-2011: I was wrong. Version 1.0.3 was approved and is available. I'm still going to have to enable App Sandbox at some point which means I'll need to rethink the Library and file system monitoring. Alice may only be able to monitor your Documents directory and maybe your iTunes eBooks directory. I still think it is unlikely that Alice will ever be able to decode Apple's Fairplay encrypted eBooks. But I haven't asked yet, so we'll see.

Update 11-18.2011: There is an update to Alice in review at the Apple Store. Even though I've been quiet, I have been working. Odds are it will be rejected. I haven't turned on App Sandboxing for Alice. App Sandbox is a new feature in Lion to limit what an application can do. The benefit is that it will prevent malicious applications from accessing data they shouldn't be. The downside for Alice is that it will prevent Alice from being able to monitor any directory. I'm not sure what to do. Alice will continue, but may be limited to only monitoring your Documents directory and your iBooks eBook directory in the Music directory. I'll try for an exception to be able to monitor the default Dropbox directory if it exists.

Update 9-27-2011: Alice users may want to read this post on ePubs. It will show you how to read your iBooks books in Alice. (I think.)

Update 9-23-2011: 1.0.2 is out. Most of what I was going to put in 1.0.2 went out in 1.0.1. 1.0.1 was rejected by the app store because it found a PDF file in an application that was stored in the user's document directory. Apparently Alice shouldn't be poking around in other application's contents even if they are in the monitored directory. Well, no problem. 1.0.2 has search in ePub files. It's still an early version, but it seems to work fine. I have been writing code to enable a demo version of Alice. I'm not sure how to implement it properly. My current solution seems a little too "feeble".

Update 9-2-2011: Sigh, 1.0.1 has been in review since 8/23 and I'm close to releasing 1.0.2. 1.0.2 has the ability to set a placeholder mark so you can jump somewhere else to check something then jump back to where you were. Kind of like when you use a finger to keep your place and flip to look back in a paper book.

Update 8-27-2011: I added the code and strings to localize Alice. I used Google translate to convert strings from English to French. They are probably really off and I'm afraid to release it. - After fighting with getting French help to display I decided to have a look in the TextEdit bundle to see what Apple does. Alice does all the same thing. But I also see that TextEdit doesn't display French help either so my testing isn't valid. I'm going to assume it will work. :D I lifted some of the French strings from TextEdit so the translation should be less horrible.

Update 8-24-2011: Alice is approved and for sale on the Apple AppStore. Here's a link to Alice.

I got my first support request. I didn't think much about accessibility and one of Alice's users is blind. I'll have to fix that since it is important. The first update, coming soon, will have PDF searching enabled and at least some accessibility fixes..

Update 8-18-2011: After resolving an issue related to submitting to the AppStore I managed to get Alice uploaded. Should be available soon. Next up: Search. At least for PDF, then for ePub. I find I need it.

Update 10-6-2013: I haven't written about Alice in a long time. I have been working on Alice, and have made improvements over the last couple years. I just uploaded version 2.1.2. The last version I wrote about was 1.0.2 so things have changed a bit. 2.1.2 is a minor fix to handle the case where an ePub has a zero length file that claims a longer than zero compressed length. I found a file like this on Munsey. Kurt Vonnegut's 2BR02B to be specific. Actually, the ePub is kind of crap. I'll probably grab the text file from Project Gutenburg and make a decent one using Hatter. I have no idea why people suffer though these awful ePubs when there is a cheap tool to make a decent one.

Oh, and I almost forgot. The next version of MacOS X (Mavericks) comes with iBooks. This should pretty much kill off Alice...

41 comments:

Jean said...

I would love an eBook reader for Mac matching the behavior of Apple iBooks on iPad. A full screen page — max 2 pages en vis à vis — on a black background with a standard less or equal width of 80 characters for a line and turning pages with the keyboard arrows.

And nothing more: no menus, no drawer, etc. absolutely nothing if you don’t ask for with a click or a keyboard shortcut. Think of the full screen mode in Pages.

I would not buy such an app if I cannot try it for a while before clicking on my App Store button :-)

baldmountain said...

Those are good ideas. I'll have to think a bit more about a trial version. Developing for the AppStore makes distribution easy, but there is no trial version mechanism.

I forgot to click the button to support Lion's full screen mode on the reader in version 1.0. I'll put it in for version 1.0.1. This doesn't quite get what you want since the toolbar is still there. I'll look into hiding the toolbar in full screen mode and showing it coming out of full screen mode since I think it is a good idea.

Page navigation is Cmd-arrow rather than just arrow keys.

Search for PDFs will be in 1.0.1 too. Searching in ePubs will have to wait since it is more complicated. I have it planned out, I just have to implement it.

Simon C said...

Hi
Me too, I would LOVE to try it for 2 weeks before I make a purchase - especially there are so many options out there - would like to compare them side by side and make my final decision after a good test.

Ringo said...

Personally, I don't need the Library concept. I manage my library in iTunes as my ePub/PDFs are synched with my iPad. If I double click a PDF in iTunes, Preview opens. I just want a reader that I can associate with the ePub file type and gets launched by double-clicking the file, either in iTunes or in Finder. Does Alice support this?

baldmountain said...

Hi Ringo. It does!. It's how I've been opening ePubs on my own Mac. You just need to associate Alice with the ePub file type. The one thing I'm sure isn't supported is Digital Rights Management in ePubs. (I downloaded a book from the iTunes store and it didn't seem to have DRM in it, but I don't know if all books come from the iTunes store without DRM.)

I personally like the library. Mainly so I don't have to remember where books are on the file system. :)

baldmountain said...

NOTE: I finally bought a book still under copyright from the iBooks store. The book is encrypted and Alice can not read them. It can open the files, and display the table of contents, but the text is not readable. At some point I'll contact Apple about decrypting the content, but I don't think they will let me implement it. You can tell if a book is protected if you select the book in iTunes, Control-click on the file and choose "Get Info" from the menu. If it says "Kind: Protected Book" in the middle section, the book is encrypted and can't be read. (This is copied from my post on Alice.)

dbadev said...

I purchased this hoping it work work for my epub books stored in my iTunes media directory. I tried several and they seem to come up garbled. They don't appear to be encrypted as the type shows up as plan epub. I did get one to work from the Pragmatic Programmer site, but the rest don't display.

Overall I like it, you need to perhaps give the library window a means to group things into folders. Perhaps make it look more like the UI for Apple mail or iTunes where its combined with the viewer window and you can include search results, etc.

baldmountain said...

As you saw, Alice can open and interpret the structure of iBooks files, but can't decode the sections. I poked around in an iBook file and it appears that Apple uses Fairplay to encrypt the sections within the file. (Both the XHTML pages and images.) Alice can read the file, but it can't decrypt the sections with the file. I need to contact Apple and see if Alice can be written so that it will be able to decrypt the sections. I'm pretty sure they will say no, but I need to try.

Harry said...

I bought your app at the App Store today -- Having Major Problems -- I keep getting a spinning wheel upon opening. I cannot view anything because of the spinning wheel. I have a feeling it is because I have probably hundreds of PDFs on my computer and your app is trying to find them all. Now reading your blog, I see that you might try a different scanning approach -- I would wholeheartedly agree that you change your scanning approach.

baldmountain said...

Hi Harry,

What version? There was a threading issue with version 1.0.2 and maybe 1.0.3. Try upgrading to 1.0.4 if you haven't already. If you are using 1.0.4 can you have a look at the output on Console to see if something odd is happening?

Having hundres of PDFs should not be a problem. Alice scans in a background thread and should not lock the UI during the scan. If Alice is generating a beach ball it is because of a thread deadlock and I'll need to fix it.

Harry said...

Hi - I'm using version 1.0.4 (5) of Alice. I have a mac mini that's using version 10.6.8 of Mac OS X.

Harry said...

I just figure out what console is. Here is what I found:

12/6/11 4:03:26 PM com.apple.launchd.peruser.501[24736] ([0x0-0x553553].com.baldmountain.AliceReader[33130]) Exited: Terminated
12/6/11 4:03:26 PM pbs[33202] Malformed Services entries in Info.plist for Service at URL /Applications/Mac maintenance/Singular.app
The value for key NSKeyEquivalent was supposed to be of type NSDictionary, but instead it was of type NSString
12/6/11 4:03:47 PM Alice[33212] No metadata
12/6/11 4:03:47 PM Alice[33212] *** Assertion failure in -[BookInformationCell _objectValue:forString:errorDescription:], /SourceCache/AppKit/AppKit-1038.36/AppKit.subproj/NSCell.m:1531
12/6/11 4:03:47 PM Alice[33212] Invalid parameter not satisfying: aString != nil

baldmountain said...

OK, I need to find a machine with 10.6 on it. I've updated all my machines to Lion. Looks like I still need to debug on Snow Leopard. (I am a one man shop so I have limited resources. That includes machines to test on.) I will fix this since I want to support Snow Leopard. It just may take me a little while to get a machine.

I think the best way forward is for me to find a machine with Snow Leopard on it and verify that Spotlight on 10.6 works the same way as on 10.7. If it does, release the new Spotlight file finding version since it is faster.

baldmountain said...

Harry, I haven't forgotten about you. It just took a while to get a 10.6 machine and solve a Spotlight issue. You can read about the issue here: http://stackoverflow.com/questions/8479446/spotlight-getting-macos-10-6-to-return-epub-files-as-file-type-org-idpf-epub-co

The longest part of getting ready for a release is writing up how to get Spotlight to index ePub files properly in a way that an everyday user will understand. I should be ready for a release soon.

JDFC said...

Just downloaded Alice.
Every time that I open it it hangs. Activity Monitor shows no disk activity, no processor activity. After a while (i.e. after eating dinner) I became frustrated & Force Quitted it. Restarted and same problem.

MacBook Air, 4/256/i7 configuration running 10.7.2

JDFC said...
This comment has been removed by the author.
Geoffrey Clements said...

Hi JDFC, You got me thinking. There was some left over code from when I was using a seperate thread to scan the file system for files to read. This code used a semaphore to protect a list. The new Spotlight code only updates on the main event thread so this semaphore is not needed. (I didn't know this, but you got me thinking and I was able to verify it in the debugger this morning.) I've removed the semaphore since it isn't needed, and once I do some more testing, I'll release an update. Most likely today or tomorrow.

Thank you VERY much for taking the time to let me know about this issue. I really appreciate the bug report.

Haiko Schol said...

Hi Geoffrey,

I've just purchased Alice from the App Store. Unfortunately, it doesn't work as I expected it to. The description still says "It monitors directories you choose for eBook files", which is exactly the behaviour I want. I have tons of PDF files on my machine that I don't want to be in the library. As far as I can tell there's no way to search the titles/filenames in the library window. Combined, this makes the app somewhat useless to me. :-/

Do you have any plans to make the library searchable and maybe even add the option to monitor a single directory?

Geoffrey Clements said...

Sigh, one of the problems with an evolving software project is sometimes it migrates away from it's initial feature set. Originally Alice would scan every file in a set of directories. If the file ended in .pdf or .epub Alice would try an open the file. That defined which files Alice displayed. Alice monitored file system events and rescanned a directory if something changed. This worked reasonably well but was kind of slow. Especially if there were thousands of files to scan.

So I changed Alice to use Spotlight to locate PDF and ePub files in your home directory. It was significantly faster and I was able to remove some code I wasn't truly happy with. The downside is that Alice only monitors files in your home directory and it finds everything in your home directory. (Alice filters out everything in $(HOME)/Library otherwise it would display cache files, email attachments and the like.)

Having said all that, I agree. It would be nice to be able choose where Alice used Spotlight to search. The default would be everything in your home directory. Along with this I'd like Alice to be able to access iCloud PDF and ePub files. So now you know my near future roadmap. :)

Geoffrey Clements said...

Oh, and I updated Alice's description on the AppStore to better reflect it's current behavior. Thank you for pointing this out.

Geoffrey Clements said...

Haiko, one more thing. Type the first few characters of the book's title and the selection will jump to the name of the book. This will make navigating a long list of items a little easier.

JDFC said...

Thanks for the earlier fix to Alice.

I still find that it hangs, though now after being open for about 10 minutes or so - I suspect that it's because I've >10 000 PDFs on the system (work-related files). Activity Monitor just gives it as unresponsive with no CPU load.

Could you perhaps put in a preference to have Alice not search at all?

Geoffrey Clements said...

That's a reasonable request. Like others have said, developers tend to write software that fits the way they work rather than trying to accommodate everybody. We're selfish that way. ;)

There is an update to Alice pending in the Apple store review process to allow you to specify which directories to monitor rather than just monitoring your Home directory. Choosing none means your Home directory. You'd probably want to choose an empty directory or one with a manageable number of files you use regularly.

Just out of curiosity, what is the work flow that causes you to have 10,000 PDFs on your system? (I thought I was being silly when I tested with ~ 2000 ePubs.) You don't have to answer if it is confidential.

komputist said...

First: I love the way you use photos on your blog ... So nice photos too ... Poetic.

To the issue: Would be nice if the Library would have filtering options. Yes I know I can filter were which folders it searches within. But it would have been nice to, more simply, being able to narrow down on a particular book. I guess a search field in the Library window would do.

Two other things: I would recommend to update the screenshot in App Store, as the current one does not show that it it now supports search. (You should perhaps say it, as well, in the text.) I had read this Support page to find out. Also, the link to "Geoffrey Clement's web site" in the App Store doesn't work either - you could set it to the same as the support page, I suppose, if nothing else.

Geoffrey Clements said...

Having a search box on the library is a good idea. Now that I have collected a bunch of documents myself, I'm finding it harder to find the item I'm looking for. Excellent suggestion.

While you are waiting for me to finish this feature, if you type the first few characters of the book title you are looking for the selection will jump to the item in the list. Not as good as real search, but will help you find items in a long list.

I've been a bit lazy about updating the screen shots. I need to do that. Thanks for the reminder. I'll update the link too.

Thank you for the kind words about the pictures. :)

komputist said...

Thanks fort that tip — will help. But a detail, then, is that the type-to-find feature appears to only select titles downwards — and thus not above the current location.

Does the Open Recent menu do anything? Nothing appears there yet.

Geoffrey Clements said...

Just so you know, I submitted a release to Apple with filter/search in the Library and Storage. Also, Items are now added to the recently opened menu as they are opened. Great suggestions. Thanks! Oh, and I updated the screen shot for the Apple App store. :)

Haiko Schol said...

Hi Geoffrey,

I just got the update with the search box in the library. Thank you for adding the two features I asked for!

I've been considering writing an app that only does the library part of Alice, but also for mobi files. It would try to extract the title of the book from the metadata (with the filename as fallback) and only display one entry for files with the same title in many formats. This is useful to me, because I bought many ebooks that came in all three formats.
This is not a feature request though, just thought I'd mention it in case you like the idea. :)

Haiko Schol said...
This comment has been removed by the author.
Geoffrey Clements said...

I added the two feature you asked for since they were really good ideas. :)

I didn't want to display a single version for multiple file types of the same book because often you want to see all versions. Also, the titles for the ePub version of a book often are very different than the PDF version. And sometimes they don't relate to the book at all. I have one book title that starts out "C:\Documents...' So, I'm afraid you'll have to live with multiple copies for an eBook in different file formats.

I really dislike the mobi (Kindle) format. If you look on amazon.com you'll see many bad reviews of technical books on the kindle due to poor formatting. mobi is OK for novels, but useless for technical books. See : http://bald-mountain.blogspot.com/2011/12/kindle-sucks.html for a longer rant on the Kindle and mobi (azw) format.

gfl said...

The image when purchasing Alice suggests that it can show two pages of a book side by side. I can't find that setting; does it exist?

Also, the application is really limited if I can't set a font: choice of font, choice of font size, and dual page mode (every screen is widescreen these days right?) is pretty basic.

I know that trial versions are a pain to create, but in this case I've taken a chance, spent my money, and wasted it.

Its, ah, unlikely that I'll ever buy any of your software again. Sorry 'bout that.

Might be to get a workable ePub reader I'll have to write one. Why every one (free or commercial) has to be SO bad is something of a mystery.

Bah, humbug. :-(

Geoffrey Clements said...

Yes, but only for viewing PDFs. ePubs are single page only.

I make the assumption that the peson designing the ePub has chosen a good font. Clicking the + or - zoom buttons will allow you to increase or decrease the font size.

If you REALLY feel the need to override the design of the eBook I suggest expanding the ePub, (it is a zip file), editing the css to change the font, (you can even include your own true type fonts) and then rezip the eBook back into an ePub.

Sorry you feel that way...

gfl said...

Thanks for the response.

I'd really like two pages for ePubs; for me not having that's a killer, and makes Alice unusable.

How much of an ePub's CSS to allow and how much to override is a hard question; I'll grant leaving the font alone is a reasonable choice.

Best regards.

Haiko Schol said...

I agree that the mobi format sucks, and mostly with the rest of your Kindle rant. So far I have been putting up with the crappy format because of the things I like about the Kindle device and platform (battery life, size/weight, eInk is easy on the eyes, apps with sync on all platforms, large catalog with one-click buy and instant delivery).

However, I got my iPad 3 today and set up syncing ePub to iBooks in iTunes. I probably won't be buying any more technical books in the Kindle Store.

Geoffrey Clements said...

:) I've been working on my wife to convince her that we need an iPad. Or better yet, one for each of us. I haven't quite convinced her yet.

I agree that the Kindle is still a nice platform for reading novels. It's very convenient to buy and start reading right from the device. The rant mainly focuses on how badly the kindle formats technical books. I need a platform that handles technical books well.

And I think you are right. The iPad may be the best platform for books in general. But a lot of that will depend on whether Apple can convince publishers to bring their books to the iPad and if pricing remains close to the Kindle eBook prices.

Matt said...

Hi,

It is unfortunately a mistake to assume that the ePub publisher will have made a good font choice: they may have made a choice which is good for the person producing the book, or for some market-tested group, but not for every reader.

One of the huge advantages of an ebook over a pbook is the (sadly theoretical, as some reader software doesn't do this) ability to change the fonts, the colours, and all that.

I'd assumed when I bought Alice that it'd let me choose fonts and background/foreground colours as those are pretty standard options for anything not using the Adobe renderer. It'd be awesome if you'd reconsider your choice not to provide those options, as they're extremely useful.

(A workaround for some users may be to switch their machine to white-on-black mode, but it's kind of ugly as it affects everything on the display, not just the ebook.)

Geoffrey Clements said...

Hi, Sorry, no you can't change the font in Alice. Just make it larger or smaller. Internally Alice opens sections of an ePub file using a WebView. I actually prefer this since a WebView does a nice job of rendering the page AND I think books are meant to be read in sections, not by pages.

ePub files are usually just a zip file with a CSS file, some XHTML files, and some files for the ePub format in them. If you want to change the font of an ePub, or change the text and background colors, make a directory, unzip the file into the directory, edit the CSS file to make the changes you'd like, then update the CSS file in the ePub file using zip. Make sure the CSS file goes back into the same directory location in the ePub file.

I've "fixed" a few ePub files this way because I hated the font the eBook publisher had chosen.

Matt said...

I'm familiar with how ePub works, and yes, in this one instance I've modified the CSS to suit.

However, that's not a good solution for the general public, so if you don't intend your application to be usable by people who aren't up to hacking CSS then you might want to mention that in the App Store description.

Andreas Fischlin said...
This comment has been removed by the author.
Andreas Fischlin said...

Can I make sure Alice is not searching for pdf's and not displaying them and can be used to read ONLY epubs? Are such preferences available? Otherwise I have no interest in using Alice, since as a scientist I have thousands of pdf's I manage with special software tailored to the needs of a scientist and I don't want Alice to meddle at all with my literature management system for the pdf's.

Geoffrey Clements said...

Hi Andreas,

Sorry it has taken me so long to get back to you.

The current version of Alice will find and list both PDFs and ePubs. There isn't a setting to turn off listing PDFs. Sorry! (But being able to not show a type is not a bad idea. I'll add it to my list of features to work on.) As a work around you can specify which directories Alice looks in. If you only include the directories with ePubs in them, your PDFs will not be displayed. By default, Alice looks in your home folder while skipping the Library folder (so email attachments are not displayed.)

The next version of Alice will include sandboxing. (All new or upgraded apps on the App store must be sandboxed.) Currently that means removing the Library and Storage lists from Alice. Since Alice will not be able to use Spotlight to search directories other than it's own sandbox directory, there will be no files listed. Alice will only be able to display files you open individually with the open file dialog box. (Or open recent menu item.)

I'm using a development version without the lists and don't like it. I like the lists since it makes it easy to find eBooks without searching the system using the open file dialog box. If I'm forced to release the sandbox version as an update it will be at a significantly lower price since I consider the lists a major feature.

I may have a solution that will allow Alice to keep it's lists, but have not had time to code it yet. (I work on Alice in my spare time and haven't had any free time to work on it lately.)