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.

Androidin sovellustarjonta on laajaa ja kirjavaa

”There’s an app for that”-sanonta liitetään yleensä iPhoneen, mutta vaikka Android ei aivan niin kattavaa valikoimaa ohjelmia tarjoa (luokkaa 200 000 vs. 50 000), löytyy erilaisia sovelluksia lähes joka lähtöön. Kattava ohjelmistotarjonta ja kehittäjien määrä ovat yksi älypuhelinten onnistumisen kulmakiviä ja Androidin osalta asia on vain parantumassa alustan yleistyessä. Mahdollisuus kehittää sovelluksia Javalla ja hyvät dokumentaatiot vain edesauttavat asiaa.

Runsaassa sovellustarjonnassa on myös negatiivisena puolena valinnan vaikeus ja kunnollisten ohjelmien valinta. Samannimisiä ja samaa toiminta toteuttavia sovelluksia löytyy lukuisia ja ellei suositeltavaan sovellukseen ole suoraa linkkiä, on sen löytäminen Android Marketista aika tuskaista. Lisäksi koska Suomessa ei ole vielä avattu Android Markettia maksullisille sovelluksille, joutuu sovelluksissa usein sietämään rajoitettua toiminnallisuutta ja mainoksia, ellei roottaa puhelinta ja huijaa sijaintia. Eli kehittäjiä on hankala tukea, vaikka haluaisikin.

Sovellusten asentaminen App Marketista onnistuu suhteellisen helposti suoraan puhelimesta, mutta helpointa on asentaa sovelluksia valitsemalla ne listaan AppBrainilla selaimen kautta ja synkronoida valinnat puhelimeen AppBrain App Market-sovelluksen avulla. AppBrain ei valitettavasti näytä Web-liittymässä, löytyykö kyseinen sovellus oman maan App Marketista tai onko se saatavilla alhaisen resoluution laitteille. Sovellus linkittyy App Markettiin ja ohjelmat joko löytyvät tai eivät löydy. Vaihtoehtoisesti voi käyttää AppBrainia vastaavaa SlideMe-sovelluskauppaa, jonka kautta voi ilmeisesti ostaa maksullisia sovelluksia. SlideMen sovellusvalikoima on suppeampi kuin AppBrainin.

Erilaisia sovelluslistauksia Androidille on netti pullollaan, mutta tässä oma listani ohjelmista, jotka olen HTC Wildfireen asentanut tai testannut. Osa sovelluksista on enemmän tai vähemmän hyödyllisiä. Wildfiren alhainen resoluutio (320×240 eli QVGA) rajoittaa joidenkin ohjelmien saatavuutta ja tuntuu App Market muutenkin välillä hukkaavan sovelluksia. Wildfiressa toimimattomat, mutta muuten kiinnostavat sovellukset olen listannut ”Muut”-osioon.

Yleiset
Jorte: Kätevä kalenteri Home-näytölle.

Kaloer clock: Toimiva herätyskello.

GPS ja lokaatio
Andropas: Natiivi Reittiopas-ohjelma. Nykyisen osoitteen selvittäminen GPS:n tai verkon avulla. Valittu reitti ja oma sijainti kartalla (Google maps)

Droidopas: Vaihtoehtoinen Reittiopas. Lähtöpaikka GPS:llä tai solusta, paikkojen tallennus ja reitin näyttö kartalla.

Antennas: Kertoo mihin antennitolppaan luuri on kytketty.

Compass: Magneettinen/maantieteellinen kompassi.

My Tracks: Nauhoittaa GPS:llä kuljetun reitin ja tiedot. Reitin vienti Googlen My Mapsiin ja tiedot Google Spreadsheetsiin.

SportsTracker live: Vaihtoehtoinen, enemmän sosiaalinen ohjelma urheilusuorituksen seurantaan GPS:n avulla.

Endomondo: Vaihtoehtoinen, enemmän sosiaalinen ohjelma urheilusuorituksen seurantaan GPS:n avulla.

Google Sky Map: Näyttää yötaivaan tähtikartan.

Here I Am 2: Näyttää sijainnin ja tiedon voi lähettää kaverille tekstiviestillä tai sähköpostilla.

Järjestelmä
AnySoftKeyboard ja Finnish Language Pack: Vaihtoehtoinen virtuaalinen näppäimistö, joka on muokattavampi kuin vakiona tuleva ja siihen Suomen kielinen näppäinasettelu.

