Kategoria: itsensä kehittäminen

Näkyvyyden lisääminen

Haluan kertoa muille mitä teen, millä työkaluilla ja samalla ajattelin löytää mahdollisuuden oppia tekemisen kautta. Motivaattoriksi valitsin tiedon julkaisemisen ja hyvien tiedonmurusten edelleen jakamisen.

Työpaikalla pidetty tiivis somevaikuttamisen kurssi antoi alkusysäyksen. Tajusin kuinka ammatilliset someprofiilini LinkedInissä ja Twitterissä viistivät pohjamutia. LinkedInissä olin sentään käynyt lukemassa kaverien postauksia ja joskus jakanut niitä, silti tulokset olivat … vähemmän mairittelevia.

Kehityksen seurantaa varten nappasin talteen maata viistävät tilastolukemat molemmista.

LinkedIn, 49/100 SSI

2018_09_20_LinkedIn_SSI

Twitter näytti ehkä kauniimmalta, koska olin postannut yhden hyvän työkaverin twiitin.

2018_09_20_twitter_statistics
Näistä lukemista pääsee mukavasti ponnistamaan ylöspäin. Lukuja tärkeämpänä pidän oman osaamiseni kehittymistä ja tiedon jakamista.

Mainokset

Microsoftin TechDays 2018

Miten tulevaisuuden sovelluskehityksessä hyödynnetään nykyisin käytössä olevia työkaluja? 

Maaliskuussa järjestetyssä TechDays 2018 -tapahtumassa tarjottiin vastauksia erityisesti tähän kysymykseen. Tilaisuudessa kuulin vakiintuneista kirjastoista ja niiden seuraavien versioiden herkullisista sisällöistä. Uusimmissa päristimistä löytyy herkullisia mahdollisuuksia ja lastentauteja, alpha-kuumetta.

Tilaisuus tuntui rehelliseltä menolta, asiantuntijalta asiantuntijalle. Kolme  teemaa nousi ylitse muiden: Tekoäly, tietoturva ja pilvipalvelut.

Jyväskylä1-1024x693

KONEÄLYN KÄYTTÄMINEN

Tekoäly nostettiin esiin kahdesta suunnasta: machine learning eli tilastotieteellinen data-analytiikka ja AI.

Machine learning on jo nyt todellisuutta, kun valmiilla työkalulla pystyy helposti analysoimaan kerättyä dataa ja sovittamaan sitä erilaisiin laskentamalleihin. Esimerkkiesityksessä arvioitiin paljonko maksaisi Ruotsissa 150 m2 asunto tietyllä alueella, kun tiedetään suurempien ja pienempien asuntojen arvo. Näytti helppokäyttöiseltä tilastotieteilijän työkalulta.

Toiselta suunnalta nousee AI. Se käsittelee tietokoneen mahdollisuutta oppia ja tunnistaa erilaisia malleja, kuten kuvien sisältöä, puhetta, vastata yksinkertaisiin kysymyksiin tai ryhmitellä tietoa. Jep, nämä kulkevat nimelläCognitive services. AI-demot näyttivät samalta mitä mikkisofta mainostaa aina. Kuvien tunnistaminen on jo tehty, siis kuvan hymyilyn aste, muut tunteet, sukupuoli, ikä, silmien väri ym. tulevat suoraan analytiikan jsonista, jos sellaista kaipaa.

Se on selvää, että kerättävän datan määrä kasvaa jatkuvasti. Tiedemiehet toivat meille tera- ja petabyten lisäksi exabyten, zettabyten ja yottabyten. Ihmiset eivät pysty käsittelemään näin valtavia datamääriä. Tekoälyn laskentavoima tarjoaa ratkaisua vastausten louhintaan.

Yksi keynote-puhuja kertoi visionsa tulevaisuudesta, jolloin suurin osa sovelluskehittäjistä tulee kirjoittamaan tekoälyyn liittyvää koodia, kymmenen vuoden kuluttua. Muut kuulemma putoavat markkinoilta. Turhauttavaa kuulla pelolla markkinoivia puheita, koska innovaatiot syntyvät kuitenkin innostuksesta ja parhaat kokemukset ovat seurausta positiivisesta tunnelmasta.

