pronto.ee

Tomorrow will be cancelled due to lack of interest

PHP8: nullikindel operaator

PHP

Vajadus nullikindla operaatori (null-safe operator) järele eksisteerib PHP-s juba mõnda aega. Põhimõtteliselt võimaldab see nüüd kasutada pöördumisväärtuste ahelat ilma täiendavate kontrollideta ka siis kui seda kasutatakse koos väärtustamata tüüpidega (nullable types).

Et sellest paremini aru saada tuleb vaadata mõlemat asja eraldi. Väärtustamata tüübid lisati PHP-sse hulk aastaid tagasi versioonis 7.1. Klassikaline väärtustamata tüübiga meetodi signatuur näeb välja selline:

public function getSession(): ?Session
{
    // Code
}

Praktikas tähendab see seda, et kirjeldatud funktsioonil võib olla kahte tüüpi pöördumisväärtus: Session või null. Null on spetsiifiline tüüp mida kasutatakse sellistel puhkudel kui väärtust ei leita: näiteks antud juhul oleks täiesti legitiimne viis tagastada null kui sessioon on initsialiseerimata. Siinkohas on oluline mõista, et see on legitiimne viis ainult siis kui tõepoolest selline olukord on loomulik voo osa, näiteks sellisel puhul kui kasutaja pole sisse loginud. Kui sessiooni ei ole ühel või teisel (tehnilisel) põhjusel võimalik pärida, siis on korrektseks lahenduseks Exceptioni viskamine. See võimaldab vahet teha vastuse puudumisel ja veal.

Tähelepanuks niipalju, et väärtustamata tüüpe võib kasutada ka sisendaväärtustena. Näiteks:

$user->setAddress(?Address $address);

Tüüpide kasutamine pole tänapäeva PHP-s küll otseselt kohustuslik kuid sellele vaatamata rangelt soovituslik; see võimaldab IDE-del automaatselt tuvastada koodis vigu ning vältida olukorda kus funktsioonile antakse ette vale parameeter mille PHP automaatselt ootamatute tagajärgedega enda jaoks sobivaks konverteerib.

Pöördumisväärtuste ahel on PHP veelgi kauem eksisteerinud. Klassikaline ahel näeb välja selline:

$country = $app->getSession()->getUser()->getAddress()->getCountry();

See võimaldab juhul kui pöördumisväärtuseks on objekt selle meetodeid koheselt kasutada. Probleem tekib siis kui mõne meetodi pöördumisväärtuseks on null. Sellistel puhkudel on tulemuseks: Fatal error: Uncaught Error: Call to a member function getSession() on null in .... Kuna eelnevalt sai toonitatud, et null võib olla meetodil täiesti legitiimne pöördumisväärtus sunnib see arendajat iga pöördumisväärtust eraldi kontrollima mis oma olemusel muudaks kogu kontseptsiooni kasutuks.

PHP8 tõi sellele probleemile lahenduse nullikindlate operaatorite (null-safe operators) näol. Praktikas näeb see välja selline:

$country = $app->getSession()?->getUser()?->getAddress()?->getCountry();

Sellisel puhul kui ükskõik milline ülaltoodud meetod annab tagasi null väärtuse, lõpetatakse ilma veata ahela edasine täitmine ning muutuja $country saab väärtuseks null. Selline lähenemine muudab koodi oluliselt lühemaks ja loetavamaks.

Oluline on siiski pidada silmas paari nüansse:

  1. ?-> tuleks kasutada ainult siis kui pöördumisväärtus võib reaalselt null olla. Vastasel korral on see probleemi vaiba serva alla lükkamine ehk siis reaalne viga võib arenduse käigus märkamata jääda.
  2. Seda saab kasuatada ainult lugemiseks. Muutujaid selle kaudu omistada ei saa. Näiteks $country()?->countryCode = 'EE'; annab tulemuseks Fatal error: Can't use nullsafe operator in write context in …
  3. See operaator annab varasemata PHP versioonidega vea: Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR) in …
  4. Seda meetodit ei ole võimalike kasutada läbi viidete (references): &$country->getCode(); annab tulemuseks: Fatal error: Cannot take reference of a nullsafe chain in …

PHP8: match avaldis

PHP

Ma olen viimastel aastatel päris palju pidanud algajate arendajate koodi hindama ja üks asi mis mulle silma torkab on see kui harva kasutatakse switch-i tingimuste lahendamiseks. Selle asemel leiab koodist erineval kujul terve leegioni if, else ja elseif lauseid. Ma ei hakka sellest hetkel pikemalt pajatama; jätke lihtsalt meelde, et switch on teie sõber. Kui seda õigesti kasutada siis muudab see koodi loetavamaks ja lühemaks.

PHP8 tõi sisse uue viisi tingimustega tegelemiseks mis on segu switch-ist ja kolmekordsetest (ternary) operaatoritest. Kui ei tule kohe meelde mida kolmekordne operaator endast kujutab, siis tüüpiliselt näeb see välja selline:

$i = $condition ? 'true' : 'false';

Uue viisi nimi on match ja kui tingimused klapivad, siis muudab see koodi veelgi lühemaks ja veelgi loetavamaks. Pidage meeles, et iga rida koodi on midagi mida tuleb jooksvalt hooldada ja vajaduse korral uuendada. Kui loetavus sellest ei kannata, siis mida vähem koodi seda parem. Toon siinkohas ühe näite kasutades eelmises postituses mainitud anonüümseid funktsioone:

$animal = 'dog';

$voice = match($animal) {
    'dog' => function() {return 'woof';},
    'cat' => function() {return 'meow';},
    'poro' => function() {return 'perkele!';},
    default => function() {return 'huh?';}
};

