keskiviikko 19. joulukuuta 2007

mikko.fi - beta

Kävin taas vaihteeksi lueskelemassa mikko.fi:ssä keskustelualueella. mikko.fi on rohkeasti avannut käyttäjätuen kaikkien luettavaksi. Ja tuntuu, että moderointia ei palautteeseen ole. Olen sitä mieltä rehellisesti, että liike on ollut rohkea. Tosin palautetta lukiessa jää päällimmäisenä mieleen, että mikko.fi taitaa vielä olla beta. Pääosin palaute on nurisemista siitä ja tästä ja kuinka huuto.net on vielä paljon parempi. Kaipa se oli välttämätöntä, että huuto.netiin tullaan mikko.fi:tä vertaamaan joka käänteessä.

Mutta avoin ja julkinen palaute on aika hyvä juttu. Ehdottomasti nykyaikainen ratkaisu. Palautteen perusteella sitä voisi vain kuvitella, että mikko.fi on vielä beta asteella. Reagointinopeudessakin tuntuu olevan toivomisen varaa - muutama kuukausi sitten lukemani palaute oli tismalleen samaa mitä tänäpäivänäkin: ilmoituksen jättäminen on liian vaikeaa. Itse olen joskus ollut mukana tekemässä ammattimaisesti kuluttajille suunnattua palvelua/ohjelmistoa. Meillä oli tapana tehdä verrattain paljon kuluttajatutkimusta jo ennen julkaisemista - siis ennen beta julkaisua. Mikko.fi:n tapauksesta jää väkisinkin sellainen mielikuva, että beta testaus on suoritettu asiakkaan (Alma media) toimesta, eikä suinkaan oikeiden kuluttajien toimesta.

Mikko.fi -palautteessa kannustaa se, että suurimmat nurinan aiheet tuntuvat mutteri.com:issa olevan (mielestäni) hyvissä kantimissa. Eli ilmoittaminen on helppoa - ja ilmoitusten uudelleen luokittelua ja uudelleen käyttäminen yhtälailla nopeaa ja vaivatonta.

sunnuntai 9. joulukuuta 2007

Konseptoijan paras kaveri

Se on selvää, että sivustoja on helppo rakentaa powerpointilla tai vastaavalla. Piirtelee vain laatikoita sinne tänne, ja hyvä tulee. Yksi ongelma tuossa mallissa on se, että lopullinen tuotos ei välttämättä vastaa ulkoasullisesti ihan sitä miltä se näytti powerpointissa. Onneksi, usein tilanne on niinpäin että konseptisuunnitelma powerpointissa on huomattavasti tylsemmän näköinen kuin lopputuotos webissä. Yksi syy kolkkoon ulkoasuun powerpointssa on oikean tekstin puute. Tai pikemminkin oikeankaltaisen tekstin puute.

Tähän on olemassa onneksi verraton työkalu. www.lipsum.com tarjoaa lipsum -generaattorin mikä suoltaa oikean tekstin kaltaista puppua. Koko työkalun idea on tuottaa automaattisesti siis normaalin kirjoitetun tekstin kaltaista höpöhöpöä minkä voi kätevästi istuttaa konsepteihin kuvaamaan oikeaa tekstiä. Näin mistä tahansa leiskahahmotelmasta tulee realistisemman tuntuinen.

Raakaa statistiikkaa

Lienee paikallaan pieni tilannekatsaus miten mutteri.comia käytetään. Nyt minua kiinnostaa lähinnä se mistä ihmiset tulevat, ja miten he saitilla viihtyvät.
Viimeisen kuukauden aikana
  • 81% liikenteestä tuli erilaisten hakukoneiden kautta
  • 14% tuli eri sivustoilla olevien linkkien kautta
  • 4.5% tuli suoraan kirjoittamalla URL:in selaimen osoitekenttään
Google yksistään toi noin 80% kaikesta liikenteestä. Suosituimmat sivustolle tuoneet hakusanat (siis kaikissa hakukoneissa yhteensä) olivat: kirpputori, netti kirpputori, vanhojentanssipuku, polttariasut, ostetaan ipod nano.

  • Googlen mukana sivustolle saapuneiden bounce rate oli 53%. Eli 53% vierailijoista luki vain sen sivun mille he saapuivat, ja sitten navigoivat pois.
  • Suoran liikenteen bounce rate oli 40%
  • vuolanne.net:in mukanaan tuomista vierailijoista vain 23% poistui ensimmäisen sivun nähtyään. Eli vuolenne.net:in linkitys on melko arvokasta.
  • makupalat.fi:n sivuille johdattamat viihtuivät erinomaisen hyvin. Bounce rate vaivainen 6%.
Mitähän noista bounce rate -arvoista voisi oikein päätellä... ? No, ehkä sen, että linkitys aiheeseen liittyvällä sivustolla on erittäin arvokasta. Toisaalta, sitä voi miettiä onko hakusanat suunniteltu oikein, kun hakukoneiden mukanaan tulemat vierailijat häipyvät heti sivuston nähtyään. Vai tarkoittaako se vain sitä, että sivuston ulkoasu ei ole ollut riittävän houkutteleva?

Siispä katsotaan tuota hakukoneiden mukanaan tuomaa liikennettä, ja hakusanojen bounce rateja (lista suosituimmasta lähtien):
  • kirpputori: ylivoimaisesti suosituin hakusana ja bounce rate vain 19%. Keskimäärin kävijät viihtyivät 2 minuuttia sivustolla
  • netti kirpputori: myös noin 2 minuuttia / vierailu. Bounce rate verrattain alhainen 27%.
  • vanhojentanssipuku: aikaa sivustolla noin 1:50 ja bounce rate 70% (huom: sivustoa ei ole optimoitu mitenkään erityisesti tälle hakusanalle). Mutteri.com:issa on ollut muutamia vanhojentanssipukuja myynnissä. Korkea sijoitus vihjaisee siihen, että vanhojentanssipukuja myyvät liikkeet eivät vielä käytä internetiä hyväkseen.
  • polttariasut: aikaa sivuilla alle 10 sekuntia, bounce rate 85%
  • ostetaan ipod nano: aikaa sivuilla melkein 2 minuuttia, bounce rate 88%.
  • parhaiten sivustolla viihdyttiin hakusanalla netti kirpputori. com: Vierailija käytti noin 17 minuuttia sivuilla, latasi 25 eri sivua. Mutta näitä käyttäjiä oli tosiaan vain yksi.
Totta se on mitä sanotaan: hakukoneet tuovat sivuille suurimman osan kävijöistä. Siksi on todella tärkeää, että sivustosi avainsanat on suunniteltu järkevästi. Ja hakusana spämmäys on täysin hyödytöntä - sillä se tuskin paljon lämmittää sinua, jos kävijä tulee sivuillesi harhaanjohtavan hakusanan kautta ja painelee samantien pois - ellet sitten saa maksua jostain sivulatauksista tai mainosten pelkästä näyttämisetstä (pay-per-view).

Ajaxia ehdoin tahdoin

Tulipa syyllistyttyä koodaajan perisyntiin - tai ainakin minusta kyse on perisynnistä. Eli teknologiasta innostuneena väänsin väkisin toiminnallisuutta AJAX:illa. Ainoa motiivi oli päästä käyttämään AJAX:ia, ei suinkaan se, että kyseinen tekniikka olisi sopinut erityisen hyvin taikka että sitä olisi toiminnallisuuden toteuttamiseen tarvittu - valinta oli ihan puhtaasti teknologiapohjainen. En väitä, että toiminnallisuus olisi tuosta kärsinyt millään lailla. Toistaiseksi näyttää, että homma toimii kuten olin ajatellutkin. Eli jos menet mutteri.com:iin ja kokeilet yllänavigaatiossa esim "etsi" -toimintoa. Klikkaamalla valikossa kyseistä näppäintä, koko sivu ei lataannukaan, vaan navigaation alla olevaan segmenttiin ladataan AJAX:illa tuo hakulomake. Samalla tavalla toimii myös palautelomake, sekä sisäänkirjautumislomake. Huomattavaa on, että jouduin tekemään pientä lisäsäätöä, koska mielestäni kaikki sivut eivät toimi järkevästi jos nuo lomakkeet ladataan AJAX:illa ilman, että koko sivua ladataan. Esimerkiksi reksteröitymissivu ei mielestäni toimisi järkevästi mikäli sallisin ladata vain tuon sivun yläosan uudestaan ja jättäisin itse rekisteröitymislomakkeen ennalleen. Mielestäni sivun vaikutelma olisi vähintäänkin erikoinen: yläosassa olisi esimerkiksi hakulomake ja sivun varsinaisessa sisältöosassa olisikin rekisteröitymislomake. Itselleni ei ainakaan olisi täysin selvää mitä tapahtuu kun klikkaan hae tai vastaavasti rekisteröidy. Eli ratkaisu logiikkaongelmaan on se, että nuo muutamat lomakkeet toimivat AJAX pohjaisesti riippuen siitä millä sivulla käyttäjä on. Vain osa palvelun sivuista on rakenteeltaan sellaisia, että ne "tukevat" tätä AJAX toteutusta, ja osa sivuista ei tue sitä. Niiltä sivuilta jotka eivät mielestäni AJAX -lähestymistä tue, ladataan koko sisäänkirjautumissivu (tai haku tai palaute).

perjantai 7. joulukuuta 2007

Opetus 13: suunnittele, toteuta ja VALIDOI

Jokaisen sivuston rakentaminen pitäisi aloittaa suunnittelusta. Suunnittele etukäteen sivuston konsepti. Konseptilla tässä tarkoitan sivuston tarkoitusta, runkoa, toiminnallisuuksia ja keskinäistä yhdessätoimimista. Mieti mitä käyttäjät haluavat sivuillasi tehdä ja mieti miten voit tehdä sen käyttäjille helpoksi ja hauskaksi.

Hyvän suunnitelman, joka toivottavasti sisältää jopa sivuston ulkoasun hahmotelman, jälkeen on toteuttaminen helpompaa. Kun kaikkien sivujen toiminnallisuus on suunniteltu etukäteen, on toiminnallisuuden rakentaminen helppoa ja nopeaa. Toteutuksessa on hyvä noudattaa standardeja. Ei siis mitään selainkohtaisia laajennoksia tms. Näin takaat, että sivusi toimivat mahdollisimman laajalle käyttäjäjoukolle.

Ja kun kaikki on toteutettu, ei järjestelmä suinkaan ole valmis. Sen jälkeen alkaa testaaminen ja validointi. Vaikka olet pyrkinyt noudattamaan erilaisia standardeja, tulee kirjoittaessa usein tehtyä virheitä. Kukaan tuskin muistaa kaikkia HTML tai CSS kielten sääntöjä. Validointiin on onneksi oleamassa mitä mainioimmat työkalut:

  • The W3C Markup Validation Service, jonka avulla voit varmistaa, että kirjoittamasi HTML koodi on standardin mukaista ja virheetöntä. Virheetön koodi edesauttaa sivuston nopeutta, käyttökokemusta, hakukoneiden toimintaa, jne.
  • The W3C CSS Validation Service, on ylläolevan kaltainen validointipalvelu, mutta se varmistaa, että käyttämäsi CSS noudattaa standardia eikä sisällä virheitä. Virheetön CSS on kutakuinkin yhtä tärkeää kuin virheetön HTML.
  • Valitettavasti se ei riitä, että sivustosi noudattaa kaikkien käyttämiesi tekniikoiden standardia, sen lisäksi sinun kannattaa varmistaa, että sivustosi todella toimivat kuten olet ajatellut eri selaimilla. Näistä suurimmat ongelmat luultavasti tulee vastaan Microsoftin Internet Explorer versioilla 5.0 - 7.0. Tähänkin on onneksi työkaluja, jotka tulevat tarpeeseen meille, jotka tekevät töitä Linux tai Mac ympäristöissä.
    • browsershots.org tarjoaa mahdollisuuden testata käytännössä katsoen kaikilla käyttöjärjestelmä-selain yhdistelmillä. Browsershotsin ongelma on sen hitaus, se tuottaa kuvakaappauksia valitsemillasi selaimilla, mutta omien testien mukaan se antaa vain noin 2-4 kaappausta / tunti. Se ei oikein riitä debuggaamiseen.
    • ipinfo netrenderer puolestaan tarjoaa mahdollisuuden testata Microsoftin IE 6 ja IE 7 selaimilla. Näillä kahdella testaaminen onneksi varmistaa sivustosi toimimisen yli 50% käyttäjistä. 40% käyttäjistä käyttää Firefoxia, ja loput 10% satunnaisia selaimia.

Mikäli törmäät jossain vastaaviin validointipalveluihin, pistä tänne ihmeessä linkkejä. Toivottavasti näistä parista työkalusta on apua; ei muuta kuin koodaamaan ja testaaamaan!

Ulkoasun päivitys vuoteen 2007

Hyvin suunnitellun järjestelmän ulkoasua ei pitäisi tarvita muuttaa kovin usein. Itse arvioisin, että noin kerran vuodessa tai kahdessa pitäisi riittää. Monet suositut palvelut ovat pitäneet ulkoasunsa ja toiminnallisuutensa ennellaan koko elinkaarensa ajan. Mielestäni totaalinen kehityksen pysäyttäminen on huono ratkaisu sekin. Vaikka perusteknologia (html, css, javascript, etc) pysyisikin ennallaan, puhaltaa saittien ulkoasun suunnittelussa jatkuvasti uudet tuulet. Vuosituhannen alussa suunnitellut palvelut ovat auttamattomasti vanhan näköisiä.

Minä olen puolestani uusinut Mutteri.com:in ulkoasia säännöllisesti. Nyt taitaa olla jo layout versio kolme tai neljä menossa. Jokainen päivitys on aina tuntunut merkittävältä parannukselta edelliseen. Niin tietenkin tälläkin kertaa. Pyrin uuden ulkoasun myöt selkiyttämään palvelua ja yksinkertaistamaan. Samalla pyrin ottamaan tämän hetken tyylisuunnat huomioon kuten keskitetty kiinteän levyinen sisältöosa, selvästi kolmeen tai neljään osaan jaettu sivu vaakatasoisillä taustaväreillä, taulukoinnin sijaan pyrin käyttämään enemmän DIV elementtejä. Sanokaa mitä sanotte (ja sanoa tietenkin saa) mutta nyt näyttää järjestelmä taas paljon paremmalta ja modernimmalta.

