Le blog de Tester

Vous êtes dans l'archive de la catégorie Informatique

Catégories

Amigos

Moi Tester

Planètes

Projets

Archives

mars 2010
D L Ma Me J V S
« juil    
 123456
78910111213
14151617181920
21222324252627
28293031  

RSS 2.0


Connexion

The part of the socket(7) man page about setsockopt(.., SOL_SOCKET, SO_PRIORITY…)  says:

« For ip(7), this also sets the  IP  type-of- service  (TOS)  field  for outgoing packets. »

I wanted to know how exactly it mapped the socket priority to the ToS field, so I looked in the kernel code for a while, and it turns out that in recent Linux 2.6 kernel, this is a lie. The ToS field is never set when the application selects the socket priority, only the internal priority of the packet is set. That said, the reverse is true, setting setsockopt(.., IPPROTO_IP, IP_TOS…)  sets both the ToS header field and the internal priority of the packet.

So the question here is: Who is wrong, is the kernel buggy? Or is the man page incorrect?

Also, dear lazyweb, is there any support for applications to set the DiffServ field? Or are they only settable through iptables?

I’m in Bangalore for foss.in. First, the country is awesome, the Indian food is amazing, etc, etc. The weather is also pretty nice this time of year, not too warm, not too cold, just right. Although it has been a bit rainy in the last three days.

But its not only the country that is nice, it is also an awesome conference, the organizers are really doing a great job. The venue is nice, the speakers are really well treated, etc. But more importantly, the level of the conference is also quite impressive. It is a great place to meet lots of good developers that we rarely meet in the « western » conferences. Free Software is really alive in India and it is great to meet the people here. After my Farsight 2 talk (slides), there were some really good questions, from people who had actually tried to use it. It’s the fourth (and last) time that I give this talk in front of different audiences, and I really got the best questions and the best interaction. The organizers wanted to make it into a truly developer oriented conference and they’ve really succeeded.

One of my non-geeky friends is currently trying Linux on his laptop. For some reason, he stopped it incorrectly and on the next reboot a fsck was forced and the fsck failed… he gets this:


*** An error occurred during the file system check.
*** Dropping you to a shell; the system will reboot
*** when you leave the shell.
Give root password for maintenance
(or type Control-D to continue):

Obviously, at this point, he had no idea what to do… He couldn’t boot into his system and he had no idea how to fix it.

THIS IS REALLY REALLY STUPID AND BAD!

And it seems all distributions are doing it, including the supposedly user friendly ones like Fedora and Ubuntu. All non-geeks will be completely lost at this point…

What should be done is: « Repairing your file system may cause errors!!! Do you want to: [F]orce Repair, get to a [S]hell or [R]eboot? » .. ideally in a nice curses front-end. And in the force repair case, just run « fsck -y ».

First, this is my first post on Planet Gnome, so I’ll introduce myself. I’m one of the developers of GnomeICU and Farsight. I work for Collabora, mostly on Farsight and related things. For those who don’t know, Farsight is the GStreamer based audio/video conferencing framework used in Telepathy. Its most prominent platform is currently Nokia’s Tablet, but its coming to a desktop near you soon.

For the last two months, I’ve been working on a complete redesign of Farsight, in an effort we call Farsight 2. The new generation RTP plugin is based on the excellent RTP implementation by Collabora’s own Wim Taymans. With it, we gain some exciting new features, most prominently A/V synchronization and multi-party conferencing. Also, the first generation wasn’t designed with video in mind and it wasn’t nice, but this time we’re trying to make it right. It’s now a GStreamer element that implements an interface, so it can easily be used in GStreamer based applications to give some of the integrated features Telepathy is designed for. I’m also trying to have nice unit tests, so we can try not to have the same kind of regressions we keep on fighting with Farsight 1. We also want to keep the API as simple as possible and well documented.

This week, I’ve finally reached an important milestone.. it works! So I had to make a screencast (sorry for cutting it a bit short at the end and no, its not slow, its the screencast thats 10fps):

Three way conferencing with Farsight

For those who want to try, you need the CVS HEAD of gst-plugins bad, and for the demo gui, a patch to gst-python. Then you can try my git tree. It’s all very new, so if it breaks, you keep the pieces. I’d also like to thank Philippe Khalaf and Youness Alaoui who worked a lot on the design and all the people who wrote the code that was carried over from previous versions of Farsight.

Update: Oops, the git repository was not fetchable by http, its now fixed… Updated again: now we have a gitview and git server, so I’ll let the link point there instead

Collabora has provided me with a new computer: a ThinkPad x60s. Its really nice, extremely light and the battery lasts for a very long time (enough to fly to Europe!). On the inside, it’s almost all Intel, which means that there are Free drivers for everything (now that iwlwifi has been released). Well actually, not everything, one small chip resists, the modem. But it seems to be supported by Linuxant’s hsfmodem (not that I would use it). Did I say that suspending, both to RAM and to disk works like a charm? Hot-plugging an external display also works great with Xrandr 1.2 (again, thanks Intel!). And everything I needed to make it work is right there, in our Portage tree.

