Tuesday, December 7, 2021

November

PÖFFi ja Kati sünnipäeva kuu. 

PÖFFil näen vaid kolme filmi, sest jään poole pealt haigeks.

"Pilve piiril" / "Sanctity of Space", https://poff.ee/film/pilve-piiril/. Alpinismist, fotograafiast, ajaloost ja hullusest. Väga tore.

"Autod, mis viisid meid kapitalismi", https://poff.ee/film/autod-mis-viisid-meid-kapitalismi/. Film Ida-Euroopa murdeaja autodest ja nende inimestest. Trabantid ja Wartburgid, Tatrad ja maanteemuhud. Perekonnad, kes nendega sõitsid; mehed, kes neid fännasid ja putitasid. Autolammutused ja võiduajamised, sõit Ida-Saksamaalt Praha või Budapesti Lääne-Saksa saatkondade juurde, automudelite kogujad, tuunijad ja putitajad. Lahe.

"Hullumeelne jumal"  / "Mad god", https://poff.ee/film/hullumeelne-jumal/. Animeeritud jaburus suurel skaalal ja linal, jälle lahe.

Kati vaatas ära 12 filmi, Iida - mõned, poisid - ei ühtegi.

14 - Saula-Kose-Ravila rattasõit, mõisad ja allikad

15 - ujun, 1 km alla 29 minuti. Nendime, et mu ujumise tempo on 20 aasta püsinud samana. 

19 - Kati sünna kodune pidu

20 - Libahundi jälg, Põhja-Tallinnas, koos Meelise ja jalgrattaga. Jääme hirmsast pingutusest hoolimata eelviimaseks. 

2x - jään haigeks. Nohu, pea paks ja paha olla. Koroonat ei ole. Õnneks läheb paari päevaga üle.  

29 - saan rattale ühe naelrehvi :)

Saame koju uue suure söögilaua. Köök on nüüd teistsugune, kuidagi pidulik. Alguses tundus liiga suur, aga kuu lõpuks ei kujuta väiksemat enam ette.

Tööl on tore. Ehkki veider on tajuda, kui erinevad on pealt sarnased ettevõtted seestpoolt.

Kohtun endiste kolleegidega... no vähemalt mõnega. Oh jah.

Muusikat:

Ja üks suvine foto meie kassist:

Monday, December 6, 2021

Naised muusikas

Kõik avaldavad oma Spotify aasta hittliste. Mul Spotify'd pole ja Youtube mingit statistikat mulle ei näita. Kirjutan siis niisama :)

Jään vanemaks ja muusikamaitse muutub. Põhiliselt selle poole, et kuulan aina rohkem noori naishääli. Ja väga pehmet, võiks öelda - imalat muusikat. Müristamine või kisamine või Metallica või Manowar on endiselt okei, väike osa klassikat ka. Kuid domineerivad leebed lembelaulud. 

Caro Emeraldhttps://en.wikipedia.org/wiki/Caro_Emerald

Hollandlanna. Laulab inglise keeles. Jazz. Väga hea diktsiooniga, täpne vokaaltehnika. Lisaks on tal uskumatult lahe saateansambel. Koostööd laulja ja bändi vahel on nauding vaadata. Laulutekstid on tihti kergelt misandrilised. 


Veel lugusid:
"Paris", akustiline, https://www.youtube.com/watch?v=B3aWlt81EwU
"The Other Woman", https://www.youtube.com/watch?v=CuKgncofDLM

Pommehttps://en.wikipedia.org/wiki/Pomme_(singer)

Prantsuse neiu. Ülinunnu. Plõnnib kitarri ja laulab. Üldiselt prantsuse keeles (ma loen tihti laulusõnade tõlked neti abil läbi). 



Veel lugusid:
"J'suis pas dupe" ehk "Mind juba ei peta", https://www.youtube.com/watch?v=rKpahxewYlU
"Adieu mon homme" ehk "Tšau", https://www.youtube.com/watch?v=1wR2klPwpc4
"La lumière" ehk "Valgus",  https://www.youtube.com/watch?v=b_E0pqf_Ht0
"Une minute" ehk "Üks minut", https://www.youtube.com/watch?v=JdoUHEwNtQI

Androgüünne USA laula ja laulukirjutaja. Teeb häälega imesid. Mul on pilet ta talvisele kontserdile Tallinnas. Palju ei oota, sest Saku Suurhall, a noh. Kõige parema arusaama ta võimetest annab aga "Halo" kaver, stuudiosalvestus. Vaadake publikut - nad lihtsalt sulavad.


Veel:
"Lost on You", https://www.youtube.com/watch?v=wDjeBNv6ip0

Kes mu ajaloos veel ohtralt esinevad?
 
