GPS tripmeeter Androidile

Kõik algas sellest, et hea tuttav rallisõitja küsis minult, kas ma suudaksin muundada tema telefoni GPSi põhiseks tripmeetriks. Sest õiged ralli tripmeetrid on hirmus kallid ja see lahendus oleks palju täpsem. Lisaks jääks ära aeganõudev kalibreerimine rehvi mõõdu muutumisel, mida hooaja käigus üsna tihti ette tuleb. Vastasin, et tema Nokiat muundada ei oska, sest ühtegi seadet pole arenduseks võtta – aga tema kaardilugejat, Androidi jooksutavat Samsungi aga küll. Sellest piisas ja lõime käed.

Esimeseks probleemiks sai kohe, et kuidas tavalisi ralli tripmeetreid üldse kasutatakse. Pole ei mina ega tema ühtegi sellist masinat näppinud ja piltide järgi oli enamus aparaatidel mitu tablood ja hulgim nuppe. Selleks sai ette võetud tõenäoliselt  maailma lihtsaima ralli tripmeetri, ehk õigemini kompuutri, Monit Rally Q-Seeria kasutujuhend. Sellest pidi piisama, et välja selgitada, mida ühe lihtsa tripmeetriga teha peaks saama.

Niisiis, mida üks lihtne ralli tripmeeter tegema peab (Monit Rally Q-10 alusel):

  • lugema kogu- ja vahedistantsi, nii kasvavalt kui kahanevalt,

Lisaks peab sellega saama:

  • nullida eraldi vahedistantsi ja mõlemat distantsi,
  • muuta lugemise suunda või üldse seisma panna ja
  • distantsi käsitsi muuta.

Nullimine, lugemise suuna muutmine ja seisma panek võiks olla teostatav mingi välise puldiga.

Väliseks puldiks oli algselt mõte võtta mõni nupuga hands free seade. Kuid tehniliste raskuste tõttu sai idee tulevasteks versioonideks tallele pandud. Sellest hoolimata sai lõpptulemus hea ning rakendus suudab ka jalakäija kiirusel täpselt vahemaid mõõta.

Esialgu hoian veel pöialt, et rakendus esimesed tuleristsed Maarjamaal edukalt läbiks. Võõrsil rakenduse kasutajate hulk aina kasvab ja juba on Google Play poes ka esimesed arvustused üleval.

Huvilised saavad lahenduse kätte Google Play poest.

Atlassian Summit 2012, osa 2

Keynote: Mike Cannon-Brookes

Neljapäev algas minu jaoks otsa saanud hommikusöögiga. Tühja kõhuga siirdusin hiiglaslikku saali, kus esimese toolirea ees leidus lademetes kott-toole mugavamaks äraolemiseks. Mike Cannon-Brookes, üks kahest Atlassiani asutajast, jutustas keynote‘is pikalt peatselt tulevast Confluence-st:

  • Seal on täiesti uus mobiilne interfeiss, mis tundus esmapilgul üsna pädev olevat.
  • Facebookistumine jätkub ning laikimisele on lisandunud väga tuttavlikud notifikatsioonid (tead ju küll seda punast numbrikest üleval sinisel header‘il, mida sa alati otsid).
  • Tõeliselt kasulikuna tundusid tasklist-tüüpi nimistu ning personaalne todo-märkmete haldus.

 

Keynote‘i teine esineja oli Jeff Ma, kunagine blackjacki guru. Esialgu paistis, et ta räägib tiimitöö olulisusest (blackjacki võtmes). Ta küsis ka mõned intrigeerivad küsimused:

  • Mis saaks, kui atleedid ei teaks oma tulemusi?
  • Kas nad üritaks üldse paremaks saada ja (teiste) rekordeid lüüa?
  • Mis juhtuks aga siis, kui töötajad teaksid oma statistikat töös JIRAga?

 

Ja sujuvalt jõudis ta järgmise (tegeliku?) teemani – tema firma lansseeris äsja avaliku beeta JIRA pluginast TenXer, mis on põhimõtteliselt Google Analytics Jira jaoks. Meetrikad võivad olla kahe teraga mõõgaks, kuid põnev lähenemine sellegipoolest. Eelkõige jäi see mees aga meelde hea huumori ning esinemisoskusega. Lisaks tekkis tõsine huvi vaadata filmi “21”, mille inspiratsiooniks ta oma blackjacki-skeemiga oli (ehk kuidas kasiinodest miljoneid dollareid koju tuua).

 

