Saturday, July 13, 2013

EPUB and DeDRM: Why Google Play Store is the best eBookStore for iBooks fans. (Bonus: Fixing Adobe Digital Edition crash.)

KSM was waterboarded 183 times [1]. His case was unusual, but it explains why American prisons are widely admired by the wrong sort of people.

Why do I mention this? Because, under the DMCA, circumventing encryption can win an extended visit to a US prison [2]. Even describing encryption circumvention is illegal for Americans; so posts on the topic are either naive or a minor form of civil disobedience. [8]

So, if you are an American, you should read no further. We can read Apple Store EPUB [5] files on iBooks.app, but not on a Mac [3] or a Win desktop. 

If, however, you are a Mac user and a citizen of a civilized country, you can fix this. You can take advantage of Adobe's relatively weak ADEPT DRM [4], which means you can buy ePub formatted books from Google Play, Nook Store (for now, anyway), and Kobo, strip out the DRM, and use them with iBooks.app, BookReader for OS X, Adobe Digital Editions for Mac/Windows [6], and other eBook readers.

There may be other ways to strip DRM, but most of the appnetizens I know use Apprentice Alf's DeDRM plugin for Calibre, or his related DeDRM Application. Alas, I couldn't prove that DeDRM worked on my two purchased Google Play books -- they are both DRM free! I was able to download them [7] and display them in BookReader, iBooks.app, and Adobe Digital Edition. BookReader had character set issues with one of the ePubs, but both rendered correctly in Adobe Digital Edition and iBooks.app.

(Update 8/7/13: See Using Calibre and DeDRM Plug-In to remove Adobe DRM from Google Play .ascm ePUB files)

The next time I buy a DRMd book though, I'll get it from Google Play and test out DeDRM. With DeDRM and Google Play I'll have my EPUB books on iBooks.app and BookReader -- and I'll also be able to view them using Google's web interface to EPUB books. Not to mention Play Books.app!

