Older blog entries for alejandro (starting at number 51)

24 Mar 2005 (updated 24 Mar 2005 at 17:41 UTC) »

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


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.


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.


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.


- Drag and drop tabs in konqueror.
- Cut and paste in Konsole (btdownloadcurses/wget)
- Kde-volume-manager (the same gnome-volume-manager using libhal, sysfs, hotplugging, udev, qt-dbus/dcop and an additional kde application).
- KMail plugins. (like EPlugin in evolution)

Integration between desktops.

- 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).


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


- Filter the html contents.
- Follow chm links in the KHTMLPart.
- Toolbar.
- Some actions like: zoomIn, zoomOut, print a chm, ...
- Command Line.
- A new kchmListViewItem to enhance the view.


In two weeks we will celebrate the second GNOME meeting in Madrid, in the URJC. I will be talking about the freedesktop project.


It would be really useful to have a command line option to choose the workspace when your application is launched.


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.


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.


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 ;-).


A nice way to package applications with a Gtk and Qt frontend.

Gentoo Documentation

More updated documentation about Gentoo: - KDE Configuration - NX - UML

22 Oct 2004 (updated 22 Oct 2004 at 15:32 UTC) »

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.

The reported bug is in KDE bug tracker.

Integration between Kmail and Evolution

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++.

10 Aug 2004 (updated 10 Aug 2004 at 16:50 UTC) »


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.


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.

3 Aug 2004 (updated 3 Aug 2004 at 17:13 UTC) »

SAMBA and iconv

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.


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.


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.


I've only created an skeleton of the Samba 2 code and updated the Samba 3 one. In the Samba 3 side I have created a linked list to follow the opened files so the filtered files don't notify read/write/unlink/rename operations and organizated all the code in subversion.


At home in the desktop computer I have updated GNOME 2.6.1 to 2.7.4 but I experiment some troubles viewing files in nautilus. Then I'll see if it was any problem with the update, at this moment is making an emerge -e gnome (so it will be compiled with gcc 3.4.1 and glibc with nptl support). I tried to compile the last Ximian OpenOffice build (1.1.61) but it requires gcc 3.2.x so I will try later with an old gcc profile.

Nice article of Davyd about new GNOME 2.8 features.


I would like to go there, a lot of interesting conferences, like in the OLS and Kernel Summit.


More work in the Arandano code. At this moment we have almost finished the bencoder (it specify all encoding of the bittorrent file) and the storage (basically maps the file in memory ranges).

Now we are beginning in the Download.cs that handles the code for the data transfer.

I have uploaded in a different svn module the bittorrent python code.

Samba VFS Module

Now the module is filtering operations and is taken the information from a xml configuration file. In the configuration file I can filter contents like extensions, directories, all files, activate filtering and the default paths used.

I have fixed some things related to case sensitive filtering and autotools stuff. Now I don't need a manual libtool compilation to link the library with pthread/libxml.

GCC troubles

I have been getting some errors using g++ 3.3 versions when you use a reference to a pointer with a '&' giving a: non-lvalue reference with '&' in accept sockets code.

The c++ code compiles well in a Fedora Core2 and Redhat9 using g++ 3.2.2. Reading maillists I have found is a bug in the gcc 3.3 series but I have compiled gcc 3.4 and is again the problem there, so I'll have to do a regression to gcc 3.2.2

42 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!