Inno Setup installer unpackers #

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:

/windows | Apr 07, 2024

iOS: Timer/stopwatch app that displays cumulative running total per task #

while also tracking each individual session with optional notes:

Timemator (30-day trial, then $7.99 one-time purchase) by Gleb Kotov/Catforce Studio

Timemator

/misc | Mar 27, 2024

Thunderbird: Hide Header Pane and Buttons in Message Pane #

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:

  1. In Config Editor, set toolkit.legacyUserProfileCustomizations.stylesheets to true

  2. Help → Troubleshooting Information → open Profile Folder

  3. In the profile folder, open or create "chrome" directory

  4. Edit or create "userChrome.css" inside of "chrome", adding this line:
    .main-header-area {display:none !important;}

  5. 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

Migrating from Netlify to Cloudflare Pages #

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:

Netlify just sent me a $104K bill for a simple static site

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.

Notes

Related

/misc | Feb 26, 2024

Firefox: Download all images on page, #

no extension necessary: Tools → Page Info → Media → Select All → Save As...

/misc | Feb 25, 2024

Enable guest WiFi without hotspot portal landing page in UniFi Network Application 8.0.26 #

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.

1. Create VLAN

  1. Go to Networks: https://192.168.1.1/network/default/settings/networks

  2. Click "New Virtual Network"

  3. Set Network Name and Gateway IP/Subnet as desired

  4. Next to "Advanced" click "Manual"

  5. Set VLAN ID as desired

  6. Check "Network" next to "Isolation" → click "Add"

2. Create guest WiFi network

  1. Go to WiFi: https://192.168.1.1/network/default/settings/wifi

  2. Click "Create New"

  3. Set Name and Password as desired, and set Network to VLAN created above.

  4. Optionally enable "Client Device Isolation" under Advanced → Manual

  5. Click "Add WiFi Network"

3. Disable hotspot landing page

  1. 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".)

  2. Under "Landing Page Settings", uncheck "Show Landing Page" → click "Save"

/misc | Jan 20, 2024

macOS: Batch delete calendar events via Shortcuts.app #

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:

Steps

  1. Backup all calendars

  2. File → New Shortcut

  3. Action Library → Apps → Calendar

  4. Drag "Find Calendar Events" into the shortcut editor (aka "main window")

  5. 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.)

  6. 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

  7. Before running the shortcut, open Shortcuts Preferences... → Advanced and enable "Allow Deleting Large Amounts of Data"

Examples

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:

Batch deleting events in a given calendar via Shortcuts.app

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:

Batch deleting events in all but two calendars via Shortcuts.app

Notes

/mac | Dec 11, 2023

Thunderbird message list columns missing #

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":

Message list display options

/misc | Dec 11, 2023

iOS & iPadOS: Export or attach email message from Mail.app to EML file #

iPadOS (tested under 17.1.1):

Much like on macOS, emails can be easily exported as EML files by dragging them from Mail.app to Files.app in Split View.

iOS (tested under 17.1.1):

As iPhones lack Split View support, a workaround is required to export EML files:

  1. Tap the Compose icon.

  2. Swipe down from the top bar of the New Message window to minimize it.

  3. Tap and drag desired email message onto the small New Message window at the bottom of the screen.

  4. Lift your finger when the New Message window reopens; this will attach the selected email as an EML file.

/misc | Dec 01, 2023

Tracking filesystem changes in macOS; #

or, Monitoring app installers/activity:

Carbon Copy Cloner & Beyond Compare

  1. Clone entire boot volume with Carbon Copy Cloner 5 (or 6 via Legacy Bootable Copy Assistant)

  2. Install or run app

  3. Repeat step 1

  4. Compare clones with Beyond Compare in a root session: sudo /Applications/Beyond\ Compare.app/Contents/MacOS/BCompare

Local Time Machine snapshots & Beyond Compare

  1. Create a local snapshot:1 tmutil localsnapshot

  2. Install or run app

  3. Repeat step 1

  4. Find snapshot names: tmutil listlocalsnapshots /

    com.apple.TimeMachine.2023-10-16-184148.local
    com.apple.TimeMachine.2023-10-16-184247.local
  5. 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
  6. Compare snapshots with Beyond Compare as above

  7. Unmount snapshots and optionally delete mount points (~/snapshot1 & ~/snapshot2) and snapshots (e.g., tmutil deletelocalsnapshots 2023-10-16-184247) when done.

Live monitoring

Static PKG installers

Legacy apps

Related

Footnotes

  1. 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'"). 

  2. Grant Terminal Full Disk Access to avoid mount_apfs: volume could not be mounted: Operation not permitted

/mac | Oct 17, 2023


Subscribe or visit the archives.