Wednesday, August 12, 2015

Audiobooks not showing in iOS 8.4 iBooks? That's because they're still like Movies used to be. Also, The Great Courses.

Decades ago I talked about a personal dementia prevention solution. A dementia test application would be hidden in the OS, but about once a year it would randomly launch. Once it appeared I’d have to complete it — or a lethal shock would be administered. Fail the test — get the shock. The shock would look like an accidental short-circuit, so life insurance would pay out.

I like to think ahead.

I’m pleased to report that today we do have a dementia test, though we’re still working on the electric shock. The test, of course, is Apple’s iTunes and related iOS apps. If you can make them behave then you’re still a potentially viable worker; not yet ready for the Soylent factory.

I gotta admit, things are getting a bit worrisome. For example, today’s audiobooks adventure. It started when Emily decided to pick up some lectures from “The Great Courses” (which we once new as the “Teaching Company”, indeed that’s still the corporate name). We started listening to these about 25 years ago, playing cassette tapes while driving our Mazda 323 cross-country and spritzing ourselves with water spray (no air conditioning).

It’s been a year or so since we bought from them — these days I mostly listen to In Our Time Podcasts [1]. We got one of their 80% off flyers [2] though, and it was hard to resist tormenting the kids with automotive education. So we bought a few. The distribution is a bit complex — DVD or CD (for most lectures you really only want audio, but we did DVD for the $40 photography class) or “Windows” / “Mac” files [3] and (usually) supplemental streaming.

