Autobarin juoma-automaatti ja mahdoton peruutus

Useissa yrityksissä on työntekijöiden päivittäinen kofeiiniannos ulkoistettu Autobarin kuumajuoma-automaateille, joista saa erilaisia juomia kahvikkeen lisäksi. Kahviahan ei kyseisestä laitteesta saa, sillä kahvikuppiin saatava juoma on yleensä maultaan aika kaukana kahvista. Juomien tilaus hoituu nestekidenäytöllä ja painikenapeilla varustetun käyttöliittymän kautta ihan näpsäkästi. Vaikka käyttöliittymän tekstejä on mahdollista muokata, olisi oletuksena olevia tekstejä voinut hieman miettiä.

En oikein ymmärrä, mitä varten kahvikkeen valmistumisen ja sen kuppiin lorauttamisen jälkeen, on vielä mahdollisuus peruuttaa toiminto. Ei kahvia enää kupista takaisin laitteeseen imetä, vaikka peruuta-nappia painaisikin. Peruuta-napista pääsee vain takaisin päävalikkoon ja kahvi on edelleen kupissa. Mielestäni kyseistä toimintonappia ei tarvittaisi ollenkaan, vaikka toiminto onkin ns. poistumistie.

Lisäksi automaatista saa kahvikupin vakiona vain puolilleen, eikä vastajauhetuista pavuista suodatettu kahvi ole sen parempaa.

Autobar

Macbook alumiinikotelossa tuo iloa arkeen

Apple julkaisi alkusyksystä uudet Macbookit ja tällä kertaa muutokset olivat hieman enemmän kuin vain numerollisia. Macbookit saivat muun muassa uudet alumiiniset unibody -kuoret ja näppäimettömän ison lasisen kosketuslevyn. Lisäksi Macbookista vähennettiin FireWire-liitäntä, näytöksi tuli kiiltävää pintaa ja Mini-DVI vaihtui Mini DisplayPorttiin.

Olin jo hieman pidempään harkinnut Macbookin hankkimista, koska töissä saa päivisin ihan riittämiin säätää Windowsin ja osittain Linuxin kanssa, joten kotona haluaa asioiden vain toimivan. Uusien Macbookkien myötä olikin hyvä syy päästä harkintavaiheesta eteenpäin ja tilata laite Apple Storesta. Myös musta perjantai osui sopivasti kohdalleen, joten Apple Storen hinnastakin sai hieman alennusta. En jaksanut alkaa prosessoimaan ADC:hen liittymistä ja kivijalkaliikkeissäkin uusien koneiden saatavuus oli nihkeää.

Kirjoitin aikaisemmin, että Applen laitteistot ovat sopivan karsittuja ja vaihtoehdot ovat helposti toisistaan erottuvia. Käytännössä tämä ei kuitenkaan tehnyt valintaa aivan niin helpoksi, kuin ajattelin, mutta päädyin lopulta edullisimpaan unibody Macbookkiin, eli Core 2 Duo 2.0 GHz:n, 160 GB:n ja 2 GB:n muistilla varustettuun versioon. Harkitsin kyllä noin 300e kalliimpaa 2.4 GHz:n versiota, jossa olisi ollut nopeamman prosessorin lisäksi 90 GB:ia isompi levy ja valaistu näppäimistö. En kuitenkaan arvioinut noita ominaisuuksia 300 euron arvoisiksi.

Viimeksi kun tilasin iBookkini Storesta Lappeenrantaan, kesti sen toimitus vajaat parisen viikkoa, mutta tällä kertaa Macbook löysi tiensä vajaassa viikossa. Reaaliaikaa meni pari päivää enemmän, koska välissä oli viikonloppu ja maksoin pankkisiirrolla. Visa on edelleen hankintalistalla. Samalla toimituksella Storesta saapui Airport Expert, vaikka hieman kallis se tosin oli. Mutta onhan se sentään valkoinen ja siinä on omena kannessa :)

