Liikuntasuoritusten seurantatyökalut: SportsTracker

Harrastan vapaa-ajallani tietotekniikan lisäksi myös liikuntaa, kesäisin maastopyöräilyä ja uintia ja talvisin lisäksi hiihtämistä. Toki aina ajoittain myös muitakin lajeja, kuten sulkapalloa, rullaluistelua, laskettelua ja lumilautailua. Koska tykkään seurata liikuntasuorituksiani, pidän taulukkolaskentaohjelman avulla taulukkoa mitä urheilin, missä, milloin ja kuinka paljon. Tilastoja onkin kertynyt jo useilta vuosilta.

Luin aiemmin keväällä Linux.com -sivustolla olleen esittelyn kahdesta avoimen lähdekoodin projektista, joilla voi pitää kirjaa urheilusuorituksista ja piirtää käppyröitä ja tilastotietoja. Jotenkin ei ole koskaan aikaisemmin tullut mieleen etsiä jotain ohjelmaa liikuntasuoritusten seurantaan, sillä omat taulukoinnit ovat olleet ja ovat edelleen ihan kätevä ja riittävä keino. Urheilusuoritusten seurantaan esiteltiin kaksi eri ohjelmaa: SportsTracker ja Pytrainer, josta kenties myöhemmin enemmän.

SportsTracker
SportsTracker on urheilusuoritusten seurantaohjelmisto, joka toimii käyttäjäystävällisesti sekä Linuxissa että Windowsissa. Ulkoasultaan ohjelma on selkeä ja erilaiset toiminnot ovat helposti löydettävissä. Sovellus on toteutettu käyttämällä C#:ia ja GTK#:ia, eli .NET:iä vastaavaa Mono -alustaa. Windowsille ei ole saatavilla valmista asennusohjelmaa, vaan käyttäjän pitää itse kääntää ohjelma skriptien avustuksella ja tarvittaessa asentaa vielä Mono-alusta. Kokonaisuutena ohjelman asennusprosessi oli kuitenkin yksinkertainen. Linuxissa valmiit paketoinnit löytyvät Ubuntulle, Debianille, Mandrivalle ja Gentoolle ebuild Bugzillasta. Testasin ohjelmasta 2.5.1-versiota.

Toiminnaltaan SportsTracker on selkeähkö ja ohjelmalla voidaan seurata urheilusuorituksia luomalla eri lajeille omat kategoriat ja alalajit kuten ”pyöräily” ja ”maastopyöräily”. Alalajien luonti on pakollista, joka tosin tuntuu hieman monimutkaiselta tavalta joidenkin lajien kohdalla. Harrasteuimarille uintityylien lajittelu krooliin ja sammakkoon tuntuu hieman turhalta, mutta urheilusuoritusten kategorisointi alaluokkiin on hyvä ja toimiva idea.

Käyttöliittymältään ohjelma on minimalistinen ja yleisesti ottaen hieman liiankin yksinkertainen ja asetuksia on vähän. Käyttö on helppoa, mutta urheilusuoritusten lisäämisessä toivoisi hieman enemmän kenttiä haluttujen tietojen tallentamiseen. Urheilusuoritusten tallettamisen jälkeen halutuista tai kaikista urheilulajeista näkee erilaisia tilastoja halutulta aikaväliltä, esimerkiksi kaikkien suoritusten kokonais-, keskimääräisen ja minimi ja maksimikeston. Suorituksista saa myös graafista tilastoa käppyrän muodossa, joka voi näyttää esimerkiksi matkaa, keskinopeutta ja kalorikulutusta. Graafisten tietojen näyttäminen ei tosin suostunut toimimaan Windowsissa, vaan ohjelma kaatui joka kerta kyseistä nappia painettaessa. Vielä on siis kehitettävää myös perustoiminnoissa.

Sykemittarin omistajat voivat tallettaa sykemittarin harjoitustiedostot integroidun PolarViewerin kautta ja liittää ne urheilusuorituksiin. Harmillisesti omasta sykemittaristani ei tietokoneliitäntää löydy. Ohjelma tukee Polarin ja CicloSportin sykemittareita, mutta SportsTracker ei osaa itse ladata harjoitustiedostoja mittareista, joten niiden lisäämiseksi tarvitaan vielä sykemittarien omia työkaluja.

