blogit.vapaasuomi.fi

August 31, 2015

Wikimedia Suomi

Wikimaniaa osa 1: ilmaisunvapaus ja koulutus

Wikimania_2015_Jimbo

Jimbo ryhmäkuvassa Wikimanian järjestäjien kanssa. Wikimedia Mexico CC BY-SA 4.0

Wikipedian perustajan Jimbo Walesin rintaa koristaa asteekkihenkinen pääkallo, joka virnistää leveästi. Ollaan läntisen maailman suurimmassa metropolissa Meksiko Cityssä, jossa on juuri päättymässä järjestyksessään 11. Wikimania.

Jimbon oma virne kuitenkin hyytyy, kun hän siirtyy vakavimpiin aiheisiin perinteisessä lopetuspuheenvuorossaan.

Wikimanía_2015_-_Final_day_-_LMM_-_México_D.F_(10)

Jimbo Wales pukeutui viralliseen konferenssipaitaan lopetuspuheenvuorossaan. Kuva: MadriCR CC BY-SA 4.0

Kuluneen vuoden aikana huolta ovat herättäneet ilmaisunvapautta vastaan kohdistuneet toimenpiteet,  erityisesti painostus, jota tavalliset Wikipedian muokkaajat ovat kohdanneet vapaaehtoistyössään. Pitkäikäinen ongelma puolestaan on ollut Kiinan toteuttama sisällön suodattaminen ja blokkaaminen. Jimbo myös pelkäsi mahdollista tilannetta, jossa jollakin kielialueella joukkomedia joutuisi hallinnon ohjailtavaksi – se vaikeuttaisi neutraalien lähteiden löytämistä huomattavasti.

Vuoden Wikipedistin palkinnon saajan hän jätti nimeämättä, koska muokkaaja on tilanteessa,  jossa julkisuudesta voi olla hänelle haittaa.

Työtä ilmaisun vapauden puolesta

Vaikka Jimbolla parta on jo harmaantunut, 15-vuotias verkkotietosanakirja sisarprojekteineen on vetreässä kunnossa. Avoimen ja vapaan tiedon puolesta työskentelevät vapaaehtoiset ovat luoneet vuoden aikana paljon uusia ja inspiroivia projekteja.

Wikipedia sai kuluvana vuonna myös merkittäviä tunnustuksia, sillä projektille myönnettiin Asturian ruhtinattareen palkinto sekä Erasmus-palkinto. Hienoa oli myös kuulla, miten Wikimedia-säätiö on reagoinut kolmansilta osapuolilta saamiinsa poistovaatimuksiin: 234 pyynnöstä yhtäkään ei ollut toteutettu. Säätiö ei kajoa tiedon avoimuuteen kevyin perustein. 

Myös vaikutustyössä oli onnistuttu: Euroopan unionissa äänestyksessä ollut muutosehdotus Panoraamavapauteen onnistuttiin kaatamaan vapaaehtoisten aktiivisen työn seurauksena. Jatkossakin voimme käyttää esimerkiksi WIkipedian modernia arkkitehtuuria käsittelevien artikkelien yhteydessä valokuvia rakennuksista.

Wikimania_2015_Group_photo

Konferenssin virallinen ryhmäkuva otettiin Soumaya-museossa. EneasMx CC BY-SA 4.0

Koulutus kuuluu Wikipediaan

Wikimanian osallistujien kertomusten ja kokemusten perusteella Wikipedian hyödyntäminen koulutuksessa on toimiva ja helposti muunneltava konsepti.

Meksikossa Tec de monterrey -kampus on sisällyttänyt Wikipedian jokapäiväiseen koulutukseen erilaisissa muodoissa. Äänitekniikan opiskelijat äänittävät sanojen lausuntaohjeita ja kuvataiteen opiskelijat lataavat Commonsiin piirtämiään nivel-animaatioita. Jokainen oppiaine täydentää avoimen tiedon projekteja omilla vahvuusalueillaan. Wikimaniassa julkistettiin projektin esittelyvideo, joka kannattaa katsoa.

Armeniassa kohderymäksi on otettu myös korkeakoulutasoa nuoremmat oppilaat. Maassa on järjestetty Wiki Camp -leirejä, jolla kymmenet nuoret muokkaavat Wikipediaa joka päivä tuntien ajan. Jokaiselle päivälle on oma teemansa, ja parhaat ryhmät ja yksittäiset muokkaajat palkitaan illan lopuksi. Taitotaso on otettu huomioon, sillä esimerkiksi nuorimmat osanottajat muokkaavat wikisanakirjaa. Kaksiviikkoisen leirin tuloksena oli tuhansia uusia artikkeleita. Reipashenkisen Wiki Campin tunnelmia voi tarkastella Youtubessa.

Useissa Wikipedian kieliversioissa on koulutusprojekti ja sitä tukeva Education-lisäosa asennettuna. Lisäosan avulla Wikipedian sisälle saa luotua kurssialueita, joita voi käyttää opetuksen koordinoimiseen. Lisäosaa voi käyttää myös muuhun tarkoitukseen, ja sitä onkin hyödynnetty esimerkiksi editathoneissa. Suomenkieliseenkin Wikipediaan on tuotu erilaisia kouluprojektitöitä, mutta toiminta on toistaiseksi ollut järjestäytymätöntä ja yksittäisten toimijoiden aikaansaannosta.

Miksi Wikipediaa tulisi käyttää osana koulutusta? Wikipedian artikkelia täydentävä koululainen käsittää uudella tavalla mitä tieto on ja kuinka se rakentuu verkossa. Medialukutaito ja lähdekritiikki kehittyvät, kun tavallisesti Wikipediaa vain tiedonhakuun käyttävästä opiskelijasta tulee tiedon tuottaja – tilanne käännetään päälaelleen, kun Wikipediaa ei enää käytetäkään vain kotiläksyn lähdemateriaalina. Opiskelija myös kokee työnsä uudella tavalla merkittäväksi, kun teksti ei jää vain opettajan pöytälaatikkoon vaan päätyy laajemman yleisön hyödynnettäväksi. Tämä voi lisätä opiskelumotivaatiota.

Seuraava blogaukseni Wikimaniasta tulee käsittelemään Wikipedian Lähdekirjastoa  ja kirjastöyhteistyön mahdollisuuksia Wikipediassa.

by Teemu Perhiö at August 31, 2015 01:13 PM

Niklas Laxström

MediaWiki short urls with nginx and main page without redirect

Google PageSpeed Insights writes:

Redirects trigger an additional HTTP request-response cycle and delay page rendering. In the best case, each redirect will add a single roundtrip (HTTP request-response), and in the worst it may result in multiple additional roundtrips to perform the DNS lookup, TCP handshake, and TLS negotiation in addition to the additional HTTP request-response cycle. As a result, you should minimize use of redirects to improve site performance.

Let’s consider the situation where you run MediaWiki as the main thing on your domain. When user goes to your domain example.com, MediaWiki by default will issue a redirect to example.com/wiki/Main_Page, assuming you have configured the recommended short urls.

In addition the short url page writes:

Note that we do not recommend doing a HTTP redirect to your wiki path or main page directly. As redirecting to the main page directly will hard-code variable parts of your wiki’s page setup into your server config. And redirecting to the wiki path will result in two redirects. Simply rewrite the root path to MediaWiki and it will take care of the 301 redirect to the main page itself.

So are we stuck with a suboptimal solution? Fortunately, there is a way and it is not even that complicated. I will share example snippets from translatewiki.net configuration how to do it.

Configuring nginx

For nginx, the only thing we need in addition the default wiki short url rewrite is to rewrite / so that it is forwarded to MediaWiki. The configuration below assumes MediaWiki is installed in the w directory under the document root.

location ~ ^/wiki/(.*)$ {
	rewrite ^/wiki/(.*)$ /w/index.php?title=$1&$args;
}

location = / {
	rewrite ^ /w/index.php;
}

Whole file for the curious.

Configuring MediaWiki

First, in our LocalSettings.php we have the short url configuration:

$wgArticlePath      = "/wiki/$1";
$wgScriptPath       = "/w";

In addition we use hooks to tell MediaWiki to make / the URL for the main page, not to be redirected:

$wgHooks['GetLocalURL'][] = function ( &$title, &$url, $query ) {
	if ( $title->isExternal() || $query != '' ) {
		return;
	}

	$dbkey = wfUrlencode( $title->getPrefixedDBkey() );
	if (
		strpos( $dbkey, '%3F' ) !== false ||
		strpos( $dbkey, '%26' ) !== false ||
		strpos( $dbkey, '//' ) !== false
	) {
		global $wgScript;
		$url = "$wgScript?title=$dbkey";
	} elseif ( $title->isMainPage() ) {
		$url = '/';
	}
};

// Tell MediaWiki that "/" should not be redirected
$wgHooks['TestCanonicalRedirect'][] = function ( $request ) {
	return $request->getRequestURL() !== '/';
};

This has the added benefit that all MediaWiki generated links to the main page point to the domain root, so you only have one canonical url for the wiki main page. The if block in the middle with strpos checks for problematic characters ? and & and forces them to use the long URLs, because otherwise they would not work correctly with this nginx rewrite rule.

And that’s it. With these changes you can have your main page displayed on your domain without redirect, also keeping it short for users to copy and share. This method should work for most versions of MediaWiki, including MediaWiki 1.26 which forcefully redirects everything that doesn’t match the canonical URL as seen by MediaWiki.

by Niklas Laxström at August 31, 2015 08:14 AM

August 21, 2015

Wikimedia Suomi

Suomalais-ugrilaiset keskustelivat Wikipedioidensa tulevaisuudesta Virossa

Grupifoto_Obinitsas2

Seminaari kokoontui suomais-ugrilaisten kansojen lippujen alla.

Wikimedia Eesti järjesti suomalais-ugrilaisten Wikipedioiden tapaamisen 1. – 4. elokuuta 2015 Etelä-Virossa Meremäessä. Seminaari kokosi yhteen osallistujia Venäjältä, Suomesta ja Virosta. Tapaamisessa oli udmurtin, karjalan, ersän, moksan, marin, vepsän, komsin, viron ja suomen kielisiä.

Seminaarissa keskusteltiin pienten suomalais-ugrilaisten Wikipedioiden yleisestä kehityksestä ja sovittiin lähitulevaisuuden konkreettisista toimista. Koska suomalais-ugrilaisia on suhteellisen vähän, keskeinen perusta jatkotoimille on yhteistyön vahvistaminen ja kokemusten jakaminen, mikä auttaa menestystarinoiden kertaamista ja välttämään epäonnistumisia.

Paikallistasoilla aletaan lisätä tietoisuutta vapaan kulttuurin ja tiedon välittämiseksi, sekä kehitetään yhteistyötä vapaiden muistiorganisaatioiden ja oppilaitosten kanssa. Kuten edellisenäkin, myös tänä vuonna puhuttiin siitä, kuinka Wikipedia auttaa pienten suomalais-ugrilaisten kielten säilyttämisessä. Se voi myös innostaa sekä vapaaehtoisia, että mahdollisia yhteistyökumppaneita.

Työpajassa käsiteltiin myös tiettyjä teemoja ja vaihdettiin ajatuksia erityisesti suomalais-ugrilaisten kielten Wikipedïoiden luomisesta, sekä Wikipedian sisällön ja paikallisten yhteisöjen kehittämisestä. Seminaarissa pidettiin työpaja, jossa koulutettiin käyttämään apuohjelmia ja kirjoittamaan artikkeleita Wikipediaan nopeammin ja helpommin. Yhdessä testattiin Viron Wikimedian piirissä kehitettyä vapaata käännöstyökalua Minority Translate, joka helpottaa Wikipedia-artikkeleiden kääntämistä kielestä toiseen.

Suomalais-ugrilaisten kielten viron, suomen ja unkarin lisäksi Wikipedioita
julkaistaan saameksi, võroksi, vepsäksi, niitty- ja mäkimariksi, ersäksi ja mokšaksi, permin komin ja komisyrjäänin sekä udmurtin kielillä. Suomalaisugrilaisia Wikipedioita on siis 13, joiden lisäksi on noin 15 inkubaatio- eli kehitysvaiheessa olevaa Wikipediaehdokasta. Suomenkielinen Wikipedia on suurin suomalaisugrilaisista Wikipedioista. Tapaaminen järjestettiin Suomalais-ugrilaisen kulttuuripääkaupungin sekä Sukulaiskansojen tukiohjelmien, sekä Wikimedia Foundationin tuella.

Kieli ja Wikipedia keskeinen

Tsykarev2 (3)

Aleksei Tsõkarev Petroskoista esitteli muun muassa Periodika kustantamoa ja Karjalan kielen uudistusohjelmaa, jonka osa on Wikipedia.