Periaatteessa ymmärrän trendin, erikoistutaan syvemmän osaamisen puolelle ja käytetään mahdollisimman paljon valmiita työkalupaketteja. Toisaalta löytyy paljon työpaikkoja, jotka painottuvat alakohtaiseen osaamiseen, mutta eivät vaadi syvällistä teknistä taitoa.

TIETOTURVAKATSAUS

Asiantuntijat Paula Januszkiewicz ja Sami Laiho pitivät jäätävän hyvät esitykset tietoturvasta. Januszkiewiczin kertoi, että heidän yrityksensä käyttämät kräkkäystyökalut ovat kaikkien saatavilla. Laiho puolestaan listasi yksinkertaisia keinoja, joilla pystytään nostamaan oman tietokoneen tietoturvan tasoa.

Molempien esityksistä kävi ilmi, että hakkerit ovat ryhdistäytyneet. Yritysten palvelinten hakkerointi tapahtuu paljon ammattimaisemmin kuin aiemmin. Heikoin lenkki voi löytyä useasta paikasta, joko inhimillisestä piirteestä tai laiskuudesta luoda yrityksen verkosta ja jokaisesta koneesta tietoturvallinen.

Tietoturvaan liittyvä liiketoiminta tulee selkeästi lisääntymään. Tämä on  ymmärrettävää, koska järjestelmät käyttävät vain muutamaa alustaa ja alustoihin liittyvää tietoa saa helposti netistä. Ymmärryksen kasvaessa tietoa voi käyttää monella tavoin.

Jyväskylä2-1024x529

PALVELUITA PILVEN KAUTTA

Microsoft mainostaa vahvasti palveluitaan sellaisilta tulokulmilta, joita ei löydy kilpailijoilta. Sain kuulla hehkutusta aika paljon parin päivän aikana. Valitettavasti en istunut kuuntelemassa niitä puheita, joissa kritisoitiin Azurea.

Microsoftin palvelut hyppäävät pilveen. Office-perhe pyörii siellä jo. Suurin osa uusista tekniikoista tuntuu tulevan pilvipalveluina. Tekoälypalvelut löytyvät pilvestä. Perinteiset web-softat voi heittää pilveen. Microsoft tarjoaa migraatiotyökalun ja migraation onnistumisen arvioimistyökalun, kun mennään perinteisestä arkkitehtuurista pilveen. Uusia lähtöjäkin esiteltiin, ihan alpha-kamaa ja toivottiin kontribuutiota julkisiin repoihin.

Meille kerrottiin useamman kerran kuinka kannattaa määritellä palvelut pilveen, siten etteivät ne kerrytä turhaan laskutusta. Ruuhkahuippujen aikaan palvelut voidaan skaalata ylöspäin useammalle koneelle, jolla saadaan lisää suorituskykyä palvelemaan pyyntöjä, mutta myös lisää kustannuksia. Kuormitushuipun jälkeen palvelut voidaan skaalata alaspäin, jolloin säästetään kustannuksista.Toki kannattaa myös miettiä miten toteuttaa sovelluksensa pilvessä: virtuaalikoneissa, suoraan palveluina tms. Siis sivuttiin tavanomaista PaaSiin ja SaaSiin liittyvää pohdintaa.

PILVEEN DEVAAMINEN

Pilveen menemisen helppous tuli myös vastaan useampaan kertaan. Tosin pilveen mentäessä ylläpitäjä jää vähän hämäräksi. Periaatteessa devaaja voi tehdä kaiken. Hän päräyttää monitoroinnit pystyyn softan kehityksen oheessa, saa vikatilanteissa viestejä ja normaalitilanteessa analysoi palvelun laadun. Erinomaista tietoa sovelluskehitystä ajatellen, mutta miten ajankäyttö?

Perinteisesti kehittäjät tekevät softan ja ylläpitotiimi jää monitoroimaan sovelluksen vasteaikoja sekä lokeja. DevOps-osaajat tietenkin tunkkaavat monitoroinnit kuntoon ja pistävät CI-putken paikoilleen. Kannattaako pitää erilliset DevOps-kaverit vai tekeekö kehittäjä kaiken? Microsoft tarjosi selkeästi DevOps-tekijöille luentosarjansa, joten toistaiseksi koodaaja pidetään Visual Studion äärellä.

Pilveen siirtymistä helpotetaan. Maakohtaisia rajoitteisiin yritetään vastata luomalla paljon uusia palvelinten sijainteja kartalle. Palvelut tuodaan helposti pilvestä käytettäviksi. Tekemistä yritetään selkeästi siirtää pilveä kohti.

