märts 24, 2017

MOV AX, 723h ; R.I.P.L.V.B.















See krüptiline pealkiri (koos natukene vähem krüptilise nooditekstiga) on maha kirjutatud lõiguke surematust teosest  Code Complete ...
Nagu gurud ütlevad, see asi tuleks igasse ITfirmasse riiulisse saada ja seal ribadeks lugeda.

See ühe programmi kommentaar aga, ainukene üldse terve programmi peale, pärineb reaalsest juhtumist ühe reaalse programmeerija tööst, kus ta pidi üleöö muutma
teise reaalse programmeerija koodi.
See on assembler, selline lihtne ja arusaav asi. Registrisse kirjutatakse number
1827, mis 16 -nd süsteemis on 723h.
Nüüd vist taiplikumad juba mõikavad. Sel aastal suri Ludvig Van Beethoven.
Noh, ma tegin küll dekodeerijate ülesande siin lihtsamaks - panin pildi tema kõige kuulsama motiivi noodiga ka lisaks juurde..
...

Kuigi reaalsed programmeerijad ei kirjuta kommentaare, sest nende kood on isedokumenteeruv
ja on üllatavalt palju netisaite, kus seda seisukohta põhjendatakse ja üritatakse algajatele
kodeerijatele selgeks teha (pähe määrida), et "kommentaar on nõrkadele", olen alati olnud ja olen ka edaspidi,
selle koha pealt nõus Komissaroviga:

EI USU!

Vist ka kuni lõpuni välja.
(Mõtte pähe määrimine, et kommenteerimine on natuke paha, muidugi nii lihtsalt ei käi. Kommentaar hm. jah, aga kõige parem asi on ikkagi see kood kuidagi nii vingelt ümber kirjutada, et iga loll kohe saab aru .... ja siis on kommentaar puhas ajaraisk).
Ja kõik muu ilujutt, kuidas mingi metoodika, kõrgkeel, kõrgmõtlemine, struktueeritus, objektorienteeritus ja muu väga palju parandab ja muudab kõik iseenesestmõistetavaks ... ei tundu väga usutav.
Isegi egüptoloogid eelistavad inglise keelt oma armastatud hieroglüüfidele.
Loomulikult ma olen teadlik arvamusest, et kui midagi on juba vaja kommenteerida, siis tuleks kood ümber kirjutada ja selle tagajärjel nagu muutuks see tohutult arusaadavamaks. Võtsin CC-st toodud näited. (Code Complete, on selline piibel, mida peab peast teadma ja tsiteerima).
Üks oli paha näide, kus kasutati muutujaid i ja j ja teine oli hea, kus oli muutujanimes kuidagi ära mainitud, et mingit pidi on tegemist algarvudega mehkeldamisega.
Peaaegu mõlemaga läks ühepalju aega.
Selle lihtsa võimaluse peale aga, et selle jupikese ette kirjutada, see arvutab, kas mingi asi on algarv või ei ole, CC autor millegipärast ei tulnud.
Ja nii võikski ju olla.
Mingi IBM uuring väitis, et 1:10 võiks kommentaaride % olla.
See tähendakski, et inglise-eesti-suahiilikeelne jutt oleks 1:10 koodi mahust ja see võiks selle koodi läbivaatamist paar korda kiirendada küll. Sest seda on juba mahuliselt vähem, 10 x vähem.
Kindlasti kommentaarid ei suuda ja ei pea kõike väljendama, mida kood teeb, aga mõnikord on see võimalus olemas, öelda - siin kontrollime, kas N on algarv. Punkt.
Võimendusteguriga 1:10 või isegi enam (tavaliselt enam) saab kõik ära öelda.
Ja see ülihästi struktureeritud või struktureerimata koodiläbu seal taga ei huvita MITTE KEDAGI.
Kui seal aga on viga, siis see ongi väga hea, et rida seal ees ütleb - kood võiks tuvastada, kas N on algarv ja kui näiteks 15 ei tule algarv, siis oleme leidnud vea.
Võib juhtuda, et Komissarovi kuulsat EI USU ütlust võib pruukida veel ja veel.
Näiteks programmeerimise klassik Edsger Dijkstra arvas kunagi, et GOTO on harmful.
Võib-olla natukene oli ka.
Aga kui tänapäevaseid asünkroonseid koodimonstrumeid puurida-uurida (ja neid ei päästa mistahes kommenteerimine), siis on kõik kuradima OK.
Aga asünkroonne progemine tegelikult ongi üks varjatud GOTO-tamine üle terve programmi, nii et silm ka ei pilgu.
Aga sellest kunagi mõnes teises jutus - praegu ma siis lihtsalt olen CC läbi sirvinud ja julgen teistele ka soovitada. Mingi vana versioon oli pdf-na netist kättesaadav, uut ei tabanud.
Soovitan ühesõnaga.




märts 18, 2017

12 prelüüdi Bachilt ja Tatjana Nikolaevalt


Need on väga lihtsad lood. Mängige ja proovige järgi teha
neid lihtsaid klahvivajutusi - teil ei õnnestu.
Aga siit ma sain esimest korda aimu, kuidas mängida prelüüdi nr. 2.

märts 11, 2017

Olulisuse olulisus ehk ikka veel hõbekuulist















Mida enam tarkvaraasjandusega tegeled, sedavõrd väheneb ka sellest kirjutamise soov.
Ometi on minus süvenenud veendumus, et nii ei ole päris õige. Nii ma proovin ikkagi jätkata tarkvara lainel kirjutamist, hoolimata asjaolust, et eestikeelset juttu tikub kodeerimise teemadel järjest harvemaks jääma ja on seda üldse iialgi piisavalt palju olnud?
Veel hirmutavam on english only suhtumise kiire levik. Ühekorraga arvavad kõik tarkvarast kirjutajad, et nad peavad hirmsat moodi hakkama oma blogis englishit purssima.
Ma õnneks ei oska seda keelt - võiksin siis slaavi ekvivalendi järgi talitada, eriti seetõttu, et voorimehe moodi vandumine vene keeles on senini ületamatu olnud...
Kui mingi loengu pidaja enam ei oska tõlkida sõna "implementation" ja paneb seejärel kõik oma slaidid englishkeelsetena hakkam, siis on midagi vist ikka väga viltu?
Sellele kõigele lükatakse praegu aga ainult tagant, meie omade eestlaste poolt, aru saamata, et see on midagi sama tähtsat, nagu mets ja maa, mis pidanuks kuuluma ju meitele...
See on see punkt Brooksi sõnumis, mida me jätame tähele panemata - ainuke, mida saab teha paremaks kodeerimiseks - olulise eraldamine - terade eraldamine sõkaldest.

Ja  keel ja mõtlemine on tähtsad. Neid ei tohi lasta risustada. Kui me ei oska oma kodeerimise asju emakeeles arutada, ei oska me üldse mitte midagi.

Hea on teada, et loll räägib kõike, mida teab ja tark teab, mida räägib. Ma lisaksin, et parema meeskonnatöö huvides tasub järelikult meeskond komplekteerida lollidest. Sest kommunikatsioon loeb. Ja parem kirjutada ja kommenteerida ja dokumenteerida, kui jätta kirjutamata ja dokumenteerimata.

Kuna Brooksi sõnumi lugemisel endiselt on rõhk sõnal HÕBEKUUL, ei ole tänaseni jõutud kohani, et peaks tegelema olulisega. Pilt ei ole aastatega muutunud paremaks, vaid pigem järjest hägusemaks.
Java ei ole asendanund näiteks C++, vaid lihtsalt asunud C++ kõrvale koos C# ja muude asjadega, tõrjudes kõrvale Delphi.
Ühekorraga on meil neid kõiki vaja teada ja need kõik kokku on asjaolud, mida võiks nimetada pigem juhuslikeks, kui olulisteks. C++ hästi oskav kodeerija ei saa paremaks inimeseks, kui õpib ära ka Java, Java äss ei saa väga palju paremaks, õppides ära Delphi ja C# ja nii edasi. See, et mitu keelt teeb sind kõvasti targemaks, on suur müüt. // pean võimalikuks neid sõnu süüa millalgi...
Kokkuvõttes oled lihtsalt raisanud rohkem aega juhusliku ja ebaolulise peale, aga kogusummas muutub see ju millekski oluliseks - olulisuse silmist kaotamine on ju oluline?
Ometi on vaja jõuda koodini, ka autos ei ole oluline, kus paikneb pidur ja sidur, ometi võtab eriti palju aeg pidurdamise reflektoorse refleksi teke. Enne seda aga ei saa rääkida vilunud autojuhist.
Aga kui ühes autos on piduri asemel sidur ja vastupidi (võrdlus Delphi ja C võrdusmärkide osas näiteks). 
Kuna aga ei saa ette öelda, mis asjad kusagil ringlevad, jõuab mingi aja möödudes keskmine kodeerija paratamatult sellest multikultist omandada üsna palju. Aga samavõrra võinuks ta tegelda võib-olla mingite olulisemate asjadega? Näiteks algoritmide analüüsiga Donald Knuthi abiga?
Seda mitmekesisust rikastab veel poliitiline maadejagamine - Linux / MS kõige ilmekama veelahkmena...
OLULINE oleks ükskord võtta aksioomiks teadmine, et hõbekuuli ei tule ja selle asemel tegelda esimese poolega - juhuslik osakaalu vähendamisega.
Mina näen siin aga juhuslikkuse osa tõusvana?

