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.

Mplayer OSX Extended ei suostu toistamaan videoita

Mac OS X:ssä asiat yleensä vain toimivat, mutta välillä käyttäjä saa myös asiat hajoamaan. Päivitin taannoin macportsilla asennettuja ohjelmistoja ja kirjastoja, jonka jälkeen Mplayer OS X Extendedillä oli suuria ongelmia toistaa yhtäkään videota. Virheilmoituskin oli taas todella selkeä: ”Playback Error: Abnormal playback termination. Check log file for more information.”

Mutta mikä on rikki, on myös yleensä mahdollista korjata. Hieman asiaa tutkien apu löytyi MPlayer OSX Extendedin foorumilta, jossa neuvottiin seuraavat kolme korjausehdotusta:

  1. Poistaa ohjelman plist-tiedosto (~/Library/Preferences/org.mplayerosx.MplayerOSX.plist)
  2. Tyhjentää käyttäjän font cache (~/.fontconfig/)
  3. Tyhjentää järjestelmän font cache (/opt/local/var/cache/fontconfig/)

Ongelman pääsyy oli macportsista asennettu uusi fontconfig, joka sotki asiat. Font cachen tyhjentämisen jälkeen Mplayer OS X Extended toimii melkein normaalisti, mutta samaa virheilmoitusta näkyy vielä ajoittain. Toivottavasti ohjelman kehittäjä löytää ongelmaan ratkaisun, kuten foorumilla kirjoittaa.

Selkeästi ei pitäisi päivittää toimivaa järjestelmää :)

Mac OS X ja dynaamisten kirjastojen käyttäminen

Olen viime viikkojen aikana yrittänyt saada Firefoxin mozvoikko-lisäosaa toimimaan asiallisesti Mac OS X:ssä ja teoriassa lisäosa toimiikin. Ainoana negatiivisena puolena on, että se vaatii kirjastojen sijoittamisen hakemistoon, jonne ne kääntäessä asennettiin, eli esimerkiksi /usr/local/lib -hakemistoon. Linuxissa ja Windowsissa lisäosa toimii, kunhan vaadittavat kirjastot löytyvät lisäosan sisään leivottuina.

Mac OS X:ssä dynaamiset kirjastot toimivat hieman eri lailla ja haluavat täydellisen polun asennushakemistoonsa. Asiasta löytyy blogikirjoitus ja selventävä ohje, jotka kertovat miten asioiden laita on. Kirjoituksissa neuvotaan toimivien dynaamisten kirjastojen luontiin käyttämällä install_name_toolia ja LDFLAGS-muuttujien käytöllä.

Hieman asian ympärillä iteroiden ei kirjastojen kääntäminen toivotulla lopputuloksella kuitenkaan onnistunut. Vaikka LDFLAGS-muuttujiin laittoi ehdotetun -Wl,-dynamic,-install_name -Wl,@executable_path/kirjasto.dylib -loitsun, eivät lisäosan vaatimat gettext, iconv, glib-2, malaga, suomi-malaga ja voikko -kirjastot suostuneet toimimaan lisäosan sisältä. Gettextin libintl -kirjastoa varten joutui LDFLAGS-muuttujat lisäämään suoraan Makefileen, mutta muuten loitsiminen onnistui configuren parametreina.

En tiedä onko vika kirjoittajassa, vai missä, mutta ei voi sanoa, että asiaa olisi turhan helpoksi tehty. Joku jippo tässä täytyy olla, kun kirjastot kuitenkin /usr/local/lib -hakemistosta toimivat. Ehkä tämäkin asia joskus selkenee.

Mozvoikko-lisäosa PowerPC Mac OS X:lle

Sain viimeinkin iBookkini käyttöön hieman pidemmäksi aikaa ja ehdin kokeilla Firefoxin suomen kielen oikoluku -lisäosan eli mozvoikon kasaamista myös PowerPC-alustalle. Hyvinhän se onnistui ja tuntui toimivan Mac OS X 10.4 Tigerissa.

Muutamia muutoksia piti mozvoikkoon tehdä uuden alustan lisäämisen suhteen ja hieman konfiguraation jälkeen viritellä käsin libvoikon config.h-tiedostoa, mutta yleisesti ottaen aika sulavasti käännös sujui. Muutoksista löytyy kaksi vaihtoehtoista muutostiedostoa, mozvoikko-r2711_osx-ppc.diff_a.txt ja mozvoikko-r2711_osx-ppc_b.diff.txt, jotka molemmat tekevät käytännössä saman asian.

Yhdistelin samalla hieman mozvoikon kasaamiseen liittyviä muistiinpanojani sisältämään sekä Intel-alustalle että PowerPC-alustalle tapahtuvan käännöksen. Varsinaisen käännöksen eli Firefoxin ja lisäosan kääntämisen tein Intel-alustalla.