Suomenkielisen Wikipedian ongelmat ovat varsin erilaisia verrattuna suomalaisugrilaisten sukulaiskieliemme vastaaviin. Voisi ehkä yleistää, että pienemmillä suomalaisugrilaisilla kielilalueilla sekä kieli että usein vielä pienikokoiset ja aloittelevat Wikipediat ovat keskeisemmässä asemassa kuin Suomessa. Kyse on monesti kielen elvyttämisestä ja se liittyy myös alueellisiin kulttuureihin. Seminaarissa raportoitiin muun muassa Karjalan ja Komin tasavaltojen vähemmistökielten toimenpideohjelmista. Näissä Venäjän osissa myös Wikipedia on mainittu jonkinlaisena osana tasavaltojen kieliohjelmia.

Seminaarissa esiteltiin Wikimedia Eestin piirissä kehitetty Minority Translate ohjelma, joka on suunniteltu lyhyiden artikkeleiden kääntämiseen Wikipediasta toiseen. Uutta ainakin meikäläiselle oli se havainto, että kääntäminen ja käännösohjelmat ovat tulleet aktiivisen kielenkäytön keskiöön.

Useimmat inkubaatiotilassa olevat Wikit näyttävät jääneen toistaiseksi syntyvaiheeseensa. Näiden potentiaalisuutta epäilevälle voisi huomauttaa, että kun suomenkielinen Wikipedia perustettiin 21. helmikuuta 2002, sadas artikkeli kirjoitettiin vasta alkuvuodesta 2003.

Kyselin seminaarissa lähteiden ja lähteiden kääntämisen merkityksestä aloittavissa Wikipedioissa. Vastaus oli, että lähteiden merkitsemistä ei pidetty oleellisena monissa Wikipedioissa ainakaan tässä vaiheessa.

Puhuin seminaarin aloituspäivänä julkisen taiteen projektista suomenkielisessä Wikipediassa. Seminaarin yhteydessä osallistuttiin myös suomalaisugrilaisten kulttuuripääkaupunkina 2015 toimivassa Obinitsan kylässa Setokansan Kuningaspäiville.

Suomalais-ugrilaiset Wikipediat ja niiden kehitys

Julkisia suomalais-ugrilaisia Wikejä on 13. Artikkelit 1.5.2014 (suluissa artikkelit 18.8.2015)

Inkubaatiotilassa on 15 kieltä:

Tässä artikkelissa on käytetty Wikimedia Eestin uutista tapahtumasta sekä artikkelia suomalais-ugrilaisten Wikipedioiden yhteistyöstä Wikimedia Eestissä.

Heikki Kastemaa

Heikki_Kastemaa_01 (2)

 

 

by kulttuurinavigaattori at August 21, 2015 11:34 AM

August 03, 2015

Niklas Laxström

translatewiki.net – harder, better, faster, stronger

I am very pleased to announce that translatewiki.net has been migrated to new servers sponsored by netcup GmbH. Yes, that is right, we now have two servers, both of which are more powerful than the old server.

Since the two (virtual) servers are located in the same data center and other nitty gritty details, we are not making them redundant for the sake of load balancing or uptime. Rather, we have split the services: ElasticSearch runs on one server, powering the search, translation search and translation memory; everything else runs on the other server.

In addition to faster servers and continuous performance tweaks, we are now faster thanks to the migration from PHP to HHVM. The Wikimedia Foundation did this a while ago with great results, but HHVM has been crashing and freezing on translatewiki.net for unknown reasons. Fortunately, recently I found a lead that the issue is related to a ini_set function, which I was easily able to work around while the investigation on the root cause continues.

Non-free Google Analytics confirms that we now server pages faster.

Non-free Google Analytics confirms that we now serve pages faster: the small speech bubble indicates migration day to new servers and HHVM. Effect on the actual page load times observed by users seems to be less significant.

We now have again lots of room for growth and I challenge everyone to make us grow with more translations, new projects or other legitimate means, so that we reach a point where we will need to upgrade again ;). That’s all for now, stay tuned for more updates.

by Niklas Laxström at August 03, 2015 10:48 AM

August 02, 2015

Aapo Rantalainen

Board game geometry

There are several board games played with square grid and TOKEN CAN MOVE DIAGONALLY. I’m not saying this is wrong or even hard to play with.
I’m describing what this mean mathematically.

photo1
Look the picture. Green token can move four steps. We can now say that each possible target point (B and C) and source point (A) has distance four.
DistanceBetween(A,B) = 4
DistanceBetween(A,C) = 4

This is true in this game-universe and with these game-rules. If we then use our physical reality and measure distances with ruler.

photo2 photo3
We get that:
DistanceBetween(A,B) = 16 centimetres
DistanceBetween(A,C) = 22 centimetres


 

I repeat this is not a bug in rules. It is not even paradox. But how does it look in our reality if we somehow set that “nearby points have distance of one”?

First we (mathematically) define our game board. Let say we have three types of points:
– Corner: It has three neighbourhood points (E.g. point A)
– Side: Five neighbourhood points (E.g. point B)
– Center: Eight neighbourhood points (E.g. point D)

(Where neighbourhood point = point with distance 1)

And then we have some little more complicated relation between points:

photo4

Distance(A,B) = 1
Distance(A,C) = 1
Distance(A,D) = 1
Distance(B,C) = 1
Distance(B,D) = 1
Distance(C,D) = 1
…For each point in board.

Let’s construct this:
* Starting with one corner (A) (in 0,0,0)
bb01 * Helper points X Y Z bb_02
*Lines from A to each helper point X and Y and Z. bb_03*Ball with center A and radius 1. It intersects three helper lines on points B and C and Dbb_04
(Note: it is not circle but ball, therefor it looks points B and C and D are not intersecting ball)

*Lines between BC, BD and CD (length of each is 1) bb_05

*This construction is now equivalent what we wanted.


 

And here is a physical construction of 20 points (marked by four tokens) from corner of the board.

photo5Because they are equivalent I suggest playing with right-side board.


by Aapo Rantalainen at August 02, 2015 04:54 PM

July 29, 2015

Ubuntu-blogi

Kokemuksia MEIZU MX4 Ubuntu-puhelimesta

Juuri ennen juhannusta pakettikusti toi minulle MEIZU MX4 Ubuntu-puhelimen käyttöön, ja käyttöön se päätyikin hyvin nopeasti, korvaten BQ Aquaris E4.5:n. Käyttöjärjestelmä säilyi samana, joten en suuremmin sen käyttökokemukseen syvenny vaan säästän sen erilliseen  juttuun. Lisää raudan teknisistä spekseistä löytyy muunmuassa MEIZUn sivuilta.

MEIZU MX4 saatekirjeen ja kirveen kera

Postin tuomaa

MX4 on kooltaan selkeästi isompi kuin Aquaris, näytön ollessa selkeästi leveämpi yltäen laitten reunoihin. Ainakin minun käyttökokemus on että jonkinlaiset reunat näyttöjen sivuilla helpottaa reunaeleiden kanssa. MX4:n koko on sitä luokkaa että allekirjoittaneen sormien ulottuminen kokee hetkittäin haasteita. Käsittely muutenkin on jonkinverran hankalampaa, siitä todisteena kova kosketus maantien kanssa.

MEIZU

MEIZU lommoilla

Alumiinirunkoisena puhelin kuitenkin kestää ilmeisen hyvin kovaakin kuritusta, tästä isoa plussaa paljon rymyävälle. Näytön suurempi koko ja tarkkuus pääsi kunnolla oikeuksiinsa tässä hiljattain kun päivityksessä muutettiin MX4:lle asetettua ruudukkoarvoa jolla määritetään näytölle piirrettävän sisällön suhteellista kokoa.

Ubuntu Suomi twitter

Näytölle mahtuu tekstiä

Akkukesto oli aluksi sangen heikko ja lämpöä riitti pitkin päivää. Muutaman korjauspäivityksen jälkeen tuollakin saralla tuli selkeitä parannuksia, nyt akun kestäen vähäistä käyttöä useamman päivän tahi kovempaa käyttöä päivän tahi puolitoista.

MX4 Ubuntun akunkäyttö

Akku kestää jo päivän yli

MEIZU on laittanut melkoisesti ruutia MX4:ään ajatellen Ubuntun tarpeita. 8 ydintä puksuttaa todennäköisesti melkoisesti alikäytöllä eikä laitteen rajoja oikeastaan tarvitse miettiä normikäytössä. Keskusmuistiakin on ladattu riittämiin, ohjelmien taustalla pyörimistä voisi tällaisella raudalla sallia huomattavasti vapaammin kuin nyt tehdään.

Kamerasta ei vielä saada täyttä hyötyä irti ohjelmistobugien takia. 21 Mpix kamerasta saadaan tällä hetkellä käyttöön vain noin 15 Mpix eikä videokuvakaan käytä kameran täyttä resoluutiota vielä.

Kaikenkaikkiaan MEIZU MX4 on tällä hetkellä sangen onnistunut puutteistaan huolimatta, ohjelmistosta johtuvat ongelmat ovat ratkaistavissa ja korjauksia ja parannuksia tuleekin säännöllisesti päivityksistä.

Seuraavaa Ubuntu Insiders -puhelinta odotellessa…

– Tm_T

by Tm_T at July 29, 2015 12:14 PM

June 12, 2015

Riku Voipio

Dystopia of Things

The Thing on Internet

I've now had an "Internet of Things" device for about a year. It is Logitech Harmony HUB, an universal remote controller. It comes with a traditional remote, but the interesting part is that it allows me to use my smartphone/tablet as remote over WiFi. With the android app it provides a rather nice use experience, yet I can see the inevitable end in anger.

Bare minimum GPL respect

Today, the GPL sources for hub are available - at least the kernel and a patch for busybox. The proper GPL release is still only through written offer. The sources appeared online April this year while Hub has been sold for two years already. Even if I ordered the GPL CD, it's unlikely I could build a modified system with it - too many proprietary bits. The whole GPL was invented by someone who couldn't make a printer do what he wanted. The dystopian today where I have to rewrite the whole stack running on a Linux-based system if I'm not happy what's running there as provided by OEM.

App only

The smartphone app is mandatory. The app is used to set up the hub. There is no HTML5 interface or any other way to control to the hub - just the bundled remote and phone apps. Fully proprietary apps, with limited customization options. And if app store update removes a feature you have used.. well you can't get it from anywhere anymore. The dystopian today where "Internet of Things" is actually "Smartphone App of Things".

Locked API

Maybe instead of modifying the official app you could write your own UI? Like one screen with only the buttons you ever use when watching TV? There *is* an API with delightful headline "Better home experiences, together". However, not together with me, the owner of the harmony hub. The official API is locked to selected partners. And the API is not to control the hub - it's to let the hub connect to other IoT devices. Of course, for talented people, locked api is usually just undocumented api. People have reverse engineered how the app talks to the hub over wifi. Curiously it is actually Jabber based with some twists like logging credentials through Logitech servers. The dystopian today where I can't write programs to remotely control the internet connected thing I own without reverse engineering protocols.

Central Server

Did someone say Logitech servers? Ah yes, all configuring of the remote happens via myharmony servers, where the database of remote controllers lives. There is some irony in calling the service *my* harmony when it's clearly theirs. The communication with cloud servers leaks at minimum back to Logitech what hardware I control with my hub. At the worst, it will become an avenue of exploits. And how long will Logitech manage these servers? The moment they are gone, harmony hub becomes a semi-brick. It will still work, but I can't change any configuration anymore. The dystopian future where the Internet of Thing will stop working *when* cloud servers get sunset

What now

This is not just the Harmony hub - this is a pattern that many IoT products follow - Linux based gadget, smartphone app, cloud services, monetized apis. After the gadget is bought, the vendor has little incentive to provide any updates. After all, the next chance I'll carry them money is when the current gadget gets obsolete.

I can see two ways out. The easy way is to get IoT gadgets as monthly paid service. Now the gadget vendor has the right incentive - instead of trying to convince me to buy their next gadget, their incentive is to keep me happily paying the monthly bill. The polar opposite is to start making open competing IoT's, and market to people the advantage of being yourself in control. I can see markets for both options. But half-way between is just pure dystopy.

by Riku Voipio (noreply@blogger.com) at June 12, 2015 06:42 PM

June 08, 2015

Ubuntu-blogi

Pikakatsaus: Dell XPS 13 Developer Edition – Ubuntua suoraan kaupasta

Tässä nopea vilkaisu uunituoreeseen Suomessakin saatavilla olevaan Dell XPS 13 Developer Editioniin, joka tulee Ubuntu 14.04 LTS -käyttöjärjestelmällä (lisättynä mallikohtaisilla korjauksilla). Mallista on Suomesta suoraan saatavilla kahta mallia, joiden yhdistäviä tekijöitä ovat i7-5600U -suoritin, 8GB käyttömuistia sekä 256GB SSD-kiintolevy. Eroina valittavana on joko mattapintainen FullHD-näyttö ilman kosketustukea, tai hieman kiiltävämpi QHD (3200×1800) -näyttö kosketustuella. Päädyin näistä ensimmäiseen pääasiassa jonkin verran paremman akunkeston sekä ulkokäytössä näppärän mattapinnan takia. Työkäytössä en ole huomannut tarvetta kosketusnäytölle, vaikka toki sellainen olisi mukava esim tulevaa Unity 8:aa ajatellen.