Suurimmat huolet tällä hetkellä liittyvät tuoteryhmien löytämiseen. Edellisessä versiossa tuoteryhmät olivat jatkuvasti oikeassa reunassa. Nyt ryhmät on siirretty itse sisältöosaan ja useimmiten sivun alalaitaan. On myönnettävä myös, että uusi tuoteryhmä luettelo toimii hieman huonommin. Siinä on selvästi vielä parannettavaa. Toinen merkittävä muutos oli siirtää sisäänkirjautuminen omalle sivulleen. Aikaisemmine sisäänkirjautumislomake oli myös aina näkyvillä sivun oikeassa reunassa. Nyt sisään pitää kirjautua erilliseltä sivulta. Tuolle sisäänkirjautumissivulle on luonnollisesti linkkejä muutamassakin paikassa sivulla, mutta on mielenkiintoista nähdä miten muutos tulee vaikuttamaan esimerkiksi rekisteröitymisiin tai sisäänkirjautuneena jätettyihin ilmoituksiin. Ja viimeinen huoli on tietenkin vanha kunnon Internet Explorer. Tuo puolen maailman käyttämä selain, joka ei ymmärrä standardeista tuon taivaallista, vaan taittaa sivut päin hel***tiä. Sitä voi tietenkin yrittää lohduttautua sillä, että sivut ovat läpäisseet W3C:n html ja css validaattorit, mutta se ei auta, sillä IE ei silti taita sivuja oikein. Kun katson mutteri.com:in käyttötilastoja, noin 55% käyttäjistä käyttää IE selainta. Noista 55% onneksi yli puolet käyttää jo IE 7 versiota, joka taittaa sivun vähän paremmin - joskaan ei silti oikein. Tässä sitä taas ollaan:

This site has been optimized for FireFox.

Niinpä sivusto toimii IE:llä, mutta ulkoasu ei ole ihan sellainen kuin sen pitäisi olla. Aina voi suositella FireFox selainta, mutta kukapa sitä suosikkiselaintaan vaihtaisi jonkin sivuston takia...? En minä ainakaan. Vaikka Microsoft aikanaan luultavasti edesauttoi internetin leviäimistä, kehitystä ja yleistymistä upottamalla IE:n osaksi käyttöjärjestelmää, teki se myös karhunpalveluksen koko internet -yhteisölle toteuttamalla selaimensa huonosti, standardeja karttaen ja kiertäen, sekä omia laajennoksia luoden.

torstai 6. joulukuuta 2007

huh - domainin siirto takana

Kuten jokunen viikko takaperin tuli mainittua, olin päättänyt siirtää mutteri.com:in toiselle palveluntarjoajalle. Siirtoon liittyy aina vain valitettavasti riskejä ja huolia:
  • kuinka pitkäään järjestelmä on poissa käytöstä?
  • miten varmistetaan, että siirron yhteydessä viimeisimmät muutokset saadaan siirrettyä uudelle palveluntarjoajalle?
  • miten siirtää tietokannan sisältö?
  • entäs erilaiset merkistöt (utf8, latin, ...)?
  • tarjoaako uuden palveluntarjoajan järjestelmä tuen samalle php konfiguraatiolle?
  • hidastuuko järjestelmä siirron jälkeen tai sen seurauksena?
  • katoaako osa käyttäjistä siirron jälkeen tai yhteydessä?
Mutta nämä huolet ovat valitettavasti sellaisia, että varmuudella vastauksen saa vasta kun homma on hoidettu. Varsinkin näiden "halpojen" palveluntarjoajien kanssa palvelutasossa voi olla toivomisen varaa. Mutta kuinka ollakaan tämä(kin) siirto tapauhtui verrattain kivuttomasti. Daous / int2000.net (edellinen palveluntarjoaja) hoiti tällä kertaa siirtoon liittyvät muutokset erinomaisella tavalla. Heidän puoleltaan ei tullut mitään hikkoja tai muita ongelmia. Vastaavasti uusi palveluntarjoaja hoiti hommansa mallikkaasti - tosin godaddy:llä kaikki on automatisoitua, joten sitä kautta palvelu sujui kivuttomasti ja vailla viiveitä.

Siirron yhteydessä palvelu oli poissa käytöstä noin tunnin ajan. Olin etukäteen laittanut etusivulle ilmoituksen tulevasta muutoksesta. Tietojen siirtokin sujui mallikkaasti: yhtään rekisteröitymistä tai uutta ilmoitusta ei menetetty ja käyttöhistoriaakin katosi vain joitain minuutteja. Tietokannan kanssa oli suurimmat ongelmat - osa tauluista on kymmenien megatavujen kokoisia, joten niiden lataaminen uuteen järjestlemään oli ongelmallista. Valitettavasti osa datasta piti jättää lataamasta. Tämä ei kuitenkaan ollut mitään järjestelmän kannalta kriittistä dataa. Ja sekin data on tallessa. Merkistöjen kanssa on aina ongelmia, mutta nyt sekin sujui varsin kivuttomasti, sillä testailin niitä uudella palveluntarjoajalla jo etukäteen. Myös php konfiguraatiot tuli testattua siinä määrin, että olin vakuuttunut jo etukäteen, että siirron yhteydessä ei menetetä toiminnallisuuksia. Hidastumiseen vastaus saataneen muutaman ensimmäisen käyttökuukauden aikana, mutta toistaiseksi näyttää hyvältä. Käyttäjäkatokin selviää lähiviikkoina - tosin joulukuu on muutenkin ollut erinomaisen hiljaista aikaa. Ihmiset selvästi viettävät enemmän aikaa kaupoissa joulun valmistelu mielessä. Toivotaan, että käytetyn tavaran myyminen vilkastuu taas tammikuussa.

Muuton yhteydessä päätin olla julkaisematta uutta toiminnallisuutta. Mahdollisen jälkikorjailun kannalta on viisaampaa rajoittaa muutosten määrää. Parempi tehdä yksi suurempi muutos kerralla - näin voidaan rajata ongelman syntysyitä mikäli ongelmia muodostuu.

tiistai 6. marraskuuta 2007

Facebook ja 50 Miljoonaa käyttäjää

Viime aikoina on kohistu melko lailla paljon facebookista. Suurin kohun aiheuttaja lienee se, että Microsoft maksoi tähtitieteellisen summan mainosoikeuksista ao. saitille. Jos sivuille laskisi suoraan lineaarisesti arvon, olisi se jotain luokkaa 10 Miljardia euroa. Se on aika paljon rahaa - varsinkin netti sivustosta. Kyllä tuntuu olevan yhteisöllisyydellä imua. Luultavasti jokainen nettikehitystä tekevä miettii pienessä päässään, että miksi minä en tehnyt tuota....

Kohina oli niin kovaa, että minunkin oli pakko mennä kurkistamaan mikä helkutti se lärvikirja oikein on. Muutama kutsu on tullut minullekin sähköpostiin, joten sieltä pääsi linkkiä seuraamalla kätevästi katsomaan miltä ne ihmisten profiilit näyttävät - tai sitten ei päässytkään. Oletin, että ihmisillä olisi jonkinlainen julkinen profiili, ja itse yhteisöä pääsisi varsinaisesti käyttämään vasta kun rekisteröi itselleen tunnuksen. Mutta hommapa ei toiminutkaan niin. Facebookiin pitää rekisteröityä jotta näkisi edes kutsun lähettäneen ihmisen profiilin. Niin jäi facebook tutustuminen tekemättä. Mutta yksi salaisuus ratkesi: miten facebookilla on yli 50 miljoonaa käyttäjää.

Niinpä minä en vieläkään tiedä miksi facebook on niin kova juttu. Itse olen liittynyt linkedin.com:iin joskus vuosia sitten - ja senkin käyttö on jäänyt vähän vähemmälle. Ehkä minä en olekaan community saittien kohdeyleisöä. Mutta jos siellä pyörii tuommoiset rahat, taitaa minunkin olla syytä perustaa oma yhteisö.

torstai 1. marraskuuta 2007

Selkokieliset URLit

Tämän päivän koodiannos on kulunut selkokielisten url:ien selvittelyssä. Eli ideana on simppelisti tuottaa dynaamisesti selkokilisiä URL osoitteita ilman kaikenmaailman file.php?xxyc=1231&sorting=asc -tyylisiä osoitteita.

Tähän itseasiassa löytyy melkoisen paljon hyviä (?) oppaita ja ohjeita. Idea on mielestäni erinomainen paristakin syystä:
  1. hyvä url on helppo / helpompi muistaa
  2. hakukoneet tykkäävät selkokilisistä osoitteista. Ja ne inhoavat parametroituja osoitteita. Käsittääkseni useat hakukoneet eivät edes indeksoi kuin ehkä yhden tai kaksi parametria.
Tämän ongelman ratkaisemiseen löytyy tosiaan kätevä kikka Apachesta (mitä luultavasti 80% web palvelimista käyttää). Tämä ongelmat ratkaistaan parilla tempulla
  1. web palvelimen configuraatiossa (httpd.conf ainakin minulla) noiden serverin konfiguraatioiden ohittaminen paikallisella .htaccess -tiedostolla.
  2. saitin juurihakemistoon luodaan .htaccess tiedosto
  3. tuohon .htaccess tiedostoon määritellään käsiteltävä tiedosto (esim catalog) ja se, että palvelimen pitää suorittaa tuo catalog -niminen tiedosto php:na, eikä tekstitiedostona.

ForceType application/x-httpd-php

Ja sitten vain nimetään catalog.php nimelle catalog (ilman .php päätettä). Ei tuo temppu ihan noin simppeli ollut, mutta ehkä periaate tuli selväksi. Tuosta löytyy todella paljon hyviä ohjeita englanninkielellä googlaamalla "Forcetype URL" -tai vastaavaa.

Tavoite on, että lähden seuraavaksi (jossain vaiheessa) muuttamaan järjestelmän URL rakennetta tuota metodia käyttäen. Sitten nähdään miten pagerankille tapahtuu :-)

Pientä pintaremonttia

Muutama viikko sitten sain palautteena ideoita miten mutteri.com:ia voisi parantaa. Noista ideoista taas hieman motivoituneena tein saitille muutamia pienimuotoisia uudistuksia. AJAX:iin en vieläkään ole koskenut tämän saitin puitteissa. Ja syy on surkea - vaikka olen jotain pientä AJAX:ia käyttäen tehnytkin, ei se ole ihan vielä uponnut. Javascript on mielestäni perseestä, lähinnä siksi, että en sitä itse juurikaan osaa. Mutta vaikka AJAX antaa vielä odottaa, tuli tehtyä kuitenkin muutamia pikkutemppuja, jotka tuovat mutteri.comin ehkä vähän lähemmäs tämän päivän layoutteja. Olen tainnut jossain kommentoida itsekin, että saitti on tyyliltään ja toiminnallisuudeltaan lähempänä vuotta 1999 kuin vuotta 2007.

Tein pari perusjuttua nyt kuntoon:

  1. tagipilvi etusivulle: tavoitteena tuoda suositut kategoriat helposti ja nopeasti saataville.
  2. suuret pikanäppäimet niille toiminnoille, joiden toivon olevan käyttäjille tärkeitä ja paljon käytettyjä. Pikanäppäimenä on tuo "kutsu ystävä":kin jonka olen haukkunut täysin turhaksi ominaisuudeksi. Eikä sen suosio tunnu kasvavan, vaikka nappi on nyt paraatipaikalla.
  3. Joutavat tekstit (esittelyt ja muut) vein etusivun loppuun. Hakukone ne sieltä löytää... ja käyttäjäkin jos jaksaa rullailla sivua alaspäin.
Tavoitteena näillä tempuilla oli tosiaan lisätä tilan tuntua saitilla - lisää valkoista = lisää ilmavuutta. Toinen tavoite oli tuoda keskeinen tieto keskeiselle paikalle, mistä käyttäjän silmä sitä todennäköisimmin hakee.

Muitakin muutoksia / lisäyksiä on mielessä, mutta vapaa-aika tuntuu olevan kortilla. Varsinaisia toiminnallisuuksiahan nyt ei systeemiin lisätty, jos tagipilveä ei voida pitää toiminnallisuutena.

Tattista Artulle vinkeistä. Lisävihjeitä otetaan kiitollisena vastaan.

torstai 18. lokakuuta 2007

Miten pystyttää aktiivinen keskustelufoorumi

Yhteisöllisyys on pop. Ihmiset haluavat osallistua itse sisällön tuottamiseen. Fanaattiset kannattajat osallistuvat keskusteluihin intohimonsa kohteeseen omistetuilla sivustoilla. Tästä hyvä esimerkki voisi olla vaikka kotimainen www.soccernet.fi -palvelu. Muistan kun Internet oli vielä nuori, kun soccernet avattiin. Palvelulla oli melkoinen repertuaari ominaisuuksia - mukaanlukien tulospalvelu eri jalkapallosarjoista. Jossain vaiheessa palvelun elinkaarta järjestelmän pyörittäjä totesi, että itse tulosten ylläpitäminen on turhan työlästä, eikä tuo riittävän suurta vastinetta sijoitetulle ajalle. Samaan aikaan pystytetty Futisforum osoittautui erinomaisen suosituksi. Ihmiset halusivat keskustella ja kertoa mielipiteensä jalkapallosta, suosikkisarjoista ja -seuroista. Niinpä itse tulospalvelu jäi palvelussa taka-alalle ja lopulta kokonaan pois. Jäljelle jäi erinomaisen aktiivinen keskustelupalsta jalkapallosta. Tämä keskustelupalsta on muuten ollut toiminnassa yli kymmenen vuotta - ja se on jo melko kunnioitettava ikä internetissä.

Siispä kuka tahansa joka toivoo ansaitsevansa rahaa internetillä miettii kuumeisesti miten saisi aikaan yhteisösivuston jonne tulisi aktiivinen käyttäjäkunta... tähän on olemassa ratkaisu. Ehdotuksen ratkaisee tosin ainoastaan tuon aktiivisen käyttäjäkunnan ongelman - rahaa se ei tuo. Tehokas keino saada paljon ilmoituksia ilmoitustaululle on asentaa phpBB, julkaista urli googleen ja jättää päivittämättä phpBB (eli älä asenna korjauksia palvelimellesi). Ennen pitkää turhanpäiväiset spammaajät löytävät keskustelufoorumisi ja alkavat lataamaan sinne mainosviestejä. Valitettavaa on vain se, että näillä viesteillä ei ole mitään arvoa.

Pistin vuosi sitten pystyyn testimielessä keskustelufoorumin juuri phpBB:hen pohjautuen. Jätin tuon forumin oman onnensa nojaan. Kun aikaa kului, alkoi forumiin tulla ilmoituksiakin. Tänään forumin eri palstoilla on jo yli 1500 ilmoitusta. Joskin niistä suurin osa mainostaa Cialista tai muita potenssia parantavia tuotteita. Huvittavaa on se, että julkaisemani foorumi on suomenkielinen ja osa ilmoituksista on muotoa: "thanks for the interesting forum. I will definately come back, but now I have to go...". Ja tämän ilmoituksen ideahan on vain se, että ao. käyttäjä saa oman nimimerkin ja profiilin minne voi lisätä web osoitteita. Näin he saavat (tai ainakin toivovat saavansa) viittauksia omille web sivuilleen ja toivovat siten, että kyseisten sivujen pagerank paranee.

