Lamer!

Klassisk lamer som gör vad lamers gör mest, spelar.

Ord är roliga ting. De har ibland sitt eget liv. När jag växte upp i Amigavärlden lärde jag mig snabbt att inte vara en lamer. Ordet är givetvis inte knutet till Amigavärlden utan användes som ett rent allmänt skälsord bland 90-talets datorfolk. Så… Vad är då en lamer? Det är ju ett låneord från Engelskan. Lame betyder lam. I överförd bemärkelse, någon som är inkapabel.

Så en lamer är alltså någon som inte kan och inte vet hur man gör coola saker på en dator. En person som inte kan annat än att spela eller ställa dumma frågor på BBSer. I datorvärlen, precis som överallt annars där människor bygger gemenskaper, fanns det en hierarki. Högst upp stod de som gjorde häftiga demon, ritade fantasieggande grafik eller komponerade musik på datorer. Längst ner hittade vi ”Lamern”. Uttalet var givetvis ”Läjmer” även om en del sa det med Svenskt uttal ”Laaamer”.

På baserna fanns det givetvis ett antal lamers som försökte se till att få ladda ner allting de kunde hitta på basen utan att tillföra något. Dessa var mest irritationsmoment som de flesta stod ut med och möjligen skrattade åt.

I demovärlden, där produktioner hade högt värde och inaktivitet sågs ner på, kunde demogrupper ses som ”lama”. Gruppen jag var med i, Eternal, hamnade i ett problem när man inte skapat något på ett halvår. Detta ledde till att vi faktiskt gjorde ett demo för att slippa ”lamer-stämpeln”.

Så, där har ni det, dagens ord: lamer.

NikomStat

Exempel på topplista skapad med NikomStat

Det utvecklas fortfarande kommandon för Nikom. I alla fall har jag skrivit ett kommando som används för att generera topplistor över de mest aktiva användarna.

Ladda ner det här!

Här är manualen:

NikomStat
=========

Version 1.1 – Släppt 2019-07-17
Skapat av Erik Zalitis på The ERICADE Network BBS.
Supportas på https://the.ericade.net/?p=938

Versionshistoria
============

Version 1.1 – Släppt 2019-07-17
————————-

(Buggfix) Första parametern lästes aldrig in.

(Ny funktion) – Parametern n som sätter poäng för antalet veckor användaren varit inaktiv. Sätts normalt till ett negativt värde för att ”straffa” inaktiva användare, så att de åker ner från topplistan.

Version 1.0 – Släppt 2019-07-14
————————-

Första versionen.

Kontakt
=======

Jag kan nås på epostadressen erik@zalitis.se.

Finns också på BBSen The ERICADE Network på:

– SSH, the.ericade.net:22. Inloggning:bbs med lösen bbs.
– Telnet, the.ericade.net:23.

Följ min berättelse om en BBS någonstans i Stockholm under 90-talet:
https://the.ericade.net

Förbehåll
=======

Jag tar inget ansvar för eventuella problem som kan uppstå med detta program. Läs denna manual innan du installerar programmet. Dvs, läs den nu!

Vad är NikomStat?
==============

Tidigare har det funnits en del skript som använt NikomUS för att generera topplistor i Nikom. NikomUS fungerar inte med versioner av Nikom nyare än version 1.61. Då ingen verkar ha kunnit hitta orsaken till detta, valde jag att bygga en ersättare i Arexx.

NikomStat ersätter den vildvuxna flora med skript som tillsammans med NikomUS användes för att generera topplistorna. NikomStat genererar direkt färdiga listor som kan användas i basen utan att man måste ha några skript som formatterar datat. Resultatet ser i princip likadant ut som de listor som du är van vid.

Fördelar med NikomStat

– Två filer behövs för att generera alla listor att så de blir helt uniforma.

– Installationen är extremt enkel och tar bara några minuter.

– Det är extremt enkelt för den som kan Arexx att lägga till funktioner
eller ändra hur rapporterna ser ut.

– Skripten använder standardfunktioner i AmigaOS/Arexx/Nikom och borde vara
hyffsat framtidssäkra.

– Varje ny lista du vill ha skrivs in i maketoplist.rexx som en ny rad.
Detta gör det trivialt att skapa alla listor du någonsin skulle kunna drömma
om.

Installation
==========

1. Packa upp arkivet.

2. Se till att filerna nikomstat.rexx och maketoplist.rexx hamnar i nikom:rexx

3. Öppna nikomstat.rexx i en bra editor (inte ed!) och ändra namnet på din BBS i variabeln bbs.

