Skip to main content
Steven Merrill

Latest 5 Posts

  1. Secure Erase on Modern Mac OS

    I'm currently on vacation and helping my mother out with some tech-related chores. One of her requests was to securely erase an old Mac backup volume on an external hard drive that at one time contained a good amount of personal and financial data. In years past, I would have gone to Disk Utility and chosen Erase on the volume and used the Security Options dropdown to have it write over the disk 3 or 7 times.

    It appears that modern Mac OS has completely removed this option from the Disk Utility GUI. If you are still looking to do this it can still be accomplished via the diskutil CLI. From man diskutil on Mac OS Sequoia:

  2. Default Apps, 2025 Edition

    I didn't even realize that it was #blaugust until I read it on David Lyons's Mastodon, but I'm here now one day late to copy his post and chronicle the apps that I use on a daily basis.

  3. I promise you shouldn't fear rejection

    Pop quiz for node.js users — what does this program output if the promise resolves, and what is different if it fails to reject through its else branch?

    async function main() {
    	const promise = new Promise((resolve) => {
    		setTimeout(() => {
    			if (Math.random() > 0.5) {
    				console.log("We win");
    				resolve();
    			} else {
    				console.log("We lose");
    			}
    		});
    	});
    	await promise.catch(console.error);
    	console.log("Looks like we made it");
    }
    
    main();
    
  4. Why Is TypeScript Picking Up Old Types?

    At Campfire Learning we have a large TypeScript monorepo containing all the code for our various services as well as our various frontend applications that we use to deliver our curriculum and assessment experiences.

    While working on a new backend component, I installed the 1.0 version of the Cheerio XML parser to handle HTML and XML parsing. As I worked in a new package in the repository, I noticed that I was getting errors when trying to initialize a Cheerio 1.0 parser through its load() method:

  5. Everyone Wants A Blog, Nobody Wants To Blog

    It's been more than a decade since I wrote a blog post on this site.

    I told one of my new coworkers about my desire to restart my blog, and he hit me with the quote featured in this blog entry's title:

    Everyone wants a blog, nobody wants to blog.

38 more posts can be found in the archive.