Mainosten korjaus

Siltä varalta, että joku toinen etsii korjausta Googlen Adsense mainoksien näkyvyyteen, niin tässä yksi mahdollinen korjausehdotus.

Opera ja Firefox eivät pysty näyttämään (jostain syystä) Googlen Adsense mainoksia, jos nettisivu tarjotaan headerilla application/xhtml+xml. Korjauksena minun tapauksessani oli muuttaa headeri perinteiseksi text/html ja lisätä perinteinen dtd

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

Nyt kaikki toimii. Kokeile vaikka ;)

Mainokset

Tämän tekstin alla (jos painat ensin tuosta otsikosta ja olet varsinaisessa yhden viestin katselutilassa) pitäisi näkyä Google Adsit. Mutta eipä näy ainakaan uudella Operalla. Error log viestittää bugisesta Javascriptistä. Yritin monta kertaa, erilaisilla mainoksilla. Mikään ei näkynyt. IE näyttää mainoksen. Näetkö sinä sen mainoksen?

Lähinnä FF käyttäjät (itsellä ei ole edes asennettuna) kiinnostavat, siitä selviää onko vika Operan vai Googlen.

E70 käyttöongelmat

Kuinka erilaiset verkkoa käyttävät softat saadaan käyttämään jo päällä olevaa yhteyttä? Jos yhdistän web-selaimella nettiin WLANilla, sitten aukaisen IRC:n niin IRC kysyy, mitä yhteyttä haluan käyttää ja kaikki muut härpäkkeet. Haluan näistä eroon.

Sähköpostiin laitoin sellaisen ryhmän, että tärkeysjärjestys on tietty WLAN ja sitten Elisa Internet. WLAN oli päällä (irkkailin) ja yritin lukea posteja. Puhelin ei kyennyt käyttämään samaa WLAN-yhteyttä, vaan halusi lisäksi muodostaa GPRS-yhteyden. Ei näin. Mitenhän tämän saa varsinasesti toimimaan?

Tiedän, että tämän blogin lukijoilla on kyseistä Nokian E70 -puhelinta, nyt tarvitaan Teidän apua!

Ulkoasu

On taas se aika vuodesta (ja vuorokaudesta), että piti vaihtaa vähän blogin ulkonäköä. Tällä kertaa tällainen. Edelliseen Connections -themeen verrattuna asennus oli suorastaan kivuton. Themen tekijä on oikeasti tiennyt mitä tekee ja samaa asiaa ei tarvitse muuttaa kuin yhteen paikkaan. Esimerkiksi Connections -themessä piti sivujen alaosat muuttaa jokaiselle sivulle erikseen.

Pitää tätäkin vielä muokkailla tulevaisuudessa, mutta kun kello alkaa olemaan jo verrattain paljon ja huomenna (tänään) pitäisi töitäkin tehdä, niin jääköön muokkailut tulevaisuuteen.

Uuden themen myötä Asides -läpät jää mielestäni tarpeettomaksi ja ne ei olekaan käytössä.

Myöskään pingaus ei edelleenkään ole spämmereiden takia käytössä.

Palautetta saa halutessaan antaa ja ongelmista raportoida.

Avointa lähdekoodia ja bloggausta

Tiesittekö, että Suomen kunnilla ei ole mitään järjestelmällistä yhteistyötä toistensa kanssa IT-sektorilla? Jokainen kunta toimii omine päätöksineen.

Tiesittekö, että Suomen tietoyhteiskuntaohjelma(*), jossa käsitellään kaikkia tietoyhteiskuntaan liittyviä asioita ja tulevaisuudensuunnitelmia, ei pidä sisällään yhtäkään termiä, joka edes viittaisi avoimeen lähdekoodiin (Open Sourceen)? Näin maassa, joka toisaalta ylpeilee (perusteetta) Linuxista, koska Linus on suomalainen.

Tiesittekö, että Suomen valtio on uusimassa tietojärjestelmiään ja IT-struktuuria? Dokumentti(*), jossa käy ilmi suunnitelma uusimisprojektissa, ei edes sivua aihetta avoin lähdekoodi.

Samaan aikaan EU-tasolla kannustetaan avoimia standardeja ja pyritään pääsemään suljetuista järjestelmistä eroon. Suomi EU:n puheenjohtajamaana ei tunne pistoa sydämessään.

