Older blog entries for zeenix (starting at number 105)

7 Feb 2007 (updated 8 Feb 2007 at 11:54 UTC) »
The wings of Gabriel:

In the past few weeks, I gave Gabriel some more love whenever I could get some time. The result is that the next release of Gabriel would be a simple binary, named gabriel that will act as a local proxy of a remote D-Bus bus. User can choose the transport method used by the proxy through a command-line switch, irrespective of what transport method the remote bus uses. However, since these new changes depends on the socat's ability to handle abstract unix sockets (which is what is used most often as the transport for session bus on a linux desktop), I will have to wait for the next release of socat before i make the next release.

Anyone eager to try new and sexy gabriel out can grab the latest gabriel from svn but he/she will need to install a patched version of socat on the remote end and the patch can be found here. Note that gabriel doesn't include any server-side scripts/configs anymore but socat and ssh are still needed on the remote end.

Due to the second TODO for Gabriel, I thought I should contribute the only missing part in libgnet that I'll definitely need when/if i actually start using libgnet in gabriel: abstract unix sockets. The result was this patch, which has already been accepted (with some changes) and committed. Thanks Tim!

Wii

So i finally got my wii yesterday. Its quite cool indeed but unfortunately the shop people forgot to put the extra controllers and games i ordered. So me and ansku could only play the few stupid wii sports games and we had to take turns. Hoever, this morning i bought Red Steel from a shop and enjoyed playing that the whole evening today. Although it's not a game ansku can enjoy.

Dependence sucks

Just forgot to mention a source of frustration in my last blog. It's been at least 8 months that I first emailed Jeff Waugh to request the syndication of my blog on planet gnome but i didn't received any response. At GUADEC I mentioned that to him and he told me to keep reminding him about it and since then i have been doing that but never i got any reponse. I tried two of his emails that i know of but no response ever. I really hate this attitute of ignoring people but seems people enjoy doing that when they are incharge. Anyone know a way I can get his attention other than sending him emails?

14 Jan 2007 (updated 15 Jan 2007 at 11:43 UTC) »
The vision of GOD:

People often don't get the very point of my new project, so I thought I should further explain a little more of what I intend to achieve. It is actually all about distributed multimedia pipelines. E.g Lets suppose I don't have a gstreamer plugin on my N800 device that provides any mp3 decoder element (although it's not true at all) and i want to play some mp3 files but I have several mp3 decoder elements provided by different plugins on my mac. How would i use those elements from my N800? Thats where GOD kicks in. In my application, I use GOD to create the mp3 decoder element for me on my mac mini, while I create the gnomevfssrc (or whichever source element is appropriate for that particular scenario) and the sound sink on my N800, connect them, but them in the same pipeline and play the pipeline and tada! I am playing mp3 on my device without having an mp3 decoder on it. This is just the simplest example I could think of but there can be as many practical implications/use-cases of the project as the extent of your imagination.

Those who are familiar with Gstreamer API must have questions and doubts on how this all will be achieved. For them, I'll provide some pointers: D-Bus, Gabriel, Gstreamer magic (GDP, network clocks etc) and lots of hard thinking and some work. :)

After some communication with both D-Bus devels and the socat devel, there is a patch for socat for the support of abstract unix sockets which will be included in the next socat release. For Gabriel, this would mean the ability to connect to a normal dbus session bus. Which would also mean the removal of the server-side stuff, which further simplifies the project and simplicity is always a good thing.

Someone has entered life:

I now have a new girl-friend, Anna-Maija Karjalainen. She studies History at the University of Helsinki and is a high-school classmate of a very good friend of mine also named Anna. Since there is a big name-space pollution of the name Anna in Finland, everyone keeps calling her Ansku so I also prefer to call her by this nick of hers. It's been more than a week that we started actually dating and now we spend as much time together as we can. Eeh! it's hard to write about her when she is sitting next to me reading everything and laughing at each sentence so i won't write more. :)

One small step for GOD

The first version of Gabriel 0.1, "Fly Gabriel Fly" was finally released today. Gabriel is a client-server application that allows you to create D-Bus connections on a remote machine over a secure (SSH) channel. The README file contains information on how to build, install and use it along with the known issues.

The project is the first step towards the GOD (Gstreamer On-Demand) project, which would allow applications to create multimedia pipelines (or parts of the pipeline) on a remote machine. Nonetheless, Gabriel can be used by other projects as well, which is why i have kept it as a seperate project. Now the next step in the direction of GOD would be to come-up with the D-Bus API specification.

Back from Canaries

So the one week trip to tenerife is over and I am back at work. After spending the whole week together on this adventure me, Elina and Liisa have become quite close friends now. We had a very good time there and seems that me and Liisa are good at getting into quarrels with eachother.

One unfortunate thing was that we happen to be staying in the northern part of the island where there is no nice beach. We had to travel to the south for the beach, which we couldn't do everyday. This ruined my plans of wind-surfing. We did jet-skiing of course and it was a lot of fun. I also wanted to do para-sailing but on our last day it was far too windy for that.

We also took the guided trip to Tiede. While on the top of the volcano people were looking around and taking pics, we were busy breaking wallnuts like squirrels.

The Linux/GNOME audio war:

When i first started to use Linux and gnome (in 2000), i came to know of a creature named the sound server. At first, i wondered how does all the windows application survive without it if it's such an important thing. I slowly realized that OSS (ALSA wasn't ready at that time) did not support writing to the sound device by multiple applications if the sound device and/or it's OSS driver didn't support that. During the past few years i saw several different sound servers popping-up from here and there that claimed to be the alternate to the infamous esd that everyone is sick and tired of. But what actually happened? esd is still there and now we have bunch of sound servers out there and none of them actually replaced esd. There has a been a recent flame-war on the gst-devel ml regarding that and like many other discussions/debates on this matter, it didn't reach any conclusion at all.

