Ad

Our DNA is written in Swift
Jump

Don’t Complain, Fix It!

The worst thing you can do if you are using somebody else’s code is to complain to them via email about the shortcomings of their software. More often than not you can assume that the Open Source code this person put online is a labor of love. And complaining is as close as you can get to trampling on the other person’s feelings about their “baby”.

Hobbyists and Pros alike, you are a developer and if you have any interest in getting improvements for the other person’s software then you should adhere to these simple steps I am laying out for you to follow. This is specific to DTCoreText, but I am certain that the basic principles apply to any other project as well.

Read more

Urban Airship Commander 1.1

We are happy to announce several big improvements on our Urban Airship Commander app. Besides some features that where not ready in time for 1.0 there are also 2 suggestions of users we implemented.

Contrary to popular belief this app is not a game. It is a tool for developers.

Update Feb 25th: The Update is now approved and available on the App Store after 10 days.

Read more

Individual Learning App uses DTRichTextEditor

Stefan Zimmermann of CoSciCo kindly provided me with this testimonial about why and how they licensed DTRichTextEditor for their iLA app.

ILA (CS) is the first incarnation of the iLA platform and is designed with deep learning, easy knowledge sharing and project planning in mind. Well, sure you can also just take notes and “beam” them to a friend or colleague.

Excerpt, organize and share, thoughts, ideas, and knowledge topics in a natural way, – simple and fast, without the interruption of the flow of ideas by having to think how to organise it, first.

Stefan’s own words after the break.

Read more

What to Do When Xcode Beachballs

Apple keeps working on making Xcode more stable all the time. While Xcode 4.6 has much improved in terms of simply quitting on you, people report that more often now they see Xcode just hang.

One method to deal with race conditions in a highly parallelized application like Xcode is to add semaphores and locking. Unfortunately locking is not the end-all of all all Xcode problems, even with a liberal sprinkling. A blocked main thread is a blocked main thread.

Spinning Beach Ball

Here is what you should do next time you encounter the beach ball of doom.

Read more

UIView Background Queue Debugging

Over the the past few days we’ve been chasing an elusive bug that was testing the limits of our sanity. We repeated the following conversation about 3 times:

“Hey, we did some changes. The jumping views should not occur any more. We didn’t see it even after 2 hours of testing”
“I’m still getting it, right after launching the app.”
“&”§%, $%&% &!”

I would bet that this happened to you to, especially when working with background queues for updating some data and then updating UI to reflect the new information.

Similar to “did you reboot your PC?” being the standard answer to 99% of Windows problems, we iOS developers found that “are you maybe calling UIView methods on a background thread?” solves the Lion-share of problems with views. Here’s a convenient way how you can quickly find these elusive issues too.

Read more

Cocoanetics Design Update

The theme I’m using on Cocoanetics.com has gone to version 1.6.6 which is to say that over the past 2 years our designer has done an awesome job to polish the look. I think it is about time that I give a shout-out to Jeremiah Tolbert from Clockpunk Studios who is in charge of this all.

Read more

Xcode 4.6 Libtool Issues

The updated linker and libtool that come with Xcode 4.6 apparently contain some changes that are causing problem when building projects that link and depend on static libraries. One appears to be a bug, the other is an annoyance. Fortunately we found workarounds for both.

Update: Not a bug after all. Rather a “learning experience”. Details below.

Read more

Removed Affiliates

For a long time I had links to Sensible Cocoa, BinPress, Dropbox and Mobfox in the footer of every page on Cocoanetics.com. I also had two entries for other people’s components in my parts store section that linked to another company’s store via affiliate links.

I had established the links because I was hoping to earn a bit of passive income from these links, with the exception of Dropbox where I wanted just wanted to increase my free storage. This was the only successful part, I raised my storage to just under 25 GB over the past year.

Read more

72.009 DPI

When creating image files via CGImageDestination if found something weird. I’m setting the DPIHeight and DPIWidth fields in the meta info to 72. When outputting as PNG format there are some programs that will show the image resolution as 72.009 DPI, whereas TIFF and JPEG for example would display as 72.

Turns out that this is neither a problem of CGImageDestination, libpng nor any specific viewer app. The problem is in the PNG specification.

Read more

3 Mac Tidbits

Here are three small pieces that I discovered while working on my second major Mac app. It’s for internal use by a client, so I cannot tell you about it, but it is a great place for me to learn more about the various oddities you find when developing for the Mac platform.

Read more