echo $voice();

Siinkohas oleks paslik ära märkida paar nüanssi. Esiteks match eeldab, et muutuja $animal on deklareeritud. Kuigi ta selle peale tööd ei katkesta ning väärtustab tulemi default-iga, kuvab ta vaikimisi hoiatuse: Warning: Undefined variable $animal

Teiseks on oluline, et match-i parameeter ja väärtus millega võrreldakse ('dog', 'cat', jne.) oleks sama tüüpi. Näiteks kui võrrelda väärtuseid 1 ja '1', siis on tulemuseks default. See on sarnane PHP === võrdlusega, kus erinevaid tüüpe ei ühtlustata nagu tehakse == võrdluse puhul.

Kolmandaks PEAB valik sisaldama tõest väärtust (kasvõi default-i näol). Kui lahendit ei leita on tulemuseks: Fatal error: Uncaught UnhandledMatchError: Unhandled match value of type string in ...

Teinekord kasutavad arendajad analoogse tulemuse jaoks nimelisi massiive:

$animal = 'dog';
$voices = [
    'dog' => function() {return 'woof';},
    'cat' => function() {return 'meow';},
    'poro' => function() {return 'perkele!';}
];

echo $voices[$animal]();

Sellel on kaks eelist: esiteks nagu näha on see ilma kontrollideta veelgi lühem ja teiseks töötab see varajasemate PHP versioonidega. Samas ei toeta see default-i mis praktikas tähendab seda, et tuleb kontrollida kas sellise nimega element eksisteerib, funktsioonid deklareeritakse isegi siis kui neid ei kasutata (see ei ole probleem kui väärtuseks on skalaarmuutujad nagu int, float, string jne.) ja tüüpi ei kontrollita. Sellise lahenduse kasutamine on iseenesest samuti ok ehk siis valik tuleb teha lähtuvalt ülaltoodud piirangutest.

PHP8: create_function() eemaldati

PHP

Ma olen viimased kuu aega PHP8 sees ringi mütanud eesmärgiga aru saada mis sealt uut leiab ja kuidas sellest võimalikult palju kasu lõigata ning olen sealt leidnud päris mitu tähelepanu väärivad asjad. Püüan osadest neist paari sõnaga kirjutada.

Selle konkreetse postituse teemaks on create_function() nimeline funktsioon, õigemini selle puudumine PHP8-s. Algselt lisati see PHP4-le ning selle mõte oli tuua PHP-sse anonüümsed funktsioonid. PHP5-e viimastes versioonides muudeti see kõik juba keele osaks, kuid mingil seletamatul põhjusel jätkas suur hulk arendajaid selle funktsiooni kasutamist vaatamata sellele, et funktsiooni MITTE kasutamiseks oli päris mitu head põhjust; näiteks kasutab nõnda loodud funktsioon globaalset mälu ning seda ei ole võimalik vabastada. Kuna tegemist on jõhkra häkiga kuulutati see PHP 7.2-s eemaldamisele minevaks ning alates PHP8-st kustutati see üldse maha.

Mis omakorda tähendas seda, et kui PHP-s kirjutatud tarkvara kasutas seda funktsiooni tervitab selle kasutajat pärast uuendamist järgmine veateade: Uncaught Error: Call to undefined function create_function() in <fail>. Kuna pahatihti kasutasid seda WordPressi kujunduste ja moodulite kirjutajad tähendas see seda, et pärast PHP versiooni vahetamist loobus nii mõnigi veebisait koostööst. Eriti siis kui tegemist oli pikemat aega toiminud leheküljega ja vaatamata sellele, et platvorm ise oli viimase versiooni peal.

Õnneks on seda probleemi suhteliselt hõlbus parandada. Panen siia ülesse ühe näite. Kõigepeal näide mis PHP8-s EI tööta:

$function = create_function('$a,$b','return $a . \' \' . $b;');
echo $function('Hello', 'World!');

Ja nüüd näide mis töötab:

$function = function($a, $b) {return $a . ' ' . $b;};
echo $function('Hello', 'World!');

Nagu näha on teine näide loetavam, elegantsem ja võtab vähem ressursse. Ning selle juurutamine ei ole üldse keeruline.

Ehk on abiks.

Sõjaprintsess

Pereäri on juba mõnda aega peaminister Kaja Kallase kallal tänitanud ning teda irooniliselt sõjaprintsessiks nimetanud. Täna proovis sama meedia veergudel teha Keskerakonna juhatuse ning Riigikogu liige Jaanus Karilaid. Paar tundi hiljem olid ta kuraasikad sõnad juba sootuks nutusemad, sest Kaja Kallas saatis praeguse valitse laiali ning tegi uue valitsuse moodustamise ettepaneku sotsidele ja Isamaale.

Antud juhul ma ei tahaks Karilaiul sõnavõttudel rohkem peatuda või kui siis ehk niipalju, et minu arvates on pärast paari nädala pikkust valitsuse töö saboteerimist ja hoogsat selga pussitamist kohatu süüdistada peaministrit reetmises.

Enne potentsiaalsete kombinatsiooonide kallale minemist tahaks kombata korraks hetkeolukorda, eelkõige seda milline on Reformi positsioon.

Reformierakonna olukorda pole ammu olnud nõnda hea kui praegu, seda suuresti praeguseks juba eelmise valitsuse tegutsemisele Vene-Ukraina sõja puhkedes. Eesti oli üks esimesi, kes andis kriitilistel hetkedel Ukrainale abi nii relvade kui eeskujuga. Sel ajal kui suurem osa Euroopast oli ähmi täis saatis Eesti Ukrainale Javeline ja muud moona, veenis oma partnereid kiiresti tegutsema ning oli venevastaste sanktsioonide ning Ukraina igakülgses abistamises eeskujuks ning jalgade lohistajate tagantutsitajaks. Rahvas mõistis vajadust selle järele ning see kajastus üheselt ka Kaja Kallase toetuses.

