Kas meil on midagi õppida PowerPointi koolitusest

Kämblatäis vabatahtlikke Pro ridadest registreerisid endid sisekoolitajate koolitussarjale. 21. veebruaril jõudiski kätte esimene koolitus. Siin artiklis katsun anda ülevaate sellest, mis mõtteid see koolitus minus indutseeris ja mida muud me kõik võiksime sealt kõrva taha panna.

Esmalt kirjeldan koolituspäeva. See oli jagatud järgmiselt: kolmandik andragoogikat (täiskasvanute harimise teooriat) ja kaks kolmandikku PowerPointi. Nagu pealkiri reedab, keskendun ma siin sellele tagumisele kahele kolmandikule. Andragoogika oli küll huvitav ja mõtteid sütitav, kuid selles ei olnud ma enne nii kodus kui mulle meeldiks. Hiljem sain aru, kui palju rohkem ma sellest teemast teada tahaks. Seevastu PowerPoint on arvutiinimestel veres juba sellest ajast kui arvutid ja Windowsid tubadesse sisse murdsid. Seepärast tekkis koolitusel viibivatel Pro inimestel küsimus, et kas me oleme ikka õiges kohas.

Tegin südame kõvaks, ei andnud tärkava kevade kutsele järgi ja istusin oma kohustuslikud kolm tundi ära. Esineja oli iseenesest huvitav ja tegelikult laialdase kogemusega kõiksugustel Office’i teemadel. Õnneks näitas vahepeal ka naljakaid videoid Peeter Ojast – kui märkas, et inimesed hakkavad liiga laiali valguma. Continue reading “Kas meil on midagi õppida PowerPointi koolitusest”

Atlassian Summit 2013

Sel aastal leidis Summit aset parimal aastaajal San Francisco külastamiseks – oktoobri alguses. Soojast ilmast ning vihma ja udu puudumisest hoolimata ei toimunud üritus vabas õhus, vaid endiselt samas laohoonest ümber ehitatud konverentsikeskuses. Osalesime Proeksperdist sel aastal 2 inimesega, mõlemal võrdluseks varasem Summiti-kogemus.

Atlassian Summit 2013

Esimese päeva avasid traditsiooniliselt Atlassiani asutajad Scott Farquhar ja Mike Cannon-Brookes. Scott alustas kliendi tähtsuse teadvustamisega kogu tarkvaraarenduse protsessis – kõik algab ja lõppeb ju kliendiga. Kliendi tagasiside põhjal tehtud muudatused teevad sageli heast tootest suurepärase. Et neid muudatusi kliendini toimetada, peavad meeskonnad tõenäoliselt tihemini reliisima. Siin tulevadki mängu Atlassiani tooted (ConfluenceJIRA & DevTools), mis proovivad seda protsessi võimalikult mugavaks ning ladusaks teha.

Continue reading “Atlassian Summit 2013”

Ärianalüüsi valdkonnas failide versioneerimine ja exceli failide võrdlemine (diff)

Business intelligece (BI) ehk ärianalüüs on valdkond, kus toimub mitte tarkvara arendamine vaid tarkvara juurutamine. Nõnda, kuidas erineb tegusõna, on levinud arusaam, et tarkvara arendamise võtteid ei saa juurutamise alal rakendada. Tegelikult on nendel tegevustel mitmeid sarnaseid jooni. Ütleksin, et juurutamine on sarnane tarkvara edasi arendamisele.

Üks tarkvaraarenduse elementaarseim hea tava on failide versioneerimine (source control). Kõik failide muudatused peetakse sedasi meeles ja nii saab hiljem erinevaid variante võrrelda – ja vajadusel minna tagasi mõnda varasemasse seisu. Olukord, kus meeskonna jagu arendajaid muudab projekti faile siit-sealt – ilma, et muudatustest jälge maha jääks – on mõtlematu ja põhjustaks segadust. Seega, võttes aluseks juhise, et juurutamine on arendamisele sarnane, peaks olema võimalik ka ärianalüüsi valdkonnas failide versioneerimist rakendada. Teeme sellega proovi. Continue reading “Ärianalüüsi valdkonnas failide versioneerimine ja exceli failide võrdlemine (diff)”