My opinion (and that of Ronald's) is very simple: We don't need a sound server at all anymore, not as part of the desktop at least. ALSA provides the sound mixing, either through hw (if available) or through dmix. In response to this suggestion of mine, some people on the ML told me that a sound server needs to do a whole lot more than just allow the applications to write to the audio device at the same time. If that is the case, then why do we need a sound processing server to be part of a desktop? Ok! Let's assume that is true. Why not leave the sound mixing part to ALSA and let the application developers and users decide if they need/want to use a sound server and which one to use. I am quite sure, a good gnome audio developer would just use gstreamer for all the audio related tricks instead of using a server/service for that.

I wonder how good developers manage to turn a very simple problem into rocket-science. In the words of Einstein: "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."

4 Dec 2006 (updated 4 Dec 2006 at 15:25 UTC) »
To blog or not to blog:

Many people have observed that i haven't been bloging for quite some time now but there was at least one good (IMHO) reasons behind that except for laziness: I was talking about my new project all the time but there wasn't any real code at all except for some test apps on my hard-disk. The reason i didn't blog all this time is that I wanted to change that situation before writing another blog entry. Unfortuntely, making dbus actually working over dbus didn't turn out to be as easy as i thought of it. I got it working this morning but now lays ahead the challenge of putting this Gini into a small and innocent looking bottle (library). That would have been very trivial to implement if libssh provided a complete implementation of tcp port forwarding but unfortunately libssh doesn't implement the client part of that and i would have to do that myself too. I had a conversation with the author of libssh and turns out that he has good reasons not to provide the implementation in the library.

Another year deduced from my life:

So yesterday was my birthday but since it was a sunday (a day when everyone wants to stay home and enjoy the hangover) , Liisa and Elina thought it would be better to celebrate it on 5th (tomorrow) as 6.12 is a public holiday in Finland. Liisa and Elina have arranged the party and I have been kept in dark about it. These two girls have become very good friends and now i feel much at home in Finland. Three of us will be going to Canary Islands for a week in two weeks and I am quite sure we will have a good time there.

Alberto gave me a very unexpected gift: A Bible. :) I still am quite suspicious about his actual intent but according to him, he just wanted me to 'know my enemy'.

24 Oct 2006 (updated 24 Oct 2006 at 21:53 UTC) »
The fate of the geeky kid

Turns out that the chopper they are selling at the verkkokauppa is a Chinese made copy of the original thing so it didn't last for even an hour. I returned it the next day. OTOH, the shocking tanks arrived within two days and now everyone in the office is fond of it. I have come to know of two shops in Helsinki that sells kits for many kinds of cool stuff, including RC helicopters and aeroplanes. Although according to Karoliina, a chopper is much more hard to control than an aeroplan but I am much more attracted to things that are capable of hovering. The only problem with these shops is that they are only open 9-5 like many other shops in finland. I wonder how these people are able to make money when they are open at a time when everyone is busy at their work. The country really sucks in some ways.

Regarding GOD

On one hand, there are people who think that this idea has a lot of potential and it's definitely worth a try but on the other hand there are people who think it's simply funny and stupid. I heard that thomas already has a project by (very astonishingly) the exact same name. I asked him to read my previous blog and tell me if our GOD is the same but so far he haven't commented. At least, Stefan and Michael Dominic thinks good about the idea and we intend to have a small discussion on it over a cup of coffee or something.

