In Dev on
13 October 2008 with no comments
For reference: Aaron Hillegass has an old writeup of how to debug retain counts in XCode (and hence gdb). Not all of it can be applied to iPhone development since there are no debug versions of the core framework to zombify references on release, but the gdb incantation to break on exception raises and @throws is invaluable.
The .gdbinit entries for setting breakpoints on exceptions raises and throws:
fb -[NSException raise]
fb objc_exception_throw()
And of-course the basic rules for managing your autorelease nightmares always apply:
- release instead of autorelease when possible
- After releasing an object, set pointers to it to nil
- Use zombies to hunt down retain/release problems
- Add breakpoints to stop on exceptions
In Dev on
9 October 2008 with no comments
ProjectPlus is a great plugin for TextMate to show Subversion or Git status of files and folders. I'm slowly getting fed up with XCode's quirks and only really still appreciate it for it's ability as a debugger and decent completion support. ProjectPlus helps close the gap, allowing me to see status at a glance while still being in my favorite editor.
The main things still missing in TextMate for a complete switch-over are bitter code-completion for different SDKs, like iPhone and Mac, with different header sets for each version.
(Via Aral Balkan)
In Dev on
23 September 2008 with no comments
Hamster Emporium has a really detailed explanation on how the Objective-C compiler works the register set and how to take advantage of them with that inevitable crash we always introduce.
In Dev on
13 August 2008 with no comments
I always considered selecting a bug-tracker a equivalent to picking your favorite editor. It's highly dependent on your specific, or expected, workflow. Collin's writeup finally triggered me to distill my own thoughts on how I choose a bug-tracker.
There are plenty of comparisons on features, capabilities and problems with bug-trackers and how or why folks prefer one over the other. The main selection criteria I can discern are:
- Cost of ownership
- Workflow customizability
- Integration with other tools
In my various jobs in small and large companies over the years, I've experienced a number of non-hosted solutions, including teamtrack, ddts, bugzilla, trac, devtrack and jira.
I've found that no matter whether you're in a large or a small organization we end up expecting too much from out bug-tracker because we believe our needs are really complex.
This is particularly true in larger organizations that have a lot of process people wanting to enforce the process of the month by making the tools enforce it. While I appreciate this (and the implied mistrust in the users of the tracker), it makes the tracker extremely sensitive to process changes and usage misunderstandings.
So here's my own personal, consulting, small indie-shop approach to picking a bug-tracker. Note this is somewhat biased by a lot of past pain so take it for what it's worth:
- Write down what you think your bug handling process is. Don't look at other systems or approaches, just write down what you expect you need.Unless you run process-organization nirvana I expect your needs to actually be really simple. I know mine is... Open, accept, assign (person and milestone), comment, comment, resolve, close.
- If you have a strong preference for a complex process, are certain your process is not going to change drastically, and it's available in an existing tool, by all means use it. Expect serious pain when your process changes or you try to do something that doesn't quite fit the process "engine".
- How important is it for your system to integrate with other systems. I like anything that makes dealing with bugs more efficient. Email, source code control system and maybe integration with some CRM system in the future. Anything features dealing with bugs better are just solutions looking for problems and we spend a lot of time trying to find those problems.
- Lastly, and most importantly for me, cost of ownership. Since striking out on my own, I've run trac and bugzilla and done self-hosted subversion, git and mercurial based development for a number of both personal and consulting projects. Having to maintain these things long term is not something I enjoy doing and over the months/years wastes time that should've been spent working on revenue opportunities.
You can probably tell where this is going.. If you're small don't give into your IT cravings and just pay for a hosted provider until you outgrow the features you need from them.
I've heard great things about FogBugz, Lighthouse, and am currently starting of with Lighthouse, since I really like the tagged approach to dealing with bugs
Lets see if I prove myself wrong
In Dev on
7 August 2008 with no comments
I was listening to the Mac Developer Roundtable and caught a comment on scan-build which is part of the clang magic. I haven't really spent time on clang, but was intrigued by a clang based static analysis tool that would potentially help highlight bad code-fu.
The site includes pre-built binaries for the command lines, so this was a simple unzip and run on my latest iPhone effort. Found two lacking dealloc declarations out of the box in a well laid out html report. Thanks scan-build and background Roundtable podcasts!
In News on
9 June 2008 with 1 comment
This is the first time I've gone to a conference as an independent developer and since I'm doing iPhone work I'm lucky enough to get to WWDC. What a show guys! I hear the line at the door started at 5am. While I refuse to get up that early I did end up standing in the line to get to the keynote for 2 hours. Lots of good buzz and great folks to meet while you wait for the Steve injection. The keynote was fantastic with the Reality Distortion Field set to 11.
New iPhone with a lower price, GPS, mobileME (which replaces .mac), enterprise integration and application directed network push notification and available in over 22 countries at launch on July 11th.
I can't wait for a newer version of the new SDK to fix some of the shortcomings and to start cranking on some of the new app ideas that've been brewing while I stood in line.
In the mean-time I'll be trying to sponge up as much information as I can to get up to speed with some of the more core animation, video and audio capabilities on both the Mac and the iPhone
In Dev on
24 May 2008 with no comments
While perusing Textmate bundles I found a neat bundle that does searches way faster on any size of projects. Textmate is pretty fast searching across a project but this bundle just rips through a search in the blink of an eye! It's based on ack which is Perl based and given that Perl usually gives me a bad taste in the mouth I'm not sure how far away I should stay from this in case I need to fix something myself. Here's hoping that Henrik keeps up with the bug-fixes!
In Dev on
29 April 2008 tagged iphone with 1 comment
Yes, I've been bitten by it too. I'm trying to download data from a server that uses DNS aliasing to give back host and Apple's resolver library on the iPhone doesn't work right. It manifests itself as "Unknown server error" when trying to open sockets to aliased hosts. Saurik not only describes the problem well but also posts a fix for it which works flawlessly so far.
In News on
1 April 2008 tagged wordpress with no comments
When they say wp-content should be treated specially on the upgrade instructions page, they really mean it don't they
Otherwise a painless install and I love the new features!
In News on
29 February 2008 tagged about, iphone, mobile, programming with no comments
Welcome to the imadjine web-site. We'll slowly be adding more content to this
space as we expose what we're working on. Basically imadjine is a mobile
software group, focused on building great applications for mobile devices. As
part of that there are a number of libraries and functionality that is created
that we'd like to share with the community given that we've gotten a ton out
of it. Stay tuned for the first story and code share