Kuid mitte ainult. Keskerakond kelle sidemed Vene praeguse võimuladvikuga pole tegelikult kunagi saladus olnud on jätkuvalt kaotanud oma toetust olles praeguseks langenud endiselt kindlalt esimeselt kohalt kolmandale (olles lühikest aega isegi neljandal Eesti 200 kannul). Nende jaoks on praegune peaminister olnud sõja algusest saati olnud äärmiselt mõru pill. Sama kehtib ka EKRE kohta — selle erakona sõnad ja teod on harva ühtinud ning kuidas nende toimetamisi ka tõlgendada proovida, nende teod kipuvad olema pigem praeguse idanaabri režiimi toetavad. Mõlema positsioonid on pärast konflikti algust olnud selges langustrendis ja kogu sellest tingitud nagistamine on viinud praeguse olukorrani.

Reformil on tegelikult laual viis võimaliku stsenaariumit.

Üks on see, et Isamaa võtab kutse vastu. Sellele räägivad vastu Isamaa ninameeste häälekad sõnavõtud mida on nüüd juba hilja tagasi võtta. Ma arvan, et Reform tegi selle pakkumise viisakusest, eesmärgiga Isamaad halba valgusesse mängida. Ütleme nii, et Isamaa ise on ennast ise lollilt nurka värvinud ja rumal oleks seda olukorda mitte ära kasutada.

Teine variant on see, et Reform läheb koos SDE-ga (kes on praeguseks oma põhimõtteliselt nõusoleku juba andnud) vähemusvalitsuse teed. Asi on selles, et Keskerakonna ning kohati ka Isamaa liikmed ei ole sugugi nõnda üheselt praeguste juhtkondade selja taga. Eriti Keskerakonna puhul on lähitulevikus oodata suuremat sorti aadrilaskmist ja seda just ladvikust. Vabalt võib juhtuda, et Reform leiab Keskerakonna ja Isamaa liikmete poolt piisavalt toetajaid, et järgmiste valimisteni vastu pidada.

Mis omakorda viib kolmanda, kõige tõenäolisema, stsenaariumini — Reform soovib välja kutsuda erakorralised valimised. Selleks on vaja põhimõtteliselt 51 Riigikogu liikme toetust; seda on küll pisut raske läbi viia kuid antud hetkel on asi ilmselgelt küünaid väärt. Põhimõtteliselt on see sarnane eelmise stsenaariumiga ning kui Isamaale jõuab kohale kogu probleemi ulatus võib juhtuda, et nad on kõigeks valmis, peaasi, et seda ei juhtuks. Sest eksisteerib reaalne oht, et Isamaa ei ületa erakorraliste valimiste puhul künnist.

Neljas variant on loomulikult see, et Reform läheb opositsiooni. See on Reformi jaoks tõenäoliselt kõige lihtsam ja üldsegi mitte halb variant: sügisel on uuesti päevakavas energiakriis, mis tänu sanktsioonidele on tõenäoliselt suurusjärk hullem. Lisaks loomulikult COVID-i uus laine ning hea oleks näha kust see lastetoetuse raha lõpuks siis välja võetakse. Nii või teisiti poleks oma väikeste käpakeste kogu jamast puhtaks pesemine oravate jaoks täiesti vastuvõetav väljavaade. Seda enam, et tekkiv kolmikliit oleks äärmisel nõrk ning suuresti teovõimetu. Mis omakorda võib lõpuks ikkagi viia kolmanda variandini.

Eksisteerib ka viies variant, mis on küll arvestades hetkeseisu ja nappi aega ebatõenäoline kuid samas ei saa seda välistada: Keskerakonnas veerevad mõned pead, erakond kas läheb lõhki või toimub paleepööre. Suurele osale KE-st ei ole vastuvõetav uuesti EKRE-ga koostöö alustamine. Põhimõtteliselt oleks sellisel puhul teise variandi derivaadiga.

Ehk siis eks näeme. Sõjaprintsessi gambiidi esimene käik on tehtud.

Film: “Apteeker Melchior”

“Apteeker Melchior” on kahtlemata viimase aja suurim Eesti film ning võimalik, et tegemist on meie kino omamoodi taaskäivitajaga. Eesti filmikunsti läbivaks teemaks on aastakümneid olnud tõekspidamine, et kui publikul kinost väljudes must masendus peal ei ole siis on lavastaja midagi valesti teinud. Seda ootust on süstitud nii lavastajatesse, näitlejatesse, kriitikutesse kui publikusse. See on põhjus miks Eesti film piiri taga läbi lüüa ei suuda. Sest meil ei suudeta mõista mis on kino. Et kino on eelkõige meelelahutus.

Kui ma peaksin kellelegi rääkima miks tuleks “Apteeker Melchiori” vaadata, siis ma ütleks, et kõigepealt oli “Viimane reliikvia”, siis periood mida iseloomustab 50 halli varjundit ja seejärel tuli “Apteeker Melchior”. See film (ja eelkõige just raamatud millel see film baseerub) on omamoodi “Viimse reliikvia” eellugu.

Lisaks ma ütleks, et eelarvet silmas pidades näeb see hea välja, on lustakas ja meelelahutuslik. Eraldi tahaks välja tuua veel Marko Matvere komptuur Spanheimi kehastust – mees on sõjas käinud ja elu näinud, teab palju, aga oskab keelt hammaste taga hoida. Ta on usutavalt autoritaarne ning autoriteetne, ta mehed alluvad talle tingimusteta. Hea töö Matvere poolt.

