neljapäev, 30. aprill 2020

Teistmoodi IT - reljeefne hiir

Tõsi ta on, et kui ennast või su lähedasi just ei puuduta, siis paljudele teemadele siin elus ei mõtle. Nii ei olnud mul halli aimugi ka puuetega inimestele mõeldud IT tugilahendustest - teadsin, et need on olemas, aga mida need reaalselt endast kujutavad ja kuidas toimivad mitte. Ehk kõik nad olid minu jaoks uudsed, aga kuna just täna hommikul lõpetas mu arvutihiir minuga koostöö ja pidin terve pika päeva hakkama saama touchpad'iga, siis kõnetas mind eriliselt reljeefne hiir.

Mis see siis on? "Reljeefne hiir, inglise keeles tactile mouse, on seade, mis on mõeldud hiire kursori juhtimiseks, hiire klahvide klõpsutamiseks, kuid annab samal ajal vastava tarkvara abiga ka reljeefsel kujul tagasisidet hiire kursori alla jääva ekraanipiirkonna kohta." (A. Räpp) See võimaldab pimedal arvutikasutajal tunnetada ekraanil olevaid kujuneid ja jooniseid ning isegi Windows Paint'iga joonistada. Võiks ju arvata, et üsna geniaalne seade, kuid pigem tundub, et väga lendu pole tõusnud ning liiga palju infot selle kohta ei leidu, viimasel ajal käib mõiste läbi pigem virtuaalse reaalsuse seadmetega seoses. Enamus allikad on leitavad 2000ndate algusest ning 2009. a Owen, Petro jt artikkel arutleb, et kogukond ei ole neid eriti omaks võtnud, kuna reljeefse hiire kompimispositioonis saadav informatsioon on ikkagi väga ebatäpne ning see on väga oluline, et inimene suudaks kombates 2D graafikat kokku panna. Veel heidetakse seadmele ette ruumilise ja ajalise ühildumise märkimisväärset puudujääki liikumis- ja kompamisinformatsiooni vahel.

Aastal 2000 tuli Logitech välja reljeefse hiirega, mis sisaldas väikest käivitajat, et hiir vibreeriks, mis siis annaks näiteks tagasisidet, kui hiir väljub ekraaniakna piiridest - kahjuks turule siiski ei jõudnud.



Kasutatud kirjandus:
A. Räpp, "Ülevaade pimedate ja nõrgalt nägijate abivahenditest arvutiga töötamisel", 2003   http://ppy.ee/abiks/probleemist/#_Toc35621395

G. C. Burdea, P. Coiffet, "Virtual Reality Technology", 2003 https://books.google.ee/books?id=0xWgPZbcz4AC&pg=PA97&lpg=PA97&dq=tactile+mouse&source=bl&ots=LDlzfY-Oas&sig=ACfU3U33ioOEVtaJpKnk8Qm3UU-gkAc-Jw&hl=et&sa=X&ved=2ahUKEwjNxauL8JDpAhUCy6YKHcLXDxU4ChDoATAEegQICxAB#v=onepage&q=tactile%20mouse&f=false

J. M. Owen, J. A. Petro, S. M. D'Souza, R. Rastogi, D. T. V. Pawluk, "An improved, low-cost tactile 'mouse' for use by individuals who are blind and visuallt impaired", 2009 https://www.semanticscholar.org/paper/An-improved%2C-low-cost-tactile-'mouse'-for-use-by-Owen-Petro/f037c9cc6d6a7e98e62d4e1abd6867d0c6ea9b05

Wikipedia, Computer mouse - Tactile mice,   https://en.wikipedia.org/wiki/Computer_mouse#Tactile_mice

neljapäev, 23. aprill 2020

Kasutatavusest veebis

Kui rääkida UX-ist või kasutajalihtsusest veebis, siis esimese asjana tuleb meelde, et kui see pole normaalselt tarbitav nutitelefonis, siis pikka pidu pole loota, sest väga palju tänast infot ja teenuseid liigutatakse just seal. Olukorras, kus karantiin on tänaseks kestnud juba kuus pikka nädalat peab ütlema, et nii arendusmaja esindajana kui kodukontoris viibijana on suurendatud tähelepanu alla tõusnud e-poed - toongi siinkohal ühe positiivse ja ühe negatiivse näite kasutatavusest veebis nende najal.

