sunnuntai 28. kesäkuuta 2020

Corewar päivä

Hackerrank

Hackerrank sivusto ehdotti kirjastolainauksen myöhästymissakon laskemista. Tutorialissa puhuttiin unit testauksesta, se meni vähän ohi kun koulussa teen testit bash shell scripteillä. C:llä en unit testejä oo rakentanu. En osaa heti sanoa onko hyvä ajatus. Tarvii pohtia.

Koulussa

Putsasin aluksi levytilaa. 5Gi on aika vähän. Riittää kun ei säilytä mitään ylimääräistä. Corewar projektissa keskityin cycles funktion tekemiseen. Tarkoittaa sitä että jokainen asa käsky (käskyjä ne kait on. Vai olisko instruction tai operation code) kuluttaa tietyn määrän kellojaksoja.
Tutkin valmista toteutusta (binääri, C koodia siitä ei ole saatavilla) miten cyclet toimii. Alla on taulukko miten corewar projektissa määritellyt asa käskyt syö kellojaksoja. live käsky kertoo ”cpu”:lle että koodi on hengissä. Tarkoittaa sitä että asa koodissa pitää olla live käsky riittävän usein ettei ”cpu” ajattele koodin kuolleen. Jos ”cpu” niin ajatteleen niin sota on hävitty.
Tein pari asa ohjelmaa ymmärtääkseni miten cycle funktion pitää toimia.
Alla kuva yhdestä niistä. Siinä ohjelma on luupissa live ja zjmp komennoissa. Elikkä varmistetaan että live komentoa tehdään riittävän usein.



lauantai 27. kesäkuuta 2020

Prime number ja big-O

Kotipäivä.

Hackerrank sivusto ehdottaa päivittäin jotain koodaustehtävää. Aiheena on big-O ja siihen liittyen prime numbers (alkuluvut). Tehtävänä on selvittää, onko annettu luku alkuluku. Big-O on kaava, jonka avulla lasketaan funktion kuluttama aika. Toteutin prime number funktion kolmella eri tavalla (tai jos rehellisiä ollaan niin kahdella). Kolmas jäi tekemättä kun en ole tehnyt neliöjuuri funktiota kirjastooni. Ihan hyvä harjoitus liittyen koodin nopeuden maksimoimiseen.
Huomenna ajattelin fokusoida corewar prjoektiin. Tässä linkki corewar projektin yleiseen kuvaukseen. Lyhyesti sanottuna projektissa tehdään assembler --> konekoodi kääntäjä ja toisena osana tehdään virtual machine, jonka tehtävänä on ajaa konekoodille käännettyä ohjelmaa. Projekti on kolmen henkilön tiimiprojekti.

perjantai 26. kesäkuuta 2020

Lem-in projekti pakettiin


hackerrank.com sivusto



Aamulla hakkasin hackerrank.com sivuston koodiharjoituksia. Sain vinkin yhdeltä opiskelijalta liittyen hackerrank sivustoon. Oon tykännyt sivuston harjoituksista, siksi siellä harjoittelen päivittäin. Oli jäänyt muutama päivä väliin niin tein kolme tehtävää. Pieniä tehtäviä ovat. Kaikki liittyivät linked listan käsittelyyn. Linked list on kyllä ihan hanskassa mutta kun mennään printtaamaan asioita eri järjestyksessä kuten layereittain niin hetki tarvii miettiä miten tehdä. Toteutin layer levelin printtauksen jono metodilla. Jonon tein kahdella stackillä. Ihan kiva toteutustapa. Samaten weigthin laskeminen vaati hiukkasen pohdintaa.

Koulussa

Kouluun lähdin vasta joskus kahden jälkeen. Siellä varmistelin että mun lem-in projekti on riittävän nopea ja että riittävän hyvät polut löytyy.

Muurahaiset jonossa

