10. Sep 2021 |

Tee endale vanast arvutist server

Kui ma oleksin teadnud, et enda serveri tegemine on nii lihtne, siis ilmselt oleksin seda teinud juba varem.

Otsides kohta, kust enda arenduse asjadeks pisike VPS võtta, jõudsin selleni, et tegin (esialgu) enda vanast riiulis seisvast Dell XPS13 läpakast Linuxi serveri. 2011 mudel, i5-2467M, 4GB RAM, 512 SSD (dual masin boot, millest osa on Win7 all). See seisab ka serverina 99% ajast ilma koormuseta.

Nüüd mõtlen, et peaks võibolla läpaka Raspberry Pi 4B‘ga asendama (komplekt läheks kuskil 145 eurot). Kui kellegi on pakkuda, siis anna märku 🙂 Update: Hetkel tundub hea mõte, et ma sellega ei kiirustanud. ARM protsessoril ei tööta Docker normaalselt (viide) nii et kui üldse, siis pigem mõni Inteliga NUC või mini-PC (nt IBMi ThinkCentre).

Mul on kodus kõige tavalisem Elisa 50/10 internet ja meeldivaks üllatuseks on kõik public IP pordid lahti. Public IP’le päringuid tehes saan enda serverile ligi. Jah, see on aeglane 😀 Kui Zone annab VPSile 1 Gbit/s sisenev ja 100 Mbit/s väljuv liiklus, siis minu puhul on need hetkel vastavalt 20x ja 10x pisemad. Aga andmebaasipäringuteks piisab küll.

Kuna mul zone.ee’s on ka mõne domeenid registreeritud, siis tegin ühele neist A-kirje ja nii ei pea ma enda IP’d meeles pidama. Kuna IP ei ole staatiline, siis IP muutumisel, piisab A-kirje uuendamisest.

Mis mul seal on

Operatsioonisüsteemina on serveris Ubuntu Desktop 18.04.5 LTS (sest juba ammu installitud). Kõik asjad, mis serveris jooksevad on Dockeri konteinerina.

Esimene asi, mille tööle püüdsin saada oli see, et IP’le päringu tehes avaneks kõige tavalisem nginx (hääldatakse nagu “engine X”) Welcome Page. Piisas sellest, kui:

  • Docker on installitud (snap install docker või snap remove docker eemaldamiseks)
  • nginxi kontener käivitada docker run --name nginx_container --rm -d -p 8080:80 nginx (viide). –rm tähendab, et kui teed docker stop containerId, siis konteiner kustutatakse ära.
  • Ruuteris teha port forward sisse tuleva public IP port 80 mappida sisemises võrgus oleva seadme (ehk siis laptopi) IP porti 80. Minu puhul oli vaja mappimine teha Elisa antud Technicolori ruuteris (kuhu server-läpakas on kaabliga ühendatud). See on kõige lihtsam setup.

Seejärel installisin (kõik eraldi dockeri konteinerid) MariaDB, phpMyAdmin (selle MariaDB külge) ja Microsoft SQL Serveri.

Millest on abi

tracert that.ee – näed, kust seadmetest su liiklus läbi läheb ja kuhu ta jõuab.

Turvalisus

Selle koha peal ma olen kõige tuhmim hetkel ja mul ei ole head ettekujutust, missugused ohud mind varitsevad.

  • Ufw (Uncomplicated Firewall) panin peale
  • Sisse saab ainult SSHga, parooliga sisselogimise keerasin kinni

Kasulikud Dockeri käsud

Dockeriga toimetamine tahab super useri õiguseid. Ehk siis sudo su.

sudo snap install docker – installib Dockeri
sudo snap remove docker – eemaldab Dockeri
sudo docker ps -a – näitab kõiki konteinereid ja nende infot
sudo docker start <containerId> – käivitab konteineri
sudo docker stop <containerId> – peatab konteineri
sudo docker rm <containerId> – kustutab konteineri

