Saturday, August 03, 2013

How to get a reasonable plaintext listing of calendar events using Google Calendar or OS X Calendar.app

I despise Outlook as much as any other geek, but, damn, there are things I miss when I'm on my Mac with Google Calendar and/or Mountain Lion Calendar.

To put it delicately, calendaring on the Mac is a flaming wad of misery. Google is only a little better. Simple tasks, like a plaintext agenda view one's Calendar, are mysterious or impossible on the modern Mac. (Classic had much better Calendar tools.)

Here's one way to get a plaintext agenda list from Google Calendar.

  1. From Calendar list go to Calendar Settings.
  2. In Calendar Details click on HTML to get web view of your calendar. Go to Agenda view and you can now select a range of dates and paste into your preferred text editor.

For extra points, you can use the top-secret multiple-calendar web sharing feature and get events from more than one calendar.

Update 8/4/13

In Calendar.app Day view you can:

  • Select Calendar
  • Click mini-calendar for start date
  • Click on an event at start of that day
  • Click mini-calendar for end date
  • Shift-click on event at end
  • Paste into text editor

The result is pretty much the same as using Google Calendar.

Or you can search on either '.' or "Kind:Event" in Calendar and select a range from the search results. The '.' search works in Google Calendar too, though in 10/2020 it gCal mysteriously omits some dates from some feeds.

Update 8/4/13b:

iCalBuddy is a terminal app that can "get lists of events and tasks/to-do's from the OS X calendar database"; results can be displayed on the desktop. It was very recently updated, so should be fine on Mountain Lion.

Thursday, August 01, 2013

Kobo Glo: Mini-Review

After much deliberation, and on the advice of @la and other appnetizens, I bought a Kobo Glo from, oddly enough, Common Good Books.

I ended up with the Kobo Glo largely because I can't quite persuade myself to buy the current generation of iPads, my experience with the original Nexus 7 was disappointing, and I assume the Nexus 7 Retina will have awful battery life. At the same time I wanted an ePUB reader for compatibility with iBooks.app and Google Play, and because Adobe's DRM can be removed. I also wanted simplicity of mounting/charging and transferring files via USB, and the expansion of a (micro) SD card option.

So I was left with buying either an eInk Nook or Kobo. I disliked the Nook because the one I tried was misconfigured to do an eInk full screen refresh every page; I was left with an unfair impression. It helped that while is US presence is slight the Kobo seems to have a good international market -- and Kobo's marketing angle is 'freedom' (though I think they use the same Adobe DRM as Google Play and Nook).

I paid $130 for the Glo plus tax. No bargains this time around; it seems to cost the same online. It comes in a compact box with a slender setup guide and a micro-USB cable (no charger) and no slip case or cover.

My initial experience was not good. I connected it to my Mac and ran the setup using Kobo Desktop, which seems to be a well behaved and digitally signed Mac app. After initialization an update started, but it behaved a bit oddly. I had to pull the USB cable to get the update to commence, but then I feared power loss and reinserted the cable. Although it seemed to behave and register normally, the Kobo didn't recognize any of the files I put on it via USB desktop mounting. It also, I later realized, was not showing the proper 'connect' dialog on USB cable connection.

So next I did a factory refresh, and this time instead of a desktop setup I did a WiFi connection setup. The device updated again, but this time it took far longer for the update to continue. It seemed to be stuck, cycling between progress indicators for minutes -- but I ignored it and, somewhat to my surprise, it eventually restarted. I completed my registration using the painful onscreen keyboard.

After the refresh and registration I was able to drag files to the Kobo and they were processed on device. I'd forgotten how compact ePubs are, and how big 2GB is. At 1MB or so per ePUB it will take a long time to use up my remaining 1.35 GB -- even if I don't use the micro-SD card slot.

My initial impressions are guarded; I think the iPad Mini Retina will be a better reading experience -- but it will cost far more and it's not yet available. My iPhone 5 has a better screen, but it's small for reading technical books. The mandatory eInk full page flicker, which occurs at least every 6 pages, is annoying.

On the other hand, the battery life is at least weeks long. It is a boring black and white device, so I don't have to worry about the kids fighting for a turn. When I buy my iPad Mini it will still be a useful device for someone else.

