Antik datorteknik: Att skriva program på svenska

04/02/2022

Detta är en artikel i serien ”Antik datateknik”.

Jag kommer i denna artikel att visa hur jag enkelt kan skapa en svenskspråkig variant av programmeringsspråket C, språket kallar jag sv och kompilatorn blir då csv. Notera att avsikten med denna övning är att illustrera hur enkelt det vore att erbjuda en nationell nybörejarplattform för unga programmerare. För att verifiera programspråket sv skriver jag ett program som läser in en textsträng och sänder resultatet som morsekod. Morsekoden visas också i textform. Följande steg blir att undersöka vilka förändringar jag behöver göra i koden för att programmet skall fungera på min emulerade minidator PDP11/70 som kör en gammal BSD Unix 2.11 från början av 1990-talet. Unix utvecklades i tiden på minidatorn PDP11 som klarade av att hatera flera användare på olika terminaler allt detta på en maskin med 4 MB (4 miljoner byte) minne. En modern hemdator har typiskt 2000 gånger mera minne … eller ännu mer.

Kompilering av ett program skrivet i sv görs på någon sekund. Jag kompilerar morsesändaren smorse.sv dock utan filtyp eftersom mitt kompileringsskript förenklas en aning om jag inte behöver kontrollera filtypen utan kan anta att användaren vet vad hen gör.

./csv smorse
Källkod:smorse.sv
Översättaren är definierad i swe.lex
Kompilerar översätteren swe.lex till c-kod
Kompilerar lex analysatorn till körbar maskinkod: sv
Översätter sv-programmet smorse.sv till c-kod: smorse.c
C-kod finns nu i smorse.c
Kompilerar nu till körbar maskinkod!
The executable is: smorse.run

Jag kan nu köra programmet med smorse.run

Notera att morsesändningen i ljudfilen är en annan än på skärmen ovan. En utmaning för lyssnare är att bena ut vad som sänts!

Texten nedan visar hur ”kompilatorn” för språket sv är konstruerad. Jag skriver därefter programmet smorse i språket sv för att verifiera att kompileringen fungerar. Notera att programmet på min Linux-dator genererar hörbar morsekod. PDP11 har inte ljudstöd varför jag tänker generera ett simulerat magnetband som huvuddatorn kan sända som ljud.

En elev som lär sig att programmera kommer att stöta på flera samtidiga utmaningar. Vid programmering dyker det upp nya begrepp såsom ”variabel”, ”fil”, ”adress” och många andra begrepp som inte är bekanta från vardagslivet. Eleven lär sig också ett nytt språk, mycket enkelt dock, som beskriver logiken i programmet. Det språk som ligger under de flesta programmeringsspråk idag är engelska. Om vi börjar undervisa tex. en 10-12 årig elev programmering så kan engelskan som sådan vara ett visst problem som kan göra det svårare för eleven att komma över den första tröskeln in i programmeringens värld.

En enkel lösning på problemet programmering på ett främmande språk är naturligtvis att vi i inledningsaskedet skulle låta eleverna programmera på svenska/finska/norska/estniska för att därefter då grunderna finns gå över till engelska som idag är en de facto standard.

Skulle programmering på t.ex. svenska kräva våldsamma ekonomiska resurser? Är inte utveckling av ett nytt programmeringsspråk samt kompilator för det ”nya” språket extremt dyrt? Svaret är att en enkel tvåstegskompilator kan skrivas i ungefär hundra rader kod … inte dyrt alltså!

Om någon läsare är intresserad av att experimentera med språket sv eller modifiera det för något annat språk så kan det löna sig att ta kontakt via en kommentar så skickar jag alla filerna som ett paket med epost. Jag gör inte dessa förfrågningar synliga. Programlistningar på vebben tenderar att vara opålitliga vilket kan leda till onödig felsökning om man kopierar koden direkt från skärmen.

Språket ”sv” samt kompilatorn ”csv”

Min emulerade PDP11/70 minidator kör idag på mitt arbetsbord och jag måste således hitta på något vettigt leksaksprojekt. Jag kör BSD Unix v2.11 på PDP11:an vilket betyder att jag har tillgång till i princip samma programmeringsverktyg som på min huvuddator d.v.s. en kompilator för språket ”c” (kompilatorn heter cc) samt verktyget lex (lex har jag använt mycket sällan).

Ett trevligt miniprojekt kunde då vara att skapa ett svenskt programmeringsspråk som strukturellt är identiskt med programmeringsspråket ”c” under Unix/Linux. Tanken är att det skall vara möjligt att koda helt i ”sv” eller koda i en hybridmiljö där det är möjligt att använda ”c” direkt utan att programmets funktion påverkas. Tanken är att översätta ”sv” till normalt ”c” som därefter kompileras till maskinspråk som vilket normalt c-program som helst.

Fördelen med att använda c som mellanliggande språk är naturligtvis at jag inte behöver skriva den egentliga kompilatorn och maskinkodsgeneratorn (jag har för många år sedan skrivit ett komplett programmeringsspråk ”sil=simple language). Problemet är alltså att skriva en översättare från
språket sv till språket c.

Unix ger tillgång till två klassiska verktyg för att skapa kompilatorer
lex (lexical analyzer) och yacc (yacc=yet another compiler compiler). Jag har aldrig tidigare aktivt använt någondera. Programmet ”lex” kan enkelt sköta översättningen från sv till c d.v.s. jag behöver inte yacc eftersom min kompilator redan finns under förutsättning att det program lex producerar förmår att skapa kompilerbar c-kod.

Jag definierar ett antal ”REGLER” i lex som beskriver hur t.ex. ett nyckelord, en kommentar, en textsträng o.s.v. definieras. Då en regel passar in på källtexten skriver mitt genererade analysatorprogram ut motsvarande element för språket c.

Då jag skriver min översättare från sv till c i lex blir programmets längd ungefär hundra rader kod d.v.s. programmet är väldigt litet och överskådligt. Mitt sv-språk är i detta skede ett subset av språket c men redan i nedanstående form kan man skriva riktiga program i sv. Språket kan enkelt utvidgas genom att modifiera filen swe.lex. Då jag använder lex för att kompilera min definition av sv blir resultatet ett c-program som heter lex.yy.c . Jag kompilerar därefter lex.yy.c till ett körbart program sv som sköter översättningen av en källkodsfil i sv till motsvarande c-program.

Lex-program för översättning av sv till c

Filen swe.lex kan enkelt modofieras så att en större del av c-språket stöds. Notera att jag har skrivit swe.lex så att resulterande c-filen som ett sv-program översätts till har exakt samma antal rader som källkoden i sv. Detta betyder att då jag kompilerar mitt sv program så stämmer radnumren för felmeddelanden för både sv och c.

Min definition av sv-språket ser ut på följande sätt:

%{
/* A lexical analyzer for the computer language "sv". This is a simple translation */
/* of the "c" language into swedish. The corresponding "compiler" translates a */
/* sv-source into c-language that can be compiled using an ordinary c-compiler */
/* need this for the call to atof() below */
#include <math.h>
/* need this for printf(), fopen() and stdin below */
#include <stdio.h>
%}
WHITESPACE [ \t\n]+
DIGIT	  [0-9]
ID	  [a-zA-Z][a-zA-Z0-9]*
CHAR	  [a-zåäö][A-ZÅÄÖ][0-9][\ ][!?][\n]
COMMENT	  \/\/.*[\n]
STR1	  \".[\\]*\"
APP	  [\"]
LPAR	  [(]
RPAR	  [)]
LWAV	  [{]
RWAV	  [}]
TERMINATOR [;]
EXCL	  [!]
AE	  [Ä]
ae        [ä]
Aring	  [Å]
aring	  [å]

COMMA	  [,]

%%
{DIGIT}+		printf("%d",atoi(yytext));
{DIGIT}+"."{DIGIT}*	printf("%s", yytext);
{STR1}			printf("%s",yytext);
{LPAR}			printf("%s",yytext);
{RPAR}			printf("%s",yytext);
{LWAV}			printf("%s",yytext);
{RWAV}			printf("%s",yytext);
{EXCL}			printf("!");
{COMMA}			printf(",");
#inkludera		printf("#include");
#definiera		printf("#define");
program			printf("\nmain");
funktion		printf(" ");
resultat		printf("return ");
alternativ		printf("switch");
valt			printf("case ");
bryt			printf("break");
om			printf("if ");
medan			printf("while");
upprepa			printf("for");
annars			printf("else ");
skrivf			printf("printf");
skrivr			printf("printf");
fskrivf			printf("fprintf");
hämtarad		printf("getline");
hämta			printf("get");
sätt			printf("put");
läs			printf("read");
läsrd			printf("readln");
dröj			printf("delay");
heltal			printf("int ");
tecken			printf("char ");
byte			printf("byte ");
sanningsvärde		printf("boolean ");
register		printf("int");
bitmask			printf("int");
likamed			printf("==");
mindre_än		printf("<");
mindre_än_eller_likamed	printf("<=");
större_än		printf(">");
större_än_eller_likamed	printf(">=");
och			printf("&&");
binär_och		printf("&");
and			printf("&");
or			printf("|");
xor			printf("^");		
binär_exclusiv_och	printf("^\n");
vflytta			printf("<<");
hflytta			printf(">>");
storlek_t		printf("size_t");
\<\<			printf("<<");
\>\>			printf(">>");
=			printf("=");
\<			printf("<");
\>			printf(">");
\.			printf(".");
\&\&			printf("&&");
\&			printf("&");		
{ID}			printf("%s", yytext);
{TERMINATOR}		printf("%s",yytext);
{COMMENT}		printf("%s",yytext);
{WHITESPACE}		printf("%s",yytext);

"+"|"-"|"*"|"/"	printf("%s", yytext);
"{"[^}\n]*"}"	        /* eat up one-line comments */
%%
int main(int argc, char *argv[])
{
		++argv, --argc;	/* skip over program name */
		if (argc > 0)
			yyin = fopen(argv[0], "r");
		else
		yyin = stdin;
		yylex();
		return(0);
}

Verifiering av språket ”sv”

Ett enkelt sätt att visa att det nya språket ”fungerar” är naturligtvis att skriva ett riktigt program i
programspråket sv. Jag byggde för kanske tjugo år sedan några led-ficklampor med några barnhemsbarn där vi använde en liten mikroprocessor som programmerades i mitt språk ”sil” (simple language) för Microchips processor 16F84. Ficklamporna programmerades så att de olika barnens ficklampor kunde blinka ägarens namn i morsekod.

Nedan visar jag hur man kan skriva ett program i språket sv som läser in en textrad från användaren och
”sänder” texten som morsekod till skärmen men också som morseljud via datorns högtalare. Jag kommer att flytta programmet till PDP11 och något modifiera det så att PDP11 som saknar högtalare i stället skickar ett magnetband till huvuddatorn för sändning, detta beskrivs eventuellt i en senare artikel.

Morsesändare skriven i sv

En morseöversättare gör man enklast så att man tabellerar tecknen ”A-Z”, ”a-z” samt siffrorna 0-9 samt deras motsvarande teckenkoder. För en specifik bokstav vill vi alltså ha en översättarfunktion skrivMorse() av ungefär följande typ (ti=’*’ och taa=’-‘):

