This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// recycleURLs_crash_test | |
// | |
// Created by Thomas Tempelmann on 01Feb21. | |
// | |
// Purpose: | |
// Demonstrates that using [NSWorkspace recycleURLs:] on > 600 files often leads to a crash on macOS 10.12 and 10.13. | |
// In my testing (on 10.13.6), up to 500 items never crash, while it starts crashing sometimes with 650 items | |
// and nearly every time when it's over 800. I also get spurious errors on the first recycle interation when | |
// using 600 items. This could be a precursor to the crash, but not sure. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
tell application "Mail" | |
set newMessage to make new outgoing message with properties {subject:"theSubject", content:"theBody"} | |
set theFile to (POSIX file "/etc/hosts") as alias | |
tell newMessage | |
make new attachment with properties {file name:theFile} at after the last word of the last paragraph | |
end tell | |
end tell |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Created by Thomas Tempelmann on 6 Apr 21, updated 8 Apr 21. | |
// | |
// This code demonstrates a unicode normalization issue with reading file system paths on APFS | |
// volumes in macOS. | |
// | |
// TL;DR – In short, NSURL.path return paths (probably) always in NFD form even if the on-disk | |
// name is in NFC form, and even if you passed the on-disk path to NSURL to create it. | |
// Other path accessors, such as the canonical path, as well as BSD/POSIX functions | |
// will keep giving you the on-disk name. | |
// As a result, the name you get from NSURLNameKey may not be identical to the URL's |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- This script uses Acorn (tested with version 6.6.4) | |
-- to add a light border around a window screenshot. | |
-- | |
-- Screenshots (without the huge macOS shadows) are made by shift-cmd-4, then space bar, | |
-- then option-click on window (see https://apple.stackexchange.com/a/120017/17533) | |
-- | |
-- Before use, you need to create a Preset Filter for this, once: | |
-- With an image opened, use from menu: Filter / Stylize / Drop Shadow… | |
-- Set its options as you prefer (e.g. X/Y offset 0, Blur Radius 2, Opacity 80%), | |
-- then save it by clicking the gear icon, choose "Save Filter Preset…" and |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Code Type: X86-64 (Native) | |
OS Version: macOS 11.3 (20E232) | |
System Integrity Protection: enabled | |
Crashed Thread: 0 Dispatch queue: com.apple.main-thread | |
Exception Type: EXC_BAD_ACCESS (SIGSEGV) | |
Exception Codes: KERN_INVALID_ADDRESS at 0x000007fa5e5667b8 | |
Exception Note: EXC_CORPSE_NOTIFY |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Code Type: ARM-64 (Native) | |
OS Version: macOS 11.4 (20F71) | |
System Integrity Protection: enabled | |
Crashed Thread: 0 Dispatch queue: com.apple.main-thread | |
Exception Type: EXC_BAD_ACCESS (SIGSEGV) | |
Exception Codes: KERN_INVALID_ADDRESS at 0x00000000119ad698 | |
Exception Note: EXC_CORPSE_NOTIFY |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
+ (BOOL)hasFullDiskAccess | |
{ | |
if (@available(macOS 10.14, *)) { | |
// fall thru | |
} else { | |
return YES; // always true pre-10.14 | |
} | |
// | |
// The following code was kindly provided by Pierre Bernard, author of AccessKit, Tembo and HoudahSpot |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// ContentView.swift | |
// | |
// Lists all system-provided NSImages | |
// | |
// Created by Thomas Tempelmann on 20.07.21. | |
// | |
// Requires Swift 5 | |
// |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Exception Type: EXC_CRASH (SIGABRT) | |
Exception Codes: 0x0000000000000000, 0x0000000000000000 | |
Exception Note: EXC_CORPSE_NOTIFY | |
Application Specific Information: | |
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSDictionaryM setObject:forKey:]: object cannot be nil (key: Result Window Controller)' | |
abort() called | |
terminating with uncaught exception of type NSException | |
Application Specific Backtrace 1: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread | |
0 libobjc.A.dylib 0x00007fff58d3ac3e object_isClass + 31 | |
1 com.apple.Foundation 0x00007fff33c555c1 KVO_IS_RETAINING_ALL_OBSERVERS_OF_THIS_OBJECT_IF_IT_CRASHES_AN_OBSERVER_WAS_OVERRELEASED_OR_SMASHED + 58 | |
2 com.apple.Foundation 0x00007fff33c55372 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:usingBlock:] + 341 | |
3 com.apple.Foundation 0x00007fff33c54f24 -[NSObject(NSKeyValueObservingPrivate) _notifyObserversOfChangeFromValuesForKeys:toValuesForKeys:] + 699 | |
4 com.apple.CoreFoundation 0x00007fff31af5ebb -[CFPrefsSource forEachObserver:] + 347 | |
5 com.apple.CoreFoundation 0x00007fff31af66e0 -[CFPrefsSource _notifyObserversOfChangeFromValuesForKeys:toValuesForKeys:] + 80 | |
6 com.apple.CoreFoundation 0x00007fff31b39f52 __93-[CFPrefsSearchListSource deferredNotifyCausedByLoadingOfChangesFromDictionary:toDictionary:]_block_invoke + 34 | |
7 com.apple.CoreF |