What they don’t mention is that many of their lectures can be purchased from iTunes for less than the CD or audio file download costs in iOS friendly Audiobook format. That’s a lot more convenient than their other options, and cheaper too. So I bought two lectures that way, a short history of London (#3 and I are visiting in October) and Daily Life in the Ancient World [4].

That’s when the dementia test showed up. It’s been years since our last audiobook purchase (viz: In Our Time) and everything has changed [7]. It took a couple of Google searches to figure out that Audiobooks were now tucked away in an obscure corner of Apple’s brutally neglected iBooks.app. Some dungeon-chained Apple product manager decided they could be considered a kind of “Collection”. [5]

Okay, but I’d purchased them and they didn’t show up. Why was that? My Movies and Music and book-book purchases show up in iCloud. Why not these audiobooks? Google found me some documentation, the same team that decided an audiobook was a kind of “Collection” introduced an obscure control as an attribute of a particular Collection called “Hide iCloud Books” (even though these aren’t, you know, Books. Do you see a trend here?)

So I turned that Off, so they wouldn’t hide. That’s a double negative I guess.

Except they still didn’t show up.

This began to remind me of the old days, when we’d have one chance to buy music or videos and everything was managed and backed up using iTunes. Yep, it’s just like that, unchanged from 2013. Download to your phone, and it stays on your phone [6]. No iCloud joy, no freedom from iTunes, you need the old beast still.

Just audiobooks mind you. And, of course, it’s not documented.

Apple must be a desperate place to work these days…

- fn -

[1] Still using Apple’s awful Podcasts.app. Podcasts.app and iBooks.app should chasten those who clamor for iTunes to be be divided into separate apps. Be afraid.

[2] Their pricing is a bit nuts — high list prices and large discounts. Do look for discount codes and the like before purchasing, though the iTunes audiobook prices are often quite reasonable

[3] Their audio/video file format recommendations are bit odd, but I didn’t have time to dig into it. Does Windows 10 still prefer wmv?

[4] I’ve chatted on app.net about writing a book that would describe a ‘day in the life’, from pooping to earning money to playing with kids across history and geography. So I’m looking forward to this one.

[5] Collections used to be sort of meaningful in iBooks, but that ended a year ago.

[6] Well, not quite. If you go to your iTunes purchase record, click on problem and say you had trouble downloading, the purchases are added again to the download list. I had my original purchases, but tried that as an experiment.

[7] Very much for the worse. Audiobooks had a large regression with iOS 7. iOS 8.4 is, in some ways, a partial improvement on iOS 7. Which mostly shows how bad iOS 7 was. Tim Cook has failed to rescue Apple’s long ailing software engineering.

[8] It no longer works to manage iPhone content from both iTunes and iOS. It never worked well, but these days it doesn’t work at all. iTunes can’t synchronize device and desktop states. So if you use Audiobooks, and you have any hope of sensible software behavior, you probably need to go all iTunes for media management.

Update 8/13/2015: Audiobooks not being synchronized to iPhone

I thought I was done, but the Audiobooks wouldn’t sync to my iPhone. That turned out to be a side-effect of an iOS/iTunes bug with photo sync from Aperture. The Aperture photo sync bug causes iTunes sync to silently fail (no UI indication) prior to Audiobook transfer. Removing photo sync let the process complete.

 

Tuesday, August 11, 2015

Aperture misbehaves: images that can't be moved between projects

I have a  set of images in Aperture that cannot be moved between projects. If I try to move them they are copied.

I’ve repaired permissions and done the standard database repair to no effect.

I’ve inspected the images in the Finder by exploring the Package contents and searching on the Aperture provided file names — they appear unremarkable. 

I’m afraid something in my Aperture database is broken, but I’m reluctant to do a full database restoration. I don’t know how much data will be lost. 

I fear multiple backups and a full database rebuild are in my future…

Update 

I researched this a bit, glad that a few old Aperture sites are still around. Two useful references:

I think I’ll try importing into a new project. I have a 500 GB Library on a 1TB SSD, but I can start the import into a peripheral drive tonight.

Remember when database/file system corruption was a solved problem?

Friday, August 07, 2015

Porting a landline number to a prepaid account with Google Voicemail -- then turning off the phone. Would that work?

As of today we are almost free of CenturyLink, the latest telecomm Titanic. Our final connection is a minimal (no features, no long distance) $17-20/month landline service that should theoretically support our old security system and keep our longstanding home phone number for incoming calls [1].

That’s not as good as it sounds however, since for much of the past 14 days we’ve had no phone service at all; we’ve been forwarding the home number to a cell number while we wait for CenturyLink’s second attempt to restore basic service. Even in the near term CenturyLink landline service is probably not a viable option.

There are 3 obvious alternatives excluding Comcast and simple mobile port. [3]

  1. AT&T Home Phone: $20/month add-on to our AT&T family plan, and if anyone can port from CenturyLink it’s AT&T. On the other hand, we may want to leave AT&T for Ting or T-mobile sometime in the next few months.
  2. Obihai SIP/VOIP devices with integrated Google Voice. (see also: porting to Obihai/GV by way to AT&T burner)
  3. Port to Googe Voice via AT&T burner.
I wonder if there’s a fourth alternative. This would be a prepaid plan that is compatible with Google Voicemail. I know H2O wireless can do this and it’s very cheap, but their service level is fairly spartan. Ting might be good at $9/month with an old GSM iPhone 4, but it’s not clear they support Google Voicemail (maybe on GSM but not CDMA?).
 
With a prepaid plan that had a low monthly minimum fee, we could setup Google Voicemail then power off the phone. All messages would then go to voicemail, but not use any minutes. We’d just be paying for routing to Google Voice, but we’d have the option of powering up the phone.
 
Anyone try that?
 
- fn - 

[1] It is notoriously hard to port a number from CenturyLink. As of 2011 they had a waiver for violating local number portability mandates. I think they are technically obligated to port, but few people seem to succeed.
[2] H2O wireless is even cheaper, at $40/year for a similar level of service. But H2O is a true bottom-feeder — ok for a kid phone but not quality enough for our home number. Porting from H2O, for example, is quite chancy. Other alternatives would be a Sprint or T-Mobile or AT&T burner phone, but their minimal per-month costs are likely higher.
[3] Comcast is our new internet provider. They are also universally hated. We’d prefer to keep them as the dumbest pipe possible and minimize dependencies on them. A simple port to a mobile number is higher cost as AT&T home phone without the AT&T benefits. We don’t want to change our existing mobile numbers and we don’t want to lose the home phone number (yet).

Tuesday, August 04, 2015

Switching from CenturyLink to Comcast: last rats off the sinking ship

I was on hold with CenturyLink's “retention” service. That’s where support sends customers who request escape. The first 8 minutes of hold sounded like this ...

MMMMMMMMMMMMM (music) MMMMMMMMMMMMMMMMMMM (music) RMMMMMMMMMMMMMMMMMMM…. (silence) … (music) MMMMMMMMMMMMMMMM

I heard it on my iPhone because our CenturyLink landline is dead. Again. It’s been dead for about 5 of the past 10 days, despite a technician visit.

After 8 minutes of hum-buzz the line switched to classical music and, at 17 minutes, a woman answered. I told her I was calling to turn off my internet service. She said she couldn’t hear me, and a few seconds later she hung up.

I'm filling out the MN State Attorney General Consumer Complaint form and I’ll see if switching our landline number to a burner phone forces a service kill [1]. Not coincidentally, here’s the past year of CenturyLink share prices compared to S&P and Comcast.

Screen Shot 2015 08 06 at 6 04 41 PM

Yeah, they’re dying.

Happily I switched to Comcast for Internet services today. Yes, Satan, but a Satan harried by millions of angry customers. So we have allies. On the other hand, we may be among CenturyLink’s last 10 customers. Not much help there.

For the sake of those still stuck in the DSL era, here’s are the things I didn’t know about switching to Comcast:

  • You have to browse Comcast’s site carefully to find the listing of all internet-only services available in your area. We’re in the backwoods of St Paul, our faster sister city of Minneapolis pays about 20% less for faster services. Here we have two choices, and one of them is dying. Comcast ain’t exactly sweating.
  • There’s no contract.
  • I wanted good upload speeds, so I went for the St Paul 50/10 “boost" option. I was never able to find the upload speed on Comcast’s site, but that’s where it helps to have a geeky customer base. Google found the numbers for me. My speed test is indeed showing 50+ Mbps and 10+ Mbps. It’s listed as $45/m for 12 months plus $5 in taxes/fees, then jumps to $76/month + more tax/fees (unless competition shows up here, which is damned unlikely). Installation is $50 for the minimal install, $40 for a “wall drop”. We went for a very simple closet jack.
  • Modem rental is $10/month. I needed the initial setup to work so I went with the rental for now. In 4-6 weeks I’ll order something like the ARRIS SURFboard and bring the rental unit to our local Xfinity store. Be interesting to see if/when the rental fee stops. My DSL modem was a router with NAT services, but the rental unit is a bridge. My AirPort Extreme now has a pingable net facing IP address. Feels a bit naked. 
  • I have no access to the rental modem — it’s a black box. I assume Comcast can configure it.
  • Don’t try to get any Comcast rep on the phone. It might not be as bad as calling CenturyLink, but it’s still very bad. Chat is likewise awful — they are forced to divert to a sales script and slow to answer real questions.
  • The Comcast web site is an antique. It works better on Chrome than Safari, I suspect it’s made for IE 7. Contrary to a misdirecting prompt the 1990s email client does support forwarding. It also supports RSS feeds, which would be a great trivia question answer.
  • The process of scheduling an installation is pretty good including multiple reminders. No problem there. The post-install phone satisfaction survey is too long — don’t even start it.
  • There were several things that didn’t work on the Comcast registration site. SMS authentication didn’t get through to Google Voice (spam block?) and I couldn’t add a Yahoo address as secondary email. 
  • The xfinity Connect app for iOS is probably worthwhile, I didn’t let it access contacts.
  • There are WiFi hotspots for Comcast customers but they aren’t very interesting.
  • Password (in)security involves 3 painful SecretToYouButNotToHackers questions that can’t be avoided.
  • Comcast is supposed to be able to test a modem post install for signal strength. In Saint Paul this can take an hour to work, our installer called after he left to say the signal strength was too high (we have no splitters, new cable, etc) and the modem would disconnect. So he returned and added a filter. I tried Comcast’s SpeedExperience modem test tool but it couldn’t retrieve any modem data. 

That’s it. For today, I’m happy in Satan’s kingdom.

[1] We’d wanted to keep the wired landline because we’re on a cheap home security plan. I think that’s not an option any more...

Update 8/7/2015

  • As of August 2015 this is the direct number to change service or close an CenturyLink account: 800-244-1111. My spouse, E, has magical powers honed through years of working with health insurers and schools. She called that number and had us on CenturyLink’s $20/month minimal landline service in under 20 minutes. Pure magic.
  • CenturyLink has a customer relations page to use when "you are not satisfied with the resolution of your issue after contacting one of our Customer Service Centers or one of our Customer Experience Centers”.  That page has a link to an "email form”. The link no longer works, instead you go the page for revising feature sets. Shocking :-).