Testijad ja arendajad – või ikkagi meeskond?

Käesoleva aasta juunis toimus Tallinnas teist korda rahvusvaheline Nordic Testing Days (NTD) 2013 konverents, mis keskendub testijate kultuuri arendamisele Eestis ja Põhjamaades.

NTD 2013 korraldus oli eelmisest korrast toekam ja fookus kaasaegne – loenguid ja töötubasid läbivaks teemaks oli Testers and Developers – Partners in Quality. Ilmselt oli lugu ka kuulaja valikutes, kuid kaks märksõna, mis loengutest ja töötubadest kummitama jäid, olid teamwork ja automation.

NTD 2013 koosnes kokku kolmest päevast. Esimene päev oli tutorial’ite päralt, teine ja kolmas aga olid tihedalt täis erinevaid ettekandeid ning töötube.

Proeksperdi panus NTD 2013 õnnestumisse

Automatiseerimise rõõmude ja murede lahkamine on ka Proeksperdi jaoks hingelähedane. Kui eelmisel aastal viisime Mati Parve eestvedamisel läbi ühe automatiseerimise teemalise töötoa, siis sel aastal oli meil kogemusi juba topelt jagada.

Continue reading “Testijad ja arendajad – või ikkagi meeskond?”

Raspberry Pi ja ETV järelvaatamine – Flashi-vaba tsoon.

See siin on lühijutt ühest progeja tüüpilisest õhtust, mis hõlmaks justnagu tervet elutsüklit: ideed, probleemi püstitust, kastist-väljas mõtlemist, tagasivaadet, lihtsustamist, lahendamist ja nautimist.

Häda ajab härja kaevu.

Omal ajal oli ütlemine, et Microsoft kirjutab iga IBMi poolt toodetud arvuti tarkvara kohe pilgeni täis. Siis on põhjust jälle uue ja võimsama soetamiseks, mida taas kord uue tarkvaraga üle koormata. Ja nii ongi see juba aastakümneid kestnud. Ikka ja jälle leian end seda lõbusat legendi meenutamast. Alles huljuti juhtus, kui minu valdusesse sattus üks Raspberry Pi. Mida selle peal esimesena katsetada? Eks ikka GPU võimsust – see ju selle riistapuu eeliseks. Naiivse lootuse – kuid realistliku pessimismiga – hakkasin proovima oma lemmikteenust: ETV salvestiste internetist järele vaatamist. Tulemus oli muidugi ette teada.

Kui juba kahetuumalised CISC protsessorid ei suuda flash player rakendust täisekraanil sujuvalt jooksutada, ei suuda seda ka 25 dollarit maksev RISC. Põhimõtteliselt ei jõudnud isegi nii kaugele, et oleks pildi ette saanud. Kuid kas asi ikka piirdub sellega? Kas peaksin selle teadmisega rahulduma? Üks õige progeja ei rahuldu – enne kui pole ise järgi kontrollinud.

Puude taga on siiski mets.

No mida erilist see flash player siis teeb? Selle teada saamiseks tuleb tänapäeval appi iga endast lugupidav veebilehitseja, kus on võimalik suvalise koha peal paremat hiireklahvi vajutada ja inspect element käsku valida. Vahekommentaariks niipalju, et olles viimased 7 aastat sardsüsteemide C++ progeja olnud, olen üllatunud, millise hüppe veebilehitsejad vahepeal on teinud. Igas brauseris on põhimõtteliselt kogu silumissüsteem (debug) sees. Võimalik on vaadata mitte ainult lehe algset lähtekoodi vaid kogu HTML/JavaScript hetkeseisu, jooksutada käsurealt enda lisatud JavaScripti, profileerida jne. Siiski, esmapilgul ei näe kohe puude taga metsa – kui ainult seda flashi ees ei oleks! Tuleb flashi-vaba tsooni peal hiirt vajutada ja natuke kaugemalgi ringi kolada. Lõpuks selgub, et kõik videod on standardsed RTMP meediavood: vaja ainult URL teada saada. Siit juba midagi koidab. Konstrueerime tervikliku URLi ja anname ette Raspberry Pi vaikemängijale (omxplayer), mis on kohandatud Pi riistvaralist kiirendust kasutama (siiamaani ainuke teadaolev). Ja voila! Nii ilusat, sujuvat, vaikset ja nii suurel ekraanil ETV järelvaatamist pole ma veel kogenud. No mis häda on neil kogu aeg seda fläšši teha!? Meenub vanakooli IT mees. Meil on tõesti vist loomupärane omadus kirjutada ka kõige lihtsamad operatsioonid kõige ressursinõudlikumaks.

