blogit.vapaasuomi.fi

April 13, 2014

Viikon VALO

4x16 PurpleDock - Viikon VALO #172

Autonäyttö Android-laitteille käytettäväksi autotelineessä ajon aikana.
valo172-purpledock.png PurpleDock on yksinkertaistettu käyttöliittymä puhelimen tai tabletin joidenkin toimintojen käyttämiseen ajon aikana. Ohjelma näyttää laitteen ruudulla GPS-signaalista laskettavan nopeuden, kellonajan ja akun lataustilan. Lisäksi näytöllä on joukon suuria ja yksinkertaisia kuvakkeita muutamien perussovellusten, kuten puhelimen, kartan, navigoinnin ja musiikkisoittimen käynnistämiseen. Tarkoituksena on tarjota yleisimmin ajon aikana tarjottavat toiminnot, mutta vähentää ajoa häiritsevää laitteen kanssa naputtelua.

Näytön taustavärinä on musta, joka häiritsee näkökentässä mahdollisimman vähän varsinkin pimeällä. Näytöllä näkyvien tekstien ja ikonien värin voi valita oman mieltymyksen mukaan muutamasta vaihtoehdosta. Oletuksena teksteillä, eli kellolla, nopeudella ja akun latauksella, on värinä mustalta taustalta selkeästi erottuva valkoinen. Sovelluskuvakkeiden oletusväri on ohjelman nimen mukaisesti violetti.

Oletusasetuksilla ohjelman kuusi sovelluskuvaketta ovat: puhelin, kartta, paikat, musiikki, äänihaku sekä kotinäyttö. Näistä kolme, eli puhelin, kartta ja kotinäyttö on kytketty kiinteästi puhelinsovellukseen, Googlen Maps-sovellukseen ja PurpleDockin lopettamiseen sekä kotinäytölle palaamiseen. Loput kolme kuvaketta on kytketty oletuksena Googlen karttasovelluksen lähistöltä palveluita etsivään Places-toimintoon, Googlen Musiikkisoittimeen sekä Googlen puhehakuun, mutta näiden kuvakkeiden toiminnot on mahdollista muuttaa painamalla kuvaketta pitkään ja syöttämällä haluttujen sovellusten ja toimintojen tiedot.

PurpleDock osaa asetuksista valittuna näyttää kellonajan 24 tunnin muodossa ja nopeuden valinnan mukaan joko maileina tai kilometreinä tunnissa. Monet Android-puhelimet tarjoavat valmiiksi jonkinlaisen räätälöidyn tilan autotelinekäyttöä varten ja onkin makuasia, onko PurpleDock parempi vai ei. Ainakin se on minimaalisen selkeä ilman ylimääräisiä häiriöitä.

Kotisivu
http://pfdock.purplefoto.com/
Google Play -sivu
F-Droid-sivu
Lähdekoodit GitHubissa
Lisenssi
Apache2-lisenssi
Toimii seuraavilla alustoilla
Android, SailfishOS
Asennus
Ohjelman voi asentaa F-Droidilla tai Googlen Play-kaupasta.

Teksti: Pesasa
Kuvakaappaukset: Pesasa

by pesasa at April 13, 2014 09:41 PM

April 09, 2014

Ubuntu-blogi

Ota Googlen palvelut käyttöön Ubuntussa!

Usein kuulen purnattavan, että kun Ubuntussa ei ole kaikkia ominaisuuksia mihin windowsissa on tottunut. Asia on ihan totta ja se on myönnettävä, mutta asiat ovat viimeaikoina menneet parempaan suuntaan. Annan tässä kirjoituksessa muutamia vinkkejä, joilla saat ubuntu -ympäristöstä vielä enemmän irti chrome -selaimen avulla.
Oikeastaan kaikki googlen palvelut ovat sidoksissa heidän Chrome ja Chromium -selaimiinsa. Itse huomasin tämän noin vuosi sitten, kun päivitin yritykseni ns. “konttorikoneen” ubuntuun. Olin juuri ottanut käyttöön Drive -pilvipalvelun ja olin turhautunut siitä, ettei Google tarjonnut natiivia työpöytäohjelmaa Ubuntulle. Windowsissa olin turhautunut ohjelman hitauteen.

Aikani googleteltuani törmäsin sivustoihin Omg! Ubuntu! sekä Omg! Chrome!  Nämä sivut ovat saman ylläpitäjän sivustoja, mutta tarjoavat päivittäin uusia artikkeleita aiheisiinsa liittyen. Syvennyin artikkeleihin paremmin – ja löysin tavan jolla tuoda googlen ohjelmat paremmin saataville työpöydällä.

Koska olen Drive -käyttäjä, halusin saada sen tarjoamat ohelmat helposti käyttöön. Tämä onnistui helposti, annan ohjeet tässä:

1) Kirjaudu chromiumiin tai chromeen sisään
2) Sovellukset -välilehdellä valitse haluamasi ohelmat klikkaamalla hiiren oikealla kuvakkeiden päällä ja valitse “luo pikakuvake”
3) Tallenna pikakuvake haluamaasi kansioon
4) Navigoi itsesi takaisin valitsemaasi kansioon, valitse kuvakkeet ja raahaa ne ubuntun työpöydän palkkiin

Tadaa! Nyt käytössäsi on googlen toimisto-ohjelmat, pilvi sekä ihan mitä vain haluat asentaa chromen sovelluskaupasta!

 

Tämän lisäksi tallennat tiedostosi suoraan pilveen, jolloin pääset niihin käsiksi mistä vain, eikä sinun tarvitse huolehtia varmuuskopioista.

Uskoisin tästä olevan hyötyä sellaisille käyttäjille, jotka ovat tähän saakka käyttäneet ubuntu onea (joka tulee katoamaan käytöstä lähiaikoina) ja niille, jotka ovat tuskastuneet tiedostojen ajantasalla pitämiseen. Omalla kohdallani työni on niin kovin liikkuvaa ja tarvitsen rajoittaman pääsyn tiedostoihini, ja tämä tapa on helpottanut käyttöäni huomattavasti.

by presidentti at April 09, 2014 05:45 PM

April 06, 2014

Viikon VALO

4x15 Kevyet Linux-jakelut - Viikon VALO #171

Kevyellä Linux-käyttöjärjestelmällä voi antaa lisäaikaa vielä hiukan vanhemmallekin tietokoneelle.
valo171-kevyet_linux-jakelut.png Itsenäisistä osista koostuvan rakenteensa, eli modulaarisuutensa, vuoksi Linux-järjestelmistä on mahdollista tehdä kevyitä versioita, jolloin on mahdollista käyttää ajantasaista ja modernia käyttöjärjestelmää myös vanhemmalla ja heikkotehoisemmalla tietokoneella. Useista tavallisesti käytettävistä ohjelmista on erilaisia avoimen lähdekoodin vaihtoehtoisia toteutuksia. Esimerkiksi www-selainvaihtoehtoja on monia: Firefox, Chromium, Midori. Tyypillisesti kevyiksi tarkoitetut Linux-jakelut tehdään valitsemalla tai itse ohjelmoimalla järjestelmän mukana oletuksena asennettavat ohjelmakomponentit mahdollisimman keveiksi. Yhtenä suurena tekijänä ovat luonnollisesti itse työpöytää ja ikkunoita hallinnoivat ohjelmat.

Microsoft Windows XP -käyttöjärjestelmän tekninen tuki, kuten automaattiset päivitykset, päättyy 12 vuoden jälkeen 8.4.2014. Tämä voi herättää monet vielä tätä käyttöjärjestelmää käyttävät etsimään vaihtoehtoja. Vaihtoehtoina ovat useimmiten uudempaan Windows-versioon päivittäminen, uuden tietokoneen hankkiminen taikka jonkin kevyemmän järjestelmän, kuten kevyen Linux-jakelun, asentaminen vanhaan tietokoneeseen. Järkevin vaihtoehto määräytyy yleensä vanhan koneen iän ja tehokkuuden, käytettävien ohjelmien tai ohjelmatyyppien, käyttäjän mieltymysten ja tietenkin käytettävissä olevan rahan mukaan.

Jos tietokone on vanha, voi siihen saada jonkin verran lisää puhtia erityisesti lisäämällä käyttömuistia (eri asia kuin kiintolevyn tallennustila!), mutta kovin vanhan koneen tekohengittäminen kevyelläkin käyttöjärjestelmällä voi olla turhaa työtä. Tällöin uuden tietokoneen hankkiminen voi säästää karvailta kokemuksilta. Edes Linux-järjestelmät eivät tee ihmeitä.

Linux-järjestelmien etuja ovat muun muassa: ilmainen ja helposti ilmaiseksi päivittyvä nykyaikainen käyttöjärjestelmä, tarvittaessa kevyt käyttöliittymä ja keveitä ohjelmia sekä mahdollisuus valita itseään miellyttävä käyttöliittymä.

Jos valintana on Linux-pohjaiseen järjestelmään siirtyminen, joutuu käyttäjä tekemään vielä valinnan erilaisten Linux-järjestelmien välillä. Valikoima voi tuntua laajalta ja hämmentävältä, sillä vaihtoehtoja on kuin ruokalajeja kiinalaisessa ravintolassa. Kiinalaisen ravintolan ruokalistan tapaan Linux-jakelut kuitenkin koostuvat suurimmaksi osaksi samoista raaka-aineista, eli ohjelmista, vain erilaisina valmiiksi paketoituina yhdistelminä. Tyypillisesti suurin ero niiden välillä on käyttöliittymän tyylissä ja tuntumassa. Valinta helpottuu huomattavasti, jos keskittyy yleisimmin käytettyihin, ja siten parhaiten tuettuihin, versioihin. Samoin pieni tuntemus yleisimmin käytetyistä komponenteista helpottaa valintaa. Aloittelijan kannattaa myös selvittää, löytyisikö tuttavapiiristä joku Linux-järjestelmiin jo aiemmin tutustunut tueksi ja turvaksi. Seuraavassa esittelemme muutamia erityisesti keveiksi luokiteltuja vaihtoehtoja.

Ennen järjestelmän valitsemista ja asentamista tietokoneelle, voi kannattaa kokeilla yhtä tai useampaa vaihtoehtoa kyseisellä koneella niin kutsutulla live-CD:llä tai live-tikulla. Linux-jakeluiden asennuslevyt ovat ilmaisia ja ne jaetaan tyypillisesti Internetin kautta CD- tai DVD-levykuvina, jotka ovat .iso-päätteisiä tiedostoja, jotka voi kirjoittaa CD- tai DVD-levylle taikka vaihtoehtoisesti USB-tikulle. Käyttöjärjestelmän voi käynnistää tällaiselta asennuslevyltä niin sanottuun live-tilaan, jossa järjestelmä on täysin käytettävissä asennuslevyltä ilman, että tietokoneen levylle kirjoitetaan vielä mitään. Näin tietokoneessa voi kokeilla useampia käyttöjärjestelmävaihtoehtoja ennen valinnan tekemistä. Useissa Linux-jakeluissa varsinaisen asentamisen voi aloittaa suoraan työpöydällä tai paneelissa olevalla kuvakkeella.

Tarkempia ohjeita käynnistyslevyn tekemiseen löytyy esimerkiksi Ubuntu Suomen sivuilta. Käynnistyslevyn voi vaihtoehtoisesti tehdä myös USB-tikulle, jolloin samaa tikkua voi käyttää useamman järjestelmän kokeilemiseen. Internetistä noudettavaa levykuvaa ladattaessa kannattaa kiinnittää huomiota myös siihen, onko ladattava levykuva 32- vai 64-bittinen. Nyrkkisääntönä voidaan sanoa, että vanhemmat tietokoneet, joiden muistin määrä on alle 4 gigatavua, vaativat 32-bittisen version käynnistyäkseen.

Seuraavassa esiteltävät jakelut pohjautuvat enemmän tai vähemmän laajalti käytettyyn Ubuntu-jakeluun. Niihin on tyypillisesti asennettavissa sama valikoima ohjelmia kuin Ubuntuun, mutta oletuksena niihin asennettava joukko ohjelmia sekä itse käyttöliittymä on valikoitu kevyemmäksi. Osa jakeluversioista on niin kutsuttuja pitkään tuettuja versioita (LTS, Long Term Support), joille luvataan tarjota tukea, eli tietoturva- ja muita päivityksiä, versiosta riippuen 3-5 vuotta julkaisupäivästä alkaen. Useimmista näistä jakeluista on tulossa seuraava pitkään tuettu versio huhti-toukokuun aikana, kun Ubuntusta tulee huhtikuun 17. päivä uusi pitkään tuettu versio 14.04. Osa näistä kevyemmistä Linux-jakeluista saa uuden versionsa joko samalla kertaa tai hieman Ubuntun jälkeen. Jakelusta saattaakin kannattaa asentaa suoraan nyt julkaistava uusi versio, ettei tarvitse päivittää uuteen versioon heti parin viikon jälkeen. Jos järjestelmästä kuitenkin päättää asentaa nykyisen version, se on helppoa päivittää uudempaan järjestelmän omalla päivitystyökalulla, kun uusi versio julkaistaan. Tyypillisesti tavallisten käyttäjien käyttöön suositellaan pitkään tuettuja versioita.

Osa järjestelmistä ei heti asennuksen jälkeen tue suljettuja tiedostomuotoja, kuten MP3-tiedostoja ja Flash-liitännäisiä, mutta tuki niille on asennettavissa helposti Ubuntun ohjeiden mukaan. Osa järjestelmistä puolestaan tarjoaa asennuslevyistä versioita, joissa tuki näille tiedostomuodoille on mukana oletuksena.

Lubuntu

Lubuntu on erittäin kevyeksi tarkoitettu rinnakkaisversio Ubuntusta. Käyttöliittymänä se käyttää kevyttä LXDE-työpöytää, joka on kokoelma mahdollisimman kevyitä keskenään toimivia komponentteja. Lubuntun työpöytä on Windowsiin tottuneille asettelultaan varsin tutun oloinen.

Kotisivu
http://lubuntu.net/
Lataussivu
https://help.ubuntu.com/community/Lubuntu/GetLubuntu
Käyttöliittymä
LXDE-työpöytä
Oletuksena asentuva toimisto-ohjelmisto
Gnome Office (AbiWord, Gnumeric)
Nykyinen versio
Lubuntu 13.10
Seuraava versio
Lubuntu 14.04 LTS (Tukea huhtikuulle 2019 saakka)
Julkaistaan 17.4.2014 yhtä aikaa Ubuntu 14.04:n kanssa.
Suljetut tiedostomuodot ja multimediakoodekit
Asentamalla paketti ubuntu-restricted-extras

Xubuntu

Xubuntu on kevyt, elegantti ja helppokäyttöinen yhteisövetoinen rinnakkaisversio Ubuntusta. Xubuntun työpöytäympäristönä on Ubuntun normaalia Unity-käyttöliittymää kevyempi XFCE. Xubuntun työpöytä noudattaa perinteistä asettelua, jossa työpöydällä on kuvakkeita ja työpöydän reunalla on palkki, jossa ovat käynnistysvalikko, käynnissä olevien ohjelmien lista sekä ilmoitusalue. Xubuntussa palkki on oletuksena näytön yläreunassa, mutta sen sijainti on asetuksista muutettavissa.

Kotisivu
http://xubuntu.org
Lataussivu
http://xubuntu.org/getxubuntu/
Käyttöliittymä
XFCE-työpöytä
Oletuksena asentuva toimisto-ohjelmisto
Gnome Office (AbiWord, Gnumeric)
Oletuksena sentuva www-selain
Firefox
Nykyiset versiot
Xubuntu 12.04 LTS (Tukea huhtikuulle 2015 saakka)
Xubuntu 13.10
Seuraava versio
Xubuntu 14.04 LTS (Tukea huhtikuulle 2017 saakka)
Julkaistaan 17.4.2014 yhtä aikaa Ubuntu 14.04:n kanssa.
Suljetut tiedostomuodot ja multimediakoodekit
Asentamalla paketti ubuntu-restricted-extras

Linux Mint - Xfce-versio

Linux Mint on Ubuntuun perustuva, mutta Lubuntua ja Xubuntua "itsenäisempi", Linux-jakelu, jonka asennuslevyistä on tarjolla useampi versio erilaisilla käyttöliittymillä. Xfce-versio käyttää samaa työpöytäympäristöä kuin Xubuntu, mutta sen ulkoasu, oletusasetukset sekä valmiiksi asennettu ohjelmavalikoima poikkeavat jonkin verran Xubuntusta. Työpöydän asettelu Mintin Xfce-versiossa muistuttaa esimerkiksi Windowsista tuttua asettelua, jossa työpöydän alareunassa on paneeli, joka sisältää vasemmassa alanurkassa käynnistysvalikon, käynnissä olevien ohjelmien listan sekä oikean alakulman ilmoitusalueen.

Tämä versio sisältää valmiiksi asennettuina suljettujen tiedostomuotojen, kuten MP3-tiedostojen, soittamiseen tarvittavat multimediakoodekit.

Kotisivu
http://www.linuxmint.com
Lataussivu
Pitkään tuettu versio
Ohjeita asennukseen
Käyttöliittymä
XFCE-työpöytä
Oletuksena asentuva toimisto-ohjelmisto
LibreOffice
Oletuksena asentuva www-selain
Firefox
Nykyiset versiot
Linux Mint 13 LTS "Maya" (Tukea huhtikuulla 2017 saakka)
Linux Mint 16 "Petra" (Tukea heinäkuulle 2014 saakka)
Seuraava versio
Linux Mint 17 LTS "Qiana" (Tukea huhtikuulle 2019 saakka)
Julkaistaan toukokuun lopulla 2014
Suljetut tiedostomuodot ja multimediakoodekit
Valmiiksi asennettuina, kun valitsee oikean asennuslevykuvan

Linux Mint - MATE-versio

Linux Mintin MATE-työpöydällä varustettu versio on toinen vaihtoehto Linux Mintistä hieman kevyemmällä työpöydällä kuin muina vaihtoehtoina olevat Cinnamon- ja KDE-työpöydillä varustetut versiot. MATE-työpöydän toiminta muistuttaa Mintin Xfce-version tapaan melko paljon Windows-järjestelmistä tuttua logiikkaa työpöydän alareunassa olevine palkkeineen ja vasemman alanurkan käynnistysvalikkoineen.

Myös MATE-versiosta on ladattavissa multimediakoodekeilla varustettu versio.

Kotisivu
http://www.linuxmint.com
Lataussivu
Pitkään tuettu versio
Ohjeita asennukseen
Käyttöliittymä
MATE-työpöytä
Oletuksena asentuva toimisto-ohjelmisto
LibreOffice
Oletuksena asentuva www-selain
Firefox
Nykyiset versiot
Linux Mint 13 LTS "Maya" (Tukea huhtikuulla 2017 saakka)
Linux Mint 16 "Petra" (Tukea heinäkuulle 2014 saakka)
Seuraava versio
Linux Mint 17 LTS "Qiana" (Tukea huhtikuulle 2019 saakka)
Julkaistaan toukokuun lopulla 2014
Suljetut tiedostomuodot ja multimediakoodekit
Valmiiksi asennettuina, kun valitsee oikean asennuslevykuvan

Elementary OS

ElementaryOS on kevyeksi ja selkeäksi tarkoitettu Ubuntuun pohjautuva Linux-jakelu. Sen oman Pantheon-työpöydän ulkoasu ja toiminta muistuttaa melko voimakkaasti Mac OS X:ää. Jos Mac-koneiden ulkoasu ja toimintalogiikka miellyttää, tämä versio saattaa olla kokeilemisen arvoinen.

Kotisivu
http://elementaryos.org/
Lataussivu
http://elementaryos.org/
Käyttöliittymä
Pantheon-työpöytä
Oletuksena asentuva toimisto-ohjelmisto
Ei asenneta oletuksena. Voi asentaa itse pakettivarastosta haluamansa.
Oletuksena asentuva www-selain
Midori
Suljetut tiedostomuodot ja multimediakoodekit
Asentamalla paketti ubuntu-restricted-extras
Nykyinen versio
Elementary OS 0.2 "Luna"
Seuraava versio
Elementary OS 0.3 "Isis"
Pyritään julkaisemaan mahdollisimman pian Ubuntu 14.04:n julkaisun jälkeen.
Esittelyvideo
Introducing Luna

Ubuntu-pohjaisiin Linux-järjestelmiin tutustumisessa voi käyttää hyödyksi soveltuvin osin Ubuntu tutuksi -wikikirjaa.

Teksti: Pesasa
Kuvakaappaukset: Pesasa

by pesasa at April 06, 2014 06:36 PM

April 05, 2014

Wikimedia Suomi

Wikimedia-konferenssi Berliinissä

Wikimedia_Conference_logoWikimedia Conference järjestetään ensi viikonloppuna Berliinissä.

“Wikimedia Conference 2014 is the annual meeting of all Wikimedia chapters,thematic organizations and user groups, board and staff members of the Wikimedia Foundation as well as other committees to discuss the future of the Wikimedia movement in terms of collaboration, structures and organizational development.”

Suomesta on tällä kertaa kaksi edustajaa, hallituksen edustajana minä ja Susanna Ånäs, joka on tällä hetkellä palkattuna Wikimaps-projektiin. Kurkkaa tästä keitä muita on mukana.

Konferenssissa on kaksi pääteemaa:

    1. Organisation, structures and grants
    2. Success and impact

Ohjelmassa on paljon osallistavia sessioita ja työpajoja, joissa mietitään Wikimedia-liikkeen tulevaisuutta ja organisaatiota. Minua kiinnostaa henkilökohtaisesti mm. se, miten saisimme Wikipediaan lisää muokkaajia ja sisältöä. Viemisinäni Berliiniin haluaisin kertoa kuulumisia Suomen WIkipediasta ja muista Wikimedia-projekteista ja siinä kaipaan apuanne: mikä meillä on onnistunut hyvin, missä meillä on eniten haasteita?

Kommentteja ja kokemuksiasi voit jakaa monella tavalla:

  • tähän blogitekstiin
  • Twitterissä #wikipediafi-tunnisteella
  • Facebook-sivullamme
  • ensi maanantain Etherpad-viikkotapaamisessa (kello 20-21, agendalla on todennäköisesti myös ITK, jossa Wikimedia Suomi on myös mukana ensi viikolla)
  • tai Jyväskylässä Wilhelmiinan konditoriassa ma 7.4. klo 16.30-18.00

Tarkoituksenani on liveraportoida tapahtumasta Twitterissä, todennäköisesti käytän #wikipediafi-tunnistetta, jota käytämme muutenkin Wikipediaan liittyvissä aiheissa. Pysyhän siis kuulolla!