Unibody
Macbookin uusi yhdestä alumiinipalikasta sorvattu unibody-kotelo on todella jämäkkä ja iBookin muovinen kuori tuntuu tähän verrattuna, no, muoviselta. Unibody-kotelo ei nitise tai natise ja luo laadukkaan tuntuman. Hieman kylmähän metallinen pinta on, mutta koneen lämmitessä myös kotelo lämpiää hieman.

Kosketuslevy
Lasinen ja napiton kosketuslevy on ovela keksintö ja toimii mainiosti. Jättämällä erillinen nappi pois, saadaan touchpadille kätevästi lisää tilaa ja ulkonäöllisestikin ratkaisu on siisti. Kosketuslevy toimii yhtenä suurena nappina ja levyn alaosa painuu hieman herkemmin kuin yläosa. Yleensä käytän kuitenkin nappina touchpadin näpyttämistä, kuten iBookissakin.

Ominaisuudet
Numeroiden osalta Macbook on hintaansa nähden pienoinen pettymys. 160 GB:n 5200 rpm:n levy on nykymittapuulla alimitoitettu ja tilalle vaihtuukin jossain välissä vähintään 320 GB:n levy, kenties 7200 kierrosta hyrräävänä. Lisäksi vaikka muistia on yhtä paljon kuin pöytäkoneessani eli 2 GB, pitänee senkin tuplaamista harkita. Suorituskykynsä osalta tupla-ytimellinen 2.0 GHz -prosessori pitäisi riittää, vaikka virtuaalikoneilla leikkiminen voisi enemmänkin puserrusta kaivata. Positiivisena ja kaivattuna muutoksena on integroidun Intelin näytönohjaimen vaihtuminen nVIDIAn GeForce 9400M:ään.

Näyttö
Oikeastaan ainut asia mikä Macbookeissa ja Macbook Prossa kismittää, on näyttöjen heikot resoluutiot: 13.3″ Macbookista löytyy vain 1280×800 ja 15.4″ Macbook Prosta 1440×900. Etenkin 15.4″:sta näytöstä olettaisi nykyaikana löytyvän 1680×1050 pikseliä. Hyvin toimiva touchpad helpottaa kuitenkin asian hyväksymistä ja ainahan koneen voi liittää ulkoiseen näyttöön.

Yleisesti ottaen näyttö on etenkin sohvalta käytettäessä ihan asiallinen, mutta kaipaisi hieman laajempia katselukulmia ja hieman enemmän aukeamisvaraa etenkin sylissä käytettynä. Katselukulmien osalta iBook oli samaa tasoa ellei huonompi ja toki katselukulmien heikkous on LCD-näyttöjen ominaisuus. Internetin sivustoilla on paljon arvosteltu mattapintaisista näytöistä luopumista ja kyllähän kiiltäväpintainen näyttö aikalailla heijasteleekin, mutta ei itseäni ole vielä pahemmin häirinnyt.

Näppäimistö
Näppäimistö on erittäin hyvä ja jopa parempi kuin iBookissa, vaikka en olisi uskonut, että siitä voitaisiin enää paremmaksi pistää. Myös Applen erilliset näppäistöt ovat varustettu samanlaisilla näppäimillä kuin kannettavissa ja luultavasti ostankin langattoman bluetooth-näppäimistön. Näppäimistöön kaipaisin kuitenkin pageup/pagedown ja etenkin home/end ja delete -näppäimiä. Vaikka kyseiset toiminnot löytyvätkin näppäinyhdistelmien takaa, on niiden käyttö hieman hankalaa. Taustavalaistua näppäimistöä jää hieman kaipaamaan, etenkin naputellessa konetta sylissä hämärässä.

Uudistunut Macbook on kyllä erittäin vakuuttava kokonaisuus, vaikka muutamat ominaisuudet voisivat olla parempiakin. Uudesta Macbookista voi lukea kattavamman arvion esimerkiksi Ars Technicasta.

Hitaasti hyvä tulee tai ainakin parempi mieli

