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...]

Good morning gentle readers. I opened up my craptop this morning to witness the struggles of what seemed to be a laptop battling cancer. No, this was not another case of opteron cancer. Instead I found that Windows, unable to cope with my Cisco Aironet 350 wireless card, was creating network connections one after another in the system tray. [more...]

I thought to myself this morning — I want an Eggo Waffle. You see, I have never had one, but have always been interested. There were some in the freezer that Robert had bought, removed from their packaging because of his space-saving ways.

Naturally I found the need to prepare an Eggo Waffle to the correct specifications as I wanted to make sure that I was having the correct Eggo experience (microwave, toast, pan fry, what?). To my surprise the feast was ruined (credit for the title), and breakfast was not magically delicious. [more...]

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.

Faced with a need to recover images from Robert’s camera after a defective card-reader nuked the filesystem superblock, a quick utility came to mind. Nuked superblocks mean no file allocation table. It means no metadata. But it does not mean no data.

Target medium: 1GBXD card from a digital camera.

Data to recover: JPEGs. Lots of them.

Whipping out some jpeg-format-and-filesystem-jutsu, here’s the solution (for less than that $20 shareware recovery utility): [more...]

For those that deal with complex networking, having a device’s MAC address can be very helpful in diagnostics, configuration, and firewalling. Often just using a device’s IP address is enough, but what about DHCP? Unless you can control the device’s IP range, this can cause many hours of troubleshooting. This is where having a MAC address helps. [more...]

Recently we had an interesting opportunity to deploy 7 identical customized machines for one of Kosada’s consulting clients. We’ve been working on disk images to make this quick and painless, and have more or less succeeded. However, getting an archived image onto the machines has a few different methods, depending on circumstance. We also get to pay a penalty every time the underlying hardware changes, since the image bundles in specific drivers. Usually we’re able to work around this with minimal pain.

Excitingly, these new machines broke the mold (they’re slightly older, considerably cheaper machines), so we had to tweak the image a bit. [more...]

Mozilla is an open source project that produces some widely used software. Their most noteworthy product to date is Firefox, a standards-compliant web browser.

Being open source, their projects and products are often enhanced by the contributions of others. These contributions often come in the form of a “patch” — a file that tells the computer what to change in the source code to add the contribution. [more...]

Author’s Note: Forgive this preamble I promise that they’ll be juicy links and google page rank increases in Part 2.

After my October escapade in Boston — with a brief layover at Yon Reptile Campaign — Lifeâ„¢ decided to shine a ray of hope in my general direction, after Thanksgiving. However, quick to grant me access to enough income to pay rent, Lifeâ„¢ viciously raped my ATI Radeon 9800 Pro, and I was unable to use MPlayer to play movies, use GL to play games, or whatever else we non-Apple people do with our video cards. [more...]

In Part 1 of Malus Sylvestris Migration I went over some basic differences between Mac OS X, Linux, and Windows. Basic configuration, Application installation, and linking were discussed. In this, the second installment, I intend to cover some more interesting features. These include virtual desktops, configure scripts, and the like.

At the point where I left off, I figured I was pretty good to go. I had Xcode installed, so I grabbed the Thunderbird 2.0b2 source so I could compile it — hacking on Thunderbird is one of my soon-to-be all-encompassing projects. [more...]