Saturday, October 03, 2015

Search is broken on Simplenote.app for OS X

The developer working on Simplenote.app for OS X took an unfortunate shortcut when coding search. That’s kind of a problem, because search is what Simplenote is about.

It’s easy to see the problem.

In Simplenote 1.1 for OS X a note that has three words in it:

blue green yellow

search on blue and you’ll find the note. Search on blue green and you’ll find it. But search on [blue yellow] and you won’t.

That’s because the developer implemented a very simple string match search (sometimes this is called phrase search, but that’s a bit grandiose). Whatever string you enter in search has to directly match a string in the note.

Now repeat the same experiment with the Web version or Simplenote.app for iOS You’ll find that [blue yellow] works, as does [blu yell]. The developers who implemented search on iOS and the  web used what I call ‘word-starts-with-search’; it means a separate index is created containing all the lexical tokens and the input tokens are boolean matched against the index tokens (see also).

I’m quite surprised the OS X app passed Automatic acceptance testing — search is feature #1 for this app and it’s very broken in the OS X version.

Thursday, September 10, 2015

Rich Text Format (RTF) died between 2006 and 2012. Without a funeral. What does that mean?

Nine years ago, when I was looking for a decent word processor (now that’s an old word, almost as obsolete as typewriter) for OS X I had a list of requirements...

Gordon's Tech: Nisus Writer Express: My Review

… It had to use an open file format. Practically that means RTF, RTFD or OpenOffice. I cannot abide yet another file format that will strand my data. That ruled out Mellel and, sadly, AbiWord. I don't care if it's the second coming of WordPerfect, it has a stupid proprietary file format. That also rules out Pages and AppleWorks...

I wanted a Mac native OpenDocument compatible word processor, but that didn’t happen (remember when the EU was going to make OpendDocument work?). So I settled, for a time, on RTF. In theory. In practice I didn’t do much wordprocessing on my Macs, I did most of my writing in Mail.app, MarsEdit and Google Docs. On Wintel I used Word.

I’m not using Wintel these days, so I was looking for something other than plain text for my Mac document work. Pages is an act of desperation, and until recently Word for Mac was a lousy product, so I started using TextEdit as a document editor because its default file format is RTF.

That’s how, rather late to the game, I realized that nothing on my iPhone would work with RTF. Google Drive will display RTF contents, and convert RTF to Google Doc, but since none of my iPhone apps supported RTF I couldn’t use an app extension to open those files.

So I started asking what was up with RTF. The short answer is that RTF died - sometime between 2006 and 2012. I’ve been unable to find an obituary — it simply passed from the scene. RTF only lives on in TextEdit because it’s been baked into OS X since time immemorial — but not iOS. (Nisus Writer still uses RTF as a native file format. Might be time to give that up.)

Sheesh. Shouldn’t there at least have been a eulogy?

I guess .docx is our de facto native document file format; the heir to the dreams of RTF and OpenDocument and many before [1]

Meanwhile geeks are using plaintext and markdown.

This is really not what we expected...

- fn -

[1] If you create a new document in TextEdit, then hit cmd-opt-s, you can specify docx and save. TextEdit will then stick with .docx. There doesn’t seem to be a way in Yosemite, secret or public, to make TextEdit use .docx as a the new document format.

See also:

Update 12/12/2015: Scrivener uses RTF in its text editor. Might be last to do so. I suspect it’s using OS X native support. The new version of Notes.app, interestingly, uses a subset of HTML.

Things to do when selling or retiring an old iPhone

Among other issues, Apple has longstanding problems with their customer identity infrastructure and how it intersects with their device registration, DRM rules, and messaging systems. Under iOS 8, for example, there appear to be 4-5 different authentication channels for Apple products even when a user has only one AppleID.

Which is why, in the course of moving the kid’s iPhones around, I made a list of the steps I take when deactivating an old iPhone (for sale, disposal, or migration to the backup stack):

  • log out of FaceTime (remove credentials)
  • deregister iMessage: iMessage turn off, FaceTime logout and turn off
  • remove iTunes Store AppleID account information (which can differ from iCloud AppleID)
  • from Settings:Mail,Contacts, Calendars:iCloud:Advanced:Share My Location: From: (Your device) remove unwanted devices
  • log out of iCloud/Find Phone
  • log out of FindFriends
  • if you can figure out which apps or content apps use DRM to limit installs, then sign out from those (Example, Inkling books.) Good luck.
  • wipe phone
  • power off
  • Manage your associated devices in iTunes - remove the device
  • Manage devices associated with your Apple ID (not same as iTunes devices) - remove the device
  • Remove device from Apple support/Apple ID device profile? (this is an ugly business)
  • In Find iPhone on another device you can remove the device from the list. You’ll need iCloud credentials associated with each device. I believe this updates Apple’s record for device owner.

