Wednesday, July 03, 2019

I really like my SharePoint list based blog that's not a SharePoint blog

I don’t think anyone is terribly interested in this, so I’m not going to provide a lot of detail, but if you want to know more just email jgordon@kateva.org.

So why am I writing anything? I’m writing because this thing has worked very well for years. Alas, nobody at work appreciates the simple genius of how it works. So here I can vent.

I ignored SharePoint’s clumsy native blog. I built my blog off the SharePoint announcement list which has basically worked the same way for 10-20 years. Like every list in SP it has an RSS feed (deprecated in newest versions of SP alas) and email notifications with user controlled update frequencies. So the subscription side works fine.

I added a couple of fields to the basic list. One is for tags. Tags let me create topical views of the list by creating SP views that filter on tags.

The other field (and this worked better than I imagined) was to create my own PUBLICATION_DATE field and sort the blog (list of announcements) by publication date. The default value is the date created — but I can edit the publication date without changing the post URL!

The last is wonderful. Instead of having to point to an old post and perhaps add some new additions, I just update the old post and revise the publication date to current. SP regenerates email notifications to subscribers, updates the RSS feed, and the view shows the updated post at the top — but the URL is unchanged so links don’t break.

It’s really simple, it’s worked very well for 2-3 years, it should work indefinitely. I wish other blogs worked that way — let me revise publication date, sort by that date, don’t break links.

PS. Why SharePoint? Because where I work that’s what we have. We aren’t getting anything better.

Saturday, June 29, 2019

Chrome: Default pjkljhegncpnkpknbcohdijeoejaedia quit unexpectedly

For years I’ve launched gmail and gcalendar on my Mac using apps in my user/application folder I’d named gCal.app and gMail.app. I loved them. Not only did they let me go directly to gCal and gMail from spotlight they also opened in my preferred user profile rather than the last user profile I’d used.

Today they crash on use.

Intermittently I got this error message:

Default pjkljhegncpnkpknbcohdijeoejaedia quit unexpectedly.

That looks like malware, but apparently pjkljhegncpnkpknbcohdijeoejaedia is an undocumented internal Google Chrome extension. (Very cute Google.)

After a bit of research I believe those apps were known as Chrome apps, and years ago Google supported creating them on the Mac. Google ended support in 2017. I think the apps lived in a Chrome folder that was removed, but on my machine they survived because I’d moved copies into a user folder.

Today my extended use luck ran out. Now they crash [1] under Chrome 75.0.3770.100. I suspect my Mac was updated today or yesterday, this version of Chrome was released June 18.

I REALLY miss the desktop app functionality. “Progressive Web Apps” were supposed to replace it but I don’t think they happened [2]. I might try this 2018 tip to see if I can restore it.

Or maybe the next release of Chrome will fix the crash :-).

- fn -

[1] sample start of log

