The loser now will be later to win

(or: “Why I fell out of love with Apple”) You could chalk it up to a preference for the underdog — and you’d probably be right — but even that considered, you’d have to admit, Apple is not the company it once was. And if you’re an Apple fan/user/cult-member now, it’s not likely for the…

Installing Rhapsody DR2 on VMWare

Between the acquisition of NeXT by Apple in the late 90s, and the release of OS X, Apple tried and abandoned a path to merge the two company’s technologies into a new, modern OS. Ultimately, a similar but different path was chosen, where much of the proprietary technology that made OpenStep expensive (specifically Adobe-licensed PostScript)…

AppleTV for Mac

This remains the most popular thing I’ve ever posted — despite the fact that its really nothing special. The meat of it is a little start-up script that contains no undiscoverable tricks. I don’t even use it any more! Nonetheless, it’s in-demand, and I can’t find a hosting method that can keep up. So, here’s…

Print to PDF in Windows 7

doPDF is simple, lightweight, installs in seconds and 100% compatible with Windows 7. It may not be feature-heavy, but it meets the need, and I like it. If converting a document to PDF for archival or sharing is something you need to do, check out doPDF 7.0.

Assorted, Scattered Objective-C Notes as compared to C#

A outlet is like a pre-known property that can be bound (ie: drag destination object to origin object and assign to the outlet (property) nextKeyView) myObject.methodToCall(parameters) is like [myObject methodToCall:parameters]; int i = myObject.assignValue; is like int i = [myObject assignValue]; form.Window(makeKeyAndOrderFront(target)); is like [[form window].makeKeyAndOrderFront:target]; object myObject(); is like id myObject; string myString; is…

Assorted, Scattered JavaScript Notes

Boolean(value) method returns false for falsey values, true for truthy values falsy: false, null, undefined, “”, 0, NaN truthy: everything else: “0”, “false” + as a leading operator converts a string to a number: +”42″ = 42. Same as Number(“42”) = 42), parseInt(“42”, 10) = 42 +”3″ + (+”4″) = 7 === !== do not…

Resolving missing dependencies when building a NeXTStep/OpenStep App

If you’ve played around with NextStep/OpenStep trying to build a sample app — say, so you can find out how much OS X/the iPhone is like those sweet black machines of yesteryear — you might have an error like this one, when attempting to build a sample app you’ve created: AppKit.h not found (or any…

Expression Blend (and other Expression Products) in a VM

Expression Blend doesn’t work properly in a typical VMWare 6.* environment. Some people report lock-ups, I just get a garbled screen. Fortunately, the fix is easy: disable 3D graphics acceleration in the VM Settings… Via this guy…

Automating an Apple TV with Cron

Copy and enable Cron from 10.4. Schedule Cron jobs using crontab at the command line. Use Ctrl+D to exit crontab once all your jobs are created. Examples: Restart the AppleTV at 8:10am every morning (say, to re-establish network connections with computers that were off during the night): 10 8 * * * sudo /sbin/reboot Shutdown…

Hacking Time Machine

This past week I was the unfortunate victim of hard drive failure on my 1stgen Macbook Pro. After looking through my local NAS and finding that my most recent backup was done in April, I kicked myself a little bit. I have everything available to me to do regular backups, but like most people I…