Mozvoikko, XPCOM-komponentti ja Firefox 4 beta 6

Kirjoitin kesällä Firefox 4 beta 1:stä ja mainitsin, että mozvoikko eli suomen kielinen oikolukusanasto -lisäosa toimisi myös uudessa 4 versiossa. Toimihan se vielä pari beta versiota ensimmäisestä eteenpäin, mutta tämän jälkeen Gecko 2.0:ssa tuodut muutokset XPCOMiin vaativat kaikkien lisäosien päivittämistä komponenttien rekisteröimisen osalta. Teoriassa yksinkertainen muutos, mutta käytännössä ei tietenkään niin selkeä.

Asia olisi ollut yksinkertainen, jos mozvoikko ei käyttäisi binäärikirjastoja, joiden sijainti aikaisemmin haettiin kategoriamanagerin avulla, joka rekisteröi komponentin ja sen sijainnin. Nyt kun komponenttien rekisteröinti muuttui chrome.manifestissä tapahtuvaksi, ei tuota tietoa enää ollut saatavissa. Onneksi ratkaisu löytyy JavaScriptistä, jolla toteutuissa XPCOM-komponenteissa on sisäänrakennettu __LOCATION__ -funktio, joka palauttaa komponentin nsIFilen, jonka avulla saadaan selville hakemisto, jossa komponentti on. Enää piti siis vain toteuttaa tuollainen JavaScript XPCOM-komponentti ja liittää se mozvoikon C++-koodiin.

En ollut aikaisemmin toteuttanut XPCOM-komponentteja, mutta netissä oli siihen muutamia vinkkejä. Tietenkin kaikkia ohjeita ja dokumentointia ei ollut vielä päivitetty Firefox 4:n kanssa toimivaksi, joten pientä yritys-erehdys -tekniikkaa piti suorittaa, että JavaScript-komponentin sai toimimaan C++:sta kutsuttuna. Käytännössä JavaScriptillä toteutettu XPCOM-komponentti, MozvoikkoHelper, rekisteröidään Firefoxin käynnistyessä ja siltä kysytään sen sijainti mozvoikon käynnistyessä, kun oikolukua ensimmäistä kertaa tarvitaan. Loppu toimii kuten aikaisemminkin. Ei ehkä kovin hieno ratkaisu, mutta toimiva ainakin Firefox 4 beta 6 -version kanssa.

Muuten mozvoikolle tarvittavat muutokset Firefoxin mukana käännettäväksi olivat pieniä ja näin jälkikäteen katsottuna myös toteuttamani JavaScript-lisäpalikka ja sen liitos mozvoikon koodiin oli suhteellisen yksinkertaista. Mitä nyt muutamaa eri tapaa ja periaatetta ehdin kokeilla, ennen kuin ymmärsin miten asioiden pitää toimia. Se mikä aikaisemmin toimi, ei toiminut enää. No, tulipahan opittua komponenttien toteuttamista ja hieman C++:aa.

Virallista versiota mozvoikosta Firefox 4:lle saadaan varmasti odottaa Firefox 4:n julkaisuun asti, mutta kokeellinen versio OS X:lle löytyy mozvoikko-osiosta. Mozvoikon kehittäjä, Andris Pavenis, totesi lisäosan toimivan apupalikan kanssa myös Linuxissa ja pitänee katsoa josko tuon saisi käännettyä myös Windowsille. Lisäosan kääntämiseen Firefox 4:lle tarvittavat muutokset näyttivät jo löytyvän mozvoikon versionhallinnasta (r3531 ja r3570), joten jokainen voi halutessaan kääntää oman versionsa. Andris oli hieman muuttanut ehdottamiani muutoksia, jotka olivatkin muutamilta osilta näköjään paremmin toteuttavissa. Toisaalta nyt mozvoikon asentamisessa tulee muutamia virheilmoituksia puuttuvista manifest-tiedostoista, mutta muuten toiminta on sama.

Lisäys, 21.11.2010:
Firefox 4.0 beta 7 käynnistyy OS X:ssä vakiona nyt 64-bittisenä, joten käänsin mozvoikosta yhdistetyn version sekä 32- että 64-bittiselle Firefoxille. Andriksen tekemien lisäysten jälkeen mozvoikko toimii nyt samalla versiolla Firefox 3.6:ssa ja 4.0:ssa.

Enkelit ja demonit sekoittaa sopivasti fiktiota ja faktaa

Pitkästä aikaa paremman lukemisen puuttuessa tartuin dekkareihin ja kirjastosta löytyi Dan Brownin "Enkelit ja demonit", joka on ollut tarkoituksena lukea ennen kuin kyseisen elokuvan voisi joskus katsoa. Jo Brownin "Da Vinci koodi" -teoksesta tehty samanniminen elokuva osoitti, että teos on aina parempi kuin elokuva, jossa tarinaa kiirehditään, lyhennetään ja karsitaan siten, että kirjan tunnelmasta ei jää juuri mitään jäljelle. Ja kun elokuvan on jo katsonut, ei kirjassa ole enää oikein mitään jännitettä.