Tein pienen tarjouskierroksen Etelä-Suomen Dell-jälleenmyyjien välillä, mutta mitenkään kattavasti en liikkeitä käynyt läpi. Parhaimman palvelun selvityksineen tarjosivat vantaalainen Datakuja sekä turkulainen Jimm’s PC Store. Molemmat vastasivat tarjouspyyntöön, selvittivät asiaa (koska kyseessä oli vasta myyntiin tulossa oleva malli) ja palasivat asian tiimoilta sähköpostitse tai puhelimitse. Muutamassa muussa liikkeessä vastaus oli lyhyempi tyyliin “ei näy vielä listoilla”. Datakujalla ei ole verkkokauppaa mutta palvelu oli muutoin ripeää ja ensiluokkaista. Tätä kirjoitettaessa Jimm’s:n listoilla ei näitä uusia XPS 13 Ubuntu-malleja näy (päivitys 15.6.2015: Jimm’s on lisännyt FullHD-mallin tilattavaksi), mutta Ubuntu Suomen Tietokoneet ja laitteet -sivulla on jo 6 kauppaa joilta uudet XPS1316EAC- ja XPS1326EAC-tuotekoodilliset mallit löytyvät.

Ubuntu laatikosta -kuvasarja

1

Musta laatikko, valkoinen kissa.

Avattu laatikko

Avattu laatikko

Kansi auki! Huomaa Ubuntu-logo.

Kansi auki! Huomaa Ubuntu-logo.

Virrat päälle, käynnistyslogosta ensimmäisen käyttökerran videoon.

Virrat päälle, käynnistyslogosta ensimmäisen käyttökerran videoon.

Ensimmäisen käynnistyskerran kysymykset, aloittaen kielestä.

Ensimmäisen käynnistyskerran kysymykset, aloittaen kielestä.

Palautusmedian luominen. Olin lukenut että on suositeltavaa ladata ensin uusimmat päivitykset, joten ohitin tässä vaiheessa.

Palautusmedian luominen. Olin lukenut että on suositeltavaa ladata ensin uusimmat päivitykset, joten ohitin tässä vaiheessa.

Ubuntu viimeistelee asetuksiaan.

Ubuntu viimeistelee asetuksiaan.

Valmiina kirjautumaan.

Valmiina kirjautumaan.

Työpöydällä ollaan!

Työpöydällä ollaan!

Paljon päivityksiä ladattavaksi...

Paljon päivityksiä ladattavaksi…

Ensimmäisen toimituserän ongelmia

Ikävä kyllä ensimmäinen toimituserä on osittain puutteellinen. Ongelmat on helppo korjata näillä ohjeilla, mutta on ikävää että tämän vuosimallin XPS 13 ei ollut moitteeton suoraan. Ensinnäkin, päivitysten asentaminen keskeytyy ensimmäisellä kerralla, mikä on helpoin korjata avaamalla Unity-valikkoPääte ja suorittamalla komento sudo apt-get install -f (joka ehdottaa pakettien libc-dev-bin, libc6-dbg, libc6-dev ja udev päivittämistä).

Toiseksi kosketuslevyn täydellisesti toimimaan saava ajuri on mukana, mutta ei käytössä. Se on helppo ottaa käyttöön parilla klikkauksella, ks Dellin YouTube-video tai alla olevat kuvat.

Valintaikkuna kosketuslevyn paremman ajurin käyttöön ottoon.

Valintaikkuna kosketuslevyn paremman ajurin käyttöön ottoon.

meta-closeupValinnaisesti on vielä mahdollista ottaa uusimmat ajurit käyttöön 14.04.2 LTS:n ajurituen muodossa, mutta ehkä parasta on odottaa elokuussa julkaistavaa 14.04.3 LTS -ajuritukea (vastaa 15.04:aa) jos uunituoreet ajurit kiinnostavat. Itselleni 14.04.2 LTS toimi kyllä hyvin mutta mikrofoni lakkasi oletuksena toimimasta. Dellin blogauksen perusteella tämä toimisi 15.04:n ajurituella suoraan taas. Puhtaalta pöydältä tuskin kannattaa Ubuntua lähteä asentamaan, sillä Dellin mallikohtaiset korjaukset, kuten yllä näytetyt, löytävät tiensä mahdollisesti vasta 15.10:een jos kaikki lasketaan yhteen. Linkatun Dell-blogikirjoituksen kautta löytyvät kyllä myös tiedot niin eri puhtaiden Ubuntu-versioiden kuin Debianin tai muiden Linux-jakeluiden käyttäjille.

Kokemuksia

Dell XPS 13 Developer Edition + Ubuntu 14.04 LTS on erittäin toimiva kokonaisuus, joka lähentelisi täydellisyyttä ellei ensimmäisessä toimituserässä olisi mainittuja ongelmia. Läppäri on erinomaisen näköinen, tuntuinen ja kevyt.

Olen siirtänyt nyt työtiedostoni uudelle koneelle, ja päivittäinen työnteko sujuu kuin tanssi. Mahdollisesti mielenkiintoisina täkyinä käytän LXC:tä Ubuntun kehitysversion ajamiseen sekä tein aika mielenkiintoisen ”LUKS In-Place Conversion” -operaation, jota en tosin suosittele ellei GRUB2 ole lähimpiä ystäviäsi :)

Timo Jyrinki

(tämä blogipostaus on vapaa käännös englanninkielisestä versiostani)

by Timo Jyrinki at June 08, 2015 11:06 AM

Losca

Quick Look: Dell XPS 13 Developer Edition (2015) with Ubuntu 14.04 LTS

I recently obtained the newest Dell's Ubuntu developer offering, XPS 13 (2015, model 9343). I opted in for FullHD non-touch display, mostly because of better battery life, the actual no need for higher resolution, and matte screen which is great outside. Touch would have been "nice-to-have", but in my work I don't really need it.

The other specifications include i7-5600U CPU, 8GB RAM, 256GB SSD [edit: lshw], and of course Ubuntu 14.04 LTS pre-installed as OEM specific installation. It was not possible to directly order it from Dell site, as Finland is reportedly not online market for Dell... The wholesale company however managed to get two models on their lists and so it's now possible to order via retailers. [edit: here are some country specific direct web order links however US, DE, FR, SE, NL]

In this blog post I give a quick look on how I started up using it, and do a few observations on the pre-installed Ubuntu included. I personally was interested in using the pre-installed Ubuntu like a non-Debian/Ubuntu developer would use it, but Dell has also provided instructions for Ubuntu 15.04, Debian 7.0 and Debian 8.0 advanced users among else. Even if not using the pre-installed Ubuntu, the benefit from buying an Ubuntu laptop is obviously smaller cost and on the other hand contributing to free software (by paying for the hardware enablement engineering done by or purchased by Dell).

Unboxing

The Black Box. (and white cat)

Opened box.






First time lid opened, no dust here yet!
First time boot up, transitioning from the boot logo to a first time Ubuntu video.
A small clip from the end of the welcoming video.
First time setup. Language, Dell EULA, connecting to WiFi, location, keyboard, user+password.
Creating recovery media. I opted not to do this as I had happened to read that it's highly recommended to install upgrades first, including to this tool.
Finalizing setup.
Ready to log in!
It's alive!
Not so recent 14.04 LTS image... lots of updates.

Problems in the First Batch

Unfortunately the first batch of XPS 13:s with Ubuntu are going to ship with some problems. They're easy to fix if you know how to, but it's sad that they're there to begin with in the factory image. There is no knowledge when a fixed batch will start shipping - July maybe?

First of all, installing software upgrades stops. You need to run the following command via Dash → Terminal once: sudo apt-get install -f (it suggests upgrading libc-dev-bin, libc6-dbg, libc6-dev and udev). After that you can continue running Software Updater as usual, maybe rebooting in between.

Secondly, the fixed touchpad driver is included but not enabled by default. You need to enable the only non-enabled ”Additional Driver” as seen in the picture below or instructed in Youtube.

Dialog enabling the touchpad driver.

Clarification: you can safely ignore the two paragraphs below, they're just for advanced users like me who want to play with upgraded driver stacks.

Optionally, since I'm interested in the latest graphics drivers especially in case of a brand new hardware like Intel Broadwell, I upgraded my Ubuntu to use the 14.04.2 Hardware Enablement stack (matches 14.10 hardware support): sudo apt install --install-recommends libgles2-mesa-lts-utopic libglapi-mesa-lts-utopic linux-generic-lts-utopic xserver-xorg-lts-utopic libgl1-mesa-dri-lts-utopic libegl1-mesa-drivers-lts-utopic libgl1-mesa-glx-lts-utopic:i386
 
