Planet Fellowship (gmq)

Sunday, 02 September 2012

blog.padowi.se » Swedish: 2012w35

Planet Fellowship (sv) | 10:35, Sunday, 02 September 2012

I’ll try to keep this post short, only the most significant discoveries from this week:

git add –patch

This is the biggest revelation I’ve made in quite some time.

What it will do for me is to give me a chance to select “(c)hunks” of modified code inside a file, which I want to add to the coming commit.

If I were more disciplined while programming, that shouldn’t be necessary, but I hack on a new feature, notice a typo in another part of the code, fix the typo and continue hacking.

And then, should I just do a git add <file> the commit message would either need to be “hacked on feature and fixed typo” (ugly) or… I guess I could omit mentioning the typo fix in the commit message…

But with --patch I can now split these two unrelated changes into different commits and have a clean commit history. Awesomeness ensues!

business.txt

Just like the proposal a couple of months ago about a freedom.txt (aw crap, I just remembered I haven’t done anything with that yet…) there is now a new idea, more engineered towards businesses, aptly called business.txt, and I find myself liking that idea pretty much.

:wq

Sunday, 13 November 2011

Rejås Blog: FSCONS 2011

Planet Fellowship (sv) | 11:03, Sunday, 13 November 2011

Nu sitter jag på tåget mot Stockholm igen. FSCONS 2011 i Göteborg var som vanligt en succé. Alla som jobbar med konferensen gör ett fantastiskt jobb. På grund av att jag är sjuk (som vanligt nästan) så var jag bara med igår (lördag) men då var jag med hela dagen och såg flera intressanta föredrag och minglade med massor av drivna människor. Jag har hittills inte missat en enda FSCONS och många av ansiktena är bekanta och återkommer varje år. Det är flera personer jag bara träffar på FSCONS och det är kul att notera att vi fortsätter våra konversationer ungefär där de slutade året innan :-) .

En intressant session var Richard Stallman som intervjuades av Laura Chreighton. Jag har hört Richard flera gånger, både inspelat och ”live”. Det tenderar att bli samma sak om och om igen, men denna gången var det lite annorlunda även om det var mycket man kände igen. Extra kul var det att höra honom berätta om tiden på MIT som jag tidigare läst om i en sen upplaga av Steven Levys bok ”Hackers”.

Synd att jag inte mådde så bra, konferensen var som sagt lika bra som den alltid varit! Vi ses igen nästa år :-)

Monday, 10 October 2011

Rejås Blog: Dyra datorer i skolan

Planet Fellowship (sv) | 06:56, Monday, 10 October 2011

Snubblade över en artikel i lokaltidningen från mina barndoms hemtrakter uppe i Hälsingland. Artikeln handlar om hur datorerna i skolan i min hemkommun Söderhamn kostar 11 853 kr per dator på tre år medan motsvarande kostnad för en dator i skolan i grannkommunen Hudiksvall kostar ca 6000. Det är nästan hälften av kostnaden per dator.

Söderhamn leasar sina datorer medan man i Hudiksvall köper dem och utrustar dem med fri programvara.

Läs gärna artikeln.

Thursday, 22 September 2011

Rejås Blog: Skrivarbryderier

Planet Fellowship (sv) | 10:01, Thursday, 22 September 2011

Jag har varit Windows-befriad till 100% sedan 1998 och fram tills för cirka ett år sedan. Nu har vi två installationer av Windows. När jag köpte en ny laptop för ett tag sedan var det Windows med på den och i ett projekt på jobbet var vi tvungen att köpa in en maskin med windows för att kunna testa en produkt vi utvecklar. Installationen på min laptop har fått vara kvar, men den bootas aldrig. Den på kontoret använder vi ibland och det är på denna som jag nu skriver.

På kontoret har vi så klart en skrivare. Idag fick jag för mig att jag skulle installera den i Windows. På våra vanliga arbetsstationer som kör Debian och Ubuntu väljer man Skrivare -> Lägg till och klickar några gånger på Nästa så fungerar det sedan. Vi har installerat den på alla laptops och fasta maskiner och har aldrig haft problem. Nu skulle jag göra det i Windows. Jag kan erkänna att jag inte är van men lyckades hitta skrivaren och valde att installera den. Perfekt, jättelätt. Men det gick ju inte att skriva ut på den så klart …

Klickar igenom en giude och ser att det inte installerats någon drivrutin. Lyckas sedan hitta den på webben. Med alla klockor och visselpipor vägde den in på 320MB(!). Det tog 15 minuter att installera den. Men efter det så fungerade det att skriva ut i alla fall. Jag brukar alltid skriva ut dubbelsidigt. Det sparar papper och därmed miljön, dessutom blir det snyggt när man binder ihop det.

HP:s drivrutin i Windows är inte direkt solklar ...

I GNOME är det enklare tycker i alla fall jag :-)

Jag skulle nu skriva ut en PDF från Windows. Jag har redan insett att det skulle gått snabbare att flytta filen till min vanliga dator och skriva ut den därifrån men nu börjar jag bli vrång. Jag klickar på skriva ut och väljer den nya skrivaren. So far so good. Men när jag skall ändra inställningarna för dubbelsidig utskrift blir jag minst sagt brydd. Som man kan lista ut kan man vända baksidan upp-och-ned eller inte beroende på hur man skall binda ihop utskriften. På min vanliga dator är alternativen ”Lång kant” eller ”Kort kant” och hänvisar till om man skall vända blad runt den korta eller långa sidan på papperet. Lätt som en plätt. Normalt vänder man över den långa kanten om man skriver ut i landskap (det vill säga åt vänster). I den dialog jag får upp med min skrivare kan jag också välja två alternativ för dubbelsidigt, men de är inte helt enkla att förstå. Alternativen är ”Ja, vänd sidor uppåt” eller ”Ja, vänd sidor nedåt”. Hmmm, ovasett vilket så borde väl baksidan hamna upp-och-ned?

Varje gång jag sitter vid en Windows-maskin måste jag trassla en massa. Det är sant, det är en väldig massa krångel. Jag tänker alltid att; ”Det kan inte vara så illa för andra, annars skulle ingen kunna jobba i detta”! Eller är det bara jag som är dum?

