Oraclen tietokannat haltuun Oracle SQL Developerilla

Oraclen tietokantojen kanssa askarteluun on tarjolla useita eri tasoisia ja etenkin erilaisilla hintalapuilla varustettuja ohjelmia, mutta ilmaisiakin vaihtoehtoja löytyy. Oraclen ilmainen SQL Developer on oiva työkalu SQL:n ja PL/SQL:n kanssa työskentelyyn ja tarjoaakin maksullisiin ohjelmiin lähes verrattavissa olevia ominaisuuksia etenkin satunnaiselle käyttäjälle. Maksullisista ohjelmista mainittakoon Golden, PL/SQL Developer, Hora ja Toad.

Oraclen SQL Developer tarjoaa monipuolisen työkalun tietokannan hallintaan, selaamiseen, raporttien luontiin, SQL-kyselyihin ja PL/SQL-kehitykseen, vaikka ei aivan kaikkia vastaavia ominaisuuksia tarjoa kuin Oraclen SQL+. Toisaalta käyttöliittymä on paria astetta miellyttävämpi, kuin komentorivi-tyylisessä SQL+:ssa. Javalla toteutetuksi Swing-kirjastoa käyttäväksi ohjelmaksi SQL Developer on nopea ja tuntuu ihan ”normaalilta” työpöytäsovellukselta. Kokonaisuutena ohjelma vaikuttaa myös selkeämmältä kuin vastaavan tason Golden, mutta tietenkin ilman vanhojen ohjelmien painolastia nykyaikainen SQL Developer vaikuttaa hyvältä ja helpolta käyttää.

Muutamia pieniä puutteita ohjelmasta vielä löytyy, kuten date-kentän formaatti, joka on ilmeisesti ns. ominaisuus ja pitää asettaa haluamakseen sessio-kohtaisesti. Lisäksi tuettuja kantoja ovat vain 9i-sarjan tietokannat (9.2.0.1), vaikka tuen puuttumisen huomautuksesta huolimatta myös 8i-kannat toimivat.

Tuorein SQL Developer 1.5 -versio tuo mukanaan muun muassa tuen versionhallinnalle ja muita uudistuksia sekä täydentää 1.2-version hieman puutteellista tukea SQL-käskyille. Valitettavasti versio myös tiputtaa täysin pois tuen 8i-kannoilta, jota ainakin itse jäin vielä kaipaamaan, vaikka lähitulevaisuudessa häämöttävät jo 10g-kannat.

SQL Developer 1.5 on ladattavissa Oraclen sivuilta Windowsille, Linuxille sekä Mac OS X:llle. Eniten ohjelmasta saa irti käyttämällä sitä Oraclen 9i, 10g ja 11g -tietokantojen kanssa, mutta tuettuja tietokantoja ovat lisäksi Microsoft Access, SQL Server, MySQL ja SyBase. Ohjelman käyttöön löytyy myös videodemot.

PL/SQL-kehitystä suunnitellessani testailin nopeasti myös ensimmäisessä kappaleessa mainitsemiani ohjelmia, mutta hinta-laatu -suhde oli selkeästi paikallaan SQL Developerin kohdalla, vaikka KeepToolin Hora olikin vaikuttava paketti; myös hinnaltaan.

SQL Developer SQL Developer SQL Developer

Firefox 3 RC1, kohti parempaa selainta

Firefox on kehittymässä kohti uutta versiota ja eilen julkaistu Firefox 3 RC1 näyttää lupaavalta sekä uudistustensa että toimintansa suhteen. Lukuun ottamatta muutamia lisäosia ja teemojen puutetta, voi Release Candidate 1 (RC1) -version sanoa olevan jo ihan käyttökelpoinen selain.

Uudessa versiossa on lukuisia uudistuksia, kuten parempi käyttöjärjestelmän ilmeeseen integroituminen, nopeampi Javascripti, parannettu muistinkäyttö ja kehittyneempi lisäosien ja laajennusten sekä kirjanmerkkien hallinta. Esimerkiksi lisäosia voi hakea suoraan lisäosat-ikkunasta ja osoitekenttä toimii hakukenttänä historiaan. KDE-käyttäjänä Firefoxin parempi sulautuminen käyttöjärjestelmään ei paljoa lämmitä, sillä GTK-ohjelmat eivät koskaan kovin hyvin KDE-maailmaan sulaudu.

