How to Automatically Eject All Disks on a Mac

It’s always been a pain to manually eject disks one by one before removing a MacBook from a dock. Here’s a way to use AppleScript to automate the process in just a few minutes.

Using Scraper on RetroPie

Emulation Station’s scraper is hit-or-miss. Here are my notes on using Steven Selph’s Scraper instead.

Convert “localhost” to your Mac’s current IP address

When developing web pages, I use my Mac’s built-in Apache or MAMP.app. Viewing the page means using an address such as http://localhost/mypage.html. I decided to make my life a little easier by writing an AppleScript that looks at the open tabs in Chrome and Safari then replaces “localhost” (or custom domain) with my current IP address. Saving this as a service enables me to go to Chrome > Services to run the script.

AppleScript for generating SCORM manifest nodes

Today I decided to whip up an AppleScript that automates the generation of the <file> nodes to make my life a little easier. If you’re on a Mac, you may find it useful, too.

iTunes, TV Shows and Apple TV

iTunes vexes me. For better or for worse, we’re an Apple household and own an Apple TV, so I’m kind of stuck with iTunes for managing my media files.

My wife and I have also purchased a significant amount of DVDs over the years, which I ripped to iTunes using the trusty old Handbrake (love you, Handbrake!). These DVDs include a lot of TV shows, such as Doctor Who and Magnum PI.

My workflow has always been: rip via Handbrake, then import into iTunes by dragging the m4v files onto the iTunes window. By default, the TV shows don’t have any metadata (no proper titles, descriptions, episode numbers, or artwork), and iTunes automatically files them under Movies. This means they’ll show up in Apple TV with no description, no preview picture (such as DVD box art), and no sequence information.

Important Adobe Captivate SCORM template update

Over the last few weeks, I received a few reports that scores were not being saved in the LMS when using my template. Turns out there was a simple oversight on my part, and the issue is fixed. Please download the latest version (v1.20120328) from GitHub.