Commit 1f5df49f authored by Linus Tolke's avatar Linus Tolke
Browse files

First version.

parent bcfe1976
Detta dokument kommer jag att konvertera till iso-8858-1
teckenupps{ttningen n{r en emacs p} lysator till}ter mig att editera
s}dana dokument.
OSF Ofta st{llda fr}gor f|r elispklienten.
F|rfattare: Linus Tolke
Inspirationsk{lla: Lyskom, Lyskom fr}gor och svar; Elispklienten.
Fr}gor sammanst{llning:
Allm{nna fr}gor:
a1: Vad {r LysKOM?
a2: Vad {r elispklienten?
a3: Var finns den att hitta?
a4: Vad finns det f|r typ av dokumentation?
Konfigurering:
c1: Varf|r st}r det att vissa L{ser, V{ntar, ]terser?
c2: Varf|r st}r det att vissa \gnar igenom inl{ggen, R{ttar tentor,
[ter pizza, Hade gl|mt vad som skrivits tidigare?
c3: Hur {ndrar man sin kom-mercial?
c4: Hur {ndrar man de andra meddelandena?
d1: Kan jag f} saker att h{nda automatiskt n{r jag startar lyskom?
d2: Kan jag f} saker att h{nda automatiskt n{r jag loggat in?
d3: Hur kan jag s{tta vilka default-promptar jag skall f} n{r jag har
l{st ut allt.
Vid editering:
e1: Kan jag f} saker att h{nda automatiskt n{r jag b|rjar skriva en
: kommentar?
e2: Hur g|r jag f|r att binda speciella tangenter f|r att skriva en
kommentar?
f1: Hur g|r jag f|r att beh}lla lyskom-bufferten p} sk{rmen medan jag
skriver en kommentar, ett inl{gg eller ett brev?
M|ten:
g1: Hur g|r man f|r att {ndra typen p} ett m|te?
Fr}gor om inl{gg:
i1: Hur anger man F|r k{nnedomsmottagare?
Konstigheter:
k1: Varf|r tar det s} l}ng tid att logga in?
k2: Varf|r tar det s} l}ng tid att g|ra endast?
k3: Varf|r sorterar elisp-klienten om m|tena i samma ordning som n{r
jag g}r in i lyskom varje g}ng jag g|r endast?
k4: Varf|r st{mmer inte antalet ol{sta inl{gg n{r jag g|r status
person som n{r jag g|r lista nyheter?
k5: Varf|r {r antalet ol{sta i vissa m|ten negativt n{r man g|r
status?
Lappar p} d|rrar:
l1: Varf|r f}r jag Du har en lapp p} d|rren, det finns ingen s}dan
text n{r jag loggar in?
Markering:
m1: Vad inneb{r markering?
m2: Kan man markera inl{gg p} olika s{tt?
m3: Hur g|r jag f|r att markera inl{gg p} ett annat s{tt?
m4: Hur g|r jag f|r att }terse inl{gg markerade p} ett visst s{tt?
m5: Vilken markering anv{nder sig elispklienten normalt av?
Personer:
p1: Varf|r finns det tv} statuskommandon: Status m|te och status person?
Sessionen:
s1: Kan jag }terstarta sessionen efter det att jag g}tt ur lyskom?
Maskinspecifika saker:
u1: Varf|r kan jag inte k|ra elisplienten p} en dec-station.
Historia:
|1: Varf|r skrevs elisp-klienten?
Fr}gor och svar:
Allm{nna fr}gor:
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 tillg}ng
till lades ner. QZ-KOM gick att k|ra p} DEC-10 och DEC-20-maskiner och
den sista DEC-20-maskinen p} LiTH som studenterna hade tillg}ng till
s}ldes och f|rsvann. KOM hade blivit vanebildande f|r en del och det
bed|mdes att en ers{ttning var n|dv{ndig.
a2: Vad {r elispklienten?
Elispklienten {r den f|rsta fungerande klienten till lyskom, det {r
dessutom den f|r tillf{llet mest kompletta. Den {r skriven helt i
elisp och k|r under gnu-emacs (testad minst i versionerna 18.51,
18.55, 18.57 och 18.58).
a3: Var finns den att hitta?
Elispklienten kan du h{mta med anonym ftp fr}n lysator:
host: ftp.lysator.liu.se
dir: /pub/lyskom/elisp-client/
filnamn: lyskom-0.34.3.el.Z (vanliga klienten)
filnamn: lyskom-0.34.3.elc.Z (byte-kompilerad version av klienten)
filnamn: englist-lyskom-0.34.3.elc.Z
a4: Vad finns det f|r typ av dokumentation?
Dokumentation finns p} latexinfo format. Eftersom jag inte f}tt den
igenom latex s} har jag inte lagt upp den f|r anonym ftp. D{remot har
den g}tt igenom info-genereringsprogrammet och du kan allts} h{mta den
antingen som info-fil: elisp-client-0.34.4.info eller som ren textfil
elisp-client-0.34.3.txt fr}n samma dir som du h{mtar klienten.
Konfigurering: (Om du inte f|rst}r beskrivningarna av hur du skall
g|ra olika saker s} skall du inte g|ra dem.)
c1: Varf|r st}r det att vissa L{ser, V{ntar, ]terser?
Specifikationen f|r LysKOM s{ger att klienten kan tala om f|r servern
vad den tror att anv{ndaren g|r. Detta kan vara en godtycklig text.
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 mfl.
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.)
c2: Varf|r st}r det att vissa \gnar igenom inl{ggen, R{ttar tentor,
[ter pizza, Hade gl|mt vad som skrivits tidigare?
Eftersom det st}r klienten fritt att s{nda in vilket meddelande som
helst har vi gjort s} att meddelandet som talar om vad man g|r n{r man
l{st ut alla m|ten {r v{ldigt l{tt att {ndra. Det ligger i variabeln
kom-mercial och det {r en str{ng.
c3: Hur {ndrar man sin kom-mercial?
M-x set-variable <RET> kom-mercial <RET> "R{ttar tentor." <RET>
c4: Hur {ndrar man de andra meddelandena?
Det finns en assoc-lista i variabeln kom-tell-phrases som best}r av
symboler och texter som klienten skickar till servern n{r kommandona
med samma namn som symbolen utf|rs. 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 s|ker efter.
d1: Kan jag f} saker att h{nda automatiskt n{r jag startar lyskom?
Ja, lyskomklienten skapar en emacsmode med de flesta vanliga
defaulten. Bl.a. k|rs lyskom-mode-hook n{r man startar lyskom.
d2: Kan jag f} saker att h{nda automatiskt n{r jag loggat in?
Ja, l{s dokumentationen f|r kom-do-when-starting.
d3: Hur kan jag s{tta vilka default-promptar jag skall f} n{r jag har
l{st ut allt.
Default {r att f|rst f} prompten ]terse alla markerade - och sedan
Se tiden.
L{s dokumentationen f|r kom-do-when-done.
Vid editering:
e1: Kan jag f} saker att h{nda automatiskt n{r jag b|rjar skriva en
kommentar?
Ja, editeringsmoden {r en vanlig emacs-mode s} tillvida att den k|r
lyskom-edit-mode-hook n{r man startar den.
e2: Hur g|r jag f|r att binda speciella tangenter f|r att skriva en
kommentar?
Eftersom lyskom-edit-mode g|r vissa speciella tangentbortsbindningar
och har en hel del buffertlokala variabler kan man inte v{lja 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
grundinst{llningar som byggs p} skall man s{tta
lyskom-edit-mode-mode-hook som k|rs innan de speciella bindningarna
g|rs.
f1: Hur g|r jag f|r att beh}lla lyskom-bufferten p} sk{rmen medan jag
skriver en kommentar, ett inl{gg eller ett brev?
Du talar om f|r elisp-klienten att du vill att den skall anv{nda det
andra f|nstret/skapa ett nytt f|nster f|r att skriva i genom att s{tta
variabeln kom-write-texts-in-window till other.
(setq kom-write-texts-in-window 'other) i din .emacs till exempel.
M|ten:
g1: Hur g|r man f|r att {ndra typen p} ett m|te?
Det g|r du inte med elisp-klienten.
Fr}gor om inl{gg:
i1: Hur anger man F|r k{nnedomsmottagare?
Det finns inte n}gon s}dan m|jlighet. Anv{nd Mottagare eller Extra
kopiemottagare:
Konstigheter:
k1: Varf|r tar det s} l}ng tid att logga in?
Lokalt p} din maskin sparas ingen som helst information om vilka
texter du l{st eller vilka m|ten du {r medlem i. Allt detta h{mtas
nytt varje g}ng du loggar in. Dessutom h{mtas en lista p} alla texter
du har markerat (f|r att du skall kunna f} fram texten Markerat av
dig. eller Markerat av dig och 5 andra. n{r du l{ser).
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.
k2: Varf|r tar det s} l}ng tid att g|ra endast?
k3: Varf|r sorterar elisp-klienten om m|tena i samma ordning som n{r
jag g}r in i lyskom varje g}ng jag g|r endast?
Endast {r f|r tillf{llet lite korkat implementerat. Det finns n{mligen
ett anrop till servern som g|r just endast. Detta anv{nder sig
klienten av och sedan g|r den det som {r l{ttast: H{mtar om all din
information fr}n b|rjan igen (som n{r du loggade in).
k4: Varf|r st{mmer inte antalet ol{sta inl{gg n{r jag g|r status
person som n{r jag g|r lista nyheter?
Antalet ol{sta du f}r fram med lista nyheter {r det antal som klienten
k{nner till. (Alla dessa ligger som nummer i listor.)
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.
k5: Varf|r {r antalet ol{sta i vissa m|ten negativt n{r man g|r
status?
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.
Lappar p} d|rrar:
l1: Varf|r f}r jag Du har en lapp p} d|rren, det finns ingen s}dan
text n{r jag loggar in?
Du har tagit bort lappen p} fel s{tt. Du skall anv{nda kommandot
"Ta bort lapp p} d|rren" f|r att ta bort en lapp. Det du m}ste g|ra
f|r att fixa detta {r att anv{nda kommandot "Ta bort lapp p} d|rren"
och ta bort den obefintliga lappen.
Markering:
m1: Vad inneb{r markering?
Markering {r ett s{tt f|r dig att spara inl{gget. Markerade inl{gg
rensas inte bort av systemet.
m2: Kan man markera inl{gg p} olika s{tt?
Ja.
m3: Hur g|r jag f|r att markera inl{gg p} ett annat s{tt?
S{tt variabeln kom-default-mark till nil s} f}r du en fr}ga varje
g}ng du markerar ett inl{gg. Alternativen {r heltalen 1-255.
m4: Hur g|r jag f|r att }terse inl{gg markerade p} ett visst s{tt?
Anv{nd kommandot ]terse markerade (}m) ist{llet f|r ]terse alla
markerade (}am).
m5: Vilken markering anv{nder sig elispklienten normalt av?
100.
Personer:
p1: Varf|r finns det tv} statuskommandon: Status m|te och status person?
Om du tittar noggrannare ser du att de ger helt olika information.
Status m|te f|r en person talar om n{r personen skapades, n{r n}gon
sist skickade ett brev till denne medan Status person talar om hur
mycket inl{gg personen skrivit, hur l{nge han har varit inne i LysKOM.
Sessionen:
s1: Kan jag }terstarta sessionen efter det att jag g}tt ur lyskom?
Nej.
Maskinspecifika saker:
u1: Varf|r kan jag inte k|ra elisplienten p} en dec-station.
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))))
Historia:
|1: Varf|r skrevs elisp-klienten?
Ur: En sl| implementat|rs bek{nnelser av ceder (Per Cederqvist)
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.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment