-*- swedish-iso -*-
OSF Ofta stllda frgor fr elispklienten. Version 2.0.

Frfattare: Linus Tolke
Inspirationsklla: Lyskom, Lyskom frgor (&) svar; Elispklienten.
Detta mte heter frn 31 juni 1992: Lyskom frgor (och) svar.

Frgor sammanstllning:

Allmnna frgor:
a1: Vad r LysKOM?
a2: Vad r elispklienten?
a3: Var finns den att hitta?
a4: Vad finns det fr typ av dokumentation?
a5: Var hittar jag protokoll-specen fr lyskomprotokollet.
a6: Vem r Guran?

Konfigurering:
c1: Varfr str det att vissa Lser, Vntar, terser?
c2: Varfr str det att vissa gnar igenom inlggen, Rttar tentor,
    ter pizza, Hade glmt vad som skrivits tidigare?
c3: Hur ndrar man sin kom-mercial?
c4: Hur ndrar man de andra meddelandena?

d1: Kan jag f saker att hnda automatiskt nr jag startar lyskom?
d2: Kan jag f saker att hnda automatiskt nr jag loggat in?
d3: Hur kan jag stta vilka default-promptar jag skall f nr jag har
    lst ut allt. 
d4: Hur gr man fr att ndra variabler i lyskom?

Vid editering:
e1: Kan jag f saker att hnda automatiskt nr jag brjar skriva en
  : kommentar?
e2: Hur gr jag fr att binda speciella tangenter fr att skriva en
    kommentar?
e3: Jag fr upp en tom buffert och ett pip nr jag skall till att
    editera. Vad har jag gjort fr fel?

f1: Hur gr jag fr att behlla lyskom-bufferten p skrmen medan jag
    skriver en kommentar, ett inlgg eller ett brev?

Mten:
g1: Hur gr man fr att ndra typen p ett mte?
g2: Hur ndrar man hur mnga dagar artiklar i ett visst mte sparas?

Frgor om inlgg:
i1: Hur anger man Fr knnedomsmottagare?
i2: Hur flyttar man inlgg?

Konstigheter:
k1: Varfr tar det s lng tid att logga in?
k2: Varfr tar det s lng tid att gra endast?
k3: Varfr sorterar elisp-klienten om mtena i samma ordning som nr
    jag gr in i lyskom varje gng jag gr endast?
k4: Varfr stmmer inte antalet olsta inlgg nr jag gr status
    person som nr jag gr lista nyheter?
k5: Varfr r antalet olsta i vissa mten negativt nr man gr
    status?

Lappar p drrar:
l1: Varfr fr jag Du har en lapp p drren, det finns ingen sdan
    text nr jag loggar in?

Markering:
m1: Vad innebr markering?
m2: Kan man markera inlgg p olika stt?
m3: Hur gr jag fr att markera inlgg p ett annat stt?
m4: Hur gr jag fr att terse inlgg markerade p ett visst stt?
m5: Vilken markering anvnder sig elispklienten normalt av?

Personer:
p1: Varfr finns det tv statuskommandon: Status mte och status person?

Sessionen:
s1: Kan jag terstarta sessionen efter det att jag gtt ur lyskom?

Systemet:
t1: Hur och till vem skickar jag buggrapporter?
t2: Varfr sparas databasen s ofta?

Maskinspecifika saker:
u1: Varfr kan jag inte kra elisplienten p en dec-station.

Vad hnder med LysKOM i framtiden:
v1: Protokoll B, vad r det?
v2: Vad kommer att ing i protokoll B?

Historia:
1: Varfr skrevs elisp-klienten?


Frgor och svar:

Allmnna frgor:
a1: Vad r LysKOM?

LysKOM r ett konferenssystem som r inspirerat av KOM, det
konferenssystem som skapades av QZ i Stockholm. Orsaken till att
LysKOM skrevs var att det KOMsystem Lysators medlemmar hade tillgng
till lades ner. QZ-KOM gick att kra p DEC-10 och DEC-20-maskiner och
den sista DEC-20-maskinen p LiTH som studenterna hade tillgng till
sldes och frsvann. KOM hade blivit vanebildande fr en del och det
bedmdes att en ersttning var ndvndig.

a2: Vad r elispklienten?

Elispklienten r den frsta fungerande klienten till lyskom, det r
dessutom den fr tillfllet mest kompletta. Den r skriven helt i
elisp och kr under gnu-emacs (testad minst i versionerna 18.51,
18.55, 18.57 och 18.58, epoch 4.0, lucid-emacs 19.1 och 19.2).

a3: Var finns den att hitta?