4. Öppna maketoplist.rexx i valfri editor och kolla om du vill ändra någonting. Detta är generellt sett inte nödvändigt. Men du kanske har andra åsikter om hur poängen ska beräknas. Vad vet jag? 🙂

5. Lägg in ”rx nikom:rexx/maketoplist.rexx” i din crontab-fil. Detta förutsatt att du kör cronjob och har en cronprogramvara installerad. Annars får du köra skripten manuellt.

För att generera listorna, kör du ”rx nikom:rexx/maketoplist.rexx”. Då kommer den att köra några minuter och bygga alla listor som definierats.

Exempel
=======

rx nikom:rexx/nikomstat.rexx i1 r0 w10 u20 d-20 fnikom:texter/svenska/g.txt

Denna kommandorad gör att en fil som heter g.txt skapas i nikom:texter/svenska/. Poängen beräknas som 1 poäng för varje inloggning, 0 poäng för varje läst text, 10 poäng för varje skriven text, 20 poäng för varje uppladdad fil och avdrag på 20 poäng för varje nedladdad fil.


Att notera
========

– Avsaknade funktioner

Parametern ”p” är inte implementerad. Denna parameter ska normalt göra att NikomStat visar vad den gör. Kommer troligen i nästa version.

– Förvalda poäng

Om du inte anger några parametrar, kommer poäng ges enligt:

i=inloggningar=1 poäng
r=last=0 poäng
w=skrivet=5 poäng
d=nedladdat=-20 poäng
u=uppladdat=20 poäng
t=inloggadisekunder=0 poäng

– Parametrar

Parametrarna följer NikomUS standard enligt:

i – Poäng för inloggningar. Sätter du parametern i10 ger du 10 poäng för varje inloggning. Detta format gäller alla parametrar som ger poäng. Notera att det INTE är något mellanslag mellan i och poängsiffran.

w – Poäng för skrivna texter.

r – Poäng för lästa texter.

t – Poäng för antal inloggade sekunder.

u – Poäng för antal uploads.

d – Poäng för antal downloads. Man sätter normalt minuspoäng för detta. ex.vis d-10.

n – Poäng för antalet inaktiva veckor. Man sätter normalt minuspoäng för
detta. ex.vis n-2.

f – Filnamn. fram:katt.txt lägger den färdiga rapporten i ram: som katt.txt. Som standard blir filnamnet ram:temp.dat om man inte sätter parametern.

h – Generera huvud. Utan huvud blir det bara en lista. Som standard genereras  ett huvud.

l – Namn på listan. Skriver du lInloggnings, kommer rapporthuvudet skriva ”Inloggningslistan”. Suffixet ”listan” kan ändras i nikomstat.rexx.

q – Vänd listan upp och ner. Dvs, den som får lägst poäng hamnar högst upp i rankningen. q0 slår från och q1 slår till värdet. Som standard är det högst poäng som kommer högst upp i listan. Alltså q0.

Om man inte anger en parameter, används ett standardvärde. Det är därför viktigt att allt ange alla parametrar även om de ger 0 poäng för att se till att poängen blir korrekt. Så om du vill garantera att inloggningar t.ex. ger noll poäng, sätter du i0, annars kommer inloggningar tilldelas 1 poäng per inloggning om du inte anger i-parametern.

Exempel:
rx nikom:rexx/nikomstat.rexx i1 w1 u10 d-20 n-2 fram:lista.txt

– Minnesanvändning

NikomStat genererar två filer i ram:. Dessa finns bara medan skriptet körs och tas sedan bort. Däremot läser skriptet in alla användare i minnet medan den kör. Varje användare tar upp runt 80 bytes i minnet.

Så har du 4500 användare i basen, kommer NikomStat behöva drygt 350 kb för att hålla dem i minnet. Så fort skriptet körts klart, lämnas minnet tillbaka.

Men om du har många användare och ont om minne, bör du inte använda NikomStat.

Minne från förr

Ur B-posten nummer 2 – 1994. Med mig som chefredaktör.

1994 tog jag över skolans avsomnade tidning, B-posten. På denna tidning skrev jag ett antal artiklar och såg till att göra reklam för min BBS. Hur många från skolan som faktiskt ringde den, vet jag inte, men några var det nog allt.

The Perceptible society, Mikael Ståldals BBS.

Även Mikael Ståldahl hade en BBS som fanns igång runt en 1994. Denna gjorde vi också reklam för.

Modultävling nummer 3/95

Såhär såg man ut 1995. Studion är inte den vi sände från utan en provisorisk studio vi satte upp för att lära ut hur man gjorde radio på Unga Forskares lokaler på söder i Stockholm.

