17.12.2015

Musiikkia omaksi iloksi (ja toisten kauhistukseksi)

Tilasin noin vuosi sitten Thomannilta M-Audion Keystation 61 -midi-keyboardin ja iltapuhteiksi silloin virittelin työpöytäkoneelleni pienimuotoista musiikkisoftien kokoelmaa. Hommassa olikin jonkinlainen savotta - aina realtime kernelin asentamisesta musasoftien konfigurointiin - kun Linux ei tarjonnut asiaan mitään helppoa plug'n'play -meininkiä. Yksittäisiä pimputtelusessioita pidemmälle asia ei silloin kuitenkaan jostain syystä edennyt.

Keväällä työpaikan leasing-kannettava meni vaihtoon ja päätin kaikista antipatioistani huolimatta ottaa oman Vaio Pron kaveriksi Macbook Pron. Aikani mäkkiä pyöriteltyäni (käyttis nyt on mitä on, mutta rauta - etenkin Retina-näyttö - on mainio) tulin lopulta testanneksi Keystationia koneen mukana tulleella ilmaisella GarageBandilla. Se mikä Linuxin musasoftissa on suht' monimutkaista ja työlästä, on GarageBandissa (vähän liiankin) helppoa ja intuitiivista. Kesän kynnyksellä töiden vähentyessä alkoi musiikkia syntymään; ensin pelkästään midi-näppäimistöllä soitettuna Jaakko Tepon savolaista huumorimusiikkia taustanauhaksi Antero Tuovisen kesäkeikalle, mutta melko pian käsiin päätyi paikallisesta musiikkiliikkestä Focusrite Scarlett 2i2 ja biiseihin alkoi sen myötä ilmestyä sekä akustista että sähköistä kitaraa.

Ensimmäinen näistä nauhoituksista oli Elvin elämää, joka on uusintapainos ensimmäisen kerran vuonna 1990 neliraiturille nauhoitetusta hupailupunkista. Nauhoituskaluston tasokin oli biisiin sopivaa "kotipolttoista" maininkiä: kitarana epävireinen noin 20 euron hintainen Chester ja huutomikkinä Playstation 2 -pelikonsolin singstar-mikki. Elviin tuli erään aamukahvin aikana päivitettyä kertosäkeistö ja sanat, mutta biisin ronski ote ja tatsi säilyi mielestäni uusintaversiossakin melko hyvin. Soitannot meni muuten helposti sisälle, mutta toisen säkeistön lopun huutoölinää piti ottaa jokusen kerran uusiksi ennen kuin siihen sai sellaisen "kitarisat-vaihtoon"-möyrinnän.

Elvin jälkeen taltioin muutamia "oikeita ja kunnollisia" teoksia, kuten esimerkiksi J.S.Bachin Invention 13 BWV 784:n mutta toki säväkillä rumpukompeilla ryyditettynä. Lisäksi kesän aikana digitaalisen ikuistuksen sai kolme noin 25-vuotta vanhaa hard rock -biisiä, ja syntyipä vähän kuin vahingossa myös yksi uusi heavybiisi ja yksi iskelmällinen suomipop-teos (josta ei kylläkään vielä tiedä miksi se lopulta muotoutuu). Näihin biiseihin on vielä laulut nauhoittamatta kun niitä ei viitsi pilata omalla, kaikkien nuottien vierestä menevällä raakkumisella. Alustavasti laulujen nauhoitus on sovittu kaverin kanssa ensi vuoden alkupuolelle. Nyt on kalustoonkin on panostettu aavistuksen Elvi-nauhoitusta enemmän, kun GarageBand on korvautunut Logic Pro X:llä (GarageBandin isoveli) ja Chester Epiphonen Les Paul Standardilla. Toki on sanottava, että ei taso pelkällä kaluston päivittämisellä parane, mutta onneksi eräs musiikkituotantoon erikoistunut kollega on luvannut antaa oppitunnin miksauksesta ja masteroinnista, kun tähän asti olen mennyt puhtaalla "ei-mitään-hajua-kokeillaan-tuota-namiskaa" -meiningillä.

Samalla "väännetään-väkisin-ilman-minkäänlaista-osaamista"-asenteella tuli myös pyöräytettyä elämäni ensimmäinen "video". Liekö kyse ollut kuumepotilaan hourailusta vai mistä, mutta kun siitä tuli yhtä huono kuin biisistäkin niin olihan se aivan pakko julkaista, vaikka itse biisiäkään ei ole vielä kunnolla miksattu eikä masteroitu. Joten dear ladys and gentlemans, you have been warned, tällaista on Elvin elämä:


Tulevaisuudessa mahdollisesti jotain vakavampaa ja totisemmin tehtyä. Nyt kaikille oikein mukavaa joulun aikaa ja hyvää tulevaa vuotta!

28.2.2014

Yöllistä nörttipuuhastelua

Blogi ja sen päivittäminen on näköjään ollut unohduksissa pitkään, mutta jospa sitä joskus
muistaessaan muutaman sanan yrittäisi kirjoitella. Ja heti vedetään pari henkäystä taaksepäin: ei kannata odottaa mitään huimaa kerran kuukaudessa -tahtia tulevaisuudessakaan. Tässä artikkelissa ajattelin muutamalla sanalla kuvata muutamia yöpuuhasteluina omaan käyttöön syntyneitä modifikaatioita, joilla ei ole mitään käytännön merkitystä, mutta ehkä mieltä piristävä vaikutus kuitenkin. Mikäli haluat testailla näitä, ole hyvä vain.