SystemPanelLite Task Manager: Näyttää erilaista järjestelmätason informaatiota puhelimesta kuten CPU-kuormituksen ja akun tilan. Lisäksi mahdollistaa sovellusten tappamisen.

OS Monitor: Tehtävienhallintaohjelma, joka näyttää kaikkien ohjelmien aiheuttaman prosessorikuorman ja auttaa paljastamaan resurssisyöpöt. Osaa myös tappaa ohjelmia tarpeen vaatiessa.

AppMonster: Sovellusten hallintaa eli poistamista ja varmistamista SD-kortille.

Sms backup+: Tallentaa kaikki tekstiviestit Gmailiin oman labelinsa alle, etteivät näy inboxissa.

Quick Settings: Asetukset mm. WiFin, Bluetoothin hallintaan yhdessä paikassa.

Gmail Unread Count: Lukemattomien sähköpostien näyttävä Widget, joka avaa Gmailin.

Speedtest.net Speed Test: Mittaa miten nopeasti puhelin lataa ja lähettää dataa

NetCounter: Näyttää ladatun datan määrän, Wi-Fi ja puhelin erikseen

Wifi Analyzer: Langattomien verkkojen havainnointiin.

aTrackDog ja aTrackDog(SD): Pitää kirjaa mitä sovelluksia on asennettu ja mitä varmistettu SD-kortille. Lisäksi päivitysten tarkistaminen, varmistettujen ohjelmien asennus ja ohjelmalistan vienti.

Hyöty
Note Everything: Muistio, jossa mahdollista tehdä erilaisia muistiinpanoja: teksti, piirto, ääni, tarkistuslista ja kuva. Tietojen järjestely kansioihin, lähetys eteenpäin, salaus, muistutukset, pikakuvakkeet ja vaikka mitä.

Irssi ConnectBot: SSH-pääteohjelma, jossa erikoistoiminnot Irssin käyttämistä varten. Toimii. Muutamia käteviä ominaisuuksia ovat: sormipyyhkäisyllä kanavan vaihto (vasen/oikee), backlogin selaus (vasen reuna ylös/alas), ruudun selaus (oikea reuna ylös/alas), linkin avaus (url scan menusta), pikakomennot (painaa ruutua pitkään)

Dropbox: Dropbox puhelimessa.

Astrid Task/ToDo List: Eli Android’s Simple Task Recording Dashboard -ohjelma.

Enidroid: Hakee saapuvien tuntemattomien puheluiden tiedot Eniron palvelusta ja näyttää ne käyttäjälle. Myös Eniron manuaalihaku sekä puhelinmyyja.info:n numerolista.

Barcode Scanner: Skannaa viivakoodit esimerkiksi Android-ohjelmien asentamista varten (QR-koodi).

Meridian Media Player: Parempi vaihtoehto vakiosoittimelle. Osaa Scrobble Droidin (ei QVGA) avustuksella scrobblata biisit Last.fm-palveluun.

Spotify: Virallinen Spotify-clientti. Vain Premium-tilin haltijoille.

Helsinki Testbed Weather View: Näyttää Helsinki Testbed sääkartan puhelimessa. En löytänyt sovellusta AppBrainista, mutta löytyi Android Marketista QR-koodin perusteella.

Car Mode: Käynnistettynä ohjaa puhelut suoraan kaiuttimelle ja toimii autossa teoriassa handsfreenä

Ringdroid: Luo soittoääniä haluamistasi kappaleen kohdista määrittämällä alku- ja loppukohta tai nauhoita oma.

StopWatch & Timer: Sekunttikello.

Mileage: Seuraa bensankulutusta ja tankkauksia. Tiedot voi viedä ja niistä saa käppyröitä.

Unit Converter: Muunnostyökalu.

RealCalc Scientific Calculator: Tieteislaskin.

ASTRO File Manager : Nimensä mukaisesti tiedostonhallintaohjelma, jolla voi hallita SD-kortilla olevia tiedostoja.

Talk To me Cloud: Käännösohjelma, joka muuntaa tekstin englannista esim. espanjaksi.

Opera Mini ja Opera Mobile: Nopeampi vaihtoehto vakiona tulevalle selaimelle. Minissä data pakataan ja kierrätetään Operan palvelimien kautta.