Yannick assigned two trainees to me to work with me on the video-whale but unfortunately both of them had to leave the company soon enough. However one of them named Sandeep thought of working on it as his final year project. His professor was reluctant to accept it as such due to the fact that the project is not theoretical enough. Recently, when i gave it a thought, i realized that video-whale can be a practical implication of this project and i suggested that to Sandeep. This morning he told me that he likes the idea and agrees with me that GOD would be much better idea to work on as a final year project. So seems we'll have at least one person on board having enough motivation and time to continue to work on the project. :)

As I mentioned last time, there will be two challenges:

  1. Wrapping of essential GStreamer API to D-Bus
  2. Making secure remote D-Bus possible

I can easily imagine how #1 can be accomplished since it would require more time than brains but i am still puzzled regarding #2. Implementing a new transport for D-Bus is hairy as you can't just implement some custom transport mechanism object and ask D-Bus to use that. Someone of #dbus suggested that i can probably combine ssh's built-in port forwarding feature with the TCP transport of D-Bus. But this solution wouldn't work out of the box either since D-Bus daemons don't listen on TCP by default because of obvious security concerns. Any have any ideas on this?

The first break-up of my life

Two weeks back when tania visited me, I realized that we have big problems, especially the huge language barrier. So I finally decided to break the relationship before it's too late. Although i wanted to remain a good friend of hers but seems thats not something she would like since she stopped talking to me as soon as i suggested the idea of being 'just friends' from now on. I must say that it was (and is) an extremely painful experience to say something like this to a person who is very much in love with you.

Awakes the geeky kid within

Some days back, someone on #maemo referred to the new virtual bluetooth keyboard. I read about the invention of this new technology some years back and had been waiting to see it hit the market and finally it's there. However, i am not too anxious to try it out so I'll wait till it becomes affordable. Once on thinkgeek, i started to browse the other products until i found the Micro R/C Helicopter. I was more than ready to hit the "Add to Cart" button until i saw the big note at the end of the page: "..we are unable to export this item outside of the USA due to charger voltage incompatibility." Quite a disappointment! But then i found The Ultimately Sadistic Office Gadget and since it was available for the whole world, i couldn't resist and ordered it. I think some of my friends here would find it as addictive as I would. I was also able to find other nice geeky toys but i think I'll buy them some other day when i have plenty of money to spare.

I was still upset about why i wasn't able to get the chopper and shared this with a Finnish friend on IRC. I was so happy when he told me that the same product is available in verkkokauppa (a famous computer shop here). So tomorrow morning, I am going to buy this cool toy. :P Lets see how long does these obsessions last.

Gstreamer On-Demand (GOD?)

Some days ago an idea hit me. The more I gave it a thought, the more possibilities came to mind and the problems related to those possibilities. Here is a short summary of the stream of thoughts: How about an on-demand gstreamer pipeline creator, yes a remote server that the client connects to and gives it a pipeline description in the form of xml and the server constructs the pipeline from the received xml and plays it. WOW! sounds interesting, would be great to have the client-side inside the Gstreamer editor. Oh wait! this would be very nice for the 770 experiments too: You create the pipeline using Gstreamer editor on the desktop machine and then just hit the deploy button and tada the pipeline plays on your 770. I don't know of others but I think this feature would make my life easier.

OK, seems it's not a bad idea after-all so lets think about how: how would the client and server communicate? what would be the medium and how many kinds of requests can the client make? etc etc. xml-rpc is what came to mind at first but then what about the security? I wouldn't want a random guy from some random country to play mp3s on my 770, would i? How about D-Bus? It is completely secure since atm it doesn't support communication between any remote communication out of the box.

That led me think of an easy and simple way to implement a secure transport for D-Bus. Fortunately, I was able to come-up with one: There is already a library called libssh and I have already tried it and it works (TM). The client-end uses libssh to connect to the remote machine over ssh, launches a particular application and then that launched application acts as a remote DBus proxy. I am not at all an expert on D-Bus but fortunately at least one of my friend is so I intend to discuss about this idea with him (and maybe other D-Bus devels). It would be nice if this ssh-based DBus transport idea turns out to be worth implementing since I am quite inclined towards implementing GOD (it's a good name isn't it? ;)) using D-Bus. Just a moment ago, another part of this great idea was revealed to me: Just wrap the GstPipeline API to DBus and call it the GOD. :) Suggestions and Criticism more than welcome but don't dare criticize when i actually start doing it. :)

96 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!