Üks väga suure ja ägeda tootevalikuga, kuid äärmiselt ebamugav veeb ja e-pood on Hektor Light'il   https://www.hektor.ee/, mis tegeleb valgustite müügiga. UI ja nutiseadmes kasutatavus ei kannata üldse mingit kriitikat. Õpitavus - saab hakkama. Tõhusus - madal. Kõik kohad on igasugu jama ja mõtetuid detaile täis, mis tähelepanu eksitavad, esilehel on miski arusaamatu "Sisene", mis tegelikult ei ole mõeldud kuhugi sisse logimiseks, vaid on arusaamatu menüüduubeldus/pikendus, tellimuse vormistamisel, kui võtan valiku, et tulen ise kaubale poodi järgi pean ikka igal juhul sisestama detailsed aadressandmed, tarne- ja maksevõimalused on erinevate logode, ikoonide ja täisnimetustega venitatud mitme ekraanikuva pikkuseks, sarnased tooted valiku all ongi pigem nt teised seinavalgustid, mitte sama sarja laevalgustid ehk kui tahaksin osta komplekti, siis pean ise erinevate kategooriate tuhandete toodete alt lappama, midagi ostukorvi lisades viskab kohe ostukorvi endasse ehk edasi poodlemise jaoks peab tagasi minema või menüüst uuesti liikvele jne. Meeldejäävus - keskmine. Mingit maagiat ei ole. Veakindlus - ei oska kommenteerida, sest koleduse ja ebamugavuse tõttu pole kõiki funktsioone läbi käinud ega ka äraostuni jõudnud. Rahulolu - mitte rahuldav. Kui tegemist ei oleks ühe teadaolevalt suurima valikuga valgustite poodidega Eestis, siis ei läheks kunagi tagasi. Kasulikkus - kui ikka väga vaja ja ise palju vaeva näha, siis vast saab lõpuks ostu tehtud.

Positiivse näitena tooksin välja Euronicsi e-poe https://www.euronics.ee/. Väga hästi kasutatav nii veebis kui nutiseadmes, toodete kategooriad on esindatud selgete ikoonidega, kus ka laps saab aru, millega tegu, tooteid saab paljude kriteeriumite alusel filtreerida ka kõige teadlikum klient, ostukorvi lisades pakub asjalikke valikuid, mida koos antud tootega võiks veel vaja minna ning hiljem vormistades saab uuesti üle vaadata "näita kokkusobivaid tooteid" jne. Kiiresti õpitav, tõhus, meeldejääv, veakindel ja meeldiv kasutuskogemus ning nutiseadmes saab isegi veel paremini enda asjad tehtud.

Kasutatud kirjandus:
https://www.hektor.ee/
https://www.euronics.ee/

neljapäev, 16. aprill 2020

Arendus- ja ärimudelid

Kui mõelda konkreetsete tarkvaraarenduse mudelite peale, siis kaks kõige popimat tunduvat olevat ikkagi agiilne ja waterfall, kus esimene esindab seda kuidas tänapäeval oleks mõistlik teha ning teine kuidas tehakse iganenud ja piirangutega ettevõtetes. Eeldusel, et väle mudel on rohkem leierdatud keskenduksin siinkohal pigem kosemudeli peale ning mitte liigselt soovides reeta enda tööandjat või kliente, siis tooksin välja mitte ühe konkreetse projekti, vaid süsteemi, kus sellelaadselt toimetatakse, miks ja mis see endaga kaasa toob.

