Software Engineering Radio

During the last few weeks, while commuting, I’ve been ditching music in favor of podcasts about software and programming.

Software Engineering Radio is one of my new favorites. It includes interviews with experts on hot topics like open source development or data visualization, while other episodes bring experienced points of view about classic topics like continuous integration, refactoring and so on.

It might be a little too stiff or academic for some listeners, but I definitively recommend it to any software engineer out there.

The data beyond the JPEG

JPEG files from a digital camera include lots of information beyond the actual picture. Camera settings, serial numbers, flash setups and more are included in one of many formats like Exif, IPTC, JFIF or TIFF.

To simplify the extraction and reading of all those properties, I’ve programmed Bravo, an Objective-C library that extracts all the metadata available from a JPEG image and compiles it under a single NSDictionary object.

It’s use requires calling a single method:

NSDictionary *metadataProperties = [[BRavoExifManager sharedManager] extractMetadataFromJPEG:imageData];

and the library is available under the MIT License.

Disposition, easier setters for CGRects

CGRects are widely used in iOS and OSX development, but some useful setters (particularly CGRectSetSize and CGRectSetOrigin) are definetively missing. So, I’ve programmed Disposition, a set of functions that can help avoid some unnecessary code when setting up CGRect’s properties.

The header file, currently defines the following fancy functions (which I hope increases over time and with the help of collaborations):

void CGRectSetSize(CGRect *rect, CGSize size);
void CGRectSetWidth(CGRect *rect, CGFloat width);
void CGRectSetHeight(CGRect *rect, CGFloat height);

void CGRectSetOrigin(CGRect *rect, CGPoint originPoint);
void CGRectSetX(CGRect *rect, CGFloat x);
void CGRectSetY(CGRect *rect, CGFloat y);

As usual, distributed under a MIT License.