VoikkoSpellService 1.0.2 tuo oikolukuun oman sanakirjan

Suomen kielen oikoluku – järjestelmäkomponentista Mac OS X:lle, eli VoikkoSpellServicestä, on tehty testikäyttöön versio 1.0.2 (2,4 MB), joka tuo mukanaan uutena ominaisuutena oman sanakirjan käyttämisen. Palikka osaa ottaa huomioon käyttäjän sanakirjaan oppimat sanat, eikä merkkaa niitä virheellisiksi. Varsinainen muutos komponenttiin oli pieni, sillä Cocoan NSSpellServer hoitaa kaiken varsinaisen työn sanojen lisäämisen ja poistamisen osalta, ja VoikkoSpellService vain tarkistaa rajapinnan kautta löytyykö sana.

Komponentille on nyt myös oma VoikkoSpellService – OS X:n oikolukukomponentti -sivu, josta löytyy lähes kaikki oleellinen tieto oikolupalikasta kuten asennuspaketti, muutoshistoria, kehitykseen liittyvät asiat ja muutamia ohjeita.

Palikan toimintaan liittymättöminä muutoksia VoikkoSpellServicen lähdekoodi, eli osxspell-projekti, eriytettiin Voikko-projektin SVN:stä SourceForgesta ja löytyy nyt omasta Git-versiohallinnastaan. Tämä helpottaa palikan avoimen lähdekoodin yhteisöllistä kehitystä, vaikka eipä viime aikoina muita kehittäjiä ole ollut. Muutos tekee lisäksi eron varsinaisen oikoluvun kehittämisen ja sitä hyödyntävien sovellusten välille.

Seuraavana VoikkoSpellServicen kehityslistassa on muun muassa kieliopin tarkastamisen toteuttaminen ja puoliksi kirjoitettujen sanojen ehdottaminenkin olisi oikolukurajapinnan kautta mahdollista. Myös 64-bittisen version toimintaa pitäisi testata, sillä siinä ilmeni ongelmia Mail.appin kanssa. Ja lisää tekemistä tulee, kunhan Voikko kehittyy tukemaan useampaa oikolukumoottoria ja kieliä. Uusille ominaisuuksille ei varsinaisesti ole aikataulua, vaan se on kunhan ehtii.

Xbox 360 Wireless Gaming Receiver yhdistää tietokoneen ja peliohjaimen

Pelaan yleensä pelini konsoleilla eli joko Wiillä, Xbox 360:llä tai PS3:lla, mutta eräitä pelejä ei valitettavasti joko saa konsoleille, tai ne ovat alennusmyynnissä vain PC:lle. Yksi tällainen mainio peli on Super Meat Boy, jonka sai ostettua sopuhintaan Steamin joulualennusmyynnistä. Eipä siinä mitään, mutta koska kyseessä on tasohyppely, on se parhaiten pelattavissa peliohjaimella. Ja niitähän laatikosta löytyi useampia.

Tietenkään ohjainten liittäminen tietokoneeseen ei ollut aivan yksinkertaista, sillä esimerkiksi Microsoft käyttää ohjainten ja konsolin välissä omaa poropietari-teknologiaa, joka ei ole Bluetooth-yhteensopivaa kuten PS3:ssa. Selkeästi vain keino myydä lisälaitteita kuten ”Xbox 360 Wireless Gaming Receiver for Windows” -vastaanotinta, jonka avulla langaton ohjain saadaan liitettyä tietokoneeseen. Ilmeisesti tuota lisälaitetta ei enää oikein virallisesti valmisteta, mutta se olisi Amazonissa löytynyt 33 dollarin hintaan. Mutta miksi tilata kalliilla, kun sen voi tilata DealExtremestä kolmasosahinnalla. Aikaisemmin tarjolla oli myös eri värisiä ja läpinäkyvä versio.

Valkoinen ”Xbox 360 Wireless Controller Gaming Receiver for PC”-lisäosa saapuikin viimein postitse ja pienen asennusihmettelyn jälkeen tuntuu toimivan kuten pitäisikin. Ajurit löytyvät joko mukana tulevalta CD:ltä ja Windows 7:lle Microsoftin sivuilta.Ainut ongelma oli, että Win 7 pitää erikseen opastaa käyttämään juuri tiettyä ajuria Device Managerissa näkyvälle Unidentified Device -laitteelle. Laitteen ”Properties”-valikosta valitaan ”Drive”-välilehti ja ”Update Driver”, josta kliksutellaan ”Browse my computer for driver software” > ”Let me pick from a list of device drivers on my computer” > ”Windows Common Controller for Window Class” > ”Xbox 360 Wireless Receiver for Windows Version”. Sitten vain klikataan varoituksesta ”Yes” ja ohjain on asennettu. Windows 8:ssa ajuri vastaanottimelle löytyy vastaavasti, mutta ”Xbox 360 peripherals” > ”Xbox 360 Wireless Receiver for Windows” -kohdasta.

