[ Testit ] [ Sivukartta ]

Tekohengitystä IMDb:lle
Jarmo Piippo <jarmo.piippo@pp.nic.fi>

Aivan kuin Netin tukkoisuus ja yhteysongelmat eivät olisi jo riittäneet, pitääkö sieltä imuroitujen tiedostojenkin vielä kiukutella?! Nyt laitetaan Amigasi Movie Database ajan tasalle, vaikka sitten läpi harmaan kiven.


Joka paikkaa kolottaa

Sakussa #12 Esa Heikkisen esittelemä Internet Movie Database on yhä nykyäänkin asennettavissa ja ylläpidettävissä myös omalla tietokoneella, verkossa toimivan sivustonsa (www.imdb.com) lisäksi. Tietokanta on laajentunut jatkuvasti ja kattaa tällä hetkellä jo yli 290 tuhannen elokuvan tiedot. Viime vuoden keväällä IMDb:n selailuun käytettävä MovieMUI-ohjelma törmäsi ongelmiin tietokannan luonnissa, kun eräät osatiedostot saivat tietueita, jotka ylittivät ohjelman sisäisen 32 kilotavun kokorajan. Vastaavaa on tapahtunut aiemminkin, kun 16 kiloa ei enää riittänyt tietuekooksi, jolloin ohjelmasta ilmestyi nykyinen, laajemmat tietueet hyväksyvä versio. Tällä kertaa ei MovieMUI:n tekijä kuitenkaan ilmeisesti ole enää halukas panostamaan ohjelman jatkokehittelyyn, joten ainoaksi ratkaisuksi osoittautui Wilhelm Noekerin tekemä ListChopper-ohjelma, joka lyhentää ylipitkät tietueet IMDb:n hyväksymään kokoon.

Lisäksi ainakin omassa kokoonpanossani MovieMUI nykyään kaatuu, jos Title-ikkunassa hakee elokuvia substring-osamerkkijonohaulla. Ongelman voi kiertää käyttämällä siihen Complex-hakua jokerimerkkien kanssa, esim. hakusana #?star wars#? löytää kaikki kyseisen leffasarjan teokset ja aiheesta tehdyt tietokonepelit. Harmi kyllä ohjelman Complex-haku on tuskallisen hidas, joten kiireessä voi haun tehdä nopeammin hakemalla merkkijonoa suoraan tekstimuotoisesta Movies.list-tiedostosta vaikkapa Morella.

Viimeinen naulaehdokas arkkuun oli listatiedostojen viikottaisten päivitysten ajamiseen tarkoitettu ApplyDiffs-ohjelma, joka marraskuun alussa julkaistun 011102 päivätyn diffin kohdalla väitti tarkistussummia virheellisiksi ja heitti hanskat naulaan. Onneksi kuitenkin tähänkin löytyi melko pian helpotusta Marco Mirschelin julkaistua päivitetyn version ApplyDiffs-ohjelmasta Difftools-paketissa (linkit tiedostoihin löytyvät artikkelin lopusta).


Pulssi tuntuu jo

List-tiedostot ja niiden päivityspaketit eli diffit voi hakea vaikkapa Funetin mirrors-hakemistosta löytyvästä IMDb:n oman ftp-palvelimen peilistä. Itse listien yhteiskoko lähentelee pian jo 500 megatavun rajaa, mutta diffit eivät onneksi ole edelleenkään kuin muutaman megan paketteja. Tiedostot löytyvät toki myös Aminetin palvelimilta, lha-pakattuina, mutta jostain syystä ne ainakin ennen olivat purettuina hieman pienempiä kuin alkuperäiset tar.gz-pakettien tiedostot, joten varmuuden vuoksi olen käyttänyt vain alkuperäisiä. Ongelmaa ei kuitenkaan pitäisi olla, ainakaan ellei käytä eri lähteistä saatuja tiedostoja ristiin, ja tuskin silloinkaan. En ole moista ehtinyt/jaksanut tarkemmin tutkiskella, joten en takaa mitään suuntaan tai toiseen. :)