Even though it's much better than a normal Ubuntu 14.10 would be since many of the Dell fixes continue to be in use, some functionality might become worse compared to the pre-installed stack. The only thing I have noticed though is the internal microphone not working anymore out-of-the-box, requiring a kernel patch as mentioned in Dell's notes. This is not a surprise since the real eventual upstream support involves switching from HDA to I2S and during 14.10 kernel work that was not nearly done. If you're excited about new drivers, I'd recommend waiting until August when the 15.04 based 14.04.3 stack is available (same package names, but 'vivid' instead of 'utopic'). [edit: I couldn't resist myself when I saw linux-generic-lts-vivid (3.19 kernel) is already in the archives. 14.04.2 + that gives me working microphone again!] [edit 08/2015: full 14.04.3 HWE stack now available, improves graphics performance and features among else, everything seems good: sudo apt install --install-recommends linux-generic-lts-vivid libgles2-mesa-lts-vivid libglapi-mesa-lts-vivid xserver-xorg-lts-vivid libgl1-mesa-dri-lts-vivid libegl1-mesa-lts-vivid libgl1-mesa-glx-lts-vivid:i386 libegl1-mesa-lts-vivid libwayland-egl1-mesa-lts-vivid mesa-vdpau-drivers-lts-vivid libgl1-mesa-dri-lts-vivid:i386 ]

Conclusion

Dell XPS 13 Developer Edition with Ubuntu 14.04 LTS is an extremely capable laptop + OS combination nearing perfection, but not quite there because of the software problems in the launch pre-install image. The laptop looks great, feels like a quality product should and is very compact for the screen size.

I've moved over all my work onto it and everything so far is working smoothly in my day-to-day tasks. I'm staying at Ubuntu 14.04 LTS and using my previous LXC configuration to run the latest Ubuntu and Debian development versions. I've also done some interesting changes already like LUKS In-Place Conversion, converting the pre-installed Ubuntu into whole disk encrypted one (not recommended for the faint hearted, GRUB reconfiguration is a bit of a pain).

I look happily forward to working a few productive years with this one!

by Timo Jyrinki (noreply@blogger.com) at June 08, 2015 11:02 AM

June 05, 2015

Wikimedia Suomi

Julkinen taide kaduilta nettiin

DroneArt Helsinki! oli Wikimedia Suomen, Maptime Helsingin ja AvoinGLAMin yhdessä järjestämä tapahtuma, jossa kokeiltiin julkisten patsaiden ja veistosten tuomista Wikimedian kautta avoimesti saataville. Saimme samaan aikaan vieraaksemme Wikimedia Ruotsin Jan Ainalin, John Anderssonin ja André Costan. Tavoitteemme oli kuvata patsaita lennokeilla, laittaa patsaiden tietoa kartalle ja mallintaa 3D-malleiksi.

Pikku seminaari

Saimme kokoon erinomaisen ohjelman julkisen taiteen esittämisestä Wikimediassa. Heikki Kastemaa avasi tilaisuuden kertomalla julkisen taiteen kirjoittamisesta Wikipediaan. Hänen mukaansa mitään vakiintunutta kaavaa ei siihen ole, mutta usein artikkelit julkisesta taiteesta sisältävät jonkin tai kaikki seuraavista näkökulmista: teoksen kuvaus, provenienssi ja vastaanotto. Julkisesta taiteesta otettujen kuvien tarkoitus Wikipediassa on välittää tietoa teoksista.

John Andersson kertoi Wikimedia Sverigen käynnistämästä Wiki Loves Public Art -projektista, jonka ansiosta kollegamme Ruotsissa ovat voineet koota koko maan kattavan julkisen taiteen tietokannan. André Costa esitteli projektin synnyttämiä tuotantoja.

Tietokannasta on syntynyt karttapalvelu Offentligkonst.se. Toisessa projektissa on yhdistetty kuvia Wiki Loves Monuments-kilpailusta ja Mapillary-palvelusta.

Julkisen taiteen tekijänoikeus

Suomessa ja Ruotsissa on lähes samanlainen, yleiseurooppalaiseen käytäntöön perustuva tekijänoikeuslainsäädäntö. Teos on suojattu tekijänoikeudella 70 vuotta tekijän kuolemasta. Suojatuista teoksista tehtyjä toisintoja, kuvia tai 3D-malleja ei ole lupa levittää vapaasti. Julkiseen tilaan pysyvästi sijoitetut patsaat ja julkiset rakennukset ovat poikkeus, mutta tätä poikkeusta käsitellään EU-maissa hieman eri tavoin.

Poikkeus on nimeltään freedom of panorama. Sen mukaan julkiseen tilaan tai sen lähelle pysyvästi sijoitetusta teoksesta saa vapaasti ottaa kuvia ja levittää niitä. Ruotsissa saa kuvata vapaasti sekä taideteoksia että rakennuksia ja käyttää uudelleen haluamallaan tavalla. Suomessa rakennuksia saa kuvata vapaasti. Taideteoksia saa myös valokuvata vapaasti, mutta kuvia ei saa käyttää ansiotarkoituksessa.

<iframe allowfullscreen="true" class="youtube-player" frameborder="0" height="382" src="http://www.youtube.com/embed/qSTkHEFcIRY?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="625"></iframe>

Ruotsissa tekijänoikeusjärjestö BUS on vaatinut Ruotsin Wikimedialta korvauksia julkisten teosten kuvien julkaisemisesta internetissä. BUSin mielestä kuvien julkaiseminen Internetissä on liian laajamittaista taidekuvien levittämistä. Wikimedia Sverige tukeutuu freedom of panoramaan. Wikimedia Sverigen ja BUSin tapausta käsitellään korkeimmassa oikeudessa. (Mikael Mildén, Konstnärer stämmer Wikimedia, Fria Tidningen 26.3.2015)

Lisäksi Wikimediaan talletettujen kuvien julkaisemisen tulee noudattaa sekä kuvien alkuperämaan, että Wikimedia-säätiön kotimaan Yhdysvaltain tekijänoikeuslainsäädäntöä. Sen takia useammat teokset jäävät Wikimedia Commonsin ulkopuolelle.

Suomenkielisessä Wikipediassa kuvia talletetaan paikallisesti ja niitä voidaan käyttää Suomen tekijänoikeuden mukaisesti sitaattioikeuden perusteella kutakin veistosta kuvaavassa artikkelissa.

Wikimedia-liikkeen edustajat pyrkivät vaikuttamaan meneillä oleviin tekijänoikeuden uudistuksiin Brysselissä, ja yksi tärkeimmistä uudistuksista on freedom of panoraman yhtenäistäminen. Tähän työhön kaivataan myös paikallisia edustajia kustakin maasta.

<iframe allowfullscreen="true" class="youtube-player" frameborder="0" height="382" src="http://www.youtube.com/embed/9lHNcoZMnVA?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="625"></iframe>

Lennokit ilmaan

Halusimme kokeilla mahdollisimman montaa eri tapaa kuvata patsaita 3D-malleja varten.

Patsas kuvataan joka puolelta tiheästi. Korkeuksiin yltämisessä auttaa nelikopteri tai pitkä jalusta. Patsaan kaikki sopukat pitää muistaa tallentaa eri kuvakulmilla.

Säätiedotus lupasi myrskytuulta ja rankkasadetta. Pilviä oli taivaalla, kopteri sinkoili tuulen voimasta, mutta saimme kuin saimme aikaan myös pistepilven. Se on tietokoneella tehtävä kolmiulotteinen malli, joka nimensä mukaisesti koostuu pisteistä. Eri kuvakulmista otettuja kuvia vertailemalla niistä löytyvät vastinpisteet saavat avaruudellisen sijainnin yhtä mystisesti kuin maanmittaajat taikovat etäisyyksiä.

Pistepilvi taipui edelleen polygoniverkoksi, josta 3D-printteri teki esineen. Laitamme sen kuvan tänne kun saamme sen. Se on tekijänoikeuksista vapaa. Taiteilija on Bertel Nilsson ja teos on Kotkia, tehty vuonna 1913.

<iframe class="iframe-class" frameborder="0" height="500" scrolling="no" src="http://versoteq.com/content/3d-scanned-public-art" width="100%"></iframe>

by Susanna Ånäs at June 05, 2015 09:12 PM

Hack4NO

Tervetuloa seuraamaan liveraportointia karttahackathonista! Wikimedia Suomi ottaa osaa Norjassa järjestettävään tapahtumaan. #Hack4NO on vastaavanlainen tapahtuma kuin Wiki Loves Maps / #Hack4FI, jota olimme järjestämässä tämän vuoden helmikuussa.
<iframe frameborder="0" height="960px" scrolling="auto" src="http://v.24liveblog.com/live/?id=1294015" width="100%"></iframe>

by Susanna Ånäs at June 05, 2015 08:25 AM

May 31, 2015

Viikon VALO

5x22 Writeily Pro - Viikon VALO #230

Writeily Pro on Markdown-muotoiluja hyödyntävä muistiinpanosovellus Android-ympäristöön.
valo230-writeily_pro.png Writeily Prolla voi kirjoittaa tekstimuotoisia muistiinpanoja Andoid-laitteella käyttäen Markdown-muotoiluja. Muotoiluina voi käyttää ainakin eri tasoisia otsikoita, numeroituja ja numeroimattomia luetteloita, sisäkkäisiä luetteloita, lainauksia, lihavointeja sekä kursivointeja. Tekstiin voi lisätä myös hyperlinkkejä www-sivuille.

Sovelluksella voi luoda uusia tekstitiedostoja, muokata niitä ja tarkastella niitä lukutilassa. Ohjelmassa voi luoda myös kansioita, joilla muistiinpanoja saa pidettyä järjestyksessä. Lukutilassa näkyvän muistiinpanon voi lähettää sovelluksesta muualle muutamassa eri muodossa. Pelkkänä tekstinä sen voi lähettää vaikka sähköpostilla, johon Markdown-muotoilu sopii varsin hyvin. Sisällön voi lähettää tai tallentaa myös HTML-muodossa tai kuvana.

Muokkaustilalle voi valita asetuksista päälle syntaksinkorostuksen. Sovellukselle voi myös asettaa salasanalukituksen, jolloin sen voi avata vain salasanan antamalla. Jos salasanaa haluaa käyttää, kannattaa kuitenkin muistaa, että kaikki muistiinpanot on tallennettu selväkielisinä tiedostoina laitteeseen ja niitä on mahdollista lukea ja muokata jollain muulla ohjelmalla. Suojaus on siis vain hyvin pinnallinen.

Kotisivu
http://writeily.me/
Google Play
F-Droid
Lähdekoodi (Github)
Twitter
@writeily
Lisenssi
MIT
Toimii seuraavilla alustoilla
Android, SailfishOS
Asennus
Ohjelma on asennettavissa Googlen Play-kaupasta sekä F-Droid-sovelluksella.

Teksti: Pesasa
Kuvakaappaukset: Pesasa

by pesasa at May 31, 2015 10:43 AM

May 24, 2015

Viikon VALO

5x21 GApps Browser - Viikon VALO #229

GApps Browser on webkäyttöliittymiä hyödyntävä hiekkalaatikko Googlen tarjoamille palveluille.
valo229-gapps_browser.png Googlen palvelut toimivat hyvin mobiililaitteiden selaimilla, mutta tietoturvastaan tarkkaa käyttäjää voi häiritä Googlen mahdollisuus seurata palveluunsa sisään kirjautuneen käyttäjän muuta selauskäyttäytymistä muilla sivustoilla, jotka käyttävät sivuillaan Googlen palveluita. Tämän voi välttää käyttämällä erillisiä sovelluksia Googlen palveluiden käyttöön, jolloin selaimen ei tarvitse olla kirjautuneena Googlen tunnuksilla. Tällöin kuitenkin sovelluksilla on usein suora pääsy puhelimen muihin tietoihin, kuten yhteystietoihin ja kalenteriin. GApps Browser on erillinen sovellus, jonka tarkoituksena on toimia Googlen palveluita käyttävänä selaimena, jolloin muuhun selailuun voidaan käyttää jotain muuta selainta. Käyttäjän kannattaa kuitenkin muistaa, että Android-alusta itsessään on Googlen hallinnassa ja vaatii Google-tilille kirjautumisen Play-kaupan ja muiden palveluiden käyttöön. Siksi GApps Browser onkin hyödyllinen erityisesti "Google-vapaiden", Android Open Source Projektiin (AOSP) perustuvien, Android-versioiden, kuten CyanogenModin tai Replicantin käyttäjille, jotka haluavat käyttää Googlen palveluita turvallisemmin. GApps Browser tuo Googlen palvelut helposti käytettäviksi myös Jollan SailfishOS:n käyttäjille.

GApps Browseria käyttämällä käyttäjä voi olla sovelluksessa kirjautuneena Google-tililleen ja sovellus muistaa sen käynnistysten välillä. Näin sen käyttö on helpompaa kuin varsinaisen selaimen käyttö, jos haluaa pitää muun verkkoselailunsa omana tietonaan. Googlen palveluita sovellus käyttää https-protokollalla ja käyttäjä voi halutessaan kieltää sovellusta lataamasta kuvia ja skriptejä muualta kuin Googlen sivustoilta. Googlen palveluista ulos viittaavat linkit avataan tavallisella selaimella. Ohjelmaa asennettaessa se vaatii oikeudet vain verkkoyhteyden käyttämiseen, eli sillä ei ole pääsyä laitteen tietoihin.

Koska sovellus ei tee taustalla synkronointia sekä muuta toimintaa, se on tyypillisesti kevyempi ja käyttää vähemmän verkkokaistaa kuin palveluiden natiivisovellukset, esimerkiksi Google+. Tämän vuoksi se todennäköisesti kuluttaa myös vähemmän akkua.

GApps Browseria vastaava sovellus Facebookin käyttöön on Tinfoil for Facebook.

Kotisivu
https://github.com/tobykurien/GoogleApps
Ohjelma Google Playssa
Ohjelma F-Droid-palvelussa
Lisenssi
MIT
Toimii seuraavilla alustoilla
Android, SailfishOS
Asennus
Ohjelman voi ladata Googlen Play-kaupasta tai F-Droidilla.

Teksti: Pesasa
Kuvakaappaukset: Pesasa

by pesasa at May 24, 2015 08:36 PM

May 10, 2015

Viikon VALO

5x20 KDE Connect - Viikon VALO #228

KDE Connect on ohjelmisto tietokoneiden ja mobiililaitteiden väliseen viestintään.
valo228-kdeconnect.png KDE Connect on ohjelma, joka mahdollistaa tietokoneen ja mobiililaitteiden yhteistoiminnan samassa lähiverkossa. Kun tietokoneeseen ja Android-laitteeseen on asennettu niiden omat versiot KDE Connectista, ne näkevät toisensa ollessaan samassa (langattomassa) lähiverkossa. Kun laitteet on paritettu, niiden välillä voidaan siirtää helposti tiedostoja ja käyttää mobiililaitetta tietokoneen etäohjaamiseen. Ohjelma on nimensä mukaisesti suunniteltu KDE:n Plasma-työpöydälle, mutta se toimii myös muiden Linux-työpöytien kanssa.

Tietokoneessa käynnissä olevan KDE Connectin kanssa voidaan yhdistää, eli parittaa, useita mobiililaitteita ja niille kullekin voidaan määritellä käytössä olevat toiminnallisuudet. Toiminnallisuudet ovat lisäosia, joita oletuksina on asennettuna ainakin seuraavat:
  • mobiililaitteen akun varauksen seuranta,
  • leikepöydän jako,
  • tietokoneen näytönsäästäjän käynnistyksen esto mobiililaitteen ollessa kytkettynä,
  • multimediaohjelmistojen etähallinta,
  • puhelimen ilmoitusten synkronointi tietokoneen ilmoituksiksi,
  • musiikin (tai järjestelmä-äänten) vaiennus puhelun tullessa,
  • ping,
  • tiedostoselaus (SFTP:tä käyttäen),
  • puhelinintegraatio (saapuvien puheluiden ja tekstiviestien ilmoittaminen tietokoneella) ja
  • kosketushiiritoiminnallisuus.

Tiedostojen siirtäminen yhdistetyn mobiililaitteen ja tietokoneen välillä hoituu helposti Dolphin-tiedostohallintaohjelmalla (tai millä tahansa KDE-ohjelmalla) sivupalkkiin automaattisesti ilmestyvän pikalinkin kautta. Erityisesti KDE:n Plasma-työpöytää käyttäville tiedonsiirtoyhteyden käyttö on KDE-integraationsa vuoksi hyvinkin helppoa. Teknisesti yhteys on käytännössä toteutettu SFTP-yhteytenä avaintunnistuksella ja fuse.sshfs-mounttauksella, joten sitä on tarvittaessa mahdollista käyttää myös komentoriviltä käsin.

Tiedostoja voi siirtää Android-laitteesta tietokoneelle myös Androidin "Jaa"-toiminnolla, johon KDE Connect lisää oman kuvakkeensa uudeksi vaihtoehdoksi. Tällöin tiedosto lähetetään valitulle tietokoneelle ennalta määrättyyn kansioon, joka oletuksena on kotihakemiston Downloads (tai Lataukset) -kansio. Tämä toiminto tosin ei jostain syystä toiminut kokeiltaessa vaan tuotti jostain syystä korruptoituneita tiedostoja. Android-laitteiden jakotoiminnallisuutta voidaan käyttää myös selainosoitteiden jakamiseen mobiililaitteelta tietokoneelle. Tällöin jaettu osoite avataan tietokoneella oletusselaimeen.

Jos asetuksista on valittu leikepöydän synkronointi päälle, ohjelmisto synkronoi leikepöydän sisällön automaattisesti tietokoneen ja mobiililaitteen välillä. Tietokoneella leikepöydälle kopioitu teksti on siis liitettävissä mobiililaitteella ja päin vastoin.

Tietokoneella KDE Connect on esillä työpöydän paneelin järjestelmäalueella omana kuvakkeenaan ja antaa käyttäjälle ilmoituksia työpöydän oman ilmoitusjärjestelmän kautta. Ilmoituksia tulee esimerkiksi saapuneista tiedostoista sekä saapuvista puheluista ja tekstiviesteistä. Järjestelmäalueella oleva kuvake tarjoaa myös näkymän tarkkailla yhdistettyjen mobiililaitteiden akkujen varaustilaa. Ohjelman voi asettaa esimerkiksi vaientamaan tietokoneella soivan musiikin tai järjestelmä-äänet puhelun tullessa puhelimeen.

Mobiilisovellusta voi käyttää tietokoneen etäohjaamiseen kahdella tapaa. Mediakaukosäädintoiminnolla voi ohjata tietokoneella käynnissäolevaa mediasoitinta, kuten Amarokia tai VLC-mediasoitinta. Kauko-ohjaimessa on mahdollisuus valita ohjattava ohjelma useammasta käynnissä olevasta. Toinen vaihtoehto etäkäyttöön on mobiililaitteen käyttö langattomana hiirenä, jolloin laitteen kosketusnäyttö toimii tietokoneen laattahiiren tavoin. Tässä tilassa myös mobiililaitteen virtuaalinäppäimistö on käytettävissä, joten sitä voidaan käyttää myös näppäimistönä.

Kotisivu
https://community.kde.org/KDEConnect
Lisenssi
GNU GPL
Toimii seuraavilla alustoilla
Linux, Android, Blackberry, SailfishOS
Asennus
Ohjelma saattaa löytyä suoraan Linux-jakelun omasta pakettivarastosta. Joillekin Ubuntun versioille suositellaan uudemman version asentamista PPA-lähteestä. Android-sovellus on ladattavissa Goolgen Play-kaupasta tai F-Droidilla.

Teksti: Pesasa
Kuvakaappaukset: Pesasa

by pesasa at May 10, 2015 08:11 PM

May 09, 2015

Niklas Laxström

14 more languages “fully” translated this week

This week, MediaWiki’s priority messages have been fully translated in 14 more languages by about a dozen translators, after we checked our progress. Most users in those languages now see the interface of Wikimedia wikis entirely translated.

In two months since we updated the list of priority translations, languages 99+ % translated went from 17 to 60. No encouragement was even needed: those 60 languages are “organically” active, translators quickly rushed to use the new tool we gave them. Such regular and committed translators deserve a ton of gratitude!

However, we want to do better. We did something simple: tell MediaWiki users that they can make a difference, even if they don’t know. «With a couple hours’ work or less, you can make sure that nearly all visitors see the wiki interface fully translated.» The results we got in few hours speak for themselves:

Special:TranslationStats graph of daily registrations

This week’s peak of new translator daily registrations was ten times the usual

Special:TranslationStats of daily active translators

Many were eager to help: translation activity jumped immediately

Thanks especially to CERminator, David1010, EileenSanda, KartikMistry, Njardarlogar, Pymouss, Ranveig, Servien, StanProg, Sudo77(new), TomášPolonec and Чаховіч Уладзіслаў, who completed priority messages in their languages.

For the curious, the steps to solicit activity were:

There is a long tail of users who see talk page messages only after weeks or months, so for most of those 60 languages we hope to get more translations later. It will be harder to reach the other hundreds languages, for which there are only 300 active users in Wikimedia according to interface language preferences: about 100 incubating languages do not have a single known speaker on any wiki!

We will need a lot of creativity and word spreading, but the lesson is simple: show people the difference that their contribution can make for free knowledge; the response will be great. Also, do try to reach the long tail of users and languages: if you do it well, you can communicate effectively to a large audience of silent and seemingly unresponsive users on hundreds Wikimedia projects.

by Niklas Laxström at May 09, 2015 10:00 AM

May 05, 2015

Viikon VALO

5x19 DB Browser for SQLite - Viikon VALO #227

DB Browser for SQLite on graafinen käyttöliittymä SQLite-tiedostojen käsittelyyn.
valo227-sqlitebrowser.png DB Browser for SQLite on usealla käyttöjärjestelmällä toimiva graafinen käyttöliittymä tiedostopohjaisen SQLite-tietokannan tietokantatiedostojen käsittelyyn. Sillä voidaan luoda tietokantoja, etsiä niistä tietoa sekä syöttää uutta tietoa kantaan. Taulujen luontia ja määrittelyä voidaan tehdä graafisella työkalulla ja tietoja voi syöttää suoraan taulukkonäkymässä. Vaihtoehtoisesti ohjelmalle voidaan antaa suoritettavaksi komentoja SQL-kyselykieltä käyttäen.

Ohjelman tuonti- ja vientitoiminnoilla voidaan tietokantaan tuoda ja sieltä viedä tauluja pilkulla eroteltuun tekstimuotoiseen tiedostoon (csv, comma separated values). Joissain tapauksissa tosin csv-tiedoston tuonti on nopeampaa tuoda suoraan SQLiten komentorivikäyttöliittymällä. Esimerkiksi Trafin avoimen ajoneuvodatan vanhemman version (noin 2,5 miljoonaa riviä) tuonti SQLite-tietokantaan DB Browser for SQLitellä kesti noin tunnin, kun sen uudemman version (lähes 5 miljoonaa riviä) tuonti SQLiten komentorivikäyttöliittymällä kesti samalla tietokoneella vain noin 1,5 minuuttia. Pienillä tiedostoilla tällä ei ole suurta merkitystä, mutta suurilla aikaero on merkittävä. Komentorivityökalulla tuonnin voi tehdä seuraavilla komennoilla:

 .separator ','
 .mode csv
 .import tiedosto.csv taulu
Lisäksi DB Browser for SQLite sisältää yksinkertaisen plot-työkalun, jolla taulun tai kyselyn tuloksen numeerisia arvoja voi sijoittaa x-y-koordinaatistoon. Luettelosta valitaan rastiruuduilla, mikä arvoista on x-akselilla ja mitkä piirretään y-arvoina.

Kotisivu
http://sqlitebrowser.org/
Lähdekoodi
https://github.com/sqlitebrowser/sqlitebrowser
Twitter
@sqlitebrowser
Lisenssi
MPL v.2 / GNU GPL v.3 (kaksoislisensointi)
Toimii seuraavilla alustoilla
Linux, Windows, Mac OS X, FreeBSD
Asennus
Linux- ja BSD-jakeluihin ohjelma löytyy suoraan paketinhallinnasta nimellä sqlitebrowser. Ohjelman lataus- ja asennusohjeet löytyvät sen kotisivuilta.

Teksti: Pesasa
Kuvakaappaukset: Pesasa

by pesasa at May 05, 2015 06:39 PM

May 03, 2015

Viikon VALO

5x18 SQLite - Viikon VALO #226

SQLite on kevyt, yhtä tiedostoa käyttävä relaatiotietokantajärjestelmä.
valo226-sqlite.png Toisin kuin suurin osa muista tietokantajärjestelmistä, SQLite ei toimi palvelimena, johon otetaan yhteyttä asiakasohjelmalla, vaan tietokantatoiminnallisuus tulee kevyen SQLite-kirjaston kautta suoraan sovellusohjelmaan. SQLite-tietokanta tallennetaan kokonaisuudessaan yhteen tiedostoon, jota sovellus osaa käsitellä SQLite-kirjaston avulla. SQLiten lähdekoodi on julkista omaisuutta (Public Domain) ja se on saatavilla jotakuinkin kaikille mahdollisille alustoille. Samoin se on käytettävissä lähes kaikilla ohjelmointikielillä.

Koska SQLite-kanta tallennetaan yhteen tiedostoon ja koska SQLite-kirjasto on hyvin pieni, on siitä tullut varsin suosittu tapa tallentaa erilaisten sovellusohjelmien sisäisesti käyttämää tietoa. Esimerkiksi suuri osa Android- ja iOS-ohjelmista käyttää SQLite-tiedostoja asetustensa ja käsittelemänsä tiedon tallennukseen. Samoin monet työpöytäohjelmistot, kuten Firefox ja Chromium/Chrome käyttävät SQLite-tiedostoja tietojensa, kuten selaushistorian ja kirjanmerkkien, tallentamiseen.

SQLite tukee suurinta osaa SQL-kielen SQL-92-standardista. Vain muutama ominaisuus standardista on toteuttamatta. SQLite lupaa transaktioidensa olevan atomaarisia, eheitä, eristyneitä ja pysyviä (ACID), eli toisin sanoen tietoa transaktiolla siirrytään aina ehjästä tilasta toiseen kokonaisuudessaan tai ei lainkaan. Tämä tarkoittaa, että SQLite-tiedoston ei pitäisi hajota edes ohjelman tai käyttöjärjestelmän kaatumiseen taikka virtakatkoon. Tietokantatiedostoa voidaan lukea usealla prosessilla yhtä aikaa, mutta kirjoittamista varten koko tiedosto lukitaan.

SQLiten mukana tulee komentorivikäyttöliittymä, jolla SQLite-tiedostoa voidaan ylläpitää ja siihen voidaan tehdä kyselyitä. Lisäksi SQLite-tiedostoja voi luoda, tarkastella ja ylläpitää useilla erilaisilla graafisilla käyttöliittymillä, kuten SQLiteBrowser (DB Browser for SQLite) ja Sqliteman. Myös Calligra_Suiten Kexi-tietokantaohjelma käyttää omana tiedostomuotonaan SQLite-tiedostoja, joihin on lisätty muutama Kexin omaan käyttöön tarkoitettu tietokantataulu.

Kotisivu
https://sqlite.org/
Lisenssi
Public Domain
Toimii seuraavilla alustoilla
Linux, Windows, Mac OS X, FreeBSD, OpenBSD, NetBSD, Solaris, Android, iOS
Asennus
Ladattavissa alustan omasta paketinhallinnasta tai kauppapaikasta taikka ohjelmiston omilta kotisivuilta.
Linkkejä
Luettelo SQLiten ominaisuuksista
Milloin käyttää SQLiteä
FAQ (Usein kysyttyjä kysymyksiä)

Teksti: Pesasa
Kuvakaappaukset: Pesasa

by pesasa at May 03, 2015 09:25 PM

April 22, 2015

Riku Voipio

Fastest way to change running dtb

Tollef posted about using BeagleBone Black for temperature monitoring. There was a passage about patching the DTB (device tree) file:
... This needs to be compiled into a .dtb. I found the easiest way was just to drop the patched .dts into an unpacked kernel tree and then running make dtbs.
There are easier ways. For example, you can get the current device tree file generated from /proc:

apt-get install device-tree-compiler
dtc -I fs -O dts -o current.dts /proc/device-tree/
(Why /proc and not /sys ? because device tree predates /sys) Now you can just modify and build the dtb again, and install it back to where bootloader reads the dtb from:

vim current.dts
dtc -I dts -O dtb -o new.dtb current.dts
Alternative, of course, is to build a brand new mainline kernel and use the dynamic Device tree code now available.

by Riku Voipio (noreply@blogger.com) at April 22, 2015 12:51 PM

April 02, 2015

Wikimedia Suomi

Wikitriathlon at Kiasma

wikitriathlon-32_blogi

Final results are counted from the post it notes. On the right side the three stages of editing are presented on columns; editors are on the rows. Teemu Perhiö CC BY-SA 2.0

Lue myös Kiasman blogipostaus aiheesta suomeksi.

The Museum of Contemporary Art Kiasma held a new-kind-of editathon event, ”Wikitriathlon”, on 28 March. Like a real triathlon the event was a multi-stage competition involving three stages of editing: writing an article, editing an existing article and adding links to articles. The game was fair and in the end everybody was awarded the ”first prize”.

wikitriathlon-25_blogi

There were lots of source material for writing the articles! Teemu Perhiö CC BY-SA 2.0

The staff of Kiasma had hoped that the participants would edit articles related to the artists presented at the exhibitions. At the end of the day 14 new articles were created and 18 existing articles complemented. There were both newcomers and experienced wikipedians present. Hopefully many of the newcomers will stay active and edit articles in the future as well!

In addition to the triathlon model, new approaches to presenting and monitoring the results were tried out. Edits were written on post it notes that were attached to white boards. This way the editors got a better sense of the progression made during the day and could more easily realise their impact on Wikipedia. Participants could also ”book an article” by attaching their own name on top of the article name on a whiteboard. Maybe not so modern approach, but it worked (due to the limitations of the wiki software, more than one people can’t edit a wiki page at the same time).

The Kiasma building had just been renovated, and during the break the participants got a free tour of the new exhibitions Face to Face & Elements. 2013 Kiasma held a ”Wikimarathon”, a 24-hour editathon; this year a Wikitriathlon. Maybe next time we will see a pentathlon-themed event?

wikitriathlon-16_blogi

Participants editing articles. On the background there are whiteboards for booking articles. Teemu Perhiö CC BY-SA 2.0

by Teemu Perhiö at April 02, 2015 04:15 PM

March 09, 2015

Niklas Laxström

IWCLUL 3/3: conversations and ideas

In IWCLUL talks, Miikka Silfverberg’s mention of collecting words from Wikipedia resonated with my earlier experiences working with Wikipedia dumps, especially the difficulty of it. I talked with some people at the conference and everyone seemed to agree that processing Wikipedia dumps takes a lot of time, which they could spend for something else. I am considering to publish plain text Wikipedia dumps and word frequency lists. While working in the DigiSami project, I familiarized myself with the utilities as well as the Wikimedia Tool Labs, so relatively little effort would be needed. The research value would be low, but it would be worth it, if enough people find these dumps and save time. A recent update is that Parsoid is planning to provide plain text format, so this is likely to become even easier in the future. Still, there might be some work to do collect pages into one archive and decide which parts of page will stay and which will be removed: for example converting an infobox to collection of isolated words is not useful for use cases such as WikiTalk, and it can also easily skew word frequencies.

I talked with Sjur Moshagen about keyboards for less resourced languages. Nowadays they have keyboards for Android and iOS, in addition to keyboards for computers (which already existed). They have some impressing additional features, like automatically adding missing accents to typed words. That would be too complicated to implement in jquery.ime, a project used by Wikimedia that implements keyboards in a browser. At least the aforementioned example uses finite state transducer. Running finite state tools in the browser does not yet feel realistic, even though some solutions exist*. The alternative of making requests to a remote service would slow down typing, except perhaps with some very clever implementation, which would probably be fragile at best. I have still to investigate whether there is some middle ground to bring the basic keyboard implementations to jquery.ime.

*Such as jsfst. One issue is that the implementations and the transducers themselves can take lot of space, which means we will run into same issues as when distributing large web fonts at Wikipedia.

I spoke with Tommi Pirinen and Antti Kanner about implementing a dictionary application programming interface (API) for the Bank of Finnish Terminology in Arts and Sciences (BFT). That would allow direct use of BFT resources in translation tools like translatewiki.net and Wikimedia’s Content Translation project. It would also help indirectly, by using a dump for extending word lists in the Apertium machine translation software.

I spoke briefly about language identification with Tommi Jauhiainen who had a poster presentation about the project “The Finno-Ugric languages and the internet”. I had implemented one language detector myself, using an existing library. Curiously enough, many other people met in Wikimedia circles have also made their own implementations. Mine had severe problems classifying languages which are very close to each other. Tommi gave me a link for another language detector, which I would like to test in the future to compare its performance with previous attempts. We also talked about something I call “continuous” language identification, where the detector would detect parts of running text which are in a different language. A normal language detector will be useful for my open source translation memory service project, called InTense. Continuous language identification could be used to post-process Wikipedia articles and tag foreign text so that correct fonts are applied, and possibly also in WikiTalk-like applications, to provide the text-to-speech (TTS) with a hint on how to pronounce those words.

Reasonator entry for Kimmo KoskenniemiReasonator is a software that generates visually pleasing summary pages in natural language and structured sections, based on structured data. More specifically, it uses Wikidata, which is the Wikimedia structured data project, developed by Wikimedia Germany. Reasonator works primarily for persons, though other types or subjects are being developed. Its localisation is limited, compared to the about three hundred languages of MediaWiki. Translating software which generates natural language sentences dynamically is very different from the usual software translation, which consists mostly of fixed strings with occasional placeholder which is replaced dynamically when showing text to an user.

It is not a new idea to use grammatical framework (GF), which is a language translation software based on interlingua, for Reasonator. In fact I had proposed this earlier in private discussions to Gerard Meijssen, but this conference renewed my interest in the idea, as I attended the GF workshop held by Aarne Ranta, Inari Listenmaa and Francis Tyers. GF seems to be a good fit here, as it allows limited context and limited vocabulary translation to many languages simultaneously; vice versa, Wikidata will contain information like gender of people, which can be fed to GF to get proper grammar in the generated translations. It would be very interesting to have a prototype of a Reasonator-like software using GF as the backend. The downside of GF is that (I assume) it is not easy for our regular translators to work with, so work is needed to make it easier and more accessible. The hypothesis is that with GF backend we would get a better language support (as in grammatically correct and flexible) with less effort on the long run. That would mean providing access to all the Wikidata topics even in smaller languages, without the effort of manually writing articles.

by Niklas Laxström at March 09, 2015 01:37 PM

March 04, 2015

Aapo Rantalainen

Newer adb for Ubuntu, with sideloading

Android debugging tool ADB has ‘new‘ feature called sideload, which is in use on Android devices, but not all versions of host toolset. Here comes instructions for compiling newest version from source.

Context

Adb (Android Debug Bridge) is debugging tool to communicate with Android-device and host.

Problem

Some people follow instructions and then encounters mystic error:
adb “*cannot read ‘sideload’ *”

Reason

adb in your system is too old. E.g. you are using Ubuntu/Debian and your adb comes from package android-tools-adb.

Solution

Compile your own adb (doesn’t need full Android SDK).

#Needed tools
sudo apt-get install zlib1g-dev libssl-dev git make gcc

#Download source code (this is currently the newest branch, in future it might still work without issues)
git clone -b android-5.0.2_r1 https://android.googlesource.com/platform/system/core
cd core/adb

#Create Makefile
echo -e '
# standalone Makefile for adb
SRCS+= adb.c
SRCS+= fdevent.c
SRCS+= adb_client.c
SRCS+= commandline.c
SRCS+= console.c
SRCS+= file_sync_client.c
SRCS+= get_my_path_linux.c
SRCS+= services.c
SRCS+= sockets.c
SRCS+= transport.c
SRCS+= transport_local.c
SRCS+= transport_usb.c
SRCS+= usb_linux.c
SRCS+= usb_vendors.c
SRCS+= adb_auth_host.c

VPATH+= ../libcutils
SRCS+= socket_inaddr_any_server.c
SRCS+= socket_local_client.c
SRCS+= socket_local_server.c
SRCS+= socket_loopback_client.c
SRCS+= socket_loopback_server.c
SRCS+= socket_network_client.c
SRCS+= load_file.c

VPATH+= ../libzipfile
SRCS+= centraldir.c
SRCS+= zipfile.c

CPPFLAGS+= -DADB_HOST=1
CPPFLAGS+= -DHAVE_FORKEXEC=1
CPPFLAGS+= -DHAVE_SYMLINKS
CPPFLAGS+= -DHAVE_TERMIO_H
CPPFLAGS+= -DHAVE_SYS_SOCKET_H
CPPFLAGS+= -DHAVE_OFF64_T
CPPFLAGS+= -D_GNU_SOURCE
CPPFLAGS+= -D_XOPEN_SOURCE
CPPFLAGS+= -I.
CPPFLAGS+= -I../include

LIBS= -lcrypto -lpthread -lrt -lz
CC= gcc
LD= gcc

OBJS= $(SRCS:.c=.o)

all: adb

adb: $(OBJS)
\t$(LD) -o $@ $(LDFLAGS) $(OBJS) $(LIBS)

clean:
\trm -rf $(OBJS) adb
' > standalone_Makefile

#Compile
make -f standalone_Makefile

#Profit
./adb sideload foobar

Adb can be tested without device connected, and with dummy filename. Error message should be then:

* cannot read 'foobar' *

Credits

Makefile starting point: http://android.serverbox.ch/?p=1217

More to read

Adb sideload feature is added:

commit 447f061da19fe46bae35f1cdd93eeb16bc225463
Author: Doug Zongker
Date: Mon Jan 9 14:54:53 2012 -0800</code>

add "adb sideload" and sideload connection state

Recovery will soon support a minimal implementation of adbd which will
do nothing but accept downloads from the "adb sideload" command and
install them. This is the client side command (mostly resurrected out
of the old circa-2007 "adb recover" command) and the new connection
state.

Change-Id: I4f67b63f1b3b38d28c285d1278d46782679762a2

But it is still not documented: https://code.google.com/p/android/issues/detail?id=158394


by Aapo Rantalainen at March 04, 2015 05:21 PM

February 23, 2015

Niklas Laxström

IWCLUL 2/3: morphology, OCR, a corpus vs. Wiktionary

More on IWCLUL: now on the sessions. The first session of the day was by the invited speaker Kimmo Koskenniemi. He is applying his two-level formalism in a new area, old literary Finnish (example of old literary Finnish). By using two-level rules for old written Finnish together with OMorFi, he is able to automatically convert old text to standard Finnish dictionary forms, which can be used, in the main example, as an input text to an search engine. He uses weighted transducers to rank the most likely equivalent modern day words. For example the contemporary spelling of wijsautta is viisautta, which is an inflected form of the noun viisaus (wisdom). He only takes the dictionary forms, because otherwise there are too many unrelated suggestions. This avoids the usual problems of too many unrelated morphological analyses: I had the same problen in my master’s thesis when I attempted using OMorFi to improve Wikimedia’s search system, which was still using Lucene at that time.

Jeremy Bradley gave presentation about an online Mari corpus. Their goal was to make a modern English-language textbook for Mari, for people who do not have access to native speakers. I was happy to see they used a free/copyleft Creative Commons license. I asked him whether they considered Wiktionary. He told me he had discussed with a person from Wiktionary who was against an import. I will be reaching my contacts and see whether an another attempt will succeed. The automatic transliteration between Latin, Cyrillic and IPA was nice, as I have been entertaining the idea of doing transliteration from Swedish to Finnish for WikiTalk, to make it able to function in Swedish as well by only using Finnish speech components. One point sticks with me: they had to add information about verb complements themselves, as they were not recorded in their sources. I can sympathize with them based on my own language learning experiences.

Stig-Arne Grönroos’ presentation on Low-resource active learning of North Sámi morphological segmentation did not contain any surprises for me after having been exposed to this topic previously. All efforts to support languages where we have to cope with limited resources are welcome and needed. Intermediate results are better than working with nothing while waiting for a full morphological analyser, for example. It is not completely obvious to me how this tool can be used in other language technology applications, so I will be happy to see an example.

Miikka Silfverberg presented about OCR, using OMorFi: can morphological analyzers improve the quality of optical character recognition? To summarize heavily, OCR performed worse when OMorFi was used, compared to just taking the top N most common words from Wikipedia. I understood this is not exactly the same problem of large number of readings generated by morphological analyser, rather something different but related.

by Niklas Laxström at February 23, 2015 12:25 PM

February 12, 2015

Ubuntu-blogi

Uusia Ubuntu-tuotteita: Dell-tehokannettava ja Bq-puhelin

Uusia Ubuntu-tuotteita on nyt saatavilla myös Suomessa.

Dell Precision M3800 Developer Edition

M3800Markkinoiden ohuimman ja kevyimmän 15 tuuman tehokannettavan, Precision M3800 -työaseman uusia ominaisuuksia ovat muun muassa 4K Ultra HD  -kosketusnäyttö, Thunderbolt 2 -teknologia ja Ubuntu-pohjainen versio ohjelmistokehittäjille.

Thunderbolt 2 -portti mahdollistaa 20 Gbps:n datasiirtonopeuden ja tukee korkean resoluution ja suorituskyvyn näyttöjä ja muita laitteita. Lisäksi Dell on lisännyt M3800-tehokannettavaan tallennusvaihtoehtoja ja nostanut saatavilla olevan sisäisen levyaseman kokoa 2 teratavuun. Kannettavan paksuus on noin 18 mm ja painoa on noin 1,88 kg. Kannettava sisältää Intel Core i7 -neliydinsuorittimen, NVIDIA Quadro K1100M -näytönohjaimen ja keskusmuistia 16 Gt.

Precision M3800 -kannettava on saatavilla Ubuntu-, Windows 7 -ja Windows 8.1 -käyttöjärjestelmillä. Dell tarjoaa ensimmäisen kerran Precision M3800 -kannettavasta Ubuntu-pohjaisen kehittäjäversion. Ubuntu-kehittäjäversio on tilattavissa suoraan Dell Suomen puhelinpalvelusta (yritykset) tai tilaamalla Dell-jälleenmyyjiltä (myös kuluttajat, toimitukset alkavat maaliskuussa) kautta maan.

Seuraavaksi odotellaan tietoja Dell XPS 13 Developer Editionin uusimmasta versiosta, jonka ei pitäisi tulla kovin paljon M3800:aa perässä. Odotettavissa on markkinoiden paras Ultrabook virallisella Ubuntu-tuella.

Maailman ensimmäinen Ubuntu-puhelin: Bq Aquaris E4.5 Ubuntu Edition

bqBq Aquaris E4.5 Ubuntu Edition on maailman ensimmäinen Ubuntu-puhelin, ja saatavilla nyt rajoitetusti Euroopassa. Ubuntu-puhelimissa käytetään Ubuntun uutta Unity 8 -käyttöliittymää ja sen erityisesti näkymiin (scopes) pohjautuvaa käyttötapaa. Perinteisistä sovelluksista mukana on muun muassa Telegram, HERE-kartat, Cut the Rope sekä Facebook- ja Twitter-websovellukset. Työpöytä-Ubuntun tapaan Ubuntu-puhelimetkin ovat markkinoiden vahvimmin avointa lähdekoodia käyttäviä massamarkkinatuotteita, joten myös kehittäjät pääsevät mukaan kaikilla tasoilla sovelluskehityksen lisäksi.

Myynti on alkanut eilen tapahtuneella pikamyyntitapahtumalla (Flash Sale). Myyntiin liittyi aluksi suuria teknisiä ongelmia, eikä Suomi ollut aluksi maissa joihin toimitetaan. Iltapäiväksi luvattiin uusi erä – tällä kertaa Suomi oli jo mukana, ja tekniset ongelmat olivat poissa, mutta myyntierä loppui jo 4 minuutissa. Suurin osa kiinnostuneista jäi ilman, mikä aiheutti harmitusta ympäri nettiä. Myyntitapahtuman ei kaiken kaikkiaan voi sanoa menneen aivan putkeen. Seuraava myyntierä lienee ensi viikolla, mistä tiedotetaan Bq:n ja Ubuntun Twitter-tileillä. Bq ilmoitti jälkikäteen saaneensa yli 12 000 tilausta minuutissa.

Bq:n saatavuudesta muuten kuin pikamyynnein ei ole vielä tarkkaa tietoa. Operaattorikumppaneiksi on tässä vaiheessa ilmoitettu 3 Sweden, amena.com (Espanja), giffgaff (Iso-Britannia) ja Portugal Telecom, ja näistäkään ei tiedetä juuri muuta kuin nimet.

Keskustelua Bq:sta yms. muun muassa Ubuntu Suomen keskustelualueiden uudella mobiililaitteet-alueella.

Puhelinpuolella seuraavaksi odotellaan Meizu-valmistajaa, jonka huhutaan esittelevän Ubuntu-puhelintaan MWC-messuilla maaliskuun alussa.

by Timo Jyrinki at February 12, 2015 01:27 PM

January 12, 2015

Henri Bergius

Nemein has a new home

When I flew to Tenerife to sail across the Atlantic in late November, there was excitement in the air. Nemein — the software company I started in 2001 with Henri Hovi and Johannes Hentunen, and left later to build an AI-driven web publishing tool — was about to be sold.

Today, I'm happy to tell that Nemein has been acquired by Anders Innovations, a fast-growing software company.

Nemein joins Anders Innovations

I had a videoconference this morning with Nemein's and Anders Inno's CEOs Lauri and Tomi, and it seems the team Nemein has indeed found a good home.

Lauri and Tomi

Technologically, the companies are a good fit. Both companies have a strong emphasis on building business systems on top of the Django framework. To this mix, Nemein will also bring its long background with Midgard CMS and mobile ecosystems like MeeGo and its successor, Sailfish.

I wish the whole team at Anders Innovation the best, and hope they will be able to continue functioning as a champion of the decoupled content management idea.

Nemein has also been a valuable contributor to the Flowhub ecosystem, which I hope will continue.

For those interested in the background of Nemein, I wrote a longish story of the company's first ten years back in 2011. I also promise to write about The Grid soon!

by Henri Bergius (henri.bergius@iki.fi) at January 12, 2015 12:00 AM

December 31, 2014

Riku Voipio

Crowdfunding better GCompris graphics

GCompris is the most established open source kids educational game. Here we practice use of mouse with an Efika smartbook. In this subgame, mouse is moved around to uncover a image behind.

While GCompris is nice, it needs nice graphics badly. Now the GCompris authors are running a indiegogo crowfund exactly for that - to get new unified graphics.

Why should you fund? Apart from the "I want to be nice for any oss project", I see a couple of reasons specific for this crowdfund.

First, to show kids that apps can be changed! Instead of just using existing iPad apps as a consumer, Gcompris allows you to show kids how games are built and modified. With the new graphics, more kids will play longer, and eventually some will ask if something can be changed/added..

Second, GCompris has recently become QT/QML based, making it more portable than before. Wouldn't you like to see it in your Jolla tablet or a future Ubuntu phone? The crowfund doesn't promise to make new ports, but if you are eager to show your friends nice looking apps on your platform, this probably one of the easiest ways to help them happen.

Finally, as a nice way to say happy new year 2015 :)