by Johanna Janhonen at April 05, 2014 08:23 AM

March 30, 2014

Viikon VALO

4x14 TreeSheets - Viikon VALO #170

TreeSheets on työkalu muistiinpanojen tekemiseen ja tiedon organisointiin taulukoiksi ja hierarkkisiksi puiksi.
valo170-treesheets.png TreeSheets-työkalulla voi tehdä asioita, joihin on usein käytetty taulukkolaskentaohjelmien taulukoita, miellekarttoja, käsitekarttoja, jäsentimiä (outliner), tehtävälistoja tai muita tiedon organisointiin soveltuvia työkaluja. TreeSheets lähestyy ongelmaa organisoimalla kaiken taulukkoina, eli sisältösoluista koostuvina ruudukkoina, joita voi sijoitella myös sisäkkäin.

Yksinkertaisimmillaan TreeSheetsillä voi muodostaa teksteistä koostuvia taulukoita, joiden soluille voi määrätä erilaisia korostuksia, kuten tekstin ja tausta värejä, lihavointia, alleviivausta, kursivointia ja yliviivausta. Soluun voi tekstin lisäksi lisätä kuvan, joka näytetään tekstin edessä. Ohjelma tarjoaa valikoiman valmiita pikkukuvakkeita, kuten erivärisiä palloja, tähtiä ja sydämiä. Varsinainen hyöty ohjelmasta kuitenkin saadaan, kun soluihin lisätään tekstin lisäksi uusia taulukoita. Tällöin solun teksti toimii eräänlaisena otsakkeena taulukolle, jossa on otsakkeeseen liittyvä asiasisältö. Taulukoita voi upottaa sisäkkäin rajattomasti, jolloin saadaan ohjelman nimen mukaisesti taulukoista muodostuva puu.

Taulukoiden käsittely onkin tehty ohjelmassa mahdollisimman helpoksi. Uusia soluja, rivejä, sarakkeita tai kokonaisia taulukoita on helppo luoda. Ohjelmassa voi näppäimistöllä tai hiirellä valita minkä tahansa solun tai solun jonkin reunan ja enter-näppäimellä siirtyä kirjoitustilaan. Jos valittuna oli solun reuna, luodaan automaattisesti uusi rivi tai sarake ja siirrytään kirjoitustilaan kyseisessä kohdassa olevaan soluun. Soluun voi puolestaan luoda alitaulukon helposti insert-näppäintä painamalla. Solujen taikka kokonaisten rivien ja sarakkeiden poistaminen tapahtuu yhtä helposti valitsemalla poistettava solu ja painamalla delete-näppäintä.

Ohjelman käyttöä monipuolistaa se, että sen sisältämien solujen esitystapaa voidaan vaihtaa muutaman erilaisen asettelun välillä. Ensinnäkin voidaan valita, esitetäänkö solussa oleva teksti ja alitaulukko vertikaalisesti vai horisontaalisesti, eli onko teksti taulukon yläpuolella vai rinnalla vasemmalla puolella. Toiseksi voidaan valita, esitetäänkö taulukot normaaleina ruudukkoina, soluista tehtyinä "kuplina" vai kytkemällä rivit viivoilla isäntäsolunsa tekstiin puumaisen ulkoasun luomiseksi. Esimerkiksi käyttämällä vertikaalista asettelua ja viivoilla kytkemistä, saadaan helposti tehtyä puumaisia listoja. Toisaalta horisontaalinen asettelu viivoilla muistuttaa perinteisiä miellekarttoja. Asettelu voidaan valita solukohtaisesti, jolloin esimerkiksi taulukon yhdessä solussa voi olla tietoa esitettynä taulukkomuodossa ja toisessa puumaisena luettelona.

Taulukoiden solujen, rivien ja sarakkeiden sijoittelua on myös helppo muokata. Valitun solun tai solujoukon voi helposti siirtää rivillä sivusuunnassa tai sarakkeella pystysuunnassa näppäinyhdistelmillä ctrl+nuoli. Valikoista löytyy myös välineet taulukon transponointiin, eli sarakkeiden vaihtamiseen riveiksi ja päinvastoin, sekä taulukon järjestämiseen valitun rivin tai sarakkeen mukaan nousevasti tai laskevasti.

Ohjelman käytön opettelun helpottamiseksi sen mukana tulee tutorialitiedosto, jossa sen toimintaa on esitelty ja johon käyttäjä voi kokeilla esiteltyjä ominaisuuksia.

Ohjelmassa on mahdollista merkitä solujen tekstejä tageiksi, jolloin eri soluissa käytettyinä samat tagien ymmärretään tarkoittavan samaa asiaa. Tämä mahdollistaa sen, että saman hierarkian eri haaroissa esiintyvät arvot voidaan samaistaa ja hierarkiaa voidaan tarkastella eri asioiden mukaan järjesteltyinä. Ohjelman mukana tulevassa tutorialissa tätä havainnollistetaan tilanteena, jossa kaksi työtekijää, Bob ja Fred, työskentelevät molemmat useammassa projektissa. Tällöin tilanteesta voidaan muodostaa puu, jossa on lueteltu projektit, joiden alla on lueteltu työntekijät ja näiden alla työtekijöiden projektiin tekemät suoritukset. Toisaalta samaa tilannetta voitaisiin tarkastella henkilöiden mukaan, jolloin puussa olisikin lueteltuina työntekijät, niiden alla projektit, joihin työntekijät osallistuvat, ja niiden alla työntekijän projektiin tekemät suoritukset. TreeSheets mahdollistaa tagien avulla tämän tyylisten taulukoiden näkymien vaihtamisen helposti. Ohjelma sisältää myös kokeiluasteella olevia laskentaominaisuuksia.

Yksi ohjelman vahvoista toiminnoista on sen zoom-ominaisuus, jolla käyttäjä voi siirtyä tarkastelemaan vain jonkin solun sisältöä. Zoom-toimintoa käytetään joko näppäimistöltä ctrl+PgUp- ja ctrl+PgDn-pikanäppäimillä tai ctrl-näppäintä ja hiiren rullaa yhtä aikaa käyttämällä. Soluun zoomattaessa solun sisältö skaalautuu ikkunaan täysikokoiseksi ja solun taulukon isäntäsolun otsikkoteksti näkyy sen yläpuolella harmaalla. Kaikki muu solun ulkopuolella oleva sisältö jätetään näyttämättä. Toisaalta kokonaisuusnäkymässä voi yksittäisen solun sisällön kokoa pienentää niin, että sen sisällön teksti näkyy pelkkinä pisteinä ja siten solusta näkyy vain sen rakenne, muttei itse sisältöä. Tällöin sisällön näkee vain soluun sisään zoomaamalla. Tämä on toisinaan hyödyllistä, kun päätasolla halutaan nähdä vain kokonaisuuden rakenne ja yksityiskohdat halutaan näkyviin vain niitä tarkasteltaessa.

Ohjelmasta voi tallentaa sen oman tiedostomuodon lisäksi XML-, HTML- ja tekstimuotoisena sekä lisäksi PNG-kuvana. Taulukot on mahdollista myös tulostaa PDF-tiedostoiksi.

Kotisivu
http://treesheets.com
Lähdekoodit: https://github.com/aardappel/treesheets
Lisenssi
Zlib-lisenssi
Toimii seuraavilla alustoilla
Linux, Windows, Mac OS X (beta)
Asennus
Asennuspaketit eri alustoille löytyvät ohjelman kotisivuilta
Käyttöohjeet
Ohjelman mukana tulee tutorialitiedosto, jolla sen eri toimintoihin on helppo tutustua.
Video
Youtube-video ohjelman käytöstä.

Teksti: Pesasa
Kuvakaappaukset: Pesasa

by pesasa at March 30, 2014 12:06 PM

March 24, 2014

Viikon VALO

4x13 Midori - Viikon VALO #169

Midori on kevyt ja nopea www-selain monelle alustalle.
valo169-midori.png Midori on kevyt ja nopea WebKit-pohjainen avoimen lähdekoodin selain, jonka voi asentaa useammalle alustalle. Sen käyttöliittymä on selkeä ja suoraviivainen ja sen toiminnot ovat laajennettavissa lisäosien avulla.

Modernin WebKit-selainmoottorin ansiosta Midori toimii useimmilla sivuilla samoin ja yhtä hyvin kuin esimerkiksi Googlen Chrome/Chromium tai Applen Safari. Esimerkiksi nykyaikaiset HTML5 ja CSS3 tekniikat toimivat siis Midorissa hyvin. Jotkin sivut valitettavasti tunnistavat selaimen mallin ja tarjoilevat erilaisen "optimoidun" version eri selaimille. Midori vähemmän tunnettuna selaimena saattaa siksi joskus saada tämän vuoksi heikommin toimivan sivun, vaikka kykenisi näyttämään normaalin sivun siinä missä muutkin WebKit-selaimet. Midori kuitenkin pyrkii korjaamaan tämän tilanteen teeskentelemällä tarvittaessa jotain muuta WebKit-selainta.

Midori sisältää muiden nykyaikaisten selainten tapaan yksityisyystilan, jossa muun muassa käyttäjän selaushistoriaa ei tallenneta. Midori sisältää "Inspect Page" -toiminnon, jolla voi tarkastella selaimeen avattua sivua, sen rakennetta, tyyliä ja toimintaa. Työkalu on hyvin samanlainen kuin vastaava työkalu Chromium-selaimessa.

Midorin toimintoja voi muokata erilaisilla lisäosilla, kuten mainostentorjujalla, hiirielkeillä tai uutisvirtalukijalla. Uutisvirtalukijalisäosa aukeaa selainikkunan reunaan, kun www-sivulle tultaessa otsikkopalkkiin ilmestyvää RSS-/Atom-virran kuvaketta klikataan. Lisäosa näkyy paneelina, jonka yläosassa on luettelo uutislähteistä ja niiden tarjoamista uutisista ja jonka alaosaan aukeaa valitun uutisen sisältö.

Websovelluksen voi Midorilla avata myös erillisenä sovellusikkunana, jolloin ikkunassa ei ole näkyvillä normaaleja selaimen käyttöliittymäkomponentteja, kuten osoiteriviä ja navigointinappuloita, vaan ainoastaan sivun renderöity sisältö. Tässä tilassa selainsovelluksia voi käyttää samaan tapaan kuin Chromium-sovelluksia.

Selain on käytettävissä useilla alustoilla, jotka tukevat vaadittavia ohjelmakirjastoja, kuten WebKit- ja GTK-kirjastoja. Midorista on Windows-alustalle tarjolla myös niin sanottu portable-versio, eli versio, jota voi käyttää vaikka usb-tikulta asentamatta sitä koneelle.

Kotisivu
http://midori-browser.org/
Lisenssi
GNU LGPL v2.1+
Toimii seuraavilla alustoilla
Linux, Windows, Mac OS X, FreeBSD, OpenBSD, NetBSD
Asennus
Midori on ladattavissa sen kotisivuilta taikka oman Linux- tai BSD-jakelun pakettilähteistä.

Teksti: Pesasa
Kuvakaappaukset: Pesasa

by pesasa at March 24, 2014 06:27 PM

March 19, 2014

Losca

Qt 5.2.1 in Ubuntu

Ubuntu running Qt 5.2.1
Ubuntu running Qt 5.2.1
Qt 5.2.1 landed in Ubuntu 14.04 LTS last Friday, hooray! Making it into a drop-in replacement for Qt 5.0.2 was not trivial. Because of the qreal change, it was decided to rebuild everything against the new Qt, so it was an all at once approach involving roughly 130 source packages while the parts were moving constantly. The landing last week meant pushing to archives around three thousand binary packages - counting all six architectures - with the total size of closer to 10 gigabytes.

The new Qt brings performance and features to base future work on, and is a solid base for the future of Ubuntu. You may be interested in the release notes for Qt 5.2.0 and 5.2.1. The Ubuntu SDK got updated to Qt Creator 3.0.1 + new Ubuntu plugin at the same time, although updates for the older Ubuntu releases is a work in progress by the SDK Team.

How We Got Here

Throughout the last few months before the last joint push, I filed tens of tagged bugs. For most of that time I was interested only in build and unit test results, since even tracking those was quite a task. I offered simple fixes here and there myself, if I found out a fix.

I created automated Launchpad recipe builds for over 80 packages that rely on Qt 5 in Ubuntu. Meanwhile I also kept on updating the Qt packaging for its 20+ source packages and tried to stay on top of Debian's and upstream's changes.

Parallel to this work, some like the Unity 8 and UI Toolkit developers started experimenting with my Qt 5.2 PPA. It turned out the rewritten QML engine in Qt 5.2 - V4 - was not entirely stable when 5.2.0 was released, so they worked together with upstream on fixes. It was only after 5.2.1 release that it could be said that V4 worked well enough for Unity 8. Known issues like these slowed down the start of full-blown testing.

Then everything built, unit tests passed, most integration tests passed and things seemed mostly to work. We had automated autopilot integration testing runs. The apps team tested through all of the app store to find out whether some needed fixes - most were fine without changes. On top of the found autopilot test failures and other app issues, manual testing found a few more bugs

Sudoku
Some critical pieces of software
like Sudoku needed small fixing
Finally last Thursday it was decided to push Qt in, with a belief that the remaining issues had fixes in branches or not blockers. It turned out the real deployment of Qt revealed a couple of more problems, and some new issues were raised to be blockers, and not all of the believed fixes were really fixing the bugs. So it was not a complete success. Considering the complexity of the landing, it was an adequate accomplishment however.

Specific Issues

Throughout this exercise I bumped into more obstacles that I can remember, but those included:
  • Not all of the packages had seen updates for months or for example since last summer, and since I needed to rebuild everything I found out various problems that were not related to Qt 5.2
  • Unrelated changes during 14.04 development broke packages - like one wouldn't immediately think a gtkdoc update would break a package using Qt
  • Syncing packaging with Debian is GOOD, and the fixes from Debian were likewise excellent and needed, but some changes there had effects on our wide-spread Qt 5 usage, like the mkspecs directory move
  • xvfb used to run unit tests needed parameters updated in most packages because of OpenGL changes in Qt
  • arm64 and ppc64el were late to be added to the landing PPA. Fixing those archs up was quite a last minute effort and needed to continue after landing by the porters. On the plus side, with Qt 5.2's V4 working on those archs unlike Qt 5.0's V8 based Qt Declarative, a majority of Unity 8 dependencies are now already available for 64-bit ARM and PowerPC!
  • While Qt was being prepared the 100 other packages kept on changing, and I needed to keep on top of all of it, especially during the final landing phase that lasted for two weeks. During it, there was no total control of "locking" packages into Qt 5.2 transition, so for the 20+ manual uploads I simply needed to keep track of whether something changed in the distribution and accommodate.
One issue related to the last one was that some things needed were in progress at the time. There was no support for automated AP test running using a PPA. There was also no support on building images. If migration to Ubuntu Touch landing process (CI Train, a middle point on the way to CI Airlines) had been completed for all the packages earlier, handling the locking would have been clearer, and the "trunk passes all integration tests too" would have prevented "trunk seemingly got broken" situations I ended up since I was using bzr trunks everywhere.

Qt 5.3?

We are near to having a promoted Ubuntu image for the mobile users using Qt 5.2, if no new issues pop up. Ubuntu 14.04 LTS will be released in a month to the joy of desktop and mobile users alike.

It was discussed during the vUDS that Qt 5.3.x would be likely Qt version for the next cycle, to be on the more conservative side this time. It's not entirely wrong to say we should have migrated to Qt 5.1 in the beginning of this cycle and only consider 5.2. With 5.0 in use with known issues, we almost had to switch to 5.2.

Kubuntu will join the Qt 5 users next cycle, so it's no longer only Ubuntu deciding the version of Qt. Hopefully there can be a joint agreement, but in the worst case Ubuntu will need a separate Qt version packaged.

by Timo Jyrinki (noreply@blogger.com) at March 19, 2014 07:42 AM

March 18, 2014

Henri Bergius

Building an Ingress Table with Flowhub

The c-base space station — a culture carbonite and a hackerspace — is the focal point of Berlin's thriving tech scene. It is also the place where many of the city's Ingress agents converge after an evening of hectic raiding or farming.

An Ingress event at c-base

In February we came with an idea on combining our dual passions of open source software and Ingress in a new way. Jon Nordby from Bitraf hackerspace in Oslo had recently shown off the new full-stack development capabilities of Flowhub made possible by integrating my NoFlo flow-based programming framework for JavaScript and his MicroFlo giving similar abilities to microcontroller programming. So why not use them to build something awesome?

Since Flowhub is nearing a public beta, this would also give us a way to showcase some of the possibilities, as well as stress-test Flow-Based Programming in a Internet-connected hardware project. Often hackerspace projects tend to stretch from months to infinity; our experiences with NoFlo and flying drones already showed that with FBP we can easily parallelize development, challenging some of the central dogmas of the Mythical Man Month. It was worth a try to see if this would allow us to compress the time needed for such a project from a couple of months to a long weekend.

Introducing the Ingress Table

Before the actual hackathon we had two meetings with the project team. There were many decisions to be made, starting from the size and shape of the table to the features it should have. Looking at the different tables in the c-base main hall we settled on a square table of slightly less than 1m2, as that would fit nicely in the area, and still seat the magical number of eight Ingress agents or other c-base regulars.

The tabletop would be a map of c-base and the surrounding area, and it would show the status of the portals nearby, as well as alert people sitting at it of attacks and other Ingress events of interest. Essentially, it'd be a physical world equivalent of the Intel Map.

Intel Map of the area

We considered integrating a regular screen to have maximum flexibility in the face of the changing world of Ingress, but eventually decided that most people at c-base already spend much of their waking hours looking at a screen, and so we'd do something more ambient and just use a set of physical lights.

Exploded viewAssembled view

The hardware and software also needed some thought, especially since some of the parts needed might have long shipping times. Eventually we settled on the combination of a BeagleBone Black ARM computer as the brains of the system, and a LaunchPad Tiva as the microcontroller running the hardware. The computer would run NoFlo on Linux, and we'd flash the microcontroller with MicroFlo.

Our BeagleBone Black

By the time of arriving to c-base, many Ingress agents have their phones and battery packs depleted, and so we incorporated eight USB power ports into the table design. Simply plug in your own cable and you can charge your device while enjoying the beer and the chat.

Once the plans had been set, a flurry of preparations began. We would need lots of things, ranging from wood and glass parts for the table shell, to various different electronics and computer parts for the insides. And some of these would have to be ordered from China. Would they arrive in time?

Design render of the table

I spent the two weeks before the hackathon doing a project in Florence, and it was quite interesting to coordinate the logistics remotely. Thankfully our Berlin team did a stellar job of tracking missing shipments and collecting the things we needed!

The hackathon

I landed in Berlin in the early evening of Friday, March 14th. After negotiating the rush hour public transport of the Tegel airport, I arrived to the space station to see most of our team already there, unpacking and getting the supplies ready for the hackathon.

Buying the materials

At this point we essentially had only the raw materials available. Planks of wood, plates of glass and plastic. And a lot of electronics components. No assembly had yet been done, and no lines of code had been written or graphs drawn for the project.

We quickly organized the hackathon into three tracks: hardware, software, and electronics. The hardware team got themselves busy building the table shell, as that would need to be finished early so that the paint would have time to dry before we'd start assembling the electronics into it. Over the next day they'd often call the other teams over to help in holding or moving things, and also for the very important task of test-sitting the table to figure out the optimal trade-off between table height and legroom.

Legroom measurementsLegroom measurements

While the hardware guys were working, we started designing the software part of it. Some basic decisions had to be taken on how we'd get the data, and how we would filter and transform the raw portal statuses to commands to the actual lights in the table.

Eventually we settled on a NoFlo graph that would poll the portal data in, and run it through a set of transformations to find the detect the data points of interest, like portals that have changed owners or are under attack. In parallel we would run some animation loops to create a more organic, shifting feel to the whole map by having the light shining through the streets be constantly shifting and moving.

The main Ingress Table NoFlo graph

(and yes, the graph you see above is the actuall running code of the table)

Software team at robolabSoftware team at robolab

Since the electronics wouldn't be working for a while still, we decided to build also a Ingress Table Emulator in HTML and NoFlo. This would give us something to test the data and our graphs while the other teams where still working on their things. This proved to be a very useful thing, as this way we were able to watch a big Ingress battle through our simulated blinking lights already in the Saturday evening, and see our emulated table go through pretty much all the different states we were interested in.

The software team at workThe software team at work

Once the table shell had been built and the paint was drying, the hardware team started preparing the other things like the map layer, the glass top, and the USB chargers.

Watching the paint dryAttaching the map sticker

For electronics we noticed that we had still some parts missing from the inventory, and so I had to do a quick supply run on Saturday. But once we got those, the team got into calculations and soldering.

Electronics workElectronics work

Every project has its setbacks, and in this case it came in the form of running pre-released software. It turned out that the LaunchPad port of MicroFlo still had some issues, and so most of Sunday was spent debugging the communications protocol and tuning the components. But the end result is a much better improved MicroFlo, and eventually we got the major moment of triumph of seeing the street lights start animating for the first time. LED strips controlled by a LaunchPad Tiva, in turn controlled by animation loops running in a NoFlo graph on Node.js.

Food timeFiguring out communications problems

On Monday evening we convened at c-base for the final push. Street lights were ready, but there were still some issues with getting the table connected wirelessly to the space station network. And we would still need to implement the MicroFlo component for the portal lights. The latter resulting in an epic parallel programming and debugging session between Jon in Norway and Uwe in Berlin. But by the end of the evening we were able to test the full system for the first time, and carry the table to its new home.

Testing the lightsThe table running in the main hall

It was time to celebrate. For an Ingress table, this meant sitting around the table enjoying cold beers, while hacking a level 8 blue portal and watching the lights change across the board as agents ventured out.

Ingress Table in production

(We're still in the process of collecting media about the project. The table will look a lot more awesome in video, and I hope I'll be able to add some of those to this post soon)

Moving ahead

Having the first running version of the table is of course a big milestone. Now we should monitor it for some time (over beer, of course) and make adjustments as necessary. There are some things that obviously need to be changed with the brightness of the lights based on the location of the table in the main hall. And of course we'll only know about the full system's robustness once it has a bit more mileage.

Since we already have a HTML emulator of the table, it might be fun to release that to the public at some point. That way agents who are not at the c-base main hall could also see what is going on with this simple interface.