(*) dokumentit ovat poistuneet verkkosivuilta, en niitä ainakaan enää löytänyt.

Sitten kevyempiin aiheisiin.

Myös kaikki kuvairkkaajat ovat näemmä löytäneet bloggaamisen tai päiväkirjaksi sitä tuolla irc-galleriassa nimitetään. Mutta omien ajatusten löytäminen on vaikeampaa kuin saattaisi kuvitella. ”Blogit” ovat täynnä ainoastaan meemejä. Ei tietenkään pidä elää siinä kuvitelmassa, että useimmilla meistä olisikaan mitään sanottavaa ja nekin jotka sanovat, voisivat ennemminkin olla hiljaa. Mutta ketä nämä meemit kiinnostavat?

Onhan se tietenkin tapa poistaa ärsyttävät ketjukirjeet.

Tampereen testauspäivät, päivä 2

Nyt TTY:llä järjestetyt testauspäivät ovat siis ohi. Toinen päivä koostui seminaareista, eikä keskusteleva luonne ehkä korostunut niin paljoa. Kuitenkin, kaikki aiheet olivat melko kiinnostavia, mutta vain osasta (omaan mielenkiintooni osuvista) jaksoin tehdä muistiinpanoja (kännykkään).

Testiautomaation ongelmat ja niiden välttäminen

Päivä alkoi Tuula Jokiharjun ja Tuula Pääkkösen (Nokia) pitämällä seminaarin testiautomaation sudenkuopista ja niiden välttämisestä. En tehnyt muistiinpanoja. He kuvasivat aika perusasioita testausautomaation epäonnistumisesta ja onnistumisesta, mutta paljon ihan hyvää asiaa. He puhuivat siitä, kuinka kiistatta automatisoitu testaus tuo etuja silloin, kun se tehdään kunnolla ja suunnitellusti. Jos testitapauksista 30-50% voidaan automatisoida, ollaan automatisoinnissa onnistuttu. Ketterät menetelmät ja yksikkötestaus hyötyvät automatisoidusta testauksesta.

Ketterä testaus ja ohjelmistojen laatu

Ketterillä menetelmillä kehitetyt ohjelmistot saavat laatunsa muulla tavalla kuin perinteisellä tiukalla testaamisella. Listaan nyt muutamia näistä mekanismeista: Pyritään toimittamaan asiakkaalle nopeasti jonkinlainen (toimiva, mutta toiminnoiltaan vajaa) tuote ja toimitetaan uusia versioita usein. Tämä helpottaa kehityksen seuraamista ja asiakkaan on helppo nähdä mahdollisia heikkouksia. Myös julkaisun riskin määrä pienenee. Pyritään kommunikoimaan pääasiassa kasvotusten, ei siis esimerkiksi sähöpostin tai puhelimen välityksellä. Työskennellään yhdessä asiakkaan, kehittäjien, testaajien ja yrityksen bisnesjohdon kanssa. Pyritään välttämään featureviidakko, eli karsitaan turhat ominaisuudet minimiin.

Ketteristä menetelmistä ei testauksen perinteistä V-mallia löydy, eikä suunnitelmavetoinen testaus yksinkertaisesti onnistu. Testaus onkin siis erottamaton osa ketterästä ohjelmistokehityksestä. Yleensä yrityksessä, joka käyttää ketteriä menetelmiä, ei ole testaajia tai koodaajia, vaan kaikki tekevät kaikkea, mitä osaavat. Laatua parantavat myös pariohjelmointi (Nokialla ilmeisesti (Nokia käyttää Scrumia) toinen parista ohjelmoi ja toinen luo testejä), jatkuva integrointi, testaajien ja kehittäjien yhdessä työskenteleminen ja testivetoisuus. Huomattavaa on, että perinteisen softatestauksen lisäksi myös vaatimuksia voidaan testata, tai ainakin katselmoida, jolloin suurimmat ötökät saattavat tippua tai ainakin kaikki ymmärtävät, mitä haetaan.

Nokia ja Scrum