by Riku Voipio (noreply@blogger.com) at December 31, 2014 09:29 PM

December 23, 2014

Ubuntu-blogi

Ensimmäinen Ubuntu-puhelin myyntiin helmikuussa

image-phone-overviewEspanjalainen Bq tuo ensimmäisen Ubuntu-puhelimen myyntiin helmikuussa Euroopassa. Tarkempia maatietoja ei ole vielä julkistettu, ja virallinen lanseeraus on vasta myöhemmin.

Jussi Kekkonen (Tm T) on yksi “sisäpiiriin” kutsutuista Ubuntu-yhteisön jäsenistä, ja hän on kirjoittanut ensitietojaan Google+:n Ubuntu Suomi -yhteisöön (suora linkki viestiin). Lisätietoja kuulemme varmasti sekä kutsutuille järjestettävästä Lontoon tilaisuudesta sekä toki virallisten tietojen ilmaantuessa.

Päivitys: Ubuntu Suomen keskustelualueille on nyt avattu uusi alue Ubuntu mobiililaitteilla – tervetuloa keskustelemaan joko yhteisöversioista tai kaupan hyllyltä löytyvistä tulevista puhelimista!

by Timo Jyrinki at December 23, 2014 09:03 PM

November 07, 2014

Riku Voipio

Adventures in setting up local lava service