Kõike eelnevat kokku võttes: Kas film on kinoskäiku väärt? Kindlasti jah.

Aga.

Nagu sellistel puhkudel ikka on medalil teinegi pool. Filmi aluseks peaks vähemalt teoreetiliselt olema Indrek Hargla raamat nimega “Apteeker Melchior ja Oleviste mõistatus”. See räägib Oleviste kiriku ehitamisest ning mõrvamüsteeriumist mille oluliseks tegelaseks on Tallinna linnaapteeker Melchior. Esimese vihje kuivõrd meelevaldselt on tsenaristid ümber käinud algmaterjaliga annab juba algkaadrites olev Tallinna siluett kus valmis Oleviste kirik on kesksel kohal. Peatselt selgub, et sündmused toimuvad Tallinnas vaid nime poolest ning kuigi peategelane peaks justkui olema apteeker on ta pigem üks noorhärra, kes elab pudelikesi täis butiigi tagatoas.

Miks ma ütlen, et koht on Tallinn vaid nime poolest? Hargla on raamatud kirjutades kõva kodutöö teinud: kus vähegi võimalik on on sündmused ning linnaga seotud nüansid ajalooliselt korrektsed ning paiknevad õigetes kohtades. See kõik on filmis allavett lastud ning Tallinnas on saanud ebamäärane keskaja linn mis võib asuda ükskõik kus. Põhimõtteliselt on filmist väja roogitud kõik mis oleks ühte või teistviisi hariv.

Teine asi on muidugi apteeker ise. Melchior on saksamaalt pärit mees, kellel pikk ja sünge minevik mis raamathaaval järjest lahti rullub, perekonna needus ning miks täpselt ta on siia tsivilisatsioonide kokkupuutepunkti tulnud ei ole siiamaani päris selge. Melchior Wakenstede on ise sakslane samas kui tema naine Keterlyn on eestlane (nagu ka näiteks usumees Hinric). Filmis lähevad sellised nüansid täielikul kaotsi ning kuna see muutub raamatust raamatusse minnes üha olulisemaks, muutub pärast planeeritud filmitriloogiat loo kinolinal jätkamine raskeks kui mitte võimatuks. Melchior lihtsalt ei saa olla apteeker.

Kolmas asi on lavastaja, stsenaarium ja näitlejad. Kui Marko Matvere kõrvale jätta, siis paraku kumab teostuses läbi teatrilavastaja taust ning tõik, et näitlejad ei esita mitte rolli, vaid kannavad ette stsenaariumisse kirja pandut. Dialoogid on puised, osatäitmised siin ja seal planeerimatult koomilised ning need kohad mis pidid olema koomilised on lihtsalt piinlikud. Lisaks kui paar verisemat kohta kõrvale jätta, on kogu lugu naiivne ning tegemist on pigem noortele mõeldud linateosega.

Ehk teisisõnu. Võrreldes ülejäänud Eesti filmidega on “Apteeker Melchior” jõudnud punkti, kus puude taga hakkab juba mets paistma. Ehk aitab see Eesti filmitööstusele lõpuks jalad alla saada: palju on tehtud, aga palju on veel minna.

Üks detail veel — kui vähegi võimalik vaadake seda filmi enne raamatu kallale asumist, sest siis ei ole need probleemid nii frustreerivad.

Telesari: Halo

Halo jõudmine videomängust telerisse või suisa kinno on olnud teemaks juba poolteist aastakümmet. Algselt olid sellega seotud sellised nimed nagu Neill Blomkamp ja Peter Jackson, kuid pärast finantsläbirääkimiste karile jooksmist (Halo kaubamärgi omanik Microsoft arvas, et dollarid võiks laekuda produktsioonifirmalt sellal kui viimane arvas täpselt vastupidist) hingitses projekt filmihaiglas tilgutite all, millimeetri kaugusel teisest ilmas. Paari aasta eest hakkas asi siiski vaikselt susisema ning kuigi COVID-19 lõi algsele plaanile korraliku kaika kodaratesse on sarja kolm esimest osa nüüd Paramount+ kanalis saadaval ning viis järgmist nädalaste vahedega ilmumas.

Kuigi sari toetub suuresti Halo mängude universumile on sarja tegijad algusest peale toonitanud, et see see eksisteerib paraleelmaailmas. Kuigi üldine süžee on suures plaanis sarnane eksisteerivad mõningased olulised erinevused mis tähendab, et sündmused ei korda täies mahus mängus aset leidvaid ning samade tulemusteni jõutakse teinekord teisi teid pidi.

Niteks hakkab sari pihta jupp maad enne esimese Halo sündmuseid. Sparta programm eksisteeris juba mõnda aega kuid selle esmaseks eesmärgiks oli tegeleda inimestest mässajatega kelle vastu tavaliste sõdurite kasutamine oleks võinud tõstatada ebamugavaid küsimusi. Küsitav eetiline taust jookseb läbi nii peategelase John-117 sisekaemuste, suhetest oma kaaslastega ja loomulikult vastastega (“Nad ei ole inimesed!”). Kui teokraatlik Covenant segastel asjaoludel inimestele kallale tungis, rehabiliteeris see osalisel kogu ettevõtmise millest sõjardid varmalt kinni haarasid — spartalased olid ainsad kes olid võrdväärsed vastased tulnukate sõjameestele ja sestap rakendati neid kui esimest ja viimast kaitseliini.