Ensimmäinen diffi, jonka ajaminen vaatii uudemman ApplyDiffs 2.5:n on siis 011102, ja ainakin tähän mennessä ohjelma on toiminut moitteetta kaikkien sen jälkeenkin ilmestyneiden diffien kanssa, mukaan lukien viimeisin 011130. Difftools-paketissa on ApplyDiffsin lisäksi myös erillinen CheckCRC-ohjelma, jota tekijä suosittelee käytettäväksi päivitysten onnistumisen tarkistamiseen, vaikkei ApplyDiffs antaisikaan virheilmoituksia.

Käytettäessä tar.gz-pakattuja diffejä voi niiden purkamista helpottaa käyttämällä erillisten purkuohjelmien sijaan Aminetistä löytyvää untgz-ohjelmaa, joka tekee koko homman yhdellä ainoalla komennolla, hieman samoin kuin lha:

untgz diffipaketti kohdehakemisto

Esimerkiksi:
untgz diffs-011102.tar.gz HD5:diffs

Tekijän suosituksen mukaan kannattanee ApplyDiffs-ohjelmalle antaa force-parametri, ja tarkistaa sitten list-tiedostojen tarkistussummat CheckCRC:llä:

ApplyDiffs HD5:lists HD5:diffs -force
CheckCRC HD5:lists

Kun edellisellä menetelmällä on onnistuneesti päivitetty viimeisimmätkin diffit list-tiedostoihin, pitää vielä MovieMUI:lle ylipitkät tietueet katkaista sopivan kokoisiksi ListChopperilla:

ListChopper quotes.list
ListChopper goofs.list

Ohjelma nimeää alkuperäiset list-tiedostot .bak-päätteisiksi, ja tekee lyhennetyt kopionsa niistä alkuperäisillä tiedostonimillä, jotta MovieMUI pystyisi käyttämään niitä. Nyt voit siis käynnistää MovieMUI:n, joka tietysti valittaa ettei tietokantaa ole vielä luotu. Ohita virheilmoitus tavalliseen tapaan ja käynnistä tietokannan luonti Maintenance-valikon database-kohdasta. Toiminnon valmistuttua onnistuneesti ("Database was created successfully") täytyy vielä muistaa poistaa lyhennetyt versiot listeistä, ja palauttaa alkuperäisten tiedostojen nimet renamella .bak-päätteisistä .list-päätteisiksi, jotta diffien ajo jatkossa onnistuu. Valmista tuli!

Tietokannan paisuttua nykyiseen kokoonsa kestää jo pelkkä diffipaketin ajo kohtalaisen nopeallakin Amigallani (68060/50MHz) jopa 14 minuuttia, ja itse tietokannan luonti MovieMUI:lla puolestaan melko tasan puolitoista tuntia. Olisi kiintoisaa päästä testailemaan toimintanopeuksia uusien huippuvauhdikkaiden emulaattorien avulla, sillä puoli gigatavua tekstitietoa alkaa olla kova pala purtavaksi näille 68k-sarjan prossuparoille. Ei sillä että niistä luopumista olisin edes harkitsemassa, mutta tällaiset raskaat hanttihommat olisi mukava teettää vähempiarvoisten työläiskoneiden massamyyntiprossuilla, jotta Aitojen Symppiskoneiden (tm) jäljellä oleva elinikä kuluisi mukavammissa merkeissä kuin paiskiessa ikäviä rutiinitöitä. ;-)

Ainakaan kirjoitushetkellä ei ListChopper-ohjelmaa vaikuta enää löytyvän Aminetistä, joten freeware-ohjelmana sen saa joko etsiskelemällä muualta Internetistä ja bokseista, tai koko muun maailman pettäessä yllekirjoittaneelta. Myös tekijältä voinee kysyä; yhteystiedot löytyvät Wilhelm Noekerin kotisivulta.

Aminet:
untgz (10 kt)
Difftools (59 kt)
MovieMUI 3.5 (351 kt)
MovieMUI 3.5a -päivitys
(91 kt)

Funet:
List- ja Diff-tiedostot


[ Testit ] [ Sivukartta ]