Linaro uses LAVA as a tool to test variety of devices. So far I had not installed it myself, mostly due to assuming it to be enermously complex to set up. But thanks to Neil Williams work on packaging, installation has got a lot easier. Follow the Official Install Doc and Official install to debian Doc, roughly looking like:

1. Install Jessie into kvm


kvm -m 2048 -drive file=lava2.img,if=virtio -cdrom debian-testing-amd64-netinst.iso
2. Install lava-server

apt-get update; apt-get install -y postgresql nfs-kernel-server apache2
apt-get install lava-server
# answer debconf questions
a2dissite 000-default && a2ensite lava-server.conf
service apache2 reload
lava-server manage createsuperuser --username default --email=foo.bar@example.com
$EDITOR /etc/lava-dispatcher/lava-dispatcher.conf # make sure LAVA_SERVER_IP is right
That's the generic setup. Now you can point your browser to the IP address of the kvm machine, and log in with the default user and the password you made.

3 ... 1000 Each LAVA instance is site customized for the boards, network, serial ports, etc. In this example, I now add a single arndale board.


cp /usr/lib/python2.7/dist-packages/lava_dispatcher/default-config/lava-dispatcher/device-types/arndale.conf /etc/lava-dispatcher/device-types/
sudo /usr/share/lava-server/add_device.py -s arndale arndale-01 -t 7001
This generates us a almost usable config for the arndale. For site specifics I have usb-to-serial. Outside kvm, I provide access to serial ports using the following ser2net config:

