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.

Mina retrodatorer

Det är alltid kul med gamla datorer. De är kanske inte de mest användbara, men de ger en den där rätta nostalgikänslan.

Här är den nya hörnan som jag just börjat bygga på. Sladdhärvorna är vad de är. Jag gör om så ofta att jag inte riktigt orkar dra kablarna snyggare.

Retrohörnan i köksddelen. Ännu inte helt klar, men har en C64, en Amiga CD32 och en vampyrbiten Amiga 600.

Sen har vi originalhörnan med de första datorerna jag skaffade. Amiga 500an fick jag 1990 av min farsa, men Amiga 1200 köptes 2017 eftersom jag saknade den gamla 1200an jag sålde på 2000-talet.

Den andra hörnan med en WB 3.1.4-bestyckad Amiga 1200 och en Amiga 500 som kör en ACA500+.

BBS-datorn, som står i min arbetshörna.

Längst ner i bild är den Intel NUC som driver hela BBS:en med alla dess funktioner. Allting kör Ubuntu 18.04 med en FS-UAE.
Inte en retrohörna direkt, men mitt arbetsrum med tre skärmar och en modern PC. Det fungerar bra och är ett bra ställe att få jobbet gjort på.
Publicerat den
Kategoriserat som Diverse

Amiga vs PC

Under åren 1993 till 1996 förändrades spelplanen för det som tidigare kallats hemdatorer. Atari var dött och sedan föll Amigan när Commodore gick i konkurs. The ERICADE Network var ju en Amigabaserad BBS och de flesta av våra användare var därför Amigaanvändare. Men… PC-ägarna blev allt vanligare. 1995 fick BBS-systemet Nikom stöd för teckenkodningar som PC-datorerna använde och då kunde allt fler PC-ägare göra basen till sin hemvisst. Effekten blev att det uppstod en hel del debatter om vilken av datorerna, Amigan eller PCn som var den bästa.

Vid det laget hade PCn snabbare processor och började få bättre mjukvara. Men Amigaägarna diskuterade att processorns snabbhet mätt i MHz inte var allt. Och diskussionerna blev allt mer desperata. När man läser texterna ser man att det finns en stor mängd av åsikter och alla håller på sitt:

Den 22 november 1995 skriver Erik M. Johansson:

”Har nu gjort en djup dykning i Win95 och kommit fram till att jag
måste bli frälst. så här med tycker jag att Win95 är bäst. Fan det
är ju hundra ggr bättre än AmigaOS.”

Axel Hübinette svarar:

”Gah! Skämtar du med mig? Det är ju verkligen dåligt! Win 95 är ju slött
även på 486/66mhz, det är barnsligt, en liten meny som ploppar upp när man trycker på start. Nej, det är på tok för slött och okontrollerbart för att
ens räknas som OS.”

Och sådär pågick det fram och tillbaka fram till slutet av 90-talet då det inte längre gick att argumentera för Amigan.

25 år sedan Commodore dog

Idag är det den 29 april 2019 och på dagen 25 år sedan Commodore försvann. Ett par tankar:

Allt gick utför efter 1992 vad det verkar…

En märklig graf som visar att Commodore försökte vända skutan. Men om du inte har några intäkter och din förlust sjunker, går det troligen i alla fall inte att rädda situationen. Det verkar som om det är en datapunkt per år. Vågar man gissa årsbokslutet för det året. I det hela taget visar den att försäljningen  gick åt fanders innan Amiga 1200an ens kom ut. Den toppade med A600an. Detta måste ha varit detta kapitala misstag som, om man ska tolka grafen, blev det som till sist knäckte företaget.  Och CD32an verkar inte ens ha lyckats gör någon skillnad i försäljningen i längden. Eventuella tillfälliga toppar syns inte på grund av de få datapunkterna. Sen är jag allergisk mot grafer med två Y-axlar. De är verkligen lätta att läsa av fel för att inte tala om röriga.

Såg jag höjer ett glas med 6 cl Ardbeg Whiskey och minns det legendariska företaget och en bit av min barndom/ungdom. Tack, för allt C=!

Publicerat den
Kategoriserat som Diverse

Slogans.. Slogans.. Slogans..

När jag startade The ERICADE Network var jag stolt över det splitternya USRobotics 14400-modemet som körde ruljansen. Det var det snabbaste modemet som fanns runt året 1993. Detta var anledningen till att vår första slogan var ”a network in the speed of light”. Problemet var att basen började sin karriär på en slö Amiga 500. Denna var ju med oss nästa ett år innan vi uppgraderade. Så om det var en bra slogan kan man diskutera.

Våren 1994 ändrade jag slogan till ”The SOUNDSIDE of SOUNDENGINEERING” efter att vi bestämt oss för att satsa på närradio och ljudteknik.

Den slutgiltiga slogan, och den vi använder idag, blev ”We’re controlling transmission”. Detta efter att vi börjat koppla basen till Unga Forskares närradiosändningar.

Som en bonus kan nämnas (och som också ses i bilden ovan!) att den första ”slogan” jag skrev, även om den aldrig var menad som en slogan, var från filmen Aliens. Det enda skälet var att det var en av mina favoritfilmer. Så någon egentlig anledning behövdes nog inte.

Vikten av ett häftigt handle

På BBS-tiden fanns det många Sysops som hade handles. Alltså smeknamn, även om det är det sista de skulle vilja kalla det. Detta beteende var särskilt vanligt när Sysopen var medlem i en demogrupp och inte ville skylta med sitt riktiga namn. När jag tittade i den legendariska Jargong-filen, såg jag följande diskussion om hur namn väljs i piratscenen. ”Warez d00dz” är en beskrivning av personer som var involverade i distributionen av piratkopior.

”(…)Warez d00dz will never have a handle like “Pink Daisy” because warez d00dz are insecure. Only someone who is very secure with a good dose of self-esteem can stand up to the cries of fag and girlie-man. More likely you will find warez d00dz with handles like: Doctor Death, Deranged Lunatic, Hellraiser, Mad Prince, Dreamdevil, The Unknown, Renegade Chemist, Terminator, and Twin Turbo. They like to sound badass when they can hide behind their terminals. More likely, if you were given a sample of 100 people, the person whose handle is Hellraiser is the last person you’d associate with the name. ”

En bättre text än denna har jag aldrig funnits på ämnet. Det var ofta något namn som lätt kunde associeras med seriemördare eller någon riktigt läskig typ. Jag var aldrig med i någon piratscen, men dock medlem i en demogrupp som hette Eternal.

Daemon of Eternal

Själv kallade jag mig Daemon efter dessa bakgrundsprocesser som gör saker i ett Unix-system. Jag tyckte jag var någon av en gårdstomte som såg till att allting bara fungerade. Faktum är att jag inte visste att en Daemon är en halvgud, vilket om jag hade vetat det, nog hade fått mig att välja något annat handle. Numera kallar jag mig Stripecat, vilket är precis rätt nivå av mesighet för mig.

Sen tror jag att Warez/Pirat-scenen var lite extrem i detta sammanhang. I demoscenen var de lite mindre machoklingande namnen faktiskt vanligare än dessa överdrivna som Jargonfilen talar om. Men när jag tänker tillbaka på det hela, roar det mig något otroligt att läsa dessa texter och minnas hur det var i början av 90-talet.