Yllätyksekseni sain kuulla, että Nokialla (ainakin joissain projekteissa) käytetään Scrumia + Extreme Programmingia. Harmikseni sain tiedon vasta nyt, kandidaatintyöni on mennyt juuri vähän aikaa sitten siihen vaiheeseen, ettei sitä voi enää muuttaa. Kandidaatintyössäni päädyin siihen tulokseen, että Scrum + Extreme Programming on hyvä ja tehokas tapa toteuttaa softakehitystä, tämä olisi ollut todella hyvä todiste siitä. Täytyyhän sen olla hyvä juttu jos Nokia sitä tekee!!

Testauspäivät @ TUT

Olen Tampereella siis testauspäivien vuoksi. Tein päivän aikana muistiinpanoja ainoastaan kännykkääni ja ajatuksenani oli kirjoittaa myöhemmin illalla puhtaaksi ne muistiinpanot. No, ajattelin, että sama kai ne on kirjoittaa tähän blogiinkin. Jos joku haluaa vaikka lukea. Testauspäivät jatkuvat TTY:llä vielä huomennakin.

Ohjelmistojen testauksesta ja vähän muustakin meille oli puhumassa tällä hetkellä F-Securella työskentelevä Maaret Pyhäjärvi ja entinen Nokialainen, nykyinen Tietoenatorin työntekijä, Erkki Pöyhönen.

Testaus

Aluksi Pyhäjärvi puhui ketterästä testaamisesta. Siinä sovelletaan samoja asioita kuin ketterässä sovelluskehityksessä, mutta ketterä testaaminen ei välttämättä tarvitse ketterää sovelluskehittämistä ympärilleen toimiakseen. F-Secure on nyt toiminut hieman alle vuoden ketterässä ohjelmistokehityksessä, jota edelsi 18 kuukauden pilotointi. Myös testaus on siis ketteröitetty. Mitä tämä hieno, ehkä jopa hypetetty, termi siis tarkoittaa käytännössä? Monia asioita. Kaikki viestintä toimii vaivattomammin.

Perinteisesti on tiimejä, jotka kehittävät softaa ja kun on valmista, niin työ viedään toiseen kerrokseen tai taloon, jossa testaajat iskevät sovellukseen kiinni. Ketterässä testauksessa on muutamia avainkohtia, jotka eroattavat sen perinteisestä toiminnasta. Ensiksikin, ohjelmistokehittäjille viedään paljon testauspaineita. Se vastuunsiirto ei ole nopea, vaan se yksinkertaisesti pikkuhiljaa juontuu siitä keskustelusta, jota testaajat ja kehittäjät käyvät (vähintään kerran pari viikossa). Testaajat kertovat mitä aikovat testata, millaisia tyyppivikoja sen kaltaisissa jutuissa on ollut jne. Kehittäjä voi suoraan tiedostaa potentiaaliset ongelmat ja kirjoittaa koodin periaatteessa testiä vastaan. Ketterien menetelmien kirjallisuudessa kehoitetaankin luomaan testitapaukset ja varsinaiset testit (konkreettiset testit) ennen kuin tehdään yhtään koodausta. Se on ehkä mahdottumuus monissa tapauksissa, tai ainakin muutokseen menee aikaa. Tähän on F-Securella päädytty.

Toisekseen ketterä testaus eroaa perinteisestä siinä, että testaus työntää lonkeroitaan kehittäviin tiimeihin. Joko tiimeissä on ihan joku testaaja-nimikkeellä toimiva henkilö tai sitten siellä on puoliagentti, joka käy ohjelmistokehityspalavereiden lisäksi myös testaajien keskinäisissä palavereissa. Näin kulkee informaatio paremmin siitä, mitä aiottuja muutoksia mahdollisesti tullaan implementoimaan ja jos jotain aiotaan muuttaa radikaalisti. En tarkoita tietenkään sitä, että jos näitä agentteja ei olisi, niin testaajat saisivat aina vaan mustan laatikon eteensä, mutta edellä mainitulla tavalla viestintää parannetaan. Viestintä on hyvin oleelinen osa ketteriä menetelmiä.