Update 4/12/2016

  • Comcast has worked quite well for us. I’m watching for the expiration of our 1 year pricing and anticipating the negotiation to follow. Amazon is now reselling Comcast services — it provides clear price information for 1 year contracts vs. no contracts. We expect to switch between Comcast and CenturyLink every year or so — while I campaign for Google Fiber every chance I get.

Wednesday, July 22, 2015

Building and sharing Google bike (and other) route maps using waypoint defined computed routes

I used to do bicycle maps using Google’s Map Creator / “My Maps” tools, but for me it was a frustrating process. I never quite got the hang of the building, and sharing never seemed to work well.

Now I create bike route maps by entering sequential waypoints, and letting Google handle the routing between them. It takes only a few minutes and I can share the results as a short Google URL. I can send the maps to Google Maps.app on my iPhone, put them in a blog, create a document of my routes, save them as bookmarks, etc.

Here’s a sample of the process, with a map that starts at locally famous bike spot - Angry Catfish Bicycle and Coffee Bar. (You should figure out your general route before you do this process).

1. Search for your starting point, then use the “three line” Google menu to turn on Bicycling. (you may need to turn it on more than once)

 Screen Shot 2015 07 22 at 9 47 00 PM

2. Click Directions and put it into bicycle mode. Notice the choose destination field. Click in that field to be sure Google is in the right mode, now click on your next waypoint.

Screen Shot 2015 07 22 at 9 51 36 PM

Screen Shot 2015 07 22 at 9 52 39 PM

Notice you’ve go two map destinations and that Google has figured out a route using the bike trail.

3. Keep building your route by adding way points. You do have to click back into the ‘choose destination’ field so Google understands the context. Once you click a point then hold (don’t release) you can drag the waypoint and watch Google add your route. Release when you get to a key turning point or point of interest. For example:

Screen Shot 2015 07 22 at 9 58 23 PM

4. Here’s the complete loop (1h, 6min). It has a wiggle in the top right I don’t like, I’d rather stay on the trail. I could have redone the route by adding a waypoint on the trail, that would prevent the diversion. Or I could just do a custom route by clicking on handles and moving them as below:

