Winter arrives... finally

It's pretty pathetic that the 1/2" of snow that came down last night got everyone here excited, but it did. We've now broken the record for latest snowfall in a season in Poughkeepsie (previous record was Jan 14th). It's just enough snow so that our lawns are white instead of green (yes green, as the crazy warm weather meant lawns didn't really brown over this winter).

I just hope we get a real storm at some point (6 inches would be great), as I'd really like to get out to do some kind of winter sports this year. Susan and I are all geared up for x-country skiing, snow shoeing, sledding, or ice skating, and haven't gotten to use any of that gear since February of last year.

Tips for creating good presentations with Open Source Tools

If you are a Linux user, and you have ever had to give presentations, you probably used OpenOffice Impress to do it. OpenOffice Impress is a reasonable clone of PowerPoint, though certain things like Animation, work very poorly in OpenOffice, and you can't insert a table (grrrrr....).

Any good presentation has graphics or diagrams in it. There is a drawing tool in OpenOffice to create them, which is a little clumsy, but works. However, the output looks like poo. While OpenOffice will antialias fonts (making them smooth), it won't do so for graphic elements. Thus you end up with reasonably nice looking fonts, and graphics that look like MacPaint circa 1996. What is a budding presenter that wants to stay on Linux to do?

About 2 years ago, I found Inkscape. Inkscape is a vector graphics program that would be comparable to Adobe Illustrator (though it's been 9 years since I last used Illustrator, so I don't claim any ability to compare them). Inkscape is largely designed for graphic artists (which I will not claim to be by any stretch), and has all the sort of drawing tools you would expect for that. I originally stumbled upon it when creating block diagrams in Dia, which while pretty straight forward, again looks like poo if you've got anything that isn't a vertical or horizontal line in it. While Inkscape requires a little more freehanding of shapes, the control over those graphics, and how pretty they look on export, entire makes up for that.

Inkscape's native format is SVG, which is vector based, and thus scalable to any size without looking bad. While it has the disadvantage of being a different tool then OpenOffice it has the distinct advantage that nearly anything drawn in Inkscape looks about 10x better than OpenOffice drawings, without even trying. If you try, you can get stuff that is clearly 100x better.

What I've recently found works best is to create a base image in inkscape with all your elements you are trying to explain. Don't add much text or any arrows showing flow, as OpenOffice does this reasonably. Then use that base image for 1 or more slides in OpenOffice where you draw over it with Arrows, Simple Blocks, and Text. OpenOffice objects can be transparent (or partially transparent), which means doing overlays in OpenOffice works pretty well, and looks pretty reasonable. Believe it or not, the final OpenOffice presentation will look better in Adobe Acrobat as a PDF, which has very good scaling algorithms, and will antialias your OpenOffice graphics objects even when OO doesn't (which, granted, is pretty retarded).

Pictures are worth 1000 words, and good pictures are worth a lot more. But also remember, good pictures take time. Yesterday I spent 3 hours coming up with, and creating 1 graphic which was the basis for 4 slides, then 2 more hours figuring out how to best represent the information on those slides to be clear, simple, and useful. Just like any programming effort, don't think you can crank it out in the hour before it is due.

Ok, back to diagrams and presentations. Happy Friday!

ExifTagger 0.42 Released

I had some time this weekend, as well as some motivation, to add a couple more things to ExifTagger.

One of the things that took longer than I expected to sort out was how to change the cursor to a watch prior to doing an expensive (time wise) operation in a call back. Loading my 7 MP digital photos takes ~ 4 secs on my laptop, which is enough time that I'd like to provide user feedback that something is happening. The naive approach to this is:

This doesn't work, due to the way gtk works. set_cursor is effectively a signal, which triggers a built in call back just like any of the call backs you would write yourself. The net effect of this is as follows:

The following is how I solved the problem. There may be a more elegant solution, but this is working quite well for me:

Which lets the set_cursor call run, has the gtk main loop go idle, then schedules the rest of the work.

The Good and Bad of Open Source Desktop Apps

The Bad

Dear Open Office,

Why can't you insert a table? All I want is a simple table. Tables are good ways to organize some information. No, I don't want to embed a full spread sheet, that uses entirely different fonts, and may or may not size correctly in my viewport, depending on the size of my window at any given time. You import tables from Power Point reasonably well, even if it is just a bunch of grouped lines. Why couldn't you just draw me that in the first place!

The Good

Dear Inkscape,

You are brilliant, and keep getting better. Putting the color palette horizontally right above the status bar is so nice for doing quick fills of objects on the screen. Plus, all your drawings always look incredible once they are done.

MHVLUG Meeting Notes - January 3rd 2007

Last night was the first MHVLUG meeting of 2007, and marks a return to Wednesday nights (which I think is where we started, though I'll need to look that up.) The Wednesday night shift appeared to be a good thing, as we had 30 people there, including some new faces. Monday nights were definitely hard, often with the group dropping to 15 or so, so I think Wednesday is probably a good place to keep the meetings for a while.

Mike Kershaw gave an overview of Digital Photography on Linux. After a few slides giving some back ground, Mike started showing demos of applications like gphoto2 (command line tool to get photos off your cammera), ufraw (for manipulation of color and light levels on raw images, if you have a Digital SLR that produces them), and the gimp.

The Gimp demo lasted for quite a long time, and included a lot of tricks including using basic tools such as unsharp mask, and color balance, to touch up any image. The example of using a layer mask to put together 2 images with vastly different light levels was very cool, and explains how the image Mike gave us as a wedding present was created. 🙂 I personally never knew you could drag around the magic wand to expand the selection, which was a great piece of info that I'm glad to have now.

The demos ended with putting together images using hugin and autopano. I love these tools, and Mike did a live demo of stitching together parts of the room into an image showing that with almost no effort you get quite reasonable results. It was a great meeting, with something for everyone there.