There were awesome the talks in GUADEC, I couldn't go this year but there were some interesting talks about Cairo, Gstreamer, GNOME Applets, Lighting talks talking about Xgl, Luminocity samples, etc. Thanks to the fluendo people for streaming. :)

In the other side I decided to change Gentoo to Ubuntu in the laptop and the server, I was boring to compile everything, but I have to recommend *NOT USE BREEZY*, it's very unstable, I have had problems with it, *USE HOARY*. Actually is a kubuntu, but it has the same packages, so I installed GNOME and KDE in the laptop.

Now I'm using again GNOME, but I had some problems and I will comment how I solved it.

First, I want to migrate my mails from Kmail to Evolution, but Evolution doesnt have the posibility to import Maildir or Kmail mails, but you can import a single mbox file. In this situation the import filter is better in Kmail because you can import mails from Evolution, Netscape, Thunderbird, etc.

Anyway I stored every folder in a mbox and later I imported from Evolution, so now I have retrieved every mail in Kmail.
Later I missed the posibility to have a background per desktop, but I found Wallpapoz, so now I have the same feature than in KDE desktop. It would be nice a integration of wallpapoz in GNOME.

I also had problems with shortcuts in GNOME, perhaps a bad installation, but now I have set every shortcut I need to handle, except currently I don't know why I can't change to another desktop with Ctrl+Alt+position. If you look KDE you have local shortcuts in every application, so It's easy to customizate every application to move faster, anyway there is a trick in gconf to make the same in GNOME.

Currently I think it's a little difficult to change from KDE to GNOME, because applications in KDE have more features, and there are somes I'm missing. I think it would be nice to have a usability study of people from GNOME using KDE and viceverse, it could be a good way to integrate more the desktops and share common things.

For example, now I would like to have the bookmarks from Konqueror in Firefox/Ephiphany, but now I think is not posible.

Also I miss the konqueror hybrid between browsing web and folders, because in firefox the views are not the same than a folder view when you are looking a http/ftp site with some files. Anyway I'm so proud of desktop, I think both KDE and GNOME desktops will rock in one or two years where the people will adopt more extensively. I expect to be a reality the 10% of GNOME desktops in 2010 like Jefff commented. :)

And in the work, currently I'm making some applications using Mono framework. I'm very happy with the Mono development, although I started to work in 2002, now I dont have so much time to contribute to Mono core, but I consider so stable to make applications with it.

I was testing crossdev tool to cross-compile binutils, gcc, glibc and linux kernel to powerpc.

Mono

Lastly I have been playing with Mono framework and the GNOME libraries, but I find the problem in portability, so I'm a little limited when I want to make a portable application. After changing the code from textview to gtkhtml in an application to render the output, I had to revert the code because gtkhtml only works in GNU/Linux. Then talking with Zack, he talked about Gecko# and the monodoc port (without gtkhtml), so I changed the code. Now it renders HTML with Gecko# and gtkmozemb. :-)

Anyway Tor and Zack are making an awesome work, I think when we have an Orbit/bonobo working in windows more people will use GNOME applications. Currently KDE developers are working in a portable desktop for the 4.0 release and in the GNOME area there is some work porting Evolution/Beagle/Monoapps.

Zack also worked in gtksourceview, but I think we will have to wait to look a portable Monodevelop.

The last week I was talking about the Linux kernel in the University in the IV Jornadas de Software libre. I gave an overview of the sources talking about security, networking, scheduling, new archs, drivers, etc.

Work

Now I'm working in s21sec, a spanish security company, since the last November. I'm really happy with my new work, but I have been too busy. I will try to blog more frecuently.

FOSDEM

A few weeks ago I was attending with some URJC friends to the FOSDEM. I knew some security developers like Martin Roesch (snort) and Gerald Comb (ethereal). They were talking about the future of the tools. I also attended to some another interesting conferences of some known developers like Mathias Elritch about KDE, Alexander Larsson about Nautilus and Alan Cox. It was really funny and I had the chance to make the LPI 101 exam.

- Feeds reader: Use the same location to store the feeds and the configuration file with your rss url's. (akregator/blam/..).
- Mail applications: The same directory for mail. (kmail/evolution/..).
- Gtk styles in KDE or Qt styles in GNOME. (gtk-qt-engine or a posible qt-gtk-engine).
- Same global/local keybindings for applications.
- Integrate KDE applications in gnome-panel (both use the same freedesktop standards).

Mono

Miguel has posted some interesting notes about the Mono meeting in Boston.

Now I can retrieve and resolve objects from the chmlib. I had some troubles with the moc compiler appointing to a bad cpp reference (no such signal/slot), so it was difficult to find some bugs in the used signals (the code was right, I only needed to extract the cpp and do a make force-reedit to regenerate the moc).