Tutkiva testaus (exploration). Tutkiva testaus ei varsinaisesti ole ketterän testauksen ominaispiirre, mutta siinä on monia ketterien menetelmien piirteitä, kuten formaaliuden puute (informaalius? :D). Tarkkojen testirajausten tekoa vältetään ja tutkitaan asioita testaajien kokemuksen ja paranoian ajamana. F-Secure luo kahdenlaisia testiä tukevia tietoja, käyttötapauksia (hyvin tarkkoja ja formaaleita) ja testiosa-alueita. Testin osa-alue voi olla esimerkiksi asennus. Tutkiva testaus mahdollistaa paremmin keskittymisen olennaiseen. Jos regressiotestausta saadaan vielä automatisoitua, kuten ilmeisesti F-Securella on tehty hyvin pitkälle, testaus on myös tehokasta. Tutkiva testaus ei ole mikään uusi hömpötys, vaan sillä on historiaa ainakin yli 20 vuotta.

Maaret antoi myös hyvän esimerkin käyttöliittymätestauksesta. Testaajan on osattava pysähtyä erilaisiin kysymysbokseihin ja valintatilanteisiin ja koitettava hahmottaa se tilanne, minkä hän olettaa seuraavan siitä, kun painetaan ok-näppäintä. Tätä demonstroidakseen hän kävi läpi Microsoft Powerpointista muutamia, jos ei bugeja niin epäloogisuuksia, jotka hyvin havainnollistivat sitä, mistä hän puhui.

Testauksen automatisointi

Ajatelkaapa kuinka kivaa olisi, kun kenenkään ei tarvitsisi testata ohjelmistoja. Koodarit koodaisivat ja tarkistusohjelma tarkistaisi ohjelmistot kaikkien mahdollisten virheiden varalta. Ei enää bugeja tuotteissa ja kuinka nopeaa se olisikaan! Pahaksi onneksi se on kuvitelmaa, fiktiota. Automatisoitua regressiotestausta voidaan nykyään tehdä kohtuullisen hyvin ja luotettavasti. Erilaisia API-rajapintoja voidaan testata automaattisesti. Mutta on paljon asioita, joita ei voida testata automaattisesti tai siinä ei ole järkeä. Automatisoitujen testausohjelmien toimittajat ovat kyllä eri mieltä. No, huomenna tästä aiheesta jatkaa ainakin pari luennoijaa, joten tästä varmaan lisää vielä huomenna.

Kylmiä faktoja ovat kuitenkin seuraavat: Kun testausohjelman käyttöönotosta on kulunut 3 vuotta, se on edelleen käytössä ainoastaan muutamassa prosentissa tapauksia (lähde: jokin tutkimuskeskus, kuten Gartner tai IDC). Toinen tärkeä fakta on, että kolmessa vuodessa testaustyökalujen kokonaishinnasta 75% koostuu ylläpidosta.

F-Securen ketterät menetelmät

Olin jokseenkin yllättynyt, kun Maaret kertoi, että F-Secure käyttää Scrum -menetelmää ketterässä kehityksessään. Se on tunnettu menetelmä ja sen ei olisi pitänyt olla yllätys, mutta mielestäni menetelmä on sen verran rohkea, että en olisi uskonut.. Mutta niin vain on. Maaret itsekin oli ollut itse Scrum-guru Ken Schwaberin opissa, joka oli kuulemma kehottanut hänen pomoaan antamaan hänelle kenkää. No kenkää ei tullut, vaan Certified Scrum Master -plakaati.

F-Secure tosiaan pyörii kuten oppikirjoissa sanotaan. Päivittäin pidetään kehittäjäpalaveri (testauspuolella ilmeisesti 2 kertaa viikossa, näin käsitin), jossa kerrotaan mitä kukin on tehnyt, tekee seuraavaksi ja jos on ongelmia tai mielipiteitä. Projektipäälliköt ovat muuttuneet enemmän projektisihteereiksi – henkilöiksi jotka vastaavat tiimin tarpeista, mutta eivät niinkään siitä, mitä tehdään. Suunnittelijoilla ja ohjelmoijilla (joka on lopulta todennäköisesti sama asia) on enemmän valtaa ja vapautta kuin koskaan, mutta samalla myös enemmän vastuuta (samalla palkalla) kuin koskaan. Kysyinkin Maaretilta, ovatko työntekijät tyytyväisiä. Hän vastasi että suurin osa, varsinkin kehittäjistä, on erittäin tyytyväinen uuteen menetelmään, joka antaa heidän toteuttaa itseään paremmin. Toisaalta kaikille ketterät menetelmät eivät vaan toimi, esimerkiksi voimakkaan kommunikoinnin korostamisen vuoksi, mutta heitä on selkeä vähemmistö. Testaus on F-Securella noussut arvostetuksi asiaksi yrityksen keskuudessa (se ei todella ole itsestään selvää) ja osittain sen takia testaajatkin ovat pääasiallisesti tyytyväisiä ketterään menetelmään, vaikka muissa yrityksissä juuri testaajat voivat kaikkein huonoimmin. F-Secure on parantanut tulostaan ketterien menetelmien käyttöönoton jälkeen, mutta menetelmät ovat olleet vasta niin vähän aikaa käytössä, että selkeiden implikaatioiden muodostaminen on ehkä turhan aikaista.

