Tämäkin viesti voidaan lukea Ruotsissa

”Ruotsin valtion radiotiedustelu FRA alkoi viime yönä seurata ja avata kaikkea valtakunnanrajan ylittävää puhelu- ja sähköpostiliikennettä. Suomen suojelupoliisin arvion mukaan valtaosa suomalaisten ulkomaille suuntautuvasta puhelin- ja internet-liikenteestä kulkee Ruotsin kautta, joten ruotsalaisviranomaiset pääsevät halutessaan kuuntelemaan sitä. Ruotsalaiset voivat myös vaihtaa tietoja ulkomaisten tiedustelupalvelujen kanssa, joten suomalaisten viestintätietoja voi päätyä ulkomaisten tiedustelupalveluiden haltuun. ”

”Suomen viestintäviraston verkkojen ja turvallisuusalueen johtaja Timo Lehtimäki arvioi, että entistä suurempi osa suomalaisesta tietoliikenteestä on viime yön jälkeen ulkomaisen tiedustelun kohteena, sillä suuret runkoverkot menevät Ruotsin kautta.”

”Viestintäviraston arvion mukaan suomalaiset salaavat viestejään vielä suhteellisen harvoin.”

Helsingin Sanomat

Eli kannattaa lisätä selaimen osoitepalkissa HTTP:n perään S niin kuin salaus sellaisissa palveluissa, joissa se on mahdollista. Sähköposteissa viestit voi salata tietoliikenteen lisäksi myös viestin osalta käyttämällä esimerkiksi Thunderbirdissä Enigmail-lisäosaa. Tällöinkin tosin vuodetaan tunnistetiedot.

Tietenkään kaikki viestintä ei ole tärkeysasteeltaan salauksen arvoista, ja ovathan Britannian ja Yhdysvaltain liittolaismaat kaapanneet Ukusa-sopimuksella eli niin sanotulla Echelon-järjestelmällä Suomesta tulevaa tietoliikennettä jo vuosia.

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.

Käyttöliittymän hahmottelua luonnostelemalla

Käyttöliittymien suunnittelussa ideoiden hahmottelu ja visualisointi käsiteltävään muotoon on yksi ensimmäisiä vaiheita ennen koodiin sukeltamista. Visualisointia voi suorittaa monella tapaa ja yksi kätevä keino on luonnostelu, eli piirtämällä kynällä karkea malli halutusta lopputuloksesta paperille. Yksinkertaista, helppoa ja nopeaa prototypointia, vaikka paperimallit eivät ole kovin joustavia ja muutokset ovat työläitä.

Luonnostelu on yksi yleisimmistä tekniikoista matalan tarkkuuden prototyyppien luomiseen. Menetelmässä käytetty ”kynä ja paperi-menetelmä on luonnollinen ja vähän vaivaa vaativa tekniikka, joka mahdollistaa abstraktien ideoiden siirtämisen konseptista nopeasti kiinteämmälle pohjalle. Erityisen hyödyllisen menetelmän tekee sen luovuuteen ja ajatteluun rohkaiseva luonne. Lisäksi luonnostelu rohkaisee useamman eri tekijän osallistumisen mallin luontiin, kun visuaalinen malli ja tekniikka on kaikille tuttua. Asiat jäävät myös riittävän epätarkoiksi, joka sallii tarkennusten tekemisen myöhemmin, estämättä luovuutta mallin kehittämisen aikana.

Luonnostelua voi suorittaa myös tietokoneella, hyödyntämällä Washingtonin yliopistossa kehitettyä avoimen lähdekoodin BSD-lisenssillä julkaistua DENIM-ohjelmistoa. Ohjelma tarjoaa käytännössä paperintapaisen käyttöliittymän mallien luontiin. DENIM on tarkoitettu tukemaan Web-kehittäjien alkuvaiheen suunnittelua informatiivisen luonnostelun kautta, ja tarjoaa suunnittelun tueksi kynällä luonnostelua, eri tarkkuuksille kohdentamista (sivukartta, kuvakäsikirjoitus, sivu), sivujen linkittämistä kuvakäsikirjoitusta varten, mallin ajamista esittämistä ja vuorovaikutusta varten ja mahdollisuuden luoda uudelleenkäytettäviä komponentteja. Lopputuloksen voi myös viedä linkitetyiksi HTML-sivuiksi. Javalla toteutettu DENIM on saatavilla Windowsille, Unixille ja Mac OS X:lle.

