I recently found a cool little open source Java program called “jpegextractor” which looks for JPEG images inside of other files, regardless of their type. It can accomplish this because JPEG files have a short but distinct beginning and end marker. Jpegextractor runs through a given file looking for occurrences these two blocks, and if found, copies the data between them to new JPEG image files on your disk.
One purpose I’ve found for it is extracting the artwork from purchased iTunes songs via the command line, as the cover art is stored as JPEG data inside the MPEG-4 protected file (however, only the audio is encrypted, not the cover image). It is possible to copy the artwork out via iTunes song info window, which I found out later.
Using jpegextractor isn’t hard at all. With it downloaded, cd to the jpegextractor folder, and then do java jpegextractor /path/to/file.m4p, replacing /path/to/file.m4p with whatever file you want to juice for JPEG images. If anything is found, it will dump out an “output0.jpg”, or more, numbered sequentially.
$ cd ~/Desktop/jpegextractor/
$ java jpegextractor Ready\ to\ Rise.m4p
Ready to Rise.m4p
=>output0.jpg (519887 bytes)
Extracted 1 JPEG file(s) with 519887 bytes from 1 input file(s).
One of my favorite behind-the-scenes programs for Mac OS X is a network filter called Little Snitch. It allows you to limit any outbound network connection that your Mac makes, and permit or deny it based on the server address, port, or both. For example, if a new program tries to connect to the internet send data out to a server, Little Snitch pops up and asks you what you want to do. At that point, you can allow or deny the connection once, forever, or until the application quits.
It has recently been updated to work with Mac OS X 10.4, and the upgrade is free. It sells for $24.94, but I find it quite valuable, and it gives me peace of mind that no programs are sending out anything I don’t want them to.
Have you ever wanted to be able to use your Xbox controller as a gamepad for your computer games as well as your Xbox games? Darrell Walisser has released a 1.3 update to his great Xbox controller software, which is a kernel-level human interface driver for Mac OS X. It works at a low level so that any controller-aware game will be able to use it. It requires Mac OS X 10.2.6 or later, and is $5 shareware.
For the task of physically connecting your Xbox controller to your Mac, you can either buy an adapter from lik-sang.com or build your own by splicing the Xbox wires into a USB cable. If you build your own, the wire colors should match, but ignore the yellow wire coming from the Xbox controller — it’s for powering a light gun used in a small few games.
With the controller connected to your computer and the driver installed, it’s easy to set up your favorite game to use it.
Mac OS X 10.3.9 has been released, and will be the final update before Tiger is officially available. It appears that Apple fixed the font issue documented at daringfireball.net about three weeks ago. The software update KnowledgeBase article (delta updater) states:
Addresses an issue in which the startup time in Mac OS X 10.3.6 through 10.3.8 may be extended if a large number of PostScript fonts are installed.
I’ve successfully installed the update on two systems and haven’t had any problems so far.
When Mac OS X 10.4 “Tiger” is released on the 29th, it will only be available on DVD media. If your Mac doesn’t have at least a DVD-ROM, you will be unable to use the install disc. Apple’s site says “Tiger ships on a DVD, but if your Mac doesn’t have a built-in DVD-ROM player, you’ll need CD media. When you buy Mac OS X Tiger, you qualify to purchase Tiger CDs for only $9.95.”
Although they say it will be on DVD only, I suspect that it will be possible to use another computer with a DVD drive booted into Target Mode to install 10.4 on a non-DVD Mac. More on this as it becomes available.