Older blog entries for alex (starting at number 11)

I understand that ALSA is the Linux Sound system of the future. Its apparently really powerful, which the hard-core audio people like. However, somewhere along the way, it seems like the whole power thing went overboard.

Check out this screenshot of the volume control for my Trident 4D Wave card. Clearly someone should have been thinking a bit more about the user experience before exposing all that to the user.

Does anyone know what "Sigmatel Surround Phase Inversion Playback" is? Or what the various PCM sliders do?

We're deep into the Gnome 2.8 hard code freeze, and I really should be fixing bugs all day... However, I was talking to Joe Orton yesterday about webdav servers, and it made me very exited about a good idea for userlevel filesharing.

So, I spent some hours today hacking up an application that lets you share ~/Public as a webdav folder, using apache running in the desktop session. The webdav server then gets published via mDNS so that it immediately shows up in the "Network" location in Nautilus on all computers on the local network. As a user, all you need to do is to enable file sharing and everything magically works.

Enabling is done via gconf at the moment, although obviously there should be a user interface for this. It needs a user interface to edit the .htaccess file too.

Check out this screenshot from my test machine, showing how the local Public folder (for the gnome user) is shared, and how I'm browsing the share from another machine (alex's public files).

fejj: Check out libelf and libdwarf in uli's elfutils.

mrcsparker:

The reason the gnome-vfs ssh method doesn't work with ptys is because you didn't send us a patch to make it work.

There isn't any deep secret why this hasn't been done, just the normal reason: not enough time for the people working on it, not enough people working on it.

See also: http://bugzilla.gnome.org/show_bug.cgi?id=117633

badger: no

Got a new job since the last post, now I work at RedHat Labs doing Mozilla and Gtk+ work. These days I work remotely from Sweden, but as soon as possible (pending visa stuff) I will be moving to the states, just like everyone else.

Work is good. The commuting (about 2 hours a day) is a bit boring, but I get to read a lot.

I've been doing a lot of research for the vector drawing program. Yesterday i stumbled over a brilliant algorithm for calculating the intersection between bezier curves (curve/line and curve/curve) called bezier clipping. It is fast, numerically stable and uses little memory, but the real brilliance lies in its simplicity and versality.

Ahh, gotta implement this.

I've been hacking some C++ 2D vector and matrix classes in preparation for a vector drawing program I'm planning to do. They are template expression based and therefore totaly unreadable. But they do generate kick ass code using the latest g++ snapshot.

Using the online snapshot compile form at codesourcery this function:

double dotty(Vector &x, Vector &y, Vector &z)
{
  return dot(x, y+z);
}
compiles to this (x86) code (using -O2 -march=pentiumpro):
dotty__FR6VectorN20:
        pushl   %ebp
        movl    %esp, %ebp
        subl    $24, %esp
        movl    8(%ebp), %eax
        movl    12(%ebp), %edx
        movl    16(%ebp), %ecx
        movl    %ebp, %esp
        fldl    (%eax)
        fldl    (%edx)
        fldl    8(%eax)
        fxch    %st(1)
        popl    %ebp
        faddl   (%ecx)
        fmulp   %st, %st(2)
        fldl    8(%edx)
        faddl   8(%ecx)
        fmulp   %st, %st(1)
        faddp   %st, %st(1)
        ret
which is pretty damn good for that (very readable) sourcecode. There is none of the normal problems with temporary objects etc.

Unfortunately i had to fight quite a lot with the template syntax, so the code isn't very nice. It would be a lot nicer if convertion operators were actually used when matching arguments to template functions. I wonder why that isn't in the C++ standard?

I'm not a man of much emotions. In fact, some might call my apparent lack of emotions somewhat disturbing. But still, i get used to things, attached to things, and leaving this place, where I've lived for many years makes me a bit sad. I get this knot in my stomach and I almost get tears in my eyes.

I wish I had any poetic talent whatsoever so I could write a poem about it.

Haven't written much here lately, it's time to post an update.

Last to days was major hacking time. Yesterday I continued porting the Axis journaling flash file system to Linux 2.3 and MTD. After 12 hours continous hacking i have a working readable filesystems which also supports attribute changes. I'll continue to hack away on it next friday. When the port is finished i might look at changing the on-flash representation a bit, I talked to Keith Packard at the GUADEC, and he would very much want to have support for compressed files in the filesystem, maybe I'll do that. Huge thanks to Axis for releasing this. It is really needed, since there are some patent problems with the current solution (FTL).

On thursday I spent half the night making Dia a bonobo component. It was quite easy, although there were some small problems with initialization. It basically works, but there is no persistance implemented yet. Also, I need to do some autoconf/automake hacking to make it build nicer. I'll probably rip it from gnumeric.

Worked on the current consulting project as normal, but then I sneaked away for some hours to take a look at the MTD project. The core looked fairly good. Sent some comments to the mailing-list.

We really need a standard flash subsystem and good flash filesystem. Currently we have to hack something together for every embedded project we do. I'm gonna try porting the jffs filesystem from Axis to Linux 2.3.x with MTD.

Played some floor hockey. Very though games tonight.

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