Säätila työpöydälle


Vaikka nörtti ei välttämättä osaa katsoa vallitsevaa säätä ikkunasta - puhumattakaan siitä että pistäisi nenän ulos - voi hän olla kiinnostunut säätilasta ja -ennustuksista, muutenkin kuin pelkästään Kerttu Kotakorven ja Mette Mannosen vuoksi. Selaimeen Ilmatieteenlaitoksen tai vastaavien sivuja tulee kuitenkin hyvin harvoin auottua, joten tärkein sääinformaatio suoraan työpöydällä näytettynä on toimiva ratkaisu. Itse olen tiiraillut vuosien aikana sääennusteita Xfcen ja Gnomen plugineista ja sopivasti modifioidusta Dasbaerin Ilmatieteenlaitoksen sivuilta parsimasta Conkysta. Taannoin Arch Linuxin foorumeilla surffailesssani silmiini sattuisatya164:n Yahoon Weather API:a hyödyntävä Conky-skripti, joka vaikutti mainiolta korvaajalta silloin tällöin virheellistä sääinformaatiota Norjan ilmatieteenlaitokselta välittäneelle Xfcen Weather-pluginille.

Halusin kuitenkin sovittaa sääskriptin yhtenäiseksi työpöytäni ja olemassa olevaan Conky- skriptin kanssa (kuva alla) sekä lisätä siihen tietoa esimerkiksi päivänpituudesta, tuntuu kuin -lämpötilasta ja ilmanpaineen vaihtelusta. Lisäksi Yahoon Weather API palauttaa osan tiedoista jenkkiformaatissa (mm. auringon nousu- ja laskuajat sekä tuulen nopeus), joten tiedot oli myös  konvertoitava Suomessa käytettäviin yksiköihin. Koska konvertointi vaati pientä laskentaa, päädyin erilliseen komentotulkkiskriptiin jota kutsutaan Conkysta. Bash ei pysty ilman pieniä kikkailuja käsittelemään liukulukuja ja koska olen itse jokin aika sitten siirtynyt käyttämään komentotulkkina Zsh:ta, oli se luonteva vaihtoehto. Sinällään skriptissä ei ole muuta Zsh-spesifistista kuin laskenta float-luvuilla.

Säätiedot integroituna työpöydän Conkyyn

Lämpöasteita helmikuussa


#!/usr/bin/zsh
# Perustuu satya164:n Conky-Google-Now -määrittelyihin

woeid=12590704 # Jyväskylän woeid
ay=227 # säätietojen sijoittaminen conkyn y-akselille

# hae sääennuste
curl -s "http://weather.yahooapis.com/forecastrss?w=$woeid&u=c" -o ~/.cache/weather.xml

# lue muuttujiin
temperature=`grep "yweather:condition" ~/.cache/weather.xml | grep -o "temp=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*"`
weathertext=`grep "yweather:condition" ~/.cache/weather.xml | grep -o "text=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*"`
speedkmh=`grep "yweather:wind" ~/.cache/weather.xml | grep -o "speed=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*"`
feelslike=`grep "yweather:wind" ~/.cache/weather.xml | grep -o "chill=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*"`
humidity=`grep "yweather:atmosphere" ~/.cache/weather.xml | grep -o "humidity=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*"`
pressure=`grep "yweather:atmosphere" ~/.cache/weather.xml | grep -o "pressure=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*"`
rising=`grep "yweather:atmosphere" ~/.cache/weather.xml | grep -o "rising=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*"`

# tuulen nopeus m/s
speed=`printf "%.1f" $(($speedkmh * 0.28)) | sed -e "s/,/./g"`


# auringon nousu ja lasku suomalaisessa muodossa
sr=`grep "yweather:astronomy" ~/.cache/weather.xml | grep -o "sunrise=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*"`
sunrise=`date -d "$sr" +%H:%M`
ss=`grep "yweather:astronomy" ~/.cache/weather.xml | grep -o "sunset=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*"`
sunset=`date -d "$ss" +%H:%M`

# päivän pituus
srsec=`date -d "$sr" +%s`
sssec=`date -d "$ss" +%s`
diff=$(($sssec-$srsec))
dlen="($(($diff / 3600))h $(($diff % 3600 /60 ))m)"

# ennuste
high1=`grep "yweather:forecast" ~/.cache/weather.xml | grep -o "high=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*" | awk 'NR==2'`
low1=`grep "yweather:forecast" ~/.cache/weather.xml | grep -o "low=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*" | awk 'NR==2'`
high2=`grep "yweather:forecast" ~/.cache/weather.xml | grep -o "high=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*" | awk 'NR==3'`
low2=`grep "yweather:forecast" ~/.cache/weather.xml | grep -o "low=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*" | awk 'NR==3'`

# kopio oikeat kuvat
cp -f ~/.config/conky/.conky-google-now/$(grep "yweather:condition" ~/.cache/weather.xml | grep -o "code=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*").png ~/.cache/weather.png
cp -f ~/.config/conky/.conky-google-now/$(grep "yweather:forecast" ~/.cache/weather.xml | grep -o "code=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*" | awk 'NR==2').png ~/.cache/weather-tomorrow.png
cp -f ~/.config/conky/.conky-google-now/$(grep "yweather:forecast" ~/.cache/weather.xml | grep -o "code=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*" | awk 'NR==3').png ~/.cache/weather-tomorrow2.png

