Planet GNOME-NL
Lang stil geweest he? Gelukkig heeft Eucalypta nog een bijdrage geschreven anders was het wel heel lang stil geweest op Digiplace. Maar 16 dagen schoolvakantie (ik heb twee jonge kinderen) hakken er flink in kan ik je verzekeren.
Helemaal stilgezeten heb ik overigens niet, want ik ben bijna klaar met het schrijven van een nieuwe bijdrage voor Livre. Dat artikel gaat verschijnen op zaterdag 24 mei a.s. en zal handelen over mogelijkheden om je desktop "aan te kleden". Anderzijds moet ik nog een vervolg schrijven op Top want de beheermogelijkheden zijn nog steeds niet aan bod gekomen.
Er is nog een reden waarom dit artikel "Geluid" is genoemd. Ik heb wat problemen met geluid gekregen onder Ubuntu Hardy. Ten eerste met flash. Sommige flash video's of applicaties (Adobe Air) waren verantwoordelijk voor het soms niet afspelen van geluid. Dat lijkt inmiddels te zijn opgelost dankzij het installeren van libflashsupport. Die had ik niet geïnstalleerd en dat is wel van belang omdat deze library support geeft voor sound output met Flash 9 in combinatie met pulseaudio. Mocht je die problemen ook ondervinden dan is een sudo apt-get install libflashsupport van harte aanbevolen.
Maar ik zit ook met een ander probleem. Eén waar ik niet uit kom. Het gaat om de combinatie van Rhythmbox en het later bekijken van televisie via mijn Hauppauge PVR-150 MCE kaart. Als volgt: Ik speel muziek af met Rhythmbox en sluit daarna deze applicatie af. Daarna start ik VLC (of mplayer, totem, xine) op om naar (kabel)televisie te kunnen kijken. Die uitzendingen hebben dan geen geluid. En ik krijg dat niet opgelost. Sterker nog, VLC speelt dan wel divx of andere content met geluid af, alleen niet mijn PVR signaal. En nog vreemder is dat als ik b.v. Amarok als muziekspeler gebruik het wel gewoon werkt! En uiteraard werkt het prima zolang ik maar niet Rhythmbox opstart. Ik moet er maar een bugreport voor schrijven maar kan mij eigenlijk niet voorstellen dat ik de 1e ben die dit probleem ondervind.
Ik moet overigens met de ivtv driver televisie bekijken omdat een Hauppauge PVR 150 MCE een zgn MPEG2 decoding kaart is en dan werkt tvtime b.v. niet. Kortom, er valt nog heel wat te klooien. Gelukkig maar, de kinderen zijn weer naar school!


