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

Tunnelblick 3.7.1a - GUI for OpenVPN.
Tunnelblick is a free, open source graphic user interface for OpenVPN on OS X. It provides easy control of OpenVPN client and/or server connections. It comes as a ready-to-use application with all... Read more
Amazon Chime 4.3.5721 - Amazon-based com...
Amazon Chime is a communications service that transforms online meetings with a secure, easy-to-use application that you can trust. Amazon Chime works seamlessly across your devices so that you can... Read more
Posterino 3.3.7 - Create posters, collag...
Posterino offers enhanced customization and flexibility including a variety of new, stylish templates featuring grids of identical or odd-sized image boxes. You can customize the size and shape of... Read more
Airmail 3.2.9 - Powerful, minimal email...
Airmail is an mail client with fast performance and intuitive interaction. Support for iCloud, MS Exchange, Gmail, Google Apps, IMAP, POP3, Yahoo!, AOL, Outlook.com, Live.com. Airmail was designed... Read more
Arq 5.8.4 - Online backup to Google Driv...
Arq is super-easy online backup for Mac and Windows computers. Back up to your own cloud account (Amazon Cloud Drive, Google Drive, Dropbox, OneDrive, Google Cloud Storage, any S3-compatible server... Read more
Microsoft Remote Desktop 8.0.39 - Connec...
With Microsoft Remote Desktop, you can connect to a remote PC and your work resources from almost anywhere. Experience the power of Windows with RemoteFX in a Remote Desktop client designed to help... Read more
Arq 5.8.4 - Online backup to Google Driv...
Arq is super-easy online backup for Mac and Windows computers. Back up to your own cloud account (Amazon Cloud Drive, Google Drive, Dropbox, OneDrive, Google Cloud Storage, any S3-compatible server... Read more
Airmail 3.2.9 - Powerful, minimal email...
Airmail is an mail client with fast performance and intuitive interaction. Support for iCloud, MS Exchange, Gmail, Google Apps, IMAP, POP3, Yahoo!, AOL, Outlook.com, Live.com. Airmail was designed... Read more
Microsoft Remote Desktop 8.0.39 - Connec...
With Microsoft Remote Desktop, you can connect to a remote PC and your work resources from almost anywhere. Experience the power of Windows with RemoteFX in a Remote Desktop client designed to help... Read more
Posterino 3.3.7 - Create posters, collag...
Posterino offers enhanced customization and flexibility including a variety of new, stylish templates featuring grids of identical or odd-sized image boxes. You can customize the size and shape of... Read more

Latest Forum Discussions

See All

Pokémon GO might be getting legendaries...
The long-awaited legendary Pokémon may soon be coming to Pokémon GO at long last. Data miners have already discovered that the legendary birds, Articuno, Moltres, and Zapdos are already in the game, it’s just a matter of time. [Read more] | Read more »
The best deals on the App Store this wee...
If you’ve got the Monday blues we have just the thing to cheer you up. The week is shaping up to be a spectacular one for sales. We’ve got a bunch of well-loved indie games at discounted prices this week along with a few that are a little more... | Read more »
Honor 8 Pro, a great choice for gamers
Honor is making strides to bring its brand to the forefront of mobile gaming with its latest phone, the Honor 8 Pro. The Pro sets itself apart from its predecessor, the Honor 8, with a host of premium updates that boost the device’s graphical and... | Read more »
The 4 best outdoor adventure apps
Now that we're well into the pleasant, warmer months, it's time to start making the most of the great outdoors. Spring and summer are ideal times for a bit of trekking or exploration. You don't have to go it alone, though. There are plenty of... | Read more »
Things 3 (Productivity)
Things 3 3.0.1 Device: iOS iPhone Category: Productivity Price: $7.99, Version: 3.0.1 (iTunes) Description: Meet the all-new Things! A complete rethinking of the original, award-winning task manager – with a perfect balance between... | Read more »
Oddball mash-up Arkanoid vs Space Invade...
In a move no one was really expecting, Square Enix has put forth an Arkanoid/Space Invaders mash-up aptly titled Arkanoid vs Space Invaders. The game launched today on both iOS and Android and the reviews are actually quite good. [Read more] | Read more »
Arkanoid vs Space Invaders (Games)
Arkanoid vs Space Invaders 1.0 Device: iOS Universal Category: Games Price: $3.99, Version: 1.0 (iTunes) Description: LAUNCH SALE: GET THE GAME AT 20% OFF! Two of the most iconic classic games ever made meet in Arkanoid vs Space... | Read more »
The best new games we played this week
Things got off to a bit of a slow start this week, but as we steadily creep towards Friday a bunch of great games have started cropping up. If you're looking for a quality new release to play this weekend, we've got you covered. Here's a handy... | Read more »
No Stick Shooter (Games)
No Stick Shooter 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: Happy Robot presents a fresh take on the classic retro-arcade shooters we all know and love. Featuring 30 levels of non-stop... | Read more »
Chroma Squad (Games)
Chroma Squad 1.0.85 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0.85 (iTunes) Description: | Read more »

Price Scanner via MacPrices.net

Tuesday deal: $200 off 27-inch Apple iMacs
Amazon has select 27″ iMacs on sale for $200 off MSRP, each including free shipping: - 27″ 3.3GHz iMac 5K: $2099 $200 off MSRP - 27″ 3.2GHz/1TB Fusion iMac 5K: $1799 $200 off MSRP Keep an eye on our... Read more
Five To Six Million 10.5-inch iPad Pro Tablet...
Digitimes’ Siu Han and Joseph Tsai report that upstream supply chain shipments for Apple’s new 10.5-inch iPad Pro have been increasing, with monthly shipment volume expected to hit 600,000 units by... Read more
Georgia Tech Students Win Toyota and Net Impa...
Earlier this year, a team of students at Georgia Tech realized that there was a critical gap in transportation services for people who use wheelchairs, and wondered if the solution could be in the... Read more
13-inch 2.0GHz Space Gray MacBook Pro on sale...
Amazon has the 13″ 2.0GHz Space Gray non-Touch Bar MacBook Pro (MLL42LL/A) on sale for $1299.99 including free shipping. Their price is $200 off MSRP, and it’s currently the lowest price available... Read more
Roundup of 15-inch MacBook Pro sale prices, m...
B&H Photo has the new 2016 15″ Apple Touch Bar MacBook Pros in stock today and on sale for up to $200 off MSRP. Shipping is free, and B&H charges NY & NJ sales tax only: - 15″ 2.7GHz... Read more
15-inch 2.2GHz Retina MacBook Pro on sale for...
B&H Photo has the 2015 15″ 2.2GHz Retina MacBook Pro (MJLQ2LL/A) on sale for $1849 including free shipping plus NY & NJ sales tax only. Their price is $150 off MSRP. Read more
21-inch iMacs on sale for $100 off MSRP, save...
B&H Photo has 21″ iMacs on sale for $100 off MSRP, each including free shipping plus NY & NJ sales tax only: - 21″ 3.1GHz iMac 4K: $1399.99 $100 off MSRP - 21″ 2.8GHz iMac: $1199.99 $100 off... Read more
Groupon Survey Finds Families Will Spend One-...
With warmer weather finally arriving in most parts of the country and the school year winding down to a close, Groupon (http://www.groupon.com) asked 1,000 U.S. parents how much time their families... Read more
Panasonic Anounces Toughbook 33 2-in-1 Rugged...
Panasonic has announced the U.S. availability of the Panasonic Toughbook 33, claimed to be the first fully-rugged 2-in-1 detachable laptop that features a 3:2 display. Inspired by the hard-working... Read more
9-inch 32GB iPad Pros available for up to $10...
Amazon resellers are offering new 9″ 32GB iPad Pros for up to $101 off MSRP, starting at $498, including free shipping. Colors may be Space Gray, Silver, Gold, or Rose Gold, depending on the reseller... Read more

Jobs Board

*Apple* Media Products - Commerce Engineerin...
Apple Media Products - Commerce Engineering Manager Job Number: 57037480 Santa Clara Valley, California, United States Posted: Apr. 18, 2017 Weekly Hours: 40.00 Job Read more
Director *Apple* Platform, IS Data Manageme...
…a real difference. Come, shine with us! Astellas is announcing a Director Apple Platform, IS Data Management Lead opportunity in Northbrook, IL. Purpose & Scope: Read more
Director *Apple* ERP Integration Lead - Ast...
…make a real difference. Come, shine with us! Astellas is announcing a Director Apple ERP Integration Lead opportunity in Northbrook, IL. Purpose & Scope: This role Read more
Associate Director *Apple* Platform -- SAP...
…real difference. Come, shine with us! Astellas is announcing a Associate Director Apple Platform -- SAP Security, Risks and Controls Lead opportunity in Northbrook, Read more
Geek Squad *Apple* Master Consultation Agen...
**508241BR** **Job Title:** Geek Squad Apple Master Consultation Agent **Location Number:** 000149-Towson-Store **Job Description:** **What does a Geek Squad Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.