Edasi möödus päev linnulennul, kuna enamasti olid pausid nii lühikesed, et jõudsin vaevalt järgmise valiku teha ning õigesse ruumi kulgeda.

 Hullusärgis Zen-mees

Launchpad-is tutvustati lõputult erinevaid pluginaid, iga esitlus oli piiratud 5 minutiga, pärast mida toimus koheselt 30 sekundiline mobiilne hääletusvoor. Meeldejäävamad olid:

 Gliffy piraadid

Devspeed tracki esitlus Hacking the Dev Cycle jäi meelde väite poolest, et palk ega üle 6 kuu kogemust kindla programmeerimiskeelega ei mõjuta arendajate tulemust kuigi palju ning et kehvemate ja parimate vahe on üle 10-kordne. Tiimi motivatsiooni annab tõsta näiteks:

  • selgete eesmärkidega,
  • kohese tagasisidega tööle,
  • fokusseeritud tähelepanuga (privaatsus, rohkem ruumi ja kaitstus väliste segajate eest),
  • multitaskingu vähendamisega (you can do anything, but not everything!).

 

Üks mitte-Atlassiani esinejaid oli Jeff Atwood, Coding Horror blogi autor ja Stack Overflow kaasautor, teemaks “Why do we suck?“. Noppeid tema mõtteheietustest:

  1. Embrace the Suck!
    • Ship software before it’s ready.
    • Boyd’s law of iteration – speed of iteration always beats quality of iteration.
    • His personal goal is to suck less every year.
  2. Make things in public:
    • stackoverflow.com – documenting how much we suck so that others might learn from it.
  3. Pick stuff that matters:
    • Ask yourself “So what?”
    • Why/how does it help other people?
    • It’s better to be awesome than suck!

 Jeff Atwood

Korralduse poole pealt oli väga lahe see, et alati oli saadaval laias valikus snäkke (šokolaadid, puuviljad, müsli-bar‘id jms) ja jooke ning rõhk oli jätkuvalt tervislikkusel. Lõuna ajaks veeres sisehoovi kümmekond USA filmidest tuttavat food-truck‘i, igaühes erineva stiili ja päritoluga söögid. Tehnilisi viperusi oli samuti ülivähe, esialgne 2 ruumi omavaheline helireostus lahendati kiiresti ühe ruumi ära kolimisega. Esimesel päeval kippus plekk-katuse all ka veidi kuumaks, kuid 15C väli-temperatuur õnneks päästis hullemast. Kogu üritus oli atlassianliku läbimõeldusega korraldatud, see hakkas igast aspektist silma.

 

Pikemate pauside sisustamiseks leidus kõikjal lahedaid (sihtotstarbelisi) nurgakesi:

  • AtlasBar-ist sai abi tehniliste muredega.
  • Guru Lounge-s hängisid kõikide toodete gurud, kellelt sai tulevikuplaane ning muud vajalikku välja pumbata ja niisama juttu puhuda.
  • Industry Mixer-i abil viidi kokku erinevatel elualadel Atlassiani tooteid kasutavaid ettevõtteid (nt mängundus, mobile, haridus, finants, enterprise jne). Seal kohtasin inimesi, kes vastutasid näiteks mitmete üle miljoni issue‘ga JIRA haldamise eest ja kuulsin projektidest, kus on üle 200k issue. Pole paha.
  • Speaker Decompression Room – pärast esinemist sai esinejaid üks ühele edasi tüüdata.

 Guru Lounge

Õhtupoole rääkis Jonathan Nolen veidi plugin developer’e puudutavatest asjadest, kuid millegi rabavaga ta ei suutnud üllatada. Küll aga tegi seda George Bennet OnDemand cloud’i teenuse tehnilisest poolest rääkides. Tuleb välja, et Atlassian on kiiresti saamas üheks suurimaks Java hostingu pakkujaks kogu maailmas! Hetkel jookseb nende serveriparkides juba üle 65 000 JVMi ja selliste mahtude juures hakkavad jõudluse ning manageeritavuse juures rolli mängima juba pisimadki detailid. Ühe huvitava lahendusena on nad oma tiimiga kasutusele võtnud nö Swear-wall‘i, kus nad saavad vabalt valitud keelekasutusega väljendada oma tundeid erinevate töös kasutatavate tehnoloogiate, teekide jms osas. Rohkem sõimu saavatest asjadest püütakse lahti saada, sest need pole töötajate masendust lihtsalt väärt :)

 Rock-video!

