Google Chart Pair-Programming

Yesterday Marcus Denker pointed out the Google Chart API in a private E-Mail. I asked Philippe Marshall and Adriaan van Os to join me for a remote pair-programming session with the goal of writing a small plug-in to wrap that Google service in a convenient Seaside plug-in.

Philippe (Zurich, CH), Adriaan van Os (Utrecht, NL) and myself (somewhere in the Swiss mountains) connected to a headless Squeak image running on my server (Bern, CH). Inside this image we had a Remote Frame Buffer Server (VNC server) running, which allows us to program together in the remote environment. For communication we used the private chat room #friday-night-seaside-hacking on freenode.

22:06 <renggli> how do we want to start?
22:06 <renggli> component or brush?
22:07 <kustos> a brush
22:07 <renggli> kustos: start with the coding

After getting an initial example running we decided to publish a first version on Monticello:

22:49 <renggli> what is the URL?
22:50 <kustos> MCHttpRepository
22:50 <kustos>     location: 'http://www.squeaksource.com/seachart'
22:50 <kustos>     user: ''
22:50 <kustos>     password: ''

After a couple of hours hacking the result is already impressive:

Googlechart.png

Posted by Lukas Renggli at 8 December 2007, 11:44 am with tags squeak, seaside, pair-programming, extreme-programming link

Comments

Any chance of posting the interaction from the chat session? I’m not a seaside expert, and I think the interplay would make for interesting reading. Cool to see the API exposed through Seaside.

Posted by David Mitchell at 8 December 2007, 5:07 pm link

Very interesting. A Live example of remote pair-programming. Cool.

Posted by Vladimir Pogorelenko at 8 December 2007, 5:45 pm link

Awesome, I was just telling my buddy this would be easy to use in Seaside, I didn’t know how right I was.

Posted by Ramon Leon at 8 December 2007, 7:09 pm link

Nice work. I’ve already wondered what were the semantical differences between a component and a brush. It seems it’s not clear in some cases.

Posted by Damien Cassou at 10 December 2007, 8:25 am link

@David: We only programmed on one remote screen in the beginning. After the initial coding phase we switched to our own image and regularly merged the changes using Monticello. You can have a look at the commit logs in the repository. The full chat-log is rather not ment for public consumption ;-)

@Damien: A component has state and is persistent over the lifetime of the session, a brush does not have a state and is re-generated with every request.

Posted by Lukas Renggli at 10 December 2007, 6:50 pm link