Käyttämistäni lisäosista muutamat tärkeimmät ovat jo valmiita Firefox 3:sta varten ja loputkin varmaan aikanaan. Lisäksi Firefox 2:sta varten tehtyjä laajennuksia voi koittaa Firefox 3:n kanssa asettamalla laajennusten versiotarkennuksen pois päältä about:config -asetuksista, määrittelemällä extensions.checkCompatibility -määritteen arvoksi false.

Firefox 3 RC1 on ladattavissa Firefoxin sivuilta. Linuxissa ja Mac OS X:ssä Firefox 3 ylikirjoittaa aikaisemman asennuksen, mutta Windowsissa asennus menee omaan kansioonsa, joten uutta ja vanhaa versiota voi käyttää rinnakkain. Tietenkin Firefox 3 on vielä tarkoitettu vain testauskäyttöön ja lopullinen versio julkaistaan ”kun se on valmis”.

Fx3 Fx3 Fx3

Subversion ja versionhallinta

Kaikki enemmän tai vähemmän ohjelmointiin tutustuneet varmasti tietävät, että koodia on kätevää säilyttää versionhallinnassa. Pieniäkin projekteja on suhteellisen vaivatonta ja hyödyllistä säilyttää esimerkiksi Subversion-versionhallinnassa, vaikkapa ihan vain omalla työasemalla sijaitsevassa repositoryssä.

Versionhallinta on tietenkin omimmillaan isommissa projekteissa, joissa toteuttajia on useita ja repository sijaitsee keskitetysti jollain palvelimella. Versionhallinnan ei tarvitse rajoittua pelkästään sovelluskoodiin, vaan sen voi ulottaa muihinkin muuttuviin ja versioitaviin projekteihin, kuten esimerkiksi PL/SQL-paketteihin ja asetustiedostoihin.

Coding Horror -blogi ohjeistaa kätevästi Subversionin (SVN) asennuksessa omalle koneelle ja kattaa myös hieman versionhallinnan perusteita. Subversion onkin kohtalaisen hyvin tuettu eri ohjelmien toimesta ja sille on saatavilla useita eri ohjelmistoja eri alustoille kuten TortoiseSVN, SubCommander ja Eclipseen saatava Subversive. Muista ohjelmista mainittakoon Trac, joka tarjoaa projekteille viritellyn wikin, tikettiträkkerin ja liitynnän Subversioniin.

Jos versionhallinta yleisesti ei ole tuttu asia, kannattaa vilkaista visuaalinen opastus versionhallintaan ja sen toteuttamisesta keskitettynä mallina Subversionilla löytyy kattava Version Control with Subversion -kirja.

Vaihtoehtona hajautettu versionhallinta?
Versionhallintaa voi toteuttaa myös hajautettuna mallina, kuten Linuxin Kernelin kehittämisessä Gitiä käyttäen. Muita hajautettuja malleja ovat muun muassa Mercurial (mm. Mozilla) ja Bazaar (mm. Ubuntu). Keskitettyyn malliin verrattuna hajautetussa mallissa on esimerkiksi jokaisella kehittäjällä oma paikallinen repository. Hajautetuista lähteistä tulokset yhdistetään erilaisin perusteilla, kuten määrättyjen projektijäsenten päätöksillä mitkä muutokset siirretään eteenpäin tai sitten voidaan käyttää keskitetyn mallin tapaa. Hajautetun mallin järjestelmät ovat yleistymässä, mutta muutos keskitetystä mallista hajautettuun vaatii totuttelua. Pitämällä paikallista repositoryä, päästään aina käsiksi historiatietoon, sekä saadaan versionhallinnan tarjoamat edut ilman koodin yleisesti julkistamista.

Versionhallinta onkin osaltaan myös uskonnollinen kysymys samalla tavalla, kuten esimerkiksi käyttääkö vimiä vai emacsia, KDE:tä vai Gnomea tai Linuxia vai Windowsia. Erilaisista versionhallintamalleista löytyykin vahvoja mielipiteitä, kuten Linus Torvaldsin esitys hajautetun mallin Gitistä osoittaa. Yleisesti katsottuna tärkeintä kuitenkin on, että käytössä on edes jokin versionhallintajärjestelmä. Oli se sitten Subversion, Git, Mercurial, Bazaar tai vanha kunnon CVS.

Subversionilla alkuun
Tavallaan Subversionin ja yleisesti ottaen keskitetyn versionhallinnan voisi sanoa olevan jo hieman vanhentunutta, mutta Subversion tarjoaa tällä hetkellä helposti lähestyttävän ja hyvin tuetun kokonaisuuden versionhallintaan.