Screen Shot 2015 07 22 at 10 02 13 PM

Screen Shot 2015 07 22 at 10 04 21 PM

5. It really only takes a few minutes to get to this point. Now tap Google’s 3 bar (hamburger?) menu and choose share. The URL looks like this:

https://www.google.com/maps/dir/Angry+Catfish+Bicycle+and+Coffee+Bar,+4208+S+28th+Ave,+Minneapolis,+MN+55406/Minnehaha+Creek/44.9240882,-93.1976693/44.9417637,-93.198409/44.9504289,-93.2486649/44.9318804,-93.2501599/44.9271569,-93.2322561/@44.9285992,-93.2165955,14z/data=!4m24!4m23!1m5!1m1!1s0x87f62844b2ef9ac1:0x238cfef7316e9d8b!2m2!1d-93.2325294!2d44.92653!1m5!1m1!1s0x0:0x2d1439632b6ee239!2m2!1d-93.2247432!2d44.9175766!1m0!1m5!3m4!1m2!1d-93.1994777!2d44.9467264!3s0x87f629dd3802980d:0xad4046ce8178a45c!1m0!1m0!1m0!3e1

but it also offers a short form:

https://goo.gl/maps/9Kwhf

Sure beats using Map Creator. 

Sunday, July 19, 2015

Airmail 2, Postbox and Mailbox for OS X access to Gmail -> I'm back to mail.app

I think OS X Mail.app for Yosemite is a pretty good Gmail client. The one big problem is that one must download the entire archive, though there is an option to omit automatic attachment download. That’s fine for my primary machine, but I don’t want to burden my 256GB SSD with 20+ GB of Gmail archive. So I went looking for a Gmail client.

I used Sparrow years ago and liked most of it — except the obligatory threading and conversation views. If an app is going to do that, it has to let me quickly delete all the emails I no longer care about. Sparrow didn’t.

Sparrow’s gone of course. More recently i used Airmail with some success, so I tried Airmail 2. That was … frustrating. I ran into multiple bugs and UI issues when I migrated from Airmail 1, so I tried again with a fresh start. This time while sending an email I got an authentication failure. No problem — I quit and fixed the error (I think). I then went looking for the stalled email and … it was nowhere to be found.

I deleted Airmail 2. (That was money wasted.) I then tried Mailbox.app — forever in beta, mostly abandoned, and you can’t delete individual messages, you can only delete an entire conversation. Deleted Mailbox.app. Next up - Postbox.

Postbox doesn’t support Google OAUTH2. I read the documentation on enabling “Access for less secure apps” and … I deleted Postbox.

So I’m back to Mail.app. I disabled automatic download of attachments in preferences, but I guess I’ll just sacrifice the disk storage. I considered enabling Google’s IMAP folder message visibility limits, but of course that would apply to my server too. I think in past Mail.app had some control over message downloads, but that’s gone now.

The bright side is I don’t mind Mail.app. Just hate the lose the storage...

Update 7/18/15: With ‘automatically download attachments’ off, selecting Inbox and choosing Account Info from the Context menu tells me that 80,309 messages are using 4.35GB. I can live with that.

Friday, July 17, 2015

So you want to actually restore from that Time Capsule backup? Do you feel lucky punk?

Yeah, I know he actually said “Do I feel lucky?”. But you get the point.

By now even the most hard core Apple apologist must have moments of existential doubt. Waking at 3am thinking, if only for a moment, that maybe Tim Cook really is the antichrist. 

The rest of us are moodily throwing darts at Apple stickers, wondering if Atari [3] might reconsider the personal computer market.

Time Capsule is typical of the 2015 Mac. The problems have been around for years, hope has all but vanished, and it’s possible things are even getting worse. On the other hand, there aren’t a lot of great choices for network Mac backup. Retrospect, which I loved in the days of DAT tapes and SCSI drives [1], effectively died years ago [2]. The best alternative may be Code 42’s Crashplan cloud backup, but that requires serious bandwidth (up and down) and a lot of confidence in a remote corporation. Also … java (ugh).

So I use Time Capsule for most of the machines in the house, but keep data on a server that’s also Carbon Copy Cloner cloned nightly [4]. 

This is what I do when I need to actually restore from Time Capsule [5]. If I don’t follow these steps restores will often hang and fail.

  1. Shut down every machine on my network.
  2. Power cycle my Time Capsule.
  3. Gbit ethernet connect the target machine to the Time Capsule and restart that machine.
  4. Log into my Admin account and start Time Machine.
  5. Choose a date/time as needed. Set an 5 minute time and walk away. (Trying to interact immediately will be immensely frustrating.)
  6. Navigate as desired until UI stops responding. Set an 8 minute timer and walk away.
  7. Return, select a file, and complete the Restore.

Yeah, Time Capsule has a scaling problem — restore times seem to have a non-linear relationship to the number of files on the source machine and the number of backup versions.

It’s good to have a way to proceed though. Just in case Carbon Copy Cloner isn’t enough.

Update 7/19/2015