# conkylle menevä tulos
echo "\${color white}\${font Caviar Dreams:size=18}\${alignr}$temperature°"
echo "\${voffset -26}\${font caviar dreams:size=9}$weathertext"
echo "\${font}\${voffset -20}\${alignr}\${image ~/.cache/weather.png -p 160,$ay -s 40x40}"
echo "\${image ~/.config/conky/.conky-google-now/wind.png -p 0,$ay -s 15x15}\${goto 35}\${voffset 10}$speed m/s ($feelslike°)"
echo "\${image ~/.config/conky/.conky-google-now/humidity.png -p 0,$(($ay+15)) -s 15x15}\${goto 35}\${voffset 2}$humidity%"
echo "\${image ~/.config/conky/.conky-google-now/pressure.png -p 0,$(($ay+29)) -s 15x15}\${goto 35}\${voffset 2}$pressure hPa \${font Arial:size=10}\${if_match $rising == 1} ▲\${else}\${if_match $rising == 2} ▼\${else}\${if_match $rising == 0} ~\${endif}\${endif}\${endif}"
echo "\${font}\${image ~/.config/conky/.conky-google-now/moon.png -p 0,$(($ay+46)) -s 15x15}\${goto 35}\${voffset -2}$sunrise - $sunset $dlen"
echo "\${image ~/.cache/weather-tomorrow.png -p 0,$(($ay+60)) -s 20x20}\${image ~/.cache/weather-tomorrow2.png -p 115,$(($ay+60)) -s 20x20}"
echo "\${voffset -10}\${goto 35}$low1° / $high1°\${alignr}$low2° / $high2°"


Mikäli haluat kokeilla skriptiä, niin lataa satya164:n Conky-Google-Now -paketti ja pura siitä .conky-google-now -kuvahakemisto (muita tiedostoja ei tarvita) hakemiston ~/.config/conky alle. Sijoita sitten yllä oleva conkyweather-skripti joko ~/.config/conky -hakemistoon tai esim. ~/bin -hakemistoon, anna sille suoritusoikeus (chmod +x conkyweather) ja vaihda woeid-muuttujan arvo vastaamaan omaa sijaintiasi (Google auttaa). Skriptin kutsuminen Conkysta on helppoa: oikeaan kohtaan konffitiedostossa sijoitettu ${excepi 1800 conkyweather} päivittää säätiedot Conkyyn puolen tunnin välein (1800 sekuntia on puoli tuntia). Skripti sitoo säätietojen ulkoasun yllä olevan screenshotin mukaiseksi, mutta voit määritellä säätietojen sijainnin pystyakselilla muuttamalla ay-muuttujan arvoa. Suurempien muutosten tekeminen vaatii skriptin loppuosassa (alkaen kommentista "Conkylle menevä tulos") olevien Conky-määrittelyiden muuttamista. Huomaa,että skriptissä käytettäväksi kirjaisimeksi on määritelty Caviar Dreams - mikäli sinulla ei ole kyseistä fonttia tai et pidä siitä, muuta Caviar Dreamsiin viittaavat kohdat haluamaksesi. Loppukommettina todettakoon, että myös Yahoon Weather API näyttää suurimmaksi osaksi lusmuilevan ilmanpaineen ilmoittamisessa.


Pari Arch Linux -teemaa SLiM:iin


SLiM on yksinkertainen ja suht' koruton login manager -ohjelma, jonka tehtävänä on huolehtia käyttäjän sisäänkirjautumiseen liittyvistä toiminnoista. Vaikka SLiM:n ja Systemd:n yhteiselossa on pientä kitkaa, en ole nähnyt suurta tarvetta vaihtaa raskaampiin login managereihin yksityiskäytössä olevissa koneissa. SLiM:n yksinkertaisuuden voi havaita jo tarkastelemalla sen manuaalia, jonka pohjalta konfigurointi on helppoa ja nopeaa.

SLiM:lle löytyy useita erilaisia teemoja (esim. Arch Linuxille on distrospesifistisiä teemoja paketissa archlinux-themes-slim), mutta kun joku yö sattuu olemaan sopivasti ylimääräistä aikaa eikä muuta järkevää tekemistä, niin tokihan sitä tulee parit omat teemat värkättyä ettei vaan tarvitse nukkumaan mennä. Itse graafisesti heikohkona tapauksena otin muutaman mukavan taustakuvan, modifioin niitä hieman Gimpillä (punaiseen Arch Linuxin logo ja vähän efektejä + paneliin musta mutta läpinäkyvä tausta ja siniseen tekstuurin monistamista, värihäivytyksiä yms) ja muokkasin teeman konffitiedostoa. Nopeaa ja vaivatonta. Alla omat värkkäykseni.







Koska nämä ovat omaan käyttöön tarkoitettuja viritelmiä, en ole tehnyt niistä mitään paketteja. Mikäli haluat kokeilla teemoja itse, pistä postia tulemaan niin laitan filet.

13.8.2013

Citrix Receiver Arch Linuxiin