F-Securella oli ketterien menetelmien pilotointivaiheessa ja sen jälkeenkin ongelmia, jotka johtuivat uuden menetelmän käyttöönotosta ja ilmeisesti myös ihmisistä. Suuri osa ongelmista on kuitenkin saatu ratkaistua, mutta niitä kuitenkin edelleenkin on. Kuitenkin vaellus kohti ketteriä menetelmiä on vääjäämätöntä. Ketterät menetelmät eivät ole vallankumous. Ne ovat ohjelmistokehityksen evoluution tulos, kehitystä vanhoihin työtapoihin. Yrityksissä on huomattu, että nykyisillä työkaluilla on mahdollista saada ohjelmistoversio ulos esimerkiksi joka 2. kuukausi. Sitä myös halutaan, koska siten ohjelmistokehitykseen panostetut rahat saadaan nopeammin takaisin. Paluuta vanhaan ei monella tapaa ole. Täytyy kuitenkin muistaa, että ketterät menetelmät perustuvat vanhoihin periaatteisiin, joita on vain hiottu. Mitään pelättävää ei siis pitäisi kenelläkään olla.

Kopiosuojaukset

Ostin vähän aikaa sitten loistavan tanskalaisen bändin Carpark Northin levyn All Things To All People. CDON ei ilmoittanut sen kopiosuojausstatuksesta mitään, mutta koska muissa levyissä oli merkitty kopiosuojaus erikseen, oletin että tässä sellaista ei ole.

Oletin väärin. Firmana Emi Music Denmark ja CopyControlled. Selvä. Enää tähän taloon ei tule yhtäkään ison levylafkan levyä. Se on nyt saletti. Suorastaan vituttaa, kun huolellisen tutkimisen jälkeenkin rahani sujahtivat yritykselle, joka tunkee kopiosuojauksia meidän maksavien asiakkaiden niskoille. Mutta ei enää. Ei. Koskaan.

Onneksi on Beatport, Audiojelly ja Finrg.

Ikäväähän asia on sen vuoksi, että ostin levyn tukeakseni bändiä, josta tykkäsin. Mutta jos bändi antaa levy-yhtiönsä huijata asiakkaitaan, niin ei tarvitse odotella minun senttejäni.

PS. Levyn rippaaminen ei tuottanut minkäänlaisia vaikeuksia. Ilmeisesti juuri tein pahimman luokan rikoksen.

Nokia E70 onkin hidas!

Istuin tänään Heikki Partasen diplomityöesityksessä aiheeltaan Benchmarking Symbian OS Smartphones. Hän oli erilaisia testejä hyödyntäen testannut eri laitteiden tehoja. Valikoimassa oli N70, jossa on Symbian 8.1, E70 jossa on Symbian 9.x ja sitten jotain 6630 tms puhelinta, jossa on Symbian 8.0.

Testeissä ilmeni, että esimerkiksi RAM-muistin varaamisessa E70 on todella paljon hitaampi kuin vanhemmat Symbianversiot. Myös ilmeisesti uusi C++ tyylinen try-catch -rakenne on paljon hitaampi kuin Symbianin aiempi Trap Harness.

Testit oli kuitenkin sen verran matalalla tasolla tehty, ettei omat empiiriset kokemukseni korreloi sen kanssa ja Partanen oli samaa mieltä. Verrokkipuhelimiin joita olen käyttänyt vain vähän ja vanhaan 6600 verrattuna E70 on todella nopea.