Vanhana koodaajana seison kahden maailman välissä. Ymmärrän täysin vanhat toimijat, jotka haluavat pitää kaikki langat käsissään. He pystyttävät palvelinsaleja, ja on paljon tapauksia, joissa oma palvelinsali on ainoa vaihtoehto. Sen sijaan moni startup, kotiprojekti ja verkkosivuprojekti siirtyy sulavasti pilveen.

TUNNELMAT TAPAHTUMAN JÄLKEEN

Jyväskylä3-1024x751

Tapahtuman aikana tunsin hermoratani sähköistetyksi. Uusia ihania asioita tulee, vanhat ja toimivat tekniikat pyörivät iloisesti pilven nurkalla. Tehokasta, edullista ja kätevää.

Uskon useiden projektien muuttuvan sisällöltään herkullisemmiksi. Pelkkien verkkosivujen tai yksinkertaisten palvelujen tekijät tulevat vähenemään digitalisaation ensimmäisen aallon jälkeen. Työpaikallammekin selvitetään asiakkaan mahdollisuutta viedä palvelunsa pilveen tai tehdä hybridiratkaisu. Mielestäni lisäarvon tuottaminen on tärkeämpää. Miten kerättyä dataa pystytään hyödyntämään ja jatkojalostamaan tekoälyn avulla?

Omalta osaltani luon paremman huomisen koodaamalla.

Olen koodaaja.


Ensijulkaisu tapahtui Goforen blogissa.

Code Wars, mahdollisuus oppia

Tutustuin codewarsiin työkaverini suosituksesta yhtenä syksyisenä päivänä. Hän löysi koodiharjoitussivuston, jossa editoria ja testejä voi ajaa selaimen kautta. Toisin kuin exersim.io tai vastaavissa palveluissa, codewarsilla harjoitteleminen onnistuu ilman kehitysympäristöä.

Harjoitusten tekeminen codewarsissa käy helposti. Harjoitusta kutsutaan nimellä kata.

codewars_kata
Kata eli harjoitus codewars.com:ssa.

 

Harjoituksen tehtävänanto selviää ruudun vasemmalta puolelta. Koodi kirjoitetaan oikeassa yläkulmassa näkyvään koodinäkymään. Kirjoitettu koodi ajetaan ”paikallisia” testejä vastaan Run Examples -painikkeella. Ne löytyvät Example Tests -otsikon alta. Näitä testejä voi myös muokata omien mieltymysten mukaan.

Lopullinen testi ratkaisulle tehdään ajamalla koodi Attempt-painikkeella. Ratkaisun toimivuus testataan yksikkötesteillä, joita ei näytetä käyttäjälle. Vain testien tulos näytetään. Toisinaan testien nimestä voi päätellä mikä testi epäonnistui. Järjestelmä sallii myös satunnaistettujen testien ajamisen, jolloin tehtävän luojan ei tarvitse kirjoittaa kaikkia testitapauksia käsin.

Ratkaistuasi tehtävän, saat vaikeusasteen mukaan tietyn määrän pisteitä. Helpoimmat testit saa ratkaistua muutamassa minuutissa, vaikeampien ratkaiseminen kestää tunteja.

Ratkaistuasi tehtävän, näet muiden vastaukset ja näistä oppii. Vastauksista voi merkata omasta mielestä parhaan ja nokkelan vastauksen. Vastauksista näkee kuinka paljon ohjelmoijien ongelmanratkaisukyky ja API-tuntemus vaihtelee.

codewars_stats
Stats-sivu kertoo mistä olet saanut pisteitä.

 

Olen kerännyt suurimman osan pisteistäni tekemällä harjoituksia. Pisteiden hankkimiseen käytetyt kielet näkyvät oikeasta laidasta ja prosenttiosuus kertoo kuinka paljon pisteitä on kerätty ennen seuraavaa tasoa.

Pisteet päivittyvät muutaman tunnin välein, kun palvelin ajaa ajastetusti pisteiden päivistyskriptit. Itsekin ihmettelin aluksi miksi pisteet päivittyvät viiveellä.