Toisaalta taas Subversionissa on heikkouksiakin, joten muihinkin vaihtoehtoihin kannattanee tutustua, kun perusteet ovat hallussa. Etenkin hajautettu malli vaikuttaa ihan kätevältä.

Linux, näppäimistö, hiiri ja evdev

Linuxin käyttäminen on mukavaa, sillä aina välillä on tarjolla kivoja yllätyksiä, ettei tietokoneen käyttäminen olisi liian helppoa. Tietenkin tällä(kin) kertaa varsinainen vika löytyy penkin ja tuolin välistä, joka ei ole huomioinut muuttuneita asioita. Olen kiertänyt eteen tullutta evdev-laitteistoajurin ja hal-välipalikan aiheuttamaa ongelmaa onnistuneesti muutamisen kuukauden ajan, mutta nyt piti löytää ihan oikea ratkaisu.

Ongelmana oli siis, että asioista X ja Y johtuen näppäimistö ei toiminut X-ikkunamanagerissa halutulla tavalla, vaan näppäimet olivat sanan mukaisesti sekaisin: muun muassa nuolinäppäin ei toiminut alaspäin ja muuta mukavaa. Onneksi ongelma oli helposti korjattavissa muuttamalla X.orgin asetustiedostosta näppäimistön asetukset oikeaksi eli evdev-ajurin vaatimusten mukaiseksi.

X-ikkunoinnin xorg.conf-tiedoston näppäimistöosio näytti tämän jälkeen seuraavalta:

Section "InputDevice"
    Identifier  "Keyboard"
    Driver      "evdev"
    Option      "CoreKeyboard"
    Option      "Name"          "Logitech HID compliant keyboard"
    Option      "Device"        "/dev/input/event3"
    Option      "XkbRules"      "xorg"
    Option      "XkbModel"      "evdev"
    Option      "XkbLayout"     "fi"
EndSection

Aikaisemmin Driver-arvona oli siis kbd ja XkbModel-arvona pc105. Sekä Name että Device -kenttien arvot löytyvät kirjoittamalla terminaaliin cat /proc/bus/input/devices ja vilkaisemalla oikeat arvot N ja H-riveiltä.

I: Bus=0003 Vendor=046d Product=c30e Version=0110
N: Name="Logitech HID compliant keyboard"
P: Phys=usb-0000:00:1d.1-2/input0
S: Sysfs=/class/input/input3
U: Uniq=
H: Handlers=kbd event3
B: EV=120013
B: KEY=10000 7 ff800000 7ff febeffdf f3cfffff ffffffff fffffffe
B: MSC=10
B: LED=7

Tämän lisäksi suomalaisen näppäinasettelun saamiseksi kopioin /usr/share/hal/fdi/policy/10osvendor/10-keymap.fdi-tiedoston sijaintiin /etc/hal/fdi/policy/11-keymap.fdi ja päivitin input.xkb.layout-avaimen määritteen muotoon

<merge key="input.xkb.layout" type="string">fi</merge>

eli muutin oletuksena olleen us-arvon fi-arvoksi. Nyt X ottaa vakiona käyttöön suomalaisen näppäinasettelun eikä jenkkinäppistä.

Hiiren asetukset ovatkin toimineet evdev-ajurilla jo pidempään ihan oikein seuraavilla asetuksilla.

Section "InputDevice"
    Identifier  "Mouse"
    Driver      "evdev"
    Option      "CorePointer"
    Option      "Protocol"      "evdev"
    Option      "Name"          "Logitech USB-PS/2 Optical Mouse"
    Option      "Device"        "/dev/input/event2"
    Option      "Buttons"       "10"
    Option      "ZAxisMapping"  "9 10"
EndSection

Tämä kaikki on tietenkin suhteellisen päivän selvää, mutta hyvä nyt kirjata ainakin itselle ylhäälle.

Toinen mukava muutos järjestelmän perustaan oli Gentoon ~archin siirtyminen käyttämään OpenRC:tä sys-apps/baselayout-2:n myötä. Asiasta oli toki siirtymisohje, joka selvensi syitä ja muutoksia, joita oli ihan riittävästi.

Songbird: kehityskelpoinen musiikkisoitin