Tänään Helsingin Sanomissa kirjoitettiin ”Stahanovien maa” -otsikolla kovatempoisesta 2000-luvun Suomesta ja kuinka hitaus, yhteiskunnallisena selviytymisstrategiana, on nousussa. Slow movement, downshifting, tempo giusto eli elämän hidastaminen on kirjoituksen mukaan väsähtävän keskiluokan vastaliike kiihtyvälle tempolle. En ala kirjoitusta tähän referoimaan, mutta asiaa käsitellään aika hyvin ja niin sanotun hitausliikkeen perusideat tulevat selville. Kiire ja nopeuden ihannointi on levinnyt kaikkialle, eikä se ole ollenkaan positiivinen asia. Jopa klassista musiikkia soitetaan nopeammalla tahdilla kuin aikaisemmin.

Jutussa kirjoitetaan lisäksi hitausliikkeen esitaistelijasta, kanadalaisesta toimittajasta Carl Honorésta, joka painoi pausea ja kirjoitti ”Slow – Elä hitaammin”-kirjan. Kesällä ja alkusyksystä kyseistä kirjaa lukiessa alkoi kyllä ajattelemaan, että mihin tässä oikeasti on kiire ja eikö asioita voisi tehdä hieman hitaamminkin. Kannattaa vilkaista Honorén puhe hitaudesta ja kiireettömyydestä TED Talkista.

Etenkin töissä näkee, että usein puristetaan projekteja tiukoissa aikatauluissa ja ilmapiirikin on usein kovin kiireinen. Tekemällä asioita hieman hitaammin, olisi usein myös lopputulokset parempia ja harkitumpia. Lisäksi, jos vielä käytetyt systeemityömallit olisivat hieman ketterämpiä, saataisiin vähemmällä työllä enemmän aikaan. Olisi lisäksi hyödyllistä ottaa lyhyet päiväunet töiden lomassa ja kuten nokkaunimies Winston Churchill aikoinaan totesi: ”Älkää luulko, että tekisitte vähemmän töitä, jos nukkuisitte päivällä. Se on typerä luulo, jota pitävät yllä mielikuvituksettomat hölmöt. Saatte aikaan enemmän. Teette päivässä töitä kahden edessä… no puolentoista.”

Työelämän kiirettä on usein vaikea hiljentää sikariportaan vanhoillisten johtamistapojen vallitessa, mutta vapaa-aikaansa voi hidastaa. Ei hitaus itsessään ole varsinaisesti mikään itseisarvo ja tietyt asiat vaativat nopeutta, mutta nauttimalla asioista ja käyttämällä kiireettömästi aikaa johonkin, saa usein ainakin paremman ja rauhoittuneen mielen. Muutaman tunnin pyöräily metsän siimeksessä ja kirjojen lukeminen onkin jo tullut todettua käteväksi tavaksi irtautua reaalimaailmasta ja häivyttää arkiset kiireet. Etenkin raikkaan ulkoilman ja liikunnan jälkeen mielikin on jälkeenpäin parempi. Honorén kirjaa lukiessa lisäksi mietin, että voisi olla kiva kokeilla myös joogaa. Vielä kun tuon ajatuksen saisi viety toteutuksen asteelle.

Kirjoituksen otsikkoon viitaten, Aleksei Stahanov oli neuvostoliittolainen kaivosmies, jonka (kommunistipuolue) väitti vuonna 1935 sankarillisesti louhineen 102 tonnia hiiltä viidessä tunnissa ja neljässäkymmenessäviidessä minuutissa. Eli tehneen töitä niin perkeleesti.

Päivän linkit 20.12.2008

Ikean tee-se-itse Bestå TV-taso

Pääsin viimeinkin viime viikonloppuna käymään Ikeassa, sillä TV-tasostani oli tullut auttamatta liian pieni kaikille vempeleille. Löysinkin muutamia potentiaalisia vaihtoehtoja, mutta kaikissa oli jotain hyvää ja jotain huonoa. Näköjään myös huonekalujen valinta voi olla vaikeaa.

Löysin kuitenkin melkein kelvollisen TV-tason, vaikka en kyllä pystynyt ymmärtämään suunnittelijan ajatuksia. Mitä tekee TV-tasolla, jossa välitasojen takaosassa ei ole aukkoa johtojen läpivientiä varten: ei sitten yhtikäs mitään. No, ainahan reiät johdoille voi tehdä itsekin.