An interesting area of development is also to see how the table could integrate better with the rest of the space station. There are various screens ranging from the awesome Mate Light to smaller screens and gauges everywhere. And all of that is pretty much networked and available. Maybe we could visualize some events of interest in other parts of the station. This shows of the "Internet of Things" is never finished.

So far Niantic Labs — the makers of Ingress — have limited the availability of a portal data API to few selected parties, and so for now we had to work with a third-party to get the information needed. We hope this table will be another step in convincing Niantic of the creative potential that an official, open Ingress API would unleash.

I'd like to give big thanks especially to everybody who participated in hackathon — whether on location or remotely from Oslo — as well as to those who were cheering us on. I'm also grateful to Flowhub for sponsoring the project. And of course to c-base for being an awesome place where such things can happen.

The full source code for the Ingress Table can be found from https://github.com/c-base/ingress-table

Flowhub - Make code playful

by Henri Bergius (henri.bergius@iki.fi) at March 18, 2014 07:00 AM

March 16, 2014

Viikon VALO

4x12 Open Camera - Viikon VALO #168

Open Camera on avoimen lähdekoodin kamerasovellus Android-puhelimille ja -tableteille.
valo168-opencamera.png Open Camera on kamerasovellus, joka sisältää monia edistyneitä toimintoja, joita ei löydy monista muista kamerasovelluksista. Jotkin ohjelman ominaisuudet saattavat toimia vain laitteilla, jotka tukevat kyseistä toiminnallisuutta. Ohjelma vaatii toimiakseen Androidin, jonka versio on vähintään 4.0, mutta se toimii hyvin myös Jolla-puhelimen SailfishOS-käyttöjärjestelmän kanssa. Ohjelmalla voi ottaa sekä still- että videokuvaa. Myös laitteen mahdollista etukameraa voi käyttää "selfieiden" ottamiseen.

Ohjelmaa voi käyttää automaattiasetuksilla taikka monipuolisista säädöistä voi valita kyseiseen tilanteeseen sopivat. Salaman voi kytkeä toimimaan automaattisesti, pakotetusti pois päältä, pakotetusti päälle taikka "soihtu"-tilaan, jossa laitteen led-salama palaa jatkuvasti. Kuvan tarkennustavaksi voi valita automaattisen, jolloin kuva tarkentuu näytöltä sormella valittuun kohtaan, äärettömän, makrotilan taikka jatkuvan tilan, jossa laite säätää tarkennusta jatkuvasti. Kosketusnäytöltä voi helposti säätää liukusäätimellä valotusasetuksia tai zoomia (rajausta). Zoomia voi säätää kosketusnäytöltä myös kahdella sormella nipistämällä.

Lisäasetuksista löytyy automaattisten kuvausasetusten lisäksi valmiita asetuksia erilaisiin tilanteisiin, kuten urheiluun, yökuvaukseen, teatteriin, rannalle, auringonlaskuun, ilotulitukseen tai kynttilänvaloon. Myös asetukset valkotasapainon ja väriefektien, kuten mustavalkoasetuksen tai seepiavärin, valitsemiseen löytyvät. Samoin asetuksista löytyy kuvan automaattinen vakaaminen ("Auto-stabilise"), joka käyttää laitteen omia sensoreita asennon tunnistamiseen, ja joka suoristaa vinossa otetut kuvat. Kasvontunnistus helpottaa kuvaamista tunnistamalla kasvot ja tarkentamalla automaattisesti niihin. Ohjelmassa on käytettävissä myös ajastin ja kuvien ottaminen useamman kuvien sarjoina. Kuvaan voi halutessaan myös tallentaa sijaintitiedot laitteen GPS-toiminnon avulla.

Ohjelman käyttöliittymää voi jonkin verran muokata valitsemalla, mitä tietoja ja toiminnallisuuksia näytöllä näytetään.

Kotisivu
http://opencamera.sourceforge.net/
F-Droidissa
Google Playssa
Lisenssi
GNU GPLv3+
Toimii seuraavilla alustoilla
Android, SailfishOS
Asennus
Ohjelma on asennettavissa F-Droid-palvelusta tai Google Playsta. Nokia X -puhelinten käyttäjät voivat ladata ohjelman Nokia Storesta.

Teksti: Pesasa
Kuvakaappaukset: Pesasa

by pesasa at March 16, 2014 10:39 PM

March 03, 2014

Niklas Laxström

Numbers on translatewiki.net sign-up process

Translatewiki.net features a good user experience for non-technical translators. A crucial or even critical component is signing up. An unrelated data collection for my PhD studies inspired me to get some data on the translatewiki.net user registration process. I will present the results below.

History

At translatewiki.net the process of becoming an approved translator has been, arguably, complicated in some periods.

In the early days of the wiki, permissions were not clearly separated: hundreds users were just given the full set of permissions to edit the MediaWiki namespace and translate that way.

Later, we required people to go through hoops of various kind after registering to be approved as translators. They had to create a user page with certain elements and post a request on a separate page and they would not get notifications when they were approved unless they tweaked their preferences.

At some point, we started using the LiquidThreads extension: now the users could get notifications when approved, at least in theory. That brought its own set of issues though: many people thought that the LiquidThreads search box on the requests page was the place where to write the title of their request. After entering a title, they ended up in a search results page, which was a dead end. This usability issue was so annoying and common that I completely removed the search field from LiquidThreads.
In early 2010 we implemented a special page wizard (FirstSteps) to guide users though the process. For years, this has allowed new users to get approved, and start translating, in few clicks and a handful hours after registering.

In late 2013 we enabled the new main page containing a sign-up form. Using that form, translators can create an account in a sandbox environment. Accounts created this way are normal user accounts except that they can only make example translations to get a feel of the system. Example translations give site administrators some hints on whether to approve or reject the request and approve the user as a translator.

Data collection

The data we have is not ideal.

  • For example, it is impossible to say what’s our conversion rate from users visiting the main page to actual translators.
  • A lot of noise is added by spam bots which create user accounts, even though we have a CAPTCHA.
  • When we go far back in the history, the data gets unreliable or completely missing.
    • We only have dates for account created after 2006 or so.
    • The log entry format for user permissions has changed multiple times, so the promotion times are missing or even incorrect for many entries until a few years back.

The data collection was made with two scripts I wrote for this purpose. The first script produces a tab separated file (tsv) containing all accounts which have been created. Each line has the following fields:

  1. username,
  2. time of account creation,
  3. number of edits,
  4. whether the user was approved as translator,
  5. time of approval and
  6. whether they used the regular sign-up process or the sandbox.

Some of the fields may be empty because the script was unable to find the data. User accounts for which we do not have account creation time are not listed. I chose not to try some methods which can be used to approximate the account creation time, because the data in that much past is too unreliable to be useful.

The first script takes a couple of minutes to run at translatewiki.net, so I split further processing to a separate script to avoid doing the slow data fetching many times. The second script calculates a few additional values like average and median time for approval and aggregates the data per month.

The data also includes translators who signed up through the sandbox, but got rejected: this information is important for approval rate calculation. For them, we do not know the exact registration date, but we use the time they were rejected instead. This has a small impact on monthly numbers, if a translator registers in one month and gets rejected in a later month. If the script is run again later, numbers for previous months might be somewhat different. For approval times there is no such issue.

Results

Account creations and approved translators at translatewiki.net

Image 1: Account creations and approved translators at translatewiki.net

Image 1 displays all account creations at translatewiki.net as described above, simply grouped by their month of account creation.

We can see that approval rate has gone down over time. I assume this is caused by spam bot accounts. We did not exclude them hence we cannot tell whether the approval rate has gone up or down for human users.

We can also see that the number of approved translators who later turn out to be prolific translators has stayed pretty much constant each month. A prolific translator is an approved translator who has made at least 100 edits. The edits can be from any point of time, the script is just looking at current edit count so the graph above doesn’t say anything about wiki activity at any point in time.

There is an inherent bias towards old users for two reasons. First, at the beginning translators were basically invited to a new tool from existing methods they used, so they were likely to continue to translate with the new tool. Second, new users have had less time to reach 100 edits. On the other hand, we can see that a dozen translators even in the past few months have already made over 100 edits.

I have collected some important events below, which I will then compare against the chart.

  • 2009: Translation rallies in August and December.
  • 2010-02: The special page to assist in filing translator requests was enabled.
  • 2010-04: We created a new (now old) main page.
  • 2010-10: Translation rally.
  • 2011: Translation rallies in April, September and December.
  • 2012: Translation rallies in August and December.
  • 2013-12: The sandbox sign-up process was enabled.

There is an increase in account creations and approved translators a few months after the assisting special page was enabled. The explanation of this is likely to be the new main page which had a big green button to access the special page. The September translation rally in 2011 seems to be very successful in requiting new translators, but also the other rallies are visible in the chart.

Image 2: How long it takes for account creation to be approved.

Image 2: How long it takes for account creation to be approved.

The second image shows how long it takes from the account creation for a site administrator to approve the request. Before sandbox, users had to submit a request to become translators on their own: the time for them to do so is out of control of the site administrators. With sandbox, that is much less the case, as users get either approved or rejected in a couple of days. Let me give an overview of how the sandbox works.

All users in the sandbox are listed on a special page together with the sandbox translations they have made. The administrators can then approve or reject the users. Administrators usually wait until the user has made a handful translations. Administrators can also send email reminders for the users to make more translations. If translators do not provide translations within some time, or the translations are very bad, they will get rejected. Otherwise they will be approved and can immediately start using the full translation interface.

We can see that the median approval time is just a couple of hours! The average time varies wildly though. I am not completely sure why, but I have two guesses.
First, some very old user accounts have reactivated after being dormant for months or years and have finally requested translator rights. Even one of these can skew the average significantly. On a quick inspection of the data, this seems plausible.
Second, originally we made all translators site administrators. At some point, we introduced the translator user group, and existing translators have gradually been getting this new permission as they returned to the site. The script only counts the time when they were added to the translator group.
Alternatively, the script may have a bug and return wrong times. However, that should not be the case for recent years because the log format has been stable for a while. In any case, the averages are so big as to be useless before the year 2012, so I completely left them out of the graph.

The sandbox has been in use only for a few months. For January and February 2014, the approval rate has been slightly over 50%. If a significant portion of rejected users are not spam bots, there might be a reason for concern.

Suggested action points

  1. Store the original account creation date and “sandbox edit count” for rejected users.
  2. Investigate the high rejection rate. We can ask the site administrator why about a half of the new users are rejected. Perhaps we can also have “mark as spam” action to get insight whether we get a lot of spam. Event logging could also be used, to get more insight on the points of the process where users get stuck.

Source material

Scripts are in Gerrit. Version ’2′ of the scripts was used for this blog post. Processed data is in a Libre Office spreadsheet. Original and updated data is available on request, please email me.

by Niklas Laxström at March 03, 2014 04:46 PM

February 08, 2014

Wikimedia Suomi

Rahankeruusta

Poliisihallitus on lähettänyt suomenkielisen Wikipedian ylläpitäjien sähköpostilistalle lausuntopyynnön. Poliisia kiinnostaa, rikkooko Wikipediassa meneillään oleva varainkeruu rahankeräyslakia. Varainkeruukampanja on globaali ja sen on järjestänyt Wikimedia-säätiö (Wikimedia Foundation, Inc). Se on järjestetty hyvällä menestyksellä maailmanlaajuisesti useamman kerran ja järjestäjä on pitänyt huolta, että se toteutuisi lain mukaisesti ja avoimessa hengessä. Poliisin tekemä kysely ohjattiin Wikimedia-säätiön lakiasiainosastolle, joka lähettää oman näkemyksensä asiasta viranomaiselle ja on pyytänyt ohjaamaan viralliset kyselyt heille. Wikimedia-säätiön varainkeruusta voi lukea lisää täältä.

Yksityisten lahjoitusten merkitystä vapaan tietosanakirjan toiminnalle on vaikea liioitella, sillä Wikimedia-säätiön puitteet kustannetaan lähes kokonaan niiden turvin. Keskimääräinen lahjoitus on suunnilleen kymmenen euron suuruinen, eli toiminta on mahdollista lahjoittajien suuren määrän ansiosta. On tärkeää, että lahjoittaminen on jatkossakin helppoa ja mutkatonta.

Uutisen myötä on tullut myös kysymyksiä siitä, mitkä ovat Wikimedia-säätiön, Wikipedian muokkaajayhteisön ja paikallisyhdistysten keskinäiset roolit. Ehkä on syytä tehdä ne selviksi:

  • Wikipedia on vapaa tietosanakirja, jota pitää yllä Wikimedia-säätiö, joka on yhdysvaltalainen voittoa tavoittelematon yhdistys. Vaikka rahankeruukampanjan bannereita on suomeksi suomenkielisessä Wikipediassa, kyseessä on yhdysvaltalainen verkkopalvelu. Yksikään sen palvelimista ei sijaitse Suomessa ja toimintaa ohjataan San Franciscosta. Wikimedia-säätiö vastaa Wikipedian ja muiden hankkeidensa olemassaolosta muun muassa hallinnoimalla palvelimia. Sillä on 198 työntekijää erilaisissa tehtävissä, jotka liittyvät projektien ylläpitoon ja uusien aloitteiden tukemiseen.

  • Suomenkielisen Wikipedian muokkaajayhteisö muodostuu pääasiassa pseudonyymien takaa tietosanakirjaa harrastuksekseen muokkaavista henkilöistä. Näiden joukossa on noin 50 ylläpitäjää jotka valvovat mm. yhteisön valitsemien sääntöjen noudattamista. Ylläpitäjillä ei kuitenkaan ole esimerkiksi sisällöllisiä erioikeuksia vaan  Wikipedian muokkaajat ovat mahdollisimman pitkälle tasa-arvoisia. Rooliltaan ylläpitäjät vastaavat esimerkiksi foorumien moderaattoreita.

Suomenkielisen Wikipedian ylläpitäjät ja Wikimedia Suomi ry ovat itsenäisiä toimijoita, joilla ei ole laillisia vastuita tai velvollisuuksia Wikimedia-säätiön toiminnan suhteen. Nimien samankaltaisuudesta, yhteistyöstä ja jaetusta filosofiasta huolimatta mikään näistä tahoista ei voi virallisesti edustaa toista. Vaikka tämä saattaa vaikuttaa hiusten halkomiselta, kyseessä on tietosanakirjan sisällön riippumattomuuden kannalta tärkeä asia.

Kuten asiaa koskevia uutisia seuranneet ovat varmasti huomanneet, joukkorahoitus on Suomen lain silmissä kaikkea muuta kuin yksinkertaista. Olisi hyvä, että sen asema selviäisi mahdollisimman pian. Wikipedian varainhankinnan käyttäminen esimerkkinä on kuitenkin ongelmallista ennen kuin asiasta tulee Wikimedia-säätiön oma lausunto. Toivottavasti asia selviää pian ja jatkossa kampanjat sujuvat ongelmitta.

Tommi Kovala
puheenjohtaja
Wikimedia Suomi ry

by Tommi Kovala at February 08, 2014 03:59 PM

February 06, 2014

Henri Bergius

Full-Stack Flow-Based Programming

The idea of Full-Stack Development is quite popular at the moment — building things that run both the browser and the server side of web development, usually utilizing similar languages and frameworks.

With Flow-Based Programming and the emerging Flowhub ecosystem, we can take this even further. Thanks to the FBP network protocol we can build and monitor graphs spanning multiple devices and flow-based environments.

Jon Nordby gave a Flow-Based Programming talk in FOSDEM Internet of Things track last weekend. His demo was running a FBP network comprising of three different environments that talk together. You can find the talk online.

<video controls="controls" src="http://mirrors.dotsrc.org/fosdem/2014/AW1121/Sunday/Flowbased_programming_for_heterogeneous_systems.webm"></video>

Here are some screenshots of the different graphs.

MicroFlo running on an Arduino Microcontroller and monitoring a temperature sensor:

MicroFlo on Arduino

NoFlo running on Node.js and communicating with the Arduino over a serial port:

NoFlo on Node.js

NoFlo running in browser and communicating with the Node.js process over WebSockets:

NoFlo on browser

(click to see the full-size picture)

Taking this further

While this setup already works, as you can see the three graphs are still treated separately. The next obvious step will be to utilize the subgraph features of NoFlo UI and allow different nodes of a graph represent different runtime environments.

This way you could introspect the data passing through all the wires in a single UI window, and "zoom in" to see each individual part of the system.

The FBP ecosystem is growing all the time, with different runtimes popping up for different languages and use cases. While NoFlo's JavaScript focus makes it part of the Universal Runtime, there are many valid scenarios where other runtimes would be useful, especially on mobile, embedded, and desktop.

Work to be done

Interoperability between them is an area we should focus on. The network protocol needs more scrutiny to ensure all scenarios are covered, and more of the FBP/dataflow systems need to integrate it.

Some steps are already being taken in this direction. After Jon's session in FOSDEM we had a nice meetup discussing better integration between MicroFlo on microcontrollers, NoFlo on browser and server, and Lionel Landwerlin's work on porting NoFlo to the GNOME desktop.

Full-stack FBP discussions at FOSDEM 2014

If you're interested in collaborating, please get in touch!

Photo by Forrest Oliphant.

by Henri Bergius (henri.bergius@iki.fi) at February 06, 2014 08:00 AM

January 08, 2014

Niklas Laxström

First day at work

Officially I started January 1st, but apart from getting an account today was the first real thing at the university. Still feels great – the “oh my what did I sign up to” feeling has still time to come. ;)

After having the WMF daily standup, I have a usual breakfast and head to city center, where our research group of four had a meeting. To my surprise, the eduroam network worked immediately. I had configured it at home earlier based on a guide on the site of some university of Switzerland, if I remember correctly: my university didn’t provide good help for how to set it up with Fedora and KDE.

Institute of Behavioural Sciences, University of Helsinki

The building on the left is part of Institute of Behavioural Sciences. It is just next to the building (not visible) where I started my university studies in 2005. (Photo CC BY-NC-ND by Irmeli Aro.)

On my side, preparations for the IWSDS conference are now the highest priority. I have until Monday to prepare my first ever poster presentation. I found PowerPoint and InDesign templates from the university’s website (ugh proprietary tools). Then there are few days to get it printed before I fly on Thursday. After the travel I will make a website for the project to allow it to get some visibility and find out about the next steps as well as how to proceed with studies.

After this topic, I got to hear about other part of the research, collection of data in Sami languages. I connected them with Wikimedia Suomi who has expressed interest to work with Sami people.

After the meeting, we went hunting for so-called WBS codes which are needed in various places to target the expenses, for example for poster printing and travel plans. (In case someone knows where the abbreviation WBS comes from, there are at least two people in the world who are interested to know.) The people I met there were all very friendly and helpful.

On my way home I met an old friend from Päivölä&university (Mui Jouni!) in the metro. There was also a surprise ticket inspection – 25% inspection rate for my trips this year based on 4 observations. I guess I need more observations before this is statistically significant ;)

One task left for me when I got home was to do the mandatory travel plan. This needs to be done through university’s travel management software, which is not directly accessible. After trying without success to access it first through their web based VPN proxy, second with openvpn via NetworkManager via “some random KDE GUI for that” on my laptop and, third, even with a proprietary VPN application on my Android phone I gave up for today – it’s likely that the VPN connection itself is not the problem and the issue is somewhere else.

It’s still not known from where I will get a room (I’m employed in a different department from where I’m doing my PhD). Though I will likely work from home often as I am used to.

by Niklas Laxström at January 08, 2014 09:10 PM

January 05, 2014

Niklas Laxström

MediaWiki i18n explained: {{PLURAL}}

This post explains how MediaWiki handles plural rules to developers who need to work with it. In other words, how a string like “This wiki {{PLURAL:$1|0=does not have any pages|has one page|has $1 pages}}” becomes “This wiki has 425 pages”.

Rules

As mentioned before we have adopted a data-based approach. Our plural rules come from Unicode CLDR (Common Locale Data repository) in XML format and are stored in languages/data/plurals.xml. These rules are supplemented by local overrides in languages/data/plurals-mediawiki.xml for languages not supported by CLDR or where we are yet to unify our existing local rules to match CLDR rules.

As a short recap, translators handle plurals by writing all possible different forms explicitly. That means that there are different forms for singular, dual, plural, etc., depending on what grammatical numbers the language has. There might be more forms because of other grammatical reasons, for example in Russian the grammatical case of the noun varies depending on the number. The rules from CLDR put all numbers into different boxes, each box corresponding to one form provided by the translator.

Preprocessing

The plural rules are stored in localisation cache (not to be confused with message cache and many other caches in MediaWiki) with other language specific localisation data. The localisation cache can be stored in different places depending on configuration. The default is to use the SQL database, but they can also be in CDB files as they are at the Wikimedia Foundation and translatewiki.net.

The whole process starts 1) when the user runs php maintenance/rebuildLocalisationCache.php, or 2) during a web request, if the cache is stale and automatic cache rebuild is allowed (as by default).

The code proceeds as follows:

LocalisationCache::readSourceFilesAndRegisterDeps

  • LocalisationCache::getPluralRules fills pluralRules
    • LocalisationCache::loadPluralFiles loads both xml files, merges them and stores the result in in-process cache
  • LocalisationCache::getComplisedPluralRules fills compiledPluralRules
    • LocalisationCache::loadPluralFiles returns rules from in-process cache
    • CLDRPluralRuleEvaluator::compile compiles the standard notation into RPN notation
  • LocalisationCache::getPluralTypes fills pluralRuleTypes

So now for the given language we have three lists (see table 1). The pluralRules are used in frontend (JavaScript) and the compiledPluralRules are used in the backend (PHP) with a custom evaluator. Tim Starling wrote the custom evaluator for performance reasons. The pluralRuleTypes stores the map between numerical indexes and CLDR keywords, which are not used in MediaWiki plural syntax. Please note that Russian has four plural forms: the fourth form, called other, is used when none of the other rules match and is not stored anywhere.

Table 1: Stored plural data for Russian
pluralRuleTypes pluralRules compiledPluralRules
“one” “n mod 10 is 1 and n mod 100 is not 11″ “n 10 mod 1 is n 100 mod 11 is-not and”
“few” “n mod 10 in 2..4 and n mod 100 not in 12..14″ “n 10 mod 2 4 .. in n 100 mod 12 14 .. not-in and”
“many” “n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14″ “n 10 mod 0 is n 10 mod 5 9 .. in or n 100 mod 11 14 .. in or”

The cache also stores the magic word PLURAL, defined in languages/messages/MessageEn.php and translated to other languages, so in Finnish language wikis they can use {{MONIKKO:$1|$1 talo|$1 taloa}} if they so want. For compatibility reasons, in all interface translations these magic words are used in English.