Rääkides sisekaemustest tuleb mängu ka üks suuremaid erinevusi sarja ja mängu vahel: sarjas ei ole tegemist nimetu ja näotu tegelasega kes toimib rohkem žabloonina mängija jaoks. Nii tema ise kui tema meeskond kannab kiivreid vaid lahingusituatsioonides, neil on minevik ja tulevik. See loob omamoodi vajaliku kontrasti lahingusituatsiooni pidurdamatute ning ülivägivaldsete supersõdurite ja nende meeste ja naiste vahele kelle nägu visiiri taga on. Tänu selle tunduvad eetilised ja moraalsed dilemmad palju tõetruumad.

Loomulikult ei piirdu kogu sari vaid paari tegelasega, spartalasi ümbritseb terve hulk sõjaväelasi, poliitikuid, mässajaid, piraate, tsiviilsikuid, tehisteadvusi ja loomulikult tulnukaid. Detailidesse ma siinkohas laskuda ei tahaks, paistab, et põhiliselt käib tegevus ammu väljasurnud tulnukate tehnoloogia ümber mida jahivad nii inimesed kui covenant. Kuigi sarjast on veel kaks kolmandiku ilmumata on selge, et sarja esimese hooja läbivaks teemaks on tee rõngasplaneedile mille järgi sari oma nime on saanud.

Mida Halo meenutab? Arvestades sellega, et tegemist on sarjaga mida hakati väntama juba paari aasta eesti on üllatav, et see sarnaneb kõige rohkem selliste sarjadega nagu “The Mandalorian” ja “Foundation”. Ning mingil määral ka varasema “Dark Matter”-ga.

Kas see on vaatamist väärt? Lühike vastu on jah. Personaalselt tundus sarja algus mulle naiivne, kuid juba esimese hooaja lõpus tundus sari oma identiteedi leidvat ja pärast seda tundus iga osa lõppevat liiga vara; nüanss mis torkab silma nende filmide ja sarjade puhul mis on vaatamist väärt. Ei saa salata, et tal on oma probleemid kuid need on suhteliselt tühised.

Pluss loomulikult see, et juba on ametlikult tellitud sarjale ka teine osa mis näitab, et testvaatajad on sarja jätkuhooaja vääriliseks pidanud.

Napakuste taimelava

Kõigepealt kas te olete vaatamas käinud filmi “Moonfall”? Kui ei, siis pole te just paljust ilma jäänud. Järgmiseks kas teile tuleb tuttav ette sõnum: “Visit the COVID-19 Information Center for vaccine resources.”? Tavaliselt lisatakse Facebookis selline teade küsitava sisuga postituste juurde.

Kas te olete selle peale mõelnud, et need kaks asja võivad omavahel seotud olla?

Tuleb välja, et nad on rohkem seotud kui me tunnistada tahaksime. Õigupoolest ei ole “Moonfall” selles osas ainuke patukott; kivi võib visata pea suvalise ulmefilmi poole ja suure tõenäosusega kostab kiunatus. Et seda paremini mõista viskame pilgu peale filmi sünopsisele.

Kosmoses toimub intsident. Rumalad teadlased ja ametnikud mätsivad selle kinni ning tegeliku sündmuseid ei usu keegi peale tarkade vandenõuteoreetikute kelle ennastsalgav tegevus käivitab sündmuste jada kus suurte ohvrite hinnaga suudetakse läbi murda eelpoolmainitud teadlaste ja ametnike ringkaitsest, neutraliseerida nende poolt korraldatud jamad ja päästa meie koduplaneet.

Või võtame suvalise muu ulmefilmi: “The Terminator”, “Alien”, “Jurassic Park”, “Elysium”, “District 9”, enam-vähem suvaline film kus figureerivad elavad surnud. Pea kõikides jookseb läbi läbi motiiv, et kõikides hädades on süüdi rumalad, hooletud ja/või omakasupüüdlikud teadlased, kes on ühe mütsi all pahade ametnike ja/või sõjaväelastega. Ning positiivsed kangelased on eksentrilised tegelased, kelle sisemine tarkus ning ennastsalgav tegutsemine lõpuks kastanid tulest välja toob.

Ehk teisisõnu — kui popkultuur on üle poole sajandi süstemaatiliselt loonud teadlastest negatiivset kuvandit, et neid ei või hetkekski usaldada siis mida te loodate? Et hakkate postituste alla kirjutama, et see info ei pruugi tõele vastata ning kõik saab korda? Kolm (või isegi neli) viimast põlvkonda on teleri ees ülesse kasvanud ning paratamatult see kumab läbi meie käitumismustritest, tunnistame me seda või mitte.

Valed, räiged valed ja statistika

Tsitaadid on tihtipeale lakmuspaber mis ütleb nii mõndagi nende kasutaja kohta. Neid on võimalik kasutada täiesti vales kontekstis ja seda ilmestab väga hästi just see konkreetne tsitaat.

Tegemist on fraasiga mida Mark Twain justkui väitis pärinevat Briti peaministrilt Benjamin Disraeli suust. Paraku ükski muu allikas seda ei kinnita ning nõnda võibki olla, et see on kas valesti kuuldud, pärineb kelleltki teiselt või lisas Twain sellele lihtsalt oma mõttele tõsiseltvõetavuse suurendamiseks. Sest teate küll, valed.

Oluline on kogu selle asja juures see, et vaid vähesed mäletavad KOGU tsitaati, mis on: “Numbrid ajavad mind segadusse, eriti need numbrid mida ma ise olen ritta ajanud ehk nagu Benjamin Disraeli kuuldavasti tabavalt ütles: “On olemas kolme sorti valesi: valed, räiged valed ja statistika.”