sudo docker image list – näitab arvutis olevate image’te nimekirja
sudo docker image rm <imageId> – kustutab image

Kui mingi asjaga tekib raskuseid, siis Google otsing ja Digital Oceani juhendid aitavad enamasti alati.

13. Jun 2021 |

Plans for summer

At the moment it is exams period going on. I am quite anxious because of that, to be honest. But still already thinking about summer projects.

  1. I would like to rebuild this quick throwup of eestiblogid.eu project using Rest API architecture, React front-end, maybe some basic admin panel for posts management, statistics board and recommendations. Also, the algorithm for checking already existing posts needs improvement (at the moment duplication check takes place in database :D). It will probably stay as php project.
  2. Work on battleship game in C# for the C# course I need to retake in the autumn.
  3. Get better in bjj. I already joined a beginners course here. Feel free to join whenever you like (you can ignore all the dates, invoice is updated accordingly).
  4. Most of the time (every day), most important project this summer is an internship as .NET developer.

And if there is any time left then I would like to walk through the Java web applications course coming in autumn.

8. Jun 2021 |

IADB IT-süsteemide arendus – 4. semestri lõpp

Täna (02.06.2021) oli mul selle semestri viimane asi teha ehk JavaScripti eksami praktiline ülesanne.

Peaks tegema kiire kokkuvõtte enne kui asjad ununema hakkavad. Järgemööda täiendan, nii kuidas asjad meenuvad. Sel semestril sai tehtud 4 ainet. 2 neist kohustuslikud, 2 valikained. Kokku 24 EAPd.

Ütleme nii, et nii palju tööd ma ei ole vist kunagi teinud kui sel semestril. Selle hea illustratsioon on mu kooli Gitlabi aktiivuse punktistik.

Minu gitlab.cs.ttu.ee aktiivsus 2. kursuse sügissemester vs kevadsemester.

Ehk siis sisuliselt iga päev tegelesin asjaga. Mai alguse auk oli ilmselt see aeg, kui ma koroonat põdesin, mistõttu jäi 3 päeva pausi sisse 🙂

Tõe huvides peab ütlema, et Gitlab oli sel semestril kasutuses kahe aine jaoks (hajusüsteemid ja JavaScript). Eelmisel semestril tegin samuti palju tööd, kuid siis oli kooli Gitlab kasutusel ainult C# jaoks. Kaks teist ainet tuli commitida Bitbucketisse.

Continue reading “IADB IT-süsteemide arendus – 4. semestri lõpp”

26. May 2021 |

Naljakas seik eilsest

Võibolla mitte väga naljakas aga natuke võibolla on ka.

Kaitsesin eile õhtul üht kodutööd. Pabistasin väga kõvasti, nagu ikka. Käed värisesid nii hullult, et vajutasin vahepeal hiirega asjadest mööda ja siis avanesid hoopis mingid valed asjad 😀

Kaitsmise ajal ma tahtsin, et Teams töötaks normaalselt (sest kaitsmine oli Teamsis), webcam ja bluetooth töötaks normaalselt (et kõrvaklappe saaks kasutada). Seega, pidin kasutama Windowsi. Mul dual-boot masin, okei, saab küll. Tulemus oli muidugi see, et ma kaitsmise ajal olin täiesti lost ja abitu kohati.

Kuna ma progen Linuxis, siis ma polnud väga kindel, mis mu arvutis Windowsi poolel üldse toimub. Õnneks programmid (VSC ja Rider) olid installitud, uuendatud ja olemas. Dotneti versiooni jõudsin ka kiirelt enne ära uuendada.

Siis oli vaja repod gitist alla tõmmata. Windowsis mul on alati veits segadus, et kuidas commandline käib, mistõttu eelistan WSLi kasutada terminalis, et kõik oleks nagu Linuxis. OK, see git clone oli kõvasti aeglasem ja veidramini käituv kui Linuxi poolel. Omaette lugu on see, et ma tegelikult ei saa aru, mis giti sees toimub, kui seda kasutada vaheldumisi Windowsi terminalis ja WSLis. Ühesõnaga, ei soovita.

