tinyapps.org / blog

If you must run Windows 10... #

Heaven help you:

Barring divine intervention, Windows 10 Enterprise LTSC 2019 (formerly LTSB) may be the least bad option:

However, be aware that LTSC requires a volume license (VL) agreement, making onerous audits potentially more probable:

(despite Microsoft's own apparent need for a thorough inspection:

While five licenses are required to enter into a new VL agreement, they need not all be for LTSC. According to a rep I spoke with at a Microsoft Partner, this combination would work as an upgrade from a Windows OEM license (i.e., it would allow a user who bought a PC with Windows 10 preinstalled to run Windows 10 LTSC instead):

Here are links and prices from three well-known Microsoft Partners, though you should definitely confirm details with a rep before purchasing:

For those hapless souls stuck on Windows 10 Home or Pro, see:

Further reading:

/windows | Nov 30, 2018

Last chance to buy a proper MacBook #

Model Base Price Ports Keyboard SSD replace-able? Battery glued? MagSafe 2 Other
MacBook Air (13-inch, 2017) $999

Two USB 3 ports

One Thunderbolt 2 port

MagSafe 2 port

SDXC card slot

3.5 mm headphone jack

In retrospect, the best MacBook keyboard ever


Standard NVMe SSDs work beautifully via Sintech ST-NGFF2013C.

No Yes

Going back to my Macbook Air

MacBook Air. Apple’s best product ever

MacBook Air (Retina, 13-inch, 2018) $1199

Two Thunderbolt 3 (USB-C) ports

3.5 mm headphone jack

Worst. Keyboard. Ever.:

The New MacBook Keyboard is Ruining My Life

Unreliable MacBook Pro Keyboards

The 2018 MacBook Keyboards Have the Same Old Problems

Apple Engineers Its Own Downfall With the Macbook Pro Keyboard

An ode to Apple’s awful MacBook keyboard

No No, but must remove logic board to replace No:

Apple is killing off MagSafe, one of the MacBook's best features

Please Apple, don't kill MagSafe

Why oh why did Apple kill MagSafe?

Apple removed its safest, smartest invention ever from the new MacBook Pros

5 things we wish we could change with the new MacBook Air
MacBook (Retina, 12-inch, 2017) $1299

One USB-C port

3.5 mm headphone jack

No Yes Charge or plug in a peripheral!
MacBook Pro (13-inch, 2017, Two Thunderbolt 3 Ports) $1299

Two Thunderbolt 3 (USB-C) ports

3.5 mm headphone jack

Only with a proprietary SSD Yes

Don't buy the MacBook Pros even on sale, in my opinion

MacBook Pro (13-inch, 2018, Four Thunderbolt 3 Ports) $1799

Four Thunderbolt 3 (USB-C) ports

3.5 mm headphone jack

No Yes

No Esc or function keys

MacBook Pro? No

/mac | Nov 19, 2018

MacBooks without batteries severely throttled #

/mac | Nov 15, 2018

Best Linux distro for a 2009 MacBook Pro? #

See also Breathing new life into a 2006 MacBook and Apple's New Hardware With The T2 Security Chip Will Currently Block Linux From Booting

With OS X 10.11 El Capitan no longer receiving security updates1, unsupported but otherwise excellent hardware like the MacBook Pro (15-inch, Mid 2009) can be revitalized with Linux.2

After some false starts with the usual suspects (namely Linux Mint 19 (both Mate & XFCE), Elementary 5, Fedora Workstation 26, and Pop!_OS 18.04 LTS), I decided to give Manjaro XFCE 17 a try after seeing it regularly mentioned in HN comments.

After struggling with previous distros, Manjaro was a dream: boot and shutdown times were halved (at least), the boot splash screen displayed properly (rather than just displaying a black/blank screen like so many others), WiFi and video drivers working right out of the box, and there was no screen flickering or taskbar weirdness. In short, Manjaro presented the most polished experience, from start to finish, of the bunch.

However, during install, Manjaro requires creating a password for the root account, which is subsequently enabled. If you prefer to disable it after installation is complete:

$ sudo passwd --status root
root P 10/29/2018 -1 -1 -1 -1

$ sudo passwd --delete --lock root
passwd: password expiry information changed.

$ sudo passwd --status root
root L 10/29/2018 -1 -1 -1 -1


$ su
su: Authentication failure

To reenable root:

$ sudo passwd root
New password: 
Retype new password: 
passwd: password updated successfully
$ sudo passwd --status root
root P 11/01/2018 -1 -1 -1 -1


  1. Why doesn't Apple just come out with an official macOS support policy? It's clearly and consistently been 3 years from release on modern versions, why not share that with consumers? Speaking of which, why not warn them when they are running an unsupported and unsafe version (something even Microsoft, hardly renowned for its stellar consumer support, did for Windows XP)? Within the last week or so, I've had two different people contact me with problems which turned out to be caused by running OS X 10.7 and OS X 10.8 respectively! See also No more security patches for OS X El Capitan, time to upgrade and Apple has released Mojave 10.14.1 update, and Security Updates for Sierra and High Sierra.

  2. There's also Collin's kind patcher collection of course (macOS Sierra Patcher Tool for Unsupported Macs, macOS High Sierra Patcher Tool for Unsupported Macs, and macOS Mojave Patcher Tool for Unsupported Macs) if you don't mind disabling SIP, limited WiFi support, and trusting third-party, closed source software with deep access.

/mac | Nov 01, 2018

"Burning" an ISO image to USB flash drive with just dd #


/nix | Oct 28, 2018

Twitter - Disable auto links in tweets #

Having set up IFTTT to autopost blog updates on a recovered Twitter handle, I did my best to forget all about it.

However, I recently discovered that Twitter automatically inserts hyperlinks for text that matches certain patterns (e.g., "Mail.app" becomes a link to said domain), prompting me to go back and delete such tweets, namely:

I was able to delete today's earlier tweet (Mojave - Where did DVD Player.app go?) and repost it with the hyperlink disabled (why can tweets not be edited?) by inserting a zero width space after the dot as explained by Amit Agarwal.

See also:

/misc | Oct 23, 2018

# Mojave - Where did DVD Player.app go? #

It's been moved from /Applications/ to /System/Library/CoreServices/Applications/. Due to SIP, "Make Alias" is not available from the Finder's context menu in that directory, nor does the new Make Alias keyboard shortcut (Ctrl+Cmd+A - really, Apple?! Cmd+L does not appear to have even been reassigned!) work.

If you'd like a Finder alias for DVD Player in the Applications folder*, one can be created via AppleScript like so:

tell application "Finder" to make alias file to (POSIX file "/System/Library/CoreServices/Applications/DVD Player.app") at (POSIX file "/Applications")

* To its credit, Apple still provides the "CDs & DVDs" preference pane, which offers an option to open DVD Player when a video DVD is inserted, but some may prefer another action or to launch DVD Player manually to play VIDEO_TS files, etc.

/mac | Oct 23, 2018

OS X / macOS printer drivers #

As reported by Howard Oakley, Apple has stopped maintaining its printer compatibility list and is apparently only supporting AirPrint going forward.

I scoured support.apple.com for the final printer driver versions, preferring to archive them locally rather than rely on Software Update. The inconsistent naming conventions and system requirements sections have been preserved intact:

/mac | Oct 19, 2018

Large hosts file causes networking issues in Windows 10 #

Network problems encountered include: web browsers crashing, websites not loading, yield symbol appearing over the notification area's WiFi or Ethernet icon, "No Internet, secured", etc.

Solution: disable DNS Client by changing the value data for HKLM\SYSTEM\ControlSet001\Services\Dnscache\Start from 2 (automatic) to 4 (disabled) (recent versions of Windows 10 no longer allow disabling DNS Client via services.msc).

References and more information:

/windows | Sep 30, 2018

Backing up a large Gmail / G Suite account #

is theoretically possible via Google Takeout, but there are issues:

Got Your Back (GYB) does not suffer from these issues; messages are downloaded as individual EML files, sorted into folders by year, month, and day:

$ gyb --email name@example.com --action estimate

Select the actions you wish GYB to be able to perform for name@example.com

[ ]  0)  Gmail Backup And Restore - read/write mailbox access
[ ]  1)  Gmail Backup Only - read-only mailbox access
[ ]  2)  Gmail Restore Only - write-only mailbox access and label management
[*]  3)  Gmail Full Access - read/write mailbox access and message purge
[ ]  4)  No Gmail Access