Jos teet vain harjoituksia, pisteillä ei ole merkitystä. Halutessasi voit kirjoittaa harjoituksia muiden ratkaistavaksi tai kääntää niitä kieleltä toiselle. Tällöin korkeampi pistemäärä sallii kevyemmän validointiprosessin ennen kuin kirjoittamasi harjoitus julkaistaan.

Yhteisöllisyyttä yritetään lisätä klaanien avulla. Käyttäjän tiedoissa voi antaa itselleen klaanin. Se on vain merkkijono. Kaikki jotka kirjoittavat saman merkkijonon, tulevat samaan klaaniin.

codewars_klaanit
Klaanit

 

Klaanijärjestelmä ei ehkä ole täydellinen, koska vaihdettuani klaanin, näen edelleen kaikki vanhan klaanini jäsenet.

Codewars on ehdottomasti paras palvelu ohjelmointiharjoitusten tekemiseen. Sen avulla voi ylläpitää kielen osaamista tai opetella uutta kieltä. Toki harjoitusten avulla oppii erityisesti kielen käyttöä, ei niihin liittyvien frameworkkien käyttöä.

Suosittelen kokeilemaan codewarsia, sen avulla voit löytää palon vanhaan rakkaaseen kieleen tai kehittää osaamistasi nykyisen kielen kanssa.

 

 

 

Clojuren opiskeluun vaihtoehtoja

Clojuren ja ClojureScriptin opiskeluun löytyy useita työkaluja, jotka toimivat hyvin. Alkuun voi ottaa maistiaiset kokeilemalla jotain selaimessa pyörivää REPLiä. Sen avulla voi suorittaa suoraan clojurekoodia.

Koodaajan iloksi clojurelle löytyy useita eri kehitysympäristöjä:

Counterclockwise on ilmainen Eclipsen päälle tehty ympäristö.

JetBrains kehitti IntelliJ:n päälle kokonaan oman tuotteen clojurelle. Sen nimi on Cursive. Se näkyi ClojuTRE:n demoissa suosituimpana työkaluna.

Emacsiin saa clojuren pyörimään mainiosti. Käytän sitä itse töissä, koska kokeneemmat kehittäjät osaavat näyttää sillä miten hommat tehdään.

Visual Studioon löytyy vsClojure-lisäosa, jolla pääsee vauhtiin.

Jos haluat opiskella clojurea, voit joko lukea siitä kirjasta, suosittelen Clojure for the brave and true -opusta. Se on kirjoitettu kieli poskessa ja se sisältää hyviä linkkejä lisäopiskelua varten. Aloitin itse sitä kautta.2016-07-19-11-57-22

Ehkä matalin kynnys tulee kuitenkin pyöräyttämällä läpi yksinkertainen hands-on harjoite. Sellainen löytyy try clojuresta. Sen päristely kestää vain 5 minuuttia. Suosittelen lämpimästi. Siinä kerrotaan suoraan mitä pitää kirjoittaa, joten se onnistuu helposti. Toisaalta siinä ei sukelleta kovinkaan syvälle clojuren mahdollisuuksiin.

Omaa osaamista voi vahvistaa ratkomalla koodisokeriongelmia 4Clojuren sivuilla. Kannattaa luoda käyttäjätunnus, niin edistyminen tallentuu. Ratkaisujen löytäminen vaatii rajapintojen tuntemista, tuskastuttavaa ja lopulta palkitsevaa. Apuna voi tietenkin käyttää Cheatsheet-sivua tai vaikka lueskella aiemmin mainittua kirjaa. Hyviä esimerkkejä löytyy myös clojuredocsista, siellä on rajapinnan lisäksi näppäriä esimerkkejä. Stackoverflowsta ei vielä löydy vastauksia, joten kannattaa panetua muuhun materiaaliin.

Exercism.io & clojure on suosikkini itseopiskelua varten. Se tosin vaatii oman koneen ja ympäristön, jossa ratkaista tehtäviä. Exercism antaa kuitenkin vapaat kädet ongelmien ratkaisuun. Ongelman voi ratkaista kauniilla koodilla tai kirjoittamalla apufunktioita ja karmean pitkän hässäkän, kuten itse teen ensimmäisellä iteraatiolla. Löydettyäni ratkaisun yritän jalostaa mörkömöhkäleestäni kaunista koodia.

Valitse oma polkusi clojureen! Opiskele niin paljon kuin on tarpeen tai syöksy kielen syvyyksiin oivaltamaan. Nauti.

ClojuTRE 2016 aloittelijan silmin

