People understand hacking.  Some guy with a black hat breaks into a  computer system and either (A) steals your credit card info, (B) takes your whole identity, (C) puts horrible images on your computer, or (D) gets into our infrastructure and turns off everybody’s electricity.  And somehow the air traffic control system and nuclear power stations fit in, too.

I understand it a little differently.  A hacker is somebody who wants to understand how things work, and may work beyond legal limits to do that.  The bad stuff described in the choices above is the work of a cracker, or a nut, or a terrorist.  Hackers can go bad, sometimes, just like policemen and soldiers and FBI agents occasionally go bad.

This is about the white hat sort of hacking, that doesn’t negatively affect anyone else, that doesn’t even affect the software.  This is about hacking computer hardware.  Some people can use the video card processors (GPU, Graphical Processing Unit) to write programs.  These pieces of hardware have been getting wicked fast over the past few years, and now there is a whole subset of people doing their processing on the GPU, not the regular CPU.  Other folks are taking gaming consoles, running Linux on them, and turning them into supercomputers.  And it’s not just kids in their parents’ basement, it’s the Air Force doing some of this.

Now a group of people are delving into a different type of computer – the camera.  Think about it: your camera is a digital device that takes input, processes it, and gives you some output.  Just like that monster that’s on your desk.  It’s specialized, to be sure, but it’s a computer running a program.  CHDK, the Canon Hack Development Kit, allows you to run a new program (and scripts) without modifying your camera at all.  This is not a firmware upgrade – it doesn’t touch the firmware.  In fact, to get rid of the CHDK software, all you have to do is power off your camera.  Power it up again, and it’s gone until you decide to reload it.

What does it do, this strange hacking software thingie?  It extends the software capabilities of the camera to do more things better.  It can capture RAW images, instead of JPG (you get bigger pictures, but don’t lose any details).  It can do bracketing, which is taking multiple pix of the same scene at different exposures to get the best image.  You can also combine these pictures into something called HDR, for High Dynamic Range, which can show you the brighter things and the darker things in a photograph.  You can do time lapse photography, or take longer videos, or faster pictures.  You can see a live histogram of your scene

or get live “zebra” feedback on where you’re overexposing the scene and losing digital information

You can increase the quality of the video the camera takes (with resultant file size increases).  You can play games – Reversi and Sokoban (on your camera?  Yes!)

Also real cool: motion detect trigger with super-fast exposure: to the tune of 1/60,000 of a second:

Other cool examples here.  There are also scripts to monitor for lightning:

(All pictures from the CHDK wiki and copyright their respective owners)

This is gonna be cool.  Of course, I have to verify that it’s okay with the camera co-owner.