🌱 Picture Resizer 6.0.1.1 [395k] + Drag and drop to batch resize images. Rename executable to change parameters like size, sharpness, and recursion, or run via command line for more options. (Variously referenced as "PhotoResize", "PhotoResizer", and "Photo Resizer" in the documentation and version info.) 📺
/windows | Dec 17, 2020
When connecting an external monitor to a MacBook, the screen is extended rather than mirrored by default, making it difficult to work around broken internal monitors. One of these keyboard shortcuts should switch your Mac to mirrored mode:
Pressing the shortcut again will toggle back to extended mode.
/mac | Dec 17, 2020
UPDATE: According to Patrick Wardle, "As of macOS 11.2 beta 2, the (in)famous ContentFilterExclusionList is gone!"
In addition to the hacky workaround previously outlined in these pages and Objective Development's steps for enabling Little Snitch 4.6 under Big Sur, there is now a third option for preventing Apple from bypassing application firewalls, courtesy of Hany (author of Murus and Vallum): Exclusions Blaster. Simply copy to /Applications, run, and approve the system extension when prompted - that's it!
Successfully tested under both Intel and M1 Macs, though the README warns that it is "experimental".
/mac | Dec 16, 2020
from Chapter 17, Autumn Floods:
莊子 | Literal |
---|---|
是故大人之行 不出乎害人 不多仁恩 動不為利 不賤門隸 貨財弗爭 不多辭讓 事焉不借人 不多食乎力 不賤貪汙 行殊乎俗 不多辟異 為在從衆 不賤佞諂 世之爵祿不足以為勸 戮恥不足以為辱 知是非之不可為分 細大之不可為倪 聞曰 道人不聞 至德不得 大人無己 約分之至也 |
therefore great person 之 action not cause 乎 harm person not much benevolent charity move not for profit not mean gate servant goods wealth not strive not much speech permit business 焉 not borrow person not much eat 之 strong not mean greedy vile act special 乎 ordinary not much 辟 different 為 在 follow multitude not mean glib flatter world 之 rank emolument not satisfy 以 為 persuade disgrace shame not attain 以 為 disgrace know right wrong 之 not able 為 distinguish small great 之 not able 為 differentiate hear said Dao person not hear extreme virtue not obtain great person no self limit distinguish 之 extreme 也 |
Brook Ziporyn | Thomas Merton |
---|---|
"So the conduct of the Great Man harms no one, but he places no special value on humanity and kindness. His actions are not motivated by profit, but he does not despise those who slavishly subordinate themselves to it. He does not fight over wealth, but he places no special value on yielding and refusing it. He doesn’t depend on others, but he places no special value on self-sufficiency. He does not despise the greedy and corrupt, and though his own conduct is unconventional, he places no special value on eccentricity and uniqueness. His actions do [not] follow the crowd, but he does not despise the obsequious flatterers. All the honors and stipends in the world are not enough to goad him into doing anything, and all its punishments and condemnation are not enough to cause him shame, for he knows that right and wrong cannot be definitively divided, and that no border can be fixed between great and small. I have heard it said, 'The man of the Course has no reputation; perfect Virtuosity achieves nothing; the Great Man has no fixed identity.' For he holds perfectly to the differing allotment of things." | The man in whom Tao Acts without impediment Harms no other being By his actions Yet he does not know himself To be "kind," to be "gentle." The man in whom Tao Acts without impediment Does not bother with his own interests And does not despise Others who do. He does not struggle to make money And does not make a virtue of poverty. He goes his way Without relying on others And does not pride himself On walking alone. While he does not follow the crowd He won't complain of those who do. Rank and reward Make no appeal to him; Disgrace and shame Do not deter him. He is not always looking For right and wrong Always deciding "Yes" or "No." The ancients said, therefore: "The man of Tao Remains unknown Perfect virtue Produces nothing 'No-Self' Is 'True-Self.' And the greatest man Is Nobody." |
Martin Palmer | Patrick Edwin Moran |
---|---|
'So it is that the great man through his actions will not set out to harm others, nor make much of benevolence and charity; he does not make any move for gain, nor consider the servant at the gate as lowly; he will not barter for property and riches, nor does he make much of his having turned them down; he asks for no one's help, nor does he make much of his own self-reliance, nor despise the greedy and mean; he does not follow the crowd, nor does he make much of being so different; he comes behind the crowd, but does not make much of those who get ahead through flattery. The titles and honours of this world are of no interest to him, nor is he concerned at the disgrace of punishments. He knows there is no distinction between right and wrong, nor between great and little. I have heard it said, "The Tao man earns no reputation, perfect Virtue is not followed, the great man is self-less." In perfection, this is the path he follows.' | "...For that reason, the behavior of the great man does not proceed from any intention to do injury to others, neither does it go overboard with benevolence or kindness. His activities are not done for the sake of profit, yet on the other hand he does not despise those who take employment as doormen or as other attendants. In disputes over goods or materials he does not depend overly on rhetorical skills, but on the other hand he is not too greatly self effacing. When there are tasks to be done he does not depend on other people to do things for him, but he also does not greatly tout his self reliance, and he does not despise political favors. His behavior is different from ordinary people, but he avoids departing too far from customary norms. While he intends to follow along with the masses, he does not despise others who may depend on eloquence and flattery. The emoluments and official ranks of the common world are insufficient to influence him, and neither death nor being shamed are sufficient to make him feel disgraced. He knows that affirmations and denials are insufficient to make any real discriminations among things, but neither can ideas of the fine and the gross enable people to make real distinctions. I have heard it said that 'The man of the Dao does not have fame. The man of highest virtue does not have virtue. The great man has no self.' That shows how far one can take restrictions [to categories] and divisions [into groups]." |
Herbert Giles | Burton Watson |
---|---|
Therefore, the truly great man, although he does not injure others, does not credit himself with charity and mercy. He seeks not gain, but does not despise his followers who do. He struggles not for wealth, but does not take credit for letting it alone. He asks help from no man, but takes no credit for his self-reliance, neither does he despise those who seek preferment through friends. He acts differently from the vulgar crowd, but takes no credit for his exceptionality; nor because others act with the majority does he despise them as hypocrites. The ranks and emoluments of the world are to him no cause for joy; its punishments and shame no cause for disgrace. He knows that positive and negative cannot be distinguished, that great and small cannot be defined. "I have heard say, the man of TAO has no reputation; perfect virtue acquires nothing; the truly great man ignores self;—this is the height of self-discipline." |
"Therefore the Great Man in his actions will not harm others, but he makes no show of benevolence or charity. He will not move for the sake of profit, but he docs not despise the porter at the gate. He will not wrangle for goods or wealth, but he makes no show of refusing or relinquishing them. He will not enlist the help of others in his work, but he makes no show of being self-supporting, and he does not despise the greedy and base. His actions differ from those of the mob, but he makes no show of uniqueness or eccentricity. He is content to stay behind with the crowd, but he does not despise those who run forward to flatter and fawn. All the titles and stipends of the age are not enough to stir him to exertion; all its penalties and censures are not enough to make him feel shame. He knows that no line can be drawn between right and wrong, no border can be fixed between great and small. I have heard it said, 'The Man of the Way wins no fame, the highest virtue wins no gain, the Great Man has no self.' To the most perfect degree, he goes along with what has been allotted to him." |
Sam Hamill | James Legge |
---|---|
"So great people don't hurt others. But they don't concern themselves much with benevolence or mercy either. Profit is never their motive, but they're not bad tippers. They don't compete for property and wealth, but they don't make a big show of turning it down, either. They don't recruit helpers for their work, but they don't show off their independence. They don't despise the mean and greedy, and while they stay clear of those bad habits, they don't make a display of their difference. They go along with the crowd and don't look down on its glib, fawning leaders. The rank and rewards of the world can't move them. The punishment and blame of the world can't shame them. They know 'right' and 'wrong' are not so easily divisible—no more than 'big' and 'little.' I've heard it said that those with the Tao will not be heard of, that getting the Power of Virtue is not 'getting.' Great people have no selves. They find their parts in life. Now that's being there." | 'Therefore while the actions of the Great Man are not directed to injure men, he does not plume himself on his benevolence and kindness; while his movements are not made with a view to gain, he does not consider the menials of a family as mean; while he does not strive after property and wealth, he does not plume himself on declining them; while he does not borrow the help of others to accomplish his affairs, he does not plume himself on supporting himself by his own strength, nor does he despise those who in their greed do what is mean; while he differs in his conduct from the vulgar, he does not plume himself on being so different from them; while it is his desire to follow the multitude, he does not despise the glib-tongued flatterers. The rank and emoluments of the world furnish no stimulus to him, nor does he reckon its punishments and shame to be a disgrace. He knows that the right and the wrong can (often) not be distinguished, and that what is small and what is great can (often) not be defined. I have heard it said, "The Man of Tâo does not become distinguished; the greatest virtue is unsuccessful; the Great Man has no thought of self;"— to so great a degree may the lot be restricted.' |
Altair | Unattributed* |
---|---|
"Therefore, while the behavior of the great man does not stem from harming others, he does not make much of his kind and gracious acts. While his movements are not for profit, he does not despise the porter at the gate. While not striving after property, he does not make much of politely turning it down. While engaging in anything and not borrowing from others, he does not make much of eating from his own strength nor despise corruption. While his conduct is exceptional among the common people, he does not make much of being an unusual phenomenon. While yielding to the opinion of the masses, he does not despise flattery. The world's titles and emoluments are not enough to urge him on; its executions and humiliations are not enough to shame him. He knows right and wrong cannot be parted, the fine and the gross cannot be distinguished. I have heard said: "The man of the Dao is not famous, supreme virtue is not obtained, the great man is impartial." It is the height of restraining differentiation. | 28 The men of perfect practice don't do harm to others but they don't make efforts to do well everywhere. Their deeds aren't based on interest, while they don't consider it is wrong that philistines seek pretty interest and pretty position and ask for money. They don't scramble for the present wealth, but they will not pretend to be lofty to refuse the interest in hand. 29 They would like to accomplish everything by themseles. They would not bother others unless by no choice. They don't pant for making more money; however, they don't condemn and scorn the common people who strive for money. 30 The men of perfect practice are different in deeds, living customs and mindset from the common people but you can't say that they are weird. They don't look like Hippie with queer clothes and unique behavior. They do in Rome as Rome do, act as the same as the common people. In society, they stand with the masses. They don't flatter somebody for convenience and personal interest and echo the opinion of a few man of high position. Nevertheless, they think it as living tactics that some philistines adore hero and flatter man of high position. They don't consider it is wrong or mean. 31 Fame, position and wealth can't lure them because these are not their goal of life. High pressure, punishment and insult can't change their thought and deed too. They are tough and persistent. Why are they so, it is because they are deeply aware that right and wrong, small and big, rich and poor, and nobleness and humbleness are not absolute but relative. 32 The saying in this world goes well --- a man of practice seeks no fame and virtue. A man who practices to a certain level doesn't seek anything. The true man of perfect practice even forgets his own body---, which maybe is the best conclusion for our discussion about size and shape, rich and poor, and nobleness and humbleness. |
* Grammatical and spelling errors have been left intact.
Victor Mair has excluded this passage from his Wandering on the Way: Early Taoist Tales and Parables of Chuang Tzu (see ellipsis on page 155 of the April 2000 University of Hawaii Press edition). A possible explanation from Paul Rouzer's A New Practical Primer of Literary Chinese:
"This passage to the end of the chapter may seem a non sequitur. What does a discussion of the behavior of the 'Great Man' have to do with metaphysical categories of size analyzed earlier? Consequently, some have assumed that the rest of this lesson's text has been interpolated and have removed it. However, if the author is attempting to show how our mental categories are conventional and arbitrary, then he can also claim that our behavior in the world should not be based on absolute and unchanging standards as well."
/misc | Oct 27, 2020
Patrick Wardle highlighted a tweet by Maxwell ("Some Apple apps bypass some network extensions and VPN Apps. Maps for example can directly access the internet bypassing any NEFilterDataProvider or NEAppProxyProviders you have running"), sparking an extensive HN discussion on Apple's ham-fisted tactics (not unlike Google's recent behavior).
A search for "NEFilterDataProvider" turned up David Dudok de Wit's post fingering the ContentFilterExclusionList key in /System/Library/Frameworks/NetworkExtension.framework/Versions/A/Resources/Info.plist as the culprit. The default list includes 56 Apple apps and daemons like App Store, MusicLibrary, softwareupdated, etc.:
Deleting those entries under Big Sur turned out to be rather involved; in fact, one could be forgiven for coming away with the vague suspicion that Apple would prefer them not to be disturbed:
Disable FileVault
Boot into macOS Recovery, disable SIP (csrutil disable
) and SSV (csrutil authenticated-root disable
), and reboot
Find the root mount device, e.g.,
% mount
/dev/disk1s5s1 on / (apfs, local, read-only, journaled)
...
% mkdir mnt
% sudo mount -o nobrowse -t apfs /dev/disk1s5 mnt/
Edit Info.plist as desired, e.g., % sudo vi mnt/System/Library/Frameworks/NetworkExtension.framework/Versions/A/Resources/Info.plist
% sudo bless --folder mnt/System/Library/CoreServices --bootefi --create-snapshot && sudo reboot
Little Snitch 5 and TripMode 3 had no problem blocking the previously-cloaked processes afterwards:
though one may well be left with a niggling doubt: should all this really be necessary to monitor your own computer's network traffic?
UPDATE 1: Hany, author of Murus and Vallum, was kind enough to reply with some testing of his own:
I did some tests and I’ve found at least one major issue on Catalina.
Removing all entries from the dictionary key seems to work for most listed processes: connections are seen by the network filter and flows are passed/blocked according to matched rules. But it does not work for at least one of the listed processes: IMTransferAgent. If you use macOS Messages.app then you may be aware that this process is used to send messages attachments.
If removed from the list, the process is always blocked. The filter provider does not see any flow for that process, and any attempt to send attachments with Messages.app will fail until you disable the filter.
UPDATE 2: The traffic of some Apple processes isn’t shown in Little Snitch 5.
UPDATE 3: Enabling Little Snitch 4.6 kext under Big Sur
UPDATE 4: Tweet by Apple developer Russ Bishop: "Some system processes bypassing NetworkExtensions in macOS is a bug, in case you were wondering." and some replies:
UPDATE 5: Exclusions Blaster
UPDATE 6: Hooray, no more ContentFilterExclusionList
/mac | Oct 21, 2020
textutil -convert html *.webarchive && for i in *.html ; do cupsfilter "$i" > "$i".pdf ; done
-- Keep code for Safari separate from the code for System Events.
tell application "Safari"
activate
-- Tell Safari, as the known frontmost application, to display the 'choose folder' dialog.
set SaveFolderPath to POSIX path of (choose folder with prompt "Select Folder to Save PDF Files")
tell window 1
set current tab to tab 1
set ctabs to (count tabs)
end tell
end tell
repeat with i from 1 to ctabs
tell application "System Events"
tell process "Safari"
click menu item "Show Reader" of menu "View" of menu bar 1
click menu item "Export as PDF…" of menu "File" of menu bar 1
repeat until exists sheet 1 of window 1
delay 1
end repeat
-- The sheet opens alread primed with a file name based on the tab name.
if (i is 1) then
-- Make sure the file gets saved to the folder chosen above.
-- This is only necessary first time round the repeat, as the folder becomes the default next time.
keystroke "g" using {command down, shift down}
repeat until exists sheet 1 of sheet 1 of window 1
delay 1
end repeat
log "passed delay"
tell sheet 1 of sheet 1 of window 1
set value of combo box 1 to SaveFolderPath -- NB. the folder path here, not the file name.
click button "Go"
end tell
end if
click button "Save" of sheet 1 of window 1
click menu item "Close tab" of menu "File" of menu bar 1
end tell
tell application "Safari" to display dialog "Close after 1 second..." giving up after 1
end tell
end repeat
/mac | Oct 11, 2020
Before iOS 9, iOS apps could be backed up to Macs and PCs via iTunes1:
"If you try to transfer purchases from an iOS 9 device in iTunes, you may notice that apps won’t transfer to your hard drive. Similarly, when backing up an iOS 9 device in iTunes, the 'Backup Apps' dialog will simply not appear. App data will be backed up, of course, just not the application themselves."
Adding insult to injury, iTunes 12.7 removed the App Store, closing the door on downloading/backing up iOS apps from there:
"If you own a Mac or even a Windows PC, you will no longer be able to download iOS apps to your desktop to sync to an iPhone, iPad, or iPod Touch."
You may want to back up an app before it disappears from the App Store or preserve an older, better version, e.g.,
MiniKeePass - final version only added an EOL nag on every launch
Insight Timer - mutated from a simple meditation timer to a social media saturnalia
Milebug - perennial mileage-tracking favorite pulled by developer, despite it continuing to work as originally designed (i.e., completely offline) even in later iOS versions (tested in iOS 13 & 14)
iOS apps can still be downloaded via iTunes 12.6.3 (does not run on Mojave or higher), Apple Configurator 2 (with some caveats), or iMazing:
To back up all apps on your iOS device to apps/ in the current directory of your Mac, jailbreak your device, install usbmuxd, start iproxy, then:
$ scp -P 4444 -r root@localhost:/var/containers/Bundle/Application apps/
$ mkdir Payload
$ cp -R appname.app Payload/
$ zip -r appname.ipa Payload/
iTunes 12: click iOS device icon → drag appname.ipa under "On My Device" section
Apple Configurator 2: double click iOS device icon → drag appname.ipa onto "Apps"2
Xcode 11: Windows → "Devices & Simulators" → click iOS device icon → drag appname.ipa into box under "INSTALLED APPS"
iMazing 2: click iOS device icon → Apps → Copy to Device → browse to recovered appname.ipa → "Select"
Apple Configurator 2 also allows installing an iOS .app via Actions → Add → Apps... → Choose from my Mac...
/mac | Sep 28, 2020
The auspiciously-titled Safari hogging up storage on your iPhone? Here's the fix! exhorts users to tap Settings → Safari → Advanced → Website Data → Remove All Website Data (mgmiller68 wonders in the comments how this differs from Settings → Safari → Clear History and Website Data); alas, neither method proved efficacious.
Others advise waiting days for the issue to clear; sadly, not even weeks availed.
Still others recommend a draconian backup, wipe, and restore approach.
Macworld's Documents & Data: A mysterious black hole of data storage in iOS concludes unpropitiously:
"At a minimum, I’d like to know what’s taking up all that space. Those 7GB of Documents & Data probably include something that’s gotten stuck, that can’t be deleted, such as an old iOS update perhaps. But it would be helpful if every app had to offer a feature to delete its caches, or if there were a global Clear Caches feature in iOS."
Found the offending files by jailbreaking and SSHing into the device then:
#cd /var/mobile/Containers/Data/Application/
#find . -name Safari
./{GUID}/Library/Safari #cd {GUID}
#du -h
... 4.0G ./tmp/Download-tCA2Caas ... 3.7G ./tmp/Download-UT0Nlzkj ... 7.8G ./tmp 8.0G .
Emptying the tmp directory did the trick:
Before | After |
---|---|
H/T jareehD for the filepath hint.
/misc | Sep 26, 2020
Delete the divers subdirs which appear between "/blog/" and the filenames in this example:
$ cat index.rss
...
<link>https://tinyapps.org/blog</link>
...
<link>https://tinyapps.org/blog/misc/202009080700_usbimager.html</link>
...
<link>https://tinyapps.org/blog/mac/202009070700_2011_mac_mini_snow_leopard.html</link>
...
<link>https://tinyapps.org/blog/windows/202008200700_vostro_2420_lines.html</link>
...
with GNU sed:
$ sed -i -E 's (tinyapps.org/blog)/[a-z]+ \1 ' index.rss
-i
= edit file in place-E
= use Extended regular expressions in the scripts
= substitute the replacement string for the first instance of the regular expression in the pattern space. (Where are the forward slashes ("/") you ask? Replaced with whitespace! since sed accepts any single-byte character as a delimiter.)(tinyapps.org/blog)
= capture group (or, as the GNU sed documentation has it, subexpression)/[a-z]+
= a forward slash followed by one or more lower case letters\1
= back-reference referring to the subexpression aboveor Perl:
$ perl -pi -e 's|(tinyapps.org/blog)/[a-z]+|\1|' index.rss
-p
= print lines (more precise explanation)-i
= edit in-place-e
= enter one line of program/nix | Sep 13, 2020
Keyboard Cleaner 1.2 [137k] Disables keyboard input (well, most: Command+Shift+3 worked and Command+Tab switched focus to the next app (though the black screen obscured that fact)) until Command+Q is pressed. 📺
UPDATE: Michael Leddy kindly wrote in to suggest KeyboardCleanTool, which does a more thorough job of blocking keyboard input (including the Function keys, which Keyboard Cleaner does not). He has written more about the tool here.
/mac | Sep 13, 2020
H/T HN
/misc | Sep 08, 2020
(See also Downgrading from Lion to Snow Leopard on the latest Mac hardware)
Install Snow Leopard via a 10.6.7 universal installer disc (a MacBook Pro or iMac 10.6.7 "Mac OS X Install DVD" can be made universal via Joel Bruner's bash script 💾).
Install all updates*
From a Lion install, copy
/System/Library/Extensions/: AppleIntelHDGraphics.kext AppleIntelSNBGraphicsFB.kext
and
/System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/Plugins/ACPI_SMC_PlatformPlugin.kext/Contents/Resources/: Macmini5_1.plist Macmini5_2.plist Macmini5_3.plist
into the same locations on the Mac Mini.
Run this script as root and reboot:
cd /System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources
chown root:wheel Macmini5*
chmod 644 Macmini5*
cd /System/Library/Extensions
chown -R root:wheel AppleIntelHDGraphics.kext
chown -R root:wheel AppleIntelSNBGraphicsFB.kext
chmod -R 755 AppleIntelHDGraphics.kext
chmod -R 755 AppleIntelSNBGraphicsFB.kext
kextcache -system-prelinked-kernel
kextcache -system-caches
exit
echo 'Finished'
* Deuced civil of Apple to keep the old servers humming along:
/mac | Sep 07, 2020
who, as Edwin Arnold relates,
“[W]ith equanimity surveys
Lustre of goodness, strife of passion, sloth
Of ignorance, not angry if they are,
Not wishful when they are not ... who sits
A sojourner and stranger in their midst
Unruffled, standing off, saying—serene—
When troubles break, ‘These be the Qualities!’”
Alexander Rostov in Amor Towles’ A Gentleman in Moscow
Conrad Hensley in Tom Wolfe’s A Man in Full
Ainsely Fothergill in James Hilton’s Knight Without Armour:
“The journey was tiring, but worse for others than for himself, for his body, like his mind, seemed only capable of half-sensations. For years he had been unaware of this, but now, in a world of men and women, he perceived and was puzzled by it; he found himself doing things in a curious dream-like way, as if part of him were asleep and were obeying the other part automatically. Even when he talked, he heard his own voice as if it were another person speaking; and when he felt tiredness, or hunger, or a physical ache, the sensation came to him slowly, incompletely, almost at secondhand.”
Phileas Fogg in Jules Verne’s Around the World in Eighty Days:
“He was so exact that he was never in a hurry, was always ready, and was economical alike of his steps and his motions. He never took one step too many, and always went to his destination by the shortest cut; he made no superfluous gestures, and was never seen to be moved or agitated. He was the most deliberate person in the world, yet always reached his destination at the exact moment.”
Salvor Hardin in Isaac Asimov’s Foundation:
“Violence is the last refuge of the incompetent.”
Rupert Psmith in P.G. Wodehouse’s Psmith in the City:
“Psmith had a way of treating unpleasant situations as if he were merely playing at them for his own amusement. Psmith’s attitude towards the slings and arrows of outrageous Fortune was to regard them with a bland smile, as if they were part of an entertainment got up for his express benefit.”
See also Descriptive book titles that obviate the need to read the book.
/misc | Aug 26, 2020
Four years ago, RockNir posted Weird Lines and color changes suddenly appear on screen. What's happening? to the Dell laptops general forum. It read in part, "[My] Dell Vostro 2420 has been behaving weirdly at times ... pink and grey lines suddenly appear and cover the entire area of the screen, generally when I am not plugged in ... This problem started after I upgraded to Windows 10..." and included this image:
Sadly, the forum has since gone read only, so I am posting the solution here in hopes that RockNir (and anyone else facing this issue) finds it:
Verified both the problem and the solution on a Dell Vostro 2420 running Windows 10.
See also:
/windows | Aug 20, 2020
Some options for cloning a Bitlocker-enabled system drive:
Decrypt, clone, encrypt
Use dd or similar to clone sector by sector
Boot into Windows, clone live system, encrypt
Boot from TBWinRE1, unlock via manage-bde.exe, clone2, encrypt
Boot from Casper Secure Startup Disk3, unlock4, clone
TBWinPE does not include manage-bde.exe.
Select "Read from Volume", which "allows things like the ability to see BitLocker volumes unencrypted" (if unselected, a sector-by-sector clone will be made, even if the Bitlocker partition was unlocked). Other options worth considering: Scale to Fit, Scale to Target, Align to Target, and Remove Gaps on Copy. Could not find an option or set of options that correctly resized a larger target; fixed with Paragon's Partition Manager Community Edition.
A number of useful tools lie hidden beneath the surface: Explore > Quick Access Toolbar arrow > Save As > click the now-showing Save As button > This PC > X:
right click desired tool > Open. You can also reveal the Menu Bar in the main menu via F10.
If you missed the GUI prompt to unlock, make it reappear by clicking the SmartStart Wizard icon in the upper right hand corner (alternatively, run manage-bde -unlock
inside cmd.exe).
While testing TBWinRE, the source drive's Windows install became unbootable (Error code: 0xc000000e), despite issuing no write operations to the drive. As always, backup beforehand and ideally use a hardware write blocker on the source drive.
Acronis True Image's rescue boot disc does not support cloning an encrypted drive, even when unlocked: "encrypted and unlocked disks cannot be read by Acronis Bootable Media". Further, "This is expected behavior, current by-design limitation."
/windows | Aug 19, 2020
via USB generally fails using the native Windows (Import Pictures and Videos wizard, File Explorer) and macOS (Image Capture, Photos) tools with errors like "Error Copying File or Folder - The device is unreachable" or "The operation couldn't be completed." In a recent case, these MTP-compatible Windows apps did not avail either:
nor did iMazing under macOS ("Operation Failed - foo.JPG is locked by iOS." within the first few minutes). Happily, iExplorer did the trick, successfully importing close to 40,000 photos and videos (though the batch delete process failed, necessitating a workaround).
/misc | Aug 13, 2020
when handling digital photos and videos: Phil Harvey's sedulously-crafted ExifTool, "a platform-independent Perl library plus a command-line application for reading, writing and editing meta information in a wide variety of files".
That description hardly does it justice; here's a taste of what's possible from the Renaming and/or Moving Files section:
By writing a new value to the FileName and/or Directory tags, files can be renamed and/or moved to different directories. This can be a very powerful tool in combination with the -d (date format) option for organizing images by date/time. For example, the following command renames all images in directory "DIR" according to the individual file's creation date in the form "YYYYmmdd_HHMMSS.ext".
exiftool "-FileName<CreateDate" -d "%Y%m%d_%H%M%S.%%e" DIR
Or a new directory can be specified by setting the value of the Directory tag. For example, the following command moves all images originally in directory "DIR" into a directory hierarchy organized by year/month/day:
exiftool "-Directory<DateTimeOriginal" -d "%Y/%m/%d" DIR
Read here for more details about this powerful feature.
For Windows users who prefer a GUI, check out Kim Jensen's Advanced Renamer which includes ExifTool among a host of other renaming tools.
/misc | Aug 13, 2020
To batch delete all photos and videos without a third party app or a PC or Mac:
Video of the process. H/T MacObserver.
The above process failed on a collection of over 58,000 images, but iMazing for macOS did the job, at least when deleting in batches under 10,000.
Successfully deleted ~40,000 photos and videos in a single attempt via iExplorer:
Image Capture and File Explorer are inefficient and unreliable when handling large collections.
Another method for batch deleting directly on device, via Shortcuts.app:
/misc | Aug 11, 2020
Q: "How can one discern between an impulse that comes from the sense of separation versus awareness?"
A: "Nearly all the impulses that are filtered through the sense of separation have happiness as their destiny. Whereas the impulses that come directly from awareness, unmediated through the sense of separation, have happiness as their origin."
—Rupert Spira: The Essence of Non-Duality, Episode 8: Conversations Exploring Experience Through the Metaphor of an Actor
/misc | Aug 08, 2020
#! /usr/bin/env python
import poplib
M = poplib.POP3_SSL("mail.example.com", 995)
M.user("user@example.com")
M.pass_("password")
for i in range(M.stat()[0], 0, -1):
M.dele(i)
M.quit()
To prompt for the password rather than storing it in the script, change ("password")
to (getpass.getpass())
and add import getpass
.
Sources & Additional Examples:
Sean Vinsick's comment on Using Telnet to Delete Mass Amounts of E-mail
poplib documentation: "On most servers deletions are not actually performed until QUIT (the major exception is Eudora QPOP, which deliberately violates the RFCs by doing pending deletes on any disconnect)."
/nix | Aug 04, 2020
bearing in mind who he is, and whence he has come, and by whom he was created, centres his attention on this and this only, how he may fill his place in an orderly fashion, and with due obedience to God. 'Is it Thy will that I should still remain? I will remain as a free man, as a noble man, as Thou didst wish it; for Thou hast made me free from hindrance in what was mine own. And now hast Thou no further need of me? Be it well with Thee. I have been waiting here until now because of Thee and of none other, and now I obey Thee and depart.' 'How do you depart?' 'Again, as Thou didst wish it, as a free man, as Thy servant, as one who has perceived Thy commands and Thy prohibitions. But so long as I continue to live in Thy service, what manner of man wouldst Thou have me be? An official or a private citizen, a senator or one of the common people, a soldier or a general, a teacher or the head of a household? Whatsoever station and post Thou assign me, I will die ten thousand times, as Socrates says, or ever I abandon it. And where wouldst Thou have me be? In Rome, or in Athens, or in Thebes, or in Gyara? Only remember me there. If Thou sendest me to a place where men have no means of living in accordance with nature, I shall depart this life, not in disobedience to Thee, but as though Thou wert sounding for me the recall. I do not abandon Thee—far be that from me! but I perceive that Thou hast no need of me. Yet if there be vouchsafed a means of living in accordance with nature, I will seek no other place than that in which I am, or other men than those who are now my associates.'"
—Epictetus, Book III, Chapter 24, That we ought not to yearn for the things which are not under our control
/misc | Aug 03, 2020
The author of Running DOS Apps on Windows (HN thread) has tested and uploaded a number of standalone EXEs from Windows NT 3.51 that still run well under Windows 10:
Name | Size | |
calc.exe | 54 KB | |
cdplayer.exe | 78 KB | |
charmap.exe | 52 KB | |
clock.exe | 30 KB | |
control.exe | 41 KB | |
pbrush.exe | 230 KB | |
perfmon.exe | 176 KB | |
sndrec32.exe | 106 KB | |
sol.exe | 182 KB | |
telnet.exe | 66 KB | |
terminal.exe | 162 KB | |
winmine.exe | 36 KB |
Cursory testing reveals that perennial-favorite time-wasting tool Freecell also works; just extract FREECELL.EXE and CARDS.DLL from the Windows NT 3.51 Workstation CD:
expand D:\I386\FREECELL.EX_ -r C:\Games
expand D:\I386\CARDS.DL_ -r C:\Games
/windows | Jul 27, 2020
commences with such aphorisms as:
O Friend! If thy aim in life is liberation then shun sense objects as poison, and pursue as nectar, forgiveness, simplicity of life, compassion, contentment and truth. —Ch. I, 2
(Note: "Sense objects" are passing, and the good in them is a characteristic of the all-pervading Truth; devotion to them impoverishes the resources of the soul and becomes a binding factor. The word "truth" in this verse means truth-speaking.)
He who thinks himself to be free, is free, and he who thinks himself to be bound, is bound. True is the saying, "as a man thinks, so he becomes." —Ch. I, 11
A distaste for the objects of sense is liberation; attachment to those objects is bondage. This is wisdom; now act as thou wilt. —Ch. XV, 2
before transcending them in only seeming contradiction:
For the man who is no longer bound by ignorance, the cause of birth and death, there is neither a desire to inflict injury nor to demonstrate compassion. He experiences neither arrogance nor humility, wonder nor agitation. —Ch. XVII, 16
The liberated man has no aversion for sense-objects, nor does he crave for them. With his mind ever detached, he is unconcerned with what is attained and with what remains unattained. —Ch. XVII, 17
He whose delight is in the Self, and who is consequently serene and pure, has no desire to renounce anything, nor does he feel any lack anywhere. —Ch. XVIII, 23
Passages from the 1972 reprint of Ashtavakra gita, translated by Hari Prasad Shastri and published by Shanti Sadan (an updated edition is available from the publisher).
/misc | Jul 15, 2020
Some email services (Spectrum/TWC/Road Runner, Yahoo!, etc.) allow forwarding but not automatic deletion of forwarded email, leading to potential quota exceedance over time.
This Python script* can be scheduled or run manually to batch delete all messages in the Inbox:
#!/usr/bin/env python
import imaplib
M = imaplib.IMAP4_SSL("imap.example.com")
M.login("user@example.com","password")
M.select("Inbox")
typ, data = M.search(None, 'ALL')
for num in data[0].split():
M.store(num, '+FLAGS', '\\Deleted')
M.expunge()
M.close()
M.logout()
Under iOS, use a-Shell (App Store | GitHub) to edit and save the script (e.g., "emptyinbox") in vim, then set as executable (chmod +x emptyinbox
). Run simply as emptyinbox
or pair with Shortcuts (specifying the full path, /private/var/mobile/Containers/Data/Application/long-string/Documents/emptyinbox) and add an icon to the Home screen via the Action icon.
See also Batch delete all email from POP server via Python.
* H/T codersofthedark, the imaplib documentation, and the participants in this discussion.
/misc | Jul 03, 2020
In almost a decade and a half of using Brother MPrint MW series mobile printers, the only problem I've had is with the paper feed roller (aka the "pick-up roller"), which generally stops feeding paper after 4 or 5 years.
Brother's MW-140BT's FAQs & Troubleshooting includes a document entitled The paper does not feed., which recommends checking that the paper is properly loaded, the cover closed, etc.
However, the final suggestion (reproduced below) to clean the pick-up roller with a piece of cellophane tape is marginally useful; it would sometimes allow one or two more prints before failing altogether (though it seemed to have less to do with cleaning and more to do with making the roller just tacky/sticky enough to pick up the paper):
1. Affix a piece of cellophane tape to the pick-up roller.
2. Remove the cellophane tape from the pick-up roller.
3. Rotate the pick-up and repeat the procedure to clean the entire surface of the roller.
Searching for a real solution to the paper feed problem, I stumbled onto No more paper jams or misfeeds!, which suggests using a rubber restorer like one of these:
(A similar product not mentioned in the article: CleanTex Rubber Roller Restorer.)
I went with CaiKleen RBR due to its diminutive size and applicator.
Applying a few drops to a couple of Q-tips and cleaning the roller with them worked wonders - several units that I had given up on began feeding perfectly.
One of the units needed a new battery; Brother would not ship their $92 BT100 MW-145BT Li-ion battery to my location, so I ordered NextBatteries' Brother MW-145BT battery (listed as a compatible replacement for Brother's BW-100 and BW-105 batteries) for $20.90 - it charged right up in an MW-120. (The original battery is held down by tape, so a bit of force is required to remove it.)
The A7 paper (model C-11 or C11S) required by the MPrint MW 100 series printers is still available from Brother.
/misc | Jun 17, 2020
See Offline speech-to-text that is accurate and free (as in speech) for a far better option.
macOS 10.14.6 Mojave (Enhanced Dictation is not available in Catalina - see note 3 below)
One or more audio recordings
Run Soundflower installer twice
System Preferences > Sound > set both input and output device to "Soundflower (2ch)"
System Preferences > Keyboard > Dictation > set "Dictation:" to "On", check "Use Enhanced Dictation", and set microphone to "Soundflower (2ch)"
System Preferences > Accessibility > Dictation > uncheck "Mute audio output while dictating"
Begin playback of audio file
Press Fn twice in TextEdit to start converting audio to text
To uninstall Soundflower, delete Soundflower.kext from /Library/Extensions (and /System/Library/Extensions if present), sudo kextcache --prune-staging
, and restart.
BlackHole (FOSS), Sound Siphon ($49), or Loopback ($99) can be substituted for Soundflower.
Enhanced Dictation has been removed from Catalina. Therefore, all Dictation data (along with a slew of other information) is sent to Apple for processing:
Mojave | Catalina |
---|---|
This regrettable change, coupled with an error message sometimes encountered in Mojave ("Dictation languages aren't available to download at this time. Try again later."), makes it all the more advisable to back up a copy of the Enhanced Dictation files once they are downloaded. They can be found in /System/Library/Speech/Recognizers/SpeechRecognitionCoreLanguages/ with filenames like en_US.SpeechRecognition, ja_JP.SpeechRecognition, etc.
How to Transcribe .MP3 Audio from Podcasts or .MP4 Movies to Text on Mac OS
Using Dictation to Turn Recorded Audio to Text by Frank Lowney
/mac | Jun 16, 2020
Ability to toggle WiFi on/off per app, just like Cellular
Restore sane Bluetooth and WiFi button behavior in Control Center
Add date to the iPhone's Status Bar
Ability to auto reply to text messages without having to enter Do Not Disturb mode (or at least allow removing the mandatory "I'm not receiving notifications. If this is urgent, reply "urgent" to send a notification through with your original message.")
Include (or even just allow) an outbound firewall app like Little Snitch
UPDATE: iOS: Disable WiFi (not just cellular) for specific apps without jailbreaking
/misc | Jun 14, 2020
Tom Ehlert's portable Drive Snapshot has been a longtime favorite for disk image backups, but it does not offer disk cloning.
Another product also from Germany, Miray's HDClone, does; it can clone a running Windows system to another drive via the portable hdclone.exe.
However, HDClone comes in a dizzying array of versions:
all of which (other than the free version) are hobbled with activation schemes; even "Professional Portable", which is intended "for professional use on arbitrary PCs", requires a USB dongle:
Use on any PC to be serviced with a USB token provided by us. The software may be permanently installed on those PCs, but can only be used when the token is connected.
While the free version is saddled with a number of artificial limitations (max copy rate of 30MB/s, no support for USB 3.0 or disks over 2TB, no cloning to smaller disks, etc.), it does offer hot disk cloning of live, running Windows instances without the need to install any software or wrangle with activation.
The problem with activation schemes is highlighted by btesoroni's post Lost USB Token and hit limit of December 2019 (which went unanswered, prompting a followup post the next day, Is this company still in business???? which is also unanswered).
Miray, please stop punishing your customers with activation schemes and learn from Tom's nearly two decades of success with his activation-free Drive Snapshot.
/windows | Jun 14, 2020
Police act like laws don't apply to them because of 'qualified immunity.' They're right.
The Supreme Court Has a Chance To End Qualified Immunity and Prevent Cases Like George Floyd's
Cops Accused of Stealing Over $225,000 Can't Be Sued, Thanks to Qualified Immunity
Judge, Shielding Cop Via 'Qualified Immunity,' Asks Whether It Belongs In 'Dustbin'
Guilty Until Proven Innocent: Washington, D.C.'s Civil Forfeiture Racket
Justice Dept. Revives Criticized Policy Allowing Assets to Be Seized
Police Say Seizing Property Without Trial Helps Keep Crime Down. A New Study Shows They’re Wrong.
Lindy: "No Knock Raid" - a song about the drug war's deadliest tactic.
Rand Paul says no-knock warrants 'should be forbidden' in wake of Breonna Taylor shooting
Woman shot and killed by Kentucky police in botched raid, family says
Ex-Atlanta officers get prison time for cover-up in deadly raid
Robbery Ring Disguised as Drug Raids Nets Convictions for Former LA Cops
Parents of Toddler Burned by Drug Warriors Demand Compensation
Virginia's governor signs legislation banning no-knock warrants: "Oregon and Florida have also banned no-knock warrants."
When police officers are told they’re in a war, they act like it
‘Do Not Resist’: A chilling look at the normalization of warrior cops
Rise of the Warrior Cop: The Militarization of America's Police Forces
Kentucky State Police training slideshow quotes Hitler, advocates 'ruthless' violence
(One way in which the police should emulate the military: Why the US military usually punishes misconduct but police often close ranks)
Police complaints drop 93 percent after deploying body cameras
Use of body-worn cameras sees complaints against police ‘virtually vanish’, study finds
San Diego police body camera report: Fewer complaints, less use of force
Hundreds of police officers have been labeled liars. Some still help send people to prison.
Why the Prevalence of Lying by Police is a Problem for the Innocent
In Secretly Recorded Phone Calls, Officers Say Innocent People Were Framed
OC sheriff’s deputies who lied on reports testify that they didn’t know it was illegal
/misc | Jun 11, 2020
"[A] man is rich in proportion to the number of things which he can afford to let alone." —Henry David Thoreau, Walden
"Receive [wealth or prosperity] without arrogance; and be ready to let it go." —Marcus Aurelius, Meditations
"We have heard it said that a great king once went into a forest and there met a sage. He talked with the sage a little and was very much pleased with his purity and wisdom. The king then wanted the sage to oblige him by receiving a present from him. The sage refused to do so, saying, 'The fruits of the forest are enough food for me; the pure streams of water flowing down from the mountains give enough drink for me; the barks of the trees supply me with enough covering; and the caves of the mountains form my home. Why should I take any present from you or from anybody?' The king said, 'Just to benefit me, sir, please take something from my hands and please come with me to the city and to my palace.' After much persuasion, the sage at last consented to do as the king desired and went with him to his palace. Before offering the gift to the sage, the king repeated his prayers, saying, 'Lord, give me more children; Lord, give me more wealth; Lord, give me more territory; Lord, keep my body in better health', and so on. Before the king finished saying his prayer, the sage had got up and walked away from the room quietly. At this the king became perplexed and began to follow him, crying aloud, 'Sir, you are going away, you have not received my gifts.' The sage turned round to him and said, 'I do not beg of beggars. You are yourself nothing but a beggar, and how can you give me anything? I am no fool to think of taking anything from a beggar like you. Go away, do not follow me.'" —Vivekananda, The Triangle of Love
/misc | Jun 09, 2020
Environment: Windows 10 with an existing default install of Mozilla Thunderbird ("C:\Program Files\Mozilla Thunderbird")
Install desired second version (e.g., 60.9.1) to a new directory (e.g., "C:\Program Files\Mozilla Thunderbird 60") by selecting "Custom" as setup type
Once installation completes, uncheck "Launch Mozilla Thunderbird now" and click Finish
Edit Thunderbird 60's Desktop shortcut, appending a path to a new data directory (e.g., -profile "C:\Users\user\Documents\TB60DATA"
) to the Target field, which should then read "C:\Program Files\Mozilla Thunderbird 60\thunderbird.exe" -profile "C:\Users\user\Documents\TB60DATA"
On first launch, close the "Set Up an Existing Email Account" and "System Integration" windows
Right click the title bar then click "Menu Bar" > File > Offline > Work Offline
Click Tools > Options > Advanced > Update > check "Never check for updates" > OK
At this point, you can setup an account, add extensions, etc.
In this example, we'll add Kaosmos' ImportExportTools and his updated version of Torge Kummerow's Email Address Crawler, both of which are compatible with Thunderbird 60.* (but no higher; see Christopher Leidigh's ImportExportTools NG for more recent versions):
Download XPI files
Set extensions.strictCompatibility
to false
in Config Editor (Tools > Options > Advanced > General > Config Editor) to enable Kaosmos' updated Email Address Crawler
Install XPI files (Tools > Add-ons > Extensions > drag XPI files into window)
/windows | Jun 07, 2020
mboxviewer (alternately described as "Windows MBox Viewer" (on the cover of the impressive user guide) and "Simple MBox Viewer" (in the About dialog box)) is an open source MBOX viewer for Windows. Features include: large (>4GB) file support; export individual messages to EML; print some or all messages to CSV, plain text, HTML, or PDF; advanced search and sort; merge multiple MBOX files and remove duplicate messages; and more. One small undocumented quirk: files must have a .mbox extension in order to load (neither .mbx nor extensionless files will open).
/windows | Jun 06, 2020
While macOS has been relegated to the back burner (with disastrous if predictable results), a few intrepid developers continue to craft apps so performant and pleasing that I look for excuses to launch them:
Claquette ("Working with video doesn't have to feel heavy") by Thomas Zoechling. If you edit video, create screen recordings, or work with GIFs, you want this in your life.
Fileloupe ("A Ludicrously Fast File Browser for macOS") by Kenny Carruthers, who previously worked on Finder at Apple and BeOS at Be (and it shows).
MacDown ("The open source Markdown editor for macOS") by Tzu-ping Chung. Makes writing lengthy posts or presentations an absolute joy.
Sublime Text ("A sophisticated text editor for code, markup and prose") by Jon Skinner (and team, now). Legendary native performance across Linux, macOS, and Windows.
All four can be launched consecutively before Messages can open or iTunes stop beachballing.
/mac | Jun 03, 2020
Two Brother MPrint MW series mobile printers (an MW-120 and MW-140BT) began printing only blank pages following battery changes and holding the units vertically while printing (the latter in order to coax the paper feed roller into doing its job). While it's not clear which action (if either) was the culprit, the completely undocumented* RESET button on the back of the units resolved the issue.
* Could not find a single reference to it in five different MPrint manuals (in either English or Japanese) nor anywhere else on the Internet.
/misc | May 29, 2020
Ryoji Takahashi not only updated his excellent MPrintDriver for macOS, he also generously changed the license from shareware to freeware (see README.TXT).
It officially supports virtually the entire line-up:
so the relatively rare MW-170 and recently announced MW-270 should likely work as well.
The MW-260 is the only model currently offered for sale by Brother in the U.S. (though it is listed as discontinued on their Japanese website). It is also the first model to use the larger A6 paper (C211S), which is apparently not in stock.
New and used units (as well as the required paper cassettes) can generally be found on auction sites, however, and are well worth the investment, especially now that the macOS driver has been updated.
Thank you, Ryoji!
/mac | May 25, 2020
Resolved by:
(Booting into macOS Recovery and running resetpassword
from Terminal or simply waiting for the login to complete (>10 minutes, <40 minutes on a third Mac tested recently) may also work.)
Similar reports:
/mac | May 23, 2020
"Circumstances are the rulers of the weak;—they are but the instruments of the wise."
—Samuel Lover, Rory O'More
"[E]verything can be taken from a man but one thing: the last of the human freedoms—to choose one's attitude in any given set of circumstances, to choose one's own way."
—Viktor Frankl, Man's Search for Meaning
"Circumstance does not make the man; it reveals him to himself."
—James Allen, As a Man Thinketh (the quote is often misattributed to Epictetus as "Circumstances don't make the man, they only reveal him to himself.")
"Each one has to find his peace from within. And peace to be real must be unaffected by outside circumstances."
—Mahatma Gandhi, A Cry from Germany in Young India (1924-1926)
"Is it possible, then, to derive advantage from these things?—Yes, from everything.—Even from the man who reviles me?—And what good does his wrestling-companion do the athlete? The very greatest. So also my reviler becomes one who prepares me for my contest; he exercises my patience, my dispassionateness, my gentleness. You say: No. But the man who lays hold of my neck and gets my loins and my shoulders into proper shape helps me, and the rubber does well when he says, 'Lift the pestle with both hands,' and the heavier it is, the more good I get out of doing so; whereas, if a man trains me to be dispassionate, does he do me no good? Your attitude means that you do not know how to derive advantage from men. Is your neighbour bad? Yes, for himself; but for me he is good; he exercises my good disposition, my fair-mindedness. Is your father bad? Yes, for himself; but for me he is good. This is the magic wand of Hermes. 'Touch what you will,' the saying goes, 'and it will turn into gold.' Nay, but bring whatever you will and I will turn it into a good. Bring disease, bring death, bring poverty, reviling, peril of life in court; all these things will become helpful at a touch from the magic wand of Hermes. 'What will you make of death?' Why, what else but make it your glory, or an opportunity for you to show in deed thereby what sort of person a man is who follows the will of nature. 'What will you make of disease?' I will show its character, I will shine in it, I will be firm, I will be serene, I will not fawn upon my physician, I will not pray for death. What else do you still seek? Everything that you give I will turn into something blessed, productive of happiness, august, enviable."
—Epictetus, Book III, Chapter 20, That it is possible to derive advantage from everything external
/misc | May 17, 2020
See update below for important change following Security Update 2020-003 Mojave.
TL;DR: defaults delete com.apple.preferences.softwareupdate LatestMajorOSSeenByUserBundleIdentifier && softwareupdate --list
As of April, half of all macOS users are still running Mojave or earlier (49.01%) rather than Catalina (48.98%). Perhaps not unreasonably:
Most (but intriguingly not all) Mojave users who disable the Catalina upgrade via sudo softwareupdate --ignore "macOS Catalina"
are left with a red (1) notification badge on their System Preferences icon in the Dock, even if no updates are available:
A number of solutions have been proposed, including:
defaults write com.apple.systempreferences AttentionPrefBundleIDs 0;killall Dock
with the caveat that, "The red badge will return, however, every time macOS checks for updates."Searching for a better way (as well as an answer as to why the issue did not affect all Mojave users who disabled the Catalina upgrade), I had the good fortune of stumbling onto bernuli's October 12 comment, which offered in part:
[T]here is a per user preference file that needs hosing to get rid of notification if software update already ran before you did the ignore.
...
My guess is that new users created after you run the --ignore should never get the Upgrade notification in the first place.
The file in question was identified as ~/Library/Preferences/com.apple.preferences.softwareupdate.plist. I decided to do some testing (TL;DR: bernuli was exactly right):
On a brand new Mojave install, ~/Library/Preferences/com.apple.preferences.softwareupdate.plist did not exist (nor was there a /Library/Preferences/com.apple.preferences.softwareupdate.plist).
Running sudo softwareupdate --ignore "macOS Catalina"
on a brand new Mojave install before checking for updates prevented the issue from occurring. ~/Library/Preferences/com.apple.preferences.softwareupdate.plist was created after checking for updates with the following data (which appeared to correspond to "Security Update 2020-002 10.14.6" and "Safari 13.1"):
<key>ProductKeysLastSeenByUser</key> <array> <string>061-90745</string> <string>061-61260</string> </array>
Checking for updates on a brand new Mojave install and then running sudo softwareupdate --ignore "macOS Catalina"
caused the issue to occur for the current user. ~/Library/Preferences/com.apple.preferences.softwareupdate.plist was populated with:
<key>LatestMajorOSSeenByUserBundleIdentifier</key> <string>com.apple.InstallAssistant.Catalina</string> <key>ProductKeysLastSeenByUser</key> <array> <string>061-90745</string> <string>061-61260</string> </array>
Users created after running sudo softwareupdate --ignore "macOS Catalina"
were not affected by the issue; ~/Library/Preferences/com.apple.preferences.softwareupdate.plist did not get created even after such users checked for updates.
In two followup comments, bernuli suggested these steps for disabling Catalina and resolving the red notification badge issue:
sudo softwareupdate --ignore "macOS Catalina"
defaults delete com.apple.preferences.softwareupdate LatestMajorOSSeenByUserBundleIdentifier
(deletes the lines containing LatestMajorOSSeenByUserBundleIdentifier and com.apple.InstallAssistant.Catalina from ~/Library/Preferences/com.apple.preferences.softwareupdate.plist)softwareupdate --list
though based on the above tests, there appears to be little harm in simply deleting ~/Library/Preferences/com.apple.preferences.softwareupdate.plist for step 3 as bernuli originally did then rebooting and checking for updates again. However, using defaults or Prefs Editor is preferable due to the caching system for app preferences (not to mention being faster). As Thomas Tempelmann, the author of Prefs Editor, explains:
Mac OS X 10.8 introduced a caching system for app preferences ("cfprefsd"). While this probably increases performances for apps, it makes it harder for developers to manipulate preference values quickly for testing, because making changes directly to the plist files in the ~/Library/Preferences folder does not work any more with editors such as "Property List Editor.app" and the similar editor in Xcode. As of now (Dec 14, 2013), the only way to edit such preferences is by using the "defaults" command, which is rather difficult to use once it comes to editing dict or array entries.
Therefore, I've written a tool that works like the plist editor in Xcode but uses the CFPreferences functions to modify the values instead of editing the plist files directly.
Tangentially, SwitchUp "allows you to create, duplicate, and switch between multiple profiles of settings (preferences and data) for almost any application." While no longer actively developed, it worked well with Safari and Calculator (but not Contacts) in my testing under Mojave.
UPDATE: After installing Security Update 2020-003 Mojave and Safari 13.1.1, the Catalina nag reappeared in Software Update. ~/Library/Preferences/com.apple.preferences.softwareupdate.plist now contained the following:
<key>LatestMajorOSSeenByUserBundleIdentifier</key> <string>com.apple.InstallAssistant.Catalina</string> <key>ProductKeysLastSeenByUser</key> <array> <string>061-90107</string> <string>001-09493</string> </array>
Running sudo softwareupdate --ignore "macOS Catalina"
returned:
Ignored updates: ( "macOS Catalina" ) Ignoring software updates is deprecated. The ability to ignore individual updates will be removed in a future release of macOS.
though defaults delete com.apple.preferences.softwareupdate LatestMajorOSSeenByUserBundleIdentifier && softwareupdate --list
still works for now to hide the nag again. That is, until the Software Update preference pane is reopened, in which case it needs to be rerun. Jeff Johnson recommends eschewing the preference pane in favor of softwareupdate --list
to avoid.
/mac | May 07, 2020
to the file and graphics pages, respectively:
/windows | May 03, 2020
See also Simple QuickTime MOV cropping via Goldberg 2.5 from 2007 (which actually covered trimming, not cropping).
UPDATE: Check out Claquette, which makes cropping video as easy as click and drag.
/misc | Apr 20, 2020
Excerpt from Chapter One, Economy of Walden by Henry David Thoreau:
The ancient philosophers, Chinese, Hindoo, Persian, and Greek, were a class than which none has been poorer in outward riches, none so rich in inward. ... To be a philosopher is not merely to have subtle thoughts, nor even to found a school, but so to love wisdom as to live according to its dictates, a life of simplicity, independence, magnanimity, and trust. It is to solve some of the problems of life, not only theoretically, but practically.
Chapter XVI, Book XVII Yang Ho from The Analects by Confucius, et al. & James Legge (transl.):
The Master said, "Anciently, men had three failings, which now perhaps are not to be found.
"The high-mindedness of antiquity showed itself in a disregard of small things; the high-mindedness of the present day shows itself in wild license. The stern dignity of antiquity showed itself in grave reserve; the stern dignity of the present day shows itself in quarrelsome perverseness. The stupidity of antiquity showed itself in straightforwardness; the stupidity of the present day shows itself in sheer deceit."
Chapter 15 of Tao te ching : a new English version by Lao Tzu & Stephen Mitchell (transl.):
The ancient Masters were profound and subtle.
Their wisdom was unfathomable.
There is no way to describe it;
all we can describe is their appearance.
They were careful
as someone crossing an iced-over stream.
Alert as a warrior in enemy territory.
Courteous as a guest.
Fluid as melting ice.
Shapable as a block of wood.
Receptive as a valley.
Clear as a glass of water.
Do you have the patience to wait
till your mud settles and the water is clear?
Can you remain unmoving
till the right action arises by itself?
The Master doesn't seek fulfillment.
Not seeking, not expecting,
she is present, and can welcome all things.
/misc | Apr 18, 2020
Attempting to add subtitles to an MP4 file on Google Drive by selecting it and clicking More Actions/Kebab Menu > "Manage caption tracks" > "ADD NEW CAPTION TRACKS" > "Upload" > "Select a file from your device" > "UPLOAD" resulted in only "No tracks added" over and over.
Jason H. 956 kindly shared the solution:
[I]f you happen to be on multiple users try opening an incognito window and sign in to only one account. Then try to upload the captions to that file.
Google really needs to add this fix to the "Caption error messages" section of their Add caption tracks to your video files, which currently only offers:
If you get and [sic] error while uploading your file, make sure the file is:
- In the correct format. only [sic] SubRip (*.SRT) and SubViewer (*.SUB) are supported.
- Not too large. The caption file must be less than 2 MB.
- Not longer than the video. If the file is longer than the video, the video won’t be able to auto-sync.
/misc | Apr 12, 2020
LICEcap v1.28 (Win 📺) [230k] & v1.29 (Mac 📺) [864k] {S} Capture an area of your desktop and save it directly to animated .GIF or .LCF.
/misc | Feb 22, 2020
despite having gone nearly read-only (thanks for the kind shout-out, j_s! ;-)
Hog Bay Notebook 2.2 [757k] Matt Neuburg at TidBITS: "[H]as an elegance and visual clarity that is simply stunning ... If you have snippets of information and you want to give them a modicum of organization and incredible searchability, Hog Bay Notebook might be the solution." Tested under OS X Snow Leopard (10.6); no longer under development. 📺 🌎
Jason 0.6 [999k] JSON viewer & editor with syntax error highlighting. Tested under OS X Lion (10.7). 📺
/mac | Feb 20, 2020
A recent Fantastical update hid previously-paid-for functionality behind a subscription paywall with account creation nags.
Since iTunes backups have long excluded IPAs and Apple Configurator 2 or iMazing only download the latest IPA from Apple, I used an iPhone 6 running iOS 12 to download the previous version (happily, the new version was iOS 13-only) then extracted the IPA for copying to an iPhone 6S running iOS 13:
While Fantastical no longer appears in App Store searches performed under iOS 12, the last compatible version can be downloaded (assuming it is associated with your account) via App Store → Updates → Account icon → Purchased → My Purchases → Search → Fantastical → Download icon → "Download"
Install and run checkra1n, connecting the iPhone 6 to the Mac via USB cable when prompted. Jailbreaking only takes a minute or two.
Install Homebrew
user@Mac ~ % brew install usbmuxd
user@Mac ~ % iproxy 4444 44
In a new Terminal tab: user@Mac ~ % ssh root@localhost -p 4444
root@localhost's password: alpine
iPhone6:~ root# find /var/containers/Bundle/Application/ -name Fantastical
/var/containers/Bundle/Application/C5CC3023-C8E7-4AEB-8536-363B96BDB725/Fantastical.app/Fantastical
iPhone6:~ root# exit
user@Mac ~ % mkdir Payload
user@Mac ~ % scp -P 4444 -r root@localhost:/var/containers/Bundle/Application/C5CC3023-C8E7-4AEB-8536-363B96BDB725/Fantastical.app Payload/
user@Mac ~ % zip -r Fantastical.ipa Payload/
Find Fantastical.ipa in the Mac's current directory. It can be installed on the iPhone 6S running iOS 13 via:
iTunes 12.9.5.5: drag Fantastical.ipa onto device name under "Devices" heading in left pane
Apple Configurator 2.12.1: double click iPhone icon → drag Fantastical.ipa onto "Apps"
Xcode 11.1: Windows → "Devices & Simulators" → click iPhone icon → drag Fantastical.ipa into box under "INSTALLED APPS"
iMazing 2.12.0: click iPhone 6S icon → Apps → Copy to Device → browse to recovered Fantastical.ipa → "Select"
checkra1n FAQ: "Q: Can I ssh into my device? A: Yes! An SSH server is deployed on port 44 on localhost only. You can expose it on your local machine using iproxy via USB."
Sahmoe's reply (which was "stolen from Superuser on Discord") to How to connect to iphone via ssh via wire, without installing cydia, using checkra1n
Extracting the IPA File and Local Data Storage of an iOS Application
See frida-ios-dump for pulling a decrypted IPA instead
/misc | Feb 01, 2020
Despite dire warnings and headlines like these:
Wired: Now It's Really, Truly Time to Give Up Windows 7 - "After Tuesday, Microsoft will no longer issue security updates for the operating system, leaving users who don't upgrade vulnerable to malware."
Gizmodo: Windows 7 Is Officially Dead, So You Really Need to Upgrade - "As of today, Microsoft is no longer supporting Windows 7. That means no more software updates, security fixes or patches, or technical support. It is dead, an ex-operating system if you will."
PCMag: Windows 7 Is Dead: Upgrade Now - "As of today, if a major bug hits Windows, those on Windows 7 won't get the patch when Microsoft rolls it out. Upgrade now or pay the price."
Computerworld: Saying goodbye to Windows 7 isn’t easy, but you must - "One in five Windows users is still using Windows 7. That’s one too many. It’s time to move on."
How-To Geek: Windows 7 Dies Today: Here’s What You Need to Know - "Windows 7 support hasn’t ended completely. Microsoft will still offer 'extended security updates' for it, but only to organizations like businesses and governments—and only if those organizations pay an ever-increasing fee. That fee is designed to encourage organizations to upgrade."
it is trivial (on the order of a few minutes) and inexpensive ($63.75 per computer for the first year with no minimum order) for small businesses running Windows 7 Pro or Ultimate to enroll in Microsoft's Extended Security Updates program thanks to Ted and Amy at Harbor Computer Services.
Simply fill out the order form (as mentioned in Ed Bott's updated You want to keep running Windows 7? Good luck with that, small businesses) and run the 3 simple slmgr commands provided by Ted in your order confirmation email.
Deepest thanks to Ted and Amy for helping truly small businesses access critical security updates for legacy systems.
/windows | Jan 22, 2020
"The soul that lodges philosophy, ought to be of such a constitution of health, as to render the body in like manner healthful too; she ought to make her tranquillity and satisfaction shine so as to appear without, and her contentment ought to fashion the outward behaviour to her own mould, and consequently to fortify it with a graceful confidence, an active and joyous carriage, and a serene and contented countenance. The most manifest sign of wisdom is a continual cheerfulness; her state is like that of things in the regions above the moon, always clear and serene."
—Michel de Montaigne in Book I, Chapter XXV of The Essays of Montaigne, Complete
"We must be willing to get rid of the life we've planned, so as to have the life that is waiting for us."
—Joseph Campbell quoted in A Joseph Campbell Companion: Reflections on the Art of Living
"Reading after a certain age diverts the mind too much from its creative pursuits. Any man who reads too much and uses his own brain too little falls into lazy habits of thinking, just as the man who spends too much time in the theater is tempted to be content with living vicariously instead of living his own life."
—Albert Einstein quoted in What Life Means to Einstein, an interview with George Sylvester Viereck from the October 26, 1929 issue of The Saturday Evening Post
/misc | Jan 01, 2020