New Apple Watch

It's surprisingly hard to get a photo of something on your wrist, and you don't wanna see that much arm hair anyway, I get like Bigfoot as the winter approaches. The black-and-Mountain-Dew-yellow Nike+ band is nice and very light and airy, half the weight of the old rubber band, but the M/L strap fits with only one stopper hole left, and I do not have extra-thick wrists; some people aren't going to fit these.

Going into winter when I can wear a watch all the time, it's going to be interesting to get back in the habit. As a physical device, it's still very nice. I'll see how my walk/jogging goes tomorrow.

A lot of the new watch faces have weird "complication" positions, a smiley-face mouth and dot eyes, etc. The old Modular face has dots that no longer work with some apps; Dark Sky just shows an icon and then gives up. After a while now it's shown back up. There's a new Modular Infographic face with a really pretty Earth view, and Dark Sky shows more info in the dot there. But I can't add Nike Run Club to that face, only Apple's dumb Workouts app. So I'm still using the old Modular face and the less-capable dots.

A bunch of apps, Nike Run Club among them, require you to open the watch app, then the iPhone app, so they can set up. There's no other hint in the iPhone app or Apple's "Watch" app that this happens, you just have to know to do it.

The app screen with bubbles you move around but they don't stay where you put them, like a giant round Jenga game, is infuriating. It was a funny experiment on the original Watch, but now it's just stupid or neglectful.

The "artsy" faces are terrible. Kaleidoscope has a few colorful faces but it's like looking at sharp broken glass. Molten metal looks like dripping slime. Breathe is a simple pastel blue "flower" effect.

Motion has the same three butterfly, flower, jellyfish as years ago, Timelapse has the same half-dozen views; not bad, just kind of boring.

The Mickey®/Minnie® faces promote characters nobody cares about, just a corporate logo and mascot of draconian copyright laws. Plus Pixar Toy Story® faces, even more soulless corporate shilling. Where's Daffy Duck (or Bugs Bunny, but I'm more a Daffy)? I had a Snoopy/Woodstock watch as a child, and I'd love that.

It's painfully clear that there's no artists at Apple responsible for picking faces, designing cute iconic imagery, or designing the user experience for this thing, just engineers who all use Modular/Infographic, IVE-1138 who likes molten metal, and corporate lawyers who like Mickey Mouse®.

Get your shit together, Apple.

Play/Pause in Mojave Safari

Regular goofing-off workflow: Playing music in iTunes. Use Feedbin to find blog posts with video, song, or podcast I want to play. Open these in tabs. Pause iTunes with fn-F8. Click on the play button on a media page.

Except now, that's not what happens. The media control buttons will affect Safari, and iTunes keeps going. And since TunesArt doesn't work, I have no easy way to tell iTunes to shut up except to tab into it, find the pause control, then back to Safari where the video's still going.

I don't see any way in Safari or iTunes or System Preferences to tell it "media buttons only control iTunes". INFURIATING.

Pages

I've done almost all writing in BBEdit with MultiMarkdown for quite some time, but with a new version of Pages and new Mojave, thought I'd give that a try for a little writing project.

Dark Mode helps enormously at making it a "distraction-free" environment; the controls and background are much less obtrusive when actually writing. It performs well, never lags out, which is a problem with many programs when I get to typing fast.

The ability to customize a theme by just changing it, and then hitting Update and having it cascade thru the file, is very nice; it's like an easier CSS.

That's about the end of the good parts.

The default blank document theme of Helvetica Neue everywhere is so bland and monotype, I can't imagine even IVE-1138 writing in this and thinking it was acceptable. I miss when software shipped with some personality, because this is not it.

Apple's spelling checker has always been wonky, but it persistently objects to the use of "their". I felt like I was having a senior moment, "is that the right way to spell a word I've used millions of times?". It is. Pages is just a broken machine.

The actual controls are inscrutable. You can find a few basic styles on the style sidebar, but for example adding a superscript? Hidden in menu Format, Font, Baseline, Use Superscript which you then toggle on, type, toggle off. No way I can see to just select text and make it a superscript. You can change text colors easily, which I would rarely want to do, but changing background, say for zebra-striping a table, is hidden under Layout.