kuvat DealExtremestä

Langaton adapteri Xbox 360 -ohjaimille toimii hyvin ja nyt voi hyödyntää laatikossa olevia ohjaimia, eikä tartte ostaa erikseen PC:lle tehtyä langallista Xbox 360 -ohjainta. Ainakin Super Meat Boy pelittää kivasti kunnollisen ohjaimen kanssa, vaikka nyt pitää opetella taas pelaamaan uudestaan. SMB:n hallinta on nyt paljon tarkempaa verrattuna näppiksellä hakkaamiseen ja sormetkaan eivät tule niin kipeäksi. Vaikka adaptarin saapuminen Kiinasta kestikin 23 päivää tilauksesta, eikä pieneen pakettiin tullut seurantakoodia, sujui tilaus muuten hyvin. Maksun tein Paypalin kautta, kun Visalla maksussa oli ostohetkellä jotain ongelmia.

Xbox 360 -ohjain on liitettävissä myös OS X:ään OsxDriver-ajurin avulla, mutta ainakaan Snow Leopardissa (10.6.6) ei ajuri suostunut asentumaan. Pitänee lähettää Consoleen tulleet virheet ajurin kehittäjälle tutkittavaksi.

Jos ei halua odottaa ja hankkia taas uutta lisälaitetta pöydän alle piilotettavaksi, niin MotionInJoyn ajureiden avulla pitäisi saada PS 3:n ohjain liitettyä Windowsiin suoraan Bluetoothin kautta ja matkimaan Xbox 360:n ohjainta. Asennusohjeet näyttivät sen vain verran typerryttäviltä, että jätin testaamatta.

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.

Macbook ja kiintolevyn ääntely

Alkaa jo hieman usko teknologiaan loppumaan, kun uusi kiintolevy jatkoi kliksutteluaan siitä mihin entinen levy jäi. Klik… klik… klik.. ja smartctl -a /dev/disk0 | grep Load_Cycle_Count arvo jatkoi vaan kasvamistaan. 22 tuntia levy käynnissä ja 814 sykliä kasvaen muutamalla per minuutti. Ei hyvä, ei todellakaan. Seagaten levyille kerrottuna raja-arvona 600 000 sykliä lähestyisi samalla tahdilla pelottavan nopeasti.

Ongelma ei kuitenkaan ole uusi ja Google tarjosikin syyksi kiintolevyn yliaggressiivisen energiasäästön, joka siis laittaa lukupäät parkkiin turhan tiheästi. Ongelma esiintyi alkuun Seagate Momentus 7200.4 GFO levyllä, joka lopulta äityi ääntelemään enemmänkin ja jumitti konetta parin sekunnin katkoin, mutta jatkui myös uuden Western Digital Scorpio Blue (WD5000BEVT) levynkin osalta ensin hitaammin, mutta kiihtyvällä tahdilla. Voi vitjat, mitä teknologiaa.

Ratkaisuna on levyn energiasäästön säätäminen vähemmän aggressiiviseksi, joka onnistuu esimerkiksi hdparm-ohjelmalla Linuxissa, mutta eihän Macille tietenkään sitä löydy. Onneksi asetusten muuttaminen onnistuu hdapm-ohjelmalla, joka on OS X:lle tehty komentorivityökalu energiasäästö (APM) tasojen asettamiseksi.

Ja kas, hdapm disk0 max -komennon jälkeen levyn kliksuttelu loppui täysin. Nyt vielä hdapm-binäärin sijoitus /usr/local/bin ja hdapm.plist -tiedoston sijoitus /Library/LaunchDaemons -hakemistoon ja ratkaisu ongelmaa oli valmis. Nyt asetus pitäisi määräytyä aina käynnistyksessä ja sen voi tarkistaa Consolesta, josta pitäisi löytyä rivi ”Setting APM level to 0xfe: Success”.

Nettikeskusteluiden perusteella ei oikein saa selvää, onko ongelma Applessa (Late 2008 Macbook) ja itse päivitetyn levyn firmwaren epäsopivuudessa vai missä, mutta tärkeintä on, että ongelma on ainakin tältä erää toivottavasti ratkaistu. Samanlaista ja äänekkäämpääkin ongelmaa Apple korjasi Mid 2009 Macbook Pro:n levyjen osalta, mutta Apple Discussions -palstan juttujen perusteella ongelma koskettaa kaikkia itse päivitettyjä levyjä, joissa ei ole sisällä Applen firmwarea ja ongelma olisi EFI:n versiossa 1.7.

Seagate Momentus -levyn osalta oli lisäksi ”ongelmana” OS X:n Sudden Motion Sensorin ja levyn G-Force Protectionin yhteistoiminta, jota uumoiltiin ongelman lähteeksi, mutta pmset -a sms 0, eli sensorin poiskytky ei naksutteluun vaikuttanut. Nyt uudessa WD:n levyssä ei omaa putoamissuojaa ole, joten sensorin voi taas kytkeä päälle.

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ää :)