So I can view contents in the KHTMLPart when I open a chm and select a KListViewItem object in the KListView.

KDE

A list about some interesting bugs:
- Konversation: Hide server tabs, nick colour.
- Konqueror: Drag and drop tabs instead copy KURL.
- Konsole: Cut and paste when you are using wget/btdownloadcurses.
- UI: Instant changes, not used widgets and buttons in dialogs. Anyway these changes are going to be part of KDE 4.

GNOME

HIG: Perhaps it would be nice to adopt the settings configuration used in MacOSX. Currently if you want to do a change in an application, you have to select some checkbox configurations (instant changes) and then you have a 'close' button. In OSX the close button doesn't exist (better than the three/five buttons in KDE :-)). In critical changes you have a button to restore the configuration.

Anyway I'm not agree about some things like put the less destructive actions in the left. I think you are assuming the user is dumb and actually doesn't want to do this action. A example: open gedit, save document, appears the nice GtkFileSelector and you find the cancel before the save as. And if the cancel action is less destructive, you assume that are using the mouse, because in the keyboard the default action is 'return' and then you will save the document (perhaps is a less dumb action ;-).

Yeah! Now I'm using the KDE desktop, but it doesn't mean I have left the GNOME desktop, only I want to know better both desktops so in the last weeks I have been programming with Qt/kdelibs/kparts and I have started two little aplications.

The first one is killo, a little browser. Currently it only supports web pages browsing.

The other one is kchm, a chm viewer. It's in beginning stages, so it only retrieves information from a CHM file and shows the contents.

Enhanced KListView look and feel.

I have reported a wishlist bug about the KListView appearance. Yeah, although I can write my own style with a QListView and QPainter/Arthur, I would like to see the QListView decorated root similar to the GtkTreeView, or at least something like in digikam.

Both email clients use different formats and ways to store the folder info. Kmail stores the info in ~/Mail and Evolution use ~/.evolution.

I think a good idea would be to propose a standard to store mail between mail applications so you can share the mail data.

I have reported a bug in kde bugzilla about it. A first solution would be to look in kmail the .evolution folder and try to retrieve the mails (independient of the mbox/maildir format). The same can be done by the Evolution mail client. I will try to report it later to Ximian bugzilla.

Libcrypto is a library made by the OpenSSL team which solves the problem of generating the MD5 hashes for the fileCache. I used STL sets for the fileCache implementation, having to come up to speed on some of the STL in the process.

After some experiments in C with libcrypto, I now can generate a hex string from the file's MD5 hash. I have ported this code to C++.

I have finished the module for Samba 2.2, it is now working with 2.2.9. There are not a lot of changes in Samba after 2.2.4, so it should work with versions 2.2.4 and up without problems. In versions before 2.2.4 there are changes in the VFS API which makes the module incompatible.

C++/STL

I have been using Mutex/MutexHandlers classes, which underneath use pthread_mutex_lock and pthread_mutex_unlock. This is needed to protect a linked list from access and modification from multiple threads. For data structures, I have been considering using STL's built-in support, but they seem overly complicated and somewhat painful.

I have been playing with iconv (not the libiconv one, else the integrated in glibc) to convert the SAMBA strings encoded into UCS to the current locale, so it shows well the registered files to syslog without odd chars. For the current locale implementation I've tested first the nllanginfo(CODESET) function but I had some troubles getting used locales so I have done an easy little program that gets the LC_ALL, LC_TYPE and LANG env vars and then gives the locale to a convert program (the iconv one).

Anyway I think the samba-vscan modules will have the same trouble when registers messages with not-known characters with syslog because is printing the Samba provided information in UCS.

GCC

The known problems in the sockets communication was solved, now the G++ compiler is more strict (was introduced the new C++ parser in GCC 3.3) and when you do a cast with a reference first you have to do the cast and then the reference. For example that kind of things the C Compiler let to do it in C and in the G++ 3.2 version, at least is finally solved now in the code.

Arandano

David Waite finished the encoder last night and tons of unit tests. The encoder parses .torrent files and allows to generate .torrent files.

In a torrent file there are four data types within torrent files strings, long integers, lists, and maps. They all have a format, lists and maps can nest so a torrent has a document object model of these four types. So there is a dictionary at top, and it has an entry called 'info' which is another dictionary and one called files which is a list of dictionaries, each representing data about a file within the torrent. David is going to make an actual file type and parser, but things seem very free-form and we wouldn't want to break if someone encoded a torrent with an experimental bittorrent fork which added additional data.

When I talk about a Document Object Model is not really an XML but one of the bittorrent libraries for java allows to save as xml.