Yläpalkki
Yläpalkki
Tietoa Movietronista
 

Historiaa

Movietron sai alkunsa vuonna 2003 Tampereen teknillisen yliopiston Ohjelmistotekniikan projektityö-kurssin harjoitustyönä. Idea harjoitustyön aiheeseen syntyi tarpeesta kaapia kermat päältä valtavasta elokuvatarjonnasta automatisoidusti. Ulkomailla vastaavia palveluita oli jo olemassa (esim. MovieLens), ja tarkoituksena oli tehdä palveluideasta lokaalimpi versio joka sisältäisi suomenkielisiä kommentteja ja elokuvasuositukset olisivat peräisin suomalaisten elokuvamausta. Ensimmäinen versio sisälsi varsin rajoittuneen määrän ominaisuuksia (mm. ei kommentointimahdollisuutta eikä tarjontalistoja) sekä kotikutoisen käyttäjäpohjaisen profilointialgoritmin jonka tulokset heittelivät kovasti. Algoritmin generoimien profiloitujen arvosanojen MAE eli keskimääräinen virhe oli kohtuullisen huono, noin 1.4 arvosanaa.

Projektityökurssin jälkeen palvelun ylläpitoa päätettiin jatkaa harrastuspohjalta koska testikäytön aikana Movietronille oli muodostunut vakiokäyttäjäkunta jotka pitivät palvelua hyödyllisenä ja kävivät säännöllisesti kirjaamassa tietokantaan elokuva-arvioitaan. Tässä vaiheessa alkuperäisen projektityöporukan 5-henkinen tiimi oli kutistunut kahden hengen ylläpitotiimiksi joka lähinnä korjaili esiintyneitä vikoja ja lisäili uusia ominaisuuksia ajan salliessa. Vuoden 2006 alussa toinen ylläpitäjistä sanoitui projektista irti ajanpuutteen vuoksi jolloin kehittäminen ja palvelun ylläpito jäi kokonaan allekirjoittaneen vastuulle.

Olen kehittänyt nk. Movietron 2.0:aa harrastuksena pikkuhiljaa ajan ja energian (teen myös ohjelmointia sisältävää päivätyötä) salliessa. Esimerkiksi joululomien 2006 aikana koodasin systeemiin uuden tuotepohjaisen profilointialgoritmin minkä avulla keskimääräinen virhe saatiin laskettua noin 0.8 arvosanaan. Lisää tietoa algoritmistä alla. Kesälomien 2007 aikana koodasin web-käyttöliittymän alusta alkaen uusiksi (minkä tulosta parhaillaan katselet).

Profilointialgoritmi

Nykyinen profilointialgoritmi on ns. tuotekohtaiseen yhteneväisyysarvoon perustuva algoritmi. Algoritmi vastaa käytännössä tässä julkaisussa esiteltyä algoritmiä pienin muutoksin. Suurimpana erona aikaisempaan Movietronin profilointialgoritmiin on että käyttäjien välille ei enää lasketa yhteneväisyysarvoja vaan yhteneväisyysarvot lasketaan elokuvien välille. Pelkästään annetuista arvosanoista laskettava yhteneväisyysarvo kertoo kuinka lähellä kaksi elokuvaa on toisiaan.

Profiloitu arvosana elokuvalle lasketaan etsimällä yhteneväisyydeltään ks. elokuvaa lähimpänä olevat elokuvat jotka profiloitava käyttäjä on arvostellut ja profiloitu arvosana lasketaan näiden arvosteluiden yhteneväisyysarvon mukaan painotettuna keskiarvona. Pikaisten mittausten perusteella em. julkaisussa olevat käppyrät pitävät paikkaansa eli näin lasketut suositukset ovat - joskus huomattavankin paljon - tarkempia kuin ns. käyttäjänaapuri-tekniikoilla lasketut.

Teknistä tietoa

Movietron 1.0 koodattiin Javalla. Sovelluksessa ei käytetty Javalle tarjolla olevia web-frameworkeja tai ORM:ia vaan esimerkiksi käyttöliittymä koodattiin raakana JSP:nä, systeemin arkkitehtuuri ravistettiin hihasta ja tietokantakyselyt kirjoitettiin raakana SQL:nä.

Kesällä 2007 koodattu Movietron 2.0 tehtiin Pythonilla käyttäen Pylons web-frameworkia sekä SQLAlchemyä. Template-kielenä käytettiin Makoa. Näillä työkaluilla palvelun kehittäminen sujui sutjakkaasti ja koodin laatu parantui reippaasti.

Grafiikat

Layoutin lahjoitti Velikani. Lisäksi ikoneita napsittu seuraavista kokoelmista: Silk / FAMFAMFAM ja Tango Icon Library.