Blogi
Helsingin yliopiston tietoturva
Uutisista ja lehdistä saattoi noin viikko sitten lukea, että ainakin neljälle Helsingin yliopiston tietojenkäsittelytieteen laitoksen palvelimille murtauduttiin tiistaina 12.2. Digitodayn uutinen kertoo, että toistaiseksi tavoittamattomat hyökkääjät saivat todennäköisesti aluksi käsiinsä yhden tunnuksen ja pystyivät sitä käyttäen murtautumaan muutamiin muihin tunnuksiin ja saamaan haltuunsa enimmillään muutamien kymmenien käyttäjien salasanoja. Helsingin yliopiston tietotekniikkapäällikkö Petri Kutvosen mielestä nyt tapahtunut tietomurto oli kokoluokaltaan pieni, sillä tietojenkäsittelytieteen palvelimilla on useampia tuhansia käyttäjätunnuksia. Tietomurto ei Kutvosen mielestä ollut myöskään kovin ammattitaitoisesti tehty.
Hyökkäyksessä käytettiin hyväksi siis viime viikolla paljastunutta Linux-ytimien (2.6.17–2.6.24.1) haavoittuvuutta muistinkäsittelyssä, jonka avulla kohdejärjestelmän muistin sisältö avautuu tavallisille käyttäjille ilman pääkäyttäjän tunnuksia. Haavoittuvuuden hyödyntämistä varten hyökkääjällä täytyi kuitenkin olla paikallinen käyttäjätunnus tiedossaan. Iltalehden mukaan hyökkäyksen kohteeksi joutuneiden neljän palvelimen tietoturvassa oli siis aukko yhteensä noin kolmen tunnin ajan. Tänä aikana murtautuja on todennäköisesti saanut haltuunsa salasanoja käyttäjiltä, jotka ovat tämän kolmen tunnin aikana kirjautuneet järjestelmään. Murtautumisen kohteeksi joutuneet palvelimet otettiin heti pois linjoilta, kun tilanne selvisi.
Varotoimenpiteenä vaihdetaan kaikkiaan 3300 käyttäjän salasanat. Yliopiston tiedotteen mukaan tilanne on hallinnassa, koska salasanat lakkasivat toimimasta perjantaina 15.2. Lähettämässään sähköpostissa laitos kehottaa opiskelijoita vaihtamaan salasanansa, mikäli he ovat käyttäneet salasanoja millä tahansa palvelimella tiistaina 12. helmikuuta 2008 tai sen jälkeen.
Asian selvittely on vielä kesken, eikä murron tekijöitä välttämättä saada kiinni koskaan. Jos jotain uutta tietoa asiasta saataisiinkin, ei siitä tietenkään kerrottaisi tavallisille tallaajille, joita asia voisi myöskin kiinnostaa. Vaikka en olekaan tuttu Linux-ytimen kanssa, enkä tiedä mitään tietojenkäsittelytieteen laitoksen/osaston palvelimien ylläpidosta, niin nyt on kuitenkin pakko hieman kyseenalaistaa heidän toimintansa. Ensimmäiseksi herää kysymys, miksei ylläpito ole asentanut uusimpia päivityksiä, vaikka haavoittuvuus on todettu ja siitä on kerrottu hyvinkin näkyvästi. Päivityskin oli julkaistu siihen monta päivää aikaisemmin? Missä on ammattitaito ja mistä ylläpidolle oikein maksetaan?
Helsingin yliopiston opiskelijana myös itsekin sain sähköpostiviestin salasananvaihdosta, koska on mahdollista, että jotkut käyttävät samoja salasanoja sekä tietojenkäsittelytieteen että tietotekniikkaosaston järjestelmissä. Tästä johtuen tietotekniikkaosasto vaihdattaa siis varotoimenpiteenä niiden käyttäjiensä salasanat, joilla on käyttäjätunnus sekä tietotekniikkaosaston että tietojenkäsittelytieteen järjestelmiin. Kuten uutinenkin jo kertoi, vaihto koski siis noin 3300 henkilöä, jotka joko opiskelevat tai ovat opiskelleet tietojenkäsittelytiedettä pää- tai sivuaineena. Salasana on vaihdettava siis joko verkossa tietotekniikkaosaston VETUMA-tunnistusta (verkkotunnistaminen ja maksaminen, esimerkiksi pankkitunnukset) hyödyntävällä salasananvaihtopalvelulla tai käyttölupapisteissä kampuksilla virallisen henkilötodistuksen kera.
Outoa tässä toimintatavassa on se, että itse viesti tuli vain päivää aikaisemmin, kuin sen lukemiseen tarvittavat tunnukset lakkasivat toimimasta. Mitä jos en lukisikaan sähköpostejani päivittäin kannettavaltani? Hieman ihmetyttää myös tällainen ylireagointi, jossa kaikkien pitää vaihtaa salasana. Eikö riittäisi, että vaihdetaan vain ne, jotka kirjautuivat palvelimiin kolmen tunnin aikana? Maalaisjärjellä keksisi varmasti myös paljon muitakin parempia tapoja hoitaa tämä vaihto-operaatio. Itse VETUMA-salasananvaihtopalvelu ansaitsisi myös sapiskaa. Luulisi, että yliopistolla olisi varaa suurimpiin pankki-, luotto- ja mobiilisopimuksiin, mutta asia ei tietenkään ole näin. Jos et ole Nordean, Sammon tai OP:n asiakas, joudut lampsimaan käyttölupapisteeseen.
Jos asia olisi tällä selvä, niin kaikki olisi vielä hyvin, enkä olisi tästä edes kirjoittanut. Käydessäni käyttölupapisteessä kävi kuitenkin sellainen tapaus, jota ammattitaitoiselle ja motivoituneelle atk-henkilölle ei saisi tapahtua. Käyttäjätunnukseni kerrottua KUKAAN EI TARKASTANUT HENKILÖLLISYYTTÄNI. Siis miten tämä oikein on mahdollista? Kuka tahansa voi siis mennä käyttölupapisteeseen ja sanoa jonkun käyttäjätunnuksen, joka sitten nollataan ja jonka voit myöhemmin vaihtaa haluamakseen. Passia, ajokorttia, opiskelijakorttia tai edes opiskelijanumeroa ei kysytä. Tajusikohan atk-henkilö edes, mitä oli tullut tehneeksi? Mitäköhän miehen päässä mahtoi myöhemmin liikkua, kun/jos asia vihdoin valkeni. Ja tietoturvan heikoin lenkki on edelleen...
Ilmainen langaton tukiasema ADSL-modeemilla
Mitä, ilmaiseksi? Onko tässä jokin koira haudattuna? Ei, sillä internet-operaattori Saunalahden omistama Wippies-nettiyhteisö jakaa tosiaan täysin ilmaiseksi langattomia tukiasemia sisäänrakennetulla ADSL-modeemilla. Palvelu on jo ollut olemassa jo jonkin aikaa, mutta nyt kiinnostuin itsekin sitä kokeilemaan.
Parin vuoden ikäinen langaton verkkolaitteeni (D-Link DSL-G604T), jossa on siis WLAN-tukiasema ja sisäänrakennettu ADSL-modeemi, oli ostohetkestä lähtien hieman kenkkuillut. Viime aikoina purkista sai vetää virrat pois noin viikon välein, pahimmillaan jopa useita kertoja päivässä. Muutaman kuukauden välein laitteen sisäinen ADSL-modeemi sekosi niin, että asiaan ei auttanut kuin soitto Internet-operaattorilleni, jonka tekemät linjatestit saivat ADSL-modeemin aina mystisesti henkiin.
Wippiesiltä voi siis tilata jommankumman näistä kahdesta laitteesta: Wippies WifiBox tai Wippies HomeBox. WifiBox on siis täysiverinen WLAN-tukiasema, joka toimii 54Mbps nopeudella. HomeBox sisältää niin ikään WLAN-tukiaseman, mutta lisäksi siinä on myös sisäänrakennettu ADSL-modeemi palomuurilla varustettuna. HomeBoxia vastaavasta laitteesta saisi kaupassa pulittaa noin 80 euroa.
Niinpä laitoin muutama viikko sitten Wippies HomeBoxin tilaukseen. Mitään kuluja siitä ei minulle koitunut, ei edes postikuluja. Posti kiikuttikin laitteen minulle viime viikolla. Tilauksessa meni noin 4 viikkoa, tosin välissä olivat joulun ja uudenvuoden juhlapyhät, joten kovin montaa viikkoa ei omaa laitetta joutune odottamaan.
Omalla kohdallani olen ollut melko tyytyväinen uuteen HomeBoxiini. Laite toimitettiin siis postitse lähimpään postikonttoriin kirjattuna pakettina. Kaikki tarvittavat kaapelit tulivat pakkauksen mukana. Asennus oli todella helppoa. Piuhat vain kiinni laitteeseen ja virrat päälle, jolloin laite heräsi eloon. Noin kymmenisen minuuttia kun odotteli, laite osasi itse säätää kaikki asetukset. ADSL-linja oli heti päällä ja WLAN-verkko toiminnassa. Mitään ei siis joutunut itse säätämään. Tämä oli suorastaan luksusta verrattuna aiempaan D-Linkin tukiasemaani, josta sai arpoa ADSL-linjan asetuksia. Paljon parempaan tuskin pystyvät kaupasta ostetut laitteetkaan. HomeBox on täysin äänetön, toisin kuin D-Linkin tukiasemani, joka piti selvästi kuultavaa korkeaäänistä ininää.
WLAN-verkon nimen ja salasanan sai vaihdettua helposti Wippiesin sivuilta (käyttäen joko Wippies-vierailijaverkkoa tai langallista yhteyttä). Mitään muutoksia kodin laitteisiini en joutunut tekemään, koska muutin verkon nimen ja salasanan samaksi kuin D-Linkin tukiasemassanikin oli. Kaikki laitteet toimivat ilman mitään säätöä: yksi kannettava PC Windows Vistalla ja Ubuntulla, MacBook OS X:llä, PlayStation Portable, Nintendo Wii ja Xbox 360 MacBookin kautta. Koko operaatioon ei mennyt kuin puolisen tuntia, kun laite oli asennettu ja toiminnassa. Vanhan D-Linkin -tukiaseman säilytin varalaitteena, joka on hyvä olla olemassa ADSL-vikojen vuoksi. Yleensä internet-operaattorin tuesta kun viaksi tarjotaan aina ensiksi asiakkaan laitetta, jolloin on hyvä testata linjan toimivuutta toisella laitteella.
HomeBoxissa on siis kolme eri WLAN-verkkoa: käyttäjän oma kotiverkko, avoin Wippies-vierailijaverkko ja lisäksi WippiesVoIP-verkko internet-puheluita varten. Oma kotiverkko ja muut verkot ovat turvallisesti toisistaan erillään. Eli kukaan ei pääse vierailijaverkon kautta omaan kotiverkkoosi. Vierailijaverkko ei myöskään hidasta omaa kotiverkkoa. Eli vaikka joku lataisikin vierailijaverkon kautta suurta tiedostoa, ei se hidasta kotiverkon nopeutta. Vierailijaverkkoon tarvitaan Wippies-tunnukset, joten sen mahdollinen käyttö laittomiin tarkoituksiin ei aiheuta ongelmia laitteen omistajalle. Langattoman kotiverkon sai suojattua helposti WEP- tai WPA-salauksella. Laitteessa on kaksi LAN-porttia, joihin voi kytkeä koneita verkkokaapelilla (samassa verkossa langattoman kotiverkon kanssa). Lisäksi laitteeseen voi kytkeä ulkoisen USB-kiintolevyn tai USB-muistitikun, jolloin se näkyy Windowsissa verkkolevynä. Kaiken lisäksi HomeBox osaa päivittää ohjelmistonsa automaattisesti itse.
Huonoja puolia HomeBoxista en ole kovin paljon löytänyt. Laitteen asetuksia ei saa muutettua kovin yksityiskohtaisesti. Esimerkiksi piilotettua SSID:tä tai MAC-filtteröintiä ei voinut laittaa päälle, tosin eipä näitä tarvitsekaan, jos on WPA-salaus käytössä. Toisaalta kukapa tavallinen käyttäjä kovin monipuolisia asetusten säätömahdollisuuksia kaipaisikaan. LAN-portteja on HomeBoxissa vain kaksi, joka voi olla joillekin liian vähän, mutta itselleni se oli aivan riittävä.
WLAN-verkon kuuluvuus on ehkä hieman huonompi kuin D-Linkin laitteella. Lähellä tukiasemaa (n. 5 metrin säteellä) kuuluvuus on hyvä ja signaali kantaa hyvin parin seinänkin läpi. Mutta kun välimatka ylittää 10 metriä ja välissä on useampia seiniä, sahaa yhteyspalkki aika ajoin ainakin Windows Vistassa hyvän ja huonon välillä. Tosin en ole kumma kyllä havainnut, että yhteys hidastelisi tai pätkisi. Verkon nopeuskin on kaukana hyvä, vaikka yhteyspalkki sahaakin Vistassa (onko tämä sitten joku Vistan bugi). Tukiaseman lähellä verkossa sai langattomasti siirrettyä tiedostoja n. 2,1 Mt/s. Kun välimatka kasvoi n. 10 metriin ja väliin tuli kolme seinää, oli nopeus vielä kelvolliset 1,5 Mt/s. Tässä siis siirsin HomeBoxiin langallisesti kytketystä Xboxista tiedostoja langattomasti kytkettyyn kannettavaani. D-Linkin laite ei juuri tämän parempaan pystynyt. Kuuluvuutta ovat kyllä jotkut valitelleet keskustelupalstalla, mutta omasta mielestäni se on ihan kelvollinen. Uusin ohjelmistopäivitys pitäisi tulla piakkoin, joten katsotaan, vaikuttaako se asiaan.
Miksi näitä laitteita sitten jaellaan ilmaiseksi? Wippiesin ideana on laajentaa maksuttomien langattomien internet-yhteyksien tarjontaa. Ilmaisen WLAN-tukiaseman tilaaja sitoutuu jakamaan omaa internet-yhteyttään langattomasti seuraavan 12 kuukauden ajan, minkä jälkeen hän saa laitteen omakseen. Mikäli laite on ennen tätä poissa verkosta yhtäjaksoisesti yli kahden viikon ajan, joutuu käyttäjä maksamaan laitteen hinnan. Joulukuussa 2007 Wippies-laitteita oli käytössä yli 9 000 kappaletta ja niiden sijainnit voi tarkistaa kartalta Wippiesin Internet-sivuilta.
Mikäli Wippies HomeBox kiinnostaa, kannattaa sellainen tilata heti, koska mitään tietoa siitä ei ole, kuinka kauan laitteita ilmaiseksi jaetaan. Wippies on parhaillaan beta-vaiheessa, mutta ainakaan itse en ole huomannut mitään pahempia ongelmia näin alkuvaiheessa. Hienoa on myös se, että laitteiden ohjelmistot perustuvat avoimen lähdekoodin ohjelmistoihin, joiden kehitykseen voit halutessasi itse osallistua. Jos laitteen kanssa on ongelmia, saa apua Wippiesin wikistä, josta löytyy myös paljon muuta hyödyllistä tietoa. WifiBoxin tai HomeBoxin voi siis tilata osoitteesta: http://www.wippies.fi/www.phtml. Kelpo laitteen lisäksi saa siis myös oikeudet käyttää muiden käyttäjien Wippies-verkkoja, joita löytyy melkoinen määrä pääkaupunkiseudulta.
Java ME-mobiiliohjelmointia
Javalla on melko helppoa tehdä ohjelmia ja monissa kouluissa ohjelmoinnin opetus lähteekin Javasta. Yleensä Javaa opetellaan työpöytäympäristössä, jolloin tehdään tavallisia ohjelmia PC:lle, jotka toimivat esim. Windowsissa ja Linuxissa. Javaa voi myös käyttää monessa muussakin ympäristössä, kuten kännyköissä. Usein ohjelmoinnin peruskursseilla ei kuitenkaan mennä kovin syvälle mobiiliohjelmointiin, jos laisinkaan. Mobiiliohjelmointi Javalla ei kuitenkaan ole kovin paljon monimutkaisempaa kuin työpöytäsovellustenkaan teko. Itse asiassa joissain asioissa mobiiliohjelmointi on jopa helpompaa kuin työpöytäsovelluksien teko (esim. käyttöliittymät ovat paljon yksinkertaisempia matkapuhelimissa). Jos siis pohjalla on kokemusta Java-ohjelmoinnista ja kiinnostusta mobiiliohjelmointiin Javalla löytyy, kannattaa lukaista tämä kirjoitus loppuun.
Ensiksi kannattaa kuitenkin tulla sinuiksi Javan termien kanssa: J2SE, Java Platform Standard Edition, Java SE, J2ME, Java Me, Java Platform Micro Edition, J2EE, Java Platform Enterprise Edition, Java EE, MIDP, CLDC... Lyhenteitä on paljon ja niissä menee helposti sekaisin. Java SE tarkoittaa käytännössä samaa kuin J2SE ja "Java Platform, Standard Edition". Niin ikään J2ME, Java ME ja "Java Platform, Micro Edition" tarkoittavat samaa kuin myös J2EE, Java EE ja "Java Platform, Enterprise Edition". Nimissä esiintyvän kakkosen tarkoituksena oli alunperin kuvata suurta uudistusta Java SE 1.2-versiossa, mutta Java SE 1.6-version myötä kakkonen jätettiin nimestä pois.
Java SE (Standard Edition), Java ME (Micro Edition) ja Java EE (Enterprise Edition) ovat siis kaikki eri variaatioita Javasta. Niissä kaikissa käytetään samaa Java-ohjelmointikieltä, mutta ne on tarkoitettu eri ympäristöihin. Jokainen variaatio koostuu käytännössä virtuaalikoneesta (JVM, Java Virtual Machine), joka siis suorittaa Java-koodia, ja luokkakirjastoista, jotka mahdollistavat esim. verkkoyhteyksien käytön tai käyttöliittymien teon. Käytännössä ohjelmoijalle tämä näkyy siinä, että Java SE:ssä, Java ME:ssä ja Java EE:ssä on käytössä eri APIt (vrt. Java SE 1.5 API ja Java ME MIDP API).
Java SE on tarkoitettu lähinnä tavalliseen työpöytäympäristöön (tähän ohjelmoija törmää usein ensiksi), Java ME mobiiliympäristöön (kännykät, PDAt jne.) ja Java EE yrityskäyttöön (lähinnä palvelimet). Kaikki nämä ympäristöt asettavat Javalle erilaisia vaatimuksia. Esimerkiksi Java ME:ssä ei ole kaikkia samoja perusluokkia käytössä kuin Java SE:ssä, koska mobiiliympäristö asettaa rajoituksensa mm. muistin ja prosessoritehon suhteen. Jokaisella Javan variaatiolla on oma virtuaalikoneensa, joka siis suorittaa Java-koodia. Mobiiliympäristössä virtuaalikone pitää olla kevyt, kun taas työpöytäkäytössä virtuaalikone voi olla hieman raskaampi. Työpöytäkäyttöön tehtyjä Java-ohjelmia ei siis yleensä voi ajaa sellaisenaan mobiiliympäristössä.
MIDP ja CLDC taas ovat osa Java ME:tä. CLDC (Connected Limited Device Configuration) on Java ME:n konfiguraatio, joka määrittää, mikä virtuaalikone on käytössä ja joitain matalan tason luokkakirjastoja (esim. luku- ja kirjoitusoperaatiot). Java ME:ssä on myös toinen konfiguraatio CDC (Connected Device Configuration), jota käytetään mobiililaitteissa, joissa on hieman enemmän tehoa ja muistia (esim. PDA-laitteet tai digiboksit). CLDC:tä taas käytetään esim. matkapuhelimissa, jolloin käytössä on hyvin kevyt virtuaalikone, jota kutsutaan KVM:ksi ("Kilobyte" Virtual Machine).
MIDP (Mobile Information Device Profile) taas on Java ME:n profiili, joka määrittää, mitä luokkakirjastoja CLDC:n luokkakirjastojen lisäksi on käytössä (esim. kännykän käyttöliittymän tekoon tarvittavat luokat). Kaikki Java SE:n luokat eivät millään mahtuisi tavalliseen matkapuhelimeen, joten käytettäviä luokkia on karsittu. Esimerkiksi niinkin perustavaraa oleva metodi kuin tekstipätkän korvaaminen toisella tekstipätkällä (java.lang.String.replaceAll) puuttuu MIDP:stä. MIDP:stäkin on eri versioita: MIDP 1.0 ja MIDP 2.0. Käytännössä matkapuhelimet ovat tukeneet MIDP 2.0:aa jo melko kauan, joten yleensä käytetään sitä. Kännyköille ohjelmia tehtäessä käytetään siis yleensä MIDP:tä ja CLDC:tä.
Mistä sitten aloittaisi Java-ohjelmien teon kännyköille? Ensinnäkin omalle tietokoneelle pitää asentaa Java ME-ohjelmointiin soveltuva ohjelmointiympäristö. Tähän sopii tavalliseen Java-ohjelmointiinkin mainiosti soveltuva Eclipse (Eclipse IDE for Java Developers). Eclipseen täytyy lisäksi asentaa vielä Eclipse ME-lisäosa, joka helpottaa mobiiliohjelmointia. Lisäksi, pitää asentaa vielä Sun Java Wireless Toolkit for CLDC, joka sisältää tarvittavat luokkakirjastot ja emulaattorin, jolla voi ajaa mobiilisovelluksia omalla tietokoneella (kts. kuva oikealla). Näiden käyttöönottoon löytyy hyvä suomenkielinen opas J2ME & Eclipse - pikaopas, joka opastaa asennuksessa.
Varsinaisen Java ME -ohjelman tekoon löytyy hyviä oppaita netistä, tosin englanninkielisiä. Alla on lueteltu muutamia hyviä oppaita, jotka opastavat alkuun Java ME -ohjelmoinnissa. Pohjalla pitää kuitenkin olla ymmärrystä Java SE-ohjelmoinnista:
- J2ME Tutorial, Part 1: Creating MIDlets (Miten päästä alkuun Java ME -ohjelmoinnissa)
- J2ME Tutorial, Part 2: User Interfaces with MIDP 2.0 (Käyttöliittymien teko Java ME-ympäristössä)
- MIDP Programming with J2ME (Hyvä yleisopas Java ME-ohjelmointiin)
- MIDP GUI Programming (Java ME:n käyttöliittymäkomponenteista)
- Java ME MIDP API (MIDP-ympäristössä käytössä olevien luokkakirjastojen dokumentaatio)
Vuosi 2007 MVnetissä
Vuosi on jo vaihtunut, joten on taas aika silmäillä hieman MVnetin viime vuoden tilastoja ja tapahtumia. Vuoden 2006 vastaavat tilastot voi lukea kirjoituksesta Vuosi 2006 MVnetissä. MVnetissä käytetään siis oman kävijälaskurin lisäksi mainiota Google Analytics -tilastointiohjelmaa, josta saa kaivettua irti paljon hyödyllistä tietoa. Myös Google AdSense, Google Webmaster Tools (ent. Google Sitemaps) sekä Sigmaticin webhotellin AWStats-tilastointiohjelma tuottavat mielenkiintoisia tilastoja. Alla siis joitain tilastoja MVnetistä vuodelta 2007. Kaaviot ovat Google Analyticsin tuottamia ajalta 1.1.2007 - 31.12.2007.
MVnetin oman kävijälaskurijärjestelmän mukaan vuonna 2007 kävijöitä oli yhteensä 441 630. Tämä oli 115 662 kävijää enemmän kuin vuonna 2006, eli lisäystä tuli n. 35 %. Kävijöitä oli keskimäärin n. 1 210 per päivä, kun vuonna 2006 lukema oli 900. Päivämäärä 08.02.2007 pitää hallussaan MVnetin vuoden 2007 päivittäisen kävijämäärän ennätystä, joka oli 3 326 kävijää yhdessä päivässä. AWStats-tilastointiohjelman mukaan vuonna 2007 MVnetissä vieraili 367 841 uniikkia kävijää ja sivunlatauksia oli 1 274 954. Palautelomakkeen kautta lähetettiin vuoden aikana 60 palautetta ja virheraportteja lähetettiin lomakkeen kautta 37.
AWStats-tilastointiohjelman mukaan viime vuonna MVnetissä käytettiin kaistaa yhteensä 141 Gt. Kuukaudessa kaistaa käytettiin keskimäärin 11,8 Gt (eniten lokakuussa 15,4 Gt / kk). Lisäystä vuoteen 2006 verrattuna tuli melkein tuplasti. Kaistaa kului n. 400 Mt / päivä ja 310 kt / kävijä. Määrät vaihtelevat paljon riippuen ajankohdasta. Esim. kesällä on yleensä kaikista hiljaisinta aikaa.
AdSense-ohjelman kautta ansaittuja mainostuloja kertyi vuodelta 2007 noin 3027 $, joka oli yli tuplasti enemmän kuin vuonna 2006. Kun tähän lisätään vielä suoraan mainostamalla saadut mainostulot, yhteissumma nousee noin 2 360 euroon (dollarin nykykurssilla laskettuna). Keskimäärin päivässä MVnetissä näytettävillä Google-mainoksilla tienasi n. 5,6 euroa. MVnetin käyttämä Sigmaticin web-hotelli maksaa 100 e / vuosi ja domain 48 e / 3 vuotta. Eli hieman jäi käteen ylimääräistä (tosin summasta pitää vähentää vielä verot). Tänä vuonnahan 20% MVnetin mainostuloista tilitetään hyväntekeväisyyteen, joten jos tahti jatkuu vähintään samana, saadaan vuoden loppuun mennessä tilitettyä hyväntekeväisyyteen lähes 500 euroa.
Google Webmaster Tools -palvelun mukaan MVnetin sivustolla korkein PageRank oli (ja on yhä) MVnetin etusivulla. Vuonna 2006 korkein PageRank oli sivulla Pelit ja konsolit. Kävijät jakautuivat Google Analyticsin mukaan eri sivuille melko tasaisesti, mutta selvästi suosituin sivu oli Langaton kotiverkko -sivu, joka nappasi n. 8,4 % MVnetin koko vuoden sivulatauksista. Kävijät viihtyivät kyseisellä sivulla keskimäärin noin 7,5 minuuttia. Seuraavaksi suosituin oli MVnetin etusivu 5,4 % osuudella ja sitten Vitsit-sivu 4,7 % osuudella. Osioista suosituin oli Kotisivun teko -osio, jonka sivut kahmaisivat 22,3 % vuoden sivulatauksista. Tietokoneet-osio oli myös suosittu 20,8 % osuudella. Kolmantena tuli Tutkielmat-osio 16 % osuudella. Pelit ja konsolit- sekä Sekalaista-osiot ottivat kummatkin noin 10 % siivun sivulatauksista.
Keskimäärin kävijät viettivät yhdellä sivulla aikaa 2 min 49 sek ja lukivat noin 2 sivua / käyntikerta. Sivustolla vietetty keskimääräinen aika oli suorissa käynneissä (esim. oman kirjanmerkin kautta) noin 2 minuuttia enemmän kuin hakukoneiden kautta tulleilla ja myös sivuja luettiin suorissa käynneissä enemmän (n. 2,8 sivua / käyntikerta). Suurin osa kävijöistä (71 %) viihtyi sivustolla alle 10 sekuntia, mutta lopuista suurin osa jäi sivustolle pidemmäksi aikaa, tavallisesti 1-10 minuutiksi. En tiedä, miten Analytics nämä kestot laskee ja voiko niihin täysin luottaa.
Selvästi suurin osa (96%) MVnetin kävijöistä tuli luonnollisesti eri puolelta Suomea. Noin 72 % tuli sivuille Googlen hakukoneen kautta, 10 % tuli sivustolle suoraan esim. oman kirjanmerkin kautta ja 17 % muilta sivustoilta löytyvien linkkien kautta. Suosituin yksittäinen hakusana Googlen hakukoneen kautta tulleilla oli vitsit. Noin 77 prosenttia MVnetin kävijöistä oli uusia kävijöitä ja jäljelle jäävät 23 prosenttia palasivat vielä uudelleenkin. Välitön poistumisprosentti sivustolla oli 69,7 %, joka johtunee siitä, että suurin osa tulee sivustoon hakukoneiden kautta, jolloin he lukevat löytämänsä sivun ja poistuvat. Suorissa käynneissä välitön poistumisprosentti oli selvästi pienempi, noin 55 %.
Windows hallitsi kävijöiden käyttöjärjestelmää 95,5 % osuudella. Lukema on tosin pienentynyt vuodesta 2006 parilla prosenttiyksiköllä Linuxin ja Macintoshin eduksi. Selaimista taas käytiin kovaa kamppailua Internet Explorerin ja Firefoxin välillä. Firefox on nyt ainakin MVnetin kävijöiden osalta ohittanut IE:n. Firefoxia käytti viime vuonna 46,6 % kävijöistä, kun IE:n osuus oli 45,7 %. Vuonna 2006 lukemat olivat IE:lle 51,7 % ja Firefoxille 39,8 %. Opera sinnittelee mukana 5,6 %:n osuudella, jonka toivoisi olevan suurempikin.
Noin 40 % kävijöistä käytti näyttöä, jossa resoluutio on 1024 x 768. Myös 1280 x 1024 oli suosittu 25 % osuudella. Hyvin pientä resoluutiota käyttää enää harva, 800 x 600 resoluutio oli käytössä vain 2,5 % kävijöistä.
Paljon kerkesi myös tapahtua MVnetissä vuonna 2007. Alla oleellisimmat uudistukset:
- 17.01.2007: Käyttäjäkysely avattiin. Vastaamalla kyselyyn osallistui arvontaan.
- 16.03.2007: Miljoonan kävijän raja saavutettiin.
- 03.04.2007: MVnetin haku uudistettiin, käytössä Google Co-op.
- 02.05.2007: Käyttäjäkysely sulkeutui, kyselyyn ehti vastata 165 kävijää. Palkinnot toimitettiin onnellisille voittajille.
- 09.07.2007: Sivuihin lisättiin kommentointimahdollisuus Talkback-ohjelmiston avulla.
- 23.07.2007: Sivuston koko ulkoasu uudistettiin. Samalla myös blogin ja keskustelupalstan ulkoasut muutettiin vastaamaan muuta sivustoa.
- 27.12.2007: Lisätty mahdollisuus mainostaa MVnetissä suoraan.
Näiden lisäksi ilmestyi paljon uusia artikkeleita ja blogikirjoituksia, käytiin keskusteluja keskustelupalstalla sekä paranneltiin vanhoja sivuja. Esimerkiksi seuraavat sivut lisättiin:
- Internet: Kokemuksia Huuto.netistä
- Tietokoneet: Langattoman verkon murtaminen, DVD-levyjen valmistus, Digitelevisio Macille, Widgetit
- Sekalaista: Digi-TV tulee, Laitteiden virrankulutus
- Kotisivun teko-osioon lisäyksiä ja päivityksiä, mm. Ilmaisia kuvia netistä, Merkistöt ja entiteetit, Palautelomake PHP:llä, Mainostulojen verotus, Firefoxin laajennukset apuna suunnittelussa.
- Pelit ja konsolit: PSP:n kahvat, MVnetin pelinurkkaus.
- Tutkielmia: Assembly-harjoitus, Java-ohjelmoinnin projektityö, Käyttäjäkeskeisen tuotekehityksen harjiotustyöt, Image compression, Mikä on tehokas tekninen suojakeino?, Viihde antiikin Rooman kulttuurissa
Saas nähdä, mitä tämä vuosi tuo tullessaan. Jos sinulla on joitain hyviä ideoita, laita viestiä tämän kirjoituksen kommentteihin.
XBL 2.0: WWW-sivujen tulevaisuutta?
Mikä ihmeen XBL? Näin ajattelee varmasti moni. XBL 2.0 tulee sanoista XML Binding Language 2.0. Kyseessä on siis XML-pohjainen kieli (kuten XHTML:kin, koostuu ns. tageista), joka on omasta mielestäni jotain juuri sellaista, jota olen odottanut www-sivujen tekoa auttamaan. Mikäli www-sivujen uusin tekniikka kiinnostaa, kannattaa XBL:ään ehdottomasti tutustua. Tämän kirjoituksen lukeminen vaatii hieman ymmärrystä HTML- ja CSS-kielestä sekä www-sivujen rakenteesta yleisesti, jotta jutun juju aukenisi. Kirjoituksen loppupuolella olevat esimerkit auttavat ymmärtämään, mihin XBL:ää voi käyttää.
XBL 2.0 on tällä hetkellä kehitysvaiheessa WWW:n standardeista/suosituksista vastaavalla W3C:llä, joten tukea siihen ei valtaselaimista vielä löydy. Kieli perustuu XBL 1.0:aan, jonka Mozilla kehitti aikoinaan, tosin sitä on paranneltu huomattavasti, joten kielet eivät ole keskenään yhteensopivia.
Mihin XBL:ää käytetään?
XBL on tarkoitettu dokumentin ulkoasun ja toiminnallisuuden kuvaamiseen. Se ei sinällään itse tuo juuri mitään uusia ulottuvuuksia ulkoasuun tai toiminnallisuuteen, mutta tekee ulkoasun ja toiminnallisuuden kuvaamisesta paljon yksinkertaisempaa ja helpommin hallittavaa.
Moni www-sivujen tekijä on varmasti tuskastellut XHTML-koodin kanssa. Kun esimerkiksi sivulle tekee näyttävän ulkoasun, on dokumentti täynnä lukemattomia div-elementtejä, CSS-koodia yms. Lisäksi sivu täyttyy toiminnallisuuden lisäämiseen vaadittavasta JavaScript-koodista (esim. navigointivalikot tms.) ja erilaisista XHTML-elementteihin lisättävistä tapahtumankuuntelijoista (onmouseover, onclick jne.). Itse dokumentin varsinainen sisältö peittyykin helposti tähän koodisekamelskaan. Tämä taas rikkoo hieman XHTML:n perusajatusta, sillä XHTML:n tarkoitushan on kuvata dokumentin rakennetta (eikä periaatteessa ulkoasua tai toiminnallisuutta). XBL:n yhtenä tavoitteena onkin vähentää tätä dokumenttien koodispagettia tinkimättä kuitenkaan ulkoasusta tai toiminnallisuudesta.
XBL kuvaa tavan liittää XML-elementteihin (eli XHTML:n tapauksessa XHTML-elementteihin) niiden ulkoasua ja toiminnallisuutta määrittelevää koodia, kuten CSS-tyylejä, skriptejä, tapahtumankuuntelijoita ja uutta sisältöä, jotka voivat olla kaikki esitetty aivan eri dokumentissa. XBL:ää voidaan käyttää esim. lisäämään dokumenttiin monimutkaisen ulkoasun ilman, että itse dokumenttia täytyy "saastuttaa" lukuisilla div-elementeillä ja muulla semanttisesti turhalla "roinalla". Näin itse dokumentin sisältö ja ulkoasu saadaan entistä paremmin erilleen.
Toinen esimerkki voisi olla JavaScriptillä toimivan navigointivalikon rakentaminen. XBL:llä tavallisesta listasta (XHTML:n ul/ol -elementit) saisi tehtyä esim. tämänkin sivun yläosassa olevan navigointivalikon tyylisen ilman, että jokaiseen listan elementtiin täytyisi käsin lisätä tapahtumankuuntelijoita (onmouseover, onclick jne.). XBL ei siis korvaa XHTML-, CSS- tai JavaScript-kieliä, vaan tuo uuden tavan näiden lisäämiseen dokumenttiin.
XBL:n rakenne
XBL-koodia voi lisätä esim. XHTML-dokumenttiin suoraan head-tagien sisään tai sitten XBL-koodi kirjoitetaan erilliseen tiedostoon, joka lisätään XHTML-dokumenttiin ns. processing-instructionin avulla (<?xbl href="XBL_dokumentti.xml" ?>
). XBL-dokumentti koostuu ns. bindingeista (binding, suomeksi sidos). Nämä bindingit sidotaan siis XHTML-elementteihin (yhteen tai useampaan elementtiin). Bindingit voi helposti sitoa esim. kaikkiin dokumentin lista-elementteihin tai vain tietyn id:n tai luokan omaavaan elementtiin.
Bindingit taas koostuvat käytännössä neljästä elementistä: template, implementation, handlers ja resources. Template määrittelee uutta sisältöä elementtiin (esim. korvaa elementin sisällön uudella sisällöllä), implementation uusia rajapintoja, handlers koostuu tapahtumankuuntelijoista ja -käsittelijöistä (lähinnä JavaScriptia) ja resources-elementin avulla voidaan lisätä elementtiin esim. CSS-tyylejä.
Alla on yksi lyhyt esimerkki siitä, miltä XBL:n lisääminen dokumenttiin näyttää. Esimerkki.xhtml on tässä siis XHTML-kielellä kirjoitettu dokumentti, johon on lisätty XBL-dokumentti xbl.xml dokumentin alussa. XBL-dokumentti taas määrittelee kaksi bindingia, joista toinen liitetään body-tagiin (element="body"
) ja toinen kaikkiin lista-elementteihin (element="#nav li"
). Ensimmäisen bingingin template saa aikaa sen, että elementeistä #main ja #nav vaihtavat paikkaa ja saavat ympärilleen div-elementtejä. Toinen binding taas lisää listan jokaiseen elementtiin tapahtumankuuntelijat, jotka kuuntelevat klikkauksia (event="click"
) ja hiiren liikkeitä elementin yllä (event="mouseover"
) ja tekevät jotain, mikäli nämä tapahtumat tapahtuvat (esim. doSomething1()
).
Esimerkki.xhtml
<?xbl href="xbl.xml"?>
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<head>
<title>Esimerkki</title>
</head>
<body>
<div id="main">...</div>
<ul id="nav">
<li>List Item 1</li>
<li>List Item 2</li>
</ul>
</body>
</html>
xbl.xml
<xbl xmlns="http://www.w3.org/ns/xbl">
<binding element="body">
<template>
<div id="wrapper">
<div id="top"><content includes="#nav"/></div>
<div id="bottom"><content includes="#main"/></div>
</div>
</template>
</binding>
<binding element="#nav li">
<handlers>
<handler event="mouseover">
doSomething1();
</handler>
<handler event="click">
doSomething2();
</handler>
</handlers>
</binding>
</xbl>
Kokeile XBL-koodia X-Smiles-selaimella
Itse pääsin tutustumaan XBL 2.0:aan erään kouluprojektin kautta. Toteutimme osan XBL 2.0:n ominaisuuksista X-Smiles-selaimeen. X-Smiles on TKK:n Tietoliikenneohjelmistojen ja Multimedian laboratorion kokeellinen internet-selain, jossa on toteutettuna useita uuden sukupolven XML-kieliä ja muutakin uutta web-teknologiaa. Selain on lähdekoodiltaan avoin ja sitä voi käyttää täysin ilmaiseksi. Asennuspaketin voi ladata X-Smilesin kotisivuilta. Varoituksen sanasena se, että kyseinen selain ei sitten näytä läheskään kaikkia sivuja oikein (ei esim. MVnettiä), koska sen tarkoituksena on lähinnä kokeilla erilaisten uusien tekniikoiden toteutusta.
XBL:stä olisi omasta mielestäni ehdottomasti hyötyä. Sillä voisi esim. toteuttaa koko sivuston yhtenäisen ulkoasun helposti. Ulkoasua voisi ylläpitää erillisessä tiedostossa, joka liitettäisiin XBL:llä kaikkiin sivuston dokumentteihin. Varsinaisiin dokumentteihin ei tulisi kuin yksi rivi XBL-koodia lisää. Jos sivuston ulkoasua täytyisi muuttaa, onnistuisi se muokkaamalla vain yhtä tiedostoa (eli XBL-dokumenttia). Yhtenäisen ulkoasun tekoon käytetään nykyään yleensä PHP:tä tai muita palvelinpuolen skriptejä, mutta aina niitäkään ei voi käyttää. XBL:n avulla ulkoasun ja sisällön saisi entistä paremmin erilleen. XBL kuitenkaan tuskin tulee ajankohtaiseksi www-sivujen tekijöille vielä vuosiin. Siinä kestää kyllä aikansa, kun tuki XBL:ään saadaan valtaselaimiin, mutta ei ole pahitteeksi tietää, mitä uutta on ehkä tulossa.
Esimerkkejä XBL:n käytöstä
Voit kokeilla ja tarkastella XBL-koodia ja sen liittämistä XHTML-dokumentteihin seuraavien esimerkkien avulla. Nämä esimerkit toimivat siis vain X-Smiles-selaimella. Esim. Firefox ja IE eivät XBL:ää vielä oletuksena tue. Voit kyllä katsoa myös näillä selaimilla, miltä sivut lähdekoodiltaan näyttävät.
Esimerkki 1: Ulkoasu dokumentille
- XHTML-dokumentti: http://www.xsmiles.org/demo/xbl2/template_layout.xhtml
- XBL-dokumentti: http://www.xsmiles.org/demo/xbl2/template_layout_xbl.xml
Ensimmäisessä esimerkissä XHTML-dokumentille annetaan ulkoasu XBL:n avulla vain lisäämällä sivun alkuun yksi rivi XBL-koodia (<?xbl href="template_layout_xbl.xml"?>
). Tällöin sivun body-tagin sisältö korvataan XBL-dokumentissa template-tagin sisällä esitetyllä sisällöllä, joka lisää body-tagin sisällön ympärille div-elementtejä, kuvia yms. Content-tagilla voidaan XBL:llä kertoa, mihin korvatun elementin alkuperäinen sisältö laitetaan.
Esimerkki 2: Ristinollapeli
- XHTML-dokumentti: http://www.xsmiles.org/demo/xbl2/handlers_tictactoe.xhtml
- XBL-dokumentti: http://www.xsmiles.org/demo/xbl2/handlers_tictactoe_xbl.xml
Toisessa esimerkissä XHTML-dokumentissa on taulukko, jonka soluihin on lisätty tapahtumankuuntelijoita, jotka kuuntelevat klikkauksia ja hiiren liikkeitä (event="..."
). Kun solua klikkaa hiiren vasemmalla näppäimellä (button="0"
), muuttuu solun sisältö ristiksi ja oikealla näppäimellä (button="2"
) nollaksi. Kyseessä on siis yksinkertainen ristinollapeli.
Lisätietoa XBL:stä
Yllä esitetyt esimerkit ovat vain pieni osa siitä, mitä kaikkea XBL:llä voi tehdä. Kovin paljon ohjeita XBL:n käyttöön ei netistä vielä löydy, mutta alla on muutama lähde, josta kiinnostuneiden kannattaa lähteä asiaan tutustumaan:
- W3C XBL 2.0 Candidate Recommendation (W3C:n spesifikaatio XBL:stä)
- XBL 2.0 Primer Working Draft ("aapinen" XBL-koodia käyttäville kehittäjille)
- XBL implementaatio JavaScriptillä (osittainen XBL-tuki valtaselaimille JavaScriptin avulla)