Our DNA is written in Objective-C

Associated Objects

There’s a neat feature in the Objective-C runtime that very few people know about and even less dare to use them. Undeservingly so, because they are very useful. I’m referring to Associated Objects.

In this recipe I’ll show you how to use them and have a great example of where I used them myself … for the first time.

Read more

1 Infinite Loot, Cupertino

There is one thing that you can only get in Cupertino: Clothing and merchandise with an Apple logo. With Apple being my favorite brand is probably quite understandable that will want to be wearing the bitten Apple whenever I can… as opposed to Nike which I prefer over other sports brands.

With Nike I like the simplicity of the Swoosh, that only gets beaten bit the Apple because Apple because of the simple fact that I owe my livelihood to the company from Cupertino.

Being in San Francisco naturally triggers the “Pilgrimage Syndrome” where people – similar to birds – seem to need to migrate South to settle at the Apple Company Store in Cupertino to fill the need for spending money on the mentioned merchandise.

Read more

Scouting Ahead of WWDC

When traveling to the US for WWDC I learned that I need a few days to adjust my sleeping cycle so I added the week before the – then rumored – date to my itinerary. This provides me with some opportunities to scout ahead, meet local developers and catch up on the Movies.

Read more

Mine is Longer than Yours

Everybody is shortening URLs these days. While this saves spaces in Tweets it has several disadvantages for the user: you don’t see the domain that this link refers to. And you know that for certain clicks on the short URL are recorded and data-mined. Just have a look at my public bit.ly timeline. I check there often … pure vanity.

You might remember my hobby project Tweet Curator which allows the filtering of tweets that have certain domains. Now the next extension of this concept would be to also expand those pesky short URLs and use the referred domains for blocking too. There is NO hiding any more!

Read more

Let’s Bounce!

You probably have seen it hundreds of times, it’s become so natural to you that you probably don’t consciously notice it any more. I’m speaking of the bouncing of icons on the dock in OS X. The method how those pesky little critters (aka “Icons”) try to win your attention. Me! Me! ME!

This animation is probably the one you see the most in your day-to-day business working on code on a Mac. Yet I have never seen anybody using it in an iOS app. Why? It’s not that this animation is the sort of Clippy that everybody hopes to forget about some day. It’s something that well established and we know what it means.

When I asked around (on Twitter) and looked around (on Google) was only found a couple of “spring loaded” formulas, but nothing concrete that would enable me to get this animation added to my app. So I researched it and now I’m happy to present to you … 3 Methods of bouncing.

Read more

Twitter Curator Demo

I get so fed up with how YouTube mangles the screen recordings of QuickTime that I purchased Screenflow. I wanted to show off my specialized Twitter search tool that I’m working on besides of my regular projects. A “Hobby” if you will.

I would very much appreciate if you would take a few minutes to watch it and then let me hear your thoughts. If you have some ideas for improvements then don’t hesitate to let me know.

Read more

Linguan 1.1

Linguan 1.1 brings the long-awaited support for localizing XIB files. While it has proven a boon for iOS developers where you generally can easily set the UI strings from code, Mac developers where left in the rain because there you typically have way more strings in the XIB files making it impractical to localize everything in code.

For the immediate first version we are remote-controlling ibtool which needs to be installed with the Xcode Commanline Tools and the path properly set up.

sudo /usr/bin/xcode-select /Applications/Xcode.app/Contents/Developer

… or wherever your Xcode.app is installed.

Read more

DTCoreText: Custom List Prefixes

A while ago Austrian development company Antiloop approached me. They needed to have custom list prefixes in DTCoreText as the default bullets didn’t cut it for their purpose. They had sponsored new features for DTCoreText in the past, a shining example of a company that is willing to invest in the Open Source technologies they use.

There is no provision in CSS to achieve this directly, but a well known workaround exists using the li:before pseudo-selector together with a content attribute and list-style:none. This omits the list prefix, but substitutes the contents of content.

To get the unicode double chevrons right (U+00BB) you would specify this style:

ul {list-style-type:none;}
li:before {content:"\00bb ";}

Note the use of the non-standard -webkit-padding-start which specifies the left padding for lists in Safari. The content attribute apparently is containing unicode sequences with a single back slash.

Read more

Radar: NSFetchedResultsController does not get refreshed for added relationship

This was quite a head-scratcher for me today. So I documented it as a Radar (rdar://11541277) because it just feels wrong to me. If there are reasons for this behavior I was unable to find them documented.

Please let me know via Twitter or in the comments if you have a good reason for this or know of any documentation related to this.

Read more

iWoman 2.0.7

This is yet another maintenance release aiming to fix some time zone problems users were having.


  • Fixed a bug that could lead to an incorrect cycle date showing on the wheel view
  • Changed: No both the Wheel View and the Calendar View go to Today when resuming from background

The first hopefully is the last bug fix related to the time zones. Internally all dates are now absolute. That means they won’t change if you travel to somewhere that has a different time zone than where you are usual at.

The second item was much requested because it would save the user from having to tap the Today button upon returning to the app from background.

Update June 1st: the update was approved and is now on the app store.