app.net@martinsteiger writes: “Time Capsule NAS is slow and unreliable, it shouldn't be used for backup. With a NAS up to par, even with a 2-drive model from Synology like the DS21n+ models, Time Machine works fairly well.” Installing and configuring a Synology NAS isn’t terribly hard, but it’s definitely geek-realm. I agree that whatever scaling and reliability issues Time Machine has, the root problem here is mostly likely that Time Capsule is grossly underpowered for its primary function.

Update 10/20/2015

My Time Capsule’s WiFi function died, so I took the opportunity to buy a Synology and I’m testing Time Machine backup. There I read that enabling Synology’s native encryption will dramatically reduce performance. I have been using Time Machine’s native encryption for the backup of my 2009 iMac — a machine that probably lacks dedicated encryption hardware. I wonder if the awful restore performance is encryption related...

- fn -

[1] Ok, so SCSI is a good reminder that the golden age had nightmares too.

[2] I tried Retrospect again a few months ago. Wasn’t pleased. My guess is that it’s architecturally a poor fit to OS X.

[3] Atari died in 1983. They were an early competitor to the Mac and Amiga, pre-Windows.

[4] With CCC versions are archived separately. A pain to recover but it can be done. CCC can backup to a network image, but OS X Mavericks and beyond use SMB2, and SMB2 doesn’t support sparsebundle mounts. You have go through some gyrations to do an AFP mount instead. I am trying this out. I rotate my CCC backups off site across 4 encrypted drives, so I always have at least 5 backups of my data using two different technologies.

Actually, I also do Aperture backups to a local high capacity drive using Aperture’s build in backup tech. So for Aperture images I have 6 backups using three different technologies. And I know that won’t be enough ...

[5] I’ve never had to use Time Capsule for a real emergency. I’ve always been able to use my CCC clone, but I periodically test Time Capsule to see if I can make it work.

Thursday, July 16, 2015

How to view OS X hidden (unix) folders using TextWrangler

I thought there was a way to view hidden OS X Unix folders like bin, etc, home, Network, private, sbin .vol etc using Bare Bones Software's free TextWrangler but I couldn’t figure out how to do it. I wondered if this now required BBEdit, but the comparison chart didn’t mention anything.

It’s in the manual. Yeah, TextWranger, which is free, not only has Help file, it also has a (superb) manual:

Opening Hidden Files Turn on the “Show Hidden Items” option in the Open dialog to display hidden files (including both files whose invisible attribute has been set, and those whose names begin with a period) or files from a folder which is normally hidden by the system.

Screen Shot 2015 07 16 at 11 28 17 AM

When I turned it on I had to navigate the folders to force a refresh, but then they all showed.

I’d been hunting around for a preference settings, but it’s part of the Open dialog. I’ve gotten so used to utterly undocumented applications that I didn’t think to look for a manual. Google was no help … but maybe it will be after I post this.

Wednesday, July 15, 2015

Photo slide show screensaver on Mac - network share and Yosemite's reversion to default. A workaround.

I have never been happy with how OS X handles anything to do with file shares, I think Windows does a much better job.

Which, if you know anything about Windows network services, must mean I’m a raving loon. How could OS X be worse than that?

I can’t explain it. My experience is that, for no good reason, when requesting a file or folder from an OS X server, things often fail. Disabling sleep and hard drive rest helps. [4]

So it’s not surprising that using a server based photo collection with the OS X Photo Slideshow screensaver has always been problematic. I’ve really only had good success with local stores, or using local Aperture or iPhoto as the source.  I assume something hangs and OS X switches to the default photo slideshow (national geographic) screensaver, losing all memory of the screensaver you want to use.

This isn’t new, but with Yosemite it’s seems to have gotten worse [1].  Every time I opened my brand new MacBook Air on 10.10.4 I was back to National Geographic. Which is pretty, but I’ve come to hate it.

Happily, this problem is aggravating enough that there’s now a fix, which is best described in an AskDifferent post by “Flavin” (he found bug in 10.10.1, he both asks questions and answers it. I love when people return to add their answers.) The process goes like this:

  1. Set up your screensaver as desired.
  2. Run a terminal command to see the preference file values:
    defaults -currentHost read com.apple.ScreenSaverPhotoChooser
  3. Copy values into a script to write them back, where script is of the form
    defaults -currentHost write com.apple.ScreenSaverPhotoChooser … 

This is what my script looked like based on Flavi (emphases mine):

#!/bin/bash
defaults -currentHost write com.apple.ScreenSaverPhotoChooser CustomFolderDict -dict identifier \"/Volumes/ss/ss\" name ss
defaults -currentHost write com.apple.ScreenSaverPhotoChooser SelectedFolderPath \"/Volumes/ss/ss\"
defaults -currentHost write com.apple.ScreenSaverPhotoChooser SelectedSource -int 4
defaults -currentHost write com.apple.ScreenSaverPhotoChooser ShufflesPhotos -bool true

My images are in a network share /ss/ss [2]. Note in a Bash script like this quotes are escaped with slashes, hence \” to contain the string.