Oracle SQL Developer 2.1 EA tuo kelpo uudistuksia

Oraclen tietokantojen kanssa työskentelyyn on tarjolla useita kalliita työkaluja kuten Toad, SQL Navigator, PL/SQL Developer ja Hora, mutta hinta-laatusuhteeltaan yksi on ylitse muiden: ilmainen Oracle SQL Developer. Jo aikaisemmissa versioissa ominaisuuksillaan vakuuttanut Oracle SQL Developer nousee syyskuun lopussa julkaistun 2.1 Early Adopter version myötä ominaisuuksiltaan tasolle, jossa ei juurikaan tarvitse olla häpeissään kaupallisiin tuotteisiin verrattuna.

Uusia ominaisuuksia löytyy konepellin alta, joista tässä muutamia omia huomioita:

  • PL/SQL:n yksikkötestaus
  • Paremmat mahdollisuudet koodin automaattiseen muotoiluun (kuva)
  • Virheiden visualisointi sivupalkin palikalla ja alleviivauksella, sekä selkeämmät virheilmoitukset (kuva)
  • Koodipohjat (code templates), eli kirjoitat määritellyn lyhenteen ja ohjelma täydentää loput (kuva)
  • Pikakomentojen määrittäminen haluamille näppäimille, joten nyt esim. suomalaisellakin näppäimistöllä onnistuu koodin kommentointi (kuva)
  • PL/SQL -paketit aukeavat nyt suoraan muokkaus-tilaan, eivätkä kahta kertaa (toinen luku- ja toinen muokkaus -tilaan)
  • Ohjelman tuntuma on parantunut ja se myös vaikuttaa nopeammalta

Oracle SQL Developer on alusta alkaen ollut kelpo työväline tietokantojen kanssa askarteluun ja uusien versioiden myötä ohjelmaan on lisätty kiitettävällä tahdilla kaivattuja ominaisuuksia. Äskettäin tein hieman tutkailuja kaupallisten Oracle-työkalujen tarjoamista ominaisuuksista, mutta SQL Developerin 2.1 -version myötä tarve tuhansien dollarien sijoittamiseen esimerkiksi Toadiin tuntuu yhä vain vähäisemmältä.

Web-koodausta Espressolla ja sokerilla

Web-sivuja voi rakennella monilla ohjelmilla, mutta helpoiten se onnistuu, kun apuna on työkalu, joka oikeasti toimii. Mac OS X:ssä Eclipse-pohjainen Aptana on mitä Eclipse yleensäkin on, eli kankea, raskas ja ei oikein ole Mac-maailmaan yhteensopiva. Onneksi muitakin vaihtoehtoja on, mutta ilmaisohjelmien tarjonnan suhteen hieman nihkeästi. Kaupallisella puolella vastaavasti on muutamia hyviä vaihtoehtoja kuten Panicin Coda ja MacRabbitin Espresso.

Espresso on Web-koodaukseen tarkoitettu editori, joka tarjoaa hyvät teksti- ja CSS-editorit ja niiden ympärille rakennetun toimivan kokonaisuuden. Tekstieditorista löytyy tagien ehdotus ja täydennys ja blokkeja voi piilottaa. Koodausta voi helpottaa koodipätkillä eli snippeteillä kuten TextMate tyyliset tekstieditori-toiminnoilla. Yksi kätevä ominaisuus on sivun toteutuksen seuraaminen reaaliajassa, sillä esikatselun saa auki omaan ikkunaan ja se päivittyy sitä mukaa, kun koodiin tehdään muutoksia. Ohjelmaa avatessa avautuvat myös edellisellä kerralla auki olleet ikkunat, jolloin työympäristö on nopeasti käyttövalmiina.

Espresso

Espresso tukee vakiona HTML:ää, CSS:ää, XML:ää, JavaScriptiä ja PHP:tä, mutta sokerilla (Sugar) voi viritellä ohjelmaan tuen uusille kielille kuten jQuerylle, Rubylle ja Djangolle. Sivuston julkaiseminen on mahdollistettu käyttäen FTP:tä, SFTP:tä, FTP/SSL:ää tai Amazon S3:sta. Lompakkoa ohjelma keventää noin 60 euron verran.

Osallistuin alkutalvesta MacHeistiin, jossa jaettiin ohjelmia ilmaiseksi ja lisäksi ostin lopulta edullisen MacHeist Bundlen, jossa mukana tuli muun muassa World Of Goo, Hit List ja Espresso. Olen aikaisemmin tyytynyt pienet Web-sivujen rakennustarpeet toteuttamaan joko TextWranglerilla tai isomman muutoksen tapauksessa Aptanalla, mutta näihin verrattuna Espresso on toisesta maailmasta, paremmasta sellaisesta. Käytännössä Espresso on vastaava ja osittain parempi kuin kuin kehuttu Coda, jota myös nopeasti testailin.