Kävin kuuntelemassa upeita luentoja ClojuTRE:ssa, siellä kerrottiin uusimmista tuulista ja erilaisista kielen sovelluksista.

Huomasin hypänneeni clojuren kelkkaan juuri oikeaan aikaan, koska kielen debuggaukseen, ajonopeuteen ym. liittyvät ongelmat on selätetty aivan hiljattain.

Palataan alkuun.

ClojuTRE tarjosi tietoa kolmella rintamalla: clojuren yhteys muihin kieliin ja clojuren historia, erilaisia sovelluksia miten clojurea voi käyttää oikeissa projekteissa ja kielen kehittymiseen liittyvät projektit tai laajennukset.

Tietämykseni laajeni kerralla aivan uusiin sfääreihin seurattuani esityksiä.

Klipse tarjoaa REPL:n eli reaaliaikaisen ohjelmointiympäristön mille tahansa web-sivulle, joka voi pyörittää komponentteja tai JavaScriptiä. Sen avulla uuden kielen oppiminen muuttuu paljon helpommaksi, kun opiskelijan ei tarvitse erikseen pystyttää kehitysympäristöä. Ideoita voi kokeilla heti.

Native mobile apps ja clojure of things järisyttivät maailmaani. Siis näin voi tehdä alustariippumattomia sovelluksia clojurella tai ohjata IoT-laitetta (RaspberryPi). Aivan fantastista kamaa. Juuri tämän kaltaiset esimerkit elävästä elämästä saavat uskomaan tämän kielen mahdollisuuksiin. Huimaa.

The Story of Owl Lisp avasi lispien maailmaa tavalla, jota en uskonut mahdolliseksi. Kaiken lisäksi Aki Helin sai yleisön nauramaan upealla esityksellään. Kaiken takana on yksinkertainen lambda-matematiikka eli funktiot. Yksinkertaisuudessaan ja yksinkertaisuudesta kasvaessaan monimutkaisuudessaan kaunista.

ClojureScriptin viisi viimeisintä vuotta ja viisi seuraavaa puuhkäisivät pöydän puhtaaksi. David Nolen tiivisti erinomaisesti, yhteistö sai tämän kaiken aikaan. Liity yhteisöön ja anna vähän. Nappaa helppoja juttuja, joilla parannetaan clojure (scriptiä). Oikein voimaannuttava puhe mieheltä, joka on auttanut clojurescriptin syntymisessä. Hän rakastaa LISPiä.

Päähäni jäi paljon innostusta. Sain suuren määrän tietoa, josta osaa pystyn käyttämään edukseni paremmin kuin toista. Löysin paikkoja, joista voi aloittaa, kun tahtoo saada asioita tapahtumaan. Siemeniä, alkuja minulle. Muille projekteja, jotka luovat uskoa clojureen.

Clojureen ihastuminen

Astuin clojure-maailmaan, tehtyäni töitä yli kymmenen vuolla .NET-työkaluilla. Suurimman osan tuosta ajasta kirjoitin C#:lla ja hieman yli vuoden Visual Basicilla. Clojure on LISP-perheeseen kuuluva kieli. Ensin se nyrjäyttää aivot ja sitten sillä koodaaminen tuntuu mahtavalta.2016-07-13-09-53-17

Uusimmassa projektissa kieli- ja tekniikkavalintoina on ClojureScript frontissa muutamien lisäpalikoiden kera, serverillä Clojure ja tietokantana CouchDB. Olen harjoitellut ja koodannut clojurea vasta kuukauden, joten kielen vaihtoon liittyy paljon uutuuden viehätystä.

Miltä clojure näyttää?

(map inc [1 2 3])
;; => [2 3 4]

Oheessa koodi, jossa lisätään inc-funktiolla annetun vektorin alkioiden arvoja yhdellä. Map-funktio kutsuu inc funktiota jokaiselle alkiolle erikseen, jolloin funktion tulos on [2 3 4].

Käytin tovin aikaa todetakseni, ettei tässä ilmaisessa wordpress.com:ssa voi asentaa plugineja, joilla voisi tyylikkäästi näyttää miten clojure toimii. Klipse:n voisi upottaa blogiin, jos saisi ajaa JavaScriptiä tai asentaa plugarin.

Käy klipsen sivuilla testaamassa clojurea, niin saat maistiaisen kielestä.