I have a Raspberry Pi with Raspbmc in my living room to watch tv shows and stuff. XBMC is really great software. I have the Pi hooked up to an Airport Express and there is a problem. The Airport Express takes some time to connect to my wifi network. This takes so long that the Pi is done booting and XBMC is running for some minutes by the time the network comes up. This disables one very useful feature of XBMC: the automatic library scan. When XBMC tries to scan all the sources for new content the network is not available and so it does nothing or at least does not find anything new.
The solution is to set the network manager to send a command to XBMC to scan the video sources when the network comes up.
You need to place the following script in /etc/network/if-up.d/. Each script in this folder is called on network up. This script sends a JSON request to XBMC to scan all video sources for new content. You may need to change the user, password or the port if you changed them in the XBMC settings. This are the default settings.
#!/bin/bash
# Don't run if the loopback device comes up
[ "$IFACE" != "lo" ] || exit 0
# Send JSON command to XBMC to scan video sources
/usr/bin/wget --header="Content-Type: application/json" --post-data="{\"jsonrpc\": \"2.0\", \"method\": \"VideoLibrary.Scan\"}" http://xbmc:xbmc@127.0.0.1:9090/jsonrpc --spider |
To install this script you need to ssh into the Pi and place it in /etc/network/if-up.d/xbmcupdate. Now you can enjoy your latest downloads linux distributions without any hazzle.
Diesen Artikel habe ich ursprünglich für ubuntuusers.de verfasst und möchte somit meine Erfahrungen im Rahmen des Google Summer of Code schildern.

Alles begann als ich Anfang des Jahres bei heise online mal wieder über Google Summer of Code las. Ich wollte schon immer meinen Teil zum Projekt Gnome beitragen und so etwas an die Gemeinschaft zurückzugeben. Ich benutze den Desktop nun schon seit mehr als vier Jahre. Also fing ich an im Wiki von Gnome ein wenig herumzustöbern und stieß auf eine Seite mit Ideen zum diesjährigen Google Summer of Code. Nach längerer Überlegung dachte ich mir, ich versuch es einfach einmal bei Anjuta.
Den ganzen Artikel lesen …
It is done. Finally we have published Sudowars on Google Play and you no longer have to download it from the Website and install the apk manually. I hope that more people encounter Sudowars now. And the best thing about it is you can read the source code, write more code or fork it.
I have many new ideas for Sudowars, but I don’t know when I will find the time for it. Meanwhile, you can play the multiplayer.
Three week ago I wrote two exams, which I had to learn. Therefore I had no time for Anjuta. My energy for this semester was as well as consumed and the documentation for Clang is not really the best. Finally the Olympic games were no help, because that were too exciting to ignore that games. So a TV in my room interrupted me frequently from programming. ;-)
Thus after finish merging same code of the language support plugins I hadn’t find many time to write the Clang plugin. As you can see my code this plugin isn’t complete, but it’s a good base to complete it.
Unfortunately I won’t have time for Anjuta in the near future, because I have to write some exams and add some new feature to my other project Sudowars, which is open source since a couple of weeks. But I’m going to complete the Clang plugin and fix some bugs in Anjuta.
My thanks goes to the Anjuta team and specially on my mentor Johannes. They helped me a lot and I learned many things during Google Summer of Code. I would do it again at any time.
Everybody knows tabs and tabbed applications like webbrowsers or OO Calc.
The grouping of multiple instances/windows of a single application makes perfect sense and removes clutter from the user’s workspace.

So what’s wrong with it?
Its implementation! Basically tabs are nothing but window management + radio buttons. Somehow toolkit developers started to implement their own tabbed view and handled the window management. Everybody who’s familiar with the X protocol (widely used under Linux/Unix) might have figured out already, what I’ll be complaining about.
X windows have properties. One of them is the window class. This window class property could allow a composite manager to provide a tab view. The tabview could provide a consistent look and feel accross toolkits and even expose tabs in a new (maybe even better) way. Seriously, all a window manager should be doing is handling windows/window groups. It’s not the job of a toolkit! Toolkits may proxy tabbing for platforms like Windows, but they shouldn’t implement their own!
Why are things the way they are right now?
I guess nobody can tell for sure. But I’d put my bet on a situation where developers said: “Let’s implement our own tabview, so we’re more awesome than the others.”. And maybe they thought: “Our usecase for tabs is waaaay different than those of other applications.”. Really? If I had to guess I’d say you’d need a text preview (maybe even a livethumb) connected to a ‘show window’ like mechanism.
Are only application/toolkit developers to blame?
No, I think it’s mostly the fault of desktop environment/shell developers (I’m looking at you GNOME/KDE/Enlightenment/Cinnamon) who didn’t show off how nicely tabview/application could be done in a generic fashion yet a bit customizable for using apps.
I hope that will change and developers start to use infrastructure that is already there (e.g. PID+window class) instead of propagating inconsistency while making the world a ‘better’ place.
Maybe I’ll even get around to implement some prototype ‘generic tabbing’ for Enlightenment and it’ll gain traction and inspire developers of other desktop environments.
As an outlook of how I – personally – could imagine consistent tab experience, I’d like to refer to Clayton Miller’s concept, he presents at 10gui. It already takes the transition of modern input technologies from hard buttons to more touch-based into account.
The cache behaviour for each language plugin is still the same as before, because the procedure is partial very different. However where I could find similarities, I merged the code to the new parser-engine plugin.
From time to time it’s a little bit troublesome. For example yesterday the editor didn’t show the proposals for the word, which I started to type. I searched about six hours to find a solution for the problem. Finally I read the source code of given methods, which I used in my code and couldn’t find any documentation. I found out what each method does exactly and could solve the problem.
I hope that I finish my work on merging the language plugins very soon and devote my time to the real work: the clang plugin.
Did you ever try to work with the Gimp with Ubuntu’s global menu activated?
It doesn’t work! I try to open the menu and fail so literally everytime because it’s not there when the tool windows have the focus. However you will notice that when you already moved the mouse all the way up, because the f**king thing is hidden as long as the mouse is not over it.
I seriously hate this thing! This is the work of morons who do not use the computer for actual work. I have no other explanation for that.
For everybody like me, who believes window menus should be in the window they belong to:
sudo apt-get autoremove appmenu-gtk appmenu-gtk3 appmenu-qt
From now on this is the first thing I have to do on every Ubuntu machine I use.
This message was brought to you by the minstry of rants.
As part of merging code and unifying the behaviour of each language plugin I improved the Vala plugin. Calltips show method names and return types now instead of only the parameters of the function as it was before.

The Python preferences before and after
Additionally the vala plugin has its own preferences widget now. Before it used the preferences of the cpp-java plugin. As a consequence the Vala plugin no longer depends on the cpp-java plugin. While doing this work I learned, how I can integrate C interfaces in a plugin, which is written in Vala.
But the Vala plugin is not the only one which got an update. The Python plugin has the “Add ‘)’ after function call autocompletion” option now. With this new option the Python plugin has the same functionality as the other language plugins and so I made the preference widget looking like the preferences widget of the other plugins.
Moreover I added the new behaviour of C/C++ in Python and cleaned up the Python plugin a little bit for example of deleting unused variables.