august 30, 2017

HajaMõtteid Haskellist

Küsitlesin oma staazhikat tarkvarakolleegi nime Haskell suhtes.
Olin küll üllatunud, aga mitte nii väga, kui vastuseks tuli, et ta pole kuulnudki sellist nime.

Selline eluterve konservatism selliste jamade suhtes peab mingil ajal välja
kujunema. Andku Haskell Curry (pildil) mulle andeks - ma mõtlen jama all temanimelist programmeerimiskeelt ja jätan õiguse epiteedi jama asemel millalgi hakata kasutama jälle selliseid sõnu nagu "elegantne", "ilus", "veavaba" ja nii edasi ...
Mina eelmisel "semestril" (sügisel) tegelesin selle asjaga pool semestrit ja siis töö kõrvalt õppimise produktina jätsin järele. See polnud hea plaan, võinuks ilusti asja
selgeks teha, aga see selleks. Haskel ongi laisk keel (lazy!). Arvutab midagi välja vaid siis, kui väga vaja. 
Haiglapalati mõned päevad andsid võimaluse eksootikaga jälle tutvust teha.
Ei taha tegelda millegi väga reaalsega ja samas oli mingisugune krunt juba ka all. 
Praegu tundub, et FP on üsna ülehaibitud asi, umbes nagu Unix - Linux ja mina olen väga hea objekt, kellele sellist eksootikat müüa. 
Loete seda minu blogist mingi aeg tagasi. Sealt nähtub väga rohelise
Unix fänni suhtumist.
Linuxil on koht serveritega õiendamisel olemas ja fännidele ka koduarvutina,
- laske käia. Kui on palju vaba aega, siis võib muutuda ka Linux-i guruks. 
Aga hoiak, et C on hea ja C++ on jama on IMHO kahetsusväärne. Torvaldsi järgi ei maksa oma samme seada. Ta võib olla progemise geenius, aga geeniuse klaverimäng võib olla väga vilets õpetaja. C++ peaks siiski lõpuks C nimelise dinosauruse asendama. Või mingi kolmas asi. Punkt.
C-l on tänapäeval mingi koht mingite väga algeliste mikroprotessorite progemisel küll olemas, aga varsti mahuvad kõik C++ teegid ka väga ilusti isegi suvalise minikiibi sisse ära.
Aga selle vanamoodsusega tegelemisest võib vähemasti kasu olla näiteks C++ õppimisel ja mujalgi. Nii et päris mahavisatud C-ga tegeldud aeg ei ole.

Aga nüüd Haskellist veidi:
Haskellil on koht siiski vaid akadeemilise kursuse raames teatud mõtteviisi omandamisel.
Kui aga reaalselt tööturule lähed, siis loed üsna tihti, et ...
kohustuslik Pythoni või Java tagapõhi või midagi sarnast...
Nii et on valida 2 variandi vahel - mitte üldse tegelda FP-ga või üsna palju 
tegelda.
  Vähe tegelda on ilmselt kõige viimane valik (ja seda ma tegin).
Mõned märkused Haskell suhtes (jätan õiguse oma seisukohti 180 kraadi muuta)

1) Kui olete sõrme FP-le andnud, ei pääse erinevate raamistike ja keelte paabelist kuhugi.
Reaalne projekt võib-olla on siiski Scalas. Aga akadeemikute rõõmuks võib alustada Haskellist, nagu väga hea mõte on õppida enne itaalia keele omandamist ladina keele selgeks. Kuid see mõte jääb tavaliselt ajapuuduse taha kinni.

2) "Ei usu!"
  Ärge uskuge juttu, et Erasthotenese sõel on reaalselt efektiivne Haskellis
kirja panna. Selle algoritmi tõeline realisatsioon Haskellis on üsna pikk.
  Ärge uskuge kiire sorteerimise (quicksordi) kräppi. See kood on jama, mis sellest, et ühe rea peal.
  Ärge uskuge seisundivaba maailma olemasollu. Sellist asja ei ole ega tule. Haskellis on see asi tehtud