Monday, I started working at Collabora. Its been a pretty exciting few days, I guess mostly the excitement of the new job, new people (well new person) and new office, which we have yet to find. I can’t say how happy I am to finally be working on Free Software and being paid for it. And now that I do stuff that’s not secret, I hope I’ll be blogging more often (but don’t really count on it).

I’ve kept myself busy doing stuff on Farsight. For those who aren’t familiar with it, Farsight is a gstreamer based system to do voip and videoconferencing. Its currently used in the Nokia 770 and N800 internet tablets.

During the last few weeks, I’ve been playing with my new toy, a bluetooth Logitech Cordless Desktop MX™ 5000 Laser (could they make a shorter name?). I got it as a replacement for my MX 3100 which has battery problems (and the battery on its mouse isn’t replaceable, so they sent me a whole new kit, thanks Logitech!). The MX 5000 has a pretty standard Bluetooth MX1000 mouse, but the really cool thing is the small LCD on the keyboard.

Sadly, there was no way to control it from Linux. I hoped it would be similar to the G15 for which tools exist, but its not. So I got on a quest to use it to its full potention on my favorite Free operating system. Luckily, I found someone who had a similar problem on Windows and did a lot of reverse engineering and made a .NET library. So armed with this library and a Windows usb sniffer, I managed to get most of the screen displaying functionality working. And I created mx5000tools. The core of the tools is a library that incorporates all of my knowledge off the keyboard’s control. There is also a command line utility called mx5000-tool that exposes most of the functionality of the lib for scripts and such. The HID reports returned by some keys of the keyboard are not currently interpreted by the HID driver in my kernel, so I made a small deamon (mx5000d) that translates them into usable ones and then forwards them using uinput (so X can read them with evdev).

I still have some limitations, it seems that some HID reports are not passed to hiddev by the Linux usb hid subsystem, so we dont get events from some of the keys. And it does not work in Bluetooth mode on Linux because Bluez does not yet have full HID support with hiddev. Finally, we still do not know how to change the content of the menus.

I’d also like to improve mx5000d to have features similar to the Windows software with notifications of IM messages and the name of the currently playing song. I guess galago and the d-bus interfaces to gaim/rhythmbox will be pretty useful there.

I spent my whole weekend fixing stuff in GnomeICU. It started by fixing a few bugs.. And then I decided to port the visible/invisible/ignore/online notify lists to use the newer GtkTreeView instead of the old GTK+ 1 style GtkClist.. and I only stopped coding two days later. The MVC implementation is really nice and the GtkModelFilter thing is really powerful. I now have only one data store with the contact list and all the widgets that show the list (or parts of it) are just filtered views of it. And I also implemented my first drag and drop stuff (and it works!). And then when all of this was done, I realized that a bunch of things that worked with the previous versions have stopped working (like changing my user infos or sending contact lists) and obviously AOL still isn’t publishing its protocol. And that killed my motivation. Proprietary networks suck.

It’s also my turn to way in on the Novell/Microsoft deal. Obviously, I find it appalling that a major GNU software distributor would enter in such a deal. But I think it shows a great difference between Novell and Red Hat. And the difference is that there is no member of the Free Software community near the top at Novell. Red Hat was obviously founded by members of the community and they are plenty near the top. It seems that Novell is run purely by business people who are from a proprietary software background at best (and probably are business and accounting majors) and I’m pretty much certain that they had not foreseen the backlash and I’m not sure that they would have cared had they predicted it. That’s why Novell has such an erratic behavior from a software freedom perspective. Remember that Caldera/SCO was founded and filled by ex-Novell people and they were also always a bit ambiguous on the whole Free Software thing (although they did love of good things in the old days).

And finally, it seems that the free software people are winning at Sun. They are freeing Java under the right license. Bravo! And I think the whole community should thank them. Congratulations Sun! You are shinning brighter every day!

Miguel had an interesting comment about the release of Java to the effect that a large corporation could develop massive amounts of code better than a distributed community if it was really focused. And he seems to find that worrying. This really highlights the differences between the Open Source community to which Miguel seems to identify himself, which is interested in the collaborative development of software, instead of the FSF-style Free Software movement which is worries mostly about how the software is distributed, not how its built.

Since I upgraded to Gnome 2.16, I had to enter my password three times on login (gdm, ssh-askpass and evolution/gnome-keyring). and there are limits to everything. Recent blog posts on Planet Gnome inspired me. So I tried to do the same thing on Gentoo. After a lot of wrangling, I ended up finding/fixing two bugs in pam_keyring and getting a working configuration. If you want to do the same thing, emerge sys-auth/pam_ssh and sys-auth/pam_keyring and look at the gdm example in the pam_keyring doc.

My keyboard has way way to many keys. Some of them are mapped into event numbers that are over 0×100 and the Xorg evdev drivers considers those to be mouse buttons.. Which is obviously wrong. After a little digging, I found the problem and I have a patch. I also decide I wanted my old behavior to the windows key back, that is, having it as Mod4 and nothing else, so I made another kinda patch. And now, for the first time since I bought that MX3100 crap, I have everything working the way it should!

Cette Page est en XHTML 1.0 Strict et CSS 2
J'utilise maintenant WordPress comme tout le monde.