Kan någon tala om för mig vilket alternativ jag skall välja om jag vill sätta in det jag skriver ut i en vanlig pärm och vända som en vanlig bok (längs den långa kanten i Gnomes dialog)? Motivera gärna ditt svar ;-)

Sunday, 14 August 2011

Rejås Blog: Första båtköpet avklarat

Planet Fellowship (sv) | 18:31, Sunday, 14 August 2011

Vilma och jag i lillbåten

Vilma och jag i lillbåten

Vi håller för fullt på att köpa en snipa som vi skall puttra runt med på sommaren. Detta köp kommer det säkert att skrivas mer om här sedan när det är helt klart.

När jag och min lillasyster Sigrid var små hade vi en liten båt med en tvåhästars liten motor på som vi åkte runt med på sjön där vi hade sommarställe i Losjö straxt norr om Söderhamn i Hälsningland. Vi åkte mellan öarna och hade kojor runt hela sjön. Nu var vi nog lite äldre än vad våra barn är nu, men i alla fall.

Vi har ingen sommarstuga så som vi hade när jag var barn, men vi har en pool och en väldigt mysig utomhusdel i trädgården som jag bara kunde drömma om när jag var liten :-) . Så istället för för sommarstuga skall vi nu ut på sjön. Innan barnen fanns var jag och Jenny ute och seglade ganska mycket och vi längtar tillbaka till sjön. Nu trodde vi nog inte när vi seglade att vi någonsin skulle skaffa en motorbåt, men nu är det väldigt nära. Eller visst ja, vi hade en liten snabbgående motorbåt som vi nu sålt men den använde vi så lite att den knappt räknas :-) .

Men nu skall vi snart bli med en motorbåt som är så pass stor att man inte behöver skämmas för att man har en jolle efter. Jollen införskaffade vi idag och var ute och tog en sväng. Den är inte stor men faktiskt får hela familjen plats om det kniper. Men det jag ser framför mig är hur jag och Jenny sitter i den stora boken med en varsin bok och något gott att dricka medan barnen åker runt i viken och stör våra båtgrannar :-) .

Albin lyckades både starta motorn och köra den själv idag medan jag satt med i båten. Fantastiskt vad man kan se sig själv i sina barn ibland. Jag minns känslan när jag och Sigrid åkte runt i vår lilla båt i Losjö. Det var härliga tider det!

Monday, 27 June 2011

Rejås Blog: En vanlig dag på kontoret …

Planet Fellowship (sv) | 13:35, Monday, 27 June 2011

En arbetsdag i trädgården

Trädgårdsarbete

Sommar och sol. Andra har börjat sin semester men inte jag. Jag jobbar på ett tag till. Jag kommer att jobba lite till och från i sommar då det förmodligen gör mig mest avkopplad. Visst vore det skönt att lämna allt i fyra,fem veckor men då vore jag nog ett vrak när jag kom tillbaka. Lite skall jag släppa när vi skall ut och fara, men är vi hemma så jobbar jag lite när det passar. I praktiken innebär det att jag åker till kontoret vid sex på morgonen (jodå, det går) och sedan åker jag hem vid lunch och äter med familjen. Är det sedan bra väder så jobbar jag hemma alternativt på kvällen.

Idag är det bra väder. Det betyder att jag äter hemma och sedan jobbar hemifrån. Just nu sitter jag i soffan i trädgården och jobbar medan barnen plaskar i poolen. Otroligt skönt. Även om man är med effektiv på morgonen så funkar det och man kan både svara i telefonen, hänga med i mejltrafiken och vara aktiv när det krävs.

Jenny tog en bild på mig som jag laddar upp till allmän beskådning. Kanske ni som inte heller fått semester ännu blir lite avundsjuka …

Det jag saknar är en riktigt ljusstark skärm som man kan ha i solen. Någon som har ett bra tips på en laptop som man kan ha i solsken? Den enda jag känner till är OLPC men den vet jag inte riktigt om den känns relevant :-)

Friday, 17 June 2011

Losca: Betawikissä tuhannen euron porkkana

Planet Fellowship (fi) | 12:54, Friday, 17 June 2011

--- cut ---
Vuoden 2007 lopussa Siebrand asetti lokalisointitavoitteet MediaWikille.Tavoitteet olivat todella kunnianhimoisia. Näyttääkin siltä, että näihin ei päästä. Emme kuitenkaan aio luovuttaa ilman taistelua. Vielä on vajaa viikko aikaa saavuttaa nuo tavoitteet. Sinä voit auttaa saavuttamaan tavoitteet suomen kielen osalta.

Yhteistyössä Stichting Open Progressin kanssa pystymme tarjoamaan sinulle kannustusta. Tarjoamme 1000 euroa jaettuna kaikkien kääntäjien kesken, jotka ovat tehneet yli 500 uutta käännöstä MediaWikiin ja sen laajennuksiin vuoden loppuun mennessä.

Myös muut Betawikin projektit kaipaavat apua. Kiinnostaisiko sinua kääntää vaikkapa FreeCol-peliä tai Mantis-virheenseurantajärjestelmää. Ystävällinen ja yhteistyökykyinen ympäristö saattaa sinut vauhtiin sekä auttaa sinua kehittymään suomentajana parantamalla käännöksiä yhdessä.

Betawiki löytyy osoitteesta http://translatewiki.net.
--- cut ---
(lähde)

Katso myös http://lokalisointi.org/.

Losca: Pohjoismaista FLOSS-blogiyhteistyötä

Planet Fellowship (fi) | 12:52, Friday, 17 June 2011

Jos blogit.vapaasuomi.fi ei riitä, kannattaa harkita myös uutta pohjoismaista F{N}OSS-blogiyhteenliittymää: http://fnoss.org/planet/. Koskapa myös muut kirjoittavat sekä äidinkielellään että englanniksi, ei suomen kielikään haittaa.

Jeremiah Fosterin käynnistämä Planet onkin tervetullut lisäys, sillä en ainakaan itse tiedä kovinkaan paljon muiden Pohjoismaiden vapaisiin ohjelmistoihin liittyvistä asioista. Poikkeuksena ehkä Free Software Foundation Europen aktiivinen Ruotsi-osasto, joka on järjestänyt muun muassa FSCONS-tapahtuman.