Hungry! Shoplist: Ostoslista.

Wheres My Droid: Jos puhelin on äänettömänä hukassa, tekstari ”Wheres my droid” herättää, säätää äänet täysille ja soittelee soittoääntä.

Huvi
Color Flashlight: Muuntaa kosketusnäytön värilliseksi taskulampuksi.

Bubble: Vatupassi.

Loops! Lite: Rumpukone / sekvensseri.

Google Goggles: Hae kuvan perusteella.

Guitar: Solo Lite: Kitara.

Draw! (Free): Piirto-sovellus.

SpeedView: GPS:ään perustuva nopeusmittari, joka näyttää muitakin tietoja ja tiedot voidaan viedä GPX-muotoon.

Pelit
OpenSudoku: Sudoku.

Flight Director Lite: Hieno peli lennonjohtajiksi haluaville, jossa ohjataan koneet kentälle ja pelikenttä on satelliittikartasta.

Air Control: Lentokenttäpeli yllä olevan tapaan.

Dante: THE INFERNO game: Dante’s Inferno -peliin nojaava peli Androidille.

Nesoid Lite, Free: Täydellinen emulaattori NES-peleille, jotka eivät kuulemma oikein pyöri kunonlla Wildfirellä ja kontrollit ovat ahtaat.

Nintaii Lite: Liikuta puista palikkaa pelikentällä läpi esteiden kohti mustaa neliötä.

Abduction!: Ylöspäin rullaava peli, jossa hypitään lehmällä nurmikkotasoilta toiselle.

Labyrinth Lite: Perinteinen ylhäältäpäin kuvattu metallipallo labyrinthissä -peli. Ilmaisversiossa 10 kenttää. 3D-grafiikat hieman raskaat Wildfirellä.

Solitaire: Perinteinen Solitaraire.

Mahjong ja Mahjong 3D: Mahjong. Turhan pieni tarkkuus Wildfirellä.

Sinister Planet: Vanhan ajan arkade shooter -peli.

Extrem Droid Jump: Hypi Android-robotilla tasolta toiselle

Drop: Ohjaa tippuva pallo tasoilta alas kääntelemällä luuria.

Pocket Racing Lite: Ylhäältäpäin kuvattu autopeli.

Toss It: Paperitollon heittelyä.

Bonsai Blast: Ammu pallukoita kolmen ryppäisiin.

SuperYatzy free edition: Yatzy.

Jewels: Puzzle-peli, jossa tyhjennetään ruutuva yhdistelemällä kolme samaa kuviota.

Puzzle Blox: Napsuttele palikoita pois ruudulta ja järjestelemällä ne nippuihin kääntelemällä puhelinta.

Find It : The Simpsons: Löydä kuvista eroavaisuudet. Teemana Simpsonit.

Math Workout Lite: Matematiikantaitoja testaava peli, jossa ratkaistaan yksinkertaisia matemaattisia yhtälöitä.

LightUp: Älypeli, jossa tavoitteena on valaista siniset kuutiot järjestyksessä.

Muut
Ohjelmia, joita muualla on kehuttu, mutta eivät löydy QVGA-laitteelle.

Voice Recorder: Nauhoitusohjelma.

WiFinder: WLAN-verkkojen havainnointiin.

Camera Magic: Lisää vakiokameraan sarjakuvaukset ja ajastimen. Lisäksi sarjakuvauksessa saa määriteltyä miten monta kuvaa haluaa ottaa millä aikavälillä.

Mixzing: Hyvä musiikkisoitin.

aDyno: Kiihdytysmittari.

handyCalc: Monipuolinen laskin.

QuickPedia: Wikipedia mobiilimuodossa

Speaking Pad: Puhesyntetisaattori

Google Earth: Google Earth puhelimessa.

Meebo: Pikaviestinohjelma AIM, MSN, Yahoo, MySpace IM, Google Talk, Jabber ja ICQ -verkkoihin. Mahdollista myös historian tallentaminen meebo.com-tilille.

Tallybee: Laskee toistoja napautuksina ruudulla, esim punnerruksia, silmukoita kutoessa tms.

WeatherBug: Vaihtoehtoinen säätila-sovellus. Näyttää lämpötilan notifications barissa.