Invocation on backend

There are roughly three ways to trigger plural parsing:

  1. using the plural syntax in a wiki page,
  2. calling the plural parser with Message object with output format text,
  3. using the plural syntax in a message with output format parse, which calls full wikitext parser as in 1.

In all cases, we will get into Parser::replaceVariables, which expands all magic words and templates (anything enclosed in double braces; sometimes also called {{ constructs). It will load the possible translated magic words and see if the {{thing}} in the wikitext or message matches a known magic word. If not, the {{thing}} is considered a template call. If the plural magic word matches, the parser will call CoreParserFunctions::plural which will take the arguments, make them into an array, call the correct language object with Language::convertPlural( number, forms ): see table 2 for function call trace.

In the Language class we first handle explicit plural forms explained in a previous post on explicit zero and one form. If any explicit plural form doesn’t match, they are removed and we will continue on with the other forms, calling Language::getPluralRuleIndexNumber( number ), which first loads the compiled plural rules into the in-process cache, then calls CLDRPluralRuleEvaluator::evaluateCompiled which returns the box the number belongs to. Finally we take the matching form given by the translator, or the last form provided. Then the return value is substituted in place of the plural magic word call.

Table 2: Function call list for plural magic word
Message::parse Message::text
  • Message::toString
  • Message::parseText
  • MessageCache::parse
  • Parser::parse
  • Parser::internalParse
  • Message::toString
  • Message::transformText
  • MessageCache::transform
  • Parser::transformMsg
  • Parser::preprocess
  • [The above lists converge here]
  • Parser::replaceVariables
  • PPFrame_DOM::expand
  • Parser::braceSubstitution
  • Parser::callParserFunction
  • call_user_func_array
  • CoreParserFunctions::plural
  • Language::convertPlural
  • [Plural rule evaluation]

Invocation on frontend

The resource loader module mediawiki.language.data (implemented in class ResourceLoaderLanguageDataModule) is responsible for loading the plural rules from localisation cache and delivering them together with other language data to JavaScript.

The resource loader module mediawiki.jqueryMsg provides yet another limited wikitext parser which can handle plural, links and few other things. The module mediawiki (global mediaWiki, usually aliased to mw) provides the messaging interface with functions like mw.msg() or mw.message().text(). Those will not handle plural without the aforementioned mediawiki.jqueryMsg module. Translated magic words are not supported at the frontend.

If a plural magic word is found, then it will call the frontend convertPlural method. These are provided in few hops by the module mediawiki.language which depends on mediawiki.language.data and mediawiki.cldr. The latter depends on mediawiki.libs.pluralruleparser, which evaluates the (non-compiled) CLDR plural rules to reach the same result as in the PHP side and is hosted at GitHub, written by Santhosh Thottingal of the Wikimedia Language Engineering team.

by Niklas Laxström at January 05, 2014 08:46 PM

January 01, 2014

Wikimedia Suomi

Happy New Year!

Today is the first operative day of the new board of Wikimedia Suomi. Welcome new board!

Tommi Kovala continues as a chairman in the board of 2014. Kimmo Virtanen is the second to continue from the previous board. Founding member Niklas Laxström and Ulpu Pajari are quitting, as well as Joonas Suominen. Susanna Ånäs changes roles to become a part-time employee of the association. We are welcoming 7 new members, representing widely the domains of open knowledge and culture in Finland.

Work will be carried out in novel working groups. The board will focus on Wikipedia in education (EDU), partnerships with cultural and memory organizations (GLAM) and cooperation and strategic work in open knowledge and culture (OPEN). This year we look to foster a funnier and more friendly Wikipedia, and there’s a group for that (<3). PR and communications are looked after on many areas of responsibility: newsletters and association’s incoming mail (WMFI), press (PRESS), social media (SOME) and the Wikimedia community (WIKI).

We shall introduce the board members more closely in the coming blog posts.

Chairman Tommi Kovala, EDU (lead), PRESS
Vice chair Kimmo Virtanen, WIKI
Secretary Iivari Koutonen, WMFI
Treasurer Tarmo Toikkanen, EDU

Sanna Hirvonen, GLAM (lead), SOME
Johanna Janhonen, EDU, SOME, <3
Jyrki Lehtinen, WIKI, <3
Jessica Parland-von Essen, GLAM, OPEN, SV-PRESS
Henrik Saari, GLAM, EDU, OPEN, <3

Susanna Ånäs, half-time employee of the Wikimaps project in January–June, GLAM, OPEN (deputy), SOME, <3

Image: Godt Nytaar. The National  Library of Norway, 1916.

by Susanna Ånäs at January 01, 2014 09:49 PM

Hyvää Uutta Vuotta!

Tänään on Wikimedia Suomen uuden hallituksen ensimmäinen työpäivä. Tervetuloa uusi hallitus!

Edellisestä hallituksesta jatkavat puheenjohtajaksi uuteenkin valittu Tommi Kovala ja Kimmo Virtanen. Pois jäivät perustajajäsenet Ulpu Pajari ja Niklas Laxström, Joonas Suominen, sekä Susanna Ånäs, joka siirtyy yhdistyksen työntekijäksi. Uudet jäsenet edustavat monipuolisesti avoimen tiedon ja kulttuurin alueita Suomessa.

Työtä tehdään uusissa työryhmissä. Hallitus keskittyy Wikipediaan opetuksessa (EDU), kulttuuri- ja muistiorganisaatioiden kanssa tehtävään yhteistyöhön (GLAM) ja yhteistyöhön ja strategiseen työhön avoimen tiedon ja kulttuurin alueella (OPEN). Tavoittelemme tänä vuonna hauskempaa ja ystävällisempää Wikipediaa, ja sitä varten on oma ryhmänsä (<3). Tiedottamisesta ja yhteydenpidosta huolehditaan monilla eri tiedotuksen vastuualueilla: jäsenkirjeet ja yhdistyksen sähköposti (WMFI), lehdistö (PRESS), some-viestintä (SOME) ja Wikipedia-yhteisön kanssa kommunikoiminen (WIKI).

Tulemme esittelemään hallituksen jäsenet blogissa myöhemmin perusteellisemmin.

Puheenjohtaja Tommi Kovala, EDU (vastuu), PRESS
Varapuheenjohtaja Kimmo Virtanen, WIKI
Sihteeri Iivari Koutonen, WMFI
Rahastonhoitaja Tarmo Toikkanen, EDU

Sanna Hirvonen, GLAM (vastuu), SOME
Johanna Janhonen, EDU, SOME, <3
Jyrki Lehtinen, WIKI, <3
Jessica Parland-von Essen, GLAM, OPEN, SV-PRESS
Henrik Saari, GLAM, EDU, OPEN, <3

Susanna Ånäs, Wikimaps-projektin puolipäiväinen työntekijä tammi-kesäkuussa, GLAM, OPEN (vara), SOME, <3

Kuva: Godt Nytaar. The National  Library of Norway, 1916.

by Susanna Ånäs at January 01, 2014 01:49 PM

Hyvää Public Domain -päivää!

Tänään raukeavat tekijänoikeudet vuonna 1943 kuolleiden taiteilijoiden teoksilta. Näiden kuvataiteilijoiden teoskuvilla voi tästä päivästä alkaen vapaasti kuvittaa Wikipedia-artikkeleita.

Osallistumme Public Domain Dayn juhlistamiseen tekemällä Wikipediaan sivun Public Domain 2014, johon on listattu löydetyt taiteilijat sekä Suomesta että ulkomailta. Haastamme vapaaehtoiset ja muistiorganisaatiot täydentämään Wikipediaa aloittamalla ja täydentämällä artikkeleita, tekemällä niihin tietolaatikoita ja liittämällä niihin teoskuvia.

Public Domain -taiteilijoita

Suomalaisia taiteilijoita Meri GenetzRichard HallAnton Lindforss, Eemu MynttiJuho MäkeläVäinö Rikhard Rautalin, Heikki Tandefelt ja Raffaello Gambogi, suomalaisen kuvataiteilijan Elin Danielson-Gambogin puoliso, sekä muualta maailmasta Gustav VigelandCamille ClaudelKonstantinos Dimitriadis.

Arkkitehtejä Gunnar WahlroosK. A. Wrede.

Suomalaisia kirjailijoita Albert Theodor BöökVilho HaanpääMaria JotuniToimi JuutiPekka KarunkiI. E. KerkkolaPaul KlintheEino I. ParmanenAleksius RuokosalmiAbbe SandmanReino SilvantoKerstin Söderholm.

Muusikoita ja säveltäjiä meiltä ja muualta mm. Fats WallerSergei RahmaninovLeo SmitEdvard FazerAino HaverinenMatti Jurva, Paavo Kostioja, Alice TegnérRicardo Viñes.

Neuvoja ja ohjeita

Kun muistat periaatteet, loppu onkin helppoa:

  • Wikipediaan kirjoitetaan neutraalista näkökulmasta
  • Tekijänoikeuksia ei saa loukata
  • Kun mainitset lähteet, muutkin voivat tarkistaa kirjoittamasi, etkä tule kirjoittaneeksi uutta tutkimusta.

Aloita tästä: Tervetuloa Wikipediaan!
Tällainen on hyvä wikiartikkeli: Ohje:Artikkelin rakenne.
Näin lisäät lähteen: Wikipedia:Merkitse lähteet.
Näin lisäät kuvan: Ohje:Kuvien lisääminen.
Näin lisäät taiteilija-infoboksin: Malline:Taiteilija.
Tunne tekijänoikeudet ja muut käytännöt: Wikipedia:Tiedostojen käyttösäännöt.
Kuvat suositellaan tallentamaan Wikimedia Commonsiin, jolloin niiden on oltava vapaita sekä Suomen että Yhdysvaltain tekijänoikeuslainsäädännön mukaan. Tutustu aiheeseen tarkemmin: Commons:Licensing

Sophie_Taeuber-Arp_Oval_Composition_with_Abstract_Motifs_1922

Kuva: Sophie Taeuber-Arp (1889–1943): Oval Composition with Abstract Motifs. Sophie Taeuber-Arp oli sveitsiläinen kuvataiteilija, taidemaalari, kuvanveistäjä ja tanssija. Häntä pidetään yhtenä 1900-luvun tärkeimmistä geometrisen abstraktion taiteilijoista. Hänestä ei ole artikkelia suomen kielellä. Lue englanninkielinen artikkeli tai aloita artikkeli suomeksi.
Otsikon kuva: Gustav Vigelandin takorauta-aita Vigeland-puistossa Oslossa. Annie Dalbéra CC-BY 2.0

by Susanna Ånäs at January 01, 2014 01:49 PM

December 24, 2013

Niklas Laxström

You can write a paper about that

“You can write a paper” is kind of a running joke in the language engineering team when the discussion sways so far from the original topic that it is no longer helping to get the work done. But sometimes sidelines turn out to be interesting and fruitful. When I was presented an opportunity to do a PhD related to wikis, languages and translation I could not pass it. And because of the joke, I can claim full innocence – they told me to! ;)

The results are in and…. I got accepted! Screams with joy and then quickly shies away hoping nobody noticed.

What does this mean?

Doctoral hat

The doctoral hat is the ultimate goal, right?

If you are a reader of this blog, the topics might get even more incomprehensible. Or the posts might be even more insightful and based on research instead of gut feelings. Hopefully, it doesn’t mean that I won’t have time to write more blog posts.

Practically, I will be starting at the beginning of January with the goal of writing a PhD dissertation and of graduating in about four years. The proposed topic for my dissertation is Supporting creation and interaction of open content with language technology, as part of the project “Finno-Ugric Digital Natives: Linguistic support for Finno-Ugric digital communities in generating online content”. As with my MA, I’ll do this at the University of Helsinki.

Initially I will be working three days a week on that and keep helping the language engineering team as well. We’ll see how it goes.

The first thing I will do is to participate in IWSDS (Workshop on Spoken Dialog Systems) held in January at Napa, California, USA. I will be presenting a paper about multilingual WikiTalk.

by Niklas Laxström at December 24, 2013 05:55 PM

December 18, 2013

Ubuntu-blogi

Kolme syytä liittyä Suomen avointen tietojärjestelmien keskus COSSiin

Kuka valvoo Ubuntun ja muiden avoimen lähdekoodin ohjelmistojen käyttäjien etuja? Mikä järjestö on pääasiallinen avoimen lähdekoodin markkinoija ja edistäjä Suomessa? Vastaus on COSS ry.

Kolme syytä tukea COSSia

COSS logo

  1. COSS lisää tietoisuutta avoimesta lähdekoodista, erityisesti julkishallinnossa
  2. COSS edistää suomalaisen IT-alan kasvua ja työllisyyttä kiiihdyttämällä suomalaislähtöisen teknologian menestystä
  3. COSS lisää avoimen lähdekoodin osaamista koulutuksilla, tapahtumillla ja verkostoitumismahdollisuuksilla

Liity COSS ry:n kannatusjäseneksi! →

Mikä on COSS?

Suomen avoimien tietojärjestelmien keskus – COSS ry on voittoa tavoittelematon yhdistys, joka toimii avoimen lähdekoodin, avoimen datan, avoimien rajapintojen sekä avoimien standardien edistämiseksi.

avoimuus
COSS on toiminut jo vuodesta 2003 ja se tunnetaan kansainvälisesti yhtenä Euroopan vanhimmista ja aktiivisimmista avoimuuden keskuksista.

COSS edistää yhteistyötä sekä yhteisöjen, yritysten että julkishallinnon välillä ja mm. järjestää tapahtumia. COSSin sivuilta löytyy valtakunnallinen kalenteri alan kaikista tapahtumista: http://coss.fi/kalenteri/

Yhdistys työskentelee tiedottamalla ja valistamalla avoimuuden periaatteista, -käytänteistä ja -teknologioista. COSS.fi on Suomen suurin alan sivusto.

Esimerkkejä COSSin toiminnasta

  • Tukee julkishallintoa kaikissa tietojärjestelmien avoimuutta edistävissä pyrkimyksissä
  • Edistää avoimen lähdekoodin ratkaisuja, palveluja ja yritystoimintaa
    • Tilaisuuksien järjestäminen ja tukeminen
    • Tiedottaminen verkossa ja muissa medioissa
    • Aktiivisen yritysverkoston ylläpitäminen: COSSin jäseninä n. 100 suomalaista avoimen lähdekoodin yritystä
  • Edistää yritysten, tutkimuslaitosten ja korkeakoulujen välistä yhteistyötä
  • Edistää yritysten ja kehittäjäyhteistöjen välistä yhteistoimintaa
    • Lokalisointi-työryhmä suomentaa ohjelmistoja
    • Linux-tapahtumapäivien järjestäminen
    • Devaamo Summit -tapahtuman tukeminen
  • Ylläpitää yhteistyötä alan suomalaisten ja kansainvälisten järjestöjen ja yhteisöjen välillä
    • KDE-kehittäjien Akademy 2010 -tapahtuman järjestäminen Tampereella
    • Yhteistyö Linux Foundationin, Free Software Foundation Europen ja monen muun kanssa
  • Edistää avointa lähdekoodia, avoimia standardeja, avoimia rajapintoja ja avointa dataa
  • Jakaa vuosittain Open World Hero -palkinnon

Liity COSS ry:n kannatusjäseneksi! →

Autathan COSSia saamaan lisää tukijoita jakamalla tätä viestiä sosiaalisessa mediassa!

by Otto at December 18, 2013 01:29 PM

December 12, 2013

Henri Bergius

Flowhub

We just opened the Flowhub website for pre-orders. Flowhub is the collaborative development environment for NoFlo and other flow-based programming systems.

Flowhub

Once it launches for general use, Flowhub is the fruition of the project initiated by our successful NoFlo Development Environment Kickstarter from last August.

Flowhub will provide a development environment for your flow-based programs, allowing you to collaborate and build things inside the same interface whether you're targeting the client-side or the server-side of the web world. And thanks to the efforts on creating a standard protocol for flow-based runtimes, Flowhub will be able to work with other environments as well. To get a glimpse of this potential, take a look at Jon Nordby's work on Arduino programming with NoFlo UI and what Lionel Landwerlin is doing with NoFlo in the Linux desktop development world.

This is the main reason why we went with a more generic name for the new service. Flowhub aims to be the central hub for any flow-based development, not just the JavaScript-centric world where my NoFlo runtime is focused. Our Kickstarter sparked a lot of interest in flow-based programming in general, as evidenced by the various new FBP runtimes, and the upcoming book on the subject.

While NoFlo is and will remain our main focus, we should embrace the different ideas and different projects out there. One of the key points of FBP is everything can be modeled as a black box with input and output ports. With this level of abstraction, and a standard communications protocol, the different systems will be able to work together. Flowhub can be the central point for enabling that.

Collaboration as a service

NoFlo is open source, and so is the development environment we're building for it. For developing things on your own, this is pretty much all you'll need, especially if you're willing to set up things like the NoFlo environment for Node.js yourself.

The role of Flowhub as a service is analogous to what GitHub provides for traditional software development. Anybody can serve git repositories and issue trackers on their own, but having a third party to take care of that gives a much simpler, smoother experience. And even more importantly, having a central point where multiple projects reside enables much better collaboration and discovery between teams and projects.

Flowhub plans

This is the essence of what Flowhub will provide:

  • Hosted version of the NoFlo UI, able to communicate with multiple different FBP runtimes whether running on client or server
  • Integration with GitHub's version control and issue tracking capabilities
  • Peer-to-peer environment for team collaboration based on WebRTC
  • Hosted environment for running server-side NoFlo programs and their tests

As promised in our Kickstarter, the service will open to the public in the early summer of 2014. Our Kickstarter backers will gain an early access and have already service plans provided for them. With our Flowhub pre-order campaign, those who missed the Kickstarter opportunity have still a way to get in with early adopter pricing.

New technologies and a new UI

Like NoFlo itself, Flowhub is also an exploration of various new technologies. From the layout technologies and the use of Web Components, and the flow-based payment processing infrastructure handling both BitCoin and credit card transactions that we built in NoFlo — there are many things being dogfooded on the service.

At this stage of the game there are sure to be some rough edges, but by the time Flowhub opens to the public there should've been enough time at both our end, and with web browsers to mature to the point where these things provide a smooth experience.

The user interface we showed in September, and user-tested in the NodeCopter NoFlo event has since seen quite a lot of improvement based on what we've learned. The new version has been rebuilt ground-up with Polymer and NoFlo, and is a lot more efficient and touch-friendly.

Flowhub team testing the new UI

It is still not perfect, but having used it on various devices from small tablets through laptops to huge touch-screen PCs, I feel we're definitely on the right track. Having a user interface where you can see the connections and data flows of your software in real time, and can rewire any part when needed is incredibly powerful. And once component editing is working fully with the runtimes, I can't really see myself wanting to go back to text-only development.

Here is a sneak peek (click to see a bigger version):

New NoFlo UI in action

To see more of what we're building, visit flowhub.io, play with the demo we have there, and make sure to watch the intro video. Preorder today to help fund the hosted and open source version of Flowhub!

by Henri Bergius (henri.bergius@iki.fi) at December 12, 2013 08:00 AM

December 09, 2013

Niklas Laxström

Performance is a feature

In case you haven’t already noticed, I like working on performance issues and performance improvements. Performance is a thing where you have to consider the whole stack: the speed of the server, efficient algorithms, server side caching, bandwidth and latency, client side caching and client side code. Here is a short recap of what has been done for translatewiki.net lately and some ideas for the future.

Recent improvements

Flame chart visualization

Chrome 29 (or later release) has added a helpful visualization for profiling data. In this image the speed of ULS JavaScript code is evaluated on a fonts heavy page. Comparing to the collapsible tabs feature, it is doing okay.

Server level. A month ago translatewiki.net got a new server with more memory and faster processors. The main benefit is that we can handle more simultaneous users and background tasks without them slowing each other down. At the same time, we upgraded many of the programs to newer versions. The switch from MySQL to MariaDB is the most important one. We haven’t tested it for our use case, but the Wikimedia Foundation found that the switch had overall positive impact on performance.

Web server level. In the beginning of November I configured our nginx web server to enable support for the SPDY protocol. This should greatly reduce latency when browsing over HTTPS. We are considering to switch to HTTPS by default. While tweaking nginx, I also fixed a few settings that relate on the compression and expiry times of JavaScript, SVG images and font assets when delivered to users. I used AWStats to see if our daily bandwidth usage decreased. It has not decreased significantly, but there is a lot of variation between days that make interpreting the data difficult. PageSpeed was used to ensure that caching headers are optimal and WebPagetest to confirm that pages load faster on different browsers in different places.

Application level. The Language Engineering team has recently worked a lot on the performance of Universal Language Selector (ULS) and Translate extensions. A short summary of the things which were done:

  • Reduce the amount of JavaScript and CSS delivered to the browser.
  • Delay the loading of JavaScript and CSS as much as possible (for example till the user opens ULS).
  • Optimize JPG, SVG and PNG images to the last byte with tools like jpegoptim, optipng.
  • Optimize the JavaScript to avoid slow actions (for example repaint events and dom changes). We used Chrome’s JavaScript profiler as well as the experimental tool “show potential scroll bottlenecks” to identify issues and confirm the fixes (thanks Ori).

In addition I fixed a major performance issue in one of the Translate API modules by replacing an inefficient algorithm with a faster one. While investigating that issue, I also noticed that ReplacementArray-strtr was taking 20% or so of MediaWiki run time. There is a less known PHP module FastStringSearch, which was not installed on the new server. Installing that module made a big difference on the MediaWiki profiling table: ReplacementArray-fss is now taking only about 0.20% of MediaWiki run time.

Finally, a thing called module local storage was enabled on Wikimedia wikis few days ago (the title of this post was taken from that discussion). As is usual for translatewiki.net, we were already beta testing that feature a few weeks before it went live on Wikimedia wikis.

Future plans

It is hard to plan the future for further performance improvements, as the bottlenecks and the places where you can make the most difference for the least effort change constantly, together with the technology and your content. I believe that HHVM, a JIT PHP virtual machine, is likely to be the next step which will make a significant difference. It is however not a straightforward thing to jump from a normal PHP intepreter to HHVM, so I will be keeping a close eye on how my colleagues at the Wikimedia Foundation are progressing with the adoption of HHVM.

Another relatively small thing on the horizon is better compression of inline SVG images in CSS style sheets, by avoiding unnecessary base64 encoding. Or something else might happen even before it.

Finally, I’d like to highlight that while the application-level improvements automatically benefit third party users, there really isn’t any coherent documentation on how to improve performance of a MediaWiki site at all levels. Configuring localisation cache, nginx and/or Varnish, tweaking MySQL or MariaDB and installing Memcached or Redis should be part of any capable sysadmin’s skills; but even just tailoring them for MediaWiki, let alone knowing which PHP modules to install, is likely not known by many. For example, I wouldn’t be surprised if there were very few or even no sites using the FastStringSearch module outside of Wikimedia and translatewiki.net.

by Niklas Laxström at December 09, 2013 12:21 PM

November 28, 2013

Henri Bergius

Bitcoin as a Medium of Exchange

Bitcoin — the decentralized digital currency — has been making a lot of headlines lately. Much of this is driven by the current investment boom around it that has raised the exchange rates over the 1000 USD mark. But really, looking at Bitcoin as a medium for currency or asset speculation is a bad idea. Instead, we should see it purely as a medium of exchange.

Bitcoin Accepted Here

Not a great holder of value

Much of the press stories about Bitcoin see it as a speculative investment free of currency manipulation by central banks. By its nature, it is a deflationary currency, given that the global supply of Bitcoins is capped. As long as there is interest in Bitcoin, it means the prices are bound to go up. But at the same time, this is a threat to the currency. Deflation disincentivizes people from spending their money, as tomorrow the value is likely to be higher.

Bitcoin exchange rates 2013

This is a big difference to fiat currencies where central banks generally act to ensure that there is a little bit of inflation, giving people incentives to spend, invest, and keep the economy running.

Traditional currencies are given a value by the fact that there is a government requiring taxes to be paid in them. This creates a demand in the currency, as people have to acquire units of that currency somehow, usually by selling goods and services. So, the value of a currency is built on the power of a state to tax its subjects in that currency.

The other traditional holder of value, gold, also differs from Bitcoins in the sense that at least you can make some useful things out of it.

In contrast, the value of Bitcoin without an economy backing it up is exactly zero. Without an active network of miners, and business transactions that create a demand for them, there is not much you could do with a Bitcoin.

Given this setting, Bitcoin as a investment mechanism resembles a ponzi scheme where people make speculative investments in them in hopes of being able to pass them on to the next fool when the prices go up.

This is obviously not sustainable in the long term. But luckily there are things you can do with Bitcoin that still make them interesting if you deal with them as a medium of exchange and not a long-term holder of value.

Great tool for conducting transactions

Now that we've established that Bitcoins are not the best thing to put your life savings into, or to stash under your mattress, what is it exactly that makes them interesting?

Mobile money

Bitcoin is a way of making transactions quickly, safely, and without middlemen. A lot of the articles written about it compare it to gold, but in my view a much closer comparison is M-Pesa, the operator-driven mobile payment network that powers over 30% of the Kenyan economy.

M-Pesa in action

M-Pesa on a phone, by Pixel Ballads

When you see people paying with their mobile phones in a African street market, you know they've leapfrogged us in technology.

Bitcoin has the exactly same advantages as M-Pesa: you can send it to anywhere with minimal costs and delays, you can keep it on your phone, and anybody can ask for a payment through it. Unlike M-Pesa, Bitcoin is truly decentralized and doesn't rely on a mobile operator to act as the "central bank".

Unlike M-Pesa, Bitcoin currently requires an internet-connected smartphone with a wallet application. This limits its usefulness in the world outside of the rich countries (though cheap Android phones are changing the situation). It would be a huge boost for mobile commerce with Bitcoins if there was a service that enabled paying and requesting Bitcoin over SMS.

The one to make Bitcoin work over SMS will be rich

Last summer I was talking with Joerg Patzer, the owner of Room 77, a restaurant in Berlin that has been one of the early adopters of Bitcoin. At the time about 10% of the his sales happened in Bitcoin, and the number has been constantly growing since. He told that he even pays some of his suppliers in Bitcoin, and only converts some of it to euros, solely because you can't pay taxes in Bitcoin.

Patzer buys the beer for Room 77 from the nearby Rollberg brewery, owned and run by qualified brew and malt meister Wilko Bereit. He pays for the barrels with Bitcoins

Joerg also told me an interesting case where there was a group of tourists having a dinner in his restaurant. A friend of theirs that wasn't able to make the trip insisted on paying the bill remotely from Israel. This is something that would be hard to do with the traditional credit cards or currencies. Paying in Bitcoin is quite straightforward:

He taps the amount he owes Room 77 into the virtual Bitcoin wallet on his Android phone and, aligning it with a code on the bar's device, presses a button to process the payment. A theatrical "kerching" sound follows and Gallas is grinning from ear to ear. "It could hardly be easier," he insisted.

Bitcoin Wallet in action

Requesting a payment using Bitcoin Wallet for Android

Global currency for the internet

Bitcoin nodes around the world

Map of global Bitcoin nodes

Requesting Bitcoins is as easy as providing a URL. This could be presented as a link on the web, or shared to mobile devices via QR Codes. For example, clicking this link on a device with a Bitcoin wallet would enable you to send me Bitcoins worth around 0.1 EUR (on today's exchange rates). No need for dealing with payment gateways or complicated protocols.

Ease of paying, no middle men, minimal transaction fees, and no risk of chargebacks make a lot of interesting business scenarios possible online. Consider for example micropayments for online content. This is something that would make online publishing viable without the current ad-driven models, but has been held back by the risks and costs associated with credit card payments. Wider adoption of Bitcoin would suddenly make this a very realistic way of asking for money for the things you do online.

Other clever uses

Since Bitcoins can be exchanged in miniscule amounts, and there is a public record kept on each transaction, they enable all kinds of new use cases.

One such service that I ran into yesterday is Proof of Existence, a tool for storing the fact that you were in possession of a document at a given time, and that it hasn't been revised since based on microtransactions stored in the Bitcoin block chain. This is a mechanism known as trusted timestamping that could be useful for things we currently utilize notaries for. The Hacker News thread on this listed some interesting use cases, like verifying scientific priority on new inventions, i.e. that you had written a document describing a new invention at a given time even if you publish it only later.

We could also use Bitcoin for solving the spam problem. Emails could be "stamped" with a Bitcoin microtransaction, and email servers could be configured to reject messages that don't have a valid payment attached to them. This would enable bringing decentralization back to the internet as we could again use distributed systems like email and XMPP without having to resort to the walled gardens like Facebook to keep them spammers away.

Another interesting approach was to use Bitcoin transactions for making bets.

How to get started

A good way to get started with Bitcoin is to read Wired's Bitcoin survival guide or the materials available on Bitcoins.com. Install a Bitcoin wallet application on your mobile device. Then get some Bitcoin either by buying locally, from an online exchange or by selling goods or services for Bitcoin.

This is all you need to get going. Now you just need to find a way to spend them, for example in online shops, by buying domains, or in shops and restaurants that accept them, like many do in my neighborhood.

Disclaimer: I'm a programmer, not an economist. There are better people to take investment advice from. I do hold a little bit of Bitcoin, giving me some vested interest in the matter. Not the kind of amount that would make it an investment, but just the right amount for being able to buy a few nice dinners, especially at the Berlin prices. Generally, I try to keep the amount I have in BTC low enough to be equivalent of what I might be comfortable with carrying in cash.

by Henri Bergius (henri.bergius@iki.fi) at November 28, 2013 08:00 AM

November 27, 2013

Losca

Jolla launch party

And then for something completely different, I've my hands on Jolla now, and it's beautiful!



A quick dmesg of course is among first things to do...
[    0.000000] Booting Linux on physical CPU 0
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Linux version 3.4.0.20131115.2 (abuild@es-17-21) (gcc version 4.6.4 20130412 (Mer 4.6.4-1) (Linaro GCC 4.6-2013.05) ) #1 SMP PREEMPT Mon Nov 18 03:00:49 UTC 2013
[ 0.000000] CPU: ARMv7 Processor [511f04d4] revision 4 (ARMv7), cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[ 0.000000] Machine: QCT MSM8930 CDP
... click for the complete file ...
And what it has eaten: Qt 5.1!
...
qt5-qtconcurrent-5.1.0+git27-1.9.4.armv7hl
qt5-qtcore-5.1.0+git27-1.9.4.armv7hl
qt5-qtdbus-5.1.0+git27-1.9.4.armv7hl
qt5-qtdeclarative-5.1.0+git24-1.10.2.armv7hl
... click for the complete file ...
It was a very nice launch party, thanks to everyone involved.






Update: a few more at my Google+ Jolla launch party gallery

by Timo Jyrinki (noreply@blogger.com) at November 27, 2013 08:10 PM

Workaround for setting Full RGB when Intel driver's Automatic setting does not work

Background

I upgraded from Linux 3.8 to 3.11 among with newer Mesa, X.Org and Intel driver recently and I found a small workaround was needed because of upstream changes.

The upstream change was the Add "Automatic" mode for "Broadcast RGB" property, and defaulting to the Automatic. This is a sensible default, since many (most?) TVs default to the more limited 16-235, and continuing to default to Full from the driver side would mean wrong colors on the TV. I've set my screen to support the full 0-255 range available to not cut the amount of available shades of colors down.

Unfortunately it seems the Automatic setting does not work for my HDMI input, ie blacks become grey since the driver still outputs the more limited range. Maybe there could be something to improve on the driver side, but I'd guess it's more about my 2008 Sony TV actually having a mode that the standard suggests limited range for. I remember the TV did default to limited range, so maybe the EDID data from TV does not change when setting the RGB range to Full.

I hope the Automatic setting works to offer full range on newer screens and the modes they have, but that's probably up to the manufacturers and standards.

Below is an illustration of the correct setting on my Haswell CPU. When the Broadcast RGB is left to its default Automatic setting, the above image is displayed. When set to Full, the image below with deeper blacks is seen instead. I used manual settings on my camera so it's the same exposure.


Workaround

For me the workaround has evolved to the following so far. Create a /etc/X11/Xsession.d/95fullrgb file:
 
if [ "$(/usr/bin/xrandr -q --prop | grep 'Broadcast RGB: Full' | wc -l)" = "0" ] ; then
/usr/bin/xrandr --output HDMI3 --set "Broadcast RGB" "Full"
fi
And since I'm using lightdm, adding the following to /etc/lightdm/lightdm.conf means the flicker only happens once during bootup:

display-setup-script=/etc/X11/Xsession.d/95fullrgb

Important: when using the LightDM setting, enable executable bits (chmod +x) to /etc/X11/Xsession.d/95fullrgb for it to work. Obviously also check your output, for me it was HDMI3.

If there is no situation where it'd set back to "Limited 16:235" setting on its own, the display manager script should be enough and having it in /etc/X11/Xsession.d is redundant and slows login time down. I think for me it maybe went from 2 seconds to 3 seconds since executing xrandr query is not cheap.

Misc

Note that unrelated to Full range usage, the Limited range at the moment behaves incorrectly on Haswell until the patch in bug #71769 is accepted. That means, the blacks are grey in Limited mode even if the screen is also set to Limited.

I'd prefer there would be a kernel parameter for the Broadcast RGB setting, although my Haswell machine does boot so fast I don't get to see too many seconds of wrong colors...

by Timo Jyrinki (noreply@blogger.com) at November 27, 2013 08:50 AM

November 13, 2013

Henri Bergius

NoFlo and GNOME

As the readers of this blog know, I've been working on a Flow-Based Programming implementation for JavaScript in the form of the NoFlo project. The idea of FBP in nutshell is to separate the control flow of software from the actual implementation. Developers build reusable "black box" components that are then connected with each other through a graph that you can define either visually or textually.

FBP has been around for quite a while, having been invented by J. Paul Morrison in the 60s, but is now becoming more and more relevant thanks to the need for talking to multiple asynchronous APIs and different devices. While NoFlo has been stable enough for production use for about two years now, we ran a successful Kickstarter earlier this fall to push the development tools to a new level.

I attended the FSCONS conference last weekend, and gave a NoFlo talk. Since quite a few GNOME regulars were there as well, we ended up chatting about how NoFlo and FBP could be utilized in the desktop environment. I'm writing this to Planet GNOME to introduce some of those ideas.

The video from my talk isn't online yet, but you can watch a video from the talk I gave at c-base couple of months ago:

<iframe allowfullscreen="allowfullscreen" frameborder="0" height="281" mozallowfullscreen="mozallowfullscreen" src="http://player.vimeo.com/video/72065207?color=ffffff" webkitallowfullscreen="webkitallowfullscreen" width="500"></iframe>

NoFlo on gjs

An interesting development that happened this fall was that NoFlo was ported to the gjs JavaScript engine by Lionel Landwerlin. This allows us to take the ideas of Flow-Based Programming and connect them with the desktop. GNOME is an excellent candidate for this, given that JavaScript is a first-class citizen on the development platform, meaning that with the right set of components your FBP programs could integrate with all the relevant parts of the GNOME ecosystem.

Lionel posted a screencast of window management with Clutter coordinated by NoFlo:

<iframe allowfullscreen="allowfullscreen" frameborder="0" height="315" src="http://www.youtube.com/embed/p7NYgqG0CQ8" width="560"></iframe>

This is of course only the first steps, but shows a little bit of the potential. While NoFlo's low overhead could mean making actual GNOME applications with it, the initial sweet spot for the integration would be:

  • Having a fast UI prototyping tool in GNOME, a bit like how Quartz Composer is used on the Apple platforms
  • Allowing users to automate parts of their desktop workflow through simple FBP programs

Vinod Khosla summarized the significance of this quite well:

An author can write a book, a musician a song, a painter a painting. Most UI designers cannot realize their creation

Zeeshan also wrote about similar ideas for GNOME in his Pentu project proposal two years ago.

Bringing the GNOME platform to NoFlo

The big part of enabling flow-based GNOME development would be to provide NoFlo components for the various APIs in the GNOME ecosystem. This could be done manually, but quite possibly we could automate at least parts of the process by some smart GObject Introspection hacking.

This would be quite similar to how we integrated the Polymer Web Components with NoFlo.

As I'm currently quite busy on the NoFlo Development Environment, I won't be able to do this personally. But this sort of work would be the perfect fit for something like OPW or GSoC. I'd be happy to mentor that effort.

The NoFlo Development Environment

We're building a quite nice graphical editor and debugger for flow-based programs. You can see the current state in a UI walkthrough I posted last month.

NoFlo UI in action

The NoFlo UI is a web application that could be brought to the desktop by running it inside a webview. To control the NoFlo runtime inside gjs we would also need a GNOME library for dealing with WebSockets, as that is the way we talk with non-browser runtimes like Node.js or the microflo environment for Arduino programming.

By supporting the NoFlo network protocol on gjs we could easily start, stop, modify, and monitor FBP programs running inside GNOME.

In the long run it would also be possible to build a native flow-based editor as well. After all, since the data model and runtime interactions are standardized, there is no reason why multiple different tools couldn't interact with the same NoFlo graphs.

To find out more about NoFlo, visit the website, read the code on GitHub, or read the various press stories that appeared during the Kickstarter.

While I'm currently working outside of the desktop context, having been around GNOME since early 2000s I'm still following the project with interest. Having NoFlo there would be a great way to revitalize this connection.

by Henri Bergius (henri.bergius@iki.fi) at November 13, 2013 08:00 AM

September 16, 2013

Ubuntu-blogi

Ubuntu-asennustyöpaja torstaina 19.9. Helsingissä

Software Freedom Day (Avointen ohjelmien päivä) on kansainvälinen tapahtuma, jota vietetään 286 tapahtumalla ympäri maailmaa tänä vuonna. Päivän tarkoitus on lisätä avoimen lähdekoodin ohjelmistojen tunnettuutta.

Software Freedom Day 2013Mikä avoin ohjelma?

Avoimella ohjelmalla tarkoitetaan ohjelmaa, jonka lisenssi takaa käyttäjille neljä perusvapautta:

  1. käyttää ohjelmaa rajoituksetta
  2. tutkia ohjelman toimintaa (lähdekoodista)
  3. muokata ohjelmaa ja tehdä uusia versioita
  4. jakaa ohjelmaa edelleen kenelle tahansa

Tunnettuja avoimen lähdekoodin ohjelmistoja ovat mm. Android-käyttöjärjestelmä, Firefox- ja Chromium-nettiselaimet, VLC-mediasoitin ja LibreOffice-toimisto-ohjelmisto. Tutkimusten mukaan, laajasta käytöstä huolimatta, kuitenkin vasta kolmasosa suomalaisista tietää mitä avoin lähdekoodi on.

Tapahtumalla halutaan nostaa ihmisten tietoisuuteen ohjelmistojen alkuperät, kehitysmallit sekä tekijöiden ja kehittäjien intressit. Tapahtumat järjestäjät uskovat, että avoimet ohjelmat ovat sekä eettisesti että teknisesti parempi vaihtoehto kuin suljetut ohjelmat.

Avoin lähdekoodi on myös taloudellisesti merkittävä asia. Esimerkiksi tunnetut verkkopalvelut kuten Google, Facebook ja Twitter toimivat avoimen lähdekoodin palvelinohjelmistojen avulla, eikä palveluita olisi syntynyt ilman avoimia ohjelmistoja.

Avoin lähdekoodi on erityisen ajankohtaista siksi, että se on ainoa keino suojautua vakoilukäyttöön tehtyjä takaporteja vastaan. Lähdekoodin avoimuus mahdollistaa ohjelman toiminnan yksityiskohtaisen tutkimisen.

Varsinkin Suomessa avoimen lähdekoodin tulisi olla tunnettua, onhan moni avointen ohjelmistojen pääkehittäjä suomalainen. Esimerkkeinä mainitaakoon Linus TorvaldsMichael “Monty” Widenius ja Timo Sirainen.

Suomessa kokoonnutaan Helsingissä

Suomessa tapahtumaa vietetään nimellä Avointen ohjelmien päivä, joka on kaikelle yleisölle avoin ja ilmainen tilaisuus torstaina 19.9. klo 17:30 alkaen Helsingissä.

Avointen ohjelmien päivän tilaisuus alkaa esittelyllä mitä avoimet ohjelmat ovat ja mistä niitä löytää. Tämän jälkeen tapahtuma jatkuu asennustyöpajana, jossa paikalla olevat asiantuntijat auttavat ohjelmien asennuksessa yleisön omiin tietokoneisiin. Tarjolla on sekä Ubuntu-asennuksia, että myös muita Linux-jakeluja sekä myös VALO-ohjelmia Windowsiin ja Maciin. Tilaisuus on helpoin tapa tutustua ja päästä käyttämään avoimia ohjelmia.

Tarkempi ohjelma ja ilmoittautumislomake löytyvät COSS.fi:n verkkosivuilta.

Tilaisuuden järjestää yhteistyössä Euroopan vapaiden ohjelmistojen säätiön (FSFE) Suomen tiimi sekä Suomen avointen tietojärjestelmien keskus COSS ry.

Suomen tapahtuman sivut: http://coss.fi/tapahtumat/avoimien-ohjelmien-paiva-2013-software-freedom-day-2013/

Kansainvälisen tapahtuman sivut: http://www.softwarefreedomday.org/

Liity COSSin jäseneksi

Jos haluat tukea tätä sekä muuta toimintaa avoimen lähdekoodin edistämiseksi Suomessa, liity COSSin jäseneksi osoitteessa coss.fi/liity

by Otto at September 16, 2013 12:37 PM

August 15, 2013

Aapo Rantalainen

Tikkupeli ja matematiikkaa.

Kumpi voittaa 7531-tikkupelin? Miksi?
Säännöt kahdelle pelaajalle.
Alkuasetelma: Tikut ovat riveittäin, ensimmäisellä rivillä 7 tikkua, seuraavalla 5, sitten 3 ja viimeisellä 1.

Vuorollaan pelaaja valitsee yhden rivin ja poistaa siltä haluamansa määrän tikkuja. Kuitenkin ainakin yhden. Halutessaan vaikka kaikki (eikä tietenkään enempää kuin mitä rivillä on).

Häviäjä on se pelaaja joka joutuu ottamaan pelilaudalta viimeisen tikun.

Saanko aloitusvuoron vai haluatko sinä aloittaa pelin? Todista.

alkutila

Pysähdy tähän miettimään.

Vastaus alkaa:

Otetaan käyttöön merkintätapa, jossa jokainen pelitilanne kuvataan neljällä numeromerkillä. Koska tikkurivien järjestyksellä ei ole merkitystä, sovitaan että numeromerkit ovat aina suurimmasta pienimpään. Eli tila 2100 = 2010 = 2001 = 1200 = 1020 = 0120 = 0210 = 0201 = 0021. Merkitään näitä kaikkia tiloja 2100:lla
Nyt pelin häviämisehto on:

Määritelmä I
Pelaaja häviää jos hänelle tulee tila 1000.
(Reunahuomautus: Jos jättäisimme nollat kokonaan merkitsemättä, tikkurivien määrä aloituksessa voisi olla jokin muukin kuin neljä.)

Tässä seuraa matemaattinen todistus. ‘Lemma’ on siis ‘apulause’. Koodarit voi ajatella sen funktiokutsuna (älä sotke matematiikan funktioihin). Määrittelen aina ensin lemman, ennen kuin käytän sitä, jotta ei varmasti synny kehäpäätelmiä.

Väitän että aloittaja häviää aina (tämä selviää todistuksen lopusta vasta).
Väite: Kaikille (eli ∀) aloittajan siirroille löytyy (eli ∃) vastustajalta vastine, jolla aloittaja häviää.

Lemma 1110: vuorossa oleva pelaaja häviää, jos hänelle tulee tila 1110.
Todistus: Tekee pelaaja minkä tahansa siirron, niin seuraava tila on 1100.
Josta vastustaja palauttaa 1000. Määritelmän mukaan häviää.

Lemma 2200: häviää
Todistus: (Pelaaja voi ottaa jommalta kummalta riviltä joko yhden tai kaksi tikkua.)
Voi päätyä tilaan
a) 2100
Josta vastustaja palauttaa 1000. Määritelmän mukaan häviää.
b) 2000
Josta vastustaja palauttaa 1000. Määritelmän mukaan häviää.