Vastaavasti olen melko varma, että suomalaisten puuhista ei juurikaan Linusia enempää tiedetä, siitä huolimatta että täällähän tapahtuu vaikka mitä! COSS:lla on englanninkielinen sivusto, mutta noin muuten esimerkiksi vapaasuomi.fi tai eri jakeluiden sivustot jäänevät kielimuurin taakse. Kannattaakin välillä miettiä, miten kansainvälisiä yhteyksiä voisi parantaa. Kirjoitin vähän aikaa sitten FSFE:n wikiin Helsinki-sivua alkuun, tosin vain suomeksi :P Ja FSFE on nyt kuitenkin vain yksi järjestö monista.

Tuesday, 07 June 2011

Henri Bergius: Midgard Create and VIE in the Aloha Editor conference

Planet Fellowship (fi) | 00:53, Tuesday, 07 June 2011

The Aloha Editor Developer Conference is happening this week in Hacker Dojo, Mountain View. While some other events may steal a bit of focus from this one, there seems to be a good amount of energy here. The event opened with Haymo Meran's keynote on the state and roadmap of Aloha Editor. As part of this there was an interesting observation:

Aloha Editor has an impressive rate of adoption: Drupal, TYPO3, WordPress, Midgard and others are now in the process of integrating the editor. If all of these work out, Aloha Editor can reach an approximately 66% of the CMS market.

And since most of them will do this with my VIE library, this is also great news for Decoupled Content Management, RDFa and the goals of the IKS project.

bergie-alohadevcon.jpg

I also gave a talk on how we use Aloha Editor and VIE in Midgard Create. Both slides and video are available.

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" height="411" id="bplayer" width="480"><embed allowfullscreen="true" allowscriptaccess="always" height="411" name="bplayer" src="http://static.bambuser.com/r/player.swf?vid=1719639" type="application/x-shockwave-flash" width="480" wmode="opaque"></embed><param name="movie" value="http://static.bambuser.com/r/player.swf?vid=1719639"/><param name="allowfullscreen" value="true"/><param name="allowscriptaccess" value="always"/><param name="wmode" value="opaque"/></object>

Later this week there will be also an interesting BoF in SemTech about Structured Data in HTML that I will try to attend. After that it is time to fly home...

Photo by Nils Dehl.

Sunday, 05 June 2011

Henri Bergius: Understanding MeeGo

Planet Fellowship (fi) | 03:58, Sunday, 05 June 2011

Disclaimer: I'm a software developer with a background in Nokia's Maemo mobile Linux ecosystem. I've built both software and community services for it. As a Maemo enthusiast, I've also been following MeeGo with interest, and am helping to build some of the project infrastructure there as well. But I do not speak with the authority of the MeeGo project, and what is written below is my personal view into what MeeGo is.

After the recent San Francisco MeeGo Conference there has been surprisingly much negative reporting about MeeGo, mostly centered at Nokia's MeeGo story. While Nokia's strategy changes are unfortunate, much of the reporting around it appears to come from misunderstanding what MeeGo is about.

Many see MeeGo just as Android without Java, but it is much more, as I'll explain here.

Industrial Linux

MeeGo is much more than just handsets or tablets. It is an attempt at creating a standardized industrial Linux distribution that can be used anywhere from in-vehicle infotainment devices to TVs to, indeed, handsets.

It is a true open and collaborative environment, managed by Linux Foundation. The governance model is there to ensure that MeeGo stays a vendor-neutral platform that anybody can build their products on top.

Many device segments have very long development, and especially usage times. For this MeeGo has a predictable release schedule of a major release every six months, and a roadmap kept by the Technical Steering Group.

If MeeGo succeeds in this, you will be using it in your TV, in your car stereo, and at the back of an airline seat. But in most of these situations you won't be able to know that it is MeeGo. It is simply there to make building products faster and cheaper for the manufacturer.

Openness

As I argued in my earlier piece Open Source? Free Software? What we need is Open Projects, being an open platform is much more than just the licensing terms of the code. There needs to be transparency into the development process, a clear procedure on how to participate and much more. And of course licensing has to be such that the participants can actually use the results in whatever they're doing.

For this, most of MeeGo is licensed under permissive terms, like the GNU LGPL and BSD-style licenses.

But indeed, the other aspects of openness are more important. With MeeGo you can see every commit happening on Gitorious, and you can see the bugs and features being worked out in a public Bugzilla.

MeeGo as a project is still quite young, and many participants are still learning how to work in the open. This has lead to some issues in project transparency. But hopefully those are now getting resolved.

User Experience

MeeGo allows anyone to build their own user experience on top of the platform. Actually, this is expected of any serious manufacturer. Sure, there are some reference UXs available, including Tablet, Handset and Netbook, but none of these are quite product-ready, and are not necessarily even intended to be.

Because of this it is quite funny to see reviews of the reference UXs. They're not the ones most devices will run, though obviously some manufacturers or community members are going to use them anyway. A full MeeGo product will look and feel like something completely different.

This is not like Android manufacturers adding their own skins. With MeeGo anybody has the full freedom to build a complete user experience that suits their device, branding and other goals. The whole platform has been built to allow this sort of differentiation, without a risk of fragmenting the ecosystem. I'll explain the fragmentation question soon.

Actually, the freedom of defining your own user interface is big enough that both Android and WebOS could theoretically be rebased on top of MeeGo to be just different MeeGo UXs. Obviously they would need to allow running MeeGo-compliant Qt applications in addition to ones written for them directly, but that is minor detail. WebOS already ships Qt, so it isn't even that far from this. Similarly, KDE or GNOME could run as MeeGo UXs.

Compliance

At the core of MeeGo there is a set of compliance rules. Being Open Source, anybody can take MeeGo, modify it, and run it on their devices. But only if their implementation passes MeeGo compliance it can be called MeeGo.

Device Compliance is a set of rules that ensures any MeeGo-compliant software can run on a particular device. Application Compliance similarly ensures an app can be installed and run on any MeeGo-compliant device.