Roomaan, tarkemmin Vatikaaniin sijoittuva, ja Illuminateihin keskittyvä "Enkelit ja demonit" on tyypillistä Dan Brownia, kun vertailukohtana kirjoittajalta on vain "Da Vinci koodi". Tarina pohjaa salaliittoteorioihin ja käyttää tukenaan taide- ja historiallista faktoja, joita yhdistellään näppärästi fiktioon ja joiden avulla esitellään lukijalle uskottavalta kuulostava tarina. Myös juonen kulku on tuttua, sillä alussa on kryptinen murha, jota uskonnollisen symbologian professori Roberg Langdon saapuu selvittämään murhatun tyttären kanssa ja joutuu juonen edessä ratkaisemaan arvoituksia murhaajan jäljille pääsemiseksi. Lopulta arvoitukset ratkeavat ja Langdon saa naisen.

Teos ei tarjoa kovin omaperäistä kerrontaa, mutta viihteellistä ja mukaansa tempaavaa. Historiallisten faktojen ja fiktion yhdistely mysteeriin toimii ja tarinalle saadaan hyvin syvyyttä ja mielenkiintoa. Pituutta teoksella on noin 500 sivua pokkarimuodossa, jotka sain luettua parissa viikossa. Yöunet jäivätkin kirjan lukemisen aikana hieman vajaiksi, kun piti lukea "vielä yksi" kappale.

En tiedä oliko Brownille maksettu tästä, mutta teoksessa pisti silmään pienoinen väkinäinen kaupallisuus, kun Langdon joi Nesquick-kaakaota, kurvaili Saab 900S:llä ja sveitsiläiskaarti kiisi pitkin Vatikaania tietenkin punaisilla Alfa Romeo 147 T Sparkeilla. Vauhdikkaasti. Renkaat ulvoen. Hyvää tuotesijoittelua ei siinä mitään.

Dan Brownin teokset, ainakin kahden otoksen perusteella, ovat viihdyttäviä, joten lukulistalle pitänee lisätä "Murtamaton linnake" ja mitä niitä muita olikaan. Ainakaan ne eivät ole samanlaista pakkopullaa kuin eräät William Gibsonin kuuluisat ja kehutut teokset.

Lois McMaster Bujoldin Vorgosigan-saaga

Kaiken päivittäisen teknisen lukemisen ja tekemisen vastapainona tulee lähes joka ilta luettua jotain fiktiivistä kirjaa kuten fantasiaa tai scifiä. Viime aikoina tosin ovat tuttujen ja turvallisten kirjoittajien kuten Georger R. R. Martinin, R. A. Salvatorin, Brian Herbertin ja Kevin J. Andersonin, Robin Hobbin ja Robert Jordanin teokset tulleet lähes kaikki luettua, eikä uusia osia kesken olevista sarjoista ole vielä pokkareina ilmestynyt. Niinpä oli aika etsiä uusia kirjailijoita ja kaverin suosituksesta aloitin Lois McMaster Bujoldin Vorkosigan saagan lukemisen.

Ennakkotietojen mukaan luvassa tulisi olemaan hyvää kirjallisuutta, sillä amerikkalainen scifi- ja fantasiakirjailija Lois McMaster Bujold (s. 1949) on yksi ylistetyimmistä kirjailijoista alallaan ja voittanut arvovaltaisen Hugo Awardin parhaasta romaanista ennätykselliset neljä kertaa. Lisäksi scifissä "The Mountains of Mourning"-novelli on voittanut sekä Hugo että Nebula Awardin ja fantasian puolella samaan ylsi "Paladin of Souls" -teos. Toisaalta, tuntuu että lähes jokainen hiemankin nimekkäämpi kirjailija on jotain palkintoja voittanut ja on vähintään New York Times Bestselling author.

Scifiä sisällään pitävä Vorgosigan-saaga alkaa Cordelia Naismith -sarjan Shards of Honor (1986) ja Barrayar (1991) -teoksilla, jotka ovat saagan alkusoittoa Miles Vorkosigan -sarjalle. Sarja sijoittuu noin 1000 vuotta tulevaisuuteen kuvitteelliseen maailmaan ja alkupään teokset ovat tyyliltään avaruusoopperaa taisteluineen, salaliittoineen ja juonenkäänteineen. Myöhemmät Miles-sarjan seikkailut ovat enemmän dekkarityylisiä. Tähän mennessä saagassa on 25 teosta ja sarjaa kirjoitetaan edelleen, joten lukemista riittää. Sivumäärältään ainakin lukemani teokset ovat lyhyehköjä noin 300 sivun tarinoita, joten yhden kirjan lukee vajaassa parissa viikossa omalla hitaalla "vajaa tunti päivässä"-tahdillani.

Vorkosigan saaga vaikuttaa lupaavalta ja tarina vasta lähtee käyntiin Milesin päästessä lavalle. Lukeminen on helppoa ja tarina etenee viihdyttävästi, vaikka ei ainakaan muutaman teoksen otoksella pääse yllätyksellisyydessään ja käänteissään loistavan George R. R. Martinin tasolle. Vorgosigan saagan teokset löytyvät myös kätevästi Helmet-kirjastoista, joista ne voi varata omaan lähikirjastoon.