Under basens alla år i drift hann vi hålla inte mindre än tre modultävlingar. Den första 1994, den andra april 1995 och den tredje, den gick av stapeln sommaren 1995. Resultatet sändes i radion den 1995-08-27. Vad är då en modultävling? Jo, musik gjord på en Commodore Amiga med något program av typ Soundtracker, Noisetracker eller Protracker kallas för modulmusik. Det är en fil som innehåller alla instrumenten samt ett ”partitur” som spelar instrumentet som en sång. Det låter som en mycket karaktäristiskt synt! Amiga modulerna är klassiska och uppskattades av många.

Nu har jag, ur gömmorna, lyckats gräva fram hela sändningen och klippt ur själva tävlingen. Lyssnarna får ingen introduktion till det hela då de antogs ha läst tävlingsreglerna på BBS:en. Förra tävligen var avklarad utan att alla låtarna fick höras mer än 30 sekunder, vilket folk klagade på. Så denna gång fick varje låt gå till slut. Jag läser upp varje bidrags presentation.

Här är topplistan:

”Guld”
1. Spline alias Gabriel Zackari med Intergalactic

”Silver”
2. John Enström med Noisure

”Brons”
3. MeanAce alias Axel Hubinette med WestcoastJazz II
4. Deviltry alias Björn Petterson med Jaha.
5. Micke Evervall med SoftTech.
6. Svante Hedin med Anarchy Inspired.
7. John Andersson med Take it personal.

Lyssna här!

Vi som startade alltsammans…

Originalet till bilden är sedan länge borta, så detta är allt vi kan erbjuda.

Detta är Radio Unga Forskares sändarteam på en bild från 1995. Vi hade just startat närradiosändningarna och var samlade i Unga Forskare Stockholmsdistriktets lokaler på Söder.

The ERICADE Network BBS integrerades snabbt med radion och vi kom att hålla flera musiktävlingar i radions regi.

En närmare titt på bilden visar ledarskapet på The ERICADE Network BBS

En ”inzoomning” av bilden visar från vänster till höger: Erik Zalitis, Pamela Strandberg och Andreas Yannelos.

En unik bild då det är Sysop och två av våra Cosysops som ”tjänstgjort” på BBSen under åren som gått.

Och så användarna också….

Och de sista två personerna på bild som hörde till basen. Kristian Kjeldsen (till vänster) och Per Larsson (till höger). Kristian var medlem i gruppen Eternal och kallade sig ”Yacuza”. Per var en vanlig användare på basen och var även kvar under basens ”solnedgång”, åren 1998-2000.

Namnsdagskommandot – en studie i Arexx

De var namnsdagsbarn dagen då detta inlägg skrevs i alla fall.

1997 lade vi till ett namnsdagskommando till basen som kördes vid inloggning och berättade vem som hade namnsdag när någon loggade in. Det skrevs från början 1994 av Mattias Appelqvist. Kommandot läste från en textfil som innehöll alla namnen.

En fråga till er som programmerar: hur skulle ni skapa ett kommando som ska hämta ett namn ur en lista med namn baserad på dess position? Personligen skulle jag trycka in dem i en array och sedan ta reda på vilket namn i ordningen som ska plockas fram. Man får hitta en lösning för skottår, men annars är det bara att plocka fram post 218 ur arrayen dag nummer 217 (arrayer börjar normalt på 0!) förutsatt att namnen är lagrade i ordning efter vilken dag på året de har namnsdag. Inget problem här.

Men 1994 fungerade det lite annorlunda. Först och främst var minnet begränsat. The ERICADE Network hade en Amiga med 6 MB minne. Detta minne skulle räcka för att köra basen och operativsystemet med hundratals användare. Så att läsa in alla namnen i minnet vara lite mer tveksamt. Det andra skälet är att Arexx arrayhantering var ganska primitiv.

Så hur löser man detta? Jo, kommandot måste läsa från disken. Detta är i sig ett problem, för diskar är slöa jämfört med minnet. Om man antar att man lägger alla namnsdagar i ordning efter dag, skulle arexx-programmet behöva stega ner 219 rader för att hitta namnet bundet till dag 219. Detta är inte effektivt och kommer att göra kommandot slött och resurskrävande.

När jag startade upp BBSen 2018, insåg efter några månaders drift att namnsdagskommandot ofta visade fel namn. Det visade sig bero på att det hade en del intressanta buggar och dessutom använde 1993 års namnlängd. Denna slutade gälla på 2000-talet. Så jag hämtade den senaste namnlängden från Wikipedia och gjorde den till en textfil. Men vi har fortfarande inte svarat på frågan hur kommandot hittade dagens namn.