Enpä ole yrittänyt tarkistaa indexoiko esim google koko foorumia, mutta sen voin sanoa, että kyseisillä sivuilla ei todellakaan käy oikeita ihmisiä linkkejä seuraamassa.

perjantai 12. lokakuuta 2007

mikko.fi

No niin... Alma Media avasi uuden myyntipalvelun nimeltä mikko.fi. Tai on, onhan siitä jo muutama kuukausi kun tuo uusi palvelu lanseerattiin. Mielenkiintoista nähdä miten uusi palvelu otetaan vastaan. Pääsee varmaan seuraamaan miten uutta palvelua lanseerataan siten, että käytössä on ihan oikea budjetti mm. markkinoinnille ja brandin rakentamiselle. Kuten olen jo pari kertaa tainnut mainita, on tuo myyntikanavian tarjonta melko hyvä jo Suomessa. Tilaa uusille palveluille toki on, mutta uskon, että todellisen suosion voi saavuttaa ainoastaan tekemällä asioita paremmin kuin muut. Kenties parhaiten pintansa pitätänyt huuto.net jättää objektiivisen vierailijan kylmäksi... toiminnallisuuksia on vähän ja ne ulkoasukin on jo vanhentunut. Mutta, käyttäjiä on paljon, tuotteita on paljon ja huuto.net on yhä erinomaisen helppokäyttöinen.

Kävin tutustumassa mikko.fi:n keskustelupalstaan. Palautteen perusteella on mikko.fi:llä vielä paljon petrattavaa jos haluavat sanoa tekevänsä hommaa paremmin kuin muut. Itse en palvelua ole käyttänyt (varmaan pitäisi), joten kommenttini perustuvat puhtaasti keskustelupalstalta lukemiini kommentteihin.

Mutta jossain se mikko.fi on onnistunutkin: muutamassa viikossa oli järjestelmässä jo enemmän ilmoituksia kuin mutteri.com:issa. Jos menet kadunmieheltä kysymään, niin hän tuskin mikko.fi:tä tuntee - mutta nimi on varmasti tutumpi kuin mutteri.com. Ja olisihan se ihme jos ei olisi - vaikka palvelun budjetti ei varmasti tule julkiseksi, väitän, että palvelun rakentaminen, operointi ja kehittäminen on maksanut ja maksaa jatkossakin tuhansia kertoja enemmän kuin mutteri.com:in.

Kuten sanottua, on erittäin mielenkiintoista miten mikko.fi pääsee myyntipalstojen kartalle ja kuinka pysyvän jäljen se pystyy jättämään. Uskon kuitenkin, että vanhojen konkareiden syrjäyttäminen ei onnistu ellei tarjontaan ilmesty jotain todella mullistavaa - ja toistaiseksi esitellyt lääkkeet pistää mikko.fi:n jonnekin kauppapaikkojen keskikastiin.

torstai 11. lokakuuta 2007

Websafe colors

Mielenkiintoinen "tutkimuksenala" on tuo oikeiden värien valinta web sivuille. Väreillä on tunnetusti voimakas vaikutus ihmiseen. Punainen varoittaa, sininen on kylmää, oranssi lämmintä ja niin edelleen. Osa väreistä sointuu luonnollisesti toistensa seuraan ja toiset aiheuttavat suuria ristiriitoja. Ja tietenkin on väriyhdistelmiä joiden käyttö tekee järjestelmästä käyttökelvottoman - tästä esimerkkinä vaikka sininen teksti mustalla taustalla.

Web 2.0 toi mukanaan uuden ilmeen internet sivustoille. Yksi tärkeä ulkoinen elementti on ollut sivustojen muotokieli. Tyypillinen web 2.0 sivusto sisältää pyöreitä muotoja, heijastusefektejä, paljon tyhjää tilaa ja pastellisävyjä. Väreihin liittyy myös niiden toistamiseen liittyvä problematiikka: osa väreistä toistuu aina samanlaisina, riippumatta näytöstä, selaimesta, jne. Suuri osa väriestä toistuu hieman erilaisina käytettävästä selainympäristöstä riippuen. Näitä turvallisia värejä kutsutaankin nimellä websafe colors. Perehdypä ihmeessä aiheeseen - samoin kuin noihin web 2.0 väreihin.

Utelias saattaa kysyä miksi mutteri.com:in väritys on mitä on. Siihen on erinomaisen yksinkertainen selitys: allekirjoittanut itse on värisokea, joten pyrin pitäytymään mahdollisimman tutuissa väreissä, tai värien puutteessa. Valkoinen, harmaa ja musta tuntuvat minulle turvallisilta, vaikka valitettavasti antavat usein käyttäjälle tylsän vaikutelman itse palvelusta. Tavoitteeni on uusia jossain vaiheessa mutteri.com:in väri-ilmettä ja tuolloin tulen varmaankin käyttämään jotain valmista väriskaalaa minkä webistä löydän.


Ei liikennevalo koodattuja toiminnallisuuksia, eikä punaisella korostettua tekstiä - Kiitos!

Värisokeana muuten voin antaa pari vinkkiä kaikille suunnittelijoille: perinteiset liikennevalo indikaattorit ovat "hanurista" - värisokea ei välttämättä tiedä onko nappi punainen, vihreä vai keltainen. Myös punaisen värin käyttäminen tärkeiden kohtien korostamiseen tekstissä on HUONO valinta. Punainen väri ei valitettavasti hyppää värisokean silmään mustan joukosta yhtään samalla tavalla kuin "normaalin" ihminen sen kokee.

Internet mainonnan onni ja autuus - ja muutakin rätinää

Internet mainonnasta
Olen tainnut (muistaakseni) valittaa jo aikaisemmin internet mainostamisen paradoksista - minä mainostilan vuokraajana (eli saitin omistajana) annan osia omasta sivustostani mainostajien käyttöön. Koska sivustoni on myyntipaikka, missä käyttäjät myyvät omia tuotteitaan, on hieman paradoksaalista, että koko sivuston idea on, että ammattimaiset tavaranmyyjät laittavat mainoksia kilpalijoidensa ilmoituksien lomaan. Olen pyrkinyt hillitsemään tätä ongelmaa sillä, että rekisteröityneiden käyttäjien ilmoitusten sivulle ei tule mainoksia. Toivottavasti tämä palvelee tarkoitustaan - ja kannustaa käyttäjiä rekisteröitymään.

Olen viime aikoina, mitä työkiireiltäni olen ehtinyt, seurannut sivustolla olevia mainoksia. On huvittavaa ja surullistakin, että suurin osa www.mutteri.com -etusivun mainoksista on itse kauppapaikan kilpailijoiden mainoksia: on huuto.net, autotalli.com, on24.fi ja postimyyntiyrityksiä. Eli todellisuudessa palvelun etusivu sisältää listan linkkejä joiden tarkoitus on "varastaa" käyttäjiä itse palvelulta ja viedä heidät kilpailijoiden kauppapaikoille. Tämä on tietenkin ongelma mitä ei esiintyisi jos palvelussa ei olisi lainkaan mainoksia, mutta kun järjestelmän tarkoitus on tarjota käyttäjille ilmainen kauppapaikka, on mainokset melkeinpä ainoa tapa saada korvausta järjestelmän kehittämisestä ja ylläpidosta. Onneksi se ei ole kallista, paitsi ehkä oma vapaa-aika jota tuntuu kuluvan.
...ja sitten se rätinä
Toinen syksyn mukanaan tuoma huomio on, että palvelun käyttöaste on kasvu-uralla. Se on tietenkin kannustavaa. Syys-Lokakuussa päivittäisiä kävijöitä on jo yli sata. Se on tietenkin kaukana kotimaisen webin suosituimmista sivustoista, mutta kyllä jo kolminumeroiset päivittäiset kävijämäärät kannustavat jatkamaan. Mainostulot ovat pysyneet kaksinumeroisina kuukausitasolla - eli rikastumiseen on vielä piiiitkä matka :D

Marraskuussa ajattelin kokeilla googlen adwordsin tehoa kävijämääriin ja mainostuloihin. Tavoitteena on kirjailla blogiin pari riviä aiheesta kunhan vain saan homman pyörimään.

Sitä odotellessa, jos SINULLA on hyviä (ja halpoja) ideoita miten mutteri.com:in tunnettavuutta saa parannettua, niin ei muuta kuin replyjä tähän postaukseen.

keskiviikko 22. elokuuta 2007

Opetus 13: Silmät aina auki palveluntarjoajien suhteen

Kun aikanaan ostin www.mutteri.com domainin (vuonna 2002 muistaakseni) oli palvelun hostaaminen verrattain halpaa. Päädyin tuolloin kotimaiseen hostaajaan nimeltä Daous (www.int2000.net / www.daous.fi). Vaatimukset palveluntarjoajaan silloin olivat vähäiset: php ja mysql, ftp tili - eikä oikeastaan muuta. Hinta tuolla vuoden paketilla (joka sisälsi myös domain rekisteröinnin) olin noin 37 euroa. Eli ei mikään järisyttävä hinta.

Aikaa kului (eikä www.mutteri.com itseasiassa ollut tuolloin edes kirpputori), ja daous muutteli omia hosting pakettejaan - ja valitettavasti myös hintojaan. Usean vuoden ja usean muutoksen jälkeen, palvelun sisältö on suunnilleen sama mitä se oli alunperin, voi olla, että tallennustilaa on tullut lisää jne. Mutta nyt hinta on jo noin kaksinkertainen. Tässä kohtaa olen alkanut miettimään josko Daous tarjoaa minulle juuri sopivaa palvelua juuri oikeaan hintaan. Yhden domainin olen jo aikanaan siirtänyt heiltä pois Tanskaan (www.space1.nu). Tuo siirto oli melkoisen hankala ja hidas, joten kynnys domainin siirtämiseen on ollut verrattain korkea.

Nyt kuitenkin bongasin USA:sta hostaajan (www.godaddy.com) joka tarjoaa erinomaiset työkalut, ja todella houkuttelevat hinnat palvelunpyörittämiseen. Nykyään suorituskykymielessä ei ole juurikaan eroa sillä onko palvelu Euroopassa vai USA:ssa. Valtameren ali kulkevat kaapelit ovat sen verran paksuja ja nopeita, että verkkoviivettä ei pääse syntymään. Eli tämän hetken suunnitelmien mukaan siirrän mutteri.com:in amerikkalaisille palvelimille.

Suosittelen siis aina pitämään silmät auki sen palvelun suhteen mitä ostat. Tietyistä asioista kannattaa maksaa, mutta jossain kohtaa saattaa tulla eteen hetki, jolloin et välttämättä ole enää tyytyväinen joko saamaasi palveluun tai sen hintaan. Silloin on hyvä olla tietoinen vaihtoehdoista. Eipä tämä opetus juuri muusta kaupanteosta eroa... mutta on hyvä pitää mielessä, että palveluntarjoajia voi kilpailuttaa ja palveluita voi siirtää.

tiistai 21. elokuuta 2007

Gorilla markkinointiosaston johdossa

Guerilla marketing - tästä mun on pitänyt kirjoittaa jo monta kertaa, mutta valitettavasti en ole ehtinyt perehtyä aiheeseen riittävästi. Olen luonteeltani enemmän koodaaja / kehittäjä kuin markkinoija, joten aikaa markkinoinnille tuntuu löytyvän huononlaisesti. Mutta vuoden aikana se on tullut selväksi, että homma ei lähde lentoon ilman markkinointia.

Kun palvelua pyörittää harrastelijapohjalta ja harrastelijabudjetilla, ei oikein viitsi ostaa koko sivun mainosta Hesarin kanteen - tai spottia mtv3:lta prime-timeen. Silti pitäisi pystyä markkinoimaan omaa saittiaan, sillä muuten ei käyttäjiä sivuille ilmesty. Tässä kohtaa tarvitaan vähän kekseliäisyyttä. Kysymys siis kuuluu: miten saada nimeä, sijoittamatta (suuria summia) rahaa markkinointiin ja julkisuuskampanjaan? Apuun rientää Jay Levinson (www.gmarketing.com) ja Guerilla - marketing. Guerilla marketing:in idea on käyttää sellaisia keinoja brandia tutuksi tekemiseksi mitkä eivät maksa paljoa, mutta minkä "return on investment" on korkea. Eli: ole kekseliäs, käytä omaa aikaasi järkevästi ja rakenna siten oma brandisi.

Tuo nyt oli niin epäselvää sössötystä, että listaanpa tähän muutamia Guerilla markkinoinnin keinoja (jotka ainakin minä olen mieltänyt Guerillaksi):
  • Osallistu olennaisiin keskustelukanaviin oman brandisi nimissä. Ole aktiivinen.
    Tässä muuten kannattaa olla myös varovainen - suoraa saittien markkinointia harvemmin katsotaan hyvällä - ja vaikutus voi olla jotain ihan muuta kuin olit ajatellut.
  • Search Engine Optimization (tästä saa olla eri mieltäkin)
  • Sähköposti signeeraukset (brandilläsi)
  • Halvat ja näkyvät tempaukset (esim: snoobi.fi palvelu pystytti kesällä Tampereen rantatien varteen suuren Suomen kartan missä luki snoobi.fi. Oli kampanja sen verran tehokas, että painelin webiin tarkistamaan mikä se seemmoinen snoobi.fi oikein on)
  • ristiinlinkitykset, bannerit, napit, etc.
  • Perusta oma blogi brandistasi (hehe... kuten tämä blogi)
Vaikka en itse juurikaan itse ole aiheeseen perehtynyt, suosittelen tutustumaan. Kun ryhdyn tekemään aktiivisempaa markkinointia, perehdyn asiaan tarkemmin - ja varmasti kirjoitan aiheesta lisää.

Ja viimeisenä vinkkinä: käypä katsomassa mitä Arttu puuhailee saitillaan nettibisnes.info. Törmäsin ao. saittiin yhden tämän blogin kommentin kautta, ja sisältö teki vaikutuksen. Suosittelen!

perjantai 17. elokuuta 2007

Tilinpäätös