Kui ma millelegi olulisele aga olen pihta saanud, siis vahest on see võrdlus muusika või kokkamisega.
Teooriat on rakenduslikus IT-s kohati täpselt sama palju, kui kokanduses biokeemiat.
Aga võrreldav on kohutav nikerdamine, käsitsinikerdamine ja mite mingisugune erihakklihamasin ei võta seda vähemaks - vähemalt mitte meie Eesti tippkoka Dmitri Roozi puhul.
Nii ma vähemalt lugesin, kui Dmitri jamas selle Prantsuse erikanaga ja sai kokkamise maailmameistrivõistlustel finaali ja seal 14. koha! Selleks tuli tal 32 korda harjutada mingi kana valmistamist, iga korda 4.5 tundi. Ja alles 33 korral siis oli see finaalvõistlus ja siis vahest oli tal see kana valmistamine käpas. 14. maailmas on muuseas ülikõva koht!
Ja võrdlus muusikaga peab ka paika - millist üleinimlikku vaeva peab nägema pianist mõne etüüdi harjutamisel!
Võimalik, et siin IT jääb kokandusele ja muusikale küll alla.
Nii et kunst kunstiks, aga niimoodi ei saa IT-s küll ühtegi programmi valmis, et võtad mingi munavalge ja viskad lõuendile ja ongi pilt missugune!

Ja lõpuks kui kõik keeled, või väga paljud, ja enamus  raamistikud on selged, võtad sa ikkagi ette TAOCP (Donalt Knuthi peateos) või mõne sarnase asja.
Kõige alguses oli Algoritm. Ja siis tulid alles muud asjad, nagu valgus, vesi ja inimesed ...



veebruar 26, 2017

Lucas Debargue'i sentimentaalne lugu



Seda sentimentaalse valsi esitust tõenäoliselt ei oleks sündinud, kui 10 aastasele Lucas'-le (see oli siis kunagi 2000. aasta sügisel või 2001. aastal - sündinud oli Lucas 1990. aasta 23. oktoobril)
poleks  ette sattunud CD-d Mozarti 21. kontserdiga. Teate küll seda II osa. Kuna Debargue ise ei oska ka öelda, kelle esitus see oli, siis valisin ise - olgu siis selleks Mitsuko Uchida:



Uchida on kahtlemata üks Mozarti väljapaistvamaid esitajaid - aga nagu selgub (ja ma jagan seda arvamist), Lucas ütles selle kohta, et see, mis on Bachi ja Mozarti osas unikaalne -  Mozart jääb Mozartiks ja Bach Bachiks isegi keskpärase esituse korral ...

Tema peres, kus isa ja ema lahutasid, muusikaga tegelemist ei toetatud. Nii tegeles Lucas muusikaga omal käel.
Noormehel oli absoluutne kuulmine, suurepärased sõrmed, mis nagu Horowitzil-gi suutsid teha absoluutselt kõike , mida tema peremees soovis (seda absoluutselt ebareeglipäraselt) ning erakordne muusikaline mälu.
(Heakene küll, olen natukene nagu uhke, et võin ühel sõrmel kenasti järgi mängida, noh natuke saadet ka juurde mõne loo. Näiteks "Kõik roosid ma kingiksin Sulle" või midagi sarnast .... Ilmselt on palju selliseid muusikuid Eestis, kes kindlasti väga hästi suudavad mängida kuulmise järgi igasuguseid asju ...)
Kuid see noormees suutis seda teha ABSOLUUTSELT perfektselt (nagu näiteks ka Clara Haskil, ma ei valinud teda ilmaasjata Mozarti sünnipäeva esitajaks!).
Kellel tekib soov oma võimeid võrrelda, siis ... paluks kuulmise järgi (kuulmise!) järgi mängida Prokofjevi 3. sonaati ! Siin ma tean Lucase ühte lemmikut - valisin Gilelsi - peate vaid lingilt minema jutjuubi.


Kui Ismene Brown Lucaselt esimese avaliku intervjuu võttis, vt.
http://ismeneb.com/blogs-list/150715-the-first-interview-with-lucas-debargue.html
 (enne seda oli noormees avalikkusele tundmatu), tellisid nad kõrvale venepäraselt (see toimus Moskvas) dzinni ja vodkat. Märkimisväärne oli Lucas'e sissejuhatav ütlus - btw - ka inglise keeles oli noormes omapärane autodidakt, kes hoolimata sellest oli lugenud originaalis James Joyce'i Ulysses-t.

“Teate, et Edgar Allan Poe suri dzinni ja tooniku joomisest.  Tal ei olnud kellegiga rääkida. Nüüd kuulete igal pool, et alkohol on paha,  suitsetamine on paha - aga mitte sellest, et suurim haigus on üksindus."
Aga üksindusest hoolimata tegeles Lucas klaveriga omal käel. Kus ta seda harjutas, me alati täpselt ei tea -
- üldiselt pärast Tšaikovski konkurssi on Lucas rohkem lihvinud oma elu lugu ja mulle tundub, et midagi lisanud, näiteks selle, et tema peres ikkagi tegeldi muusikaga ... (võrdlesin Lucas Debargue'i erinevaid intervjuusid ja võtsin oma uurimise aluseks päris esimese avalikkuse ette jõudnud intervjuu. Võimalik, et siin siiski ajakirjandus on lisanud oma osa legendile. See näljase ja palja kunstniku kujund ju müüb ... )
Aga vaevalt, et me seda üldse iial täpselt teada saame, sest ausalt öeldes ei ole kellelgi meeldiv väga palju rääkida sellest, kuidas ta ikka oli näljane ja paljas ja kassiir supermarketis ja kui ta ka räägib sellest, tikuvad sinna tekkima takkajärele tarkused ja tähendused, mida algselt ei olnud)
Igatahes kodus tal klaverit ei olnud ja ka ei tulnud ja tema muusikategemisi ei toetanud keegi.
Uuris omal käel noote, vahel mängis kuulmise järgi, vahel improviseeris - Tšaikovski konkursil hämmastas ta kõiki oma vahepealsete dzässimprovisatsioonidega. Elatise teenimiseks tuli tal mängida baarides, vahel pidada ka kassiiriametit ...
17 aastaselt lahkus kodunt, oma "elu armastusega", mis 19 aastaselt, selgus, ei olnud elu armastus.
Mängis rokk bändis basskitarri, õppis ülikoolis kirjandust. Rokk bändis olevat olnud aga "laisad" muusikud.

Ma siin natukene ise improviseerin loole juurde ... selle Edgar Allan Poe võrdluse põhjal.
Ma kaldun arvama, et noormees mängis algusest peale küllaltki hästi - aga tegelikult mitte kellelegi seal Pariisis ei läinud see eriti korda. Noh, istub kohviku nurgas ja klimberdab midagi. Mõnele võib-olla tuli natukene nagu tuttav ette - midagi nagu oleks olnud Bachi  moodi ... Joome siin oma dzinni toonikuga edasi ...
 Kunagi näidati telekas ühte teist "sentimentaalset" lugu, kus üks hulguseks maskeerunud viiuldaja mängis mingit Beethooveni lugu metroos. Ega keegi temast seal küll eriti välja ei teinud. Mängi mida tahad ... Klipi juurde imestati veel variserlikult, et KUIDAS küll inimesed ei saa aru, et see seal metroos on ju ometi geenius.
