Windows lacks an equivalent to macOS's Preview app, but these free tools can handle simple PDF markup tasks:
/windows | Jul 10, 2024
Spent far too long trying to troubleshoot a new App Shortcut for Messages with commands like defaults find NSUserKeyEquivalents
and mucking about with files such as com.apple.MobileSMS
and .GlobalPreferences.plist
before stumbling onto App Keyboard Shortcuts Don't Work in Sonoma. Newly-added App Shortcuts in Sonoma do not work for Messages.app; other tested apps (Calendar, Contacts, Dictionary) appear unaffected.
As jamesfromhaymarket points out, one workaround is to set the desired keyboard shortcut for All Applications instead of just Messages; assigning "Delete Conversation…" (press Opt
+;
for the ellipsis) to Cmd
+D
this way was successful.
/mac | Jun 23, 2024
Launch ActivePresenter 9 (free for trial and non-commercial use; watermark-free output)
Click Open → select desired video
Click on the time axis to reveal the playhead then drag it to the desired location
Click the "Insert Time" icon on the timeline toolbar → enter desired duration (default is 2000 ms) → OK
Click the Insert tab → Spotlight → use the crosshairs cursor in the video player to highlight the desired athlete
Adjust the spotlight in the timeline by clicking and dragging its box or outer edges
Optionally slow down or speed up frames:
How to Insert Time to Videos in ActivePresenter 8 | Embedded video tutorial
How to Insert Freeze-Frames in ActivePresenter. | Embedded video tutorial
Define a Range Before Editing Audio/Video - ActivePresenter 8
/misc | Jun 15, 2024
Edit Python script below, adjusting fade_duration
and input_folder
as desired, then save (e.g., combine_videos.py
):
import os from moviepy.editor import VideoFileClip, concatenate_videoclips def add_fade_effects(clips, duration=2): faded_clips = [] for i, clip in enumerate(clips): if i != 0: clip = clip.set_start(clips[i-1].end) clip = clip.crossfadein(duration) clip = clip.fadein(duration).fadeout(duration) # Apply fade-in and fade-out to each clip faded_clips.append(clip) return faded_clips def combine_videos_with_fades(input_folder, output_file, fade_duration=
0.5): video_files = [os.path.join(input_folder, f) for f in sorted(os.listdir(input_folder)) if f.endswith('.mp4')] video_clips = [VideoFileClip(video) for video in video_files] video_clips = add_fade_effects(video_clips, fade_duration) final_clip = concatenate_videoclips(video_clips, method="compose") final_clip.write_videofile(output_file, codec="libx264") if __name__ == "__main__": input_folder = "
/path/to/mp4s" # Replace with the path to your folder containing MP4 files output_file = "combined_video_with_fades.mp4" combine_videos_with_fades(input_folder, output_file)
python3 combine_videos.py
/nix | Jun 15, 2024
Launch PLAY by Metrica Sports1 → click "New Workspace" → enter desired name for workspace → Save
Click plus symbol under PLAYLISTS2 → enter desired name for playlist (e.g., "Goals")
Hover over the Goals playlist → click three dots at bottom right of playlist entry → click "Add video file as a clip..." → select desired video clip(s)
Click the dropdown arrow under Goals → click and drag video clips to order as desired
Select a video clip in Goals → open the Annotations Module by clicking the crossed pencil and ruler icon (or using the keyboard shortcut, Cmd+5)
Click the large blue button with the white plus symbol → Player Visualizations → select an effect (Spotlight, Ring, Magnifier, etc.)3 → select desired player → click Player Tracking4 button5
When finished, hover over the Goals playlist → click three dots at bottom right → click "Export Playlist as Video..." → check "Annotations" and optionally "Export all clips as a single video file" → browse to desired destination → click Export
If tracking proves too tedious, pause and highlight instead:
In step 6 above, rather than "Player Visualizations", click "Pause & Drawings"
Set desired Pause Duration (default is 5 seconds)
Click desired highlighting option:
Highlight unwanted clip(s)
Hover over playlist name
Click three dots at lower right of playlist
Click "Delete Clips"
For importing long videos instead of clips, click the plus symbol under VIDEO MANAGER. ↩
On very brief segments, the exported annotations/effects can start later and linger longer than expected, despite attempts to adjust their duration beforehand. ↩
Only available in the paid LITE plan or higher, though a 7-day free trial (sans credit card) is available (exported videos display a smallish "PLAY by METRICA SPORTS" watermark in the bottom right corner) ↩
Depending on video quality, amount of motion, etc., you may need to backtrack a few frames, manually reposition the visualization, and click "Player Tracking" repeatedly. The keyboard shortcuts come in handy during this process, especially Cmd+Alt+left or right arrow to move 1 frame backwards or forwards, and Shift+Space to start/stop Player Tracking. ↩
/misc | Jun 14, 2024
Because switching between Windows VMs and their macOS host via Cmd+Tab launches the Start menu every time and PowerToys Keyboard Manager utility only works sporadically.
Open HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
Create a new binary value named Scancode Map
and assign value data of 00 00 00 00 00 00 00 00 03 00 00 00 00 00 5B E0 00 00 5C E0 00 00 00 00
Reboot
Neither HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\[NoWinKeys]
nor Local Computer Policy → User Configuration → Administrative Templates → Windows Components → File Explorer → "Turn off Windows Key hotkeys" had any discernible effect in a Windows 11 Pro 23H2 UTM VM.
The Scancode Map value is a series of hexadecimal numbers that instruct the operating system to remap or disable certain keys:
00 00 00 00
: Header (always zeros, used for header padding)00 00 00 00
: Header (also zeros, continuing the header padding)03 00 00 00
: Number of mappings (including the null terminator)00 00 5B E0
: Disables the left Windows key (by mapping E0 5B
to 00 00
)00 00 5C E0
: Disables the right Windows key (by mapping E0 5C
to 00 00
)00 00 00 00
: Null terminator (marks the end of the Scancode Map)Bytes are reversed in the Scancode Map registry entry because Windows uses the little-endian format, storing the least significant byte first.
Windows Platform Design Notes: Keyboard Scan Code Specification, Revision 1.3a — March 16, 2000: "This specification was previous published, with the same content, as 'Windows Hardware Quality Labs Keyboard Specification' and also referred to as 'Windows Keys Specification' and 'New Keys Specification.'"
/windows | Jun 12, 2024
"When you create a VM in macOS 15 from a macOS 15 software image (an .ipsw file) using a VZMacHardwareModel that you obtain from a VZMacOSRestoreImage, Virtualization configures an identity for the VM that it derives from security information in the host’s Secure Enclave. Just as individual physical devices have distinct identities based on their Secure Enclaves, this identity is distinct from other VMs."
"If someone moves a VM to a different Mac host and restarts it, the Virtualization framework automatically creates a new identity for the VM using the information from the Secure Enclave of the new Mac host. This identity change requires the person using the VM to reauthenticate to allow iCloud to restart syncing data to the VM."
"Using a macOS 15 installer to upgrade an older VM doesn’t provide support for iCloud."
Sadly, signing in to the App Store or iCloud does not appear to be supported (for now?), returning "An unknown error occurred."
Preview macOS Sequoia 15 with Parallels Desktop: "Signing into an Apple ID in a virtual machine is not supported: you won't be able to sign into your Apple ID within the VM."
/mac | Jun 10, 2024
"They say...that the aim of the ignorant is pleasure; the pursuit of the wise, happiness. Pray, under which category would you class marriage? I suppose it comes under one or the other."
...
"Both," I answered. "Could you see the ideal woman as I would fain paint her to you, you would understand me better. The pleasure you enjoy in the society of a noble and beautiful woman should be but the refreshment by the wayside as you journey through life together. The day will come when she will be beautiful no longer, only noble and good, and true to you as to herself; and then, if pleasure has been to you what it should be, you will find that in the happiness attained it is no longer counted, or needed, or thought of. It will have served its end, as the crib holds the ship in her place while she is building; and when your white-winged vessel has smoothly glided off into the great ocean of happiness, the crib and the stocks and the artificial supports will fall to pieces and be forgotten for ever. Yet have they had a purpose, and have borne a very important part in the life of your ship."
—Francis Marion Crawford in Mr. Isaacs: A Tale of Modern India
Calls to mind u/lucky_ducker's 2016 comment and Rufus' reflections on the fruit of action.
/misc | Jun 05, 2024
Repeating an answer here for posterity that I made earlier today on AskDifferent:
The only native method I've found for iOS 17 (that does not require using a Mac or PC) is via GarageBand:
If anyone knows of a more elegant native method for importing an M4R ringtone without a Mac or PC, please share. One might be forgiven for imagining that Apple intentionally keeps the process abstruse to encourage ringtone sales through the iTunes Store.
/misc | May 25, 2024
A breath of fresh air in this age of IAPs, subscriptions, and multi-gig downloads:
Free Ruler 2.0.8 [608k] {S} Floating horizontal and vertical screen rulers with measurements in pixels, inches, or millimeters. Available on both the Mac App Store and GitHub. 📺
/mac | May 25, 2024