Developer Blog



warning: Creating default object from empty value in /var/www/vhosts/mugginsoft/site/drupal/prod/drupal-6/modules/taxonomy/ on line 33.

Simple Online Help and Help Book Synchronisation

Posted in:

So, I have written a simple, but hopefully effective, html help page for my Cocoa app. I have posted it on my web site and provided a link in my app to access it. The help is all on one page but it's not too large or unwieldy and I like it. Internal links are used to navigate around the page and one click can print the whole thing for those who want a paper copy.

OS X Source - stdlib and Others

Posted in:

The Apple open source site at has a fantastic browsable repository of open source OS X components. Notables are (check for more recent versions on the source site):

libc - C libraries including stdlib

xnu - the base OS X kernel

objc4 - the objective-C runtime

Searching for Strings in Interface Builder

Modifying strings in nib/xib files is made infinitely easier if you remember to user the Strings editor (cntrl-S) available under the Tools application menu.

There is searching of course and several filter options (object class, object name, value etc).


Posted in:

agvtool can be used to bump the versioning info for your app. In particular it can increment CFBundleVersion entries in info.plist files as well as generating C versioning symbols. This can be especially useful if you have a lot of targets in your build as agvtool can increment the bundle version for all of them.

The agvtool executable can be found in /Developer/usr/bin but there is a bash wrapper script in /usr/bin.

Chris Hanson's blog post has lots of relevant info.

To use it just run the command in the project folder:

Enabling Dwarf DSYM Debug Information Format in Xcode

Posted in:

Enabling Dwarf DSYM debugging brings a number of benefits as listed in

Most developers will have Xcode's debug build configuration set up to build for the local architecture will all the deployment options firmly disabled.

When building for release however we want to build for all architectures, we may want the deployment options on and may wish to extract our debug symbols into separate DSYM files.

How to Crash a Cocoa App for Testing Purposes (aka Abnormal Termination on Demand)

Posted in:

Sometimes you need to crash your Cocoa app to analyse its crash behaviour.

Apple offers some guidance on this

#define CRASH_CODE 1
	(void)strlen((const char *)1);

On Leopard with Xcode 3.1.3 and GCC 4.2 it seems that something more is required.

The most reliable way to ensure abnormal termination is courtesy of stdlib.h:


Code Signing for Auxiliary Executables Causes SSL Error kCFStreamErrorDomainSSL

Posted in:

KosmicTask utilises SSL/TLS to ensure the privacy of network communications.

The app also utilises code signing to gain seamless access to the keychain and to permit incoming communications to be routed through the application firewall (see

Debug builds of the application worked as expected and SSL communications were established and operative.

Building for release though was another story. SSL communications failed with error kCFStreamErrorDomainSSL code -9800 (Operation could not be completed).

A Very Simple NSNumberFormatter Currency Subclass

Posted in:

NSNumberFormatter is the class of choice when formatting numeric input for text fields. If you choose to use a currency symbol prefix then the default behaviours can be less than ideal.

If the user inputs the currency symbol then all is well. If not (inputting say 1.50 instead of £1.50) then the formatter raises an error and the user is nagged that a formatting error has occurred.

A simple fix is to subclass NSNumberFormatter and add the missing currency symbol if it is missing. The modified string can then be forwarded to the base class.

Drupal on mac OS X using XAMPP with virtual hosts.

Posted in:

The use of virtual hosts allows us to effectively develop using XAMPP in a way that is similar to final deployment. It also allows for multiple installs of Drupal and permits developing for multiple sites using a single Drupal installation.

In this case we are aiming to set up a development virtual host installation with a URL of www.mugginsoft.local

Make Drupal 6 View Filter Selection Match View Argument

Posted in:

The Issue here is that when filtering a Drupal 6 view using an argument the block filter selection does not match the argument.

Syndicate content