Niinpäs se aika rientää kun on mukavaa. mutteri.com sai alkunsa kirpputorina / myyntipaikkana hieman reilu vuosi sitten. Tässä kohtaa voisi olla hyvä vähän miettiä vuoden aikana saavutettiin. Avainluvut ovat varmasti hyviä mittareita:
  • Päivittäisiä kävijöitä: noin 60-100
  • Päivittäisiä sivunlatauksia: noin 300-400
  • Mainostuloja: joitain kymmeniä US dollareita kuukaudessa (ei satoja)
  • Järjestelmän vaatima ylläpitotyö: alle 1 minuutti / päivä (keskiarvo)
  • Järjestelmän alkuperäinen kehitystyö (mukaanlukien testaus): kymmeniä päiviä
  • Markkinointibudjetti: nolla euroa
En tässä kohtaa pysty tuota tarkempia tunnuslukuja tarjoamaan, mutta kyllä tuosta saa melko hyvän kuvan hankkeen kannattavuudesta tai kannattamattomuudesta. Kuten aikaisemmin mainitsin, kilpailutilanteen takia en ryhtyisin samaan hankkeeseen uudestaan.

Mitä sitten seuraavan vuoden aikana? Luultavasti lisään pieniä toiminnallisuuksia, mielessä ovat olleet mm. huutokauppa toiminnallisuudet, mahdollisuus kysyä myyjältä palvelussa, ilman sähköpostia. Mahdollisesti tuon jotain AJAX pohjaisia ominaisuuksia - jos ne saa luonnollisesti mukaan. Ja luultavasti pistän hieman rahaa kiinni palvelun markkinointiin. Tarkempaa markkinointistrategiaa en ole suunnitellut, mutta mm. Googlen Adwords kiinnostaa - erityisesti haluan tietää kuinka tehokas markkinointikanava se on mainostajan kannalta. Tällä hetkellä kokemukseni ovat rajoittuneet mainostilan myyntikokemuksiin. Lisäksi olen ajatellut kokeilla myös vaihtoehtoisia mainosvälittäjiä, kuten Microsoftia tai Yahoota - myös Tradedoubler kiinnostaa, vaikka lukemani perusteella Tradedoubler ei niin hyvä/tehokas olekaan.

Miten tehdä tuntemattomasta palvelusta suosittu ja tunnettu minimaalisella budjetilla?
Tuohon kysymykseen kun löytäisi vastauksen... Sitä pitää siis pyrkiä selvittämään jatkossa(kin). Ideoita ja ehdotuksia otetaan vastaan :)

lauantai 4. elokuuta 2007

Kupla 2.0

Tässä päivänä eräänä keskustelin ystäväni kanssa web 2.0:sta ja siitä miltä Suomen web 2.0 oikein näyttää. Molemmat koimme (tosin pelkästään työntekijöinä) 2000 -luvun alun internet huuman. Molemmat olivat sitä mieltä, että me Suomessa olemme jääneet tässä web 2.0 ilmiöstä todella pahasti paitsioon. Väittäisin jopa, että meikäläinen ilmapiiri on merkittävästi sulkeutuneempi ja suvaitsemattomampi mitä se oli 2000 luvun alussa. En tarkoita, että kaikilla pitäisi olla oma "Riot Entertainment" -firma, joka keskittyy vain rahan kuluttamiseen. Mutta jos miettii minkälaisia palveluita (kaupallisia tai yleishyödyllisiä) me suomalaiset olemme saaneet aikaan - on lista halvaannuttavan lyhyt.
  • Jaiku, ehdottomasti kotimainen web 2.0 onnistuja.
  • Habbo - joo, mutta taitaa olla enemmänkin ensimmäisen kuplan selviytyjiä, kuin web 2.0 ilmiö.
  • muita... ? eipä juuri tule mieleen merkittäviä.
Onhan meillä tietenkin joitain kotimaassa toimivia web 2.0 saitteja / ilmiöitä: blogilista.fi, kerro.fi, blogilista.fi, optimointi.com ja muutamia muita. Scene on pieni, ja tarjonta verrattain vaatimatonta (sori vaan kaikki jotka vääntää saittejaan yötä myöden, eikä saa nimeä aikaiseksi).

Mitä sitten ensimmäisellä kierroksella tapahtui? Oli iobox, huuto.net, keltainen pörssi, wapit...

Mistä se sitten oikein kertoo, että meno ei ole samanlaista kuin 7 vuotta sitten? Varmaan kattavammankin listan saisi aikaan, mutta oma fiilikseni on:
  • Vaikka meillä on laajakaistoja enemmän kuin monissa muissa maissa, meikäläinen käyttö on silti erinomaisen perinteistä. Käydään lukemassa iltalehti, maksetaan laskuja ja tarkistetaan sääennusteet.
  • Yleinen ilmapiiri (huolimatta yritysten hurjista tuloksista) on hieman rauhaton ja ehkä jopa lannistava.
  • Verottaja ja sosiaaliturva pitää huolen siitä, että yrittäjiä ei pääse liiemmälti kertymään nurkkiin - jos yrität jotain, ja homma ei toimi, niin lainsuojattoman asemassa olet
  • ja jos sitten yrität JA onnistut, niin verottaja pitää taas huolen siitä, että et pääse rikastumaan
  • Verkostoituminen: todella tasokkaan palvelun tekeminen vaatii hyvän verkoston ja yhteen hiileen puhaltamista. Yksi ihminen ei pysty tekemään kaikkea - ei sitten millään.
Valitettavasti tuntuu siltä, että olemme nyt (ja luultavasti jatkossa) internetin kehityksessä ja kehittämisessä matkustajan asemassa. Toivotaan, että olen väärässä...

perjantai 27. heinäkuuta 2007

Eikö sinulla ole ystäviä?

Eräs ensimmäisistä toiminnoista minkä järjestelmään rakensin oli ominaisuus, millä saitilla vieraileva käyttäjä voi lähettää ao. saitin linkin ystävälleen - suoraan webistä, ilman, että käyttäjän tarvitsee käyttää omaa sähköpostiaan. Vastaava toiminnallisuus on tietenkin liitettynä myös jokaiseen yksittäiseen ilmoitukseen: eli lähetä ilmoitus ystävällesi. Kuvittelin, että tämän tyylinen toiminto olisi omiaan edesauttamaan palvelun käytön laajentamista.

Omasta kokemuksestani tiesin, että kynnys käyttää moisia toimintoja ja ilmoittaa sinne omia (tai kavereiden) sähköpostiosotteita on korkea. Totuuden nimissä voin sanoa, että minä en käytä noita toiminnallisuuksia saiteilla koskaan. Pyrin vakuuttamaan käyttäjät siitä, että minä en kerää käytettyjä sähköposteja, vaan ominaisuuden ainoa tehtävä on helpottaa ja nopeuttaa kaverille kertomista.

Vaikka en noita sähköpostiosoitteita kerääkään, seuraan luonnollisesti kuinka paljon ao. ominaisuutta käytetään. On ollut melkoinen yllätys, että suurin osa kävijöistä suhtautuu toiminnallisuuteen yhtä skeptisesti kuin minäkin. Käytännössä www.mutteri.com:in sähköpostinlähettämistoimintoja on käytetty vuoden aikana vain noin kymmenen kertaa. Siis vain noin kymmenen lähetettyä sähköpostia, vaikka sivulatauksia palvelussa on tätänykyä 200-300 päivässä.

Onneksi tuon tominnon kehittäminen oli erittäin helppoa ja vaivatonta, sillä se on käytännössä katsoen palvelun kannalta täysin merkityksetön. Pitää varmasti harkita, josko poistaisin koko ominaisuuden.

Omien kokemusteni pohjalta nämä "kerro kaverille" -toiminnallisuudet voi jättää implementoimatta. Parempaa vastinetta rahoillesi saat, jos osoitteesi ovat niin yksinkertaisia, että ne jäävät ihmisten mieleen - ja he voivat siten kertoa palveluista kavereilleen.

torstai 7. kesäkuuta 2007

Millainen on myyvä ilmoitus?

Myyjän kannalta on (tai ainakin pitäisi olla) erinomaisen mielenkiintoista se, millainen ilmoitus myy. En taida mutteri.com:in puitteissa tuota pystyä juurikaan analysoimaan, sillä minä en saa mistään tietoa mitkä ilmoitukset ovat päättyneet kaupantekoon.

Sen sijaan pystyn analysoimaan sitä millainen ilmoitus herättää kiinnostusta, sillä seuraan myynti-ilmoitusten tilastoja. Nämä tilastot ovat kaikille käyttäjille (vierailijoillekin) käytettävissä. Eli jokaisen ilmoituksen yhteydessä näytetään kuinka monta kertaa kyseinen ilmoitus on luettu.

Olen ollut alusta alkaen vakuuttunut siitä, että kuva on myynti-ilmoituksessa lähes välttämättömyys. Tätä näkemystä tukee myös tilastot. Keskimäärin näyttää, että kuvalliset ilmoitukset saavat lähes poikkeuksetta enemmän lukijoiden huomiota kuin ilmoitukset joissa ei kuvaa ole. Tietenkin tähänkin on olemassa poikkeuksia, mutta peukalosääntönä tuo kuva ois kiva varmasti toimii.

Mielestäni onkin mielenkiintoista miksi niin moni ilmoittaja jättää kuvan laittamatta. Tänä päivänä lähes jokaisessa kännykässä on kamera jolla saa otettua riittävän hyviä kuvia, jotta ne tukevat myynti-ilmoitusta. Kuvan ei todellakaan tarvitse olla ammattikuvaajan ottama muotokuva. Miksi tuo kuvien käyttö sitten yleensäkään kiinnostaa minua? Haluan tietenkin, että ilmoittajien myymät tuotteet käyvät kaupaksi, sillä se on ainoa tapa saada viidakkorumpu puhumaan positiivista tarinaa palvelusta. Jos www.mutteri.com:iin laitetut ilmoitukset eivät johda mihinkään, eivät myyjät varmasti laita uusia ilmoituksia palveluun - ja vielä vähemmän he kannustavat kavereitaan ilmoittamaan ao. palvelussa.

Mitä vähemmän sijoitat markkinointiin rahaa, sitä tärkeämpää on se, että olemassaolevat käyttäjät tulevat takaisin ja tuovat kaverinsakin.

maanantai 4. kesäkuuta 2007

Trendsetterin kesä

Kesä tulee, tai siis tuli jo, ja nyt on mielenkiintoista seurata miten se vaikkuttaa kirpputoritoimintaan. Voisi kuvitella, että kesäisin ihmisillä olisi muutakin tekemistä kuin roikkua webissä myytävää tai ostettavaa etsimässä. Edessä on www.mutteri.com:in ensimmäinen kesä. Koko saitti sai siis alkunsa noi vuosi sitten ja jossain kohtaa pitää tehdä tilinpäätös ensimmäiseltä toimintavuodelta.

Kesä ei välttämättä olekaan kirpputoritoiminnalle halla-aikaa.

Selvittelin hieman Google trends:in kautta miten hakusana "kirpputori" on sijoittunut aikaisempina vuosina. Oli vähintäänkin mielenkiintoista, että kesä ei välttämättä olekaan kirpputoritoiminnalle halla-aikaa. Trendsistä löytyi tietoja parilta viime vuodelta, joten mitään vedenpitävää johtopäätöstä ei hauista voinut vetää. Mutta niin 2005 kuin 2006 oli nähtävissä seuraavat ilmiöt tuon "kirpputori" hakusanan suhteen.
  • Alkuvuonna hakusanaa käytettiin enemmän kuin loppuvuonna
  • Kesäkuussa oli havaittavissa notkahdus alaspäin - liekö syynä Juhannus
  • Heinäkuussa vastaavasti oli havaittavissa selvä piikki ylöspäin - heinäkuu näytti olevan vuoden paras kuukausi "kirpputori" hakusanalle.
  • Joulukuussa ei kirpputorille ole kysyntää. Ei kovin suuri yllätys - harvemmin joululahjaksi ostetaan käytettyjä esineitä - ja pyhien aikaan ei kirpputoreillakaan ole juuri mitään toimintaa.
On jännittävää nähdä miten hakusanan suosion vaihtelut tulevat vaikuttamaan esimerkiksi mainostuloihin. Kirpputori -hakusana on www.mutteri.com:ille erittäin tärkeä, sillä se on jatkuvasti top 3:ssa mutteri.com:iin johtavissa hakusanoissa.

lauantai 2. kesäkuuta 2007

Lisää mainoksia => lisää rahaa?

Kun aloitin mutteri.com:in tekemisen oli minulla ajatuksena, että käyttäjän pitää aina tietää koska hän klikkaa mainosta. Toteutin tämän siten, että loin adsenseen oman väripaletin www.mutteri.com:in mainoksille. Tämä väripaletti noudattelin itse saitin väritystä, mutta mainoksen sijoittelu ja väritys yhdessä teki sen hyvin selväksi, että kyseessä oli mainos.

Toinen ajatukseni oli, että en halua täyttää sivuja mainoksilla. Kuten moni tietää, Goolen adsense salli korkeintaan kolmen mainosyksikön sijoittamisen yhdelle sivulle. Itse aloitin homman käyttämällä vain yhtä mainosyksikköä jokaisella sivulla.

päätin hylätä alkuperäisen mainostensijoittelustrategiani. Hylkäsin itse asiassa molemmat periaatteeni.

Näistä periaatteista huolimatta jotkut käyttäjät klikkaisivat mainoksia ja sitä kautta minulle tuli jonkinverran (ei oikeasti paljoa) rahaa. Mutta vaikka saitilla käyttäjämäärät kasvoivat, ei mainosrahaa tullut juurikaan enempää. Tällä hetkellä www.mutteri.com:issa on noin 100 päivittäistä erillistä kävijää. Ahneena :-) ihmisenä halusin, että tulot kasvaisivat orgaanista kasvua nopeammin. Niinpä päätin hylätä alkuperäisen mainostensijoittelustrategiani. Hylkäsin itse asiassa molemmat periaatteeni.
  • Sijoitin kaikille sivuille lähes maksimimäärän mainoksia
  • muutin mainosten väripaletin sellaiseksi, että ne eivät enää erottuisi muusta sisällöstä.
Muutosten jälkeen aloin seuraamaan mainosrahan kertymistä...

Ja kuinka ollakaan - heti seuraavan kuukauden aikana mainostulot lähes kolminkertaistuivat, vaikka käyttäjien määrä ei kasvanut merkittävästi. Uskomatonta mutta totta.

Eli mitä enemmän sivullasi on mainoksia, sitä enemmän niitä klikkaillaan. Tämä on tietenkin ihan ymmärrettävissä, mutta yllätyin siitä, että vaikutus oli niin suuri ja välitön.

Mikään ei ärsytä minua niin paljoa kuin mainoksia pursuavat saitit ja mainokset, jotka on naamioitu osaksi sisältöä.

Tästä huolimatta kehoittaisin mainostuloja havittelevia webmastereita harkitsemaan mainostensa sijoittelua ja määrää. Mikään ei ärsytä minua niin paljoa kuin mainoksia pursuavat saitit ja mainokset, jotka on naamioitu osaksi sisältöä.

torstai 10. toukokuuta 2007

Mainoksia sivuille - hinnalla millä hyvänsä

Kaikkien web sivustojen tavoitehan on löytää uusia käyttäjiä ja pitää kyseiset käyttäjät sivuilla. Mutta tähän käyttäjän sivuilla pitämiseen on olemassa kaikkien hyväksymä ja ylistämä poikkeus: Googlen adwords (ja miksei muutkin mainosohjelmat). On mielestäni jännittävää, että ihmiset (allekirjoittanut mukaanlukien) pistävät hartaudella rakennetuille sivuilleen Googlen mainoksia - tavoitteena johdattaa käyttäjät pois omilta sivuilta.

Tilannehan olisi vähän sama kuin MTV3 pistäisi lähetyksen poikki kesken ohjelman ja kehottaisi käyttäjiä menemään katsomaan mitä Nelosella on tarjottavana. Voisin kuvitella, että MTV3 ei moiseen mainoskikkaan lähtisi vaikka Nelonen siitä olisi valmis maksamaankin. Tai olisi ainakin mielenkiintoista tietää kuinka paljon moisesta mainoksesta pitäisi maksaa...

Ihmettelen sitä, että ihmiset (kuten minä) ovat valmiita laittamaan sivuilleen linkkejä joiden ainoa tarkoitus on johtaa vierailijat pois omilta sivuilta

Samantyyliset "sisältö vastaan mainos" -asetelmat ovat webissä arkipäivää mutta perinteisessä mediassa niitä päivitellään sopimattomina. Ajatellaan vaikka ns. "product placement" mainontaa. Eli markkinoinnin muotoa, missä yritys x maksaa tv sarjalle tai elokuvalle rahaa siitä, että yritys x:n tuote pääsee "luonnollisessa yhteydessä" esille elokuvassa. James Bond elokuvat ovat tätä nykyä lähinnä kokoillan mainoksia missä ajetaan BMW:llä ja soitellaan Sony Ericssonin puhelimilla. Tätä kuitenkin pidetään (vai pidetäänkö?) sopimattomana ja ylikaupallisena. Mutta samaan aikaan on aivan normaalia, että vakavasti otettava web palvelu sijoittaa sivuilleen asiayhteyteen sopivia mainoksia.

Ehkä nuo vertaukset eivät ole täysin sopivia tai tarkkoja analogioita kahden median välillä - mutta silti minä ihmettelen sitä, että ihmiset (kuten minä) ovat valmiita laittamaan sivuilleen linkkejä joiden ainoa tarkoitus on johtaa vierailijat pois omilta sivuilta. Ja tätä tehdään olematonta korvausta vastaan - tietämättä mitä sivuilla mainostetaan ja kuinka paljon siitä maksetaan.

PS: Itse olen suuri (uusien ja kaupallisten) Bond elokuvien ystävä, joten tarkoitukseni ei ollut ottaa Bond -elokuvia esimerkiksi panetellakseni niitä ja niiden kaupallisuutta.

tiistai 1. toukokuuta 2007

Hakemaasi sivua ei löytynyt... ?

Sain tuossa muutama päivä sitten palautetta www.mutteri.com:ista. Muuan käyttäjä otti esiin URL:in pituuden - seikan minkä olin taas unohtanut. Kun aloitin mutteri.com:in rakentamisen, pidin URL:in helppoutta tärkeänä seikkana joka vaikuttaa käytettävyyteen. Mutta järjestelmää kehittäessä olen joutunut tekemään kompromisseja tuon suhteen ja pikkuhiljaa tuo tavoite on suorastaan päässyt unohtumaan. Palautteen antaja oli täysin oikeassa - mutteri.com:in URL:it olivat niin pitkiä ja kryptisiä, että niiden käyttäminen viittauksissa oli varsin hankalaa - ja luultavasti turhaa. Ongelma oli päässyt syntymään, koska välitän usein tietoa (parametreja) GET -menetelmällä eli osana sivun URL osoitetta.

Palautteen innoittamana päätin hieman yksinkertaistaa noita URL osoitteita - ainakin tärkeimpiä URL:eja kuten suora linkki ilmoitukseen. Sen sijaan, että URL osoite olisi muotoa: www.mutteri.com/ad_details_show.php?ad_id=1234&so=ASC&sby=title&l=fi muutin sen olemaan www.mutteri.com/ad.php?ad_id=1234. Jälkimmäinen on selvästi lyhyempi ja luettavampi.

Mutta tämä muutos toikin eteeni uuden ongelman: Mitä jos joku olisi jo linkittänyt tai tallentanut kirjasinmerkkinä jonkin sivun, jonka osoite nyt on muuttumassa? Hakukoneiden indexointihitaus takaisi myös sen, että moni käyttäjä päätyisi virhesivulle seuraamalla googlen ja ihmemaan hakutuloksia.

Mikään ei ole turhauttavampaa, kuin päätyä sivulle jota ei ole enää olemassa tai joka onkin siirretty.

Ymmärsin siis, että jo valmiin (ja käytössä olevan) järjestelmän sivurakenteen muuttaminen edellyttää sitä, että vanhoista käyttäjistä (ja linkeistä) huolehditaan tavalla missä käyttäjät pääsevät sivurakenteen muutoksista huolimatta oikealle sivulle. Itse ratkaisin ongelman siten, että tein pienen ohjelmapätkän, jonka tehtävä on varmistaa, että uudelleenohjaukset tapahtuvat aina oikein.

Perussääntönä sanoisin, että älä koskaan käytä uudelleenohjauksia normaalitilanteissa. On hyvin harvoja tilanteita, että käyttäjää pitäisi hyppyyttää sivulta toiselle. Uudelleenohjaus on kuitenkin kullanarvoinen ominaisuus HTML:ssä, silloin kun haluat uudelleenjärjestellä sivustoasi.

torstai 26. huhtikuuta 2007

Opetus 12: Virheiden käsittely

Tämä saattaa olla oppimistani tärkein: Virheiden käsittely ja -raportointi. PHP on tehty käyttäjälleen / ohjelmoijalle varsin helpoksi. PHP:stä voi sanoa melkein ihan samaa mitä sanoin nykyajan selaimista.

PHP suorittaa melkein mitä ohjelmakoodia tahansa kunhan rivi päättyy puolipisteeseen

No, saattaa olla, että lausunnossa on hieman liioittelua. Mutta joka tapauksessa PHP on hyvin virhesietoinen, ja oletuskonfiguraatioilla (ainakin Linuxissa) ei ohjelmoijaa juuri häiritä turhilla virheilmoituksilla. Tähän minäkin tuudittauduin ja ajattelin, että kun ohjelma koodi menee läpi, on koodi valmista. Asiaan hieman perehdyttyäni voin todeta: höpöhöpö. Vaikka ohjelmakoodi menee hienosti läpi, ja se näyttää jopa tekevän mitä koodaaja ajatteli, voi pinnan alla muhia melkoinen virheiden suma. Siispä suosittelen muutamaa temppua, millä tähänkin ongelmaan voi puuttua.
  1. Tutustu ohjelmointikielesi ja -alustasi tarjoamiin virheenkäsittelyrutiineihin.
  2. Kehitysympäristössä suosittelen, että virheiden raportointi tapahtuu ruudulle (ja varmista, että myös mitättömät varoitukset raportoidaan). Luultavasti kannattaa jälkiselvittelyn kannalta kirjoittaa kaikki virheet myös logitiedostoihin.
  3. Tuotantojärjestelmässä virheitä ei tietenkään kannata raportoida käyttäjän ruudulle. Mutta pidä raportointitaso tiukkana - eli pienimmätkin varoitukset talteen. Ja loggaa kaikki virheet ja varoitukset logitiedostoon.
  4. käy läpi tuota logia säännöllisesti (ja mahdollisimman usein).
Tästä seuraa se, että keskeneräinen koodi jää julkaiseematta.

Ja kun olet mielestäsi valmis, kirjaantuu testauksen ohi päässeet virheet logeihin, mistä ne on jälkikäteen helppo huomata JA korjata.

Mutteri.com:ista voisi kertoa muutaman hyvän esimerkin. Kun käänsin loggaus tasot sellaisiksi, että varoituksetkin näytetään, huomasin kuinka paljon pieniä virheitä olin tehnyt. Suurin osa virheistä oli lähinnä kosmeettisia (kuten viittauksia taulukon indekseihin joita ei ollut alustettu tai olemassa) mutta muutamia pahojakin löytyi. Toinen esimerkki sattui kun olin saanut kaikki virheet (mielestäni) korjattua. Siirsin taas totuttuun tapaan koodin tuotantopalvelimelle. Loggaus on siellä ohjattuna logitiedostoon. Parin päivän kuluttua kävin katselemassa logeja. Yllätyksekseni logeihin oli muutama rivi ilmestynyt. Kuinka ollakaan, yksi virhe pisti silmään: Virhe tuli sivulta, minne ei normaalioloissa käyttäjä menisi [tai pitäisi voida mennä] ja tuo oli tapahtunut keskellä yötä suomalaista aikaa. Virhettä selvittäessäni huomasin virheen autentikoinnissa yhdellä sivulla. Ja tuon virheen seurauksena robotti (näin ainakin luulen käyttäytymisen perusteella) oli sivua käynyt pari kertaa ihmettelemässä. Ei muuta kuin samantien sormet koodiin ja virheet ojennukseen - tulipa siinä samalla katselmoitua koko koodi vastaavien virheiden varalta. Eli
  • robotti oli päätynyt sellaiseen paikkaan minne en uskonut sen pääsevän.
  • Ja koska luulin, että autentikointi oli ok, oli tuo jäänyt huolellisen testaamisen ulkopuolelle.
  • Ja kuinka ollakaan siellä tuli PHP varoituksia, mitkä kirjautuivat logiin.
Kun loggaus on kunnossa ja varoituksia ei normaalisti tule - löytyy virhelogeista kummallisuuksia mitkä muuten saattaisivat jäädä huomaamatta.

Tarinan opetus on siis
  • Älä piilota virheitä ja varoituksia kehitysvaiheessa.
  • Tuotantovaiheessa kirjaa pienimmätkin virheet / varoitukset logeihin.
  • Seuraa logejasi säännöllisesti ja riittävän usein.

tiistai 24. huhtikuuta 2007

Sivun ulkoasun suunnittelu

Sivun ulkoasun suunnittelu on luonnollisesti yksi sivuston luomisen mielenkiintoisimmista vaiheista. Asettelu on teknisesti yksinkertaista (wysiwyg, html, jne) koska html kuvauskielenä helpohkosti opittavissa. Ulkoasu on yksinkertaisuudestaan huolimatta yksi tärkeimmistä tekijöistä millä sinä voit erottua muista sivustoista. Uskaltaisin melkein väittää, että sivuston ulkoasu on heti toiseksi tärkein seikka millä voit vakuuttaa käyttäjäsi palvelusi tuomasta lisäarvosta. Kaikkein tärkein on laadukas ja originaali sisältö. Jacob Nielsen [yksi web käytettävyyden pioneereista] on usein sanonutkin "Content rules" eli sisältö hallitsee.

Kun opettelet HTMLn saloja, tutustut CSS:ään, huomaat pian, että sivuston ulkoasun suunnittelussa vain taivas on rajana. HTML sallii sinun taittaa sivusi villeimpien haaveidesi ja visioidesi mukaisesti. Tätä nykyä on mahdollista sijoittaa sivulle melkein mitä tahansa mediaa (kuvia, musiikkia, videoita, sovelluksia [kutenMarcromedian flash]). Mutta varoituksen sana:

Se että jotain voi tehdä, ei tarkoita että sitä pitää tehdä, tai että sitä edes kannattaa tehdä.

Sivustoa suunnitellessa kannattaa tutustua käytettävyyteen ja tiettyihin internetin lainalaisuuksiin. Käytettävyydestä löytyy varmasti paljon materiaalia googlaamalla, mutta jos mitään muuta et jaksa / halua lukea, niin käy katsomassa Jacob Nielsenin ajatuksia useit.com:issa.

Jacob on käytettävyyden pioneeri ja hänen kirjoituksensa jopa 90 -luvun alusta ovat yllättäen yhä pääosin ajankohtaisia ja valideja.

Kehittelen siis www.mutteri.com:ia Linuxissa pyörivässä kehitysympäristössä. Laitteistoni ei ole viimeistä huutoa, joten käytän normaalisti resoluutiota 1280x1024. Mielestäni tämä on verrattain matala resoluutio, joten oletin että suurin osa käyttää ainakin tätä resoluutiota, ellei peräti 1600x1280. Olen kehittämisessä noudattanut Nielsenin oppeja mm. siinä, että sivuston taulukot on tehty skaalautiviksi (ei siis kiinteän levyisiksi, vaan leveydet on määritelty suhdelukuna selaimen leveyteen). Tällä saavutetaan normaalisti hyvä yleiskäytettävyys erilaisilla resoluutioilla. Mutta se mitä en kehittäessäni ottanut huomioon on, että googlen mainosten aseettelu vaikuttaa merkittävästi siihen miten sivustoa voi skaalata. Koska en tietenkään näytä kehitysympäristössäni googlen mainoksia (itselleni), en nähnyt tuota vaikutusta ennenkuin sain aiheesta palautetta loppukäyttäjiltä. Sain kuulla, että sivu ei mahdu kokonaisuudessaan näytölle jos käyttäjällä on resoluutio 1024x768 (tai alhaisempi). Ensimmäinen ajatukseni oli: "no kyse on marginaaliryhmästä". Mutta varmistin asian käyttötilastoista, jotka kertoivatkin karua kieltä: 50% käyttäjistä käyttää 1024x768 resoluutiot.

Älä siis oleta, että tavallisten käyttäjien laitteisto vastaa omaa laitteistoasi.

Itse asiassa, suunnittele sivustosi kaikkein heikoimmalle kokoonpanolle - siten palvelet niin vanhoilla laitteilla selaavia kuin uusimpien laitteiden käyttäjiä.

maanantai 23. huhtikuuta 2007

Olet sivuston 8. kävijä. Laskuri nollattu 15.04.2002

Sivulaskurit ovat verrattomia. Niitä onneksi näkee aika harvassa nykyään. Jos tarkoituksesi on houkutella uusia uskollisia kävijöitä niin luultavasti huonoin keino on laittaa sivulle laskuri, joka kertoo ettei sivuja oikeasti kukaan käytä.