niinimetatud MONAADIDE kaudu ja mis asjad need on, saan selgeks vastavalt edasisele vajadusele haiglapalatis (reaalses)
viibida. Seal on sobiv koht eksootika üle mõtisklemiseks.
Ärge uskuge (see on teadmine AA-st, tänud ülikoolile selle eest), et jube tore mõte on fibonacci arve (ja ka muud sarnast) kodeerida nii: 
f(n) = f(n-1) + f(n-2).
Proovige nii välja rehkendaa f(100), siis saate aru.
Samamoodi ei tasu uskuda igat sorti ekspertide kräppkoodi (k.a. allakirjutanu. Kusagil blogirulli ajaloos on
lugu, kus ma võrdlesin fibonacci rekursiivset koodi tavalise koodiga ja olin väga leilis rekursiivse kräppvariandi peale. Ikka see üherealisus müüb).
Korraliku pusimise korral võib aga tõesti üles leida mõne probleemi lahendamisel need 2 rida, mis Haskellis reaalselt asja ära ajavad ja kusagil teises keeles mitte.
3) Haskell aga on olnud paljudele keeltele inspiratsioooni (loe mahakirjutamise) allikas. Osa püütonist on laenatud Haskellist, k.a. treppimine või taandamine (indentation).
Või siis need kõrgemat järku funktsioonid - js-s ja Pythoniski ja kus kõik veel on sees
map, filter etc... f-d. Väga ilusad asja kusiganes nad olemas on ja tänud FP-le nende tavaprogrameerimisse
jõudmise eest.
4) FP hoiak seisundivaba maailma suhtes võib olla küll samalaadne võimalusega paradiisi pääsemiseks (ja muu sarnane targutamine meenutab ka kristlust), aga vähem pattu (seisundeid) võiks maailmas olla küll.
Palju lõbusam oleks elada...
5) Ja see tarastamine, kus patused seisundid elavad kusagil IO maailmas ja puhas ja ilus kood on siis kõrval on omaette tore.
[Aga see on kindlasti koht, millest ALUSTADA, sest muidu avastad järsku, et oskad küll ilusat puhast liivakasti koodi kirjutada, aga mitte ühtegi reaalset programmi. Ma ei teagi, kas ma näiteks leian aega liivakastist väljumiseks. Tahaks mõnda harjutusprogrammi, näiteks sudoku
lahendamist, haskelli portida, aga selleks on vaja vaba aega...
]

6) FP tegelemise pluss on kindlasti see, et saad aru, mis imelikud asjad on lambda nimelised objektid C# -s ja mujalgi. Nagu ladina keelgi annab põhja enamike Euroopa keelte mõistmiseks ja eriti võõrsõnakartusest vabanemiseks. 

Tehisintellekti haibist: 
Kuna haiglapalatis sai loetud ka Andres Laane tehisintellekti käsitlevat raamatut, siis tundub, et FP võib-olla on üks samm AI omandamisel, aga sain raamatust aru sedaviisi, et kõige olulisem hüpe viimasel kümnendil
on neuronvõrkude progemine. See koht on aga mulle täiesti tume maa ja mis keeles seda kõige paremini saab teha, sellele jään ka vastuse võlgu.
Andres Laane raamat reaalse programmeerimisega ei tegelenud.
Nii et sellest võib olla mõni teine kord, kui jälle targutamise tuju peale tuleb.
[On täiesti võimaik, et kolistan varsti AI nimelises ämbris oma jalgu. Kuulun nende inimeste klassi,
kes õpivad vaid oma kogemustest].









august 24, 2017

Võimalik vaid Tartus













  Inimese elu on näide vaid sellest, et enamasti ei ole ta oma kogemusest võimeline