Altering a table's size and columns was unreasonably hard. I probably wasted 15 minutes fighting with this, before just copying the tables to BBEdit (which made them tab-delimited), pasting back, and setting tabstops for an unfrozen caveman-style typewriter table.

Making a document 2-column is under Layout, but setting page margins is under the Document sidebar, so adjusting layouts takes a lot of back and forth. When setting a page footer, I hit tab thinking it'd move to the next footer tab, but instead it added a lot of space and made it impossible to change the footer under it; I had to undo until it went away.

The toolbar has a laughably small selection of tools in it, no obvious way to make something like the Word markup ribbon; say what you will about how ugly that is, it's efficient for simple formatting.

I succeeded in writing a short, fairly attractive pamphlet, but it took me twice as long as with MultiMarkdown. I think it'd be very frustrating and slow to use for a longer book.

★★★☆☆

I'll have a way to release the project pretty soon.

Paradise By the Dashboard Light

Hit F12 and no Dashboard appeared. Had to run Dashboard.app manually to get it to exist, and then F12 worked again. Added it to my Login Items, dunno if that's needed but shouldn't hurt.

The total neglect of this incredibly useful widget screen is baffling to me. I have weather, Deliveries tracking, stocks, Organized calendar/appointments list, PCalc, and iStat on a single screen. Used to have a nice meditation/tea timer, but it got broken a couple OS updates ago.

Mojave It Mojave It

Took forever to convert my drive, but seems functional in a single pass.

Dark Mode is kind of comically simplistic, especially the grey border around everything. It's better than the previous white room/transparency theme, but it shows that Apple designers don't understand how dark themes work yet. BBEdit's dark theme and Atom with Material UI look far more professional.

Apple's decided to nag me about disk space (about 60GB free):

Apple Notification nag: Your disk is almost full

Stack Overflow has some solutions.

TunesArt is crashing, and there's no update yet. Irritating. I miss Sophie's Coversutra.

Fucking Safari. In pursuing somewhat more secure extensions, they just blindly uninstalled all the extensions I used, including uBlock Origin. The only uBlock in the Mac App Store is ancient, tracks you, and sells whitelisting to fucking marketers. Criminal scumbag. I have Aral Balkan's Better Blocker installed, but that mostly attacks trackers, doesn't let me grab blocks of HTML per site to delete. FUUUUUCK.

Guess I should find out which mission-critical software I use isn't compatible now. And at some point rebuild MacPorts, that'll be fun/contribute to global warming.

Backed up. Mojave install started. Going from Sierra, skipping High-as-in-420 Sierra entirely because it didn't support Fusion Drive. Let's see if Apple got it right this time. Excited for Dark Mode to match my Atom theme, clothes, coffee, and outlook.

iOS 12 Update Fiasco

I don't generally recommend doing iOS updates on release day, but the betas have been out for a while (and nagging people aggressively!), so I'm less nervous. Do a backup and let 'er rip!

… Hours later … let 'er rip … download … ugh …

And then I come back to a white screen, saying "Attempting data recovery". FUCK. Dialog says "installing iOS" and stuck at 99% progress.

At present the screen's stuck, white with an Apple logo. Finally found HT201412 which has the extra-secret hard reset keys of Vol Up, Vol Down, hold Power.

And then I was able to log in and it's supposedly on iOS 12. But what's broken? Did it install completely? Who the fuck knows! SHIT. So now I'm restoring backup, because this is unsafe, and in maybe 2 hours when that's done, I'll try the update again. Did I say "FUCK"? Because FUCK!

So today's lesson is that nothing works, you should fear change, and never install anything until other victims have tried it. Also, backups are the most important thing ever, make sure you have them.

Apple Watch

I bought a Gen-0 Apple Watch on launch, great device for fitness, weather, and notifications, don't really care about clocks, that's what I use calendar notifications for; but after 3.5 years it's down to under an hour battery charge, and the watch face acts weird, I think it's loose, so I don't wear it anymore.