Lihtsus on geniaalsus.

Esimene mõte on nüüd teha selle kasutamine võimalikult mugavaks. Aga kuidas? Meil on antud tuhandeid võimalusi, sadu teid, aga ma olen õnnelik, et inimesed on nii ilusad ja head. Peas hakkavad keerlema tuhanded erinevad ideed uuest rakendusest, mis võiks töötada Raspberry Pi peal, mis tõmbaks ERRi serverist uut infot ja kuvaks seda kenasti suurel ekraanil. ETV kodulehel ei paista aga olevat isegi RSSi, rääkimata veebiteenusest. Tõenäoliselt kasutavad ERRi mobiilirakendused mingit rätsepalahendust, aga see polegi enam oluline. Seda kontrollida ma ei viitsi, sest selle kõige tegemine võtaks liiga palju aega. Mõte veereb hoopis analüütiku ja disaineri köögipoolele. Ma istun kodus, diivani peal, läpakas süles ja kolan ringi ETV kodukal. Kasutan justnimelt läpakat, kuna televiisoriekraanilt ei ole mugav teksti lugeda – olgu ekraan kui suur tahes. Videoklippe tahaks aga telekast vaadata. Mõeldud, tehtud. Tuleb teha üks veebilehitseja pistikprogramm või lehitseja liivakast, mis leiaks kodulehelt automaatselt video aadressi üles ja saadaks selle minu Pi-le edasi. Nii poleks vaja kulutada aega uue täisfunktsionaalse programmi kirjutamiseks/hooldamiseks ja jätaks kasutajale alles võimaluse tarbida ETV kodulehe rikkalikku sisu. Seda rikkalikku sisu, mis tavaliselt mobiilidele mõeldud versioonides puudub.

Nüüd alles läheb tehniliseks.

Eesmärk pühendab abinõu. Tegin ühe lihtsa Chrome’i plug-ini, mis iga avaneva lehe pealt otsib Flow Playerit. Leides selle, parsib ta sealt välja video aadressi ja pakub saatmiseks edasi Raspberry’s asuvale väikesele Pythoni skriptile, mis omakorda juhib omxplayerit. Lõpptulemus on üllatavalt mugav – kuigi kahjuks ei tööta RTMP striimi peal veel edasikerimine kuna seda pole lihtsalt siiani kirjutatud. Vabavara-maailmas pidavat aga asjad ju lihtsalt käima – vaja ainult natuke patchida ja confida! Seega, ülesandeks number üks on leida lähtekood! Kloonida omale repo Githubistmountida Raspberry Weezy image – kompileerida omale üks cross-compiler – õppida FFmpeg librat – kirjutada mõned read koodi – konfigureerida, kompileerida… ja… no peaaegu töötab. Edasi kerib, aga mängimist ei jätka. Tuleb käsitsi pausi panna ja paus maha võtta.

Aga nii lõppeb see seiklusterohke hilisõhtu. Aeg saab otsa ja uus päev toob uued väljakutsed. Jäägu siis pealegi nii, et elus tuleb osata käsitsi pausi panna ja seda käsitsi ka maha võtta.

Asjast huvitatud võivad laadida omale praeguse versiooni kogu tehtud tööst siit: ETV Vaarikas.

“Homse maailma kirjanikud”: laadi tasuta e-raamat siit

“On öö ja ma ei maga jälle. Oleks vale väita, et und ei tule. Ma ei lase tal tulla. Lammaste lugemisest loobusin aastaid tagasi, kui mõtlesin välja algoritmi iseõppiva pildituvastustarkvara jaoks, mis annab sulle pärast mõningaid katseid murdosasekundiga kätte lammaste koguhulga mis tahes suurusega kujutlusväljas.”

