Munki hack: force uninstall after a certain date

Munki has an option to force install by a certain date (specifically, using the force_install_after_date key), but it doesn’t do a force uninstall after a certain date. You can make an item a managed uninstall, which means Munki will uninstall it when possible, but if that requires a logout or reboot, you don’t know when… Continue reading Munki hack: force uninstall after a certain date

Using Munki to ignore Catalina upgrade in macOS

Update: Apple has deprecated the –ignore flag, so this probably will never work again. Apple used to make you go out of your way to download an OS upgrade. Then, Apple started having those OS upgrade installers auto-download to the /Applications folder. Then Apple made it so OS upgrades appeared as regular updates. For Mac… Continue reading Using Munki to ignore Catalina upgrade in macOS

Scripting changing the user picture in macOS

Sometimes, you may want to programmatically set a default user picture (with the option for the user to change it later to a picture of her own choice). You used to be able to delete the JPEGPhoto attribute and just add in a Picture attribute, but that seems to have broken somewhere between October 2018… Continue reading Scripting changing the user picture in macOS

Generating a random passphrase

Disclaimer I’m not going to go into all the politics of passwords. Users are always trying to balance security with convenience. The point of this tutorial is not to say “This is how you generate the best password.” It’s more like “If you want to generate a random passphrase, this is one way to do… Continue reading Generating a random passphrase

Making a Rock, Paper, Scissors game in Python

Before you code, figure out what you’re trying to do with the code A brief note on codeUsing comments in code Expanding shorthand logic Considering another approach No one right way to approach problems Let’s actually start writing some code Don’t trust user input Picking a choice at random Comparing values with if/elif/else Extra Credit… Continue reading Making a Rock, Paper, Scissors game in Python