Kesällä ostamani uuden kannettavan myötä jouduin taistelemaan jälleen Citrix Receiverin asennuksen kanssa. Ei se nytkään ihan suorilta lähtenyt tulille, vaikka aika paljon helpommalla selvisin edelliskertaan verrattuna. Arch Linuxin wikistä löytyi hyvät suuntaviivat, joita soveltamalla homma onnistui. Citrix on itselleni tuiki tarpeellinen työpaikan erityissoftiin ja -palveluihin kiinni pääsemiseksi, joten ajattelin nyt kirjata ylös toimenpiteet seuraavaa(?) kertaa varten.

Käytettäessä 64-bittistä Linux-versiota täytyy ennen Citrix Receiverin asennusta tehdä pienoisia valmisteluja. Asenna seuraavat 32-bittiset paketit Archin pakettivarastosta (multilib-repositoryn täytyy olla enabloituna):

nspluginwrapper, lib32-libxmu, lib32-alsa-lib, lib32-gcc-libs, lib32-libxft, lib32-gtk2 ja lib32-libxdamage

Myös ca-certificates -paketti on tarpeellinen, jos se ei ole jo valmiiksi asennettuna. Lisäksi AUR:sta tulee asentaa lib32-alsa-lib, lib32-gtk2, lib32-libvorbis, lib32-libxp, lib32-libxpm ja lib32-openmotif.

Gcc, gcc-libs ja binutils ovat ristiriidassa niiden multilib-vastineiden kanssa, joten joudut poistamaan paketit ennen AUR-pakettien asentamista. Muista asentaa alkuperäiset paketit uudelleen AUR-pakettien asentamisen jälkeen.

Esivalmistelujen jälkeen lataa Citrix Receiver for Linux (x86-versio, tar.gz -paketti) ja
pura se (tar zxvf linuxx86_12.1.0.203066.tar.gz). Siirry uuteen alihakemistoon linuxx86, avaa hinst-skripti tekstieditoriin ja muokkaa (noin rivillä 1233)
rivi echo $Arch|grep "i[0-9]86" >/dev/null muotoon  echo $Arch|grep "86" >/dev/null (kiitos vinkistä), jotta asennus ei kaadu arkkitehtuurin tunnistusongelmaan.