heltal skrivMorse(tecken c){
heltal i;
tecken morse[16];
alternativ (c){
valt ‘a’: strcpy(morse, ”-”); bryt;

valt ‘b’: strcpy(morse,”-”); bryt;
valt ‘c’: strcpy(morse,”–”); bryt;
valt ‘d’: strcpy(morse,”-”); bryt;
valt ‘e’: strcpy(morse,”*”); bryt;

}

skrivf(”Morsekod:%s\n”,morse);

Som indata till vår funktion ”skrivMorse” ges ett tecken/en bokstav ”c” vid anrop till funktionen. Resultatet av översättningen finns efter exekvering nu i variabeln ”morse”. Jag antar att funktionen är ganska läslig även för personer som inte kan programmera. Nyckelordet ”bryt” betyder att rätt alternativ hittades och exekveringen fortsätter vid ”skrivf(…). Om vi vill översätta bokstaven ”s” till morse så anropar vi vår funktion med:

skrivMorse(‘s’);

Resultatet skulle bli Morsekod:***

Vi börjar vårt egentliga program med att låta programmet be om en text att sända samt läsa in en textrad som innehåller texten. Funktionen skrivf() skriver ut text som kan formatteras för heltal, flyttal etc. Vi kan göra detta med:

skrivf(”Skriv text att sända som morse:”);
l=hämtaRad(&line,&len,stdin);

Kommandot ”hämtaRad” använder biblioteksfunktionen ”getline” som finns definierad i biblioteket stdio.h. Vi måste då komma ihåg att deklarera att vi använder biblioteket stdio.h . Vi inkluderar ett standardbibliotek med:

#inkludera <stdio.h>

Vårt program har nu ungefär följande utseende och det utför inte ännu något vettigt :

#inkludera <stdio.h>

#inkludera <stdlib.h>

#inkludera <string.h>

heltal skrivMorse(tecken c){
heltal i;
char morse[16];
alternativ (c){
valt ‘a’: strcpy(morse, ”-”); bryt;
valt ‘b’: strcpy(morse,”-**”); bryt;
… fler definitioner av morsekoder …
}
}

heltal program(){
heltal l=0;
storlek_t len=0;
tecken *rad=NULL;
skrivf(”Skriv text att sända som morse:”);
l=hämtarad(&rad,&len,stdin);
// Skriv ut den lästa raden för att verifiera att inläsningen lyckades
skrivf(”Inläst rad:%s\n”,rad);
}

Variablerna l, len och *rad behövs för anropet till hämtarad().

Då vi skriver in vår text som skall skickas så vill vi gärna hantera texten ordvis d.v.s. vi skickar ett ord i taget och genererar en standardiserad paus mellan orden. För att splittra up vår textsträng i separata ord inkluderar vi biblioteket string (#inkludera <string.h> se ovan). String-biblioteket har en användbar funktion strtok() som splittrar upp den text vi ger som funktionsparameter i en tabell med separata textsträngar (ordsträngar) separerade med mellanslag ‘ ‘. Råtexten bryts alltså vid mellanslag. Jag splittrar upp den ingående råtexten genast då jag deklarerar ordtabellen som jag kallar ett_ord:

tecken *ett_ord = strtok(rad,” ”);

Om jag har matat in texten ”Lasse skickar morse” så kommer ett_ord efter anrop att innehålla textsträngar som jag kommer åt med:

ett_ord[0] = ”Lasse”
ett_ord[1] = ”skickar”
ett_ord[2] = ”morse”

Vi kan nu skriva en ny funktion som vi kallar skicka_text_som_ord(”någon text …”) .

heltal skicka_text_som_ord(tecken rad[]){
heltal i;
tecken *ett_ord = strtok(rad,” ”);
medan (ett_ord != NULL){
skrivf(”Ord=%s\n”,ett_ord);
upprepa(i=0; i<strlen(ett_ord);i++){
// Skriv ett tecken i nuvarande ord
skrivMorse(ett_ord[i]);
system(teckenpaus);
skrivf(”\n”);
}
skrivf(”\n”);
ett_ord = strtok(NULL, ” ”);
}
}

Efter att vi splittrade upp råtexten i ord så tar vi ett ord i taget och splittrar upp det i bokstäver som skickas för konvertering till morse.

Vi går igenom alla orden i vår råtext med:

medan (ett_ord != NULL){
skrivf(”Ord=%s\n”,ett_ord);

}

Motsvarande konstruktion i språket c är ”while(ett_ord != NULL){ … }” .
Vi skickar vidare orden för sändning så länge som ett_ord inte är tomt (NULL).

Vi lägger nu till en slinga för att skicka iväg varje ord bokstav för bokstav för översättning till morse och sändning. Slingan har följande utseende:

upprepa(i=0; i<strlen(ett_ord);i++){
  // Skriv ett tecken i nuvarande ord
  skrivMorse(ett_ord[i]);
  system(teckenpaus);
  skrivf("\n");
}

Vi använder konstruktionen ”upprepa” som motsvarar c-språkets ”for” slinga.
Slingan går igenom ordsträngen ett_ord bokstav för bokstav tills vi har nått den fulla längden på strängen ett_ord.

Slingan stegar alltså igenom ett_ord på följande sätt:

i=0 ett_ord[i] = ‘L’ som skickas till skrivMorse(‘L’)
i=1 ett_ord[i] = ‘a’ som skickas till skrivMorse(‘a’)
i=2 ett_ord[i] = ‘s’ som skickas till skrivMorse(‘s’)
i=3 ett_ord[i] = ‘s’ som skickas till skrivMorse(‘s’)
i=4 ett_ord[i] = ‘e’ som skickas till skrivMorse(‘e’)

Efter att vi har skickat ett helt ord så håller vi paus genom att anropa operativsystemets funktion sleep.

Vi låter systemet sova i 0.7 sekunder mellan ord. Sovtiden mellan bokstäver är 0.1 sekunder.

Vi spelar upp ”tit” och ”taa” under Linux så att jag med hjälp av programmet ”Audacity” genererade en ton med frekvensen 880 Hz. Från denna ton klippte jag två stumpar 0.1 repektive 0.3 sekunder långa som jag sparade som ljudfilerna 0_1.wav samt 0_3.wav . Jag kan spela upp en wavfil under Linux med hjälp av programmet ”aplay”.

Programmet i dess helhet (under linux i detta skede) har då följande utseende:

// Morse
// Programspråket "sv" är språket "c" med svenska kommando-ord.
// Språket översätts till standard "c" som sedan kompileras till maskinspråk
// för att köras.
// Språket "sv" är egentligen ett experiment med Unixverktyget "lex" som 
// har konstruerats för att känna igen ord och strukturer i en text.
// Strukturer som hittas skulle normalt skickas vidare till programmet "yacc"
// (yet another compiler compiler = en annan kompilator kompilator).
// Eftersom jag översätter språket "sv" till "c" så behöver jag inte
// någon kompilator eftersom denna redan finns och likaså behöver jag inte
// någon kodgenerator som skulle generera maskinspråk eftersom även den redan
// finns. Notera att jag kan använda c-språk direkt om motsvarande
// sv-konstruktion inte har definierats.
// Notera att endast en delmängd av SV-C har skrivits. 
// Vill man ha en mera fullständig 
// motsvarighet så måste filen swe.lex utvidgas med nya nyckelord.
// Jag kör för närvarande en emulerad minidator PDP11/70 från 1970-talet.
// Operativsystemet är BSD Unix 2.11.
// Detta är ett experiment i att skriva ett enkelt svenskt 
// programmeringsspråk som är körbart på denna urgamla dator.   
// 
// Lars Silen 2022
// Detta är öppen källkod som fritt får distribueras
// Författaren tar inget ansvar för eventuella fel i genererad kod 

#inkludera <stdio.h>
#inkludera <stdlib.h>
#inkludera <string.h>

// Definiera tidslängden på olika element i Morse 
tecken teckenpaus[] = "sleep 0.1";
tecken ordpaus[] = "sleep 0.7";

heltal skrivMorse(tecken c){
  heltal i;
  char morse[16];
  alternativ (c){
    valt 'a': strcpy(morse, "*-"); bryt;
    valt 'b': strcpy(morse,"-***"); bryt;
    valt 'c': strcpy(morse,"-*-*"); bryt;
    valt 'd': strcpy(morse,"-**"); bryt;
    valt 'e': strcpy(morse,"*"); bryt;
    valt 'f': strcpy(morse,"**-*"); bryt;
    valt 'g': strcpy(morse,"--*"); bryt;
    valt 'h': strcpy(morse,"****"); bryt;
    valt 'i': strcpy(morse,"**"); bryt;
    valt 'j': strcpy(morse,"*---"); bryt;
    valt 'k': strcpy(morse,"-*-"); bryt;
    valt 'l': strcpy(morse,"*-**"); bryt;
    valt 'm': strcpy(morse,"--"); bryt;
    valt 'n': strcpy(morse,"-*"); bryt;
    valt 'o': strcpy(morse,"---"); bryt;
    valt 'p': strcpy(morse,"*--*"); bryt;
    valt 'q': strcpy(morse,"--*-"); bryt;
    valt 'r': strcpy(morse,"*-*"); bryt;
    valt 's': strcpy(morse,"***"); bryt;
    valt 't': strcpy(morse,"-"); bryt;
    valt 'u': strcpy(morse,"**-"); bryt;
    valt 'v': strcpy(morse,"***-"); bryt;
    valt 'w': strcpy(morse,"*--"); bryt;
    valt 'x': strcpy(morse,"-**-"); bryt;
    valt 'y': strcpy(morse,"-*--"); bryt;
    valt 'z': strcpy(morse,"--**"); bryt;
    // Lägg till ÅÄÖ här om du behöver dem

    valt 'A': strcpy(morse, "*-"); bryt;
    valt 'B': strcpy(morse,"-***"); bryt;
    valt 'C': strcpy(morse,"-*-*"); bryt;
    valt 'D': strcpy(morse,"-**"); bryt;
    valt 'E': strcpy(morse,"*"); bryt;
    valt 'F': strcpy(morse,"**-*"); bryt;
    valt 'G': strcpy(morse,"--*"); bryt;
    valt 'H': strcpy(morse,"****"); bryt;
    valt 'I': strcpy(morse,"**"); bryt;
    valt 'J': strcpy(morse,"*---"); bryt;
    valt 'K': strcpy(morse,"-*-"); bryt;
    valt 'L': strcpy(morse,"*-**"); bryt;
    valt 'M': strcpy(morse,"--"); bryt;
    valt 'N': strcpy(morse,"-*"); bryt;
    valt 'O': strcpy(morse,"---"); bryt;
    valt 'P': strcpy(morse,"*--*"); bryt;
    valt 'Q': strcpy(morse,"--*-"); bryt;
    valt 'R': strcpy(morse,"*-*"); bryt;
    valt 'S': strcpy(morse,"***"); bryt;
    valt 'T': strcpy(morse,"-"); bryt;
    valt 'U': strcpy(morse,"**-"); bryt;
    valt 'V': strcpy(morse,"***-"); bryt;
    valt 'W': strcpy(morse,"*--"); bryt;
    valt 'X': strcpy(morse,"-**-"); bryt;
    valt 'Y': strcpy(morse,"-*--"); bryt;
    valt 'Z': strcpy(morse,"--**"); bryt;
    // Lägg till åäö här om du behöver dem

    valt '1': strcpy(morse,"*----"); bryt;
    valt '2': strcpy(morse,"**---"); bryt;
    valt '3': strcpy(morse,"***--"); bryt;
    valt '4': strcpy(morse,"****-"); bryt;
    valt '5': strcpy(morse,"*****"); bryt;
    valt '6': strcpy(morse,"-****"); bryt;
    valt '7': strcpy(morse,"--***"); bryt;
    valt '8': strcpy(morse,"---**"); bryt;
    valt '9': strcpy(morse,"----*"); bryt;
    valt '0': strcpy(morse,"-----"); bryt;
    // Lägg till skiljetecken etc här
  }

  // Skriv bokstaven som sänds (finns som variabelparametern "c" vid anropet)
  skrivf("%c  ",c);
  skrivf("%s  ",morse);
  // Generera ljud 
  upprepa(i=0; i<strlen(morse);i++){
    om (morse[i] == '*'){
       skrivf("ti ");
       system("aplay -q 0_1.wav >/dev/null");
    } annars {
       skrivf("taa ");
       system("aplay -q 0_3.wav >/dev/null");
    } 
    // skrivf("\n");
  } 
}

heltal skicka_text_som_ord(tecken rad[]){
  heltal i;
  tecken *ett_ord = strtok(rad," ");
  medan (ett_ord != NULL){
    skrivf("Ord=%s\n",ett_ord);
    upprepa(i=0; i<strlen(ett_ord);i++){
      // Skriv ett tecken i nuvarande ord
      skrivMorse(ett_ord[i]);
      system(teckenpaus);
      skrivf("\n");
    }
    skrivf("\n");
    ett_ord = strtok(NULL, " ");
  }  
}

heltal program(){
  heltal l=0;
  storlek_t len=0;
  tecken *rad=NULL;
  skrivf("Skriv text att sända som morse:");
  l=hämtarad(&rad,&len,stdin);
  skicka_text_som_ord(rad);
}

Den genererade c-koden är strukturellt identisk med sv-programmets kod d.v.s. vi gör en ord för ord översättning. Detta betyder att c-kompilatorn ger felmeddelanden som pekar till rätt rad också i sv källkoden. Min editor bör naturligtvis konfigureras så att den visar radnummer för att felsökning skall vara effektiv.

Översättaren bör sannolikt expanderas med ytterligare c-konstruktioner. Det är oklart i hur hög utsträckning det är värt att översätta funktioner i bibliotek men exemplet ”hämtaRad” visar att detta naturligtvis är möjligt. Det är naturligtvis också möjligt att översätta namnen på standardbiblioteken på samma sätt men knappast vettigt eftersom målet är att eleven också bekantar sig med c-språket och dess bibliotek.

Oversättarprogram komplett:

#!/bin/bash
# Name=csv
# Detta är en kompilator för programspråket "sv" som är en svensk översätytning av språket "c".
# Språket "sv" kan enkelt utvidgas genom att modifiera filen "swe.lex".
# Användning: ./csv program           
#             Notera att källkoden antas vara program.sv .
#             Resultatet blir det körbara programmet program.run
#
# En textfil som är en översättning till språket "c" genereras som program.c .
# Lars Silen 2022
# Detta är fri källkod som fritt får användas och modifieras på egen risk.

echo "Källkod:"$1.sv
echo "Översättaren är definierad i swe.lex"
echo "Kompilerar översätteren swe.lex till c-kod"
lex swe.lex
echo "Kompilerar lex analysatorn till körbar maskinkod: sv"
gcc lex.yy.c -ll -o sv
echo "Översätter sv-programmet " $1.sv " till c-kod: " $1.c
./sv $1.sv >$1.c
echo "C-kod finns nu i " $1.c
echo "Kompilerar nu till körbar maskinkod!"
gcc $1.c -o $1.run
echo "The executable is:" $1.run

Notera att skriptet kompilerar om swe.lex varje gång. Användaren kan alltså enkelt lägga till
nya definitioner som blir en del av språket. Om användaren uppfattar att språkdefinitionen är stabil så kan man naturligtvis lämna bort raderna lex swe.lex samt gcc lex.yy.c -ll -o sv , tidsvinsten blir dock marginell.

Något vi behöver idag: Bondförnuft!

01/02/2022

Vi har idag 31.1.2022 levt ungefär två år med COVID-19 och kontinuerlig missinformation från myndigheter och media. Notera att officiell missinformationen inte endast har levererats lokalt här i Finland utan samma problem ses globalt och synbarligen coordinerat eftersom samma ”nyheter” och samma lögner levereras samtidigt genom alla mediakanaler. Informationen man har tutat ut har använts för att motivera systematisk nedmontering av våra västerländska fri- och rättigheter. Man har använt en sjukdom som enligt tidigare Finsk definition på pandemi aldrig skulle ha uppfattats som en pandemi utan som en alvarlig influenssa. COVID-19 definierades av WHO som en pandemi varpå Finland som skoleleven som är bäst i klassen genast accepterade allt som kom från högre ort.

Vi har kunnat se hur media har byggt upp ett eget system för faktagranskning. Medias faktagranskning görs av personer som totalt saknar kunskap om frågorna, kunskapsnivån kan vara studerande eller journalist, men trots detta kan faktagranskarna utan problem deklarera att t.ex. en nobelprisvinnare är ute med osanning och inte vet vad hen talar om. Den viktiga frågan blir då vem som granskar faktagranskarna, om detta över huvudtaget görs, samt vem som finansierar faktagranskningen. I videon nedan Dr John Campbell har blivit faktagranskad av BBC med domen ”Falskt”. Allt Dr John Campbell hänvisar till är taget ur officiella brittiska källor och faktagranskarna kunde inte peka på något fel men stämpeln blev ”Falsk”. Intressant att se hur media aktivt brunsmetar icke önskad information. Det saken gällde var att ett krav på tillgång till hemlig information via Freedom of Information Act (FOIA) godkändes i Brittisk domstol. Den information man ville ha fram var hur många personer som hade dött av COVID-19 som egentlig dödsorsak, inte som bidragande dödsorsak bland tex. olika kroniska dödliga sjukdomar. Den officiella siffran, det finns flera officiella alternativ, låg på ca. 150 000 döda med COVID. FOIA domslutet grävde fram resultatet att ca. 17 000 hade dött av COVID. Den intressanta frågan är vilken proportionen i Finland är? Jag gissar att informationen kommer fram i all tysthet efter några år i Finsk mortalitetsstatistik och logiskt sett borde situationen se ungefär lika ut här. Jag har inte sett Finska data men det är självklart att dessa data måste existera, om inte så borde huvuden rulla …

I Finland har ungefär en person på 2400 fått svåra biverkningar av Pfeisers vaccin (källa Fimea 31.1.2022). För personer som har fått Moderna vaccin är risken för svåra biverkningar ca. en person på 2000 (källa Fimea 31.1.2022). En biverkning anges som allvarlig om den har lett till patientens död, livsfara, sjukhusvård eller till förlängd sjukhusvård, förorsakat permanent skada, försämrad funktion eller medfödd missbildning.
Det är intressant att se hur informationen presenteras på Fimeas vebbsidor. Man konstaterar på ingångssidan att alla vacciner har biverkningar men att dessa biverkningar normalt är mycket lindriga. För att hitta riktiga data, inte officiellt tyckande, måste man gräva djupare. På nivå två (se källor nedan) hittar vi information om 3361 rapporter om allvarliga biverkningar på 8172797 givna vaccinationer. Risken för allvarlig biverkning är då ca. en svår biverkning på 2400 injektioner. Då jag gräver vidare i Fimeas datan nivå tre, hittar jag en Pdf-fil med biverkningar presenterade som ”alla” samt ”allvarliga” detta gäller alla organ hos vaccinerade. Nu har antalet allvarliga bieffekter plötsligt stigit till 9035 d.v.s. ungefär tre gånger högre än siffran på nivå två (notera Fimeas definition av svår bieffekt i fet stil ovan). Då jag tittar i Pdf-filen så är nu andelen allvarliga biverkningar ungefär en på 900 av givna injektioner. Om man antar att risken är slumpmässig och en person får tre injektioner så är risken för allvarlig biverkning alltså av storleksordningen en på 300 att patienten får en allvarlig biverkning. Hur skall jag kunna tro på något av det myndigheterna för fram då myndigheternas egna data visar att myndigheterna ljuger? Fimeas data ser ut på följande sätt för Pfeizer:

Det är intressant att notera att om en vaccination på 900 ger svåra biverkningar så stämmer detta väl överens med min ”back of the envelope” överslagsberäkning i en tidigare artikel där jag grovt uppskattade att att chansen att nålen går i en ven (d.v.s. blodåder) där den inte hör hemma grovt kan antas vara ca en på tusen. Betyder detta i såfall att svåra biverkningar uppträder varje gång en vaccination av misstag ges i en ven i stället för i muskeln där den hör hemma? Hela problemet är lätt att undvika genom att aspirera injektionen d.v.s. kolven dras försiktigt tillbaka en kort sträcka så att man kan se om det kommer blod isprutan. Blod indikerar att nålen är i en åder eller har gått igenom en åder. Resultatet blir då att en stor mängd vaccin snabbt förs ut i hela kroppen vilket gör att spikprotein kan bildas i stora mängder i nästan godtyckliga organ med svåra biverkningar som följd. Exempel på svåra biverkningar som med till visshet gränsande sannolikhet har lett till dödsfall hos toppidrottare är hjärtmuskelinflammation och inflammation i hjärtsäcken. Det som skulle ha varit smärta och svaghet i armmuskeln blev till en livshotande skada då hjärtmuskeln började producera spikprotein och angreps av immunsystemet.
Hur kan myndigheterna påstå att om en vaccination på 900 ger svåra biverkningar så uppträder biverkningarna mycket sällan, är detta avsiktlig disinformation eller endast politisk enfald?

Tabellen ovan var på finska. För att kompensera detta hänvisar jag till Lars Berns blogg anthropocene.live där Bern ger en intressant bild av situationen i Israel (källa Our World in Data). Länken till lars Berns inlägg finns i källförteckningen nedan. Bilden visar klart att COVID-vaccinet är värdelöst. Ca. 90% av befolkningen är vaccinerad och sjukhusen fylls av vaccinerade.

Videon nedan är en allmän diskussion om vad som borde göras då vi helt klart börjar ha coviden bakom oss. Hur skall vi reagera för att nästa läckage från förbjuden forskning inte skall bli värre? Det börjar existera consensus på att COVID är läckage från ett laboratorium. Viruset är modifierat från ett fladdermusvirus så att viruset kan spridas mellan människor. Omikronvirusen, det finns två, verkar inte heller nödvändigtvis vara naturliga mutationer på de tidigare variationerna. Är också de här laboratorieexperiment? Har Omicron släppts av någon för att stoppa COVID-19 eller är det fråga om slump? Jag konstaterade själv i ett tidigt skede år 2020 att jag misstänkte att COVID är är en mänskligt skapad sjukdom. Mitt argument var att det finns publikationer som flera år innan COVID-utbrottet beskrev forskning kring modifikation av besläktade virus så att viruset skulle kunna spridas mellan människor (gain of function research). Videon är en lågmäld men sevärd diskussion mellan personer som vet vad de talar om.

Källor

Fimea: https://thl.fi/fi/web/infektiotaudit-ja-rokotukset/ajankohtaista/ajankohtaista-koronaviruksesta-covid-19/rokotteet-ja-koronavirus/koronarokotteiden-turvallisuus-ja-mahdolliset-haitat

Nivå två i grävande efter data: https://www.fimea.fi/tietoa_fimeasta/koronavirus-covid-19-/koronarokotteiden-haittavaikutusilmoitukset

Notera! De två länkarna ovan har försvunnit. Jag upptäckte detta dem 17.2.2022.

Nivå tre Pfeizer: https://s3-eu-west-1.amazonaws.com/fi.fimea.tuotanto.dokumentit/Comirnaty.pdf

Lars Berns Anthropocene: https://anthropocene.live/2022/02/01/vad-hander-med-covid-i-israel/

Spikproteiner, boosters och immunitet

19/01/2022

Den 26.12.2021 skrev jag ett blogginlägg Autoimmuna reaktioner. Jag ställde där frågan att vad sker om de spikproteriner som syns på ytan av en cell som genom mRNA vaccin producerar spikprotein, triggar immunsystemet att förgöra ifrågavarande ”infekterade” cell då spikproteinet är främmande. Detta är det sätt på vilket immunsystemet borde fungera d.v.s. en enskild cell offras för helheten. Vad händer om immunsystemet samtidigt som den spikproteinsmittade cellen förgörs också lär sig att känna igen kroppsegna proteiner på/i cellen som länkade till det främmande spikproteinet. Kan man då tänka sig att kroppens immunsystem börjar angripa t.ex. muskelceller eftersom injektionen i första hand avses ges i muskeln inte intravenöst … Om kroppen triggas till att angripa egna celler så har man åstadkommit en autoimmun sjukdom. Om vanliga muskelceller nära injektionsstället angrips är det knappast något speciellt stort problem men om man genom en misslyckad injektion i en ven får stora mängder vaccin ut i kroppen så att spikproteiner bildas i tex. hjärtmuskeln så kan resultatet bli t.ex. hjärtmuskelinflammation.

Då man ser på armens uppbyggnad där injektionen ges, jag tänker då på den ungefärliga volymen av blodkärl i förhållande till muskeln. Vilken är chansen att vi träffar en större eller mindre ven inom detta område? Jag är fysiker, inte läkare, men jag uppfattar att chansen att träffa en blodåder egentligen är rätt stor d.v.s. av storleksordningen 1/1000. Träffas en ven vid injektionen så kommer betydande mängder mRNA material att snabbt transporteras till olika delar av kroppen vilket inte enligt vaccintillverkarna är avsikten. Vaccinet skall ges i en muskel, inte intravenöst. Problemet med okontrollerad spridning av vaccinet kan enkelt och extremt billigt åtgärdas genom aspirering innan vaccinet sprutas in i patienten. Vid aspirering dras sprutans kolv försiktigt tillbaka en liten bit. Om vi då ser blod komma in i sprutan så har vi träffat en blodåder och då måste vi försöka på nytt på en annan plats. Aspirering kostar ca. 5 sekunder extra tid men myndigheterna rekommenderar inte aspirering, varför?

Something Else - blood vessels of the arm

Nedanstående video diskuterar det faktum att i hela den amerikanska armén har skett ca. 20 dödsfall i COVID-19 medan dödsfallen till följd av COVID-vaccination är betydligt högre. Läkaren konstaterar också prognosen för hjärtmuskelinflammation är att 66% avlider inom 5 år. Myocarditis är alltså inget obetydligt ”som en patient får en släng av” utan en allvarlig sjukdom som kan ge svåra bestående men.

En god vän skickade mig en länk till en intervju med Tamara Tuuminen. Videon under rubriken källor nedan uppfattar jag som informativ och det är helt klart att Tamara Tuuminen i detalj vet vad hon talar om. Videolänken går till tokentube.net eftersom youtube tydligen enligt känt mönster har bannlyst Tamara Tuuminen. Videon är intressant genom att den presenterar flera olika mekanismer för hur spikproteinen kan påverka cellkärnans DNA reparation, hur upprepade boosters kan påverka immunsystemet negativt etc. Notera att videon går på finska utan textning (beklagar).

Nedstängningar igen …

I Finland har man igen tagit beslut att stänga ner i stort sett all kultur samt många serviceyrken t.ex. restauranger är igen illa ute.
Man motiverar nedstängningarna med att man vill garantera att sjukvårdens kapacitet skall räcka till. Samtidigt går propagandamaskineriet på högvarv för att vaccinera allt fler inklusive småbarn. I en diskussion på Meta=”Hon är död”/Facebook om bl.a. vacciners effekt presenterades nedanstående bild från Schweitz. Man kan diskutera hur man har kommit fram till bilden och också om den visar hela sanningen men låt oss acceptera den som sådan. Vi kan direkt ur bilden plocka ut dödsrisken för en ”ovaccinerad”.

May be an image of text

Risken att dö i COVID, alla åldersdgrupper, för en ovaccinerad blir då:

Dödsrisk i procent: 100*13.06/100000= 0.013%

Detta betyder ett dödsfall på ungefär 7700. Är detta mycket?

För att kunna bilda oss en realistisk uppfattning om en dödsrisk på 1/7700 (0.013%) är hög eller låg så kan vi jämföra detta med ett normalt influenssaår där samma åldersgrupp d.v.s. 80+ normalt råkar illa ut och på slutändan dör i lunginflammation. Vi jämför de Schweitziska data i figuren ovan med influenssadöda i USA vintern 2017-2018 (se länk nedan). Vi betraktar tabell 1 i CDC rapporten. Ur tabellen kan vi för kombinationen alla ålderskategorier plocka ut ungefär motsvarande mortalitetsdata som för ovaccinerade som i figuren ovan. Vi hittar:

Dödsrisk i procent: 100*51646/41043550 = 0.126%

Detta betyder ungefär ett dödsfall på 800 d.v.s. risken för död under influenssasäsongen 2017-2018 låg på en nivå som var tio gånger (10x) högre än COVID-risken. Har hela samhället blivit galet?

Vaccination dödsrisk

I princip borde det finnas mycket material om biverkningar av vaccin. Ett exempel är det amerikanska VAERS registret. Problemet är att rapportering till registret verkar ske sporadiskt och okontrollerat. Det finns uppskattningar om att biverkningar underrapporteras med en faktor 41.

Om man inte kan lita på det register som borde samla information om COVID vaccinens biverkningar, vilka är då alternativen? Ett objektivt sätt är att studera dödligheten av alla orsaker bland ovaccinerade och vaccinerade. Om man ser oväntade förändringar i någondera gruppen borde varningsklockor ringa. New Zealand har, eftersom det är fråga om en ö där man mycket strikt har begränsat inresa från omgivande länder, kunnat hålla COVID smittograden på en mycket låg nivå samtidigt som man aktivt har gått in för omfattande vaccination av befolkningen. Frisk befolkning som vaccineras … hur ser överdödligheten ut tidsmässigt i förhållande till vaccinationerna?

Dr. Chris Martenson har intressanta data från New Zealand i videon nedan. Bilden visar vaccination och dödlighet i åldersgruppen 60+.

Totalt antal döda plottade över antalat givna vaccinationer. Antalat vaccinationer finns till vänster på Y-axeln och antalat döda till höger på Y-axeln. X-axeln är löpande datum från tidpunkten då vaccinationerna påbörjades.

Vi kan tydligt se hur dödligheten stiger med ökande vaccination. Korrelation är naturligtvis inte kausalitet men t.o.m. ett barn torde kunna se att vaccination och dödlighet på något sätt hänger ihop. Vi ser en ökad dödlighet, inte minskad som man skulle vänta sig. Vi kan försöka göra en uppskattning av vilken dödsrisken i ovanstående åldersgrupp är per given vaccination. Vid vaccinationstoppen är överdödligheten ungefär 650-525= 125. Antalet givna vaccinationer är ungefär 130 000. Notera att jag visuellt jämnar/filtrerar kurvorna. Vi är intresserade endast av en storleksordning för dödsrisken utgående från ovanstående data.

Dödsrisken i procent: 100*125/130000 = 0.1%

Notera att dödsrisken av vaccinationen ensam tydligen är ungefär jämförbar med influenssa men dödsrisken är tio gånger högre än den risk en ovaccinerad person som får covid utsätts för. Vilket är argumentet för att vaccinera åldersgrupper för vilka COVID inte utgör någon risk då själva vaccinet ensamt sannolikt medför en dödsrisk som är mångdubbelt större än risken vid genomliden sjukdom? Till detta kan ytterligare fogas att vi vet att COVID vaccinen inte hindrar en vaccinerad från att få COVID och det hindrar inte heller en vaccinerad från att sprida sjukdomen vidare. Vaccinens effekt på COVID-varianten Omicron verkar idag vara marginell. Varför överöses vi fortfarande av information om att vi måste vaccinera oss. Är det enfaldiga beslutsfattare som ligger bakom eller finns det någon annan agenda i botten?

En liten kommentar till den Schweiziska kurvan över dödsrisk för ovaccinerade och vaccinerade. Min uppfattning är att den stora skillnaden i dödsrisk mellan ovaccinerade och vaccinerade är en följd av att man definierar en vaccinerad person som en person som fått den andra sprutan minst två veckor tidigare. En person som fått sina två sprutor har alltså levt kanske 4-6 veckor med en vaccination och därefter ytterligare två veckor med två vaccinationer. Alla dödsfall inom denna grupp bokförs som dödsfall bland ovaccinerade. Detta är inte teori utan man kan se hur dödsfall bland ”ovaccinerade” i en åldersgrupp ökar då man inleder vaccination. Vilken är den logiska förklaringen till att dödsfallen ökar i den ovaccinerade referensgruppen. Svaret är helt enkelt att under den mest kritiska tiden efter en covid vaccination då risken för allvarliga biverkningar är störst så bokförs en person som ovaccinerad och dödsfall bokförs likaså i gruppen ovaccinerade.

Problemet med de Schweitziska data är att det är svårt att klassificera vad ett COVID dödsfall är. I Finland bokförs en person som COVID-död om hen har dött inom 30 dagar efter ett positivt coronatest d.v.s. trafikdödsfall, cancerdödsfall etc. bokförs som coronadöda om det finns ett positivt test i bakgrunden även om den egentliga dödsorsaken inte hade något att göra med covid.

Källor:

https://tokentube.net/v/1290343143/-93—Tamara-Tuuminen—Rokkotteet—hy%C3%B6dyt-vs–haitat—Immuniteetin-Toiminta–Medikalisaatio?fbclid=IwAR2ScOLplBPDxGGnVx1ldL58fR_nIwAEAkWH19J3eMNOcWSDXT9Dre8pxqA

Influenssadör i usa CDC: https://www.cdc.gov/flu/about/burden/2017-2018.htm

Mercola: https://flybynews.wordpress.com/2021/09/15/shockingly-cdc-now-lists-vaccinated-deaths-as-unvaccinated/

Vilka är de ansvariga?

13/01/2022

Myndigheter som fungerar rationellt borde redan för en lång tid sedan ha stannat upp och ställt frågan: ”Vad är det som har förändrats? Varför verkar åtgärderna inte ha önskad effekt medan samhällsskadorna kan ses av varje vaken individ?”

Vilka är åtgärderna jag tänker på?

Försöket att med ”läckande” vaccin eliminera COVID har entydigt misslyckats. Idag smittas både relativt sett och absolut sett fler vaccinerade än ovaccinerade. Finns det något vettigt argument för att fortsätta att vaccinera andra än tydliga riskgrupper såsom åldringar, personer med nedsatt immunitet och personer med specifika underliggande sjukdomar?

Det finns idag mängder av indikationer på att flera vaccinationer med mRNA-vaccinerna kan ha en effekt som är motsatt den önskade d.v.s. antalet smittade i grupperna ovaccinerade, delvis vaccinerade och fullt vaccinerade är störst i gruppen fullt vaccinerade. Se grafen nedan från Ontario i Canada. Samma effekt har man redan länge kunnat se i Brittiska data. Notera att den vertikala skalan är antalet smittade per 100000 d.v.s. bilden är inte förvrängd av att majoriteten i samhället är vaccinerad. Det är intressant att notera att partiell vaccination tydligen har en viss positiv effekt men att tydligen flera vaccinationer på något sätt påverkar immunsystemet negativt.

EU:s EMA (European Medicines Agency) varnar för att återkommande vaccinationer (boosters) mot COVID kan leda till försämrad immunrespons. Min uppfattning är att detta är exakt det man ser i Canadensiska data i bilden ovan.

En grupp statistiker har gjort en statistisk jämförelse av effekterna av COVID vaccination på två variabler y1 som representerar dödlighet per miljon invånare och y2 som representerar smittade per miljon invånare. Resultatet i korthet verkar vara att:

Av de undersökta länderna visade ca. 89% (statistiskt signifikant) en ökad dödlighet kopplad till COVID-19 till följd av att man påbörjade vaccination. På motsvarande sätt visade ca. 87% (y2) en ökad smittograd per 100000 invånare till följd av påbörjad vaccination. Den causala effekten på y1 varierade mellan -19% och 19015% med ett medelvärde på +463% (notera att man förväntar sig att effekten av vaccination borde ge ett negativt resultat d.v.s. minskande total dödlighet). Effekten av vaccination på y2 (smittograden) varierade mellan -46 och 12240% med ett medelvärde på +261%.

Konklusionen är att den statistiskt signifikanta och dominerande positiva effekten d.v.s. dödlighet och smittograd ökar bör vara mycket oroande för beslutsfattare. Har beslutsfattarnas åtgärder på slutändan lett till ökad dödlighet och ökad smittograd?

Är vi idag i en situation där de samhälleliga åtgärderna för att bekämpa COVID gör situationen värre i stället för bättre? Några exempel:

James Lyons-Weiler studie gällande stater i USA. Ju högre vaccinationsgrad desto fler smittade.

En tysk studie av professorerna Rolf Steyer och Gregor Kappler från 16.11.2021 kommer till samma resultat för förbundsrepubliken Tyskland med följande sammanfattning:

Zusammenfassung

Die Korrelation zwischen der Übersterblichkeit in den Bundesländern und deren Impfquote bei Gewichtung mit der relativen Einwohnerzahl des Bundeslands beträgt .31. Diese Zahl ist erstaunlich hoch und wäre negativ zu erwarten, wenn die Impfung die Sterblichkeit verringern würde. Für den betrachteten Zeitraum (KW 36 bis KW 40, 2021) gilt also: Je höher die Impfquote, desto höher die Übersterblichkeit. Angesichts der anstehenden politischen Maßnahmen zur angestrebten Ein­däm­mung des Virus ist diese Zahlbeunruhigend und erklärungsbedürftig, wenn man weitere politische Maßnahmen ergreifen will, mit dem Ziel, die Impfquote zu erhöhen.

En fri översättning (Lars Silen) är:

Sammanfattning

Korrelationen mellan överdödlighet i förbundsstaterna och vaccinationsgraden vägt med relativt invånartal i ifrågavarande förbundsstat ger värdet 0.31. Värdet är förvånande högt och det borde vara negativt om vaccination skulle minska dödligheten. Under observationstiden (veckorna 36-40 2021) gäller altså: Ju högre vaccinationsgrad desto högre är överdödligheten. Med tanke på de kommande politiska åtgärderna för att begränsa viruset är denna siffra oroande och kräver förklaring om ytterligare politiska åtgärder ska vidtas i syfte att öka vaccinationstäckningen.

Den ansedda medicinska tidskriften The Lancet konstaterar att 89% av dagens smittade med symtom är fullt vaccinerade notera att detta är en större andel än andelen vaccinerade d.v.s. vi ser igen att flera vaccinationer tydligen ökar risken att smittas. Se källa nedan.

The Exposé har en intressant artikel där man använder brittiska data (UKHSA Vaccine Surveillance Reports) och visar, på samma sätt som jag har gjort i tidigare inlägg, att vaccinens skyddseffekt snabbt minskar. Det verkar rätt klart att en boosterdos temporärt ger ett bättre skydd mot COVID men att detta skydd snabbt försvinner och faller till en lägre nivå än före boostern. Artikeln extrapolerar trenderna in i framtiden (detta är alltid riskabelt) och varnar för att vaccinernas effekt på kort sikt kan börja ses som förvärvat immunbristsymptom. Vad är då förvärvat immunbristsyndrom i lite bättre kända termer? På engelska talar man om Acquired Immune Deficiency Syncrome d.v.s. AIDS vilket antagligen är lättare att placera in på kartan … notera att jag inte med detta påstår att det skulle vara fråga om samma sak!

Källor:

Data från Ontario Canada: https://covid-19.ontario.ca/data/case-numbers-and-spread

Finska Tekniikan Maailma artikel: https://tekniikanmaailma.fi/toistuvat-tehosterokotteet-voivat-heikentaa-ihmisen-immuunijarjestemaa-euroopan-laakeviranomainen-varoittaa/?utm_medium=Social&utm_source=Facebook&fbclid=IwAR1c9FWDSY4JiE27_NvQm3pOC4728x_topIulw3la1DMkOMbIxLEihb4BWc#Echobox=1641961496

Statistisk jämförelse av effekterna av vaccination i 145 länder: https://vector-news.github.io/editorials/CausalAnalysisReport_html.html

The Lancet: https://principia-scientific.com/lancet-89-of-new-uk-covid-cases-among-fully-vaxxed/

The Exposé: https://dailyexpose.uk/2022/01/13/covid-boosters-destroy-immune-system-causing-ade/

Video för personer som hellre tittar än läser: https://thenewamerican.com/286-more-deaths-of-vaccinated-than-unvaccinated-says-uk-government-data/

Tyranni

11/01/2022

År 2017 hade vi ungefär 107 döda i cancer per 100 000 invånare i Finland. Notera döda inte cancersjuka (totalt strax under 6000 döda). Vi hör inga klagomål om att sjukvårdssystemet håller på att falla ihop trots att antalet döda i detta fall varje år är tio gånger högre än antalet dödsfall till följd av CORONA. Antalet människor som lever med cancer är likaså ca. tio gånger större än antalet COVID smittade i Finland och som känt är cancervård mycket resurskrävande.

Då vi följer World Economic Forum d.v.s. de superrikas planeringsorganisation så hör vi att CORONA-epidemin ger oss en fantastisk möjlighet till en världsomspännande omstart av samhället som bl.a. skulle innebära ett rättvisare samhälle, en hållbar värld etc. detta presenteras av representanterna för de rikaste av de rika. De fattiga och medelklassen skall beskattas via skatter på bl.a. fossila bränslen för att finansiera de superrikas elbilar /sark. Är de superrikas planer över huvudtaget trovärdiga så länge dessa utan problem flyger sina privata jetflygplan medan pöbeln förväntas låta bli att resa med flyg.

Dagens politiker har outsoursat sitt ansvar. Vem säger att man får rätt avvägda åtgärder då politikerna delegerar sitt ansvar till professionella medicinare? Det är självklart att medicinarna bör veta hur man skall hantera smittsamma sjukdomar och de rekommendationer som framförs utformas för att minimera smittspridning och på slutändan antalet insjuknade. Vad experterna, läkarna, inte är experter på är en avvägning av nyttan med åtgärderna vägda mot de skador utöver eventuell medicinsk nytta på människor och samhälle åtgärderna ger.

Nedstängning av samhället slår mycket hårt mot små och medelstora företag i kultur- och servicebranchen. Mängder av livsverk slås i spillror i namn av den farliga CORONA-epidemin. Förstörelsen kommer på slutändan att synas i form av ökade dödsfall i cancer och andra sjukdomar eftersom många patienter inte har vågat söka sig till vård eller för att vård inte har erbjudits då focus har legat på pandemin. En helt annan sak är att det kommer att vara väldigt intressant att se hur dödligheten i t.ex. cancer påverkades under coronaåren och tiden strax efter. Kommer man att kunna visa att dödligheten i cancer steg/sjönk/förblev oförändrad då resurser omfördelades till covid. I princip borde man på detta sätt kunna få en bild av cancerbehandlingens verkliga effekt.

Hur många människor kommer att göra självmord under de kommande åren till följd av en samhällelig destruktion som dessa individer har varit fullständigt oskylldiga till? Notera att antalet självmord idag ligger på en nivå som är nästan två gånger större än antalet COVID-döda. Borde vi inte fokusera på självmord om antalet döda är avgörande? Speciellt för självmord är också att de tenderar att slå mot unga och medelålders människor med livet framför sig … inte mot åldringar som redan passerat ”bäst före datumet”.

Vi kan idag (11.1.2022) klart se att vaccinen inte har någon positiv effekt på smittospridningen. Det finns klara forskningsrön som tyder på att vaccinerade proportionell smittas något mer än ovaccinerade. Detta är intressant då argumentet då de experimentella vaccinen lanserades var att vaccination skulle stoppa spridningen av Covid. Nu lyder argumentet att även fullt vaccinerade kan bli smittade men att risken att bli svårt sjuk är mindre. Om vaccinen inte har effekt på smittospridningen och erfarenheterna från bl.a. Storbrittanien visar att sjukhusen fylls också av vaccinerade så frågar man sig varför man fortsätter att försöka tvinga ovilliga att vaccinera sig.

Nature Medicine publicerade 14.12.2021 en artikel som tydligt visar att risken för myocarditis d.v.s. hjärtmuskelinflammation är större hos personer vaccinerade mot Covid än hos personer som genomlidit Covid. Ett argument för vaccination har varit själva sjukdomen har utgjort en större risk än vaccinet. Detta verkar inte vara fallet för åldersklasserna under 40 år. Riskerna verkar öka ju lägre ner i åldrarna man går.

En forskningsrapport från Hong Kong tyder på att ca. en av 5400 vaccinerade drabbas av hjärtmuskelinflammation eller hjärtsäcksinflammation. Notera att Robert Malone uppskattar att incidensen är högre än min uppskattning. Rapporten konstaterar att fallen inte i allmänhet har varit allvarliga. Det finns tom. risk för död om en person med dessa problem tex. deltar i hård idrott något vi idag sannolikt ser hos vaccinerade toppidrottare.

Resultatet av de drakoniska nedstängningarna är en samhällsförstörelse utan like sedan det andra världskriget som samtidigt skuldsätter kommande generationer och bakbinder de nationella beslutsfattarna för årtionen framåt … detta är ur elitens synvinkel önskvärt och väl beskrivet i den globalistiska agendan. En djupt skuldsatt är aldrig fri något vi kan se i t.ex. Grekland men också Italien och Spanien. En djupt skuldsatt person eller stat kan via utpressning tvingas till nästan vad som helst och detta är det perfekta redskap den superrika eliten kan använda som murbräcka mot idag självbestämmande stater.

Vilket är argumentet för att blockera experter med fel åsikt från de stora internet plattformerna. Det vi behöver framom allt annat är en på fakta baserad diskussion som ger medborgarna möjlighet att ta egna beslut baserade på fakta. Det är sedan individens sak att ta beslut som senare med facit på hand kan visa sig vara rätt eller fel. Vilket är argumentet för att undertrycka avvikande åsikter. Nedanstående video diskuterar en tänkbar orsak.


https://youtu.be/qWtwedwIbVM

Länkar:

False positives 0.8% : https://www.independent.co.uk/news/uk/home-news/coronavirus-false-positives-testing-covid-19-test-b550133.html

Elon musk, två positiva och två negativa resultat från fyra test : https://www.npr.org/sections/coronavirus-live-updates/2020/11/13/934494818/elon-musk-tests-positive-and-negative-for-coronavirus-awaiting-confirmation?t=1605955362522

Myocarditis: https://www.nature.com/articles/s41591-021-01630-0.pdf

Myocarditis hos åldersklassen under 40 år: https://vinayprasadmdmph.substack.com/p/uk-now-reports-myocarditis-stratified

Antik datorteknik, flytta filer över nätet

11/01/2022

I föregående inlägg visade jag hur jag kan använda en simulerad magnetbandstation för att flytta filer mellan min PDP11/70 och den Raspberry Pi som kör emuleringen. Systemet är något omständligt men det fungerar i princip till belåtenhet. Systemet kunde t.ex. användas till att flytta över källkoden till en lite trevligare editor till PDP11 och därefter kompilera den. Resultatet skulle vara en lite bekvämare arbetsmiljö.

Jag kan utan problem köra min PDP11 också från min ”huvuddator” d.v.s. bordsdatorn. Jag ansluter via SSH d.v.s. en krypterad dataförbindelse till Raspberry Pi och använder samma fönster till att logga in mig på PDP11. Detta betyder att jag kan jobba vid min stora bildskärm med ett ensamt terminalfönster in till PDP11. Om jag vill flytta data direkt från huvuddatorn till PDP11 utan att behöva logga in på Raspberry Pi för att fixa magnetbandet, hur gör jag då?

Det faktum att jag kan koppla upp mig till PDP11 via en SSH förbindelse till Raspberry Pi betyder självklart att jag har en fungerande nätverksförbindelse. Jag kan också kontrollera om min PDP11 syns på nätverket med hjälp av verktyget ”ping”:

ping 192.168.0.xxx

där 192.168.0.xxx är PDP11:ns IP-adress. PDP11 har en egen IP-adress trots att den kör ”inom” Raspberry Pi d.v.s. all dess IP trafik routas via Raspberry Pi. Om PDP11 svarar på en ping så betyder detta att nätverksförbindelsen i princip fungerar. PDP11 känner till kommandot ftp d.v.s. det borde vara möjligt att flytta filer direkt mellan huvuddatorn och PDP11 utan att Raspberry Pi behöver delta i operationen. En intressant detalj är att jag inte kan pinga PDP11 från Raspberry Pi d.v.s. det kort på vilket både Raspberry Pi och PDP11 kör. Däremot kan jag pinga PDP11 från min bordsdator som sitter på samma nätverk som Raspberry Pi. Problemet går att åtgärda men så långt har jag inte ännu hunnit.

En ftp server på min huvuddator

Jag började med att installera en ftp server på min huvuddator. Det finns ett antal varianter för Linux och jag valde att installera en server som heter VSFTPD. Jag kör Linux Mint som stöder denna ftp-server. Installationen gick behändigt med:

sudo apt update

Detta kommando uppdaterar Linux Mint katalog över tillgängliga applikationer.

sudo apt install -y vsftpd

Installation av ftp-servern från kommandoraden. Jag kunde likaväl ha använt ett grafiskt verktyg.

Konfiguration av servern görs i filen /etc/vsftpd.conf

sudo nano /etc/vsftpd.conf

Det lönar sig att googla på vsftpd om man behöver information om konfigurationen. Jag måste installera och konfigurera som superuser ”root” eftersom jag installerar vsftpd för alla användare på maskinen och konfigurationsfilerna i /etc är skrivskyddade eftersom jag inte vill att en eventuell besökare skall kunna gå in och konfigurera min maskin. För att jag skall kunna flytta filer från måste jag åtminstone editera /etc/vsftpd.conf så att jag tillåter skrivning till min katalog på deNeb. Detta kan jag göra genom att sätta write_enable=YES . Denna modifikation behövs om jag vill flytta filer från PDP11 till deNeb.

Flytta filer till/från PDP11

Min PDP11 representerar tidsperioden 1970 till slutet av 1990-talet. I praktiken betyder detta att de programverktyg jag har tillgång till kör i en textterminal inte i ett modernt grafiskt fönster som på min huvuddator. Det visar sig dock att man mycket bekvämt kan flytta filer mellan datorer direkt från kommandoraden på PDP11 utan att detta egentligen är komplicerat.

PTF-inloggning till min huvuddator från PDP11

Jag kopplar upp till min huvuddator ”deNeb” från PDP11. Situationen är intressant genom att det terminalfönster i vilket PDP11 kör finns på deNeb men är kopplad över en ssh-förbindelse. PDP11 kör alltså på Raspberry Pi men terminalfönstret finns på deNeb vilket man kan se i fönstrets rubrik.

Jag jobbar alltså i PDP11 och lägger upp en ftp-förbindelse till deNeb. Steg för steg gör jag:

ftp deNeb

Jag ger mitt användarnamn och password till deNeb för att släppas in i maskinen. Inloggningen är avklarad då jag får svaret ”230 Login successful”.

ftp>

Datorn kommer visa ftp> på varje rad för att indikera att jag har en aktiv ftp-förbindelse. I kommandona nedan är denna indikator bortlämnad. tex. följande kommando nedan kommer att i terminalen vara: ftp>cd Prog/PDP11 men användaren skriver endast cd Prog/PDP11 .

Jag ger nu ett kommando till ftp-servern att jag vill flytta mig till katalogen Prog/PDP11 på datorn deNeb från vilken jag vill hämta en textfil.

cd Prog/PDP11

Svaret blir ”250 Directory successfully changed”. Jag listar nu innehållet (ls) i katalogen dit jag flyttade mig på deNeb.

ls

Katalogen innehåller endast en fil med namnet deNeb.txt. Jag kan nu flytta filen från deNeb till PDP11 där jag kör mitt ftp-program med kommandor ”get”.

get deNeb.txt

… 226 Transfer complete.

Jag har nu flyttat filen till PDP11 och jag kan undersöka vad jag fick. Först går jag ut ur PDP11 med kommandot ctrl-D.

cat deNeb.txt
Resultatet blir:

This text document is moved from the Linux computer ”deNeb” to the emulated PDP11.

Filens innehåll är korrekt. Vi kan ladda in filen i texteditorn ”vi” och göra en liten förändring. Vi ändrar texten till: This text document is moved from PDP11 to ”deNeb”. Jag byter namn på filen till PDP11.txt så att jag kan verifiera att jag faktiskt har flyttat filen tillbaka till PDP11.

Vi kan nu flytta den modifierade filen tillbaka till deNeb genom att på nytt starta ftp på PDP11. Vi flyttar oss till katalogen Prog/PDP11 och använder ”put” för att flytta filen från PDP11 till deNeb.

Jag kan kontrollera vad jag har i min lokala katalog på PDP11 inifrån ftp-programmet genom att ge normala UNIX-kommandon som inleds med ”!”.

!ls
hello hello.c

På PDP11 har jag endast två filer i min arbetskatalog d.v.s. ett ”Hello world!” c-program och samma program i kompilerad körbar form.

Jag flyttar filen PDP11.txt till deNeb med ftpkommandot put PDP11.txt . Jag kan nu i ett annat terminalfönster kontrollera att filen faktiskt levererades korrekt.

Efter kommandot på PDP11 ser vi att vi har fått en ny fil på deNeb d.v.s. överflyttning i båda riktningarna lyckas utan problem.

Det är igen intressant att se hur jag utan större problem kan kommunicera mellan min huvuddator deNeb och en 30 år gammal UNIX. Det finns klara fördelar av att operativsystemen är nära besläktade. Jag tror inte att det hade varit riktigt lika enkelt att idag försöka sätta upp en förbindelse mellan PDP11 och t.ex. Windows 3.1 från 1992 …

Jag hade planerat att skriva om det jag gillar, inte om folkmord

09/01/2022

Jag hittade en ny artikel på Lars Berns blog anthropocene.live . Resultatet blev en hel del sökande i databaser såsom Euromomo etc.

En ganska intressant tabell jag stötte på finns på European Centre for Disease Prevention and Control där man hittar färsk statistik över Coronafall och Coronadöda(?) under de senaste två åren fram till de första dagarna i 2022. Jag uppfattar tabellen som intressant eftersom ger en enkel långtidsbild av något som liknar Case Fatality Rate för Covid d.v.s. dödligheten i relation till diagnosticerade fall. Jag vet inte om antalet fall man uppger är antalet positiva PCR-test eller om någon läkare också har varit inblandad. Då vi för ett antal länder utför operationen 100*antal_döda/antal_fall% så får vi:

Finland: 0.6%

Sverige: 1.1%

Island: 0.2%

Danmark: 0.4%

Tyskland: 1.5%

Nederländerna: 0.7%

Listan ovan blir intressant då man jämför den med amerikanska CDC:s data/uppskattning av antalet personer som insjuknat eller dött i influensa mellan 2010 och 2020. Årligen har mellan 12000 och 52000 människor dött av influenssa och mellan 9 och 41 miljoner människor har insjuknat.

Då vi använder amerikanska data för att beräkna samma sak som ovanstående lista och vi antar att ett fall (case) är då patienten har besökt läkare till följd av sjukdomen. Dödligheten (case fatality rate) blir då för influensan i USA:

2010-2011: 0.4%

2011-2012: 0.3%

2012-2013: 0.3%

Intresserade läsare kan själva titta på vidare data. Det som åtminstone för mig är intressant att notera är hur nära dödligheten i influenssa varje år är dagens Corona. Varför stänger man ner hela samhället för något som ser ut som det årligen återkommande gisslet i form av vinterförkylningar? Notera att smittograden varierar mycket från år till år d.v.s. ett år med många smittade följs oftast av ett år med få smittade och få döda sannolikt till följd av att befolkningen har fått motståndskraft mot den tidigare aggressiva formen.

Covid dödligheten i den första listan varierar rätt mycket mellan länderna. Jag gissar att detta främst beror av hur man klassificerar ett Covid dödsfall d.v.s. har en patient dött MED covid eller har patienten explicit dött AV covid. Att dö med covid betyder att en person som testat positivt för Covid och som inom 30 dagar t.ex. dör i en trafikolycka bokförs som Coviddöd. Min uppfattning är, jag kan ha fel, att den i huvudsak Nordiska listan representerar ungefär samma medicinska nivå i de olika länderna. Dödligheten är alltså inte en följd av bättre/sämre sjukvård. Likaså är befolkningen i de nordiska länderna rätt homogen d.v.s. det finns sannolikt inte t.ex. genetiska skillnader mellan de olika länderna som skulle förvrida resultatet.

Vaccination mot ”säsongförkylning”

Ur listorna ovan ser vi att Covid inte är att leka med om patienten har underliggande problem såsom fettma, typ II diabetes o.s.v. men att sjukdomen inte är någon modern digerdöd/spanska sjukan med en dödlighet som skulle ligga tiotals gånger högre. Den panik vi ser i samhället är främst skapad av media för att sälja den egna nyhetsprodukten eller för att sälja läkemedelsindustrins produkter eller båda. T.ex. oligarken Bill Gates har nyligen avslöjats för att han köpt synlighet för vacciner i media för miljoner.

Då man går in för vaccinering av olika befolkningsgrupper måste man alltid väga för och nackdelar mot varandra. Vilken är sannolikheten för att en individ smittas, hur stor är sannolikheten för att personen kräver sjukvård och på slutändan vilken är risken för att personen får bestående men eller avlider? Notera att samma avväganden gäller både sjukdomen och vaccinens eventuella biverkningar.

Sjukdomsrisken skall vägas mot kända (och okända) vaccinationsrisker. Det finns alltid en risk att det finns biverkningar som kan uppkomma med fördröjning och vi vet inte hur lång fördröjningen är. Alla som påstår att vaccin inte har långtidsverkningar och därigenom potentiellt långtidsbiverkningar vet inte vad de talar om. Hela avsikten med vaccination är att påverka immunsystemet så att kroppen får motståndskraft för lång tid framåt d.v.s. hela idén är långtidsverkan. Vid sidan av den önskade effekten kan det naturligtvis hos en del individer också uppstå oönskade komplikationer som blir långvariga eller permanenta. Personligen uppfattar jag produktionen av spikproteiner inne i mänskliga celler som riskabel eftersom detta kan programmera immunsystemet att angripa de egna cellerna såsom främmande celler. Resultatet kan bli (men behöver inte bli) autoimmuna sjukdomar där kroppens eget immunsystem skenbart slumpmässigt angriper olika organ. Problemet idag är att det finns ett stort focus på att få så många människor som möjligt vaccinerade medan information om kända biverkningar undertrycks för att människor inte skall bli rädda för de erbjudna vaccinen.

Man vet idag att COVID-19 är farlig för gamlingar som ofta har flera andra underliggande sjukdomar. Riskfaktorer verkara vara övervikt, typ II diabetes, alzheimer etc. Då man går ned i ålder till arbetsföra årsklasser så minskar dödsrisken radikalt om personen inte har en eller flera riskfaktorer.

Risken för att dö (röd kurva) och risken för att behöva sjukhusvård (blå kurva). Notera att risken för unga under 20 år anges som <0.1% eftersom risken är så liten att man helt enkelt inte har tillräckligt data.

Vilken är vaccinationsrisken för ungdomar och barn? Grafen från USA ovan säger (The Economist) anger att risken för barn är mindre än 0.1%, antalet fall är så litet att någon bättre uppskattning inte finns. Talet mindre än 0.1% betyder färre än 100 döda per hundratusen barn. I praktiken är risken så liten att den är omätbar för barn som saknar andra riskfaktorer såsom svår övervikt eller undertryckt immunförsvar t.ex. till följd av cancer.

Vilka är riskerna med vaccination av barn som inte tillhör någon riskgrupp? Brittiska data anger att antalet dödsfall per hundratusen är 0.3 för unga dubbelvaccinerade under 18. För ovaccinerade under 18 år är motsvarande siffra 0 per hundratusen. Intressanta siffror men relativt osäkra genom att barn typiskt har mycket lindriga symptom … men betydligt fler döda i den vaccinerade gruppen?

Agerar myndigheterna med medborgarnas bästa för ögonen?

Man kan försöka mäta myndigheternas agerande i relation till medborgarnas bästa t.ex. på följande sätt:

Vilken information har befolkningen givits gällande kända metoder att minska risken för smitta och allvarlig sjukdom?

Det finns tiotals forskningsrapporter som visar att vid svåra fall av COVID19 tenderar patienten att ha brist på D-vitamin. Det är också välkänt att djur och människor som är sjuka tenderar att förbruka mera C-vitamin än normalt. Hos djur är ett t.o.m. mångdubblat behov av C-vitamin inget problem eftersom djuret själv kan producera C-vitamin från glukos/socker. Ökad behov av C-vitamin hos en sjuk människa leder till C-vitaminbrist om inte kroppen tillförs extra C-vitamin eftersom människan inte till följd av en genetisk defekt själv kan producera C-vitamin. Folkhälsomyndigheterna THL berör på intet sätt ovanstående ofarliga självmedicineringsmetoder.

Ger man information om relevanta behandlingsformer i hemmet?

Då det finns behandlingsformer som har effekt om de sätts in i ett tidigt skede så får man ett intryck av att instruktionen att ta sig till sjukhus, om man kan, då man börjar bli blå inte åtminstone har givits med de drabbades bästa för ögonen. Är det kanske så att några extra dödsfall tenderar att öka motivationen att ta experimentella nödgodkända vaccin?

Använder man sjukvårdssystemet till att blockera ofarliga alternativa vårdformer?

Det finns mängder av forskningsrapporter som indikerar att t.ex. ämnena Ivermectin, Hydroxycloroquin och andra ämnen speciellt om det ges i ett tidigt skede har god effekt på COVID19. Användning av Ivermectin, Hydroxycloroquin och andra undertrycks aktivt i Europa och USA. Ämnena har i mängder av forskningsrapporter angivits ha antivirala egenskaper. Är det fråga om en cynisk marknadsaföring av vaccin där några extra döda inte spelar någon roll eftersom de är statistik och inte människor. Kan man uppfatta olika myndighetsorganisationer främst i USA som objektiva och oberoende då i princip hela deras verksamhet finansieras av läkemedelsbolagen. Risken för korruption och bästa broder överenskommelser är stor speciellt då det verkar finnas goda karriärmöjligheter för personer som inte är besvärliga och ställer fel frågor.

Information om bl.a. biverkningar hos vaccinen har hållits hemliga

En federal domstol tog nyss ett FOIA beslut på att de dokument som ligger till grund för nödgodkännandet av Pfeizers vaccin måste frisläppas senast i augusti 2022. Före domstolsbeslutet såg det ut som om dokumenten skulle ha hållits hemliga i tiotals år.

Det är inte tillåtet att ifrågasätta myndigheters åtgärder eller argument. Då man ser på dagens Finska regering och vilken skolning de har i botten så frågar man sig med skäl om våra toppolitiker faktiskt är kapabla att objektivt välja kapabla rådgivare. Osökt tänker jag överfört på våra politiker enligt modellen från klassiska skoluppsatser, det är inte självklart att mycket här ändrats i toppen av de nordiska samhällena (Wikipedia): Ett ofta förekommande exempel är en mening som ser ut att vara hämtad ur en skoluppsats i historia: ”Halvt vansinnig och omgiven av dåliga rådgivare kan jag endast beklaga Erik XIV:s olyckliga öde.” Meningen kan tolkas endera som ”Eftersom Erik XIV var halvt vansinnig och omgiven av dåliga rådgivare kan hans olyckliga öde endast beklagas”, eller ”Jag, som är halvt vansinnig och omgiven av dåliga rådgivare, kan endast beklaga Erik XIV:s olyckliga öde”, då det är oklart om satsförkortningen förbinder sig till subjektet ”jag” eller objektet ”Erik XIV:s olyckliga öde”.

https://banned.video/watch?id=61a79f1beed1d377c65b7e90

Källor:

CDC Årlig influenssa: https://www.cdc.gov/flu/about/burden/index.html

CDC COVID risk i olika ålderskategorier: https://www.cdc.gov/coronavirus/2019-ncov/covid-data/investigations-discovery/hospitalization-death-by-age.html

Johns Hopcins University Corona Case Fatality Rate: https://coronavirus.jhu.edu/data/mortality

The Economist, risk estimator: https://www.economist.com/graphic-detail/covid-pandemic-mortality-risk-estimator

Dödsfall hos barn relaterade till Covid vaccination: https://rightsfreedoms.wordpress.com/2021/09/20/the-covid-19-vaccines-have-harmed-and-killed-more-children-in-the-usa-than-all-other-vaccines-combined-according-to-official-data/

Ivermectin har antivirala egenskaper: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7539925/

Ivermectin, Israeliska erfarenheter: https://www.christianitydaily.com/articles/13497/20211005/top-israeli-doctor-says-ivermectin-really-has-antiviral-activities-urges-more-research-as-potential-covid-treatment.htm

NIH i USA som leds av Anthony Fauci publicerade år 2005 en artikel om antivirala egenskaper hos Chloroquine (släktning till Kinin, det finns flera varianter t.ex. Hydroxycloroquine med färre biverkningar): https://granitegrok.com/blog/2020/05/2005-nih-journal-chloroquine-is-a-potent-inhibitor-of-sars-coronavirus-infection-and-spread

Pfeizer måste frige data som ligger till grund för nödanvändningen av COVID-vaccin. Man försökte hemlighålla materialet i tiotals år i strid med FDA:s egna regler. Hur kan en människa ta ett rationellt beslut gällande vaccin om riskerna är hemliga? https://sarasotavaccinationchoice.wordpress.com/2021/12/08/updated-corrected-pfizer-smoking-gun-secret-document-their-deadly-covid-vaccine/

Att ladda program på en PDP11

05/01/2022

1970-talets datorer var ofta försedda med en frontpanel med mängder av strömbrytare samt blinkande lampor. Frontpanelen var inte kosmetisk utan tanken var att användaren började med att knappa in en handfull maskininstruktioner i maskinens minne, instruktioner vars uppgift var att ladda in ett större mera avancerat laddarprogram från t.ex. hålremsa. Från hålremsa kunde man ladda in ett enkelt operativsystem eller t.ex. en Basic tolk som kunde användas till att skriva riktiga program. Det var teoretiskt, inte praktiskt, möjligt att knappa in t.ex hela tolken via frontpanelen men chansen att man gjorde något fel var så stor att det inte var något alternativ. En användbar Basic krävde någonstans mellan 4000 och 8000 instruktioner d.v.s. kanske 15000 strömbrytare måste flippas utan fel för att det skulle fungera.

Bilden är tagen från: https://obsolescence.wixsite.com/obsolescence/pidp-11-overview

Man använde oftast hålremsa för att ladda program. Hålremsa är som namnet säger en ungefär 25 mm bred pappersremsa ofta många meter lång med hål stansade tvärs över remsan. Varje stansad hålrad representerade ett tecken i binär form. Det själv inmatade programmets uppgift var alltså att läsa av hålkombinationer från en hålremsläsare och successivt mata in resultatet i minnet. Då hela remsan hade lästs matade man in en startadress från frontpanelen och tryckte på ”kör”.

En hålremsläsare är enkel att bygga själv men att bygga en hålremsstans kräver redan en del mekaniskt kunnande men inte oöverkomligt sådant. Jag tittade lite på möjligheten att bygga upp hålremsan på A4-papper i form av t.ex. en JPG bild. Man kunde då t.ex. i stället för att stansa hålremsa skriva ut program eller data i hexadecimal form, papper som kunde mappas in och sedan läsas av PDP11 via en simulerad hålkortsläsare som skulle använda OCR (Optical Code Recognition) för att återskapa innehållet i binär form för laddning till PDP11. Jag skrev på skoj ett program som dumpade data till printer i ett standardiserat format och använde därefter programmet Tesseract för att återskapa mina data. Programmet Tesseract fungerar mycket väl då man låter det läsa text skrivet på ett språk för vilket Tesseract tränats. Resultatet blev inte speciellt bra då programmet skulle läsa i princip slumpmässiga data. Felkorrigeringen bygger tydligen åtminstone delvis på att den inlästa texten matchas mot ordlistor/meningar/grammatik så att enstaka fel elimineras. Då programmet inte kunde matcha inlästa data mot en språklig databank dök det upp förvånande mycket fel kanske 1-5% av de inlästa tecknen blev fel d.v.s. systemet fungerar inte utan hjälp av mera avancerad felkontroll. Här uppfattade jag att jag hamnade i en återvändsgränd och lät bli att gå vidare.

Av en slump hittade jag efter en del googlande ett enkelt alternativ till att ladda in program till PDP11. Vi har alla sett video/film från gårdagens data center där det finns kylskåpsstora databanspelare som kontinuerligt körs/stoppas/snabbspolas. Databanspelarna var länge det huvudsakliga mediet på vilket data kunde lagras. En svindyr hårskiva rymde kanske 5 Mbyte medan ett magnetband hade nästan oändlig kapacitet sett ur den tidens perspektiv. Magnetbandets nackdel var att man då man skulle ladda in ett program måste man hitta bandet, korrekt mata in bandet i bandstationen och därefter ange vilket ”block” man ville läsa. Systemet var långsamt men blixtsnabbt jämfört med andra system t.ex. hålremsa.

Det visade sig att det fanns en fungerande simulerad bandstation som fungerar på följande sätt:

Jag skapar en katalog /home/pi/bsdtapes på Raspberry Pi där emulatorn körs. Om jag lagrar ett simulerat magnetband tq0tape.tap i denna katalog så kan jag på PDP11 som på den gamla goda tiden aktivera bandstationen och läsa bandet.

För att aktivera bandstationen i PDP11 måste man i BSD 2.11 startfilen definiera att en bandstation finns tillgänglig.

cd /opt/pidp11/systems/211bsd

Gör en kopia på initialiseringsfilen boot.ini:

sudo cp boot.ini boot.ini.backup

Editera boot.ini så att det efter set tq enabled kommer en ny rad:

attach tq0 /home/pi/bsdtapes/tq0tape.tap

Då PDP11 BSD 2.11 startar så vet systemet var det hittar bandet för bandstationen.

Processen beskrivs nedan:

Att läsa program/data från magnetband

Om jag vill flytta data eller program till PDP11 så måste jag först skapa ett läsbart magnetband d.v.s. en fil som binärt ser ut som de data vi får ut från magnetstationen.

Vi börjar med att putsa bort eventuella gamla magnetband i katalogen. Jag har en underkatalog i vilken jag sparar mina magnetband.

sudo rm tq0tape.tap tq0tape.tar

Antag att jag vill flytta en fil minFil.txt till PDP11. Jag börjar med att komprimera/packa ihop filen till en tar-fil. Filändelsen tar står för tape archive! Systemet används fortfarande i Unix/Linux maskiner även om det är många år sedan man hade en riktig bandstation att jobba mot. Resultatet blir helt enkelt en datafil.

tar cvf tq0tape.tar minFil.txt

Vi har nu ett bandarkiv tq0tape.tar som innehåller filen minFil.txt. Filen är inte ännu läsbar av PDP11 utan vi måste skriva om arkivfilen till ett simulerat magnetband. Vi gör detta med hjälp av ett enkelt Perlprogram tapadd.pl och resultatet blir en fil tq0tape.tap .

./tapadd.pl tq0tape.tar tq0tape.tap

Jag kan nu läsa bandet från PDP11 på följande sätt under förutsättning att jag har lagt till bandstationen till 211BSD :

Starta PDP11/70 under simh. Det verkar vara nödvändigt att starta om 211BSD mellan olika band. Jag har inte analyserat vad detta beror på … kanske i framtiden. Logga in på PDP11 och gå till den katalog dit du vill ha dina data. Spola tillbaka magnetbandet och läs innehållet i form av en tar-fil.:

mt rewind
tar xv

Resultatet blir att de filer som fanns på bandet lagras under dut usprungliga namnet i arbetskatalogen. Systemet fungerar förvånande bra.

Att flytta data från PDP11 via magnetband

Systemet är i princip detsamma som det ovan beskrivna men i omvänd ordning. Vi börjar med att skapa ett bandarkiv som skrivs direkt till ”magnetbandet” utan att gå över en lokal fil. Systemet är alltså:

Spola tillbaka bandet.

mt rewind

Vi antar att vi vill flytta hela arbetskatalogen till Raspberry Pi. Vi ”tarrar” då ihop hela katalogen och lägger resultatet på bandet:

tar cv .

Notera att punkten efter tar cv betyder den aktuella katalogens innehåll. Jag kunde byta ut punkten mot t.ex. hello.c varvid endast filen hello.c skulle skrivas till band.

Det vi tarrade ihop finns nu på ”magnetband” i filen tq0tape.tap på Raspberry Pi (detta kallas magi)! Vi kan nu läsa bandet på raspberry pi med hjälp av hjälp programmet tapcat.pl . Vi börjar med att konvertera magnetbandet till ett normalt Unix bandarkiv:

./tapcat.pl tq0tapes.tap > tq0tapes.tar

Vi skapade nu ett Unix bandarkiv tq0tape.tar i arbetskatalogen. Bandarkivet kan nu öppnas med:

tar xvf tq0tapes.tar

Efter detta tar kommando finns hela arkivets innehåll i arbetskatalogen där kommandot kördes.

Slutkommentar

Det är rätt intressant att jag kan använda Unixens ”tar” verktyg på en maskin från 1970-talet. Alternativt kan man säga att det är rätt fantastiskt att 1970-talets programverktyg som skapades för att hantera data-/programarkiv på magnetband fortfarande används aktivt idag trots att forntidens bandstationer har försvunnit helt och man hittar dem endast på olika tekniska muséer.

Jag kan nu hämta ett ”magnetband” d.v.s. kopiera en magnetbandsfil från min underkatalog mytapes till filen tq0tapes.tap och därefter ladda innehållet på PDP11.

Ett ännu enklare sätt att överföra filer är att använda ftp (file transfer protocol) d.v.s. vi använder nätverket för överföring utan att ha något behov av att någon bandstation på vägen. Mera om ftp i nästa artikel.

Länkar

Filtransfer via magnetband: https://github.com/rricharz/pidp11-2.11bsd/blob/master/Tape.pdf

Program tagna från https://github.com/rricharz/pidp11-2.11bsd/

Programmet tapadd.pl:

#!/usr/bin/perl -w
use strict;
if(@ARGV != 1) {
print STDERR ”Usage: $0 <filename>\n”;
exit(1);
}
add_file($ARGV[0], 512);
end_file();
end_file();
sub end_file {
print ”\x00\x00\x00\x00”;
}
sub add_file {
my($filename, $blocksize) = @_;
my($block, $bytes_read, $length);
open(FILE, $filename) || die(”Can’t open $filename: $!”);
while($bytes_read = read(FILE, $block, $blocksize)) {
if($bytes_read < $blocksize) {
$block .= ”\x00” x ($blocksize – $bytes_read);
$bytes_read = $blocksize;
}
$length = pack(”V”, $bytes_read);
print $length, $block, $length;
}
close(FILE);
}

Programmet tapcat.pl:

#!/usr/bin/perl -w
use strict;
use vars qw($filename $filenum);
if(@ARGV != 2) {
printf STDERR ”Usage: $0 <tape file> <file number>\n”;
exit(1);
}
$filename = $ARGV[0];
$filenum = $ARGV[1];
open(INPUT, $filename) || die(”Can’t open $filename: $!”);
while($filenum–) {
readfile(0);
}
readfile(1);
exit(0);
sub readfile {
my($print) = @_;
my($block);
while(defined($block = readblock())) {
if($print) {
print $block;
}
}
}
sub readblock {
my($blocksize, $bs2, $block);
read(INPUT, $blocksize, 4);
$blocksize = unpack(”V”, $blocksize);
return undef unless $blocksize;
read(INPUT, $block, $blocksize);
read(INPUT, $bs2, 4);
$bs2 = unpack(”V”, $bs2);
$blocksize == $bs2 || die(”Invalid tape format”);
return $block;

}

Att köra en PDP11 dator från 1970-talet

05/01/2022

Jag har under en tid bekantat mig med en emulerad/simulerad PDP11 minidator från mitten av 1970-talet. PDP11 datorn var mycket populär innan IBM PC:n slog igenom och i praktiken sopade bort konkurrenterna mot slutet av 1980-talet då minidatorn PDP11 redan hade kring tjugo år på nacken. Konstruktionen kom att kopieras på olika håll bl.a. tillverkade man kopior i Sovjetunionen t.ex. Electronica 60 som jag tittade på i slutet av 1980-talet som alternativ för kontroll av mätsystem för export till Sovjetunionen. Jag jobbade aldrig med en rysk dator eftersom det visade sig att vi kunde kringgå exportrestriktionerna genom att byta ut en HP 9836 dator baserad på Motorola 68000 processor, som omfattades av amerikanska restriktioner, mot en standad 8 MHz långsam första generationens PC 8088. Jag kommer inte ihåg vilken tillverkares PC vi använde men detta är inte viktigt eftersom de olika PC:na var lika som bär. Lösningen var säkerligen bra eftersom Electronica 60 torde ha haft en hel del problem med pålitligheten. Det skulle dock ha varit roligt att ha fått konkret erfarenhet av dåtidens PDP11.

Den PDP11 jag skriver om är en emulerad PDP11/70 från ungefär 1975 som hörde till den tidsperiodens tungviktare använd som laboratoriepersondator. Datorn kunde köra UNIX och den orkade med flera användare eftersom en PDP11/70 med max minne på 4 MByte kunde stöda flera samtidiga användare. Användarna har under 2.11BSD Unix tillgång till något mer än 300 kByte minne vilket på den tiden var mycket. En PC som lanserades ett antal år senare kunde ha 64 kB – 256 kB (-640kB) för användare och operativsystem. Eftersom det normalt inte fanns något grafiskt användargränssnitt så var minnesbehovet litet och det gick att skriva stora program i 300 kByte. Dagens persondatorers behov av ett stort minne 2000-4000 ggr större än PDP11:ns är en följd av den mycket sofistikerade grafiken som kräver väldigt mycket minne utan att egentligen ge annat mervärde än bling bling. Samma kommentar gäller själva processorn som klockades på några megaherz. Moderna datorer kör med en klocka som tickar igen kanske 1000 ggr snabbare. Det intressanta är dock att då man håller sig till en text-terminal och använder kommandoraden så känns maskinen väldigt OK.

Hur emuleras en antik dator

Redan på slutet av 1960-talet d.v.s. för mer än 50 år sedan skrevs den första emulatorn MIMIC som bl.a. användes för testning och utveckling av nya datorkonstruktioner. 1993 startades projektet simH för att bevara minnet av ålderdomlig hårdvara och program. Den första generationens hårdvara höll snabbt på att försvinna och mängder av data som lagrats på magnetband riskerade att förstöras tex. 1960-talets data från månprojektet. Programmet simH emulerar en mängd gamla datorer bl.a.:

  • Data General Nova, Eclipse
  • Digital Equipment Corporation PDP-1, PDP-4, PDP-7, PDP-8, PDP-9, PDP-10, PDP-11, PDP-15 (and UC15), VAX11/780, VAX3900
  • GRI Corporation GRI-909, GRI-99
  • IBM 1401, 1620, 7090/7094, System 3
  • Interdata (Perkin-Elmer) 16b and 32b systems
  • Hewlett-Packard 2114, 2115, 2116, 2100, 21MX, 1000, 3000
  • Honeywell H316/H516
  • MITS Altair 8800, 8080 only
  • Royal-Mcbee LGP-30, LGP-21
  • Scientific Data Systems SDS 940
  • Xerox Data Systems Sigma 32b systems

Listan är inte fullständig.

Det är intressant att konkret se hur extremt mycket mera processorkapacitet vi har tillgång till idag, nästan gratis, än för femtio år sedan. En PDP11/70 kostade med fullt utbyggt minne mer än en högklassig ny personbil medan min på en Raspberry Pi emulerad PDP11/70 med maximalt minne en mängd operativsystem etc. kostar kanske 50E (500 SEK). Min emulerade maskin kör dessutom ungefär dubbelt snabbare än orginalet. Min Raspberry Pi har en kapacitet där RAM-minnet är 1000 ggr större än orginalet. Massminnet (skivminnet) är kanske 10000 ggr större och processorns hastighet är kanske 1200 ggr högre än orginalets. Ordlängden i PDP11 var 16 bitar medan en Raspberry Pi kör med ordlängden 64 bitar d.v.s. 4 ggr längre. Totalt kan man eventuellt säga att dagens lilla Raspberry Pi, beroende på vilken applikation man betraktar har en kapacitet som är mellan 1000 och 1000000 ggr högre än 1970-talets PDP11. Sannolikt ligger sanningen närmare 1000000 ggr än 1000 ggr …

Hello world

Min PiDP11/70 minidator i form av en modern mikrodator av typen Raspberry Pi model 3B. Notera att jag inte kör på den snabbaste varianten av Raspberry Pi. Valet av maskin att emulera PDP11 på gjordes utgående från vad jag råkade ha i miljonlådan … Raspberry Pi ligger på en fusklapp med kommandon man behöver för att använda den klassiska Unixeditorn ”vi” beskriven nedan.

Ett första test av en okänd dator och ifrågavarande dators programvara är ofta att skriva ett mycket kort program, kompilera det och sedan köra det. Sekvensen testar på ett allmänt plan att själva maskinen är någorlunda vettigt konfigurerad, det finns en fungerande text editor, kompilator (eller t.ex. basic tolk) samt förbindelse till bildskärm och tangentbord fungerar.

Jag har kört BSD Unix version 2.11 på min PiDP11. Alla någorlunda färska Unixvarianter är skrivna i programspråket ”c” och motsvarande kompilator heter cc (c compiler). I ett system som kör Unix brukar det alltid finnas en text editor som heter ”vi”. Editorn ”vi” är urgammal men förvånande kraftfull om användaren känner till den. Utmärkande för vi är att den är modal d.v.s. den har en kommandomod och en insättningsmod. I kommandomoden kan man med kursortangenterna och via andra tangentbordskommandon flytta sig i texten, ta bort text, söka text, byta ut text etc. Då man vill skriva text går man in i insättningsmod med kommandot ”i”. Då man vill tillbaka till kommandomoden så trycker man på ”ESC” tangenten.

Man sparar texten med kommandot ESC :w .

Man kommer ut ur programmet med kommandot ESC :q .

Avslutning så att texten sparas kan göras med kombinationen ESC :wq .

Att tvinga stängning av programmet kan man göra med ESC :q! .

Många Unixanvändare uppfattar att det enda ”vi” kommando man behöver känna till är ESC :q eftersom ingen människa med förståndet i behåll vill göra något annat än att snabbt ta sig ur editorn.

Terminalfänster från min bordsdator deNeb över nätet ner till PDP11/70. Programmet hello.c i listningen är skrivet med vi-editorn beskriven ovan.

Vi startar vi-editorn med kommandot ”vi hello.c” och kan då studera själva programmet som innehåller två utskriftskommandon som skriver ut textraderna

Hello world!
Another line!

Vi kompilerar programmet till körbar form d.v.s. maskinspråk med kommandot:

cc hello.c -o hello

Programmet körs med kommandot:

./hello

Och resultatet blir:

Kompilering av programmet hello.c . Vi ger tilläggsinformationen -o hello åt kompilatorn för att lagra resultatet i den körbara filen ”hello”. Standardnamnet på resultatet av compileringen skulle ha varit a.out vilket blir onödigt kryptiskt. Det körbara programmet körs därefter med kommandot ./hello . Orsaken till att jag skriver ./ före hello är att jag säger åt systemet att jag vill köra det program ”hello” som finns i den katalog i vilken jag befinner mig för tillfället. En Unix maskin brukar konfigureras så att man inte av misstag kör program i den katalog där man jobbar.

Jag nämnde ovan att många moderna Unixanvändare anser att det enda vi-commando man behöver känna till är ESC :q så att man med äran i behåll kan ta sig ut ur editorn. Problemet blir då hur jag skall skriva program om jag inte vill använda vi. Alternativet i 211BSD Unix på min PDP11/70 är editorn ”jove” som jag personligen har samma relation till som ”vi” d.v.s. jag vill ut ur den så snabbt som möjligt. Lösningen är naturligtvis att sätta upp kommunikation mellan min normala bordsdator eller laptop rill min PDP11 och då använda en modern editor i den moderna maskinen för att sedan flytta över program för kompilering på PDP11. Olika processer för att flytta över data mellan maskinerna presenteras i nästa avsnitt.

Förtroendet för myndigheterna

04/01/2022

Förtroendet för myndigheterna och en tro på att myndigheterna agerar med folkets bästa för ögonen håller snabbt på att smulas sönder. Nedanstående video från Queensland Australien visar hur vanliga människor börjar få nog. Det är sjävklart att poliserna i nedanstående video endast är spelbrickor men det är skrämmande att se hur nära ytan en upptrappning, i värsta fall med våld som följd, är.

Restaurangägaren konstaterar till poliserna: ”Ni bryter ner samhällets struktur.”

Det verkar självklart att människorna i Australien inte uppfattar en situation där polisen vilket ögonblick som helst kan knacka på hos en person och föra hen till ett karantänsläger som moraliskt korrekt. Samhällets agerande där man i Coronans namn smular sönder småföretag uppfattas inte heller längre som korrekt utan som otillåten maktutövning. De stora kedjorna har resurser att rida ut stormen men detta gäller inte mindre företag.

Samma situation ser vi också i Europa där tiotusentals människor står upp mot något de uppfattar som oproportionerligt myndighetsvåld.

Motsvarande myndighetsövergrepp ser vi här i Finland i form av tydligen godtyckliga regler gällande vilka samhällsfunktioner som är ”farliga” och vilka som inte är det. Grundidén verkar dock vara att man ger sig på yrkesgrupper enligt principen att man stänger ner där staketet är lägst och det inte finns motstånd. Man stänger ner kulturen men att samla ihop kanske 50% av landets röstberättigade till ett relativt litet antal platser under en enda dag för ett val uppfattas inte vara speciellt riskfyllt ur smittosynvinkel. Den sjukdom man nu 2022 stänger ner hela samhället för har en vanlig vinterförkylnings symptom d.v.s. snuva, trötthet, huvudvärk och ont i halsen.

Vilket blir resultatet om myndigheterna inte stannar upp och funderar igenom vart vårt västerländska samhälle är på väg. Vill vi bryta ner ett förtroende för myndigheterna som det hara tagit ett århundrade att bygga upp? Som man visste redan under antiken så är det mycket lättare att bryta ner än att bygga.

https://youtu.be/TYftHr5Y2k0


Pointman's

A lagrange point in life

THE HOCKEY SCHTICK

Lars Silén: Reflex och Spegling

NoTricksZone

Lars Silén: Reflex och Spegling

Big Picture News, Informed Analysis

Canadian journalist Donna Laframboise. Former National Post & Toronto Star columnist, past vice president of the Canadian Civil Liberties Association.

JoNova

Lars Silén: Reflex och Spegling

Climate Audit

by Steve McIntyre

Musings from the Chiefio

Techno bits and mind pleasers

Bishop Hill

Lars Silén: Reflex och Spegling

Watts Up With That?

The world's most viewed site on global warming and climate change

TED Blog

The TED Blog shares news about TED Talks and TED Conferences.

Larsil2009's Blog

Lars Silén: Reflex och Spegling