Ticker: Kirjoita teksti, joka rullaa näytöllä.

Cherry Rplayer: Nettiradiosovellus.

Solitaire: Pasianssi-kokoelma, sisältäen normaalin ja Spider, Freecell, Forty Thieves -pelimuodot.

NetHack ja NetHack Slash’EM: NetHack.

Slimeball Speedway Lite: Ylöspäin skrollaava peli, jossa kontroilloidaan palloa pitkin tietä ja väistellään mm. mummoja.

Tangram Lite: Pähkäile, miten luot suuren palikan useiden pienien palikoiden avulla.

Tapmaster: Reaktiopeli, jossa naputellaan näytöllä olevia nappeja. Peli nopeutuu 60 pisteeseen saakka.

Graviturn ja Extended: Liikuta pallo pois näytöltä kääntelemällä puhelinta ja pidä vihreät pallot samalla ruudulla. Kentät luodaan satunnaisesti, joten uudelleen pelattavuusarvo on suuri.

Totemo Lite: Pähkinäpeli, jossa valitaan sinisiä palloja loogisessa järjestyksessä.

ThrottleCopter: Lennätä helikopteri pitkin tunnelia esteitä väistäen.

i Math Whiz: Matematiikantaitoja testaava peli, jossa ratkaistaan yksinkertaisia matemaattisia yhtälöitä.

Chrome 5 on pätevä vaihtoehtoselain

Sen jälkeen, kun olin Firefox 4 Beta 1:stä testannut, ei paluuta enää ollut Firefox 3.6:n ”hitauteen”. En ollut aikaisemmin vuonna 2008 Windowsille ja vuoden 2010 toukokuussa viimein myös Linuxille ja Mac OS X:lle julkaistua Googlen Chrome-selainta testannut, mutta koska kaikki olivat sen nopeutta kehuneet, oli aika testata pitikö se paikkansa. Nyt vajaan kuukauden käytön jälkeen aika hyvältä vaikuttaa, vaikka aivan Firefoxin korvaajaksi ei mielestäni Chromesta vielä ole. Tietenkin Mac OS X:llä pitäisi käyttää Safaria, mutta maksulliset lisäosat ja niiden takana olevat tutut toiminnot, eivät oikein lämmittäneet.

Chrome on toiminnoiltaan lähellä Firefoxia ja Safaria, eikä ihme, sillä siinä on käytetty muun muassa Safarin taustalta löytyvää WebKit-moottoria ja ominaisuuksia on omaksuttu molemmista selaimista. Myös ainakin Firefox on toteuttamassa 4-sarjaan Chromessa olevia ominaisuuksia, joten tulevaisuudessa eri selainten erot pienenevät ja valinta on makukysymys. Google Chromea kehitetään avoimen lähdekoodin Chromium-projektissa ja Chromesta onkin saatavilla Googlen brändätty Chrome ja toiminnoiltaan sitä vastaava Chromium, josta puuttuu brändäyksen lisäksi automaattiset päivitykset. Chromiumin voi esimerkiksi kääntää OS X:lle lähdekoodeista tai liittyä Early Access Release -kanaville, joiden kautta saa vakaan, beta tai kehitysversion selaimesta.

Muiden selainten tapaan myös Chromen toimintaa voi ja lähes pitää laajentaa lisäosilla, ja monet Firefoxista tutut lisäosat ovatkin saatavilla toteutettuina myös Chromelle, joten selaimen vaihto on helpompaa. Kirjoitushetkellä yleisistä lisäosista on asennettuna AdBlock,Delicious Bookmarks ja Helvetireader 2 ja web-kehityksen avuksi Firebug Lite ja Web Developer Tools. Yksi puute Chromessa lisäosien suhteen on tuki Suomen kielen oikoluvulle, mutta selain ei tue Linuxissa ja OS X:ssä yleisesti käytettyä oikolukurajapintaa, johon oikoluvun voisi liittää. Vastaavasti Safari kyllä tukisi oikolukua, mutta on muuten puutteellinen.