Denim Denim

DENIMillä luodut prototyypit muistuttavat kynällä ja paperilla luonnosteltuja malleja sekä hyvässä että pahassa, ja koska nyt piirtovälineenä toimii hiiri, on piirtojälki kynääkin karkeampaa. Paperimalleihin verrattuna sähköinen media tarjoaa mahdollisuuden elementtien siirtelyyn ja muokkaamiseen ja lopputuloksen dokumentointi ja säilöminen myöhempää käyttöä varten on helpompaa. Tietenkin kuten kynällä ja paperilla luonnostellessa, jää käyttöliittymän vuorovaikutuksen esittäminen ja mallin myöhempi hyödyntäminen vähäiseksi. DENIMin käyttö on suhteellisen yksinkertaista ja opasteen avulla hieman erikoinen käyttöliittymä ja sen tarjoamat toiminnot selviävät nopeasti, mutta tämänkin jälkeen työskentely on hieman hidasta ja monimutkaisen tuntuista.

DENIM tarjoaa mahdollisuuden sähköiseen luonnosteluun, mutta käyttö on hieman kömpelöä, joka tosin johtunee suurilta osin piirtovälineenä käytettävästä hiirestä. Piirtopöydällä käytettynä DENIM voisi olla pätevä apuväline, mutta nyt osa sovelluksen kätevyydestä menee hiiren epätarkkuuden kanssa hukkaan, vaikka ohjelmisto suoristeleekin piirrettyjä viivoja. Myös isolla kosketusnäytöllä, jolloin useampi henkilö voisi yhtä aikaa ilmaista ideoitaan, voisi ohjelman käyttö olla kätevää. Toisaalta, kynällä ja paperilla saa edelleen luotua nopeammin ja helpommin luonnoksia ja piirrosjälki on tarkempaa ja mahdollistaa pienempien ja tarkempien elementtien hahmottelun.

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

Joustavat sisennykset selkeyttävät koodin lukemista

Ohjelmoijat ovat usein erittäin pikkutarkkoja siitä, miten he kirjoittamansa koodin jäsentelevät: käytetäänkö sisennyksessä tabulaattoria vai välilyöntejä, miten asiat rivitetään, tuleeko sulkeiden jälkeen väli vai ei ja niin edelleen. Teoreettisesti koodi on samaa, jäsenteli sen miten halusi, mutta käytännössä koodin lukeminen on huomattavasti helpompaa, jos se on rakenteeltaan selkeää ja yhdenmukaista.

Koodin jäsentelyyn liittyvien sisennysten toimintaan on Nick Gravgaardin ideoinut niin sanotun joustavan sisennyksen eli ”elastic tabstops” -ominaisuuden, jossa rivit sisentyvät selkeiksi ryhmiksi. Ominaisuudessa tabulaattorin pituus voi vaihdella eri riveillä ja teksti on jaoteltu tavallaan kuin taulukon soluihin ja sarakkeisiin.

Esimerkiksi ryhmän rivit sisennetään automaattisesti samalle tasolle.

Tab Stops

ja rivin muuttuessa ryhmän rivien sisennystä muutetaan automaattisesti uuteen pituuteen.

Tab Stops

Ideasta saa paremman käsityksen, kun vilkaisee enemmän esimerkkejä miten Code Browser -ohjelma asian toteuttaa tai testata ominaisuutta käytännössä. Sisennyksen automaattinen muuttaminen tekstin muuttuessa tuo selkeyttä koodin lukemiseen muun muassa switch-case -rakenteissa, muuttujaryhmissä ja kommenteissa.

Ominaisuus näyttää kätevältä, mutta harmillisesti se ei ole vielä yleistynyt. Toivoa kuitenkin herättää, että ominaisuudesta on tehty kehitysehdoitus Eclipseen ja ominaisuus löytyy kuulemma Swingistä, GTK:sta ja tulevasta Visual Studiosta. Gedit-editoriin tämä mullistava uudistus on saatavissa Nick Gravgaardin tekemän lisäosan avulla.

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)