Both of these sets of compliance rules have automated tests that anybody can run. So, between non-compliant MeeGo-related software there may be fragmentation, but anything branded MeeGo (and therefore compliant) must be fully compatible.

App Stores and business models

MeeGo is an open source project, not a company. This means it comes without strings attached, compliance rules aside. There are no limitations on the business model of a MeeGo device manufacturer, no mandatory online services or app stores to enable, and no royalty payments.

With this, each vendor can decide what they want to enable their users to do with the device. An embedded device might have no concept of installable applications, a tablet might come with the vendor's own app store.

For those who do not want to go through trouble of building their own developer ecosystems and app stores, there are some generic solutions available in the MeeGo sphere:

Intel's AppUp is a "white label" app store. This means that a device manufacturer, or even retailer or operator can get an instance of AppUp with their own branding and a revenue sharing deal with Intel. Developers submit software only once and it will be available on all the different branded AppUps.

On the more open side, there is also the upcoming MeeGo Community Apps, a fully community driven "store" of free software written for MeeGo. It comes with its own, OCS-compatible client application, a web frontend, and clear set of crowdsourced app quality assurance processes. The similarly handled Maemo Downloads has served over 80 million downloads for the Nokia N900, so the user and developer interest is clearly there.

The future of MeeGo

At this early stage of the project it is hard to make predictions, but there are many things MeeGo gets right. I think it has a bright future ahead of it, especially in more specialized devices. There the shared infrastructure and clear development schedule give manufacturers substantial advantages in both development time and cost.

Product development times in the embedded sector are quite long, and it may well take years before we'll see MeeGo in a airline multimedia system. But if the project shows the necessary durability and longevity, this will eventually happen. Now many of those systems run on customized Linux distributions that their manufacturers have to spend quite a bit of money to maintain. MeeGo removes that problem, and allows easier collaboration through the compliance rules.

As for consumer devices like tablets and handsets, that area mostly requires there to be a vendor that wants to properly differentiate itself from the grey masses of the Android ecosystem. MeeGo provides all the necessary tools on both systems side and user interface development to make that happen.

Currently there are many different ideas floating around on how to build user experiences on connected devices. There is the "wall of apps" approach of iPhone, there are the fully cloud-connected WebOS and Android approaches, and now Microsoft is also starting to enter the game with their own ideas.

I don't think the "post-PC" world is yet complete. What MeeGo gives is a fast way to build products differentiating from that crowd. It just needs companies who are willing to go for it.

The next couple of years will be quite interesting.

Saturday, 04 June 2011

Henri Bergius: Want to do something similar to PostRank?

Planet Fellowship (fi) | 08:29, Saturday, 04 June 2011

So, Google acquired PostRank, the service calculating impact of blog posts and other items in social media.

If you want something similar but without the Google tie-in, then a good option is my social impact calculator which is fully free software written in PHP. It was originally written in 2007, but the newer version has been cleaned of Midgard dependencies and updated to reflect the current popular social networking services. Usage example from my earlier post:

require('calculate.php');

$url = 'http://bergie.iki.fi/blog/introducing_the_midgard_create_user_interface/';

// Get the raw count for only one source
echo com_meego_planet_calculate::hackernews($url); // 145
echo com_meego_planet_calculate::facebook($url); // 1

// Get weighted total score for all sources
echo com_meego_planet_calculate::all($url); // 130.8

Tuesday, 17 May 2011

Henri Bergius: Going to San Francisco

Planet Fellowship (fi) | 16:33, Tuesday, 17 May 2011

This weekend, after Falsy Values, I will be flying to San Francisco for a couple of weeks. There are some conferences:

However, as there is quite some time between these two events, it would be interesting to meet cool people and/or projects. So if you're in the area, drop me a note.

Friday, 13 May 2011

Henri Bergius: PHP can perform better than Node.js

Planet Fellowship (fi) | 13:17, Friday, 13 May 2011

My previous post about using Silex and AppServer-in-PHP similarly to ExpressJS generate quite a bit of interest. In the Hacker News thread there was a question about memory usage, and so I put the AppServer under siege. Memory usage stayed constant at:

13958 bergie    20   0  125m  10m 2136 S    1  0.6   0:00.28 php        
13959 bergie    20   0  125m  10m 2136 S    1  0.6   0:00.31 php 

Then I did the same Siege for the ExpressJS version:

14051 bergie    20   0  615m  12m 4988 S    0  0.7   0:00.34 node

The PHP implementation served 3.80 requests per second, while the Node.js version served 3.79, both on 11" MacBook Air with Ubuntu 11.04.

This trivial example isn't obviously the big test of PHP app serving vs. Node.js, but at least I was surprised that PHP did better than Node here.

Wednesday, 11 May 2011

Henri Bergius: Silex is like ExpressJS for PHP

Planet Fellowship (fi) | 17:31, Wednesday, 11 May 2011

We had the PHP Content Repository workshop at Liip in Zurich earlier this week. During the time we also discussed some other code reuse, like utilizing parts of the Symfony2 framework in Midgard. The Liip guys mentioned Silex, a cool micro-framework written on top of Symfony2. It greatly resembles the ExpressJS framework that we already use in some of our Node.js projects.

Here is a simple example of registering a route and displaying something when it is called:

<?php
$app->get('/hello/{name}', function($name) { 
    return "Hello $name"; 
});

Compare this to same in Express:

app.get('/hello/:name', function(req, res){
    res.send('Hello ' + req.params.name);
});

As we prefer to run Midgard on top of AppServer-in-PHP instead of regular mod_php, a good first step with Symfony was to figure out how it would integrate with persistent PHP processes.

It seems this is indeed easy. In couple of hours, without prior Symfony2 experience, I wrote a simple Silex extension that handles the communications between Silex/Symfony and AiP. An example for using it can be found from my GitHub fork.

Running it under siege shows one of the benefits of AiP. While the first request is a bit slower, the later ones are really fast as the application server will load the Symfony classes only once:

HTTP/1.0 200   0.03 secs:      11 bytes ==> /hello/World
HTTP/1.0 200   0.00 secs:      11 bytes ==> /hello/World
HTTP/1.0 200   0.01 secs:      11 bytes ==> /hello/World
HTTP/1.0 200   0.00 secs:      11 bytes ==> /hello/World