Aga noh, sain asjad kätte. Siis oli vaja midagi käivitada ja noh, muidugi npm install vaja (sest värske clone ja node module’id puudu). No ja see võttis nii kaua nagu ta Linuxis mitte kunagi pole võtnud 😀 Vaatad siis juhtmilt seda progress bar’i ja teed aega parajaks. Õnneks sain seda aega kasutada selleks, et chatist leida elukaaslasele saadetud ühe varasema kodutöö deploy link (Javascriptis kirjutatud mäng, kust part ujub jões). Siis npm start ja mul ei tulnud meelde, mis porti React avaneb (sest Vue3, React, Aurelia2 avanevad kõik erinevale pordile). Mul arendusbrauser on Linuxis Edge ja seal on kõik bookmarkitud.

Ühesõnaga, kokku oli selline naljakas abitus ja kadunud olek kogu aja. Selgitasin ka õppejõule, et ma tegelt oskan arvutit kasutada küll 😀

2. Mar 2021 |

Õppimisest – õppematerjalid ja kodus õppimine

Koolis ei peaks olema ühtegi PowerPointi.

Õppematerjalid – kirjalikud

Kõikide ainete õppematerjalid PEAKSID olema sellised nagu Bootstrapi dokumentatsioon. Pythoni õppematerjal täpselt nii ongi. Koolis ega ülikoolis ei peaks olema mitte ühtegi PowerPointi slideshow’d. Hetkel üsna suur osa ajast kulub sellele, et ma vormistan kõik slaidid palju kompaktsemateks ja paremini loetavateks Markdowni failideks. Kui vaja, siis saab ekraanil seda dokumenti kerida. Ma olen üsna kindel, et tudengitel ei ole ootust slaidide järgi vaid info järgi. Sel semestril on mõne aine slaidid ka täielik rongiõnnetus 😀

Vaata ka: Koolis käimine ja keskkond

Mõelge, kui kogu õpikukirjastuse tööstus disruptida ja algkoolist alates kõik füüsika, matemaatika ja keemia õppematerjalid ja ülesanded oleks vormistatud korralikult ja ligipääsetavalt sellises dokumentatsiooni formaadis + alati ligipääsetavalt (ja seadmesõbralikult!) oleks Youtube’is loenguvideod. Ei oleks mingit õpikute tassimist, laenutamist, ostmist vms. Üks korralik repo, kõik muudatused läbi pull requestide. Võimalik, et koolilastel (ja nende vanematel) ei ole ootust õpikute järgi, vaid ligipääsetava info järgi.

Õpilased saaksid raskusastme järgi ülesandeid ette võtta (vajadusel lahendusega), õpetajad üle ülesannete kogu vastava raskusastmega kontrolltöid automaatselt genereerida jne. Koolis meil kogu aeg räägitakse, et kui sulle tundub, et kirjutad sama (või väga sarnast) koodi juba mitmendat korda, siis mõtle võimalusele teha üldisem lahendus (abstraktsioon) 🙂

Õppematerjalid – videod

Pean tunnistama, et TalTechis on kõik 5+ videote osas. Echo360’st  (mis on halb) saab videod arvutisse salvestada ja ümber laadida Youtube’i. Aga, tore oleks, kui timestamp’itud loenguvideod oleks kohe seal 🙂 Näiteks nii nagu minu reedeste loengute playlist.

Kuidas ma kodus õpin

Elu on vahepeal edasi läinud. Mul on nüüd pidevas kasutuses 2 arvutit ja kaks 24″ monitori. Kohe selgitan.

Minu töölaud. Märts 2021. Korraga on enamasti kasutuses kaks arvutit, kummagi küljes 24″ monitor. Telefonis on lahti Focusmeter ja Toggl rakendused (loe siit). Telefoni kõrval on tennise käepael, mida kasutan selleks, et hiire käe ranne ei valutaks. See viltune juhtme otsas rippuv asi arvuti all  (paremal) on Sandisk Extreme Portable 1TB SSD (link), et Win10 ja Ubuntu vahet toimetades oleks nt loenguslaidid jms olemas mõlemas.