Pärast ametlikku osa veeti kogu 1000-pealine kamp vee äärde Summit Bash-ile, kus kaks baari olid omavahel ühenduse saanud ning lisaks suurepärastele vaadetele serveeriti hõrke delikatesse ja avatud baar ei lasknud kellelgi janusse jääda. Erinevates nurgakestes sai nautida live jazzmuusikat, diskohitte, teha parukates ja kostüümides videofilmi ning osaleda purjus IT-inimestega karaokemaratonil. Kahju oli ainult sellest, et just siis, kui pidu oli hoo sisse saanud, tõmmati juhe seinast ja paluti kõigil viisakalt lahkuda… Ilmselt vajalik manööver tagamaks mingisugustki publikut järgmise päeva hommikustele esinejatele.

 Summit Bash down at the Embarcadero

To be continued.

Veebirakenduste turvalisusest

Osalesin hiljuti veebirakenduste turvakoolitusel, mis muutis mu suhtumist internetti ilmselt igaveseks. Miks? Kuidas sulle meeldiks veebipoest saada näiteks tasuta plasmateler, 9 mobiiltelefoni ja lisaks veel väike rahasüst krediitkaardile? Kõik see on teoorias võimalik, kui veebipoe programmeerija on teinud mõned vead, testija pole neid üles leidnud ja ka firma muudes protsessides on puudujääke.

Aga kuidas siis neid tasuta asju saada? Näiteks, proovi panna ostukorvi sulle sobiv teler ja -9 mobiiltelefoni (just, negatiivne arv), mille kogusumma ületab teleri maksumuse. Kui tellimus läbi läheb, saad parimal juhul nii teleri, telefonid (kuna laos võidi arvata, et see miinusmärk on mingi süsteemi viga) kui ka negatiivse lõppsumma krediitkaardile (kui raamatupidamises arvati, et tegu on kreeditarvega). Kõlab uskumatult, aga väidetavalt true story.

 

Et taolisi vigu vältida, peaks kõigepealt teadma, kuidas pätid neid otsivad. Ning just sellest antud koolitus oligi. 2 päeva hands-on “häkkimist” ja nüüdseks vaatan ma pea igat veebi input-form‘i natuke teise pilguga. Kui minu sisestatud andmeid samal saidil kuskil teises kohas ka välja näidatakse, siis teen paranoiliselt väikse testi. Näiteks, toksin input‘i sisse “javascript:alert(1337);”, salvestan ja kui selle peale hüppab mulle ette hüpikaken, kuhu on kirjutatud 1337, siis saab seal lehel juba väga palju pahandust korda saata :) Kuigi see oli väga lihtsustatud näide ja programmeerijad tavaliselt päris nii elementaarseid vigu ei tee, siis näitab see kätte suuna, kuidas peaks mõtlema nii veebirakendusi arendades kui ka testides.

 

 

Koolitusel kaeti hulganisti erinevaid ründe liike ja viise, kuidas nende vastu kaitsta. Mõned märksõnad: Cross-Site Scripting (XSS), küpsised (cookies), sessiooni kaaperdamine, sunnitud päringud (Cross-Site/On-SiteRequest Forgery), kasutajaliidese võltsimine (User Interface Redress Attacks, ClickJacking, CursorJacking jne). Koolitusel öeldi tabavalt, et “ründajale piisab ühest turvaaugust, arendusmeeskond peab leidma ja parandama kõik”.

 

Arvestades, et isegi kahest päevast jäi kogu materjali katmiseks väheks, siis ühe artikliga ei tee harimise osas just kuigi palju ära. Tegelikult peaks sellise mõttemaailma tutvustamine olema ülikoolide IT-teemalistes õppekavades, sest kust muidu äsja tööturule tulevad noored teadma peaks, kuidas nii tööandja kui viimase klientide huve kaitsta. Ja ka juhtide tasemel peaks veebirakenduste turvalisuse teemale rohkem rõhku panema – kasvõi selleks, et nad teaks, mida nõuda. Teadmatuse, kogenematuse, naiivsuse, liigse kiirustamise jms tõttu töösse lastud turvaauguline rakendus võib ettevõttele põhjustada märkimisväärseid ebamugavusi ja rahalisi kahjusid. Ja seda ei soovi ju keegi.

 