Elispklienten kan du hmta med anonym ftp frn lysator:
host: ftp.lysator.liu.se
dir: /pub/lyskom/elisp-client/
filnamn: lyskom-0.34.6.el.Z (vanliga klienten)
filnamn: lyskom-0.34.6.elc.Z (byte-kompilerad version av klienten)
filnamn: englist-lyskom-0.34.6.elc.Z

a4: Vad finns det fr typ av dokumentation?

Dokumentation finns p latexinfo format. Eftersom jag inte ftt den
igenom latex s har jag inte lagt upp den fr anonym ftp. Dremot har
den gtt igenom info-genereringsprogrammet och du kan allts hmta den
antingen som info-fil: elisp-client-0.34.6.info eller som ren textfil
elisp-client-0.34.6.txt frn samma dir som du hmtar klienten.

a5: Var hittar jag protokoll-specen fr lyskomprotokollet.

Protokollspecen kan du hmta med anonym ftp frn lysator:
host: ftp.lysator.liu.se
dir: /pub/lyskom/
filnamn: prot-A.txt

a6: Vem r Guran?

Fantomens vn, bandarernas hvding.


Konfigurering: (Om du inte frstr beskrivningarna av hur du skall
gra olika saker s skall du inte gra dem.)

c1: Varfr str det att vissa Lser, Vntar, terser?

Specifikationen fr LysKOM sger att klienten kan tala om fr servern
vad den tror att anvndaren gr. Detta kan vara en godtycklig text.

Elispklienten har valt att tala om att anvndaren Lser nr hon lser,
Vntar nr hon vntar och terser nr hon terser mm.

Elispklienten har dessutom valt att hela tiden skriva ut p
message-raden vad personer i samma mte just nu sysslar med. (dvs nr
deras klienter skickar meddelanden.)

c2: Varfr str det att vissa gnar igenom inlggen, Rttar tentor,
    ter pizza, Hade glmt vad som skrivits tidigare?

Eftersom det str klienten fritt att snda in vilket meddelande som
helst har vi gjort s att meddelandet som talar om vad man gr nr man
lst ut alla mten r vldigt ltt att ndra. Det ligger i variabeln
kom-mercial och det r en strng.

c3: Hur ndrar man sin kom-mercial?

M-x set-variable <RET> kom-mercial <RET> "Rttar tentor." <RET>

c4: Hur ndrar man de andra meddelandena?

Det finns en assoc-lista i variabeln kom-tell-phrases som bestr av
symboler och texter som klienten skickar till servern nr kommandona
med samma namn som symbolen utfrs. Det r bara att ndra denna.

Varning: Om du tar bort saker ur denna lista kan det bli problem om
inte klienten hittar symbolen den sker efter.

d1: Kan jag f saker att hnda automatiskt nr jag startar lyskom?

Ja, lyskomklienten skapar en emacsmode med de flesta vanliga
defaulten. Bl.a. krs lyskom-mode-hook nr man startar lyskom.

d2: Kan jag f saker att hnda automatiskt nr jag loggat in?

Ja, ls dokumentationen fr kom-do-when-starting.

d3: Hur kan jag stta vilka default-promptar jag skall f nr jag har
    lst ut allt.

Default r att frst f prompten terse alla markerade - och sedan 
Se tiden.
Ls dokumentationen fr kom-do-when-done.

d4: Hur gr man fr att ndra variabler i lyskom?

Vissa variabler lagras i din user-area i LysKOM-servern. Det r de som
finns listade i variabelerna lyskom-elisp-variables,
lyskom-global-boolean-variables och lyskom-global-non-boolean-variables.
Du kan ndra dessa och andra kom-variabler mha. kommandot ndra
variabler. Nr du ger kommandot ndra variabler kommer en speciell
buffert upp. Den fungerar precis som emacs *List Options* buffert
frutom nr du trycker C-c C-c. D sparar den nmligen dina variabler
i servern.

ndra aldrig p variablerna lyskom-global-*-variables! Om de r fel s
r det en bugg i klienten.

Vid editering:
e1: Kan jag f saker att hnda automatiskt nr jag brjar skriva en
    kommentar?

Ja, editeringsmoden r en vanlig emacs-mode s tillvida att den kr
lyskom-edit-mode-hook nr man startar den.

e2: Hur gr jag fr att binda speciella tangenter fr att skriva en
    kommentar?

Eftersom lyskom-edit-mode gr vissa speciella tangentbortsbindningar
och har en hel del buffertlokala variabler kan man inte vlja en helt
ny mode i lyskom-edit-mode-hook (i princip alla moder rensar ju alla
lokala variabler). Vill man att lyskom-edit-mode skall f andra
grundinstllningar som byggs p skall man stta
lyskom-edit-mode-mode-hook som krs innan de speciella bindningarna
grs.


e3: Jag fr upp en tom buffert och ett pip nr jag skall till att
    editera. Vad har jag gjort fr fel?

