21. Nov 2020 |

Let the Spotify play your favourite songs by 30 seconds

Inspired by this article and the economic situation for musicians I wrote this little script. This lets Spotify to play your favourite artists on rotation and automatically presses “next” after every 33 (+ littlebit of random) seconds. 30 seconds is the minimum amount of time a song must be listened to before Spotify registers a single “play”.

Loading the song also takes little bit of time so you can not maximize the play count by making the loop take exactly 30 seconds long.

function getRandomInt(min, max) {
    min = Math.ceil(min);
    max = Math.floor(max);
    return Math.floor(Math.random() * (max - min) + min);
}

function doSomething() {
    var button = document.querySelector('[title="Next"]');
    button.click();
}

(function loop() {
    var rand = getRandomInt(33000, 37000);
    console.log(rand);
    setTimeout(function() {
        doSomething();
        loop();
    }, rand);
}());

If you are using Spotify in your browser the press ctrl+shift+c, open console tab, paste this code there and press enter. This code does nothing but pressing button with title attribute “Next” after every 33-37 seconds (random between these times).

It is one option to support your favourite artists 🙂

5. Nov 2020 |

Kui kaua see aega võtab

Mind natukene rõhub see määramatus, et ma ei tea, kui kaua mingi asi aega võtab. Näiteks hetkel on 2 ainet – algoritmid ja C#. Mõlemad meeldivad aga kui mõlemal on tähtajad lähenemas, siis ma ei oska hinnata, kui kaua mul töö tegemiseks aega läheb. Ja see skaala on üsna raju selles mõttes, et ma ei tea, kas läheb 2 päeva mingi algoritmi harutamiseks või läheb 2 tundi 🙂

C# semestritöö on põhimõtteliselt selline, et kogu aeg on võimalik ka ainult sellele ära kulutada. Ja samas ei tea, kas puruneb töö käigus Git, mida on vaja remontima hakata või laguneb Rider ära vms. Määramatust on päris palju, millest siis omakorda tekib hirm ja ärevus.

21. Oct 2020 |

Python OOP – objektorienteeritud programmeerimine

Kuna ma ise sellega olin aasta tagasi üsna hädas, sest pea lihtsalt ei võtnud seda abstraktsiooni nii lennult, siis laia pintsliga kirjutasin siia (võimete piires) natuke selgitustega töötavat objektorienteeritud Pythoni koodi:

github.com/robineero/my-python-jam/tree/master/oop-jam

Mõni objekt, mõni meetod ja natuke funktsionaalsust. Ehk on kellelegi veel abiks, kes aru ei saa, kuidas objektid töötavad. See võib sisaldada vigu igal pool aga noh, see ongi jam.

17. Oct 2020 |

3. semester – teise kuu keskel

Sorry, et ma ei ole jõudnud õppimisest kirjutada. See semester on üsna kiire olnud. Aga järgemööda nüüd püüan natuke valgustada, mis koolis toimub 🙂

Veenduge

Aina enam pean endale meelde tuletama, et kui millegi uue õppimisel on  tunne, et “ma ei oska seda seda üldse” või  “ma ei saa mitte midagi aru”, siis see ongi õige koht, kus olla ja kust alustada. Ja end rahustama, et see ei ole maailma lõpp, kui mingit asja isegi esimese korraga tehtud ei saa, sest õppeprotsess ongi iga kord erinev ja individuaalne.

Lorentsi “süsteemide selitamine” hulgateooriast on siin ka abiks mõistmisel, kuidas teadmine tekib.

Kui miski huvitab

Olen märganud, et kui mind miski huvitab, siis ma võin seda teha väsimatult tundide viisi. Olgu selleks algoritmide lahendamine, veebitehnoloogia või isegi C#. Või EDRide joonistamine. Või giti remontimine. Võin ennast täiesti ära unustada neid nokitsedes.

Aga kui peab tegema midagi, mis mind üldse ei huvita – näiteks see õnnetu arvutigraafika valikaine – siis peab ennast kõvasti sundima.

Andmebaasid

Seni üsna kasulik aine. Eriti kombinatsioonis Lorentsi hulgateooriaga. Aga ma ei saa aru, miks õppejõud Priit Raspel ei kasuta praktikumides ja loengutes enda soovitatud Vertabelot, mis teeb seose jooned automaatselt sirged ja laseb kasutada korduvaid olemite nimesid (kuigi annab sellekohase veateate). Nii ta ei peaks tegelema viltuste joontega ja sama sõna erinevate versioonide väljamõtlemisega (nt isik, isic, isikk, izik, isssikkkk jne), kui ta ERDi näiteid joonistab. Aga noh, 7. nädala lõpuks olen sellega juba harjunud 🙂

C#

Minu jaoks kõige hirmutavam aine. Õppejõud ütles, et 50% ei saa läbi ainest ja sain aru, et järgmise semestri hajussüsteemid tulevad selle C# baasil edasi. Javas aitas mind kõvasti soomlaste MOOC aga C# jaoks ei ole midagi sarnast leidnud.