Lõpetuseks natuke alatut reklaami ka – koolitust korraldanud Clarified Security (sh Pro endine töötaja Jaanus Kääp, kes tegi oma hobist elukutse) näol on tegu tõsiste oma ala spetsialistidega. Lausa lust oli vaadata, kuidas ükski küsimus ei jäänud vastuseta, näiteid nii kodust kui kaugemalt oli kamaluga võtta ning praktilised ülesanded olid hästi läbi mõeldud. Just sellised peaksid ained ülikooliski olema, entusiasm õppida tuleks iseenesest.

Atlassian Summit 2012, osa 1

Nagu tavaks, toimub igaaastane Atlassian Summit San Franciscos ja Proekspert oli seal kenasti kohal. Kuna tegu on suhteliselt rohelise/öko USA linnaga, siis tunnevad seal isegi eurooplased end kodusemalt. Kahju ainult, et ilm nii nigel on – ühes päevas võib pea igat aastaaega kogeda. Võrreldes eelmise külastusega hakkasid tänavatel aga silma (ja kõrva ja ninna) kodutute hordid. Ei tea, kas asi on majanduslanguses või meelitab neid üle riigi sinna kokku seadus, mis lubab inimestel tänavatel magada – igatahes turistimagnetina see just ei mõjunud.

Käsitsi sätitud silt, tänapäeval kasutusel üksnes kirikutes ja koolides :)

Summit hakkab juba tõelise tarkvara-konverentsi mõõtmeid võtma – sel aastal oli üritus kokku 4-päevane (vähemalt partneritele) ning erinevaid track‘e oli lausa seitse! Lisaks Atlassiani rahva ja nende partnerite-sponsorite presentatsioonidele võis osa saada ka kuue külalisesineja ettekandest. Teisipäev (29.05) oli pühendatud partneritele. Monaco hotellis sai suhelda nii teiste ekspertide (uus nimetus partneritele) kui ka võtmefiguuridega Atlassianist ning loomulikult ei puudunud söögi- ega joogipooliski. Seal sai aimu, mis sorti koostööd nad oma partneritelt tulevikus ootavad, kuidas nemad ise abiks saavad olla ning kuhu nad oma firma ja toodetega tüürida plaanivad. Õhtu lõppes (küll ilma Atlassiani osaluseta) väga ebatavalises pubi moodi kohas nimega Monk’s Kettle, kus sai valida sadade microbrewery‘ite õllede/siidrite seast ning süüa näiteks luuüdi koos popkorni ja kapparitega ning vasikapõske polentaga.

 

Kolmapäev (30.05) oli ametlikult küll training-day, kuid kuna see ei tekitanud mus väga elevust, siis läksin hoopis Atlassiani kontorisse väikse seltskonnaga GreenHopperi teemal juttu puhuma. Shaun Clowes (GH product manager) tegi pisikese ettekande GH 5.10-st ning järgneva Q&A käigus sai tema, Nick Muldoon’i (GH ja agile guru) ning mõnede partneritega arutada, mis meeldib, mis mitte, mis GH 6 toob jne. Samal päeval välja kuulutatud GH 5.10 tõi Scrumi toe beetast välja ja sprindi ülevaates saab nüüd burndown graafikul näha ka skoobi muudatusi. Tulevikust nii palju, et praegu RapidBoardi nime all tuntud “uus” osa muutub peagi Agile vaate default funktsionaalsuseks (praegused board’id kolivad omaette Classic sektsiooni); Epicutele tehakse makeover ning oodata on ka uuendatud gadget’eid.

Avarus, hiigeltrepp ja klaasist nõukarid!