Din lyskom-edit-mode-mode-hook har evaluerat ett lisp-uttryck som har
misslyckats. Kolla vad den frsker gra och fixa s att den inte
misslyckas.

f1: Hur gr jag fr att behlla lyskom-bufferten p skrmen medan jag
    skriver en kommentar, ett inlgg eller ett brev?

Du talar om fr elisp-klienten att du vill att den skall anvnda det
andra fnstret/skapa ett nytt fnster fr att skriva i genom att stta
variabeln kom-write-texts-in-window till other.

(setq kom-write-texts-in-window 'other) i din .emacs till exempel.


Mten:
g1: Hur gr man fr att ndra typen p ett mte?

Det gr du inte med elisp-klienten.

g2: Hur ndrar man hur mnga dagar artiklar i ett visst mte sparas?

Anvnd kommandot ndra livslngd.

Frgor om inlgg:
i1: Hur anger man Fr knnedomsmottagare?

Det finns inte ngon sdan mjlighet. Anvnd Mottagare eller Extra
kopiemottagare:

i2: Hur flyttar man inlgg?

Det finns ingen sdan mjlighet. Anvnd kommandona Addera mottagare
eller Addera extra kopiemottagare resp. Subtrahera mottagare fr vart
och ett av inlggen du vill flytta. Om du vill skriva kommandona
Flytta inlgg, eller flytta kommentarstrd s fr du.

Konstigheter:
k1: Varfr tar det s lng tid att logga in?

Lokalt p din maskin sparas ingen som helst information om vilka
texter du lst eller vilka mten du r medlem i. Allt detta hmtas
nytt varje gng du loggar in. Dessutom hmtas en lista p alla texter
du har markerat (fr att du skall kunna f fram texten Markerat av
dig. eller Markerat av dig och 5 andra. nr du lser).

Det som tar lngst tid r antabligen vilka mten du r medlem i och
listan ver olsta inlgg i dessa mtena.

k2: Varfr tar det s lng tid att gra endast?
k3: Varfr sorterar elisp-klienten om mtena i samma ordning som nr
    jag gr in i lyskom varje gng jag gr endast?

Endast r fr tillfllet lite korkat implementerat. Det finns nmligen
ett anrop till servern som gr just endast. Detta anvnder sig
klienten av och sedan gr den det som r lttast: Hmtar om all din
information frn brjan igen (som nr du loggade in).

k4: Varfr stmmer inte antalet olsta inlgg nr jag gr status
    person som nr jag gr lista nyheter?

Antalet olsta du fr fram med lista nyheter r det antal som klienten
knner till. (Alla dessa ligger som nummer i listor.)

Antalet olsta nr du gr status person berknas ur en ganska simpel
formel: Det sista skrivna inlgget i mtet - Det sista du lste i
mtet. Har du gtt med i ett mte efter det att inlgg plockats bort
drifrn och sedan inte lst ngot dr s har det sista du lste i
mtet mycket lgre nummer n det sista skrivna inlgget i mtet.

k5: Varfr r antalet olsta i vissa mten negativt nr man gr
    status?

Antalet olsta nr du gr status person berknas ur en ganska simpel
formel: Det sista skrivna inlgget i mtet - Det sista du lste i
mtet. Har du gtt med i ett mte efter det att inlgg plockats bort
drifrn och sedan inte lst ngot dr s har det sista du lste i
mtet mycket lgre nummer n det sista skrivna inlgget i mtet.

Informationen om vilket som r det sista skrivna inlgget i ett visst
mte ligger i klienten sparad hos mtet och uppdateras fr varje
inlgg som skrivs. Informationen om vilket det sista inlgg du lste
ligger i klienten sparad hos personen och uppdateras bara om du ndrar
namn.


Lappar p drrar:
l1: Varfr fr jag Du har en lapp p drren, det finns ingen sdan
    text nr jag loggar in?

Du har tagit bort lappen p fel stt. Du skall anvnda kommandot 
"Ta bort lapp p drren" fr att ta bort en lapp. Det du mste gra
fr att fixa detta r att anvnda kommandot "Ta bort lapp p drren"
och ta bort den obefintliga lappen.


Markering:
m1: Vad innebr markering?

Markering r ett stt fr dig att spara inlgget. Markerade inlgg
rensas inte bort av systemet.

m2: Kan man markera inlgg p olika stt?

Ja.

m3: Hur gr jag fr att markera inlgg p ett annat stt?

Stt variabeln kom-default-mark till nil s fr du en frga varje
gng du markerar ett inlgg. Alternativen r heltalen 1-255.

m4: Hur gr jag fr att terse inlgg markerade p ett visst stt?

Anvnd kommandot terse markerade (m) istllet fr terse alla
markerade (am).

m5: Vilken markering anvnder sig elispklienten normalt av?

100.



Personer:
p1: Varfr finns det tv statuskommandon: Status mte och status person?

Om du tittar noggrannare ser du att de ger helt olika information.
Status mte fr en person talar om nr personen skapades, nr ngon
sist skickade ett brev till denne medan Status person talar om hur
mycket inlgg personen skrivit, hur lnge han har varit inne i LysKOM.


Sessionen:
s1: Kan jag terstarta sessionen efter det att jag gtt ur lyskom?

Nej.


Systemet:
t1: Hur och till vem skickar jag buggrapporter?

Buggrapporter skickas till bug-lyskom@lysator.liu.se. Se till att f
med all vital information, enklast genom att kra funktionen
kom-compile-bug-report och skicka den bufferten.

Ifall buggen r reproducerbar och du har tid s gr dessutom fljande:
- G till lget precis innan du gav kommandot som orsakade buggen.
- Stt variabeln: lyskom-debug-communications-to-buffer till t.
- Stt variabeln: debug-on-error till t.
- Provocera fram buggen.
- Kr kom-compile-bug-report. Det skall g bra att gra i *Backtrace*
  bufferten ifall du fick en sdan.
- Skicka in denna nya bufferten istllet. Den kan innehlla lite mer
  information.

t2: Varfr sparas databasen s ofta?

Ursprungligen sparade servern allting p en gng. Den sade, jag sparar
nu och sedan sparade den om hela databasen (vilket tog flera minuter).
Detta skrev ceder om s att den istllet sparar efter han, dvs den kan
ta emot anrop och svara p dem samtidigt som den sparar.

Att du fr ett "Nu sparar jag" meddelande r att den antingen brjar
spara eller slutar spara. Det r d den gr de saker i samband med
sparandet som den inte kan gra medan den svarar p andra anrop
(markera vilken data som den i vrsta fall mste ha 2 kopior av nda
tills den har sparat klart, resp slnga den data den har haft 2 kopior
av.) Sjlva sparandet kan sedan mycket vl ta mer n en kvart.


Maskinspecifika saker:
u1: Varfr kan jag inte kra elisplienten p en dec-station.

string-to-int fungerar inte p samma stt. (Antagligen beroende p att
atoi inte fungerar p samma stt).

Hr r en patch som kan lggas 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))))


