Author Archives: Graham

About Graham

I make it faster and easier for you to create high-quality code.

On advertising’s place in the tech industry

Dave Winer said the way is open for a non-ad-supported tech sector: The tech industry has been absorbed by the ad industry, and vice versa. However, there is, imho, still room for a tech industry that is not merged with … Continue reading

Posted in Business | 4 Comments

Why we don’t trust -retainCount

I’m pretty sure @bbum must have worn through a few keyboards telling users of StackOverflow not to rely on the value of an Objective-C object’s -retainCount. Why? When we create an object, it has a retain count of 1, right? … Continue reading

Posted in code-level, Foundation, iPad, iPhone, Mac | Comments Off on Why we don’t trust -retainCount

Synthesized ivars are private

Perhaps this isn’t news. Perhaps it doesn’t matter because you’ve provided public accessors. But here are the results anyway. #import <Foundation/Foundation.h> @interface A: NSObject @property (nonatomic, assign) int a; @end @interface B: A – (int)differentGetter; @end @interface C: NSObject @property … Continue reading

Posted in Uncategorized | Comments Off on Synthesized ivars are private

Is it an anti-pattern to use properties everywhere?

I’ve seen questions about whether to always provide accessors for ivars, and recommendations, such as in akosma software’s ObjC code standards, that say Whenever possible, do not specify ivars in the header file; use only @property and @synthesize statements instead. … Continue reading

Posted in code-level | 10 Comments

Some LightReading about mobile app security

[This article was co-written with @securityninja] If mobile app security is failing, it’s up to the security industry, not developers, to repair it. An article published yesterday at security news site DarkReading announces “Developers not applying secure development life cycle … Continue reading

Posted in Uncategorized | 2 Comments

Building an object-oriented dispatch system in Objective-C

iTunes was messing about rebuilding the device I was trying to use for development, so I had time over lunch to write a new message dispatch system in the Objective-C language. “But wait,” you say, “Objective-C already has a message … Continue reading

Posted in code-level, OOP, Uncategorized | Comments Off on Building an object-oriented dispatch system in Objective-C

On privacy, hashing, and your customers

I’ve talked before about not being a dick when it comes to dealing with private data and personally-identifying information. It seems events have conspired to make it worth diving into some more detail. Only collect data you need to collect … Continue reading

Posted in Business, Crypto, Data Leakage, Privacy, Responsibility | Comments Off on On privacy, hashing, and your customers

On home truths in iOS TDD

The first readers of Test-Driven iOS Development (currently available in Rough Cuts form on Safari Books Online: if you want to buy a paper/kindle/iBooks editions, you’ll have to wait until it enters full production in a month or so) are … Continue reading

Posted in books, code-level, TDD, tool-support | 7 Comments

Security: probably doing it wrong

Being knowledgable in the field of information security is useful and beneficial. However, it’s not sufficient, and while it’s (somewhat) easy to argue that it’s necessary there’s a big gap between being a security expert and making software better, or … Continue reading

Posted in software-engineering | Comments Off on Security: probably doing it wrong

Irresponsible tolerance

Context @unclebobmartin said: One of the bad behaviors that destroys projects is “irresponsible tolerance”. Tolerating what you know you should fix. This triggered a discussion between @phil_nash and myself. As far as this got on the Twitters, we agreed that … Continue reading

Posted in Uncategorized | Comments Off on Irresponsible tolerance