Lopputuloksena oli siis Suomen kielen oikoluvun sisältävä mozvoikko-1.0-Darwin_ppc-gcc3.xpi -laajennus, joka asentui sopuisasti Firefoxiin ja näyttäisi toimivan iBookissani Mac OS X 10.4 Tigerin kanssa. Lisäosaa voi kokeilla omalla vastuulla.

Asiasta lisää mozvoikko-alasivulla.

LaTeX-dokumenttien kirjoittaminen ja Mac OS X

Dokumenttien kirjoittaminen OpenOffice.orgilla tai Microsoft Wordilla on loppupeleissä suhteellisen ärsyttävää näpertämistä tyylien, taulukoiden ja kuvien sijainnin kanssa ja usein dokumentti kuitenkin sekoaa. Hieman helpommalla pääsee, kun viitsii opetella LaTeXia, joka on alun oppimiskynnyksen jälkeen suhteellisen helppoa käytettäessä graafisia työkaluja, vaikka ei tällöinkään aivan tuskatonta.

LaTeXin käyttöön Mac OS X:ssä pääsee parhaiten alkuun lukemalla tarvittavista ohjelmista ja saatavilla olevista editoreista Tex on Mac OS X -sivustolta, joka ei tosin tarjoa kovin selkeää lähestymistapaa aiheeseen. Tässä siis muutamia asioita ja suuntaviivoja LaTeXin käyttöön.

TeX ja Mac OS X
Aivan ensimmäiseksi tarvitaan TeX-ladontajärjestelmän, jonka käyttämiseksi LaTeX tarjoaa makropaketin. TeXin asentaminen onnistuu yksinkertaisimmin MacTeX-paketilla, josta löytyy kaikki tarpeellinen ja paljon muuta. Paketilla on myös kokoa, 1.2 Gt, joten latauksen ajan voi soitella muutaman keikan Guitar Hero World Tourissa. Onneksi perustarpeisiin riittää vaihtoehtoiset paketit -sivulta löytyvä huomattavasti pienempi BasicTeX-2008-paketti (52 Mt). Lisäksi huomasin tarpeelliseksi asentaa myös MacTeX-Additions -paketin (144 Mt).

Peruspakettien lisäksi kannattaa asentaa myös TeX Live Utility, joka on graafinen liittymä TeX Live 2008 -työkaluun. Tex Live Utilityn avulla voi hallita ja asentaa tarvittavia TeX-paketteja. Itse huomasin tarvitsevani subfigure ja paralist -paketteja, joita Diplomityö-pohja kaipasi.

LaTex-editorit Mac OS X:ssä
Graafisten editoreiden osalta löytyy muutamia eri vaihtoehtoja. Tässä kaksi, joita testasin.

Texmaker on enemmän graafinen editori tex-dokumenttien näyttämiseen, kuin varsinaisesti tekstieditori, jossa myös muotoilut näkyisivät. Lähestymistapa on hieman tekninen, mutta tarvittavat ”tagit” löytyvät valikosta. Pienen alkujyrkkyyden jälkeen dokumenttien kirjoittaminen ja muotoilu sujuu suhteellisen vaivattomasti. Texmaker on avoimen lähdekoodin (GPL) ohjelma ja on saatavilla Linux/Unix, Mac OS X ja Windows -käyttöjärjestelmille.

Texmakerissa tekstin oikolukuun ei ole juuri panostettu ja vaikka suomenkielinen sanakirja (hunspell) onkin mahdollista asentaa, en saanut toimimaan. Eli jos tekstin haluaa oikolukea, pitää se suorittaa jossain muualla.

texmaker
texmaker

LyX tarjoaa vastaavasti hieman enemmän tekstinkäsittelymäisen käyttöliittymän LaTeXilla kirjoittamiseen, mutta on mielestäni silti hieman hankalammin lähestyttävä kuin Texmaker. LyX haluaa lisäksi käyttää omaa lyx-tiedostoaa, joten TeX-dokumentit pitää viedä erikseen. LyX on avoimen lähdekoodin (GPL) sovellus ja saatavilla Linux/Unix, Windows ja Mac OS X -käyttöjärjestelmille.

LyX osaa oikolukea ispell/aspell/hspell:n avustuksella, jonka asentaminen onnistuu Macportsin kautta myös OS X:lle (sudo port install aspell aspell-dict-fi), mutta joko en osannut sitä asentaa oikein, tai sitten LyXin oikoluku toimi vain muuten heikosti.

texmaker
texmaker

TeXShop on yksinkertainen, mutta toimiva LaTeX-editori. TeXShop osaa hyödyntää Voikon Mac OS X -järjestelmän oikolukukomponenttia.

texshop