SportsTracker tallentaa kaiken datansa XML -muodossa, joten urheilusuoritusten lukeminen onnistuu ilman ohjelmaakin ja myös mahdollinen siirto toisiin ohjelmiin on kohtalaisen helppoa verrattuna jos tiedot olisivat binäärimuodossa tai ohjelman omassa formaatissa.

SportsTrackerin sivuilta löytyy ruudunkaappauksia ohjelman eri toiminnoista Linuxissa käytettynä ja Windowsiin verrattuna ulkoasu on Linuxissa kyllä paljon nätimpi. Totesin ohjelman muutaman suorituksen lisäyksen jälkeen hieman liian yksinkertaiseksi omiin tarpeisiini, joten omien ruudunkaappausten näyttäminen ei sanoisi ohjelmasta mitään.

SportsTracker on varmasti ihan hyvä ohjelmisto urheilusuoritusten seuraamiseen ja suorituksista saa irti erilaisia tilastoja, jos sellaisia haluaa. Ohjelman ominaisuudet vain ovat hieman rajatut, mutta riippuen käyttötarpeista, varmasti ihan riittävät. Pikaisella testauksella ohjelman toimivuudesta on vaikea sanoa enempää, mutta ainakin Windowsissa asennuspaketoinnissa ja käppyrän piirrossa riittää vielä kehitettävää. Myös ohjelman ominaisuuksiin toivoisi hieman lisäystä.

WebKit-selaimen asentaminen ja käyttö Windows- ja Linux-ympäristöissä: melkein kuin OS X:n Safari

Monday By Noon -blogi kirjoittaa WebKit -selaimen kääntämisestä Linuxille Qt-kirjaston kanssa. Koska tällä hetkellä pääkäyttöjärjestelmäni on vaihteeksi Windows XP, tuli mieleen kokeilla WebKit -selaimen kääntämistä Windowsin puolella. Linuxissahan se näytti onnistuvan helposti.

WebKit on avoimen lähdekoodin web-selainmoottori. WebKit nimellä tunnetaan myös Mac OS X:n järjestelmäympäristön versio kyseisestä moottorista, jota käytetään muun muassa Mac OS X:n Safari, Dashboard ja Mail -sovelluksissa. On kuitenkin huomattava, että Safari ja WebKit ovat kaksi täysin eri asiaa; Safari on selain, joka käyttää WebKitiä sivujen renderöimiseen. WebKitin HTML ja JavaScript koodit ovat saaneet alkunsa KDE -projektin KHTML ja KJS kirjastoista ja joitain WebKitiin tehtyjä muutoksia ja korjauksia nähdään myös KHTML:n koodissa.

Ennen WebKit-selaimen kääntämistä testasin Monday by Noon -blogikirjoituksen kommenteissa viitattua Swift -selainta Windowsille, joka käyttää moottorinaan WebKitiä. Swift on kehitysasteeltaan vasta 0.2 alpha ja osoittautuikin epävakaaksi. Myös selaimen perusominaisuuksissa oli suuria puutteita, eikä kestänyt kauaa, kun jo sain Swiftin kaatumaan. Jutun kommenteissa hieman viitattiin, että Swift näyttäisi CSS-renderöintivirheet samalla tavalla kuin Safari, mutta en tätä itse testannut. Jos kommentti pitää paikkansa, on Swift helppo, joskin tässä vaiheessa vielä epävakaa testiselain www-sivujen ulkonäön tarkasteluun.

Seuraavaksi testivuoroon WebKitin kääntäminen Windowsissa ja nopea katsaus Googlen löytämiin tuloksiin tarjosikin WebKitin Wikistä löytyvät ohjeet WebKitin kääntämiseksi Windowsissa, käyttäen cygwiniä ja muutamia tarvittavia lisäkirjastoja.

