Mozvoikko 2.0.1 RC 1 Mac OS X:lle, Windowsille ja nyt myös PowerPC:lle

Suomen kielen oikoluvusta, eli mozvoikosta, on nyt saatavilla 2.0.1 RC 1 versio, joka tuo korjauksen oikoluvun kielen vaihtoon liittyvään ongelmaan. Korjaus mozvoikkoon julkaistiin jo vuoden vaihteessa, mutta kaikenlaisen muun ohessa jäi lisäosan paketointi odottamaan. Kun viikonloppuna sain lisäksi viriteltyä Windows 7:lle toimimaan Visual C++ 2005 Express Editionin, niin päivitin samalla libvoikon kirjastot 3.4.1 -versioon. Mozvoikon uusia kehitysversioita voi seurata Twitterissä #mozvoikko -tagilla.

Lisäosa löytyy testattavaksi ”Voikko – Suomen kielen oikoluku” -sivultaan ja myöhemmin myös Firefoxin lisäosahakemistosta. Mozvoikko 2.0.1 RC 1 -lisäosa tukee Firefoxia/Thunderbirdia 12a1 -versioon asti Mac OS X:ssä ja Windowsissa. Testasin paketin Mac OS X 10.7:ssa, Windows XP SP3:ssa ja Windows 7 SP1:ssä.

Uutena ominaisuutena lisäosasta on nyt myös erikseen paketoitu versio PowerPC Mac OS X 10.4 ja 10.5:lle, eli PPC-arkkitehtuurin laitteille. Käytännössä tällöin pitää kuitenkin käyttää TenFourFox-selainta, joka on haaroitettu Firefoxista. PPC-prosessorien tuki pudotettiin pois Firefoxin 4 -versiosta alkaen ja täten TenFourFox tarjoaa vanhemmille laitteille tuoreempaa Firefoxia. Testasin PPC-versiota iBook G4:lla käyttäen Mac OS X 10.4:sta ja TenFourFox 9:iä. Nopealla kokeilulla näytti toimivan.

Tulevaa kehitystä mozvoikossa on luultavasti saada lisäosa toimimaan 64-bittisessä Windows-maailmassa. Tämä kuitenkin vaatii ensin libvoikon kääntämisen 64-bittiseksi myös Windowsissa ja 64-bittisen kääntöympäristön virittämisen Visual Studio Expressiin. Ainakin 2005 -version kanssa se ei oikein halunnut onnistua. Asialla ei ilmeisesti ole vielä kovinkaan kiire, sillä vaikka Firefoxista on 64-bittinen nightly-versio Windowsille, bittien valumisesta Auroraan ja siten julkaisuun, ei ole tietoa.

Mozvoikko OS X:n ja Windowsin Firefox 6 ja 7 versioille

Kuluvalla viikolla julkaistiin aikataulun mukaan Firefoxista 6 versio, joka ei tällä kertaa tuonut juurikaan näkyviä muutoksia, kuten ei samalla beta-vaiheeseen päässyt 7 versio. Isommat versionumerot vaativat kuitenkin uuden käännöksen Suomen kielen oikolukusanasto -laajennuksesta, eli mozvoikosta, jonka kokeelliset versiot Firefoxin 6 ja 7 versioille löytyvät omalta sivultaan.

Firefox 6 versio toi uudistuksia lähinnä taustalle ja ainakin yhden ärsyttävän visuaalisen muutoksen osoitepalkin domain-osan korostuksen muodossa (kuten IE:ssä). Firefox 7 beta lupaakin sitten jo hieman enemmän, tarjoten mm. huomattavasti parantunutta muistinkäyttöä ja hävittäen osoitepalkista http-etuliitteen. Eipä kummatkaan kyllä ole täyden numeron arvoisia uudistuksia.