Tämäntyylisillä (kuten sivulaskuri) tempuilla on tarkoitus kertoa kävijöille, kuinka aktiivinen saitti on ja sitä kautta löytää uskollisia kävijöitä ja parantaa sivulatauksia / vierailu -suhdetta. Mutta ennenkuin ryhdyt heiluttelemaan suosion tunnuslukuja kaikille vierailijoille, kannattaa varmistaa että henkseleiden paukuttamiseen on aihetta.

www.mutteri.com:issa en juurikaan levittele tunnuslukuja vierailijoille. Siihen on yksinkertainen syy: vierailijoita ei yksinkertaisesti ole mielestäni riittävän paljoa, että kannattaisi sen suhteen tuulettaa. Tietenkin seuraan jatkuvasti sivuston käyttöä, ja tiedän koko ajan tarkkaan kuinka monta päivittäistä kävijää minulla on, kuinka monta sivua he keskimäärin lataavat jne.

Harkitsin pitkään paljastanko ilmoitusten yhteydessä sitä kuinka monta kertaa ao. ilmoitus on luettu.

Alunperin rakensin näyttölaskuri -toiminnallisuuden niin, että tieto oli saatavilla vain kirjautumalla järjestelmään sisään. Ajattelin, että käyttötilastot olisi hyvä lisäarvopalvelu, joka kannustaisi käyttäjiä rekisteröitymään [en missään vaiheessa suunnitellut rahastaa tällä tiedolla]. Mutta joko tuo ei ollut riittävän arvokas tieto, jotta sen takia oltaisiin haluttu rekisteröityä tai sitten en vain saanut viestiä läpi uusille vierailijoille. Niinpä päätin tehdä ilmoituksen näyttökerrasta sellaista tietoa, mikä näytettäisiin kaikille käyttäjille ilmoituksen yhteydessä.

Tässä kohtaa web maailmaa hyvin tuntevat kaverit saattavat tokaista mielessään: Nuo www.mutteri.com:in luvut ovat niin pieniä, että johan maailmalla seikkailevat hakurobotitkin tuottavat enemmän lukukertoja! Ja kaverit ovat tässä oikeassa. Halusin kuitenkin kertoa käyttäjille ihan oikeaa tietoa, enkä ylioptimistisia satuja, joten rakensin järjestelmään ominaisuuden joka kerää hakurobottien tietoja tietokantaan, ja varmistaa, että robotin vierailua ei lasketa ilmoituksen näyttökertoihin. Ei tämä mikään pomminvarma keino ole, mutta suurimman osan turhista sivulatauksista se kyllä jättää laskematta.

Kukaan ei halua olla sivustosi 9. vierailija viimeisen kahden vuoden aikana.

Älä siis näytä sivulaskureita tai muita liikennetietoja, ellei sinulla ole ihan oikeasti jotain kerrottavaa ao. tiedolla.

Opetus 11: Standardien Viidakko

Selainvalmistajat ovat tehneet webin käyttäjille suuren palveluksen rakentamalla html parserit niin virhesietoisiksi, että melkein mikä vain missä on "<" ja ">" -merkkejä, muokkautuu web sivuksi. Samalla kun palvelus on ollut suuri satunnaiselle surffaajalle, on se ollut enemmänkin karhunpalvelus koodaajille. Melkein kuka vaan, joka on joskus katsonut web sivujen sorsaa (source code), pystyy tuottamaan jonkinnäköistä html koodia. Itse kuulun juuri tähän "tehdessä oppii" -koulukuntaan.

Mutta kun alkaa ohjelman vääntäminen ja layoutien tekeminen sujumaan, sitä huomaa samalla minkälaista html sotkua tehdessään tuottaa. Siinä menee html standardit ja css standardit ja - versiot sekaisin sulassa sovussa. Ja kun selaimet pyrkivät palvelemaan käyttäjiä, ei ne juuri valita. Jos käyt katsomassa mutteri.com:in sourcea, huomaat, että ei se mitään siistiä ja standardia ole. Tässä pitääkin sanoa: tee niin kuin mä sanon, älä niin kuin minä teen.

Ttutustu html standardeihin, xhtml, xml, ja css:ään. Vertaile niiden tarjoamia mahdollisuuksia ja valitse itsellesi sopiva standardi ja noudata sitä mahdollisimman tarkasti. Seuraamalla standardia tarkasti, vältät varmasti ulkoasuun liittyviä ongelmia.

Ja mikä parasta, voit jättää sen "saitti toimii parhaiten IE:llä" disclaimerin laittamatta saitillesi.

Kyllä sitä toimivaa html:ää saa ilman standardien orjallista noudattamistakin varmaan aikaan, mutta itse uskon johdonmukaisen kuvauskielen noudattamisen olevan pitkällä aikavälillä kannattavaa.

www.mutteri.com:in kanssa olen hieronut html koodia niin moneen otteeseen, että ihan hirvittää. Ja koska koodia on aika paljon, ei tuloksena ole kovinkaan johdonmukainen html.

Siistin ja standardin koodin ylläpito ja debuggaus on melkein mukavaa puuhaa.

Jos tunnet nuo html ja css (ja muut) määritykset, pystyt helpommin päättämään mitä kannattaa tehdä html:llä ja mitä stylesheeteillä.

Lisää toiminnallisuuksia: CSV tiedoston käsittely

Sainpahan valmiiksi toiminnallisuuden millä käyttäjät voivat ladata useampia ilmoituksia kerralla. Toteutus nojaa CSV tiedostoihin. CSV:n käyttöön vaikuttivat useat eri tekijä. Ensinnäkin halusin luoda toiminnallisuuden joka helpottaa ilmoitusten jättäjien elämää. Itse olen vakaasti sitä mieltä, että Excelin (tai vastaavan taulukkolaskentaohjelman) käyttö on helpompaa ja nopeampaa kuin esimerkiksi Web lomakkeiden. Leikkaa-liimaa sujuu taulukkolaskentaohjelmalla helposti ja nopeasti.

Mutta miksi CSV? Onhan tarjolla muitakin formaatteja, kuten Excelin oma natiivi formaatti, samoin kuin OpenOffice spreasheetin käyttämä avoin formaatti. XML olisi myös ollut aika luonnollinen valinta. Koska itse teen sovelluskehitystä Linuxissa, ei minulla ole käytössä Microsoftin työkaluja [Excel on varmaankin ainoa Windows puolen sovellus mitä kaipaan]. Tämä siis sulki Excelin pois. Openofficen tukema avoin formaatti ei ilmeisesti ole täysin tuettuna Excelissä, joten sekään ei käynyt [www.mutteri.com:in käyttäjistä ylivoimainen enemmistö käyttää Windowsia]. XML on ehkä hieman liian monimutkainen peruskäyttäjälle [rehellisyyden nimissä voin sanoa, että ei se ole riittävän tuttu minullekaan]. Jäljelle jäi CSV, mikä on alustariippumaton, sitä tukevat useimmat taulukkolaskentaohjelmat, ja sen lukeminen palvelinpuolella olisi luultavasti helppoa, kun kyse on kuitenkin vain tekstitiedostosta.

CSV on alustariippumaton ja sitä tukevat useimmat taulukkolaskentaohjelmat.

Aloin tuon csv tiedoston parsimisen alkamalla kirjoittaa omaa funktiota aiheesta. Koska kyse oli tekstitiedostosta, ajattelin tehtävän olevan helppo. Eikä se vaikeaa ollutkaan, mutta ongelmaksi (tai suurityöiseksi) osoittautui virhetilanteiden käsittely ja syötteen validointi. Hetken asiaa pyöriteltyäni, aloin etsimään webistä josko joku olisi kirjoittanut valmiin funktion csv:n parsimiseen. Pienen googlailun jälkeen päädyin sivulle missä viitattiin ... php:n omaan csv tiedoston parseriin.

Tutustu aina ensin käyttämäsi ohjelmiontikielen tarjoamiin mahdollisuuksiin. Näin säästyt turhalta työltä.

Ja kuinka ollakaan, tuo valmis csv parseri teki kaiken mitä halusin - ja enemmänkin. Sitten vielä muutama rivi omaa koodia, omat validoinnit ja testaamaan. Omissa testeissä sain ladattua helposti 2000 riviä kerralla. Lataamiseen ei kulunut kuin muutama sekunti omalla kotikoneella joten olettamukseni on, että palvelin hoitaa homman vielä liukkaammin. Mutta koska tässä kului kuitenkin muutama sekunti halusin välttää mahdolliset konfliktit siltä varalta, että kaksi ihmistä yrittäisi syöttää tietoa systeemiin samaan aikaan.

Rajoitin tässä vaiheessa syötettävien ilmoitusten kertamäärän 50:een.

Toinen mitä onnistuin todistamaan (itselleni) tällä massalatauksella on se, että järjestelmän pitäisi kestää runsasta tietomäärää. Ehkä tietokantani on (kuten olen väittänyt) hyvin suunniteltu ja oikein indexoitu. [tulen varmasti käsittelemään tietokantasuunnittelua vielä erikseenkin.]

CSV tiedostolla tiedonlisääminen toi esiin kuitenkin uuden haasteen. Käytännössä csv tiedostolla lataaminen pitäisi olla sama asia, kuin usean erillisen web -lomakkeen lähettäminen peräkkäin. Nyt rakensin aika paljon päällekkäistä logiikkaa, jotta sain syötteen validoinnit edes suunnilleen samalle tasolle mitä ne ovat web lomakkeen käsittelyssä. Tähän on pakko tehdä muutoksia jatkossa, sillä en halua ylläpitää samaa koodia usempaan otteeseen.

sunnuntai 22. huhtikuuta 2007

Myydään: tuntematon kirpputori

Kuten jossain vaiheessa tuli esiin, jos haluat ansaita (edes jotain) palvelullasi, kannattaa rakentaa liiketoimintasuunnitelma. Tähän taiteenlajiin löytyy tietoa useista eri lähteistä. Ja jos havittelet riskirahaa hankkeesi kehittämiseksi, on raudanluja liiketoimintasuunnitelma yksi perusedellytyksistä. Minulla ei ole riskirahan haalimisesta kokemusta, joten jätän sen kommentoinnin ja selvittämisen muille; ainakin toistaiseksi.

Vaikka et kaipaisi ulkopuolista rahoitusta palvelusi kehittämiseen, on ihan aiheellista miettiä ja arvioida edellytyksiä rahan ansaitsemiselle. Kannattaa miettiä avoimin mielin minkälaisia tapoja sinulla voisi olla ansaita. Alla muutamia mitkä ovat mahdollisesti käväisseet mielessäsi:


  • Mainostila. Tämä on näinä Googlen kulta-aikoina varmasti ensimmäinen mieleentuleva ansaintamalli. Googlen Adsense:n hyödyntäminen on tehty sivuston ylläpitäjälle erinomaisen helpoksi, joten tämä kannattaa ottaa vakavasti huomioon. Mutta Google ei tietenkään ole alansa ainoa toimija: Tradedoubler on tarjonnut mainostilan välityspalveluita jo pitkään, ja sitä näkee aika paljon sivustoilla käytettävän. Yahoo ja MSN haluavat haastaa Googlen, joten heillä on tietenkin omat mainosohjelmansa. Ja mikäänhän ei estä sinua myymästä suoraan mainostilaa halukkaille mainostajille.

  • Jäsenyysmaksut. Kannattaa harkita onko sinun tarjoamasi palvelu niin elinvoimainen ja addiktiivinen, että ihmiset ovat valmiita maksamaan siitä, että pääsevät tarjoamaasi sisältöä lukemaan. Esimerkiksi Keltainenporssi.fi toimii tämäntyylisellä periaatteella. Tosin keltaisenpörssin varsinainen liiketoiminta lienee painetun lehden myymisessä.

  • Lisäpalvelut. Ehkä voisit tarjota osan toiminnallisuuksista ilmaiseksi mutta lisäarvopalveluiden käytöstä pitäisi maksaa. Huuto.net tarjoaa jonkinverran maksullisia lisäarvopalveluita - kuten tunnistuspalvelu, näyteikkunat, jne.
  • Tai ehkä Google ostaa palvelusi. Onhan joillekin yrityksille käynyt jopa niin. Mutta kannattaa tehdä hieman laajempi (kansainvälinen) kilpailijatutkimus, ennen kuin lähtee palvelua pystyttämään ostetuksi tuleminen mielessä. Tietääkseni Google ei ole vielä suomalaisia yrityksiä ostanut. Mahtaakohan sinulla olla sellaista pääomaa, minkä hankkiminen on helpointa ja halvinta ostamalla sinun palvelusi? Ellei sinulla ole asiakkaita, ei kukaan halua palveluasi ostaa. Miksi haluaisi?
www.mutteri.com siis perustuu puhtaasti harrastuneisuuteen ja mainostuloihin. Ennen kuin aloitin mutteri.com:in ei minulla ollut mitään aavistusta siitä kuinka paljon internet mainonnalla voisi tienata ja mitä esimerkiksi yksi klikkaus maksaa. Tästä kun koittaa tietoa etsiä ei sitä tahdo löytää. Kotimaisesta optimointifoorumista voi koittaa kaivaa jotain vihjeitä mistä rahoista puhutaan. Selvitystyötä ei helpota se, että Google ei suhtaudu kovin positiivisesti mainoksien maksuista puhumiseen.

Mainostulojen kannalta arvokkaita sivulatauksia ovat sellaiset, missä käyttäjä löytää sivultasi sen mitä hän etsii. Spammin perässä sivuillesi eksyvät tuskin klikkailevat mainoksiasi.

Paljastamatta kenenkään liiketoiminnan suuria salaisuuksia voisin kuitenkin antaa seuraavat arviointia helpottavat määreet:
  • Noin 5% sivulatauksista johtaa mainoslinkin klikkaamiseen. HUOM: tämä riippuu tietenkin myös siitä millaista sisältöä tarjoat, miten olet mainokset sijoittanut ja kuinka paljon sivullasi on mainoksia
  • Jokainen klikkaus "tuottaa" ehkä 10 senttiä, tai ehkä 5 senttiä
Triviaali laskutoimitus antaisi arvion: Jokainen 1000 sivulatausta tuottaa sinulle jotain 2.5 USD:n ja 5 USD:n välillä. Oman kokemuksen pohjalta sanoisin, että tuhat arvokasta sivulatausta (siis sellaista, missä käyttäjä oikeasti löytää sivultasi sen mitä hän etsii) on työn, työn ja työn takana.

Opetus 10: Järjestä teksti-elementit viisaasti

Jossain kohtaa tulee varmasti kaikille ylikunnianhimoisia tai megalomaanisia ajatuksia siitä kuinka suosituksi uusi palvelu voi kasvaa. Tässä kohtaa pitää miettiä millä kielillä palvelu pitää tehdä ja miten.