At this point I had the fix, but I got stuck with following the usual practice of storing it in OS X’s hidden unix file structure. TextWrangler wouldn’t show them to me [3]. So instead I put the script into a standard OS X Folder (Documents\Bash is my name) and used my favorite tip of the year: How to run a Unix shell script from the Mac Finder | alvinalexander.com. I changed the .sh extension to .command and now it’s double-clickable. No need to wrap it in AppleScript or death with BSD Unix PATH, etc.

THEN I discovered my script only worked when the remote network share was mounted. If it wasn’t mounted OS X wouldn’t mount it for me; the script would run as above but OS would fail to find the volume (“ss”) and would return to the dreaded Nat Geo. So I revised the script to mount as needed (I had a devil of a time getting mount_afp working because I didn’t understand I had to create a directory first in Volumes to be the mount point/node), and I added code to set Screensaver to Photo Slideshow borrowed from another reference.

#!/bin/bash

## Mount remote volume if not already mounted
if [ ! -d /Volumes/ss ]; then
mkdir /Volumes/ss
mount_afp afp://Thunderpaws._afpovertcp._tcp.local/ss /Volumes/ss
fi

## Set Screensaver to Photo Slideshow
/usr/bin/defaults -currentHost write com.apple.screensaver 'CleanExit' -string "YES"
/usr/bin/defaults -currentHost write com.apple.screensaver 'PrefsVersion' -int "100"
/usr/bin/defaults -currentHost write com.apple.screensaver 'idleTime' -int "300"
/usr/bin/defaults -currentHost write com.apple.screensaver "moduleDict" -dict-add "path" -string "/System/Library/Frameworks/ScreenSaver.framework/Resources/iLifeSlideshows.saver"
/usr/bin/defaults -currentHost write com.apple.screensaver "moduleDict" -dict-add "type" -int "0"
/usr/bin/defaults -currentHost write com.apple.screensaver 'ShowClock' -bool "false"
/usr/bin/defaults -currentHost write com.apple.screensaver 'tokenRemovalAction' -int "0"

## Set location of photos
defaults -currentHost write com.apple.ScreenSaverPhotoChooser CustomFolderDict -dict identifier \"/Volumes/ss/ss\" name ss
defaults -currentHost write com.apple.ScreenSaverPhotoChooser SelectedFolderPath \"/Volumes/ss/ss\"
defaults -currentHost write com.apple.ScreenSaverPhotoChooser LastViewedPhotoPath \"\"
defaults -currentHost write com.apple.ScreenSaverPhotoChooser SelectedSource -int 4
defaults -currentHost write com.apple.ScreenSaverPhotoChooser ShufflesPhotos -bool true

## Removes the .plist LaunchAgent from inside the User Launch Agent Folder.
## rm -f ~/Library/LaunchAgents/set-screensaver.plist
## killall cfprefsd

exit

Eventually I may take app.net@jws’s advice and use Watchman to fully automate a fix, but I kind of like firing this script off every time Yosemite zaps my slideshow of 100 years of family pictures.

- fn -

[1] Maybe related to this Mavericks change? It’s not the only thing that’s gotten worse over the past 1-2 years of course. My current explanation for the Hot Mess that is Apple software 2015 is that during the Jobs era and shortly thereafter Apple incurred massive technical debt and they are slowly and painfully trying to fix it, while shedding expertise like water off the proverbial duck’s back. An even more worrisome possibility is that Apple is now a typical corporation.

[2] Why the redundant ss? Historic reasons. The network share is a thumb drive sticking out of the back of a Time Capsule, so there’s no authentication needed.

To get the path of a folder just drag the finder icon into Terminal and the path will render.

[3] I’ve run into this before I think, but I can’t remember if there’s a setting I’ve missed or … what. Maybe it’s a BBEdit only feature, but it doesn’t show up in the TextWranger vs. Bbedit comparison page. Google was no help at all.

[4] I wonder if it’s because OS X often stores references to “mount points” (Volumes/…) but mount points have to be associated with network addresses, and those are not stored. Note my script should really check for the network access, not the existence of the Mount directory, but I don’t yet know how to do the former.

References

 

iOS 8.4: Spotlight not showing Bing results? Your email index may be corrupted.

Recently Spotlight stopped offering me Bing results (or Wikipedia). Power cycling the phone didn’t help. I tried the usual Spotlight fix in Settings:General:Spotlight of turning off all search results, exiting settings, confirming searches return nothing, then turning them back on. Didn’t work this time.

After a bit of experimentation I found Spotlight worked as long as I didn’t include mail search. Not unexpectedly, when I tried searching within Mail.app search would hang for at least 30 seconds (when I gave up). 

The fix was to remove all of my email accounts entirely - it wasn’t enough to simply turn mail off. I then restored them [1] and now search works within Mail.app and also within the Spotlight UI — including Bing results.

I assume Spotlight performs searches in sets, and when it got to the set containing Mail it got hung up, returning nothing and blocking returns from later sets in the execution pipeline.

