Help stop the sale of Public Interest Registry to a Private Equity Firm:
UPDATE: Success! Now, may the Cooperative Corporation of dot-org Registrants (CCOR) prevail!
/misc | Nov 22, 2019
sudo ./plist2hashcat.py /Volumes/Target/var/db/dslocal/nodes/Default/users/username.plist
user:$ml$28328$7215a1faa91e6196fb53884c4320970d9705ae6f19e5b50e0a24243708629a9b$8e0588decbdb347e0b909a7a1b1bc9470fe7dd37e09a64f9d02b82cfba91116b13d7c172b5a65683ac8d2c873324b8d82255a51ced0792656e766fa1a9c23994
Save the output without the leading "user:" (otherwise you'll need to specify --username
when running hashcat) to hash.txt
hashcat -a 0 -m 7100 --status -o found.txt hash.txt wordlist.txt
Additional scripts and a program that accomplish the same goal as plist2hashcat.py (i.e., extracting hashcat-compatible hashes from binary plist shadow files generated by OS X 10.8 and up (SALTED-SHA512-PBKDF2)):
The process can also be done manually:
See also Recovering saved macOS user passwords and Cracking FileVault 2 (HFS+ or APFS).
/mac | Oct 30, 2019
Retroactive "is an app that lets you run Aperture, iPhoto, and iTunes on macOS Catalina." The author's exhaustive Technical Deep Dive: How does Retroactive work? answers the question in full, but also highlights a number of limitations:
The list differs somewhat in the readme:
/mac | Oct 30, 2019
"The duplicut tool finds and removes duplicate entries from a wordlist, without changing the order, and without getting OOM on huge wordlists whose size exceeds available memory. ... [W]ritten in C, and optimized to be as fast and memory frugal as possible."
Refreshingly simple installation and syntax:
make release
./duplicut <WORDLIST_WITH_DUPLICATES> -o <NEW_CLEAN_WORDLIST>
UPDATE: Royce Williams kindly alerted me to possible issues around longer line lengths and non-ASCII characters, and the author of duplicut, nil0x42, was kind enough to set me straight: just needed to specify --line-max-size 254
to avoid truncation under that threshold.
/nix | Oct 30, 2019
/nix | Oct 29, 2019
Firefox for iOS offers an "Enable Night Mode" toggle which not only darkens the Firefox interface, but websites as well.
While not available for desktop OSes yet, you can achieve a similar result with ShadowFox (macOS users can install via Homebrew or MacPorts) and Dark Reader. ShadowFox correctly darkens every UI element, including ones that other themes can have trouble with, like the address bar, context menu, and history page.
/misc | Oct 23, 2019
Webarchiver "allows you to create Safari .webarchive files from the command line":
webarchiver -url https://tinyapps.org -output tinyapps.webarchive
With a bash function, we can automate creating the filename from the page's title tag and include the URL in the "Where from" metadata:
function dl() {
ADDRESS="$1"
TITLE=`curl -s "$ADDRESS" | grep -o "<title>[^<]*" -m 1 | tail -c+8`
/Applications/network/webarchiver -url "$ADDRESS" -output "$TITLE.webarchive"
xattr -w "com.apple.metadata:kMDItemWhereFroms" "$ADDRESS" "$TITLE.webarchive"
}
Add the above to your .bash_profile, reload with source ~/.bash_profile
, and use like so:
$ dl https://tinyapps.org/docs/nvme-sanitize.html
Title tags can be tricky to parse correctly, here are some other approaches:
as well as another version wherein you manually supply the title/filename:
function dl() {
ADDRESS="$1"
FILENAME="$2"
/Applications/network/webarchiver -url "$ADDRESS" -output "$FILENAME.webarchive"
xattr -w "com.apple.metadata:kMDItemWhereFroms" "$ADDRESS" "$FILENAME.webarchive"
}
calling like so:
$ dl https://tinyapps.org/docs/nvme-sanitize.html "NVMe Sanitize"
Acquire webarchiver 0.9 via homebrew (brew install webarchiver
) or MacPorts (sudo port install webarchiver
), or build easily from source with Xcode.
Thanks to kenorb for his simple title regex; I only had to add -m 1
after running across a page containing multiple title tags (which apparently isn't that rare, in spite of the spec).
/mac | Oct 21, 2019
If you have the misfortune to be stuck on Catalina, you can restore Mail.app's classic layout via View > "Use Column Layout" and View > uncheck "Show Side Preview"; the previous option (Mail > Preferences > Viewing > Use classic layout) is gone.
/mac | Oct 21, 2019
/windows | Oct 18, 2019
UDPATE: Now rocking Ebony Clay (#222B39) and Westar (#E1DFDC).
/misc | Oct 09, 2019
Despite the sunny promise of version 26.1's July 24, 2018 release note ("Drive File Stream now guarantees that it won't use more than 20% of the free local disk space when caching files."), Google Drive File Stream cache continues to fill up virtually all available space on many drives.
Heinzelmann's solution of setting ContentCacheMaxKbytes to 100MB is excellent but incomplete; these are the steps I needed to follow in order to resolve the issue:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Google\DriveFS]
"ContentCacheMaxKbytes"=hex(b):a0,86,01,00,00,00,00,00
/misc | Sep 29, 2019
When a G Suite user attempts to sign in to a new device, they may be greeted with:
Verify it's you
This device isn't recognized. For your security, Google wants to make sure it's really you.
Enter a phone number to get a text message with a verification code.
This seems less like additional security and more like phone number harvesting, especially since the user has no preregistered number.
Clicking "Try another way" leads to:
Get a verification code sent to your phone.
Get help
Clicking "Get help" results in:
Account recovery
Enter the last password you remember using with this Google Account
which isn't very helpful, as this user has had the same password since creation.
Entering the password dumps to a dead end:
Couldn't sign you in
Contact your domain admin for help. Learn more
Clicking "Learn more" brings us to a singularly unhelpful page:
Signing in to your work, school, or other group account
Happily, Mario R. linked to the actually relevant G Suite documentation.
In a nutshell, domain admins can disable the phone number requirement, but only for 10 minutes:
Google Admin Console > Users > click username > Security > Login challenge ("Turn off identity questions for 10 minutes after a suspicious attempt to sign in.") > TURN OFF FOR 10 MINS ("Turn off identity questions for 10 minutes after a suspicious attempt to sign in.")
/misc | Sep 26, 2019
Solution to the vexing "Drive File Stream: Can't reach Google Drive" error when attempting to login:
In HKEY_LOCAL_MACHINE\Software\Google\DriveFS, create two new DWORD values, DisableCRLCheck and DirectConnection, assigning value data as 1.
Additional settings and details (including macOS instructions) can be found in Configure Drive File Stream.
(Mad props to Ashley Rowbury for her Job-like patience in securing this veritable Holy Grail.)
/windows | Sep 12, 2019
Yahoo! Pipes "was a web application from Yahoo! that provided a graphical user interface for building data mashups that aggregate web feeds, web pages, and other services, creating Web-based apps from various sources, and publishing those apps."
Replacements:
Huginn "is a system for building agents that perform automated tasks for you online. They can read the web, watch for events, and take actions on your behalf. Huginn's Agents create and consume events, propagating them along a directed graph. Think of it as a hackable version of IFTTT or Zapier on your own server."
IFTTT (IF This Then That) "is the free way to do more with hundreds of the apps and devices you love, including Twitter, Dropbox, Evernote, Nest, Fitbit, Amazon Alexa, and Google Assistant."
Microsoft Flow - "Create automated workflows between your favorite apps and services to get notifications, synchronize files, collect data, and more"
Pipes - "Re-live Yahoo Pipes. Get and manipulate data from the open web by connecting blocks."
Zapier - "Connect the apps you use everyday to automate your work and be more productive. 1500+ apps and easy integrations - get started in minutes."
/misc | Aug 15, 2019
/mac | Aug 01, 2019
Microsoft Office apps like Word and Excel may suddenly stop defaulting to the user-specified default printer:
Its_Garth's lonely (and locked) November 29, 2018 post (Office 365 on Windows 10 not using Windows default printer) held the unlikely solution:
/windows | Jul 30, 2019
/misc | Jul 24, 2019
In a 2016 reddit thread entitled Clone a Win95 machine while still running?, the consensus was that it could not be done (though rasfert mentioned using xcopy).
Kan Yabumoto's XXCOPY includes a purpose-built clone operation (as described in his Cloning the Win9x system disk using XXCOPY) which can image a running Windows 95 system as simply as:
XXCOPY C:\ D:\ /CLONE
Before booting the clone, set its primary partition as active/bootable. The usual method (also outlined by Kan) is to start the computer via a bootable floppy or CD and run FDISK from there, as Microsoft's FDISK does not allow marking a partition active on any drive other than 1 ("Only partitions on Drive 1 can be made active."). However, Ranish Parition Manager does not suffer from this artificial limitation, and can thus be used to mark the primary partition as active from within Windows.
The last version of XXCOPY compatible with Windows 95, 2.96.7, can be downloaded from http://www.xxcopy.com/download/xxfw2967.zip.
/windows | Jul 21, 2019
/windows | Jul 16, 2019
/mac | Jun 30, 2019
See also fseventer - FileMon for OS X.
/mac | Jun 05, 2019
macOS Downloader "is a command line tool for downloading macOS installers and beta updates".
installinstallmacos.py "can create disk images containing macOS Installer applications available via Apple's softwareupdate catalogs". Note that "Since it is using Apple's installer, any install check or volume check scripts are run. This means that you can only use this tool to create a diskimage containing the versions of macOS that will run on the exact machine you are running the script on. For example, to create a diskimage containing the version 10.13.6 that runs on 2018 MacBook Pros, you must run this script on a 2018 MacBook Pro, and choose the proper version. ... Use a compatible Mac or select a different build compatible with your current hardware and try again. You may also have success running the script in a VM; the InstallationCheck script in versions of the macOS installer to date skips the checks (and returns success) when run on a VM."
Apple Installer Checksums offers "SHA1 checksums of Apple's installers for Mac OSX InstallESD.dmg and Xcode Installer DMGs".
macOS Big Sur Full Installer Database. Download Directly from Apple!
UPDATE: See also Microsoft ISO checksums/hashes for Windows, Office, etc.
/mac | Jun 04, 2019
A martial arts student went to his teacher and said earnestly, "I am devoted to studying your martial system. How long will it take me to master it?" The teacher's reply was casual, "Ten years." Impatiently, the student answered, "But I want to master it faster than that. I will work very hard. I will practice everyday, ten or more hours a day if I have to. How long will it take then?" The teacher thought for a moment, "20 years."
—Zen Kōans
Men fated to be happy need not haste.
—Chinese proverbs from olden times, Peter Pauper Press
At the thought that it wouldn't be long before she saw Professor Hora again, Momo's courage revived. 'Please,' she said to Cassiopeia, 'couldn't we go a bit faster?' 'MORE HASTE LESS SPEED,' came the reply, and the tortoise crawled on even more slowly than before. Yet Momo noticed, as she had the first time, that they made better progress that way. It was as if the street beneath them glided past more quickly the slower they went. That, of course, was the secret ... the slower you went the better progress you made, and the more you hurried the slower your rate of advance.
—Momo by Michael Ende, translated by J. Maxwell Brownjohn
/misc | Jun 02, 2019
HP generously provides an embarrassment of manuals for the 24-b029c, including a PDF entitled Hard Drive Replacement Instructions (cached copy) which is guaranteed to cause acute embarrassment and perhaps even irreparable harm as you and a friend struggle to follow them faithfully.
On page 2, we find:
which sounds straightforward enough.
Any lingering doubt that the screws should be completely removed vanishes as we read on page 3:
However, you would be extremely ill-advised to follow those directions, as the screws are not designed to come out at all.
Mad props to the folks at Up & Running Technologies for sharing the correct technique, which is to simply turn the screws slightly counterclockwise until the screen pops up. You can then use a plastic pry tool to finish the job before slowly and gently lifting the back cover up, starting from the bottom (the manual did get something right: mind the ODD cable running along the top).
/misc | May 28, 2019
/mac | May 27, 2019
along their long edge with the cross-platform XnView MP: Tools > Batch convert... > Actions > Add action > Image > Resize > Mode > Longest side. (In Lightroom: File > Export > Image Sizing > Resize to Fit: > Long Edge.)
UPDATE: I had completely forgotten about the tiny and handy Resize 2.6, which allows batch resizing by percentage, height, width, or maximum dimension while maintaining aspect ratio; it's been listed on the graphics page for ages.
/misc | May 10, 2019
Scouring the web for a macOS analog of Windows Exploit Suggester - Next Generation (WES-NG) (mentioned recently), I stumbled onto Howard Oakley's Scanning your Macs for security problems with Nessus.
Agreeing wholeheartedly with his assessment ("Installation is a bit fiddly and left me with a feeling of discomfort. The installer which you download is but the start of the process: this eventually takes you through to the Nessus web interface, which then downloads further and unspecified packages and installs them somewhere. For a security tool this is worryingly opaque and obfuscated, and I cannot see any convincing reason for having to do it that way."), I opted to install Nessus in a virtualized instance of the target Mac and run it against just 127.0.0.1 to find known vulnerabilities.
As Howard observes, the Basic Network Scan is anything but:
UPDATE: While Nessus is focused on vulnerability scanning, Lynis offers a light-weight, installer-free option for system auditing and hardening:
# git clone https://github.com/CISOfy/lynis # cd lynis # ./lynis audit system
though its results were quite disappointing compared with Nessus, which correctly reported a slew of crticial issues that Lynis missed, like:
/mac | May 09, 2019
The name or title of any specific deity is capitalized just like any other name, so when "God" is used to refer to "the one God" (in other words, in any monotheistic religion), it is capitalized.
For example, you'd capitalize "God" in these sentences:
- Some Christians give thanks to God before every meal.
- Dear God, please let my team win tonight.
When referring to gods in general, though, or when using the word "god" descriptively, keep it lowercase:
- The Romans believed a god named Jupiter ruled the heavens.
- The Greek gods were always causing trouble for humans.
The same rule holds true for Yahweh, Allah, Zeus, and the names of gods in other religions. They're capitalized.
I get it – you're an atheist. You should still capitalize "God"
You've said it a thousand times, and I get it: You don't believe in capital-G God any more than I believe in Tinkerbell. That doesn't change anything. (See what I did there? I don’t believe in an entity named "Tinkerbell." But since it is the proper name of a, yes, fictional character, I capitalized it.)
...
When you don't capitalize a proper name like God's, you're violating a fundamental principle of grammar.
You heard me right: grammar! You don't want to violate the laws of grammar, do you? I mean, seriously: Is nothing sacred?
/misc | Apr 30, 2019
iPhone's Phone app freezing frequently? Rather than restarting (tedious and time consuming), respring by toggling bold text:
iOS does not actually restart; only SpringBoard.app is restarted (similar to relaunching Finder.app in macOS), which generally unfreezes Phone.app as well (in some cases, toggling Airplane Mode may also be necessary).
/misc | Apr 30, 2019
Ultimate: The Ultimate Image Browser - Powerful, "very pre-beta" disk image browser with support for: MBR, EMBR, GPT, FAT-12, -16, and -32, FYSFS, LEANFS, SFS, ISO (Standard CD-ROM), Ext2/3/4, exFAT, NTFS, and VHD. Files can be extracted from or inserted into images.
imapbackup - "A Python script for incremental backups of IMAP mailboxes" with zero dependencies other than Python 2.5 or higher. Worked a treat backing up tens of thousands of messages that Mail.app refused to archive properly. More info.
Kapur - Like MacDown in your browser, or rather, in a single HTML file!
The Definitive Classic Mac Pro (2006-2012) Upgrade Guide - "Definitive" is definitely the right word. A must for those intrepid souls who refuse to let go of Apple's last real desktop computer.
/misc | Mar 26, 2019
The downloads index was previously generated with QuickHash GUI. I decided to cobble something together in Bash that better suited my needs:
$ gfind . -name "[!.]*" -type f -printf '%f %s ' -exec shasum -a 256 {} \; | awk -F ' ' '{ print $1, "| " $2, "| " $3 }' | sort -f | sed 's/_/\\_/g' | (printf "Filename | Bytes| SHA-256\n--- | --- | ---\n" && cat) | markdown2.py --extras tables > output.html
gfind . -name "[!.]*" -type f
Find non-hidden files,
-printf '%f %s '
print their filenames and sizes,
-exec shasum -a 256 {} \;
and generate SHA-256 hashes for them.
awk '{ print $1, "| " $2, "| " $3 }'
Print the first 3 fields from gfind
's output, separating them with vertical bars (necessary for the markdown table).
sort -f
Sort the resultant list alphabetically, ignoring case.
sed 's/_/\\_/g'
Find underscores and prepend backslashes to them so that they are not interpreted as italics when converting markdown to HTML.
(printf "Filename | Bytes| SHA-256\n--- | --- | ---\n" && cat)
Prepend header row (with the minimum number of dashes and vertical bars for the markdown table) to output.
markdown2.py --extras tables
Convert the markdown table to HTML
> table.html
and save as "output.html" in the current directory.
Notes:
gfind was required as the version of find included with macOS 10.14 does not support printf. Installed via brew install findutils
.
Step 6 uses Claudius' neat hack for prepending something to stdout of previous command.
markdown2 is "a fast and complete Python implementation of Markdown" which "also comes with a number of extensions (called 'extras') for things like syntax coloring, tables, header-ids."
/nix | Mar 24, 2019
After 12 years at the same IP address with Slicehost/Rackspace VPS hosting, it's time to move on; a long-standing lack of hard billing limits (and the attendant unlimited exposure) coupled with the clear change in course finally forced the move.
The site has been migrated to Netlify, with the exception of the downloads directory, which is now hosted at Neocities. The list of SHA-256 hashes, however, remain at Netlify (a forthcoming post will cover how the list is generated).
Thanks to Netlify's redirect & rewrite rules, the move should be fairly seamless, but please let me know if you find any broken links or other anomalies.
Migrating from Netlify to Cloudflare Pages
/misc | Mar 23, 2019
WES-NG is a tool which based on the output of Windows' systeminfo utility provides you with the list of vulnerabilities the OS is vulnerable to, including any exploits for these vulnerabilities. Every Windows OS between Windows XP and Windows 10, including their Windows Server counterparts, is supported.
/windows | Mar 03, 2019
Automator's "New PDF Contact Sheet" action hung on a simple job, but it led to finding MakePDF.app hiding in "/System/Library/Image Capture/Automatic Tasks/" along with "Build Web Page.app":
/mac | Feb 20, 2019
/windows | Jan 29, 2019
Unlike Content Blocker extensions like Wipr, dark mode extensions for Safari require extensive permissions (e.g., "Can read sensitive information from webpages, including passwords, phone numbers, and credit cards on all webpages" and "Can see when you visit all webpages").
Safer alternatives include:
* { color: #ffffff !important; background: #000000 !important; } a { color: #00ff00 !important; }
/mac | Jan 24, 2019
Problem: C:\A\ and C:\B\ contain the same files and folders, but the timestamps in C:\B\ are incorrect.
Solution: Mirror the file and folder timestamp values from C:\A\ to the same files and folders in C:\B\ (without having to recopy the files) via robocopy:
C:\>robocopy C:\A\ C:\B\ /E /DCOPY:T /COPY:T ... Total Copied Skipped Mismatch FAILED Extras Dirs : 3 0 3 0 0 0 Files : 14 14 0 0 0 0 Bytes : 3.339 g 3.339 g 0 0 0 0 Times : 0:00:00 0:00:00 0:00:00 0:00:00 Speed : 239063077333 Bytes/sec. ...
robocopy's log is incorrect; no directories were skipped (all their timestamps were updated), no files were copied (only their timestamp data was), and the hardware wasn't quite up to 239GB/sec.
Options used:
/DCOPY:T what to COPY for directories (T=Timestamps) /COPY:T what to COPY for files (T=Timestamps) /E copy subdirectories, including Empty ones.
Might prove handy for situations like these: How to keep the "date modified" from changing when transferring files to Dropbox?
Another solution is wantfront's PowerShell script*, which "will set the last modified time on all the files/folders (including through sub-dirs) to the last modified time of the one found in the original directory. Worst case scenario, if it doesn't find the file in the original directory it won't do anything.":
$origpath="C:\A\"; $newpath="C:\B\"; get-childitem -Path $newpath -recurse | ForEach-Object { $fullpath=$_.FullName; $fname=$_.Name; If (Test-Path "$origpath\$fname") { "Setting ""$fullpath"" LastWriteTime to the LastWriteTime of ""$origpath\$fname"""; If ( (Get-Item "$fullpath") -Is [System.IO.DirectoryInfo]) { (Get-Item "$fullpath").LastWriteTime = (Get-Item "$origpath\$fname").LastWriteTime; } Else { (Get-ChildItem "$fullpath" ).LastWriteTime = ( Get-ChildItem "$origpath\$fname" ).LastWriteTime; } } }
* Mike J. Brown kindly wrote in with a correction to line 5, from $fname=$_.FullName.TrimStart($newpath);
to $fname=$_.Name;
Experiment with timestamps and other file attributes:
Sources:
/windows | Jan 16, 2019
After installing tree in macOS (brew install tree
), running it did not produce the expected results:
$ tree
.
└── 宮?\216駿
├── 1\ 風?\201?谷?\201??\203\212?\202??\202??\202?.iso
├── 2\ 天空?\201??\237\216?\203??\203\222?\202\232?\203??\202?.iso
...
Specifying the character set sadly did not avail, and saving results to a file seemingly exacerbated the problem:
$ tree --charset utf-8 -o list.txt
Partial view of file as it appeared it Sublime Text:
<0x1b>[01;34m.<0x1b>[00m ├── list.txt └── <0x1b>[01;34må®®å´\216駿<0x1b>[00m ...
The solution was to use the -N ("Print non-printable characters as is") and -n ("Turn colorization off always", which hides the color control characters / ANSI escape codes) options:
$ tree -Nn
.
└── 宮崎駿
├── 1 風の谷のナウシカ.iso
├── 2 天空の城ラピュタ.iso
├── 3 となりのトトロ.iso
├── 4 魔女の宅急便.iso
├── 5 もののけ姫.iso
└── 6 千と千尋の神隠し.iso
1 directory, 6 files
/mac | Jan 15, 2019
To copy all files and folders on S: except for S:\foo\ and S:\bar\, check the Filter box and enter \foo\ ; \bar\
into the Exclude field. Omitting the leading backslash will skip all directories named "foo" or "bar", regardless of location.
Options to review when enabling the filter: Option > Main Settings > Copy/Move Options > "Don't create empty directory, if 'Filter' is checked." and Option > Main Settings > Delete Options > "Try to delete directory, even if 'Filter' is checked."
Delete files and folders unique to the destination by changing the operation mode in the dropdown box from the default "Diff (No overwrite)" to "Sync (Size/Date)"
Appending a backslash to the target directory will result in a new directory being created therein.
/windows | Jan 15, 2019
Thanks to the generous CC BY-NC-SA licensing, Colorado Reed's succinct Veganism: An engineer's perspective. is reproduced here verbatim:
Why are you vegan?
I've heard this question quite a bit in the last year and a half of my veganism. And, well, it's a difficult question to answer since my veganism stems from a deep range of materials and experiences: books, research papers, and documentaries, as well as conversations and self-experimentation.
But as an engineer, I aim to both understand my rationale for going vegan and simplify it into a set of logical statements. So, by coalescing my research and experiences, I've created a set of three simple statements (with supporting references) that represent the fundamental arguments that brought me to veganism:
Logically, from the above three points, it follows that consuming animal products is unnecessary and causes destruction to the environment as well as billions of sentient animals. And while I initially didn't fully understand this logic, the research discussed in the "Further discussion" section below led me to understand that veganism was a logical conclusion that I couldn't overlook.
∴ I do not consume animal products
Of course, there was also a part of me that had a lot of subjective thoughts/questions about veganism, and resources such as http://yvfi.ca helped me navigate these channels.
Further discussion:
The first three references and discussions here address the point "Humans can thrive on a vegan diet", the second three references and discussions address the point "Consuming animal products is one of the largest individual contributions to climate change," and the final two references and discussions address "Consuming animal products results in slaughtering ~75 billion sentient farm animals each year — animals that want to live."
/misc | Jan 13, 2019
is instantaneous with iVim (GitHub page):
Import text from other apps, iCloud Drive, etc, or simply copy text files via USB / iTunes File Sharing. Once copied, open files via :o filename
or browse available files via :e .
While browsing, rename files via R
and create new files via %
, entering desired filename when prompted.
To enable case insensitive search and open the same file on every launch, create .vimrc and save the following lines:
set ic
autocmd VimEnter * edit filename
Search forward with /
and backward with ?
.
While searching, use *
to find the next instance of the word currently under the cursor, and #
to find the previous instance of the same word (n
and N
can also be used, but are not as convenient to switch between on the iOS keyboard).
Close a file but leave iVim running via :bd
(which deletes the buffer).
Sources:
/misc | Jan 08, 2019
Attempting to download or purchase items in the iOS App Store suddenly began returning:
Your account has been disabled in the App Store and iTunes.
Testing in iTunes under macOS returned the same message, though with a thoughtful addendum:
Your account has been disabled in the App Store and iTunes. For assistance, contact iTunes Support.
Logging in via iCloud.com still worked, so next tried changing payment info via https://appleid.apple.com/account/manage > Payment & Shipping > Edit, sadly to no avail:
Payment information could not be updated. This Apple ID has been disabled, and cannot redeem codes.
Called 1-800-MY-IPHONE. Transferred to "iTunes Support" (for which a direct number was not available, I was told (later discovered that https://getsupport.apple.com offers email, phone callback, and chat support for iTunes)). Instructed to click "Generate PIN" at the bottom of the https://applied.apple.com page and share it with the customer service rep, who kindly resolved the issue (which she said had been caused by the credit card having been replaced following a fraud alert).
/mac | Jan 02, 2019
The Prophet by Kahlil Gibran
Men Like Gods by H. G. Wells
Leave It To Psmith by P.G. Wodehouse
Sources: Duke University and The Public Domain Review
/misc | Jan 01, 2019