Vad hnder med LysKOM i framtiden:
v1: Protokoll B, vad r det?
LysKOM jobbar som sagt med server-klient modell. Protokollet r enkelt
men innehller en del speciella saker typ asynkrona anrop frn bda
hllen... Den ursprungliga specen gjordes snabbt eftersom vi snabbt
ville f ett fungerande system. Tyvrr fick det en del brister och vi
bestmde oss fr att gra om allt frn scratch. Detta omgjorda
protokoll r protokoll B. Tyvrr s r det ursprungliga protokollet s
pass bra att det gr lngsamt med utvecklingen.

v2: Vad kommer att ing i protokoll B?
* Textdelar (Lars Aronsson Lysator inlgg 58964):
I Protokoll B mellan klient och server kommer varje INLGG att best
av det vanliga HUVUDET och av en INLGGSKROPP. Den senare kommer att
best av en fljd av KROPPSDELAR. Varje kroppsdel har en datatyp och
en dataarea. Typerna kan vara t.ex. ISO 8859-1 text, Sun SPARC ljudfil
eller en grafisk bild. I Protokoll B blir det i de flesta fall fel att
tala om "text", "textstatus", "textnummer" etc. Ordet "text" br d
ersttas med ordet "inlgg".

Historia:
1: Varfr skrevs elisp-klienten?

Ur: En sl implementatrs beknnelser av ceder (Per Cederqvist)

En gng i tidernas begynnelse (fr lite drygt ett r sen) (Detta
skrevs ursprungligen i november 1991) behvde jag testa
LysKOM-servern. Jag hade krt rtt med telnet direkt mot porten, men
det blev jobbigt efter ett tag. Jag bestmde mig fr att skriva ett
litet elispprogram fr att kunna testa servern.

Mitt ml var frn brjan att testa servern (och att programmera ngot
annat n servern - det hade blivit mnga rader C-kod under vren och
sommaren, och nstan alla hrde till servern). Jag skrev elispkoden
med mlet att f det att fungera hjlpligt s fort som mjligt, inte
att gra den korrekt och komplett.

---
Nr klienten vl fungerade var det alldeles fr kul att skriva nya
funktioner till den fr att man skulle kunna lta bli s sedan dess
har det bara blivit mer och mer och fr tillfllet r det den mest
kompletta LysKOMklient som finns. Nackdelen: lngsamhet kan ltt
tgrdas genom att kra p en snabbare maskin. 