For the moment I carry it in a cloth pouch, I'll see how the plastic screen holds up.

See also:

Sunday, July 28, 2013

More ePUB (eBook) management options: Google drive + iTunes Symlink, upload to Google Play (Corrected)

I was a big fan of Google 1.0; Google 2.0 is bit of a rabid dog. Still, it has its uses.

I've previously noted that the Google Play Store is the best eBookStore for iBooks fans. Since then I've learned of two more Google eBook advantages:

  • I can put all my eBooks into Google Drive, then create Symlinks [2] that sit in iTunes. iTunes properly syncs my eBooks to my iPhone. Since the eBooks are in Google Drive, I can access them from work, etc.
  • I can upload all my non-DRMd ePUB files to Google Play. That means I can view them on any Mac using Chrome (or Safari) and the Google Play site. Even my ancient G5 iMac. No need to wait for Mavericks.

The second of these ought to embarrass Apple.

[1] I've used BookReader for OS X, but it doesn't render all books perfectly. Adobe Digital Editions does a bit better, except when it crashes on startup (Delete the Adobe folder in /Documents).

[2] We really need a version of "SymbolicLinker" for the App Store. The old version doesn't work with Gatekeeper; I think there's a ML bug with 'whitelist' services. I'm back to using 'ln -s'.