Waterfall võib tänases agiilses maailmas olla kasutusel kui sõimusõna, kuid kindlasti on ka projekte ja kliente, kus see on jätkuvalt ainuõige lähenemiseviis - nõuded on selged ja muutumatud, ülesanded ei ole liiga suured, kogu protsess on suhteliselt lihtne. Küll on suurem osa neid, kus see tegelikult sedasi ei ole, ent erinevate taakade ja piirangute tõttu praktiseeritakse ikka kosemudelit - üheks selliseks segmendiks on riigisektori projektid, kes saavad enda rahastuse Euroopa Liidu struktuurifondidest (SF) ja peavad RIA-le detailselt aru andma kõigist enda plaanidest ja tulemustest ning nende kahe vahele jääb üldjuhul üsna mitu head aastat reaalset elu ja arendamist. Et töölõiku oleks võimalik paremini ette kirjeldada ja planeerida, siis tõmmatakse arendus erinevatesse etappidesse ja tehakse igale etapile eraldi hange: analüüs, disain, arendus, testimine ja hooldus. See omakorda toob kaasa tohutu ajakulu ja segasummasuvila, sest igat tööjuppi võivad teostada erinevad partnerid ning ükski ei ole kunagi täielikult rahul teise poolt eelnevalt tehtud tööga, samuti muutuvad ka avalikus sektoris elu, seadused ja vajadused ning bürokraatia kägistab neid kosena jätkuvalt tegema asju, mille vajadused on muutunud või kadunud.

Teine näide on see, kui SF-ist saadavate rahade eest tehtavasse projekti on fixed skoobi, aja ja raha eest (need kolm ei tohiks kunagi korraga fixed olla!) kokku keevitatud kõik need etapid ning siis tahetakse teha nägu, et teeme nüüd seda projekti agiilselt, kuid tegelikult ei ole süsteem, klient ega projekti olemus selleks valmis, oma olemuselt tehakse ikka waterfalli ning paindlikkus praktiliselt puudub.

Ärimudeleid on tarkvaraarenduse maailmas palju. On teatud hulk IT inimesi turul, kellele meeldib nokitseda innovaatilise oma toote kallal, mida siis müüakse, renditakse või mingit muud moodi seotakse miski ärimudeliga. Ise töötan IT konsultatsiooniettevõttes, mis tegeleb projektipõhise custom made teenuse osutamisega. St, et arendatav tarkvara on alati unikaalne ja omandiõigus kuulub kliendile, ettevõttel on küll valdkonnad ja tehnoloogiad, milles ollakse eriti head, kuid neid ei tootestata. Ühest küljest tähendab see alati justkui nullist alustamist, kuid teisest küljest võimaldab olla paindlik ja innovaatiline, sest ei üritata suruda klienti enda toote raamidesse. Ärimudelina sa müüd inimeste oskust ja tööaega, mitte konkreetset toodet.

neljapäev, 9. aprill 2020

Kuidas saada häkkeriks

Seekord sai läbi loetud Eric S. Raymondi "Kuidas saada häkkeriks" - igati ladus lugemine ning tookski siinkohal välja mõned huvitavamad aspektid, mida mina isiklikult antud kirjatükist uut leidsin.

Seda, et häkker pole oma olemuselt digitaalne pahalane nagu enamus inimesi seda seostab oli mulle teada, kuid et häkkerid ehitasid interneti või panid tööle veebi - selline seos mul peas puudus. Jumal lõi maailma või arenesime ise miskist värgist - asi teada ja ammendunud, aga olles osa generatsioonist, kes ikkagi juba on kasvanud internetiajastul pole kunagi juurelnud teemal kes selle lõi või kuidas täpselt.

Häkkerlus on osa loovatest kunstidest? Mulle kui humanitaarkallakuga inimesele on alati jäänud mulje, et progemine on puhtmatemaatiline oskus ning loovusega ma seda küll kunagi seostanud ei ole. Arendajad küll loovad koodi, aga seda üldiselt ikka väga konkreetses ette nähtud raamistikus ja eesmärkidel, kuid siin ilmselt mängib minu kokkupuude tarkvaraarenduse projektidega, mis nii selgelt piiritletud vs tipp-programmeerijad ja võrguässad, kelle motivatsioon ja ambitsioon on väljaspool igapäeva leiva teenimist ning seal on ilmselt oluliselt rohkem ruumi ka loovusele.

Üheks häkkerite jaoks erilise tähtsusega progemiskeeleks on Perl, sest seda kasutatakse laialdaselt dünaamilises veebis ja süsteemihalduses. Olles kokku puutunud üsna paljude IT projektide ja riigihangetega tuleb nimetus Perl siiski tuttav ette, aga seda just tänu ühele riigihankele, kus antud referentsi oli küsitud ja keegi teadjamees ütles, et see on miski iidne progemiskeel, mida mõni vanakooli arendajaonu ehk on näinud - tuleb välja, et ühtegi häkkerit siis meie ettevõttes ei tööta :)