Ehk teisisõnu kuigi seda tsitaati kiputakse kasutama justkui statistika diskrediteerimiseks tähendab see pigem seda, et osav demagoog kasutab teinekord osalist statistikat oma lambist võetud väidete kinnitamiseks, sest inimesed tavaliselt kas ei saa numbritest aru või ei viitsi neid kontrollida. Lisaks loomulikult väike piinlik nüanss, et kui statistika ei sobi hetkelise seisukohaga tekib inimestel kelle väikesed hallid ajurakukesed ei ole just kõige kirkamad kriidid karbis tunne, et neid püütakse numbritega lolliks teha. Või siis tesitpidi — kui numbrid ise ei klapi, aga tulemus sobib; Internet on sellisest materjalist tiine ja võite juba oletada millised kirjapulgad sellist kraami varmalt teistega jagada püüavad.

Ja seda see lakmuspaber näitabki — millist tooni on kriidid karbis.

Film: “The Matrix Resurrections”

TL;DR: Mulle uus Matrix meeldis: see oli nutikalt üles ehitatud, oskas enda ja oma eelkäijate üle naerda ning palju täiskasvanum kui eelnevad osad. Sellel olid omad vead, kuid need olid suhteliselt triviaalsed ning pikitud sinna-tänna heade asjade vahele.

Kui ma peaksin paari sõnaga seda filmi kirjeldama siis võib öelda, et see film meenutab hübriidi esimesest Matrixist, Christopher Nolani Inceptionist (mis omakorda oli algsest Matrixist mõjutatud) ja võib-olla ka Resident Evilist. Kui sarja esimene osa meenutas paaritunnist muusikavideot, siis seekord puutume me kokku erinevate eksistentsiaalsete probleemidega; vana Maatriks on lakanud olemast, nii inimestel kui masinatel olnud omavahelised lahkarvamused ja enam pole päris selge kes on sõber ja kes vaenlane.

Siinkohas oleks paslik märkida, et järgnev osa sisaldab mõningast infot, mis võib rikkuda seda filmi veel mitte näinud vaataja avastamisrõõmu. Olge siis hoiatatud.

Lugu hakkab pihta sellega, et edukas mängudisainer Thomas Anderson on ametis oma järjekordse projektiga mis kannab nime Binary. Kusjuures tegemist on omamoodi metaprojektiga, sest kogu filmi läbivaks teemaks on binaarsus, ühed ja nullid, mis kombineerides moodustavad keerulisi mustreid. Näiteks inimeste linn kuhu Neo lõpuks satub kannab nime IO, mida võiks sama hästi kirjutada ka 10. Binaarsed on omamoodi ka Neo ja Smithi (kes ei ole enam agent) ja Neo ning Trinity (kes kannab nüüd nime Tiffany) suhe.

Peagi selgub, et pärast viimast kolme edukat projekti, mis muide kandsid nime Matrix 1, 2 ja 3 ning katsid laias laastus kolme eelneva filmi stsenaarium, ei osanud Anderson oma mängu ja iseenda populaarsusega toime tulla, püüdis sooritada enesetappu ning käib nüüd regulaarselt psühhiaatri juures siniseid pille saamas. Lisaks varasematele muredele ei taha Binary projekt kuidagi edeneda ning loomulikult näeb ta endiselt aeg-ajalt nägemusi kolmest eelnevast filmist mis teeb raskeks otsustamise mis on päris ja mis mitte. Ning erinevalt Inceptionist ei ole tal tagataskust võimalik välja võtte tootemit millega maailma tõelisust kontrollida.

Asi hakkab käest ära minema siis kui Anderson hakkab testima jupikesi varasematest Maatriksitest mis meelitab jaole erinevaid huvilisi. Lisaks selgub, et mängu intellektuaalse omandi hoidja Warner Brothers (!) on otsustanud teha jätku Maatriksile, vaatamata sellele kas Anderson ja tema äripartner Smith (!) on nõus või mitte. See detail on muide sellele filmile äärmiselt iseloomulik, kuna väidetavasti just see toimuski ning ainult sellega suudetigi üks Wachowskitest lavastajatooli tagasi meelitada. Selliseid detaile on filmis kümneid ning tänu sellele oleks ilmselt mõttekas seda mitu korda vaadata kuna esimese hooga kipuvad need kahe silma vahele jääma. Kuni kusagil poole filmini pole Anderson (ja tema kaudu ka vaataja) kindel mis on päris ja mis mitte kuigi vihjeid tehakse vahetpidamata: peegeldustel on teistsugused inimesed, taevas on alati täpselt ühesuguse kujuga linnuparv, jne. jne.

Ajapikku selgub, et filmi sündmused leiavad 60 aasta taguses tulevikus ja nii nagu on inimesed pere heitnud on seda teinud ka masinad ja omavahel suisa korraliku sõja maha pidanud (põnev pisidetail: üks leer kasutas teise poole tümitamiseks siniseid kiiri ning teine punaseid ning selgub, et need sinised ja punased tabletid töötavad ka masinate peal). Masinad on loobunud ebausaldusväärsete agentide teenustest ning kasutavad nüüd “parvesid”, inimeste sekka istutatud lihtsakoelistest programmidest, kes näevad välja kui tavalised inimesed kuid kelle juhtimist on võimalik vajaduse korral üle võtta (see varasem vihje Resident Evilile tuleb just siit). Süsteemi sisse ja sealt välja ei pea enam samuti minema telefonide kaudu (tegemist oli omamoodi 1999 zeitgeistiga, millal te viimati telefoniputkasi või lauatelefone kasutasite?), nüüd saab selleks kasutada peegleid.

