Två kollaborativa textprogram

05 juli 2009

För några veckor sedan letade jag febrilt efter något onlineprogram för att editera texter med flera användare samtidigt.

Anledningen var att jag och en kille från andra sidan världen (nåja, Italien var det iof men ändå långt från Götet!) tränat på parprogrammering+TDD tillsammans ett par gånger tidigare i vår, men lackat ur pga de stora fördröjningar den ena hela tiden utsätts för. Tekniken vi använde då var s.k. Desktop Sharing, t.ex. via Fjärrskrivbord eller VNC. Läs detta inlägg om du vill veta mera om vad vi använde för verktyg och hur det funkade.

I alla fall; jag kände ju till Google Docs sedan tidigare, som är utmärkt för att t.ex. skriva uppsats tillsammans (skolarbete/grupparbete/förening…) men det kräver att alla har så kallat google-konto. Dessutom är det ganska nedsmetat med funktioner man inte är speciellt intresserad av som programmerare.

Nåväl, jag hittade till slut ett par olika alternativ för ”kollaborativt textskrivande”. Det första är Etherpad:

etherpad

Etherpad - varje användare använder viss bakgrundsfärg

Etherpad kräver ingen inloggning, och varje deltagares text färgas efter dennes val av färg. Det ger en tydlig och enkel översikt över ”vad som händer”. Det är helt klart ett attraktivt alternativ för ”remote pair programming” som är målet. Nackdelen med etherpad är att det bara stödjer så kallad syntax highlighting för språket JavaScript.

Eftersom jag kodar C#/Python/C++ mestadels, letade jag vidare. Min Italienske vän hittade följande program: Collabedit:

collabedit

Collabedit - rent användargränssnitt

I Collabedit finns det stöd för färgkodning (som syntax highlighting heter på svenska) i alla de språk jag vardagligen använder, och många fler. Inte heller Collabedit kräver inloggning utan funkar rakt upp och ned.

Det som återstår för att uppfylla målet ”remote pair programming” är ett script som gör föjlande:

1. Laddar ned dokumentet från nätet (t.ex. med hjälp av wget)

2. Kör dokumentet i ”testläge” (t.ex. via någon flagga så att dokumentets tester körs)

3. Väntar på användarens knapptryckning

4. Hoppar till ett

På så sätt kan varje deltagare köra testerna vid behov. Alternativet är att byta ut (3) mot lämplig paus, t.ex. 10 sekunder, så behöver man inte ens trycka tangent för att köra om testerna. Jag kallar denna teknik ”kontinuerlig testkörning” och använder den ofta på jobbet. Det blir som en ”hjärtmonitor” på programsystemets ”hälsa”.

Det ska bli intressant att experimentera med dessa verktyg! Jag kommer att återrapportera hur det känns och funkar när jag kommit längre.

Taggar: , , , , , ,