Apple

Is Smaller Better?

Epia EX small
In the past couple of months I thought about spending some money on either a Nintendo Wii or a multi-purpose media box (not to mention my anxiety over buying an unmodifiable blackbook). Over the past 3 years I’ve looked at smaller cases as “better”. Before that it was always the full tower case that provided more room and ease-of-use. In this vein I’ve been looking at the world of mini-itx for the past several months.

VIA created the mini-itx specification for itself, but since its creation other companies started creating motherboards with this spec and recently so has Intel. The spec allows for a low-power consumption CPU, which is great for point-of-sales machines, thin clients, and more. The other use of mini-itx, popular amongst personal users, is as a Home Theater PC (HTPC) or media center.

Mac OS Xodus

(First, yes I do realize the ‘X’ in ‘OS X’ is pronounced “ten” not “ecks.” I simply like the portmanteau.)

With the release of Leopard, I discovered the need to migrate my existing Tiger system onto an external drive. I needed it to be bootable, and I wanted to have a little discontinuity as possible. Apple generally makes this pretty easy, but it’s still a bit involved. I write this article from my migrated system, currently booting Tiger off of a USB drive.

Zero Grams of Trans Fat Binaries

tons of xcode build targetsPeople like their applications to work. Even better, they like them to work, even when things change. For the WinTel world, this isn’t a big deal (Vista aside ;), because the underlying CPU architecture hasn’t really changed, from a program’s point of view, in the past two decades. Unless you have a weird program that’s designed for AMD’s 3DNow! instruction set and you switch to an Intel CPU, or perhaps an application designed for a more esoteric old SIMD architecture, your application should run just fine (as long as your Operating System is ok with it).

Mac OS X doesn’t have the luxury of working on the same underlying CPU though, so things need to be handled a little bit differently. The solution Apple came up with was

iPhoto-Thunderbird Bridge cwright 2007.08.22 @ 06:59

iPhoto logoFor years, iPhoto users have been stuck using a limited number of email clients to send their photos easily. This was mostly remedied by the iPhoto Mailer Patcher, but it left out non-applescript aware applications because, after all, iPhoto uses applescript to interface with them. One of the more notable omissions is Thunderbird.

Finally, this void has also been filled, via the iPhoto Thunderbird Bridge. It’s still quite primitive, but all the basics are there for iPhoto-Thunderbird integration.

If you’re an iPhoto/Thunderbird user, give it a whirl.

Leaky NSSpeechSynthesizer cwright 2007.07.23 @ 17:34

NSSpeechSynthesizer, the Cocoa class responsible for giving applications a voice under OS X, is leaky. Creating and destroying thousands of instances of this class slowly consumes all the available memory in a system, leading to degrading performance and eventual application instability.

The disappointing part is that this bug was first noticed almost two years ago.

Announcing: kineme.net cwright 2007.07.10 @ 17:24

screenshot of kineme.netThe Kineme Quartz Composer patches now have a proper home at http://kineme.net/, including forums, bug reports, comments, and feature requests – complete with voting!

Along with the new site, a few new patches are available as well based on requests from users.

NSURLConnection's sendSynchronousRequest enforces minimum 30 second timeout?

While writing the new Image Downloader (Blocking) QC patch for CoreMelt, I ran into what appears to be a bug in Mac OS X’s NSURLConnection framework – if you construct an NSURLRequest and specify a timeout of less than 30 seconds, it’s ignored when you perform a [NSURLConnection sendSynchronousRequest:returningResponse:error:]. The request takes at least 30 seconds to time out, contrary to what the documentation suggests..

Steps to Reproduce:

How to make Pop-Up Menus in Custom Quartz Composer Patches smokris 2007.07.05 @ 13:26

screenshot of a custom Quartz Composer patch's pop-up menuMaking pop-up menus in custom Quartz Composer patches is actually surprisingly easy.

This release is only compatible with Tiger (10.4).
Please see kineme.net for Leopard-specific informations.
  1. Set up a QCIndexPort input. QCIndexPorts provide values from 0 to whatever max you specify using - (void)setMaxIndexValue:(unsigned int)max;.
New Custom Quartz Composer Patch Xcode Template smokris 2007.06.29 @ 17:02

Create a new Xcode project with this templateHere’s a new version of the Xcode Template for Custom Quartz Composer Patches.

Changes:

  • Rebuilt from scratch – no longer depends on QCJP’s work – and, by extension, the Creative Commons “Attribution-NonCommercial-ShareAlike” license. My Xcode Template, as of version 0.2, is released into the Public Domain. You are free to use it for whatever – commercial or non-commercial.
  • QCJP’s headers were replaced with headers assembled directly from the QuartzComposer framework – now located in the QuartzComposer/ folder of the project. I’ve exported a few more headers than QCJP had constructed, so there’s some added functionality (namely, image input/output ports).
  • The project now automatically assigns an icon to the patch bundle, and installs it in /Library/Graphics/Patches/ for you each time you build, for faster edit-build-test workflow.
This release is out-of-date.
Please see the latest version.

Download the installer, version 0.2.

See the old version’s blogpost for some additional instructions and user comments.


Steve Mokris is a developer at Kosada, Inc.

Monstrous P5 Glove Patch for Quartz Composer smokris 2007.05.20 @ 12:08

Steve's gloved hand in front of the P5 Glove Quartz Composer PatchA few weeks ago I stumbled upon a P5 Glove listed on eBay for $20. It arrived a couple of days later, and I started playing with libp5glove by Jason McMullan, Tim Kreger, and Ross Bencina. I built a very simple Quartz Composer patch around it.