Samuti ei ole päris täpselt aru saanud, et milleks C# vajalik või mille poolest eriline või mis märksõnaga seda peaks kuskil arendusfirmades märkama (.NET?). Lihtsalt mul ei ole tutvusringkonnas olnud mitte kellegagi sellest keelest juttu. Pigem Java, TypeScript, Python jne. Samas Tiobe 5. koht hetkel. Seega, paneme kõik välja ja vaatame kuhu see jõuab. Äkki on tõesti hea. Hetkel mul ei ole ühtegi mõtet, mida ma selle keelega huvitavat teha saan.

Seni on mulje selline, et nii palju jama mul ei ole ühegi keelega seni olnud tehniliselt poolelt. Nii Rider‘i erroreid, mingeid koodi crashimisi täiesti suvalise koha peal, giti jamasid jne. Python ja Java selle kõrval töötasid (vähemalt õppetöös) ikka eriti sujuvalt 😀

Algoritmid

Vaimustun. Väga lahe õppejõud. Aga hirmus aine on ka, et ei tea, kas pea võtab lõpuni ikka. Aine lehe leiab siit.

Veebitehnoloogia

Üks lemmik aineid. Ootan huviga igat kodutööd ja teen hea meelega ise juurde. Selle aine Moodle foorum on parim meelelahutus.

Sotsiaalmeedia

Eelmise semestri lõpus panin endale sotsiaalmeedia piirangu ja see tõstis märgatavalt mu produktiivsust. Hetkel tunnen, et peaksin sama uuesti tegema. Sotsiaalmeedia segab kohutavalt.

Arvutigraafika

Tegin ühe halva valiku juba sel semestril ja selleks on valikaine nimega Arvutigraafika (ICD0002). Õppejõud ja kõik on väga tore – pole viga midagi – aga see täiesti vale asi võrreldes sellega, mida ma arvasin, et see on. Ma arvasin, et see on midagi sellist nagu kasutajaliidese prototüüpimine, Sketch, Figma, CSS nagu www ja Aku jne seda teeb, ligipääsetavus jne. Aga ei. See on 3D joonestamine ja ma hetkel ei oska üldse rõõmu tunda sellest sülle kukkunud võimalusest seda õppida 😀 Ei teagi mis teha sellega.

12. Oct 2020 |

Entity–relationship diagram (ERD scheme) for family tree database

I have seen this question asked many times and most of the times poorly answered.

Entity–relationship diagram for family tree database. N means ‘nullable’ in this syntax.

I think it could be done like this. The left one has two tables. One for entities and the other for relationships. The green one has both in one table. I don’t know if this solution is correct or not. Neither know I which one is better 🙂

Lines on the right ERD explained:

  • Each mother_id can be mother to zero-to-many person_id’s
  • Each father_id can be father to zero-to-many person_id’s
  • Each person_id can have 0-to-1 father id (zero if I don’t know the father) and 0-to-1 mother id. Person can not have more that one father and mother.

NB! You can not add relationships between entities before you have entities available.

Please come back later. If I have time I will share SQL query for setting up MySQL database with sample data and maybe some simple php interface.

10. Oct 2020 |

MySQL autoincrement PK growing quickly

Primary key (PK) is skipping values for some reason. This was an issue I spent time solving until I discovered that auto increment column increases after insertion error occurs. To avoid duplicates on this website I set rule on MySQL side that if three colums match then don’t insert (give insertion error and continue). This way I had hundreds of insertion errors every hour and therefore PK was growing rapidly.

9. Oct 2020 |

Priviligeeritud

Pisut koduõppest. Kui ma kodus õpin, siis ma töötan kahe(!) arvutiga, millest üks on loenguvideo mängimiseks. Kokku on avatud 3 ekraani.

Kuna loenguvideo pausile panemiseks, kiiruse muutmiseks, tagasi kerimiseks jne tab’ide või akende vahel liikumine + hiirega hullamine on lihtsalt ebaergonoomiline. IDEs kaob järg, joonistuses kaob järg jne.

Võrdluseks eraldi arvutis:

  • üles-alla nool on video esituse kiiruse muutmiseks (kus niisama jutt paned 2x, kus vaja trükkida paned 0.75x vms)
  • space on pausi jaoks
  • vasak-parem on edasi-tagasi kerimiseks, kui mingi koht jäi tähele panemata

Eriti hea, kui õppejõul on video Youtube’is kuna seal on kiiruse jaoks shortcutid olemas ja need videod töötavad tehniliselt paremini kui kooli Echo360 lahendus.

Aga ma saan aru, et see on täielik luksus. On peresid, kus on 1 arvuti kõigi peale, on peresid, kus pole üldse arvutit jne. Et koduõpet teha hea kasutajakogemusega on vaja ikka nii heal järjel ja nii hea õnnega olla.