Kirjoitinkin aikaisemmin Firefoxin 5 version osalta selaimen nopeasta kehittymisestä ja muuttuvasta versionumeroinnista, joka aiheuttaa harmaita hiuksia tietynlaisten lisäosien kehittäjille ja tietenkin sovelluskehittäjille, jotka testaavat sovellukset aina tietyillä selaimilla. Jälleen kerran päivitys rikkoi Suomen kielen oikolukusanasto -lisäosan toiminnan, koska se käyttää Firefoxin oikolukurajapintaan liittyvää binäärikomponenttia. Rajapinta ei muuttunut, mutta Firefoxin alla olevan Gecko-moottorin versio päivittyi, joka edellytti, että myös binäärikomponentti on käännetty samaa versiota vasten. Sekä Firefox 6 että Firefox 7 versioiden osalta lisäosalle riitti, että se vain käännettiin uudestaan.

Voikon kehityspostilistalla on ollut puhetta mozvoikon jatkokehittämisestä siten, että se ei olisi niin riippuvainen Firefoxin versiosta, mutta kehitys on hidasta ja sen osalta ei mitään uutta ole vähään aikaan kuulunut. Itsekin testailin alustavasti js-ctypeseillä toteutettavaa lisäosaa, jossa varsinainen lisäosa on kirjoitettu JavaScriptillä, joka vastaavasti on yhteydessä C++:lla kirjoitettuun libvoikko-oikolukukirjastoon, mutta se on vielä todella vaiheessa.

Firefoxin osoitepalkin haku-toiminto

Firefox muutti uusimmissa versioissa osoitepalkkinsa haku-toimintoa siten, että oletuksena tekstille, joka ei ole kelvollinen osoite, käytetään ”Internet keywords” -hakua ja lähetetään oletuksena Googlen ”Hae nimellä” -palveluun. Tämän jälkeen selain joko ohjaa sinut parhaiten sopivaan tulokseen tai näyttää hakutulokset.

Aikaisemmissa versioissa haku toimi mielestäni paremmin, vikkelämmin, ja onneksi osoitepalkin haku-toimintoa voi muokata haluamakseen about:configin keyword.URL -arvolla (MozillaZine). Asetukset saa esiin kirjoittamalla osoitepalkkiin about:config ja kirjoittamalla Filter-kenttään keyword. Jos keyword.URL -arvoa ei ole, sen voi itse lisätä (New > String).

Value-arvoksi lisätään haluttu palvelu:

Google’s ”Kokeilen onneani” (vakiona ennen Firefox 2.0):
http://www.google.com/search?btnI=I%27m+Feeling+Lucky&ie=UTF-8&oe=UTF-8&q=

Google ”Hae nimellä” (vakiona Firefox 2)
– Vie automaattisesti sivulle jos selkeä hakutulos löydetään tai näyttää hakutulokset Googlessa
http://www.google.com/search?ie=UTF-8&sourceid=navclient&gfns=1&q=

Google Haku (perinteinen Googlen haun hakutulossivu)
http://www.google.com/search?ie=UTF-8&oe=UTF-8&q=

Jos ”Internet Keywords” -haun kytkee pois päältä asettamalla keyword.enabled arvoksi false, yrittää selain tämän jälkeen arvata domaineja korjaamalla epäkelpoa URLia lisäämällä siihen etu-, takaliitteen tai molemmat. Tämänkin voi kytkeä pois päältä asettamalla browser.fixup.alternate.enabled arvoksi false.

Perinteinen Googlen haku myös Firefoxin osoitepalkista käytettynä (pikanäppäin Ctrl-L) tuntuu olevan itselleni se kätevin, vaikka selaimessa toki on myös erikseen Googlen haku-kenttä (pikanäppäin Ctrl-K).

Mozvoikosta Mac OS X -versio Firefox 5:lle

Firefoxin 4 version jälkeen selaimen nopeutunut kehitystahti on käyttäjien kannalta positiivista, kun uusia ominaisuuksia saadaan nopeammin käyttöön, mutta hieman ikävää laajennusten kehittäjien kannalta. Kun vähän aikaa sitten julkaistiin Firefoxin 5 versio, jäivät monet lisäosat teoriassa epäyhteensopiviksi uuden version kanssa, vaikka usein toimivatkin ongelmitta. Tähän joukkoon ei kuulunut Suomen kielen oikolukusanasto -laajennus, eli mozvoikko.