Vaihto Firefoxista Chromeen ei ollut suuri hyppäys, mutta ei aivan selvä asia, sillä kirjainmerkkien osalta jouduin opettelemaan uuden tavan surffata, koska kirjainmerkkisivupalkkia ei ole. Chromen osoitepalkin hakutoiminta toimii suhteellisen kätevästi, vaikka usein käytettyjen linkkien napsuttelu on hankalampaa, kun selain ei haluttua asiaa välttämättä löydä. Samalla tuli myös hieman siivottua kirjainmerkkihelvettiä, jossa oli ja on edelleen runsaasti turhia linkkejä tallessa.

Toimivuudeltaan Chrome tuntuu olevan aika samalla tasolla kuin Firefox ja nopeudeltaan mutu-asteikolla samaa kuin Firefoxin tuleva 4-sarja (Betaan verrattuna). Ajottaisia hyytymisiä ja kaatumisia on tullut eteen ja ei se ”yksi välilehti, yksi prosessi ja kaatuminen rajoittuu” -periaate tunnu oikein toimivan, sillä jos yksi välilehti jumittaa esim. latauksessa, jumittaa koko selain ja useamman kerran on koko selain kipannut yhden välilehden jumittamisen yhteydessä. Lisäksi PDF:n näyttämisessä selaimen sisällä on ollut ongelmia ja töissä on tullut todettua ongelmia Java EE -sovellusten ja RichFaces-komponenttien osalta. Näköjään se mitä selaimen ja JavaScriptin nopeudessa voitetaan, se toimivuudessa ja vakaudessa hävitään. Lisäksi Chromen versionumerointi on harhaanjohtavaa ja yleisistä käytännöistä poikkeavaa.

Googlen Chrome on muutaman vuoden aikana kehittynyt uudesta tulokkaasta nopeaksi vaihtoehtoselaimeksi, mutta jolla on vielä matkaa statuksensa vahvistaneiden Safarin ja Firefoxin tasolle. Kokonaisuutena Chrome 5 on ihan positiivinen selain, mutta ei mitenkään erikoinen, etenkin kun Firefoxin 4 -sarja vaikuttaa erittäin lupaavalta. Chrome toimii hyvin päivittäisessä käytössä, mutta lisänä tarvitaan joku ”tuettu” selain, jolla mahdolliset ongelmakohdat voi ohittaa. Se ei sinällään ole ongelma, mutta ikävä sivuseikka.

VoikkoSpellService tuo Suomen kielen oikoluvun OS X:lle

Oikoluku on kiva asia ja vielä kivempaa on, jos se olisi aina saatavilla ja kaikissa ohjelmissa, joissa tekstin kanssa joudutaan työskentelemään. Englannin ja useiden muiden ulkomaisten kielien osalta asia näin usein onkin, mutta Suomen kielen oikoluvun kanssa on usein hieman hankalampaa. Onneksi meillä kuitenkin on Voikko, joka tarjoaa sitä hyödyntävien mozvoikko, ooovoikko ja osxspell-palikoiden avulla oikolukua myös suomelle.

OS X:lle Suomen kielisen oikoluvun saattaminen useisiin ohjelmiin on teoriassa yksinkertaista osxpell-projektin tarjoaman VoikkoSpellService-järjestelmäkomponentin kautta, mutta käytännössä asia on hieman monimutkainen. Virallisin versio komponentista on Lauri Nurmen OS X 10.4:lle paketoima PPC-alustalle käännettyjä kirjastoja käyttävä versio, joka saamieni tietojen mukaan toimii OS X 10.6:ssa hieman heikosti Rosettan kautta. Joitain epävirallisia versiotakin olen nähnyt, mutta en niihin linkkiä enää löytänyt. Suoraan sanottua VoikkoSpellServicellä ei ole tukea OS X 10.6 Snow Leopardissa.

Oli siis aika tehdä tuolle asialle jotain, joten pienen tutkailun, Nurmen pätsien lisäämisen, Applen ohjeiden seuraamisen, Soikko-palikan määritteiden vilkuilun ja kiroilun jälkeen, sain VoikkoSpellServicen toimimaan OS X 10.6 Snow Leopardilla. Muutoksina koodin osalta korjasin pari varoitusta antavaa kohtaa ja puuttuvan parametrin. Käänsin komponentin käyttäen 32-bittisiä Voikon ja Suomi-malagan -kirjastoja, joten sen pitäisi toimia myös 10.5 Leopardilla. Erona mozvoikon libvoikon kääntöön, täytyi libvoikolle antaa käännösvaiheessa ”-Wl,-install_name,@executable_path/libvoikko.1.dylib” LDFLAGS-määritteet, jotta dynaaminen kirjasto löydetään.

