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:
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.
Very interesting. A Live example of remote pair-programming. Cool.
Awesome, I was just telling my buddy this would be easy to use in Seaside, I didn’t know how right I was.
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.
@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.