Musiikkia on kiva kuunnella ja sen mahdollistamiseksi on tarjolla useita erilaisia musiikkisoittimia. Linuxissa perinteiset vaihtoehdot kohdentuvat KDE:ssa AmaroKiin ja Gnomessa Exaileen, mutta muitakin vaihtoehtoja löytyy etenkin Gnomessa. Songbird on uudehko tulokas musiikkisoitin-valikoimassa ja on saatavissa Linuxin lisäksi sekä Windowsille että Mac OS X:lle.

Songbirdin kehitys on vielä alussa ja parisen viikkoa sitten julkaistiin versio 0.5, mutta perusominaisuudet vaikuttivat jo olevan ihan kunnossa. Kuten nimestäkin voi päätellä, Songbird on sukua Mozilla Foundationin tuotteille ja sen myös huomaa: tavallaan sekä huonossa että hyvässä mielessä. Songbirdiä voisi melkein kuvailla Firefoxiksi, joka näyttää iTunesilta ja osaa toistaa mediatiedostoja. Jei. Musiikkisoittimen takana on kuitenkin osaava kehittäjätiimi, jonka historiasta löytyy muun muassa Winamp.

Testailin Songbirdin Linux-versiota ja Gentoon ebuild löytyi perinteisesti Bugzillasta ja asennuskin hoitui heittämällä. Ulkoasultaan Songbird muistuttaa etäisesti iTunesia ja on vakioteemaltaan hillityn musta. Musiikkikokoelman lisäys onnistuu parilla napin painalluksella ja musiikki toistuu nätisti. Videoiden toistamiseen olisi tarvinnut jotain GStreamerin lisäpalikoita, joita en jaksanut lähteä säätämään kuntoon. Musiikin ja videoiden toistamisen lisäksi Songbirdistä löytyy Internet-selain.

Firefoxin tapaan Songbirdin toimintaa voi laajentaa erilaisilla lisäosilla, joista löytyy muun muassa tuki Last.fm:lle, Wikipedialle, kuvan kansien haulle ja vaikka mille. Lisäpalikoiden avulla saadaan myös tuki iPodille ja MTP-laitteille eli muille MP3-soittimille, mutta tietenkin vain Windowsissa, vaikka käytännössä tämä olisi mahdollista myös Linuxissa. En tosin oikein pidä Firefoxin tapaisesta ideasta, että jokainen vähänkin erikoisempi tai yleisempikin musiikkisoittimen ominaisuus löytyy lisäosana eikä musiikkisoittimesta jo valmiina.

Songbird vaikuttaa ihan lupaavalta projektilta Amarokin, Exailen, iTunesin ja Windows Media Playerin kilpailijaksi, mutta kehitystyötä vielä tarvitaan. Etenkin iTunesin asemaa Mac OS X:ssä ja Amarokin asemaa KDE-käyttäjien piirissä voi olla hankala horjuttaa, jos vaihtoehtoinen ohjelma ei tarjoa mitään erityisen oivallista.

Myös Arstechnica on kirjoittanut lyhyehkösti Songbirdistä.

Songbird Songbird Songbird
Songbird Songbird Songbird

Terminaalien nopeuksilla on eroja

Linuxissa on tarjolla useita erilaisia terminaaleja eli päätteitä ja eri terminaalien ominaisuuksia voidaan verrata myös nopeuden osalta. Terminaalin nopeuden voidaan olettaa olevan kohtalaisen merkityksetön detalji, mutta se vaikuttaa osaltaan muun muassa ohjelmien kääntämiseen terminaalissa. Kääntö tuottaa paljon tekstiä, jonka näyttäminen terminaalissa hidastaa varsinaista kääntämistä, ainakin teoriassa. Huomion arvoinen asia siis etenkin Gentoossa.

Martin Ankerl on toteuttanut eri terminaalien nopeuksia mittaavan testin, joka pistää terminaalit ainakin yhden ominaisuuden perusteella paremmuusjärjestykseen. Testi on toteutettu mittaamalla terminaalien eroja näyttää tekstiä ruudulla, joka on merkityksellistä etenkin laajoja ohjelmia käännettäessä. Testilaitteistona on käytetty Pentium M 1.5GHz -prosessorilla ja ATI Radion Mobile 9600 (fglrx-ajurilla) -näytönohjaimella varustettua tietokonetta, johon oli asennettu Ubuntu 7.04.

Tekstin tulostukseen käytettiin RFC3261: ”SIP: Session Initiation Protocol” -dokumenttia (632kb), joka tulostettiin ruudulle time cat rfc3261.txt -komennolla.