Jutt nohiklikkusest, strateegiamängudest ja ulmest tuli IT ettevõttes töötava inimesena täiesti kodusena, aga edasi läks põnevaks - stiilipunktid/soovitused häkkeriks tahtjatele nagu emakeeles hästi kirjutamine, võitluskunstidega tegelemine või mõne meditatsioonitehnika uurimine - vaat neid küll ei seostaks. Mängu tuleb parem ja vasak aju poolkera ja kogu see loomevärk jälle, mis tekitab taaskord kummastust, aga autor tundub teadvat, millest räägib.

Kasutatud kirjandus:
http://www.kakupesa.net/hacker/

neljapäev, 2. aprill 2020

Erinäolised IT-juhid

Eile täitus mul endal 2a IT sektoris juhtival kohal, mis pani mõtlema paljude erinevate teemade peale, mis selle aja jooksul kogetud ja õpitud on. Ei ole olemas ühtset valemit juhiks saamisel ega ühte definitsiooni juhiks olemisel, kuid väljakutsete rikas on see kindlasti, nii ITs kui mujal. Mulle tundub, et ITs eristuvad juhid kahe peamise tunnuse alusel - tugeva tehnilise taustaga inimesed, kes jäävad enda oskustega silma ja kellel on olemas ka keskmisest paremad suhtlemisoskused ning n-ö inimeste inimesed, kellel on arvestav ärivaist - kes saavad aru, kuidas see maailm toimib, on head suhtlejad, organisaatorid jms. Ise liigitun sinna teise rühma. Kui möödunud aastal hakkasin mõtlema uuesti õppima minemise peale, siis kaalusin kahte suunda - MBA ehk ärijuhtimine ja Infosüsteemide disain ja analüüs - ilmselgelt otsustasin teise kasuks. Usun, et heaks IT-juhiks olemisel on kasulikud mõlemad.

Õppejõu materjalides on välja toodud, kes võib IT-juht olla erinevates rollides: juht, teavitaja/suhtleja, coach, mentor/õpetaja, arengumootor, ülemus. Igas juhis peakski olema tükike neist kõigist, kuid kindlasti on igaühel oma fookus, oma tugevus. Lugedes nt artikleid Bill Gatesi kohta avalduvad vähese vaeva ilmingud neist kõigist - milline siis oli tema põhiline juhitüüp? Ta on kindlasti juht, kellel on olnud suurt visiooni ja oskust tiime enda nirvana suunas vedada, ta on olnud fokusseeritud ning selge ja kindla sooritusega. Ta on kindlasti ka arengumootor (change agent), sest Microsoft on olnud enda alal ikkagi lipulaev ja suur edulugu, see on muutnud kogu tehnoloogiatööstust, word ja excel on paljude meie lemmikud ka neil päevil. Samuti on ta olnud ülemus - tuntud kui autokraatlik juht, nõudlik, kasutab võimu seal, kus vaja.

Mina olen enda tänased IT-juhtimise teadmised ja kogemused omandanud suuresti ühelt Eesti IT-juhilt, nimetame teda siinkohal Härra X. Ta on töötanud mitmetes suurkorporatsioonides juhtivatel IT ametikohtadel ja on täna ühe keskmise suurusega IT konsultatsiooniettevõtte omanikke. Millist juhitüüpi ta on? Minu maailmas on ta eelkõige juht ja coach - ta on väga karismaatiline, tark ja strateegiline inimene, ta omab suurt visiooni ja pilti nii suuremalt kui laiemalt ning tal on väga suur võime inimese endaga kaasa kiskuda. Coach siis eelkõige selle tõttu, et 4a tagasi riigiettevõtte administratiivkohalt tema käe alla suundumine paneb mind igapäevaselt uuesti ja uuesti proovile, ta ei lase mul kunagi mugavustsooni langeda, see teekond on olnud tohutult raske, aga samamoodi arendav. Ta on alati olemas, aga mitte kunagi liiga kiitev või lahendusi kandikul ettetoov. Tänu tema juhendamisele tunnen, et võiksin alati olla parem selles, mida teen, kui samas tean, et saan igalpool hakkama.