AppServer integration to Symfony needs to be cleaned up before it is ready for general consumption. But this example already shows that there is quite a bit of potential in the combination. If you're interested in helping, please contribute to the codebase.

Thursday, 05 May 2011

Henri Bergius: Openwashing

Planet Fellowship (fi) | 16:31, Thursday, 05 May 2011

Somehow I had missed this term being coined:

The old "open vs. proprietary" debate is over and open won. As IT infrastructure moves to the cloud, openness is not just a priority for source code but for standards and APIs as well. Almost every vendor in the IT market now wants to position its products as "open." Vendors that don't have an open source product instead emphasize having a product that uses "open standards" or has an "open API."

"Openwashing" is a term derived from "greenwashing" to refer to dubious vendor claims about openness. Openwashing brings the old "open vs. proprietary" debate back into play - not as "which one is better" but as "which one is which?"

Especially Google seems to be doing this quite a bit. If you want to be open, work in the open. This is the only way to ensure acceptance and sustainability for your code.

Wednesday, 04 May 2011

Henri Bergius: Techno-optimism and free software

Planet Fellowship (fi) | 13:15, Wednesday, 04 May 2011

Cory Doctorow on Locus:

To understand techno-optimism, it’s useful to look at the free software movement, whose ideology and activism gave rise to the GNU/Linux operating system, the Android mobile operating system, the Firefox and Chrome browsers, the BSD Unix that lives underneath Mac OS X, the Apache web-server and many other web- and e-mail-servers and innumerable other technologies. Free software is technology that is intended to be understood, modified, improved, and distributed by its users.

Also about the threat that centralized social networks produce:

As a techno-optimist, I was heartened to see the role that networked technologies played in aiding activists in Iran, Egypt, Libya, Bahrain and other middle-eastern autocracies to coordinate with one another. But as a techno-pessimist, I was horrified to see activists making use of unsecured unfit systems like Facebook, which make it trivial for authorities to snoop on and unpick the structure of activist organizations.

Thursday, 28 April 2011

Henri Bergius: 11" MacBook Air: the best computer I've ever had

Planet Fellowship (fi) | 16:32, Thursday, 28 April 2011

A while ago I blogged about my impressions on running Ubuntu Natty and GNOME3 on my MacBook Air. As I've gotten some questions about the laptop itself, I decided to write something about it.

Simply put, the 11" MacBook Air is the best computer I've ever had. I've always appreciated small and light laptops as I travel quite a bit, but this one takes portability to a completely new level. The laptop weights only a kilogram, and is small enough to fit pretty much any bag. And it is pretty:

macbook_air_3_2.jpg

Funnily enough, it has a slower processor than my previous work laptop (1.4 GHz vs. 1.6 GHz), but the fast SSD makes a huge difference. Pretty much anything I do on the device feels faster. It appears Brooks Review agrees:

...my MacBook Air is the best Mac I have ever owned — hands down — no contest. I have had everything from the fabled 12″ Powerbook G4 to a pimped out Mac Pro — the MacBook Air takes the cake here. It is incredibly fast for 95% of everything that I do and the screen resolution is amazing give the small footprint of the machine. The size and weight of the machine still amazes me every time I touch it.

Battery life is also quite good, with Linux giving me about 3-4 hours per charge. This could obviously be better, and I dream of the 10+ hours an Arm processor would give.

Why Linux?

Why do I run Linux on the system? First of all, I appreciate the software freedom. I also love the predictable release cycles that Ubuntu and GNOME give me: every six months there is a new release with a set of features announced early on. And since we deploy our software on Ubuntu, my own development environment has automatically the same set of packages and versions available. Midgard, Node.js, etc. are all available from the repositories.

I also like GNOME's focus on simplicity. Unlike OS X, the user interface has very few unnecessary elements, and the desktop itself has been designed to let me focus on the task at hand, minimizing distractions.

Installing Ubuntu on the system is not exactly trivial, but after a bit of setup everything works as it should: suspending, wireless, webcam, everything. And boot times are also pleasantly fast. Compared to previous Ubuntu versions, network acquisition after resume is also very fast, comparable to OS X.

Gripes

As said, battery life could be better. Ten hours would give me trouble-free working environment when traveling, as now I often have to prioritize when to use the computer and for what in fear that no power outlet is available.

I also hate the display adapters Apple forces us to buy and carry around. I give a lot of presentations, and this is another piece of equipment to accidentally leave home. Why not just go VGA or HDMI?

In both of these aspects the similarly compact Nokia Booklet would've been better. Unfortunately it has been a while since that "business netbook" was released and there has been no word of newer versions.

Another gripe is related to the stability of the GNOME3 PPA release for Natty. There are some regressions compared to stock Ubuntu. I hope that will be eventually fixed now that Natty is officially out. Shame that Canonical wanted to do their own thing instead of going with GNOME.

Henri Bergius: Join the PHP Content Repository Workshop on May 8th

Planet Fellowship (fi) | 11:46, Thursday, 28 April 2011

The IKS Project and Liip are organizing a PHP Content Repository Workshop in Zurich, Switzerland on May 8-9 2011. If you're working on PHP-based content management technologies, this event should be a very useful one to join or at least follow.

What is a content repository?

Content Repository is a programming interface for connecting with various persistent data stores. On the Java side, the JCR specification has gained quite a bit of traction, allowing for easy decoupling of a Content Management System from the actual storage implementation. On PHP side there have been several content repositories in use, like Apache CouchDB and Midgard, each with vendor-specific APIs.

The PHPCR effort aims to provide a standard API that can be used by any PHP content management system to interface with any content repository. The first PHPCR implementation is Jackalope, which allows PHP systems to use Apache Jackrabbit as their content store and eventually also will support direct storage. There is also a Midgard PHPCR provider in the works.

As described by David Nuescheler, the advantages of using a standard content repository interface are:

  • Functional Definition of a “Content Repository”
  • Common Vocabulary!
  • No longer learn (dozens of) (ugly) proprietary APIs
  • Write (mostly) portable code, for Document Management, Web Content Management, Source Code Control
  • Compare Repository Functionality
  • No more information silos and vendor Lock-in Content-Centric Infrastructure