Siinkohas oleks vast mõistlik lõpetada stsenaariumist rääkida, sest muidu pole filmi enam huvitav vaadata. Ma siiski tahaks ära märkida, et kuigi algselt pole Resurrectionile jätku plaanitud, jätab filmi lõpp selle võimaluse avatuks — näiteks ei saa filmi lõpuni selgeks kes on need “ülikonnad” keda Analüütik mainib. Mulle endale meeldis ka see, et suuresti on üle libisetud teisest ja kolmandast Matrixist, mida küll ei ole täielikult ignoreeritud kuid mida mainitakse vaid pisteliselt ja siis ka tavaliselt omamoodi nalja pärana — näiteks kasvõi sarkastiline kommetaar, et äkki värks taeva vikerkaarekarva nii nagu seda tehti kolmanda Matrixi lõpus.

Lõpetuseks: uus film on paljuski esimese Matrixi otsene jätk ning minu meelest hästi tehtud. Tegemist on just vaimse jätkuga ja kes ootas relvatärinat ja ohtralt kung fud peab muidugi pettuma, kuid päris ilma ei jäetud ka neid.

Koroonaviiruse leviku mudel

Kui pisikesed pinnavirvendused siin ja seal välja arvata võib öelda, et see aasta on otsast otsani möödumas koroonaviiruse tähe all. Sestap on mõneti üllatav, et pärast kogu seda sagimist ei tea keegi endiselt kuigi täpselt (kui erinevad asjasse mittepuutuvad inimesed nagu erinevad poliitikud, ajakirjanikud, ametnikud ja vandenõuteoreetikud / -praktikud välja arvata) millega tegu, kuidas täpselt see viirus organismi ründab ja millega seda organismist välja kupatada.

Kuna olemasolevate andmete omavahel sidumine ei ole kedagi oluliselt targemaks teinud, on üks võimalik proovida luua abstraktseid mudeleid ja jälgides kuidas see mudeli poolt loodud prognoosid realiseeruvad või mitte teha vastavaid järeldusi. See siin on minu mudel.

See pole tegelikult inimkonna ajaloos esimene kord, kus viiruse ja haiguse omavaheline side on pikka aega jäänud hoomamatuks; nimelt AIDS-i ja HIV-i ei suudetud teineteisega väga pikka aega siduda. Muide just HIV-ist ma oma seisukohta kujundades lähtusingi. Selle vahega, et minu mudeli puhul ei ole viiruse põhjustatud kahjud püsivad.

Kui AIDS on otseses tõlked omandatud immuunsuspuudulikuse sündroom, siis COVID-19 puhu on täheldatud vastupidist sündroomi: immuunsussüsteemi ülereageerimist ehk siis täiesti eksisteerib võimalus, et uus viirus on põhimõtteliselt äraspidine AIDS. Ainult selle vahega, et sellal kui viimase puhul lõdvendas organism turvameetmeid praktiliselt olematuseni, siis koroonaviiruse puhul on need muudetud drakoonilisteks.

Oma olemuselt tähendab see aga seda, et viirus ise ei ole otseselt ohtlik ning terve inimese puhul pole millelegi üle reageerida. See seletaks suurepäraselt ära miks suur osa inimesi on asümptomaatilised ning põevad selle haiguse läbi seda ise märkamata.

Kui aga inimesel on juba mingi tervisehäire, siis muutuvad reeglid oluliselt. Mida inimesed tavaliselt ei adu on see, et suur osa haiguste sümptimitest on indutseeritud immuunsüsteemi poolt sissetungijatega võitlemise eesmärgil: näiteks palaviku eesmärk on tõsta kehatemperatuuri senikaua kuniks see neile vastuvõetamatu. Tõsi, see on kahtlemata ebameeldiv kuid suures plaanis vajalik tegu ja selle pärast pole ilma mõjuva põhjuseta mõistlik palaviku ravimitega alla suruda.

Kui aga organism reageerib üle, siis on mängureeglid loomulikult hoopis teised. Itaalias näiteks selgus esialgsetes uuringutes, et isegi 99% rakematest või surmaga lõppenud juhtudest olid seotud mõne teise tõvega: kas siis südame/vereringega, diabeet või (sic!) gripp. Viimane on tähelepanuväärne selle poolest, et sellel on COVID-19 praktiliselt identsed sümptomid: gripi raskemate vormide puhul on hingamine raskendatud, palavik, lõhna ja maitse kadumine, kuiv köha, jne.

Gripiga on seotud ka teine huvitav aspekt. Nimelt 2017/2018 gripihooajal suri Eestis sellest tingitud tüsistusse 94 inimest ja 2018/2019 hooajal 57. 2019/2020 hooajal suri enne COVID-19 lainet 10 inimest ja pärast lainet 2. Laine ajal? Mitte ühtegi. Ühest küljest võib seda lugeda kasutusele võetud meetmete teeneks kuid 0 on isegi sellisel puhul põhjendamatu, sest praktikas seisis elu vaid mõned loetud nädalad. Ühte või teistpidi väljub see number lubatud vea piiridest. Teisest küljest arvestades sellega, et koroonaviiruse surmasi on hetkel 64, siis isegi kui liita sellele see 12 jääb number eelmise ja üle-eelmise aasta gripi poolt viidute numbrite vahele.

Mida see kõik praktikas tähendab? See tähendab hulka asju: esiteks tähendab see seda, et oma tervise eest rohkem hoolitsevad inimesed on ka rohkem selle viiruse eest kaitstud, mis paraku tähendab ka seda, et jõukamad inimesed põevad selle haiguse läbi kergemini kui kehvemal järjel olijad. Näiteks Tallinn + Harjumaa kus elab umbes pool Eesti populatsioonist on regulaarselt pääsenud tunduvalt madalama protsendiga nakatumiste osas. Seda vaatamata sellele, et inimesed elavad tihedamalt koos, kus täielik isolatsioon on raskem, jne. Mudel paistab seda toetavat.