Tulokset:

  • Sekä gnome-terminal että konsole ovat erityisen nopeita, joka on selitettävissä muistinkäytöllä sekä tulostuksen päivitystahdilla, joka ei ole aivan sulavaa. Useat avoinna olevat gnome-terminaalit käyttävät vähemmän muistia kuin vastaava määrä konsole-ikkunoita.
  • Jos muistin käytöllä on merkitystä, kannattaa valita wterm, eterm tai aterm, jotka ovat kohtalaisen nopeita ja tekevät sen muistitehokkaasti.
  • xterm on hidas ja muistia tarvitaan ominaisuuksiin verrattuna runsaasti.

Testissä todetaan, että käytännössä asia ei ole aivan näin yksiselitteinen ja tuloksiin voivat vaikuttaa useat eri asiat kuten Linuxin tai X:n ajanjakaja. Jos terminaalien nopeuseroilla on merkitystä, kannattaakin ajaa omat testit, sillä se on kohtalaisen yksinkertaistakin.

KDE 4:n Konsole-terminaalin kehittäjä Robert Knight huomattaa OS Newsin -kommenteissa, että testauksessa käytetty tiedosto ei ole riittävän suuri hyödyllisten tulosten saavuttamiseksi; testiajojen välillä on liian paljon varianssia. Knight jatkaa toteamalla, että pohjimmiltaan paljon tekstiä ruudulle tuottavien prosessien ajaminen sujuu huomattavasti nopeammin, jos terminaali-ikkuna ei ole näkyvissä.

Knight myös kritisoi tekstitiedoston käyttämistä terminaalin nopeuden testaamisen, sillä se ei vastaa reaalimaailman tunnetta terminaalin sulavuudesta ja nopeudesta: kuinka hyvin tekstiä voidaan rullata ruudulla eli esimerkiksi liikkua Vimissä auki olevassa dokumentissa.

Kaiken kaikkiaan voidaan siis todeta, että eri terminaalien nopeuserot ovat käytännössä merkityksettömiä, vaikka mitattavia eroja löytyy.

Esimakua OpenOffice.org 3.0 -versiosta: oikeaan suuntaan

OpenOffice.org on hyvä toimisto-ohjelmistopaketti, mutta kokonaisuutena vielä kaukana kaupallisesta Microsoft Officen hiotusta paketista. Loppuvuodesta julkaistavaksi suunniteltu OpenOffice.org 3.0 tuo useita kaivattuja uudistuksia, mutta OpenOffice.org Ninja -blogin esikatsauksen perusteella, uudistukset eivät ole siltikään maata järisyttäviä.

Esikatseltuina uudistuksina mainitaan OpenOffice.org Writerin osalta useiden sivujen näyttäminen, muistiinpanot marginaalissa ja tuki Microsoft Office 2007 -formaatille. Calc saa Solverin sekä näyttää solujen valinnat läpinäkyvästi eikä enää mustalla. Lisäksi solujen määrä kasvaa 256:sta 1024:ään. Mac-käyttäjien ilona on virallinen tuki Aqua-käyttöliittymälle, jolloin OpenOffice.org toimii kauniimmin myös Maceissä. Tähän asti Aqua-versiot ovat olleet epävirallisia, mutta ihan kohtalaisesti toimivia.

Uudistukset eivät pintapuolisesti näytä olevan mitään suuria, eikä OpenOffice.orgin suurimpiin kompastuskiviin tuoda uudistuksia. Writerin käyttö on luultavasti edelleen yhtä haastavaa ja jäykkää muun muassa sisällysluettelon, ristilinkitysten ja muotoilujen suhteen. Nämä ongelmat löytyvät toki myös osittain eri Wordin versioista. Tietenkin suurin OpenOffice.orgin hidaste on Microsoft Officen valta-asema ja erilaiset tiedostoformaatit, joita ei ihan pienellä murreta.

Microsoftin Office järkäleeseen verrattuna OpenOffice.org jättää toivomisen varaa, mutta kokonaisuutena tarjoaa hyvän ja varsinkin ilmaisen vaihtoehdon dokumenttien tuottamiseen. Kehityssuunta näyttää 3.0 -version esimaun perusteella hyvältä, mutta suurempia ja mullistavampia uudistuksiakin kaipaisi. Tarvittaisiin hieman Office 2007 -tasoista muutosta kokonaisuuden saattamiseksi uudelle käytettävyyden tasolle.