Suorita seuraavaksi softan asentava setupwfc-skripti pääkäyttäjänä. Asennuksen jälkeen selainpluginin pitäisi olla toiminnassa - voit varmistua asiasta katsomalla, että selaimen plugin-listasta (Chromiumissa chrome://plugins) löytyy Citrix Receiver for Linux. Mikäli selain valittaa etäsoftan käynnistyksen yhteydessä puuttuvista sertifikaateista, kopio ca-certificates -paketin asentamat sertifikaatit vielä ICAClientin omaan hakemistoon komenolla

# cp /usr/share/ca-certificates/mozilla/* /opt/Citrix/ICAClient/keystore/cacerts

Tämän jälkeen homman pitäisi olla kunnossa. Mikäli käytät jotain muuta selainta, voit joutua tekemään vielä lisäkikkailuja.

14.3.2013

Game on


Peliala on Tekesin artikkelin mukaan viihdeteollisuuden nopeimmin kasvava osa. Alan hurjaa kasvua selittää etenkin mobiilipelaamisen hurja suosio. Myös Suomen peliala on ollut viime vuosina kovassa nousussa Angry Birdsin ja muiden menestystuotteiden myötä, ja kasvun odotetaan jatkuvan tulevaisuudessakin. Media on rummuttanut kovaan ääneen peliteollisuutta vaivaavaa osaajapulaa.

Suomen koulutuskenttä on hiljalleen heräänyt ja kuunnellut korvat höröllään pelialan toimijoiden toiveita. Nykyisin pelialalle valmistavia opintoja voi suorittaa jossain laajudessa useissa oppilaitoksissa: Kajaanin AMK:n tietojenkäsittelyn koulutusohjelma lienee alan pioneeri Suomessa ja myöhemmin esimerkiksi Karelia ammattikorkeakoulu ja Tampereen AMK ovat seuranneet samaa polkua. Jyväskylässä pelikoulutusta on tarjottu 15 opintopisteen verran JAMK:n ohjelmistotekniikan koulutusohjelmassa. Myös paikallisella yliopistolla on pelikehitykseen liittyvää koulutusta ainakin nuorten peliohjelmointi -kurssin muodossa.

Myös JAMK:n tietojenkäsittelyn koulutusohjelma (Tiko) on päättänyt hypätä mukaan pelilaivaan. Asia on noteerattu ja uutisoitu mediassa monella tavalla (esimerkiksi Tietokone, MB, 3T, Yle ja Tietoviikko). Uutissähkeisiin tarkennuksena voisi mainita, että kyse ei ole uudesta koulutusohjelmasta, vaan siitä että osa opiskelijoista voi suunnata osaamistaan pelikehitykseen ja -liiketoimintaan koulutusohjelman tarjoaman koulutuksen puitteissa. Tikon koulutuksen fokus on WWW-sovelluskehityksessä, ja opiskelijoille tarjottava mahdollisuus tuottaa web- ja mobiilipelejä tukee koulutusohjelman linjaa mukavasti. Pelikehityksestä kiinnostunut opiskelija voi toteuttaa ensimmäisen vuoden perusopintojen harjoitustöinä pieniä pelejä ja osallistua esimerkiksi valinnaiselle HTML5 Game Development -opintojaksolle. Toisen vuoden opinnot ovat 80 prosenttisesti projektiopintoja (ruotsilla, matematiikalla ja markkinoinnilla irrottaudutaan vuoden saatossa mukavasti projektitohinasta), joissa pelikehitykseen suuntautuvat opskelijat keskittyvät kehittämään pelejä myytäväksi valittavia jakelukanavia hyödyntäen. Toisen vuoden projektiopintojen jälkeen pelikehityksestä kiinnostuneet opiskelijat jatkavat pääsääntöisesti yhtenäisenä ryhmänä peli-ideoidensa työstämistä myytäviksi tuotteiksi. Kiinnostaako? Aiheesta voi lukea lisää Tikon blogista.

Pelailua kotioloissa

Peleistä puhuttaessa ei voi ohittaa Steamin ilmestymistä Linuxille. Pingviini-yhteisö kiitti ja kumarsi. Testasin itsekin softaa pikaisesti (löytyy Arch Linuxin virallisesta pakettivarastosta) ja kyllähän se näytti toimivan. Vanhana Football Manager ja Enemy Territory -fanina huomasin kuitenkin varsin pian asentavani into pinkeänä kymmenen vuoden takaista Enemy Territoryä. Edellisestä pelikerrasta oli ehtinyt kulumaan pari vuotta ja muistelen joutuneeni tuolloin taistelemaan äänien kanssa. Olikin iloinen yllätys, kun muutamasta sekalaisesta lähteestä kalastamani vinkin perusteella kirjoitettu skripti toimi ja kaiuttimista jyrähti ET:n tarttuva alkutunnari.

Jos haluat itsekin haistella ja maistella nostalgiaa, niin tallennna oheinen koodipätkä tiedostoon ja anna siihen suoritusoikeudet.

#!/bin/bash
modprobe snd_seq_oss
modprobe snd_mixer_oss
modprobe snd_pcm_oss
echo "et.x86 0 0 direct" > /proc/asound/card0/pcm0p/oss
echo "et.x86 0 0 disable" > /proc/asound/card0/pcm0c/oss

Ennen pelisessiota aja tiedosto pääkäyttäjän oikeuksin (su -c "./tiedosto") ja starttaa sen jälkeen ET normaalisti peruskäyttäjän oikeuksilla. Jos yllä oleva ei toimi, kannattaa tsekata et-sld-sound. Äläkä jahtaa sitten E!n0:a!

14.2.2013

Mitä tapahtui eilisille urheilusähkeille?


Seuraan kiinnostavia nettisivustoja lähinnä RSS-syötteiden kautta, koska se on helppoa ja vaivatonta, eivätkä mielenkiintoiset artikkelit pääse karkaamaan silmien ohitse. Koska syötteitä pitää voida lukea usealta koneelta, olen käyttänyt Google Readeria - tosin web-käyttöliittymän sijasta erillisen lukuohjelman kautta. Omaan käyttööni soveltuvan lukuohjelman kanssa onkin ollut pienoista hakemista: vaatimuksena ohjelmalle on siis toimiva Google Reader -synkronointi, sisäinen selain, helppo keino avata artikkelit ulkoiseen selaimeen ja bonuksena mahdollisuus tallentaa artikkelit Diigoon.

Liferea on sopivan simppeli ja kevyt GTK-sovellus, mutta siinä oli aikoinaan jonkinmoista tahmaamista ja Google Readerin synkronointiin liittyviä ongelmia. Vaihdoin näiden ongelmien vuoksi Liferean Java-pohjaiseen (brrr, kylmiä väreitä...) RSSOwliin, joka tarjoaa sujuvan Google Reader -synkroinoinnin ja monipuoliset ominaisuudet. RSSOwl löytyy Arch Linuxin AUR:sta, mutta jokaisen version yhteydessä saa varautua pieneen taisteluun sovelluksen saamiseksi toimintakuntoon. Uusin versio aiheutti itselleni erikoisia kaatumisia, minkä vuoksi päätin tarkistaa Liferean nykyhetken tilanteen.

Asensin Liferean kehitysversion (liferea-git) AUR:sta ja se tuntui toimivan ihan kelvollisesti. Sovellus on portattu GTK3:lle, mikä tarkoittaa esim. Xfce:ssa ja Openboxissa rumaa käyttöliittymää, mikäli käytössä ei ole GTK3-teemaa. Kuten aiemmassa artikkelissa kirjoitin, pidän itse erityisesti Murrine-Gray -GTK2-teemasta eikä sille ole GTK3-vastinetta, joten ratkaisin taannoin ongelman luomalla hakemiston ~/.config/gtk-3.0 ja lisäämällä tiedoston settings.ini seuraavin asetuksin:

[Settings]
gtk-theme-name = Zukitwo
gtk-icon-theme-name = fs-icons-gnome-style
gtk-fallback-icon-theme = gnome
gtk-font-name = Droid Sans 10

Yllä olevissa asetuksissa teemaksi on määritelty siis Zukitwo, jota käytetään GTK3-ohjelmille. Tämä ratkaisu toimii mainiosti Openboxissa, mutta ei Xfce:ssä. Xfce:llä homman saa toimimaan ainakin kopioimalla jostain olemassa olevasta GTK3-teemasta gtk-3.0 -hakemiston Xfce:ssä käytettävän GTK2-teeman alle. Itse kopioin siis /usr/share/themes/Zukitwo -hakemiston alla olevan gtk-3.0 -hakemiston /usr/share/themes/Murrine-Gray -hakemiston alle ja muokkasin settings.ini -tiedoston gtk-color-scheme -kohdassa määritellyt värit vastaamaan Murrine-Gray -teeman värejä. Toimii oikein nätisti. Jos muokattua teemaa haluaa käyttää myös Openboxissa, tarvitsee päivittää vain settings.ini -tiedoston gtk-theme-name -rivi Murrine-Gray:ksi.

Mutta takaisin Lifereaan... Nopean testauksen jälkeen havaitsin, että Liferean Google Reader -synkroinointi ei toimi edelleenkään toivomallani tavalla. Liferea hakee päivitettäessä vain 20 viimeisintä artikkelia eli käytännössä aamulla päivitettäessä esim. edellisen illan urheilusähkeet jäävät usein tulematta ja sehän ei sitten kerta kaikkiaan sovi. En alkanut asiaa sen kummemmin tutkimaan, vaan päätin kokeilla vanhassa bugiraportissa tarjottua korjausta, jossa päivitettävien artikkeleiden määrä kovakoodataan. Patchaus onnistuu AUR:sta käännettäessä lisäämällä PKGBUILD:iin ennen riviä autoreconf -i komento sed -i "s/www.google.com\/reader\/atom\/feed\/%s/www.google.com\/reader\/atom\/feed\/%s\?n=200/g" src/fl_sources/google_source_feed.c.

Näiden toimenpiteiden jälkeen Liferean Google Reader -synkroinointi toimii halutulla tavalla, mutta on tosin todettava, että aika hitaasti se päivittää syötteitä. Tutkaillaan nyt hetken ajan, että jatketaanko tällä vai asennetaanko RSSOwl takaisin. Vai löytyisikö muita parempia vaihtoehtoja? Google Reader -synkroinointia ei löydy läheskään jokaisesta softasta ja uusista yrittäjistä esim. LightRead ei nappaa. Ehdotuksia otetaan mielellään vastaan.

23.1.2013

Xfce4-terminal drop-down -terminaalina


Moni Linux-käyttäjä on törmännyt Quake-pelistä tuttuun, näytön ylälaidasta "putoavaan" pääteohjelmaan. Tällaiset drop-down -terminaalit ovat käteviä, sillä ne ovat aina helposti ja nopeasti saatavilla, eivätkä toisaalta vie turhaa tilaa työpyödältä silloin kun päätettä ei varsinaisesti tarvita. Vaikka itselläni on normaali pääteohjelma käytännössä aina auki, käytän silti pudotettavaa päätettä hyvin usein.

Drop-down -terminaaleja on useita erilaisia, joissa kaikissa on kuitenkin pääpiirteissään samat ominaisuudet. KDE-käyttäjät ovat tyytyväisiä Yakuakeen, GTK-puolelle sopivia vaihtoehtoja ovat esimerkiksi Guake, Tilda tai Stjerm. Arch Linuxissa Stjern löytyy AUR:sta, muut puolestaan virallisista pakettivarastoista.

Xfce-työpöytäympäristön oletusterminaali Xfce4-terminal sisältää myös drop-down-ominaisuuden versiosta 0.6.1 lähtien. Xfce4-terminalin saa toimimaan drop-down -terminaalina option --drop-down avulla. Muut piirteet (esimerkiksi leveys, korkeus, sijainti, läpinäkyvyys ja animaation nopeus) voi helposti konfiguroida preferences-näytöltä. Mikäli samaa ohjelmaa käyttää myös normaalina päätteenä, kannattanee asettaa drop-down -kohtaiset määritykset (esim. valikon, välilehtien ja kehysten piilotus) komentoriviltä, sillä ohjelmassa ei ole erillisiä profiileja. Optiot saa selville tutusti komennolla man xfce4-terminal. Itse käytän normaalina pääteohjelmana Terminatoria, minkä vuoksi konfiguroin kaikki asetukset preferences-näytöltä. Xfce4-terminalille kannattaa määrittää pikanäppäin Xfce:n Settings Manageerin kautta (Settings Manager -> Keyboard -> Applications Shortcuts). Mikäli asetukset on tehty preferences-näytöltä, riittää peruskomennoksi pelkkä xfce4-terminal --drop-down.

Xfce4-terminal toimii drop-down -terminaalina oikein mukavasti, mutta itseäni häiritsi päätteen ympärille tulostuva GTK-teeman pohjavärin mukainen kehys. Pidän erityisesti Murrine-Gray -teemasta, jonka myötä terminaalin ympärille tulostuvat kehykset ovat harmaat. Kehys tulostuu, vaikka --hide-border -optio on asetettu.


Pieni juttu, mutta helposti muutettavissa - kuten käytännössä kaikki muukin Linuxissa. Kehyksen poistaminen lienee helpointa siten, että xfce4-terminalin käynnistämisen yhteydessä määrittelee sille väreiltään sopivan GTK-teeman. Tarkoitukseen sopiva teema omalle työpöydälleni on Blackbird ja pikanäppäimeen sidottu komento näyttää tällöin seuraavalta: bash -c 'GTK2_RC_FILES=/usr/share/themes/Blackbird/gtk-2.0/gtkrc xfce4-terminal --drop-down' (korvaa siis /usr/share/themes/Blackbird/gtk-2.0/gtkrc omaan työpöytääsi sopivalla teeman polulla). Nyt terminaalissa ei ole enää häiritseviä reunoja ja mielenrauha säilyy :)