Bestå TV-tasoon syntyikin helposti johtojen läpiviennit luikauttamalla sahalla pienet puolipyöryläiset reiät takaseinän ohueen levyyn. Työkalupakistani ei kyllä löytynyt oikein kunnollisia työvälineitä, mutta kyllä se pieni rautasahakin ”puuhun” upposi kuin sulaan voihin. Helpointa olisi ollut hurauttaa reikäsahalla, mutta paikallinen Clas Ohlson oli ilmeisesti lopettanut käsiporien myymisen, enkä tätä varten halunnut sähköporaa hankkia. No, reiät tuli kuitenkin saatua aikaan ja melkeinpä vielä pyöreät.

Ikean Bestå -huonekalusarja on muuten aika näppärä, sillä sarja on käytännössä kuin aikuisten Lego-sarja, jossa erilaisista osista rakennetaan haluttu kokonaisuus, tai ainakin melkein. Tietenkin jos haluaa huonekalunsa puusta, eikä puristetusta pahvista, kannattanee suunnata jonnekin muualle kuin Ikeaan.

Bestå Bestå

Parranajo ja Gillette Fusion Power Stealth

Olen parran kasvun alkamisesta lähtien ajanut parran sähkökoneella ja partahöyliin saati perinteiseen veitsellä partakasvuston siistimiseen ei ole tullut juurikaan tutustuttua. Luotettava Braunin partakoneeni alkoi kuitenkin jo olemaan elinkaarensa päässä teränvaihdosta huolimatta, joten oli siis aika tutustua hieman tarkemmin mitä partahöylillä olisi tarjottavana.

Tekniikkaa rakastavana ihmisenä ostin kaupasta tietenkin Gilleten (flash) turuilla ja toreilla mainostettavan Fusion Power Stealth -partahöylän ja Fusion Hydra Gel -partageelin sisältävän paketin. Kyseisestä höylästä löytyy ”5 entistä lähemmäksi toisiaan sijoitettua Power Glide -terää. Tällöin yksittäiseen terään kohdistuu vähemmän painetta ja parranajo on ennenkokemattoman miellyttävää.” ”Joustavat Comfort Guard mikroliuskat (15 kpl) kohottavat partakarvat ihosta, jolloin parranajo on uskomattoman miellyttävää ja tarkkaa.” Lisäksi höylässä on E-vitamiinia, aloeta ja luonnonöljyjä sisältävä Indicator Lubrastrip voitelunauha. Kaiken lisäksi partahöylä on varustettu Power Handle -varrella, joka tuottaa hellävaraisia mikrosykähdyksiä. Vaihtoterän takaa löytyy parranrajausterä esimerkiksi pulisonkien ajoon ja parran muotoiluun.

Kaikkea ne mainosmiehet ja insinöörit keksivät, mutta korulauseista ja ominaisuuksista huolimatta, ei Gilleten partahöylien lippulaiva oikein nostattanut tunteita. Ainakaan positiivisia. Kenties en vain osaa ajaa partaa oikein partahöylällä, sillä tuntui että höylä enemmänkin repi karvoja naamasta kuin leikkasi niitä. Ainakin ajo oli takkuista. Luin kyllä partahöylällä ajon ohjeet, mutta ei se juurikaan auttanut. Kaiken kukkuraksi partahöylällä ja -geelillä lutraaminen on mielestäni aikaa vievää ja hankalaa.

Partahöylät ovat varmasti käteviä ja hyviä välineitä, mutta itselleni ne eivät oikein tunnu sopivan. Parempi siis vain pysyä partakoneiden parissa ja tilata uusi Braun lähimmästä verkkokaupasta. Partakoneita (Brauneja) kun on tarjolla liikkeissä rajoitetuin valikoimin ja ikävän ylihinnoiteltuina. Onneksi Koneboxissa sattuikin sopivasti olemaan tarjouksessa Braunin 9585 -partakone Clean & Renew -latausasemalla. Siinä vasta hieno laite onkin.

No, pitänee kuitenkin joskus viikonloppuisin ajaa välillä parta myös höylällä ja siten voi vaikka vertailla leikkausjälkeä.