7001:telnet:0:/dev/ttyUSB0:115200 8DATABITS NONE 1STOPBIT
7002:telnet:0:/dev/ttyUSB1:115200 8DATABITS NONE 1STOPBIT
TODO: make ser2net not run as root and ensure usb2serial devices always get same name..

For automatic power reset, I wanted something cheap, yet something that wouldn't require much soldering (I'm not a real embedded engineer.. I prefer software side ;) . Discussed with Hector, who hinted about prebuilt relay boxes. Chose one from Ebay, a kmtronic 8-port USB Relay. So now I have this cute boxed nonsense hack.

The USB relay is driven with a short script, hard-reset-1


stty -F /dev/ttyACM0 9600
echo -e '\xFF\x01\x00' > /dev/ttyACM0
sleep 1
echo -e '\xFF\x01\x01' > /dev/ttyACM0
Sidenote: If you don't have or want automated power relay for lava, you can always replace this this script with something along "mpg123 puny_human_press_the_power_button_now.mp3"

Both the serial port and reset script are on server with dns name aimless. So we take the /etc/lava-dispatcher/devices/arndale-01.conf that add_device.py created and make it look like:


device_type = arndale
hostname = arndale-01
connection_command = telnet aimless 7001
hard_reset_command = slogin lava@aimless -i /etc/lava-dispatcher/id_rsa /home/lava/hard-reset-1
Since in my case I'm only going to test with tftp/nfs boot, the arndale board needs only to be setup to have a u-boot bootloader ready on power-on.

Now everything is ready for a test job. I have a locally built kernel and device tree, and I export the directory using the httpd available by default in debian.. Python!


cd out/
python -m SimpleHTTPServer
Go to the lava web server, select api->tokens and create a new token. Next we add the token and use it to submit a job

$ sudo apt-get install lava-tool
$ lava-tool auth-add http://default@lava-server/RPC2/
$ lava-tool submit-job http://default@lava-server/RPC2/ lava_test.json
submitted as job id: 1
$
The first job should now be visible in the lava web frontend, in the scheduler -> jobs part. If everything goes fine, the relay will click in a moment and the job will finish in a few minutes.

by Riku Voipio (noreply@blogger.com) at November 07, 2014 09:03 AM

November 01, 2014

Riku Voipio

Using networkd for kvm tap networking

Setting up basic systemd-network was recently described by Joachim, and the post inspired me to try it as well. The twist is that in my case I need a bridge for my KVM with Lava server and arm/aarch64 qemu system emulators...

For background, qemu/kvm support a few ways to provide network to guests. The default is user networking, which requires no privileges, but is slow and based on ancient SLIRP code. The other common option is tap networking, which is fast, but complicated to set up. Turns out, with networkd and qemu bridge helper, tap is easy to set up.


