tweet @echoz email jeremy@ornyx.net
Lately, I’ve been living by some mantras when it comes to dealing with code and large code bases. Not sure if its for everyone, but it works for me.
This mantras of course pertain to Objective-C and the Mac in general.
Thoughts comments? Eager to hear about yours.
Made a static library project over the weekend to build libspatialite for iOS. Includes GEOS and PROJ though they have to be actually linked into and set not to be omitted to get those into the libspatialite target.
Objective-C Enhancements
OS X v10.8 includes the following enhancements to Objective-C:
Default synthesis of accessor methods for declared properties
Type-safe enums
New Core Foundation attributes that allow you to specify custom retain semantics
Object literals for
NSArray,NSDictionary, andNSNumberStreamlined object subscripting
Important Beginning in OS X v10.8, garbage collection is deprecated.
Can’t help be reblog this. Bloody marvelous.

Its been about 3 weeks, but I’m finally done with a piece of work that will be used (hopefully) in the iCloud capable version of Mindnode.
MNCoder is what I’d call a clever hack using NSKeyedArchiver and NSKeyedUnarchiver to help with portability of certain Apple classes between iOS and the Mac. If you worked on both platforms, you’d know that iOS has its own implementation for colors and fonts. With iOS 4 this has been extended to NSAttributedStrings that take Core Text attributes instead of the nicer AppKit additions to NSAttributedStrings.
While I’d admit this is a somewhat complicated way of going about things, 2KSLOC to be exact, I figured this was the most straightforward and intuitive way to help people understand and possibly contribute additional code in the future.
What MNCoder does is that it uses a neutral platform independent NSCoding compliant object to store the base attributes that is needed to reconstruct an equivalent on either platform. Using #ifs, the object will give you the appropriate object. Adding to the system is NSCoder which helps with the finding and replacement of objects at runtime when doing serialization.
Its pretty much like old school language translation. Translate your source language into a intermediate version and then translate that to the target language. Nothing too fancy and easily understood.
The work is released under a BSD license which Markus has nicely given his approval of so here’s hoping it’ll have more contributors as it goes along.
Nice side effect of this is that I’ve had extensive time with Core Text and I’d say its pretty fun.
I am a decent programmer. I know a decent amount of computer science theory, I can type correct code fairly easy. I don’t let my classes expand too much. But I still struggle some with math, and I have a tendency to have too many cross-dependencies in my code.
I used to think I was an awesome…
Before you engage a developer to build a mobile app for you, consider the following points,
If you have answered yes to the above, here’s some cost saving advice.
Don’t do it.
When designers get bored. Or a more sane way to do tab bars.
For the people working with code that has to do with video.