I decided I don’t like getting Mail results back in search anyway, so I turned them off. I do like being able to search Mail, so the fix was important.

My spotlight enabled searches are, in order:

  • Applications
  • Contacts
  • Events (I use Calendars 5.app primarily, but I enabled Google Calendars in Calendar.app to support Event search. Sadly iOS still needs Google’s ugly SyncSelect hack. OS X doesn’t need it, so I blame this one on Apple and their (assumed) monstrous technical debt problem.)
  • Spotlight Suggestions
  • Bing Web Results (also Wikipedia)

I only use iOS Reminders for short term things (use ToDo.app) so I omitted that. Similarly I only use iOS Notes for transient items, so I omit that too (use Simplenote.app, despite it’s #$@$@ tag limitations). Messages, Voice Memos, Music, Podcasts, Videos and Audiobooks never made sense to me as items to include in Spotlight search.

[1] I had to redo my settings of course, including digging into preferences to make Google Delete when it damned well should Delete. I set it only save the last two weeks of email to reduce burden on the evidently unreliable indexing engine.

Sunday, July 12, 2015

Facebook event sharing - July 2015

Facebook Events (calendar items) exist in some sort of Facebook twilight zone. Neither completely abandoned, nor entirely useful. You can, for example, subscribe to an Event stream in Google Calendar. That’s a useful move.

Even public events are rather hard to share however. Facebook’s limited (usually obsolete) official documentation suggests copy and paste the URL. As of today this also works...

  1. View Event and choose Join.
  2. Look for the (mislabeled) Invite drop down - select it.
  3. Choose Share Event.

Monday, July 06, 2015

iOS - apps showing multiple times in search?

This is an easy one.

Do an iOS Spotlight search, see an app multiple times… means Spotlight needs to be rebuilt.

Go to Settings for Spotlight, uncheck all. Exit. Try search - nothing happens. Now add back applications, etc.

Wednesday, June 24, 2015

Porting an H2O Wireless (AT&T MVNO) to AT&T

(Original 6/24/2015, updated 64/28/2019 when ported last number to AT&T)

When I last wrote about H2O Wireless, our kids dirt cheap mobile carrier, I mentioned that our daughter’s texting costs were bringing the monthly H2O fee close to the $25/month device fee on Emily and my AT&T account. 

The move has come sooner than I’d expected, because in the process of debugging her iPhone [1] with some SIM swaps we lost all data access. I tried contacting H2O wireless to see if they had a fix, but I couldn’t get through. I didn’t try too hard — the H2O web site is increasingly clear that prepaid plans aren’t supposed to have data access. I figured we were living on borrowed time.

Our first attempt at porting failed though. I did it at an AT&T retail store; they had the impression we couldn’t port an AT&T MVNO number to AT&T because the porting software wasn’t designed for that use case.

i was going to let things lie for a bit, but then my daughter started getting 2-3 AT&T texts a day demanding she finish her porting. When I called up to stop the bloody things I was transferred to the “porting department’, where I ran into one of those miraculous people who actually know how things work.

Turns out the problem was not the MVNO to AT&T port. The problem is that nobody knows what the account number is for an H2O Wireless prepaid account. H2O’s correspondence and web site imply it’s either the phone number for the H2O phone or my phone number associated with the master account and credit cards.

Wrong. The account number is the SIM Card number, known to iOS settings or iTunes as the ICCID number. In addition you need to know a “passcode”, which is typically the last 4 digits of the ICCID number (supposedly customers can change this, perhaps from an H2O SIMd phone).

An AT&T porting center expert told me when the port was authorized, then I went back to an  the AT&T store to complete the process (create a database relationship between IEMI (phone ID) and ICCID (SIM card ID)) and pick up a new SIM. Our daughter’s phone service continued until the AT&T rep complete the process. There are a few things you need to do before completion:

  • Delete the H2O profile if you have one. This is hard to find in iOS 8; it’s in Settings:General then “Profiles”. You need the H2O profile to get data on an H2O SIMd phone, but if you don’t remove it you won’t have data posts transfer to AT&T. (You can remove it after transfer and you’ll get data.)
  • Log out of Message and FaceTime — these have their own authentication mechanism and they may get confused by the SIM swap.
  • If you’re using Google Voice for voicemail remove it. (Restore post switch or just use iPhone Visual voicemail — if Google’s directions don’t work see this page.)

On our no-contract mobile share account we were charged $15 $30 for adding the phone [Update: cost doubled between 2015 and 2019]

After you confirm voice and data services on the newly activated time enable Message, FaceTime and setup visual voicemail.

[1] An old 32GB iPhone 4S we fondly call the “DemonPhone”. It has been my primary tech support pain for years — possibly due to occult hardware issues, but also due to Apple’s bugs, DRM flaws, and hacked together online services. H2O hasn’t necessarily helped; adding a low quality and low service mobile carrier to a buggy phone puts the D in Demon.

Update 8/3/2015

Ting.com has a priceless resource on phone number porting, including H2O wireless.

  • account number is the ICCID of the SIM card
  • To find account number you need to call H2O wireless. Try 800-643-4296. They will provide you with the secret account number, it’s not available otherwise. You’ll need to provide the last 3 numbers dialed.
  • PIN is the last 4 digits of the SIM card ID/ ICCID

Because AT&T usual porting tool doesn’t work with MVNOs, or perhaps because I’m on a corporate discount account, I needed to do this at an AT&T store. It took at least 30 minutes of rep time.

Incidentally, I’m separately looking at porting a CenturyLink number to a burner phone then to Google Voice — hoping that will also kill my CenturyLink service (really, Comcast may be better, if only because more people hate them). That information is harder to find. I’ve read two theories on the CenturyLink number porting (number security) PIN both from a single source (the lack of information is a rather strong hint that CenturyLink is quite dead).

  • last four digits of account holder’s SSN
  • the 3 digits that follow the CenturyLink phone number on a billing statement (not including a letter that may follow those digits).

My guess is the SSN, but I’ll write a post about what happens.

Update 9/4/2015: What happens when you screw up a port and the number gets stuck.

Months after I wrote this I had to port another number. Unfortunately I relied on memory rather than reading my old notes; I tried the port at the store and messed it up. I should have done it through my AT&T account and just gone to the store to get a new SIM. This resulted in a stranded phone number — H2O’s account system couldn’t work with it but AT&T’s port eligibility page said it could’t be ported.

I knew H2O couldn’t fix the problem (their support staff is hapless), so I called AT&T’s porting service directly (888-898-7685) and “Darlene” fixed it. She spent about 30 minutes on hold with H2O then called me back.

I took the phone to the AT&T store, but ran into a confused rep. He didn’t understand how to finish the process. The clue was to say something like “check port status”, from that he found the right screen and quickly completed the port.

Saturday, June 20, 2015

iOS 8 Compass.app will let you copy coordinates if you do a long press

During a recent bike adventure I was frustrated that I couldn’t copy coordinates from either Google Map or Apple Map. I think I used to be able to do that - but no more. Compass.app would show coordinates, but I couldn’t copy/paste ‘em. Best I could do was a screenshot of what Compass displays.

There’s a convoluted way to do it …

Messages, Details, Send My Current Location -> gives a tappable link, then get info on location gives apple map URLs with coordinates

The map URL is interesting, but I wanted something better. Once I was home I paid $1 for Nav Clock.app, a primeval iOS app that, among other things, shows coordinates in portrait mode and local sun related events in landscape mode. If you tap your finger carefully (it’s picky) on the start of the coordinates you get a copy option.

Nav Clock is pretty cool and well worth $1, but I still wondered if there wasn’t a secret way to get map coordinates out of Compass.app. Seems something an engineer would sneak in. 

Jeremy W. Sherman figured it out:

Compass does let you copy out the coordinates: Long-press on the coordinates and hit Copy from the floating menu. Don’t tap - that bounces you to Maps.

It’s a non-standard UI — long but not too long press pops up a new string ‘Copy’. Tap ‘Copy’ and you can paste degrees, minutes, seconds N and W.

As best I can tell this has never been documented. It’s a secret…

Wednesday, June 17, 2015

In praise of ClouldPull -- bring your Google Drive files to your Mac's local storage

There are a lot of spreadsheet and documents on my Mac, representing years of work, that have contents that look like this:

{"url": "https://docs.google.com/open?id=17c7ZAr5....XI”, “doc_id”: “17c7....VloXI”, “email”: “jgordon@kateva.org”, “resource_id": "document:17c7Z...unVloXI"}

Yes, they’re stubs referencing data stored in Google’s cloud as “Google Docs” and “Google Sheets”. That’s what Google puts on Google Drive on my Mac, and why so much data takes up so little storage. (Beware, however, of Google Drive/Photos integration. That’s bad news.)

It means that I don’t really have ownership of any of those files. I can use Google Drive to “reorganize” my Cloud drive, but I generally can’t work with that data offline [1].

Which is one of the reasons I like CloudPull - a $25 Mac app that still runs on Mavericks [2]. It creates local backups of my Calendars (VCALENDAR), Contacts (VCARD 3.0), and my Google Drive. I can ask for a complete backup, or I can only create backups for Google doc (as Microsoft Word, dock) or Google sheets (as Excel, .xlsx) and let Google Drive handle all the readable files.

It even holds 1,500 Google Reader liked articles left over from the end of Reader.

The data is stored in my User Library Application Support folder, but I really should move it back into my Docs folder.

Most of the time I can ignore all of this content, but it’s a great reassurance to have it at hand. Every Mac user of Google Services should own CloudPull.

[1] So when I drag something out of the drive, and it’s “deleted”, what happens if I open the stub file? What does Google do to enable offline use, and how scary is that? Curious stuff.

[2] I’m going to Yosemite with 10.10.4. Too many apps need Yosemite now, and as good as El Cap sounds it won’t be ready for me before Feb 2016.