Enamikule oli ja on selline asi kahjuks absoluutselt SAVI.  Tegelikult toetub kõik see muusikamaailm tänase päevani 99% ulatuses autoriteetide arvamistele ja see 1%, kes ehk viitsib oma kõrva pingutada, on siiski erandlik nähtus ...
Kunagi aga elas Salzburgis üks muusik, Mozart nimeks.
Salzburgi rahvale ei olnud see muusik väärt isegi kapellmeistri ametit. Provints on selles osas ületamatuim. Siin isegi puudub lootus. Keegi peab geeniuse paiskama kuhugi Pariisi või Viini (Pariisi kohta Lucas eriti hästi ei arvanud) ja sealt Venemaale, kes jälle (jälle see Venemaa) peab maailmale selgeks tegema, et teie ees on GEENIUS. Muuseas, Mozartil oma eluajal Salzburgi vaevalt ikkagi oleks tagasi asja olnud, isegi pärast seda, mida ta saavutas Viinis. Ka siin on provints ületamatu. vrdl. Eestiga. Tule siia meilt ärakaranud maailmanimi, küll me sulle siin näitame!
Ja kui see provints ükskord ärkab ja avastab, et näe, siin liikus ringi Mozart, ei tule lõppu sellele hardale eneseupitamisele. Näe, meie siin kasvatasime ja andsime maailmale üle sellise geeniuse ...
Aga Venemaa on selles osas natukene erandlik. Seal tuntakse geenius vähemalt ära. Ollakse harjunud selliste "nejurodivõi" tüüpidega.
Ka Glenn Gouldist poleks iial saanud Glenn Gouldi ilma tema fenomenaalse debüüdita Venemaal.
Vaadake ära see film Gouldi tähelennu kohta:

Selle tiraadi lõpetuseks -
Ja nüüd on kõige krooniks välja karanud inimesed, kes kõik arvavad, et kõike võib saavutada 10000 tunniga ...
Ja siis vahepeal tuntakse endal natukene nagu süüd olevat nendes mittemärkamistes ja et mõni näljane ja paljas geenius õnnelikuks teha, tehakse talendishow. Leitaksegi mõni selline üles ja pannakes puuri, just sellisesse puuri, millest Lucas põgenes, olles kuulanud Mozarti 21. kontserdi teist osa.
Ole rahulik, Lucas. Sind istutakse veel kindlamini kullast puuri, kui sa oskad oodata...


Aga ühel päeval, kui noormees oli saanud juba 20 aastaseks, otsustas ta käia "loomi" (fr. monstres ...nii nimeats Lucas neid, kes klaveriõpet juba 5 aastaselt alustanud ...)
õrritamas, osaleda Rueil-Malmaison-i muusikakooli eksamil ...Et tema ka nagu natuke oskab mängida (kuulmise järgi).
Aga anname sõna venelanna Rena Shereshevskajale, kellele ta oma palu esitas.
https://rg.ru/2015/06/27/interviu-poln.html
"Lavale tuli selline pikk noormees, jalad erinevates suundades, istub ja mängib: pooli noote pole kuulda, kostub nagu hipodroomil. Interpretatsiooni osas saab tavaliselt kellegile öelda - kas sa ei näinud, mis nootides kirjas on? Aga siin oli üleüldse kõik pea peale pööratud - tragöödiast sai komöödia, komöödiast tragöödia. Mõtlesin, et see on mõni emotsionaalselt hullunud noor inimene. No ei saa olla, et ta mängis (Sekeldaja  rõhutus) KÕIKE kuulmise järgi - ta ei ole  ju Bach, ta ei ole ju Mozart!
Kolleeg küsis minult - kas sa võtad tema? - Ütlesin - jah. Ja tema - mida sa temaga tegema hakkad - vastasin - ei tea ...

Lucas ei tulnud ega tulnud esimesse tundi. Ma ei saanud millestki aru. Helistan talle - Lucas, siin Shereshevskaja. Miks te ei ole tundi tulnud? Vaikus. Seejärel - aga kas te mind võtsite?
Ta ei tulnud isegi nimekirju vaatama - ta oli absoluutselt kindel, et sellist asja ei saa juhtuda, et ma võtan ta oma klassi õpilaseks."
PS! Sekeldaja. 
Selleks pidi olema venelanna Shereshevskaja, et võtta Lucas Debargue oma õpilaseks. Teistega see trikk vaevalt oleks läbi läinud.
Kusagil esimestes tundides oli siis see lugu Prokofjevi sonaadiga nr. 3:
 "Hakkan teda õpetama, räägin - Lucas, kas sa tead, et võib mängida paremat kätt kõvemini vasakust, vasakut kõvemine paremast? Tema: see on raske.!
Aga minu tunnis üks 12 aastane poiss, kes mängis Vladimir Spivakovi festivalil, mängib 3. Prokofjevi sonaati.

Lucas istub minu kõrval ja äkki ütleb - jumaldan vene muusikat, jumaldan Prokofjevit, jumaldan seda sonaati, ma juba tean teda peaaegu kuni lõpuni...
Küsin, et kas sa õppisid seda? Tal oli oma muusikapedagoog, 2  või 3 aastat tegeles temaga, nagu amatööriga. Ta vastab - ei, ei õppinud. Lugesid noodist? - Ei.  Ütlesin, et mängigu siis mulle...
Ja ta istub ja mängib 3. sonaati ja naeratab oma naeratust ...Prokofjevi 3.ndat sonaati kuulmise järgi..."
Rena Shershevskaja oli ... realist - ja tahtis võimatut. Ta sättis noormehele ülesandeks ei rohkem ega vähem, kui jõuda Tchaikovski konkursile (ei, isegi Rena ei arvanud, et Lucas võiks seal võita või isegi edasi jõuda).
Kui hiljem näiteks Satie Spivakova saates Satie küsis, kas konkursil mängimine oli raske, siis ei olnud nii - 4 aastat iga päev oli Lucas' jaoks enesetõestus - konkurss  - õpetaja juures, keda Lucas tänase päevani usaldab.
Ja kõige raskem ja väsitavam oli vahepausid, ootamine. Ja seda oli koos läbipõlemistega konkursil kindlasti palju.
Aga kõige alguses oli Mozart.
Küsimus:
Kuidas sa ikkagi esimest korda sattusid klaveri taha?
Üks minu sõpradest mängis klaverit. See aga ei olnud tähtis. Tähis on see, et ma kuulsin seda ilusat muusikat - ilus ei ole õige sõna - Mozarti 21. kontserdi teist osa.
See on võrdväärne tuhandete raamatute ja tuhandete aastatega  inimkonna ajaloos, sest selles on nii palju tõde, nii palju sügavad armastust. See näitas mulle midagi, mida ma võiksin saavutada.
... Kuulad Mozarti muusikat ja äkitselt taipad - vaata, kui suur see on, vaata enda ümber, kui suur SEE (sekeldaja rõhutus) kõik on, ja oli absurdne olla elanud enne seda kookonis, puuris. Aga ma ei saanud sellest rääkida oma vanematele, sest nemad olid keskendunud reaalsele elule - mingis mõttes oli neil õigus - neil pidi olema piisavalt raha, et meid ära toita ...

Aga kuulame siis Lucase Mozarti esitust  Tšaikovski konkursilt:
24.ndat, mitte 21.st.

Kuid Mozart pianismi sportlikus mõttes veel ei ole see tipp.
Üks tipp on aga  Raveli "Gaspard de la Nuit". Tausta selle pala kohta lugege netist.
Lucas' Tšaikovski konkursi esitust jutjuubis ei ole mingite autoriõiguste tõttu, aga tuub sisaldab Lucas' Peterburi kontserti selle koletu ööga (la Nuit - öö prantsuse k.).


Lisaloona sellel kontserdil esitas Lucas aga dzäss improvisatsiooni:


Ilmselt sarnase klimberdamisega teenis Lucas elatist veel siis, kui ta Tšaikovski konkursil polnud käinud ...

Lisan veel lõpetuseks eestikeelse klassikaraadio lingi. Saate autoriks Ia Remmel.


http://klassikaraadio.err.ee/v/braavolegend/saated/9237aea1-af7b-4743-8dbc-8c5e271b2f8f/braavo-noor-prantsuse-pianist-lucas-debargue

veebruar 24, 2017

Ma siia jääks



jaanuar 27, 2017

Mozarti päev



Täna on Mozarti sünnipäev. 260 aastat tagasi sündis meile väga lühikeseks ajaks geenius, keda ei ole tänini suutnud vist küll mitte keegi ületada.
Ja selles videos mängib Mozartit geenius, keda Charlie Chaplin pidas üheks 3-st 20 sajandi geeniustest -
1 oli Einstein, teine oli Churchill - selle ma vaidlustaks, aga ok, jätame.
Aga 3., muusikaline geenius oli Clara Haskil.
Minu arvates avaldub see eriti siis, kui Clara mängis Mozartit.
Maailmas on väga palju inimesi, kes suudavad kõik ilusa rikkuda ja ära määrida. Nii läks ka Mozartiga. Ta leidis illusoorse solidaarsuse inimestega, kes teda tegelikult ei mõistnud ega hinnanud. Ta sai selle tasuks küll tunnustuse, väljapääsu Salzburgi konnatiigist Viini, aga kahjuks ka väga lühikese elukaare.
Tänini püütakse Mozarti nime kaudu määrida teist väljapaistvat geeniust - mis sellest, et II  või III - Salierit - kelleta muuseas me ei saaks nautida Schubertit - sest tema organiseeris selle geeniuse muusikalise õppe -  ja tänini leidub massiliselt inimesi, kes seda kõike usuvad ja kaasa määgivad ...
Aga jätame selle.
Tegelikult on täna Mozarti päev.
Kuulakem Mozartit.