Barbara Pravi - "Dommage" ("Häbi"), https://www.youtube.com/watch?v=OGz2052UKQc
Scala - "J'ai demandé à la lune", https://www.youtube.com/watch?v=4J5thByUWoM
Margherita Pirri - "Le vent nous portera", https://www.youtube.com/watch?v=EyzBuo53u_0
Katie Melua - "I Will Be There", https://www.youtube.com/watch?v=7IRIP-hSfJ0
Dublini ülikooli kammerkoor - "Mo Ghille Mear", https://www.youtube.com/watch?v=zxjvNUNXhkU
Sofi Tukker - "Everybody needs a Kiss", https://www.youtube.com/watch?v=WZluwtt5ImQ

Eelmise talve shanty-hullusest on säilinud mõned toredad mere-laulud:
The Longest Johns - "The Northwest Passage", https://www.youtube.com/watch?v=h9G4BZlnnA4
David Coffin - "Roll the old Chariot", https://www.youtube.com/watch?v=49FWp7WLYKw

Kuulasin vahepeal Pogues'i. Nende "The band played waltzing matilda" on vist kõige parem sõjavastane laul üldse; AU/NZ vägedest I Maailmasõja Gallipoli lahingus. Aga sõnu tuleb kuulata ja ajaloo tundmine on vist ka vajalik, muidu ei saa aru.

Lisaks hulk lihtsalt hästi tuntud (ja häid) lauljaid: Leonhard Cohen, Nick Cave, Amy Winehouse, t.A.T.u. 

Kuulake ja jagage teiegi oma muusikat!

Ah jah - kõige lõppu:
LAUL KAPSAST, https://www.youtube.com/watch?v=LyI-B8QsaY0
:)

Thursday, December 2, 2021

Advent of Code 2021


... algas facepalm'iga. 

1. päeva ülesanne on triviaalne, soojendus. 
Teen ära, saadan tulemuse - ei sobi.
Wtf?
Lahendan Exceli abil ära.
Õige tulemus oli 1 võrra erinev.
=> debugima. +-1 tulemus viitab veale sisendi lugemises, et kas esimene või viimane rida ei lähe arvesse vms. Aga ei, see on korras.
Lõpuks selgus - tüübiteisenduste viga. Võrdlesin oma arust arve, aga tegelikult stringe. Ja kui "9" > "8", siis "10" < "9". Ehk int() oli puudu. Muidugi on samal teemal ka Redditi lõim.
Pythoni lahendus tuli lõpuks kokku kolm rida - faili sisselugemine, 1. osa ja 2. osa:

data = [int(x) for x in open("data\\01.txt", "r")
print("Part 1:", sum([data[i] > data[i-1] for i in range(1, len(data))]))
print("Part 2:", sum([data[i] > data[i-3] for i in range(3, len(data))]))

2. päeval olin targem ja lahendasin kohe Excelis.

Edetabelites olen ma juba viimane :), sest 1&2 detsembril olin Tartus lähetuses ja aega ei olnud; tegin mõlemad ülesanded 2. õhtul. 
 
3. päev - 10110010... - veidi pythonis pusimist, kõige keerulisem oli ülesande tekstist aru saada.  

4. päev - bingod. Teen kõigepealt mingi listidega pusa. Siis kirjutan klassi-põhiseks ümber, lihtsalt et klasse meelde tuletada. Redditis on sellised pythoni lahendused, et mul pole lootustki aru saada. Kaks rida numpy't.

5. päev - lõikuvad jooned maatriksil ehk "ventilation vents". Lihtne, sest Python on siin väga abiks. Andmestruktuuriks dict((x,y)).
... läksin lugesin ülilõime (kuidas on "megathread" eesti keeles?) ja sain muidugi targemaks:
- numpy.sign()
- collections.defaultdict
- list.extend()
- Counter
- dict.values()
Kõik elementaarsed asjad, eks, aga kui ei kirjuta, siis ei kasuta ega mäleta.
Edit: ja siis tuleb keegi välja lihtsa, kompleksarvudega lahendusega.

08. päev - segiaetud signaalid ja arvu-displey-segmendid.
Lahendasin loogikaülesande paberil ära ja kirjutasin suht jõuga programmiks ümber.
Kole, aga töötab. 
Redditis on paar väga elegantset loogilist lahendust. 
Enamik pakutud variante on aga veel pikemad kui minu oma.
Minu väljamõeldud lahendust ma ei leidnudki.
Päris huvitav, kui mitut moodi saab sama asja lahendada :)

09 .ja 11. päev - ruudustik (grid), flow fill jne. 
Üsna lihtsad mõlemad - vähem kui ekraanitäis koodi.
Õppetund sama mis 5. päeval: maatriksit on lihtne esitada dictionary'ga, võtmeks (x,y).

10. päev - stringitöötlus, "<({[)" ebakõlade leidmine
statisics.median kasutus, ei muud harivat.