[ ]  5)  Groups Restore - write to G Suite Groups Archive
[*]  6)  Storage Quota - Drive app config scope used for --action quota

      7)  Continue

Your browser has been opened to visit:


If your browser is on a different machine then press CTRL+C and
create a file called nobrowser.txt in the same folder as GYB.

Authentication successful.
Got 67100 Message IDs                                                           
GYB needs to examine 67100 messages
GYB already has a backup of 0 messages
GYB needs to estimate 67100 messages
Estimated size 26.47gb 67100/67100 messages 

$ gyb --email name@example.com --action backup

Using backup folder GYB-GMail-Backup-name@example.com
Got 67100 Message IDs                                                           
GYB needs to examine 67100 messages
GYB already has a backup of 0 messages
GYB needs to backup 67100 messages
backed up 67100 of 67100 messages                                               

GYB needs to refresh 0 messages

If desired, import the collection into Thunderbird via ImportExportTools.

If you need to copy the massive collection of EML files, tar it without compression to save a LOT of time (pv is of course optional, but very handy when tarring tens of thousands of files):

$ tar -c ./GYB-GMail-Backup-user\@example.com/ | pv -s $(gdu -sb ./GYB-GMail-Backup-user\@example.com/ | awk '{print $1}') > user\@example.com.tar
4.03GiB 0:00:23 [ 177MiB/s] [====>                             ] 15% ETA 0:02:08

* Attempting to split a ~26GB MBOX file by label via mbox_split.py or WB Optimum's script on which it is based did not avail.

UPDATE: Royce Williams kindly informs us of outtake, which "sync[s] Gmail to maildir...quickly", "uses the Gmail API to efficiently sync only deltas", and "can also be limited to a specific label". Crafted in Go by Google software engineer, Daniel Margolis. (On a related note, Evolution is swell for browsing and searching Maildir directories; add via Edit > Preferences > Mail Accounts > Add > Next > enter required info and deselect "Look up mail server details based on the entered e-mail address" > Next > for "Server Type:" select "Maildir-format mail directories" > select the "Mail Directory:" location, etc.)

/misc | Sep 25, 2018

Subscribe or visit the archives