Lemma 2211: häviää
Todistus: Voi päätyä tilaan
a) 2210
Josta vastustaja palauttaa 2200. Lemman 2200 mukaan häviää.
b) 2111
Josta vastustaja palauttaa 1110. Lemman 1110 mukaan häviää.
c) 2110
Josta vastustaja palauttaa 1110. Lemman 1110 mukaan häviää.

Lemma 3210: häviää
Todistus: Voi päätyä tilaan
a) 3200
Josta vastustaja palauttaa 2200. Lemman 2200 mukaan häviää.
b) 3110
Josta vastustaja palauttaa 1110. Lemman 1110 mukaan häviää.
c) 2210
Josta vastustaja palauttaa 2200. Lemman 2200 mukaan häviää.
d) 2110
Josta vastustaja palauttaa 1110. Lemman 1110 mukaan häviää.
e) 2100
Josta vastustaja palauttaa 1000. Määritelmän mukaan häviää.

Lemma 3300: häviää
Todistus: Voi päätyä tilaan
a) 3200
Josta vastustaja palauttaa 2200. Lemman 2200 mukaan häviää.
b) 3100
Josta vastustaja palauttaa 1000. Määritelmän mukaan häviää.
c) 3000
Josta vastustaja palauttaa 1000. Määritelmän mukaan häviää.