Windowsissa WebKitin kääntäminen vaati hieman pohjustusta muun muassa cygwin -ympäristön asentamisessa, mutta ohjeet olivat selkeät. Lisäksi tarvittiin WebKit -projektin checkout, eli lähdekoodien hakeminen, versionhallinnasta, muutamia lisäkirjastoja asennusskriptillä, muutaman paketin lataaminen ja lopulta kaikki tarvittavat materiaalit olivat valmiina. Kun vielä kääntämiseen oli tarjolla valmis skripti cygwiniä tai Visual Studio -projektia käytettäessä, tarvitsi vain aloittaa kääntäminen haluamallaan tavalla.

Rivit vilisivät ruudulla, kun kääntöprosessi sulatteli lähdekoodeja, mutta koska mikään ei ole koskaan liian helppoa, antoivat sekä cygwinissä että Visual Studiossa ajettu kääntö saman vastauksen: ”Build failed”. Ei onnistu. Liian helpoltahan tämä jo vaikuttikin.

Windows-arpa oli tällä erää kokeiltu ja tyhjähän sieltä paljastui. Kääntö aiheutti vielä sen verran runsaasti virheitä ja varoituksia, ettei mielenkiinto eikä aika riittänyt niiden tutkimiseen. Vaihtoehtona oli vielä WebKitin kääntäminen Linuxille Qt-kirjaston kanssa ja Linux-arvan katsomisen vuoro. Samalla tämän kirjoituksen otsikkokin muuttui aiheen lipsuessa Windowsista Linuxiin.

Linuxiin löytyikin jo valmiit ohjeet, joten terminaali auki, tarvittavien lisäkirjastojen asennus ja kääntö käyntiin annettujen ohjeiden avulla. Rivit vilisivät ruudulla, kunnes kääntö pysähtyi virheeseen. Ongelmaan auttoi WebKitin Wikistä lötyvän ”Building the Qt port on Linux” -kirjoituksen ohjeet muutamiin yleisiin käännösongelmiin. Tämän jälkeen WebKit kääntyikin ongelmitta. Vielä LD_LIBRARY_PATHin asettaminen osoittamaan ”WebKit/WebKitBuild/Releases/lib/”-hakemistoon, jotta QtLauncher löysi libWebKitQt:n ja selain oli käynnissä. Vaikka ohjeet olivat tehty käyttäen Ubuntua, onnistui kääntäminen samoilla ohjeilla myös 64-bittisessä Gentoossa.

Ei siis WebKit-selainta Windowsille, ohjeista huolimatta, vaan WebKit Linuxille. Voi hyvinkin olla, että tekiessäni checkoutin, oli kyseinen versio jostain hajalla ja ei siksi kääntynyt Windowsissa. Toisaalta veikkaan, että käyttäjässä oli vikaa. Onneksi kääntöprosessi on tehty kohtalaisen helpoksi, joten kääntämistä voi yrittää myöhemminkin vain parilla klikkauksella.

Linuxissa Qt-kirjastoa käyttävä WebKit on käytettävyydessä jotakuinkin hieman samaa tasoa, kuin aikaisemmin mainitsemani Swift-selain Windowsissa: näyttää web-sivut safarimaisesti ja sivuhistoriassa voi liikkua eteen- ja taaksepäin. Ja siihen selaimen toiminnallisuus rajoittuukin. Ulkoasukin on karu, sisältäen vain muutamat navigointinapit ja osoitekentän. Kokonaisuutena Swift tarjoaa kuitenkin parempaa selausta välilehtien ja viimeistellymmän ulkoasunsa ansiosta.

Odotin Linuxissa toimivalta WebKitiltä hieman enemmän, mutta kuten aikaisemmin kirjoitin, WebKit ja Safari ovat kaksi eri asiaa. Mielikuvat liikkuivat Safarimaisessa selaimessa, mutta sain pelkän selainmoottorin ja pari hassua nappia. Ohjesivuilla oli kyllä ruudunkaappauksia, mutta jotenkin sivuutin koko asian.

