Archive for December, 2005
Cocoa
Veering wildly for a post or so, I’m working on updating my image management tools. There are several prongs to this work: better quality thumbnails/web graphics, better metadata management, and easier publishing.
I’ve been working on the first two prongs for a while, on and off since CoreData and CoreImage were released with Tiger (summertime). I’ve finally spent enough butt in chair time and found enough documentation and sample code to get a working thumbnailer application that improves the quality of the thumbnailing process. I’ll probably release this at some point, but for now, I’ll post some notes on things that I ran into and needed to google in the last couple of days.
***Notes on Cocoa/Objective C from my first non tutorial based project.
ZeroLink can obscure missing libraries and other accidents, while leaving a debug build perfectly
runnable on the dev machine. Small typos like including a .m file instead of .h will give you multiply
defined objects, and missing symbols can mean that you’re just missing the Framework that is auto linked
at runtime if you’re using Zerolink.
If you want to convert a cocoa application to a command line tool, start with a foundation tool,
then add cocoa and whatever other frameworks you need.
Beware affine transformations, as they can yield infinite results. Crop afterwards so you don’t
require infinite vm to render the image. This shows up as a malloc error for a very large number
of bytes. Also, the coreimage coordinate plane is much more like mathematicians view of a
cooridinate plane rather than the quickdraw one.
Dan Wood’s website
was very useful for getting the idea of how to actually use coreimage.
Coreimage doesn’t seem any faster than imagemagick for the basic things that I am doing at this point,
and I’m not sure if that’s because I have low end hardware, if I’m trying to do more, or if there’s
something that I’m just missing. The quality is far better than I was getting off of the original scripts,
and I think I can attribute that entierly to the use of a luminance channel sharpening stage.
Having scattered experience with C and Objective C doesn’t slow me down as much as figuring out the
details of Coreimage. I’ve dabbled with Objective C (and trying to avoid it with pyobjc) since the betas,
and I’m pleased that I just decided to do this in ObjC instead of fiddling with python. I’m still not 100%
sure about the memory management as of yet — that will come with experience.
Macro
New toy for the camera is a pair of macro coupler rings, to mount one lens on the front of another to do Xtreme Xcloseup macro shots. The top image should be a 2x macro (100/50), and the bottom should be nearly 4x (100/28). Those are sugar crystals on a shortbread cookie. Very up close and personal.
This one is a 1/2x (50/100) macro shot of a local cactus. (this one)
And because this wouldn’t be a blog without cat pictures…
Forewarned
I expect that in 18 years, he’ll be going to art school and be in a band that plays ‘important’ music. Or Velvet Underground covers.
Strange light
These leaves were illuminated by evening sunlight reflected off of some windows across the street. At least they were for a couple of minutes each day till they finally fell off.
35 Dodge
This is one of the nicer rods that I’ve seen on the street (as opposed to in a show). It’s a 35 Dodge pickup with a bunch of hydraulic bits, air suspension, and bed cover, doors, and such. The motor isn’t exactly period, as it’s a late model V10 Viper engine with 450 hp. Note the 5 exhaust tubes in the manifold. The most amazing thing is that the owner lost his arms in an industrial accident and drives it with his feet. Hence all the hydraulics.
Photos and night
I’m surprised that it took so long for Ben to play with a camera. He’s been playing with phones for at least 8 months, and we’ve been taking pictures at least as often as we’ve been talking on the phone.
We found this tree when out on a walk to find Christmas lights.