Changes.app ships!

Posted February 19th, 2008 by Ian Baird
Categories: General, Indie Development, OS X

Changes, my new file comparison and directory differencing app for OS X, has shipped today! Check it out at http://changesapp.com/. A hearty thanks to all of the beta testers, colleagues, and patient family who made this possible.

qgit.app: A Qt-based Git Repository Viewer for OS X

Posted February 12th, 2008 by Ian Baird
Categories: General, Git

Today I finally convinced qgit to generate a universal binary for OS X. This is unsupported software, but it appears to work fine for me on i386 and ppc 10.5.2. It should also work just fine on 10.4. This is an awesome little utility for viewing patches, diffs, and branches inside of a git repository.

Hope you find it useful. Download qgit.app.

Favorite (Belated) CARS Moment

Posted February 1st, 2008 by Ian Baird
Categories: General

I’m pretty new to the Mac development scene, so I can’t dig down and grab a favorite CARS moment, so I’ll just say it was fun chatting with John Moltz at MWSF this year at the W bar in San Francisco. Too bad he’s packing it in before I’ll get a chance to really get into his work. Quitter.

Selected Hacking Music

Posted January 25th, 2008 by Ian Baird
Categories: General

Mexican Institute of Sound:“A Girl Like You”

Goldfrapp:“Strict Machine”

Club Thievey

Posted December 31st, 2007 by Ian Baird
Categories: General, Indie Development

While you’re enjoying the tail-end of the holidays with family and friends, you might wish to take a moment and head over to Club Thievey, a charity push setup by the indomitable Mike Lee in aid of the Madagascar Lemur. My company, Skorpiostech, Inc., contributed to the cause and it makes a great year-end tax write-off. Plus, if you contribute $100 or more, Mike will send you a plush lemur!

So head over there and support a great cause! After you do that, head to The Changes Site and register for your beta license.

Changes Beta Available

Posted December 31st, 2007 by Ian Baird
Categories: General, Indie Development, OS X

Get it while it’s hot at the Changes website.

Brawndo - The Quicklook MUTILATOR

Posted December 20th, 2007 by Ian Baird
Categories: General, OS X

I was surfing the web looking for dumb stuff and ran across the Brawndo site. Noticing that a new logo was available, I quickly downloaded it and observed that the Dock proceeded to crash, restart, crash, restart, and so on. Thinking it was just another temporary “Leopard has gone batshit insane” moment (I’ve experienced more than a few of these), I rebooted the box. Imagine my surprise when after rebooting, the Dock continued to crash and restart.

First order of business: stop the Dock from crashing. I headed to the Dock.app folder and renamed the executable within to Dock.old. After doing this I was finally able to attach gdb to it and grab a backtrace from the crash:

#0  0x95077680 in objc_exception_throw ()
#1  0x91760108 in -[NSObject doesNotRecognizeSelector:] ()
#2  0x9175e704 in ___forwarding___ ()
#3  0x9175e998 in __forwarding_prep_0___ ()
#4  0x91687ba4 in CFArrayAppendValue ()
#5  0x95581e2c in storeDataInXMPDictionary ()
#6  0x96b4e308 in xmlParseAttributeType ()
#7  0x96b22be4 in xmlParseElement ()
#8  0x96b237c8 in xmlParseContent ()
#9  0x96b227fc in xmlParseElement ()
#10 0x96b237c8 in xmlParseContent ()
#11 0x96b227fc in xmlParseElement ()
#12 0x96b237c8 in xmlParseContent ()
#13 0x96b227fc in xmlParseElement ()
#14 0x96b237c8 in xmlParseContent ()
#15 0x96b227fc in xmlParseElement ()
#16 0x96b237c8 in xmlParseContent ()
#17 0x96b227fc in xmlParseElement ()
#18 0x96b1fbf8 in xmlParseDocument ()
#19 0x96b1d95c in xmlSAXParseMemoryWithData ()
#20 0x95580778 in readXMPProps ()
#21 0x955a2d10 in readXMPData ()
#22 0x955a0708 in initImageJPEG ()
#23 0x95572eb4 in makeImagePlus ()
#24 0x95577c74 in CGImageSourceGetPropertiesAtIndex ()
#25 0x95577ba8 in CGImageSourceCopyPropertiesAtIndex ()
#26 0x94fb9b70 in _QLCreateThumbnailWithImageSource ()
#27 0x94fba138 in _QLCreateThumbnailWithImageIO ()
#28 0x94fbe8e4 in QLThumbnailRequestSetImageAtURL ()
#29 0x94fbd44c in _QLImageGenerateThumbnailForFile ()
#30 0x94fbdf34 in _QLThumbnailRequestDispatch ()
#31 0x94fb7090 in _QLThumbnailGetImageIfNecessary ()
#32 0x94fb7370 in QLThumbnailCopyImage ()
#33 0x94fb744c in QLThumbnailImageCreate ()
#34 0x000acc4c in ?? ()
#35 0x912deda0 in __NSThread__main__ ()
#36 0x92614bfc in _pthread_start ()

Hmm, I see Quicklook and some Quartz jpeg loading stuff in there. Wonderful. Time to use fs_usage and see which file was causing the grief.

“brawndo_logo.jpg”

No way. This is just too funny. Filed as bug rdar://problem/5657300. Head to the brawndo site to download the file for yourself, if you dare. Anything which uses Quicklook to generate image thumbnails will crash and burn on this file.

Postscript: I realize that this is probably a Quartz issue - however Safari doesn’t blow chunks when it tries to load the file and I’m not going to dig any deeper.

Post-postscript:Wolf dug deeper.

Changes.app - Twas the week before beta…

Posted December 14th, 2007 by Ian Baird
Categories: Cocoa, General, Indie Development, OS X, Uncategorized

Keep your eyes on http://changesapp.com/ for more news. I’ll be posting details on how to get your piece of the beta action soon.

XcodersPhoenix Dec ‘07 Redux

Posted December 14th, 2007 by Ian Baird
Categories: Cocoa, Indie Development, OS X

Thanks again to everyone who showed up for the meeting, it was loads of fun!

Here’s the presentation I promised to post:

Objc2.0 Presentation.key.zip


For Brent:

Check out http://www.iecc.com/gclist/GC-algorithms.html. It defines write-barriers and read-barriers in the context of Garbage Collection.

Going Dark…

Posted November 25th, 2007 by Ian Baird
Categories: General, Indie Development, OS X

First, I apologize to anyone still reading my blog. I haven’t fallen off the face of the Earth, I’ve just been incredibly busy working on my next app. I should have some news very soon, with a public beta program in December. If you’re interested in participating in this beta, please send an email to ibaird*at*gmail*dot*com with a Subject line of “Changes Beta - I Want To Play Too”. I’ve got a couple more weeks left in the code mines before this one is ready to ship.

Second, I must comment on an interesting situation which I have found myself in. It appears that someone who I used to think was an interesting guy, intelligent, and worth corresponding with has gone off the deep end. Unleashing a diatribe of incredible vitriol against Jon Wight and Dan Jalkut due to real or perceived flaws in debating semantics or software quality doesn’t convince the other party or fix the flaws in the product, it only makes you look like a tool. Tacit approval for black-hat activities, given implicity or explicitly, is also not above-board behavior. I have lost any bit of respect I had for Rick Downes, and for that I am saddened.