One benefit from writing the last progress report was a nice overview of what I've been working on in a small (but not too small) timeframe. Every day I code just a little bit and from my viewpoint it doesn't seem like much, but put it all together over a week or two and they are almost mini-milestones which are fun to look back on.
I like that, so here's another one.
Work on the next release of Acorn (v4.3) continues (and if you want to play along, it's available from the latest builds page).
Since my last progress report, Acorn's raw image import has received a bunch of new things- a new histogram, a new noise reduction slider, better width / height setters, and you can choose the color profile to open it in. I also added a pixel depth option (previously it would just use the highest depth available, which was usually 16 bits per channel).
There were of course other bug fixes, and work on making Quartz Composer filters work better in Acorn was also completed.
Acorn 4.3 has also updated to the latest JSTalk / Cocoa Script framework, fixing memory leaks and adding @include support (sort of like C's #include). In addition to that Acorn also picks up new coscript code which can throw up a dialog box with input- an example of this is available.
The Cocoa Script scripts can now work on bitmap selections as well, thanks to a new scripting API in 4.3. Pixelate Selection.jstalk shows what is involved (it's really just a new method called
applyCIImageFromFilter:shouldClipToSelection:). This new API was prompted by a post from Dr. Drang who made a crazy Keyboard Maestro action to do the same. I thought it should be easier for scripters to write such script, and I knew it would be super easy to implement. So there it is.
Lastly, an update on "Project Oak" (as mentioned in my State of the Meat 2013 post, this my work on fixing all known bugs in Acorn). Instead of giving out absolute numbers for progress, I've set a high point for the bug count. And so based on that number and the work I've done since then, 6% of open bugs have been closed. Since I report little bugs to myself every day, and new ones come in from outside bug reports, and fix them as as I go… I think giving a percentage will be more useful than "I filed 4 new ones and fixed 6, out of 4 billion total". Progress!
Mike Ash recently contributed a nice little patch to FMDB which will call assert() if you try and recursively use FMDatabaseQueue's inDatabase: method. Previously FMDB would just block, and if this was on a background thread you'd be left wondering why work wasn't happening.
(When I originally glanced at the pull request from Mike, I was worried he was attempting to make it so FMDB wouldn't block on recursive calls. And I really didn't want to have to tell him that "no, this is kind of a bad idea" - but then I read the patch and smiled. Mike's a smart guy, I don't know why I doubted him.)