PS. I keep my EPUB books in iTunes, so the simplest way to get at them from the Finder was to save a Spotlight search in iTunes Books folder for ".epub". From that view I can right click on a file to open in Adobe Digital Edition (when it doesn't crash, see below) or BookReader (preferred, though it has character set bugs).

 --

[1] But stayed sane, and was thereby made immune to prosecution and execution. So bit of a trade-off.

[2] One of the ways in which most Americans (or Brits) can be legally imprisoned at any time should the state choose to do so.

[3] Many of us have wondered why Amazon put an eBook reader on the Mac but Apple didn't. I don't know, but my best guess is publishers wouldn't give Apple permission. Maybe they felt DRM bypass would be easier on a Mac than on an iPhone, which is probably true. On the other hand thesesame publishers traded their future to Amazon for a bucket of glass beads and published on the broken Adobe Digital Editions platform. I think they're simply dumb as rocks. Jobs must have despised them, which may explain some of the trouble he got Apple into. iBook is supposed to come to Mavericks, but it hasn't shown up in the beta releases so far. Note BookReader will display ePub fairly well, but not FairPlay DRMd ePub.

[4] Why is it weak? I suspect because many of the devices that use it can't be updated. So fixing the DRM would make all of these devices useless, and cut off new sales. Apple can fix FairPlay because its software gets updated. Nobody remembers that Apple couldn't update DRM on the Motorola ROKR, so those phones lost the ability to play new music.

[5] Technically it's all caps EPUB, but I'll go with ePub.

[6] Now Flash free! In my testing BookReader had character set issues with one of the Google Play books, but Adobe Digital Edition and iBooks for iPhone did fine.

[7] Go to Google Play, then to book page, then "How to Read' then eReaders and other devices - click Download EPUB.

[8] I loathe the DMCA, but, I admire the genius of FairPlay for movies and apps on iOS and OS X. If we didn't have DRM we wouldn't have a vibrant app market, and we wouldn't be able to sync movies around our devices. If iBooks were available for Mac and Windows I'd probably tolerate it for books as well -- but it still feels like the wrong model. Books last a lot longer than most apps. The revised DRM model for music, whereby buyer identification is embedded in an otherwise standard file, might be the right balance for books.

See also:

Update 7/13/13: I dragged about a dozen ePub files onto Adobe Digital Edition and it crashed. On launch. Forever.. Deleting its preference file didn't help, but I found a Digital Editions folder in my Documents folder. Emptying that fixed the crashes. Adobe stupid.

Update 8/31/2013: Just go Kindle and forget iBook

I wrote a subsequent post on Using Calibre and DeDRM Plug-In to remove Adobe DRM from Google Play .ascm ePUB files. I was able to get the process to work, but at the end of the day I realized I'd gone a long way down a dead end road.

Apple (and/or Apple's publisher partners) blew it when they failed to get "iBook" (FairPlay ePUB) support out for OS X and Windows -- not to mention Android. That was a game changing failure in more ways than most of us realized at the time.

Amazon has won this war. They own the eBook world. I should have bought a Kindle.

Broken iPhone home button: App Switcher access via assistive touch

There are lots of pages that describe using Apple's Assistive Touch to work around the iPhone's defective-by-design home button [1]. Alas, none of the articles I read told me how to get to the App Switcher (multitasking screen). On my son's balky iPhone 4 I can get a single-click to work, but a double-click is hopeless. Changing the Home-click speed didn't work.

Fortunately it's pretty simple. On iOS 6.1.3, after you've enabled the assistive touch "hockey puck" and moved it to a good location on your screen, tap once to bring up the main screen with the Home button, favorites, etc. Now tap on Device then again on "More". Multitasking at bottom will bring up App Switcher (really, it should have been labeled App Switcher - bad Apple). Unfortunately you can't create a custom gesture for App Switcher on a non-jailbroken iPhone; the iPad four finger sideways swipe doesn't work.

You can also have the home button repaired, but iFixit rates repair as "difficult". That translates as "elvish complexity" - normal humans won't be able to do this on their first attempt.  Apple may replace an iPhone 4 for about $150, but Apple has been increasing replacement charges. FirstTech, a reputable independent repair shop in Minneapolis, charges $159 for a swap, but has no separate charge for home button repair. Note a device swap should include a very useful battery refresh - but do confirm that.

CNet's four ways to fix an unresponsive iPhone home button lists a connector bend and alcohol fix approach. Gentle connector bend had a minimal effect on my son's i4. I may try the alcohol fix. It's not worth paying $150 for a device swap as he's due to inherit a 4S when Emily goes to a 5S. His 4 will become a standby device.

[1] Apparently a flex cable problem, aggravated by bending of the power connector beneath the flex cable. Changes in the design of the iPhone 5 should make this much less likely.

See also:

Sunday, June 30, 2013

Airport network configuration: Finding Mac address to put into Timed Access Control

I'll get my rant of out the way. AirPort Utility 6 was the start of Apple's year of drifting downhill. The good news is that Mavericks is giving us some hope that Cook has a balanced approach to managing complexity.
 
Ok, rant over. You are reading this because you want to Control access to your wireless network - maybe because a local teenager is still learning the network access rules. Open Airport Express and search for "Control when a user can access your network". You'll get something like this:

... Click Network, select Enable Access Control, and then click Timed Access Control.
Click Add (+) and enter the MAC address and description or name of the computers you’re letting access the network...

What the directions don't tell you is that if you're in bridged mode (extend network) you need do this on the AirPort device that assigns IP addresses, typically the one connected to your DSL/Cable modem.
 
The UI is very unclear, but I think you can enter EITHER the MAC address (media access control address -- every ethernet device has one, whether wifi or wired - it's one way devices get traced. No relation to Macintosh.) or the "name of the device" [1]. But how do you find the MAC address for, say, an iPhone?
 
This way:
  1. Airport 5.6: wifi -Use AirPort 5.6 Advanced:Logging & Statistics:Logs & Statistics:DHCP Clients from the DHCP serving device (only device unless you have bridged network like mine). You can copy paste the MAC address.
  2. AirPort Utility 6.x: Find IP, Mac, and network name for WiFi (not ethernet) devices by holding option key, then double click on the AirPort advice providing DHCP services. You will see a new 'Summary' tab, click outline icon in wireless client list to see details. The MAC address is called a "Hardware Address". You can't copy paste it (insert sound of teeth grinding).
  3. AirPort Utility for iOS: (Best). Tap each device on your network that can have wifi clients. Tap "Wirless Clients" then tap name. See IP, Hardware address connection details. You can tap Hardware Address to copy it. Mail or otherwise share it to your Mac so you can set timed access; you can't configure Timed Access from an iOS device.

From the Mac address you can set timed access control.

- fn -

[1] For an iOS device the Name might appear in iTunes, but I think spaces get replaced with hyphens. Better to use the MAC address.

Friday, June 28, 2013

Beware Apple's Epson software update 2.14 (April 2013)

I just did a routine batch of software updates for my 27" Mac, including the April 2013 Epson update 2.14. This is labeled as a printer update, but it's a printer and scanner update.

After the install my Mac locked up on boot, just before it should show the mouse icon. I pulled the firewire 800 cable connected to my Epson Professional V700 scanner and the boot completed.

After some experiments showed that I couldn't boot as long as the scanner was connected I power cycled the scanner. It was behaving oddly, I had to pull the power cord. After that I was able to boot.

I'm not sure the problem is fixed, Apple's Discussion board has a number of complaints:
I'll update this post if the problem recurs, but for now the trick was to pull the firewire cable on restart and then try power cycling the scanner.

See also:
Update 10/21/2013
  • After four months of intermittent but increasingly odd boot behaviors followed by a few days of high frequency kernel panics the flat 400/800 adapter firewire cable connecting this scanner to my firewire chain split open. So, in retrospect, this may have been the start of the firewire cable failing. In future I'm going to do a routine restart before I do updates -- just to make sure things are working before I change software. There's a lesson here about the problems of complex configurations given the limited diagnostic capabilities of OS X.

Thursday, June 27, 2013

Indexing Freemind documents for Windows Search: just add extension as free text

There are a lot of software domains that disappoint me. It's a 'get off my lawn' kind of thing. Enormous excitement about cosmetic changes to iOS 7, but nobody cares about applications for knowledge visualization. Sob.

Sure, there are some good apps for OS X [1] (though even they lack innovation [2]), but my work day is spent in the software desert of Windows 7, a forgotten platform served only by minor vendors slowly degrading once half-decent products.

On the Windows 'mind mapping' front MindManager is expensive, increasingly slow and burdened by feature cruft, and locks data up in a proprietary format. I liked XMIND for a while, but then a software update slowed it to a crawl. It also seems to have been abandoned.

So, lately, I've turned to FreeMind. Not because it's open source and free, not because there's ongoing development, and definitely not because it's a Java app or "cross-platform". I've turned to Freemind because, despite being homely [3], slow to launch, and having an eclectic UI, it has users, performs quickly when it's running, and, above all, it has the closest thing to a standard file format in the industry. A file format that's plaintext.

More and more, I love plain text.

I think I can live with FreeMind -- but only if I can retrieve documents using Windows Search. I live and die by free text search. I took a look at the FreeMind IFilter ($20) for Windows Search, but I was unimpressed with the klunky install and configuration requirements. It had a bad smell.

Fortunately, there's a simple workaround. FreeMind .mm files are plain text (did I mention I love that?). All I had to do was tell Windows Search to index .mm files as free text:

That worked.

[1] I'd love to see OMNI Group enter this market, possibly building on OmniOutliner. I use MindNode on OS X.
[2] Rereading my 10/2011 idea for implementing a graph app atop simplenote nodes I'm sad nobody has done this. If I lose my job maybe I will.
[3] Worse than homely, FreeMind currently has a major usability problem. There's nothing in the UI to tell you that a node has collapsed children. It's quite weird.

Sunday, June 23, 2013

Post Google Reader: Feedbin, Newsblur, Feedly - all disappointing at the moment

I'm scrambling as usual, so no time for a full post. I've been running through Feedbin, Newsblur and Feedly today. I paid for both Feedbin and Newsblur, and Feedly is free.

My biggest disappointment is Feedbin and Reeder.app -- the sync isn't working! Feedbin says I have 270 unread, Reeder.app says 1086. Reset didn't help. Next disappointment -- both Feedbin and Newsblur didn't get my Google Reader custom names for feeds. Only Feedly picked those up.

Newsblur (open source!) is far too social. It insists on showing me comments as I try to read my feeds. It shares to Pinboard in the web app, but not in the iOS app. No Reeder.app support. Newsblur is strict folder hierarchy - no tags, no acyclic graph organization. No URL sharing. Newsblur has best performance and most features, but so far it's not right for me. I'll try again in a month or so.

Feedly has the very irritating plugin model and no Reeder.app support. It's my emergency fall back.

Feedbin has URL type share to pinboard; that's enough for me since I use Pinboard tags to control IFTTT routing to app.net, twitter, and kateva.org/sh. Feedbin's tag model is a much better fit to my GR org than Newsblur's hierarchy. That's really big for me. I'm very glad I can now 'hide' all tagged feeds. Renaming feeds are unsubscribing is very awkward; I'd argue there's a bug with that UI. (Tip: rename feeds you don't want to 'z', then when all done with name repair save, then select all 'z' then remove.)

Ugh, this will be a hard transition. There's still no true heir to GR's basic functions, not even counting all the abandoned features it had.

If not for the Reeder sync problems I'd go with Feedbin, but that's a bad fail. For the next few days I'm happily back to Google Reader (7 days left!), I'll see if Feedbin's sync bug clears itself.

Friday, June 21, 2013

Unexpected "Welcome to Mail" on OS X Lion: restoring lost email through two pref files

Emily opened her email 3 days ago and saw "Welcome to Mail".

That's bad. It meant OS X had lost track of her mail archives. The files were all on disk, but the OS knew nothing about them.

I didn't try entering new information of course. That would have been quite disastrous. Instead I poked around and found the usual advice to restore ~/Library/Preferences/com.apple.mail.plist from Time Machine. [1]

That did nothing.

Then I found Power loss, Mail accounts gone,...: Apple Support Communities, a post that recommended also restoring ~/Library/Mail/V2/MailData/Accounts.plist. That looked good, since her current file was 1kb and the old one was 6kb. After a Time Machine restore her email was back.

Of course this doesn't explain why her data was lost in the first place. HFS+ is supposed to be journaled, we should't lose these files even in a nasty crash. So now I have to run some drive diagnostics.

Update: [1]. Oops, i should have read more closely damnit. I think the SuperUser article had the right advice pre-Lion.

/System/Library/PrivateFrameworks/ScreenReader.framework/Versions/A/Resources/English.lproj/ExceptionsDatabases/com.apple.mail.plist
~/Library/Mail/MailAccounts.plist
~/Library/Preferences/com.apple.mail.plist

Personally I wouldn't mess with /System unless the other two fail and the directory changed post Lion.