Lemma 3311: häviää
Todistus: Voi päätyä tilaan
a) 3310
Josta vastustaja palauttaa 3300. Lemman 3300 mukaan häviää.
b) 3211
Josta vastustaja palauttaa 2211. Lemman 2211 mukaan häviää.
c) 3111
Josta vastustaja palauttaa 1110. Lemman 1110 mukaan häviää.
d) 3110
Josta vastustaja palauttaa 1110. Lemman 1110 mukaan häviää.

Lemma 4400: häviää
Todistus: Voi päätyä tilaan
a) 4300
Josta vastustaja palauttaa 3300. Lemman 3300 mukaan häviää.
b) 4200
Josta vastustaja palauttaa 2200. Lemman 2200 mukaan häviää.
c) 4100
Josta vastustaja palauttaa 1000. Määritelmän mukaan häviää.
d) 4000
Josta vastustaja palauttaa 1000. Määritelmän mukaan häviää.

Lemma 4411: häviää
Todistus: Voi päätyä tilaan
a) 4410
Josta vastustaja palauttaa 4400. Lemman 4400 mukaan häviää.
b) 4311
Josta vastustaja palauttaa 3311. Lemman 3311 mukaan häviää.
c) 4211
Josta vastustaja palauttaa 2211. Lemman 2211 mukaan häviää.
d) 4111
Josta vastustaja palauttaa 1110. Lemman 1110 mukaan häviää.
e) 4110
Josta vastustaja palauttaa 1110. Lemman 1110 mukaan häviää.

Lemma 5500: häviää
Todistus: Voi päätyä tilaan
a) 5400
Josta vastustaja palauttaa 4400. Lemman 4400 mukaan häviää.
b) 5300
Josta vastustaja palauttaa 3300. Lemman 3300 mukaan häviää.
c) 5200
Josta vastustaja palauttaa 2200. Lemman 2200 mukaan häviää.
d) 5100
Josta vastustaja palauttaa 1000. Määritelmän mukaan häviää.
e) 5000
Josta vastustaja palauttaa 1000. Määritelmän mukaan häviää.

Lemma 5410: häviää
Todistus: Voi päätyä tilaan
a) 5400
Josta vastustaja palauttaa 5500. Lemman 5500 mukaan häviää.
b) 5310
Josta vastustaja palauttaa 3210. Lemman 3210 mukaan häviää.
c) 5210
Josta vastustaja palauttaa 3210. Lemman 3210 mukaan häviää.
d) 5110
Josta vastustaja palauttaa 1110. Lemman 1110 mukaan häviää.
e) 5100
Josta vastustaja palauttaa 1000. Määritelmän mukaan häviää.
f) 4410
Josta vastustaja palauttaa 4400. Lemman 4400 mukaan häviää.
g) 4310
Josta vastustaja palauttaa 3210. Lemman 3210 mukaan häviää.
h) 4210
Josta vastustaja palauttaa 3210. Lemman 3210 mukaan häviää.
i) 4110
Josta vastustaja palauttaa 1110. Lemman 1110 mukaan häviää.
j) 4100
Josta vastustaja palauttaa 1000. Määritelmän mukaan häviää.

Lemma 5511: häviää
Todistus: Voi päätyä tilaan
a) 5510
Josta vastustaja palauttaa 5500. Lemman 5500 mukaan häviää.
b) 5411
Josta vastustaja palauttaa 4411. Lemman 4411 mukaan häviää.
c) 5311
Josta vastustaja palauttaa 3311. Lemman 3311 mukaan häviää.
d) 5211
Josta vastustaja palauttaa 2211. Lemman 2211 mukaan häviää.
e) 5111
Josta vastustaja palauttaa 1110. Lemman 1110 mukaan häviää.
f) 5110
Josta vastustaja palauttaa 1110. Lemman 1110 mukaan häviää.

Lemma 6420: häviää
Todistus: Voi päätyä tilaan
a) 6410
Josta vastustaja palauttaa 5410. Lemman 5410 mukaan häviää.
b) 6400
Josta vastustaja palauttaa 4400. Lemman 4400 mukaan häviää.
c) 6320
Josta vastustaja palauttaa 3210. Lemman 3210 mukaan häviää.
d) 6220
Josta vastustaja palauttaa 2200. Lemman 2200 mukaan häviää.
e) 6210
Josta vastustaja palauttaa 3210. Lemman 3210 mukaan häviää.
f) 6200
Josta vastustaja palauttaa 2200. Lemman 2200 mukaan häviää.
g) 5420
Josta vastustaja palauttaa 5410. Lemman 5410 mukaan häviää.
h) 4420
Josta vastustaja palauttaa 4400. Lemman 4400 mukaan häviää.
i) 4320
Josta vastustaja palauttaa 3210. Lemman 3210 mukaan häviää.
j) 4220
Josta vastustaja palauttaa 2200. Lemman 2200 mukaan häviää.
k) 4210
Josta vastustaja palauttaa 3210. Lemman 3210 mukaan häviää.
l) 4200
Josta vastustaja palauttaa 2200. Lemman 2200 mukaan häviää.

Lemma 6431: häviää
Todistus: Voi päätyä tilaan
a) 6430
Josta vastustaja palauttaa 6420. Lemman 6420 mukaan häviää.
b) 6421
Josta vastustaja palauttaa 6420. Lemman 6420 mukaan häviää.
c) 6411
Josta vastustaja palauttaa 4411. Lemman 4411 mukaan häviää.
d) 6410
Josta vastustaja palauttaa 5410. Lemman 5410 mukaan häviää.
e) 6331
Josta vastustaja palauttaa 3311. Lemman 3311 mukaan häviää.
f) 6321
Josta vastustaja palauttaa 3210. Lemman 3210 mukaan häviää.
g) 6311
Josta vastustaja palauttaa 3311. Lemman 3311 mukaan häviää.
h) 6310
Josta vastustaja palauttaa 3210. Lemman 3210 mukaan häviää.
i) 5431
Josta vastustaja palauttaa 5410. Lemman 5410 mukaan häviää.
j) 4431
Josta vastustaja palauttaa 4411. Lemman 4411 mukaan häviää.
k) 4331
Josta vastustaja palauttaa 3311. Lemman 3311 mukaan häviää.
l) 4321
Josta vastustaja palauttaa 3210. Lemman 3210 mukaan häviää.
m) 4311
Josta vastustaja palauttaa 3311. Lemman 3311 mukaan häviää.
n) 4310
Josta vastustaja palauttaa 3210. Lemman 3210 mukaan häviää.

Lemma 6521: häviää
Todistus: Voi päätyä tilaan
a) 6520
Josta vastustaja palauttaa 6420. Lemman 6420 mukaan häviää.
b) 6511
Josta vastustaja palauttaa 5511. Lemman 5511 mukaan häviää.
c) 6510
Josta vastustaja palauttaa 5410. Lemman 5410 mukaan häviää.
d) 6421
Josta vastustaja palauttaa 6420. Lemman 6420 mukaan häviää.
e) 6321
Josta vastustaja palauttaa 3210. Lemman 3210 mukaan häviää.
f) 6221
Josta vastustaja palauttaa 2211. Lemman 2211 mukaan häviää.
g) 6211
Josta vastustaja palauttaa 2211. Lemman 2211 mukaan häviää.
h) 6210
Josta vastustaja palauttaa 3210. Lemman 3210 mukaan häviää.
i) 5521
Josta vastustaja palauttaa 5511. Lemman 5511 mukaan häviää.
j) 5421
Josta vastustaja palauttaa 5410. Lemman 5410 mukaan häviää.
k) 5321
Josta vastustaja palauttaa 3210. Lemman 3210 mukaan häviää.
l) 5221
Josta vastustaja palauttaa 2211. Lemman 2211 mukaan häviää.
m) 5211
Josta vastustaja palauttaa 2211. Lemman 2211 mukaan häviää.
n) 5210
Josta vastustaja palauttaa 3210. Lemman 3210 mukaan häviää.

Lemma 6530: häviää
Todistus: Voi päätyä tilaan
a) 6520
Josta vastustaja palauttaa 6420. Lemman 6420 mukaan häviää.
b) 6510
Josta vastustaja palauttaa 5410. Lemman 5410 mukaan häviää.
c) 6500
Josta vastustaja palauttaa 5500. Lemman 5500 mukaan häviää.
d) 6430
Josta vastustaja palauttaa 6420. Lemman 6420 mukaan häviää.
e) 6330
Josta vastustaja palauttaa 3300. Lemman 3300 mukaan häviää.
f) 6320
Josta vastustaja palauttaa 3210. Lemman 3210 mukaan häviää.
g) 6310
Josta vastustaja palauttaa 3210. Lemman 3210 mukaan häviää.
h) 6300
Josta vastustaja palauttaa 3300. Lemman 3300 mukaan häviää.
i) 5530
Josta vastustaja palauttaa 5500. Lemman 5500 mukaan häviää.
j) 5430
Josta vastustaja palauttaa 5410. Lemman 5410 mukaan häviää.
k) 5330
Josta vastustaja palauttaa 3300. Lemman 3300 mukaan häviää.
l) 5320
Josta vastustaja palauttaa 3210. Lemman 3210 mukaan häviää.
m) 5310
Josta vastustaja palauttaa 3210. Lemman 3210 mukaan häviää.
n) 5300
Josta vastustaja palauttaa 3300. Lemman 3300 mukaan häviää.

VÄITE: Tilanteesta 7531 häviää.
Todistus: Voi päätyä tilaan
a) 7530
Josta vastustaja palauttaa 6530. Lemman 6530 mukaan häviää.
b) 7521
Josta vastustaja palauttaa 6521. Lemman 6521 mukaan häviää.
c) 7511
Josta vastustaja palauttaa 5511. Lemman 5511 mukaan häviää.
d) 7510
Josta vastustaja palauttaa 5410. Lemman 5410 mukaan häviää.
e) 7431
Josta vastustaja palauttaa 6431. Lemman 6431 mukaan häviää.
f) 7331
Josta vastustaja palauttaa 3311. Lemman 3311 mukaan häviää.
g) 7321
Josta vastustaja palauttaa 3210. Lemman 3210 mukaan häviää.
h) 7311
Josta vastustaja palauttaa 3311. Lemman 3311 mukaan häviää.
i) 7301
Josta vastustaja palauttaa 3210. Lemman 3210 mukaan häviää.
j) 6531
Josta vastustaja palauttaa 6431. Lemman 6431 mukaan häviää.
k) 5531
Josta vastustaja palauttaa 5511. Lemman 5511 mukaan häviää.
l) 5431
Josta vastustaja palauttaa 5410. Lemman 5410 mukaan häviää.
m) 5331
Josta vastustaja palauttaa 5511. Lemman 5511 mukaan häviää.
n) 5321
Josta vastustaja palauttaa 3210. Lemman 3210 mukaan häviää.
o) 5311
Josta vastustaja palauttaa 3311. Lemman 3311 mukaan häviää.
p) 5310
Josta vastustaja palauttaa 3210. Lemman 3210 mukaan häviää.


by Aapo Rantalainen at August 15, 2013 08:30 PM

July 10, 2013

Losca

Latest Compiz gaming update to the Ubuntu 12.04 LTS

A new Compiz window manager performance update reached Ubuntu 12.04 LTS users last week. This completes the earlier [1] [2] enabling of 'unredirected' (compositing disabled) fullscreen gaming and other applications for performance benefits.

The update has two fixes. The first one fixes a compiz CPU usage regression. The second one enables unredirection also for Intel and Nouveau users using the Mesa 9.0.x stack. That means up-to-date installs from 12.04.2 LTS installation media and anyone with original 12.04 LTS installation who has opted in to the 'quantal' package updates of the kernel, X.Org and mesa *)

The new default setting for the unredirection blacklist is shown in the image below (CompizConfig Settings Manager -> General -> OpenGL). It now only blacklists the original Mesa 8.0.x series for nouveau and intel, plus the '9.0' (not a point release).


I did new runs of OpenArena at openbenchmarking.org from a 12.04.2 LTS live USB. For comparison I first had a run with the non-updated Mesa 9.0 from February. I then allowed Ubuntu to upgrade the Mesa to the current 9.0.3, and ran the test with both the previous version of Compiz and the new one released.

12.04.2 LTS    Mesa 9.0   | Mesa 9.0.3 | Mesa 9.0.3
               old Compiz | old Compiz | new Compiz
OpenArena fps    29.63    |   31.90    | 35.03     

Reading into the results, Mesa 9.0.3 seems to have improved the slowdown in the redirected case. That would include normal desktop usage as well. Meanwhile the unredirected performance remains about 10% higher.

*) Packages linux-generic-lts-quantal xserver-xorg-lts-quantal libgl1-mesa-dri-lts-quantal libegl1-mesa-drivers-lts-quantal. 'raring' stack with Mesa 9.1 and kernel 3.8 will be available around the time of 12.04.3 LTS installation media late August.

by Timo Jyrinki (noreply@blogger.com) at July 10, 2013 12:01 PM

May 21, 2013

Losca

Network from laptop to Android device over USB

If you're running an Android device with GNU userland Linux in a chroot and need a full network access over USB cable (so that you can use your laptop/desktop machine's network connection from the device), here's a quick primer on how it can be set up.

When doing Openmoko hacking, one always first plugged in the USB cable and forwarded network, or like I did later forwarded network over Bluetooth. It was mostly because the WiFi was quite unstable with many of the kernels.

I recently found out myself using a chroot on a Nexus 4 without working WiFi, so instead of my usual WiFi usage I needed network over USB... trivial, of course, except that there's Android on the way and I'm a Android newbie. Thanks to ZDmitry on Freenode, I got the bits for the Android part so I got it working.

On device, have eg. data/usb.sh with the following contents.
#!/system/xbin/sh
CHROOT="/data/chroot"

ip addr add 192.168.137.2/30 dev usb0
ip link set usb0 up
ip route delete default
ip route add default via 192.168.137.1;
setprop net.dns1 8.8.8.8
echo 'nameserver 8.8.8.8' >> $CHROOT/run/resolvconf/resolv.conf
On the host, execute the following:
adb shell setprop sys.usb.config rndis,adb
adb shell data/usb.sh
sudo ifconfig usb0 192.168.137.1
sudo iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.137.0/24
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
sudo iptables -P FORWARD ACCEPT
This works at least with Ubuntu saucy chroot. The main difference in some other distro might be whether the resolv.conf has moved to /run or not. You should be now all set up to browse / apt-get stuff from the device again.

Update: Clarified that this is to forward the desktop/laptop's network connection to the device so that network is accessible from the device over USB.
Update2, 09/2013: It's also possible to get working on the newer flipped images. Remove the "$CHROOT" from nameserver echoing and it should be fine. With small testing it got somehow reset after a while at which point another run of data/usb.sh on the device restored connection.

by Timo Jyrinki (noreply@blogger.com) at May 21, 2013 12:20 PM

April 23, 2013

Ubuntu-blogi

Kokemuksia Dell XPS 13 Ubuntu-kannettavasta

Dell XPS 13 Ubuntu Edition

Ubuntua kehittävän Canonicalin ja Dellin yhteistyönä tehty Dell XPS 13 Ubuntu Edition on nyt julkaistu uudistettuna versiona, ja se on saatavilla myös Suomesta. Kannettava on saman tyylinen kuin MacBook Air 13, mutta se on sentin kapeampi ilman että näyttö tai näppäimistö olisi pienempi, ja moni asia on tehty paremmin, kuten esimerkiksi käyttöjärjestelmä :)

Nopean testauksen perusteella laite on erittäin hyvä. Nopea Intel i7-prosessori, 8 GB RAM-muistia ja 256 SSD-levy tekee kannettavasta erittäin nopean. Pohjasta löytyy tuuletin mutta se ei tavallisesti lainkaan pyöri, joten kannettava on käytännössä äänetön. Akkukesto on käytöstä riippuen 5-10 tuntia, ja virtalähdekin on niin pieni että se on kätevä kantaa mukana.

Laitteiston Linux-ajurit ovat luonnollisesti erinomaiset ja kaikki toimii kuten esiasennetulta Linux-kannettavalta voi olettaakin. Monet yksityiskohdat kuten taustavalaistu näppäimistö sekä kannettavanan sammutettunakin ollessa toimiva virrallinen USB-portti ja akun varaustason ilmaisin antavat muutenkin laadukkaan oloiselle alumiinista ja kevlarista tehdylle laitteelle lisäpisteitä. Paras ominaisuus on ehkä kuitenkin teräväpiirtonäyttö jonka resoluution on 1920×1080 pikseliä.

Dell XPS 13 Ubuntu Edition ja muita esiasennettuja Ubuntu-koneita voi ostaa tällä hetkellä vain yhdeltä Dellin jälleenmyyjältä suoraan www.teraset.net/linux.php, ja tarjouksen pyytämällä sen voi ostaa myös Pirkanmaan Konttorikone Oy:ltä tai jos on yritysasiakas, myös suoraan Delliltä. Laitetta ei ollut tilattavissa esim. Jimm’s PC:stä tai Gigantista edes tarjousta pyytämällä, mutta toivottavasti näin hyvä laite tulee laajemmin tarjolle.

Lisää valokuva ja yksityiskohtainen esittely löytyy Seravon blogista (englanniksi).

by Otto at April 23, 2013 09:44 AM

March 30, 2013

Jouni Roivas

QGraphicsWidget

Usually it's easy to get things working with Qt (http://qt-project.org), but recently I encoutered an issue when trying to implement simple component derived from QGraphicsWidget. My initial idea was to use QGraphicsItem, so I made this little class:

class TestItem : public QGraphicsItem
{
public:
TestItem(QGraphicsItem *parent=0) : QGraphicsItem(parent) {}
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
virtual QRectF boundingRect () const;

protected:
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
};

void TestItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
qDebug() << __PRETTY_FUNCTION__ << "press";
}

void TestItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
qDebug() << __PRETTY_FUNCTION__ << "release";
}

void TestItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
Q_UNUSED(option)
Q_UNUSED(widget)
painter->fillRect(boundingRect(), QColor(255,0,0,100));
}

QRectF TestItem::boundingRect () const
{
return QRectF(-100, -40, 100, 40);
}
Everything was working like expected, but in order to use a QGraphicsLayout, I wanted to derive that class from QGraphicsWidget. The naive way was to make minimal changes:

class TestWid : public QGraphicsWidget
{
Q_OBJECT
public:
TestWid(QGraphicsItem *parent=0) : QGraphicsWidget(parent) { }
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
virtual QRectF boundingRect () const;

protected:
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
};

void TestWid::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
qDebug() << __PRETTY_FUNCTION__ << "press";
}

void TestWid::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
qDebug() << __PRETTY_FUNCTION__ << "release";
}

void TestWid::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
Q_UNUSED(option)
Q_UNUSED(widget)
painter->fillRect(boundingRect(), QColor(0,0,255,100));
}

QRectF TestWid::boundingRect () const
{
return QRectF(-100, -40, 100, 40);
}

Pretty straightforward, isn't it? It showed and painted things like expected, but I didn't get any mouse events. Wait what?

I spent hours just trying out things and googling this problem. I knew I had this very same issue earlier but didn't remember how I solved it. Until I figured out a very crucial thing, in case of QGraphicsWidget you must NOT implement boundingRect(). Instead use setGeometry for the object.

So the needed changes was to remote the boundingRect() method, and to call setGeometry in TestWid constructor:

setGeometry(QRectF(-100, -40, 100, 40));

After these very tiny little changes I finally got everthing working. That all thing made me really frustrated. Solving this issue didn't cause good feeling, I was just feeling stupid. Sometimes programming is a great waste of time.

by Jouni Roivas (noreply@blogger.com) at March 30, 2013 01:57 PM

March 14, 2013

Ubuntu-blogi

Ubuntu-kannettavia vihdoin myös Suomesta

Esiasennettuja, tuettuja Ubuntu-tietokoneita on myyty maailmalla jo kauan, erityisesti idässä päin miljoonia. Ubuntu-kumppaneita ovat Dell, Lenovo, Asus ja nykyään HP. Myös Euroopan maissa ainakin Dell ja Asus ovat käyneet kauppaa, mutta Suomessa merkkitietokoneiden Ubuntu-tarjonta on ollut vähissä.

Ostin 2,5 vuotta sitten Dell Latitude 2110 -miniläppärin Ubuntulla, mutta välissä on ollut kausia jolloin ainakaan Dell Suomen sivujen perusteella Ubuntua ei ole ollut valittavissa. Tarjontaa on kuitenkin viime aikoina taas ilmaantunut, eikä edes ihan tavallista tarjontaa.

Ansaitusti ensimmäisenä tulee mainita terävintä kärkeä oleva ultrabook “Dell XPS 13 developer edition” (tarkemmat tiedot katso PDF tällä sivulla), joka tosin muista Euroopan maista poiketen on tilattavissa Suomessa vain puhelimitse. XPS 13:n rinnalla kalpenee aika lailla kaikki kilpailevat ultrabookit – tarjolla on 13.3″ Full HD -näyttö IPS-tekniikalla ja Gorilla Glassilla, 8GB muistia, 256GB SSD-levy ja tietenkin laitteelle räätälöity Ubuntu 12.04 LTS.

Hieman tavallisempaa läppäritarjontaa edustaa Terasetin 15.6″-tuumaisella näytöllä varustettu Dell Vostro 2520. Se tarjoaa 2,2GHz i3-2228M -suorittimen, 4GB muistia, 320GB perinteisen kiintolevyn ja kaiken mitä nykyaikaiselta peruskannettavalta tarvitaan. Myös Vostron mukana toimitetaan Ubuntu 12.04 LTS.

Päivitys: Kuten kommenteissa on mainittu, moni muukin Dellin jälleenmyyjä kuten Pohjolan tietotekniikka, Data Group Hyvinkää, Tietokonekauppa.fi ja Jimm’s myyvät Dell-kannettavia ja -työasemia Ubuntu 12.04:llä nykyään.