30.12.2012

Kookle auki, mummoja liikenteessä


Perinteiset pankkipalvelut ovat nykyään lähinnä muisto menneisyydestä, sillä käytännössä jokaisen täytyy omistaa tietokone ja maksaa - joskus huonostikin toimivasta - nettiyhteydestä hoitaakseen laskut ilman kohtuutonta rahastusta. Myös eräs pankkivirkailijana toiminut, nykyisin eläkkeellä oleva lähisukalaiseni on joutunut sopeutumaan tilanteeseen.

Monelle ikäihmiselle tietokoneet ovat monimutkaisia ja aluksi ehkä pelottaviakin värkkejä. Useimpien tietokoneen käyttötaito on tyttären tai naapurin pojalta opittua mekaanista toimintaa; sukulaisellani on tapana kirjata muistivihkoonsa yksityiskohtaisesti jokainen hiiren napsautusta vaativa vaihe symbolikuvien kera ja seurata näitä ohjeita orjallisesti alusta loppuun. Tyypillisen seniorikäyttäjän tiedot ja taidot eivät riitä virhetilanteiden ja ongelmien ratkaisemiseen, ja myös koneiden tietoturva lienee usein retuperällä.

Yhteiskunta muuttuu ja kehittyy jatkuvasti, ja monesta tuutista toitotetaan tietoteknisten taitojen olevan jo osa kansalaistaitoja. Toki kansalaisopistot tarjoavat ikääntyville suunnattuja tietokonekursseja, mutta jos ja kun suunnilleen ainoa syy tietokoneen käyttämiseen on laskujen maksaminen, ei oppimismotivaatio välttämättä ole aivan huipussaan. Tai vaikka oppimismotivaatiota olisikin, ei kaikilla vanhuksilla ole enää riittävästi kykyä omaksua monimutkaista uutta teknologiaa.

