24. Jun 2023 |

Ülikool lõpetatud

Ma ei ole siin pikalt koolist kirjutanud aga kool on saanud läbi. Sügissemestril (01.2023) kaitsesin lõputöö ja üleeile (22.06.23) oli lõpuaktus.

Arendaja töökogemuse sain kahes teenusettevõttes (Net Group, Lumav Commerce) aga leidsin, et teenusettevõttes arendajana töötamine mulle ei sobi. Toote-ettevõttes töötamise kogemust mul ei ole. Hetkel toimetan enda projektidega (mõned e-poed, üks API teenus, mõned hobiprojektid).

13. Jun 2022 |

IADB IT-süsteemide arendus – 6. semester

Kuues ehk viimane semester algas sellega, et oli vaja leida endale praktikakoht. Kuuenda semestri peakski moodustama erialapraktika (24 EAP) ja lõputöö (6 EAP). Kuna ma teadsin, mida ma tahaksin teha – PHP, e-kaubanduse ja e-äri valdkond, mõnes keerukamas raamistikus – siis kandideerisin praktikale Lumavisse. See oli minu esimene valik ja sinna ka sain. Lumavi kõrval oli siiski veel paar ettevõtet varuks.

Praktika algas minu jaoks 31. jaanuaril ja lõppes 27. mail. Praktika oli päris intensiivne õppimine ja tegi kiiresti selgeks, et 2.5 aastat ei anna tegelikult kuigi palju oskuseid ega kuigi palju arusaamist. Seega õppida on veel kõvasti.

Nüüd on teha jäänud veel vaid lõputöö, mille plaanin teha sügissemestril. Ei tahaks, et see kuidagi venima jääks.

14. Jan 2022 |

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

Lõputöö ja ettevõttepraktika on veel jäänud.

5. semester on nüüd lõppenud. Tundub uskumatu aga kooli lõpetamiseks on teha veel ainult Ettevõttepraktika (ICY0017, 24 EAP) ja lõputöö (6 EAP). Praktikakohta mul veel ei ole nagu siit võib näha aga otsin.

Sel semestril sai tehtud 7 ainet. 4 neist kohustuslikud, 3 valikained. Kokku 36 EAPd. Alljärgnevalt tehtud ained arvestuse saamise järjekorras.

Valikust võib aru saada, et valikuga on tegelikult üsna kitsas käes ja arvestades minu huvisid – teha valmis midagi tehnilist, praktilist ja töötavat – on vaba ja valikainete osas… no ei olegi ju midagi.

Alljärgnevalt kasutan aegajalt sõna “moodulisse”, mis tähendab, et õppekava on jaotatud mooduliteks. Kooli lõpetamiseks peab saama kõikides moodulites nõutud punktid täis ja siis validki lihtsalt midagi, mis seal moodulis on parajasti pakkumisel.

Füüsika mittefüüsikutele (NSO0160, 3 EAP, kohustuslik)

Õppejõud emeriitprofessor Sirje Keevallik. Arvestuse saamiseks on vaja teha kaks kontrolltööd, mille tulemuste summa annaks > 50%. Kontrolltööd sisaldavad (vähem) ülesannete lahendamist ja (rohkem) teooriat. Kuigi füüsika võib tunduda hirmutav, siis tegelikult ei ole seda ainet põhjust karta.

Kui kontrolltööd ebaõnnestuvad, siis oli lisaks veel eksami võimalus.

Veebihalduskeskkonnad (ICD0020, 6 EAP, valikaine)

Kuna mul oli vaja valikainete moodulisse millegi eest 6 EAP saada, siis sügissemestrit arvestades olin kahe vahel – inglise keel või see aine. Jäin selle juurde.

Õppejõud Meelis Antoi, kes ühtlasi on IADB õppekava programmijuht. Minu jaoks oli see ilmselt kõige lihtsam aine seni. Sisuks oli teha localhostis ühesuguse välimusega veebileht Drupalis, Joomlas ja WordPressis. Seejärel anti kooli poolt igale tudengile üks VPS, kuhu oli installitud Debian 9 ning omaltpoolt oli vaja installida php, mysql, apache ja enda localhostis valmistatud WordPressi leht sinna ümber tõsta. Pärast “läbijalutuse” formaadis tööde ettenäitamist  oligi arvestus käes.

VPSi andmine kooli poolt oli muidugi tore üllatus. Ma arvan, et mingi pisikese Ubuntuga purgi, mis oleks avalik, võiks kõik tudengid 1. semestri esimesel päeval saada endale haldamiseks 🙂

Automaattestimine (ICD0004, 3 EAP, programmerimise moodul)

