tinyapps.org / blog

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

NVMe Sanitize #

posted to the docs section.

/nix | Sep 13, 2018

Unexpected SCSI Command Failure: 00h - No SCSI controller error #

In an Adaptec SCSI Card 29320LPE's Adaptec SCSISelect Utility, neither "Format Disk" nor "Verify Disk Media" would work for two Fujitsu Ultra-320 SCSI 146GB (MAW3147NC) hard drives, immediately returning "Unexpected SCSI Command Failure" and "00h - No SCSI controller error". Both functions worked normally on two Seagate Ultra-320 SCSI 73.4GB (ST373405LC) drives.

When a Verify or Low Level Format is attempted on the hard drive, it responds with some error codes did not sound very promising:

If the error occurs in both Format and Verify, it usually indicates a defective drive. Contact the drive vendor for interpretation of other errors.

Happily, Unexpected SCSI command failure message when attempting low level format held the answer:

One reason for this could be the way the SCSI controller is set up to hand-shake with the device. This can be changed through the SCSISelect utility. Enter the SCSI Select utility by pressing CTRL-A on system boot or insert the SCSI Select diskette.

In the SCSI Select utility, take the option for Configure/View Host Adapter Settings. Then choose SCSI Device Configuration.

On the next screen you will see the SCSI ID's listed across the top and the options to set for each ID listed down the left side. For the SCSI ID of the hard drive that you are trying to verify or format, set Initiate Sync Negotiation to NO ( on U160/U320 controllers change Initiate Wide Negotiation = No), Enable Disconnection to NO, and Maximum Sync Transfer Rate to 5mb/sec. Exit the utility, saving the changes.

While "Verify Disk Media" failed if run first, running "Format Disk" then "Verify Disk Media" worked. Increasing the "Maximum Sync Transfer Rate" to 40MB/sec had no ill-effect and made verifying the format via hexdump much faster.

/misc | Sep 13, 2018

Contacts.app: Batch add existing contacts to group via text file and AppleScript #

tell application "Contacts"

-- Path to file containing list of contacts (one per line) to add to group
set groupList to "Macintosh HD:Users:foo:grouplist.txt"

-- Read lines from groupList
set groupMembers to paragraphs of (read file groupList as «class utf8»)

-- Add each name to a pre-existing Contacts.app group named "Friends"
repeat with i in groupMembers
set aMember to (first person whose (name is i))
add aMember to group "Friends"
end repeat


end tell

-- Any mismatch between names in grouplist.txt and Contacts.app will return an invalid index error along with the errant name, resulting in no names being added to the group.

-- Tested in macOS 10.12 and 10.13

-- Hat tip: mklement0's script and Tetsuro Kurita's AppleScriptHTML

/mac | Sep 12, 2018

Microsoft Office 2016 for Mac Activation Woes #

Recently there have been activation errors with Microsoft Office Home & Student 2016 for Mac and Microsoft Office Home & Business 2016 for Mac product keys:

  1. Buy product key
  2. Associate product key with a Microsoft account
  3. Download Office 2016 installer from Microsoft
  4. Install Office 2016
  5. When prompted, enter Microsoft account credentials used in step 2 above
  6. Attempt to activate Office 2016
  7. Activation fails
  8. Telephone activation also fails


  1. Download and install all Office 2016 updates
  2. Reboot Mac
  3. Launch an Office 2016 app like Word
  4. Activation errors resolved

UPDATE: Sadly, the activation notification returned 24 hours later, counting down from 14 days. So far, have had to get a tier 2 tech at Microsoft resolve on their end in the dozen or so cases I've seen, but What to try if you can't install or activate Office 2016 for Mac offers troubleshooting tips for the following activation issues:

/mac | Aug 12, 2018

On reputation #

Live never to be ashamed if anything you do or say is published around the world -- even if what is published is not true.

-- Illusions: The Adventures of a Reluctant Messiah by Richard Bach

A certain devotee asked Maharshi about some disagreeable statements made by a certain man well-known to Maharshi. He said, "I permit him to do so. I have permitted him already. Let him do so even more. Let others follow suit. Only let them leave me alone. If because of these reports no one comes to me, I shall consider it a great service done to me.

Talks with Sri Ramana Maharshi recorded by Munagala Venkataramiah

He who with equanimity surveys
Lustre of goodness, strife of passion, sloth
Of ignorance, not angry if they are,
Not angry when they are not: he who sits
A sojourner and stranger in their midst
Unruffled, standing off, saying--serene--
When troubles break, "These be the Qualities!"
He unto whom--self-centred--grief and joy
Sound as one word; to whose deep-seeing eyes
The clod, the marble, and the gold are one;
Whose equal heart holds the same gentleness
For lovely and unlovely things, firm-set,
Well-pleased in praise and dispraise; satisfied
With honour or dishonour; unto friends
And unto foes alike in tolerance;
Detached from undertakings,--he is named
Surmounter of the Qualities!

The Song Celestial, Or, Bhagavad-gîtâ translated by Edwin Arnold

/misc | Aug 03, 2018

Hard wrap text to window width #

Metapad has a handy feature called Commit Word Wrap which inserts carriage returns into text based on the current window width (the command to remove them is Unwrap Lines).

The same functionality was available in TextWrangler 4.0.1 (download) but removed as of 4.5. Here's how to use it:

/mac | Jul 15, 2018

A rare new addition to the aging catalog #

Green Award SNOW (Steganographic Nature Of Whitespace) [31k] {S}+ Conceal (and optionally encrypt) messages in ASCII text by appending whitespace to the end of lines. Screenshot

/windows | Jul 13, 2018

Subscribe or visit the archives