jaanuar 11, 2017

Valejärgne maailm




Ma ei julgeks öelda, et selline hetk üldse käes oleks.
Ometi on jää hakanud mõranema,
Igal juhul mind ei üllata, et selle praeguse hetke kohta on leiutatud mõiste "tõejärgne" maailm.
Aga mõiste ise on selline sulepeast väljaimetud asi, sest tahab lambaid panna uskuma, nagu oleksime kogu aeg tõe keskel elanud ja nüüd .... kui inglased enam ei taha, prantslased enam ei taha, itaallased ka ei taha ja lõpuks ameeriklastel on ka kõrini senisest Hollywoodist, siis enam ei osata muud välja mõelda, kui et tõejärgne maailm on saabunud.
Kui aga ühel hommikul ärkaksime mõttega, et nüüd on valejärgne maailmaajastu saabunud, siis see ei ole siiski veel tõe maailm.
See on pill peale pikka pidu mõnedele ja paljudele teistele ka, kuigi enamiku jaoks mingit  pidu polegi olnud, On vaid läbu koristamise vaev olnud rahaülikute tagant.
Sellele järgneb pikk periood võõrutusnähtusi, sest tõega ei olda ju enam üldse harjutud.
Nii lihtne on kõike propagandaga ära mätsida.
Kui 2011 Fukushima jaamaga läks halvasti ja see väsimatult Jaapanit, mis veel hullem - Vaikset ookeani - reostab, siis tänase päevani on olemas akadeemikute tasemel seltskond, kellele kõik väga lihtne näib - mätsime kinni ja laseme veel suurema kaarega edasi.
Ehitame veel vägevamaid raudteid, et kaevandada veel suuremal hulgal sodi, ressurssi veel on, pudel pole põhjani joodud ...
Ja nii edasi ...
Mulle see siiski sobiks paremini, kui selle suure TÕE keskel elamine, peaaegu sama suure ja absurdse tõe keskel, kui oli NL-s.
Aga minu elupäevad jäävad liiga lühikeseks mingigi suurema tulemini jõudmiseks.
Vist jõuame Brutuste juurest armastatud diktaatorite juurde tagasi enam-vähem suuremas osas maakeral.
Jõuan ehk ära näha kõdunenud demokraatia vaikset hääbumist ja kaasnähtena vandeseltslaste kadumist ajalooareenilt.
Kui juhtub hästi minema, saame kohati mõistlikud diktaatorid, kui ei juhtu, ei saa, saame Caligulad.
See kõik on kirjas Rooma ajaloo raamatutes ja ma väga igatseks selle aja järele, kui neid lugeda saaks, sest seda, mis tuleb, saab sealt järgi vaadata  vastavalt Spenglerile.
Aga ma ei saa, sest täna nõuab oma obrokit tehnoloogiamoolok ja tõtt öelda ongi aeg see obrok maksta.
Vähemalt on väike inimene sõltumatum, kui teed mingit asja, mida on vaja ja mille eest natukene makstakse -  saab öelda ja mõelda seda, mida mõtled - sedagi poole suuga.
Ei ole nii, et ütled ühte, mõtled teist ja teed kolmandat, kuigi niikaugele võidakse ka jõuda isegi "väikese" inimese puhul.
Aga need suured esikaanemolud on kõik üdini ära tüüdanud.
Valejärgse maailma esimene samm on jõudmine tõdemuseni, et edasi nii ei saa. Ei ühtegi valet enam, nagu ei ühtegi orja. Aga ... ma tean realistina väga hästi, et jätan ka lahkudes - noh, mitte üle 50 aasta mul pole jäänud - maailma endiselt peaaegu sama suure vale sisse. Mõni vana vale leitakse üles ja lükatakse ümber, aga selle käigus jõutakse leiutada 100 uut.
Üks uus vale ongi ju leiutatud - vale mingist "tõejärgsusest", mis maailmas võimust võtvat.
...
Aga aitab tühjadest sõnadest -
Kuulakem parem seda naist, eriti siis, kui ta mängib Bachi!








detsember 31, 2016

Schuberti sõjamarss II nii nagu peab



Kirjutasin hiljuti oma õe klaverisaavutustest (millest ta täna näiteks ei taha midagi mäletada)....
ja sellestki, et seda Shuberti marssi mängisid nad oma pinginaabriga tükk maad kiiremini, kui vaja oli.
Kuidas seda marssi (mis POLE Schuberti marss I, mis on vahest kuulsaim Schuberti hitt praegu)
peaks mängitama?
Vahest Rudolf ja Peter Serkin, isa ja poeg teevad seda siin parimini.

Mõlemad on pianistid,
Rudolf Serkin 1991-st alates küll manalamaees, aga kes on  kindlasti pianist, kelleta ei ole võimalik rääkida Beethooveni sonaatidest.
Peter Serkin hoolimata isa saatusest sai ka pianistiks.
Kuigi kuulus isa siiski mõjus talle - hoolimata kõrgetest auhindadest katkestas ta 1968 üleüldse muusikategemise.
Siis aga ühel päeval 1971 kuulis ta naabri aknast mängitavat Bachi - ja pöördust tagasi muusikasse.
See salvestis on tehtud 1988.

Kõigile kena vana aasta lõppu ja algavale kuke aastele, millele küll Mang enne algust jaanuariski suuri segadusi ennustab, soovin ma vaid seda, et sõjakus jääkski marssimise, kiremise  ja kaagutamise tasemele.
Mina oleksin selle saavutise üle ülimalt õnnelik.

Minagi loodan võlgu heastada ja marssimise teema juurde tagasi pöörduda. Kellel meeles, kunagi oli mul kavatsus koostada marsside antoloogia.
See Schuberti lugu, mille ta kirjutas tegelikult ühe rikka krahvi tütardele, kellele oli klaveriõpetajaks, pidanuks selles antoloogias kindlasti sees olema...

detsember 30, 2016

Java kirbe kohvi













2016 aasta teise poole ühe osa pean maha kandma - tuleb tunnistada oma eepilist põrumist.
Kes seda viginat on jälginud, kirjeldasin kriisieelset olukorda ühes postituses ja kõik taandub ajale ja rahale.
Ette sai võetud rohkem, kui lubab aeg, raha ja ka 3-ndad faktorid - lihtne vanus. Kui ülikooli kursuste valikus on ette nähtud mingid eeldusained, siis minu puhul ei ole valikut - neid peab perfektselt teadma, sest edasi aega jälle ei ole ja ei tule. Üks eeldusaine, mis nüüd targemana oleks pidanud olema FP asemel, oleks olnud seesama Java kohvi lürpimine.
Kirsina tordil sain teada, et mul on aega siiski võtta ühest puhkuse reservist, aga liiga hilja - piisava fanatismi olemasolul ehk isegi mitte - ühesõnaga, AA jääb ootama teatud eelduste täidetust järgmise aastani ja siis enam taganeda ei ole kuhugi - selja taga on Emajõgi!
Kasud siiski olid sees, sain paar praksi kuidagi pusitud mulle tundmatus keskkonnas, FP-s esimese poole kuidagi kuidagi maha (Haskell, millega saan kohati eputada oma kogenumate kolleegide ees, eriti vahva ülletusena tuli koolivenna ütlus - esimest korda kuulen seda nimetust, 30 aastase progeja staazhiga tegelane).
AA on üldse väga tähtis kursus ja see tuleks igal progejal kasvõi põlve otsas ja iseõppijana ära teha.
Ja sisemine veendumus ütleb, et kõik need raamistike ja keelte paabelid selle kõrval ei ole nii tähtsad.
Tsiteerin A.P-d loengust: kui te ei oska puudega midagi teha, siis ei oska te üldse mitte kui midagi.
Ja mingiAVL puuni ma isegi oma InteliJ IDEA prakis peaaegu jõudsin. Siis sai jaks otsa /laiskus võitu / põhitöö võttis oma ... kaugõppija leiab alati põhjuse ...
Võtan praegu tulnud aega siis selle lünga täitmiseks ja pusin Javat edasi. Äkki veab ja istutatakse tööl ka mingid jar failid kusagilt selga, siis tean karta.
Mured tunduvad üldiselt Javaga olema samad, mis iga sarnase teise asjaga (C siis näitena). Algul on murdu asju, mis seletavad, mis asi on protsessor, muutuja ja tsükkel. Java puhul on see täiesti krooniline ja sobib hästi esmakursuslasele, hiljem juba mitte nii hästi. Ilmatu aeg kulub selle spämmi keskelt filtreerimisele. Kõrgema taseme raamatud jälle ei pea oluliseks mitmeid asju isegi mitte mainida, nii võib jääda iseõppimise tulem lünklikuks...
Seejärel uputatakse õppur üle IDE loendumatute võimalustega, milledest ehk IntelliJ IDEA ei tundunud olevat näiteks mitte paha variant. Võrrelduna näiteks Eclipsega, mis mulle kuidagi ei ole sobinud. Aga maitse üle ma siin ei vaidle. Eclipse võib mõnele väga meeldida ja väga OK olla.
Lõpuks on mingi lootus Java EE -ga tutvust teha, aga see sõltub reaalsete projektide olemasolust, niisama ei ole ka mõtet harjutleda. JavaScriptiga alustamisest saadik kusagil 3 aastat tagasi olen harjutusväljakuna kaasa tassinud mingite mängude progemise algeid. C -s olen saanud asja juba Sudoku mänguni, ühitades hobi õppimisega. Javascriptis skriptisin ära trips traps trulli ja mida juba oled teinud, siis ei pea jalgratast leiutama. Jutud koodi ühesest portimisest tõenäoliselt kõik põruvad.
Sudoku teeb intrigeerivaks DLX algoritm (Dancing Links, millega saab ka muud huvitavat teha).
Üldse kõik AA (Algoritmid ja andmestruktuurid) tuntud asjad peaksid sobima harjutusülesannetena (tavaline zippimine ntx). Aga nagu meie Igor Mang prohvetlikult ennustas, Kuke aasta häda, mille käes juba nüüd vaevlen, on hiidprojektide ettevõtmine ja nende pidulik põrumine. Ainuke lootus ehk on see, et olen õppimisvõimeline ja realistlikum oma plaanide tegemisel.