Arvestatud sain 9. detsembril. Tegemis on valikainega programmeerimise moodulis. Õppejõud German Mumma. Väga kasulik aine ja hea õppejõud, nii et kindlasti soovitan. Töökeel on Java ning õppetöö väga praktiline – ehk korrektsel viisil testide kirjutamine + giti korrektne kasutamine. Teemadeks TDD, unit testing, integration testing, UI testing (Selenide). Testmise õppimiseks kasutasime Restful-booker API, OpenWeatherMap API, The Internet UI vaateid.

Koormustestimist ja performance testimist kahjuks ainesse ei mahtunud aga see huvitanuks mind ka.

Pisut raskemaks muutis aine asjaolu, et mul on Maveniga vähe kokkupuudet (nt konfi kirjutamine ja sõltuvuste valimine/haldamine) ja Javat seni üldse suhteliselt vähe kirjutanud aga sai hakkama ikka. Toetava ainena Märt Kalmo ainele oli sellest kindlasti palju abi.

Keskkonnakaitse ja säästev areng (YTG0060, 3 EAP, kohustuslik)

Õppejõud Üllar Rammul. See on õppekavas kohustuslik aine, mis on erialast tõesti täiesti eemal (ei ole kuidagi IT) aga sellegipoolest ma arvan, et see on täiesti õige aine täiesti õigel kohal. Lisaks suurepärane õppejõud ja väga hästi läbi viidud kursus.

Lai silmaring on hea ja see on puhtalt silmaringi aine.

Programmeerimine C# keeles (ICD0008, 6 EAP, kohustuslik)

Õppejõud Andres Käver. Arvestatud 22. detsembril. Millegipärast on see jätkuvalt väga krõbe aine, kuigi C# olen praeguseks juba päris palju kirjutanud. Ma ei ole lõpuni aru saanud, mis selle aine nii keeruliseks teeb, et nii vähe inimesi (41%) selle aine sooritatud saab.

Kõik, mida oli vaja teha aine läbimiseks, on siin lehel kirjas: 5 kodutööd ja eksam (1h teooriat, kuni 11h ülesande jaoks).

Veebirakendused Java baasil (ICD0011, 6 EAP, kohustuslik)

Õppejõud Märt Kalmo. Arvestatud 7. jaanuaril. Õppeaine sisuks on Java võimalusi ja tehnoloogiaid kasutades pisikeste back-end funktsionaalsuste teostamine. Rakenduseks oli pisike mõne tabeliga andmebaas, millega sai API endpointide kaudu suhelda. Front-endi ei teinud. Tehnoloogiad millega tutvuti: Servlet, Jdbc, PostgreSql, HsqlDb, Gradle, Spring Core,  Spring Mvc, JSR 303, JPA, Spring Security.

Mulle väga meeldib Märt Kalmo õpetamise stiil ja õppetöö korraldus: loeng → praktiline harjutus → iseseisev hindeline ülesanne (koos avatud testidega, mida saab lahendamise ajal kasutada) → vajadusel praktikum/konsultatsioon, kui iseseisva tööga kuskil tõrkeid tekib.

Samuti meeldib mulle väga tema lähenemine selles osas, et tähtis ei ole, et sa oskad mingit asja mingit moodi teha, vaid et sa saad aru (ja oskad selgitada), miks mingit asja üht või teist viisi tehakse (või ei ole hea mõte teha). Eesmärk on saada aru, mis on mingi asja mõte. Kui see lähenemine sobib, siis tema ained tõenäoliselt meeldivad.

Aga… edasises elus üldiselt on selle tulemusena raskem, kui saad aru, kui vähe inimesed üldiselt nii mõtlevad – et miks nad mingeid asju teevad või mis on nende asjade tegemise mõte 🙂

ICY0012 Infosüsteemide analüüs ja projekteerimine (6 EAP, toetav)

Kuna toetavate ainete moodulisse oli millegi eest 6 EAP vaja saada, siis jäin selle aine juurde. Marko soovitas ka seda ainet. Õppejõud on hinnatud õppejõud Nadežda “Nadya” Furs, keda väga palju kiidetakse. Semestri jooksul oli vaja esitleda kaks grupitööd – üks traditsioonilise ja teine agiilse osa kohta – ja see oligi kõik. Aine teemades oli päris suur ülekate Paul Leisi “Tarkvaratehnika” ainega, mida võtsin 4. semestril.

8. Jan 2022 |

How to prepare for the TestDome php assessment – my mistakes and tips

3rd year IT student in search of an internship

5th semester at school is pretty much over by now. Only one small assignment to do on upcoming Tuesday Thursday. Hopefully, I will write about the semester at some point.

On Monday I am going to do PHP tests for the internship that I applied for. I am preparing for it at the moment by solving Testdome PHP exercises and PHP interview questions. If I succeed it would be a huge step for me to become a sufficient Magento developer one day.

Continue reading “How to prepare for the TestDome php assessment – my mistakes and tips”

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.