Alla on piirrustuksia joita piirtelin kun pohdin muurahaisten kuljettamiseks (lem-in projekti siis)i start huoneesta end huoneeseen. Tehtävänä on kuljettaa muurahaiset mahdollisimman vähillä siirroille siten että alku ja loppuhuonetta lukuunottamatta huoneessa saa olla vain yks murkku kerrallaan.
Kuvissa liikutaan vasemmalta oikealle. Haasteen projektissa tuo se että pienellä määrällä murkkuja 1-3 yhden lyhimmän polun valinta on paras. Kun murkkuja tulee lisää kannattaa valita yhden lyhimmän sijaan kaksi toiseksi lyhintä. Syy valintaan on se että jos lyhin reitti blokkaa kaks seuraavaksi lyhintä. Esim alimmassa kuvassa sininen reitti toimii muutamalle murkkulle. Jos on lisää murkkuja niin paras valinta vihreät polut. Jos murkkuja on kauhia kasa, paras valinta on vihreät plus monivärinen polku.







torstai 25. kesäkuuta 2020

Takas kouluun

Nyt on semmonen fiilis että koulunkäynnin (vyysisen) vois aloottaa ihan säännöllisesti. En lähäre nyt siihen keskusteluun että voiko opiskella etänä. Eilen olin kolmannen kerran koulussa kesäkuun alusta lukien. Sitä edeltävä kerta oli maaliskuun 13. Semmonen on fiilis että nyt rupiaa taas tapahtumahan, elikkä projektit alakaa etenemähän. Eilinen oli siinä miäles hyvä esimerkki. Päätin laittaa lem-in projektin (palaan retaleihin joskus myähemmin) evaluoitavaksi. Eka evaluointi meni läpi 118 (max 125) pistettä. Päätin piänen pohoriskelun jäläkehen givupata projektin. Siitä seurasi 7:n päivän cooldown. Syy luovuttamiseen (pohojalaasella ei oo tapana luavuttaa) liittyi siihen että evaluoinnin aikana löytyi vika, jonka itse rankkasin erittäin pahaksi. En olisi voinu elää sen kanssa, siksi päätin korjata sen (korjasin eilen ja tänään). Elikkä seuraavat evaluoinnit alkaa viikon päästä. Tämä päivä on menny toisten projekteja evaluoidessa. Kivaa hommaa jota tehdään etänä vaikka koulussa oonkin. Teamviewer on ihan toimiva laite siihen tarkoitukseen.
Sain päivän pillalle (jos rasat pärkyää niin sitte on oikiasti huano päivä) kun yritin tehdä parannuksia lem-in (muurahaisten kuljetus) projektiin. Polkujen selektointi metodi (algoritmi) jonka ajattelin olevan parempi ei sitten jostain syystä ollutkaan parempi. Päivä päättyi ”git checkout .” komentoon.


keskiviikko 24. kesäkuuta 2020

Korona-aika

Opiskelun intensiteetti laski huomattavasti. Ei ollu mun vika, siis se korona. Koulussa peer2peer oppiminen on vahva toimintatapa.
Siksi koulun sulkeminen 13.3 -- 31.5 väliseksi ajaksi oli lievä katastrofi.

Koulun ilmaisi selkeästi että lockdown aikana ei edellytetä etenemistä opinnoissa. Opiskelu oli kyllä hyvin mahdollista kun tein ubuntu18 serverin Amazonin pilveen ja lainasin koululta USA näppiksen (siinä suluut oikas kohoras). Tuli miälehen että minkähänlaanen olis pohojalaanen näppäämistö johona olis tuloo, menöö ja notta ristus nappulat oikioos kohoris. Etenemisen mun kohdalta pysäytti se että projekteja ei voinut evaluoida joten valmiiksi niitä ei lockdownin aikana saanut. Lockdownin aikana käytin paljon aikaa maximum flow algoritmien oppimiseen.
Algoritmit liittyivät suoraan lem-in projektiin, joka mulla oli menossa.
Kahden muun opiskelijan kanssa saimme myös corewar (tarinaa siitä myöhemmin) ryhmäprojektin liikkeelle.

Alla on kuva jossa eteneminen graafisesti kuvattuna. Tekemättä on lem_in projekti (Evaluointeja vaille valmis). Viimeinen projekti on corewar team projekti, jonka aloitimme lockdownin aikana. Elikkä ajallisesti etenen hyvässä vauhdissa. Syksyllä on opiskeluun liittyvä the first internship, joka on kuuden kuukauden mittainen. Sen teen toisen opiskelijan kanssa Ericsson nimisessä yrityksessä.

l