1. monitoril (pildil vasakul)

Loenguvideo täisekraanil ja seda mängib minu vana arvuti (Dell XPS 13, mille ostsin 2011). Video jookseb eranditult Youtube’ist, sest seal on klaviatuuri otseteed. Paus, kiiruse muutmine, tagasikerimine, timestampide tegemine – kõik funktsionaalsused on olemas. Lisaks tegin JavaScriptis bookmarkidena (juhend siin) kuni 4x kiirendusega vaatamise.

Echo360 laguneb aktiivse kasutuse ajal kohe ära – see tähendab, et edasi-tagasi kerides kaob mingil hetkel heli ära (või läheb pildiga nihkesse) või kiilub üldse kõik kinni (vajab refreshi). Kiiruse muutmine on menüüde sisse peidetud (otseteid ei ole). Kiiruse muutmist on päriselt VAJA, sest:

  • kui on vaja tähelepanelikult konspekteerida, siis on hea kiiresti näiteks 0.75x kiiruse peale lülitada.
  • kui on mingi osa, mida juba valdad või kus õppejõud jääb mingit oma lugu rääkima, saad 4x kiirendusega sellest üle minna. 2x kiirus jääb mõne õppejõu puhul ka väheseks, sest kõne on lihtsalt meeletult aeglane 😀

Timestampimist ja kommentaare Echo360’s ei ole. Aga peatükkide ja teemade sisu kiiremaks leidmiseks on sellest väga abi (näiteks selliselt).

2. monitoril

Tavaliselt IDE, kus on avatud programm ja konspekt (Markdowni dokument). Lisaks loengu slaidid ja Youtube’i video muutmise aken, kuhu kirjutan timestamp’e.

Ma ausõna ei kujuta ette, kuidas peaks päriselt toimival koduõppel toimetama mõni puudust kannatav mitmelapseline pere. Ma ei taha minna ühtegi keskkonda ega pikalt viibida üheski keskkonnas, kus mul selliseid tingimusi töötamiseks ei ole. Ja ma teadvustan endale täielikult, kui priviligeeritud ma olen.

9. Feb 2021 |

Notes for myself: Videos of lectures – how I watch

On fridays I have up to 9 hours of lecture videos to watch. It is split into 3 x 3h videos. Each “video” on Echo360 is actually 3 files: audio file, video of computer screen (presentation) and view from camera to blackboard.

I download screen and audio files from Echo. In order to get video with audio as one file I join them with:

ffmpeg -i video.m4s -i audio.m4s -c:v copy -c:a aac output.mp4

As 3 videos per every friday over 16 weeks would make 48 videos I try to join videos of every week by using:

ffmpeg -f concat -safe 0 -i list.txt -c copy output.mp4

So I have 16 videos on my Youtube for these subjects. List.txt is list of files structured like:

file '00-video.mp4'
file '01-video.mp4'

In order to skim through the video first I use opportunity to speed up the video. I mark down important parts and the work through the material.

Trim 

ffmpeg -ss 00:01:00 -i input.mp4 -to 00:02:00 -c copy output.mp4
8. Feb 2021 |

Youtube videos faster than 2x

Just use this javascript in brownser console (open with F12 and choose console). You can replace this 2.75 in the end with what you want. I use it to watch 3h of lecture in one hour because estonians simply talk slowly 🙂

document.querySelectorAll('video').forEach(v => v.playbackRate = 2.75)

For convenient use you can save it as a bookmark and it should change the speed of the video:

javascript:document.querySelectorAll('video').forEach(v => v.playbackRate = 2.75)

13. Jan 2021 |

Koolis käimine ja keskkond