So I just pre-ordered the Gen-4 Apple Watch, ships early next month. Same black aluminum, light and durable enough, original had the plastic "sports band" which got a little sweaty, so this time I got the cloth strap and a Nike "volt" black and green band (yes, my color theming is the same in RealLife™), see which of those I like better.

Does heart tracking make anyone else nervous, though? Like maybe I don't wanna know. The BPM measure and rings I don't obsess about completing on the original are more nagging than I want.

Xcode Packaging

Speaking of packaging, a thing I hated in Xcode, which made me wish to be filled with nuclear fire, transformed into Godzilla, and stomp thru 1 Infinite Loop, was the package structure:

foo/
    foo/
        foo-Info.plist
        foo-Prefix.pch
        foo.entitlements
        all source, images, and config files in a single giant mess, regardless of "groups"
    foo.xcodeproj/
        foo.xcodeproj/
            project.pbxproj
        project.xcworkspace/
            contents.xcworkspacedata
            xcshareddata/
                foo.xccheckout
            xcuserdata/
                mdh.xcuserdatad/
                    UserInterfaceState.xcuserstate
                    WorkspaceSettings.xcsettings
                    xcschemes/
                        xcschememanagement.plist
        xcuserdata/
            mdh.xcuserdatad/
                xcdebugger/
                    Breakpoints_v2.xcbkptlist
                xcschemes/
                    foo debug.xcscheme
                    foo release.xcscheme
                    xcschememanagement.plist
    fooTests/
        more sources

Are you fucking kidding me?

Groups aren't folders, they're just keywords grouped together until Xcode decides to fuck you over and disorganize them. To fight the project dump dir, I'd make a group, then add a subfolder, edit the group to reference the folder, and then I could create files in their own nicely-organized subfolder. There is of course no automatic name sorting, because that's a developer convenience and Xcode hates developers.

Test code couldn't be in the same folder as the code it was testing. So you'd edit a file, then edit a test file WAY over in a different tree. Good luck knowing how much coverage you had.

I especially love how foo.xcodeproj/xcuserdata/ and foo.xcodeproj/project.xcworkspace/xcuserdata/ have duplicate structures for develop & run/debug modes, because obviously the runtime and debug teams are separate and hate each other.

Icon Composer

In their ongoing efforts to break Mac development tools, Apple disabled and destroyed the rather nice Icon Composer.app because there's nobody left in-house who could figure out how to generate @2x images (protip: you use double size and rename it!), and now you have to use command-line iconutil with a set of magic filenames and no help.

So I wrote a little shell util, icontool.zsh:

#!/bin/zsh
if [[ $# -ne 2 ]]; then
    echo "Usage: icontool INIMAGE.png OUTFILE.icns"
    exit 1
fi
WORKDIR=$TMP/icontool.iconset
rm -rf "$WORKDIR"
mkdir "$WORKDIR"
sips "$1" --resampleHeightWidth 1024 1024 --out "$WORKDIR/icon_512x512@2x.png"
sips "$1" --resampleHeightWidth 512 512 --out "$WORKDIR/icon_512x512.png"
cp "$WORKDIR/icon_512x512.png" "$WORKDIR/icon_256x256@2x.png"
sips "$1" --resampleHeightWidth 256 256 --out "$WORKDIR/icon_256x256.png"
cp "$WORKDIR/icon_256x256.png" "$WORKDIR/icon_128x128@2x.png"
sips "$1" --resampleHeightWidth 128 128 --out "$WORKDIR/icon_128x128.png"
sips "$1" --resampleHeightWidth 64 64 --out "$WORKDIR/icon_32x32@2x.png"
sips "$1" --resampleHeightWidth 32 32 --out "$WORKDIR/icon_32x32.png"
cp "$WORKDIR/icon_32x32.png" "$WORKDIR/icon_16x16@2x.png"
sips "$1" --resampleHeightWidth 16 16 --out "$WORKDIR/icon_16x16.png"
iconutil --convert icns "$WORKDIR" --output "$2"

Preferably feed it a 1024x1024 input image, it'll resize all the others; the small sizes might be blurry but it's good enough for most uses, and you can edit the contents of WORKDIR and run the iconutil line again if you need to.