Inno Setup is "a free installer for Windows programs by Jordan Russell and Martijn Laan, [f]irst introduced in 1997". Resources like EXEs and DLLs can be liberated from these archives via:
innounp 0.50: "The Inno Setup Unpacker. Supports Inno Setup versions 2.0.7 through 6.1.2". CLI.
innoextract 1.9: "A tool to unpack installers created by Inno Setup. ... Currently supports installers created by Inno Setup 1.2.10 to 6.2.2". CLI.
/windows | Apr 07, 2024
while also tracking each individual session with optional notes:
Timemator (30-day trial, then $7.99 one-time purchase) by Gleb Kotov/Catforce Studio
/misc | Mar 27, 2024
When the Thunderbird Message Pane is enabled (View → Layout → Message Pane), the Header Pane and Buttons (Reply, Forward, Delete, etc.) take up an inordinate amount of space; here's how to hide them:
In Config Editor, set toolkit.legacyUserProfileCustomizations.stylesheets to true
Help → Troubleshooting Information → open Profile Folder
In the profile folder, open or create "chrome" directory
Edit or create "userChrome.css" inside of "chrome", adding this line:.main-header-area {display:none !important;}
Restart Thunderbird
On a related note, alternating row colors in the Message List pane can be enabled by adding the following to userChrome.css:
table[is="tree-view-table"] tr:nth-child(even):not(.selected):not(tr:hover) {
-moz-appearance: none !important;
background-color: rgb(240,240,240) !important;
}
/misc | Mar 02, 2024
After almost 5 years of hosting at Netlify (at $9/month for basic, anonymized analytics), just moved to Cloudflare Pages after reading this r/webdev post:
along with the related HN comments.
The previous server migration, from Slicehost/Rackspace to Netlify, had been largely to avoid just such unlimited billing exposure.
Custom apex domains require moving Name Servers to Cloudflare DNS.
Trailing exclamation marks in _redirects need to be removed for the redirects to work in Cloudflare Pages.
Cloudflare Pages forcefully strips .html extensions, though an option for their preservation was promised in June 2022. UPDATE: For now, have settled on doubling .html extensions (except for index.html pages) to prevent the 308 redirects to extensionless pages.
Redirect www to non-www (H/T cloonan & Rickard):
www.example.com/*
https://example.com/$1
Disable access to *.pages.dev subdomain:
*.{project}.pages.dev
). Refer to Customize preview deployments access.*.pages.dev
URL associated with your production Pages project to a custom domain. You can use the account-level Bulk Redirect feature to redirect your *.pages.dev
URL to a custom domain."Prevent your pages.dev deployments showing in search results:
"Google and other search engines often support the X-Robots-Tag
header to instruct its crawlers how your website should be indexed. For example, to prevent your *.pages.dev
deployment from being indexed, add the following to your _headers file:"
https://:project.pages.dev/*
X-Robots-Tag: noindex
After deleting the Netlify site, revoke their access to any connected GitHub repository via GH account settings → Applications → Installed GitHub Apps.
/misc | Feb 26, 2024
no extension necessary: Tools → Page Info → Media → Select All → Save As...
/misc | Feb 25, 2024
Tested on a UniFi Express, which comes with a preset IP address of 192.168.1.1. Note that the Express is limited to managing 5 UniFi devices, including itself.
Go to Networks: https://192.168.1.1/network/default/settings/networks
Click "New Virtual Network"
Set Network Name and Gateway IP/Subnet as desired
Next to "Advanced" click "Manual"
Set VLAN ID as desired
Check "Network" next to "Isolation" → click "Add"
Go to WiFi: https://192.168.1.1/network/default/settings/wifi
Click "Create New"
Set Name and Password as desired, and set Network to VLAN created above.
Optionally enable "Client Device Isolation" under Advanced → Manual
Click "Add WiFi Network"
Go to Landing Page settings: https://192.168.1.1/network/default/hotspot/portal → "Settings" (This page was not discoverable via "Search Settings" using the terms "landing", "hotspot", "portal", or "guest".)
Under "Landing Page Settings", uncheck "Show Landing Page" → click "Save"
/misc | Jan 20, 2024
While Automator and AppleScript fail to reliably batch delete thousands of calendar events in recent macOS versions (see Archiving Calendar.app events as plain text), Shortcuts.app is surprisingly successful:
Backup all calendars
File → New Shortcut
Action Library → Apps → Calendar
Drag "Find Calendar Events" into the shortcut editor (aka "main window")
Change Start Date as desired then click the plus symbol to the right and add additional criteria (e.g., "Calendar is Travel", "Calendar is not US Holidays", "End Date is Before 1/1/2023, 00:00", etc.)
Drag the "Remove Events" action underneath → click "Show More" → leave "Include Future Events:" unchecked to preserve repeating events linked to ones that will be deleted
Before running the shortcut, open Shortcuts Preferences... → Advanced and enable "Allow Deleting Large Amounts of Data"
Delete all events in the Travel calendar within the last 8 years that took place before 1/1/23 while preserving any repeating events after that date:
Delete events in all calendars other than Birthdays and US Holidays within the last 13 years that took place before 1/1/23 while preserving any repeating events after that date:
Start Date is the only required filter parameter in the "Find Calendar Events" action. Setting an overly-long value for "is in the last x years" resulted in the shortcut not returning any results.
While setting the Start Date to "is in the last 10 years" should include all earlier years (9, 8, etc.), Shortcuts does not always find them; be sure to check and rerun with a lower value if necessary.
Setting Start Date to "is between" did not work on large numbers of events.
Shortcuts.app does not require explicit authorization in System Preferences → Security & Privacy → Privacy for accessing data in Calendar.app. However, it is important to ensure that "Ask to Delete" is selected instead of "Never Delete" within the shortcut's Privacy settings (View → Show Shortcut Details → Privacy → "Allow this shortcut to delete data?"; the option becomes visible only after having clicked "Delete" or "Don't Delete" in the Privacy popup dialog on the first successful run).
Tested in macOS 12.6.1 Monterey with Shortcuts 5 and Calendar 11.
/mac | Dec 11, 2023
If the columns in Thunderbird's message list have disappeared, it may be due to Supernova's "Modernized Cards View". Revert to the original layout and get your columns back by clicking on the new "Message list display options" icon at top right and selecting "Table View":
/misc | Dec 11, 2023
Much like on macOS, emails can be easily exported as EML files by dragging them from Mail.app to Files.app in Split View.
As iPhones lack Split View support, a workaround is required to export EML files:
Tap the Compose icon.
Swipe down from the top bar of the New Message window to minimize it.
Tap and drag desired email message onto the small New Message window at the bottom of the screen.
Lift your finger when the New Message window reopens; this will attach the selected email as an EML file.
/misc | Dec 01, 2023
or, Monitoring app installers/activity:
Clone entire boot volume with Carbon Copy Cloner 5 (or 6 via Legacy Bootable Copy Assistant)
Install or run app
Repeat step 1
Compare clones with Beyond Compare in a root session: sudo /Applications/Beyond\ Compare.app/Contents/MacOS/BCompare
Create a local snapshot:1 tmutil localsnapshot
Install or run app
Repeat step 1
Find snapshot names: tmutil listlocalsnapshots /
com.apple.TimeMachine.2023-10-16-184148.local com.apple.TimeMachine.2023-10-16-184247.local
Create mount points and attach snapshots:2
%mkdir ~/snapshot1 ~/snapshot2
%mount_apfs -o ro -s com.apple.TimeMachine.2023-10-16-184148.local /System/Volumes/Data ~/snapshot1
%mount_apfs -o ro -s com.apple.TimeMachine.2023-10-16-184247.local /System/Volumes/Data ~/snapshot2
Compare snapshots with Beyond Compare as above
Unmount snapshots and optionally delete mount points (~/snapshot1 & ~/snapshot2) and snapshots (e.g., tmutil deletelocalsnapshots 2023-10-16-184247
) when done.
fs_usage
, fseventer, etc.)Suspicious Package (mentioned in ‘12, ‘17, & ‘21): "An application for inspecting macOS installer packages."
How do I know what files are installed by an installer program?
How to Open .pkg Files to View What Will Install on Mac with Suspicious Package: "Longtime Mac users may recall that a package inspection feature used to exist in Mac OS X some time ago via the right-click menu, but that feature has since been removed. More advanced Mac users can still extract pkg files with pkgutil without actually installing them but it requires the use of the command line, and the Show Files method to see what files are going to be installed and where to is not always available or detailed enough."
File Buddy (mentioned in ‘05 & ‘17): "Create snapshots to track changes to a folder or disk, such as files installed by an installer. Use the results of snapshot comparisons to uninstall applications."
FileControl: "Determine exactly which files have been changed, anywhere on your system."
Virtual machines:
Windows:
Time Machine backups exclude a number of files and folders and others may be excluded via the com_apple_backup_excludeItem
extended attribute (uncover them via sudo mdfind "com_apple_backup_excludeItem = 'com.apple.backupd'"
). ↩
Grant Terminal Full Disk Access to avoid mount_apfs: volume could not be mounted: Operation not permitted
. ↩
/mac | Oct 17, 2023