Periaatteessa WebKit-moottorilla Windowsissa tai Linuxissa renderöidyn web-sivun pitäis näyttää samalta kuin OS X:n Safarissa, mutta käytännössä tämä ei välttämättä toteudu. WebKitiä voi kuitenkin soveltaa nopeaan testaukseen, jos Safaria ei ole saatavilla. Linuxissa myös Konqueror, joka käyttää myös WebKitin pohjana olevaa KHTML-moottoria, soveltuu web-sivujen testaamiseen ja lukemani perusteella näyttää sivustot Safarimaisesti lomakkeita lukuunottamatta.

Parhain ja varmin testitulos web-sivujen testauksessa saavutetaan kuitenkin käyttämällä autenttista OS X -ympäristöä, virtualisoiden tai ilman. WebKit on kuitenkin vain osa Safarin tarjoamaa kokonaisuutta.

Lisäys 17.7.2007:
Apple julkaisi kesäkuussa WWDC:n yhteydessä Safari-selaimensa myös Windowsille. Nyt ei ole enää ei ole tarvetta viritellä WebKitiä ihan vain web-sivujen testaamiseksi. Safari 3 Public Beta tosin käynnistyi hieman ontuen, kun Windows-versiossa oli ikäviä toimivuusongelmia. Varsinaista Beta-tasoa.

vim: eroon turhista merkeistä tekstitiedostossa

Kaikkien tehokäyttäjien rakastama (tai vihaama) Vim on tehokas komentorivieditori ja sen käyttöön löytyy paljon vinkkejä.

Joskus tekstitiedostoja muokatessa ja niitä siirtäessä Windowsin ja Unixin välillä, tulee tiedostoon rivien loppuun ^M -merkkejä. Nämä on helppo poistaa Vimin vinkillä #26: Eroon ^M -merkeistä.

Ohjeessa käytetään :%s/^M$//g -komentoa, jolla rivin lopussa olevat ^M -merkit korvataan tyhjällä. ^M -merkki saadaan aikaan CTRL-V ja CTRL-M yhdistelmällä.

Vinkin kommenteissa on lisää vinkkejä ^M -merkkien korvaamiseen, komennon lisäämistä pikanäppäimen alle ja useiden tiedostojen käsittelyä kerralla.

Sammuta Linux virtanapista

Tietokoneen sammuttaminen on yleensä helppoa, valikoista valitaan ”sammuta” ja kone sammuu nätisti. Hieman vaikeampaa on tietokoneen sammuttaminen, jos koneessa ei ole näyttöä kiinni, mutta usein tämäkin ongelma ratkeaa ottamalla etäyhteys. Aina tämäkään ei ole mahdollista, joten tarvitaan jotain muuta, kuten ACPI ja sen avulla tehtävät tapahtumat.

Gentoo Wiki:ssä on asiasta hyvät ohjeet, jossa koneen virtanappi laitetaan tekemään tietty tapahtuma, jonka acpid -daemon prosessoi. Tai oikeastaan acpid -daemon tarkkailee, jos virtanappia painetaan ja suorittaa tämän jälkeen halutun skriptin.

Yksinkertaisuudessaan virtanapin virittämiseen tarvitaan seuraavat asiat:

  1. Laitteisto, joka tukee ACPI virranhallintaa
  2. Kerneliin on käännetty tuki ACPI:lle
  3. Virtanappi on rekisteröity ACPI tapahtumaksi
  4. acpid kuuntelee ACPI tapahtumia
  5. Skripti virtanapin tapahtuman käsittelyyn

Kohdat 1, 2 ja 4 ovat triviaaleja, joten en niitä tähän (itselleni muistiin) kirjoita.

Virtanapin rekisteröiminen tapahtuu seuraavasti:

~ # cat >> /etc/acpi/events/default <<EOT

# handle the power button press
event=button[ /]power
action=/etc/acpi/onButtonPress-Power.sh
EOT

Ja sammutusskripti:

~ #cat > /etc/acpi/onButtonPress-Power.sh <<EOT
#!/bin/sh
# /etc/acpi/onButtonPress-Power.sh
# Shutdown when the power button is pressed

