Erica Sadun

Erica Sadun holds a PhD in Computer Science from the Georgia Institute of Technology. She has written, co-written, and contributed to almost two dozen books about technology, particularly in the areas of programming, digital video, and digital photography. An unrepentant geek, Sadun has never met a gadget she didn't need. Her checkered past includes run-ins with NeXT, Newton, and a vast myriad of both successful and unsuccessful technologies. When not writing, she and her geek husband parent three adorable geeks-in-training, who regard their parents with restrained bemusement.

Eight Great Ways to Get the Most from Your Zune Eight Great Ways to Get the Most from Your Zune
by Erica Sadun
December 2006
Ebook: $7.99

Modding Mac OS X Modding Mac OS X
by Erica Sadun
September 2004
Print: $24.95

Recent Posts | All O'Reilly Posts

Erica blogs at:

OS X Install FAIL

April 13 2009

Eric Mock provides today's "Chuckle of the Day". How long does it take to install iDVD? Maybe you should go get a few thousand cups of coffee. read more

OS X Tip: Opening header files from the command line

April 13 2009

Want a quick tip about searching for header files from the command line? Here's a how-to you can use. read more

iPhone Dev: IOKit - The Missing Public Framework

April 13 2009

A lot of fuss has been made about Apple's public and private frameworks. Did you know that there's actually a public framework that you're not allowed to use? Here are the facts. read more

Disabling the Digg Bar

April 13 2009

If you've been caught up with the controversy about the new DiggBar and its attempt to subvert traffic, here's a quick and simple way to disable it for your Digg account. read more

Self check-out fu

March 13 2009

Do you find yourself using those self check-out machines more these days? Do you find yourself struggling with already filled bags and no place to put more purchases? Here's a quick secret to better check-out. read more

Pad your Apple Store order to over $50

February 27 2009

Want to pad your Apple Store purchase to get over that magic $50 free shipping threshold? Here's how. read more

On Vibration

January 23 2009

Making an iPhone vibrate requires nothing more than a simple call to Audio Services. Deciding on when your application should buzz is a different matter. The code for producing that short buzz effect is this: read more

Bring Airplane Mode control back to life

January 16 2009

At some point, my apmode utility got dropped from Erica Utilities and a number of people, particularly my pal Pytey, asked if I could find some time to bring it back to life. Last night, I decided to see if I could put this together using 2.x technology after having… read more

Thinking about table selection: Persistent or Active?

January 09 2009

A colleague recently had his application rejected from App Store because he used what I can only call a noun-verb approach. He allowed items in the table to be selected, and highlighted upon selection, and then provided buttons that used that choice to perform an action. His application was rejected,… read more

Defining legal input characters

January 02 2009

I sometimes use a little trick to ensure that a UITextInputField only accepts a certain subset of characters. Say for example, you want to ensure that a user enters only letters and spaces. A UITextField delegate can catch each character as its typed and decide whether to add items to… read more

Useful Core Graphics functions

December 26 2008

Last week, I introduced several handy utilities that let you convert standard Core Graphics structures to and from strings. This week, I thought I'd continue to explore utility functions, moving on to ways you can work with points and rectangles for on-screen calculations. Like the string utilities, these are functions,… read more

Converting Points and Rectangles to Strings and back

December 19 2008

Two core graphics structures, the CGRect and the CGPoint, play a large role in iPhone development. They are used to position items on-screen and to set their size. Every time you use a UIView, you can work with its frame, its center, and its bounds--all of which use these two… read more

Converting Points and Rectangles to Strings and back

December 19 2008

Two core graphics structures, the CGRect and the CGPoint, play a large role in iPhone development. They are used to position items on-screen and to set their size. Every time you use a UIView, you can work with its frame, its center, and its bounds--all of which use these two… read more

Thoughts on AVFoundation

December 12 2008

In the beginning, or at least the iPhone's beginning, there was Celestial. It offered a fabulous QuickTime-esque approach to handling media of all kinds. Of course, this was back in the days of the first jailbreaks and there was no official SDK. When the SDK finally did roll around, its… read more

Thoughts on AVFoundation

December 12 2008

In the beginning, or at least the iPhone's beginning, there was Celestial. It offered a fabulous QuickTime-esque approach to handling media of all kinds. Of course, this was back in the days of the first jailbreaks and there was no official SDK. When the SDK finally did roll around, its… read more

The case of the Missing MapKit

December 05 2008

While wading through the new 2.2 Frameworks, I suddenly noticed that MapKit, once a Private Framework was missing in action. MapKit, which was available until SDK 2.1, offered all kinds of utterly yummy features including Trip Players, Traffic tiles, Route Views and more. So what happened to MapKit? read more

The case of the Missing MapKit

December 05 2008

While wading through the new 2.2 Frameworks, I suddenly noticed that MapKit, once a Private Framework was missing in action. MapKit, which was available until SDK 2.1, offered all kinds of utterly yummy features including Trip Players, Traffic tiles, Route Views and more. So what happened to MapKit? read more

Locating, tagging, and retrieving views

November 28 2008

Last week, I wrote about exploring subviews both of the user-added and Apple-created varieties. Many GUI components contain view classes that are hidden from the developer but are composed of perfectly standard components. read more

Locating, tagging, and retrieving views

November 28 2008

Last week, I wrote about exploring subviews both of the user-added and Apple-created varieties. Many GUI components contain view classes that are hidden from the developer but are composed of perfectly standard components. read more

View Spelunking Part 1: Exploring subviews and layout

November 21 2008

It's often helpful to take a look at your UIView hierarchy; and when I say "look", I mean all the way down. You can just as easily look at the component subviews that comprise on-screen objects like buttons, switches, and sliders, as you can at the UIImageViews and UIButtons that… read more

View Spelunking Part 1: Exploring subviews and layout

November 21 2008

It's often helpful to take a look at your UIView hierarchy; and when I say "look", I mean all the way down. You can just as easily look at the component subviews that comprise on-screen objects like buttons, switches, and sliders, as you can at the UIImageViews and UIButtons that… read more

The Joys of Vertical Audio

November 14 2008

One of the things I hate about the Media Player framework is that although it offers easy-to-use audio playback, it does so horizontally. Users have to flip their phones onto the side and access the playback controls in landscape. It's not all that hard to force Media Player into portrait… read more

Hunting down Info.plist Preferences

November 07 2008

I've spent some time recently trying to hunt down items for use in your Info.plist files. The natural place to look for these is the SpringBoard executable in the iPhone's Core Services folder. I ran this file through a strings filter, looking to see if I could find groupings of… read more

Recovering multiple touches

November 01 2008

A view that handles multiple touch points must announce itself. Add the isMultipleToucheEnabled handler and have it return YES. Doing so allows your touch methods (touchesBegan, touchesMoved, touchesEnded) to work with several touchpoints at once. read more

Creating a Full-Screen Camera Preview

October 24 2008

I'm not big on the whole Image Picker Camera interface. I hate how slow it is and how it prevents you from scraping the screen. So here's my work around. In the following code, I scan down the UIImagePicker presentation to find my way to the actual preview window. read more

Timely UI Updates

October 17 2008

Laggy UI updates are a frequently occurring problem on the iPhone. With operationally intense work, your GUI may not always keep sync with your requests, particularly when you try to update status information to let the user know how things are going. read more

Programming with Safety Scissors and Glitter Glue

October 10 2008

Although the NDA is on the way out, not all is restored to sparkly brightness in the world of the iPhone SDK. Developers must still deal with day-to-day limitations built into Apple's development environment. read more

A proposal for SDK-compliant copy & paste

October 03 2008

This morning, I had one of my d'oh moments: finally figuring out exactly how to do inter-app copy and paste without breaking SDK rules. It basically goes like this, in a similar fashion to the Core Location service I wrote about a few months ago: read more

Creating an iPhone-based Web Service: Part 3

October 03 2008

Over the last two weeks, I've shown you how to create a socket to listen for web requests and how to produce an artificial index.html file that advertises the files you're willing to serve from your iPhone. Today, I'll wrap things up by adding error pages and the actual file… read more

Goodbye NDA

October 02 2008

Goodbye NDA and welcome to the age of open collaboration. Yay. read more

Creating an iPhone-based Web Service: Part 2

September 26 2008

The iPhone's "no disk access" policy shouldn't bar you from sharing your application's files with the world at large. Last week, I showed you how to build a listening socket that polled for requests on a random port. This week, it's time to parse those requests. read more

Creating an iPhone-based Web Service: Part 1

September 19 2008

The iPhone provides no disk access. The backup mechanism hides your files into mdbackup archives. Apple disabled attachments for email. So what do you do when you want to share your data with the world. Creating your own web server is one way to provide a connection between your iPhone… read more

Sandbox: Think like Apple

September 12 2008

Apple allows read access to nearly the entire iPhone file system. This is a mixed blessing. Your Application can read that data -- but it shouldn't. Apple has been rejecting apps that stray outside their sandbox. From the various rejection letters that I've seen, Apple cites non-specific "violations". These violations have… read more

Uncovering Notifications at Run Time

September 05 2008

Quite a while back, I posted about uncovering selectors at runtime. Detecting selectors allows you to reverse engineer the way Apple uses delegation calls to communicate between objects and clients. Delegation is a key way that objects communicate. Another way is intra-application notification. As with selectors, you can uncover notifications at… read more

Scraping AppStore Reviews

August 28 2008

I know I promised last week to post about intra-app notification, and I'm still planning to but after chatting with Ĝivind Kjellnĝ over email, I decided to change directions for a little while. I'll get back to notifications but for today, I'm going to show you how to access your… read more

SDK Code Samples at iDevKit

August 28 2008

iPhone developer Mxweas (author of mxtube) writes "I made a forum for iPhone SDK and Toolchain development called idevkit.com. There are tons of code samples already up and it currently has about 460 members. Feel free to check it out." read more

Finding iPhone inter-app notification names

August 22 2008

A few weeks ago, I wrote about listening to iPhone inter-application notifications. Several readers contacted me, through the post comments and through private mail, asking if I could explain how to create the list of notifications that was omitted from the original post. So today, I'm going to walk you… read more

Retrieving Device Information

August 15 2008

As the open iPhone toolchain reveals, Apple has supplied a limited device-specific information class. You can retrieve far more information from your iPhone through its IO Registry. As on the Macintosh, the IO Registry provides a great deal of hardware specific information, which can be queried and used by your… read more

Tweeting

August 08 2008

So today, keeping in the theme of posting useful code snippets that do not rely on privileged SDK calls, let me show you how to Tweet. The API itself is really simple: you provide a user name, password and a Twitter message. What complicates this from an iPhone point of… read more

Forensics Seminar/Workshop

August 05 2008

"Hey Erica, I was hoping you could help get the word out about a forensics seminar and workshop I am giving in Boston this fall." read more

iPhone Notifications

July 31 2008

Listening to notifications isn't hard. Just call CFNotificationCenterAddObserver and add your application as a listener. Unfortunately, unlike standard notification centers, the Darwin forbids eavesdropping. You must specify exactly which notification token you want to listen for. read more

iPhone 2.1 SDK goes live. Beta 2.1 firmware available

July 25 2008

Head on over to the iPhone developer site to get your fresh hot copy of the iPhone 2.1 sdk and beta firmware. It's unclear whether the SDK beta NDA agreement still applies to this new release. In other news: pwnage is now out of date. read more

Pwnage, Jailbreak and now...what?

July 24 2008

Now that the iPhone has been jailbroken, may people are asking "So now what?" What use has the jailbreak been, especially considering the easy advantages of App Store distribution. The answer to that depends on how you use your iPhone. read more

iPhone Backups Part 5: Even more about Backups

July 18 2008

The past few days, I've returned to playing around with backup files. Among other things, I discovered that the name of each backup file is actually the SHA1 hash of its path. So there really is a logic between the mdbackup naming and the files they represent! read more

Waiting on Apple

July 11 2008

When it comes to the iPhone, supply and demand principles are surely in action. iPhone developers, who have been waiting for Apple to throw open the beta program to all comers may have to wait a little longer. As of today, Apple had made no announcement. Many developers have been… read more

Monetizing Location with GeoMarketing

July 03 2008

The iPhone's on-demand positioning may soon connect developers to an entirely new revenue stream: Geomarketing. New vendors are developing "location-aware ads" that leverage your user's location. Geomarketing bring offers for goods and services directly to the consumer, wherever he or she is, in a way that traditional ads cannot read more

iPhone as Pedometer

June 27 2008

A short while ago, I discovered that Wii Fit could be used to track my progress as I walked on a treadmill. Wii Fit has a game where you jog in place in front of your TV to travel through a virtual landscape. Instead of bouncing up and down on… read more

Accessing iPhone-Specific Data from Web Pages

June 20 2008

When Apple announced iPhone's Core Location a lot of people got really excited. Since then, I've heard from any number of developers who would like to use core location and other iPhone-specific features in web-based applications and were wondering how to approach this. This has got me to thinking for… read more

The eternal hunt for royalty-free media

June 13 2008

The iPhone development excitement continues on as a consequence of WWDC and the possible 11 July launch of AppStore (and Firmware 2.0). So let me point out a huge business opportunity. If you're an audio or graphics designer, now would be a great time to hit the market with your… read more

Provisioning: You know what I'm talking about

June 11 2008

Yes, the NDA is still there. So here is the fix, without revealing anything about what I'm talking about. It will either be helpful or not needed. read more

Recent Posts | All O'Reilly Posts

Erica Sadun