Fusion Power

Versionhallinnan parhaat käytännöt koodaajalle

Versionhallinnasta ja siihen liittyvistä asioita on kirjoitettu paljon, mutta useissa kirjoituksissa on keskitytty lähinnä teknisiin asioihin ja eri versionhallintajärjestelmien mahdollistamiin asioihin. Harvat kirjoitukset keskittyvät käytännön asioihin ja niin sanottuihin parhaisiin käytäntöihin, joita soveltamalla versionhallinnan käytöstä saa paljon enemmän irti.

Muutamia käteväksi todettuja ja omasta mielestäni ”parhaita käytäntöjä” koodaajan näkökulmasta ovat muun muassa:

  1. Työn kulku
  2. Vie koodi versionhallintaan usein ja aikaisin
  3. Vie yhtenäisiä kokonaisuuksia
  4. Kirjoita järkeviä commit-viestejä
  5. Tee koodaustyylin muutokset erillään oikeista muutoksista
  6. Älä vie tiedostoja, jotka muuttuvat dynaamisesti
  7. Älä vie koodia, joka ei käänny


1. Työn kulku
”Version Control with Subversion” -kirja selvittää normaalin työn kulun, joka on hyvä omaksua versionhallintaa käytettäessä (hieman sovellettuna):

  1. Hae koodista tuorein versio versionhallinnasta
  2. Toteuta koodiin tehtävät muutokset
  3. Hae tuorein versio ennen koodin vientiä versionhallintaan
  4. Aja testit uudestaan ja varmista, että tekemäsi muutokset toimivat
  5. Vie koodi versionhallintaan yhtenä kokonaisuutena
  6. Selvitä konfliktit
  7. Tarkista, että versio kääntyy myös build-palvelimella
  8. Korjaa virheet tai palauta

2. Vie koodi versionhallintaan usein ja aikaisin
On suositeltavaa toteuttaa Check In Early, Check In Often -periaatetta. Tällöin muut näkevät mitä olet tekemässä ja koodi on muidenkin käytössä.

”If the code isn’t checked into source control,
it doesn’t exist.” – Coding Horror

Lisäksi jos piilottelet koodia omalla koneellasi, etkä synkronoi sitä versionhallintaan pitkään aikaan, voi muutosten yhdistämisestä tulla erittäin työlästä. Pieniä kokonaisuuksia on helpompi verrata ja saadaan aikaan vähemmän konflikteja.

Vaikka idean järkevyys ja käytännöllisyys on helppo ymmärtää, on käytännön toteutus usein jotain muuta. Itse olen ainakin huomannut, että omaa koodia tulee helposti pantattua levyn nurkalla, kunnes kyseinen ominaisuus on ”valmis” ja testattu.

”Hiding your code until it’s ”done” may feel safer, but it isn’t. Sharing your ongoing code with your coworkers is scary, much less the world — but it also results in feedback and communication that will improve your code and draw you closer to the project you’re working on.” – Coding Horror

3. Vie yhtenäisiä kokonaisuuksia
On suositeltavaa viedä versionhallintaan loogisesti yhtenäisiä kokonaisuuksia. Tämä tekee versiohistorian seuraamisesta huomattavasti hyödyllisempää, etenkin jos muutokset käsittelevät useita eri tiedostoja.

Eli, jos teet useita yhtäaikaisia muutoksia, jaa ne useampaan loogiseen kokonaisuuteen ja vie ne osissa. Näin yksittäisten muutosten historiaa on helpompi seurata ja nopeuttaa mahdollisten bugien metsästystä myöhemmin. Jos siis teet ominaisuutta A, B ja C sekä korjaat bugeja 1, 2 ja 3, pitäisi niistä muodostua vähintään kuusi committia. Vastaavasti, jos teet suuria muutoksia tai toteutat itsenäisiä muutoksia useisiin loogisiin moduleihin, vie muutokset erikseen, vaikka ne olisivatkin osa isompaa kokonaisuutta.

