Version 2.0.
Författare: Linus Tolke
Inspirationskälla: Lyskom, Lyskom frågor (&) svar; Elispklienten. Detta möte heter från 31 juni 1992: Lyskom frågor (och) svar.
Uppläggningen är, först en lista över olika områden som behandlas i denna faq. Sedan en lista över alla frågor numrerade från a1 till ö1 och därefter samma frågor igen fast med svar.
Frågor sammanställning:
Allmänna frågor:
(Om du inte förstår beskrivningarna av hur du skall göra olika saker så skall du inte göra dem.)
Elispklienten har valt att tala om att användaren Läser när hon läser, Väntar när hon väntar och Återser när hon återser mm.
Elispklienten har dessutom valt att hela tiden skriva ut på message-raden vad personer i samma möte just nu sysslar med. (dvs när deras klienter skickar meddelanden.)
Varning: Om du tar bort saker ur denna lista kan det bli problem om inte klienten hittar symbolen den söker efter.
Läs dokumentationen för kom-do-when-done.
Ändra aldrig på variablerna lyskom-global-*-variables! Om de är fel så är det en bugg i klienten.
(setq kom-write-texts-in-window 'other) i din .emacs till exempel.
Det som tar längst tid är antabligen vilka möten du är medlem i och listan över olästa inlägg i dessa mötena.
Antalet olästa när du gör status person beräknas ur en ganska simpel formel: Det sista skrivna inlägget i mötet - Det sista du läste i mötet. Har du gått med i ett möte efter det att inlägg plockats bort därifrån och sedan inte läst något där så har det sista du läste i mötet mycket lägre nummer än det sista skrivna inlägget i mötet.
Informationen om vilket som är det sista skrivna inlägget i ett visst möte ligger i klienten sparad hos mötet och uppdateras för varje inlägg som skrivs. Informationen om vilket det sista inlägg du läste ligger i klienten sparad hos personen och uppdateras bara om du ändrar namn.
Ifall buggen är reproducerbar och du har tid så gör dessutom följande:
Att du får ett "Nu sparar jag" meddelande är att den antingen börjar spara eller slutar spara. Det är då den gör de saker i samband med sparandet som den inte kan göra medan den svarar på andra anrop (markera vilken data som den i värsta fall måste ha 2 kopior av ända tills den har sparat klart, resp slänga den data den har haft 2 kopior av.) Själva sparandet kan sedan mycket väl ta mer än en kvart.
string-to-int fungerar inte på samma sätt. (Antagligen beroende på att atoi inte fungerar på samma sätt).
Här är en patch som kan läggas i .emacs eller liknande:
;;;; fix to make string-to-int behave the same on DECstation as on sun (if (= 0 (string-to-int "\n17")) (progn (fset 'string-to-int-orig (symbol-function 'string-to-int)) (defun string-to-int (string) "Convert STRING to an integer by parsing it as a decimal number. Skip leading spaces and newlines." (if (length string) (let ((i 0) (c (aref string 0))) (while (or (= c ?\n) (= c ?\ )) (setq i (1+ i)) (setq c (aref string i))) (string-to-int-orig (substring string i))) 0))))
En gång i tidernas begynnelse (för lite drygt ett år sen) (Detta skrevs ursprungligen i november 1991) behövde jag testa LysKOM-servern. Jag hade kört rått med telnet direkt mot porten, men det blev jobbigt efter ett tag. Jag bestämde mig för att skriva ett litet elispprogram för att kunna testa servern.
Mitt mål var från början att testa servern (och att programmera något annat än servern - det hade blivit många rader C-kod under våren och sommaren, och nästan alla hörde till servern). Jag skrev elispkoden med målet att få det att fungera hjälpligt så fort som möjligt, inte att göra den korrekt och komplett.
---
När klienten väl fungerade var det alldeles för kul att skriva nya funktioner till den för att man skulle kunna låta bli så sedan dess har det bara blivit mer och mer och för tillfället är det den mest kompletta LysKOMklient som finns. Nackdelen: långsamhet kan lätt åtgärdas genom att köra på en snabbare maskin.