I can't even remember the last time I had a coworker that was co-located with me in the same town. Within IBM the other software developers that I typically work with are in: Minnesota, Texas, Germany, Great Britain, Switzerland, Germany, Brazil, and Australia. These are the folks that I would have 1 or more technical discussions with a week. If I openned that umbrella up to a month, we'd add another few countries, and a whole lot more states.
A truly unsolved challenge in collaboration is replacing white board discussions with some sort of online equivalent. I've got a drawing tablet, but honestly, my brain doesn't think quite as well with it as when I get on a proper whiteboard. After a phone conversation earlier this week that I realized was circling for lack of common artifacts, I took some time to try and figure out how I could get people to see the whiteboard in my office.
Ingredients of Real Time Whiteboarding
- Logitech 9000 web cam. This has 1600x1200 resolution, runs about $90, and does low light scenarios really well.
- a Linux machine that's at least a P4 processor
Install all this software onto you Linux machine. Then run the following to start streaming your webcam as video in real time:
mjpg_streamer -i "input_uvc.so -d /dev/video0 -y -r 1600x1200" -o "output_http.so -w /webcam_www -p 8080"
Viewing the results
The results can be viewed a number of ways. There is a built in client in the source tree (screen shot below is from that). You can also view it from vlc or firefox with the url http://your.server.name:8080/?action=stream. (In firefox I found you need 1 reload to get it to update frames, not sure why). If you want to just get the current frame you can use http://your.server.name:8080/?action=snapshot.
The results a quite impressive (you may need to right click to get to full res):
This is definitely readable to as small as you are going to be able to write. It's about a 5 second delay from capture point to writing, which isn't too bad considering. I'm definitely going to use this in the days ahead, as it works a heck of a lot better for me than trying to diagram in a computer program interactively. You'll get motion blur on people, but given that this is mostly about the text on the whiteboard, that's not really a big deal.
Update: I figured out how to do this with firefox and vlc, so the text now reflects that.