Kun Firefox aikaisemmin päivittyi harvakseltaan, ehtivät kehittäjät mahdollisesti korjata ja testata lisäosansa ennen version julkaisemista, mutta kun nykyään sovelluksen versionumerot vain vilistävät ylöspäin aikaisemman matelun asemasta, eivät kaikki laajennukset, kuten mozvoikko, pysy mukana. En näe, että tilanne mozvoikon virallisten versioiden päivitystahdissa tulisi paranemaan, kun versiot ovat aina laahanneet enemmän tai vähemmän Firefoxin kehityksen perässä. Kehittäjien käytettävissä ole vapaa-aika laajennuksen kehittämiseen ja testaamiseen on rajallista, mutta kiireisille käyttäjille on yleensä saatavilla kokeellisia versioita laajennuksesta, kuten Andris Paveniksen versiot Linuxille ja Windowsille ja kirjoittajan kääntämät versiot Mac OS X:lle.

Tällä kertaa Firefoxin muutokset eivät olleet yhtä mullistavia kuin viimeksi, joten tein mozvoikosta 32- ja 64-bittisen version Mac OS X:n Firefox 5:lle, joka näyttäisi toimivan kuten ennenkin. Palikkaan piti ensin vain lisätä puuttunut rajapintamääritys. Versio on asetettu ”yhteensopivaksi” myös Firefoxin 6 -versiolle ja ylöspäin, mutta en ole sitä kyseisten versioiden kanssa testannut.

Lisäys, 1.7.2011:
Mozvoikosta löytyy nyt myös versio Windowsin 32-bittiselle Firefox 5.0 (tai suuremmalle) -versiolle. Testattu Windows 7:ssa ja käännetty käyttäen MSVC:tä. Ilmeisesti GCC:llä käännetyssä versiossa oli jotain ongelmia joissain kokoonpanoissa.

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.

Firefox 4 Beta 1 esittelee tulevaa edistystä

Firefox 4:sta on julkaistu ensimmäinen Beta-versio, joka esittelee kaivattuja uudistuksia luotettavaan selaimeen. Selaimen 4-sarja tuo uudistuksia sekä käyttöliittymään että taustalle ja näkyvimpänä uudistuksena on välilehtien siirtyminen osoitepalkin yläpuolelle, johon liittyen esitettiin jokin aika sitten myös hyvä perustelu.

Heti ensimmäisenä Firefox 4 Beta 1:sta käytettäessä huomaa uuden version vikkelyyden, jonka jälkeen 3-sarja tuntuu kuin ajaisi traktorin perässä moottoritiellä. Muita selkeästi näkyviä uudistuksia on muun muassa Windows 7:ssa parantunut kuvakkeen ja välilehtien toiminta, muuttunut lisäosien ja laajennusten hallinta, OS X:llä tuki Core Animaatiolle, natiivituki WebM-videoformaatille ja parantunut CSS3 ja HTML5 tuki. Lisäksi tulevia ominaisuuksia oli vielä työn alla. Julkaisutiedoista voi lukea, että tunnettuja ongelmia on vielä muutamia, kuten Windowsissa on ongelmia näytönohjainten kanssa ja Mac OS X:ssä välilehdet eivät näytä kivoilta yläpuolella.

Jos Beta versioiden mahdollista epävakautta ei lasketa mukaan, joka itselle ilmeni sinisenä ruutuna, on Beta- ja muiden epävirallisten versioiden puutteena laajennusten toimivuus, joihin joutuu vähintäänkin käyttämään Add-on Compatibility Reporter -lisäosaa, jonka avulla ne saa aktivoitua ja testattua. Ainakin mozvoikko eli suomen kielinen oikolukusanasto -lisäosa näytti toimivan kuten aikaisemminkin Mac OS X:ssä ja Windowsissa, mutta jostain syystä Firefoxin 4b1 -lähdekoodeja vasten käännettynä ks. lisäosa ei toiminut.