Käytännössä sitä kuitenkin usein huomaa koodaavansa hieman sieltä sun täältä sitä ja tätä, ja lopulta järkevän yhtenäisen kokonaisuuden vieminen versionhallintaan on käytännössä mahdotonta.

Tietenkin tätä periaatetta on helpompi noudattaa sovelluksen ylläpidossa kuin sovelluksen kehittämisessä, jossa puutteellisia ja koodausta kaipaavia asioita on paljon. Teoriassa järkevä ”commit”-tapa on helppo omaksua, mutta käytännössä yhtenäisen kokonaisuuden siirtäminen versiohallintaan vaatii itsekuria ja koodauksen suunnittelua.

4. Kirjoita järkeviä commit-viestejä
Kirjoita aina jokin kommentti viedessäsi koodia versionhallintaan. Kommentin tulisi olla lyhyt ja ytimekäs, ja kertoa mitä muutettiin ja miksi. Jos teit useita muutoksia, kirjoita ne omille riveilleen.

On myös kätevää lisätä kommentin eteen jokin tunniste kuten Fix tai Add, viitaten minkä tyyppisiä muutoksia teit. Tämä myös helpottaa sisällön filtteröintiä myöhemmin.

Korjatessa jotain tiettyä bugia tai pyydettyä ominaisuutta, on suositeltavaa lisätä bugin tai issuen numero commit-viestiin.

”If the changes you made are not important enough to comment on, they probably are not worth committing either.” – loop label

5. Tee koodaustyylin muutokset erillään oikeista muutoksista
Koodaustyyli voi kokea muutoksia ja kehitysvälineessä voidaan esimerkiksi ottaa käyttöön automaattiset koodimuotoilut. On erittäin suositeltavaa, että koodin muotoiluun vaikuttavat muutokset tehtäisiin erillään oikeista muutoksista.

Jos koodimuotoilut ja muutokset sekoitetaan keskenään, on muutosten jäljittäminen ja kohdistaminen käytännössä mahdotonta.

6. Älä vie tiedostoja, jotka muuttuvat dynaamisesti
Versionhallinnassa olevien tiedostojen olisi hyvä olla sellaisia, joiden sisällöstä valta on käyttäjillä eikä esimerkiksi kehitysympäristöllä. Esimerkiksi ei kannata viedä Eclipsen asetuksia tai projekti-tiedostoa, jotka muuttuvat riippuen kehittäjän haluamista asetuksista. Kyseiset tiedostot eivät varsinaisesti liity projektin koodiin ja aiheuttavat vaan turhaa synkkaamista. Myös projektin binäärit ja Javadocit voidaan mieltää turhiksi versionhallinnan näkökulmasta.

(via Perforce)

7. Älä vie koodia, joka ei käänny
Ei ole suositeltavaa viedä versionhallintaan koodia, joka ei käänny ja hajottaa projektin myös muille kehittäjille. Toisaalta, ideaalissa tilanteessa, ei pitäisi koskaan lähteä toimistolta viemättä koodia versionhallintaan.

Jos teet muutoksia, jotka vaikuttavat muihin, harkitse koodin branchaamista muutoksen toteuttamiseksi ja yhdistä koodi, kun olet valmis. Toisaalta, toimimaton koodi ei ole syy olla viemättä sitä versionhallintaan.

”It’s better to have a broken build in your working repository than a working build on your broken hard drive.” – loop label

Yhteenveto
Versionhallinnan käyttö on omaksuttu osaksi sovelluskehitystä ja toivottavasti edes osa yllä olevista periaatteista on jo useimpien kehittäjien käytössä. Ellei käytössä olevia työvälineitä hyödynnetä kunnolla, jää paljon etuja saavuttamatta. Edes muutaman yllä olevan käytännön omaksuminen kuten ”loogiset kokonaisuudet” ja ”commit-viestit”, helpottaa jo kummasti.

Versionhallinta on käsitteenä laaja ja sen käyttöön liittyy paljon muitakin asioita, joista voidaan määritellä niin sanotut parhaat käytännöt. Tälläisiä ovat muun muassa koodin hallintaan liittyvät asiat, versionhallinnan soveltaminen ja toimintojen laajentaminen, mutta ei niistä sen enempää.