Detta var inte helt uppenbart för mig när jag tittade på koden eller på textfilen den läste. I början av namnfilen såg det ut såhär:

0062 0451 0817 1216 1614 2026 2410 2817 3233 3619 4026 4425
*
SVEA SVERKER

filen fortsatte sedan med alla namnen.

Vad var alla dessa märkliga siffror? En titt i koden visade att den verkade koppla siffrorna till månaden.

dag = right(date(’s’),2)
man = substr(date(’s’),5,2)
sendstring lf lf
if ~exists(fil) then call fel(’Hittar inte ’fil)
if ~open(’t’,fil,’r’) then call fel(’Kunde inte läsa från ’fil)
mpos = readln(’t’)
mpos = word(mpos,man)
call seek(’t’,mpos,’b’)

Koden ovan tar fram månadens nummer i ordningen. Juni är t.ex. månad nummer 6 och januari är 1. Sen läser den in den första raden och plockar ur den siffergruppen som motsvarar månaden. För juni tar den alltså den sjätte siffergruppen. Men varför då? Jo, denna siffergrupp talar om hur många bytes in i textfilen som månadens namn börjar. Det är ett intressant sätt att göra det på!

Men det ger ju inte hela lösningen. Efter att den hittat första namnet för den aktuella månaden, stegar den fram till korrekt dag. Om det är den 10 juni, stegar den tio rader ner och hämtar namnet.

Detta kommando har krånglat rätt mycket redan innan jag skrev om det för den nya namnlängden. Vissa dagar kraschade skriptet för den inte riktigt hittade rätt. Och att räkna ut hur många bytes in i filen man gå för att hitta månadsstarten visade sig vara en utmaning. Dessutom var man tvungen att tänka på hur Amigan kodar radbrytningar när man gjorde jobbet. Jag skrev nämligen filen på en PC.

Så jag hittade en lösning till sist och fick allting att fungera.

Cosysops

Pamela Strandberg, vår tredje cosysop framför vår första BBS-dator, en Amiga 500.

Sysop är ju som bekant en förkortning av System Operator, det vill säga den som sköter och äger systemet. Cosysopen är alltså en person som fungerar som vice Sysop. Vilket är den person som hjälper Sysop med saker som att godkänna nya användare, skriva brev till de som gjort olämpligheter, ge mer status till dem som förtjänar det och göra reklam för basen på andra ställen.

Det kräver ett mått av lojalitet, då personen oftast har nästan lika mycket makt över systemet som sysop. En arg cosysop kan förstöra systemet eller ge basen dåligt rykte. Basens första cosysop heter Peter Lönnebring och fick rollen som tack för sitt jobb med att hjälpa mig testa systemet innan det blev officiellt. Han var med fram tills vi båda gick ur gymnasiumet. Han var nämligen klasskamrat med på Teknisk linje.

Nästa cosysop blev Mattias Nord som jag lärt känna 1993, när jag hjälpte honom sätta upp hans egen BBS där jag också blev Cosysop för honom. Så vi bytte roller med varandra, han var cosysop på min BBS och jag på hans.

Våren 1994 blev jag ihop med Pamela Strandberg som blev basens tredje cosysop, samtidigt som Mattias var kvar i sin roll. Hon tillträdde sommaren 1994 och hjälpte till att höja kvalitén på texterna.

1996 gjorde jag och Pamela slut och RadioUFS ljudtekniker Andreas Yannelos blev tillförordnad cosysop när jag var borta från tangenterna. Främst under den Tysklandsresa jag gjorde efter att Pamela och jag gjort slut. Han hade inte någon avsikt att fortsätta och då blev det en ganska kort tjänstgöring.

Sommaren 1996 blev så Johan Hanson cosysop. Han kom från demogruppen Eternal som hade oss som sitt HQ. Jag värvade honom eftersom han mer eller mindre tog sig ann jobbet ändå. Han fick behörighet och titel och fortsatte med sin roll förtjänstfullt fram tills basens nedläggning mars 2000.

Det är svårt att tänka sig att köra en BBS utan cosysop. I alla fall under den tiden då det var hög aktivitet. Det hjälpte en hel del och gjorde att man verkligen kunde säga ”Vi” om hela projektet. Idag finns ingen cosysop, men det är verkligen inte många som loggar in ändå, så det är inte mycket jobb med det hela.

Ingen lycka med återställningen

