Automating PyInstaller Builds and Code Signing with PowerShell

When developing desktop software in Python, creating a Windows release often involves a few repetitive steps: To make this process faster and less error-prone, I…
Read more →Practical articles on software engineering – covering architecture decisions, coding best practices, deployment, and lessons learned from real projects.

When developing desktop software in Python, creating a Windows release often involves a few repetitive steps: To make this process faster and less error-prone, I…
Read more →
Publishing project documentation is one of those things that should be easy – but often isn’t. Apple’s DocC makes it simple to generate great documentation…
Read more →
Swift concurrency introduces async/await and async let for handling asynchronous code – but when should you use which? This cheat sheet breaks down the key…
Read more →In Part 1 (How to Set Up Ubuntu Linux as a Secure Kiosk or Self-Service Terminal), we set up a kiosk environment on Ubuntu Linux…
Read more →
When you’re dealing with sensitive data in your iOS or macOS app, the Keychain is the place to store things like tokens, passwords, and other…
Read more →
When developing iOS apps, UserDefaults is a simple and convenient way to store small pieces of data – like user settings, preferences, or app state…
Read more →