19. Sep 2020 |

mysqli ja täpitähed

Kulutasin eile öösel paar tundi, et täpitähtede liikumine andmebaasi ja andmebaasist tagasi ühel kodulehel korda saada. Hetke lahendus on selline nagu pildil. See set_charset("utf8") oli puudu. Aga enna ma muidugi toimetasin kõvasti charseti kallal ja tegin andmebaasi uuesti ja kõike muud 😀

Muidu virinat ka. Tore, et WordPress ja Blogspot genereerivad erineva struktuuriga RSSi ja et blogijad omakorda suudavad seda RSSi kerge vaevaga purustada.

4. Sep 2020 |

TalTech, COVID-19 ja tööõnnetus

See postitus ja see lehekülg tunduvad hetkel väga koomilised. Kohe selgitan.

Eile (03.09) õhtul 20:29 tuli TalTechi listi e-mail, kus anti teada, et IT-kolledžis oli selle semestri esimene COVID-19 haigusjuhtum. See tähendab, et üliõpilasel, kes osales õppetöös, diagnoositi COVID. Lisaks info, et:

“Kõik nakatunu lähikontaktid on välja selgitatud ning nad on samuti jäänud eneseisolatsiooni oma tervist jälgima. Üliõpilasi, kes on viibinud nakatunuga ühes loengus on sellest eraldi teavitatud.”

Täna, see on 1 päev(!) hiljem, oli ICO-314s 3 tundi(!) kestev loeng aines Programmeerimine C# keeles (ICD0008).

IT-kolledži auditoorium ICO-314, kus on 210 kohta aga ainele registreerunud 261 tudengit. Programmeerimine C# keeles (ICD0008) esimene loeng, 04.09.2020.

Esiteks, selle audika (ICO314) suurus on 210 kohta. Ainele oli registreerunud 261 tudengit (õppejõu sõnutsi 3. septembri seisuga). Siin on juba error, mis mingigi RMP (risk management plan) olemasolul oleks pidanud kõik punaseks värvima. Meil on COVID + esimene juht koolis päev varem + inimesi on rohkem kui toole + koosviibimise aeg on kolm tundi + puudub vajadus kohal olla + teada on, et kõik tulevad (sest esimene loeng ja me pole kellelegi Moodle key’d ega video linki andnud mingil põhjusel).

Teiseks, tegemist on täiesti uue ainega, semestri esimese loenguga ja uue õppejõuga kõigile tudengitele (st õppejõuga tüüpõppekavas veel kokkupuudet ei ole). Seega, KÕIK tulevad kohale, sest esimene loeng tavaliselt selgitab õppetöökorraldust. See tähendab, et sa saad teada mida sa aines tegema pead, mida sa kursuse jooksul õpid, kuhu töid pead saatma, kas sa pead kohal käima kuskil, mis programme kasutama jne. See on kõik tudengi jaoks äärmiselt oluline info.

Kolmandaks, loengust on otseülekanne. Aga konks on selles, et keegi ei tea linki, kust seda vaadata saab. Link ilmus loengu 60. minuti paiku Moodlesse. Moodle juurdepääs on aga ka piiratud enrollment key’ga, mille sai samuti teada loengu 60. minuti paiku. Kui sa ei ole seal kohapeal, siis sa seda teada ei saa.

Kuidas see oleks pidanud olema

Arvestades, et koolis oli just COVID-positiivne inimene, siis ei topi mitte mingil juhul 210 kohalisse audikasse 260 inimest 3ks tunniks. Seda enam, et loengust on otseülekanne 😀

Loengu ülekande link jagatakse kõigile loengu alguses enne audikasse sisenemist ja antakse soovitus ära minna, sest toole on vähem kui inimesi. Ühtlasi, kuna loengust toimub otseülekanne, siis puudub põhjendatud vajadus kohapeal viibida.

Veelgi parem, kui Moodle enrollment key ja Echo360 link oleks tulnud e-mailile 🙂

Kuidas oli see lähiajaloos

10. juunil toimus samas auditooriumis Python CodeClub, mille reeglid olid järgmised:

“Since we want this to be as safe as possible, we are limiting the attendance to 40 people. We will provide hand sanitisers at entrance, please wear a mask if possible and seating will in a way that we respect social distancing. Avoid hugging, shaking hands or standing too close to other participants.”

See tähendab, et audikasse lubati 6 korda(!) vähem inimesi. See on päris pöörane kontrast tänasega.

Tööõnnetus

Ühtlasi on tänaseks õhtuks teavitatud juba 5st COVID-positiivsest tudengist TalTechis. Aga noh, ma arvan, et see C# aine loeng oli lihtsalt tööõnnetus. Ühtlasi, arvasin, et esimene COVID-positiivne tudeng ilmub välja 2. nädalal aga läks siiski palju kiiremini.