logger ”Power button pressed — shutting system down”
/sbin/shutdown -h now
EOT

Lopuksi skriptille annetaan suoritusoikeudet chmod 750 /etc/acpi/onButtonPress-Power.sh ja käynnistetään acpid -daemon uudestaan.

Nyt tietokoneen pitäisi sammua hallitusti virtanapista painamalla. Helppoa ja yksinkertaista. Testattu Gentoo Linuxissa ja toimivuudesta muissa Linux distribuutioissa ei tietoa, joten tarvittaessa sovella.

Ulkoinen kiintolevy Mac ja Linux ympäristössä

Ostin Lacien ulkoisen kiintolevyn varastolevyksi, jota voi tarvittaessa liikutella iBookin parina. Vaikka normaalisti mietin (hieman liiankin) tarkkaan rahan sijoittamista elektroniikkaan, oli Lacien pelkistetyn harmaa, elegantti ja F.A. Porschen suunnittelema laatikko hinta/ominaisuus -suhteiltaan hyvä ostos. Ainakin omasta mielestäni ja sehän riittää.

Ominaisuuksiltaan ulkoisesta levystä löytyy USB2.0 -liitäntä virtalähteineen ja kotelon sisältä paljastui Seagaten 7200.10 8MB (ST3320820A) PATA -kiintolevy. Ulkoisia levyjä oli tarjolla myös Firewire ja eSATA -liitännöillä ja SATA-levyillä, mutta hinta nousee tuoreemmalla tekniikalla jo hieman liian paljon hyötyyn nähden.

Olin alkuun hieman huolestunut, miten Mac OS X:ssä alustettu levy toimisi muissa käyttöjärjestelmissä, sillä Mac:n HFS+ (Mac OS Extended) -tiedostojärjestelmä on Microsoftin NTFS:n tapaan hieman rajoitetusti tuettu muilla alustoilla. Lisäksi OS X:n tuki muille tiedostojärjestelmille on UNIX -taustastaan huolimatta lähes yhtä heikkoa kuin Microsoft Windowsissa. Mac OS X tukee HFS+:n lisäksi myös UFS (UNIX File System) ja FAT32 -tiedostojärjestelmiä, mutta ne eivät olleet houkuttelevia vaihtoehtoja muiden käyttöjärjestelmien tuen tai rajoittuneiden ominaisuuksien suhteen. Erillisen laajennuksen avulla OS X osaa sekä kirjoittaa että lukea Linuxissa yleisesti käytettävää ext2 -tiedostojärjestelmää, mutta tämäkään vaihtoehto ei houkutellut. Rajoitettu tuki eri tiedostojärjestelmille on Linuxinkin puolelta tuttua, sillä toimiva kirjoitus-luku -tuki NTFS:lle saatiin kasaan vasta äskettäin.

Ainoaksi järkeväksi vaihtoehdoksi jäi HFS+:n käyttäminen, jolle löytyy Linuxista täysi tuki, kun journalointia ei ole käytössä. Muutamat vivut päälle kernelin asetuksista, kernelin kääntö, uudelleenkäynnistys ja levy kiinni. Asiasta löytyy lisäksi ohjeet Gentoo Wiki:stä. Myös Windowsin pitäisi osata ainakin lukea ja rajoitetusti kirjoittaa HFS+ -tiedostojärjestelmää MacDrive työkalun avulla. Itselle riittää, että levyä voi kanniskella iBookin kanssa, käyttää Linuxissa ja tarvittaessa jakaa levyä Windowsille Samban läpi.

Tietotekniikka on ihmeellistä ja erilaisia järjestelmiä on useita. Harmittavan usein erilaiset järjestelmät eivät tule toimeen keskenään ja ainoa mikä tästä kärsii on käyttäjä.

Linux, Flash ja 64-bittinen Firefox

