SpamSieve 3.1.2
SpamSieve 3.1.2 improves the filtering accuracy of my Mac e-mail spam filter, amongst other enhancements and fixes.
Some interesting issues were:
I made some more table view improvements enabled by the lazy Core Data collections mentioned in the previous release. Since it no longer loads the whole selection into RAM, it’s now possible to operate on any size of selection in the Log window. The collection also adjusts the fetch batch size and the relationship prefetching based on what type of work is being done. For example, if you’re just scrolling the window it fetches less data than before until you actually select something to view. If you’re copying to the clipboard or it’s exporting the log for a diagnostic report, it fetches more rows and more relationships to reduce the number of trips to the database.
SpamSieve’s launch agent detects when Mail or Outlook launches, and then it launches the main SpamSieve app in response so that it can start filtering. This has worked without issue until recently, but now it seems that sometimes, if the user has set an app like Mail or Outlook as a login item, it will get launched before background launch agents. The fix is for the launch agent to look at which apps are already running when it launches, rather than only observing subsequent launches and quits.
Apple Mail’s scripting interface can get confused if there are multiple accounts with the same name. What I learned this month is that an account that doesn’t even show up in Mail ‣ Settings ‣ Accounts, e.g. it’s only in System Settings ‣ Internet Accounts, can also cause conflicts.
In mapping characters to key codes, I’ve found that the common advice to build up a table is problematic because sometimes there’s more than one key that corresponds to a given character. For example,
'0'
could map to eitherkVK_ANSI_0
orkVK_ANSI_Keypad0
. In some cases, maybe the app should be aware of this and handle both options. For now, I’m building up the table in reverse order so that the lower numbered key codes (e.g. not on the numeric keypad) have precedence.I got a new Mac, but the Migration Assistant did not preserve the notarization credentials in the keychain.
notarytool
started failing, which was detectable from looking at the logged output, but at first I didn’t realize it because part of my build script didn’t useset -e
and so it kept running after commands had that failed. The script now checks for errors, and I also made some tune-ups to my automated notarization checks (e.g. using the newersyspolicy_check
).
Previously: