The pseudo-science and pseudo-feminism of Women Don't Ask

“You should read this book,” a friend told me. “It says that women don’t make as much as men because they don’t negotiate their salaries.”

The book was Women Don’t Ask: Negotiation and the Gender Divide, by Linda Babcock and Sara Laschever, published in 2003. The notion that “women don’t make as much as men because they don’t negotiate their salaries”, it turns out, is a myth — a myth spun from the sloppy science and sexist assumptions of Women Don’t Ask.

Announcing: iOS Development on 1 Page

When you’re getting started with iOS development, it’s hard to figure out those first steps. What developer tools do you need? What are some good tutorials to start with? Where to begin delving into Apple’s thousands of pages of documentation?

That’s why I created iOS Development on 1 Page — a not-overwhelming guide for iOS newbies.

Is there any essential info about iOS development that should be added to iOS Development on 1 Page? Let me know!

Reusable Views in iOS

Say you want to create a UIView that you’re going to display in multiple places in your app.

Maybe you want to design a custom UITableViewCell or AQGridViewCell. Or maybe you want to create a view controller that can be displayed by several different view controllers in your app. Or maybe you want to create a custom UI widget that shows up multiple times in a view.

Does this mean you have to make the view programmatically? Is it time to break out the setFrame and the addSubview and the setTextColor and the addTarget:action:forControlEvents:?

Nope! You can still design your views in Interface Builder. Here’s how.

Are you sure you want to localize?

It’s a wonderful fact about the world that humans have thousands of living languages. And a wonderful fact about many software development environments that they provide ways to create versions of applications localized into the most common of those languages. But before localization (or should I say world-readiness) sweeps you off your feet, let me tell you about some unexpected difficulties with Kineme’s first localized application.

Example of IOSurfaceCreateMachPort and IOSurfaceLookupFromMachPort

The IOSurface framework lets you pass a reference to an IOSurface — a kind of pixel buffer — from one process to another. Here’s an example of how to pass an IOSurface through a mach port using the functions IOSurfaceCreateMachPort and IOSurfaceLookupFromMachPort.

mach_port_t for inter-process communication

Mach ports are a way for processes to communicate in Mac OS X. (Other mechanisms for inter-process communication include distributed objects and sockets.) A mach port is an endpoint of a communication channel. If 2 processes hold endpoints to the same communication channel, then one process can send messages to the other.

Mac OS X provides wrappers around mach ports — NSMachPort and CFMachPort. But sometimes you have to drop down to the native mach_port_t API.

Don’t do this on whim.