Gentoo:n Wikissä on ohjeet Flashin käyttämiseen Firefoxissa ja eikä siinä juuri mitään ihmeellistä ole. Yksi emerge-loitsu (emerge -av net-www/netscape-flash) ja Firefoxin uudelleenkäynnistys. 64-bittisellä alustalla tarvitaan netscape-flashin lisäksi nspluginwrapper -ohjelma, jos halutaan käyttää 64-bittistä Firefoxia ja 32-bittistä Flashia. Nspluginwrapper mahdollistaa 32-bittisen lisäosan käyttämisen 64-bittisessä selaimessa.

Nspluginwrapper asentuu komennolla emerge -av nspluginwrapper ja asentaa 32-bittisen Flash-laajennuksen 64-bittisen Firefoxin käyttöön.

Saamalla 32-bittinen Flash toimimaan 64-bittisessä Firefoxissa ei vielä saavuteta juurikaan mitään, sillä lukuiset muut hyödylliset lisäosat kuten Suomen kielen oikoluku ja HTML Validator ovat tällä hetkellä saatavilla vain 32-bittiselle alustalle. Vastaavasti taas joitain lisäosia ei saa 64-bittisellä alustalla toimimaan 32-bittisen Firefoxin binäärin kanssa. ”You win, you lose” -tilanne.

Periaatteessa on aika sama käyttääkö 64-bittistä vai 32-bittistä binääriä, mutta mutu-tuntumalla 64-bittiselle alustalle optimoitu Firefox toimii hieman sulavammin ja syö vähemmän tehoa, varsinkin jos sivustolla on Flash-sisältöä. Käytännössä elämä 64-bittisellä alustalla on ajoittain hieman hankalaa ja etuja lisäbiteistä on vaikea sanoa.

Täytyykin tästä vaihtaa takaisin 32-bittiseen binääriin, niin Suomen kielen oikoluku voi tarkistaa tämänkin kirjoituksen. Vielä kun automaattinen oikoluku korjaisi myös ajatusvirheet ja jäsentelisi kirjoituksen järkevään muotoon.

Microsoft telttailee Vistan kanssa Kampissa

Tietokone uutisoi Microsoftin tammikuun viimeisenä päivänä alkavasta Vista-kampanjasta, joka näkyy myös Helsingin katukuvassa. Microsoft pystyttää Helsingin Kampintorille teltan, joka toimii Vistan Suomen lanseerauksen tukikohtana. Ohjelmassa on tietojen mukaan Vista-hengennostatusta Microsoftin kumppaneille ja yleisölle esitellään Vistaa ja sen erilaisia käyttötapoja. Teltta on avoinna yleisölle perjantaista sunnuntaihin eli 2.–4.2.2007.

Tietokoneen uutisoinnista ei selvinnyt tarkoitetaanko Kampintorilla Kampin sisäpihaa vai ulkoaluetta, mutta en kyllä osaa kuvitella Microsoftia, tai muutakaan yritystä, telttailemassa Suomen talvessa. Viima ja kylmyys purevat auttamatta, oli talvi leuto tai ei.

Vista-teltta toi mieleen heti ajatuksen vaihtoehtoisesta Linux-teltasta ja Tietokoneen blogissa jo heräteltiin Linux-advokaatteja pystyttämään Vista-teltan viereen pingviinilogolla varustetun puolijoukkueteltan, josta jaeltaisiin tietoutta vaihtoehtokäyttöjärjestelmästä – ja kaupan päälle vielä Ubuntun asennus-cd:n.

Linux – Windows -vastakkainasettelu olisi toki mielenkiintoinen, mutta reikäinen ja nuhjaantunut puolijoukkueteltta pingviinilogolla toisi ennemminkin mieleen anarkistimaisen meuhkaamisen ydinvoimaa, kulutusyhteiskuntaa, turkiksia, lihaa jne. vastaan, eikä varteenotettavaa vaihtoehtokäyttöjärjestelmää.

Tietenkin eri teltat vetoaisivat erilaisiin kohderyhmiin ja kaikki julkisuushan on julkisuutta. Voin vain kuvitella millaisia otsikoita ja kuvia tuosta saisi. Lisätään torille vielä Mac-teltta (jossa esiteltäisiin Leopardia), niin kaikki vaihtoehtoiset käyttöjärjestelmät olisivat katettu :)