Kui Sul tekkis küsimus, et mis jutt see siis nüüd on, siis selgituseks, et tegemist on lõiguga Sass Henno romaanist Proeksperdi ajaloo ainetel. Paberkandjal saab raamatut õige pea poodidest, aga tasuta e-raamatu saad kohe praegu alla laadida siit:

pdf: http://people.proekspert.ee/blog/HMK.pdf

epub: http://people.proekspert.ee/blog/HMK.epub 

 

935555_519361078099309_2104989188_n

 

 

 

 

Pro tiim hindab Robotexil koodi ilu

Robots will take over the world. W will be right behind them.

Kui sa tuled Robotexile ja plaanid seal robotit progeda, siis loe alljärgnevat erilise tähelepanuga, sest see aitab sul võita 500 eurose auhinna. Asi on selles, et Proekspert annab ka sel aastal Robotexil välja auhinna kõige ilusama koodi eest ja siin on mõned vihjed, mida me hindame.

Mis on ilus lähtekood?

Ilus lähtekood on selgesti mõistetav ja hõlpsasti loetav. Loomulikult võiks hakata rääkima siin igasugustest tekstifaili küljendamise võimalustest: taanetest ja tühikutest kuni tühjade ridadeni ja kommentaaride stiilideni välja. Aga kuna me ei dikteeri Robotexi osalistele mingit konkreetset keelt, arendusvahendit ega platvormi, siis jääb ka koodi stiil nende enda valikuks. Küll aga hindame me stiili ühtsust (taane käib kas tühikutega või tabidega, sa ei saa neid vaheldumisi kasutada — või vähemalt ei peaks seda tegema, kui tahad kirjutada koodi, mis on arusaadav ka homme). Sarnaselt peab ka koodi blokke läbiva stiiliga esitama. Muutajate ja meetodite nimed on ilusas koodis alati arusaadavad ja sisu kirjeldavad. Kindlasti ei tohi need olla eksitavalt nimetatud.

Miks me seda hindame?

Jah tõesti? Miks ME (Proekspert) seda hindame? Tegelikult peaks iga Robotexil osalev tiim seda ise juba hinnata oskama. Teisest küljest mäletan ma oma tudengipõlve ja Robotexi kogemusest, et alati jääb üks öö puudu. See aga omakorda tähendab, et hakatakse _kiiruga_ lisama elutähtsat funktsionaalsust, mis pahatihti tuleb muude aspektide (koodi ilu/loetavuse) arvelt. Meie auhind on siinkohal lisaks vaimsele rahuldusele väikeseks lisamotivaatoriks, et koodi ilu mitte ohvriks tuua.

Kuna robotid, või peene välismaise nimega tööstusautomaatika on üks Proeksperdi peamisi tegevusalasid, siis arvame, et robotiprogemispraktikutena ja koodi ilu pühaks pidava ettevõttena saame oma kogemusi teiega jagada.

Miks keegi üldse peaks tahtma oma koodi meile näidata?

Ideaalses maailmas tahavad kõik tudengid oma koodi teistele näidata. Kas selleks, et saada tunnustatud õigeaegselt ja iseseisvalt sooritatud ülesande eest või selleks, et saada väärtuslikku nõuannet mõne ülesande optimeerimiseks või siis võistlemaks teise tudengiga, et näha, kelle kood käib kiiremini. Aga päriselus, kus on päris tähtaeg ja päriselt saavad (t)öötunnid otsa enne, kui võistlus pihta hakkab, on kood tihtipeale sama korras kui tudengi /homework folder (või kirjutuslaud) keset sessi.

Selleks, et Robotexil osalejaid ikkagi motiveerida meile oma koodi näitama (ning taluma meie žürii Priit P. ja Lauri V. piinlike küsimusi), on Proekspert välja pannud ka 500 eurolise auhinna kauneima koodiga tiimile. Kohtume peagi Robotexil ja seal ronime me juba teie robotite ajudesse!

Töökas nädalavahetus Rails Girlsil ehk naised programmeerima!