Kasutatud kirjandus:
https://hbr.org/2008/06/bill-gates-entrepreneur-manage.html
https://www.studocu.com/en-ca/document/northern-alberta-institute-of-technology/communication/mandatory-assignments/bill-gates-management-style/2834210/view
https://en.wikipedia.org/wiki/Bill_Gates#Management_style

neljapäev, 26. märts 2020

Kes on IT proff?

Kes on professionaal? ÕS ütleb, et elukutseline, mitteamatöör, meister. Saab siis selle eest raha, au ja kuulsust? Kes on IT proff Eestis tänasel päeval? Võhiku jaoks ilmselt iga inimene, kes töötab miskil arvutimaailmaga seotud erialal. Olukorras, kus IT inimesi on tikutulega otsitud ja alati puudu, palgad on taevapiirimail ja n-ö iga loll võib end spetsialistiks pidada, on uue suure majanduslanguse lävepakul huvitav arutleda, kes siis ikkagi on IT professionaal ja kas proffil on ka eelis rasketes oludes edukamalt toime tulla?

Kohe kumab peas küsimus, mis on spetsialisti ja proffessionaali vahe? Mulle tundub, et spetsialist on keegi, kes on omal ametikohal väga kogenud ja tunneb seda süvitsi, kuid pigem kitsamalt, kuid vähemalt tänapäevaselt IT professionaalilt eeldatakse erialast haridust, sertifikaate/koolituste läbimist, aastaid valdkonna kogemust ning pidevat tahet edasi areneda, näha seoseid teiste aladega. IT spetsialist võib olla mingis konkreetses teemas väga tugev, nt süsteemianalüüsis või rakenduste administreerimises, aga professionaal peaks olema laiema ettevalmistuse ja kogemusega ning võimeline andma seda edasi ka teistele. Hea IT proff ei tohiks ainuüksi olema suuteline teiste IT-alaseid muresid lahendama, vaid seda ka inimkeeli võhikutele selgitama. Hea IT proff on pidevas enesearengus ja kursis uute trendidega, sest IT ei ole kindlasti valdkond, mida saaks n-ö ära õppida ja selle pealt enda ametikohal surmani töötada. Olenemata rollist või ametikohast suhtleb IT proff ka teiste valdkonna tegijatega, teab, kes on omal alal tugevad tegijad ja innovaatorid ning kes keskpärased töötegijad. IT proff ei piira ennast mõne konkreetse progemiskeele, andmebaasi või projektijuhtimise raamistikuga - ta suudab näha suuremat pilti ja konkreetseid vajadusi ning kasutab eelpoolmainituid kui tööriistu.

IT proff Eestis teab millised on suured IT ettevõtted, kuidas toimetab sellel alal riik, millised on siinsed edukad start-upid. IT professionaal on huvitatud enda valdkonnast ja selle edendamisest, hoiab silma peal, mis toimub ka laiemas maailmas. IT professionaal teab, milles ta on hea ning leiab võimalusi kuidas saada veel paremaks. Haridus, koolitus või paber ei näita üksi veel midagi, kuid kindlasti on üheks professionaalsuse mõõdikuks ka asjakohased sertifikaadid - projektijuhtidel ja analüütikutel nt Scrum või Price2, arendajatel Java SE 8/11, testijatel ISTQB jne. 

IT proffil ei ole ühest kindlat definitsiooni, kuid selleks, et sind võetaks tõsiselt ja sel alal usaldataks tuleb tegutseda sihipäraselt ja pidevalt.

Kasutatud kirjandus:
https://www.educba.com/it-professional/
https://www.itworldcanada.com/blog/what-does-it-professional-really-mean/86353
https://www.dynamixsolutions.com/what-is-an-it-professional-and-what-does-one-do/

neljapäev, 19. märts 2020

Mismoodi mõjutab vabade litsentside juures edasikandumisklausel (copyleft) litsentsivalikut?