Timo Jyrinki

 

by Timo Jyrinki at March 14, 2013 05:45 AM

January 13, 2013

Riku Leino

Työhuoneen kirjahyllyn siivous

Siivosin työhuoneeni kirjahyllyn. Paljon kirjoja meni roskiin, mutta muutama jäi jaettavaksi. Joukossa on todellisia ohjelmoinnin klassikoitakin. Lähettäkää sähköpostia, jos kiinnostutte kirjasta tai useammastakin.

http://goo.gl/IhHqX

 

by Tsoots at January 13, 2013 04:07 PM

August 31, 2012

Jouni Roivas

Adventures in Ubuntu land with Ivy Bridge

Recently I got a Intel Ivy Bridge based laptop. Generally I'm quite satisfied with it. Of course installed latest Ubuntu on it. First problem was EFI boot and BIOS had no other options. Best way to work around it was to use EFI aware grub2. I wanted to keep the preinstalled Windows 7 there for couple of things, so needed dual boot.

After digging around this German links was most relevant and helpful: http://thinkpad-forum.de/threads/123262-EFI-Grub2-Multiboot-HowTo.

In the end all I needed to do was to install Grub2 to EFI boot parition (/dev/sda1 on my case) and create the grub.efi binary under that. Then just copy /boot/grub/grub.cfg under it as well. On BIOS set up new boot label to boot \EFI\grub\grub.efi

After using the system couple of days found out random crashes. The system totally hanged. Finally traced the problem to HD4000 graphics driver: http://partiallysanedeveloper.blogspot.fi/2012/05/ivy-bridge-hd4000-linux-freeze.html

Needed to update Kernel. But which one? After multiple tries, I took the "latest" and "shiniest" one: http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.4-precise/. With that kernel I got almost all the functionality and stability I needed.

However one BIG problem: headphones. I got sound normally from the speakers but after plugging in the headphones I got nothing. This problem seems to be on almost all the kernels I tried. Then I somehow figured out a important thing related to this. When I boot with headphone plugged in I got no sound from them. When I boot WITHOUT headphones plugged then they work just fine. Of course I debugged this problem all the time with the headphones plugged in and newer noticed this could be some weird detection problem. Since I kind of found solution for this I didn't bother to google it down. And of course Canonical does not provide support for unsupported kernels. If I remember correctly with the original Ubuntu 12.04 kernel this worked, but the HD4000 problem is on my scale bigger one than remember to boot without plugging anything to the 3.5" jack....

Of course my hopes are on 12.10 and don't want to dig it deeper, just wanted to inform you about this one.

by Jouni Roivas (noreply@blogger.com) at August 31, 2012 07:57 PM

July 04, 2012

Ville-Pekka Vainio

SSD TRIM/discard on Fedora 17 with encypted partitions

I have not blogged for a while, now that I am on summer holiday and got a new laptop I finally have something to blog about. I got a Thinkpad T430 and installed a Samsung SSD 830 myself. The 830 is not actually the best choice for a Linux user because you can only download firmware updates with a Windows tool. The tool does let you make a bootable FreeDOS USB disk with which you can apply the update, so you can use a Windows system to download the update and apply it just fine on a Linux system. The reason I got this SSD is that it is 7 mm in height and fits into the T430 without removing any spacers.

I installed Fedora 17 on the laptop and selected drive encryption in the Anaconda installer. I used ext4 and did not use LVM, I do not think it would be of much use on a laptop. After the installation I discovered that Fedora 17 does not enable SSD TRIM/discard automatically. That is probably a good default, apparently all SSDs do not support it. When you have ext4 partitions encrypted with LUKS as Anaconda does it, you need to change two files and regenerate your initramfs to enable TRIM.

First, edit your /etc/fstab and add discard to each ext4 mount. Here is an example of my root mount:
/dev/mapper/luks-secret-id-here / ext4 defaults,discard 1 1

Second, edit your /etc/crypttab and add allow-discards to each line to allow the dmcrypt layer to pass TRIM requests to the disk. Here is an example:
luks-secret-id-here UUID=uuid-here none allow-discards

You need at least dracut-018-78.git20120622.fc17 for this to work, which you should already have on an up-to-date Fedora 17.

Third, regenerate your initramfs by doing dracut -f. You may want to take a backup of the old initramfs file in /boot but then again, real hackers do not make backups ;) .

Fourth, reboot and check with cryptsetup status luks-secret-id-here and mount that your file systems actually use discard now.

Please note that apparently enabling TRIM on encrypted file systems may reveal unencrypted data.

by Ville-Pekka Vainio at July 04, 2012 06:14 PM

April 29, 2012

Miia Ranta

Viglen MPC-L from Xubuntu 10.04 LTS to Debian stable

With Ubuntu not supplying a kernel suitable for the CPU (a Geode GX2 by National Semiconductors, a 486 buzzing at 399MHz clock rate) of my Viglen MPC-L (the one Duncan documented the installation of Xubuntu in 2010), it was time to look for other alternatives. I wasn’t too keen on the idea of using some random repository to get the suitable kernel for newer version of Ubuntu, so Debian was the next best thing that came to mind.

Friday night, right before heading out to pub with friends, I sat on the couch, armed with a laptop, USB keyboard, RGB cable and a USB memory stick. Trial and error reminded me to

  1. use bittorrent to download the image since our flaky Belkin-powered Wifi cuts off the connection every few minutes and thus corrupts direct downloads, and
  2. do the boot script magic of pnpbios=off noapic acpi=off like with our earlier Xubuntu installation.

In contrast to the experience of installing Xubuntu on the Viglen MPC-L, the Debian installation was easy from here on. The installer seemed to not only detect the needed kernel and install the correct one (Linux wizzle 2.6.32-5-486 #1 Mon Mar 26 04:36:28 UTC 2012 i586 GNU/Linux) but, judging from the success of the first reboot after the installation had finished and a quick look at /boot/grub/grub.cfg, had also set the right boot options automatically. So the basic setup was a *lot* easier than it was with Xubuntu!

Some things that I’ve gotten used to being automatically installed with Ubuntu weren’t pre-installed with Debian and so I had to install them for my usage. Tasksel installed ssh server, but rsync, lshw and ntfs-3g needed to be installed as well which I had gotten used to having in Ubuntu, but installing them wasn’t too much of a chore. As I use my Viglen MPC-L as my main irssi shell nowadays, I had to install of course irssi, but some other stuff needed by it and my other usage patterns… so… after installing apt-file pastebinit zsh fail2ban for my pet peeves, and tmux irssi irssi-scripts libcrypt-blowfish-perl libcrypt-dh-perl libcrypt-openssl-bignum-perl libdbi-perl sqlite3 libdbd-sqlite3-perl I finally have approximately the system I needed.

All in all, the experience was a lot easier than what I had with Xubuntu in September 2010. It definitely surprised me and I kind of hope that this process wasn’t as easy and automated 18 months ago…

by myrtti at April 29, 2012 10:00 PM

January 27, 2012

Aapo Rantalainen

Nokia Lumia 800 for Linux-developer

I got my Nokia Lumia 800 (Windows 7 -phone) from Nokia, and I consider myself as Linux-developer.

I attached Lumia phone to my computer and nothing happened. Went to discussion forum and learned there are no way to access phone via Linux. End of story (that was not long story).


by Aapo Rantalainen at January 27, 2012 07:18 PM

January 24, 2012

Sakari Bergen

WhiteSpace faces in Emacs 23

This is a good old case of RTFM, but since I spent a couple of hours figuring it out, I thought I’d blog about it anyway…

The WhiteSpace package in Emacs allows you to visualize whitespace in your code. The overall settings of the package are controlled with the ‘whitespace-style’ variable. Before Emacs 23 you didn’t need to include the ‘face’ option to make different faces work. However, since Emacs 23 you need to have it set.

Now I can keep obsessing about whitespace with an up-to-date version of Emacs, and maybe publicly posting stuff like this will help me remember to RTFM in the future also :)

by sbergen at January 24, 2012 05:35 PM

January 09, 2012

Sakari Bergen

Multiuser screen made easy

The idea for this all started with someone mentioning

it’d be good if there was some magic thing which did some SSH voodoo to get you a shell that the person on the other end could watch

So, I took a quick look around and noticed that Screen can already do multiuser sessions, which do exactly this. However, controlling the session requires writing commands to screen, which is both relatively complex for beginners and relatively slow if the remote user is typing in ‘rm -Rf *’ ;)

So, I created a wizard-like python script, which sets up a multiuser screen session and a simple one button GUI (using PyGTK) for allowing and disallowing the remote user access to the session. It also optionally creates a script which makes it easier for the remote user to attach to the session.

Download

Known issues:

  • The helper script creation process for the remote user does not check the user input and runs sudo. Even though the script warns the user, it’s still a potential security risk
  • If the script is terminated unexpectedly, the screen session will stay alive, and will need to be closed manually before this script will work again

Resolving the issues?

Fixing the security issue would be just a matter of more work. However, the lingering screens are a whole different problem: I tried to find out a way to get the pid for the screen session, but failed to find a way to do this in python. This would have made the lingering screen sessions less harmful, as all the communication could have been done with <pid>.<session> instead of simply <session>, which it uses now. The subprocess.Popen object contains the pid of the launched process, but the actual screen session is a child of this process, and thus has a different pid. If anyone can point me toward a solution to this, it’d be greatly appreciated!

by sbergen at January 09, 2012 07:55 PM

January 03, 2012

Sakari Bergen

New site up!

I finally got the work done, and here’s the result! I moved from Dupal to WordPress, as it feels better for my needs. So far I’ve enjoyed it more than Drupal.

I didn’t keep all of the content from my old site: I recreated most of it and added some new content. I also went through links to my site with Google’s Webmaster Tools, and added redirects to urls which are linked to from other sites (and resurrected one blog post).

It’s been a while since I did any PHP, HTML or CSS. I almost got frustrated for a moment, but after reading this article, things progressed much easier. Thanks to the author, Andrew Tetlaw! I was also inspired by David Robillard’s site, which is mostly based on the Barthelme theme. However, I started out with Automattic’s Toolbox theme, customizing most of it.

If you find something that looks or feels strange, please comment!

by sbergen at January 03, 2012 08:57 PM

December 28, 2011

Aapo Rantalainen

Joulun hyväntekeväisyyslahjoituskohteet

Jouluhan on hyvää aikaa lahjoittaa rahaa hyväntekeväisyyteen, eikös juu. Tässä pari vinkkiä niille jotka haluavat helposti PayPalilla osallistua hyvän tekoon.

Wikipedia

Kukapa ei tietäisi Wikipediaa, mutta tietääkö kaikki, että sen takana on aika pieni säätiö. Esim Googlella on noin miljoona palvelinkonetta, Wikipedialla 679. Esim Yahoolla työskentelee 13000 työntekijää, Wikipedialla 95.

https://wikimediafoundation.org/wiki/Donate

 


 

Free Software Foundation

Säätiön nimessä oleva ‘free’ ei tarkoita ilmaista, vaan ‘vapautta’. Ohjelmiston vapaus tarkoittaa:

-lupa käyttää sitä miten tahansa
-lupa tutkia miten se toimii ja kuinka se on tehty
-lupa muuttaa sen toimintaa (eli korjata tai parantaa sitä)
-lupa kopioida sitä toisille, muutettuna tai muuttamattomana

Free Software on aate, joka kehottaa Sinuakin miettimään: “kuvittele maailma, jossa kaikki ohjelmistot ovat vapaita.” Ovatko Sinun käyttämäsi ohjelmat vapaita?

https://my.fsf.org/donate


by Aapo Rantalainen at December 28, 2011 12:59 PM

December 08, 2011

Mikko Rauhala (mjr)

Games Workshop forces takedown of tank model

You know you're living in the future when Games Workshop pulls a DMCA takedown on a tank model lest people print their own toys instead of buying them at a premium.

Now, this is probably a pretty cut-and-dry case even from a trademark perspective - the file is even named Warhammer 40k Imperial Guard Leman Russ Tank. You don't need to support copyrights to think that's a bit dubious, since it's not, in fact, an official Warhammer 40k model. On the other hand, people are rather unlikely to actually get the wrong impression in that regard, and neither is it a deliberate attempt to fool people, since the creator readily acknowledges the unofficial and unlicensed nature of the work in the description.

On the third hand, what if it was just named a "Tank model compatible with Warhammer 40k (TM)" or something? It is reportedly a "pretty good likeness" of the Warhammer tank, but "not verbatim". Given that copyright monopolies exist, lines will have to be drawn in the sand, and there will be a lot of effort to push that line by large corporations, wielding copyrights as a huge blunt instrument with chilling effects. Thingiverse and similar sites operating under US law practically have to take down any work that is claimed to violate copyrights or face liability, at least until a counterclaim is made by the submitter.

In Finland, I'm not even sure if anything would keep the site safe from liability - around here, if you run a service that people violate copyrights on and get caught, you can pretty much expect to get screwed by the so-called justice system to the point that it's just best to become a welfare leech for the rest of your life since you're not gonna be able to pay off the copyright mafia anyway. But I digress.

Of course, there's safer havens for these kinds of sites to operate still. But apparently, the war between corporations and home manufacturers is on.

by Mikko Rauhala (mjr@iki.fi) at December 08, 2011 12:36 PM

December 05, 2011

Aapo Rantalainen

MeeGo on ExoPC

Even Ubuntu runs very well on ExoPC (last post), I had promised to return it with MeeGo, so here we go…

Downalod Latest image (meego-tablet-ia32-pinetrail-1.2.0.90.12.20110809.2.img) from http://repo.meego.com/MeeGo/builds/1.2.0.90/1.2.0.90.12.20110809.2/images/meego-tablet-ia32-pinetrail/

Copy to usb-stick and booting ExoPC from stick. Yes,ok,ok,ok,ok and ok. Boot. Ready.

I wanted some challenge, so I decided to compile and run JamMo. Easy as with Ubuntu (upgraded manual). Game uses fixed size window 800×480, so it would be handy to change resolution of ExoPC. Xrandr left black borders to left and right, but touchscreen is still using whole screen (so elements on middle of the screen are accessible normally, but elements near left and right borders are not).

Solution (partial): Add new screen-mode and use it.

run

cvt 840 480

And it gives: “840x480_60.00″   31.25  840 864 944 1048  480 483 493 500 -hsync +vsync

Run (add these to the autorun, they are cleared at every boot):

xrandr --newmode  "840x480_60.00"   31.25  840 864 944 1048  480 483 493 500 -hsync +vsync
xrandr --addmode LVDS1 840x480_60.00

And when you want use that resolution, run

xrandr --output LVDS1 --mode 840x480_60.00

There are still little black, but doesn’t affect usage (width must be multiple of 8, you can test if 848 is better…)

Issues:
*Task switcher is still in old middle of the screen
*Coming back might cause half of the screen be black (this is corrected after screen dim)
*Browser might rotate itself to portrait mode (even it is first started landscaped)


by Aapo Rantalainen at December 05, 2011 01:14 PM

December 01, 2011

Aapo Rantalainen

Ubuntu on ExoPC

I got Intel’s ExoPC on my hands and tested Ubuntu on it.


ExoPC is laptop with touchscreen and without keyboard, somebody would call it ‘tablet’. It is not ARM, but 32/64 bit x86 (Atom). It has 2GB memory and 64GB SSD ‘hard disk’.

When I got it, tt has (old) MeeGo  (http://wiki.meego.com/Devices/ExoPC), which went broke when I tried upgrade. Because it is ~standard PC there are many Linux for it (e.g Suse: http://www.meegoexperts.com/2011/09/experiences-exopc-kde/ )

I installed Ubuntu 10.04.3 (latest long-term-supported Ubuntu). Touchscreen was not working, so I upgraded it three times: -> 10.10 -> 11.04 -> 11.10. I used USB-keyboard (and also ssh-server), but it seems there are no any default virtual keyboard. It is very cool device with lots of potential.

Hardware buttons:
System Settings -> Keyboard -> Shortcuts
(Or in Gnome: System->Preferences->Keyboard Shortcuts)

There are one button back of the device, power button. It is recognized as ‘PowerOff’
There are one button (proximity sensor?) front of the device, ‘orange magic circle’. It is recognized as ‘Audio media’ (XF86Media or XF86AudioMedia depending on Ubuntu version)


Some critics about software:
Multitouch is not working (at least out-of-the-box). I have no time to investigate this more.

 
Screen dims when on battery, even asked to not dim:
https://bugzilla.gnome.org/show_bug.cgi?id=665073

Touchscreen will not be recognized after after some time of use
https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-evdev/+bug/897297

Mute/unmute microphone via command line doesn’t work (even toggle is working):
https://bugs.launchpad.net/ubuntu/+source/alsa-utils/+bug/894556


Any use for tablets? Maybe musical game for children? How about JamMo?

<iframe class="youtube-player" frameborder="0" height="390" src="http://www.youtube.com/embed/9tVmFOKvfUY?version=3&amp;rel=1&amp;fs=1&amp;showsearch=0&amp;showinfo=1&amp;iv_load_policy=1&amp;wmode=transparent" type="text/html" width="640"></iframe>

 


by Aapo Rantalainen at December 01, 2011 06:47 PM

November 06, 2011

Miia Ranta

Ubuntu 11.10 on an ExoPC/Wetab, or how I found some use for my tablet and learnt to hate on-screen keyboards

I attended an event in the spring that ended with a miraculous incident of being given an ExoPC to use. The operating system that it came installed with was a bit painful to use (and I’m not talking about a Microsoft product), so I didn’t find too much use for the device. I flashed it with a new operating system image quite often, only to note that none to few problems were ever fixed in the UI. Since operating system project is pretty much dead now with participants moving to new areas and projects of interest, I decided to bite the bullet and flash my device with the newest Ubuntu.

Installation project requires an USB memory stick made into an installation media with the tools shipped with regular Ubuntu. A keyboard is also nice to have to make installation process feasible in the first place, or at least it makes it much less painful experience. After the system is installed, comes the pain of getting the hardware to play nice. Surprisingly I’ve had no other problems than trying to figure out how to make the device and operating system to realise that I want to scroll or right-click with my fingers instead of a mouse. Almost all the previous instructions I’ve come across involve (at best) Ubuntu 11.04 and a 2.6.x kernel – and the rest fail to give a detailed instruction on how to make the scrolling or right-clicking work with evdev. The whole process is very frustrating, and I still haven’t figured everything out.

Anyway. First thing you notice, especially without the fingerscrolling working, is that the new scrollbars are a royal pain in the hiney. The problem isn’t as bad in places where the problem can be bypassed, like in Chromium with the help of an extension called chromeTouch where the fingerscrolling can be set to work, or in Gnome-shell which actually has a decent sized scrollbar, or uninstalling overlay-scrollbar altogether, which isn’t pretty, but it works.

Exopc The second immediate thing that slaps a cold wet towel on the face is – after you’ve unplugged the USB keyboard – is the virtual keyboards. Ubuntu and its default environment Unity use OnBoard as the default on-screen keyboard. OnBoard is a complete keyboard with (almost) all the keys a normal keyboard would have, but it lacks a few features that are needed on a tablet computer: it lacks automation of hiding and unhiding itself. In addition to this annoyance OnBoard had the tendency of swapping the keyboard layout to what I assume to be either US or British instead of the Finnish one I had set as default on the installation. One huge problem with OnBoard is at least in my use that it ends up being underneath the Unity interface, where it’s next to useless.

I tried to install other virtual keyboards, like Maliit and Florence, but instructions and packages on Oneiric are lacking and anyway, I still don’t know how to change the virtual keyboard from OnBoard to something else. However, the virtual keyboard in a normal Gnome 3 session with Gnome-Shell seems to work more like the virtual keyboards should, but alas, it doesn’t seem to recognize the keyboard layout settings at all and thus I’m stuck to non-Finnish keyboard layout.

However among all these problems Ubuntu 11.10 manages to show great potential with both Unity and Gnome 3. Ubuntu messaging menu is nice, once gmnotify has been installed (as I use Chromium application Offline Gmail as my email client), empathy set up, music application of choice filled with music and browser settings synchronized.

I’ve found that the webcam works perfectly and the video call quality is much better than it has been earlier on my laptop where I’ve resorted into using GMails video call feature, because it Just Works. It’s nice to see that pulseaudio delivers and bluetooth audio works 100% with both empathy video calls and stereo music/video content.

Having read of the plans for future Ubuntu releases from blogposts of people who were attending UDS-P in Orlando this past week, I openly welcome our future tablet overlords. Ubuntu on tablets needs love and it’s nice to know it’s coming up. This all bodes well for my plan to take over the world with Ubuntu tablet, screen, emacs and chromium :-)

by myrtti at November 06, 2011 12:06 AM

October 29, 2011

Ville-Pekka Vainio

Getting Hauppauge WinTV-Nova-TD-500 working with VDR 1.6.0 and Fedora 16

The Hauppauge WinTV-Nova-TD-500 is a nice dual tuner DVB-T PCI card (well, actually it’s a PCI-USB thing and the system sees it as a USB device). It works out-of-the-box with the upcoming Fedora 16. It needs a firmware, but that’s available by default in the linux-firmware package.

However, when using the Nova-TD-500 with VDR a couple of settings need to be tweaked or the signal will eventually disappear for some reason. The logs (typically /var/log/messages in Fedora) will have something like this in them:
vdr: [pidnumber] PES packet shortened to n bytes (expected: m bytes)
Maybe the drivers or the firmware have a bug which is only triggered by VDR. This problem can be fixed by tweaking VDR’s EPG scanning settings. I’ll post the settings here in case someone is experiencing the same problems. These go into /etc/vdr/setup.conf in Fedora:


EPGBugfixLevel = 0
EPGLinger = 0
EPGScanTimeout = 0

It is my understanding that these settings will disable all EPG scanning which is done in the background and VDR will only scan the EPGs of the channels on the transmitters it is currently tuned to. In Finland, most of the interesting free-to-air channels are on two transmitters and the Nova-TD-500 has two tuners, so in practice this should not cause much problems with outdated EPG data.

by Ville-Pekka Vainio at October 29, 2011 06:07 PM

August 25, 2011

Miia Ranta

Things I learnt about managing people while being a Wikipedia admin