Atlassiani kontor oli täitsa omaette elamus. Väljast jättis see mulje, et tegu on lihtsalt ühe suure laohoonega, aga seest avanes hoopis teine pilt. Avarus lõi natuke isegi pahviks, keskne aatrium on läbi mitme korruse ja ülemisele korrusele viib hiigelsuur ja -pikk trepp, mis on poolenesti chillout area mõnusate patjadega. Nagu IT-firma kontorile kohane, on seal palju relax-nurgakesi, mõnes neist isegi võrkkiige, massaažitool ja õllekraan (true story)! Kööginurgas hakkas silma tohutu riiul erinevate orgaanilist päritolu snäkkide, puuviljade ja mitmekesiselt varustatud külmkappidega. Ning paljuski klaasist koosolekuruume saab mugavalt iPad-i  abil broneerida – peab ikka MeetNg-lt tolmu maha pühkima ning selle korralikult tööle panema :)

 

Õhtu sai stardi Industry Mixeri nimelise üritusega. Juhtusin Enterprise nurgakeses kokku Bank Of America inimestega ning kuulsin hämmastavaid lugusid miljonitest issue‘dest nende seitsmes JIRAs. Mehed peavad rinda pistma ka täiesti uut laadi probleemiga – mida teha projektiga, kus on üle 200 000 issue?! Isegi horisontaalne skaleerimine ei ole siin väga abiks…

 

Muus osas oli õhtu suhteliselt sponsorite promo. Bokside külastamiseks olid nad välja mõelnud templite kogumise süsteemi, usinamad külastajad said võimaluse võita auhindu. Sponsorite hulgast hakkasid silma just testide manageerimise tööriistade provaiderid, keda oli kuidagi väga palju sinna kokku tulnud. Mitmed neist duplitseerisid ka JIRA funktsionaalsust ning ainus puutepunkt Atlassiani toodetega oligi enamasti connector JIRA-ga issue‘de sünkimiseks.

Külasta bokse, kogu templeid ja võida auhind!

Teine suurem suund lisaks tavapärastele suurtele plugina-tegijatele (Appfire, AppFusions, Adaptavist, Customware jne) oli kollaboratiivsus-rakenduste oma. Sococo mehed olid loonud 90ndate mängudega sarnaneva aplikatsiooni, kus sa saad kõigepealt luua endale kontori plaani, panna sinna sisse inimesed ning siis nendega seal igal võimalikul viisil interact‘ida. Vestluse alustamiseks tuleb näiteks koputada uksele, seinad “läbi ei kosta” jne. Ei kujuta ette, kui paljud inimesed midagi sellist nt Skypele eelistavad, aga noh, vähemalt teistsugune. Esindatud olid veel soomlased oma Team Inbox nimelise tootega ning loomulikult Atlassian oma vastomandatud HipChat-iga.

 

Huvitavam oli näiteks PoolParty Confluence plugin, mis sildistab semantilsie mootori abil lehekülgi nende sisu põhjal ja hõlbustab olulisel määral otsingut, eriti just väga mahukates wikides. Ühelt sponsorilt sain aga tööpakkumise hakata nädalavahetustel ja/või õhtutel testijaks. Nende ärimudeliks on pakkuda testijate-armeed mistahes tüüpi testimise läbiviimiseks kõikjal maailmas. Tasuskeem soodustavat professionaalsust, kuna õnnestumise kriteeriumid ja otsuse maksta/mitte maksta saab klient ise teha. Võib täitsa abiks olla, kui tahad näiteks Indoneesias kohaliku veebilehega välja tulla ning endal puuduvad indoneesia keelt oskavad testijad; või siis tahad teada, kuidas su Iirimaal hostitud leht näiteks Austraalias või USAs perform‘ib. 

All-you-can-drink-bar!

Ja korraliku punkti õhtule pani loomulikult Summiti avapidu Mars Bar-is. Väliste gabariitide ja ukse taga ootava saba põhjal jäi mulje, et mitte mingil juhul kogu see mass sinna sisse ära ei mahu, kuid võta näpust. Mööndustega jäi ruumi ülegi ning kuivaks ei suudetud baari samuti juua. Õhtu oli küllalt jahe ja pool üritusest toimus sisehoovis, kuid õnneks ei pidanud sooja saamiseks ainult alkoholile toetuma. Nii suurt väliõhu soojendajat (mis sarnanes rohkem mingi boileriruumi agregaadiga) pole ma eales näinud… ja ilmselt ei näe ka. Natuke und ning peagi olin taas konverentsi-angaaris kohal. Sellest aga järgmises postituses.