Drupal Queue API example: enqueue in form submit handler, dequeue when cron runs Drupal Queue API example: enqueue in form submit handler, dequeue when cron runs

Posted by jstrecker on 2012.03.14 @ 21:39

Filed under:

Need to store up some items and process them en masse in a cron job? That’s a perfect use case for the Queue API (for Drupal 7+) or the drupal_queue module (the backport for Drupal 6).

Concrete example: One of our consulting clients was using a synchronous webservice for their retail store locator. We needed to create a form where store owners could change whether they’re listed in the store locator. When a store owner submits the form, should she have to wait around while our site sends her change to the store locator webservice? We didn’t think so. So we decided to use Drupal’s Queue API, which lets us save up all the store owners’ changes and send them to the webservice in a batch.

Here’s a simple example of adding items to a queue in a form submit handler and processing them in the next cron run. [more...]

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

Posted by jstrecker on 2012.01.20 @ 21:49

Filed under:

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. [more...]

Announcing: iOS Development on 1 Page Announcing: iOS Development on 1 Page

Posted by jstrecker on 2012.01.03 @ 21:25

Filed under:

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 Reusable Views in iOS

Posted by jstrecker on 2011.10.29 @ 11:28

Filed under:

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. [more...]

Are you sure you want to localize? Are you sure you want to localize?

Posted by jstrecker on 2011.06.10 @ 13:36

Filed under:

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. [more...]

Example of using a UITableView to create a form Example of using a UITableView to create a form

Posted by jstrecker on 2011.03.31 @ 22:38

Filed under:

There are a lot of iPhone/iPad examples out there, but surprisingly I haven’t seen one for a common task – using a table view to create a form. Here’s the source code. [more...]

Example of IOSurfaceCreateMachPort and IOSurfaceLookupFromMachPort Example of IOSurfaceCreateMachPort and IOSurfaceLookupFromMachPort

Posted by jstrecker on 2011.01.27 @ 00:30

Filed under:

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. [more...]

mach_port_t for inter-process communication mach_port_t for inter-process communication

Posted by jstrecker on 2011.01.14 @ 11:14

Filed under:

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. [more...]