Jabber question/remote pair programming...

Brian Brown brian at teuton.org
Sun Jun 29 07:47:07 UTC 2003


Quoting Daniel Vainsencher <danielv at netvision.net.il>:

> I have an idea for something nice, but I'm not sure how exactly it
> should work. Please let me know what you think.
> 
> First, the scenario -
> I want to program a new feature for SMLoader that requires changes to
> SM. I email Goran, and he decides it's worthwhile, but we're not sure
> about the API. The ideal thing would be to start pair programming the
> changes together. How do we do it?
> 
> Well, we each fire up our JabbingBrowser clients. I tell my browser than
> my definition of the SM categories should be compared to Gorans
> (pointing out his Jabber presence). A window opens up showing the diff
> between what each of us have. Because through jabber, he's been notified
> I care about his change, every time he accepts a method, I get a notice,
> and my diff updates.
> 
A couple of us have been talking about this for a couple of months, but not 
written anything :)

> As we're chatting, and I give him feedback on his changes in real time,
> I decide to start fleshing out my feature, so I can test the API, and
> see if something's missing. I tell my JabbingBrowser to stop showing the
> diff, and instead slave my code to his. Now, every accept on his side
> automatically happens on mine too (with a note to the Jabber client, so
> I know what changes). Now I can quickly respond to his new code with my
> own code relying on it.
> 
> This, of course, can be extended in many ways, to handle multiple users,
> asynch changes (what happens when I log off then return and he's been
> coding), integration with SUnit (set it to run tests when code updates
> arrive) and more features. But does this seem to work well with the
> Jabber model? for example, how do we distinguish the code updates from
> the chat itself? if so, anyone care to hack up a demo implementation?
> 

This should work well in the jabber model... put the code updates in their own 
namespace as part of the message... so their is the standard message payload 
and also a <xmlns="squeak:code:update"></xmlns> payload in the message as well.

As far as logging off or on... Jabber stores any messages sent to you until you 
come online again; as long as your jabber id was being sent messages by his 
JabbingBrowser, then when you connnected again, you would get them all.

I still haven't had time to look at Michael's code in any depth to find out 
what all he has implemented and what still needs to be done, but I would be 
interested in participating in this...

(but for the short term, you could use Nebraska :) It works for doing some pair 
things, it just doesn't have two focus abstrations, so wherever the insertion 
point lies is where both parties type. Just like in VNC, except you *do* have 
two mouse pointers)

Brian


> Daniel
> 
> 


-- 



More information about the Squeak-dev mailing list