VoikkoSpellService-komponentti DMG-pakettiin kiedottuna (VoikkoSpellService_2010-07.dmg) ja lisätietoa löytyy Voikolle tekemältäni sivulta omana kohtanaan.

Palikka on kokeellinen versio ja kokeilu omalla vastuulla, kuten aina. Näytti toimivan ainakin Snow Leopardilla, kunhan OS X:n järjestelmänoikolukuun sai lisättyä vaihtoehdoksi suomen. Kyseisen vaihtoehdon saamisessa oli hieman ongelmia, sillä välillä kieli löytyi ja välillä ei. Consolekaan ei tuohon auttanut, mutta kun kielivaihtoehto löytyi, eli VoikkoSpellService oli rekisteröity palveluksi, pystyi Consolesta toteamaan muun muassa palikan kaatumisen.

VoikkoSpellServicen avulla Voikon tarjoama oikoluku toimii ainakin TextEditissä, Safarissa, TextWranglerissa ja TexShopissa. Tosin näköjään osa ohjelmista, kuten TextWrangler, eivät osaa ehdottaa korjausta, mutta muuten kyllä käskettäessä oikolukevat. Chromella näytti olevan jotain hieman isompia ongelmia oikoluvun kanssa OS X:llä. Kieliopintarkistus ei toimi, sillä sen mahdollistavan metodin kanssa käännettynä ja Check grammar -vaihtoehto ruksitettuna Console täyttyy ”[NSCFString rangeValue]: unrecognized selector sent to instance 0x1404e0” ja ”[NSKeyedArchiver dealloc]: warning: NSKeyedArchiver deallocated without having had -finishEncoding called on it.” -virheistä, jolloin ei oikolukukaan toimi.

Olisi pitänyt selkeästi perehtyä osxspelliin jo aikaisemmin, sillä oikoluku TexShopissa (vaikka käytinkin Texmakeria) olisi ollut kyllä helpottava lisä lopputyötä tehdessä. No, kävi se oikolukeminen manuaalisestikin ja copy-pasten avulla kierrättäen OO.orgin kautta.

Lisäys:
VoikkoSpellServicen näkymiseen oikoluvun vaihtoehdoissa sen jälkeen, ku se on sieltä hävinnyt, auttaa Library/Cache -hakemistossa olevan ”com.apple.nsservicescache.plist” -tiedoston poistaminen. Muita kikkoja on käyttää ohjelmallisesti NSUpdateDynamicServices() -metodia, käynnistää Applen pasteboard server uudestaan (/System/Library/CoreServices/pbs) ja uudestaanrekisteröidä servicet komennolla

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -all local,system, user

.

Eclipse 3.6 Helioksen myötä kehitysympäristö on taas parempi

Eclipsestä julkaistiin jokin aika sitten 3.6-versio eli tällä kertaa tuttavallisemmin Helios, joka jälleen tekee kehitysympäristöstä asteen paremman. Suuria muutoksia ei hyväksi havaittuun kaavaan ole tehty, vaan uudistuksina löytyy pieniä, mutta hyödyllisiä lisäominaisuuksia. Tarkemman listauksen uusista ominaisuuksista löytää Helioksen About-sivulta What’s New -osiosta (ja netistä: JDT ja platform), mutta tässä muutamia poimintoja.

  • Lisäosien asennus Eclipse Marketplacesta: Tarvittavien lisäosien asennus on nyt helpompaa Eclipsen sisältä löytyvän Marketplacen kautta. Hakusana ja pari kliksautusta, entisen update siten syöttelyn asemasta. Harmillisesti kaikki laajennukset eivät uutta tapaa vielä tue.
  • Web Tools Project sai tuen Java EE 6 -teknologioille kuten Servlet 3.0, JSF 2.0, JPA 2.0 ja EJB 3.1. (Jos niitä vielä pystyisi oikeasti toteutuksessä käyttämäänkin)
  • Formatoinnin kontrollointi: Window > Preferences > Java > Code Style > Formatter > On/Off Tags -kohdasta voi nyt kytkeä päälle annotaation, jolla voi disabloida koodin formatoinnin haluamalleen koodiblokille
  • ”rawtypes” -merkki @SuppressWarnings annotaatiolle: Kääntäjä tekee eron ilmoitettujen varoitusten osalta raw typen käytön ja geneeristen unchecked -operaatioiden osalta.
  • Export All: Formatterin asetuksista voi nyt viedä kaikki käyttäjän määrittelemä asetukset, ja ne voidaan tuoda kerralla. Kätevää, kun Eclipse tulee muutamia kertoja vuodessa asennettua uudestaan.
  • Pakettien nimien lyhenteet: Java-näkymissä voi lyhentää kustomoitavilla säännöillä pakettien nimet. esim. org.eclipse.ui={UI}, org.eclipse.ui.texteditor={T} ja org.eclipse.ui.internal.texteditor=[iT]. (Preferences > Java > Appearance > Abbreviate package names)
  • Lokaalin historian tyhjennyksen voi disabloida: Lokaalin historian kokoa siivotaan aina Eclipsen sammutuksen yhteydessä, mutta sen voi nyt disabloida. Tällöin historian koko kasvaa rajattomasti. (Preferences > General > Workspace > Local History)