Myös TextWrangleriin on saatavilla LaTexin kanssa työskentelyä helpottavat Pluginit (BBEdit extensions for teTeX), mutta totesin niiden olevan hieman hankalat. Lisäksi skripti syötti ulostulevan tekstinsä avoinna olevaan terminaaliin, joka ei ole todellaan kiva asia.

Kaikilla ohjelmilla onnistuu kirjoittaminen, tekstin vieminen haluttuun muotoon kuten PDF:ksi tai HTML:ksi ja tarvittavat muotoilut löytyvät valikoista. Se, mikä on sitten hyvä ohjelma, riippuu ihan omasta mieltymyksestä.

Miten LaTeXilla sitten kirjoitetaan?
LaTeXin käyttöön löytyy Tobias Oetikerin kirjoittama ”The Not So Short Introduction to LATEX 2ε” -teos, jonka Timo Hellgren on sovittanut suomeksi ”Pitkänpuoleinen johdanto LaTeXinkäyttöön: Eli opi LATEX 2ε 133 minuutissa”. (pdf)

Mozvoikko 1.0 ja Mac OS X

Firefoxin Suomen kielen oikoluku -lisäosasta eli mozvoikosta julkaistiin jokin aika sitten uusi versio, samoin kuin lisäosan käyttämistä libvoikosta ja suomi-malagasta. Oli siis aika päivittää lisäosan Mac OS X versio käyttämään uusia kirjastoja.

Uutta versiota kääntäessä huomasin, että olin epähuomiossa nimennyt mozvoikon Makefilessä tarvittavien kirjastojen nimet hieman huonosti, seuraamatta yleistä käytäntöä jättää tarkka versionumero pois. Eli turha määritellä esim. kirjastoa libvoikko.1.7.0.dylib, kun asian voi ilmaista libvoikko.1.dylib. Sama muutos piti tehdä myös src/mozVoikkoUtils.cpp -tiedostoon. Muutoksista löytyy diff-tiedosto.

Tein Mozvoikon käännöstä lyhyet muistiinpanot, joista näkyy käytettyjen kirjastojen versiot. Nyt koko toimenpide meni hieman yksinkertaisemmin kuin viime kerralla.

Lopputuloksena oli Suomen kielen oikoluvun sisältävä mozvoikko-1.0.2009.07.22-Darwin_x86-gcc3.xpi -laajennustiedosto, joka asentui sopuisasti Firefoxiin ja näyttäisi toimivan. Lisäosaa voi kokeilla omalla vastuulla.

Tein samalla asiasta oman alasivun, josta jatkossa löytyy kootusti asiaan liittyvät tieto.

Java-kehitys ja OS X: JAR-paketin leipominen

JAR-paketin voi luoda Mac OS X:ssä joko perinteisesti tai helposti. Helpolla tavalla edettäessä saadaan määriteltyä muutamia OS X -spesifisiä ominaisuuksia, kun JAR-paketista luodaan niin sanottu app-sovellus. App:n rakentaminen onnistuu Xcode Developer Toolsin mukana tulevalla Jar Bundlerilla (/Developer/Applications/Utilities/), josta vain klikataan sopivat vaihtoehdot.

Sovelluksen otsikon saaminen OS X:n menupalkkiin onnistuu antamalla Properties-välilehdeltä Bundle Nameksi haluttu teksti. Komentoriviltä ajettaessa otsikon asettaminen onnistuu java -Xdock:name="Foo Bar" -jar foobar.jar -komennolla.

Kuvakkeen luominen Applen icns-formaattiin onnistuu Xcoden Icon Composer -työkalulla (/Developer/Applications/Utilities/), joka voidaan sitten liittää Jar Bundlerissa sovelluksen kuvakkeeksi.

Perinteinen JAR-paketointi
Perinteinen Jar-paketointi menee luomalla Manifest.txt, jossa määritellään sovelluksen Main-luokka. Manifestissa pitää olla lisäksi yksi tyhjä rivi tiedoston lopussa.

Main-Class: foo.bar.logic.Lorem

Manifest.txt lisätään JAR-pakettiin komennolla jar cfm foobar.jar Manifest.txt foo/bar/, jolloin Jar luo pakettiin oikeanlaisen Manifest-tiedoston.

Levykuvan kasaaminen
Jos tehdyn App:n lisäksi haluaa jakaa (Mac OS X) käyttäjille muitakin tiedostoja kuten Readme-tiedoston, voi Disk Utilityn avulla kietaista kokonaisuuden levykuvaksi eli Disk Imageksi (.dmg). Kerää haluamasi tiedostot omaan kansioon ja valitse Disk Utilitystä File -> New -> Disk Image From Folder ja valitse kansio, johon sovelluksen tiedostot keräsit. Nyt käyttäjän täytyy ennen sovelluksen käyttämistä avata tehty paketti Finderiin.