Tillbaka från IBAS. Allt data återställt, men till vilken nytta?

Disken som jag lämnat in till IBAS för återställning kom tillbaka idag och med den tändes hoppet om några backuper. Men så icke. Det visade sig att jag några dagar innan jag återöppnade BBS:en 1998, faktiskt raderat innehållet och förstört alla backuper. Så det är så långt vi kommer. Men det finns en hel del godbitar på den andra hårddiskens sektorer. Så vi har många bra historier att berätta kvar. Var så säker.

Att få tillbaka datat

Min första Amiga-hårddisk till vänster och min sista Amiga-hårddisk till höger.

På tiden det begav sig var det få som tog backup. Jag gjorde det definitivt inte. Så det är ett mirakel att någonting finns kvar av basen. Av de c:a 52000 texter som som någonsin skrivits, finns kanske 10000 kvar idag. Det beror på hårddiskkrascher, oavsiktliga raderingar och skadlig kod. Lägg till det att Nikom från början bara kunde hålla 8192 texter och man var då alltså tvungen att radera gamla texter hela tiden för att komma vidare.

Så när jag 2018 började fundera på hur jag skulle återskapa basen, hamnade jag snabbt inför ett dilemma. Många hårddiskar hade slutat fungera. Den sista bashårddisken fungerade bra och jag lyckades återställa alla filerna genom lite jobb. Hårddisken till Amiga 500an gick sönder redan 2017 när jag utvärderade om jag kunde återställa den. Då hade jag som tur var redan kopierat alla filerna från den redan 2011. Filerna är en sak, men sektorerna är en annan. Om man dumpar disken sektor för sektor kan man återställa gammalt data som redan raderats. Denna option fanns bara för en av diskarna och den lyckades jag gör en komplett dump av mars 2019. Men den första disken som kört basen 1993-1994 hade gått sönder 1994 och kastats, vilket jag nu ångrar. Backuphårddisken från 1996 var också trasig och är ju skickad till IBAS för återställning.

Den stora utmaningen var basen som var igång mellan 1995-1998. Denna hade jag av misstag raderat, men den full dumpen av disken gjorde det möjligt att läsa datat direkt från sektorerna. Det är så jag lyckats återskapa en hel del av texterna och informationen, även om detta varit ett komplicerat jobb med mycket gissande och jämförande av data. En allierad i kampen om datat har varit filstämplarna på hårddiskarna. Dessa har kunnat göra det möjligt att berätta historien om basen med en stor noggrannhet. Utan textfilerna och deras fildatum hade historieskrivningen blivit mycket kortfattad.

Det är lite av ett detektivarbete att få fram allting och göra listor och statistik. Mycket har varit möjligt tack vare de användarlistor som genererades dagligen och kunde användas för att återskapa användarlistor och räkna ut hur mycket som skrivits och hur många texter det kan tänkas ha funnits.

Arbetet pågår och jag kommer hitta mycket ännu. Dock är det svårt att veta hur mycket som är möjligt att hitta. Tillsist tar materialet slut och då är troligen historieskrivningen så färdig den kan bli.

Om du var en av våra användare eller användare på en annan BBS, vill vi gärna höra dina historier och anekdoter. Hör av dig.

Att hantera irriterande användare

Axel var en aktiv användare hos oss som hade en egen BBS i Jönköping. Han berättar här, i en text från min BBS, om hur han hanterade en av dessa användare som inte kan bete sig rätt. Ett litet bevis på att troll inte är en ny företeelse:

”Det ringde en NÖRD till Axel BBS i förrgår. I loggfilen visade det sig att han hade dragit nytta av att man får 100 kb när man blir ny användare (utan att valideras) och gjort nya gubbar hela tiden med namn som BELGARION, INGA, JO, mm mm. Han uppgav aldrig tel nr eller ngt, men på min Telia Anita stod ju numret så jag ringde nummerupplysningen och tog reda på Namn, Adress, mm mm. Sedan skrev jag det stort så alla ser det när man loggar in. Nästa natt, när han åter igen ringde, denna gång som TUM, såg man i loggfilen: 02:47:49 TOM #103 loggar in 02:47:54 TOM #103 lägger på luren Han sket ner sig när han såg texten helt enkelt!! Åhh fy fan vad jag skrattade!!! HIHIHIHI!! HÄMND LJUVA HÄMND!!!! HAHAHAHAHAHAHAAAA!!!!”

Ja, många av trollen på den tiden var inte särskilt kompetenta utan helt enkelt antog att ingen någonsin skulle komma på dem. Men så var ju inte fallet.