Käesoleva võrdlemisi põnev teemakäsitlus on mitmetahuline - ühelt poolt juriidika, teisalt eetika.
Alustan nende mõistete definitsioonist:
Kui arendaja loob tarkvara, oma lõbuks, oma otstarbeks ja paneb kõigile netti alla laadida, siis olenevalt selle komplekssusest võib paljudel teistel olla huvi (osa) seda tarkvara kasutada. Millal tohib, millal ei tohi? Kui naabrlinna-Ants oma pere eelarvet selle abil kasutab, ei tohiks olla ju muret. Kui aga Oracle selle endale kasutusse võtab ja korraliku raha eest edasi müüb, tekib selgelt põhjendatud ootus tulule ka endale. Eetikaküsimus - miks mitte siis kasutada koodi, kui sulged selle kinnisesse lähtekoodi kompileerituna ja keegi kunagi ei saa teada? Ei saagi.

Aga ei tohi. Copyright (eesti k ehk lähim "autoriõigus") sätestab, kuidas tohib intellektuaalomandit kasutada, muuta, levitada. Laialdaselt see tähendab, et ühtegi seda asja ei tohi teha ilma autori nõusolekuta.

Copyleft (parema mõiste puudumisel "vastupidine autorõigus") sätestab vastupidiselt vaikimisi õigused intellektuaalomandit levitada ja muuta ja luua "alus" uutele intellektuaalomanditele originaalist lähtuvalt.

Juriidiliselt eksisteerib palju litsenseerimismudeleid ja autorite poolt valitavaid võimalusi, mis peavad piirama selliseid tegevusi. Alustades tähtsamast - kas ja kuidas loodud tarkvara tohib levitada.
Peamiselt keskenduksin siin just konkreetsetele litsenseerimismudelitele nagu GNU GPL, Apache ja BSD.

Laialdaselt on BSD neist kõige "lõdvem": sinu koodi võib kasutada sisuliselt igaüks ilma piirangutega: arendada edasi, kasutada kommertseesmärkidel ning ka suletud lähtekoodis. Sisuliselt - tore et levitasid oma toodet, ma müün seda edasi või osana enda tootest, raha eest. Parim näide tarkvaramaailmast on laialdaselt levinud Django, React ja Go. Nendel teekidel/platvormidel arendatud tarkvara võib igaüks müüa või tasuta jagada nii suletud kui avatud koodiga. Ja näiteid, mis nendel keeltel on kirjutud on väga palju. Tasub siinkohal tuua välja, et Go on arendatud Google'i poolt.

MIT litsents - vastava ülikooli nimest on oma õigustelt väga sarnane eelkirjeldatuga ning sellel jagatakse väga paljusid tarkvaraarendusvahendeid, näiteks Angular, JQuery ja NodeJS. Kasutusvaldkond sama - tasuta töövahendid, millel võid ehitad üles oma järgmise multi-miljonilise start-upi.

GPL litsents seevastu nõuab, et levitatud tarkvara jääb edasipidi levitatavaks ka uute tarkvarade (või selle derivatiivide) sees ja seega seejuures on ka jagatud avatava lähtekoodiga. Tehniliselt see tähendab, et kuigi tarkvara on avatud lähtekoodiga ja igaüks kompilaatori ja vastava protsessoriga saab seda ka "üles ehtitada", võib selle eest küsida viisil või teisel ka raha, kas siis konsultatsioonina, pilveteenuse pakkumise või muul viisil. Kõige tuntum (ja ka üks esimestest) GPL litsentsi kasutajatest - Linux operatsioonisüsteem, autorlusega põhjanaabrilt.

Kokkuvõtlikult - kui teed midagi head, mis teistele ka kasulik, aga pole liiga lahke seda panema raha teenima, kasuta GPL litsentsi. Kui leiad, et Sinu loodut võib kasutada igaüks milleks iganes, kasuta BSD või GPL litsentsi. Kui aga arvad, et leidsid oma koodiga kullasoone - mine konsulteeri litsentsibürooga, kuna see maailm on väga keeruline ning täis oma juriidilisi nõkse. Antud kirjatükk puudutas sellest vaid kergemat pinda ja vabade litsentside maailma.

Kasutatud kirjandus:
http://oss-watch.ac.uk/resources/licdiff
https://www.logicify.com/en/blog/software-licenses-overview-and-recommendations-for-use-in-development/
https://www.novell.com/coolsolutions/feature/1532.html
https://en.wikipedia.org/wiki/Category:Software_using_the_BSD_license
https://en.wikipedia.org/wiki/Category:Software_using_the_GPL_license