If you're interested in the event, please sign up on the wiki page. See also the event on Lanyrd and Liip's workshop announcement.

Thursday, 21 April 2011

Losca: ”Tuning an old but free phone” video now available

Planet Fellowship (fi) | 10:56, Thursday, 21 April 2011

It was good that I didn't hold up my blog post in November until the videos from FSCONS 2010 (Free Society Conference and Nordic Summit) are out, but now they finally are:


Timo Jyrinki - Tuning an old but free phone (pt 1/2)
Timo Jyrinki - Tuning an old but free phone (pt 2/2)

Definitely see also all videos and since Vimeo doesn't work in Gnash, use a script to download.

ps. As a related item to the talk's future oriented aspects, while waiting for GTA04A3 boards to arrive, GTA04A2 has been patched to run Debian/LXDE.

Losca: Free Society Conference and Nordic Summit (FSCONS 2010)

Planet Fellowship (fi) | 10:38, Thursday, 21 April 2011

Just a note that the slides are available (non-slideshare link) for my presentation ”Tuning an old but free phone” (description) that I held in the tremendously great event FSCONS 2010. It could be described as a smaller scale FOSDEM, but that would be actually down-playing it since the free software effects on society are something that I've actually never seen elsewhere on such a scale. My talk was among the purely technical ones, though.

I was planning to hold on with this blog post until the recorded videos arrive, but since it seems it might not be during this year I will just post this now that slides are available.

I've shared a few photos as well at Flickr...


Keynote: Karin Kosina, The Inanna Project. A tech + art workshop for female artists in Damascus, Syria. An experiment in art, technology, and the transformative power of Free Hardware and Software.


Erik de Bruijn, The Future of RepRap, a self-replicating open source 3D printer that fabricates arbitrary objects including parts of itself.


Social event at the Berg 211.


Malin Nilsson on Gender, class and global flows. Using free software to fuel a revolution in home based industrial work.



Keynote: Glyn Moody, Ethics of Intellectual Monopolies.


Keynote: Glyn Moody, Ethics of Intellectual Monopolies (audience).

A few summaries available on a Qaiku seminar channel.

Saturday, 16 April 2011

Losca: MeeGo Summit FI Days 1 & 2

Planet Fellowship (fi) | 10:30, Saturday, 16 April 2011

MeeGo Summit FI is now nearing completion, with several keynotes and other presentations, Meegathon 24h contest just coming to an end and a lot of interesting discussions had. See full program for details. Yesterday was a hugely energetic day, but today the lack of sleep starts to kick in a bit at least for me.

Some highlights via photos:



Keynote venue was a movie theater




MeeGo status update by Valtteri Halla / Intel - talking among else about tablets, IVI, and the 20 person team at Nokia doing MeeGo(.com) for N900 phone





Mikko Terho / Nokia - "Internet for the next billion => Qt good candidate", "code wins politics and standards"




Carsten Munk / Nomovok - "Hacking your existence: the importance of open-ended devices in the MeeGo world"




In addition to MeeGo tablet demonstrations a Wayland compositor was demoed by a Nomovok employee.



One of the many Qt / QML related talks was held by Tapani Mikola / Nokia



Evening party




Day 2 started with a few more presentations and Finhack event launching in the Protomo room as well