Colour explosion Just over four years ago I gave up my volunteer, unpaid role as an administrator of the Finnish Wikipedia. Today, while discussing with a friend, I realised what has been one of the most valuable lessons in both my professional life and hobbies. While I am quite pessimistic in general, I still benefit from these little nuggets of positive insight almost every day when communicating and working with other people.

  • Assume Good Faith. “Unless there is clear evidence to the contrary, assume that people who work on the project are trying to help it, not hurt it.” Most people aren’t your enemies. Most people will not try to hurt you. If stupidity is abound, it’s (usually) not meant as a personal attack towards you, nor is it intentional.
  • When someone does something that doesn’t immediately make sense, which contradicts your assumptions about the skills and common sense of a person you are dealing with, discuss it with them! Don’t make assumptions based on partial information or details, ask for more info so you don’t need to assume the worst! If something is unclear, asking won’t make things worse.

Pessimists are never disappointed, only positively surprised. But while the world seems like a dark a desolate place and the humanity seems to be doomed, I still have to try to believe in the sensibility of people and that we can make something special for the project we are trying to work for. Ubuntu, Wikipedia, Life… or just your day-to-day job.

by myrtti at August 25, 2011 11:49 PM

August 21, 2011

Miia Ranta

And then, unexpectedly, life happens

I hope none of you have expected me to blog more often. It’s been over a year since I’ve last blogged, and so much has happened since I last did.

I’ve travelled to Cornwall, started a Facebook page that got a huge following in no time, fiddled a bit with CMS Made Simple at work, bought another Nexus One to replace one that broke and after getting the broke one fixed, gave the extra to my sister as a Christmas present, have taught Duncan how to make gravadlax and crimp Carelian pasties, visited Berlin and bought a game. I’ve attended a few geeky events, like Local MeeGo Network meetings of Tampere, Finland, MeeGo Summit also in Tampere, MeeGo Conference in San Francisco, US and OggCamp’11 in Farnham, UK.

I’ve also taken few steps in learning to code in QML, poked around Arduino and bought a new camera, Olympus Pen E-PL1.

My mom What else has happened? Well, among other things, my mother was diagnosed with cholangiocarcinoma right after New Year, and she passed away 30th of June.

Many things that I have taken for granted have changed or gone away forever. Importance of some things have changed as my life is trying to find a new path to run in.

Blogging and some of my Open Source related activities have taken a toll, which I am planning to fix now that I feel like I’m strong enough to use my energy on these hobbies again. Sorry for the hiatus, folks.

Coming up, perhaps in the near future:

  • Rants and Raves about Arduino
  • Entries about social networking sites
  • Camera/Photography jabber
  • Mobile phone/Tablet chatter

So, just so you know, I’m alive, and will soon be in an RSS feed reader near you. AGAIN.

by myrtti at August 21, 2011 12:20 AM

August 06, 2011

Ville-Pekka Vainio

The Linux/FLOSS Booth at Assembly Summer 2011

The Assembly Summer 2011 demo party / computer festival is happening this weekend in Helsinki, Finland. The Linux/FLOSS booth here is organized together by Finnish Linux User Group, Ubuntu Finland, MeeGo Network Finland and, of course, Fedora. I’m here representing Fedora as a Fedora Ambassador and handing out Fedora DVDs. Here are a couple of pictures of the booth.

The booth is mostly Ubuntu-coloured because most of the people here are members of Ubuntu Finland and Ubuntu in general has a large community in Finland. In addition to live CDs/DVDs, the MeeGo people also brought two tablets running MeeGo (I think they are both ExoPCs) and a few Nokia N950s. They are also handing out MeeGo t-shirts.

People seem to like the new multi-desktop, multi-architecture live DVDs that the European Ambassadors have produced. I think they are a great idea and worth the extra cost compared to the traditional live CDs.

by Ville-Pekka Vainio at August 06, 2011 11:11 AM

April 29, 2011

Sakari Bergen

Website remake coming up, comments disabled

The format of my current website has not worked very well for me, and I'm a bit lazy with bloggy stuff. So, I decided to remake this website. I've already made a new design, and will probably be switching to Wordpress from Drupal because it's a bit simpler. Hope to get the new site up in a few months latest!

Due to a lot of spam recently, I disabled comments.

by sbergen at April 29, 2011 09:53 AM

March 21, 2011

Jouni Roivas

Wayland

Recently Wayland have become a hot topic. Canonical has announced that Ubuntu will go to Wayland. Also MeeGo has great interest on it.

Qt has had (experimental) Wayland client support for some time now.

A very new thing is support for Qt as Wayland server. With that one can easily make own Qt based Wayland compositor. This is huge. Since this the only working Wayland compositor has been under wayland-demos. Using Qt for this opens many opportunities.

My vision is that Wayland is the future. And the future might be there sooner than you think...

by Jouni Roivas (noreply@blogger.com) at March 21, 2011 09:42 AM

February 24, 2011

Jouni Roivas

January 03, 2011

Ville-Pekka Vainio

Running Linux on a Lenovo Ideapad S12, part 2

Here’s the first post of what seems to be a series of posts now.

acer-wmi

I wrote about acer-wmi being loaded on this netbook to the kernel’s platform-driver-x86 mailing list. That resulted in Chun-Yi Lee writing a patch which adds the S12 to the acer-wmi blacklist. Here’s the bug report.

ideapad-laptop

I did a bit of googling on the ideapad-laptop module and noticed that Ike Panhc had written a series of patches which enable a few more of the Fn keys on the S12. The git repository for those patches is here. Those patches are also in linux-next already.

So, I cloned Linus’ master git tree, applied the acer-wmi patch and then git pulled Ike’s repo. Then I followed these instructions, expect that now Fedora’s sources are in git, so you need to do something like fedpkg co kernel;cd kernel;fedpkg prep and then find the suitable config file for you. Now I have a kernel which works pretty well on this system, except for the scheduling/sleep issue mentioned in the previous post.

by Ville-Pekka Vainio at January 03, 2011 10:19 AM

December 27, 2010

Ville-Pekka Vainio

Running Linux (Fedora) on a Lenovo Ideapad S12

I got a Lenovo Ideapad S12 netbook (the version which has Intel’s CPU and GPU) a few months ago. It requires a couple of quirks to work with Linux, I’ll write about them here, in case they’ll be useful to someone else as well.

Wireless

The netbook has a “Broadcom Corporation BCM4312 802.11b/g LP-PHY (rev 01)” wifi chip. It works with the “b43″ open source driver, which is in the kernel. However, I think that it may not actually reach the speeds it should. You could also use the proprietary “wl” kernel module, available in RPM Fusion as “kmod-wl”, but I don’t like to use closed source drivers myself.

The b43 driver needs the proprietary firmware from Broadcom to work with the 4312 chip. Following these instructions should get you the firmware.

Kernel

The kernel needs the “nolapic_timer” parameter to work well with the netbook. If that parameter is not used, it seems like the netbook will easily sleep a bit too deep. Initially people thought that the problem was in the “intel_idle” driver, the whole thing is discussed in this bug report. However, according to my testing, the problem with intel_idle was fixed, but the netbook still has problems, they are just a bit more subtle. The netbook boots fine, but when playing music, the system will easily start playing the same sample over and over again, if the keyboard or the mouse are not being used for a while. Apparently the system enters some sort of sleeping state. I built a vanilla kernel without intel_idle and I’m seeing this problem with it as well.

Then there’s “acer-wmi”. The module gets loaded by the kernel and in older versions it was probably somewhat necessary, because it handled the wifi/bluetooth hardware killswitch. It causes problems with NetworkManager, though. It disables the wifi chip on boot and you have to enable wifi from the NetworkManager applet by hand. Here’s my bug report, which hasn’t gotten any attention, but then again, I may have filed it under the wrong component. Anyway, in the 2.6.37 series of kernels there is the “ideapad_laptop” module, which apparently handles the hardware killswitch, so acer-wmi shouldn’t be needed any more and can be blacklisted.

by Ville-Pekka Vainio at December 27, 2010 03:18 PM

December 12, 2010

Riku Leino

Scribus 1.3.9 on julkaistu

Scribuksen kehitysversio on päässyt versionumeroon 1.3.9. Tästä versiosta tekee merkittävän, että se on viimeinen kehitysversio ennen uuden vakaan kehityshaaran avaamista. Seuraava vakaa versio tulee suurella todennäköisyydellä olemaan 1.4.0.

Kehityksen pääpainona oli vakaus. Versiosta 1.3.8 on korjattu 70 bugia. Joukossa on myös muutama uusi ominaisuus koskien:

  • käännösympäristöä
  • leikekirjaa
  • resursseja ja resurssien hallintaa
  • tiedostojen tuontia
  • typografiaa
  • dokumentaatiota

by Tsoots at December 12, 2010 03:52 PM

December 01, 2010

Riku Leino

Pelastusarmeijan Joulupatakeräys on alkanut

On taas Joulupatakeräyksen aika. Internetpata osoitteessa http://www.joulupata.fi/ on auennut. Siellä voit antaa lahjoituksesi heikompiosaisten hyväksi. Lue Suomen ja Viron Pelastusarmeijan johtajan vetoomus ”Ainoa, mitä todella omistat on se, minkä olet antanut pois”.

Perinteiset padat näkyvät katukuvassa 16.12.–23.12. (muutama pata on paikallaan vielä jouluaattonakin). Katso lista padoista.

Osallistukaa hyvän asian puolesta ja levittäkää sanaa.

Perinteinen Joulupatakeräys ottaa varaslähdön Helsingissä Narinkkatorin Joulumaailma 2010 -tapahtumassa 11.12.–15.12. Tämän halusin kertoa siksi, että Narinkkatorin padalla on tavattavissa kaupungin mukavin patavahti. Seison padalla:

  • la 11.12. klo 11–13 ja 16–18
  • ma 13.12. klo 11–13 ja 15–17
  • ti 14.12. klo 11–13 ja 15–17
  • ke 15.12. klo 15–17

Tervetuloa kaikki tutut ja tuntemattomat moikkaamaan ja vaihtamaan kuulumiset etenkin, jos teillä on rahaa mukana.

by Tsoots at December 01, 2010 05:53 AM

November 29, 2010

Jouni Roivas

Encrypted rootfs on MeeGo 1.1 netbook

I promised my scripts to encrypt the rootfs on my Lenovo Ideapad running MeeGo 1.1. It's currently just a dirty hack but thought it could be nice to share it with you.

My scripts uses cryptoloop. Unfortunately MeeGo 1.1 netbook stock kernel didn't support md_crypt so that was a no go. Of course I could compile the module myself but I wanted out-of-the box solution.

Basic idea is to create custom initrd and use it. My solution needs Live USB stick to boot and do the magic. Also another USB drive is needed to get the current root filesystem in safe while encrypting the partition. I don't know if it's possible to encrypt "in place" meaning to use two loopback devices. However this is the safe solution.

For the busy ones, just boot the MeeGo 1.1 Live USB and grab these files:
http://kaaos.huutonauru.net/meego/netbook_rootfs_crypt/crypt_hd.sh
http://kaaos.huutonauru.net/meego/netbook_rootfs_crypt/mkcryptrd.sh

Then:
chmod a+x crypt_hd.sh mkcryptrd.sh
su
./crypt_hd.sh

And follow the instructions.

The ones who have more time and want to double check everything, please follow instructions at: http://kaaos.huutonauru.net/meego/netbook_rootfs_crypt/README

This solution has at least one drawback. Once the kernel updates you have to recreate the initrd. For that purposes I created a tiny script than can be run after kernel update:
http://kaaos.huutonauru.net/meego/netbook_rootfs_crypt/update_initrd.sh

That script also needs the mkcryptrd.sh script above.

Of course that may break your system at any time, so be warned.

For my Lenovo Ideapad S10-3t and MeeGo 1.1 netbook it worked fine. My test case was to make very fresh installation first from the Live/installation USB. Boot again and setup the cryptoloop from Live USB. After that I could easily boot my crypted MeeGo 1.1. It asks password in very early phase of boot process. After it's written correctly the MeeGo 1.1 system should boot up normally.

This worked for me, and I give no guarantee that this works for you. However you're welcome to send patches and improvements.

UPDATE 29.11.2010:
Some people have reported problems when they have different kernel version than on Live USB. The're unable to boot back to their system. I try to figure out solution for this issue.

by Jouni Roivas (noreply@blogger.com) at November 29, 2010 12:48 PM

November 17, 2010

Riku Leino

Libre Graphics Magazine 1.1 on ilmestynyt

Tänään ilmestyi ensimmäinen numero Libre Graphics Magazine -lehdestä. Lehden on tarkoitus nostattaa keskustelua vapaista grafiikkaohjelmista, ohjelmien käyttämistä standardeista ja toimia vapaiden grafiikkaohjelmien käyttäjien yhdistäjänä.

Ensimmäisen numeron kiinnostavin artikkeli on Fontmatrixin kehittäjän Pierre Marchandin haastattelu. Hän puhuu fonttienhallinnasta, vapaista ohjelmista ja yhteisön tuesta. Fontmatrix on vielä kehitteillä oleva vapaa fonttienhallintatyökalu Linuxille. Olen kirjoittanut siitä blogiini muutamia juttuja ja ollut mukana kehittämässä sitä. Mielipiteeni saattaa siis olla puolueellinen.

Toinen kiinnostava seikka lehdessä on työkalut ja fontit, joilla se on tehty. Kaikki vapaita luonnollisesti ja suurin osa tuttuja blogini lukijoille.

  • Scribus 1.3.8 – Taitto ja painokuntoon valmistaminen
  • Inkscape 0.48 – Kansi, Have your say, kalenteri ja UpStage-mainos
  • GIMP 2.7.2 – Kuvien muokkaus ja muutamien pdf-tiedostojen muunto bittikartoiksi
  • Pdftk 1.41 – Yksinkertaisti työnkulkua ja auttoi luomaan kevyempiä pdf-tiedostoja
  • Git 1.7.0.4 – Työ jaettiin tekijöiden välillä Gitiä käyttäen. Git jakoi myös keskeneräisen työn kaikille kiinnostuneilla ja mahdollisti työn etenemisen seuraamisen.
  • Raakatekstin muokkaus tehtiin ohjelmilla Gedit ja vim.

Fontit

  • Linux Libertine – leipäteksti
  • Linux Biolinum – alaviitteet ja kuvatekstit
  • PropCourier Sans – otsikot

by Tsoots at November 17, 2010 01:22 AM

October 22, 2010

Riku Leino

Tue Libre Graphics Magazinea

Auta Libre Graphics Magazinen numeron 1.1 painokustannuksissa. Lehden on tarkoitus nostattaa keskustelua vapaista grafiikkaohjelmista, ohjelmien käyttämistä standardeista ja toimia vapaiden grafiikkaohjelmien käyttäjien yhdistäjänä. Hyvin tehty painettu lehti, Libre Graphics Magazine, saavuttaa alan ammattilaiset ja käyttäjät, jotka muutoin eivät välttämättä kohtaisi vapaita ohjelmia lainkaan. Ensimmäinen numero aloittaa toivottavasti pitkän seikkailun tunnettuuden ja tietoisuuden lisääjänä. Voit auttaa kaiken tämän saavuttamisessa.

Osoitteesta http://libregraphicsmag.com/ löytyy lisää tietoa asiasta.

Voit osallistua keräykseen napsauttamalla alla olevaa painiketta.

Click here to lend your support to: Fund Libre Graphics Magazine 1.1! and make a donation at www.pledgie.com !

by Tsoots at October 22, 2010 05:00 PM

July 31, 2010

Mikko Rauhala (mjr)

Ohjelmistotuotanto ei tarvitse tekijänoikeuksia

Tekijänoikeuskriittiset kannanotot tapaavat usein keskittyä mediateollisuuteen ohjelmistoteollisuuden jäädessä vähemmälle huomiolle. Tämä ei ole sattumaa. Toki perusoikeuksien rapautus ja kansalaisten ajojahdit ovat myös ohjelmistotuottajien taholta tuomittavia, mutta he eivät yksinkertaisesti harrasta tällaisia aktiviteetteja läheskään mediamoguleita vastaavalla innolla. Ainakin osasyy asiaan on selvä: maailman ohjelmistotuotanto ei yksinkertaisesti ole yhtä riippuvainen tekijänoikeuksista kuin nykyinen mediabisnes. Osin tämä johtuu jälkimmäisen harhaisesta tuotekeskeisestä näkökulmasta alalla, jolle palvelukeskeinen lähestymistapa soveltuisi luontevammin. Osin kyse on kuitenkin myös alojen laadullisemmista eroista.

Monille tulee ohjelmistoalan konkretiana mieleen kauppojen hyllyiltä myytävät ohjelmapaketit. Tämä on kuitenkin harhaanjohtava mielikuva. Suurin osa ohjelmistokehityksestä tapahtuu enemmän tai vähemmän räätälöityjen ratkaisujen parissa. Tämä ohjelmoijien leijonanosan leipäpuu on samalla ohjelmistoteollisuuden osa-alueista vähiten tekijänoikeuksista riippuvainen.

Yritysten sisäinen ohjelmistokehitys omiin tarpeisiin tapahtuu triviaalisti tekijänoikeuksista melko lailla riippumatta. Ilman tekijänoikeuksia tietovuotojen vaikutus mahdollisesti hieman kasvaisi, joskin yrityssalaisuus- ja -vakoilulainsäädäntö tarjoavat haluttaessa tekijänoikeuslaista riippumattomia keinoja puuttua näihin.

Yritysten välisissä tilaustöissä taas ehdot voidaan määritellä sopimusoikeudellisesti tarvitsematta rasittaa koko yhteiskuntaa yksinoikeusjärjestelmillä. Vuotojen vaikutus voi taaskin olla hieman suurempi, mutta yllä mainittujen keinojen lisäksi näihin voidaan osin varautua sopimussanktioilla. Osassa tapauksia palvelun myynti on lisäksi käypä vaihtoehto ohjelmiston itsensä myynnille.

Mutta entäpä ne hyllyltä saatavat ohjelmapaketit? Pelien tapauksessa trendi on aika selvä: ison rahan tuotannot sidotaan yhä enemmän ja enemmän verkkoon. Massiivisten moninpelien tapauksessa sidonta on luonteva: pelaamiseen tarvitaan hyvin ylläpidetyt palvelimet, joihin pääsystä laskuttamalla pelin kehitystyö rahoitetaan. Malli on hyvin palvelukeskeinen, eikä riipu juurikaan lakisääteisistä yksinoikeuksista.

Yksinpelien tapauksessa sidonta muuttuu keinotekoiseksi, mutta silti lopulta teoriassa tehokkaaksi. Toistaiseksi tuottajat ovat soveltaneet lähinnä erilaisia DRM-järjestelmiä vaihtelevalla menestyksellä. Moni peli on saanut runsaasti risuja kehnosti toimivista ja pelaamista estävistä virityksistä, jotka on lopulta helppo murtaa. Toisaalta innovatiivisesti palveluakin DRM:n lisäksi tarjoava Steam näyttäisi porskuttavan hyvin.

Tulevaisuudessa näkisin yksinpelienkin siirtävän varsinaista toiminnallisuuttaan verkkoon pelivalmistajan palvelimille. Pelkän DRM:n voi aina murtaa, mutta kokonaisten pelin osien uudelleentoteuttaminen onkin jo potentiaalisesti kertaluokkia hankalampaa. Kehityskulku ei toki ole pelkästään positiivinen: käytettävyys pakostakin kärsii, ja avoimuuskin lähinnä vähenee entisestään. Vaakakupissa kuitenkin painaa enemmän, ettei peliä sinänsä rehdisti palveluna myyvän bisneksen tarvitse lytätä kansalaisoikeuksia olennaisena osana toimintaansa. Lisäksi trendi tuntuu olevan aika väistämätön: valmistajilla ei yksinkertaisesti ole luottamusta tekijänoikeusjärjestelmän toimintaan - ja syystäkin.

Mitä tulee pienemmän rahan indie-tuotantoon, näiden kustannukset on mahdollista kattaa ihan vain kunniajärjestelmällä — joka on käytännössä tilanne nytkin! Hyvät pelit hyvällä markkinoinnilla voivat kerätä kohtuullisesti rahaa lyhyessäkin ajassa. Esimerkiksi The Humble Indie Bundle-kampanja keräsi tekijöille ja valikoiduille hyväntekeväisyysjärjestöille yli miljoonan parissa viikossa, eivätkä pelit edes olleet enää uusinta uutta.

Mutta entäpä hyllyjen hyötyohjelmat? Peruskäyttäjän varusohjelmistotarpeen voi jo nykyisellään täyttää lähes kokonaan vapailla (ja epävapailla mutta ilmaisilla) ohjelmistoilla, joten suljettujen ja maksullisten vaihtoehtojen melko pieni tuotannonala ei ole yhteiskunnallisesti järin tarpeellinen. Vapaiden ohjelmistojen kiihtyvälle kehitykselle tekijänoikeudet eivät taas ole kovin oleellisia. Ns. copyleft-ohjelmistot toki käyttävät hyväkseen tekijänoikeuslakia varmistaakseen johdannaisteostenkin vapauden, mutta moni vapaa projekti pärjää varsin hyvin muutenkin. Muutosten suljettuna pitäminen on usein jo käytännön syistä huono idea, ja onpa hyvä mainekin kehittäjäpiireissä eduksi.

Jäljelle jäävät lähinnä ammattilaisohjelmistot erikoistuneisiin tarpeisiin, joita ei vapailla ohjelmilla saada riittävän hyvin tyydytettyä kovin lähitulevaisuudessa. Niiltä osin kuin näitä ei helposti muuta palvelupohjaisiksi, Piraattipuolueen 5-10 vuoden kaupallisen yksinoikeuden malli kattaisi nykymuotoisen teollisuuden tarpeet varsin hyvin. Kokonaistehokkuuden kannalta parempi ratkaisu saattaisi silti olla jopa strategisten alojen vapaiden ohjelmistojen kehittäminen tai ostaminen julkisen sektorin taholta. Tämä kun vähentäisi ohjelmistoalalla yleistä pyörien uudelleenkeksimistä, yhteensopivuusongelmia sekä niistä johtuvia usein tarkoituksellisia markkinahäiriöitä. Lisäksi vapaiden ohjelmistojen saatavuus helpottaisi kilpailua niitä käyttävillä aloilla.

Tekijänoikeudet etenkään nykylaajuudessaan eivät siis ole erityisen tärkeitä ohjelmistotuotannolle. Toki moni tämänkin alan tekijä on yksinoikeuksiinsa kiintynyt, vaikka lobbaus- ja ajojahtimääristä päätellen selvästi mediapuolta vähemmän. Se ei kuitenkaan tarkoita, että tekijänoikeusjärjestelmän rapistuminen uhkaisi osaavan ohjelmoijan leipäpuuta tai ohjelmistotuotannon tulevaisuutta.

by Mikko Rauhala (mjr@iki.fi) at July 31, 2010 04:40 PM