Uusi Eclipse on nyt ollut muutaman viikon käytössä ja ihan toimivalta se edelleen vaikuttaa. Kenties hieman myös nopeampi kuin edellinen, ta sitten vain uusi asennus luo hyvää mielikuvaa. Asennuksessa tosin taas meni aikaa säätäessä kaikki kuten aikaisemmin ja Marketplace auttoi hieman lisäosien suhteen, mutta turhan vähän. Samalla vaihdoin Subclipsen käyttöön, joten Maven2-projekien tuonti versionhallinnasta oli kätevämpää. Laitoinpa samalla myös Atlassian Connectorit, jotka vaikuttavat ihan käteviltä. JBossin työkaluista piti tosin asentaa Nightly Build -versiot.

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.

Voikko 3.0 ja mozvoikko-laajennus

Voikosta julkaistiin toukokuun lopussa 3.0 versio, jossa ei varsinaisesti ole mozvoikon käyttäjälle näkyviä muutoksia, mutta taustalla on tapahtunut muun muassa kehitystä kohti muiden kuin suomen kielen tukemista. Ainakin saamen kielen oikoluku olisi jollain tasolla jo toimiva HFST-backendin kautta samoin kuin suomen kielen Omorfi-morfologia ja uuden kokeellisen Lttoolbox-backendin kautta useampiakin kieliä.

Mutta pysytään vielä kuitenkin vakaasti suomessa, ja koska virallinen mozvoikko-laajennus kulkee jälkijunassa Voikon kehitykseen verrattuna, käänsin mozvoikosta OS X:lle uuden version Voikon 3.0:sta vasten käyttämällä sekä perinteistä Suomi-malaga 1.6:sta että HFST-backendia. Hyvinhän ne näyttivät toimivan ja nyt vielä ilman libiconvia. Epäviralliset versiot sekä OS X:lle että Windowsille löytyvät omalta sivultaan. Pitää vielä ehtiessä kääntää Windows-versio Visual Studiolla, jolloin se olisi ”oikein” käännetty. Suomi-malaga ja Omorfi/HFST -morfologioita tukeva versio on vain OS X:lle ja HFST:n saa käyttöön VOIKKO_DICTIONARY=hfst ympäristömuuttujalla.

PPC-version osalta Voikon kääntäminen iBookilla onnistui kyllä ihan jees, mutta kun mozvoikkoa yrittää ristiinkääntää Intel-koneella, jää homma siihen. Virheilmoitus on lyhyesti ”darwin.o, unsupported encoding in FDE”, joka ei paljon auta. Pitäisi varmaan yrittää vanhemmalla XCodella tuota tai jotain, kun olen kuitenkin PPC-version aikaisemmin onnistuneesti kääntänyt.

Kokeilin myös VoikkoSpellServiceä eli OS X:n oikolukukomponentin kääntämistä, mutta en vieläkään ymmärrä, miten sen saa muka toimimaan. Vaikka kaikki kääntyi XCodessa ihan hyvin, eikä Consoleen tullut mitään virheilmoituksia, ei suomea näy oikoluvun valinnoissa. Edes virallista palikkaa en saa toimimaan, mutta Soikon vastaava palikka kyllä toimii. Ei voi ymmärtää.