Usein jätetään kuitenkin huomioimatta, että myös tietotekniikka voisi tulla omalta osaltaan vastaan tässä asiassa. Koneen tehtävä on palvella ihmistä, ei päinvastoin. Oman kokemukseni mukaan jo pienillä muutoksilla, vaikkapa minimoimalla nettiin pääsemiseksi tarvittavien toimenpiteiden määrä, voidaan madaltaa huomattavasti tietokoneen käyttökynnystä. Sukulaiseni kohdalla pelkästään se, että nettiin pääsee varmasti ja suht' nopeasti ilman muistivihkon apua, on muuttanut hänen suhtautumistaan tietokoneisiin.

"SenioriOS"

Hankin taannoin sukulaiselleni työnantajalta käytöstä poistetun, kolme vuotta vanhan pöytäkoneen laskujen maksamista ja nettisurffailua varten. Hän hankki koneeseen DNA:n mobiililiittymän, joka päätti päivästä riippuen joko a) jättää kokonaan yhdistämättä tai b) siirtää dataa GPRS:llä. Kun hyvänä päivänä nettiyhteys, ehkä pienen taistelun jälkeen muodostui, koneen käyttöjäjestelmänä ollut Windows 7 päätti ensimmäisen puoli tuntia latailla päivityksiään. Ja silloin tällöin kävi tietysti niin, että nettiyhteys katkesi kesken päivitysihanuuden. Lisäksi Windowsin käyttöliittymä sisältää niin monia vipstaakkeleita, että ei ole lainkaan ihme että harvoin konetta käyttävät henkilöt joutuvat turvautumaan jatkuvasti ohjeisiin, varsinkin jos osaaminen on mekaanista. Sukulaiseni tilannetta ei aivan optimaaliseksi voinut kutsua, kun käyttötukena oli vain muistivihkollinen lyijykynämerkintöjä ja ongelmat enemmän sääntö kuin poikkeus.

Tuskastuttuaan tilanteeseen hän toi koneen ja nettitikkunsa lopulta huollettavaksi. Kyselin käyttäjälähtöisen suunnittelun periaatteiden mukaisesti, että mitäs rouva haluaa oikeasti koneellaan tehdä. "Kunhan saa laskut maksettua. Ja kooklen auki". Konetta ei saa maksamaan laskuja itsenäisesti, mutta mikäli järjestelmä tekisi automaattisesti kaikki valmistelut nettiyhdeyden muostamisesta selaimen avaamiseen, olisi käyttäjän muistikuormaa kevennetty jo jossain määriin. "Ja ne vaihtuvat maisemat (taustakuvat) olivat kivoja". OK, täytyyhän silmäkarkkia aina vähän olla. Selvät speksit, eikun hommiin.

Koska Windowsille käyttämiselle ei ollut mitään perusteltua järkisyytä, päätin asentaa sen rinnalle CrunchBang Linuxin. CrunchBang on Debianiin perustuva jakelu, joka ei varsinaisesti ole optimoitu vanhoille koneille, mutta toimii hyvin niukoillakin resursseilla. Se on erittäin stabiili, eikä tarjoa koko ajan rekkakuormallista paketteja päivitettäväksi. CrunchBangin käyttämä OpenBox-ikkunamanageri on pelkistetty ja - mikä parasta - se antaa mahdollisuuden konfiguroida itsensä vieläkin pelkistetymmäksi. Eli juuri tähän tarkoitukseen soveltuva systeemi.