Note that you can change the iTunes Store Apple ID associated with an iPhone only every 90 days.

Did I miss anything?

By the way, even after doing all this, I found lots of old devices when I use iOS 8 FindPhone...

Update 9/26/2015

While browsing Google Account Security I found this ..

Google device

Google keeps track of devices (unclear how it identifies a device) in addition to credentials. If it gets valid logins from an unknown device it sends out a warning email. 

So if you want to be very careful when you retire an old iPhone, you should review the Google Account Security Device activity & notifications page for every Google account you use and remove the old device.

I haven’t bothered to do this methodically, but it’s a reminder of how hard it is to throughly remove all connections between one’s identity and one’s devices.

Tuesday, September 08, 2015

Appigo ToDo task management suite: Archiving and Export of completed tasks and projects is non-negotiable requirement

Appigo has deferred work on archive and export of tasks and projects for at least two years and possibly longer. When I paid Toodledo to provide back end services I could live with ToDo.app’s missing features, but when I switched full time to ToDo for iOS and ToDo for Mac with ToDo Cloud support it became a real concern. I gradually realized Appigo wan’t showing any inclination to change.

I’ve tried one last ticket request:

[#85787] Archiving and Export of completed tasks and projects : Appigo Inc.

There are two closed discussions related to archiving of completed tasks and related request to export tasks and project data.

I know about setting sync to 1 year, I know ToDo web version will paginate completed tasks (up to 1 year?) and I know I can access tasks via SQLite (but dates are proprietary format).

I know I can sponge off Toodeldo and use them as an archive format without sending them any money (unethical).

I need more than that. I signed up for ToDo Cloud and I use both the iOS and Mac version intensively, including all Project features. I can't continue using ToDo Cloud if I can't have long term storage of project/task information as well as archive export.

It's just an essential requirement. If you can't tell us you're going to do this I need to find another product."

I have a feeling I know where this goes. So I’m looking again at Things an Omni, and it may be that I’ll reverse my shift and return to Toodledo.

Sunday, September 06, 2015

Weirdness with Yosemite Google accounts and email configuration: "This message may not have been sent... Report phishing"

I noticed my daughter was receiving email sent from my iPhone with my email address but the sender name of “Gmail personal”.

It took a while to figure out that this sender name was coming from how I named one of the user accounts for Mail.app … on OS X.

I really don’t understand this, but a Google search somehow sent me to this seemingly unrelated conversation ...

Fortunately, I know better than to ignore the nsAI of our time (non-sentient AI) - so I started poking around the configuration of my “Internet Accounts” (Yosemite, click Details after choose account name) and my OS Mail.app Account settings (which are sort of like the “Internet accounts” and sort of not like them).

There I found some oddball settings for Outgoing Mail Server — on a freshly configured machine (I didn’t migrate from prior machine):

Screen Shot 2015 09 06 at 8 57 01 PM

Screen Shot 2015 09 06 at 8 57 29 PM

I deleted the odd outgoing mail server .. .and Mail.app stopped sending email.

There’s a problem with Yosemite and multiple Google accounts on one OS X user account. i’m still figuring this out. I suspect the keychain is involved...

Update: It seems to be working at the moment. I had to create a unique SMTP server for each account and entering my Google credentials (2F bypass password for one of ‘em). I don’t think it’s supposed to work this way. I think in theory there’s a typical Apple hack whereby one does Google authentication in OS X System Preferences and OS X is supposed to create keychain entries Mail.app uses. In practice this appears to fail when a user has more than one Google account...

An AskDifferent thread also implications the keychain, and since the keychain is iCloud synced its configuration can poison multiple clients. i suspect Apple (engineer? product?) simply decided to ignore people with multiple Google accounts.

Update 9/26/2015

In much the same thread I ran into a similar configuration problem on a different Yosemite Mac. This time a correspondent reported Google was warning him my email was suspicious:

Screen Shot 2015 09 26 at 3 03 46 PM

I figured that Google was seeing a mismatch between the stated sender domain and the SMTP sending service domain. When I looked in Mail.app account configuration (not to be confused with OS X account configuration) I found this:

Screen Shot 2015 09 26 at 3 00 02 PM

I have two Google accounts configured, one a Google Apps account (single factor) and another a Gmail account (2FA). The “Home” (2FA) account was using the SMTP server I’d labeled “Gmail Work”. Wrong one.

I switched the the Gmail Home (my definition) SMTP server, which was setup this way by OS X. NOTE the lack of password. Despite the UI displayed here OS X doesn’t actually use the account password. It does some other form of authentication for this 2FA account, possibly via some OAUTH token magic stored in the OS X keychain (which is synchronized between devices, and since Google looks for matches between device and credentials I suspect that causes issues):

Screen Shot 2015 09 26 at 3 05 20 PM

After switching the SMTP service to this one (“Gmail Home”) my next email did not generate a phishing warning.

Friday, September 04, 2015

AT&T Mobile Share - Reviewing our options

Emily and I switched to AT&T’s no-contract shared data plan over a year ago and saved about $25/month. With the iPhone’s (crappy compared to Android) cellular data use controls we were doing pretty well with 2GB a month. Unfortunately over the past year Google Maps started using a lot more data (no idea why). Between Google Maps and adware bloat we started to hit 2.5GB/month — but then an AT&T special (we had to request) gave us 3GB/month for the same rate. There’s no contract to change by the way, so it’s much less worrisome to make changes now.

During this time the kids were on H2O wireless prepaid. H2O wireless worked well for years as a $40/year voice only service, but things got more strained when #1 needed reliable data services (find friends in particular) and #3’s social necessities required high volume SMS. Then we ran into the flip-side of MVNO’s low cost — truly lousy customer service. We’ve since ported two of the kids numbers to the AT&T mobile shared data plan, one remains on H2O (he almost never uses his phone).

So now we have 4 devices on AT&T mobile share. Time to examine plan options.

That’s almost impossible to do except by requesting a plan summary handout from an AT&T store. Almost … except that using phrases from the handout I located the equivalent very well hidden readable online mobile share plan summary (of course it doesn’t include corporate discounts many of us have).

We currently have 4 devices ($25*4=$100) and 3GB — except that AT&T did something weird the other day. Our official plan is “3GB” for $40, (this is what a store account rep sees), but we actually have “3GB and 3GB Bonus” or 6GB for $40. A Reddit poster interrogated an AT&T phone rep about this mystery bonus:

In an effort to recognize our customer’s loyalty [tenure], we want to show you our appreciation and thank you for being our customer by giving you more data for the same monthly MRC. You don't have to do a thing to get more data – we automatically added it to your plan at the start of your current bill cycle! If you decide to change your plan, including a change in your data bucket size, you will be allowed to select any current plans offered at that time; however, this promotion will no longer be available

So our total cost, pre-discount and not including significant hidden fees and taxes, is $140 for 4 devices and more data than we need (6GB plus rollover).

Looking at the current plan summary we could do 3GB for $45 (2GB for $30 plus $15 for extra GB) - but that’s less data for more money and same device cost, $145. Or we could do 20GB (much more than we need) for $140 plus ($15*4=$60) for devices, or $200. That plan includes free Canada calls, but we do that for free using Google Voice. That would be a terrible waste of money.

More interestingly we could drop to 2GB for $30/month, total cost $130 for $10/month reduction (over the past year AT&T has dropped cost of 2GB plan by 25%). I think, with rollover, we’d vary between 1.8 to 2.9 GB/month for an average cost of about $135/month. Slightly less than our current plan, but not a big difference and the data hassle would be much larger.

So we’ll stay where we are. Your numbers will vary; we get a typical corporate discount as well and those are certainly worth pursuing. We will continue to track Ting and its growing GSM use and, of course, T-Mobile.

PS. Incidentally, AT&T has a new SIM Unlock procedure, saw this while reviewing my account:

Apple iPhone 4S
PUK: ##########
Follow these steps to unlock your SIM card:

Enter the eight-digit PUK above, then select OK/Yes. Note: Some Motorola phone users will need to enter **05* if "Enter PUK" isn't displayed. Then enter the eight-digit PUK and select OK/Yes
Choose a new PUK and select OK/Yes
Re-enter the new PUK and select OK/Yes
If the codes were entered correctly, you can now use your phone

Have an iPhone?
If you enter the wrong PUK 10 times in a row, your SIM card will be permanently deactivated. You might see a message like "PUK blocked. Call operator." You'll have to start over. You can:

Buy a new SIM card from an AT&T retail store
Use our technical support chat (full site) or call us at 800.331.0500.
Have a different type of phone?
If you enter the wrong PUK 10 times in a row, the SIM card will be permanently locked. If you see a message like "PUK 2," you'll need to:Buy a new SIM card from an AT&T retail store

Monday, August 31, 2015

Yosemite Mac Calendar.app travel time feature isn't compatible with Google Calendar

Travel Time for Appointments in Apple Calendar (Yosemite) is a nice feature, but it’s not compatible with Google Calendar. I suspect travel time is an attribute of the appointment, not a separate appointment, and it’s not a standard CalDAV feature.

So if you’re using iOS or OS X Calendar.app with a Google Calendar back end don’t bother with this feature. 

Is kind of nifty I admit.