25 Jul 2004 alejandro   » (Master)

Xorg

Some documentation was asked in the xorg maillist, I recommend reading:

xc/programs/Xserver/hw/xfree86/doc/DESIGN

hardcopy/Xserver/ddx.PS.gz

It's a pity there is not updated documentation about X internals like the out-of-print X/Xlib vols internal ones.

And there are more advances for the August 15th plan release. There will be included the new extensions C/D/F and Debrix changes like the use of autotools instead using imake. It's cool, in some months we will look more eye-candy features in the desktop like transparencies and shadows.

Another features like the new MMX optimizations in gcc 3.4 intrinsics affect in performance rendering. For example here is a benchmark rendering a paragraph of component alpha text to a pixmap:

Unmodified X server and the pixmap in system RAM:

[ssp@localhost x]$ ./a.out

total time: 41.394618

average rect time: 0.683200

worst rect: 9

average glyph time: 3.550500

with the MMX optimizations:

[ssp@localhost x]$ ./a.out

total time: 22.972553

average rect time: 0.677900

worst rect: 9

average glyph time: 1.692000

In addition there are some applications beginning to support the new extensions like Vino. I want to have thinks like expocity and minimizing effects like 'aladino' in macosx working in linux.

Some interesting tools

I have been looking more tools to follow code like egypt' or 'gengraph'.

These both utilities give the call graphs from sources.

You can find these on following links:

egypt: http://www.gson.org/egypt/

gengraph: http://www.csn.ul.ie/~mel/projects/codeviz/

In console mode, you can use cscope to travel through your code, in addition frecuently used ctags/etags.

Samba

Lastly I have been looking the Samba 3 and I have done some little modules with Samba VFS. In examples/VFS you can find some skeleton modules filtering operations like open/read/write/connect/disconnect/etc, all the provided VFS file operations from the Samba VFS layer.

In the following days I will port the Samba modules to 2.2.x, so it can be useful in other Samba versions before 3.0. Anyway is so interesting, it wraps each operation in the smbd with operations like SMB_VFS_OPEN, that are really the operations you are intercepting and making the SMB_VFS_NEXT_OPEN.

I had troubles registering close operations but now is fixed. Actually smbd has a close.c:fd_close() that calls the locking poxis methods to close correctly a file and do the corresponding SMB_VFS_CLOSE, for a moment I didn't see the VFS wrapper in the code.

And a recent exploit in Samba in base64 encoding was published:

if (*s == '=') n -= 1;

/* fix up length */

decoded.length = n;

memcpy(s, decoded.data, decoded.length);

if n == 0 before it is decremented, then it will wrap around to ~0 and the memcpy will eventually SEGFAULT.

Zettabyte File System

http://www.nmt.edu/~val/

http://ohm.hpl.hp.com/self-manage03/Finals/henson-self-tune.pdf

http://tinyurl.com/3a3yq

Arandano

A few days ago David Waite and myself began the project 'Arandano'.

Arandano is a bittorrent library written in C# that implement the bittorrent p2p protocol, now is in the beginning stages so we are only looking about the FileFormat and tracker implementation.

More details about the protocol:

http://bitconjurer.org/BitTorrent/protocol.html

Latest blog entries     Older blog 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!