www.mutteri.com:in lähtökohta oli ehdottomasti tehdä siitä suomenkielinen. Mutta niin vain kävi minullekin, että kotimaisen markkinan pienuus alkoi askarruttaa. Sitä alkoi laskeskelemaan potentiaalia mitä maailmalla on. Katselin Adsense:stä saatuja tuloja (aiheesta lisää myöhemmin) ja vertailin niitä kävijämääriin ja potentiaalisiin kävijöihin. Suoraviivainen johtopäätelmä oli, että jos saisi palvelun tehtyä englanniksi ja lentämään Amerikassa, niin sitä voisi alkaa katselemaan itselleen eläkepaikkaa. Onnistuihan Craigslist kasvamaan todella suosituksi USA:ssa - ja jos tuota ulkoasua katsoo, niin se on vähintäänkin sekava.

No, onneksi oli minullakin realismia sen verran, että en ole lähtenyt leikkimään maailmanvalloitusta, kun Suomikin on jäänyt valloittamatta.

Mutta sehän ei haittaa ketään, jos rakentaa järjestelmään valmiuden monikielisyydelle.

Itseasiassa tässä piilee myös ohjelmointia helpottava seikka - jos pidät esityselementit (eli palvelun kieliasun) erillään itse ohjelmasta, on sanamuotojen ja tekstien muuttaminen jälkikäteen helpompaa, nopeampaa ja riskittömämpää kuin siinä tapauksessa, että tekstit ovat osana ohjelmakoodia.

Kieliresurssit voi hoitaa usealla eri tavalla, ja mutteri.com:in suhteen tuli tämäkin ratkaistua kahteen otteeseen.
  • Ensimmäisessä vaiheessa pistin kaikki käännökset tietokantaan. Mikä sen loogisempi paikka? Mutta sen suhteen alkoi ilmetä ongelmia. Käytössä olevat työkalut eivät oikein suostuneet toimimaan luotettavasti ja mysql:n web pohjaiset hallintatyökalut jostain syystä rikkoivat UTF-8 enkoodauksen aina kun olin lisäämässä uutta elementtiä. Lisäksi tietokantaan uuden elementin luominen oli aina hieman hankalaa, ja kun sama elementti piti lisätä vielä tuotantojärjestelmään, oli tuska kaksinkertainen.

  • Niinpä tuli ajankohtaiseksi siirtää layout -tekstit tietokannasta ns. kieliresurssi tiedostoihin. Tiedoston muokkaaminen on vaivatonta, ja siirtäminen tuotantopalvelimelle vaivatonta ja ongelmatonta.


Suosittelenkin siis, että vaikka et aikoisi tehdä palveluasi kuin yhdellä kielellä, kannattaa kieliresurssit pitää erillään ohjelmakoodista.

Uskon, että tällä vältät monta sudenkuoppaa ja monta turhaa virhettä jää tekemättä.

Opetus 9: Kerralla tuskin tulee valmista

Ainakin minulle tämä oli itsestäänselvyys, mutta se kuinka monta kertaa olen käynyt ja kahlannut koodin läpi on ollut taas yllätys. Mikäli päätät ohjelmoida samassa moodissa mitä minä olen tehnyt, kannattaa varautua siihen, että kirjoitat saman koodin monta kertaa.

Valmistaudu koodaamaan samat toiminnallisuudet useampaan kertaan.


Välillä on koodia siirretty pääohjelmasta funktiohin, ja sitten taas takaisin. Tämän voi mahdollisesti välttääkin, mutta väitän, että se onnistuu vain joko

  • Huolellisella ja perinpohjaisella suunnittelulla

  • Pitkällä kokemuksella

  • tai näiden yhdistelmällä

Uudelleen koodaamisessa ei ole mitään vikaa - joka iteraatiolla koodin laatu luultavasti paranee ja luotettavuus kasvaa. Mutta tähän kuluu aikaa yllättävän paljon. Aina kun koodiin kosketaan, kannattaa se testata jollain tasolla. Jos et testaa, voi tulla odottamattomia yllätyksiä.

Kuinka ollakkaan, olin edellisellä kerralla koodia siivotessani onnistunut rikkomaan kuvan lisäys ominaisuuden.


Itselle kävi mm. siten, että ihmettelin miksei rekisteröityneet käyttäjät lisänneet kuvia. (no ihmettelen sitä välillä vieläkin, mutta se on hieman off-topic). Jonkin aikaa ihmeteltyäni, päätin varmistaa, että toiminnallisuus yhä toimii. Kuinka ollakkaan, olin edellisellä kerralla koodia "siivotessani" onnistunut rikkomaan kuvan lisäys ominaisuuden. Ei ihme, ettei kuvia tullut.

Opetus on siis se, että varaudu siihen, että samaa ohjelmakoodia pitää kirjoittaa useampaan kertaan.

Opetus 8: Syötteiden validointi

Vaikka sinä teetkin palvelua hyvällä tahdolla ja suurin osa internetiä käyttävistä ihmisistä on liikkeellä vilpittömin aikein, on olemassa pienen pieni vähemmistö jonka tarkoituksena on kartuttaa omaa mainettaan vahingoittamalla sinua. Jotkut moiset tahot (hakkerit ja krakkerit) selittävät tekojensa oikeutusta sillä, että he pyrkivät esimerkiksi tuomaan esini tietoturvan tärkeyttä konkreettisin keinoin. Henkilökohtainen mielipiteeni on, että tämän kaltaiset yritykset oikeuttaa vahingontekoa ovat silkkaa hevonpaskaa. Mutta koska moisia tahoja on olemassa, pitää sinun palvelua kehittäessäsi ottaa tämäkin huomioon.

www.mutteri.com:in tapauksessa olen törmännyt kahdenlaiseen vahingontekoon / -yritykseen.


  1. Robotit, jotka seikkailevat pitkin Internetiä hakukoneiden tapaan etsien heikkoja sivustoja. Nämä harvemmin ovat kovin älykkäitä (tai ne mihin minä olen törmännyt ovat olleet verrattain yksinkertaisia). Näiden tarkoituksena on lähinnä syöttää järjestelmääsi tarpeetonta sontaa. Mutteri.com tapauksessa alkoi yhdessä vaiheessa järjestelmään tulla robotti käyttäjiä (rekisteröinnin kautta) ja turhia ilmoituksia (jotka ei vaadi rekisteröintiä).

  2. Pahantahtoiset käyttäjät, jotka etsivät (käsin tai koneellisesti) heikkouksia ohjelmastasi tavoitteena esimerkiksi kaataa koko palvelu, tai esimerkiksi korvata etusivu jollain julistuksella.


Tuntemattomalle palvelulle, näiden aiheuttama haitta on pientä. Kun ei ole mainetta mitä menettää, ei sen suhteen tarvitse olla huolissaan. Mutta tämäntyyliset ongelmat helposti pitävät myös vilpittömät käyttäjät kaukana.

Syötteiden tarkistaminen on tärkeää virheiden karsimiseksi, ja pahantahtoisten vierailijoiden eliminoimiseksi.


Näitä kahta vastaan olen pyrkinyt taistelemaan kahdella helpohkolla aseella.

  1. Kuvatunnisteet. Rekisteröitymisen yhteydessä käyttäjät joutuvat osoittamaan sen, että he ovat ihmisiä eikä koneita siten, että rekisteröitymissivulla on kuva mihin on kirjoitettu merkkijono. Rekisteröitymisen yhteydessä käyttäjän tulee syöttää tuo merkkijono henkilötietojen lisäksi. Suosittelen tämäntyylistä lisävarmistusta sivuille jossa voidaan syöttää tietoa järjestelmään ilman, että syöttäjä tunnistautuu (esim kirjautuu sisään).

  2. Syötteiden validointi. Kaikki kentät mitä käyttäjät täyttävät lähettäessään tietoa järjestelmään käydään läpi tietyin säännöin (erityyliset kentät validoidaan eri säännöillä). Tällä pyritään varmistamaan, että järjestelmää ei esimerkiksi kaadeta tahallisesti.


Näiden validointien jälkeen on järjestelmä pysynyt turvassa robottien suhteen. Myöskään hakkerit eivät ole (vielä) vaivanneet.

En yritäkään väittää, että www.mutteri.com olisi hakkerivarma - en usko, että sellaista järjestelmää onkaan.


Mutta uskon, että varotoimenpiteet vähentävät ongelmia ja käsipelillä tehtävää siivousta. Huomaa, että roboteille on täysin yhdentekevää kuinka tunnettu tai tuntematon palvelusi on - niille kaikki on vapaata riistaa. Siksi syötteiden validointi on syytä hoitaa kuntoon jo alkutaipaleella.

Käyttäjätulva - missä sinä olet?

Tässä yksi kauppapaikkani suurimmista dilemmoista... kumpi oli ensin: muna vai kana?

Kumpi oli ensin muna vai kana? Tulevatko myyjät kun on käyttäjiä, vai käyttäjät kun on myyjiä?


Lähdin koko hommaan sillä ajatuksella, että käyttäjät (tai vierailijat) tulevat, kunhan torilla on ilmoituksia ja tavaraa myynnissä. Tämä oli myös yksi kehittämisen lähtökohta - systeemi pitää kehittää siten, että se on ilmoittajille helppo.

Mutta valitettavasti tässä piilee noidankehä. Miksi ilmoittaa kauppapaikalla, missä ei ole kävijöitä eikä kamalasti ilmoituksia. Ja jos siellä ei ole ilmoituksia, mistä ihmeestä niitä kävijöitä oikein tulisi.

Valitettavasti tuo dilemma on yhä akuutti. Eli pitäisi keksiä tapa millä tuo negatiivisin kierteen saisi rikottua.

Hienoinkin palvelu on turha, jos kukaan ei tiedä sen olemassaolosta.


Ajatuksia kyllä on, mutta niiden toteuttaminen vaatisi ponnisteluita millä alueella minulla ei juurikaan ole taitoja: Markkinointia. Markkinointiin varmasti palaan myöhemmin. Se on nimittäin sillä lailla, että hienoinkin palvelu on turha, jos kukaan ei tiedä sen olemassaolosta.

Opetus 7: Panosta käytettävyyteen

Jos luomasi palvelu on haastajana markkinalla missä on jo vakiintuneita toimijoita, on sinun löydettävä kilpailu etua pienimmistäkin asioista. Sinun pitää pystyä onnistua houkuttelemaan käyttäjät pois jo olemassa olevasta järjestelmästä - ja käyttämään sinun sovellustasi. Tämä tuskin onnistuu, jos sinun järjestelmääsi ei ole kehitetty käyttäjille.

Koko Web 2.0 buumi on tuonut (mielestäni) verkkopalveluiden fokukseen käytettävyyden.


Palvelun pitää olla helppokäyttöinen. Se että sinä olet valmis käymään läpi viisisivuisen rekisteröitymisprosessin, ei tarkoita sitä, että keskiverto käyttäjä olisi siihen valmis.

Käyttötilastot ovat erinomaisen tärkeä tiedonlähde palvelun parantamiseksi. www.mutteri.com tapauksessa olin ajatellut, että käyttäjä kulkisi seuraavanlaisen polun:

  1. Klikkaa "Rekisteröidy" -linkkiä

  2. Käyttäjät täyttää henkilötietonsa (joista vain osa oli pakollisia).

  3. Käyttäjä viedään rekisteröinnin vahvistamissivulle

  4. Käyttäjä kirjautuu järjestelmään sisään

  5. Käyttäjä klikkkaa "Luo ilmoitus" -linkkiä



Mielestäni tuo flow oli selkeä, intuitiivinen ja pomminvarma. Mutta kun seurasin käyttötilastoja ja käyttökaavoja (tietolähteinä Google analytics, tietokanta, palvelimen logit) huomasin, turhan usein kävikin näin:

  1. Käyttäjä rekisteröityi palveluun

  2. Käyttäjä loi ilmoituksen


Melkein sama mitä minä olin ajatellut, paitsi että käyttäjät eivät kirjautuneet sisään rekisteröitymisen jälkeen. Muuten ihan hyvä, mutta koska he eivät olleet kirjautuneina sisään, jäivät he paitsi niistä lisäominaisuukista miksi he ylipäätään halusivat rekisteröityä (muokata ilmoituksia, lisätä kuva, poistaa ilmoitus, etc).

Mielestäni asialle piti tehdä jotain. Siispä mietin tulisesti missä vika on... minussa, palvelussa vai käyttäjissä. Enismmäisen karsin syyllisten listalta käyttäjät - palvelussa oli jotain vikaa. Havaitsin pari asiaa, kun tutkailin palvelua (muutaman kuukauden tauon jälkeen) tuoreilla silmillä.

  1. Sisäänkirjautuminen oli mahdollista jokaiselta sivulta. Sivun oikeassa yläkulmassa oli kaksi kenttää ja "sisään" nappi. Kentillä ei ollut nimikettä (label), vaan olin toteuttanut tuon nimikkeen itse kenttään siten, että käyttäjätunnus kentässä luki oletusarvoinen sähköpostiosoite ja salasanakentässä luki "salasana" joka siis näkyi tähtimerkkeinä. Minulle tuo oli erittäin looginen juttu, mutta luulen, että käyttäjät sekoittivat tuon jonkinlaiseen "tilaa uutiskirje" toiminnallisuuteen (www.mutteri.com käyttäjätunnus on käyttäjän sähköpostiosoite).

  2. Sisäänkirjautumis -lomakkeella ei ollut otsikkoa. En siis missään indikoinut, että näillä kentillä kirjaudutaan palveluun sisään. En kertonut missään mitä näillä kentillä tehdään.

  3. Miksi palveluun pitää kirjautua erikseen sisään rekisteröitymisen jälkeen? Käyttäjähän on jo kertonut kertaalleen kaiken mitä sisäänkirjautumiseen tarvitaan. Muutin siis logiikkaa siten, että rekisteröitymisen yhteydessä ensin tallennetaan käyttäjän tiedot käyttäjätietokantaan - ja sen jälkeen heti perään kirjataan käyttäjä sisään käyttäen rekisteröintitietoja. Jos käyttäjä nyt heti rekisteröitymisen jälkeen luo ilmoituksen, luodaan se käyttäjän nimiin, ja hän pystyy hyödyntää rekisteröityneen käyttäjän lisäpalveluita.

lauantai 21. huhtikuuta 2007

Tyyliseikat ratkaisevat

Kehitys siis tapahtui Linux ympräistössä. Samoin tietenkin testaus. Testasin kaikilla käytössä olevilla selaimilla vähäsen. Ja mutteri.com näytti suunnilleen samalta kaikilla selaimilla. Tässä kohtaa tein yhden virheen - oletin [vaikka tiesin toisin], että Internet Explorer toimisi suunnilleen samalla tavalla. Koska minulla ei kotona ole Windows pohjaisia tietokoneita, pääsin testaamaan IE:llä vasta töissä, ja sekin tapahtui sattumalta.