Meer fotos op Flickr.
Een bijdrage van Eucalypta
Het is langdurig stil geweest aan het Puppy Linux-front. De laatste release, Puppy 3.01, dateert van een half jaar geleden. De reden dat er is afgeweken van de gewoonlijk korte releaseperiodes is dat Puppy van de grond af aan opnieuw is opgebouwd om zo klein en compact mogelijk te kunnen zijn. De live-CD bevat een compleet besturingssysteem en een groot aantal nuttige programma's, en dat alles samengeperst in slechts 87 MB. Ondanks het mooie lenteweer ben ik toch benieuwd genoeg naar het resultaat om binnenshuis een kijkje te nemen.
(lees verder)
In Vala you can define interfaces just like in C# and Java. Interfaces imply that you can have class types that implement one or more such interfaces. Vala does not force you to implement its interfaces in Vala. You can also implement them in good-old GObject C.
Here’s a detailed example how you implement a type that implements two Vala interfaces in GObject/C:
HELSINKI - Pffff... ik lijk het bloggen verleerd te zijn. Het was de eerste dag van 2008 dat ik voor het laatst wat schreef. Maar nu, 6 april(!), is het eindelijk tijd om weer eens wat te schrijven.
De vorige keer eindigde ik met een kleine terugblik op mijn goede voornemens van het afgelopen jaren; ik was redelijk tevreden. Een interessante vraag is natuurlijk wat mijn goede voornemens zullen zijn voor 2008. Hmmm... ik heb niet zo'n uitgebreide lijst als vorig jaar, maar laat ik -- zeer verlaat -- toch een lijstje publiceren; enige 'vooruitziende blik' helpt natuurlijk bij het opstellen van haalbare doelen:
- Leef gezond, doe nog meer aan sport. Loop tenminste tweemaal mee in een algemeen hardloopevenement. (Check -- natuurlijk heb ik me al opgeven voor de Länsiväyläjuoksu (17,4km, 27.04.2008) en voor de Helsinki City Run (21km, 10.05.2008); [DONE (1)] en [DONE (2)] (foto van AC)
- Lees minstens evenveel als in 2007, en probeer daarbij ook wat meer andere media te betrekken (Check -- ik lig op schema...
- Doe interessant werk (Check -- ik heb vanaf deze maand een nieuwe rol in een ander team. Binnen Nokia, maar anders. Later meer.
Ok, genoeg voor nu. Hopelijk kan ik mijn blogfrequentie wat verbeteren (nog een goed voornemen!)
I installed ubuntu 8.04 on my laptop last night, and after first boot it told me, that my battery might be broken. WTH!.
After checking the stats, it just complained that the last full was 39% of the designed capacity. (stupid laptop batteries, this is the second one, going down fast). Nothing new or something to worry about.
After the first time I put my laptop standby, and woke it up again, I got a message about a ‘wrong timeout’, but no clue what is wrong.
After the second time I put my laptop through a standby cycle, I get a message that my computer failed to suspend. This is not a bad message, if it where true.
My laptop was in standby mode for 8 hours.
Keeping the user informed is a good thing, I agree. But someone less experienced, how would he/she react to these messages?
And why is powermanager telling lots of things and thing that are pointless, while f.e. network manager does not even tell me in a nice popup that it connected to a wireless network, or switched to wired?
(also it seems to use around 20% more power then previous ubuntu).
Q

Pink, sweet!
Je kan natuurlijk wachten tot de nieuwe dcraw landt (bug geopend), maar sommigen onder ons willen nu hun foto's ontwikkelen.
Speciaal voor hen heb ik een gepatchte ufraw gebouwd. Je kan het vinden in mijn Ubuntu PPA. Veel plezier!
Your application used to be single threaded and is consuming a resource that is not thread-safe. You’re splitting your application up into two or more threads. Both threads want to consume the non-thread-safe resource.
In this GNOME-Live item I explain how to use GThreadPool for this.
It’s a wiki so if you find any discrepancies in the sample and or text, just correct them. I’m subscribed so I’ll review it that way.
The GNOME-Live item is done in a similar way to the item about using asynchronous DBus bindings and the AsyncWorker item.
I need some help with the translation of stuffkeeper. 2 questions arise:
-
What is the best way to get stuffkeeper translated?
- Is there somebody willing to check the English strings, if they are correct and good for translation.
Help would be really appreciated, it would be nice to have it translated before the first stable release.
thx,
Q
edit: it seems I wasn’t to clear (again). I have the translation (using gettext) in place and it is working (there allready is a german translation). I am looking to get it translated to other languages, and what the best way is to get that done.
A few days ago I made a completely correct analysis of how the Schuko standard for power sockets and plugs, used on the continent of Europe, is superior to the British BS1363 standard.
Today I noticed the fruits of our hard work of trying to convert the British people to the fine uses and traditions of the people who live on the European continent. I saw a carton “Gezeefde Tomaten / Purée de Tomates” at a supermarket in Durham UK.
Just like how politics in Belgium work we have started applying the principle of divide and conqueror: instead of using their native language English, we are now sending them products with dual language branding and descriptions. Just like in our own country. This introduces doubt about their English identity. To divide you first need to generate fear and doubt (Am I really English? I’m not Welsh either? Maybe I’m Dutch? Maybe French!! Wouh!). Then you conqueror them by telling them, with a soft voice:
No no, you are Europe.
Works great! Just make them believe those Belgian “Purée de Tomates or Gezeefde Tomaten” are good. Once they grasped that, tell them: “but the tomatoes and the brand itself (Valfrutta) actually comes from Italy”. That’ll completely confuse them! Then relax them by softly putting your hand on their forehead and say: you are European, don’t be afraid child.
ps. Dear people who don’t live in Europe: this post is sarcasm, irony, a joke.
The public library of Amsterdam, i.e. the Openbare Bibliotheek Amsterdam (Wikipedia entry, check out the pictures!) not only offers a enormous amount of books, cd’s and several reading and conference rooms inside their great building, but also offers free access to their wireless network, so that you can access the internet.
Before I start, a few words to help people find this blog post using Dutch query terms: Dit artikel beschrijft hoe ik onder Linux het draadloos internet in de Openbare Bibliotheek Amsterdam aan de praat heb gekregen. Het draadloze netwerk werkt goed, maar alleen als je weet hoe je het moet instellen!
First, you need to register an account. Instructions can be found at various places in the building, and you should activate it by showing your ID at the reception desk near the entrance.
Then you need to configure your computer. However, only instructions to set up the wlan in Windows and Mac operating systems. Linux users like me are left in the dark.
It took me quite some time to get it to work, mostly because none of the Network Manager configuration options worked for me. That is, none of the options provided in the popup window that asks for connection authentication tokens and the security setting (WEP, WPA, and so on). I’m using version 0.6.6, by the way. The trick is that you need to use the connect to other wireless network option instead of just picking the right network from the menu:

Network Manager menu. Choose the highlighted option, not the OBA Hotspot Service item.
The next step is to configure the network settings. Choose WPA Enterprise, fill in the network name, specify PEAP and Dynamic WEP, and fill in your username and password. The screenshot below shows the result:

Network settings for the OBA network
Hit the connect button and a connection will be made. That’s it: happy surfing! The internet connection is quite fast and pretty much unrestricted, e.g. you can use SSH without trouble, for instance. This is definitely not always the case, e.g. you can’t in the Public Library of Den Haag (The Hague).
For completeness, here’s an alternative, manual way (hacky and ugly) if you don’t (want to) use Network Manager. You may stop reading here if you’re using Network Manager (I heartily recommend it). Beware, the next few paragraphs require you to know how to work with a shell and how to edit system configuration files properly! Only proceed if you know what you’re doing!
You will have to edit the /etc/wpa_supplicant/wpa_supplicant.conf configuration file manually (create it if it’s not there already) to be able to connect to the OBA Hotspot Service wireless network. The relevant snippets you need can be downloaded here: wpa-supplicant-oba-amsterdam.conf.sample. Make sure you fill in your username and password!
Now that you have the configuration file in place, it’s time to connect. I’m using a simple shell script (a really ugly hack) to get it to work on my machine. You might need to change the wireless interface name (it’s eth1 for me) and perhaps the option passed to the -D parameter to match your wireless card. Here is the shell script (not specific for the Amsterdam library, I use it at the university as well): wireless-network.
You will be asked for your user password. This is the password for your local machine, not the one for your wifi account! Run the script as root if you don’t use sudo). Some debug spew should appear and your internet access should work. Hit Ctrl-C to disconnect.
Of course Debian-based systems can skip all these shell script tricks (you still need the settings in /etc/wpa_supplicant/wpa_supplicant.conf as described before). The Debian way is to create a stanza in /etc/network/interfaces instead like this:
iface oba inet dhcp
wpa-driver wext
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Now you can use e.g. sudo ifup wlan0=oba (replace wlan0 with the name of your wireless card).
People living somewhere on the British Islands.

This is a device that produces static electricity

You plug a power plug in a power socket

I have marked on this image of the power plug where the static electricity gets delivered into the power socket

Let me clarify my point:
- Washing machines produce static electricity
- Walls and sockets don’t produce static electricity
Let me add another point that I’m trying to make here
- The dangerous looking pin in European sockets is not dangerous at all

Also note that the Germans and the Dutch use sockets that don’t have the dangerous looking pin. Both types of sockets and both types of plugs are compatible with each other. European continental standardisation is very useful sometimes.

Let’s take a look at the European plug and the location where it delivers the static electricity to the wall socket.

Let’s now compare that with an actual photo of a British Island’s (Irish guys use it too) plug.

My adult male finger (I have very thick fingers compared to Tinne’s skinny fingers and Tinne has thick fingers compared to a small child’s fingers) fitted in the space. It was possible for me to fully touch the static electricity pin. The device was powered on so the two pins for delivering the actual electricity where completely connected.
Now let’s see some actual photos of the European plug in action. Decide for yourself.



The solution is to convert those crazy English, Irish, Northern Irish, Scotts and Welshman (boy, I do hope I didn’t forget anybody) to the European system :-)

We receive messages like this quite frequently:
Please only post in English on planet gnome or at least make non-english posts contain english translations.
If you don’t wish that posts like this are syndicated, please have the planet gnome administrator (jdub) pull a certain tag from your blog.
Thanks for understanding.
Note that Jeff Waugh (maintainer of planet-gnome) has indicated several times that he wants planet-gnome to be a window into the world, work and lives of GNOME hackers and contributors (top-right of the site). That includes “lives”, not just “work”, and for that reason planet-gnome does not filter based on tags like “GNOME”.
This however means that you get to read the personal blogs of the people who are syndicated. Very often they asked specifically about the use of non-English languages and about the fact that content is not always going to be related to GNOME at all. Very often it has been pointed out that is precisely the very idea of planet-gnome.
This means that planet-gnome is meant to have posts in different languages, is meant to have posts that are not about GNOME at all. If that’s not comfortable for you, then please either read another website or install filters.
I’m not planning to change my personal blog because planet-gnome doesn’t use my categories. Although I agree with and like its policies, I didn’t decide them. Please don’t complain to the non-English speaking blog writers who are syndicated on planet-gnome.
[update] Question solved, see bottom of post.
Since Python 2.5 the language got a new built-in method ‘all’ (and it’s nephew ‘any’). I wanted to play around with this a little, combined with generators, so I created a little testcase to test performance.
Here’s the test-case: take a list L of X random numbers in a given range [A, B], and check whether
- all elements in L are >= A
- all elements in L are >= (A + Z) where Z is a number in [0, (B - A)]
The first test should always result True, the second test could result to False.
Here’s the output of a test-run:
In [1]: import random, sys In [2]: a = [random.randint(100, sys.maxint) for i in xrange(2000000)] In [3]: len(a) Out[3]: 2000000 In [4]: #Check whether all elements are >= 100 In [5]: %timeit all(i >= 100 for i in a) 10 loops, best of 3: 515 ms per loop In [6]: %timeit any(i < 100 for i in a) 10 loops, best of 3: 454 ms per loop In [7]: def f(l): ...: for i in l: ...: if i < 100: ...: return False ...: return True ...: In [8]: %timeit f(a) 10 loops, best of 3: 292 ms per loop In [9]: #Same thing for 100000, since now the list shouldn't be completely iterated In [10]: %timeit all(i >= 100000 for i in a) 100 loops, best of 3: 4.73 ms per loop In [11]: %timeit any(i < 100000 for i in a) 100 loops, best of 3: 4.29 ms per loop In [12]: def g(l): ....: for i in l: ....: if i < 100000: ....: return False ....: return True ....: In [13]: %timeit g(a) 100 loops, best of 3: 2.82 ms per loop In [14]: #For reference In [15]: %timeit False in (i >= 100 for i in a) 10 loops, best of 3: 531 ms per loop In [16]: %timeit False in (i >= 100000 for i in a) 100 loops, best of 3: 5.03 ms per loop
It’s as if ‘all’, ‘any’ or ‘in’ don’t break/return when a first occurence of False (or True, obviously) is found. Is this the desired behaviour, and if it is, why? The calculation time difference between using all/any/in or a custom-made function (which is, unlike all etc, not written in C) which breaks whenever it can, is pretty astonishing.
[update] Question solved. It’s pretty normal the function-based approach performs better, since it combines what ‘all’ and the generator provided to ‘all’ do, taking away the generator function-call overhead. Damn ![]()
Reinout van Schouwen (reinouts)
Dit jaar heb ik Koninginnedag gevierd met een bezoek aan de Haagse Koninginnenach (hoi Arnoud!) Een groot deel van de tijd heb ik samen met Boris doorgebracht in het Theater aan het Spui, een kleine oase in de kolkende mensenmassa buiten. Met name was ik onder de indruk van de optredens van Hayward Williams en Dirtmusic.
. Gaat dat beluisteren!
Computerarcheologie op de vrijmarkt
Vandaag heb ik nog wat rondgekeken op de vrijmarkt in Rotterdam. Onder de opvallende zaken die uitgestald stonden waren onder andere een Commodore Datasette-taperecorder (oh nostalgie!), pakketjes installatiediskettes voor Windows 95 en een Epson Styus 800-printer (mijn eerste zwart-wit inkjet).
Dear monoglots,
There is no reason at all blog posts not written in English should be stopped from appearing on Planet Gnome. Gnome software itself is written in a variety of (computer) languages, and the Gnome internationalisation effort is also considered really important. While I do agree that Planet Gnome is intended to be mostly English, there is really no reason to complain if someone who usually posts in English uses his or her own language every now and then, as long as the author keeps writing posts in English regularly (as opposed to writing solely in his or her own language).
So… please stop complaining and scroll down if you don’t understand a post.
In Bruges, the movie
Today I went to the movie In Bruges in Newcastle together with Tinne. It’s a funny movie about two assassins in Bruges, a tourism city in Belgium. Now that we are back at our place in Durham UK, I immediately wondered whether they are playing the movie in Belgian movie theaters too. Surprisingly they don’t. Sure they make fun of Belgians, Belgium and the “shit-hole Bruges” quite a lot. But hey, that doesn’t mean you can’t air the movie in our country! We can take a couple of yokes. Don’t worry!
It was a bit sad that they didn’t speak a single word of Flemish/Dutch in the movie. It’s not really normal for Flemish people to spontaneously and automatically reply in fluent English each time any guy asks something. Even the people screaming when a dude falls out of the sky at the end of the movie don’t use a single word of Dutch for the shouting. I’m quite sure you’d hear a “Wat is da joh??” or a “Godverdoemme! Wah valt er naa ut de lucht?! Nen Englander!” and then they’d probably go look at say something like: “ei mo, dien hee een geweer”. And they’d continue with a “goh ligge, die zen aant schieten na mekander!”.
Nothing like that in the movie. Just boring English speaking people doing English, like in every typical movie. They did get the bus company, De Lijn, right in the beginning of the movie. Also some romantic images from the city Bruges. That was about it, regretfully.
Anyway, me and Tinne had a few good laughs. Funny Belgians, etc etc.
DBusGlibBindings and AsyncWorker combined
I added a sample to the DBus page that I wrote this weekend. It uses AsyncWorker. I also made the now two samples actually compile. Although I have not really tested them, you can download them too now.
After some longer time, a new fancy test-release. This release is the last release before the release with major feature changes to the core of the program. This release however includes many, many additions:
- Working translation support, including a German translation. See
- Generated title support. You can now have the title of an item build up from fields in the item.
- Improved item layout, you can now pack fields in a horizontal/vertical box and nest these. This includes a basic layout viewer. See
- Locking of the interface. This protects you from making accidental edits. See
- Basic Plugin support. This is very early stage, so plugin api is not stable yet.
- Framework for installing a few basic types on first-run.
It fixes the following things:
- Plugged several memory leaks.
- Fixed incorrect rebuilds, by moving to autotools instead of waf.
- Speedups, stuffkeeper starts in less then a second with 3500 items.
- Several usability fixes in Data list.
- Remove blue color from data-link, as it breaks dark themes.
- Fix text color when editing an item and the edit color shows.
- lot off small things.
Download
Download stuffkeeper-0.10.0
Summer of code 2008
I’m going to mentor three Summer of Code applications.
- E-mail activity for OLPC by Shikhar Bhushan
- Seahorse integration in Evolution by Zhang Shunchang
- SuperRandom, a predictive listening plugin for Rhythmbox by Charlotte Curtis
One of the Igalians who developed Modest and among many of his Tinymail contributions implemented the libcst implementation for handling certificates in Tinymail, José Dapena Paz, is going to mentor Zhang Shunchang’s application together with me.
Picking up what I left in 2005
I also just picked up AsyncWorker. I made it a little page and with the help of Tinne I improved its API documentation. Perhaps I will do a release someday (I never did, actually). Thing is that I hate the work involved with releasing. Especially since most of our development tools stink.
Note that my super fantastic lovely girlfriend, Tinne, has her own blog now. It contains a bunch of photos of our stay in Durham UK. In a few minutes, she just told me, she will put online a funny photo of me holding a fish bowl filled with cocktail.
















