Kesäpäivänä Tuomiojärven rannalla Jyväskylän Viitaniemessä

Rutinat, arkisto 08/2009

Julkaistu 25.09.2008 22:29.

Tappakaa IE6!

Julkaistu 20.08.2009 10:41.

Tappakaa IE6!

Web-kehittäjille ei tarvitse selittää miksi Microsoftin Internet Explorer 6:n on kuoltava. Muille Google antaa kymmenien miljoonien verkkosivujen listan hyviä syitä.

Kamppanja IE6:n tappamiseksi alkaa saada yhä enemmän ja enemmän tukea. Tähän rintamaan tarvitaan jokaista.

Cucumber running Selenium on Debian Lenny

Julkaistu 18.08.2009 16:10.

I’ve been working with working with RSpec and Cucumber on Ruby on Rails for a while. I haven’t yet done any in browser testing but now I need to (need to automate a testsuite of non-RoR legacy webapp) and I like the idea of writing Cucumber scenarios for in browser tests too. I decided to give Selenium a try.

When I started my journey the instructions on Cucumber wiki were marked “outdated”. I’ll try to document what I needed to do and improve the wiki. This story applies to Debian Lenny, ruby 1.8.7 (2008-08-11 patchlevel 72) from Lenny packages, rubygems 1.3.1 from upstream source, rake 0.8.4 from gems and cucumber 0.3.96 from gems.

First I went to download Selenium remote control and unpacked the zip.

$ unzip selenium-remote-control-1.0.1-dist.zip

Package contained selenium client for ruby, but I decided to follow the recommendation in README and install from gems.

$ sudo gem install selenium-client

The moment of truth…

$ cd selenium-remote-control-1.0.1/selenium-server-1.0.1
$ java -jar selenium-server.jar

Selenium server was up and running. Then try to get some smoke out of Cucumber+Selenium examples.

$ cucumber /usr/lib/ruby/gems/1.8/gems/cucumber-0.3.96/examples/selenium/features/

Selenium server blew up complainig "ERROR - Failed to start new browser session, shutdown browser and clear all session data java.lang.IllegalArgumentException: URI "file:selenium-server.jar" is not hierarchical". Turned out it was about Java implementation. Talk about Java being cross-platform and stuff… Fine, easy one to fix.

$ sudo apt-get install sun-java6-jdk
$ sudo update-java-alternatives -s java-6-sun

Also Selenium server wanted to run Firefox binary (not the usual wrapper script) so I symlinked firefox-bin to /usr/local. The next complaint was

16:56:45.741 INFO - Preparing Firefox profile...
Could not read application.ini
16:57:05.757 ERROR - Failed to start new browser session, shutdown browser and clear all session data
java.lang.RuntimeException: Timed out waiting for profile to be created!

I spent quite a few hours trying to find out what was going on until I tried to run firefox-bin myself. It turned out that FF expects to find application.ini from the same dir the binary is in. On Linux there’s no direct way of finding out the path of the running binary. What FF does (if dirname(argv[0]) doesn’t work) is to manually walk thru $PATH. Path of the real binary wasn’t on $PATH (because I symlinked it there), FF couldn’t find application.ini and died.

Instead of symlink I just added FF dir (it’s the dir you have firefox-bin in, /usr/lib/iceweasel on Debian) to $PATH and it worked.

Joku anonyymi sotkee sen kuitenkin

Julkaistu 17.08.2009 02:46.

Erään aihealueen keskusteluryhmässä oli taannoin puhetta yleisestä tietouden levittämisestä ja sen keinoista. Ehdotin Wikipedian aihealuetta koskevan artikkelin ylläpitoa yhdeksi hyväksi tavaksi. Yllätyin nihkeistä kommenteista, joita ehdotus kirvoitti.

Wikipediaa vaivaa vähän sama kuin (muuatta aihealueen foorumia), nimimerkin takaa kirjoittamisen kulttuuri on vahva, ja kuvitellaan että innokkuus on tärkeämpää kuin asiantuntemus.

pitäisin esim. (erästä tunnettua aihealueen sivustoa) huomattavasti laadukkaampina, koska ne puhuvat yhdellä äänellä, ja niiden luotettavuuden takana seisoo tunnettu nimi. Tämä ei toteudu, eikä voi toteutua Wikipediassa.

Kaikki eivät vieläkään ole hoksanneet, että Wikipedia on wiki, ei (tunnetun kirjoittajan) toimitettu julkaisu.
Wikissä kuuluu asiaan, että sisältö muuttuu koko ajan ja on lukemattomien eri tavoin motivoituneiden sohlottajien kaahotuksen tulos. Anonyymien sohellus ei ole lieveilmiö, vaan lähtökohta.

Ihmiset itse valitsevat itse mitä milloinkin tietolähteinään käyttävät. Ei aivan vähäinen määrä käyttää aktiivisesti Wikipediaa. Täysin riippumatta siitä mitä mieltä kukakin on Wikipediasta noin yleensä, tietoisuuden leviämistä jostain aihealueelta auttaa jos aihealueen Wikipedia-artikkeli on kattava ja laadukas.

Muista varmistuksen varmistus

Julkaistu 16.08.2009 14:13.

Toukokuun lopussa sähköpostikoneeni (itse ylläpitämäni Netdirektillä hostattu) otti ja katosi Internetistä. Sellaista aina välillä sattuu. Maailma ei ole täydellinen. Tällä kertaa tilanne ei kuitenkaan palautunut normaaliksi omia aikojaan. Episodi opetti minulle asioita varmuuskopioinnista.

Kun verkko näytti pelaavan ja pimento kesti ja kesti, kävin palveluntarjoajan ohjauspaneelista boottaamassa koneen. Ei auttanut. Seuraavaksi boottasin koneen asennustilaan (kone käynnistyy vähän niinkuin sen käynnistäisi tavanomaisen Linux-jakelun asennuslevyltä). Kun yritin päästä käsiksi kiintolevyyn, räpsähti lokeihin ikävän näköisiä viestejä lukuvirheistä yritettäessä lukea osiotaulua.

En saanut koneen kiintolevyltä dd_rescuellakaan mitään irti, joten pyysin hostaajaa vaihtamaan koneeseen ehjän levyn ja aloin kaivelemaan esiin automaattisesti ajettuja varmuuskopiota. Hiki kihosi pintaan kun huomasin, että edellinen varmuuskopio oli syyskuun toiselta päivältä vuodelta 2008. Varmuuskopiointiautomaatti oli toiminut kauniisti siihen saakka.

Lyhyen painokelvottoman vaiheen jälkeen päätin pyytää Datarecoveryn kuriiria noutamaan levyn Netdirektiltä ja viemään analysoitavaksi. Loppu hyvin, kaikki hyvin. Levyn laakerivika ei ollut johtanut tietojen lopulliseen katoamiseen bittien taivaaseen. Pelastusalan ammattilaiset Datarecoveryllä kaivoivat kaiken talteen ja kaikki koneella olleet palvelut ovat jälleen pystyssä.

Nyt varmuuskopiointiautomaattini (backup2l) lähettää sähköpostitiedotteen varmuuskopioinnin onnistumisesta ja varmistusmedian täyttöasteesta joka päivä, eikä vain virhetilanteessa. Virhetilanteita kun on myös sellaisia, ettei sähköpostin lähetys onnistu tai ohjelma itse ei havaitse tai ei saa edes mahdollisuutta havaita virhettä.