Update 8/7/2013: Three corrections.

  • There's no need to go crazy and create Symlinks. Turns out a regular old alias works at least as well if not better. So I put my ePubs in Google Drive so they can be accessed from any of my desktop machines, drag a Favorite on top of the Library Books icon in iTunes 10 (I'm resisting iTunes 11), and it's magically on my iPhone too. From Google Drive/Library I drag to my Kobo. I also put many on Google Play, though that's optional (and eventually I expect Google to unify Drive and Play).
  • If you want to keep only one copy of a file (what's 2-3MB nowadays?) you need to turn off "Copy files to iTunes Media when adding to Library".
  • If you do want a version of SymbolicLinker for OS X, just use AppleScript. jonn8n posted this script in 2006 and it works well on Mountain Lion. Since it's not signed code when compiled I had to choose 'Open' once from the context menu so it would work thereafter.

Update 8/7/2013b: More corrections

  • Even though I have "Copy files to iTunes Media when adding to Library" unchecked, iTunes 10 resolves the alias and copies the books anyway. Sigh. Looks like a bug, no idea if it's fixed in 11.

Update 8/9/13: I got iTunes 10 to use Aliases pointing to the file on Google Drive. Trick is to first create Alias on desktop, drag those to iTunes, then delete them from desktop.

Friday, July 26, 2013

Review: Maxell AirStash WiFi media server: iTunes movies to iPhones for long car trips

The Maxell AirStash Wireless 8GB Flash Drive [1] is designed to stream movies to kid's handheld devices on long car rides [3]. It probably has other uses, such as backing up photos or serving music, but I think movies is what everyone buys it for. That's why we bought it -- so we could stream iTunes purchased FairPlay DRMd .mv4 movies and television episodes to our 3 kids devices.

So, did it work?

Yes, but, unfortunately, not very well. I was able to stream The Avengers (iTunes SD) to two devices fairly well, but once I added a third device watching the same movie the stream became unreliable. The device is supposed to be able to stream 3 movies at once, but perhaps they mean 3 different movies. Or, more likely, it can't really stream 3 SD resolution movies at once. I suspect it can stream 1 HD movie, 2 SD movies, or 3 movies ripped to iPhone screen resolution [4].

Since we have 3 kids, this isn't a great solution. We might still consider using it, but the SanDisk Connect 64GB Wireless Media Drive Streaming is supposed to be available in the next 1-2 weeks. It is less expensive, has much higher starting capacity [2], and claims to stream a movie to up to 5 clients (so probably 3). We've processed an Amazon return on the AirStash, but we may still keep it if we can't get the SanDisk in time for our trip.

Beyond the disappointing, but not surprising, performance issues I'll quickly list a few observations:
  • It's a bit bigger than it looks in the Amazon photos, it can fill a good portion of an adult hand. It fit the chargers in our van, but for some USB chargers you'll need a USB extension cable.
  • Although it has an internal battery, it's clearly designed to run off a car USB charger. The manual suggests leaving it in the charger.
  • It's a pain to turn on/off. I'd kill for a simple switch instead of these quirky push buttons that require a manual to use. The indicator light is worthless when the device is charging, I found I had to unplug it to know it's power state.
  • It takes about 15 seconds to boot up, so be patient waiting for WiFi to appear.
  • The AirStash is controlled by the (WebDav client) iOS AirStash+ app configure settings. You can use this to rename it and play media. FairPlay DRMd media is passed to Safari [5], Safari in turn passes it to iOS QuickTime player (videos.app). As long as the DRM on the movie matches the iTunes account on the iOS device then the movie will play. There are no chapter controls, you can often move through the movie timeline but not always. For a single user movies play well.
  • I was able to lock up iOS AirStash+ fairly easily and had to kill and restart it several times.
  • On initial use I was told a firmware update was available. The installation directions were poorly worded, and, again, it's hard to see the power/firmware update status light when the device is charging. It worked after some fiddly.
  • I don't think you can stream a movie when it's connected to a computer. I'm not positive, but it didn't seem to work in my testing. It's fine when connected to a power supply.
  • You can put movies directly on the FAT32 formatted SD card or plug in the AirStash and it will mount. You can use Folders to organize your media.
  • It comes with a plastic cap that doesn't fit on the end of the AirStash. So it will get lost pretty quickly.
  • When I typed 'airstash.net' into my desktop Safari while connected to the WiFi I did not get anything back. It's supposed to show the file system, can't say why that didn't work. I didn't pursue further since I won't use the device that way.
  • I didn't test how it behaves under prolonged load, but I'd be sure to keep this near a cooling vent in the car. Heat dissipation must be a challenge and prolonged overheating destroys devices like this.
  • I was able to use a 64GB SONY SD Card with the AirStash, but I had to reformat it to FAT32 on my Mac. [6]
See also:
- fn -
[1] The AirStash ships with an 8GB SD card, which is really only practical for testing. You can buy a 16GB version, but obviously that's a waste of money. Most will buy the 8GB AirStash then get a 64GB to 2TB SDXC card - but see [6].
[2] 64GB internal, plus external slot available.
[3] It is perhaps not obvious why one would want this. It's a pain to put movies on/off iPhones when traveling, this way we could take our video library with us.
[4] I suspect the ideal use case would be someone who (illegally) rents Amazon DVDs and rips them to iPhone resolution, building a compact library that is streamable with a relatively low powered device.
[5] Safari is disabled on our kids phones as a minimally effective parental control measure.
[6] SD cards above 32GB come exFAT formatted, and the AirStash won't read Microsoft's patented exFAT. Which is how I learned that whereas Windows machines won't format FAT32 above 32GB, Mountain Lion will happily do at least 64GB and the (Linux powered?) AirStash will read it.

Update: My Amazon review (A minimally edited copy of this one). I'm going to test streaming from my MacBook Air.

Update 7/27/13: Ok, forget the SanDisk: "SanDisk’s drives don’t work with video content you buy from Apple’s iTunes Store at all". So they didn't figure out the Safari workaround AirStash uses. Guess we'll try to make the AirStash work after all.

Update 8/26/2013: We used the AirStash daily for two weeks and it worked quite well. Note we ONLY have SD movies and a lot of what the kids stream is animated and uses much less processing and bandwidth. Also, it was in practice rare for all 3 to stream video at the same time. So, despite failing my 3 stream test, it worked in practice. Kids had no trouble with the necessarily awkward viewing via Safari.

The biggest problem is that the AirStash, with its protruding USB and big body, is an accident waiting to happen. One child stepped on it and partly broke the plastic body. It continued to work, only insert with a flexible USB extension cable and making a protective container from a plastic "tupperware" dish.

The biggest annoyance is the on/off switch switch. I'd love a simple on/off slider. It was often hard to tell if the device was running.

Update 3/27/2014: You can use the AirStash to move files between iOS devices - including ePub files. It shows up as an option in the iOS share list in many apps; from AirStash.app use the copy function to move to AirStash device. Firmware updates are scary; if you plug it into a Mac you need to Eject before update will commence. Really, when doing firmware updates, plug it into a plain charger.

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.