$ for file in /etc/systemd/network/*; do echo $file; cat $file; done
/etc/systemd/network/eth.network
[Match]
Name=eth1
[Network]
Bridge=br0

/etc/systemd/network/kvm.netdev
[NetDev]
Name=br0
Kind=bridge

/etc/systemd/network/kvm.network
[Match]
Name=br0
[Network]
DHCP=yes

Diverging from Joachims simple example, we replaced "DHCP=yes" with "Bridge=br0". Then we proceed to define the bridge (in the kvm.netdev) and give it an ip via dhcp in kvm.network. From the kvm side, if you haven't used the bridge helper before, you need to give the helper permissions (setuid root or cap_net_admin) to create a tap device to attach on the bridge. The helper needs an configuration file to tell what bridge it may meddle with.

# cat > /etc/qemu/bridge.conf <<__END__
allow br0
__END__
# setcap cap_net_admin=ep /usr/lib/qemu/qemu-bridge-helper
Now we can start kvm with bridge networking as easily as with user networking:

$ kvm -m 2048 -drive file=jessie.img,if=virtio -net bridge -net nic,model=virtio -serial stdio
The manpages systemd.network(5) and systemd.netdev(5) do a great job explaining the files. Qemu/kvm networking docs are unfortunately not as detailed.

by Riku Voipio (noreply@blogger.com) at November 01, 2014 10:21 AM

October 07, 2014

Ubuntu-blogi

Ubuntu Suomen keskustelualueet poissa käytöstä

Päivitys 30.10.2014: Keskustelualueet takaisin käytössä, päivitettynä SMF 2.x:ään.
Päivitys 20.11.2014
: Keskustelujen jälkeen Canonical tukee tarvittaessa jatkossakin Ubuntu Suomen SMF 2.x -version ylläpitoa, joten keskustelualueiden tulevaisuus on turvattu riippumatta siirrytäänkö omalle palvelimelle.

Canonicalin ylläpito on havainnut tietomurron Ubuntu Suomen foorumilla ja sammuttanut palvelun turvatoimena. Tietomurron aiheutti mitä todennäköisimmin käytössä ollut vanhentunut sovellusversio. Ubuntu Suomen on ollut tarkoitus siirtyä toisen sovelluksen käyttöön jo ennen tietomurtoa, sillä ohjelmisto on tiedetty vanhentuneeksi eikä se ole ollut enää Canonicalin tukema.

Pyrimme saamaan uuden palvelun käyttöön mahdollisimman pian. Uudesta alustasta tai sen sijainnista ei ole vielä tietoa, mutta asiasta tiedotetaan heti kun mahdollista. Mahdollisten vanhojen foorumisisältöjen palauttamista tutkitaan (varmuuskopiot löytyvät, lähinnä kyse mihin ja missä muodossa ne laitetaan).

Toistaiseksi suosittelemme käyttämään Ubuntu Suomen Google+-yhteisöä (ks. myös profiilisivuFacebook-sivua tai IRC-kanavaa #ubuntu-fi Freenode-verkossa. Voit liittyä kanavalle selaimessa toimivalla asiakasohjelmalla osoitteessa https://kiwiirc.com/client/irc.ubuntu.com:+6697/#ubuntu-fi.

Lisäksi Linux.fi:n keskustelualueet ovat käytettävissä osoitteessa http://linux.fi/foorumi/.

Huomioi, että vaikka IRC-kanavalla näyttää olevan useampia ihmisiä paikalla, eivät kaikki heistä välttämättä lue kanavan keskustelua jatkuvasti. Vastauksen saaminen voi kestää pitkäänkin ja toivomme että jaksat odottaa vastausta, jotta ehdimme saada tilaisuuden auttaa sinua. Maltti on valttia!

Emme tiedä mitä tietoja keskustelualueilta on vuotanut, jos mitään, mutta käyttäjiltä piilotetuista tiedoista mm. sähköpostiosoitteet ja suolatut salasanojen tiivisteet ovat voineet vuotaa. Jos olet käyttänyt samaa salasanaa jossain muussa palvelussa, suosittelemme vaihtamaan sen.

by Tm_T at October 07, 2014 07:30 PM

September 16, 2014

Henri Bergius

Flowhub Kickstarter delivery

It is now a year since our NoFlo Development Environment Kickstarter got funded. Since then our team together with several open source contributors has been busy building the best possible user interface for Flow-Based Programming.

When we set out on this crazy adventure, we still mostly had only NoFlo and JavaScript in mind. But there is nothing inherently language-specific in FBP or our UI, and so when people started making other runtimes compatible with the protocol we embraced the idea of full-stack flow-based programming.

Here is how the runtime registration screen looks with the latest release:

Flowhub Runtime Registration

This hopefully highlights a bit of the possibilities of what can be done with Flowhub right now. I know there are several other runtimes that are not yet listed there. We should have something interesting to announce in that space soon!

Live mode

The Flowhub release made today includes several interesting features apart from giving private repository access to our Kickstarter backers. One I'm especially happy about is what we call live mode.

The live mode, initially built by Lionel Landwerlin, enables Flowhub to discover and connect to running pieces of Flow-Based software running in different environments. With it you can monitor, debug, and modify applications without having to restart them!

We made a short demo video of this in action with Flowhub, Raspberry Pi and an NFC tag.

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

Getting started

Our backers should receive an email today with instructions on how to activate their Flowhub plans. For those who missed the Kickstarter, there should be another batch of Flowhub pre-orders available soon.

Just like with Travis and GitHub, Flowhub is free for open source development. So, everybody should be able to start using it immediately even without a plan.

If you have any questions about Flow-Based Programming or how to use Flowhub, please check out the various ways to get in touch on the NoFlo support page.

Kickstarter Backer badge

by Henri Bergius (henri.bergius@iki.fi) at September 16, 2014 12:00 AM

May 07, 2014

Henri Bergius

Flowhub public beta: a better interface for Flow-Based Programming

Today I'm happy to announce the public beta of the Flowhub interface for Flow-Based Programming. This is the latest step in the adventure that started with some UI sketching early last year, went through our successful Kickstarter — and now — thanks to our 1 205 backers, it is available to the public.

Getting Started

This post will go into more detail on how the new Flowhub interface works in a bit, but for those who want to dive straight in, here are the relevant links:

Make sure to read the Getting Started guides and check out the Flowhub FAQ. There is also a new video available:

<iframe allowfullscreen="allowfullscreen" frameborder="0" height="360" src="http://www.youtube.com/embed/8Dos61_6sss" width="640"></iframe>

Both the web version and the Chrome app are built following the offline first philosophy, and keep everything you need stored locally inside your browser. The Chrome app and the upcoming iOS and Android builds will enable us to later introduce capabilities that are not possible inside regular browsers, like talking directly to MicroFlo runtimes over USB or Bluetooth. But other than that they're similar in features and user experience.

New User Interface

If you read the NoFlo Update from last October, you might notice that the new Flowhub user interface looks and feels quite different from it. Main screen of new Flowhub UI

Graph editing in new Flowhub UI

This new design was implemented to improve touch-screen friendliness, as well as to give Flowhub a more focused, unique look. It also allowed us to follow some interesting UX paths that I'll explain next.

Zooming

One typical problem in visual programming tools is that they can become quite cluttered with information. To solve this, we utilized the concept of Zooming User Interfaces, which allow us to show a clear overview of a program when zoomed out, and reveal all kinds of detail about it when zoomed in.

Zoomed out

Zoomed in

Zooming works with two-finger scroll on typical desktop computers, or with the pinch gesture on touch-enabled devices.

Pie Menu

Another interface concept that we used to make interactions faster and more contextual is Pie Menus.

For example, you can easily navigate to subgraphs and component source code with the menu:

Navigating with the Pie Menu

When you have selected multiple nodes, you can use the menu to group them or move them to a new subgraph:

Group selections with the Pie Menu

The menu can also be used for removing edges or nodes:

Deleting an edge with the Pie Menu

You can activate the pie menu in the graph editor with a right mouse click, or with a long press on touch-enabled devices.

Component Editor

Another new major feature is in-app component editing. If your runtime supports it, you can at any time create or modify custom components for your project and they'll become immediately available for your graphs.

Creating a new component

Component Editing

The programming languages available for component creation depend on the runtime. With NoFlo these are JavaScript and CoffeeScript. With another runtime they might be C, Java, or Python.

Offline First

While some claim that in reality you're never offline, the reality is that there are many situations where Internet connectivity is either not available, unreliable, or simply expensive. Think of a typical conference or a hackathon for instance.

Because of this — and to give software developers the privacy they deserve — Flowhub has been designed to work "offline first". All your graphs, projects, and custom components are stored locally in your browser's Indexed Database and only transmitted over the network when you wish to push to a GitHub project, or interact with a remote runtime.

We're following a very similar UI concept as Amazon Kindle in that you can download projects locally to your device, or browse the ones you have available in the cloud:

Local and remote projects

At any point you can push your changes to a graph or a component to GitHub:

Pushing to GitHub

Runtime discovery happens through a central service, but once you know the address of your FBP runtime, the communications between it and your browser will happen directly. This makes it easy to work with Node.js projects running on your own machine even when offline.

Cross-platform, Full-stack

When we launched the NoFlo UI Kickstarter, we were initially only thinking about how to support NoFlo in different environments. But in the course of development we ended up defining a network protocol for FBP that enabled us to move past just a single FBP environment and towards supporting all of them. This is what prompted the Flowhub rebranding.

Since then, the number of supported FBP environments has been growing. Here is a list of the ones I'm aware of:

I hope that the developers of other FBP environments like JavaFBP and GoFlow add support for the FBP protocol soon so that they can also utilize the Flowhub interface.

Open Source vs. Paid

As promised in our Kickstarter, the NoFlo Development Environment is an open source project available under the MIT license.

Flowhub is a branded and supported instance of that with some additional network services like the Runtime Registry.

NoFlo UI vs. Flowhub

The Flowhub plans allow us to continue development of this Flow-Based Programming toolset, as well as to provide the various network services needed for making the experience smooth.

Just like with GitHub, Flowhub provides a free environment for anybody working on public and open source projects. Private projects need a paid plan.

Kickstarter & Pre-Ordered Plans

It is likely that many readers of this post already supported our Kickstarter or pre-ordered a Flowhub plan. Since Flowhub is still in beta, we haven't activated your plans yet. So for now, everybody is using Flowhub with the free plan.

We will be rolling out the paid plans and Kickstarter rewards towards the end of the beta testing period.

Feel free to already log in and start using Flowhub, however! The plan will be added to your account when we feel the software is ready for it.

Examples

Here are some examples of things you can build with Flowhub targeting web browsers:

For a more comprehensive cross-platform project, see my Building an Ingress Table with Flowhub post.

There is also an ongoing Google Summer of Code project to port various Meemoo apps to Flowhub. This will hopefully result in a lot more demos.

Next Steps

The main purpose of this public beta is to allow our backers and other FBP enthusiasts an early access to the Flowhub user interface. Now we will focus on stabilization and bug fixing, aided by the NoFlo UI issue tracker. We're also gathering feedback from beta testers in form of user surveys and will utilize those to prioritize both bug fixing and feature work.

Flowhub team testing the UI

Right now the main areas of focus are:

We hope to release the stable version of Flowhub in summer 2014.

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

May 02, 2014

Henri Bergius

Flowhub and the GNOME Developer Experience

I've spent the last three days in the GNOME Developer Experience hackfest working on the NoFlo runtime for GNOME with Lionel Landwerlin.

GNOME Developer Experience hackfest participants

What the resulting project does is give the ability to build and debug GNOME applications in a visual way with the Flowhub user interface. You can interact with large parts of the GNOME API using either automatically generated components, or hand-built ones. And while your software is running, you can see all the data passing through the connections in the Flowhub UI.

GNOME development in Flowhub

The way this works is the following:

  • You install and run the noflo-gnome runtime
  • The runtime loads all installed NoFlo components and dynamically registers additional ones based on GObject Introspection
  • The runtime pings Flowhub's runtime registry to notify the user that it is available
  • Based on the registry, the runtime becomes available in the UI
  • After this, the UI can start communicating the with runtime. This includes loading and registering components, and creating and running NoFlo graphs
  • The graphs are run inside Gjs

Creating a new NoFlo GNOME project

While there is still quite a bit of work to be done in exposing more of the GNOME API as flow-based components, you can already do quite a bit with this. In addition to building simple UIs with GTK+, working with Clutter animations was especially fun. With NoFlo, every running graph is "live", and so you can easily modify the various parameters and add new functionality while the software is running, and see those changes take effect immediately.

Here is a quick video of building a simple GTK application that loads a Glade user interface definition, runs it as a new desktop window, and does some signal handling:

<iframe allowfullscreen="allowfullscreen" frameborder="0" height="360" src="http://www.youtube.com/embed/uyuoP3sjI6g" width="480"></iframe>

If you're interested in visual, flow-based programming on the Linux desktop, feel free to try out the noflo-gnome project!

There are still bugs to squish, documentation to write, and more APIs to wrap as components. All help in those is more than welcome.

by Henri Bergius (henri.bergius@iki.fi) at May 02, 2014 12:00 AM

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

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 12: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

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

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

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 Miia Ranta (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

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 Miia Ranta (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 Miia Ranta (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 Miia Ranta (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

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

June 14, 2010

Miia Ranta

California Dreamin’, release 1.2.1 (LCS2010, MeeGo workshop videos)

As promised earlier, I’ve now published four of the sessions from Linux Collaboration Summit 2010 which was held in San Francisco in April. They’re viewable in blip.tv, and I’ve decided to follow the licensing Linux Foundation itself has for the videos of the previous day, so the videos are licensed in CreativeCommons Attribution. I managed to burn a lot of time to edit the videos, but I guess in the end they’re fairly good. The sound quality isn’t magnificent, but most of the time you can tell what is actually said… I’ve not yet uploaded the MeeGo question hour or the panel, because I’m not still quite convinced that the sound quality is good enough. If you want them on blip.tv, please leave a comment.

Quim Gil - A Working Day in MeeGo project

Without further ado, here are the episodes so far:

<3 <3

by Miia Ranta (Myrtti) at June 14, 2010 09:49 PM