There are a few functions used to zero out memory on most unix variants. memset(), bzero(), and calloc() are all a few such functions. calloc() isn’t very useful for clearing already allocated memory, so it won’t be appearing much more in this article. However, the other two are somewhat more interesting than meets the eye. [more...]
Posted by cwright on 2009.01.14 @ 22:58
Filed under:
Posted by cwright on 2008.09.13 @ 20:19
Filed under:
From time to time, I get these insatiable urges to read what other Cocoa developers blog about. Sometimes they’re informative, sometimes they’re funny, sometimes they read like college textbooks, and sometimes they’re just downright terrible, but I read them anyway. It comes and goes in waves, every 2 or 3 months. A couple weeks ago, one such binge happened, and I started reading Aaron Hillegass’ critique of NSController (since I was hating it at the time, and wanted to feel justified in hating it). In the critique, the following statement was made: [more...]
Apple has been busily working to 64-bit-ify all of the frameworks they plan to continue supporting into the future (Snow Leopard and beyond). However, QuickTime is scheduled for some nice Cocoaification, so it didn’t get much 64-bit love. QTKit, the 64-bit impostor, pretends to be the 64-bit way forward, but unfortunately this is far from useful.
QuickTime is all C function stuff, rather verbose and boring. It’s also 32-bit only. The 64-bit front end on it is a framework called QTKit. However, 64-bit QTKit is little more than an impostor that secretly makes things messier during the 32-to-64-bit transition. [more...]
Posted by cwright on 2008.07.30 @ 12:50
Filed under:
In the wee small hours of this morning, Kineme Interactive Media released its first commercial product, QuartzCrystal.
QuartzCrystal is an offline renderer that turns Quartz Compositions into portable QuickTime movies. It supports 3rd party plugins, as well as patches that do not work in safe-mode-only environments (such as QuickTime Pro). It also supports software scene antialiasing, so if you have a Mac with plenty of RAM and a hard-core video card, you can make spectacularly beautiful renderings of your plugins, effects, and compositions.
Beside QuartzCrystal, the only other product that renders and encodes compositions to movies is Apple’s own QuickTime Pro, which doesn’t support plugins, unsafe patches, or antialiasing.
Data integrity is a hot topic these days. With data volumes on the rise and hard drive half-lives falling, protecting data has become important in many different fields.
Conventionally, a storage medium will report its life expectancy in terms of MTBF, or Mean Time Between Failures. This is often measured in hours. However, it’s not always this simple. Usage patterns and environmental characteristics take a heavy toll on how long our storage devices last. [more...]
Posted by cwright on 2008.02.22 @ 15:35
Filed under:
Lately I’ve been working on integrating (or, more accurately, attempting to integrate) the Python scripting language into some plugins for an application we develop plugins for. We’ve wrapped many libraries with varying levels of success, so this one wasn’t going to be much different. Or, so we thought. [more...]
(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. [more...]
Posted by cwright on 2007.12.19 @ 01:36
Filed under:
People 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 [more...]
Posted by cwright on 2007.08.22 @ 06:59
Filed under:
For 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.
Posted by cwright on 2007.07.23 @ 17:34
Filed under:
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. [more...]