CrunchBangilla kone boottasi pienen säätämisen jälkeen noin 30 sekunnissa, mikä on kaikin puolin siedettävä aika. Ensimmäinen  varsinainen ongelma olikin nettitikku, sillä DNA:n toimittama Nokia CS-17 oli toimintavarmuudeltaan ... hmmpf.... kuinka sen nyt nätisti sanoisi... noh, kuraa. Onneksi itselläni oli aiemmasta Saunalahden liittymästä ylimääräiseksi jäänyt vanha Huawei E160 -nettitikku, jonka operaattorikohtainen lukitus oli helppo poistaa. Minicomia käyttämällä tikulle sai lisäksi annettua muutaman tarpeellisen AT-komennon sen toiminnan nopeuttamiseksi ja parantamiseksi.

Nettitikun toimiessa tolkullisesti oli seuraavana mietintäkohteena nettiyhteyden automatisointi. CrunchBang sisältää oletuksena NetworkManagerin, mutta sen ja nettitikun yhteiselossa on joskus ollut ongelmia - etenkin jos kone käynnistetään täysin virrattomasta tilasta (sukulaiseni haluaa, että sähkölaitteet eivät ole käyttämättöminä stand-by-tilassa, minkä vuoksi ne sijoitetaan kytkimellä varustetun jatkojohdon päähän). Päädyin tämän vuoksi muodostamaan yhteyden vwdialialla, jonka konfiguroimiseksi Gentoo-wikistä löytyi selvät sävelet. Nyt kone hönki jo automaattisesti nettiin, mutta surffailuun tarvitaan luonnollisesti selainta. Tyypillisten "missä kookle?"- ja "eikö tää toimikaan?" -kysymysten välttämiseksi kirjoitin skriptin, joka avaa Chrome-selaimen automaattisesti heti nettiyhteyden muodostuttua.

Koneen sammuttaminen CrunchBangin omalla toiminnallisuudella vaatii hiiren oikean painikkeen napsauttamista työpöydällä, exit-toiminnon valitsemista avautuneesta popup-valikosta ja vielä shutdown-painikkeen napsauttamista. Koska sammuttamisessa on liian paljon muistamista, päätin yksinkertaistaa toimenpiteen lisäämällä yläpaneeliin kuvakkeen, jonka napsauttaminen sammuttaa koneen hallitusti mitään kyselemättä. Näiden temppujen jälkeen uuden systeemin käyttäjäkoulutus on lyhyt: "Paina tietokoneen virtakatkaisinta, odota rauhassa kunnes selainohjelma avautuu, maksa laskut tai surffaile ja lopuksi sammuta kone napsauttamalla vasemassa ylälaidassa olevaa jalkapohja-kuvaketta". So simple and nice.

Systeemi on toiminut hyvin, ja koneelle on löytynyt jo muitakin käyttökohteita, sillä nyt myös digikameran valokuvat ovat löytäneet tiensä kiintolevylle. Positiivinen onnistuminen ruokkii halua oppia uutta. Kun työpyödällä ei ole tehtävän kannalta ylimääräisiä nippeleita, eikä toimintoja ole piilotettu valikoiden tai sovellusikkunoiden taakse, on käyttäjän helpompi muistaa kunkin nippelin merkitys. Täten myös kokonaisuus on helpompi ymmärtää. Alla olevasta kuvasta näkyy työpyödän minimalistisuus. Työpöydällä on auki Chrome-selain, vasemmassa yläkulmassa olevan jalkapohja-ikonin (Gnome-logon uudelleenkierrätystä :)) napsauttaminen sammuttaa koneen ja sen vieressä oleva kuvake (lisätty myöhemmin) avaa valokuvien hallinnointiin tarkoitetun Shotwellin. Ylhäällä oikealla olevan ilmaisinsalueen (system tray) olisi voinut poistaa kokonaan, mutta jätin sen yhteysongelmien varalta: mikäli wvdial ei jostain syystä onnistu muodostamaan nettiyhteyttä, voi sitä yrittää manuaalisesti NetworkManagerin kautta (skripti ohjaa kyseiseen toimenpiteeseen, mikäli yhteys ei ole muodostunut minuutin kuluessa). Tähän tosin ei ole ollut tarvetta kertaakaan.  Oikealla näkyvä info-laatikko on conky, jossa on listattu hieman statistiikkaa koneesta ja nettiyhteydestä.


Entäs ne vaihtuvat taustakuvat? Pieni skripti, joka ajastetaan cronilla lukemaan images-hakemiston jpg- ja png-tiedostot ja valitsemaan satunnaisesti jokin kuva taustakuvasta huolehtivalle nitrogen-ohjelmalle. Koska nämä surffaussessiot eivät kestä tunteja, päätin lopulta ajastamisen sijaan kutsua taustakuva-skriptiä OpenBoxin autostart-skriptistä, joten taustakuva vaihtuu käynnistyksestä toiseen, mutta ei kesken surffailusession. 

Mikä tämän jutun pointti sitten oli? Teknologia on vierasta monelle ihmiselle, ei pelkästään ikääntyneille. Jo pienillä toimenpiteillä voidaan parantaa käyttökokemusta - se on vain halusta ja välineistä kiinni. Käyttöjärjestelmän sovittaminen seniorikäyttäjän ominaisuuksien ja hänen tarpeiden mukaiseksi palvelee sekä käyttäjää itseään mutta myös sinua hänen mikrotukihenkilönään ;)