Jahedad ja vihmased sügisilmad lihtsalt on tubaseid tegemisi soodustavad ja kui üks hetk avastasin, et Rails Girls Tallinna septembrikuu workshopile registeerimine on avatud, siis oli asi otsustatud. Olen koolis paar põgusat programmeerimisteemalist kursust küll läbi teinud, kuid oma igapäevases kvaliteediinseneri töös koodi kirjutamisega siiski ei tegele. Ettevõttesiseselt on aga käimas raamatukogu arendus just Ruby on Railsi kasutades ja nii süveneski idee lasta end sel teemal natuke harida.

Igatahes Rails Girlsi näol on tegemist rahvusvahelise mittetulundusliku õpitoaga, mis on kõikidele huvilistele tasuta. Ahjaa, üks väike aga on ainult – osalejateks on vaid naised või kui ikka väga hästi läheb, siis lubatakse ka mõni mees uksest sisse. Muidugi ainult juhul, kui ta eriti ägeda ja tegija naise kaasa toob. Seekord vist keegi selle trikiga hakkama ei saanudki. Nagu tasuta asjade puhul ikka on ka Rails Girlsi workshopile tunglejate hulk alati suur (see aasta koguni 125 naist ning 2 meest) ja silmapaistmiseks tuleb ära täita paarist-kolmest küsimusest koosnev ankeet. See on võimalus demonstreerida oma suurepärasid ilukirjanduslikke võimeid ja korraldajaid võluda. Kusjuures kui “motivatsioonikiri” on atraktiivselt kirja pandud, siis tundub, et mida vähem programmeerimisest teada, seda suurema tõenäosusega ka Rails Girlsi üritusele kutse saab. Paar kevadel toimunud workshopilt välja jäänud neiut soovitasid oma kogemustest õppida ning oma koodi kirjutamise oskuste kohapealt enesekiitusega tagasi hoida. Just sel põhjusel sai oma ankeeti kirja pandud, et ei ole koodi näinud ja ei ole koodi teinud.

 

Mis see Rails Girls ikkagi on?

Rails Girls on 2010. aasta novembris Helsingist alguse saanud üritus, mida organiseerivad vabatahtlikud Ruby huvilised. Selgitusena olgu öeldud, et Ruby on programmeerimiskeel Jaapanist ning Rails veebiarenduse raamistik, mis siis Rubyt kasutab. Continue reading “Töökas nädalavahetus Rails Girlsil ehk naised programmeerima!”

Acceptance Testing: RSpec vs Cucumber

Levinumad acceptance testide loomise vahendid Behavior-Driven Development metoodikas on RSpec (Ruby jaoks) ja Cucumber (universaalsem). Olles mõlemat mõnevõrra pruukinud, tekkis küsimus, et kumb siis on lõpuks acceptance testimiseks parem. BDD põhitõdesid ei hakkaks ehk siinkohal kordama, vaataks hoopis Cucumberis ja RSpec’is testide kirjutamist hüpoteetilise Rubys kirjutatud veebirakenduse jaoks.

Mõlemad tööriistad kasutavad brauseri käitamiseks Capybara-nimelist veebirakenduste testimise raamistikku. RSpec’i ja Cucumberi erinevus seisneb peamiselt testi loetavuses ning kirjelduse nö. tasemes. Lihtne näide esmalt Cucumberi stsenaariumina:

Feature: Blog articles
  In order to have an awesome blog
  As an author
  I want to create and manage articles

  Scenario: Article index
    Given there are 2 articles
    When I go to the articles page
    Then I should see the following articles:
    | Article title |
    | Article one   |
    | Article two   |

Iga sammu tähenduse Cucumberile arusaadavaks tegemiseks tuleb need defineerida:

Given /there are (.*) articles/ do |number|
  number.times { |n| Article.create! }
end

Nagu näha, kasutab Cucumber testide kirjeldamiseks loomulikku keelt ja seetõttu on sellised testid väga hästi loetavad, samuti aitab kõrgema taseme funktsionaalsusele keskendumine kergemini vastata küsimusele “Mida meie rakendus õigupoolest tegema pidi?“. Teisalt on antud juhul vajalik kirjutada ka sammudefinitsioonid, et Cucumber teaks, mida meie loomulikus keeles kirjeldatud stsenaariumitega peale hakata, seega tekib testidesse üks lisakiht, mis samuti vajab ülalpidamist.

Continue reading “Acceptance Testing: RSpec vs Cucumber”