detsember 19, 2016

Tartu linnatäis lugejaid











Olen natuke nagu uhke, sest täna sai mingil imelikul viisil täis 100000 külastust minu blogis. Noh, selleks kulus ka omajagu aega - 10 aastat ja rohkemgi veel. Kui juba kiitlemiseks läks: olen siis nagu ühe tärni blogija või midagi sellist ...
Tegelikult on mul hea meel, et mul on olemas lugejad ja võib-olla on minu mõtted kellelgi teisel tekitanud mingeid omi mõtteid ja nii on tekkinud mingi kasulike mõtete ahel. On muidugi võimalik, et on võinud ka vastupidi minna: on tekkinud lausa kahjulike mõtete ahel.
Ja veel hullem on arusaamine, et tegelikult salamisi olen salaedvistaja inimene. Pealt ei paista hästi välja, aga näe, blogi peab ja uhkeldab ka sellega ...
See on ju veel hullem edevuse laat, kui kohe aus ja avalik edvistamine.
Järgmise ümmarguse rajajooneni ma õnneks ei jõua, selleks kuluks ära 100 aastat. Võimalik, et kui hakata siia igasuguseid veidraid videosid pasteerima, võib isegi vähemaga, näiteks eluajaga läbi saada.
Hoolimata sellest, et ma ei ole matemaatik, muusik ega programeerija, kirjutan ma peaasjalikult neist teemadest. Millegipärast aga on muusika midagi, millest ma pean kirjutama.
Miks, seda ma ei tea.
Ma ei tea, miks Goldberg, kes ühe krahvi eeskojas pidi Bachi variatsioone omaenda väljamõeldud teemal mängima, et krahvi unetust ravida, mulle nii korda läks.
Või Chopin, kes paduvihma ajel oma prelüüdi lõi. Või Beethooven, kes oma sonaati nr. 31 paigutas lorilaulu kassidest, kes sai pojad.
Mingi aeg tagasi olin ka maailmaparandaja. Usun natukene ka nüüd sellisesse maailma parandamise võimalusse, kuigi mitte enam nii palju. Arvasin tõtt öelda 10 aastat tagasi, et need koledadad valed saavad ükskord otsa, juba nüüd. Ei, palju enam läheb aega. Võib olla 15 aasta pärast on midagi jälle natukene teistmoodi - nagu nüüdki võrreldes aastaga 2005.  Kirjutasin ühele kirjatuttavale K-le tornidest ja tema arvas, et keegi ei usu tegelikult praegu nendesse asjadesse. 2005 ja 2003 nii ei veel ei olnud, väga paljudele tundus see kõik uskumatuna.
Sellised nihked aga võivad ühe inimelu jaoks olla liiga aeglased.
Inimene üksi on siiski liiga nõrk, isegi koos tegutsedes ollakse nõrgad. Aga koos Kõiksuse, Universumiga tegutsedes nii enam ei ole.
See võib muidugi viia mõttele - hm, aga miks need kõrgemad jõud või jõud ei aita, ei taluta meid siit olukorrast välja.
Igal asjal on hind. Praegune, ehk isegi masendust tekitava olukord on see hind, mida inimesel tuleb maksta oma valikuvabaduse eest.
Aga valida saab ja enamasti on isegi teada, kuidas tegelikult tuleks valida. ...
Ja siin ma jõuan tegelikult teema juurde, mis mind enim on hämmastanud ja millega ka selle ümmarguse 100000-lise jutu lõpetaks. Nimelt ümmargune on see arv vaid meile, inimolendeile, kellel on 10 sõrme ja kes seetõttu kasutavad 10-nd süsteemi.
Aga mingid jõud selles maailmas on meie saladusliku Päikesesüsteemis nii sättinud, et Päike, Kuu ja Maa kolmekesi on täiesti erandlikes suhetes, sellistes arvulistes suhetes, mis jällegi sageli vaid kümnendüsteemis midagi tähendavad. Võtke või jätke, aga siin on mingi teoreemi tõestus, kõrgema jõu või jõudude tegutsemise tõestus. Ei, seda pole mina välja mõelnud - mitmed raamatud, näiteks Kes ehitas Kuu, on sellest rääkinud. Aga asjad on ilma raamatutetagi selged. Võtsin minagi arvuti ja kalkuleerisin masside suhteid. et mingid 3 juhuslikku arvu, Maa, Päikese ja Kuu mass. Aga ei! Nende suhted on Maa / Kuu : 81.3 (81 ja .3 selleks, et tuleks Päike - Kuu suhe õige ja ka selleks, et 3-e alla kriipsutada, 81 jälle on 3 astmes 4...), Maa - Päike 333000 (kümnendsüsteemi maagia - vaid inimestele on see "ümmargune", aga need 3 3 jälle - kõik masside mäng on kodeeritud 3-desse ja 10- astmetesse), ja Päike - Kuu (300 kuubis). See ei ole isegi ligilähedane sellele haledale paroodiale, mida mingi ülbitsev astrofüüsik tegi - leidis oma jalgrattal mingid arvulised suhted ja voila - ongi kõik ümber "lükatud".  Ja see on vaid üks suurus, võtame teise, diameetrid. Jälle arvude täpne mäng. 3.66 - Maa - Kuu diameetrid, 0.273 pöördsuhe,  366 päevaga teeb Maa tiiru ümber Päikese, 27.3 päevaga Kuu ümber Maa,  Kuu katab täpselt Päikese ketta - seda on isegi need ülbitsevad astrofüüsikud läbi hammaste tunnistanud, et näe, vahel ikka trehvab küll... ja nii edasi ...seda kõike kriipsutab alla aga püramiid Egiptsuses, mis suvatseb paikneda valguse kiirusega samal laiuskraadil. ...
Võite võtta ülejäänud objektid (ehk mõni neist joonistub isegi kuidagi eriliselt jälle välja, ei ole kindel, aga esimesel pilgul küll mitte). Nende arvulised suhted on tõepoolest juhuslikud, ei anna võrreldagi keeruliste matemaatiliste täpsussuhetega Maa, Kuu, Päikese süsteemis.
Ja kuigi võib-olla on need asjad mulle toonud kõige vähem lugejaid, siis mind on nad kõige enam hämmastanud. Eriti see, et kui Maa ja Kuu panna üksteise peale, ja püramiidi oma alusega oleks maa ekvaatoriaaltasapinnal, siis püramiidi tipp oleks Kuu keskpunktis ja kuidas sellest järeldub, et juba Maa ja Kuu suhtesse on kodeeritud pi (ja e ja fii).
...
Sellest kõigest aga võite kahjuks järeldada vaid seda, et ka edaspidi hakkab blogi sisaldama üsna erinevaid asju, just nii, kuidas kunagi välja kukub.
Midagi ei ole teha, iseennast ma ümber teha ei oska - kuigi olen vähemalt proovinud. (Hoolimata eneseabitööstuse õitsvast järjest muuseas ei paista see olevat kellelgi eriti hästi õnnestunud!)

detsember 18, 2016

Lihtsad lood