Sillä hetkellä veret seisahtuivat. Palvelu näytti verrattain kamalalta (ja täysin erilaiselta) kun käyttelin IE:tä.

Muista testata valtaselaimilla. Vaikka IE 5 ja 6 ovat susihuonoja, on niiden osuus selainmarkkinoista maailmanlaajuisesti vielä ylivoimainen. Suomessakin IE pitää hallussaan noin 50% selainmarkkinoista.


Tämän hirveyden huomattuani oli aika ruvet siivoamaan tyylejä koodista. En koskaan (ennen tätä) ollut perehtynyt CSS:ään (cascading style sheets), mutta nyt oli senkin aika. Eli aloin siirtämään layoutteja pois ohjelma koodista. Tämä periaate on vanha ja tuttu (sovelluslogiikka ja User Interface pitää olla erillään), mutta se ei ollut minulle tärkeätä ennen tätä.

Use cases vs. user experience - virheitä metsästämässä

Kuten jossain vaiheessa mainitsin kehitin järjestelmää tietynlaisella sovelletulla ad-hoc xp mallilla. Ensin ideoin, sitten koodasin toiminnon. Sen jälkeen testasin sitä niin paljon kun viitsin, pystyin ja jaksoin. Ja sitten vain koodi käyttöön.

Mikä tässä tavassa on hyvää:

  1. Toimivaa koodia valmistuu koko ajan. Tämä mahdollistaa sen, että sovellusta voi kehittää omassa tahdissa. Tunti silloin tällöin toi aina uusia toiminnallisuuksia.
  2. Perus "use case" tuli testattua aika hyvin. Eli toiminnallisuus teki juuri sen mitä sen oli tarkoituskin.
  3. Motivaatio pysyi korkealla, kun näki käden jäljen koko ajan.


Kehitysmetodologiaa valittaessa arvioi omat mahdollisuutesi reagoida virheisiin ja syntyvän riskin tasosta. Jos teet sovellusta itsellesi, voit varmasti ottaa riskejäkin vapaammin.


Mikäs sitten oli huonoa:
  1. Testaus oli/on ehdottoman vajavaista [tästä lisää myöhemmin]. Kuten sanottu, suurin osa testauksesta kohdistui juuri tuohon perus toimintaan. Mutta raja-arvoja ja virhetilanteita ei juurikaan tullut testattua. Tämä sopi hyvin tähän vaiheeseen ohjelmointia, missä prioriteetti oli saada toimivaa softaa ulos mahdollisimman pian.
  2. Virheitä alkoi löytymään. Tämä on tietenkin seurausta vajavaisesta suunnittelusta ja puutteellisesta testaamisesta.

Se onko tämä ongelma riippuu sinusta, ja palvelun suosiosta. Jos pystyt reagoimaan virheisiin nopeasti, ei todellisia ongelmia pääse syntymään. Ja jos palvelu on vielä alkutaipaleella, ei imagollisia tappioitakaan juuri tule. Tämä on haastajan / pienen palvelun etuoikeus.

www.mutteri.com:in tapauksessa olin varautunut siihen, että lopullinen käyttötestaus tapahtuu vasta oikeilla käyttäjillä. Minä en ollut perehtynyt varsinaisesti testaamiseen, testausmetodologioihin tai testaustyökaluihin. Luotin siihen, että pieni tuntematon palvelu, jolla ei vielä ole hävittävää, saa paljon anteeksi.

Ensimmäiset parannukset: title-tag

Käyttötilastoja selatessani huomasin, että tilastoissa välkkyvät kryptiset URL:it eivät ole kovin helposti luettavia. Mistä ihmeestä minä muistaisin mikä "nimike" on label_id=22. Tämä on tärkeä huomio jos haluat että hakukoneet löytävät sivusi ja tulkitsevat ne oikein. Ei se ole hakukoneenkan helppoa tulkita ja pisteyttää sivuasi jos sieltä ei löydy kuvaavia tietoja.

Analytics työkalussa oli raportteja jotka olisivat pystyneet näyttää sivuvierailuja käyttäen html:n "title" -tagiä. Ensimmäisen vaiheen versiossa kaikilla sivuilla oli sama "title" tagi, joten tämä raportti oli käyttökelvoton.

HTML:n "title" -tag on erinomaisen tärkeä hakukoneille. Sivuotsikon tulee kuvata sivua mahdollisimman hyvin ja rehellisesti.


Ensimmäisenä muutoksena kävin muuttamassa palvelua niin, että tuo "title" -tagi kertoisi jotain olennaista (ja yksilöllistä) näytettävästä sivusta. Myöhemmin olen myös oppinut, että hakukoneoptimoinnin kannalta tämä "title" -tagi on erinomaisen tärkeä. Joten sattumalta lähdin oikeaan suuntaan.

Opetus 6: Webmetriikka

Valitetettavasti hommat ei lopu siihen, että palvelu on julkaistu. Normaalisti tässä kohtaa on valmiina vain pieni osa suunnitelluista/ajatelluista toiminnallisuuksista. Näin oli tietenkin mutteri.com:inkin kanssa. Tekemistä olisi ollut vielä vaikka kuinka.

Mutta tässä kohtaa kannattaa pitää pieni tauko omien ajatusten ja suunnitelmien toteuttamisessa. On aika varmistaa, että palvelua aletaan käyttää. Pitää seurata miten palvelua käytetään. On täysin mahdollista, että kuvittelemasi "maailman loogisin" toiminnallisuus ei olekaan niin itsestään selvä muille. Seurantaa voi tehdä usealla eri tavalla. Voit rakentaa oman loggerin, joka tallentaa kaiken mitä järjestelmässä tapahtuu [minä tein mm. tämän]. Voit seurata web-serverin logeja. Mutta viisas ottaa käyttöön valmiit työkalut. Itse otin googlen Analytics palvelun käyttöön. Se oli ilmainen (muitakin ilmaisia on, mutta niistä suurin osa pitää asentaa omalle palvelimelle). Googlen analytics tarjosi perusraportit juuri sillä tasolla mitä tässä vaiheessa tarvitsin.

Seuraa palvelun käyttöä heti alusta webmetriikka työkalujen avulla. Ole valmis hylkäämään omia hienoja ajatuksia, jos ne eivät toimi.


Tässä vaiheessa suosittelen sitä, että seuraat järjestelmän käyttöä ja muutat sovellusta sitä mukaan kun opit käyttötilastoista jotain. Eli vanha kunnon: yritys ja erehdys -strategia. Koska kävijämäärät ovat mahdolliseti alhaisia, ei muutosten seuraukset ole aina niin ilmeisiä, mutta ainakin sinun pitää pystyä havaitsemaan ongelmat käyttötilastoista.

Ensimmäinen versio valmis

Joskus heinäkuun lopussa sain ensimmäisen version valmiiksi ja tuotantokäyttöön. Ensimmäisenä tietenkin pistin omat romuni myyntiin.

Oli tietenkin selvää, että mitään ryntäystä saitille ei tullut. Eihän kukaan tiennyt mikä ihme se www.mutteri.com oikein on. Muutaman päivän seurailin liikennettä, mutta ei...

Muista ilmoittaa sivustosi hakukoneille. Hakukoneiden kautta tulee suurin osa uusista kävijöistä.

Googlailin lämpimäkseni eri hakusanoilla millä kuvittelin vierailijoiden saapuvan. Mutta Top 10:iin on vaikea murtautua. Esimerkiksi Kirpputori -hakusanalla www.mutteri.com oli jossain sijalla 200+. Eipä sinne saakka hakutuloksia kovin moni jaksa selata.

Positiivisena pilkahduksena voi todeta sen, että hakusana "kirpputori +tuote" yhdistelmällä alkoi tulla parempia sijoituksia googlessa.

Koska minulla oli tarve myydä tuotteet, pistin myynti-ilmoituksia myös ns. "kilpailijoiden" kanaviin, kuten uutisryhmiin jne. Jokaiseen ilmoitukseen tietenkin linkki mutteri.com:iin.

Tällä "kikalla" alkoi tulla satunnaisesti hieman enemmän kävijöitä. Mutta niitä kaikkia vaivasi sama "vika": Ne tulivat, lukivat sen ilmoituksen mitä etsivät ja poistuivat. Tämä ei tietenkään ollut mikään veret seisauttava yllätys, mutta kuvittelin että ns. "sticky" kävijöitä tulisi edes vähän paremmalla prosentilla.

Vääränlainen markkinointi tuo vääränlaisia vierailijoita.


Joskus elokuussa tuli ensimmäinen ihan rehellinen ostajakin - joku tiedusteli minulla myynnissä ollutta sohvaa. Viestissä oli viite juuri www. mutteri.com:iin.

Ensimmäisen viikon vierailijasaldo oli jossain 10:n erillisen kävijän tasolla (siis viikossa, ei päivässä).

Huomio ohjelmakoodista: Tässä vaiheessa ohjelmointi prioriteettini oli selkeä: saada jotain toimivaa käyttöön. Ohjelmakoodi oli hirveää (tietokanta oli ok).

Opetus 5: Tietokantasuunnittelu

Koska mutteri.com oli tarkoitus olla dynaaminen ja sisällöntuottajia olivat käyttäjät tuntui luonnolliselta tietovarastolta relaatiotietokanta. Vaatimus edullisuudesta ohjasi ilmaisen MySQL:n luokse. Tämä oli yksi palveluntarjoajan valintakriteereistä.

Suunnittele tietokantasi huolella


Minun ohjelmoinnin suunnittelu on aina ollut vajavaista. On niin paljon hauskempaa koodata kuin suunnitella. Tässä kohtaa poikkeuksen tekee tietokannat. Aikaisemman kokemuksen perusteella (www.mutteri.com ei ollut ensimmäinen sovellus mitä minä kehitin) oli jotain oppia mennyt kovanpuoleiseen päähän. Ja se oppi koski tietokannan suunnittelua. Koodia on erittäin helppo kirjoittaa uudestaan ja uudestaan. Ja vaikka tietokannan uudelleen suunnittelu on myös helppoa, tulee tietokantojen mukana epämiellyttävä ongelma: mitä tehdä olemassaolevalla datalle? Jos tietokantaa pitää uudelleen organisoida jatkuvasti, menee tarpeettoman paljon aikaa myös tiedon migrointiin (eli siirtämiseen vanhasta rakenteesta uuteen). Ja tämä on virhealtista hommaa.

Toinen tietokantasuunnittelun puolestapuhuva seikka on se, että hyvin suuunniteltu tietokanta sallii helpon laajennettavuuden. Voit siis pienellä vaivalla luoda uutta toiminnallisuutta ja hyödyntää jo tallennettua tietoa.

Onneksi olen aina ollut kiinnostunut relaatiotietokannoista ja niiden tarjoamista mahdollisuuksista (ja onpa sitä joskus yliopistolla tullut opiskeltuakin).

Tietokannat väitän suunnitelleeni hyvin.

Design haasteita horisontissa

Kuten ideointivaiheessa tuli esille, minä en ole graafinen suunnittelija. Itse kukin haluaisi olla visuaalisesti erinomaisen taitava - moni saattaa jopa luulla olevansa. Tässä suhteessa olen ollut suhteellisen realistinen ja tunnistin sekä tunnustin omat rajoitukseni.

Yksi minulle suuria ongelmia aiheuttava alue on värimaailma. Minulla ongelma on suurempi kuin monilla muilla, sillä olen värisokea. Punaiset, vihreät, ruskeat ja oranssit menevät turhan helposti sekaisin. Koska minulla on ollut tällä saralla hieman haasteita, en ole siihen juurikaan perehtynyt edes niissä puitteissa mihin minulla olisi ollut mahdollisuuksia. Siispä en rehellisesti sanottuna osaa sanoa mitkä värit sopivat yhteen ja mitkä eivät.

Tikkurilan värilastuilla saitille toimiva väritys.


Mutta kun into on kovaa, niin hätä kyllä keinot keksii (vai mitenkäs se nyt menikään). Minä keksin Tikkurilan värilastut. Tikkurilalla on asiantuntijoita jotka kuluttavat aikaansa pohtimalla trendivärejä ja väriyhdistelmiä - miksi siis yrittää keksiä pyörää uudestaan. Hain Tikkurilan web-sivuilta värikartan ja siitä valitsin www.mutteri.com:in värimaailman.

Tuumasta toimeen

Nyt oli asiaa märehditty riittävästi. Suunnitelmat www.mutteri.com:ista olivat suunnilleen valmiit ja kaikki kritiikki oli sujuvasti unohdettu tai painettu villaisella. Päätös palvelun perustamisesta oli valmis. Sitten ei muuta kuin kehitysympäristö pystyyn Linux:iin, muutama rivi html:ää, php:ta ja tietokanta pystyyn. Eihän siinä sen kummempaa. Kaksi viikkoa (iltaisin) ja homma valmis... Tai sitten ei.

Arvioin kehittämisen vaatiman ajan todella pahasti väärin. Pyrin koodaamaan jonkinlaisessaa sovelletussa XP eli extreme programming moodissa, missä aina tehtiin yksi toiminnallisuus valmiiksi, niin sitä pientä tekemistä vain riitti ja riitti ja riitti (ja riittää yhä). Jossain kohtaa kirjoittelen lisää kehitysmetodeista(ni) ja kaikesta mitä siinä olen oppinut.

Tässä kohtaa elettiin muistaakseni kesä-heinäkuuta 2006.

Kehitysympäristö
Kehitysympäristönä käytän Linux Fedora Core versiota 6. Apachesta taitaa olla versio 2.x, phpsta 5.x ja taitaa MYSQL:kin olla viitos versiota.
Työkaluina käytän:
- tekstieditori (jep, kaikki on käsin koodattu) Quanta+ [aivan loistava editori KDE ympäristössä]
- selaimena Firefox, Moxilla, Konqueror ja Opera. Koska teen kehitystä Linux:illa, saattaa tulos IE:llä olla sillointällöin ei niin kaunista. Mutta pyrin tarkistamaan sillointällöin jollain windows koneella miltä näyttää - ja korjata kun ongelmia löyty.
- FTP sovelluksena ja tiedostonhallintaan soveltuu erinomaisesti tuo Konqueror (siinä on myös selain samassa mikä on välillä ihan kätevä ominaisuus).
- versionhallinta: ei mitään koska teen järjestelmää yksin, ja jokaisen session jälkeen käteen jää toimiva / julkaisukelpoinen järjestelmä.
- backupit: ei oikeastaan mitään - jokaisen session jälkeen koodi heitetään tuotantojärjestelmään joten siellä on backup, jos kotikone hajoaa.