Usein aikaisemman version lisäosat toimivat myös uusimmissa versioissa, mutta Firefox 4:n osalta ainakin kätevä käyttäjien skriptien ajamiseen käytettävä Greasemonkey-lisäosa ei toimi enää laajennusten hallinnan muutosten takia. Ilmeisesti sen voi ”korvata” Jetpackilla, joka mahdollistaa lisäosien toteuttamisen käyttäen HTML:ää, CSS:ää ja JavaScriptiä kuten Chromen ja Safarin kanssa. Nopeasti testasinkin Jetpack SDK:ta lisäosien toteuttamiseen, mutta eipä Helvetireader-skriptin korvaaminen oikein onnistunut kelvollisesti.

Mozillan on tarkoitus tuoda uusia Beta-versioita muutaman viikon välein, aikaisemman kuukausien asemasta, joten selaimen kehitystä kohti valmista voi seurata vaiheittain. Web-kehittäjille 4-sarja tarjoaa paljon uudistuksia, mutta totuushan on, että sovelluskehitys kulkee pitkään vielä vanhan teknologian päällä. HTML5:sta, JSF 2:sta ja muusta kivasta saa vain unelmoida, mutta koska Internet Explorerin ohella Firefox on niitä selaimia, joita asiakkaat ”tukevat”, tulevaisuus näyttää nopeammalta. Firefox 4:n Release Candidate -versiota voi ilmeisesti odotella lokakuussa ja viimeisteltyä versiota marraskuussa.

Harmillisesti Beta-versiota testatessa tuli taas tehtyä perinteiset, sillä nopealla testauksella pääsi jo ”tottumaan” uusiin ominaisuuksiin ja etenkin nopeuteen. Pitää miettiä alkaisiko sitä käyttämään pääselaimena Firefoxin Beta-sarjaa vai Chromea, joka vaikuttaa aika lupaavalta pienen etsikkoajan jälkeen. Voikkoa ei tosin Chromeen taida saada. Tai sitten Safaria, johon ilmeisesti saisi VoikkoSpellServicen kautta, jos sen nyt saisi OS X:llä toimimaan, myös oikoluvun.

Uuden libvoikon myötä mozvoikko toimii ilman säätämistä

Libvoikosta julkaistiin jokin aika sitten 2.3-rc1 -versio, jossa päästiin eroon Glib ja Malaga -kirjastojen riippuvuuksista ja täten libvoikon käyttäminen helpottui ainakin Mac OS X:ssä. Jaettujen kirjastojen käyttö kun on OS X:ssä hieman vaivalloista ja aikaisemmin libvoikkoa käyttävä Firefoxin mozvoikko-lisäosa vaati, että libvoikon tarvitsemat kirjastot sijoitettiin kääntöaikaiseen hakemistoon (/usr/local/lib). Nyt kun libvoikko ei ylimääräisiä kirjastoja vaadi, näytti mozvoikko toimivan suoraan laatikosta ilman erillistä säätämistä.

Uutta versiota mozvoikosta kääntäessäni lisäsin (lue: tein diffit) myös OS X:ään liittyvää asiaa Readme.buildiin ja poistin nyt tarpeettoman libmalaga-riippuvuuden OS X:n osalta. Käännösohjeet ja muutokset löytyvät Mac OS X ja mozvoikko -alasivulta. SVN:stä käännettyä mozvoikko-1.0.r3130-Darwin_x86-gcc3.xpi -lisäosaa voi testata omalla vastuulla (kuten aina).

Voikon kehittäjät, johtohahmona Harri Pitkänen, ovat kyllä tehneet mainiota työtä, sillä etenkin netissä oikoluvulle on tarvetta. Jos vielä ihmiset ymmärtäisivät sitä käyttää :)