Process: app_mode_loader [1087]
Path: /Users/USER/*/gCal (jfaughnan).app/Contents/MacOS/app_mode_loader
Identifier: com.google.Chrome.app.Default-ejjicmeblgpmajnghnpcppodonldlgfn-internal
Version: 4.5.6 (2564.97)
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: app_mode_loader [1087]
User ID: 502

Date/Time: 2019-06-29 14:33:12.397 -0500
OS Version: Mac OS X 10.14.5 (18F132)
Report Version: 12
Anonymous UUID: C285F89D-D3A8-7245-0199-81B760782A83


Time Awake Since Boot: 2100 seconds

System Integrity Protection: enabled

Crashed Thread: 0 Dispatch queue: com.apple.main-thread

Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY

Termination Signal: Trace/BPT trap: 5
Termination Reason: Namespace SIGNAL, Code 0x5
Terminating Process: exc handler [1087]

Application Specific Information:
dyld2 mode

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread

[2] No, didn’t happen on Mac. Over a year late now:

Progressive Web Apps on Desktop 
Progressive Web Apps now work on the desktop, including Chrome OS and Windows, with support for Mac and Linux coming soon.

For Google macOS is not a priority platform.

 

Saturday, May 25, 2019

Getting Emily's iCloud photos -- you can multi-select in Photos.web (again)

As recently as 2018, Apple had stopped supporting multi-select in iCloud Photos.web. It was really annoying.

Today it works. I don’t know when this was fixed. It didn’t get a lot of attention in my streams.

It’s a big feature for me.  Now if I want to add photos from my wife or daughter I can browse to their iCloud accounts, select from Photos.web, and download. Much easier than switching to a user account, running Photos.mac, waiting for it to sync, exporting to a shared account, etc, etc.

One odd thing, the file “Modified” date is “Tomorrow at 12:15am”. Presumably a server time zone problem….

Saturday, May 11, 2019

Screen Time old device bug: Dev used device ID as key, forgot Apple ID

There’s a well known old-device bug with Screen Time. Once you’ve setup up Screen Time for a child’s device it will always show up under their Apple ID — even after you wipe the device.

So my daughter’s old iPhone 6 showed up under her Screen Time Apple ID — even after it had been wiped.

Today I changed the Apple ID for that device and enrolled it in Screen Time under a new Apple ID. Then I went to look at her Screen Time device list. Lo and behold — the old device was still there, but now its device name changed to match the device name it had when I reenrolled it with the new Apple ID.

So now one device shows twice in my remote Family Screen Time, once under my daughter’s device list, once under the new Apple ID.

I’ve read that Apple’s Screen Time was a “rush job”. Looks like the dev is doing Screen Time by storing a device identifier — maybe a Serial Number and the device name used at enrollment time. They should have used a combination of Apple ID and device identifier but they used device identifier alone.

Two new discoveries in iOS Screen Time (parental controls): Age 13 and Apple ID incompatible with Screen Time

A reputable Twitter source recently wrote that “Screen Time” was "a rush job".

It feels that way. As part of a book project I’ve spent way too much time experimenting with Screen Time. It needs a top to bottom rewrite. Also needs an API so other vendors can extend what Apple offers. 

Anyway, I’ve learned two new things about Screen Time — two special ages and a hint about why one iPhone could not be enrolled in remote Screen Time.

First the ages. US Screen Time has two special ages: 13 and 18. We know about 18, but the 13 is new to me. 

If a Family Member's Apple ID birthdate means their current age is over 18 then remote screen time blocks are turned off. It’s an 18th birthday gift from Apple! This is a problem for special needs adults — chronologically 18 but very vulnerable. The workaround for a special needs adult is to set their AppleID birthdate so they are 14 (write down the birthdate you used, you may need it).

Note I wrote 14, not, say, 10. That’s because 13 is another special age. If a Family Organizer creates an Apple ID birthdate such that a family member’s age is under 13 they will see, after it’s been created, the message "Children under 13 cannot be removed from Family Sharing.” Not only can they not be removed, their birthdate cannot be changed either. You will need to call Apple Support to have changes made, and you may need to work with a supervisor.  Meanwhile any devices with that Apple ID will count against your sharing cap.

What else did I learn?

I learned that some Apple IDs won’t work with Screen Time. It’s not clear why; I assume it’s a obscure bug somewhere in Apple’s creaky identity management infrastructure. When I set up a test phone for my book project I used an old Apple ID of mine. Without going into the convoluted history, that Apple ID is descended from an old mac.com/MobileMe email account and it’s all way too complex to describe. In any case, even though I'd changed the birthdate so age was 14, remote Screen Time settings didn’t “stick”. I’d enable them, they’d flip back to off. I changed the device Apple ID to a fresh one created from my Family Organizer account (which is how I discovered the 13 yo bit) and now it works.

Since my test iPhone doesn’t have a SIM card I wondered if that was part of my remote Screen Time problem. It wasn’t — my setup worked fine. Interestingly when I set the Apple ID this way both FaceTime and iMessage also worked without a SIM card — no ‘waiting for activation’ issues.

Sunday, April 28, 2019

How to clear Google Voice conditional call forwarding from an AT&T phone including iPhone

Long ago I setup Google Voice as my son’s phone’s voicemail using “conditional call forwarding” on H2O Wireless mobile (very cheap, but also weak IT service). I switched him from H2O Wireless to our family AT&T account and wanted to disable the forwarding. 

Unfortunately I couldn’t get Google Voice legacy site to come up on my iPhone so I didn’t disable Conditional Call Forwarding prior to the port. I tried removing the his number from GV but that doesn’t work — it only messes up Google Voice (below).

After the port I couldn’t set a voice mail code for his account. It seemed like voice mail was setup, but when I called him I was routed to Google Voice. Alas, there’s no useful error message.

I restored his mobile number as a forwarding phone in Google Voice but there was  no option for him in Legacy Google Voice to add or remove conditional call forwarding, no “Activate Google voicemail on this phone”. (Probably because the call forward was already in place.)

I tried a #21# trick I read of, but that didn’t work. I thought I’d have to call AT&T but after several searches I found an obscure site with the answer: Dial #61#. That clears “call forward if not answered”. I also used the other deactivation codes as below (67, 61, 62).

I don’t know if that site will stay around, and I couldn’t find this information anywhere else, so here are the set of deactivate codes for several purposes:

To deactivate “Call forward if busy”, 
Simply dial #67# and tap “Call”

To deactivate “Call forward if not answered”,
Simply dial #61# and tap “Call”

To deactivate “Call forward if not reachable”, 
Simply dial #62# and tap “Call”

Android phones may have more control over Call Forwarding but iOS has only forward or don’t forward.

The site also reviews how to setup call forwarding, for example:

To setup “Call forward if busy”,
simply dial 
*67*{NumberRetrieved}*11# and tap “Call”

After using those codes I could set a PIN for his voicemail and it worked normally.

Saturday, April 27, 2019

How to open a tab delimited file in Apple macOS Numbers.app

How do you open a tab delimited file in Apple macOS Numbers.app?

Change the extension from .tab to .csv.

Old Mac data exchange used tab delimited files. FileMaker saved them with the extension of .tab. Numbers doesn’t recognize .tab. If you change it to .csv all is well.