Mudel toetab seda ka selle kaudu, et koos gripihooaja taandumisega taandus ka COVID. Koos ilmade külmenemisega ja sellest tingitud nohu ja köhaga sai viirus taas jalad alla. Tõsi kergemalt kuna nohu ja köha on oma olemuselt kergemad haigused. Seevastu asi muutub arvatavasti oktoobris mil seekordne gripilaine hoogu hakkab võtma.

Kuid ärgem rääkigem ainult Eestis. Millest pole eriti räägitud on see, et koroonaviirusel on erinevates piirkondades erinevad sümptomid: meil on see rohkem gripiga sarnane, soojematel maadel rohkem malaariaga. Vanemate inimeste puhul võtab ta õnneks neid kellel on südame-vereringega probleeme. Õigupoolest on hetkel viirusele omistatud peaaegu kõik võimalikud ja võimatud sümptomid, välja arvatud võib-olla lahtine luumurd. Ning isegi seda on võimalik selgitada viirusest tingitud luude hõrenemisega.

Üks tähelepanek veel. Millegipärast on kõik kolded seotud ühe või teise n.ö. superlevitajaga. Sellest võib järeldada, et viirus ei levi sugugi nii kergel kui selle kohta alguses arvati. Pigem on selleks vaja näiteks tihedat köhimist või aevastamist.

Ehk siis mida me siit järeldada:

  1. COVID-19 on n.ö. katalüsaatorviirus, mis mõjutab seda kuidas organism muude ihuhädadega tegeleb. Kui sellele leitakse vaktsiin tasub ennast sellega kaitsta.
  2. Kui vaksiini ei leita tasub siis kui kuulute riskigruppi ja ei oma vastunäidustusi pookida muude enamlevinumate haigustega millele on juba leitud, sest kui pole haigust, pole ka millelegi üle reageerida.
  3. Kui tundub, et tervisega pole kõik korras jääge parem koju. Ja helistage perearstile. Parem karta kui kahetseda.
  4. Ärge elage teineteisel seljas.
  5. Kui te just ise haige pole, siis ei ole poodi sisenedes mõistlik alkoholiga oma käsi pesta. Kui te olete, siis mida te poes teete?! Alkohol eemaldab kätelt rasukihi, mis on organismi loomulik kaitse viiruste ja bakterite vastu. Kui enne võis juhtuda, et rasukiht kaitses teid, siis pärast selle eemaldamist (alkohol haihtub ise loetud sekundite jooksul) seate tee ennast täiendavasse ohtu. Poest väljudes on kätte puhastamine aga mõistlik, sest pagan teab kes teine seal asju on katsunud. Ning niisama vee ja seebiga käte pesemine on samuti hea. Nagu see on seda alati olnud.
  6. Jooge sidruniga teed. Neelake kalamaksaõli kapsleid. D vitamiin ei tee ka paha. Need on üldtoniseerivad asjad.

Siinkohas veel paar asja. Eestis pole maskid kunagi laiemas kasutuses olnud, ometigi on meil läänemaailma üks madalamaid nakatumisi (sama kehtib ka paari muu riigi kohta). Arstid on kogu aeg väitnud, et meditisiinilised maskid on mõeldud selleks, et arstid ei nakataks teisi (kui on selline oht siis: PÜSI KODUS!) ning teistpidi on nende kasutamine pigem kahjulik kui kasulik. Ma tean, et on olemas üksikud juhtumid mida justkui on võimalik selgitada maskide kandmisega, näiteks lugu Starbucksi restoaranis kus maskidega teenindajad erineval klientidest ei nakatunud. Mida aga sellistel puhkudel tavaliselt ei öelda on see, et ka külalised kandsid maske. Teenindaval personalil oli lihtsalt eraldi õhutus. Maske EI TOHI kanda üle tunni ja kes pärast pooletunnist kandmist ei saa aru miks, see kannab tõenäoliselt maski millest niikuinii kasu pole. Ühte või teistpidi on mask nagu nina all olev Petri tass.

Samas tundub, et silmade katmine kaitseb ja sellest tingituna ka need barjäärid, visiirid ja prillid. Üks arstide hulgas levinud teooria on, et silmade kaudu toimub väga suur osa nakatumistest.

Kuidas näiteks HIV ja COVID-19 minu mudeli puhul koos toimiksid? Arvatavasti nad suuresti neutraliseerivad teineteist — HIV lülitab organismi immuunsussüsteemi välja ja seega pole suurt vahet kas organism kavatseb üle reageerida või mitte. See oleks nagu võimendi mille volüüm on küll põhja keeratud kuid voolujuhe seinast välja tõmmatud. Viirus ise tekitab arvatavasti vaid suhteliselt tühise palaviku ning sellega asi piirdubki.

Lõpetuseks teen ma ka ühe soovituse mis suuresti räägib vastu kõigele ülaltoodule. Enne kui te teete meditsiinialaseid otsuseid, konsulteerige arsti või apteekriga. Mina pole kumbagi, minu jaoks on see lihtsalt ajugümnastika. Aga ma usaldan arste iga hetk miljon korda rohkem kui kedagi teist. Vaadake kust teie info pärineb, kontrollige allikaid, sest vead mida te võite teha ei pruugi olla enam hiljem parandatavad.

TLDR: COVID-19 on arvatavasti katalüsaatorviirus, mis põhjustab immuunsussüsteemi ülereageerimist. See teeb ta ühest küljest ohtlikumaks ja teisest küljest ohutumaks. Sõltuvalt sellest kas inimene on juba haige või mitte.

Pages:1234567...145