õppima. Viis aastat tagasi tuli mul kirjutada sellest, kuidas voolikute alla sattusin.
Põhjuseks torusüsteemi leke. Roided said kukkumise tagajärjel katki, üks roidemurd
tekitas aga rindkerre verejooksu ja nii leidsin ma ennast ühel hetkel intensiivpalati voolikute alt.
Sisemine verejooks on kuratlikult salakaval. Inimesed (nii mehed kui naised, erinevatel põhjustel, mehed sõjanduslikel ) on disainitud sellisteks, et hästi toime saada verekaotusega. Nii läheb esimese liitri vere kaotus sisemise verejooksu
tõttu vist väga kergesti - enesetunne võib isegi paraneda.
See on vähemasti minu puhul nii olnud.
Siis läheb küll tasapisi halvemaks, aga meie organismi erakordse võimekuse tõttu
oma olukorda reguleerida on inimene võimeline väga hästi hakkama saama umbes poole vere kaotusega. Vähemasti õngitseti esimesel korral organismist välja umbes
3 liitrit (!!) sinna kogunenud verd.
Ühel hetkel aga läheb väga kiiresti olukord kontrolli alt välja ja siis aitab vaid hea ja kiire kiirabiteenus kõige halvema eest.
Sellel reedel oli üsna kuum ilm. Meie töökoha konditsioneer jukerdas ja ootas parandajat,
aga ühel hetkel tundsin, et tuleb see riistapuu käima panna. Higi sõna otseses mõttes voolas. Ajasin selle mõttes hommikuse basseinitreeningu
süüks (eesmärgiks Raivo E. Tammele ja Märt Avandile vähemalt basseinis ära teha, mis
ka vist õnnestub, sest Avandi Pühajärve saare ümber saadud aeg, millega ta Postimehes uhkeldas, on mul konnastiilis täitsa löödav!
Ei, kolleeg A. See ei olnud ületreening, vaid leke. 

Õhtul koju minnes (päevatöö sai ikka ära tehtud ja konditsioneer anomaalse higistamise lahendas ) oli aga imelikult raske neljandale korrusele tõusta.
Selle panin jälle suure ületreeningu süüks.
Järgmine hommik tundus helgem. Aga pärast tühja kõhu peale joodud kohvitassi algas jälle higistamine. Ja siis ühel hetkel arvasin siiski, et midagi on viltu.
Sest üks soolestikusüsteemi väljuva verekaotuse tunnuseks on kohvipaksu värvi väljastus. Lugesin seda veel internetist üle ja igaks juhuks helistasin 112.
Ja siis ühekorraga, vaid mõni minut hiljem avastad, et ei ole võimeline enam püstigi tõusma.
Edasi läks kõik väga, väga kiiresti. Vast 5-10 minutiga oli kiirabi ukse taga, siis aga läks juba vaja hapnikku ja nii poole tunni möödudes
olin EMO-s.
Kui kõik toimub nii, on tulemus hea, kiire vereülekanne päästab halvimast ja edasi tulevad uuringud ja nii edasi ...
Järgnevad vaatused selle lekkega seisnevad kõigepealt Pylori nimelise pahareti (pildil) kõrvaldamises maost.
Aga et neid vaatusi ikkagi jätkuks, peab vähemalt esimene vaatus olema õnneliku lõpuga.
Ja nüüd on see koht, miks ma seda juttu kirjutan.
See kõik on võimalik vaid Tartus, sest vaid Tartus saab tellida kiirabi kohale ja 10 minuti pärast ta ongi sinu ukse taga.
Ja siis poole tunni järel oled juba EMO brigaadi hoole all.
Tallinnas sellist luksust ei saa lubada, Tallinn on selleks liialt suur.
Veel vähem kusagil Põlvas või Raplas või isegi Elvas. Ühe hea palatikaaslasega (kes vist ka juba kodusel ravil) näiteks läks tee taastumisele läbi kooma. See enam nii tore ei ole.
Veel hullematel juhtudel võib aga asi lõppeda anatoomikumis.
Järelikult on nende lekete puhul väga, väga oluline kiiresti taibata, mis lahti. Ja siin tasub kohvipaksu värvi väljastusi väga tõsise signaalina võtta. Või kasvõi seda, et vist organismi termoregulatsiooni võime sel juhul läheb esimesena käest ja asja eest teist
taga hakkab higi ojadena voolama...siin on tegemist võhiku targutustega, kui spetsialist loeb...
Viimane märk - otsese vere väljastus ... tähendab juba seda, et on VÄGA, VÄGA kiire ...
Ka minu puhul võinuks minna väga "põnevaks", kui jõudnuksime järve äärde ujuma ...
Ei ole halba heata. Lugesin haiglas arvuti puudumise tõttu läbi inglise müstiku Blake eluloo (402 lehekülge palatis 403  (404-- !!)
interneti arvuti puudumisel )
Alustasin ka Andres Laane tehisintellekti raamatu uurimist.
Sellesama tehisintellekti raamatu esimene peatükk ongi negatiivsest tagasisidemest.
Seesama meile sisse ehitatud negatiivse tagasisideme mehhanism läheb aga väga kiiresti käest, kui organism ühel hetkel ei saa hakkama, nagu minulgi, kus vererõhku mingi hetk mõõta ei saanudki ...
Selle meditsiinilise aruande või EPIKRIISI (mis imelik sõne neil meedikutel selle kohta on) mõte ongi sellele tähelepanu juhtida. Kui teie organismis
on midagi väga teistmoodi, siis võib juhtuda, et nii ongi. Et ei ole ületreening või isegi
suure (ja hilise) suvekuuma mõju.
Ja arstid on Tartus tasemel nagu alati. Organisatsiooniliselt on asju kõvasti vussi
keeratud, aga Linkbergi vaim on TÜ kliinikumis endiselt kohal. Ja Tartu linna
eelis igasuguse teise Eesti koha ees on kiirabi kiire kohalejõudmine. Epikriisist epiloogi sedapuhku ei saanud.