Õde käis mul klaverikoolis. Mina ei käinud, poisil ei sobinud selline asi hästi.
Aga ma mängisin õe kõrvalt ka natukene klaverit ja ühel ilusal päeval isegi käisin muusikaõpetaja juures, et kas mina ka ei võiks klaverit õppida. Siis ma olin aga juba 5. klassis, liiga vana ka.
Sellel aastal aga meie muusikaõpetaja ei võtnud poisse omale õpilaseks. Ilmselt selle pärast, et need tikkusid pujäänitsema ja ei olnud nii tublid ka.
Klassiõde võeti, tema olid tüdruk ja hästi tubli ja vahepeal lasti tal meile laulutunnis mõnda asja ette mängida.
Õde aga ei olnud üldse õnnelik oma klaveriõppega, minu arust ta jõudis küll väga kaugele, ta mängis oma pinginaabriga väga vägevalt (oi, kuidas ma kadestasin teda) Schuberti kuulsat sõjamarssi.
Alles nüüd ma tean, et seda marssi tuleks kõvasti aeglasemalt mängida. 
Kui kool lõppes, pole ma oma õde kordagi klaveri juures enam näinud.
Selline tubli õpilase klaveriõppimsie tulemus siis.

Mina aga tahtsin ja tahan aeg ajalt muudkui klimberdada.
Võimalik, et saatuse sõrm hoidis mind sellise õppe eest.
Midagi on selles õppes, mitte tingimatult inimestes, sügavalt valesti, olen ma nüüd, kõvasti 50++
saanuna, veendunud.
Sest kimberdama ei ole mind mitte kunagi keegi õpetanud.
Aga ma sain õe klaveriõppest külge omale sügava austuse noodi ees, nii sügava, et muusikat mõistma ma ei õppinudki. Mulle tundus ühel hetkel lausa pühaduseteotusena mõistmine, et sama harmooniareeglistik kehtib ka Beethoveni jaoks, tema kuupaistesonaadi jaoks, mis veel hämmastavam, Mozarti puhul.
Kuidas on see võimalik?
Samad banaalsed C, G ja F duur ja midagi nii jumalikku?
Ja kuulmise järgmi mängimist ma pidasin palju madalamaks kui täpselt nooti mööda käia.
Väga talendikaid inimesi, nagu Valentina Lisitsa näiteks, selline drill ehk ei riku.
Ülejäänu saavad sellest kaasa teadmise, et muusika õppimine on midagi väga vastikut ja mõnikord koguni nii vastikut, et never again.
Siis ehk mul isegi vedas, et sellel aastal poisse ei võetud. Ehk ei oleks ma enam iialgi oma kätte klaveri külge pannud.
Praegu kuulan kunagi neid õe kõrvalt klimberdatud mõnda pala üle ja olen Valentina Lisitsale väga tänulik, et ta neid lugusid mängib, lastele on neid väga vaja aru saamiseks, et iga laul tuleb igaühel ise üles otsida.  Mite järgi mängimiseks või imiteerimiseks, sest see on õnneks lihtsalt võimatu!
Tegelikult mõistan ma alles nüüd, milleni heal klaverimängijal tuleks jõuda. Kõigepealt peab ta mängima õppima väga tehnilisi palu - Valentina oli mõned aastad tagasi just selline, uskumatult hea tehnikaga pianist, aga mulle tundus see kuidagi isetu, isegi liiga puhas, tehniline.
Praegu aga on ta jõudnud väga lihtsate asjade juurde, tema Tshcaikovski "Aastaajad on muuseas ka väga head... (selle kõige kõrval, otsige linke ise, on Lisitsa üks kõige virtuoossemaid pianiste maakeral!).

Lõpuks on kõik jälle väga lihtne. Oma laul, oma lugu ja selle otsimine maa peal.




detsember 12, 2016

Kõrbes nimega C















Olen oma rännakutega jõudnud vist kõrbefaasi.
(kõrbenud faasi).
Sellest ja teistest faasidest kirjutatase hästi siin:
https://www.vikingcodeschool.com/posts/why-learning-to-code-is-so-damn-hard
Kuigi pisut ehk liialt kirjanduslik, tundub kodeerijate elu sarnane olevat piibellikule rännuteele - ei ole ju miskit uut Päikese all.
Kõigepealt Egiptuse meepotid.
Siis aga äkki tuleb ähmane äratundmine, et peab minema läbi mere, kuhugi kaugele ja proovida leida üles omaenese "Tõotatud maa". Kirjutama oma koodi, aitab teiste läbus sorimisest...
Rännakul kõrbes võib ette tulla igasugu asju, miraazhe, viirastusi, et nüüd on see tõotatu käes ja ometi on veel ees pikk tee.
Ja siis lõpuks, kui siiski, viirastub või saabub kusagilt toru lõpust valgus.
See kordub vähemal või suuremal määral mõne uue programmeerimiskeelega jälle, kuigi ehk veidi vähemal määral.
Meenub analoogia keeleõppega, kus väidetavasti iga uut keelt pidavat saama kiiremini õppida. Mina pole sellist asja väga märganud. Aga ega ma neid keeli ka väga palju ei oska - vene, saksa, inglise, prantsuse ja kõiki piisavalt halvasti, s.t. saab aru ja rääkida oskad 2 kõige rohkemini drillitut - jah, venet ja inglise oma ka natuke.
Nagu keeleõppelgi ei ole tegelikult õpikutest väga palju kasu, Ainuke viis õppida on kümmelda ja ise kirjutada ümber, jalgratast leiutades.
Vana "hea" C ei hiilga just kodeerijasõbralikkusega. Mühatab sulle korra "segmentation fault" teate ja sellega piirdubki. Kusagil on pang, aga otsi see ise üles.
Kõige sagedamini panen ma endiselt pange ikkagi mäluhaldusega.
Nüüd, natukenegi Javast kuulnuna tundub mulle viimane kaugelt vaadates lausa oaasina, puhkusena.
C-s tuleb kogu aeg eraldada kusagil mälu. Sa pead vaevlema sellega, et sama mälu jälle operatsioonisüsteemile tagasi anda, et see ei jääks programmile kasutult kätte. Sellist asja kutsutakse mälulekkeks ja tulemiks on programmi aeglane väljasuremine. Ühel hetkel vaba mälu enam ei ole, aga see hetk võib saabuda väga paljude töötundide järel. Programm paneb 2-l tööpäeval pange ja 1 päeval käib kui õlitatult....
Tore, oleme hoolikad ja vabastame mälu. Aga on veel toredam asi meie toredas C-s selle mäluga - ära vabasta üleliia. Kui juba vabastatud mälupesa minna veelkord vabastama, võib tulla ette 2 halba asja:
vähem halb on see, kui programm paneb kohe pange. See juhtub nimelt siis, kui programm pole jõudnud vabastatud mälupesa UUESTI kasutusele võtta. Siis C mäluvabastusfunktsioon "free" sülitab sulle sõbraliku ja lihtsa segmentation fault-i. Ära roni juba vaba pesa vabastama.
Kui aga see pesa ON kasutusse võetud uuesti, siis vabastad sa (tavaliselt mingi teegifunktsiooni) kasutuses oleva mälu, see võetakse mingi kolmanda asja poolt kasutusele, kirjutatakse uuesti üle ja nüüd jookseb programm kokku täiesti suvalisel ajal suvalises kohas. Tavaliselt siiski suhteliselt kiiresti, vahel koguni kogu aeg ühes ja samas kohas. Kohas, kus EI OLE VIGA.
Hõõrud silmi ja veendud veel ja veel: seal ei ole viga. Seda muuseas kahjuks juhtub ka piisavalt tihti, et seal ikkagi on viga, nii et tasub ka see koht ikka ja jälle põhjalikult üle uurida. Näide:
võrdusmärk on puudu või üle ("=" "==" asemel või vastupidi). 
Lõpuks jõuab ähmaselt kohale, et võiks ja peaks hakkama tegelema põhjalikumalt C keele putukatõrje vahendite, debuggeritega... ja nii edasi ja edasi ...
Mõnikord on aga jälle nii, et sama objekti mõnda osa ei olegi vaja vabastada, sest see mälueraldus on koodi sisse "raiutud" - see mälu eraldatakse programmile kompileerimise ajal. Mõnikord on jälle nii, et sama alamkoodi juppi kasutavad erinevad programmi osised - üks osis annab funktsioonile tööks üle objekti, kus see mälusosa on eraldatud dünaamiliselt, teine annab selleks üle konstandi, staatiliselt sisse raiutud objekti ja sellel pole võimalik vahet teha. Kolmas võimalus on selline, et see mälu vabastatakse automaatselt - funktsioon on lõpetanud tegevuse ja tema enda muutujaid hoitakse kohas, mida programmeerijad kutsuvad "pinuks". pinu saab vabaks ja ühekorraga toimetab teine funktsioon juba vabastatud mäluga.
Selline jahmerdamine toimub selle mäluga ja minu arvates on see üks suur tüütus ja ajaraisk. Aeg, mis võiks kuluda asjalikemate asjade peale, kulub ära mehhaanilise nikerdamise peale.
Teine sarnane hea asi, mis kõrvalt vaadates Javas on ja C-s ei ole, on try. Kui midagi läheb pange, siis Java SUHTELISELT automaatselt, eeldusel, et on kirjutatud midagi exception koha peale,  ronib programm veasituatsioonist välja, tehes ainuvõimaliku käigu - teatab sellest ja enamasti lõpetab. Kõik see asi aga on C kodeerija enda mure. Kuna absoluutselt iga asi, mida programm vajab operatsionoisüsteemilt, võib minna pange, tuleb iga operatsioonisüsteemi kallal käimise järel kontrollida, läks õnneks või ei läinud? See tähendab, et pooled koodiread on lihtsalt iff-id.
Tõenäoliselt on kõik ok selle mälueraldusega. Aga äkki ei ole, äkki kõik mälu sai mälulekke tõttu otsa. Sellest tuleks kusagil logis teada anda ja siis lõpetada, sest muidu võtab veaparandus otsatult kaua aega...
Nii on C programmid täis pikitud iff-sid.
Nüüd tulevad mängu uued tegelased - Security coding standardi meistrid. C -s ja mujalgi on nimelt selline häda: KÕIGE väiksem arv ja kõige suurem täisarv (näiteks nelja baidi korral) ei ole üksteise vastandid.
INT_MIN on -2147483648 ja INT_MAX is 2147483647.
Oletame nüüd, et sinu muutuja saab väärtuse INT_MIN. Teed selle muutujaga x = -x.
See muutuja EI OLE -x, ta on midagi, mida C keel ei defineeri. Äkki tuleb mingi viga. Äkki ei tule, x-i asemel on sel juhul mingi kahtlane väärtus, mis, seda keegi ei tea.
Et seda ei juhtuks, tuleks ohutu programmeerimise huvides alati enne x = -x i kontrollida, äkki x on vahepeal saanud väärtuse INT_MIN, nii igaks juhuks ...
Et selline kole asi on võimalik igal pool, kus tuleb graafikaga õiendada, sest seal on sageli vajalikud arvutused, siis võib ette kujutada, kui palju peaks "ohutu" koodi huvides selliseid imelikke kontrolle igale poole kirjutama. Kodeerija peab kinni lappima kasutatava programmeerimiskeele puudusi...
...
Kui viitsisite siiani lugeda, siis minge ja käige minu viidatud lingi ka ära. Minu arvates on seal päris hästi ära kirjeldatud, mis saabub kodeerijale pärast mesinädalaid. Kõrberännaku kestus võib olla erinev. Ealised iseärasused ei ole näiteks üldse soodustav faktor kõrbest väljumisel.Ja nii edasi ja edasi.
Ja mulle tundub, et ma ei ole siit veel saanud välja. Liiga palju aega virvendab minu ekraanil ja unenägudes kole "segmentation fault..."