Selle artikli mõjul tekkis mõte vaadata, missugune on olnud umbes 10 aasta jooksul muutus keskkonnajäljes, mida õpingud tekitavad.

Tartu Ülikoolis (2007-2012) käies oli tunne, et ülikool on üks suur PowerPoint, kuna see oli peamine õppematerjali formaat. Väljaprinditud slaidid käsikirjaliste märkmete ja kommentaaridega. Lisaks õpikud. Nendega sahistasin efektiivselt TÜ raamatukogus. Ühtegi energiatarbijat ei olnud. Arvutiga töötamine toimus kodus suure arvutiga ja seisnes peamiselt konspekti trükkimises.

Sülearvutit ei olnud mitte kellelgi. Alles 5. kursusel ilmusid esimesed sülearvutid (1-2, mitte rohkem) auditooriumisse. Ka nutitelefone ei olnud kellelgi (enda esimese sain 5. kursusel – Sony Xperia Neo). Seega tähelepanu hajumisega oli muret palju vähem kui praegu. Alguses ei olnud Facebooki ka 🙂

Koolis käisin kõik 5 aastat jalgrattaga – 3 km kooli ja sama palju tagasi. Ainult kõige suurema lumega, kui üldse sõita ei saanud, käisin bussiga aga need olid mõned üksikud korrad.

Loeksin selle koolis käimise keskkonnajälje väga minimaalseks.

EBSis (2016-2019) käies tekitasin tõenäoliselt kõige suurema jalajälje autoga (Subary Legacy, nelivedu, 110kW, 1994 cm3). Nimelt, kuna kool algas kell 18 (kui õigesti mäletan) ja kool asus Tallinna südalinnas, siis pidin kuni 4x nädalas sukelduma tipptunni-liiklusesse 🙂 Kusjuures, teepikkus kontorist kooli oli samuti 3 km nagu TÜ aegadel.

Suurt slaidide printimist ei mäleta aga midagi ilmselt sai trükitud. Osades ainetes oli oluline käsikirjaline konspekt (nt mikroökonoomika), sülearvutis konspekteerimist oli küll. Kui autot mitte arvestada, siis keskkonnajälg TÜga üsna sarnane.

TalTechis on kogu õppe keskkonnajälg varasemaga maksimaalne. Ilma arvutita inimest auditooriumis naljalt ei ole. Paljud loengud on videona ka olemas (mis on väga tore) ja videost on kujunenud peamine õppematerjal, mis omakorda on küllalt ajakulukas formaat. Konspekt või õpik* oleks ehk palju kiiremini tarbitav 🙂 Aga kuna Echo360 keskkond on ebamugav vaadata, siis olen kõik videod endale omakorda Youtube’i ümber tõstnud. See tähendab, et andmeid on nüüd veel mitu korda rohkem, mida serverid peavad hoidma ja serveerima. Kui kõik tundengid sama teevad, siis tuleb sellest päris õudus kokku.

Ma olen gigabaitide viisi videosid striiminud, alla laadinud, kokku liiminud, üles laadinud ja uuesti striiminud. Ma arvan, et see keskkonnajälg on üsna suur 😀 Sorry.

12. Jan 2021 |

IADB IT-süsteemide arendus – 3. semestri lõpp

Täna (11.01.2021) oli  mul selle semestri viimane eksam. Üldine tunne on selline nagu semester oleks olnud ainult rongiõnnetus aga kui lähemalt vaadata, siis ei olnud midagi hullu.

Tehtud sai kolm kohustuslikku ainet. Ühes kohustuslikus aines ebaõnnestusin ja lisaks tegin ühe kohustusliku aine VÕTAga. Seega selle semestri tulemuseks on 18 EAP + 6 EAP VÕTAga = 24 EAP. Loodetavasti ei pea ainepunktide eest veel maksma hakkama 🙂

Koguarvestuses 78/108 EAP kohustuslikest ainetest on praeguseks tehtud.

Continue reading “IADB IT-süsteemide arendus – 3. semestri lõpp”