TweetFollow Us on Twitter

Mac OS X Programming Secrets

Volume Number: 19 (2003)
Issue Number: 4
Column Tag: Mac OS X Programming Secrets

Mac OS X Programming Secrets

by Scott Knaster

    I am honored, privileged, and more than a little thrilled to welcome Scott Knaster to the fold here at MacTech. In the Mac programming universe, Scott is a legend, both for his sense of humor and for books like Macintosh Programming Secrets and How to Write Macintosh Software. While I was busy writing about C and the basics of the Mac Toolbox, Scott was taking folks to the next level, writing about off screen drawing, spinning cursors, VBL tasks, dialog filters, etc.

    And that's just what we're gonna do here. While Getting Started will focus on the basics, Mac OS X Programming Secrets will take you to the next level. And for those of you who have yet to experience Scott, trust me. You are in for a treat!

    Dave Mark

    Editor-in-Chief


Thanks, Dave, for that awesome introduction. I'll try mightily to live up to those high expectations. And now, let's get started. But how to begin?

[Option #1: the wacky two-liner.] Well, I haven't written anything about Mac programming since about 1990. So as I was saying...

[Option #2: the clueless.] Hi. I've been basically out of the Mac universe for the last 10 years. Did anything interesting happen? Is Apple still in business? Excuse me... the company is run by who? Mac OS is now based on what? Hahahahahahaha!!! You big kidder!

[Option #3: keeping it real.]

That's me: always with the joking around. But really, when I think about writing for MacTech, my whole MacLife (not the same as iLife) flashes before my eyes, and I ponder how I got started on the Mac, how I ended up back here again, and what happened in between.

Programming Is Great Fun

My story, dear reader, is one of extreme good fortune and a personality tic. The lucky part came back in 1984 when I managed to find a job in the developer support department of the Macintosh division at Apple. I knew a little about programming and was in love with working at Apple, but I had never seen anything like the Mac - of course, very few of us had.

On my first day, my boss, Cary Clark, showed me the professional Mac development environment of the era. It consisted of a Mac with 128K RAM, a Lisa connected to the Mac for compiling and building applications in Pascal, and an Apple III (or Apple ///, as we insisted on spelling it) used as a dumb terminal for talking to the object-code debugger. Yes, it took three-fourths of Apple's computer models just to say "Hello World" on an underpowered original Mac. I was in awe.

I spent the next 3 years helping developers get their apps running on those early Macs. Because I was lucky enough to be in the right place at the right time, I learned a ton of cool stuff about Mac programming and debugging, like how to figure out what was on the stack, what really happened when heaps were compacted, and what caused system errors. Because lots of people were interested in learning these things, I wrote it all down in a couple of books, thus freeing my brain cells for important work, such as knowing it was Randy Van Warmer who sang the smash hit "I'd Really Love To See You Tonight".

Attentive readers will recall that way back a few paragraphs ago, I said it was luck and a personality tic that helped my career. The luck was finding myself in Mac developer support; the tic is that when I learn about cool new technology, like Mac programming, I just gotta tell other people about it. I can't stand keeping it to myself. This is a wonderful trait for a tech support guy and a writer.

Eventually, I got distracted by a shiny object or something, and I wandered away from the Mac for awhile. I wrote many charming but now-useless technical docs, first about Pink, one of Apple's several failed fix-the-Mac-OS crusades, and then about Magic Cap, a really wonderful OS and UI toolkit for personal communicators that just didn't catch on. Most surprising of all journeys, I ended up spending a number of happy years at Microsoft (yes, that Microsoft), at first working on Mac software, then writing books about Windows user interface guidelines, of all things.

New Things Happened

And then, Mac OS X sprang forth. A hypnotically pretty user interface, a foundation based on Unix (go figure), and lots of attention and cool new apps came with it. Apple's dark days had come to an end. Although I was making my living on that other platform, I was always drawn back to the Mac. When Apple started shipping Macs with OS X pre-installed in 2001, I bought an iBook and had a torrid affair with the new operating system. Although it wasn't ready for prime time then, you could tell that it had a great future - kind of how it felt using a Mac in 1984 or so. For the next two years, I always found time to keep up with OS X, messing around with development tools and generally having fun with all the new stuff Apple kept tossing our way.

When I said farewell to my employment at Microsoft (and my WinXP lifestyle) earlier this year, I fell down the OS X rabbit hole at full velocity. I found myself getting up early and staying up late, playing with all the toys: Project Builder, Terminal, Cocoa, Carbon, etc. Mac programming today is a surreal fusion of traditional Apple stuff and full-on Unix, and we haven't even begun to tap all the power that's in there. My goal in writing this column is to stay one step ahead, to show you something each month that you didn't know about before.

I find myself cursing Unixy things like folder permissions and command line syntax booboos, even while I enjoy trying to figure them out. Placing Unix under Aqua is a little like having a hood on my car. Mostly I just drive the car, but once in a while I like to open the hood to learn about or tweak something inside. Sometimes that's frustrating, but it's always educational.

I'm past the point where operating systems are a religion with me. I lived happily on last millennium's Mac OS for a long time, Windows for a few years, and now it's Mac OS X. There are things I like and dislike about each of them. I enjoy having all of them around, because they're fun to delve into and they all help me get work done. Although it's far from perfect, OS X might be my favorite OS ever because there's just so much stuff to mess with. And because after all these years, I find that my brain is still tuned to Apple's frequency: I keep coming back to Apple products because they usually feel right to me.

There Is Plenty To Do

So the truth is this column is my excuse to keep diving into OS X programming and then inflicting the results upon you, dear reader, because I just can't keep it to myself. There's so much to write about: great tools, cool tricks with frameworks, little-known APIs, debugging tips, odd and fun nooks in the system. Everything is new again, and we're all bozos on this bus. I want to write about all of it at once, but unfortunately the laws of physics prohibit this, so I'll do it one column per issue.

Speaking selfishly, I know I'm going to have a great time, and I hope you find some of it useful or amusing, because that would please the publisher and editors of MacTech. So thanks for coming along.

And I now that I think of it, it was England Dan & John Ford Coley who sang the smash hit "I'd Really Love To See You Tonight". I guess I better start writing more stuff down to free up brain space.


Scott Knaster has been writing about Macs for as long as there have been Macs. Scott's books How To Write Macintosh Software and Macintosh Programming Secrets were required reading for Mac programmers for more than a decade. Scott wrote developer books for General Magic and worked on Mac software for Microsoft. Scott's books have been translated into Japanese and Pascal. Scott has every issue of Mad magazine, which explains a lot.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Spotify 1.0.4.90. - Stream music, create...
Spotify is a streaming music service that gives you on-demand access to millions of songs. Whether you like driving rock, silky R&B, or grandiose classical music, Spotify's massive catalogue puts... Read more
djay Pro 1.1 - Transform your Mac into a...
djay Pro provides a complete toolkit for performing DJs. Its unique modern interface is built around a sophisticated integration with iTunes and Spotify, giving you instant access to millions of... Read more
Vivaldi 1.0.118.19 - Lightweight browser...
Vivaldi browser. In 1994, two programmers started working on a web browser. Our idea was to make a really fast browser, capable of running on limited hardware, keeping in mind that users are... Read more
Stacks 2.6.11 - New way to create pages...
Stacks is a new way to create pages in RapidWeaver. It's a plugin designed to combine drag-and-drop simplicity with the power of fluid layout. Features: Fluid Layout: Stacks lets you build pages... Read more
xScope 4.1.3 - Onscreen graphic measurem...
xScope is powerful set of tools that are ideal for measuring, inspecting, and testing on-screen graphics and layouts. Its tools float above your desktop windows and can be accessed via a toolbar,... Read more
Cyberduck 4.7 - FTP and SFTP browser. (F...
Cyberduck is a robust FTP/FTP-TLS/SFTP browser for the Mac whose lack of visual clutter and cleverly intuitive features make it easy to use. Support for external editors and system technologies such... Read more
Labels & Addresses 1.7 - Powerful la...
Labels & Addresses is a home and office tool for printing all sorts of labels, envelopes, inventory labels, and price tags. Merge-printing capability makes the program a great tool for holiday... Read more
teleport 1.2.1 - Use one mouse/keyboard...
teleport is a simple utility to let you use one single mouse and keyboard to control several of your Macs. Simply reach the edge of your screen, and your mouse teleports to your other Mac! The... Read more
Apple iMovie 10.0.8 - Edit personal vide...
With an all-new design, Apple iMovie lets you enjoy your videos like never before. Browse your clips more easily, instantly share your favorite moments, and create beautiful HD movies and Hollywood-... Read more
Box Sync 4.0.6233 - Online synchronizati...
Box Sync gives you a hard-drive in the Cloud for online storage. Note: You must first sign up to use Box. What if the files you need are on your laptop -- but you're on the road with your iPhone? No... Read more

Become the World's Most Important D...
Must Deliver, by cherrypick games, is a top-down endless-runner witha healthy dose of the living dead. [Read more] | Read more »
SoundHound + LiveLyrics is Making its De...
SoundHound Inc. has announced that SoundHound + LiveLyrics, will be one of the first third-party apps to hit the Apple Watch. With  SoundHound you'll be able to tap on your watch and have the app recognize the music you are listening to, then have... | Read more »
Adobe Joins the Apple Watch Lineup With...
A whole tidal wave of apps are headed for the Apple Watch, and Adobe has joined in with 3 new ways to enhance your creativity and collaborate with others. The watch apps pair with iPad/iPhone apps to give you total control over your Adobe projects... | Read more »
Z Steel Soldiers, Sequel to Kavcom'...
Kavcom has released Z Steel Soldiers, which continues the story of the comedic RTS originally created by the Bitmap Brothers. [Read more] | Read more »
Seene Lets You Create 3D Images With You...
Seene, by Obvious Engineering, is a 3D capture app that's meant to allow you to create visually stunning 3D images with a tap of your finger, and then share them as a 3D photo, video or gif. [Read more] | Read more »
Lost Within - Tips, Tricks, and Strategi...
Have you just downloaded Lost Within and are you in need of a guiding hand? While it’s not the toughest of games out there you might still want some helpful tips to get you started. [Read more] | Read more »
Entertain Your Pet With Your Watch With...
The Petcube Camera is a device that lets you use live video to check in on your pet, talk to them, and play with them using a laser pointer - all while you're away. And the Petcube app is coming to the Apple Watch, so you'll be able to hang out with... | Read more »
Now You Can Manage Your Line2 Calls With...
You'll be able to get your Line2 cloud phone service on the Apple Watch very soon. The watch app can send and receive messages using hands-free voice dictation, or by selecting from a list of provided responses. [Read more] | Read more »
R.B.I. Baseball 15 (Games)
R.B.I. Baseball 15 1.01 Device: iOS Universal Category: Games Price: $4.99, Version: 1.01 (iTunes) Description: The legendary Major League Baseball franchise returns to the diamond. Make History. ** ALL iPOD Touch, the iPad 2 and the... | Read more »
Here's How You Can Tell if an App W...
The Apple Watch is pretty much here, and that means a whole lot of compatible apps and games are going to be updated or released onto the App Store. That's okay though, beacause Apple has quietly updated their app description pages to make things... | Read more »

Price Scanner via MacPrices.net

Intel Compute Stick: A New Mini-Computing For...
The Intel Compute Stick, a new pocket-sized computer based on a quad-core Intel Atom processor running Windows 8.1 with Bing, is available now through Intel Authorized Dealers across much of the... Read more
Heal to Launch First One-Touch House Call Doc...
Santa Monica, California based Heal, a pioneer in on-demand personal health care services — will offer the first one-touch, on-demand house call doctor app for the Apple Watch. Heal’s Watch app,... Read more
Mac Notebooks: Avoiding MagSafe Power Adapter...
Apple Support says proper usage, care, and maintenance of Your Mac notebook’s MagSafe power adapter can substantially increase the the adapter’s service life. Of course, MagSafe itself is an Apple... Read more
12″ Retina MacBook In Shootout With Air And P...
BareFeats’ rob-ART morgan has posted another comparison of the 12″ MacBook with other Mac laptops, noting that the general goodness of all Mac laptops can make which one to purchase a tough decision... Read more
FileMaker Go for iPad and iPhone: Over 1.5 Mi...
FileMaker has announced that its FileMaker Go for iPad and iPhone app has surpassed 1.5 million downloads from the iTunes App Store. The milestone confirms the continued popularity of the FileMaker... Read more
Sale! 13-inch 2.7GHz Retina MacBook Pro for $...
 Best Buy has the new 2015 13″ 2.7GHz/128GB Retina MacBook Pro on sale for $1099 – $200 off MSRP. Choose free shipping or free local store pickup (if available). Price for online orders only, in-... Read more
Minimalist MacBook Confirms Death of Steve Jo...
ReadWrite’s Adriana Lee has posted a eulogy for the “Digital Hub” concept Steve Jobs first proposed back in 2001, declaring the new 12-inch MacBook with its single, over-subscribed USB-C port to be... Read more
13-inch 2.7GHz Retina MacBook Pro for $1234 w...
Adorama has the 13″ 2.7GHz/128GB Retina MacBook Pro in stock for $1234.99 ($65 off MSRP) including free shipping plus a free LG external DVD/CD optical drive. Adorama charges sales tax in NY & NJ... Read more
13-inch 2.5GHz MacBook Pro available for $999...
 Adorama has the 13-inch 2.5GHz MacBook Pro on sale for $999 including free shipping plus NY & NJ sales tax only. Their price is $100 off MSRP. Read more
Save up to $600 with Apple refurbished Mac Pr...
The Apple Store is offering Apple Certified Refurbished Mac Pros for up to $600 off the cost of new models. An Apple one-year warranty is included with each Mac Pro, and shipping is free. The... Read more

Jobs Board

*Apple* Client Systems Solution Specialist -...
…drive revenue and profit in assigned sales segment and/or region specific to the Apple brand and product sets. This person will work directly with CDW Account Managers Read more
*Apple* Software Support - Casper (Can work...
…experience . Full knowledge of Mac OS X and prior . Mac OSX / Server . Apple Remote Desktop . Process Documentation . Ability to prioritize multiple tasks in a fast pace Read more
*Apple* Software Support - Xerox Corporation...
…Imaging experience Full knowledge of Mac OS X and prior Mac OSX / Server Apple Remote Desktop Process Documentation Ability to prioritize multiple tasks in a fast pace Read more
*Apple* Support Technician IV - Jack Henry a...
Job Description Jack Henry & Associates is seeking an Apple Support Technician. This position while acting independently, ensures the proper day-to-day control of Read more
*Apple* Retail - Multiple Positions (US) - A...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.