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.

Non-Apple Development: Does It Exist?

By no means the first time I've seen this sentiment:

Still interesting to see people talking passionately about the Open Web and how bad silos are (which is good)
whilst simultaneously linking only to Apple things and app-locked things in general; the web is still here and
it damned sure isn’t exclusive to Apple and your phone.
@simonwoods

The thing is, Android, Linux, & Windows devs don't step up and produce good apps or attractive web sites, so what else would anyone link to?

I presume most of the non-Microsoft-employed Windows devs are in enterprise, doing something awful with SAP or Excel or Outlook; I'm not really familiar with their universe, but they certainly don't make a lot of nice end-user software, and they don't hang out on any obvious nerd sites. Are they ashamed to admit what they do? Do they not have Internet access? That 95% of the desktop computer market has a nearly invisible developer population is weird. There's some Windows game bros, eating C++ bugs and mostly being dicks to everyone, but they're not making end-user software (Coming soon: Call of Duty: Mind Mapping Edition!)

Linux devs do sometimes make end-user software, but it's unspeakably awful, like GIMP. Server-side, sure, there's plenty of systems, though I think not many people live and develop on it. My bias is admitted: I loathe Linux as though I were Edmond Dantès himself and Linux had imprisoned me (which in effect it did), and I have sworn eternal vengeance. But my impression is that most server software devs work on Macs, or rarely Windows, and use git or Docker uploads to get everything on Linux.

Android software is almost always made after a web or iOS prototype, and generally as an afterthought; nobody makes Android-first apps except basic system utilities like wallpaper-changers.

There is web-first stuff, including now cross-platform web tech, which could in theory be built on Linux or Windows; yet it seems that most end-user web devs making anything nice are, again, Mac users. If you have any aesthetic sense at all, if you want a nice UNIX environment but don't just work in emacs, it's the least terrible option.

There's an old joke,

"Never ask someone if they use a Mac. If they don't, don't embarrass them; if they do, they'll tell you."

This might be more true than it seems, maybe Mac nerds just talk about it constantly? But why don't others?

If you make end-user software for other platforms, I'd like to hear how, and why, and why it's so invisible?