13. päev - peegeldused
Lihtne. Kasutasin andmeteks alguses defaultdict'i, siis dict'i, lõpuks set'i. 
Abiks oli hiljuti leitud trikk, et andmestruktuuri muutmiseks selle itereerimise ajal on for x in list(mingi_set). 

14. päev - kemikaal, string? insertions ja reeglid
Esimene osa triviaalne, teist - ei suuda välja mõelda. Arvutasin, et kui ma optimeerin mälu kasutuse biti tasemeni ära, tuleb 20 Gb. Kettale mahuks pmst :) Mingeid mustreid, mis võimaldaks optimeerida, ei leidnud. Tähendab neid kindlasti on, aga ma ei oska kasutada ega usu, et see oleks õige lahendus. Lihtne variant "arvutame kuni mälu on ja sealt ekstrapoleerime" ei tööta.
Hmm. 

15. päev - optimaalse tee leidmine ruudustikus
Sisuliselt samuti flood fill. 
Pusisin palju pikemalt kui peaks, aga midagi keerulist ei esimese ega teises osas.
Realisatsioon ühe dict'i ja paari set'i peal, kõigil indeksiteks (x,y) tuple-d. Jube mugav. 

17. päev, allveelaeva kasutamine kahurina, https://adventofcode.com/2021/day/17
Esimese osa modelleerisin virgalt, tegelikult oli analüütiline O(1) lahendus olemas, tobu. Ehkki oli puhas Newtoni füüsika / kinemaatika ülesanne. (Üles visatud asja v-kiirus maapinnale tagasi jõudes == viskamise v-kiirus.) 
Teise osa.. pusisin ka kuidagi ära. 

20. päev - pilditöötlus, sisuliselt game-of-life ruudistikul, https://adventofcode.com/2021/day/20
... , aga trikiga. 
Tegin programmi, imelihtne, testiga töötab... aga päris sisendiga mitte.
Wtf!
Hakkasin vahe-etappe välja trükkima ja leidsin mingi bugi... mis, nagu selgus, polnudki bugi, vaid erinevus testi/päris sisendi vahel. Default rule lõpmatul väljal oli erinev. Võttis veidi pusimist, et lahendus korda saada. 

21. päev - Dirac Dice, https://adventofcode.com/2021/day/21
Esimene osa lihtne, teine - ei oska. 

22. päev - Reactor Reboot, ülekattega kuubikute arvutus, https://adventofcode.com/2021/day/22
Esimene osa lihtne, teine - ei proovinud veel.

23. päev - kirpvähkide korraldaminehttps://adventofcode.com/2021/day/23
Esimese osa tegin Excelis mängides, aga edasi?
Pole aimugi. :(
(edit: tegelikult muidugi on aimu, eks ta üks puud pidi otsimise ülesanne on, tuleb lihtsalt ette võtta.)



24. - monaadide arvutus liba-assembleris, https://adventofcode.com/2021/day/24
Oo mida ülesannet!!!
Oli antud assembleri-laadne keel, kuue opkoodiga (inp add mul div mod eql) ja nelja registriga.
Sisendiks oli programmitäis selle assembleti koodi.
Ülesanne: leia maksimaalne nelja_teist_kohaline arv, mille kohta see programm andis tulemuseks nulli.
Kuna ammendav otsing üle 14 numbri tundus võimatu, siis... mida?
Süvenesin pikka koodi; see koosnes lõikudest, mis kas korrutasid eelmise väljundi 26-ga või ei vastavalt mingile tingimusele. Pmst hakkasin Notepadis käsitsi assemblerit interpreteerima. Mitmel korral jooksin ummikusse. Käisin Redditist abi otsimas, kuid sealsed juhendid lõid pildi täiesti sassi, läheneti kes kurat kuidas :) Igatahes sain kinnitust sellele, et assembleri emulaatorit kirjutada ei ole vaja ja peaks saama analüütilise lahenduse. Sisuliselt tõlkisin programmi käsitsi ümber - Exceli valemiteks :) 
Lõpuks taandus kõik triviaalsete algebraliste avaldiste peale. Tuli vaid aru saada, mis millega seoses on - milline rida millega ja milline atribuut sisendis (assemblerist välja nopitud parameetrites) millega. Ja siis lahendada seitse lihtsat diofantilist kahe muutujaga võrrandit, mille mõlemad lahendid pidid olema lõigul [1,9]. Kõlab segaselt, aga on lihtne, vt joonis. Kuid mitu korda umbe jooksin ikkagi. 

Redditis on sama ülesande jaoks pööraselt erinevaid lahendusi. 


25. - meripurade liikumine ruudustikus, https://adventofcode.com/2021/day/25
Väga lihtne, ehkki kulutasin tänu valesti lugemisele ja mõnele bugile ikkagi palju aega.