Still remaining for the day are Meegathon demonstrations (well actually I'm right now already following those while finishing this - cool demos!) , Meegathon awards, a panel discussion on "MeeGo, Nokia, Finns - finished? Can MeeGo be important in Finland without being inside Nokia's core?", BoF sessions and finally Intel AppUp Application Lab including some MeeGo table give-outs.

Thanks to organizers, many of whom were volunteers. The event has been running completely smoothly, coming not as a big surprise after the hugely successful last summer's Akademy 2010 also held in Tampere.

Thursday, 14 April 2011

Losca: MeeGo Summit FI starts tomorrow

Planet Fellowship (fi) | 16:09, Thursday, 14 April 2011

I'm participating in the MeeGo Summit FI that starts tomorrow, and I'm already in Tampere now, as you can see. The summit is at an interesting time, given that there is a huge amount of stuff happening around MeeGo while at the same time Nokia is balancing on what do both in the far future and what to do to ship the MeeGo device they've already promised. The summit is fully and overly booked for >300 attendees. There is also Finhack free software event happening alongside on Saturday at the same venue.

A view towards the venue(s), Finlayson area in Tampere.
The company I work for, Nomovok's CEO illustrated the MeeGo situation extraordinarily well a little less than two months ago. I think it's one of the best insights you can get from anywhere in public at the moment. Now things are starting to really heat up. Of course the Big thing is the MeeGo Conference in San Francisco in the end of May, but it takes nothing away from this being the major event both in the country formerly known as NokiaLandia, and also globally given the amount of MeeGo related talent here. Nomovok is teasing people with the SteelRat - a launchpad for MeeGo tablet creation and an UX, based on latest MeeGo Core - a beta of which will be available now in Tampere and first version in San Fransisco. Meanwhile we and others are investing in also the MeeGo IVI and MeeGo TV platforms, not forgetting about the handset industry that is more visible to many tech savvy consumers.

Pre-registration and building on-going.
At the same time there is a lot of exciting stuff going on in the Ubuntu project (Ubuntu 11.04 upcoming, I'm already using it and reporting bugs), together with Linaro and other ARM players. As a founder of Ubuntu Finland I'm always eager to see if I can work there also on work time, not only on free time. And regarding ARM, Nomovok is the key player in having ARM on MeeGo as well.

Then on the completely other end of spectrum, I'm eagerly waiting for the GTA04 project to have my Neo FreeRunner(s) bumped up to modern specs. At the end of the day I'm still using over 2,5 year old phone myself, since I want to run the software that is both free and completely selected (and if I want, done) by me. With GTA04, I could choose between MeeGo armv7hl port, Debian armhf port or Ubuntu as the base distribution to use my software.

Henri Bergius: Finnish MeeGo Summit starts tomorrow

Planet Fellowship (fi) | 12:45, Thursday, 14 April 2011

This weekend is the first-ever Finnish MeeGo Summit, held in Tampere in the same venue where we had aKademy last summer. Despite some announcements, the conference sold out in a very short time. The program looks very interesting, too.

I'll give two talks:

  • Location awareness in MeeGo, Hacks & Tricks track Friday 15:30
  • Midgard Create - Content Management System without forms, Finhack Saturday 12:00
Finhack is a Finnish free software meetup co-organized with Free Software Foundation Europe and COSS as a one-day track within MeeGo Summit.

If you're not able to attend the Summit, there are also regular MeeGo meetup groups in Helsinki and Tampere.

meego-finland-400.jpg

Tuesday, 12 April 2011

Henri Bergius: GNOME3 on Ubuntu Natty: the first impressions

Planet Fellowship (fi) | 18:22, Tuesday, 12 April 2011

So, GNOME3 was released last week. I was then away in Saarbrucken, working on some linked data stuff, and so didn't have the courage to upgrade. But today I took the leap and installed both Ubuntu Natty beta and GNOME3 from the PPA. Now my 11" MacBook Air finally has the setup I originally intended for it.

gnome-shell.png

As Ars Technica says, GNOME3 feels very solid for a first release. Some first impressions:

  • Window management by dragging them to the edges is very handy
  • Notifications allow me to focus on the things I'm doing at the moment, but still allow for easy conversations when I want them
  • Finding, launching and managing applications is easy. Apple key -> type some characters -> enter starts an application
  • Wake-up from suspend and acquiring wireless are very snappy, though I guess this is mostly thanks to Natty and not the desktop
  • The monochrome top bar is beautiful and has the necessary functionalities. I don't really miss the panel applets
  • In general the desktop stays out of the way and lets me focus on what I'm working on
Then the weird stuff:
  • The window decorations are humongous, especially as they have very little use in the window management paradigm. This really hurts the usable vertical space
  • I really miss the global menus from Unity. Though with modern applications I might be even happier with no menus at all
  • The system font looks a bit squished, but I guess that is because of my X settings
  • I haven't figured out how to remove the unnecessary accessibility menu from the top bar

Anyway, great work from the team! I hope the annoyances can be fixed in due course, and I'm looking very much forward to hacking with Midgard and the JavaScript-based desktop.

gnome3-about.png

Monday, 11 April 2011

Henri Bergius: PHP Content Repository - the other part of CMS decoupling

Planet Fellowship (fi) | 12:21, Monday, 11 April 2011

A while back I wrote about decoupling content management. The post generated lots of good reactions, and since then our VIE library has been adopted by multiple CMSs to achieve decoupling on the UI level.

Now it is time to focus on the other side of decoupling - the relation between a web framework and a content repository. I've written multiple times about the benefits of using a content repository, but JCR spec lead David Nuescheler sums them well:

  • Functional Definition of a “Content Repository”
  • Common Vocabulary!
  • No longer learn (dozens of) (ugly) proprietary APIs
  • Write (mostly) portable code, for Document Management, Web Content Management, Source Code Control
  • Compare Repository Functionality
  • No more information silos and vendor Lock-in Content-Centric Infrastructure

The Midgard Project has provided a generic content repository for PHP a long time now, but our APIs have been our own, which is probably too much vendor lock-in for many PHP CMSs. Because of this, I was very happy to see the PHPCR project start to provide a PHP port of the Java Content Repository interfaces. This is the way to achieve truly a vendor-independent content repository API.

What is PHPCR, then? It is a set of PHP interfaces that define how to deal with a content repository. Instead of thinking about particular databases or file formats, you get a standard way to deal with content using a tree-based metaphor and query APIs. On top of this, *CR provides standard ways to handle access control, versioning, content creation and many other things depending on what the particular repository supports. The repositories provide ways for applications to check their capabilities and content model, so an application can adapt to various repositories used.

TYPO3 and Symfony are already pushing strongly towards PHPCR, using Apache Jackrabbit via a PHP bridge as the reference implementation. Jackrabbit is great because it provides support for all *CR features, but obviously at the cost of a Java dependency. For those that want to keep their content in a RDBMS, and not run Java processes, we're now working on making a Midgard2-based PHPCR provider. The project is still in quite initial stage, but some of the APIs work:

<?php
use Midgard2CR as CR;

// Set up credentials, in this case the default account
$credentials = new \PHPCR\SimpleCredentials('admin', 'password');
 
// Get a Midgard configuration
$factory = new CR\RepositoryFactory();
$repo = $factory->getRepository();
 
// Connect to Midgard repository with the credentials
$session = $repo->login($credentials);
 
// Get the root node matching our workspace
echo "\ngetRootNode\n";
$root = $session->getRootNode();
$title = $root->getProperty('mgd:title');
var_dump($root->getIdentifier(), $root->getName());
var_dump($title->getName(), $title->getString(), $root->getPropertyValue('mgd:title'));

// Iterate child nodes
echo "\ngetNodes\n";
foreach ($root->getNodes() as $node)
{
var_dump($node->getPropertyValue('mgd:title'));
}
 
// Get a property with absolute path
echo "\nsession->getProperty\n";
var_dump($session->getProperty('/planet/mgd:component')->getNativeValue());

Feel free to follow the effort on GitHub, and also to participate :-) I also recommend reading at least parts of the JCR 2.0 spec. It is quite enlightening on where content management will go in the future.

Sunday, 10 April 2011

Henri Bergius: The beginning of a JavaScript journey

Planet Fellowship (fi) | 19:51, Sunday, 10 April 2011

While PHP remains my primary programming language for various reasons, my recent projects have involved quite a bit of JavaScript development. And I have to say I like it: the event-driven paradigm is quite elegant, closures are a joy to work with, and tools like Node.js and jQuery really open up the possibilities of the language.

But there is one weakness in the JS ecosystem: as things are just now picking up, the amount of information on especially making larger applications is quite sparse. To help solving this issue, I decided to start a new blog dedicated to what I learn in that space.

Like my earlier piece on the importance of the language, the blog is called The Universal Runtime.

If you run into interesting tutorials on JavaScript, or are doing something cool in the space, let me know!

Monday, 21 March 2011

Henri Bergius: Calculate the impact of your posts

Planet Fellowship (fi) | 11:43, Monday, 21 March 2011

Today on HN there was a thread on how to get the Facebook share counts for a URL. Turns out that with Facebook, just like with most social web services this is quite easy. And actually I've been doing this since 2007 to calculate news item relevance on Maemo News.

Of course the social web landscape has changed quite a bit since the 2007 launch of our "social news" service, and many of the original relevancy sources have fallen into misuse. So now, in preparation of the new Planet MeeGo aggregator, I decided to clean up the calculations into a generic PHP library. Usage is simple:

require('calculate.php');

$url = 'http://bergie.iki.fi/blog/introducing_the_midgard_create_user_interface/';

// Get the raw count for only one source
echo com_meego_planet_calculate::hackernews($url); // 145
echo com_meego_planet_calculate::facebook($url); // 1

// Get weighted total score for all sources
echo com_meego_planet_calculate::all($url); // 130.8

Grab the source from GitHub. I'd be happy to accept pull requests adjusting the weight scheme or adding new social sources.

And if you want to run a "Planet" in similar mode to what we have on Maemo, providing a quick front-page view of only the most relevant posts, and a separate page of all posts, then the repository has a full Midgard MVC component for doing that.

Friday, 11 March 2011

Henri Bergius: On cross-project collaboration

Planet Fellowship (fi) | 13:08, Friday, 11 March 2011

There is currently quite stern discussion going on between GNOME, Canonical and KDE about collaboration on the free desktop. Angry words have been written, and I believe much of the tension arises from the situation with MeeGo. Suddenly many developers and projects feel much more marginalized than what the future looked like, pre-112. Hopefully cooler heads will prevail before the Desktop Summit, and we can again have beers and discuss things together.

Cross-project collaboration is hard. I know. For many years I've been pushing for location-awareness across desktops, for using shared content repositories instead of application-specific file formats or databases, and most recently for having a common client-side data representation and manipulation layer on content management systems. Some of these ideas have moved forward. Some others, less so.

What is important to remember is that each project has their own use cases, user experience goals and set of selected technologies to build on. If a collaborative approach you propose doesn't fit those, it is highly unlikely that the project will adopt it. And there is nothing wrong with that.

Instead of looking at the failures, we should think of the ways cross-desktop collaboration has moved forward. Here are some examples:

So, if you want to get a specification accepted between projects, how to go about it?

First of all, you should communicate early and clearly the use cases your specification aims for. And then there should be a reference implementation available, not only as a library, but also as something already integrated in your UX.

If you want projects to actually use your reference implementation instead of building their own, then it is important to remove as many obstacles from adopting it as possible:

  • Use permissive licensing and try to avoid copyright assignments or other requirements potential users would find onerous
  • Host the project on neutral ground. For web projects, Apache is quite a good home. For desktop projects, Freedesktop is probably the best option
  • Use technologies that don't impose too many constraints. Libraries should be quite low-level, or provide D-Bus APIs that can be used with any system
  • Avoid technology-specific dependencies. For example, KDE has found GeoClue hard to adopt because it uses GNOME-specific settings interfaces
  • Talk with the other guys. If you're from the GNOME project, go to aKademy and give a talk, and if you're a KDE developer, go and talk in GUADEC. IRC isn't bad here either
  • Finally, accept that not everybody will use your implementation. But if they at least implement the same ideas, then collaboration is still possible.

And even if your ideas haven't been adopted by other projects, as long as your implementation solves the use case for you it hasn't been in vain. After all, delivering software, and delivering great user experience is what counts.

Wednesday, 09 March 2011

Henri Bergius: VIE - Decoupled content management moves forward

Planet Fellowship (fi) | 17:54, Wednesday, 09 March 2011

My posts on Decoupling Content Management, and especially the introduction to the "build a CMS, no forms allowed" approach we took with Midgard Create have generated a lot of interest.

When I first presented the approach in the recent Aloha Editor Developer Conference, many CMSs wanted to do something similar. And so we decided to strip the Midgard-specific parts out and make the tool a generic JavaScript library. As part of this work, the library was adopted by the IKS project and named VIE, or "Vienna IKS Editables". There first CMS implementations of VIE included WordPress, TYPO3 and KaraCos, with more on their way.

To get started with VIE, check these pages out:

In addition to Midgard Create, one of the first projects I'm implementing with VIE is Palsu, an interactive meeting tool powered by Node.js and Socket.io. It should explain the power of VIE outside of the traditional CMS space.

Update: VIE is now also available on npm:

npm install vie

Henri Bergius: The Universal Runtime

Planet Fellowship (fi) | 11:32, Wednesday, 09 March 2011

In the coming years another billion people will get online. They will do it with their smartphones instead of what we consider computers. And their experience will be quite different from ours when we initially started using the internet.

Despite its promises, it looks like the post-PC ecosystem will be a lot more restrictive than the PC one was even in the worst days of the wintel duopoly. For a while it looked like software freedom might be one of the cornerstones of the new world, but since then it has been shown that the tech giants Apple and Microsoft, together with the American content industry, will ensure that this new environment is more tightly locked down than anything we've seen before.

These companies will have a say on who gets to create something, who to distribute it, and who to use it. Users will be 'protected from themselves' by enabling these devices to run only code approved by the company. We've already seen that this approval can be declined, or even retroactively withdrawn on a whim, and on grounds more political than technical.

If we want to ensure digital freedoms for ourselves, and for the people only now reaching across the digital divide, we must act. We must find ways to enable creativity to happen on these new devices. We need to find ways to enable people to create, distribute and use any software on their phones, regardless of what locked-down ecosystem their mobile operator pushed them into.

Luckily there is one programming environment, one runtime that even the most restrictive players haven't had the courage to lock down: the web. Web browsers, coupled with the modern, fast JavaScript engines, could be the tool to build the next step of the free software revolution. We must embrace it.

JavaScript is already fairly prominent in free software development. The GNOME Shell has been largely written in it, Qt Quick builds on it, and most of the common JavaScript libraries are free software. There are even ways to run JS as a server or build your own desktop applications with it.

For those looking to get started with JavaScript, here are some useful resources:

While there will never be a "one true language" to program in, JavaScript has the potential to be a big thing. And for writing and sharing software across platform boundaries, it may be the only way. It runs even on the most walled of gardens.