november 03, 2016

Bachi 24. prelüüd ja fuuga





See Bachi prelüüd ja fuuga on midagi lõpmatusest.
Eriti selle noore mehe esituses. Tema elukaar jäi lühikeseks, aga tema
mistahes klimberdust tasub alati kuulata.
See esitus aga jääb teid alati kummitama!

oktoober 30, 2016

Hõbekuuli püüdlemas












Kes teab, hõbekuul on koodinikerdajate maailmas vihje Fred Brooksile.
Enne sellesse maailma sukeldumist, töötupõlves lugesin seda ja peaksin uuesti üle vaatama, nüüd on sellel kõigel rohkem mõtet.
Tõsi, tollal ma arvasin enesekindlalt, et noh, ühe suure andmebaasiprogrammi (ega see nii väga suur ei olnudki tagasi vaadates) olen valmis teinud (dbf formaadis), et oskan küll.
Ega ikka nii väga ei osanud küll ja ei oska praegu ka.
Millegipärast olin (ja vahel olen ikka veel) arvamisel, et kusagil on olemas mingit sorti eliksiir või siis hõbekuul, mille omandamisel hakkab koodinikerdamine palju, palju kiiremini kulgema.
Millegipärast oma andmebaasiprogrammiga see ei õnnestunud, aga noh, teise töö kõrvalt (arvutiadministraatorina) nii veerandkoha koormusega aretades ehk ei pidanudki oskama.
Üllatusega avastan, et kolleegid ei paista ka hõbekuuli olevat leidnud, kuigi nende tegemised kulgevad siiski palju, palju efektiivsemalt. Aga mitte vahest järk efektiivsemalt, vaid lihtsalt noh, ütleme 2 korda kiiremini. Võib-olla ka kolm, kui mingi asi väga käpas on. Spetsialiseerumine ei ole küll hõbekuul, aga kui teed mingit asja, mida oled juba hästi teinud, saab lõpuks päris osavaks.
Kui probleem on uus, siis võib olla vähem, aga siiski kogemus siin ka loeb - ka uue probleemiga tegelemise kogemus on kogemus.
Brooksi jutt täpselt sellele osundaski. Kooditegemise käigus on olemuslikke asju, mida ei saa väga palju kiiremini teha, kuigi saab muutuda päris osavaks.
Võrdleksin oma hobi - ujumisega. Saan uhkelt harrastusujujatest mööda põrutada, aga ka minu võimetel on piirid. Mina ujun100 meetrit, juhuharrastaja 50. Ja treeningupoiss ujub selle aja sees 150 meetrit.
Ujun tavalist konnastiili ja olen päris uhke, et saan maha 50 meetriga tempos 1 minut ja 10 sekundit, nüüd hetkel koguni 8 sekundit. Aga millist pingutamist see 2 sekundit tähendab, ja mitu korda rohkem pean nädalas ujumas käima, et saada kätte näiteks 1 minut ja 5 sekundit?
Kuigi jah, Phelps muigaks selle peale ja meie Tartu poiss Zirk ka muigaks. Ma ei tea tema treeningutempot, vahest 45 sekundit 50 meetri peale, või koguni 40 (konna stiili harrastades?).
Aga ikkagi üle 2 korra kiiremini ta minust ei uju.
Ka inimese vaimsetel võimetel on omad piirid, vähemalt kiiruslikus mõttes.
Ja kuhu meil siis ikkagi nii kiire on?
Suurema projekti puhul on vaja lihtsalt rohkem inimesi tööle panna ja nende tööd paremini organiseerida.
Siit aga selle valdkonna võlu ja valu algabki.
Projektid on tavaliselt suured, mitte väikesed. Mitte 100 rida, vaid 10000 ja 100000.
Üksiküritaja võib pika aja sees saada oma 100000 realise monstrumi kätte üksinda tehes, firmas peab sellega tegelema meeskond.
Teise inimese koodi peab oskama lahti võtta. See ei ole alati ainult programmeerimiskeele küsimus, igaühel kujunevad välja mingid harjumused. Mõned võivad olla ka halvad, mõni aga on maitse asi ja selliste asjade üle käib alati halastamatu andmine.
Kuhu ikkagi panna see loogeline sulg { ?
Kõike ei jõua parimagi tahtmise korral dokumenteerida. Kui palju ikkagi kommenteerida?
Kuidas koodi nii kirja panna, et teine inimene ka sellest aru saab?
Kuidas koodi nii kirja panna, et seda annaks modifitseerida.
Millal hakata vorpima UML-e ja kõikvõimalikke muid skeeme.
Pidage meeles, et igal projektil on alati mingi ajaline piir, eks?
Kõikide nende asjade üle käib netis alati mingi “flame war” (milline võiks olla eestikeelne oskussõna?), mis annab tunnistust vaid sellest, et siin hõbekuule ei ole leitud.
Pakun siin välja oma esialgsed mõtted, mis võivad muutuda.
1. Kui mul on valida 2 programmi vahel, millest üks on hästi kirjutatud, aga milles pole ridagi kommentaare, ja programmi vahel, mis ehk ei ole nii hästi kirjutatud, aga milles on jutt juures, mida miski asi teeb, ma valin edasiarendamiseks teise programmi.
Isedokumenteeruv programm on üks suur müüt ja mida kiiremini sellest müüdist vabaneda, seda parem.
Uurisin netist - avatud koodi projektides peetakse heaks tooniks 10% -20% kommentaare.
Enamasti võib muu dokumentatsiooni tegemiseks siiski aega mitte jätkuda, kommenteerimiseks võiks aega kulutada küll.
2. Jeffrey Snower (PowerShelli looja) ütles kunagi XP programmerimise kohta, et see on nagu püksi pissimine - algul on soe, aga pärast ...
XP kohta mul puudub praegu sügav kogemus, kuigi vist kaldun selle poole, et vanad ja vastikud koskmeetodi harjumused kaevatakse tasapisi igal pool välja, sest ollakse jõudnud püksi pissimise teise faasi - iga firma arhiivides leidub meetrite viisi koodi, mida oleks vaja edasi aretada ja nüüd on küll vaja juttu selle koodi juurde ka teada saada.
On vaid teada, et kood tekkis nii, et 2 programmeerijat tegelesid sellega XP-d harrastades, aga praguseks on nad firmast läinud ja ühesõnaga, ei teata sellest midagi peale legendide.
...
3. Ja samas see asi, mida ma ei oska ja peaksin hakkama oskama - tundmatu koodi desifreerimine.
Sest tegelikult ei ole võimalik kõike dokumenteerida, iga projekti puhul ollakse tavaliselt ajahädas, surve asi ära teha on tohutu ja isegi selle surve puudumisel on oma koodi efekt väga tugev - väga lihtsaid asju ju ei viitsi kirja panna. Kuna inimesed liiguvad, siis koodi autor on juba ehk kusagil mujal, ja kui ka siinsamas oma kontoris tegutseb, on tal hetkel tavaliselt mingi muu pingeline asi käsil ja tal ei ole aega (ja ka meeles ei ole äkki) tundide kaupa vestelda. Ühesõnaga, see tasakaalu küsimus, palju koodist pidada iseenesestmõistetavaks ja mida siiski ära märkida, see on probleem.
4. Aga iga firma peaks arvestama, et inimesed liiguvad ja see sama püksi pissimise probleem avaldub alles näiteks 5 aasta möödudes. Et oli kodeerija K, kes kirjutas (väga head) koodi.
Aga juttu väga palju ei ole juurde kirjutatud. Ja nüüd on äkki probleem.
Ja tööle maabub mitte alati see kõige, kõige oskajam, vaid näiteks allest ülikoolist tulnud, kes väga hästi teab kiirsortimise algoritmi, aga paljusid muid asju ei tea.
Ja selle kõige juures on keskkonnad ikka väga erinevad. Mingi Foxpro taustaga tegelane näeb algul üsna kurja vaeva C keelega (mida ta ammu ammu kusagil füüsika insituudi laboris oli ka näppinud).
5. Ja puhtalt kodeerijate kõrval on palju teisi tegelasi firmas, kes ei peagi teadma kõiki nüansse.
Nii et kuigi kodeerimise maailmas käis läbi kunagi Prantsuse revolutsooniga võrreldav XP programmeerimise vool, loksub kõik jälle vanasse sängi tagasi.
Bürokraatia ja dokumenteerimine omandab jälle mõtte.
6. Kahjuks tuleb igal kodeerijal oma elus tegelda paljude keskkondadega. Ometi ei ole väga hea mõtte neid spetsiaalselt juurde koguda.

Tegelikult võidaks aega kõvasti, kui C, C++, C#, Java ökosüsteemi, Delphi, PHP, Javascripti paabeli asemel oleks näiteks see vana (ja kohutav) C. Või C++. Või Java ökosüsteem, mis jälle ise on üks paabel.
Eriti õppimisel kuluks see ära. Hiljem, mingite vilumuste ja reflekside tekkimisel ehk ei ole see sein nii järsk, mingi uus keskkond hakkab palju kiiremini külge.
See jälle sõltub, aga sain teada ... et TEGELIKULT ma ei ole kiire õppija.
Minu näide on vahest hästi õpetlik:
Firmas tegelen C-ga ja oleks päris tore olnud, kui nüüd õpitavad Algoritmide ja andmestruktuuride kursusel ka kirjutaksin C harjutusi ja ei peaks vaevlema mulle täiesti tundmatu Javaga.
Füüsiku ülbusega aga arvasin, et see on selline “köki möki” asi. Ei olnud midagi.
Seetõttu valisin AA kõrvale midagi veel vingemat (et oleks ülimalt huvitav). Valisin
funktsionaalse programmeerimise (vinge!!).
See kursus ei ole KINDLASTI mitte algajatele mõeldud.
Ma kaldun arvama, et kursuse tegijad ei ole ka päris hästi läbi mõelnud, mida nad peaksid seal õpetama. Kas tegelda grupi fanaatikutega, kes juba palju teavad ja tahavad lihtsalt täiustuda Haskelli ja Scala maailmas? Või eeldada proosaliselt, et kursusele maabuvad üsna erineva tasemega inimesed, kellest enamik siiski FP-st midagi ei tea.
Idee õpetada ÜHEL semestril nii Haskelli kui Scalat kindlasti ei ole hea.
8 loengut ja hops - Haskell selge. Minevik, üks kontrolltöö ümbertegemine veel,
sain 50st võimalikust kätte 28, 3 tegin ära ja kahe ülesandeni puht füüsiliselt ei jõudnud (vanus ka loeb). Ma ei usu, et rohkem üldse saan. Aega ei ole. 50 -se aju tiksub hoopis aeglasemalt, kui noore IT tudengi oma. See kahjuks selgus selle kontrolltöö käigus näiteks.
Ja nüüd vaevlen Scala rüpes. Ja mitte lihtsalt Scala, vaid Odersky enda põhiteksti, Scala by example abiga üritan seda selgeks saada.
Kõige selle käigus sai AA õppimine kõvasti kannatada ja siin ma nüüd kaeblen.
AA on nagu üldfüüsika kursus, see võiks ka ulatuda üle 2 semestri kindlasti, aga ok, Tartus tehakse kõiki suuri asju ühe semestri sees.
Kardan, et FP tuleb mul lihtsalt ohverdada, eksternina siis mahavisatud raha.
Ei saa õppida korraga Javat, AA-d, Haskelli, nüüd siis Scalat ja teha täiskohaga põhitööd ka.
Selle kõige eest saab 12 punkti, kui nüüd sedagi saab (kui 6-gi AA eest kätte saab, on ka hea).
Võimalik, et ma vingerdan öötööde ja puuduvate puhkepäevade arvelt välja, võimalik, et ei vingerda ja FP-st jäävad edaspidiseks vaid halvad mälestused. Vähemalt kindel teadmine, et sellist asja ei omanda ÜHE SEMESTRIGA ja eriti stiilis 8 loengut Haskelli ja 8 loengut Scalat.
Noorus saab sellega ehk hakkama ja TÜ raamistikus see kõik on OK.
IMHO siiski ei ole.
Õppimise aluskeskkond võiks ülikoolis olla Java. Java ja ainult javapõhine võiks olla kogu bakalaureuseõpe. (FP siiski vist ei olnudki bakaõppe osa, aga ka siin alustusena sobiks see idee).
FP-d saaks õpetada AINULT Scala baasil. Ei mingit Haskelli, kui küsimuse all on 1 semestri lühikursus 16 loenguga.
Scala seetõttu, et üliõpilased Javat juba tunnevad.
Minu huvidega see kokku ei käinud, ma ei tea Javast mõhkugi.
Variant B oleks AINULT Haskell.
Formaalselt saab mahutada 16 loengu raamidesse ükskõik mida, reaalselt seda teha ei saa.
Saab ainult nii, et reaalselt üliõpilane tõesti planeerib ettenähtud 150 tunni asemel FP-le semestris tunduvalt rohkem aega kulutada. Näiteks 200-300 tundi või on seda juba varem teinud. Mina seda lõbustust endale lubada ei saa ja järelikult FP jääb mingil hetkel VIST ära.
Sellist asja nimetatakse fokuseerumiseks ja fokuseerida arvutiõppes on vaja. Peamine ei ole mingisugune multikulturaalne paljusus, mida üliõpilane IT-st peaks saama, vaid mingi ühe ökosüsteemi (näiteks JAVA) pulkadeni omandamine koos lisanditega. Näiteks SCALA.
Võimalik, et magistriõppesse võiks tulla juurde paljusus, aga alustuseks ei saa ei ann see midagi. Paabel on programeerimise keskkondadesse küll sisse kirjutatud, aga mina pean seda meie valdkonna nuhtluseks, mitte eeliseks.
MA EI NÄE SIIN MINGIT HÕBEKUULI.
IT-s tuleks teha ühte asja, ja teha seda hästi.
See printsiip on Unix-st, mille kohta olen hakanud ka kriitilisemaks muutuma.
See kriitilisuse faas muuseas kuulub asja juurde, nagu ilmselt ka mingi ühe või teise stiili entusiastiks saamine lõppude lõpuks. Praeguses seisus on FP vaimustus minus kõvasti, väga kõvasti lahjenenud.
Aga mine sa isahane tea, see võib veel üle minna.
Nii palju siis mulle kingitud tunni raames (täna öösel keerati kellale jälle taha. hm. voorimehe, s.t. it mehe kombed on siginenud...) hõbekuuli leidmisest, kust paistan olevat veel kaugemal, kui töötupõlves, s.t. 2 aastat tagasi...