Archives for: 2005

12/31/05

Metacity scroll-to-become-invisible

Finished my "scroll on the titlebar to change window opacity" patch today.

Because images say more than words:



(Image is link to original)

Scroll up on the title bar to make the window more opaque, scroll down to make them more transparent, in steps of 4%.
There might be some minor bugs in the code, and the code might be not-really-acceptable (breaking Metacity standards) but hey, it works :-)

You can find a complete "cvs diff" of my current local metacity-cvs-head branch here. It contains both the composite manager changes and the scroll-on-titlebar thingy.
The current composite manager will be dropped in favour of the GL-accelerated one in the spif2 branch. I still couldn't get that one working though :-(

[edit] In Bugzilla now, GNOME bug #325373.

I started working on "Planet UGent" today, just for fun, which should aggregate everyone who is somehow related to UGent: students, teaching staff,...
Templates taken from Planet Gnome and altered thanks to Peter and RealNitro. Still a lot of design work (top banner, CSS) to do though. And obviously, we need more feeds :-)

Permalink . Ikke . 12:08:59 am . 225 Words . Life, Technology, Linux, Desktop, Coding Corner . . 514 views . 2 comments

12/28/05

More composite

In the end I decided to try the patched metacity using the binary nvidia drivers, and I must confess, it works great. Some things (like alt-tab) seem to be broken, but transparency works without any speed issue.

While I was in that second X instance, I decided to give luminocity another try too and guess what... It was working great! I attempted to make a little movie of it with my DSC. The quality is very bad, but you should be able to get an idea of what we might get one day (optional, of course ;-))

Please don't leech the movie too much, it's 23MB... You can find it here (thanks to Zeus for the hosting ;-))

Permalink . Ikke . 07:13:55 pm . 132 Words . Technology, Linux, Desktop . . 321 views . 1 comment
RhythmBox bubbles

A Zeus member (the Gaim Guifications author) complained about the bubbles RhythmBox pops up when a new track starts.
As I'm always willing to help others (right :roll:) I made a little patch to make this behaviour optional.

It's small, ugly and untested, so use with care ;-) Against current RB CVS from cvs.gnome.org. Patch
You got to pass "--disable-bubbles" to ./configure, they're enabled by default.

Alver, let me know whether it works please so I can fix it if necessary :-)

Permalink . Ikke . 04:58:47 pm . 96 Words . Linux, Desktop, Coding Corner . . 392 views . 3 comments
Robin

As seen on #gnome-nl: Robin. Check it out! You do need a Mozilla-based browser (like Firefox) to use this.

Permalink . Ikke . 03:11:38 pm . 32 Words . Technology . . 427 views . 1 comment
Metacity and Xcomposite

I've been playing around a little more with Metacity and XComposite/XRender. I applied the patches from bugs #309152 and #310080 to current Metacity CVS-HEAD, fixed some things which broke the build, and replaced the running instance with the newly compiled one.

Here's the result:


(Image is link to full-size screenshot)

Some things to notice:

  • The terminal in the upper left corner is the one I used to replace the running metacity. It looks like there are some problems taking control of existing windows: I was unable to use the old terminal any longer... It became usable again once I killed the new metacity and the system one took control
  • The terminal in the center of the screen is made transparent using transset. Transset'ing a window removes the drop shadows :-(
  • My sticky notes transparency is working fine! Notes can be moved and resized fine.
  • The "Metacity compositing example" dialog box is generated using zenity. It's broken as I was dragging around the window whilst the screenshot was made, to give an example of how windows become transparent when moving them around.
  • I made my desktop background light to make the window drop shadows more apparent.

Overall all this eye candy is still fairly slow. I'm on an NVidia Geforce2 MX440 GPU, using the open-source drivers. I *think* the binary ones support XComposite, but I won't try it as the binary drivers don't allow me to run 1400x1050. If someone got a spare Ati 92xx GPU around, let me know, I'm looking for one (paid if necessary B-)).

There's still a lot of work to do, but I hope one day we'll get there :-)

If you want to play around with this stuff yourself, get today's metacity cvs head from cvs.gnome.org, and apply this patch. ./configure using "--enable-compositor --enable-render" with --prefix to some directory, make && make install, and run "${prefix}/bin/metacity --replace"

[edit]
Thanks to some xorg.conf tuning (ModeLine) I got the nvidia binary drivers working on the resolution I want them to, so I'm running a GPU accelerated desktop now. Composite is working great... I backported my patch to metacity 2.12.2 and am running the patched version on my whole system now. See Gnome bug #309152 if you want the patch.

Next tasks:

  • allow the user to set window transparency in the window menu, or by using the scrollwheel on the title bar
  • Make drop shadows configurable (both on/off, size, intensity)
  • Make the (ugly!) minimize effect optional
  • Try to enhance the (ugly!) alt-tab behaviour
Permalink . Ikke . 03:08:57 pm . 462 Words . Technology, Linux, Desktop, Coding Corner . . 498 views . 2 comments

12/26/05

Stickynotes alpha

As per bug #150493:


This is "true" transparency using XComposite, not blending with the background or a screenshot.

It's fairly buggy, but that's caused by xcompmgr and Metacity's ignorance of Compositing (I think):

  • When xcompmgr is running and you create a new note, it's not transparent although xprop says _NET_WM_WINDOW_OPACITY is set to a correct value. Restarting xcompmgr makes new notes transparent
  • Text of notes can't be changed
  • Notes can't be resized or moved

The "Delete" and "Sticky" buttons work fine though. Really strange.

Metacity really needs a built-in compositing manager, like XFWM's.

Permalink . Ikke . 07:04:15 pm . 105 Words . Linux, Desktop, Coding Corner . . 500 views . 2 comments

12/23/05

Crosswords

Only 67% :-( Guess I'm too young to know about those k* tools ;-) Some questions are a little Debian-specific too, but hey :-)

Permalink . Ikke . 09:32:44 pm . 31 Words . Life . . 606 views . 5 comments
GtkSpell language

I'm sorry Gnome-NL guys, but I must confess I'm running my desktop using the "C" locale (ie. english). There's one major problem with this: when I'm using Gaim with spell checking enabled, I'm always "wrong" as 99% of all time I talk to IM buddies, it's in dutch (nl_BE, or something close to that at least ;-)).
A very annoying issue that could be solved by disabling spell checking (*sigh*), which I don't want (hey, one has to *fix* problems, not go around them).

So I made this little patch (very simple, low profile patch, I know). It's against gtkspell 2.0.11, and as gtkspell seems to be no longer maintained, this is the version you got on your system most propably too.

To set a language to use for (gtkspell based) spell checking, just set the GTKSPELL_LANG environment variable, like this:
echo "export GTKSPELL_LANG=nl >> ~/.profile"
Then log out and log in again so the variable is incorporated in your environment.

Enjoy!

Permalink . Ikke . 08:21:15 pm . 191 Words . Technology, Desktop, Coding Corner . . 874 views . 3 comments

12/20/05

less and HTML

I didn't know about this before:

(that's "less index.html" in the lower terminal)

Cool! The image isn't fake, just try it for yourself.

Permalink . Ikke . 01:32:31 pm . 24 Words . Linux . . 342 views . 3 comments

12/18/05

Gaim CVS and Bonjour using Avahi

So you want to play around with Gaim 2.0beta1 or CVS, you definately want the Bonjour/RendezVous protocol plugin to be able to IM with your buddies on your local LAN, but you haven't got Howl on your system as you believe Avahi is the way to go (good boy :-))?

Just apply this little patch. It's against current anoncvs from sf.net. You need to build avahi with avahi-compat-howl support.

Permalink . Ikke . 04:29:17 pm . 106 Words . Linux, Desktop, Coding Corner . . 444 views . 3 comments

12/16/05

GTK+ and Cairo is fun!

I've been playing with creating GTK+ widgets using Cairo lately. As I had to write some text for some bloody Word-task (university stuff) I started writing a widget for an "OXO" game, and make a little tutorial on how to make something alike. The task is done (I even had to remove some parts of the text :(), the tutorial isn't finished yet as there are some issues left with the widget.

Anyway, writing 2D drawing code using Cairo is really fun. Sometimes you need some maths to get some tasks done, but it's fun to experiment and the possibilities are almost endless.

Here's a little sample of what I got now, click on the image for a full-scale screenshot:

Some parts of the "logics" inside the widget are still buggy (-> the code to check whether a move is a winning one or not).

I start to get rid of the spammers on my blog. There's still some comment- and trackback-spam, but at least most spambots can't leech several gigabytes of my bandwith anymore. There are still requests done, but they get a 300byte answer, or even less.
One issue left: if I get 2 identical requests (same HTTP_REQUEST, HTTP_REFERER etc), one using HTTP/1.0 and one using HTTP/1.1, my mod_rewrite rules generate another response: 403 (5 bytes) when using HTTP/1.0, 301 (352 bytes) when using HTTP/1.1:

216.195.35.XX - - [16/Dec/2005:14:24:58 +0100] "GET /index.php/all?skin=stockholm HTTP/1.1" 403 5 "http://spamhost/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)"
216.195.35.XX - - [16/Dec/2005:14:25:05 +0100] "GET /index.php/all?skin=stockholm HTTP/1.1" 301 352 "http://spamhost/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)"

Can anyone explain me what causes this?

Thanks to RubenV who helped me out when creating the mod_rewrite rules :)

Permalink . Ikke . 02:33:14 pm . 313 Words . Technology, Linux, Desktop, Coding Corner . . 375 views . 1 comment

12/13/05

Linus and Gnome

Sigh. Luckily we got Nat ;-)
I still got my lockups on high IO load, or my mouse starting to go all over the screen and generating random clicks while doing so on high load, after which I get warnings in dmesg the psmouse driver lost ticks. Guess what part of my machine's stack causes that B-)

Permalink . Ikke . 12:18:23 pm . 78 Words . Linux, Desktop . . 531 views . Leave a comment
Some great news

Although I'm not a big Ubuntu lover, this is most certainly a good thing.
Who doesn't know the "Metro"? :-)

[edit] Looks like Peter saw it too ;-)

Permalink . Ikke . 10:47:39 am . 48 Words . Linux . . 326 views . 4 comments

12/03/05

More valgrind abuse

After my previous article on Valgrind I started using it more and more, and discovered another nice feature of it. Just check this sample:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>

#define MESSAGE "test"

int main(int argc, char *argv[]) {
        char *t = NULL;

        /* Hey, everyone makes mistakes */
        t = (char *)malloc(strlen("" MESSAGE) * sizeof(char));
        assert(t != NULL);
        strcpy(t, "" MESSAGE);

        printf("%s\n", t);

        free(t);

        return 0;
}

Compiling and running looks ok:

$ gcc -g -Wall -Werror -o test2 test2.c
$ ./test2
test

But luckily there's Valgrind to tell us the code is horribly wrong:

$ valgrind --tool=memcheck ./test2
==13483== Memcheck, a memory error detector for x86-linux.
==13483== Copyright (C) 2002-2004, and GNU GPL'd, by Julian Seward et al.
==13483== Using valgrind-2.2.0, a program supervision framework for x86-linux.
==13483== Copyright (C) 2000-2004, and GNU GPL'd, by Julian Seward et al.
==13483== For more details, rerun with: -v
==13483==
==13483== Invalid write of size 1
==13483==    at 0x1B906485: strcpy (mac_replace_strmem.c:199)
==13483==    by 0x80484B2: main (test2.c:14)
==13483==  Address 0x1BA5C02C is 0 bytes after a block of size 4 alloc'd
==13483==    at 0x1B906B82: malloc (vg_replace_malloc.c:131)
==13483==    by 0x8048472: main (test2.c:12)
==13483==
==13483== Invalid read of size 1
==13483==    at 0x1B968B6B: _IO_vfprintf (in /lib/tls/libc-2.3.5.so)
==13483==    by 0x1B96DF36: _IO_printf (in /lib/tls/libc-2.3.5.so)
==13483==    by 0x1B93DF36: __libc_start_main (in /lib/tls/libc-2.3.5.so)
==13483==  Address 0x1BA5C02C is 0 bytes after a block of size 4 alloc'd
==13483==    at 0x1B906B82: malloc (vg_replace_malloc.c:131)
==13483==    by 0x8048472: main (test2.c:12)
test
==13483==
==13483== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 13 from 1)
==13483== malloc/free: in use at exit: 0 bytes in 0 blocks.
==13483== malloc/free: 1 allocs, 1 frees, 4 bytes allocated.
==13483== For a detailed leak analysis,  rerun with: --leak-check=yes
==13483== For counts of detected errors, rerun with: -v

This should be fairly self-explaining... I guess most C programmers forgot to allocate strlen(msg)+1 (the end '\0') at least once in their life...

By the way: hello Planet Grep :-)

Permalink . Ikke . 11:29:18 pm . 357 Words . Coding Corner . . 380 views . 5 comments

12/02/05

Lately I've been working on the new webserver machine for VTK. Today I configured mod_security for Apache2, partially by using the rules one can find on gotroot.com.
On the site a little script is provided to update the rules automagicly (in a cronjob or something alike), but when I started using the script I didn't like it for several reasons.
So I decided to rewrite it to suit my needs. You can find my enhanced version here.

The machine now also runs PHP4 and PHP5 side by side thanks to this great documentation (and the Gentoo PHP herd developers, obviously). PHP4 as an Apache module (because this is the "default", so it must run as efficient as possible), PHP5 using the CGI interface for all .php5 files.
We can't make "the big switch" to a PHP5-only server due to our bloody PhpBB forum which is not PHP5 compatible. And as our forum is one of the biggest PHP consumers on the server, I don't want to run PHP4 as CGI and only run the forum this way.

[edit]
I enhanced the script a little more, here's a diff:

--- update_mod_security_rules.sh        2005-12-02 14:46:02.000000000 +0100
+++ update_rules_v2.sh  2005-12-04 14:34:33.000000000 +0100
@@ -15,6 +15,7 @@
 APACHESTART="/etc/init.d/apache2 restart"
 MODSECPATH="/etc/modsecurity"
 APACHEPID="/var/run/apache2.pid"
+APACHECTL="/usr/sbin/apache2ctl"

 #Modules
 #If you want the "exclude" rules, they should be the first entry in the list
@@ -59,10 +60,21 @@

 echo "Make sure you got \"Include ${MODSECPATH}/all.conf\" somewhere in your Apache config"

+${APACHECTL} configtest > /dev/null 2>&1
+if [ ! "x$?" = "x0" ]; then
+        echo
+        echo "There's something wrong in Apache's configuration:"
+        echo
+        ${APACHECTL} configtest
+        echo
+        echo "Exiting, not restarting Apache"
+        exit 1
+fi
+
 # try restart
 if [ "$UPDATED" -gt "0" ]; then
         echo -n "Restarting apache: "
-        /bin/kill -HUP ${PID} 2>/dev/null
+        ${APACHECTL} graceful
         # did it work?
         if `/bin/kill -CHLD ${PID} >/dev/null 2>&1`; then
                 echo "ok."

The script

Permalink . Ikke . 03:01:15 pm . 414 Words . Technology, Linux, Networks . . 818 views . 2 comments

11/25/05

Spam attack

This blog is under a massive referer spam attack at the moment by multiple spambots. I'm trying to get rid of them using .htaccess, but it hardly works.
Those spambots already consumed all my monthly bandwith, so I really need them to go away. If someone knows how to do this (I googled around, no usable help), please let me know asap, otherwise I'll be forced to take this blog down for some days I'm afraid... Maybe I should switch to WordPress here too.

My sincere apologies if I broke something in the blog setup, or if some people are unable to reach the site although they're not spammers.

Permalink . Ikke . 11:24:29 am . 109 Words . Technology . . 388 views . 6 comments

11/23/05

Non-tech people on tech stuff

Read this.

Reminds me on an article on "Web 2.0" in our newspaper some days ago, and a "readers reaction" on it yesterday. Obviously 2 people who don't understand what it's all about. Sadly enough.

Permalink . Ikke . 01:31:34 pm . 33 Words . Life, Linux . . 476 views . 3 comments

11/19/05

OOo2 on 770
Permalink . Ikke . 09:17:00 pm . 23 Words . Desktop . . 1059 views . 5 comments
Remote X on Nokia 770: schreenshots

Due to the fact that the screenshot tool had a bug at the time I gave remote X windows a try on the N770, I could't post any 'proof'.

But, that screenshot-bug has been solved, and I connected my N770 to the fresh install of Ubuntu Linux so I could take shoot some screens. It took me about 4 minutes to make my N770 talk to the pc (Ubuntu recognised my usb bluetooth key immediately, it really wasn't hard at all). I installed the openssh-server on the pc (enabled it in Synaptic, and pressed Apply, easy stuff), started it, and logged in with my N770.

This time I used some new command line options (thank you daf):

ssh -X user@server -c blowfish -C

And I started oowriter2 again:

oowriter2 starting...
(Larger image)

and a few seconds later (the pc is quite old):

oowriter2 on N770
(Larger image)

Then I gave The Gimp another try, but the lag was still there. It was better a bit faster than without the compression settings for the ssh connection, but nowhere near usable. :-(

btw, has anyone tried this keyboard with the N770 yet? Does it work? Or should/will it work? Plz let me know!

Permalink . RealNitro . 19:54:46 . 261 Words . Coding . Email . 1229 views
Small Valgrind introduction

Everyone writing C or C++ code should know what a memory leak is. You allocate some memory, and never free it.
It can be very hard to make your code memleak free, or even just to know whether your code contains any memleaks.
Luckily, in the Free Software world, we got a great tool to check our code for memleaks (or other errors): Valgrind.

As I don't have time to write a lot now, I'll just give a very simple sample of it's usage.

Here's my code (very bad code, obviously, but hey ;-)):

#include <stdio.h>
#include <stdlib.h>

static void function() {
        char *test = (char *)malloc(100 * sizeof(char));
        test[0] = '\0';

        printf("Function\n");

        /* Leaking 100 chars here, 100 bytes */
}

int main(int argc, char *argv[]) {
        int *i = NULL;

        function();
        i = (int *)malloc(50 * sizeof(int));
        printf("Done\n");

        return 0;

        /* Leaking 50 ints here. On x86, this is 50*4=200 bytes */
}

As you can see, we leak memory twice: once 100 bytes, once 200.
Let's compile and run our code:

$ gcc -o test -Wall -g test.c
$ ./test
Function
Done

Great, our code works fine (or at least, it looks like it).

Now we introduce valgrind. First we'll do a simple memory allocation check:

$ valgrind --tool=memcheck ./test ==18819== Memcheck, a memory error detector for x86-linux.
==18819== Copyright (C) 2002-2004, and GNU GPL'd, by Julian Seward et al.
==18819== Using valgrind-2.2.0, a program supervision framework for x86-linux.
==18819== Copyright (C) 2000-2004, and GNU GPL'd, by Julian Seward et al.
==18819== For more details, rerun with: -v
==18819==
Function
Done
==18819==
==18819== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 13 from 1)
==18819== malloc/free: in use at exit: 300 bytes in 2 blocks.
==18819== malloc/free: 2 allocs, 0 frees, 300 bytes allocated.
==18819== For a detailed leak analysis,  rerun with: --leak-check=yes
==18819== For counts of detected errors, rerun with: -v

Valgrind tells us we leaked 300 bytes, in 2 blocks (one malloc call returns one block, obviously).
It also tells us to re-run the test with the --leak-check=yes flag, which is a good advice:

$ valgrind --tool=memcheck --leak-check=yes ./test
==18826== Memcheck, a memory error detector for x86-linux.
==18826== Copyright (C) 2002-2004, and GNU GPL'd, by Julian Seward et al.
==18826== Using valgrind-2.2.0, a program supervision framework for x86-linux.
==18826== Copyright (C) 2000-2004, and GNU GPL'd, by Julian Seward et al.
==18826== For more details, rerun with: -v
==18826==
Function
Done
==18826==
==18826== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 13 from 1)
==18826== malloc/free: in use at exit: 300 bytes in 2 blocks.
==18826== malloc/free: 2 allocs, 0 frees, 300 bytes allocated.
==18826== For counts of detected errors, rerun with: -v
==18826== searching for pointers to 2 not-freed blocks.
==18826== checked 1404368 bytes.
==18826==
==18826== 100 bytes in 1 blocks are definitely lost in loss record 1 of 2
==18826==    at 0x1B906B82: malloc (vg_replace_malloc.c:131)
==18826==    by 0x80483B5: function (test.c:5)
==18826==    by 0x80483F4: main (test.c:14)
==18826==
==18826==
==18826== 200 bytes in 1 blocks are definitely lost in loss record 2 of 2
==18826==    at 0x1B906B82: malloc (vg_replace_malloc.c:131)
==18826==    by 0x8048400: main (test.c:15)
==18826==
==18826== LEAK SUMMARY:
==18826==    definitely lost: 300 bytes in 2 blocks.
==18826==    possibly lost:   0 bytes in 0 blocks.
==18826==    still reachable: 0 bytes in 0 blocks.
==18826==         suppressed: 0 bytes in 0 blocks.
==18826== Reachable blocks (those to which a pointer was found) are not shown.
==18826== To see them, rerun with: --show-reachable=yes

Great, here Valgrind tells us exactly what we're doing wrong.
There are 2 blocks where we leak memory:

  • The first one is at code path
    main (test.c:14) -> function (test.c:5) -> malloc (vg_replace_malloc.c:131)
    leaking 100 bytes.
    The vg_replace_malloc.c file isn't ours, it's a valgrind file where the malloc() wrapper (which keeps track of our allocations/free's/...) is located. We're mostly interested in the "function (test.c:5)" part. If we look at line 5, we see this is

    char *test = (char *)malloc(100 * sizeof(char));
    our first allocation. And indeed, if we look further, we never free these 100 chars.
  • Second is at main (test.c:15). Again, we can look at this line:
    i = (int *)malloc(50 * sizeof(int));
    and indeed, we never free these allocated integers again. We allocated 50 ints, and on x86 one int is 32 bits (4 bytes), so we leak 200 bytes (and valgrind was correct once again :-)).

Obviously, valgrind got much more options or checks:

$ valgrind
valgrind: Missing --tool option
Available tools:
        memcheck
        addrcheck
        cachegrind
        corecheck
        helgrind
        massif
        lackey
        none
        callgrind
valgrind: Use --help for more information.

I don't know all of them, actually I only use the memcheck thing, but even when only using one tool, it can be a very useful program.

I got one minor issue with valgrind currently: when it detects memory leaks in some program, it still returns 0 in the end, so it's not easy to integrate valgrind checks in automake's "make check" target. If someone got any pointers how to do this, please let me know!

Permalink . Ikke . 03:53:33 pm . 761 Words . Linux, Coding Corner . . 2158 views . 13 comments

11/17/05

Remote X sessions on Nokia 770

Some topics on internettablettalk.com have great views on what the N770 might have to offer in the future. One nice possibility is forwarding X sessions to a N770. I started with forwarding Gedit from my pc to my N770, but later on I had a go at 'oowriter2' (OpenOffice.org 2 Writer), Supertux and The Gimp. My experiences about those apps on the N770 are at the end of this post. First I'll tell you how to try it yourself.

Some basic requirements:

  • a computer running the X-server and sshd (a decent linux box ;-) )
  • a (fast) network connection between your N770 and the server
  • openSSH for the maemo platform

To install openSSH on your N770, download the openSSH .deb package to your N770. Next,open an X-terminal, and gain root access. If the .deb openSSH package is on your mmc, navigate to it:

cd /media/mmc1/

And install openSSH (it doesn't install using the graphical package installer):

dpkg -x ssh_*.deb /

Caution: make sure that your servers sshd allows X forwarding! Time to connect to the server:

ssh -X user@server

Change user to your login-name, and change server to your servers IP or domain name. The first time you log into your server from your N770, ssh wil ask you a question. Answer 'yes'. Then it will ask your password. Enter it. You should get a command prompt as 'user' on your server. Time to execute a program! I use the Gnome desktop environment, and the default text editor (like notepad in Windows -- but waaay better ;-) ) in Gnome is Gedit. The command to start Gedit from a terminal is 'gedit' (duh! :-p ). Execute

gedit

Give it some time to start, and you'll see Gedit running on your N770! To try any other programs, just tap their commands into the terminal and have fun!

But there are a few downsides. The first big downside is text-input: The onscreen-keyboard does not appear when you put the cursor inside a text-field of an X-forwarded window. Copy-pasting text is possible though. Maybe people with working Bluetooth keyboards will be able to type some text. Is somebody willing to try? One other downside is that X-forwarded windows vanish when they are minimized. There seems to be no way to get them back, killing the parent program and restarting it is the only solution. (You can kill the parent program by bringing your X-term back up, opening 'X Terminal'->'Terminal'->'Send Ctrl-some key', and tapping the 'c' keyboard button.) The fullscreen button didn't work aswell. Gedit just doesn't recognise/receive the signal emited by that fullscreen button, I guess.

Beside those little anoyances, Gedit ran quite smooth. So I decided to start the OpenOffice.org 2 Writer. And it worked too! The gui wasn't 100% snappy (i.e. scrolling was laggy), but it seemed fast enough to be usable. Later that day, I decided to give Supertux a try. (Supertux is a Super Mario clone.) The verdict: not playable. The bluetooth connection between my pc and my N770 just wasn't fast enough to transfer all that graphical goodness without (a LOT of) lag. The Gimp suffers from the same problem. Drawing with your stylus is possible, but the result lags several seconds behind.

A possible solution for the lag problems would be to compress the data that's being sent between the X-server and the client (your N770). A FreeNX-client would be great as the NX protocol is in fact a compressed (and secured) forwarded X-session. (FreeNX is a free alternative to NoMachine NX.)

Permalink . RealNitro . 21:31:01 . 658 Words . Linux, Coding . Email . 2280 views

11/13/05

Sharing internet with Nokia 770 over bluetooth

It's been a (very) long time since I have posted here (again), but I bought myself a Nokia 770 last week, and it took me a lot of time to get it on the net, so I thought I'd share how I got it to work.

First off, some interesting links:

You need to have your bluetooth stick working first. Gentoo users should read the first parts of the host to host bluetooth howto, other distro's should consult the proper information on the community forums/wiki. (Don't scan for other devices yet, just setup your kernel and BlueZ.)

Then open the X Terminal on your 770 and be root. Enter:

hcitool scan

The scan should display your pc's bluetooth name and its bluetooth ID. If the scan cannot find your computer, check again if your bluetooth stick is really working. Scanning for your 770 on your computer is no use, since your 770 will remain invisible. Now let's pair your 770 with the pc. Execute the following on your 770, but replace 00:10:20:30:40:50 with your computer's Bluetooth ID:

hcitool cc 00:10:20:30:40:50

If you get an error, try:

rm /etc/bluetooth/link_key

If the pairing works, you will be asked to enter the PIN code of your pc. There is no need to try to connect from your pc to your 770, it will not work anyway (your pc cannot see your 770, remember). Next, make your computer listen for an incoming (network) connection. As root execute:

pand --listen --role NAP

Now, on your 770, connect to your pc:

pand --connect 00:10:20:30:40:50

(Replace 00:10:20:30:40:50 with your pc's Bluetooth ID again.)

If the connection has been set up, the following command should work on your 770:

ifconfig bnep0 192.168.2.2 netmask 255.255.255.0 broadcast 192.168.2.255

Warning: if your local network already uses the 192.168.2.* subnet, replace the IP with another one that isn't in a subnet your pc is a part of!
On your pc, execute the same command, but change the IP:

ifconfig bnep0 192.168.2.1 netmask 255.255.255.0 broadcast 192.168.2.255

We're almost there now. Your 770 and your pc are part of the same subnet now! Let's try to ping the 770. On your pc:

ping 192.168.2.2

If you installed the ssh server, you can run it now, and log into it from your pc.

Now, let's set up the internet connection forwarding. First off, let your 770 know that your pc is its gateway to the internet:

route add default gw 192.168.2.1

Also add a dummy internet connection:

gconftool -s -t string /system/osso/connectivity/IAP/DEFAULT/type DUMMY

On your pc, display the content of /etc/resolv.conf:

cat /etc/resolv.conf

And add the rules to the /etc/resolv.conf file on your 770. For each line do:

echo "line" >> /etc/resolv.conf

All that's left to do is making your pc act as a router for your 770. One way to do that (not the easiest one), is to use a program called iptables. In this howto I will explain how to setup iptables on gentoo. Again, if you use an other distro, check the community forums and/or wiki. On gentoo, emerge iptables. You might have to recompile your kernel, just follow the 'Kernel Support' chapter of this howto on the gentoo wiki. To configure iptables, you can read this guide, or, if you just want a quick solution, use this script. As root, paste it inside a file. Then comment out IPTABLES=/usr/local/sbin/iptables, and uncomment #IPTABLES=/sbin/iptables. Change INTIF="eth1" to INTIF="bnep0". You might have to change EXTIF="eth0" too. (I had to change it to vpnlink because I connect to the internet with a vpn.) When you finished changing the script, make it executable, and run it. There should be no errors. Now save the script:

/etc/init.d/iptables save

and start iptables:

/etc/init.d/iptables start

If you want to start iptables everytime you boot, do:

rc-update add iptables default

You should be able to surf with your 770 now! I plan on writing a few script to make the linking more automatic. Plz share your comments here, and post any mistakes in the howto.

Permalink . RealNitro . 20:05:28 . 807 Words . Linux, Coding . Email . 3197 views

11/12/05

Nano on Maemo

So, you got SSH access to your Nokia 770, but can't edit any files? Try my Nano package...
It doesn't work yet in the xterm application (I didn't try myself yet, RealNitro told me ;-)), looks like there's some issue with that terminal's CTRL-key emulation...
Anyway, it's meant to be used over SSH, not for on-device purposes...

Now I still should be able to get USB networking working somehow :-( Didn't spend any more time on it though...

Permalink . Ikke . 10:25:42 pm . 121 Words . Technology, Desktop . . 435 views . 10 comments

11/05/05

Maemo and mDNS

Porting Avahi to the Maemo platform seems to be quite hard (if not impossible) because of the DBUS version conflict (Avahi needs DBUS >= 0.34, whilst the Maemo platform is still based on DBUS 0.2x). There's a DBUS 0.3x branch in Maemo's SVN repository, but that's not stable yet, and will only be used in the InternetTablet2006 releases, so I gave up on Avahi for now :oops:.
Instead, I'm trying to create a good package of Howl now (I know, I don't like the Howl API either), then I'll attempt to build a small (Hildon?) application on top of it, just as a test case for "the real thing" ;-)

*edit*
It works inside my scratchbox (i386) :-)
Built an arm deb package too, installed it on my "real" device, the software runs (no ld errors), but I couldnt test it yet as I don't have a wireless network at home, and didn't manage to get USB networking working yet :-(

Permalink . Ikke . 07:25:18 pm . 197 Words . Technology, Linux, Networks, Coding Corner . . 1116 views . 4 comments

11/03/05

Using C++ classes in C

Today I had a little chat with Michiel on #gnome-nl regarding the use of C++ classes in C code (he started learning C again ;-)).

I was fascinated (well, sort of) by this, and tried to get something working. Here's the result:

  • First we need a C++ class, using one header file (Test.hh)

    class Test {
            public:
                    void testfunc();
                    Test(int i);
    
            private:
                    int testint;
    };
    

    and one implementation file (Test.cc)

    #include <iostream>
    #include "Test.hh"
    
    using namespace std;
    
    Test::Test(int i) {
            this->testint = i;
    }
    
    void Test::testfunc() {
            cout << "test " << this->testint << endl;
    }

    This is just basic C++ code.

  • Then we need some glue code. This code is something in-between C and C++. Again, we got one header file (TestWrapper.h, just .h as it doesn't contain any C++ code)

    typedef void CTest;
    
    #ifdef __cplusplus
    extern "C" {
    #endif
    CTest * test_new(int i);
    void test_testfunc(const CTest *t);
    void test_delete(CTest *t);
    #ifdef __cplusplus
    }
    #endif
    

    and the function implementations (TestWrapper.cc, .cc as it contains C++ code):

    #include "TestWrapper.h"
    #include "Test.hh"
    
    extern "C" {
    
    CTest * test_new(int i) {
           Test *t = new Test(i);
    
           return (CTest *)t;
    }
    
    void test_testfunc(const CTest *test) {
            Test *t = (Test *)test;
            t->testfunc();
    }
    
    void test_delete(CTest *test) {
            Test *t = (Test *)test;
    
            delete t;
    }
    }
    

    Some things you should notice:

    1. typedef void CTest
      We typedef CTest to void. This way we can use "CTest *" in our C code as if it's a normal C type, whilst we have compile-time type checks (sort of at least :-)), and it's cleaner than always using "void *"

    2. The use of "extern "C" { }" around all functions (both definitions and implementations). We need this so the compiler won't name-mangle the resulting binaries. If you want to see what name-mangling is:

      $ cat test.c
      #include <iostream>
      using namespace std;
      
      void test() {
              cout << "test" << endl;
      }
      
      int main(int argc, char *argv[]) {
              test();
              return 0;
      }
      $ g++ -o nmtest test.c
      $ ./nmtest
      test
      $ nm nmtest
      ***blablabla***
      08048818 t _Z41__static_initialization_and_destruction_0ii
      080487c4 T _Z4testv
               U _ZNKSs4sizeEv@@GLIBCXX_3.4
               U _ZNKSsixEj@@GLIBCXX_3.4
      ***blablabla***

      As you can see, our "test()" function has been renamed to "_Z4testv" by the compiler. This is needed to allow polyphormism in C++, but we don't want this in our C wrapper of course, as we want to know the name of the function we will call!
      This implies we need another function name for every polyphormistic (SP?) class function of our C++ class in the C wrapper.

  • At last, we need some code to test our work (main.c):

    #include <stdio.h>
    #include "TestWrapper.h"
    
    int main() {
            CTest *t = NULL;
    
            t = test_new(5);
            test_testfunc(t);
            test_delete(t);
            t = NULL;
    
            return 0;
    }
    

    This is, once more, braindead simple (C) code, where we use the functions defined in TestWrapper.h.

  • Last but not least, we need to compile everything. I made a basic Makefile to do this (Makefile):

    CFLAGS=-Wall -Werror -g -ansi -pedantic -std=c89
    CCFLAGS=-Wall -Werror -g
    LDFLAGS=-g -Wall -lstdc++
    
    OBJS=Test.o TestWrapper.o main.o
    PROG=test
    
    all: $(PROG)
    default: all
    
    %.o: %.cc
            $(CC) $(CCFLAGS) -c $<
    
    %.o: %.c
            $(CC) $(CFLAGS) -c $<
    
    $(PROG): $(OBJS)
            $(CC) $(OBJS) $(LDFLAGS) -o $@
    
    clean:
            rm -f $(OBJS)
            rm -f $(PROG)
    

Now we can simply call "make" to build the project:

$ make
cc -Wall -Werror -g -c Test.cc
cc -Wall -Werror -g -c TestWrapper.cc
cc -Wall -Werror -g -ansi -pedantic -std=c89 -c main.c
cc Test.o TestWrapper.o main.o -g -Wall -lstdc++ -o test

Finally, we test the resulting binary:

$ ./test
test 5

which is the expected result.

Obviously, writing a wrapper like this by hand can be a boring task. It might be possible to automate/script this, but I don't know whether the result is worth the time one puts into it. Just use plain C, we don't need C++ ;-)

Permalink . Ikke . 10:40:42 pm . 678 Words . Technology, Coding Corner . . 7778 views . 2 comments
Scratchbox working

Thanks to Bram (and VTK Computer) I got an old 20Gb hard drive, which I needed to be able to install a Scratchbox environment and play around with the Maemo platform.
I managed to install everything by now (although I had one crash again :-(), so I hope I'll be able to start hacking on some apps/libs soon. One of the things I'd love to get working is Avahi, the GPL'ed mDNS stack.

The obligatory shot:

I just followed these steps. They contain one error though: when editing your ~/.bash_profile, you got to add a line containing

export LC_ALL=en_GB

too.

Permalink . Ikke . 10:15:20 pm . 152 Words . Technology, Linux, Desktop, Coding Corner . . 735 views . 3 comments

10/27/05

770 and UGent VPN

So, I just got my Nokia 770 connected to the UGent VPN nerwork, which means I can connect to the internet when I'm near one of the access points. It wasn't too easy, and editting long texts on the device is fairly boring, so I'll stop here. More news when I'm near a "real" computer ;-)

Cheers!

Permalink . Ikke . 08:54:09 am . 55 Words . Technology, Linux, Networks . . 1055 views . 1 comment

10/18/05

Gnome for young children && 770 update

This theme mockup by Andreas Nilsson is actually pretty cool stuff IMHO, when used in an environment where young children/kids use the computer (eg in schools). I think it's pretty attractive, as long as the texts are easily readable.

Next to this, thanks to Philip and (obviously) Nokia itself, I was able to order my personal Nokia 770 from their Developer Program today. It should arrive in 1-3 days, so I'll be pretty stressed when checking the mail next days :-) When I saw (and even touched ;-)) the 770 at LinuxTag I was really impressed, let's hope it'll work well (/me crosses fingers for vpnc support) and bring a lot of pleasure on a development side :-)

Permalink . Ikke . 10:18:32 pm . 150 Words . Technology, Linux, Desktop . . 382 views . 2 comments

10/16/05

Screencasts part III: Victory!

Just found this wiki page which uses some other transcode options. I tried it, converted 2 seconds of a vnc recording to Xvid, and it works, jay :-)

Basicly:

$ emerge tightvnc vncrec transcode
$ vncserver
(enter password if necessary, edit the VNC xinitrc file,...)
$ vncrec -record test.vnc localhost:1
$ transcode -x vnc --use_rgb -i test.vnc -o test.avi -y xvid -k -f 10
$ mplayer test.avi

I'll try connecting to Vino now. Encoding takes a very long time, but well...

/me happy ;-)

Permalink . Ikke . 08:43:00 pm . 90 Words . Technology, Desktop . . 700 views . 2 comments

10/15/05

Screencasts part II

After digging around a little more, I found vncrec, which works really well. Quality is good, computer doesn't lag while making the movie,... One major problem: the output format. Nobody can play these files, except if he/she got vncrec installed, which is *nix only.
It should be possible to convert .vnc files to some other format (video) using transcode. I tried this, but when playing the ouput file using mplayer (xvid encoded), I only get green and red noise. Not everyone got an xvid codec installed too, so I might want to use mpeg2 here or something alike. If only I would get a real video, and not just noise...
Transcoding a vnc file takes a lot of time too.

I'll keep you guys posted :-)

Permalink . Ikke . 11:49:15 am . 140 Words . Technology, Desktop . . 327 views . 2 comments

10/14/05

Screencast

Could anyone please tell me how I can make a screencast in X? Istanbul doesn't work (segfaults and other errors), vnc2swf produces flash files, which I don't like, xvidcap doesn't want to compile,...

I'd really need to be able to create a little movie to convince some people @ university Linux is not all about command line magic like su, sudo, mount -t smbfs -o username=foobar //server/share /mnt/foobar and other 19[89]X commands...

I could use Istanbul's Gstreamer pipelines in some small application, but there's one major problem: ximagesrc's image quality is terrible.

Permalink . Ikke . 04:25:42 pm . 102 Words . Technology, Desktop . . 757 views . 2 comments

10/11/05

Check it out here.

One major question: how well will it work for people exploring the web using a non-IE based browser?

Permalink . Ikke . 08:20:24 pm . 33 Words . Technology . . 357 views . 4 comments

10/10/05

Goodbye Fedora Stateless, welcome at Ubuntu Kickstart!

Because the development of fedora stateless is quite frozen, we decided to drop it just an hour ago. We discussed a new strategy and have chosen for Ubuntu Kickstart. Kickstart, the automatic (recorded) installer for Fedora or SuSE is now ported to Ubuntu too since version 5.04 Hoary. We'll set up a PXE-boot enabled server wich will let the clients choose between windows or Linux, or just install Linux when we want it. Normally we should recieve new hardware next week, so the project will be kickstarted too ;-)

Permalink . Peter . 22:26:02 . 87 Words . Project status and progress, General . Email . No views

09/19/05

Dislocated wrist, and GIM update

Typing this using one hand, as I was so stupid to dislocate my left wrist last saturday night. At least, I hope it's only dislocated, and not broken. And yes, it does hurt.
I might get a picture later.
Got some GIM design drawings completed lately, but only on paper, I need to dia'ize them (which won't be an easy job now). I hope I'll be able to show some of the work soon.

Permalink . Ikke . 05:36:38 pm . 74 Words . Life, Technology, Coding Corner . . 796 views . 3 comments

09/10/05

So, today is Software Freedom Day 2005. Here in Ghent, VTK/WVS organises a little event in co-operation with several companies and organisations. There's a movie in Film Plateau ("Revolution OS"), a little get-together afterwards, and maybe some food. All of this free (as in beer), except the food, obviously.
More information can be found here (in Dutch).

I'm trying to work on the GIM design some more, and working on the new PDC at VTK. More on this later.

Permalink . Ikke . 11:17:07 am . 109 Words . Technology, Linux . . 810 views . 8 comments

08/31/05

Virtual Reality in 2015

What will the Internet look like in 2015? What are giants like Microsoft and Google up to? Who are the other players?

Find the (possible) answer on these and other questions here (requires a Flash player, unfortunately).

Complete nonsense? A bit of truth? Maybe even worse than presented here? Let me know in the comments!

Thanks to Bram ;-)

Permalink . Ikke . 08:59:40 pm . 90 Words . Technology, Networks . . 489 views . 4 comments

08/18/05

Shut down

This feed is temporarily disabled, as it screws up the RSS feeds. I'm sorry for any inconveniences this causes.

It's late, I'm not in an english mood :-)

Permalink . admin . 11:21:46 pm . 27 Words . Articles . Email . No views
Shut down

This feed is temporarily disabled, as it screws up the RSS feeds. I'm sorry for any inconveniences this causes.

It's late, I'm not in an english mood :-)

Permalink . admin . 11:21:01 pm . 27 Words . Articles . Email . No views

08/16/05

Barry County

Barry County is the name of two counties in the United States, both named for U.S. Postmaster General William T. Barry:

Permalink . admin . 11:59:54 pm . 1 Words . Articles . Email . No views
Moved!

This blog is moved!

I finally moved my blog to my own domain, peterdedecker.net. So, if you're reading this through an RSS-feed, please update this entry in your aggregator to the new one.

Of course, this is only applicable to the ones who are just reading Peter's Blog, the blogs of Ikke, RealNitro and the FSU-blog stay at this location.

Thanks for hosting until now, Ikke!

Permalink . Peter . 20:16:42 . 67 Words . Internet & Blogs . Email . No views

08/15/05

An epanodos (or epanados) is a figure of speech in which the parts of a sentence or clause are repeated in inverse order.

Examples:

  • "O more exceeding love, or law more just? Just law, indeed, but more exceeding love!" (Milton).
Permalink . admin . 11:59:49 pm . 1 Words . Articles . Email . No views
Stage gedaan en schatje terug!

Sinds vrijdag is het eindelijk gedaan. De zes weken stage bij Siemens. Niet dat 't geen fijne tijd was, daar niet van, maar er mocht wel een einde aan komen. Elke dag vroeg uit mijn bed moeten en 's avonds laat thuis zijn terwijl alle anderen verlof hebben, is niet zo fijn. Bovendien wordt 't ook wel s tijd om wat te studeren voor de tweede zit.

Wat de stage betreft: het was zeker de moeite waard. In een bedrijf als Siemens krijg je eens totaal ander materiaal in je handen. Tests opstellen voor nieuwe technieken, zelf iets testen, nieuwe technieken bestuderen, meevolgen van en meewerken aan interessante state-off-the-art projecten zoals het internet op de Thalys of I-City,... En de bende geeks die daar rondliep was ook wel fijn :-) Ik wist trouwens niet dat Linux zoveel gebruikt werd: settopboxen, access points, routers/gateways,... Alles draait linux! U heeft waarschijnlijk meer linux in uw huis dan u dacht ;-) Echt wel de moeite waard en een aanrader aan al wie twijfelt om een stage te gaan doen! Dat dit voor zes studiepunten meetelt, is uiteraard uitermate mooi meegenomen. Maar 't mag ook wel, want zes weken is lang en met de reistijd erbij waren het wel lange dagen.

Goofy

Nog meer goed nieuws: mijn schatje is terug! Jaja, terwijl ik aan't werken was, heeft zij doodleuk een reisje gemaakt naar Normandi

Permalink . Peter . 01:53:56 . 417 Words . Life & Fun, Siemens . Email . No views

08/14/05

Dr. Daniel Jackson makes an amazing discovery while translating the Ancient writing on the colonnade that SG-2 discovered on planet P3X-439. The writing talks about a library of knowledge and Daniel suspects it contains a repository — the same type of device that once downloaded the Ancients' knowledge into Col. O'Neill's brain and would have cost O'Neill his life had not the Asgard intervened and removed the alien data from his mind.

However, SG-2 spots a Goa'uld reconnaissance drone while on the planet, which means that system lord Anubis is also aware of the repository's existence. SG-1 must get to it first, so that they can, once and for all, learn the location of the Lost City of the Ancients and use that race's advanced technology to save the galaxy from Goa'uld oppression. Should this knowledge fall into Anubis' hands, nothing will be able to stop him. This time, SG-1's plan is to remove the repository rather than downloading it into a human, and then to bring it back to Earth and find a safe way to retrieve the data. The Asgard and other alien allies are not responding, so Stargate Command is on its own.

SG-1, SG-2 and SG-3 are dispatched to P3X-439, where Daniel and Maj. Carter try to remove the repository from the monument — with no luck. Suddenly, a full-scale Goa'uld attack rocks the monument, as Alkesh fighters carpet-bomb the area. There is no choice: Someone must download the Ancient knowledge into his or her brain. O'Neill assesses that Carter is too valuable, and that Daniel will be needed to translate the Ancient language that whoever goes through with this will be speaking when their consciousness is taken over and replaced by that of the Ancients — resulting in neural overload and death. So he does it again: O'Neill steps up to the repository, where the face-hugging arms come out, grab O'Neill's head and pump Ancient knowledge directly into his brain.

The teams return to Stargate Command, where they must face the inevitable: O'Neill's human consciousness will soon be obliterated and he will begin speaking in Ancient. Not long after that, his human physiology will no longer be able to handle the strain and he will die.

Meanwhile, in Washington, newly inaugurated President Hayes has found a replacement for Gen. Hammond, in an attempt to put a friendly face on the Stargate Project when it goes public. She is Dr. Elizabeth Weir, a multilingual political negotiator who will be able to confer with leaders of other countries, who no doubt will want shared control of the stargate.

Indeed, there's already someone within the administration itself who wants control of the stargate — Vice-President Kinsey, who has pressured the president into this bold move. Kinsey informs Weir in no uncertain terms that he is best person to have on her side when she takes over Stargate Command — and the last person she'd want to cross.

President Hayes, completely aware of Kinsey's history with Hammond, informs the general that he does not want him to retire. He knows full well that Hammond's experience will remain invaluable in the near future — but politics is politics. All offworld teams are recalled and the stargate is shut down for a three-month review process.

No one at Stargate Command is happy about that, or about Dr. Weir taking command. For her part, Weir doesn't intend to allow Kinsey to use her as a puppet to control the stargate. She is also aware of O'Neill's impending death and intends to deal with it. Kinsey wants O'Neill and the rest of SG-1 gone, but O'Neill's knowledge of the Lost City is crucial to winning the war against the Goa'uld.

The Goa'uld, meanwhile, are now an immediate threat to Earth: Teal'c's mentor, Bra'tac, arrives through the stargate with the dire news that Anubis knows Earth has the repository of Ancient knowledge, and he is about to attack. In three days, he and his army of Kull Warrior supersoldier drones will arrive.

Kinsey thinks this is all a ruse to keep the program running and SG-1 in place. But Weir knows better. — and because the knowledge in O'Neill's head is the only chance of saving Earth … well, Kinsey's private agenda be damned. She's in charge of Stargate Command now, not him. She believes that the threat to Earth is real and that America owes Col. O'Neill the chance to make what might be his ultimate sacrifice. Judging from the Ancient word that issues from his lips, the time for that sacrifice is coming soon.

Bra'tac returns home to Chulak. Teal'c goes with him, in the hope of procuring warriors and ships to protect Earth. O'Neill is about to give Teal'c the "if I don't see you again speech." But Teal'c is certain they will. The rest of SG-1 hopes he's right.

Permalink . admin . 11:01:34 pm . 1 Words . Articles . Email . No views

08/13/05

Edgar Vincent Griffin is a British Conservative politician. He was a councillor for St Johns Wood Terrace Ward on St Marylebone Borough Council from 1959 to 1965. Griffin is the father of Nick Griffin, Chairman of the British National Party and his wife Jean is a councillor for the BNP. In August 2001 he was expelled from the Conservative Party after being found guilty of "assisting" the BNP, when he answered his wife's BNP hotline in his home because she was out posting letters.

External links

Permalink . admin . 11:01:32 pm . 1 Words . Articles . Email . No views
Lezersbrief over affaire Vandamme

KIM-OPLEIDING

Na het bekendmaken van de ,,Vandamme-affaire'', over het inhoudsloze KIM-postgraduaat aan de Ugent (DS 27 juli) haastten de KULeuven, de VUB en de UA zich om te verklaren dat dergelijke wanpraktijken bij hen niet mogelijk zijn ,,vanwege de vele controles''. Ik betwijfel dat ten zeerste. Over die KIM-opleiding werd wel degelijk een anonieme studentenevaluatie georganiseerd. Geen enkele student, op

Permalink . Peter . 14:16:07 . 487 Words . UGent & Stuver . Email . No views

08/12/05

Ook in Frankrijk wordt Open Source in het onderwijs ge

Eerder was al te lezen dat het Vlaamse onderwijs de mogelijkheden van vrije software gaat verkennen. Dit is blijkbaar niet alleen zo in Vlaanderen, maar ook in Frankrijk. Daar krijgen de middelbare scholieren begin volgend jaar CD's van de overheid met vrije software en een Linux Live CD. Hopelijk wordt het een groot succes!
bron

Permalink . Peter . 23:30:50 . 55 Words . Free Software . Email . No views
Sarah Knauss
Sarah Knauss

Sarah Knauss (September 24, 1880 - December 30, 1999) was considered the "world's oldest person" by Guinness World Records from April 16, 1998 until her death in 1999. At 117, Sarah set the record for the oldest "new" titleholder (which corresponds to the highest "valley" on a graph of the oldest living persons over time).

Sarah DeRemer Clark was born in a small coal mining town, Hollywood, Pennsylvania (which no longer exists), and died in Allentown, Pennsylvania. In 1901 she married Abraham Lincoln Knauss. He became a well-known Republican leader in Lehigh County. Upon the 1998 death of Marie-Louise Meilleur, she became the oldest recognized person in the world. Following her death, Eva Morris of England became the oldest recognized person in the world.

Knauss was a homemaker and insurance office manager. Her daughter, Kathryn Sullivan, who was 96 at the time of Sarah's death, once explained Knauss' three-digit age by saying:""She's a very tranquil person and nothing fazes her. That's why she's living this long."

In 1995, when asked if she enjoyed her long life, Knauss said matter-of-factly: "I enjoy it because I have my health and I can do things." Her passions were said to be watching golf on television, doing needlepoint, and nibbling on milk chocolate turtles, cashews, and potato chips. "Sarah was an elegant lady and worthy of all the honor and adulation she had received," said Joseph Hess, an Administrator of the Phoebe-Devitt Homes Foundation facility where Knauss died quietly in her room. Officials said that, to their knowledge, she had not been ill.

Knauss lived through seven U.S. wars, the sinking of the RMS Titanic and Charles Lindbergh's solo flight across the Atlantic. She was older than the Brooklyn Bridge and the Statue of Liberty, and was already 88 when Neil Armstrong walked on the moon in July 1969.

In addition to her daughter, Knauss was survived by several grandchildren, great-grandchildren, and great-great-grandchildren.

At age 116 she was recognized as the United States national longevity recordholder, then thought to be held by Carrie White (1874?-1991). It is now thought that the record should have been held by Lucy Hannah (117 years 248 days) who died in 1993. In any case, Sarah extended the U.S. record to age 119. She lived to see her daughter turn 96. Most scientific circles consider her to be the second-oldest person ever, after Jeanne Calment (the Izumi claim to be 120 being largely bypassed).

She is considered to have been the last living member of the Missionary Generation.


Preceded by:
Marie-Louise Meilleur
Oldest Recognized Person in the World
Succeeded by:
Eva Morris


Permalink . admin . 11:01:37 pm . 1 Words . Articles . Email . No views

08/11/05

(image)
(caption)
Appears in manga:
Yu-Gi-Oh! (Original manga)
Yu-Gi-Oh! R
anime:
Yu-Gi-Oh! (Duel Monsters) (2nd series anime)
movie:
Yu-Gi-Oh! The Movie: Pyramid of Light
Debut Yu-Gi-Oh! Duelist Volume 1, Duel 1
Original Japanese manga Vol. 7, Duel 60
Birthday October 8
Sign Libra
Age 24
Height 188 cm (6.16 feet)
Weight 65 kg (143 pounds)
Blood type A
Favorite food Wine and Gorgonzola cheese
Least favorite food Cuttlefish and squid
Status at debut Honorary Chairman of Industrial Illusion (I²)
Relations Lost love: Cynthia (Cecelia Crawford in the English anime)
Kohai: Yakou Tenma
Right-hand man: Croquet (Crocketts in the Japanese versions)
Seiyu Jiro Jay Takasugi
English voice actor Darren Dunstan

Maximillion J. Pegasus, known as Pegasus J. Crawford (?????J???????) in the original Japanese anime and manga, is a fictional character in the manga and anime series Yu-Gi-Oh!. In the English Yu-Gi-Oh! The Duelists of the Roses video game, and in the instruction booklet for Yu-Gi-Oh! Forbidden Memories, his original name, Pegasus Crawford is used, while in the other games his English anime and manga name is used. Pegasus is unusual in that his English name is used in the English manga while most Yu-Gi-Oh! human characters keep their Japanese names in the English manga. In the video game Yu-Gi-Oh! The Falsebound Kingdom, the character representing Pegasus within the virtual world of the game is named Pegasus J. Kroitzel.

Pegasus, an antagonist, is the Honorary Chairman of Industrial Illusion (I²) and the creator of the game of Duel Monsters (Magic and Wizards in the Japanese manga). Pegasus, an American, possesses the Millennium Eye (throughout the Duelist Kingdom saga), and is to trying take over the Kaiba Corporation for its Solid Vision technology so he can use it to see his deceased love, Cynthia (Cecelia Pegasus in the English anime, who is his wife in the English anime). A possible reason on why the name was changed is because "Cynthia Crawford" resembles "Cindy Crawford". Pegasus plans to use that technology in conjunction with the seven Millennium Items. Using Seto Kaiba's technology with the items' magic is said to be able to give the power of Life over Death and would bring Cindy back to life.

Pegasus first met Cynthia at a party thrown by his businessman father in Las Vegas 14 years ago. He says she died when he was 17. It was unclear whether or not they married in the original Japanese.

After her death, Pegasus searched the world looking for anything that could possibly revive the dead. His quest led him to Egypt where their beliefs of an afterlife intrigued him. There he met Shadi, the ghost of a guardian of the Millennium Items, who gouged Pegasus' left eye out and replaced it with a gold metal one called the Millennium Eye after Pegasus passed its test.

Pegasus soon learned of the ancient Shadow Games that were played in ancient Egypt and began to obsess with their powers. He created a new game in the United States basing a card game on the duels used in the ancient version. Combining the magic of the Millennium Items with these cards had the same effect as using them with the stone slabs originally used. One notable problem he had was with the Egyptian God Cards, whose magical powers were too great for him to manage. Fearing for his life, he returned to Egypt, and had Ishizu Ishtar, a current guardian, bury them in the Pharaoh's tomb.

Pegasus has a habit of calling Yugi Mutou (Yugi Moto in the English anime) "Yugi-boy" and Seto Kaiba "Kaiba-boy" in the English anime and manga. This is assumed because of his childish personality, since he still enjoys cartoons, and even created cartoon monsters.

In the manga, after his Millennium Eye is torn out, he disappears without a trace and is presumed dead.

In the Japanese second series anime, Pegasus is the inspiration for Dungeon Dice Monsters, a game that Ryuji Otogi (Duke Devlin) created. Pegasus' defeat at the hands of Yugi is the reason that Otogi challenges Yugi in both second series anime versions.

In Yu-Gi-Oh! R, Pegasus' k?hai (protégé), Yakou Tenma, takes over Industrial Illusions after Pegasus is defeated.

In the game Yu-Gi-Oh! Reshef of Destruction (Yu-Gi-Oh! Duel Monsters 8: Reshef of Destruction in Japan), Pegasus takes an alias. In the Japanese version, he takes the name Taiyo Tenma (???? Tenma Taiy?). In the English version, he takes the name Sol Chevalsky.

Contents

Notable Dueling Cards

Pegasus is best known for his Toon World card. Other cards in his deck are:

Monster Cards

Magic Cards

  • Toon Table of Contents
  • Toon World
  • Shine Palace
  • Toon Rollback
  • Doppleganger
  • Prophecy

Reference


The Yu-Gi-Oh! Directory

Composition

Japanese Manga: Yu-Gi-Oh! (original manga) (in future updates) | Yu-Gi-Oh! R

Japanese Anime: Yu-Gi-Oh! (first series anime) (only in Japan) | Yu-Gi-Oh! (second series anime) (Yu-Gi-Oh! Duel Monsters) | Yu-Gi-Oh! GX

English Manga: See this link

English Anime: See Yu-Gi-Oh! (second series anime)

Movies: First Yu-Gi-Oh! movie (only in Japan; see this link | Yu-Gi-Oh! The Movie: Pyramid of Light


Characters

Protagonists: Yugi Mutou (Yugi Moto) | Dark Yugi (Yami Yugi) | Katsuya Jonouchi (Joey Wheeler) | Hiroto Honda (Tristan Taylor) | Anzu Mazaki (Téa Gardner) | Ryo Bakura | Miho Nosaka (Melody)

Antagonists: Dark Bakura (Yami Bakura) | Pegasus J. Crawford (Maximillion Pegasus) | Marik Ishtar | Dark Marik (Yami Marik) | Noah Kaiba | Dartz | Rafael | Valon | Amelda (Alister)

Other Characters: Seto Kaiba | Mokuba Kaiba | Sugoroku Mutou (Solomon Moto) | Shadi | Mai Kujaku (Mai Valentine) | Shizuka Kawai (Shizuka Jonouchi, Serenity Wheeler) | Ishizu Ishtar | Ryuji Otogi

Yu-Gi-Oh! GX Protagonists: Jaden Yuki (Judai Yuki) | Alexis Rhodes (Asuka Tenjouin) | Syrus Truesdale (Sho Marufuji) | Hayato Maeda (Chumley Huffington)

Yu-Gi-Oh! GX Antagonists: Jun Manjoume (Chazz Princeton) | Cronos de Medici (Vellian Crowler)

Other Yu-Gi-Oh! GX Characters: Ryo Marufuji (Zane Truesdale) | Daichi Misawa (Bastion Misawa)

See Also: Yu-Gi-Oh! main characters | Yu-Gi-Oh! anime and manga characters | Yu-Gi-Oh! anime, manga or movie only characters


Merchandise

Yu-Gi-Oh! Trading Card Game | Duel Disk


Yu-Gi-Oh!-related books (not including manga)

In English: Yu-Gi-Oh!: Monster Duel Official Handbook | Yu-Gi-Oh! Enter the Shadow Realm: Mighty Champions

In Japanese: Yu-Gi-Oh! (novel) | Yu-Gi-Oh! Official Card Game Duel Monsters Official Rule Guide - The Thousand Rule Bible | Yu-Gi-Oh! Official Card Game Duel Monsters Official Card Catalog The Variable Book: See this link | Yu-Gi-Oh! Character Guide Book - The Gospel of Truth


Yu-Gi-Oh!-related video games - See this link


Edit this template

Permalink . admin . 11:01:42 pm . 1 Words . Articles . Email . No views
Alles OK met de ruimtevaart

Airane 5 Het gaat weer goed met de ruimtevaart. Na het bange afwachten op het resultaat van de Discovery-missie is iedereen nu terug hoopvol voor de toekomst. De NASA wist te melden dat de shuttle nog nooit in zo'n goede staat teruggekeerd is van een ruimtereis. Daarnaast is vandaag ook nog een Ariane 5 vertrokken die meteen het record van de lancering van de zwaarste telecommunicatiesatelliet ooit op haar naam mag schrijven. Alleen een Ariane 5 is in staat om zo'n beest van 6,5 ton in een geostationaire baan te krijgen. De Europese en Amerikaanse ruimtevaartorganisaties beleven hoogdagen!

Permalink . Peter . 10:19:43 . 93 Words . Life & Fun . Email . No views

08/10/05

British Knights' is a brand of shoe.

Permalink . admin . 11:01:49 pm . 1 Words . Articles . Email . No views
BBC en de openbrongedachte

press to open

De BBC scoort de laatste tijd enorm goed bij mij. Echt een omroep zoals het hoort: alles wat betaald wordt door de staat, ook gratis aan de burgers ter beschikking stellen. Zo moet het zijn. Velen herinneren zich wel nog de actie waarbij je een week lang de muziek van Beethoven kon downloaden. Wat velen echter niet weten, is dat de BBC nog veel meer weggeeft.

=> Read more!

Permalink . Peter . 23:01:32 . 369 Words . Free Software . Email . No views
Promotiefilmpjes

Sommigen onder ons hebben misschien al de promovideo voor 175 jaar Belgi

Permalink . Peter . 20:27:28 . 112 Words . Politics . Email . No views
Vel op de baan

Als je een dezer dagen door de Ottergemse Steenweg rijdt, kan je misschien nog een stukje van mijn vel tegenkomen. Inderdaad, ik heb er net het asfalt van heel dichtbij bekeken. Aan een goede snelheid aan het doortrekken toen het achterste tandwiel ineens het contact met de as verloor. Recht op mijn bek dus. Resultaat: een schelleke vel eraf aan de ellebogen en een rugzak en pc op mijn kop gekregen. Respect voor de vriendelijke man op de mobilette die direct stopte en vroeg of hij iets kon doen! Maar ja, buiten rechstaan en te voet verdergaan (naar de apotheker, om ontsmetting) kan je niet veel anders doen h

Permalink . Peter . 18:28:01 . 109 Words . Life & Fun . Email . No views
Wallpapers

The past months, I had cow spots as wallpaper. Now I thought it could be the time for a new one. With all the news about Discovery this week and space being a passion for years, I decided to take a look at NASA's and ESA's wallpaper sections. Lot's of beautiful stuff to find there. The background of my current desktop (click for a larger image) is not some modern art by humans, but it's a masterpiece created by nature itself! I love those pictures and it was really hard to cut some of it to give the image the same ratio as my widescreen.

My current desktop with a background of outer space

Permalink . Peter . 08:35:06 . 105 Words . Life & Fun . Email . No views

08/09/05

Limb-girdle muscular dystrophy or Erb's muscular dystrophy is a type of muscular dystrophy that includes Duchenne muscular dystrophy, Becker's muscular dystrophy, and a large number of rarer disorders.

The term "limb-girdle" is used to describe these disorders because the muscles most severely affected are generally those of the hips and shoulders -- the limb girdle muscles.

Common symptoms of limb-girdle muscular distrophy are muscle weakness, myoglobinuria, pain, myotonia, cardiomyopathy, elevated serum CK, and rippling muscles.

The muscle weakness is generally symmetric, proximal, and slowly progressive.

Generally pain is not present with LGMD, and mental function is not affected.

LGMD can begin in childhood, adolescence, young adulthood or even later. The age of onset is usually between 10 and 30. Both genders are affected equally. When limb-girdle muscular dystrophy begins in childhood the progression appears to be faster and the disease more disabling. When the disorder begins in adolescence or adulthood the disease is generally not as severe and progresses more slowly.

The distal muscles are affected late in LGMD, if at all. Over time (usually many years), the person with LGMD loses muscle bulk and strength. Eventually, he may need a power wheelchair or scooter, especially for long distances.

While LGMD isn't a fatal disease, it may eventually weaken the heart and lung muscles, leading to illness or death due to secondary disorders.

LGMD is typically an inherited disorder, though it may be inherited as a dominant, recessive, or X-linked genetic defect. The result of the defect is that the muscles cannot properly form the proteins needed for normal muscle function. Several different proteins can be affected, and the specific protein that is absent or defective identifies the specific type of muscular distrophy.

Treatment for LGMD is primarily supportive. Exercise and physical therapy are advised to maintain as much muscle strength and joint flexibility as possible. Assistive devices may be used to maintain mobility and quality of life. Careful attention to lung and heart health is also required.

Permalink . admin . 11:01:46 pm . 1 Words . Articles . Email . No views
NASA TV

NASA TV

Right now, I'm watching NASA TV with RealPlayer in a corner of my screen while working on wireless tests. It's nice to follow the mission this way and hear and see status updates while working. First two landing attempts were cancelled because of the bad weather in Florida. Next opportunity is at 13.06 CEST (engine burn) and another hour and 6 minutes later Discovery should touch the ground in California.

Permalink . Peter . 10:38:29 . 68 Words . Life & Fun, Internet & Blogs . Email . No views

08/08/05

Constantine II (Causantín mac Áeda) (874?–952) was king of Scotland from 900 to 942 or 943. He was the son of King Aedh, first cousin of the previous king Donald II, and first cousin once removed of his successor Malcolm I, to whom he left his kingdom upon abdicating and becoming a monk. Constantine's reign is the second longest reign in Scottish history.

Constantine succeeded Donald to the Scottish throne in 900. If a coronation took place, then there is no surviving record of it.

During his reign, Constantine had to fend off Viking (or Norse) raids from the north and west. The earliest of these involved driving the Vikings away from Scotland, and this reached a triumphant climax at the Battle of Scone in 904, after which the Vikings were forced to withdraw from Scotland. However, by then, the Vikings had laid waste to much of Scotland, and in particular the Dunkeld and Alba areas.

Constantine later struggled to win land from, or at least not lose land to, his neighbour to the south, the Saxon area of Northumbria, where the Vikings, led by Viking king Ragnall, had resettled themselves. Constantine was involved in two battles with Ragnall (referred to as the Battles of Corbridge) in that area in 914 and 918, both of which resulted in Scottish victories and ultimately a cessation of hostilities there with the Norse.

When he was not involved in fighting Vikings, Constantine remodelled the Christian church of the day to be more Gaelic in nature. This included a Synod at Scone in 906, and he introduced the mormaer (earls) system to Scotland.

Constantine married at some point in his life, but virtually nothing is known of it. The date and place of the marriage are unrecorded, and his wife's name is likewise forgotten. It is known, however, that the marriage produced at least three children: two sons and a daughter.

Constantine's daughter, whose name is also no longer known, married Olaf III Guthfrithson, the Norse king of Dublin at the time, in 937, in order to establish a more stable relationship with the Norse. At least three children later came from this marriage. If it was intended to contribute to holding back Northumbria, it did not. Constantine was defeated at the Battle of Brunanburh by King Athelstan of England in 937. One of Constantine's sons, Cellach, died in this battle.

In 942 or 943, Constantine abdicated in favour of Malcolm and entered a Culdee monastery in St Andrews, Fife, and eventually became Abbot there. He died peacefully in 952, and was probably buried at the monastery. Constantine's surviving son, Indulf, later became King of Scotland.

Preceded by:
Donald II
King of Scots Succeeded by:
Malcolm I
Permalink . admin . 11:01:53 pm . 1 Words . Articles . Email . No views
Digitale televisie: ook voor de homebewoners?

Telenet Televisie

Binnenkort verdwijnen enkele kanalen van de analoge kabel. Ik kan me echter wel inbeelden dat kanalen zoals CNN, BBC World en ARTE wel gemist zullen worden door de studenten-homebewoners. Ik heb dan ook eens rondgezocht naar wat de mogelijkheden zouden kunnen zijn in de universitaire gebouwen met het interne TV-netwerk. Het ontvangen van het digitale signaal zou wel mogelijk moeten zijn, denk ik, een returnpad voor het interactieve deel echter niet. En de prijs zou normaal ook moeten meevallen: ofwel een waarborg van 50

Permalink . Peter . 22:25:50 . 535 Words . UGent & Stuver . Email . No views
Aflaten: ze bestaan nog

Wie dacht dat het begrip aflaten in de hedendaagse maatschappij niet meer bestaat, heeft het bij het verkeerde eind. Aflaten zijn een gedeeltelijke of volledige kwijtschelding van de staffen voor begane zonden, uitgereikt door de paus. In het verleden hadden de pausen een bloeiende handel hierin en konden de rijkeren voor een mooie som hiermee hun zonden afkopen.

Benedictus XVI Vandaag de dag bestaan die dingen blijkbaar nog. Paus Benedictus XVI heeft namelijk beslist dat de deelnemers aan de Wereldjongerendagen in Keulen kunnen rekenen op dergelijke aflaten. Wilt u ook een aflaat, maar bent u verhinderd om naar Keulen te trekken? Bid dan voor de deelnemers en u krijgt gedeeltelijke kwijtschelding van uw zonden.

Bron: dit artikel in De Standaard.
Edit: de bronverwijzing is een artikel uit het snelnieuws, nu staat er ook een ander artikel: Kom naar Keulen, verdien een aflaat

Permalink . Peter . 19:28:15 . 140 Words . Life & Fun, Politics . Email . No views

08/07/05

Mouse (and sound) troubles fixed

Since a time ago, I had some strange mouse (and sound) problems. I was using a 2.6.11-gentoo-r6 kernel compiled manually with everything working. The only strange thing was some message appearing at boot time (more exactly when /etc/init.d/alsasound was started) pointing me at the fact that there was a problem with the program reading the file "/etc/asound.state". I took a look into that file, but all I saw were @'s and other strange signs, so it seemed it was a binary one. Normally there are no binary files in /etc, so I thought it might be corrupted and I removed the file. (In fact: it is the file where your mixer levels are stored, so removing it couldn't cause any problems) Since then, sound wasn't working anymore.

Another problem I had, was when I compiled a new 2.6.12 kernel starting from the old .config file and using "make menuconfig". When booting that kernel, my USB-mouse didn't work anymore. Touchpad and the "clit" (that little "button" between the g and h on some laptopkeyboards) worked perfect. It even didn't work anymore when I recompiled the old 2.6.11 kernel with the config gathered from "zcat /proc/config.gz > .config" because I lost the original one. So these two 2.6.11 kernels should be identical, but the newly compiled one didn't make my USB-mouse work the way the old one did. Strange stuff, isn't it?

So, thanks to the nice guys on bcol the problem is solved now. In my /etc/X11/xorg.conf file, I had three sections "InputDevice": one for my keyboard and two for my mice (USB and touchpad/clit). One was using /dev/input/mouse0, the other one /dev/input/mouse1. Toni (Dutch weblog) explained me that I could better use /dev/input/mice as this is some virtual device combining the input from all mouse-devices. I even shouldn't merge the two sections and there options, just change the device. And yes, this works! And with the new kernel, I also have sound working! There must be some file corrupt in the old kernel image. Thanks, Toni!

Next thing on the list is following the Gentoo Power Management Guide, when I have some time.

Permalink . Peter . 23:28:25 . 366 Words . Linux, My Gentoo . Email . No views

Contents

Dates of Sessions

1927-1929

Major Political Events

Officers

Senate

House of Representatives

Members of the Seventieth United States Congress

Senate

Map showing party membership at the start of the 70th Senate. Red states are represented by two Republicans and blue by two Democrats. Purple states are represented by one senator from each party. Minnesota was represented by a Republican and a Farmer-Laborite.
Enlarge
Map showing party membership at the start of the 70th Senate. Red states are represented by two Republicans and blue by two Democrats. Purple states are represented by one senator from each party. Minnesota was represented by a Republican and a Farmer-Laborite.

Representatives

Don't we just love MS and the great software they offer us? ;-)

Don't take tis too seriously, of course

Permalink . Ikke . 05:21:19 pm . 19 Words . Life . . 6958 views . 3 comments
Zoektermen

Regelmatig kijk ik de statistieken van deze weblog eens na. Zo kan ik bijvoorbeeld melden dat 2 augustus tot nu toe de drukste dag was met 1983 bezoekers, en dat Liferea, Feedreader en Mozilla Thunderbird de populairste tools zijn om deze RSS-feed te volgen. Wat echter steevast leuke informatie oplevert, zijn de "refering searches". Hier kan je zien welke zoektermen men gebruikt heeft in Google of een andere zoekmachine om op deze pagina's terecht te komen. Blijkbaar mag je echt rare dingen ingeven om toch nog hier terecht te komen.

Ik weet niet of ik die mensen heb kunnen helpen in hun zoektocht naar informatie :-D De meeste zoektermen zijn echter eerder termen ivm linux, ipw2200, wlan, (k)ubuntu, kismet,... Hopelijk hebben die mensen iets aan mijn schrijfsels hier h

Permalink . Peter . 17:01:45 . 145 Words . Life & Fun, Internet & Blogs . Email . No views

08/06/05

I Ching hexagram 01, depicted |||||| is named ? (qián), Force. Other translations: R. Wilhelm/C. Baynes, The Creative; G. Whincup, Strong Action; E. Shaughnessy (Mawangdui), The Key.

image:iching-hexagram-01.png

  • Inner (lower) trigram is ? (||| ? qián) Force = (?) heaven
  • Outer (upper) trigram is ? (||| ? qián) Force = (?) heaven
First hexagram in the I Ching I Ching Next: :::::: Field (? k?n)
Permalink . admin . 11:00:54 pm . 1 Words . Articles . Email . No views
Chocoladefeestje

Gisteravond ben ik, voorzien van slaapzak en matje, afgezakt naar het verre Menen voor een feestje bij vrienden. Het is een fantastische avond geworden, die volledig in het teken van de chocolade stond.

chocoladefondue

Alles begon met een overheerlijke chocoladefondue, met zowel melkchocolade als mijn favoriete fondant. Voor wie dit nog nooit gedaan heeft, is De Chocoladebar een aanrader, waar je je smaakorganen kan verwennen met chocoladefondues in alle maten en soorten. Het was alleszins geweldig. En voor echte chocoladeliefhebbers (ja, ik beken schuldig) komt er natuurlijk nooit een einde aan :oops:

Chocolat Movie CoverAls de meeste magen dan uiteindelijk toch begonnen tegen te spruttelen, werd het tijd om alles wat te laten zakken. Gezellig met z'n allen in de zetel doorzakken voor een goeie film. En om in de sfeer te blijven, is er natuurlijk geen betere dan Chocolat. Chocolaterie Maya Jaja, zelfs met overvolle magen blijft die film nog altijd superverleidelijk en krijg je terug zin in dat heerlijke bruine goedje. We konden het dan ook niet laten om de fonduepotten aan te vallen en vingertje voor vingertje nogmaals te genieten. Als kers op de taart was er dan nog ijs, wat uiteraard Dame Blanche was (of chocolade-ijs voor de liefhebbers).

Dat het ontbijt oa bestond uit chocoladekoeken en niemand echt veel honger had, is niet verwonderlijk zeker? De echte chocolademelk (gemaakt uit de overblijvende chocoladefondue aangevuld met melk) mocht natuurlijk ook niet ontbreken.

Echt wel een overheerlijke avond/nacht/ochtend. Het water komt me nog steeds in de mond als ik eraan terugdenk. Een overdaad aan chocolade is gewoonweg onmogelijk, al reclameert mijn maag soms wel een beetje. Zeker en vast voor herhaling vatbaar! Ik denk dat ik dat boek "chocoladedesserten" nog eens uit de kast ga halen om wat overheerlijke inspiratie op te doen. B-)

En dan nu: studeren XX(

Permalink . Peter . 16:27:46 . 299 Words . Life & Fun . Email . No views

08/05/05

Hichis? (???; -ch?) is a town located in Kamo District, Gifu, Japan.

As of 2003, the town has an estimated population of 5,016 and a density of 55.44 persons per km². The total area is 90.47 km².

External link

Permalink . admin . 11:00:55 pm . 1 Words . Articles . Email . No views

08/04/05

Mimosa was a science fiction fanzine edited by Richard and Nicki Lynch. It won six Hugo Awards for Best Fanzine and was nominated 13 times. Published from the 1980s until 2003, Mimosa focused on discussions of the history and impact of science fiction fandom. Contributors included Forrest J. Ackerman, Sharon N. Farber, Dave Kyle, Walt Willis, and Mike Resnick.

Mimosa also featured a great deal of fan art, including covers by Hugo Award for Best Fan Artist winners including Joe Mayhew, Brad W. Foster, Teddy Harvia, Ian Gunn.

The final article featured in the final issue of Mimosa, "Footprints in the Sand" by Michael A. Burstein, is one of several articles in the late 1990s and early 2000s that highlight the eventual death of science fiction fandom.

External links


Permalink . admin . 11:00:56 pm . 1 Words . Articles . Email . No views

08/03/05

The Railway Express Agency was a rail express service, at one point the only one in the United States. Originally the American Railway Express Agency, its name was changed in 1927. It filed for bankruptcy in 1975.

Permalink . admin . 11:01:03 pm . 1 Words . Articles . Email . No views
Automatic printer configuration: the mistery revealed

Apple Bonjour Logo

Sometime ago, I wrote I was impressed by the automatic printer detection and configuration of Gnome/Cups. I didn't know how it was possible to detect and configure that network printers fully automatic in a windows-only environment where the support team doesn't take into account linux users.

Today, I discovered how that's possible. In fact, it's quite simple. I was doing a test with wireless acces points and a wireless controller. I was monitoring traffic between those devices and noticed my own computer was sending packets to some multicast adresses. Google learned me the multicast address where my computer was sending these packets to, is used by Apple Bonjour or RendezVous. So it seems that every device (network shares and printers,...) meeting the requirements for automatic configuration with Mac OS X, also automaticly works with Linux. Very nice! Thank you, Apple!

Apple in windows network

Permalink . Peter . 19:54:28 . 141 Words . Linux, My Gentoo . Email . No views
Reacties op mijn opinietekst

Na enkele kleine opmerkingen heb ik de tekst hier en daar aangepast. Deze is vanmiddag verstuurd naar de pers, het kabinet onderwijs, enkele Vlaamse parlementsleden en enkele betrokkenen aan de UGent met volgende begeleidende mail:

Vorige week berichtte de media, met voorop De Standaard, uitvoerig over de zaak Vandamme aan de Universiteit Gent. Dat de UGent daarbij in een negatief daglicht geplaatst werd, doet geen goed aan het imago van de universiteit en nog minder aan de waarde van mijn diploma en dat van mijn medestudenten. Ik zie dit bericht dan ook naar de hierover berichtende media, de kwaliteitskrant De Standaard in het bijzonder, als een persoonlijk recht van antwoord. Alvast bedankt voor uw aandacht.

De binnengelopen reacties waren uitermate positief en enthousiast. De Standaard echter liet mij hetvolgende weten:

Geachte heer Dedecker,

ik moet vaststellen dat u aan geen enkel van de vereisten om voor een recht op antwoord in aanmerking te komen voldoet. Overigens vergist u zich geheel met uw complottheorie. Alle betrokkenen bij de berichtgeving in deze zaak, van de auteur over zijn chef tot de hoofdredacteur, zijn oud-studenten van de UGent en zijn daar, terecht, net even trots op als u. Twee van hen zijn zelfs oudstudenten van professor Vandamme.

met vriendelijke groeten,

Bart Sturtewagen
Adjunct-hoofdredacteur De Standaard

Dat het geen officieel "recht van antwoord" was, wist ik wel al en was volgens mij wel duidelijk, hoop ik. Bovendien heb ik het niet louter over de berichtgeving in de zaak-Vandamme, doch over de algemene berichtgeving van De Standaard over de UGent en de KULeuven. De berichtgeving over de zaak Vandamme is al bij al nog vrij braafjes, doch dat is de overige berichtgeving, met zelfs tal van onjuistheden (zie tekst) helemaal niet.

Hopelijk komen er nog wat reacties op en heeft de UGent de boodschap begrepen.

Permalink . Peter . 18:46:37 . 300 Words . UGent & Stuver . Email . No views
Opinie: Nog steeds een trotse student aan de UGent

Mijn vorige post is blijkbaar niet in dovemansoren gevallen. Verschillende personen binnen de GSR hebben al positief gereageerd. Er werd dan ook voorgesteld om een opiniestuk te schrijven en naar de kranten te sturen. Aangezien een boodschap van een student, recht uit het hart, beter overkomt dan een inderhaast bijeengegoten geforceerd standpunt van de GSR, heb ik mij aan het schrijven gezet en mijn boodschap van gisteren herwerkt tot een opinie die klaar is om ingestuurd te worden.

(bijgewerkte versie)

=> Read more!

Permalink . Peter . 01:18:29 . 1279 Words . UGent & Stuver . Email . No views

08/02/05

The Non-Manufacturing ISM Report on Business is a purchasing survey of the United States service economy, published by the Institute for Supply Management since June 1998. Its results are a popular economic indicator and forecaster.

Its primary index is the Non-Manufacturing Business Activity Index.

The other indices are

  • New Orders
  • Employment
  • Supplier Deliveries
  • Inventories
  • Prices
  • Backlog of Orders
  • New Export Orders
  • Imports
  • Inventory Sentiment

Business Activity, New Orders, Imports, and Employment indices are seasonally adjusted.

The report is based on data compiled from monthly replies to questions asked of more than 370 purchasing and supply executives in over 62 different industries representing nine divisions from the Standard Industrial Classification categories.

Permalink . admin . 11:01:07 pm . 1 Words . Articles . Email . No views

08/01/05

Permalink . admin . 11:04:14 pm . 1 Words . Articles . Email . No views
UGent in de pers

Aula UGent

Dat onze universiteit de voorbije week een aantal keren in de pers gekomen is, zal iedereen wel gemerkt hebben. Jammergenoeg was dat in een niet al te proper daglicht, alles draaide immers om de jarenlange malafide praktijken van de genoemde professor Vandamme. Dit doet allesbehalve goed aan het imago van de UGent. Echter, je moet dat ook van een andere kant bekijken: in Gent zijn de studenten mondig genoeg om, evt met hulp van studentenvertegenwoordigers, decanen, professoren, assistenten en andere medewerkers van onze universiteit, de hele zaak aan te pakken ipv onder de mat te vegen. In de UGent durft men denken ipv netjes in de pas te lopen! Wouter is hier, samen met studentenvertegenwoordigers en anderen, een volledig jaar aan bezig geweest. We mogen trots zijn dat de democratie in onze instelling sterk genoeg is om deze rotte appel te verwijderen en een tuchtprocedure op te starten ipv voor een doofpotoperatie te opteren. Het kan onze universiteit en de kwaliteit van ons onderwijs en diploma alleen maar ten goede komen!

=> Read more!

Permalink . Peter . 22:43:38 . 1904 Words . UGent & Stuver . Email . No views
VPN-limieten

Ik was dit vorig keer vergeten te vermelden, maar een hele tijd na datum heb ik alsnog een antwoord gekregen van Ars

Permalink . Peter . 17:16:15 . 130 Words . UGent & Stuver . Email . No views

07/31/05

Afi The putative ancestor of the class of small farmers and craftsmen in the Song of Ríg in Norse mythology.

See also AFI.


Permalink . admin . 11:01:16 pm . 1 Words . Articles . Email . No views

07/30/05

The Oroqen people (????) (also spelled Oroqin and sometimes Orochen and Orochon) are an ethnic group in northern China. They form one of the 56 ethnic groups officially recognized by the People's Republic of China. They live in Inner Mongolia and along the Heilongjiang river.


Chinese ethnic groups (classification by PRC government)

Achang - Bai - Blang - Bonan - Buyei - Chosen - Dai - Daur - De'ang - Derung - Dong - Dongxiang - Ewenki - Gaoshan - Gelao - Gin - Han - Hani - Hezhen - Hui - Jingpo - Jino - Kazak - Kirgiz - Lahu - Lhoba - Li - Lisu - Man - Maonan - Miao - Monba - Mongol - Mulao - Naxi - Nu - Oroqen - Pumi - Qiang - Russ - Salar - She - Shui - Tajik - Tatar - Tibetan - Tu - Tujia - Uygur - Uzbek - Va - Xibe - Yao - Yi - Yugur - Zhuang

Permalink . admin . 11:01:13 pm . 1 Words . Articles . Email . No views

07/29/05

A yoga instructor performing an asana
Enlarge
A yoga instructor performing an asana

Asana is a Sanskrit word that literally means a seat but in the practise of yoga refers to a pose or posture. In Patanjali's yoga sutras Asana means, mainly, sitting for meditation.

The practice of asanas involves stretching and moving the body into various positions. With practice, the body can be made to remain a given position for a longer period of time, comfortably. When a degree of comfort is attained in a given posture, it becomes Asana. In general, however, the term is also used to refer to physical yoga exercises in general.

The practice of asanas is very good for muscle flexibility, and many practitioners believe the positions massage and bring balance to the various internal glands and organs of the body, and that they facilitate and balance the flow of prana (vital energy) in the body.

This physical aspect of yoga has been much popularised in the western world and is practiced by a great deal of people, including many celebrities like Madonna, which has given rise to a misconception that asanas are all there is to yoga. This is not true. Yoga asanas such as shirsasana (headstand), etc. (see below) are actually part of Hatha Yoga, which itself is just one of several different ways of practising and approaching yoga. For example, in Pantanjali's work referred to above, Asana is classified as the third rung in the ladder of the practice of Raja Yoga, which consists of 8 limbs: Yama and Niyama, which are ethical obligations, Asana, Pranayama, which is breath control, Pratyahara, which is sense withdrawal, Dharana, which is concentration, Dhyana, which is meditation, and Samadhi, which is the experience of unity with God.

Contents

Conditions for a Good Asana

Students taking a yoga class
Enlarge
Students taking a yoga class

The Asana should be firm and easy. It should be steady and not cause discomfort of any kind. Any tightness or tension observed in the body should be consciously relaxed. It should be a comfortable posture in which he or she can sit for a long time. The Asana should be effortless both in the body and in the mind. Absolute ease of relaxation is the sign of perfected Asana. The breathing should be a natural rhythm, through the nose, breathing into the belly and not into the chest.

According to Hatha Yoga practitioners, when this bodily control is achieved, they are free from what they call the 'pairs of opposites', such as heat and cold, hunger and thirst, joy and grief, and so on.

Selected Asanas

There are hundreds, if not thousands, of yoga asanas ( since in reality, any bodily position comfortably held could be an Asana ). There is a wealth of knowledge in books and on the internet, but it is better to begin practicing with an experienced yoga instructor, who can see if you are performing the position correctly, and can prevent you from hurting yourself by overstretching. These days, it is not difficult to find yoga instructors, although good ones are perhaps harder to come by.

The Hatha Yoga Pradipika By Swami Svatmarama (External link) suggests the following "sitting for meditation asanas". Other translations of the Hatha Yoga Pradipika have more to say about the sitting asanas, albeit cryptically.

  • Svastikasana: "Sitting straight on level ground, squeeze both feet between calves and thighs [of the opposite legs]. This is svastikasana."


HYP Chapter 3 Asanas: sutra #19

  • Virasana: "Place one foot upon the other thigh and the other foot below the opposite thigh. This is virasana."


HYP Chapter 3 Asanas: sutra #21

  • Siddhasana: "Press one heel into the place below the sex organs [the perineum] and put the other heel just above this region [close to the abdomen]. Press the chin upon the chest, sit up straight, with controlled organs, and fasten the eyes between the eyebrows. This is siddhasana, whereby all obstacles on the path to perfection are removed"


HYP Chapter 3 Asanas: sutra #35

  • Vajrasana: "Place the right heel above the sex organ and the left heel over the right. This too is siddhasana."


HYP Chapter 3 Asanas: sutra #36
"Some call this siddhasana; others say it is vajrasana, or muk-tasana, or guptasana"
HYP Chapter 3 Asanas: sutra #37

A drawing of a girl in padmasana, the lotus position
Enlarge
A drawing of a girl in padmasana, the lotus position
  • Padmasana: "Place the right heel upon the base of the left thigh and the left upon the right thigh. Cross the arms behind the back and grasp the toes, the right ones with the right hand and the left with the left. Press the chin on the breast and look at the tip of your nose. This is called padmasana and cures all diseases."


(The secret teaching is that there should be a space of four inches between the chin and the breast" Sri Nivasa lyangar. The Hatha Yoga Pradipika of Yoga Swami Svatmarama (translation with commentary) (Adyar, 1949), p. 22. -Trans.)
HYP Chapter 3 Asanas: sutra #37

Yoga Poses

Yogaasana can be relaxing, gentle, athletic and invigorating.

  • Backbends
  • Forward bends
  • Spine twists
  • Arm balances
  • Seated poses

External links

  1. Sri Swami Chidananda The Philosophy, the Psychology, and Practice of Yoga http://www.SivanandaDlshq.org/
  2. Sri Swami Krishnananda The Yoga System http://www.SivanandaDlshq.org/
  3. Download the complete text of Sri Swami Krishnananda's and Sri Swami Chidananda's material quoted above from: http://www.dlshq.org/download/download.htm
  4. Hatha Yoga Pradipika by Swami Svatmarama Foreward by B. K. S. Iyengar. Commentary by Hans Ulrich Rieker. Translated by Elsy Becherer. Harper Collins, Aquarian/Thorsons, 1972. Complete text online, 321 Kb. http://lib.ru/URIKOVA/SANTEM/SVATMARAMA/hyp.txt_with-big-pictures.html
Permalink . admin . 11:01:16 pm . 1 Words . Articles . Email . No views
Kismet, ethereal, ipw2200: linux is great for wireless analysis

The combination Kismet-Ethereal just rules! Make sure you use the latest version of those packages as well as your drivers, especialy when you have an Intel IPW2200-based one, as there are multiple new versions released. Gentoo-users will have to enable the ~x86 keyword.

Capture your stream with kismet (very well configured by default!) and open the dump file (/tmp/Kismet-2005-07-29...dump) with ethereal and have fun. The protocol is much more implemented in the latest version of ethereal now. Management frames can be full inspected. The version of ethereal on the allready mentioned great Auditor Security Collection LiveCD is an older one and doesn't support that stuff completely.

One of the great benefits with this combination on a linux machine is that you can capture and analyse all IEEE 802.11 frames, data as well as management frames, with the full headers as they were sent on the radio. With the windows drivers and capture programs, you can only capture the data inside the data packets, no headers, no management packets. That's why expensive commercial applications like AirMagnet provide their own drivers for a small selection of cards. That's the only way they can capture the most interesting information on a windows machine. So standard (free) linux tools are just great for wireless solutions and analysis, I love it!

Permalink . Peter . 11:06:19 . 218 Words . Linux, My Gentoo . Email . No views
Lack of updates

Hija,

as some of you might now I'm currently employed (just one month) at some nice company called Dedigate, where I'm allowed to do some nice coding stuff etc (ok, also less exciting things ;-)) whilst getting payed. As I'm behind a computer screens >8h/day over there, trying to write some good code, I'm not in a real coding-mood when I get home (don't flame me, I'm just some normal human being). This implies I rarely blog, as I don't like to blog about my "normal" life.

Nothing too fancy happened lately, except the fact I saw Arsenal (not the football club) live at BoomTown (wiiiii :-)), the DConf project was released to the wolves, and I got 20 years old today (07/28) (got a nice little present from my favourite girl, the piano and violin scores of the Brahms piece I blogged about before, thank you!).

I'm quite tired now, guess I need some good sleep to be able to get to work again tomorrow. 2 weeks to go :-)

Permalink . Ikke . 01:23:40 am . 211 Words . Life . . 417 views . 6 comments

07/28/05

Hudson Oaks is a city located in Parker County, Texas. As of the 2000 census, the city had a total population of 1,637.

Geography

Location of Hudson Oaks, Texas

Hudson Oaks is located at 32°45'2" North, 97°41'49" West (32.750427, -97.696978)1.

According to the United States Census Bureau, the city has a total area of 6.6 km² (2.5 mi²). 6.6 km² (2.5 mi²) of it is land and none of the area is covered with water.

Demographics

As of the census2 of 2000, there are 1,637 people, 546 households, and 475 families residing in the city. The population density is 247.9/km² (641.7/mi²). There are 569 housing units at an average density of 86.2/km² (223.0/mi²). The racial makeup of the city is 96.09% White, 0.79% African American, 0.37% Native American, 0.43% Asian, 0.00% Pacific Islander, 1.28% from other races, and 1.04% from two or more races. 3.97% of the population are Hispanic or Latino of any race.

There are 546 households out of which 46.0% have children under the age of 18 living with them, 78.6% are married couples living together, 4.2% have a female householder with no husband present, and 13.0% are non-families. 10.8% of all households are made up of individuals and 3.3% have someone living alone who is 65 years of age or older. The average household size is 3.00 and the average family size is 3.23.

In the city the population is spread out with 31.6% under the age of 18, 5.2% from 18 to 24, 29.0% from 25 to 44, 25.1% from 45 to 64, and 9.1% who are 65 years of age or older. The median age is 38 years. For every 100 females there are 103.1 males. For every 100 females age 18 and over, there are 102.7 males.

The median income for a household in the city is $69,659, and the median income for a family is $74,688. Males have a median income of $57,292 versus $31,818 for females. The per capita income for the city is $24,528. 4.5% of the population and 4.3% of families are below the poverty line. Out of the total population, 5.4% of those under the age of 18 and 12.7% of those 65 and older are living below the poverty line.

External links

Permalink . admin . 11:01:29 pm . 1 Words . Articles . Email . No views
FRiS in actie tegen repets

Met de vakantie is het weer wat moeilijker elkaar te bereiken en deftig overleg te plegen rond standpunten ed. Echter, net in de vakantie wil men een uitermate belangrijke beslissing nemen, namelijk omtrent de herinvoering van de repets aka parti

Permalink . Peter . 09:49:01 . 237 Words . UGent & Stuver . Email . No views
De Vandamme-story deel 2

Zoals verwacht ook vandaag weer een brok nieuws over prof. Vandamme, tegen wie de UGent een tuchtprocedure gestart heeft. Drie artikels in De Standaard waarin een ex-boekhouder een boekje openslaat over de prof. Jammergenoeg zijn de bewuste artikels enkel voor geregistreerde lezers van De Standaard:

De stroom is op gang gekomen, weldra zijn de praktijken eindelijk te einde. Proficiat, Wouter!

Permalink . Peter . 07:43:17 . 114 Words . UGent & Stuver . Email . No views

07/27/05

Tamrat Desta (born 1978) is an Ethiopian singer and vocalist. He was born in a small town called Tiqur Wuha, located between the two larger towns of Shashemene and Awasa, the second of three children, all boys. After few years, his family moved to Shashemene, and he again moved to Awasa where he finished high school. All three towns are approximately 150 kilometers south of the capital Addis Ababa.

In 1998, he moved to Dire Dawa, located 515 kilometers east of Addis Ababa, to live with his guardian and work at Cherqa Cherq Yekenet Buden where he received basic training as a vocalist and playing with a band.

In 1999, he moved to Addis Ababa to pursue his music career. In 2004, he released his first album Aneleyaleym, for which he received wide acclaim. Most of the lyrics on this CD were written by Habtamu Bogale, and six of the tracks' melodies were by Tamrat.

External link

Permalink . admin . 11:01:29 pm . 1 Words . Articles . Email . No views
UGent start tuchtprocedure tegen professor

Het hek is helemaal van de dam nu. Wat velen al wisten maar discreet behandelden, is nu op grote schaal naar buiten gebracht op de voorpagina van De Standaard en in het VRT radionieuws. Enkele links: het artikel - 10 jaar wanpraktijken - VRT-radiobericht - ingescande documenten.

Ik heb een sterk vermoeden dat er in de loop van de week meer boven water komt.

Permalink . Peter . 08:51:14 . 60 Words . UGent & Stuver . Email . No views

07/26/05

The Airport - Lindbergh Terminal light rail station is on the Hiawatha Line in the Twin Cities region of U.S. state of Minnesota. It is the only underground station on the Hiawatha Line, and is located 70 feet (20 meters) below ground level under the Minneapolis-Saint Paul International Airport (MSP) Transit Center. The twelfth stop southbound, it is a center-platform station and is typically accessed by escalator or elevator. Service began at the site when the second phase of the Hiawatha Line opened on December 4, 2004.

The Minneapolis-Saint Paul International Airport serves about 34 million passengers annually and is one of the main hubs of Northwest Airlines. Because of this, the Lindbergh Terminal Station is one of the most important on the line. The Hiawatha line creates a direct connection between the airport, downtown Minneapolis and the Mall of America.

The location of this station directly below a major airport makes it unique. The tunnel and the station both had to be carefully designed to meet Federal Aviation Administration safety requirements. Passengers can access this station from the Transit Center, which is reached by either taking a people-mover (called a "tram" locally) from the ground-transportation level of the main terminal, or by exiting from the skyway security checkpoint.

This station was excavated after the two main tunnel tubes were constructed with a tunnel boring machine (though cut and cover was used near the ends of the tunnels). During the excavation of the tunnels, a buried river valley was encountered a few hundred feet south south of the station. The walls of the station are painted to look like an outcrop of Saint Peter Sandstone through which the tunnels have been bored. A large installation on the ceiling of this station is meant to look like an aircraft wing.

Lindbergh Station is largely unheated, but maintains a temperature of roughly 50–60°F throughout the year because of its underground location. Small spot heaters are available (as they are at all Hiawatha Line stations).

Notable places nearby

External links

Next station north:
Fort Snelling
Hiawatha Line Next station south:
Humphrey Terminal
Permalink . admin . 11:01:32 pm . 1 Words . Articles . Email . No views
't Is gedaan :-(

Tien fantastische dagen zijn in een hels tempo gepasseerd. Na de Dag van de lege portemonees van gisteren is ook deze editie van de Gentse Feesten aan haar einde gekomen. Ik vond 't alvast dik in orde, heb mij beestig goed geamuseerd. Jammer dat ik een paar keer heb moeten overslaan wegens oververmoeidheid en een zieke vriendin, nietemin was't een beestige tijd. Op naar volgend jaar!

Permalink . Peter . 19:13:38 . 66 Words . Internet & Blogs . Email . No views
Barbaars

Bloedige islamitische rechtspraak, een analyse waarom Iran homo's ophangt.
De-gou-tant gewoon. Zijn dit mensen of beesten? Ik ben echt enorm verontwaardigd dat mensen tot zoiets in staat zijn.

En om welke reden? Godsdienst? Ik dacht dat de islam een boodschap van vrede was, met respect voor elkaar. En dan gisteren in het nieuws: een doodleuke aankondiging dat steeds meer mensen zich tot de islam bekeren zonder ook maar

Permalink . Peter . 09:28:51 . 133 Words . Politics . Email . No views

07/25/05

USS Dubuque (LPD-8)
Career USN Jack
Awarded: 25 January 1963
Laid down: 25 January 1965
Launched: 6 August 1966
Commissioned: 1 September 1967
Fate: Active in service as of 2005.
Homeport: NS San Diego, California
General Characteristics
Displacement: 9521 tons light, 17252 tons full, 7731 tons dead
Length: 173.7 meters (570 feet) overall, 167 meters (548 feet) waterline
Beam: 30.4 meters (100 feet) extreme, 25.6 meters (84 feet) waterline
Draft: 7 meters (23 feet) maximum, 7 meters (23 feet) limit
Complement: 61 officers, 600 men

USS Dubuque (LPD-8), a Cleveland-class amphibious transport dock, is the second ship of the United States Navy to be named for the city of Dubuque, Iowa. Her keel was laid down on 25 January 1965 by Ingalls Shipbuilding. She was launched on 6 August 1966 and commissioned on 1 September 1967 at Norfolk Naval Shipyard in Portsmouth, Virginia. In November 1967, the ship arrived at its first homeport of San Diego, California after transiting the Panama Canal.

From 1968 until 1975, Dubuque made five Western Pacific deployments that saw extensive duty in Vietnam. In a highly publicized event in October 1968, the ship returned 14 repatriated prisoners of war to North Vietnam. From 1969 until 1971 the ship conducted ten "Keystone Cardinal" troop lifts to Okinawa as part of the "Vietnamization" of the war. From February to June of 1973 the ship operated helicopters that conducted naval mine clearance operations in Haiphong Harbor as part of Operation Clean Sweep. In April 1975 the ship participated in the evacuation of Saigon and the rescue of refugees fleeing South Vietnam.

On 15 August 1985 Dubuque departed San Diego for its new homeport of Sasebo, Japan. The ship arrived in Sasebo on 4 September 1985 to join the Seventh Fleet Overseas Family Residency Program. Since joining the Seventh Fleet, the primary mission of the ship was to support the US Marine Corps in the Western Pacific.

Official ribbons as of March 3, 2002
Enlarge
Official ribbons as of March 3, 2002

In May 1988 Dubuque deployed to the Persian Gulf and served as the control ship for mine sweeping operations to protect US-flagged tankers during the Iran-Iraq War. For its participation in this operation the ship was awarded a Meritorious Unit Citation. In 1989 the ship participated in the contingency operation to evacuate American personnel from the Philippines during a failed coup attempt.

Immediately following the Iraqi invasion of Kuwait in August 1990, Dubuque received tasking in the Persian Gulf as part of Operation Desert Shield. The ship functioned as the leading element of Amphibious Ready Group Bravo, which transported Marine Regimental Landing Team Four to Al Jubayl, Saudi Arabia during the critical early stages of the multi-national build up.

Need information from 1992 to present.

On 30 July 1999, Dubuque was relieved by USS Juneau (LPD-10) as part of the forward-deployed naval forces. Since that date she has been once again homeported in San Diego, California.

From June to September of 1999 Dubuque participated in the first SHIP-SWAP with her sister-ship USS Juneau (LPD-10), where each ship's crew remained in their original home ports, allowing Dubuque to return to the homeport of San Diego.

Dubuque has received three Battle Efficiency Awards and participated in countless amphibious exercises and operations throughout the Western Pacific and Indian Oceans.


See USS Dubuque for other ships of this name.

External links


Cleveland-class landing platform dock
Cleveland | Dubuque | Denver | Juneau | Coronado | Shreveport | Nashville

List of amphibious assault ships of the United States Navy
Permalink . admin . 11:01:37 pm . 1 Words . Articles . Email . No views
Working on a little bot: HangBot

I'm working on a new Jabber bot: HangBot. It should be able to let the user play small text-based games. Atm, playing Hangman (which is the game the bot is named after) and some other basic functions work. The next task on the list is making the menu-class more flexible so other games can be added easily.

The hangman game is finished (it works as it should), but I still need to find a good dictionary for the game to pick words from. 'Ikke' proposed some files in /usr/share/dict/, but those are too difficult, and they're in English (I'm looking for both English and Dutch dictionaries). If anyone knows where to find a fitting dictionary (rather short, simple words), please comment it.

Permalink . RealNitro . 20:25:01 . 130 Words . Coding . Email . 341 views

07/24/05

David Koch

People named David Koch:

Permalink . admin . 11:01:43 pm . 1 Words . Articles . Email . No views

07/23/05

Babaloma is a small town in Kwara state of Nigeria. It is located about 75km from Ilorin, the state capital, and 45km from Jebba, a major city that was located in Kwara State but was moved to Niger State by the Gen Babangida administration. There is evidence that Babaloma was initially settled from the nearby Oyo State.

Babaloma is known as a stop over town especially when the major road that linked Niger state and Kwara state passed through it. Babaloma was one of the first towns in the area to have electricity and piped borne water. Babaloma is situated on the major Osin River, which it treats and pumps both through out the town and to surrounding towns and villages. Abiodun Ajide

Permalink . admin . 11:01:40 pm . 1 Words . Articles . Email . No views
Mannen, leer uw vrouw eens afstaan!

De Gentse Feesten zijn nog lang niet ten einde. Gisteren was aldus weer een fantastische avond met goed gezelschap en veel plezier. Zoals de voorbije dagen begon onze avond (na een lekkere pizza in La Rustica) met de dansinitiatie van Boombal. Alweer dolle pret, doch

Permalink . Peter . 14:26:16 . 220 Words . Life & Fun . Email . No views

07/22/05

Map

The (Roman Catholic) Diocese of Nakhon Sawan (Dioecesis Nakhonsauanensis, Thai: ?????????????????) is located in central Thailand. It is a suffragan diocese of the archdiocese of Bangkok. The bishopric seat is currently vacant.

The diocese covers an area of 93,547 km², covering 13 provinces - Chainat, Kamphaeng Phet, Lopburi, Nakhon Sawan, Saraburi, Sukhothai, Tak, Uthai Thani, Uttaradit.

As of 2001, of the 8.2 million citizen 9,237 are member of the Catholic Church. It is divided into 28 parishes, having 27 priests altogether.

History

The diocese was erected on February 9, 1967, when it was split off from the archdiocese of Bangkok.

Bishops

External links


Christian cross Catholic Church in Thailand Flag of Thailand
Archdiocese of Bangkok: Chanthaburi - Chiang Mai - Nakhon Sawan - Ratchaburi - Surat Thani
Archdiocese of Thare and Nonseng: Nakhon Ratchasima - Ubon Ratchathani - Udon Thani
Permalink . admin . 11:01:44 pm . 1 Words . Articles . Email . No views

07/21/05

In 1988, Brian Wilson released his first solo album outside of the Beach Boys. Mostly co-produced by Russ Titleman, the album was mostly critically praised upon release, but charted at only #54.

  • Note: When Brian Wilson was reissued in 2000, the credits to several songs were revised. Wilson was, in 1988, still under the care of Dr. Eugene E. Landy, who was alleged to have taken advantage of Brian in various ways, including claiming songwriting credits for himself and his girlfriend Alexandra Morgan. These credits are marked with an asterisk, and are not on the 2000 reissue.


Track Listing

  1. Love and Mercy (Brian Wilson/Eugene Landy*)
  2. Walkin' the Line (Brian Wilson/Eugene Landy*/Alexandra Morgan*/Nick Laird-Clowes)
  3. Melt Away (Brian Wilson/Eugene Landy*)
  4. Baby, Let Your Hair Grow Long (Brian Wilson)
  5. Little Children (Brian Wilson)
  6. One for the Boys (Brian Wilson)
  7. There's So Many (Brian Wilson/Eugene Landy*/Alexandra Morgan*)
  8. Night Time (Brian Wilson/Eugene Landy*/Alexandra Morgan*/Andy Paley)
  9. Let It Shine (Brian Wilson/Jeff Lynne)
  10. Meet Me In My Dreams Tonight (Brian Wilson/Andy Paley/Andy Dean)
  11. Rio Grande (Brian Wilson/Andy Paley)
Permalink . admin . 10:54:51 pm . 1 Words . Articles . Email . No views
Alweer een geslaagde feestenavond

Ook gisteravond waren de Gentse Feesten alweer meer dan geslaagd. Het was echter immens druk, hoogstwaarschijnlijk doordat de meeste mensen vandaag een dagje vrij hebben. Je kon niet al te makkelijk passeren, vele pleinen afgesloten en de duveltent binnenraken was geen gemakkelijke opgave.

Voor de gelenheid hadden we afgesproken met de studentenvertegenwoordigers van de GSR om de teamgeest te bevorderen. Voorafgaand heeft mijn schatje mij echter serieus laten afzien op de volksdansinitiatie van Boombal. Allesbehalve makkelijk, die volksdansen, uiterst vermoeiend, maar dolle pret. Uiteindelijk daagden we met z'n achten op op de GSR afspraak: voorzitster Sara Willems, Stijn Baert, Stefaan Stroo, Peter Huygebaert en vriendin, aanstormend voorzitter Bram Spiessens (kwam er later bij) en ikzelf met Lynn. Uiteraard kwamen we naderhand nog een aantal gekenden tegen. Dat 't dolle pret was, kunnen onderstaande foto's getuigen. (klik op de foto voor een groter exemplaar)

=> Read more!

Permalink . Peter . 17:23:13 . 143 Words . Life & Fun, UGent & Stuver . Email . No views
Laten we er geen 200 jaar van maken

Vandaag viert Belgi

Permalink . Peter . 16:46:14 . 765 Words . Politics, N-VA . Email . No views

07/20/05

Sam Rayburn Reservoir is a reservoir in the United States located in Texas, 80 miles north of Beaumont. It was formerly known as McGee Bend Reservoir until 1963 when it was renamed after Sam Rayburn. The reservoir is fed by the Angelina River. The capacity of the reservoir is 3,997,600 acre-feet. Construction began September 7, 1956 and began serving its purpose on March 29, 1965. The main purposes of the reservoir are flood control and power generation. The reservoir is operated by the United States Army Corps of Engineers, Fort Worth district.

External links

Permalink . admin . 10:54:52 pm . 1 Words . Articles . Email . No views
Feesten

Ons weekendje Parijs gaat helaas niet door wegens het wegvallen van onze slaapplaats. En ons alternatiefje, een dagje ligfietsen gaat ook niet door, want nu blijkt dat De Ligfiets gesloten is tijdens de Gentse Feesten.

Echter niet getreurd: het weer zit goed en er zijn nog zes dagen vol spetterende Gentse Feesten om volledig uit de bol te gaan! En met het verlengde weekend kan dat helemaal niet meer stuk!

Permalink . Peter . 16:15:05 . 70 Words . Life & Fun . Email . No views
Peilingen dmv De Stemmenkampioen (2)

Blijkbaar ben ik niet alleen met mijn bedenkingen bij de peilingen van De Stemmenkampioen. Volgens De Morgen en enkele specialisten is dergelijke peiling zelfs een gevaarlijk spelletje. Wat het cre

Permalink . Peter . 09:50:20 . 74 Words . Politics . Email . No views

07/19/05

Dan gaan we dansen!

Morgen is het eindelijk zover! Ik zal om 20u afzakken naar het Baudelopark om aldaar op het Boombal mijn danskwaliteiten te proberen opdrijven. De plaats van danspartner is ondertussen reeds ingenomen door mijn schatje B-)

Vanavond was het gezellig rondhangen alvast weer dik in orde :-D

Permalink . Peter . 23:21:12 . 46 Words . Life & Fun . Email . No views

The Dornier Do 12 Libelle III (German:"Dragonfly III") was the third of a line of small German flying boats of the 1930s. It started with the Dornier A Libelle I and then the Dornier A Libelle II. The aircraft was also amphibious and would carry 3-4 people. It was powered by a single Argus As 10 engine initially, then switched to a Gnôme-Rhône Titan 5 Ke engine, which was mounted in a pod above the fuselage. It first flew in 1932 and went on to be used by the DFS to pull gliders.

Contents

Specifications (Dornier Do 12)

General characteristics

  • Crew:
  • Capacity:
  • Length: 9.00 m (29 ft 6 in)
  • Wingspan: 13.00 m (42 ft 8 in)
  • Height: 4.20 m (13 ft 9 in)
  • Wing area: 28.0 m² (301 ft²)
  • Empty: 1,075 kg (2,370 lb)
  • Loaded: 1,400 kg (3,090 lb)
  • Maximum takeoff: kg ( lb)
  • Powerplant: 1 Argus As 10, later 1 Gnôme-Rhône Titan 5 Ke, kW ( hp)

Performance

  • Maximum speed: 210 km/h (130 mph)
  • Cruising speed: 170 km/h (105 mph)
  • Landing speed: 80 km/h (50 mph)
  • Range: 580 km (360 mi)
  • Service ceiling: 5,100 m (16,700 ft)
  • Rate of climb: m/min ( ft/min)
  • Wing loading: 50 kg/m² (10.2 lb/ft²)
  • Power/mass: hp/lb ( kW/kg)

See also


Lists of Aircraft | Aircraft manufacturers | Aircraft engines | Aircraft engine manufacturers

Airports | Airlines | Air forces | Aircraft weapons | Missiles | Timeline of aviation

Permalink . admin . 10:54:55 pm . 1 Words . Articles . Email . No views

Yesterday, I uploaded a new index page for realnitro.be. It's a small page, just to have something that refers to this blog, to some sites I made and to my e-mail adress. (I might add my JID too.) I don't know if the page is working in IE as it should, but I might look into that later today.

Having passed my exams in july, I have a lot of free time (three months minus some vacation work), so I'll probably be able to post some more interesting stuff on this blog for the months to come. (I might adjust mabber.py a bit to make it work again on eduserv, and I should finish that little glade/gstreamer-experiment too some day.)

Permalink . RealNitro . 16:20:23 . 146 Words . Webdesign, Life, Coding . Email . 413 views

07/18/05

Perot Systems is an IT company based in Plano, Texas, United States. The company trades on the New York Stock Exchange as PER.

Perot Systems Corporation was founded in 1988 by Ross Perot, Texas billionaire, better known as a candidate for President of the United States (in 1992 and 1996).

Peter Altabef was made the president and CEO in 2004.

Diversity

Perot Systems received a 14% rating by the Human Rights Campaign's Corporate Equality Index in 2004. When Ross Perot returned to the company's helm in 1998 he closed its domestic partner benefits program.

External links

Permalink . admin . 10:55:03 pm . 1 Words . Articles . Email . No views
Dansen

Van mijn goede voornemen om niet te lang te blijven op de Gentse Feesten en op tijd in mijn bed te kruipen om er vandaag vroeg uit te geraken, is niet veel in huis gekomen. Maar ja, wat wil je? Als je hoort dat om 23u Stef Bos naar het St-Baafsplein komt, dan kan je toch maar moeilijk naar huis gaan h

Permalink . Peter . 11:47:22 . 182 Words . Life & Fun . Email . No views

07/17/05

Hela is also the German name for Hel, Poland and the cruiser SMS Hela

In biological and medical research, a HeLa cell is a cell which is derived from cervical cancer cells taken from a woman named Henrietta Lacks, who died from the cancer in 1951, and circulated (without Lacks's knowledge or permission) by George Gey. These cancer cells are considered "immortal" (that is, they do not die of old age and can divide an unlimited number of times, unlike most other human cells), and have been grown in cell culture in an unbroken lineage ever since.

This cell line was propagated for use in cancer research. Initially, the cell line was said to be named after a "Helen Lane", in order to preserve Lacks's anonymity. The cells proliferate abnormally rapidly, even compared to other cancers.

HeLa cells have been transformed by human papillomavirus 18 (HPV18), and have different properties from normal cervical cells.

They are used as model cancer cells and for studying cellular signal transduction.

HeLa cells have proven difficult to control. They sometimes contaminate other cell cultures growing in the same laboratory, interfering with biological research. The degree of contamination is unknown, because few researchers test the identity or purity of already-established cell lines. It has been claimed that a substantial fraction of in vitro cell lines are actually HeLa, their original cells having been overwhelmed by a rapidly growing population derived from HeLa contaminant cells. It has been estimated that the total mass of HeLa cells far exceeds that of the rest of Henrietta Lacks' body.

Some researchers have argued that these cells are a separate species, because they reproduce and spread on their own; in 1991 it was named and described as Helacyton gartleri.

External links

Permalink . admin . 10:55:03 pm . 1 Words . Articles . Email . No views
Genssche Fieste

Affiche Gentse Feesten

Voor de cultuurbarbaar die het nog niet wist: de Gentse Feesten zijn weer begonnen. Van 16 tot en met 25 juli staat Gent weer helemaal op z'n kop dankzij dit fantastische cultureel volksfeest. Vandaag heb ik al een eerste bezoekje gebracht en genoten van uitstekende pleinartiesten met vuur en kettingzagen aan het Belfort, de Duveltent, het St-Baafsplein, de Vrijdagsmarkt en een terrasje aan het Vleeshuis. De sfeer was fantastisch, de opkomst enorm, de Duvel, Gentse Tripel en oliebollen hebben gesmaakt. B-) De avond was alvast goed geslaagd voor mij. Het deed me echt verlangen naar meer. Mijn statement dat de Genste Feesten voor mij niet goed zullen lukken wegens de stage, heeft plaats moeten maken voor de hoop elke avond wel minstens voor eventjes te kunnen afzakken naar het oude stadscentrum voor een tijdje puur genot.

Tot morgen!

Permalink . Peter . 03:43:27 . 136 Words . Life & Fun . Email . No views
Resultaten - warmte - reisjes - Joke

Deze week heb ik, mede door mijn vermoeidheid niet echt veel tijd gehad om te bloggen. Ik was dan ook vergeten om jullie op de hoogte te houden van mijn resultaten op studiegebied waarvan de laatste onzekerheid donderdag verdwenen was. Een trouwe lezer mij hierop attent maakte.

=> Read more!

Permalink . Peter . 03:15:12 . 771 Words . Life & Fun, Studies, UGent & Stuver . Email . No views

07/16/05

Livingston is a town located in Livingston Parish, Louisiana. As of the 2000 census, the town had a total population of 1,342.

Geography

Location of Livingston, Louisiana

Livingston is located at 30°29'55" North, 90°44'54" West (30.498721, -90.748371)1.

According to the United States Census Bureau, the town has a total area of 8.1 km² (3.1 mi²). 8.1 km² (3.1 mi²) of it is land and none of it is covered by water.

Demographics

As of the census2 of 2000, there are 1,342 people, 539 households, and 377 families residing in the town. The population density is 166.1/km² (429.8/mi²). There are 581 housing units at an average density of 71.9/km² (186.1/mi²). The racial makeup of the town is 96.05% White, 2.98% African American, 0.07% Native American, 0.22% Asian, 0.00% Pacific Islander, 0.00% from other races, and 0.67% from two or more races. 0.52% of the population are Hispanic or Latino of any race.

There are 539 households out of which 34.3% have children under the age of 18 living with them, 49.9% are married couples living together, 15.0% have a female householder with no husband present, and 29.9% are non-families. 25.6% of all households are made up of individuals and 11.9% have someone living alone who is 65 years of age or older. The average household size is 2.49 and the average family size is 3.00.

In the town the population is spread out with 26.1% under the age of 18, 11.2% from 18 to 24, 27.0% from 25 to 44, 23.9% from 45 to 64, and 11.8% who are 65 years of age or older. The median age is 35 years. For every 100 females there are 95.3 males. For every 100 females age 18 and over, there are 87.9 males.

The median income for a household in the town is $32,813, and the median income for a family is $41,625. Males have a median income of $33,958 versus $20,795 for females. The per capita income for the town is $15,075. 12.9% of the population and 10.9% of families are below the poverty line. Out of the total population, 7.7% of those under the age of 18 and 21.4% of those 65 and older are living below the poverty line.

External links

Permalink . admin . 10:55:19 pm . 1 Words . Articles . Email . No views
GConf introduction

I played a little with GConf today. Here's some little introduction to it.

We'll be doing 3 very simple things today:

  1. Read out GConf key values

  2. Set key values

  3. Read out values, and register to value changes

Reading out a string from the GConf tree

Reading out a value (in our case a string) is very simple: first of all you need to know which string you want to read. In this sample we'll try to get the value of the default browser. Then you create a GConfClient, a proxy to the GConf system, you query gconfd using the proxy, get the value and do something with it.

Here's the code:

/* GConf test reader
 * Compile using
 *      gcc `pkg-config --libs --cflags gconf-2.0` -o reader reader.c
 */

#include <glib.h>
#include <gconf/gconf-client.h>

/* Path to the key we'll be working with */
#define GCKEY "/desktop/gnome/applications/browser/exec"

gint main(gint argc, gchar *argv[]) {
        /* Our proxy */
        GConfClient *gclient = NULL;
        /* String to store the GCKEY's value in */
        gchar *val = NULL;

        /* Initialize the GConf subsystem */
        gconf_init(argc, argv, NULL);

        g_print("Working with key \"%s\"\n", "" GCKEY);
        
        /* Get the default GConf proxy */
        gclient = gconf_client_get_default();
        g_assert(gclient != NULL);

        /* Get the value of GCKEY */
        val = gconf_client_get_string(gclient, "" GCKEY, NULL);
        if(val == NULL) {
                /* Key was not set before */
                val = g_strdup("<unset>");
        }
        g_assert(val != NULL);

        g_print("Value: \"%s\"\n", val);

        g_free(val);

        return 0;
}

As you can see this is very straight-forward.
Now compile and run the code:

ikke@marslander ~/Projects/gconf $ gcc `pkg-config --libs --cflags gconf-2.0` -o reader reader.c
ikke@marslander ~/Projects/gconf $ ./reader
Working with key "/desktop/gnome/applications/browser/exec"
Value: "mozilla"

Setting a key value

To set a key, once more we just need a GConfClient proxy, and call a function to set the new key value:

/* GConf test writer
 * Compile using
 *      gcc `pkg-config --libs --cflags gconf-2.0` -o setkey setkey.c
 */

#include <glib.h>
#include <gconf/gconf-client.h>

/* Path to the key we'll be working with */
#define GCKEY "/extra/test/key"

gint main(gint argc, gchar *argv[]) {
        /* Our proxy */
        GConfClient *gclient = NULL;
        /* New value */
        gchar *val = NULL;

        /* Initialize the GConf subsystem */
        gconf_init(argc, argv, NULL);

        if(argc > 1) {
                val = g_strdup(argv[1]);
        }
        else {
                val = g_strdup("testval");
        }

        g_print("Working with key \"%s\"\n", "" GCKEY);
        
        /* Get the default GConf proxy */
        gclient = gconf_client_get_default();
        g_assert(gclient != NULL);

        g_assert(val != NULL);
        gconf_client_set_string(gclient, "" GCKEY, val, NULL);

        g_print("Value \"%s\" set\n", val);

        g_free(val);

        return 0;
}

Again, compile the code and play around with it:

ikke@marslander ~/Projects/gconf $ gcc `pkg-config --libs --cflags gconf-2.0` -o setkey setkey.c
ikke@marslander ~/Projects/gconf $ ./setkey
Working with key "/extra/test/key"
Value "testval" set
ikke@marslander ~/Projects/gconf $ ./setkey test2
Working with key "/extra/test/key"
Value "test2" set

Now you might want to alter reader.c and compile it again so it reads out this new key instead of the one we used before.

Using change notifications

At last we'll be using one of the more advanced features of GConf, change notifications. This means we can register a callback to a key change, so when the key's value is changed (in-process or by another process) we'll be notified of this.
One again this is very easy: get a GConfClient proxy, figure out to which key you want to subscribe, find out the container directory, tell gconfd you want to register to that "directory", add a key change event handler, and you're done. This might sound confusing, read the code sample to see how easy it is.

/* GConf test listener
 * Compile using
 *      gcc `pkg-config --libs --cflags gconf-2.0` -o listener listener.c
 */

#include <glib.h>
#include <gconf/gconf-client.h>

/* The GConf PATH we'll want to monitor */
#define GCPATH "/extra/test"
/* Path to the key we'll be working with */
#define GCKEY "/extra/test/key"

/* This is the callback function for GCKEY changes */
void key_changed_cb(GConfClient* client, guint cnxn_id, GConfEntry *entry, gpointer user_data) {
        /* Store the new key value */
        gchar *val = NULL;
        /* A local GConfValue */
        GConfValue *value = NULL;

        /* Get the value from the provided entry */
        value = gconf_entry_get_value(entry);
        
        /* This should not happen, but one never knows */
        if(value == NULL) {
                val = g_strdup("<unset>");
        }
        else {
                /* Check value type, we want a string */
                if(value->type == GCONF_VALUE_STRING) {
                        /* Get the key value
                         * We use g_strdup because we'll g_free(val) later */
                        val = g_strdup(gconf_value_get_string(value));
                }
                else {
                        val = g_strdup("<wrong type>");
                }
        }
        g_assert(val != NULL);

        g_print("Value changed: \"%s\"\n", val);

        g_free(val);
}

gint main(gint argc, gchar *argv[]) {
        /* Our proxy */
        GConfClient *gclient = NULL;
        /* String to store the GCKEY's value in */
        gchar *val = NULL;
        /* A simple mainloop */
        GMainLoop *loop = NULL;

        /* Initialize the GConf subsystem */
        gconf_init(argc, argv, NULL);

        g_print("Working with key \"%s\"\n", "" GCKEY);
        
        /* Get the default GConf proxy */
        gclient = gconf_client_get_default();
        g_assert(gclient != NULL);

        /* Get the value of GCKEY */
        val = gconf_client_get_string(gclient, "" GCKEY, NULL);
        if(val == NULL) {
                /* Key was not set before */
                val = g_strdup("<unset>");
        }
        g_assert(val != NULL);

        g_print("Initial value: \"%s\"\n", val);

        g_free(val);

        /* Watch GCPATH */
        gconf_client_add_dir(gclient, "" GCPATH, GCONF_CLIENT_PRELOAD_NONE, NULL);
        /* And specify a callback function for GCKEY changes */
        gconf_client_notify_add(gclient, "" GCKEY, key_changed_cb, NULL, NULL, NULL);

        /* Create a mainloop and run it */
        loop = g_main_loop_new(NULL, FALSE);
        g_assert(loop != NULL);
        g_main_loop_run(loop);

        return 0;
}

50% of this code is equal to "reader.c". The only "special" things is adding a callback notifier in main(), and the callback function itself.
You should notice GConfValues got a type: in this sample we check whether the key's type equals to "GCONF_VALUE_STRING", otherwise we don't "process" the value.

Once more, compile and run this code:

ikke@marslander ~/Projects/gconf $ gcc `pkg-config --libs --cflags gconf-2.0` -o listener listener.c
ikke@marslander ~/Projects/gconf $ ./listener
Working with key "/extra/test/key"
Initial value: "test2"

At this point, the program just hangs due to our GMainLoop. The key value is the one last set with ./setkey

Now open a new console, go to the directory where setkey is located, and execute it giving some new value. Then watch what's going on at the terminal where "listener" is running:

ikke@marslander ~/Projects/gconf $ ./setkey "a longer test key"
Working with key "/extra/test/key"
Value "a longer test key" set

In the "listener" console, we see this:

Value changed: "a longer test key"

Jay, change notifications working fine :-)

In this sample we only worked with string values, GConf also supports floats, integers, booleans, lists and even more. Check out the API docs for more information.
If you want to read more about GConf, e.g. its internals, you might want to check this tutorial by the GConf author, Havoc Pennington. Notice this is an old document, so the code samples in there won't work anymore, the GConf API has changed quite a lot since then. The ideas explained in the article are still relevant though, so it's worth reading.

Permalink . Ikke . 03:03:02 pm . 1227 Words . Desktop, Coding Corner . . 808 views . 3 comments

07/15/05

The Quartier Latin is an area in the Ville-Marie borough of Montreal, surrounding UQAM and lower Saint-Denis Street, between downtown and the Village gai. It is known for its theatres, artistic atmosphere, cafés, and boutiques.

It owes its name, a reference to the Quartier Latin in Paris, to the presence of the nascent Université de Montréal in the 1920s. In the 1940s the university moved out and headed for a new campus on the north slopes of Mount Royal, far from the downtown borough. In the late 1960s UQAM was born and established itself in the Ville-Marie borough, giving a modern underpinning to the name. A large junior college, the CEGEP du Vieux-Montreal also moved in at about the same period.

The Grande Bibliothèque du Québec joined these educational institutions in 2005.

Permalink . admin . 10:55:13 pm . 1 Words . Articles . Email . No views

07/14/05

Arcosanti is an experimental town that is being built in central Arizona, 70 miles (110 km) outside of Phoenix. Paolo Soleri, using a concept he calls arcology (architecture + ecology), designed the town to demonstrate ways urban conditions could be improved while minimizing the destructive impact on the earth.

Arcosanti is being built on only 25 acres (0.1 km²) of a 4060 acre (16 km²) land preserve, keeping its inhabitants near the natural countryside. The Arcosanti web site describes how an arcology functions in Arcosanti: "The built and the living interact as organs would in a highly evolved being. Many systems work together, with efficient circulation of people and resources, multi-use buildings, and solar orientation for lighting, heating and cooling."

As of 2005 Arcosanti stands some fraction of 1% complete. Existing structures include a three-story visitors' center / cafe / gift shop, the bronze-casting apse (half-dome) carefully situated to accept maximal winter sun and minimal summer sun, two large barrel vaults, a ring of apartment residences around an outdoor amphitheatre, a community swimming pool, and Soleri's suite. A two-bedroom 'Sky Suite' occupies the highest point in the complex and is available for overnight guests.

In Arcosanti, apartments, businesses, production, technology, open space, studios, and educational and cultural events are all accessible, while privacy is paramount in the overall design. Solar greenhouses are planned to provide gardening space for public and private use, and act as solar collectors for winter heat.

The city serves as an educational complex where workshops and classes are offered. Students from around the world are constructing Arcosanti. In addition, about 50,000 tourists visit Arcosanti each year.

Funds to build Arcosanti are raised through the sale of art objects, the most famous being cast wind chimes. More funds are raised from workshop tuitions, which people ("workshoppers") pay for a five week hands-on experience. The workshops are the principal means by which Arcosanti is constructed.

External links

Permalink . admin . 10:55:21 pm . 1 Words . Articles . Email . No views
Moe

Ik ben kapot XX(

De voorbije twee nachten maar een paar uurtjes geslapen. Ik moet er echt veel te vroeg uit, om 6u, maar kan echt niet in slaap geraken zo vroeg, ook al ben ik doodmoe, ik word gewoonweg terug wakker en actief 's avonds. Vannacht bijna helemaal niet geslapen: veel te laat gegeten door omstandigheden (en dan nog wel frieten met mosselen, uitermate zwaar), veel te warm en irritante muggen. Ik moest er toch weer om 6u uit en ben vandaag maar om 21u terug thuisgekomen: heel de dag gewerkt (en vooral gewacht) in de Thalys. Gelukkig moet ik morgen maar om 9u45 in Brussel-Zuid zijn, kan ik toch weer wat langer slapen: ongeveer een half uurtje treinen van hieruit in plaats van de normale 1u30 naar Wolfstee.

Permalink . Peter . 21:21:32 . 130 Words . Life & Fun, Siemens . Email . No views

07/13/05

Deep End was a short-lived supergroup founded by guitarist Pete Townshend of The Who and featuring David Gilmour of Pink Floyd. The group also included bassist Chucho Merchan, percussionist Jody Linscott, keyboardist John 'Rabbit' Bundrick, backing vocalists Billy Nicholls, Cleveland Watkiss, and Chyna, and a five-piece brass ensemble called The Kickhorns. The group performed two 1995 charity concerts at London's Brixton Academy (a third was cancelled due to poor ticket sales), which were later released as the album Deep End Live!; a concert at the MIDEM trade fair in France, and appeared on The Tube.

Permalink . admin . 10:55:29 pm . 1 Words . Articles . Email . No views

07/12/05

Kaminokawa (????; -machi) is a town located in Kawachi District, Tochigi, Japan.

As of 2003, the town has an estimated population of 30,885 and a density of 566.49 persons per km². The total area is 54.52 km².

External link

Permalink . admin . 10:55:24 pm . 1 Words . Articles . Email . No views
Don't always use the latest version

In contradiction to my previous posts, always using the latest version isn't that good.

As I told you, last week, I upgraded the packages IPW2200 and ipw2200-firmware to the latest version available. The big problem with those drivers is, I now have corrupt packages. When I came home, I couldn't connect to my WAP. Infact, I could register my client, but I didn't get an IP by DHCP. When I captured the stream with Ethereal, I saw DHCP-requests from the client, but no answer from the server. /var/log/messages gave me more information and told me there were corrupt packages. I can't give the exact error message right now, I'll post it when I've some time. I'll have to take a look closer to it.

Centrino Logo Another problem is kernel 2.6.12. I installed this one, but then my USB mouse isn't working anymore. I've allready read on some site the mouse handling is changed in this version, but I'll have to find out how to fix this. Maybe the problem is related with the fact that hotplugging my mouse doesn't work right now. A little task for when I've some time... If you have similar experiences, please, be my guest.

Permalink . Peter . 20:49:48 . 200 Words . Linux, My Gentoo . Email . No views
Geroosterd acces point

Colubris AP Vandaag proefjes gedaan met wireless acces points op hoge temperatuur: gewoonweg het toestelletje in een oven gestopt, gebakken op 75

Permalink . Peter . 20:21:55 . 49 Words . Life & Fun, Siemens . Email . No views
Impressed by gnome printing manager

While I was disappointed about printing in linux some time ago, today I was supprised about the way gnome/cups handle network printers. At the office where I'm doing an internship, we have two network printers in our subnet. I was impressed when I opened the gnome printer manager and I saw those two printers allready detected and completely configured. B-) I didn't have to do anything, I even didn't know when they were installed. I just love it!

(note: I didn't test printing allready ;-))

Permalink . Peter . 20:11:46 . 85 Words . Linux, My Gentoo . Email . No views
Zwijgplicht

Vorige week heb ik hier eindelijk mijn contract getekend. Uiteraard bevat dit een paragraaf ivm geheimhouding. Gedetailleerde info zal je hier dus niet meer terugvinden. Nu ja, hetgeen hier al gepost geweest is, is ook niet echt dermate gedetailleerd om van een inbreuk te kunnen spreken. Nu ben ik alleszins weer bezig met leuk speelgoed.

Voor de rest valt het hier wel mee. Ik wou bij deze toch nog een teken van leven geven ;-) Ik heb het ontzettend druk, moet vroeg weg en ben laat thuis, dus niet echt veel tijd om dit blogje up to date te houden. Dit weekend is de pc ook niet aangezet geweest: de vrijdag was het proclamatie van mijn schatje met een restaurantbezoekje erna B-) Zaterdag een bezoekje aan haar pappie met een BBQ'tje 's avonds en jammergenoeg werd ik ook verplicht tot shoppen... Zondag dan een fietsnamiddagje, veel te lang geleden en het is pijnlijk vaststellen dat mijn conditie een ware ramp geworden is. Ik ben gewoonweg kapot.

Anyway: back to work now!

Permalink . Peter . 09:26:03 . 170 Words . Life & Fun, Siemens . Email . No views

07/11/05

Richard Murphy, is an architect based in Edinburgh, Scotland, and principal architect in Richard Murphy Architects.

Contents

History

Murphy was educated at Newcastle and Edinburgh Universities, and has taught at the latter. He formed his practice in 1991, which has since grown to over twenty architects, and is now housed on Old Fishmarket Close, in the Old Town of Edinburgh. The practice made its name designing small scale extensions to houses and mews conversions, and found great success with buildings for the arts, particularly lottery-funded projects. His work, in its desire to create contemporary architecture but with a sense of place and history, shows the influence of Carlo Scarpa, who he has done academic research into. In 1998 he presented a Channel 4 documentary on Scarpa, directed by Murray Grigor. In 2004 the practice exhibited at the Venice Biennale.

Controversy

Murphy has sometimes attracted controversy. The conversion of John Muir's birthplace in Dunbar attracted angry letters from around the world, in the belief that he was destroying the house as it was when Muir was born. It was in fact simply replacing an older interior representing how the house 'may have been' at the time.

His Mews House on Circus Lane in the New Town of Edinburgh was dubbed the 'Japanese House' by the local press, and felt an inappropriate design for a World Heritage Site, though it subsequently won planning permission.

The proposed Sean Connery Filmhouse would be built over Festival Square in Edinburgh. The square, part of The Exchange Business district designed by Terry Farrell, is felt by many to be a failure. The square is often empty, and as Murphy pointed out, is, despite its name, one of the few places in the city without any presence of the Edinburgh festival in the summer. The MSP Brian Monteith even dubbed the square Ceausescu piazza. Despite this, the Sheraton Hotel is deeply against the proposals, as the building would be right in front of the hotel, and block residents' views of Edinburgh Castle.

Proposed work

Notable completed work

Projects by year of design

External links

Permalink . admin . 10:55:26 pm . 1 Words . Articles . Email . No views

07/10/05

Saint-Hyacinthe—Bagot is the name of a federal electoral district in Quebec, Canada. Its population is 94,084. (2001)

Geography

The district includes the Regional County Municipalities of Acton and Les Maskoutains.

History

The electoral district was created in 1933 as St. Hyacinthe—Bagot and was first used in the Canadian federal election of 1935.. In 1947 the name was changed to Saint-Hyacinthe—Bagot. In 1966, it was merged with parts of Chambly—Rouville, and from Richelieu—Verchères and renamed Saint-Hyacinthe . It reverted to the name Saint-Hyacinthe—Bagot in 1980.

List of Members:

  1. Joseph-Théophile-Adélard Fontaine, Liberal, (1935-1944)
  2. Joseph Fontaine, Liberal, (1945-1957)
  3. J.-H.-Théogène Ricard, Prog. Cons., (1957-1972)
  4. Claude Wagner, Prog. Cons., (1972-1978)
  5. Marcel Ostiguy, Liberal (1978-1984)
  6. Andrée Champagne, Prog. Cons., (1984-1993)
  7. Yvan Loubier, Bloc Québécois (1993-present)
Permalink . admin . 10:55:36 pm . 1 Words . Articles . Email . No views

07/09/05

Madeleine Kunin speaking 11 October 2004
Enlarge
Madeleine Kunin speaking 11 October 2004

Madeleine May Kunin (born September 28, 1933) is a Swiss-American diplomat and politician. She was born in Zurich to a Jewish family, and moved to the United States as a child. She was the governor of Vermont from 1985 until 1991, as a member of the United States Democratic Party. She was a member of the administration of President Bill Clinton, serving as deputy secretary of education of the United States from 1993 until 1997, when she became the ambassador to Switzerland and Liechtenstein.

This politics-related article is a stub. You can help Wikipedia by expanding it.
Permalink . admin . 10:55:36 pm . 1 Words . Articles . Email . No views

07/08/05

Cover of Cyberpunk 2020
Enlarge
Cover of Cyberpunk 2020

Cyberpunk 2020 is a cyberpunk role-playing game published by R.Talsorian Games, set in the near future.

Contents

Overview

Based on the works of William Gibson, Bruce Sterling and other "mirrorshades" authors, the feel of the game is meant to be very much style over substance, in what can be considered a distinctly 80's kind of way. The age of the game is today most easily seen from its timeline, which extends to before the fall of the Soviet Union. There are also some aspects of modern 21st century life (such as Internet and cell phones) whose existence in the game is noticeably divergent thanks to this.

The range of characters players can adopt is very diverse, ranging from hardwired mercenaries with psycholinked weapons and boosted reflexes, to Armani-wearing corporate mega-yuppies who make and break national economies with the stroke of a pen.

The basic rules system of Cyberpunk 2020 (called Interlock) is skill-based instead of level-based. With player being awarded points to be spent on their skill sets. New skills outside their expertise can be learned but in-game time needs to be spent on this. A large part of the system is the player characters' ability to augment themselves with cyber-technology and the ensuing loss of humanity as they become more machine than man.

Cyberpunk 2020 is a game with a dark film noir feel if played right, though certain oversights in the basic system can make the average game session devolve into a 1980s action movie with a triple-digit body-count.

What is significant about Cyberpunk 2020 compared to many other roleplaying games is the freedom given by the basic system in character creation. Although each player must choose a character class or "role" from those given in the basic rules, there is enough variation in the skill system meaning that no two members of the same class are alike. A character can also be a total non-combatant (something that is not quite possible in Dungeons & Dragons even to this day).

Another feature that endeared the game to players and Games Masters alike is the inherent lethality. A typical starter-level character facing off against three police officers is very likely to suffer a quick death. Unlike Dungeons & Dragons, this is a factor that is not liable to change as the character gains experience (there are no "hit points"). No matter who the character is, a single bullet can result in a lethal wound. This encourages a more tactically-oriented and sneaky game play, which is accordance to the rough-and-gritty ethos of the Cyberpunk genre.

The World of Cyberpunk 2020

Cyberpunk 2020, as the name implies, takes place in North America in the year 2020. The game's default setting is the fictional city of Night City located between Los Angeles and San Fransisco on the west coast of the United States. Later supplements to the game have contained information about rest of the US and the world.

Following a vast economical collapse and a period of martial law, the United States government has had to rely on several megacorporations to survive. This has given them a veritable carte blanche to operate as they will.

The Megacorporations

  • Arasaka, a Japanese zaibatsu conglomerate whose megalomaniacal CEO wishes to realize his dream of Japanese world power.
  • Biotechnica
  • Eurobusiness Machines (EBM), information technology corporation.
  • Kendachi
  • Merril, Asukaga & Finch, financial analysts.
  • Militech, American arms contractor.
  • Mitsubishi-Koridanshu
  • Zetatech

Sequels

Cybergeneration

Cybergeneration is a follow-up to the original Cyberpunk 2020 game. It is set roughly 10 years after 2020 and is heavily dependant on the concepts and application of nano-technology. A nano-plague is mutating and morphing the youth of society, driving them underground, as society dramatically fears their capabilities and differences. "Cybergen" was originally published as a supplement for Cyberpunk, but later re-released as a fully featured game in its own right.

Starblade Battalion

Starblade Battalion, a setting for R. Talsorian's related Mekton RPG, postulates a more distant future to the Cyberpunk 2020 world (set in the year 2180), where the "primitive" ACPA technology of 2020 has evolved into 15-meter-tall giant robots called Mektons. Between Cyberpunk and Starblade Battalion, the Earth suffered a devastating global ecological disaster called the "Ecocollapse" and is now governed by a totalitarian Green government called the United Stellar States Alliance. Humanity's interstellar colonies are governed by a manipulative corporatist government called the Pleiades Confederacy. The Starblade Battalion setting has been noted for its similarities to Gundam, particularly in that neither antagonistic party is particularly "good", and the primary division is "My side" and "their side."

Cyberpunk V.3

Cyberpunk V.3 (also known as Cyberpunk Version 3 or it's working title of Cyberpunk 203X) is the next-generation of the Cyberpunk 2020 role-playing game. The setting has been heavily updated from it's last event book series, Firestorm, which covered the opening of the Fourth Corporate War. The aftermath of the Fourth Corporate War has resulted in widespread corruption of the Net and major losses of hardcopied data, to the point that all data is intangible and recorded history is in doubt (an example that pops up in Pondsmith's gatherings at conventions and releases on the Internet is that history has been corrupted that many people in the world now believe Richard Nixon, instead of resigning over Watergate, commited suicide on camera). The war has also lead to the collapse of nations, the world economy, and many of the staple megacorporations. This civil upheaval leads to the rise of the altcults, alternative cultures similar in vein to the phyles from Neal Stephenson's The Diamond Age. In fact, Cyberpunk V.3 has more to do with the new postcyberpunk literary movement and transhumanism than with the Gibson-Sterling mirrorshades movement.

Cyberpunk V.3 is notorious for its overtly long development period and often rumored release dates.

External links

Permalink . admin . 10:55:38 pm . 1 Words . Articles . Email . No views

07/07/05

The University of Washington Medical Center is a hospital in the University District of Seattle, Washington. It is one of the teaching hospitals affiliated with the University of Washington.

The 2004 issue of U.S. News and World Report's "America's Best Hospitals" ranks the UWMC 9th out of 2,113 hospitals nationwide, in a tie with New York-Presbyterian Hospital. Many UWMC programs score high in specialty rankings, as well: rehabilitation medicine (2); endocrinology (7); orthopaedics (9); geriatrics (10); oncology (10); gastroenterology (10); otolaryngology (12); pulmonology (14); nephrology (16); neurology/neurosurgery (17); rheumatology (18); gynecology (20), and urology (27).

The University of Washington Medical Center opened on May 4, 1959. It grew out of the medical school that the university opened on October 2, 1946. It is home to the world's first pain center and was the location of the world's first long-term kidney dialysis, developed by UW professor Belding Scribner, M.D.

External links

Permalink . admin . 10:55:44 pm . 1 Words . Articles . Email . No views

07/06/05

Michael Anthony Gallego born October 31, 1960 in Whittier, California was a Major League Baseball infielder.

Mike's career last from 1985 to 1997. Mike played for the Oakland Athletics, New York Yankees, and St. Louis Cardinals.

Mike attended the UCLA.

External link

Permalink . admin . 10:55:47 pm . 1 Words . Articles . Email . No views
Always use the latest version (2)

As I told before, always use the latest version if you have troubles with some piece of software. Such a stupid mistake made me loose lots of time today and yesterday. I had troubles gettig my wireless card in monitor mode. When your card is in monitor mode, you only recieve packets without sending some, so you can't be seen by other hosts but you can listen to all trafic and detect hosts or access points. This is the setting used by Kismet and other programs to analyse your network. Other modes are Managed and Ad-Hoc.

When I used the command iwconfig eth1 mode monitor at my Gentoo-installation, I always recieved an error message "this mode is not supported" or "illegal operation" or something like that. The strange thing was that the software on the Auditor Security Collection LiveCD worked without any problem. After lots of digging into things like iwpriv, wich has lots of more possibilities, I discovered that I was running an older version of IPW2200 and IPW2200-firmware wich doesn't support monitor mode. The version in the stable branch wasn't the latest available version, I had to use the packet from the unstable branch, wich works fine. So if you also have this problem, just add those two ebuilds to your package.keywords file with the ~x86 keyword, upgrade them and everything should work fine :-D

Permalink . Peter . 19:13:10 . 229 Words . My Gentoo, Siemens . Email . No views
Dag 3: Thalys is cool - geslaagd met onderscheiding

Vandaag zonder problemen netjes op het werk geraakt. B-) Morgen mag ik echter weer eens te voet gaan vanuit Wolfstee, mijn fiets staat namelijk nog op het bedrijf. Ik heb kort nog wat literatuur doorgenomen nog wat analyse software ge

Permalink . Peter . 17:41:32 . 556 Words . Life & Fun, Siemens . Email . No views

07/05/05

Richard M. Hamilton is a web designer and the webmaster of The Police Notebook ([1]). He has worked in law enforcement for over 30 years as a police officer, instructor, supervisor, and administrator.

Permalink . admin . 10:55:49 pm . 1 Words . Articles . Email . No views
Dag 2

Vandaag ging het al heel wat beter dan gisteren :-) In Mechelen was ik nog op de verkeerde trein gestapt, namelijk die naar Antwerpen ipv Lier/Herentals, die vanop hetzelfde perron vertrok, doch een paar minuutjes vroeger. Echter geen probleem, het volgende station was immers Mechelen-Nekkerpoel, wat op nog geen minuut rijden ligt van het station van Mechelen zelf. Beide treinen stoppen daar, dus geen probleem. In Wolfstee stond er na mijn voorval van gisteren uiteraard geen fiets op me te wachten. Te voet is het ook nog doenbaar, doch je stapt er wel een tijdje op.

Vandaag heb ik mij een beetje beziggehouden met wat research rond de huidige draadloze netwerken. Vooral de fysische kant dan, met de verschillende types antennes, hun plaatsing en verloop van de signaalsterkte. Ook nog wat geknoei met de installatie van software voor de detectie en het onderzoek naar de sterkte van aanwezige draadloze netwerken.

Logo WiFi Zone

=> Read more!

Permalink . Peter . 21:21:55 . 429 Words . Life & Fun, Siemens . Email . No views

07/04/05

The Maelor is an area of Wales, lying in the county borough of Wrexham. It originated as a commote of the Kingdom of Powys, focused on Bangor-Is-y-Coed.

The Maelor was first divided from the rest of Wales by the construction of Offa's Dyke in the eighth century, but was reclaimed by Wales during the reign of Stephen of England. In around 1202, the Maelor was first divided into two halves, separated by the River Dee, when it was split between two Welsh lords.

In 1282 - 1283, Edward I of England conquered the area east of the River Dee, which became known as the English Maelor (Welsh: Maelor Saesneg). The western area remained Welsh and became the Welsh Maelor (Welsh: Maelor Gymraeg).

In 1397, under Richard II of England, the English Maelor was merged with the County Palatine of Chester to form the Principality of Chester. With the creation of the Kingdom of England and Wales in 1536, the county of Denbighshire was created, containing the Welsh Maelor, while the English Maelor became an outlier of Flintshire, administered from Overton. The English Maelor was also known as Flintshire Detached, and sometimes simply as the Maelor.

In 1974, both halves of the Maelor became part of the Wrexham Maelor district, which in 1996 became part of the county borough of Wrexham.

Permalink . admin . 10:55:55 pm . 1 Words . Articles . Email . No views
Hoeveel pech kan een mens hebben op

Jaja, het was echt mijn dagje niet vandaag. Het was de eerste dag van mijn stage bij Siemens, en ik heb nog geen enkele dag gehad met zovele malen pech na elkaar...

Het begon al 's ochtends vroeg. Opstaan om 6u is echt mijn ding niet. Als ik dan ook nog eens nietsvermoedend onder de douche ga staan en merk dat we gedurende drie dagen geen warm water hebben, is de dag al goed gestart. XX(

=> Read more!

Permalink . Peter . 21:09:05 . 643 Words . Life & Fun, Siemens . Email . No views

07/03/05

Donna Pescow (born March 24, 1954 in Brooklyn, New York) is an American actress.

She is best known for her role as Annette in the 1977 film Saturday Night Fever, and later starring on her own television series, Angie, for two seasons from 1979 to 1980. Her most groundbreaking role has been Dr. Lynn Carson on the soap opera All My Children, which she portrayed from 1982 to 1983. Her character was the first lesbian on the daytime serials.

She played Donna, the mother of Evie, in the children's comedy show Out of This World.

From 2000 to 2003, she played the mother, Eileen Stevens, on Even Stevens, a sitcom that aired on The Disney Channel.

Permalink . admin . 10:55:58 pm . 1 Words . Articles . Email . No views
Always use the latest version

Everywhere you try something that doesn't work, always make sure you're using the latest version available! They say this in every manual, but you don't know how many people are violating this rule. But of course, one can say that the version that's delivered with your distribution isn't the latest, but that can't be a problem.

Why am I telling this? Seems logical. OK, it's logical, but most people sometimes forget it. And I'm also telling this again because people who are using (K)UBUNTU and having problems with their wireless networking, can find a clue in this. When you follow the (nice explained!) steps in the Ubuntu Wiki about installing ndiswrapper, you just use the version delivered with that version of your distro. When I did this yesterday at the notebook of a friend, seems I installed version 0.2rc2 wich is very old. Off course I ran into trouble.

=> Read more!

Permalink . Peter . 04:31:38 . 585 Words . Ubuntu@AMD64 . Email . No views
Done!

Since yesterday, exams are finally done! Done! Finally!

Yeah, the last one, speech processing. It was quite hard, harder than I thought, but I was ready with studying, execpt a few pages that were to hard, I thougt. But at the exam, also those pages were asked! Indeed, it was very difficult. When I recieved the questions I thought "oh, shit". But after all, I think I have answered enough to pass. Let's hope.

Also yesterday (ok, two days ago, but I'm still awake so I say yesterday :-)), my girlfriend had her thesis presentation. It'll also be OK, she told. The jury said it was OK, very good, and she answered most questions. With that last one, a big part of her life ends. University career as student is done. She wants to go for a PhD next year, so she won't leave university and our home ;-)

I also bought her a little present. Something because she closes a period and also because I won't see her much while I'm doing my internship at Siemens. We had some drink and a nice evening with some friends, all OK :-)

Permalink . Peter . 04:10:30 . 188 Words . Life & Fun, Studies . Email . No views

07/02/05

Gridiron football is a term that refers to both American football and Canadian football. The term came about after it was observed that the field of play in each sport, because of the many lines marking it, resembles a gridiron.

The word "gridiron" alone may refer either to the field or to the sport; however, in North America it's usually only used to refer the field. In some other English-speaking countries--particularly Australia and New Zealand--it is the primary term used to refer to the sport, differentiating it from other forms of football such as Australian rules football, association football (soccer), or rugby football. In the film and TV industries a gridiron is a grid made of steel and/ or iron pipes

In recent years the term has come to be used much more liberally in American Football. John Madden for example uses it to refer to the game itself. "Lets get back to the gridiron" is a type of phrase he and other announcers use when play resumes after a timeout or commercial break. This and other terms are used to glorify the tactics and strategies used in American Football to almost war-like stature.

Permalink . admin . 10:56:02 pm . 1 Words . Articles . Email . No views

07/01/05

Barbara Bermudo (born June 15, 1975 in Guaynabo, Puerto Rico) journalist.

Barbara hosts "Primer Impacto" is a Spanish language news program which covers tragedies and incidents dealing with human nature and is popular among the Hispanic population in the United States. Barbara joined the programme in 2002; the co-presenters are Jackie Guerrido and Carmen Dominicci.

In 2003, Barabara participated as "herself" in the film "Chasing Papi", starring Roselyn Sanchez, Jaci Velasquez and Sofia Vergara.

In 2004, Barbara hosted "Lo Que no vio de Premios lo Nuestro" (What you didn't see in Lo Nuestro Awards) and "Noche de Estrellas" (The Night of Stars).

Barbara has made television appearances in "El Show de Cristina", "El Escandalo del Mediodia" (The Midday Scandal) and "Que Bodas" (What Weddings).

See also

Permalink . admin . 10:56:09 pm . 1 Words . Articles . Email . No views

06/30/05

The concept of interpretability is one in mathematical logic. Assume T and S are formal theories. Slightly simplified, T is said to be interpretable in S iff the language of T can be translated into the language of S in such a way that S proves the translation of every theorem of T. Of course, there are some natural conditions on admissible translations here, such as the necessity for a translation to preserve the logical structure of formulas.

This concept, together with weak interpretability, was introduced by Alfred Tarski in 1953. Three other related concepts are cointerpretability, logical tolerance, and cotolerance, introduced by Giorgi Japaridze in 1992-1993. See also Interpretability logic.

References

  • A.Tarski, A.Mostovski and R.M.Robinson, Undecidable Theories. North-Holland, Amsterdam, 1953.
  • G.Japaridze and D. de Jongh, The logic of provability. Handbook of Proof Theory. S.Buss, ed. Elsevier, 1998, pp. 476-546.

External links

Permalink . admin . 10:56:10 pm . 1 Words . Articles . Email . No views
Work, work, work!

Monday, I've done my exam Information Theory. Didn't go well. I thought I'd studied enough, but the exam was very hard with large time-consuming question. Nobody was done on time, but I've hardly completed half of it. So I think I'll fail for that one, but let's hope for the best.

Next one is friday, speech processing. Harder than I thought. Large parts of the course handle signal processing and statistics, my two big problems of the second year. I'll do my best ;-)

I also had contact with Dirk Steel about my internship at Siemens. I allready have to start monday! Just a week quality time with my lovely girlfriend isn't possible :-( We'll be together now friday after my exam and her thesis defence. I've cancelled VTK Weekend for me. Saturday, I have a BBQ with people from student representation boards all over Flanders. Let's hope I can spend a large part of my sunday with my sweetheart...

Permalink . Peter . 01:39:52 . 158 Words . Life & Fun, Studies, Siemens . Email . No views

06/29/05

Continue work on fedora stateless

Now the exams have finished it's time when start working
on the fedora stateless server. First thing we need
too do is find a bigger hard disk because the current
one isn't big enought to build an image.
And then the big moment: testing :-)

(sorry, post was in protected tree instead of published for a long time)

Permalink . poely . 08:22:59 pm . 57 Words . Project status and progress . Email . No views

06/28/05

Film Kort @ Canvas

Aanrader voor wie tijdens de examens 's avonds op zoek is naar een (korte) pauze: Film Kort op Canvas. Sinds 31 mei toont Canvas gedurende de zomer elke dinsdagavond om middernacht een kortfilm van eigen bodem. Enkele weken terug was dat Flatlife, de film waarmee de Vlaming Jonas Geirnaert de Prijs van de Jury binnenhaalde op het Filmfestival van Cannes. Vandaag was het de beurt aan My Bonnie, vertoond op het Internationaal Filmfestival van Vlaanderen Gent in oktober 2004, eindwerk van Nele Meirhaeghe en winnaar van de Prijs voor het Beste Debuut op het Internationaal Kortfilmfestival Leuven. Ik heb zonet gekeken: echt een prachtige film!

Film Kort, elke dinsdag om 0u00 op Canvas!

=> Read more!

Permalink . Peter . 23:42:42 . 244 Words . Life & Fun . Email . No views

Op 21 juli zullen alle vlaggen in Heuvelland halfstok hangen. Dat heeft de gemeenteraad van de West-Vlaamse gemeente maandagavond beslist. Het voorstel kwam van oppositieraadslid Georges Declercq (Gemeentebelangen), die daarmee zijn steun wil betuigen aan de burgemeesters van de kieskring Brussel-Halle-Vilvoorde.

De gemeenteraad keurde het voorstel goed met 8 ja-stemmen van de oppositiepartij Gemeentebelangen, negen onthoudingen van de meerderheidspartij CD&V en twee neen-stemmen. E

Permalink . Peter . 16:40:43 . 92 Words . Politics, N-VA . Email . No views

06/27/05

The tool known as the adze serves for smoothing rough-cut wood in hand woodworking. Generally, the user stands astride a board or log and swings the adze downwards towards their feet, chipping off a piece of wood, and walking backwards as they go, leaving a relatively smooth surface behind. However, in general it can be used for various cutting operations.

The head of the adze is oriented to the haft like a hoe, or plane, and not like an axe, whose cutting blade would be perpendicular to the blade of an adze.

History

 shoe-last adze, amphibolite
Linearbandkeramic shoe-last adze, amphibolite

Prehistoric Maori adzes from New Zealand, used for wood carving were made from nephrite, also known as jade.

In central Europe, adzes made by knapping flint are known from the late Mesolithic onwards ("Scheibenbeile"). Polished adzes and axes made of ground stone, like amphibolite, basalt or Jadeite are typical for the Neolithic period. Shoe-last adzes or celts, named for their typical shape, are found in the Linearbandkeramic and Permalink . admin . 10:56:22 pm . 1 Words . Articles . Email . No views

06/26/05

Dr. Aamir Liaquat Hussain is also accused in the Pakistani media as Dr. Fake. Currently he is a minister of state for religious affairs in the government of Pakistan. He is an active member of the Muttahida Qaumi Movement or MQM, alleged for acts of terrorism in Karachi Pakistan.

External Links

  • Dr Fake [1] (http://www.satribune.com/archives/200503/P1_fake.htm)
  • Musharraf's Dr Fake Caught [2] (http://www.satribune.com/archives/200505/P1_drfake.htm)
  • MQM's Fake Aalim Online [3] (http://www.satribune.com/archives/200505/P1_drfake2.htm)
  • The Story of the Censored 'Truths' [4] (http://www.satribune.com/archives/200505/P1_ary.htm)
  • Independent's story [5] (http://weeklyindependent.com/feature1.htm)
  • Daily Ummat's invastigative story [6] (http://ummat.com.pk/Kahanian/misc_stories/aamir_liaquat.htm)
  • Dr. Aamir Liaquat Hussain's Naats [7] (http://www.pakmarkaz.com/islam/naats/amirliaquat.html)
Permalink . admin . 10:56:25 pm . 1 Words . Articles . Email . No views
4fm wordt Radio 538

Logo 4fm Logo 538

Dit gerucht werd dinsdag aangekondigd op de nieuwsgroep be.radio in deze draad. In deze draad werd ook al duidelijk dat de domeinnaam radio538.be begin dit jaar van eigenaar veranderde en zowel de .be als .nl variant naar dezelfde pagina's verwijzen.

Nadien wist Koen Godderis te melden dat het bericht aan hem bevestigd was. De boodschapper is echter nogal controversieel en geen onbekende, getuige hiervan dit en dit bericht op de weblog van LVB. Ieder denkt er dus het zijne van. Afgaande op een uurtje luisteren naar de livestream denk ik dat Radio 538 wel een welgekomen zender in het Vlaamse radiolandschap zal zijn met een zeker potentieel.

Blijkbaar zijn Vlaams-Nederlandse projecten in. Deze week werd immers ook aangekondigd dat de Nederlandse zender Noordzee FM, die onlangs overgenomen is door De Persgroep, mede-eigenaar van de Vlaamse MediaMaatschappij (VTM, Kanaal Twee, JIM en Q-Music), vanaf binnenkort gaat uitzenden onder de naam Q-Music en zich meer gaat spiegelen aan de Vlaamse versie, met een nieuwe format en de baseline Q is good for you.

oude logo 538

Permalink . Peter . 14:27:25 . 172 Words . Life & Fun, Internet & Blogs . Email . No views

06/25/05

Censorshit is a song writen by Joey Ramone from The Ramones for their album Mondo Bizzaro. It refers to how Joey thinks on Censorship so he is calling it Censorshit.

Permalink . admin . 10:56:28 pm . 1 Words . Articles . Email . No views

Opgelet als u van het vrouwelijke geslacht bent en een uitstapje maakt in Amsterdam. U kan immers onverwacht een tongzoen te verwerken krijgen van de Amsterdamse seriezoener!

AMSTERDAM - De Nederlandse politie heeft de jacht geopend op een man die in Amsterdam vrouwen lastigvalt door hun vanuit het niets een tongzoen te geven. De

Permalink . Peter . 13:12:14 . 204 Words . Life & Fun . Email . No views
Kabouter Spam

Gisteren berichtte De Standaard zowel in de krant als in haar weblog over Kabouter Spam:

Jan Peumans is Vlaams volksvertegenwoordiger voor de N-VA. Af en toe stuurt hij een e-post om de media van zijn bestaan op de hoogte te brengen. Gisteren stuurde hij tien berichten. Allemaal dezelfde.

Zijn reactie hierop is alvast geslaagd, vind ik :-D Vandaag schreef De Standaard immers hetvolgende:

Dit bericht bereikte de redactie, een dag nadat het Vlaamse parlementslid Jan Peumans (N-VA) 11 keer hetzelfde persbericht stuurde via e-mail. Het leverde hem de titel op van Kabouter Spam. Wat zegt Peumans nu: ,,Aan de slachtoffers van Kabouter Spam. Gelieve onderstaand bericht zorgvuldig te lezen, het zal slechts

Permalink . Peter . 13:01:54 . 241 Words . Life & Fun, Politics, N-VA, Internet & Blogs . Email . No views
LinuxTag day 2

So, I'm at LinuxTag currently, bloody tired, but well, having quite a good time after all (god I hate qwertz). I wouldn't say it's superb (talks tend not to go deep enough etc), but meeting some guys you've known on IRC for a while already in real life now is just great. Hacking on some things together (too bad I still havent got a laptop, which disables me from doing any real hacking myself, actually, we can only work together on one machine which does give problems from time to time), grabbing a beer (not to much, as beer is not as free as the speech couterpart ;-)), discussing things, just hanging around... Well, pretty much the things everybody does in here :-)
I won't write too much now (waaaaaay too tired), a larger "report" including some pictures might follow later (although that later might become "not within 2 weeks", as the following week I'll hardly be at home).

Fortunately we got some great wheather (although sometimes it tends to be too hot :-/)

Permalink . Ikke . 09:58:28 am . 170 Words . Life, Linux . . 295 views . 1 comment

06/24/05

De Deense minister Bendtsen, die zich eerder nogal op de vlakte hield over softwarepatenten, trekt nu in een brief ineens fel van leer tegen het onderwerp.

Uit een brief, die in handen van de Webwereld-redactie is gekomen, blijkt dat Denemarken niets ziet in de lichtlijn zoals die nu wordt voorgesteld. Het land sluit zich hierbij aan bij de critici in het Europees Parlement.

Laten we hopen dat vele anderen snel volgen!

Het volledige artikel kan je lezen op Webwereld.

Permalink . Peter . 12:54:33 . 79 Words . EU Software Patents . Email . No views

06/23/05

In differential geometry, the Weyl curvature tensor is the traceless component of the Riemann curvature tensor. In other words, it a tensor that has the same symmetries as the Riemann curvature tensor with the extra condition that its Ricci curvature must vanish.

In dimensions 2 and 3 the Weyl curvature tensor vanishes identically. In dimensions ≥ 4, the Weyl curvature is generally nonzero.

The Weyl tensor can be obtained from the full curvature tensor by subtracting out various traces. This is most easily done by writing the Riemann tensor as a (0,4) valent tensor (by contracting with the metric). The (0,4) valent Weyl tensor is then

W = R - \frac{1}{n-2}\left(Ric - \frac{s}{n}g\right)\circ g - \frac{s}{2n(n-1)}g\circ g

where n is the dimensional of the manifold, g is the metric, Ric is the Ricci tensor, s is the scalar curvature, and hOk denotes the Kulkarni-Nomizu product of two symmetric (0,2) tensors:

(h\circ k)(v_1,v_2,v_3,v_4) = h(v_1,v_3)k(v_2,v_4)+h(v_2,v_4)k(v_1,v_3)\,
{}-h(v_1,v_4)k(v_2,v_3)-h(v_2,v_3)k(v_1,v_4)\,

The ordinary (1,3) valent Weyl tensor is then given by contracting the above with the inverse of the metric.

The Weyl tensor has the special property that it is invariant under conformal changes to the metric. That is, if g′ = f g for some positive scalar function then W′ = W. For this reason the Weyl tensor is also called the conformal tensor. It follows that a necessary condition for a Riemannian manifold to be conformally flat is that the Weyl tensor vanish. It turns out that in dimensions ≥ 4 this condition is sufficient as well. In dimension 3 the vanishing of the Cotton tensor is a necessary and sufficient condition for the Riemannian manifold being conformally flat.

See also

Permalink . admin . 10:56:35 pm . 1 Words . Articles . Email . No views

vuilbakje

Microsoft wil het omstreden en uitvoerig verworpen SenderID verplicht invoeren op alle MSN- en Hotmailadressen.

SenderID is een techniek van Microsoft die spam zou moeten bestrijden. De implementatie is allesbehalve waterdicht omdat deze gebasseerd is aan de koppeling van domeinen aan IP-bereiken. Juridisch is de oplossing allesbehalve bruikbaar omdat deze beschermd wordt door patenten en men bijgevolg risico loopt op claims. SenderID wordt dus allesbehalve goed onthaald.

Nu wil MS die techniek invoeren bij alle hotmail- en MSN-adressen. Mails die daar binnenkomen en waarvan de afzender geen gebruik maakt van SenderID, zullen onmiddellijk als spam aanzien worden. Op die manier probeert Microsoft de aanvaarding en het gebruik van SenderID bij andere gebruikers te stimuleren.

Een gevolg hiervan is echter dat de gebruikers van de hotmaildiensten op die manier een mailbox krijgen met bijkomende nadelen: vele berichten zullen onterecht als spam aanzien worden. Je mag dan zeker je volledige spammap doorsnuisteren om te zien of er toevallig geen geldig bericht tussenzit. En deze zullen er zeker tussenzitten! Velen hebben hotmail nu al verlaten en gekozen voor de talrijke kwalitatief betere services, dit effect zal hierdoor enkel vergroot worden!

screenshot MSN

Bron: ZDnet. Meer informatie over waarom SenderID verworpen wordt is eveneens daar te vinden in de links onderaan het artikel.

Permalink . Peter . 15:38:10 . 207 Words . Internet & Blogs . Email . No views

06/22/05

Prosecco is a variety of white grape grown in the Veneto region of Italy, and also gives its name to the sparkling wine made from the grape.

The grape is grown in the Conegliano and Valdobbiadene wine-growing regions north of Venice. Its late ripening has led to its use in dry sparkling (spumante) and semi-sparkling (frizzante) wines, with their characteristic bitter aftertaste.

The cocktail Bellini made with sparkling wine and peach juice should properly be made with Prosecco wine.

The Italian Prosecco should not be mixed with Dalmatian Prosecco, which is a special sweet wine (sherry), made out of dried grapes.

Permalink . admin . 10:56:39 pm . 1 Words . Articles . Email . No views
LinuxTag 2005

So, I'll be heading to Germany tomorrow after my last exam, to attend at LinuxTag on Friday and Saturday. Most likely I will be at the Social Event too.
If you're reading this and you're coming as well, let me know, maybe we can meet :-) Leave a comment or send me some email, although I cannot promise I'll be able to check my email/blog comments over there... (I hope there'll be some public terminals)

Permalink . Ikke . 08:51:10 pm . 93 Words . Life . . 710 views . 1 comment

06/21/05

Ependyma is the thin epithelial membrane lining the ventricular system of the brain and the spinal cord canal. It is not found in mammals, for which the meninges are the counterpart of the former.

Permalink . admin . 10:56:44 pm . 1 Words . Articles . Email . No views

Dat internationalisering van het onderwijs in is, dat wisten we al langer dan vandaag. Dat er vooral binnen Europese instellingen samenwerkingsakkoorden afgesloten worden en masters gezamenlijk georganiseerd worden, is niet nieuw. Aan de UGent hebben we bijvoorbeeld de specialisatieopleiding textieltechnologie die verloopt in samenwerking met universiteiten uit Finland, Zweden, Litouwen, Nederland, Polen, Duitsland, Frankrijk en Groot Brittani

Permalink . Peter . 20:10:35 . 106 Words . UGent & Stuver . Email . No views

devil

Doing the Which religion is the right one for you? test, I recieved following shocking results:

You scored as Satanism.

Your beliefs most closely resemble those of Satanism! Before you scream, do a bit of research on it. To be a Satanist, you don't actually have to believe in Satan. Satanism generally focuses upon the spiritual advancement of the self, rather than upon submission to a deity or a set of moral codes. Do some research if you immediately think of the satanic cult stereotype. Your beliefs may also resemble those of earth-based religions such as paganism.

Atheism          83%
Satanism         83%
Agnosticism      79%
Paganism         75%
Buddhism         58%
Islam            50%
Judaism          42%
Christianity     25%
Hinduism          0%

To reassure all people in my environment: no, I'm not that evil. I don't like torturing (except my girlfriend). I don't burn animals or make people suffer or what else. Let's hope some people in my environment can confirm that to make sure the CIA or whatever doesn't put me on a list of dangerous persons ;-)

Permalink . Peter . 15:28:44 . 162 Words . Life & Fun . Email . No views

Wetenschappers van de UGent hebben menselijke embryo's gekloond. Anders dan de Koreanen vorig jaar, vertrokken ze van onrijpe eicellen. Het is voor zover bekend de eerste keer dat volwassen menselijke cellen in Europa worden gekloond en de eerste keer vertrekkende vanuit onrijpe eicellen. Dit is een belangrijke stap in het onderzoek naar stamcellen

groeistadia van een embryo
Een kloonembryo van de UGent, in vier groeistadia, van linksboven naar rechtsonder.

=> Read more!

Permalink . Peter . 12:46:04 . 413 Words . UGent & Stuver . Email . No views

06/20/05

An auxiliary bishop, in the Roman Catholic Church, is an additional bishop assigned to a diocese because the diocesan bishop is unable to perform his functions, the diocese is so extensive that it requires more than one bishop to administer, or the diocese is attached to a royal or imperial office requiring the diocesan bishop's protracted presence at court. According to canon law, no bishop can be ordained without title to a certain and distinct episcopal see which he governs either actually or potentially, therefore auxilary bishops are titular bishops to sees that no longer exist.

Canon law requires that the diocesan bishop appoint each auxiliary bishop as vicar general or vicar episcopal of the diocese.

Reference

Permalink . admin . 10:56:52 pm . 1 Words . Articles . Email . No views

Check the first comment here. Rodrigo has some good points in his post, gives some hints on how to solve the problem, tries to be constructive.
Anonymous Coward replies.

Ignore, let's move on.

Permalink . Ikke . 03:39:27 pm . 49 Words . Technology, Desktop . . 268 views . 1 comment

06/19/05

This article is about the writer. For the professor of sociology and history, see John Markoff (professor).

John Markoff (born October 24, 1949) is an American writer and journalist. Markoff is a computing and technology writer for The New York Times.

Markoff was born in Oakland, California and grew up in Palo Alto, California. He graduated from Whitman College, Walla Walla, Washington, in 1971 and received a masters degree from the University of Oregon in 1976.

He wrote a series of articles about Kevin Mitnick, who was then a fugitive on the run from a number of law enforcement agencies. He also co-wrote Takedown, which later became a film that was released direct to video in the United States.

He was accused by Jonathan Littman of journalistic impropriety, of overzealous prosecution of Mitnick by the government, of main stream media over-hyping of Mitnick's actual crimes, and of the legality of Tsutomu Shimomura's involvement in the matter. Littman, of course, chose to ignore the irony of the fact that he himself had profited from a sensationalized account of Mitnick's time as a fugitive, in his own book on the incident. In his book he recounts how he invited Markoff to lunch after Markoff had referred a Playboy assignment on Mitnick to Littman and then stiffs Markoff for the lunch. Further controversy came over the release of the movie Takedown, with Littman alleging that portions of the film were taken from his book The Fugitive Game without permission.

Bibliography

Permalink . admin . 10:56:57 pm . 1 Words . Articles . Email . No views
To Philip

Philip:
Don't get too frustrated ;-) Lots of people know about these issues. Lots of them care. But as you mentioned, people need to get together, and come out with real-world solutions for real-world problems.
You're right when you state there's a lot of flaming on xdg. But not on all subjects. Take D-BUS and HAL, two promising technologies that get widely accepted, and are truly desktop-agnostic. Both Gnome and KDE start to make heavy use of it.
I'm not really familiar with the copy-paste issues. But as far as I know there is a clipboard specification on fd.o. If that's not sufficient for new applications, everyone is free to propose extensions for the specification. But why do we need a spec if applications don't use it? Currently Gnome got no real clipboard manager, I heard KDE does though.

Some parts of the desktop should be standardised, and shared between both (or should I say "all"?) Desktop Environments we got in the Free Software world. A normal non-techie desktop user wants to be able to copy-paste between Kmail and Gaim without any problem. And he's right when he wants this.
Low-level non-interfacing libraries like D-BUS and HAL should be shared too. It'd be pointless if both Gnome and KDE would start writing up something like HAL. I've been following HAL development for a logn time already, and it's taking lots of effort and thorough decission-making to develop it (kudo's to the devs, especially David :-)), so duplicating something like it is a wasted effort. We could use the amount of work the devs put in the 2nd implementation elsewhere.
Same goes for D-BUS: we all know the story of CORBA and all it's implementations. Finally, with D-BUS, sending some simple dumb signal becomes a matter of writing 3 lines of code (now don't count, it's just a number), a dev does not have to write up IDL files and whatever more. Some people told me once only the guys that wrote Bonobo know how to use it, and maybe they were right (although I know D-BUS and CORBA/Bonobo aren't 100% the same thing, bleh).

But where is the line? I mean, if both Gnome and KDE should share everything (not only in standards, something they should share, but also in libs) we can as well just start dropping one of them and only developing on the other one. And we all know what happens when someone gets a monopoly ;-)

So (finally, the key matter): DConf. I did follow the lengthy discussions (url is just one of the many threads) when they were on xdg. And I must admit, at that time, sometimes they bored me to that. I also laughed when I read that "Over my dead body" comment. Actually, I used it several times to demonstrate what's going on between Gnome and KDE. Although there's one big thing to note: the comment was made by someone who was, afaik, no KDE developer. Waldo, who is one, did participate in a positive manner IIRC.

Now why do people accept something like HAL, and tend to be against something like DConf? I think it's fairly simple: currently both KDE and Gnome got their configuration infrastructure, KConfig and Gconf. Almost all apps who target one of these environments use the corresponding configuration libraries and standards. This is a large part of all desktop apps, including some of the largest (well, except the Mozilla and OOo stuff).
So I can understand some people are a little reluctant when all at once someone on xdg comes to tell them we need a new, common configuration interface. I'm not saying this is a good thing, just trying to understand how they think:

  • When KConfig or Gconf would be dropped one day in favour of Dconf, lots of code that accesses configuration settings should be rewritten to use the new API's
  • It is possible even the internal logics of this code will need to be rewritten, if they use some special features of the system they use now that won't be included in Dconf
  • "We already got a config system that does what we need, why can't the (fill in other/'rival' DE) guys just use ours?"
  • "Dconf offers this and this, but hell, I don't need all that! It only makes my simple I-administrate-one-desktop life more difficult"

and there could be more than 100 other reasons.

So what's the big difference between, say, HAL and Dconf? HAL is new. Desktop developers can just say "Hey, that's some cool new technology, let's write some application (gvm/ivman/kvm/...) around it, or add some functionality to something we got now (gnome-vfs/kioslaves/...) using it".
Dconf will also be something new. But the functionality it offers won't be. So existing things will have to be adapted or rewritten.

Summary: I agree with you on large parts of your rant. Basic libraries like GStreamer should be adopted by both platforms (as long as the development team does, well, a good job... together), duplicating effort is useless there.
Standards should be written and implemented, so a normal desktop-user shouldn't care whether he's running KDE applications or Gnome apps in some random environment. Copy-paste between two Gnome apps should be as easy/workable as doing it between a Gnome and a KDE app.
But we should not make just one melt pot of both platforms. Some concurrention is a good thing ;-) I hope you're not saying something like "Hey, let's drop GTK+, let's use Qt too, to avoid duplicate efforts".
As for ISV's: it's not a bad thing they should choose between GTK+ or Qt. Both platforms got their strengths, every ISV got it's preferences and knowledge. And both platforms get vendors that use them: GTK eg by VMWare, Qt by Skype. But we should make sure indeed VMWare can run flawlessly on a desktop running KDE, taking care VMWare should not use any special tricks to get that working (eg configuration management). Like this all ISV's can choose their preferred platform, without being forced to ask the client "Hey, what desktop are you running?"

Somewhat unrelated: we, in the FOSS world, should make sure we get more enterprise-ready (and Dconf is one step in the right direction). We are not limited to single-desktop employments. There are some good efforts like Sabayon, or Fedora Stateless, and maybe some non-Gnome-based counterparts I don't know of, but these need much more attention, as they are not completely usable yet (as you can see while reading our experiences with Fedora Stateless). 100-workstation deployments should become fun for the administrator, not a hell as it is now. If we could ever reach that goal, FOSS would get the oportunity to get a strong share in the corporate desktop market, as deploying concurrent desktops in a big environment isn't always a breeze either these days (wink@Jeroen and DICT, if someone'd ever read this).

Bleh, I dislike writing long rants as I'm not good at it so I stop here. By the way, didn't we agree not to blog on Dconf and keep it silent for a while? ;-)

Completely unrelated: I got some email from Nokia saying I'll get a code to get one of their N770's at 99

Permalink . Ikke . 10:21:08 pm . 1420 Words . Technology, Linux, Desktop . . 322 views . 1 comment
Windows Picture and Fax preview question, and a little update

I guess most of you saw the Windows Picture and Fax viewer at least once already:

PictureFaxViewerThumb
(click on the tumbnail for a full scale view)

Never mind the screenshot's content, it was the first one I could find on Google Images.

Now what's so special about this? Let's take a closer look:

PictureFaxViewerButtons

"If you want to rotate the picture to the right, please click the button on the left. If you want to rotate left, you need the button on the right"

Is it just me who doesn't get the logics behind this? Guess I won't ever become a good UI-designer...

If anyone got a good explanation for this, please let me know.

Next to that: I haven't been working too much on coding lately, trying to study. I might overhaul the opluginmanager API completely once more, playing around with some idea's to make it more usable from languages other than C, so as long as I didn't decide on the final design (on which I'd still love to get some input) it's stalled a little.

I'll have my last exam on Thursday afternoon, then probably I'll take off to Germany to visit LinuxTag (let me know if you're coming), I'll be at Rock Werchter one day, then the VTK Weekend follows, our annual GAO barbeque,... Busy times to come :-)

Permalink . Ikke . 03:31:52 pm . 262 Words . Life, Technology . . 365 views . 6 comments

06/18/05

The Etolin Strait is a strait in western Alaska, at about 60

Permalink . admin . 10:57:02 pm . 1 Words . Articles . Email . No views
Stages: nu ook voor zes studiepunten

Op de voorbije vergadering van de faculteitsraad kwam ook het voorstel aan bod om het keuzevak "stage" te vervangen. Het voorstel was een tijdje daarvoor, oa op aandringen van de studentenvertegenwoordigers, reeds uitgevoerd besproken en vormgegeven. Het is dan ook zonder noemenswaardige problemen goedgekeurd op de faculteitsraad. Navraag bij de decaan leerde mij dat het bestuurscollege hem de garantie gegeven heeft dat het voorstel ook daar snel zou goedgekeurd worden zodat het reeds volgend academiejaar van toepassing kan zijn op de stages van deze zomer. Totnogtoe gingen we er vanuit dat de complexe programmahervormingsprocedure pas volgend jaar voltooid zou zijn, zodat ons voorstel pas in academiejaar 2006-2007 van toepassing zou zijn. Goed nieuws dus.

=> Read more!

Permalink . Peter . 17:52:38 . 254 Words . UGent & Stuver . Email . No views
Bezoekje aan Siemens

Zoals hier aangekondigd, heb ik vandaag een bezoekje gebracht aan de vestiging van Siemens in Herentals. Uiterst interessante boel daar :-D

Siemens Logo

Dirk Steel, de persoon die daar mijn stage zal co

Permalink . Peter . 01:32:10 . 559 Words . Studies, Siemens . Email . No views
Peilingen dmv De Stemmenkampioen

Voor wie het nog niet wist, er wordt ook maandelijks naar de kiesintenties gepeild. Dit door de krant Het Laatste Nieuws, allesbehalve mijn favoriete dagblad, maar kom. Deze peiling kwam vooral onder de aandacht de voorbije weken toen op korte tijd drie peilingen bekendgemaakt zijn: eerst die van de VRT en De Standaard, vervolgens die van VTM en La Libre Belgique en als laatste die van De Stemmenkampioen. Alledrie gaven ze een steeds dieper wegzinken van de VLD aan. Peilingen, op zich niet dermate interessant, doch deze vind ik wel een specialleke. Door gebruik te maken van een vast panel dat minstens maandelijks bevraagd wordt, kan men interessante informatie bekomen. Zo stelt men bijvoorbeeld telkens een weekvraag waarvan men het antwoord kan weergeven in functie van de kiesintenties van het panel. Ook de peilingen van de sterkte van de partijen binnen de kartels leveren interessante informatie op. Door het vaste panel kan men ook de verschuivingen beter in kaart brengen. Uiterst interessante materie voor politiek ge

Permalink . Peter . 00:20:42 . 364 Words . Politics . Email . No views

06/17/05

Live country recording by the American rock and roll band The Supersuckers. Released in 2004, it was recorded live at a bar called The Tractor Tavern in Seattle, Washington.

Track List

  1. Creepy Jackalope Eye
  2. Doublewide
  3. Sail On
  4. Pretty Fucked Up
  5. Killer Weed
  6. Born With A Tail
  7. Alabama, Louisiana or Maybe Tennessee
Permalink . admin . 10:57:01 pm . 1 Words . Articles . Email . No views
Just two more left

Stupid me, I wrote this one yesterday, wanted to modify a typo today, but clicked the "delete" button instead of "edit" :oops:

Wednesday, I had my exam Information Security. It was a bit harder to study than expected. The first part, wich deals about the mathematic aspects of encryption, calculation with prime numbers, was the boring and most difficult part. First I thought it was an oral closed book exam, but Tuesday someone told me it was open book, wich was also explained on one of the first slides, wich I skiped :oops: So, open book means you don't have to learn that stuff by heart, wich was very welcome news and gave me lots of extra hope :-D

The examn wasn't that hard, more about the applications instead of the maths. I expect it to be very good.

Next one is one of the most boring ones: Information Theory on monday the 27th. So lots of time, but no time to party. :-/ I'll work a few days on Speech Processing to make sure three days will be enough for that one.

Tomorrow, I've also an appointment with someone at Siemens Herentals about an internship. Very nice, I hope it'll be OK. The big problem however is: how to get there in a reasonable time. When you check websites like Antwerken, you see the Antwerp Ring is a complete mobily chaos, especially when you have to go to the E313. Another possibility is by the Brussels Ring, but then you also have the big traffic jams and all that stuff. I'll drive the direct way :-D From Ghent to Dendermonde and by Mechelen and Lier to Herentals. I'll start here at 7.30 am to arrive there at 10 am. Damn, too early to get out of my bed XX(

Permalink . Peter . 14:18:27 . 297 Words . Studies, Siemens . Email . No views

06/16/05

Mickey Charles Mantle (October 20, 1931August 13, 1995) was an American baseball player, regarded as one of the best of all time. He played his entire professional career for the New York Yankees.

Contents

Career

Mickey Mantle was born in Spavinaw, Oklahoma. He was named in honor of Mickey Cochrane, a famous baseball player, by his father, who was an amateur player and fervent fan. Apparently his father was not aware that Cochrane's real name was Gordon, and in later life, Mickey Mantle expressed great relief that his father had not known Cochrane's real first name, as he would have hated to be named Gordon. Mantle always spoke warmly of his beloved father and said he was the bravest man he ever knew. "No boy ever loved his father more" he said. Sadly, his father died of cancer at the age of 39 just as his son was starting his career. Mantle said one of the great heartaches of his life was that he never told his father he loved him.

"Mutt" Mantle taught his son how to be a switch-hitter. He had played shortstop in the minor leagues, but on arrival at the Yankees, he became the regular right fielder (playing only a few games at shortstop and third base in 1952 to 1955). He moved to centerfield in 1952, replacing Joe DiMaggio, who retired at the end of the 1951 season after one year playing alongside Mantle in the Yankees outfield. He played centerfield until 1967, when he was moved to first base. Among Mantle's many accomplishments are all-time World Series records for home runs (18), runs scored (42), and runs-batted-in (40).

Mantle also hit the longest measured home-run ever in a major league game. On September 10, 1960, he hit a ball that cleared the right-field roof at Tiger Stadium in Detroit, which based on where it was found, was estimated years after the fact to have traveled 643 feet. Another Mantle homer at Griffith Stadium in Washington, DC on April 17, 1953 traveled 565 feet from home plate to the spot it was retrieved by a local boy.

In 1956 Mantle won the Hickok Belt as top professional athlete of the year. This was his "favorite summer," a year that saw him win the Triple Crown (.353, 52, 130) and the first of three MVP awards. On January 16, 1961 Mantle became the highest paid baseball player by signing a $75,000 contract.

On December 23, 1951, he married Merlyn Johnson in their hometown of Commerce; they had four sons. In an autobiography, Mantle said he married Merlyn not because he loved her, but because his domineering father told him to. The couple had been separated for 15 years when he died, but neither ever filed for divorce. Mantle lived with his agent, Greer Johnson. Johnson was taken to federal court in November 1997 by the Mantle family to stop her from auctioning many of Mantle's personal items, including a lock of hair, a neck brace and expired credit cards.

Mantle announced his retirement on March 1, 1969 and in 1974, as soon as he was eligible, he was inducted into the Baseball Hall of Fame; his uniform number 7 was retired by the Yankees. (He had briefly worn uniform number 6, as a continuation of Babe Ruth's 3, Lou Gehrig's 4, and Joe DiMaggio's 5, in 1951, but the pressure on him that this caused led to his being switched to number 7 later in that season.) When he retired, the Mick was third on the all-time home run list with 536. In 1983, Mantle took a job promoting an Atlantic City casino, and was suspended from baseball by Commissioner Bowie Kuhn. He would be reinstated in 1985 by Peter Ueberroth, Kuhn's successor.

Mantle's last days

Mantle received a liver transplant on June 8, 1994 after his liver had been damaged by years of chronic alcoholism, cirrhosis, and hepatitis C. He spent time at the Betty Ford Clinic to kick the bottle for good. Mantle spoke with great remorse of his drinking in a Sports Illustrated article called "My Life In A Bottle". He admitted he had often been cruel and hurtful to family, friends and fans because of his alcoholism and sought to make amends. He became a born-again Christian before he died due to his former teammate Bobby Richardson sharing his faith with him. Mickey Mantle died on August 13, 1995 in Dallas, Texas at Baylor University Medical Center after his liver cancer spread through out his body. He was interred in the Sparkman-Hillcrest Memorial Park Cemetery in Dallas. Mantle had asked his good friend country singer Roy Clark to perform his favorite song "Yesterday, When I Was Young" at his funeral. Listening to the verses, one can see why the song was his favorite. "I lived by night/I shunned the light of day/ and only now I see how the years slipped away/I ran so fast time and youth ran out/so many songs in me won't be sung/I now must pay for yesterday when I was young."

In eulogizing Mantle, Bob Costas described the legend as "a fragile hero to whom we had an emotional attachment so strong and lasting that it defied logic."

He loved cherry pie and slept with his socks on inside out.

External links

Sources

Permalink . admin . 10:57:03 pm . 1 Words . Articles . Email . No views
Trying b2evo and planet for use on new site

This week I also set up my webserver and mysql for testing purposes. Installation of b2evo is very easy, straight forward. I tested a bit with configuration, modifying some styles and arranging things to handle it like a homepage with profile and files and that stuff. Very good stuff, recomended to everyone. I'm sure I'll use that engine at peterdedecker.net. First, I have to finish my exams of course, but then I'll make the migration from this server (eikke.com) to my own domain.

I also gave Planet a try. Also here, installation was done speaking in a few minutes and configuration is very easy. I played a bit with it, but it is just a nice piece of software. I think I'll use it in a plan that's breading in my head for now. More news'll follow.

Permalink . Peter . 21:55:51 . 140 Words . Internet & Blogs . Email . No views

Hank Stine (born 1945) was an American science fiction editor and writer.

Stine published a handful of science fiction novels in the lates 1960 and early 1970s, beginning with Season of the Witch in 1968.

Stine took over the position of editor of Galaxy after the departure of John J. Pierce in 1979, and edited two issues of the magazine.

Stine later underwent sex-reassignment surgery (a theme which had informed some of his writing, such as Season) and changed her name to Janine Stine.

Permalink . admin . 05:49:50 pm . 1 Words . Articles . Email . No views

Queer is the title of an early short novel (written 19511953, published 1985) by William S. Burroughs. It is a partialsequel to the tale in his earlier novel, Junkie.

The novel tells the semi-autobiographical story of a brief love/lust affair and the influence of drug-taking, set in 1940s Mexico andSouth America. It also has a detached cinematic quality that is absentfrom his later novels.

Originally intended to be published as a followup to Junkie in the 1950s, Burroughs' publisher rejected Queer,claiming that he would be prosecuted for immorality. Due to its themes,Queer finally found a publisher as part of Burroughs' contract with Viking Penguin, in 1985.

Despite being a queer author, Burroughs has, in the words of Russell (2001) "been totally excluded from the 'queer canon'".

An Erling Wold opera of the sametitle, based on the novel, premiered to acclaim in the US in 1998.

Further reading

  • Russell, Jamie: Queer Burroughs, Palgrave MacMillan (2001). ISBN 0312239238
Permalink . admin . 05:34:16 pm . 1 Words . Articles . Email . No views

Hija,

Today I implemented an idea I had been playing with for some time already: make a daily RSS feed of Wikipedia articles.
Why? If you add this feed to your aggregator, you'll be served a random article every day (or maybe twice a day, still have to decide at which frequency the cronjob should run) to expand your global knowledge, not only regarding tech-stuff ;-)

The blog page is here, you can find links to the RSS/Atom/... feed on the right.

Things could be somewhat buggy for now (there are lots of articles with lots of markups, some of them forbidden by b2evo, so I have to filter them out) but as more articles are aggregated, I'll be able to squash them :-)

I hope you like (and use) the service ;-) Spread the word!

Permalink . Ikke . 05:32:08 pm . 150 Words . Life, Technology . . 338 views . 3 comments

06/15/05

Gnome tip

This must be the greates Gnome tip I ever read (the dragging part at least). Now finally one doesn't need to crawl through one Save and one Open dialog to send a simple screenshot to some buddy. Thanks Karel!!!

Next to that: this is some of the most insane projects ever. A Unix shell written in JavaScript, that can be run from a browser. Check the "Open Shell" link on top of the page. Pretty nifty, didn't look at the code yet, will do that later.

Started working on the "save and restore enabled plugins" functionality today. I decided to use GMarkup instead of libxml2 so I don't add another dependency (next to glib), and the config strings are so easy formatted GMarkup is more than sufficient to parse them. But it made me discover once more how much I hate dreaded SAX parsing. Someone who enjoys writing SAX based parsers must be on a serious crack overdose :crazy:

Permalink . Ikke . 09:53:16 pm . 174 Words . Linux, Desktop, Coding Corner . . 334 views . 2 comments

06/14/05

In januari namen Cindy De Smet en Erwin van Hunen, bekend van de Podcasting-software Doppler, het initiatief om een Geek Dinner te organiseren in Gent. Toen al gingen er stemmen op om ook eens een Blog Dinner te organiseren, afgestemd op bloggers

Permalink . Peter . 23:57:54 . 118 Words . Internet & Blogs . Email . No views
Minerva reeds voor de FPPW, FirW en FLWI; toekomstig studentenportaal

Vandaag kreeg ik onderstaand berichtje in mijn mailbox.

Beste Mijnheer Dedecker,

U zal waarschijnlijk intussen al op de hoogte zijn dat ICTO, in overleg met de decanen, DOWA en de Academisch Beheerder, als tijdelijke oplossing en in afwachting van een studentenportaal waarop een door de studentenvertegenwoordigers beheerde infosite thuis hoort, voor de faculteiten PPW, Ingenieurswetenschappen en LW een *"Studentenvertegenwoordiging"* infosite heeft aangemaakt. Om de studenten maximaal te helpen en tijd te besparen hebben wij reeds de studenten per studiejaar in een groep gestoken.

(...)

*Wij zullen indien gewenst ook voor andere faculteiten een "studentenvertegenwoordiging" infosite openen op vraag van de decaan.

We zijn dus goed vertrokken! De infosite staat er al, heb ik gezien, doch voorlopig heeft enkel de Decaan de juiste permissies. We hopen dit op zo kort mogelijke termijn in orde te brengen zodat de FR-stuvers dit gezamenlijk kunnen beheren, meldingen online plaatsen, documenten ter beschikking stellen,... De andere faculteiten zouden normaal snel moeten volgen, alle stuvers in de GSR proberen dit reeds voor hun faculteit in orde te krijgen.

Je ziet ook dat er in die mail sprake is van een "studentenportaal". Uiteraard heb ik nagevraagd wat hiervan de bedoeling is, met volgend antwoord als gevolg:

Beste Peter

Hoever de plannen van de studentenadministratie staan ben ik van plan na te trekken maar de algemene beleidsbeslissing is eind december 2004 genomen ; het is dus zeker de bedoeling dit centraal te implementeren ( niet door ICTO) maar zoals U waarschijnlijk al weet is iedereen zwaar overwerkt en hebben de essenti

Permalink . Peter . 23:45:07 . 270 Words . UGent & Stuver . Email . No views
One more status update

I implemented Python plugin loading this afternoon. It's almost finished, only calling functions does not work yet (thats only like 10 lines or so, but my eyes start to hurt). It's using the Python plugin base class I blogged about yesterday.

The code is far from perfect, it might leak like hell etc, but hey, it's working ;-) You can't debug or clean code that is not working at all :-)

Here's the current output of the test loader I wrote:

** (process:19360): DEBUG: Loading all modules in .libs
** (process:19360): DEBUG: Suffix for .libs/libtestplugin1.so is valid, loading module
** (process:19360): DEBUG: [OPluginManagerPlugin] [test-plugin1] Got an init function
** (process:19360): DEBUG: [test-plugin1] Init with data "test-init-data"
** (process:19360): DEBUG: Module .libs/libtestplugin1.so is valid, adding
** (process:19360): DEBUG: Suffix for .libs/libtestplugin2.so is valid, loading module
** (process:19360): DEBUG: Module .libs/libtestplugin2.so is valid, adding
** (process:19360): DEBUG: Loading all modules in .
** (process:19360): DEBUG: Suffix for ./TestPlugin.py is valid, loading module
Creating new OPluginManagerPythonPlugin instance: PythonTest
** (process:19360): DEBUG: Module ./TestPlugin.py is valid, adding


Found 3 modules
** (process:19360): DEBUG: Dumping module 0:


================================================
Dumping data for: .libs/libtestplugin1.so, type is "native"
=================
* Name: test-plugin1
* Summary: A simple test plugin, full-featured
* Description: This is a sample test plugin, to test the OPluginManager functionality, giving sample usage of all possibilities
* Version: 0.1
* URI: http://www.eikke.com
* Authors:
        ikke
        -----------
                Email: eikke eikke com
                URI: http://www.eikke.com
* Module got an init function
* Module got a data free function
* Module got a configure function
================================================



** (process:19360): DEBUG: Dumping module 1:


================================================
Dumping data for: .libs/libtestplugin2.so, type is "native"
=================
* Name: test-plugin2
* Summary: A simple, small test plugin
* Description: This is a sample test plugin, to test the OPluginManager functionality. It only offers limited functionality
* Version: 0.1
* URI: http://www.eikke.com
* Authors:
        ikke
        -----------
                Email: eikke eikke com
                URI: http://www.eikke.com
        John Doe
        -----------
                Email: foo@bar.com
                URI: http://www.foobar.foo
* Module got no init function
* Module got no data free function
* Module got no configure function
================================================



** (process:19360): DEBUG: Dumping module 2:


================================================
Dumping data for: ./TestPlugin.py, type is "Python"
=================
* Name: PythonTest
* Summary: A little test plugin
* Description: Some longer description of this test plugin
* Version: 0.1
* URI: http://www.eikke.com
* Authors:
        Ikke
        -----------
                Email: eikke eikke com
                URI: http://www.eikke.com
* Module got no init function
* Module got no data free function
* Module got no configure function
================================================



** (process:19360): DEBUG: Deleting 3 modules
** (process:19360): DEBUG: [OPluginManagerPlugin] Freeing "test-plugin1" data
** (process:19360): DEBUG: [OPluginManagerPlugin] Running free function
** (process:19360): DEBUG: [test-plugin1] Freeing data "Test plugin 1 data"
** (process:19360): DEBUG: [OPluginManagerPlugin] Freeing "test-plugin2" data
** (process:19360): DEBUG: [OPluginManagerPlugin] No free function provided

As you can see, it loads 3 modules: 2 native (C) ones in .libs, one fully fledged, one minimal, and loads one Python plugin.
The Python plugin code is very simple, but can still offer almost the same flexibility as the C interface does:

from OPluginManagerPlugin import OPluginManagerPlugin, OPluginManagerPluginAuthor

class TestPlugin(OPluginManagerPlugin):
        def __init__(self):
                tmpauthor = OPluginManagerPluginAuthor("Ikke", "eikke eikke com", "http://www.eikke.com")
                OPluginManagerPlugin.__init__(self, "PythonTest", "A little test plugin", tmpauthor, "Some longer description of this test plugin", "0.1", "http://www.eikke.com", self.Init, self.FreeData, self.Configure)

        def Configure(self):
                print "Configuring"

        def Init(self, init_data):
                print "Initializing with data \"" + init_data + "\""
                return "testplugindata"

        def FreeData(self, data):
                print "Freeing \"" + data + "\""

def OPluginManagerPluginInit():
        return TestPlugin()

I should learn how to work with Python lists etc to be able to implement multi-author functionality etc though.

I updated CVS heavily, so you can find (and checkout) all current code here. Please play around with it and let me know what you think of it (as a comment here or on the live.gnome wiki page), so I know what I should enhance, add,...

Oh, I got one more terrible exam today (part 2 of the one I got yesterday). Life's great :-p

Permalink . Ikke . 09:31:01 pm . 632 Words . Technology, Linux, Desktop, Coding Corner . . 342 views . 1 comment

06/13/05

OPluginManager getting it's final forms

I tried to stabilize the OPluginManager interface today, after a terrible exam. Look at the OPluginManager page at live.gnome.org to get a view of the current structure.

I updated the test cases I got here locally (one example is the plugin code I got on that wiki page too). The directory-loader is finished too, almost everything is in place now actually, except the UI part and the "only-load-enabled-modules" feature. These things should be fairly trivial (don't we love that word, NVDB?) to implement.

Here's a sample app:

#include <glib.h>

#include "o-plugin-manager.h"
#include "o-plugin-manager-plugin.h"

gint main(guint argc, gchar *argv[]) {
        gint cnt = 0;
        gchar *dir = NULL, *dir2 = NULL, *modulepath = NULL;
        const OPluginManagerPlugin *plugin = NULL;
        OPluginManager *manager = NULL;

        g_type_init();

        manager = O_PLUGIN_MANAGER(o_plugin_manager_new());
        o_plugin_manager_load_modules(manager, ".libs", "test-init-data", NULL);        

        g_print("\n\nFound %d modules\n", o_plugin_manager_get_num_modules(manager));

        /* Check whether we got a 0'st module, call its configure function */
        if(o_plugin_manager_get_num_modules(manager) > 0) {
                plugin = o_plugin_manager_get_module(manager, 0);
                g_debug("Dumping module 0:\n");
                o_plugin_manager_plugin_dump(plugin);
        }

        g_object_unref(manager);

        return 0;
}

As you can see, this code loads all valid modules in .libs with the string "test-init-data" as init data, then checks whether a 0st plugin is available, and dumps the plugin info.

This is the current output:

** (process:14246): DEBUG: Loading all modules in .libs, suffix is so
** (process:14246): DEBUG: Suffix for .libs/libtestplugin.so is so, loading module
** (process:14246): DEBUG: [OPluginManagerPlugin] [test-plugin] Got an init function
** (process:14246): DEBUG: [test-plugin] Init with data "test-init-data"
** (process:14246): DEBUG: Module .libs/libtestplugin.so is valid, adding


Found 1 modules
** (process:14246): DEBUG: Dumping module 0:


================================================
Dumping data for: .libs/libtestplugin.so
=================
* Name: test-plugin
* Summary: A simple test plugin
* Description: This is a sample test plugin, to test the OPluginManager functionality
* Version: 0.1
* URI: http://www.eikke.com
* Authors:
        ikke
        -----------
                Email: eikke eikke com
                URI: http://www.eikke.com
        John Doe
        -----------
                Email: foo@bar.com
                URI: http://www.foobar.foo
* Module got an init function
* Module got a data free function
* Module got a configure function
================================================

** (process:14246): DEBUG: Deleting 1 modules
** (process:14246): DEBUG: [OPluginManagerPlugin] Freeing "test-plugin" data
** (process:14246): DEBUG: [OPluginManagerPlugin] Running free function
** (process:14246): DEBUG: [test-plugin] Freeing data "Test plugin data"

Here libtestplugin.so is the plugin you can see in the live.gnome wiki.

I also tried to implement a plugin structure in Python, although I'm no Python-expert at all. Current code is available here.
To give a little overview: every Python-based plugin should be a class extending from OPluginManagerPlugin, in this sample PluginTest is an implementation. There should be one fixed-name function in the __main__ module that returns an instance of this plugin class. Like this we just have to call that fixed-name function in our C wrapper, get it's return value in a PyObject *, then check whether it's type descends from OPluginManagerPlugin, and if that's the case start using the object as if it's just an OPluginManagerPlugin, we don't have to care about the details.
The code needs lots of enhancements and cleanups. If you could elaborate on this, please contact me. Especially the function-pointer part (passing (int)0 if no function is given) is ugly: I need to be able to check whether the var is a real function pointer before I call it, not only checking whether it's != 0. Next to this, I should figure out how to do proper error handling. Once that's done, I should be able to write a small wrapper plugin in C so I can start using plugins written in Python from within C.

Permalink . Ikke . 10:10:18 pm . 633 Words . Technology, Linux, Desktop, Coding Corner . . 252 views . Leave a comment

06/12/05

Using Python objects in Python-C interop

As I wrote in my previous article, I did not know yet how to handle Python objects, and call their member functions.

After getting some help from Adam "adamh" Hooper, it became clear this is actually very easy to do.

Here's some code (I'm not reposting the whole C file, just append this to the end, it should be clear):

g_debug("Calling pytest::test using the helper function");
PyObject_CallMethod(ret, "test", NULL);

Py_XDECREF(ret);
ret = NULL;
        
g_debug("Calling pytest::test, no helper function");
g_debug("Creating a new pytest object");
ret = PyInstance_New(PyDict_GetItemString(dict, "" MODULE_NAME), NULL, NULL);
g_assert(ret != NULL);
PyObject_CallMethod(ret, "test", NULL);
Py_XDECREF(ret);

Watch out: you should not Py_XDECREF(ret) before doing this, of course.

As you can see there are 2 ways to achieve our goal:

  • In the first part of the snipper, we use "ret". This is the return value of the global function called "test", which is a "pytest" instance (the "test" function ends with return pytest()). We just call PyObject_CallMethod(object, name, args) to call the function.
  • In the first "solution" we use some ugly hack to get a pytest instance. In the second part we use a cleaner method, by calling PyInstance_New(type, constructor_args, kw). As you can see, we get "type" in the same way we got the entry point to the global "test" function. Now again we can just call a method on the object as in the first part.

This should be the output now:

** (process:13267): DEBUG: Initializing Python
** (process:13267): DEBUG: Setting PATH
** (process:13267): DEBUG: Trying to import "pytest"
** (process:13267): DEBUG: Success loading global test function
In main test function, argument is "testarg"
Initializing a pytest object
** (process:13267): DEBUG: Calling pytest::test using the helper function
In pytest's test function
** (process:13267): DEBUG: Calling pytest::test, no helper function
** (process:13267): DEBUG: Creating a new pytest object
Initializing a pytest object
In pytest's test function

Looks like Python/C interop is not that hard actually :-) You can find the final code here.

Permalink . Ikke . 05:20:55 pm . 371 Words . Technology, Coding Corner . . 870 views . Leave a comment

06/11/05

In the middle

Thursday, my exam Multimedia Networks was OK, I think. With three exams done and three to go, I'm in the middle now. Next one is Information Security wich is really interesting. Seems not that difficult and I allready used lots of those things in practice, so normally it should go well.

Still 20 days to go and counting!

Permalink . Peter . 18:24:48 . 57 Words . Studies . Email . No views
Calling Python from C

As I wrote on the OPluginManager overview page, I'd like to provide functionality to write plugins in Python. To achieve this I need to be able to call Python code from C (as the base OPluginManager framework is C-based). After asking around a little and reading some code samples (mostly in the Epiphany extension loading code) I figured out the basic calls one needs.

Here's what we need to do:
First we need some Python code. Take this as a test (pytest.py):

 class pytest:
        def __init__(self):
                print "Initializing a pytest object"

        def test(self):
                print "In pytest's test function"

def test(a):
        print "In main test function, argument is \"" + a + "\""
        return pytest()

Now we want to call some of this from C (pytest.c):


/* We want Python functionality */
#include <Python.h>
#include <glib.h>

/* To make life easier for us */
#define MODULE_NAME "pytest"

gint main(guint argc, gchar *argv[]) {
        /* The module object */
        PyObject *module = NULL;
        /* Objects we need to get a reference to a function */
        PyObject *dict = NULL, *func = NULL;
        /* Stuff we need to be able to load a module not in PYTHONPATH */
        PyObject *path = NULL, *pwd = NULL;
        /* Args we offer to the called function, and a reference to the return value */
        PyObject *args = NULL, *ret = NULL;

        /* Initialize the Python framework */
        g_debug("Initializing Python");
        Py_Initialize();

        /* "pytest.py" is in ".", so we need to alter the module search path
           "." is not in it by default */
        g_debug("Setting PATH");
        /* Get the current path (this is a list) */
        path = PySys_GetObject("path");
        /* Create a value to add to the list */
        pwd = PyString_FromString(".");
        /* And add it */
        PyList_Insert(path, 0, pwd);
        /* We don't need that string value anymore, so deref it */
        Py_DECREF(pwd);

        /* Load the module */
        g_debug("Trying to import \"%s\"", MODULE_NAME);
        module = PyImport_ImportModule("" MODULE_NAME);
        /* Check whether we succeeded */
        if(module == NULL) {
                /* If not, print the error message and get out of here */
                PyErr_Print();
                PyErr_Clear();
                g_warning("Failed to initialize \"%s\"", MODULE_NAME);
                return 1;
        }

        /* Get a dict from the module
           I should look up the API, but I presume this is something like
           "function_name" => function_entry_point */
        dict = PyModule_GetDict(module);
        /* Get the entry point of our "test" function
           This is -not- the pytest:test function */
        func = PyDict_GetItemString(dict, "test");

        /* Check again whether we succeeded, and whether the function can be called */
        if(func != NULL && PyCallable_Check(func) == TRUE) {
                g_debug("Success loading global test function");
        }
        else {
                /* Something bad occured, print out the Python error and abort */
                g_debug("Failed loading %s", MODULE_NAME);
                if(PyErr_Occurred()) {
                        PyErr_Print();
                        PyErr_Clear();
                }
                return 1;
        }

        /* We want to offer some args to the test(a) function
           These args should go into a tuple */
        /* Create a tuple with one element */
        args = PyTuple_New(1);
        /* Add a new element to the tuple, at position 0, a new string with content "testarg" */
        PyTuple_SetItem(args, 0, PyString_FromString("testarg"));

        /* Call the test function, with the "args" tuple as arguments */
        ret = PyObject_CallObject(func, args);
        /* Something went wrong.
           I must admit I still have to figure out what the return value of CallObject actually is.
           What would ret be if test(a) returns nothing? */
        if(ret == NULL) {
                /* Print error and abort */
                PyErr_Print();
                PyErr_Clear();
                g_warning("Failed to call test function");
                return 1;
        }

        /* Free the returned value, and the args tuple
           We don't really free, we unref the objects.
           I should look up what the difference between XDECREF and DECREF is. DECREF seems to be a standard unref thing */
        Py_XDECREF(ret);
        Py_DECREF(args);

        return 0;

        /* Maybe we should free the module too, and deinitialize Python
           This is not done in the code I read though */
}

Comments inline. This code might look huge, but actually it mostly consists of error checking ;-)

We need a rather "large" line to compile this:

gcc -o pytest -g `pkg-config --cflags --libs glib-2.0` -I/usr/include/python2.3 -lpython2.3 pytest.c

(You should adjust this to match your Python version if necessary)

When we run the program, this is what we get:

** (process:30233): DEBUG: Initializing Python
** (process:30233): DEBUG: Setting PATH
** (process:30233): DEBUG: Trying to import "pytest"
** (process:30233): DEBUG: Success loading global test function
In main test function, argument is "testarg"
Initializing a pytest object

Which is somewhat what we could expect.

In this sample I only use a global method, I don't use any Python object (like "pytest"). I must admit I don't know how to do this yet :oops: but hey, I'm just taking my first steps :-)

Permalink . Ikke . 12:31:29 pm . 756 Words . Technology, Desktop, Coding Corner . . 2800 views . 1 comment

06/09/05

Done today
  • Created an initial page on OPluginManager on live.gnome.org.
  • Started writing a longer article on women in the FOSS community, now Gnome-Women was launched (actually, did that yesterday ;-))
  • Sent an email to the author of this article in our local newspaper to explain crackers are no hackers (and the other way around). WikiPedia got some decent information on this issue.
  • Did not study enough :-(

TODO:

  • Continue working on the OPluginManager design, then implement some more of it. Get to learn some more on GObject<->Python/Mono interaction, and Python/Mono<->native calling code (ie how to allow using an OPluginManager object in Python/C#, and how to allow OModuleLoader/OPluginManager to work with Python/C# based plugins).
  • Finish the mentioned article
  • Poke jdub to get some response (even if it's negative) ;-)
  • Write some of my ideas on the Tag based desktop down, decide wether to send it to desktop-devel@gnome or xdg@fdo, and do so accordingly.
  • Study!!!!
Permalink . Ikke . 09:02:42 pm . 195 Words . Life, Technology, Desktop . . 274 views . 2 comments

06/08/05

Alle scholen van het basis- en secundair onderwijs ontvangen volgende week een uitgebreide handleiding over het gebruik van vrije software. Minister van Onderwijs Frank Vandenbroucke wil hen zo laten kennismaken met de toepassingen die mogelijk zijn in klasverband. Daarnaast is een zogenaamde "leermiddelendatabank" ontwikkeld op de educatieve portaalsite Klascement. Eind 2005 krijgen alle scholen ook een cd-rom met vrije software en testresultaten van scholen. Minister Vandenbroucke trekt voor deze acties 40.000 euro uit.

Prachtig nieuws vanuit het kabinet onderwijs dus. Lees hier de volledige persmededeling.

Permalink . Peter . 12:54:10 . 83 Words . Free Software . Email . No views

06/07/05

Een tijdje geleden kreeg ik samen met enkel medestudenten en mensen van de Dienst Studentenactiviteiten een rondleiding in de Thermische Centrale, die momenteel omgebouwd wordt tot het nieuwe studentenhuis. (klik hier voor foto's) De gids, professor Mees van de Vakgroep Architectuur en Stedenbouw en tevens architect van het nieuwe studentenhuis, had na de rondleiding ook nog heel wat te vertellen over de vroegere functies van het gebouw en de omgeving. Zo had hij een interessant verhaal over hoe er vroeger een professor aan de universiteit was die zich bezighield met het maken van limonade. Om deze te koelen, werd er ijs aangevoerd vanuit Noorwegen, langs de Schelde, en dan via een tunneltje naar twee grote koelreservoirs geduwd. Dat tunneltje heeft men nu terug vrijgemaakt met de renovatie van de stookcentrale en men is van plan daar een hekken voor te plaatsen en verlichting te installeren, zodat iedereen alsnog een zicht kan krijgen op de historie van de gebouwen in de buurt.

De Thermische Centrale
De Thermische Centrale, gezien vanop de Muynkkaai

Vandaag vond ik op de weblog van Skender een interessant artikel hierover. Aanpalend aan die koelinstallatie, kan je immers het Emma

Permalink . Peter . 23:03:18 . 304 Words . UGent & Stuver . Email . No views

06/06/05

I'm not willing to offend any Debian user, but this is just hilareous:
This release includes a number of up-to-date large software packages, such as the K Desktop Environment 3.3 (KDE), the GNOME desktop environment 2.8, the GNUstep desktop, XFree86 4.3.0, GIMP 2.2.6, Mozilla 1.7.8, Galeon 1.3.20, Mozilla Thunderbird 1.0.2, Firefox 1.0.4, PostgreSQL 7.4.7, MySQL 4.0.24 and 4.1.11a, GNU Compiler Collection 3.3.5 (GCC), Linux kernel versions 2.4.27 and 2.6.8, Apache 1.3.33 and 2.0.54, Samba 3.0.14, Python 2.3.5 and 2.4.1, Perl 5.8.4 and much more.

So

  • KDE 3.3
  • Gnome 2.8
  • XFree86 4.3.0
  • GCC 3.3.5
  • Linux kernel 2.6.8

are up-to-date now? Right :roll:

Disclaimer: I guess I could be flamed now as some some stupid Gentoo user thinking he's ultra 1337 etc etc, that's not my intention at all, I just think this is funny

[edit]As just seen on IRC:
17:48 <Em> the debian world must be in an uproar. you know. with gearing up for the next release in 2009
*grin*[/edit]

Permalink . Ikke . 08:09:57 pm . 149 Words . Technology . . 265 views . 3 comments

06/05/05

Minerva voor de stuvers: goed nieuws

Vannacht had ik hier reeds een bericht geplaatst als verslag uit de computercommissie. Ondertussen heb ik al meer nieuws over het gebruik van Minerva voor de studentenvertegenwoordiging. Zoals je weet, had Joke Renneboog via decaan Geert De Soete van de Faculteit Psychologie en Pedagogische Wetenschappen kunnen bekomen dat dit systeem ingevoerd werd voor hun faculteit. Ik heb in mijn vorig bericht reeds gemeld dat diezelfde Geert De Soete deel uitmaakt van de experten in de begeleidingsgroep ICTO. Nu wist hij via Joke te vertellen dat die begeleidingscommissie slechts een paar keer is samengekomen en dat dit al een hele tijd geleden is. Niet bijzonder actief dus en weinig kans om ons voorstel erdoor te krijgen, tenzij we zelf een vergadering bijeenroepen waarmee we ons niet zo geliefd zullen maken.

Echter niet getreurd, er is immers ook heel goed nieuws te vertellen. Zie onderstaand mailtje.

From: Geert De Soete
To: Joke Renneboog
Sent: Sunday, June 05, 2005 3:34 PM
Subject: Re: Uittreksel stuver-verslag computercommissie

Joke,

Ik heb vorige vrijdag met prof. Tine Lenaerts gesproken over het veralgemenen
van de infosite voor de studentenvertegenwoordiging naar de andere faculteiten.
Zij zal akkoord gaan op voorwaarde dat - zoals bij ons - de decaan ervoor
verantwoordelijke is.

met vriendelijke groeten,

Geert

Fantastisch nieuws toch? Nu komt het erop aan om in elke faculteit met de decaan te overleggen om het systeem er ook daar door te krijgen. Aangezien onze decaan van de FirW er wel voor te vinden was, doch het niet gedaan kreeg van Prof. Wieme, kan dit voor ons al geen probleem zijn. Laat maar komen, die handel!

Permalink . Peter . 15:04:12 . 261 Words . UGent & Stuver . Email . No views
First exam, Nokia 770

The exams have started in a bad way. Hardly anybody had enough time to answer all questions of our first exam ('Transportverschijnselen'). Lets hope for the best.

As some people already know, I'm going to buy a PDA (or something similar) in the near future. The ones I am/was interested in are: the Palm Lifedrive, Dell X30 or X50, or the (to be released) Nokia 770. The LifeDrive is too expensive and slow I'm afraid, and the Dell's, well... they use Windows :-p . So I'll probably buy that Nokia 770. There are a few features of it that I'm worried about though:

  • Will it support VPN over Wifi?
    (needed to connect to our University network)
  • Will it support pdf reading?
  • How long will the battery last?
    (the site says three hours, I know)
  • Will there be linux desktop software to upload files to the 770?
  • I hope there will be apps to view .ppt (powerpoint) files.
  • And last, but not least: When will Nokia release it?
    (the sooner the better :-p )

I still have to check out the prices for those mini memory cards the 770 uses too. Lot's of things to think about. ;-)

Permalink . RealNitro . 12:24:43 . 261 Words . Life, Linux . Email . 678 views
Verslag uit de computercommissie (3-6-2005)

Om de ge

Permalink . Peter . 04:44:00 . 1349 Words . UGent & Stuver . Email . No views

06/04/05

Still four more left

Bad examn today. The exercises were bloody. I completed one fully, one half and half, and left the third open because out of time. The third one looked difficult because it was one of the last chapter wich was a difficult one, but a few subquestions were easy. Damn, I shoold have taken that one before the others.

Let's hope it's enough for a 10...

I also had a meeting with the computer commission of our university in the afternoon. A few things were discussed, like the keeping of your e-mailadres and the VPN-protection. I'll give a more detailed report (in Dutch) when I'm back in Ghent, I left my papers there.

Permalink . Peter . 00:13:18 . 111 Words . Studies . Email . No views

06/02/05

KEW2005

Just sit back and relax. Enjoy

If you really want to know what it is: Johannes Brahms' "Sonate nr. 3 in d Op. 108", by Yossif Ivanov (BE), 2nd price at the Queen Elisabeth concours last week. A magnificent piece in a superb performance. Partial movie is here, you need the latest WMP codecs to play it when running Linux.

Permalink . Ikke . 09:23:44 pm . 83 Words . Life . . 403 views . 2 comments
Voor of tegen de EU-grondwet?

Na de verpletterende afkeuring van de EU-grondwet door Frankrijk en Nederland, is vandaag in het Vlaams Parlement beslist dat er in Vlaanderen geen referendum komt over de grondwet. De mening van alle stemgerechtigde Vlamingen zullen we dus nooit kennen. Misschien maar best ook, want het Franse verhaal is duidelijk een stem tegen de huidige regering, een anti-stem als het ware. Zelf ben ik gematigd voorstander. Enerzijds gaat de grondwet niet ver genoeg, kan men geen individuele commissaris afzetten zonder de gehele commissie af te zetten en is ze met haar 800 pagina's bezwaarlijk een grondwet te noemen. Anderzijds vormt de grondwet een goed fundament om van te vertrekken, om de EU een gezicht te geven en transparanter te maken en is het een goede poging om het gebrek aan democratie op Europees niveau te dichten. Zo zou het Europees Parlement bijvoorbeeld meer macht krijgen ten nadele van de Raad van Ministers. Een goede zaak vind ik persoonlijk.

Met de referenda in de verschillende landen, circuleren er ook allerlei "testjes" om te zien of je, volgens jouw opvattingen, voor of tegen de grondwet zou moeten stemmen zonder de 800 pagina's door te nemen. Een mooie is bijvoorbeeld deze website, gemaakt voor het NL-kiespubliek. Dit zijn mijn scores:

Uw opvattingen komen voor 90% overeen met de Grondwet.

Mate van overeenkomst met de grondwet per thema:
Europese instellingen: 81%
Sociaal beleid en economie: 100%
Milieu en landbouw: 100%
Justitie: 87%
Defensie en Buitenlands beleid: 87%

Hopelijk wordt de crisis snel bezworen en kan het Europese project verdergaan.

En ik heb morgen ook een crisis te bezweren: examen wachtlijntheorie :-/

Permalink . Peter . 19:21:45 . 257 Words . Studies, Politics . Email . No views

06/01/05

10X10


No comment ;-) Let's go for it.

Permalink . Ikke . 12:31:33 pm . 6 Words . Desktop . . 235 views . Leave a comment

05/30/05

One down, five to go

This morning, I finally did my first exam. Finally. Finally I'm coming in the right rhythm for examinations. My first one was computer graphics, a very easy one. The syllabus was that small I can express my study time in hours instead of days :-D That way, it was very difficult to start studying instead of taking vacations. So I think it 'll be OK, I answered all questions, so let's hope they're right B-)

Now, right after an exam, I can't motivate myself to study the next one, so I did some other stuff, like reading the newspaper and so on. I also prepared a statement text that I'll use on the next meeting of the computercommission of our university. If you're interested and you understand Dutch, you can read it here. Now the rest of our board has to approve it and then I can defend it on the meeting next friday, right after my next exam. And that one isn't that easy. It's also one of the most boring courses in our course list: Queueing Theory. Let's hope it'll be allright.

So now I think my break was long enough, let's eat and then study!

Permalink . Peter . 18:11:27 . 198 Words . Studies . Email . No views

It's been quite a while since I posted here. So here's a little update. I'm preparing for my exams, the first one is friday. I can feel the exam stress already, which is good, because I need some stress to study. (if there is no stess, I waste my time with surfing and gaming) I've got 5 exams this semester, 3 difficult ones, and 2 easy ones (surprisingly, the easy ones are computer-related ;-) ). The 3 difficult ones come first, so after those, the worst part is over and the fun begins. :-p

Now, about that weird word 'Sauerbraten' in the title. Sauerbraten is 'Cube 2'. (I have posted about Cube before.) The first 'relatively mature' release is availiable for download here. Saurebraten runs on linux and windows. If you want to try Saurerbraten out, you should extract the .zip file somewhere on your harddrive. Linux users should go to sauerbraten/sauerbraten and run 'sauerbraten_unix'. (you might have to change the permissions of sauerbraten/sauerbraten/sauerbraten_unix and sauerbraten/sauerbraten/bin_unix/linux_client to make sure they are executable) Windows users should execute sauerbraten\sauerbraten\sauerbraten.bat. Remember that this is an early release, so many things might still change. I think the looks have improved a lot, but some features still annoy me: I hate those stupid ogre models and the other monsters. They just don't fit in a FPS game.

Oops, my break is over. Back 2 the books. >:( Cya!

Permalink . RealNitro . 15:03:42 . 280 Words . Gaming, CUBE, Life . Email . 758 views

05/29/05

OPluginManager

I've been working on my OPluginManager lately (not too much, got to study too, and watched the Queen Elisabeth concours of course ;-)).

This is what I got now (it's my first GTK code ever, so I'm quite happy with it):

This is the "plugin" code:

#include "plugins/o-plugin-manager-plugin.h"
#include "plugins/o-plugin-manager-plugin-data.h"

#define TEST_PLUGIN_MSG "[test-plugin] "

static gpointer plugin_init(gpointer d, GError **e) {
        g_debug("" TEST_PLUGIN_MSG "Init");
        return (gpointer) g_strdup("Test plugin data");
}

static void free_data(gpointer d) {
        g_debug("" TEST_PLUGIN_MSG "Freeing data \"%s\"", (gchar *) d);

        g_free(d);
}

static OPluginManagerPluginAuthorData author = {
        O_PLUGIN_MANAGER_PLUGIN_DATA_AUTHOR_MAGIC,
        "ikke",
        "eikke eikke com"
};

static OPluginManagerPluginData plugininfo = {
        O_PLUGIN_MANAGER_PLUGIN_DATA_MAGIC,
        "test-plugin",
        "A simple test plugin",
        "This is a sample test plugin, to test the OPluginManager functionality",
        "0.1",
        "http://www.eikke.com",
        &author,

        NULL,
        plugin_init,
        free_data
};

O_PLUGIN_MANAGER_PLUGIN_REGISTER(plugininfo);

As you can see it's braindead easy to write a plugin :-)

The code is quite a mess at the moment, the UI is just plain ugly and inaccessible, there's no I18N support, but well, as you can see, one day it might work :-)

Lots of guys I know are in Stuttgart right now, visiting GUADEC. I wish I could be there too :-( Have a great time!!!

Permalink . Ikke . 08:33:36 pm . 221 Words . Technology, Linux, Desktop, Coding Corner . . 291 views . Leave a comment
GVim

Just had a little chat with Ruben on Vim, where he suggested me to put my .vimrc etc online.

So I did, this is my current GVim setup:


(Thumbnail is link to original image)

And here's my current .vimrc. If you know any other fancy tricks I could use, please let me know :-)

A lot of useful information on configuring your Vim is available here.

Permalink . Ikke . 01:33:19 pm . 95 Words . Technology, Desktop . . 373 views . Leave a comment

05/27/05

Printing in Linux

Printing in Linux: it doesn't go automatic. Ok, one can say you just have to follow the Gentoo Printing Guide wich is very clear and makes installing a printer very, very easy (just a few commands), but I think we could expect more, especially more automated and integrated in gnome.

First off all, when you have a plain linux installation, gnome and all stuff you need, with no printing devices configured: printing works. You can just print a file without configuring a printer. The big problem is that the printed document doesn't look very good. A plain color is made of textures for example, looks like printing with the first color printers or with kind of colored-grayscales. Off course I want better, so I followed the gentoo guide.

What is it all about? First of all you need to have cups and foomatic installed. No problem, cups should be installed as dependency of gnome and you still can install foomatic if you need it. Maybe CUPS/Gnome could advice you to install foomatic when configuring a printer that has some benefits when having foomatic installed. If you have an HP Deskjet printer, you also need to install the HPIJS driver wich acts like a postscript interpreter between the postscript output and the printer device. Also this one could be recommened when configuring a HP device in CUPS/Gnome. That's all for software requirements. The configuration could be automated more. Normally, you have to create a PPD-file for your printer by hand (just give the model and hardware number to foomatic) or download the right one from linuxprinting.org and place it in the cups directory. I think it must be possible to grep the required information when attaching a printer device with USB. When connecting, gnome should detect the right model, generate the appropriate ppd file and install the printer in cups. Maybe a dialog box should appear informing the user that the printer is added to cups and asking if he/she wants to review the configuration or sharing properties. This would be a real integrated desktop experience.

Permalink . Peter . 02:57:42 . 349 Words . Linux, My Gentoo . Email . No views

05/25/05

Three down, one more to go; internship news

I'm almost finished with my project work. Today I wrote the report of my project in information security. We had to develop a system to make online train ticket purchasement possible with the necessary fraud protection. The train speculator has to be able to verify the ticket in very less time without consulting a database containing the online transactions. We developed a system based on encrypted information printed on the ticket as barcode.

For the last project we just have to work a little bit on the report. It was about testing an algoritm for on the fly pitch extraction of recorded speech. This information is needed to compress digital speech as good as possible.

I also have some news about my internship. As I told you before, I've chosen a thesis where I have to work on development and testing of a fast handover system for wireless connections on trains. I also told you I had a meeting to arrange an internship with Siemens on the same subject. Now, the prof has sent me a e-mail with the good news he has contact with Siemens and they're interested in such kind of internship. If everything goes well, I can do some work on their Chantry technology. It should cover a few days/weeks working in Herentals and do some tests with the equipment in Ghent. Normally there'll be a meeting around the 17th of July or afther the examinations. Let's hope everything goes well :-D

Permalink . Peter . 23:18:51 . 246 Words . Studies, Siemens . Email . No views
Nokia

Ok, I admit, I also want one. Just check Planet Gnome if you don't know what I'm talking about.

Permalink . Ikke . 08:27:45 pm . 33 Words . Technology . . 305 views . 4 comments

05/24/05

Gnome stuff

Some new Topaz mockups were created, showing another (more radical IMHO) view on what Gnome3 should become, like these before. If you want to comment on them, desktop-devel is the place to be.

Since today, I got write access to Gnome CVS, mostly thanks to Philip and Ronald. Thank you guys! Just got the documentation building of asyncworker working (I hope at least ;-)), patch submitted (edit: and committed. My first one :-)). I'll import my first work on OPluginManager somewhere later this week.

And I may not forget to send out some emails to find some holiday job. As I'm a lazy bum, I still didn't send them :oops:

Permalink . Ikke . 09:28:48 pm . 161 Words . Life, Technology, Linux, Desktop, Coding Corner . . 488 views . 4 comments
OModuleLoader

It looks like I have to release the current code I got for OModuleLoader/OPluginManager. Well, here it is. Still needs a lot of love, but hey ;-)

Permalink . Ikke . 03:09:36 pm . 37 Words . Technology, Coding Corner . . 266 views . Leave a comment
Projecten en surfen

Mijn project is blijkbaar toch nog niet af. Ik dacht dat ik klaar was, alle scriptjes nog een laatste maal getest, wat esthetische veranderingen aangebracht en de boel doorgestuurd. Ik werk nog wat aan het verslag en bedenk dat het wel handig zou zijn mocht ik die figuur ter beschikking hebben. Zodus, ik laat mijn matlab-script nog eens lopen, doch komt daar ineens een totaal andere figuur uit. Ja, debuggen dan maar...

Het probleem met die scriptjes is dat die heel lang duren om uit te voeren tussen twee veranderingen door. En wat doe je ondertussen? Juist ja, wat rondsurfen. Heb op die manier een tof blogje gevonden, Yet Another Blog. Ergens op LVB.net stond een comment of trackback met een link ernaar, beetje beginnen lezen en best wel fijn :-) Blijkbaar eigendom van een Leuvense jongedame die wonder-boven-wonder ook jabbergebruiker is en een van de weinige vrouwen was die je tegen het lijf kon lopen op FOSDEM. Een zeldzaamheid dus :-) Doch, mocht je dit lezen, neem dan zeker hier eens een kijkje voor wat meer open source feminisme ;-) Een van mijn favoriete sites trouwens, die laatste.

Best wel leuk om zo eens een blogje te lezen van iemand die denkt dat geen kat haar pennetrekjes leest. Altijd fijn om eens te volgen hoe het er in iemands leven aan toe gaat, zeker als het over de bedgeheimen gaat... Er zit een stukje voyeur in elk van ons ;-)

Anyway, mocht je dit lezen, blijven gaan met die gele banaan B-)

Permalink . Peter . 04:54:58 . 250 Words . Studies, Internet & Blogs . Email . No views

05/23/05

Op naar een LUG in Oost-Vlaanderen

Op de nieuwsgroep be.comp.os.linux, of kortweg bcol, loopt al enkele dagen een thread over het oprichten van een Oost-Vlaamse Linux User Group. Er is ook een forum en een irc-kanaal #lugov op irc.freenode.net gestart.

Nadat de naam lugov.be geregistreerd was door een zeker bedrijf en men die naam niet wou vrijgeven, zijn we eindelijk zo ver gekomen om zelf een nieuwe naam voor te stellen zodat we met de oprichting van start kunnen gaan. Een van de meest gehoorde voorstellen is GNAL, wat staat voor "GNAL's Not A Lug" als subtiele verwijzing naar GNU ;-) Andere voorstellen zijn te vinden hier in de thread of op het forum. GNAL is niet echt mijn favoriete naam, maar er zijn nog andere namen in de running en er kunnen nog mogelijkheden toegevoegd worden. Kijk daarvoor even op bcol of op het forum.

We zijn nu nog op zoek naar een of meerdere lokalen waar we eens in de maand kunnen samenkomen. Een lopende denkpiste is contact op te nemen met enkele scholen in de buurt en een voorstel te doen waarbij de LUG zorgt voor ondersteuning in ruil voor de maandelijkse beschikbaarheid van een lokaal met internetaansluiting.

Zin om mee te helpen? Tips voor de locatie? Heb je een voorstel voor een betere naam? Voel je vrij om een post op bcol te gooien of hier een berichtje achter te laten. ;-)

Permalink . Peter . 14:44:49 . 234 Words . Free Software . Email . No views

05/22/05

C preprocessor magic

Did you ever run in this situation where you need to #define some string, and use it both as a function name and as a string? As you might have discovered it is not easily possible to do this.

I ran into this problem today, and found out you got to solve it using 2 extra macro's (thanks to this page):

#include <stdio.h>

#define xstr(s) str(s)
#define str(s) #s

#define FOO foobar

void FOO() {
        printf("In %s\n" xstr(FOO));
}

int main() {
        /* This won't work because FOO is no string */
        /* printf("FOO is \"%s\"\n", FOO); */
        printf("FOO is \"%s\"\n", xstr(FOO));
        FOO();
        return 0;
}

which gives the desired result:

FOO is "foobar"
In foobar

and inspecting the output of nm, the function is correctly called "foobar", not "FOO". Jay!

[edit] Once more I just got blown away by what glib offers you. G_STRINGIFY is defined by default when you include glib.h (in glib/gmacros.h more precisely).

Permalink . Ikke . 06:08:15 pm . 176 Words . Coding Corner . . 949 views . Leave a comment

Kleren politie-stripact in beslag genomen

HERENT- Bij de controle van een voertuig trof de politie van Herent zaterdag twee inzittenden aan die volledig gekleed waren in een politie-uniform. De nep-agenten wilden in een caf

Permalink . Peter . 14:45:32 . 106 Words . Life & Fun . Email . No views

05/21/05

GModuleLoader

After Philip was talking about his GQueueThread/ASyncWorker on #gnome-nl, I was tempted to write some Glib-extension too, and so I did.

You might remember the extra exercise in my article on GModules and vtables, about loading all modules in the current directory and use them. Well, I created a generic object to handle this, because it's a functionality needed quite frequently in plugin-based programs.

I called this "GModuleLoader" ;-)

Here's a sample client application, loading 2 modules:

#include <glib.h>
#include <gmodule.h>

#include "g-module-loader.h"
#include "g-module-loader-module.h"

gint main(gint argc, gchar *argv[]) {
        GModuleLoader *l = NULL;
        guint cnt = 0;
        GPtrArray *modules = NULL;

        g_type_init();

        /* Create a new GModuleLoader */
        l = (GModuleLoader *) g_module_loader_new();
        g_assert(l != NULL);

        /* Load all modules in ".libs", with "simple-test" as data.
         * We do not want any error reporting (yet) */
        g_module_loader_load(l, ".libs", "simple-test", NULL);

        g_print("\n\nLooping through all loaded modules, printing the data\n");
        /* Get the list of all modules */
        modules = g_module_loader_get_modules(l);
        if(modules == NULL) {
                g_object_unref(l);
                g_error("No modules in list, aborting");
                return 1;
        }
        
        /* Loop */
        for(cnt = 0; cnt < modules->len; cnt++) {
                GModuleLoaderModule *m = NULL;
                gchar *data = NULL;
                GModule *mod = NULL;

                /* Get the GModuleLoaderModule */
                m = (GModuleLoaderModule *) g_ptr_array_index(modules, cnt);
                /* Normally we don't ever need the real GModule,
                 * because we use a vtable with all tables we need as returned
                 * data from the init function */
                mod = g_module_loader_module_get_module(m);
                if(m == NULL) {
                        g_error("Module in a GModuleLoaderModule should never be null");
                        return 1;
                }
                /* This is the data returned by the module init function.
                 * Most times this will be a vtable/struct */
                data = g_module_loader_module_get_module_data(m);

                g_print("%s:\t%s\n", g_module_name(mod), data);
        }
        g_print("\n");
        
        /* Clean up */
        g_object_unref(l);
        
        return 0;
}

I hope this is understandable :-)

Here's the code for "module1.c", the source for libmodule1.so. "module2.c" is almost the same: s/M1/M2 and s/module1/module2:

#include <glib.h>
#include <gmodule.h>

/* This is a fixed name, the module init function
 * It takes a pointer (given by the client code)
 * and can return some data (most of the time a vtable/struct, we keep it 
 * simple here) */
G_MODULE_EXPORT gpointer module_get_data(gpointer data) {
        gchar *s = NULL;
        
        s = (gchar *) data;
        if(s != NULL) {
                g_print("\n[M1] Module1 loaded with data \"%s\"\n\n", s);
        }

        return g_strdup("[M1] module1data");
}

/* Same thing, fixed name.
 * This function takes a pointer to the data given by module_get_data
 * and is called when this data should be freed */
G_MODULE_EXPORT void module_free_data(gpointer data) {
        gchar *s = NULL;
        
        s = (gchar *) data;
        if(s != NULL) {
                g_print("\n[M1] Freeing module1 data \"%s\"\n\n", s);
                g_free(data);
        }

        return;
}

As you can see I'm using fixed names in the plugins, I don't think there's any other way to do this kind of things. None of these 2 functions are required though.

Here's the output of the test application:

# ./simple-test
** (process:24094): DEBUG: Loading all modules in .libs, suffix is so
** (process:24094): DEBUG: Suffix for .libs/libmodule1.so is so, loading module
** (process:24094): DEBUG: Loading data for .libs/libmodule1.so

[M1] Module1 loaded with data "simple-test"

** (process:24094): DEBUG: Module .libs/libmodule1.so is valid, adding
** (process:24094): DEBUG: Suffix for .libs/libmodule2.so is so, loading module
** (process:24094): DEBUG: Loading data for .libs/libmodule2.so

[M2] Module2 loaded with data "simple-test"

** (process:24094): DEBUG: Module .libs/libmodule2.so is valid, adding


Looping through all loaded modules, printing the data
.libs/libmodule1.so:    [M1] module1data
.libs/libmodule2.so:    [M2] module2data

** (process:24094): DEBUG: Deleting 2 modules
** (process:24094): DEBUG: Freeing data for .libs/libmodule1.so

[M1] Freeing module1 data "[M1] module1data"

** (process:24094): DEBUG: Closing module .libs/libmodule1.so
** (process:24094): DEBUG: Freeing data for .libs/libmodule2.so

[M2] Freeing module2 data "[M2] module2data"

** (process:24094): DEBUG: Closing module .libs/libmodule2.so

It should be fairly easy to follow all steps, find out the module_get_data and module_free_data calls, etc.

It's working fairly well now, I'll try to enhance it some more, test it better and document it, then maybe I'll send some email to the Glib list ;-)

Permalink . Ikke . 07:05:58 pm . 741 Words . Technology, Linux, Coding Corner . . 318 views . Leave a comment
Exams are coming, still some projectwork, todo-list

The exams are coming and I still have a lot of projectwork to do. Today, I should have had my last class this year, but the prof sent an e-mail announcing the lesson was cancelled. So, within one week, at the 30th of may, I'll have my first exam. Five to go, from may the 30th till july the first. Well spred in time, so it should be not that heavy, but it's a very long time where I'll see my girlfriend very less :-( I'll miss her :|

But a remaining problem is the amount of projectwork that still has to be done. Today, I finally finished my work for computer graphics. I still have to do some work for Information Theory (very boring statistics), Speech Processing (wich isn't that easy too) and Information Security (wich can be complete soon). So let's hope it doesn't take that much time. We'll see. I hope I can finish information theory and information security tomorrow.

I also have a kind of todo-list with things I want to do with my gentoo when I take a break, after one exam or just after the whole period:

  • Choose a new Gnome-theme
  • Check how I can make wpa_supplicant requesting a new IP when I move from one wlan to another one. Also following point should be taken into account.
  • Write some script for my VPN-tunneling: it should always be started except when I'm registered at the VTK-hotspot, but when I'm not at the students home or at a university hotspot, I only want to get traffic for news.ugent.be and smtp.ugent.be and maybe some internal UGent-websites go through the tunnel. Just a routing script thus.
  • I want to search for a system to detect when my VPN-connection is down. It should be easy if the tunneling device went down too, but that isn't. The only method I know for now, is sending pings to some server and inspect the packet loss. There has to be a better, quicker and less consuming method. I'm using vpnc, so if you know a sollution, you're very welcome to leave a message ;-)
  • Find out why my x-server crashes when I'm using my two synaptics-things at the same time. I have a touchpad and some little thing between the g and h button to move my cursor. When I'm using the two together, sometimes my X crashes.
  • I want to find out why my USB-mouse doesn't work when X is allready running while I attach the device. Now I always have to restart X. Must be some simple problem.
  • Now I have the weather-applet in my panel, giving me the current weather situation, but I also want a forecast.
  • I want to get the internal smart-card reader working. I have such a thing built into my computer (Dell D810) and want to experiment a little with the new Belgian electronic identity card aka eID. I also want to test some bank-functions like reloading my proton and so on. I just want to play with it :-)
  • Make software suspend and hibernate working. Ubuntu Linux configures this automaticly, see this installation report. That last one is also an interesting one for D810 users who want to install linux on their machine ;-) It seems more people are buying a D810 or D800 so the counter of installation reports increases.
  • Follow the Gentoo on Laptops Guide

I'm sure the above list is far from complete. Suggestions can always be made ;-)

a Belgian eID card
A Belgian eID card

Oh, before I forget. Yesterday, I registered the domain peterdedecker.net to create a personal homepage where I can give some information about myself, put my CV online, maybe move this blog to, place some documents about student representation, learn some webdesign,... Again, suggestions are very welcome. If it's a page about me, I'ld like to have this blog there. Not that I dislike this place, au contraire, but on a personal website, the minimum requirement today is a weblog. I don't know wich engine to use: I like b2evolution and its good spam-protection a lot, but as Ikke allready told, development is like stalled. It seems WordPress and Nucleus are very nice ones. It's also a little bit easier because I don't have to worry about multiple blogs hosting, but I sure want to convert this blog to the new engine (if so). If you have some experiences in moving blogs or using other engines, feel free to comment.

Goodnight!

Permalink . Peter . 01:46:29 . 744 Words . Life & Fun, My Gentoo, Studies, Internet & Blogs . Email . No views

Geplukt uit een interview met Yves Leterme in De Standaard:

Hebt u nooit een coalitiewissel overwogen, bijvoorbeeld door de VLD in te ruilen voor de groenen?

,,Ik zie niet in wat dat zou oplossen. Daarbij, Groen! is een partij met vakantie. Mieke Vogels heeft zelf gezegd dat dit een sabbatjaar is. Ik weet niet of er buiten de politiek veel mensen zijn die een sabbatjaar kunnen nemen en bijna 4.000 euro per maand opstrijken.''

Zulke uithalen zijn we van u niet gewoon.
,,Ik ben scherp omdat Jos Stassen, de fractieleider van Groen!, mij in het Vlaams parlement verweet dat ik mijn verantwoordelijkheid niet opneem. Tijdens mijn gesprek met de voorzitter, Vera Dua, bij de vorming van de Vlaamse regering, was het eerste en het laatste wat ze zei: 'Wij willen geen verantwoordelijkheid nemen.' Nu roepen ze dat Leterme zijn verantwoordelijkheid niet neemt. Dat gaat er bij mij niet in.''

Het volledige interview is hier te vinden. Mogelijks is registratie vereist.

Permalink . Peter . 00:24:38 . 159 Words . Politics . Email . No views

05/19/05

De techsite Anandtech deed op de E3-beurs in Los Angeles een toch wel h

Permalink . Peter . 17:48:14 . 60 Words . Life & Fun . Email . No views

Op straat spreekt een zwerver je aan. 'Ik ben van de Postbank', zegt hij beleefd. 'Onze computer is gecrasht, en ik kom controleren of uw pincode nog wel klopt. Kunt u hem even aan mij vertellen?'

Dom voorbeeld? Op internet vallen mensen massaal voor exact hetzelfde trucje. Zes procent van de ontvangers van zogenaamde phishing-mails klikt ten minste op de link in het bericht, zo blijkt uit cijfers van VeriSign. Daarna zijn zij nog maar

Permalink . Peter . 17:43:25 . 222 Words . Internet & Blogs . Email . No views
GModules and vtables

After the article I posted yesterday on GModules, I just wrote some sample code using a vtable to look up functions, which makes module handling much easier.

I guess we better go straight to the code:

First we need to define some structure that represents our vtable. I did this in a common header file, vtable-common.h:

#ifndef _VTABLE_COMMON_H
#define _VTABLE_COMMON_H

#include <glib.h>

typedef void (* voidvoidfunc) (void);
typedef gint (* intvoidfunc) (void);
typedef void (* voidstringfunc) (gchar *s);
typedef gboolean (* boolpstringfunc) (gchar **ps);
/* This function will demonstrate NULL function pointers */
typedef void (* foofunc) (void);

typedef struct VtableTest {
        voidvoidfunc funcone;
        intvoidfunc functwo;
        voidstringfunc functhree;
        boolpstringfunc funcfour;
        foofunc funcfive;
} VtableTest;

/* Module init function */
typedef VtableTest * (* VtableTestInit) (void);

#endif

First we define typedefs for all function prototypes we want in our vtable, then we define the prototype of a module init function.

This may look a bit strange, let's take a look at the module code (in vtable-module.c) to see what we can do with this:

#include <glib.h>
#include <gmodule.h>

#include "vtable-common.h"

/* Our vtable function implementations */
static void one() {
        g_print("[M] Function 1\n");
}

static gint two() {
        g_print("[M] Function 2\n");
        return 2;
}

static void three(gchar *s) {
        g_print("[M] Function 3: %s\n", s);
}

static gboolean four(gchar **s) {
        g_print("[M] Function 4\n");
        *s = g_strdup("four");
        return TRUE;
}

/* Our function table.
 * As you can see, we put functions in there as if they're normal variables */
static VtableTest table = {
        one,
        two,
        three,
        four,
        /* This module does not implement funcfive */
        NULL
};

/* This is the module init function.
 * It's a "VtableTestInit" function, as defined in vtable-common.h */
G_MODULE_EXPORT VtableTest * vtable_module_init() {
        g_debug("[M] Initializing module");
        /* Of course you can do a lot in this function,
         * we don't need to do anything in this sample */
        /* Return a reference to the function table */
        return &table;
}

The comments in the code should explain every step pretty well.
As you can see we only export one function, vtable_module_init. This function got a fixed name (so we should define this name in our API). It returns a pointer to a vtable of type VtableTest, which includes pointers to all function implementations.

Last but not least is the main code, in vtable-main.c:

#include <glib.h>
#include <gmodule.h>

#include "vtable-common.h"

gint main(gint argc, gchar *argv[]) {
        /* Same handles as yesterday */
        GModule *module = NULL;
        VtableTest *moduletable = NULL;
        gchar *modulepath = NULL, *dir = NULL;
        VtableTestInit moduleinitfunc = NULL;
        /* Function value */
        gint two = 0;
        gboolean fourb = FALSE;
        gchar *fours = NULL;
        
        /* Same stuff as yesterday */
        if(g_module_supported() == FALSE)
                g_error("No module support");

        dir = g_get_current_dir();
        modulepath = g_module_build_path((const gchar *) dir, "vtabletestmodule");
        g_debug("Module path: %s", modulepath);
        module = g_module_open(modulepath, G_MODULE_BIND_LAZY);
        g_free(dir);
        g_free(modulepath);
        if(module == NULL)
                g_error("Unable to load module");

        /* We need to lookup one function, which inits our vtable */
        if(g_module_symbol(module, "vtable_module_init", (gpointer *) &moduleinitfunc) == FALSE) {
                g_error("Unable to get reference to the module init function: %s", g_module_error());
        }

        /* Get a reference to the module function table */
        moduletable = moduleinitfunc();

        /* Run all our functions, providing parameters or fetching return
         * values where necessary */
        if(moduletable->funcone != NULL) {
                g_debug("Running module funcone");
                moduletable->funcone();
        }
        else {
                g_warning("Funcone is NULL");
        }

        if(moduletable->functwo != NULL) {
                g_debug("Running module functwo");
                two = moduletable->functwo();
                g_debug("functwo returned %d", two);
        }
        else {
                g_warning("Functwo is NULL");
        }

        if(moduletable->functhree != NULL) {
                g_debug("Running module functhree");
                moduletable->functhree("vtable-module-test");
        }
        else {
                g_warning("Functhree is NULL");
        }

        if(moduletable->funcfour != NULL) {
                g_debug("Running module funcfour");
                fourb = moduletable->funcfour(&fours);
                g_debug("funcfour returned \"%s\", string value is \"%s\"", fourb == TRUE? "true" : "false", fours);
        }
        else {
                g_warning("Funcfour is NULL");
        }

        if(moduletable->funcfive != NULL) {
                g_debug("Running module funcfive");
                moduletable->funcfive();
        }
        else {
                g_warning("Funcfive is NULL");
        }

        /* As yesterday, close the module */
        if(g_module_close(module) == FALSE) {
                g_error("Unable to close module: %s", g_module_error());
        }

        return 0;
}

These are the steps we take:

  • Load the module (see the previous article for more information on this)
  • Look up one symbol, "vtable_init_module". As mentioned before, this is the fixed name symbol that should be exported from our module.
  • run "vtable_module_init", so we get a reference to the module's vtable
  • Now we can use all functions refered to in the vtable. Make sure you always check for NULL pointers, or your application will crash. Even if your API/documentation states a module author must implement all vtable functions, checks don't hurt :-) Notice we call the functions using moduletable->foofunc(), so the vtable members are really normal function pointers, nothing fancy here.
  • We clean up by closing the module

You can compile everything with this simple Makefile (yes I know it's a bad one):

default: main libvtabletestmodule.so
all: default

main: vtable-main.c vtable-common.h
	gcc -o main -g `pkg-config --cflags --libs glib-2.0 gmodule-2.0` vtable-main.c

libvtabletestmodule.so: vtable-module.c vtable-common.h
	gcc -o libvtabletestmodule.so -g -shared `pkg-config --cflags --libs glib-2.0 gmodule-2.0` vtable-module.c

or execute the commands by hand, of course.

Here's the output:

** (process:16338): DEBUG: Module path: /home/foo/bar/vtable/libvtabletestmodule.so
** (process:16338): DEBUG: [M] Initializing module
** (process:16338): DEBUG: Running module funcone
[M] Function 1
** (process:16338): DEBUG: Running module functwo
[M] Function 2
** (process:16338): DEBUG: functwo returned 2
** (process:16338): DEBUG: Running module functhree
[M] Function 3: vtable-module-test
** (process:16338): DEBUG: Running module funcfour
[M] Function 4
** (process:16338): DEBUG: funcfour returned "true", string value is "four"

** (process:16338): WARNING **: Funcfive is NULL

As you can see, all this is quite logical and easy to write once you figure out how to. The provided functionality can be very useful though.
Notice thanks to glib, the code presented here should compile and run under Linux, Solaris and all other supported platforms (yes, even on Windows using DLL's) without any code change.

A little exercise for the reader: currently we got the module name "vtabletestmodule" hardcoded in vtable-main.c. What to do if we have several VtableTest implementations, e.g. vtabletestmodule1 and vtabletestmodule2? We could loop through all files in ".", find out whether they're a valid module (ie try to load them), if they're a valid module, try to figure out whether it exports "vtable_module_init", if that's the case, get a reference to the module's vtable, and use it. This is eg the way Gaim loads all it's plugins (although the module files aren't stored in "." of course). It's not too difficult to implement this, but the result is quite impressive too, so give it a try :-)

Permalink . Ikke . 01:41:02 pm . 1116 Words . Technology, Linux, Coding Corner . . 388 views . Leave a comment

05/18/05

GModules are fun

Glib's GModules are fun :-) These functions provide a braindead interface to modular (think "plug-in based") programming. I wrote some testing code today (read the API a year ago or so but never played with it), here's a short introduction.

When writing module based applications there are mainly 2 parts: the modules, and the application using them. So we'll have to write these 2 things.

Getting started with the module is the easiest part:

#include <glib.h>
#include <gmodule.h>

G_MODULE_EXPORT void m_helloworld() {
        g_print("Hello modular world!\n");
}

This code is pretty straight-forward. The only "strange" thing is G_MODULE_EXPORT, a platform-independent macro telling the compiler/linker to export the function.

Then comes the "client" application, a little more difficult. Comments inline:

#include <glib.h>
#include <gmodule.h>

/* A prototype of the function pointer we'll use */
/* void function(void) */
typedef void (*HelloWorldFunc) (void);

gint main(gint argc, gchar *argv[]) {
        /* We need:
         * - A handle to our module
         * - A pointer to the function we'll import
         * - Some helper strings */
        GModule *module = NULL;
        HelloWorldFunc hello = NULL;
        gchar *module_path = NULL, *curr = NULL;

        /* Check whether glib is compiled with module support */
        if(g_module_supported() == FALSE) {
                g_error("Modules not supported :(");
                return 1;
        }
        
        /* We need to figure out the path to our module. In our test case, this
         * is ".", so we want the current dir. */
        curr = g_get_current_dir();
        /* Create the path to the module. This function does quite a lot of
         * of things, check the GModule API. */
        module_path = g_module_build_path((const gchar *) curr, "module");
        /* Don't we love debugging? */
        g_debug("Module path: %s", module_path);

        /* Finally we're able to open the module. We want lazy symbol resolving.
         * This means we only want a symbol to be resolved if we request it.
         * Once more, see the API for more information. */
        module = g_module_open(module_path, G_MODULE_BIND_LAZY);

        /* Get rid of those helper strings */
        g_free(module_path);
        g_free(curr);

        /* Check whether the module was loaded successfully */
        if(module == NULL) {
                g_error("Unable to load module");
                return 1;
        }

        /* Load the symbol and assign it to our function pointer. 
         * Check for errors */
        if(g_module_symbol(module, "m_helloworld", (gpointer *) &hello) == FALSE) {
                g_error("Unable to get function reference: %s", g_module_error());
                return 1;
        }

        /* Now we can call our funtion.
         * As you can see, we can call it as if it's a normal function.
         * Don't we love function pointers? */
        hello();

        /* We're nice citizens and close all references when we leave */
        if(g_module_close(module) == FALSE) {
                g_error("Unable to close module: %s", g_module_error());
                return 1;
        }

        return 0;
}

(this looks like a lot of code (well...) but if you strip all comments and debugging stuff/checks, you'll only have 10 lines or so)

Should be quite easy to understand too.

Now it's compile time. Of course, in a real-world situation, we'd use autotools to compile our libraries, we'd have a libtoolized library etc etc etc. Here we'll do it in the quick-and-dirty way:

# gcc -o libmodule.so -shared `pkg-config --libs --cflags glib-2.0 gmodule-2.0` module.c
# gcc -o main `pkg-config --libs --cflags glib-2.0 gmodule-2.0` main.c
# ls
libmodule.so  main  main.c  module.c
# ./main
** (process:26533): DEBUG: Module path: /home/foo/bar/libmodule.so
Hello modular world!

Loading all these symbols by hand is a boring task, so most of the time you'll create some API using vtables to make your life easier. More on this later (got to study now ;-) :|)

Permalink . Ikke . 04:02:11 pm . 600 Words . Technology, Linux, Desktop, Coding Corner . . 989 views . 3 comments
Portage on Windows

Maybe one day we'll be able to get lots of *nix software running under Windows using Gentoo's Portage. Read this.

Permalink . Ikke . 01:34:49 pm . 37 Words . Life . . 272 views . 7 comments
cannot map sys bios

Yesterday, I placed gnome and all dependencies in my packages.keywords (with the ~x86 keyword of course) so I could install gnome 2.10. Worked fine, but when I booted a few hours later, my X-server couldn't start. Normally there should be no correlation between these two facts, but it's the only thing that changed between a working and a non-workig X. This is the error I recieve:
(EE) RADEON(0): Cannot map SYS BIOS

Ikke was here yesterday night, but he couldn't fix it too. He tried with vesa, some modules and xorg.conf from a working ubuntu liveCD, but all without any effect. We also recompiled xorg, but this also wasn't the solution.

If you know any, please let me know! If I find it, I'll sure post the solution here.

You can find a more detailed error log here and my xorg.conf file here. Yesterday I worked graphical till 18 hours (I don't know when I restarted my X then), but it didn't work after I booted up at 0.30 am this morning. The packages I emerged yesterday can be found in my genlop log.

Permalink . Peter . 09:19:55 . 184 Words . My Gentoo . Email . No views

05/17/05

Sysstats.sh

I wrote a little Bash script this morning, which gives a quick overview of your system.
As mentioned in the help text, this can be very usefull for server administrators, eg allowing you to let an overview be sent to your mailbox every 24h using a cronjob.

This is a sample of the current output:

================================================================
* System statistics for:        foo.baar.be
* Generated on:                 Tue May 17 15:00:49 CEST 2005
* Running as:                   root

=================== Uptime =====================================
* Uptime:                       4 days, 04:37:29
* High score:                   151 days, 19:15:18
* Load average:                 0.32 0.24 0.22

=================== Users ======================================
* Active users:                 2
* User information
        USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
        someone pts/0     12:15    2.00s  0.62s  0.05s sshd: ntrangez [priv]
        someone pts/1     13:30    5:19   1.17s  0.05s sshd: ntrangez [priv]

=================== Tasks ======================================
* Number of running tasks:      62
* Running programs:
agetty          events/0        kjournald       lockd           portmap         sh
aio/0           fcron           kseriod         mysqld          ps              sshd
apache2         init            ksoftirqd/0     mysqld_safe     rpc.mountd      su
bash            kblockd/0       kswapd0         nfsd            rpc.statd       syslog-ng
boa             khelper         kthread         pdflush         rpciod/0        uptimed

* CPU load:                     2%
* Process state:
        Running:                1
        Sleeping:               60
        Zombie:                 0
        Stopped:                0

=================== Networking ================================
* Routing table:
        Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
        192.168.2.0     wifi.vtk.ugent. 255.255.255.0   UG    0      0        0 eth0
        192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
        loopback        webvtk.vtk.ugen 255.0.0.0       UG    0      0        0 lo
        default         fire.vtk.ugent. 0.0.0.0         UG    0      0        0 eth0

=================== Hard Disc =================================
* Disk Information:
        Filesystem            Size  Used Avail Use% Mounted on
        /dev/hdc4             4.5G  3.2G  1.1G  75% /
        /dev/hdc5              14G   11G  2.4G  82% /var/www

* Mounts:
        /dev/hdc4 on / type ext3 (rw,noatime)
        none on /proc type proc (rw)
        none on /sys type sysfs (rw)
        none on /dev type ramfs (rw)
        none on /dev/pts type devpts (rw)
        /dev/hdc5 on /var/www type ext3 (rw,noexec,nosuid,nodev,noatime,acl)
        none on /dev/shm type tmpfs (rw)
        nfsd on /proc/fs/nfs type nfsd (rw)

=================== MD5Sum Check ==============================
* Checking MD5 Sums
        /etc/passwd:                            [OK]
        /etc/shadow:                            [OK]
        /etc/group:                             [OK]

===============================================================
* Brought to you by Ikke - http://www.eikke.com

A TODO is included in the script source.

I made the script available here (enscript version here). If you use it, please let me know something :-) Or even better, if you add more support, please send me a patch so everyone can make use of it :-)

It has no special dependencies, next to Bash and some standard utilities like wc, bc, tail, md5sum, awk and grep.
The "record uptime" is only displayed if you got uprecords (/usr/bin/uprecords) installed.
Make sure you check the md5sum part, can be very usefull :-)

Permalink . Ikke . 02:23:23 pm . 412 Words . Technology, Networks, Coding Corner . . 716 views . 6 comments

05/16/05

Anjuta 2

A 2.x alpha release of Anjuta, the GTK/Gnome-oriented IDE, has been released.
I must admit the screenshots and features look nice: integrated debugger (GDB based), glade3 support, GObject class building wizard, member completion,...

Maybe time to give it another test drive. Although I doubt it can beat gVim :-) What do you think, Realnitro?

Permalink . Ikke . 06:19:09 pm . 89 Words . Technology, Linux, Desktop, Coding Corner . . 278 views . 4 comments

05/15/05

ContactFS working


(Thumbnail is link to original image)

Needs no comment I guess :-)

Still some problems left:

  • Files with spaces in the filename (ie almost every file in this case) don't work :-( This shouldn't be too hard to solve though (edit: fixed)
  • Read-only
  • No VCard as output. This can be easily solved though (edit: fixed)
  • The init func creating a Node tree from your contacts is blocking, which is bad
  • The Icon issue. Looks like vcards can contain picture information, so I could just write a vcard-thumbnailer and add it to Nautilus.

Now guess what the problem was... Not my code, but the fact I use autotools to compile the thing. Autotools seems to add some fancy compiler flags which made the module crashy as hell, just using "gcc -Wall $(pkg-config --cflags --libs gnome-vfs-module-2.0 libebook-1.2) -shared -fPIC ContactFS.c -o libContactFS.so" worked fine. Guess I'll have to tweak my Makefile.am somehow. (edit: this wasn't autotools fault, but (of course) mine. I added some flags to Makefile.am I got from an official GnomeVFS module's Makefile.am, looks like those weren't nice)

Huge thanks to "gicmo" for all the help.

Oh, and XNest rocks :-)

[update]

Permalink . Ikke . 06:22:12 pm . 194 Words . Technology, Linux, Desktop, Coding Corner . . 391 views . 2 comments
Networking troubles

Never buy D-Link, it sucks ;-) Configuring is hell and when you backup the configuration and want to restore it after a firmware upgrade, it won't work. Stupid thing. And now suddenly, linux clients can't connect to the wireless D-Link AP. Big trouble, spent few hours to find out. When I tried to connect, the init-script tells me it's connected to the AP, but can't recieve an IP from DHCP. Now I fixed the whole bitch and upgraded security from WEP to WPA.

First of all: despite of the positive comment of Rohan, ifplugd didn't work for me on the wired interface. When I plugged in the network cable, the deamon did nothing. When I manually brought up the interface, ifplugd took it down. Stopping ifplugd and bringing up the interface again worked of course. Rohan, did you have good experiences with ifplugd? Maybe my configuration of ifup/ifdown is wrong, but I don't think so. If you have some ideas, please leave a comment.

As I previously told, I gave wpa_supplicant a try today. There's no much online documentation available for it, but everything is explained very well in the example configuration file. Seems that piece of software has very much capabilities! I configured the AP to use WPA-PSK and modified my wpa_supplicant.conf to that. This is the configuration:
network={
ssid="my_essid"
proto=WPA
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP WEP104 WEP40
psk="my very secure password"
priority=2
}

Don't forget, if you have an Intel Pro WLAN card (IPW 2100 or 2200) to uncomment the line ARGS_eth1="-Dipw" in your /etc/conf.d/wpa_supplicant file or modify it to the driver you use. I also commented everything out in /etc/conf.d/wireless. Don't forget this step, because /etc/init.d/net.eth1 (or your other interface) and /etc/init.d/wpa_supplicant would fight :-) After stopping all network stuff and starting wpa_supplicant, it seemed wpa_supplicant found the wlan but didn't request an IP. After a dhcpcd, everything worked just fine. Of course, first I had to find out some things, like I had to use the group-option and so on, before it worked. Now I just have to find a way to make wpa_supplicant or some other script requesting an IP when I bring up the device or when I start the service.

Conclusion: wpa_supplicant seems to be a very nice piece of software. I think its functionality or the use of it should be integrated in the gnome network configuration tool to make linux more user friendly for mobile users. I don't know why it isn't now. It's not fine for starting users to read the whole sample configuration and all that technical stuff: they just want to fill in some WEP-key or WPA-password (or eventually a username/password or so on).

Permalink . Peter . 16:58:12 . 475 Words . My Gentoo . Email . No views
ContactFS progress

Screenshot shows some progress I made with ContactFS. If I "browse" to contact:/, I get 2 "directories", Personal and Test, which are my 2 Evolution address books. I can "cd" into "Test", "ls" all "files" (contacts) in there, and if I try to "cat" one of them, I get some information on that contact (just plaintext for now, this should become a FOAF or VCard formatted string).

In GnomeVFS' test-shell application the module works fine, but if I try to open contact: in Nautilus, it crashes. Maybe I should send an email to Alex to beg for a little help here ;-)
I'll also need his help on how to set file thumbnails once it works in Nautilus (the actual file is just plain text, but I'd like to have the contact's picture as icon in Nautilus, or if no picture is set, /usr/share/pixmaps/nobody.png).

Moving "files" between "directories" would be nice too, but I don't know whether EDS allows writing, need to figure that out.

Permalink . Ikke . 02:06:56 pm . 166 Words . Technology, Linux, Desktop, Coding Corner . . 255 views . Leave a comment

05/13/05

Gevonden in De Standaard:

God roept Vladimir Poetin, George Bush en Guy Verhofstadt bij zich. Het is tijd voor de Apocalyps. De drie zijn uitverkoren om de mensheid in te lichten. Terug op aarde brengt Poetin de Doema dubbel slecht nieuws: god bestaat en de wereld vergaat. Bush beschouwt voor het Congres de goddelijke existentie als een opsteker. Alleen jammer van die Apocalyps. Verhofstadt ten slotte roept de media bijeen voor tweevoudig heuglijk nieuws: ,,Ik mocht bij God op visite. En ik blijf eerste minister, tot het einde der tijden.''

Illustreert jammergenoeg verbazend goed hoe hij over de BHV-saga dacht, met de uiterst pijlijke en beschamende afloop tot gevolg.

Permalink . Peter . 22:59:01 . 109 Words . Life & Fun, Politics . Email . No views
ContactFS

I got the insane (well, not really ;-)) idea today to write a GnomeVFS module that allows you to browse your Evolution EDS contacts using any GnomeVFS-capable application, like Nautilus, as a Proof Of Concept. This is the first GnomeVFS module I write.

Started working on it, and I got a basic module working. It does not get any information from EDS yet, only contains one "file" named JohnDoe, can be very instable,... but well ;-)

Here's a little screenshot:

Currently the "contact files" only have "test" as content, this should become a VCard string, or maybe a FOAF document.

Other things to do:

  • assign a proper MIME type, so I can take advantage of Evo's "Picture" contact-property (so you see the picture as "icon" of the "file", if this is possible at all).
  • assign a proper handler to the "open" action (e.g. open a Mailto: window)
  • Fetch real information from Evo, of course
  • Make it stable (the current tree contains dead pointers, I need to learn using GNode's) and thread-safe
  • ...

Maybe this won't be really usefull, but someone suggested to have some VFS module for Soylent too, so I'm gaining some experience here :-)

Permalink . Ikke . 09:21:53 pm . 208 Words . Technology, Desktop, Coding Corner . . 240 views . Leave a comment
Regarding Microsoft

Although I'm hardly using any Microsoft software anymore, I still admit they got some great things, like their .Net framework and the corresponding IDE, VS.Net (don't hate me now).
This could be some great proof of concept/research technology too.

On the other hand: what did they smoke?

Permalink . Ikke . 08:37:40 am . 67 Words . Technology . . 260 views . 5 comments

05/12/05

FeedMerge mostly done

JAY!!!! :-D

As I blogged before I've been working on a PlanetPlanet implementation in C. I got a basic RSS2 parser working before, but that code was plain ugly.

Now I refactored all code using GObjects (learnt a lot whilst doing this), and it works :-D
Currently it can parse RSS2 feeds (as many as your memory allows you to ;-)) and combine them into one RSS2 feed. Adding more feed types should be fairly easy.

This is a sample result, and here you can see a FeedValidator validation result. Never mind the encoding issue, that's related to the server settings of the machine I'm hosted on (and I'm no administrator :-().

This is the code I used to generate the feed:

#include <glib.h>
#include <libxml/tree.h>

#include "src/feedmerge-feed.h"
#include "src/feedmerge-merge.h"

gint main(gint argc, gchar *argv[]) {
        FeedMergeFeed *feed1 = NULL, *feed2 = NULL;
        GSList *feeds = NULL;
        xmlDoc *doc = NULL;

        g_type_init();

        feed1 = (FeedMergeFeed *) feedmerge_feed_new();
        feed2 = (FeedMergeFeed *) feedmerge_feed_new();

        feedmerge_feed_fetch_feed(feed1, "http://blog.eikke.com/xmlsrv/rss2.php?blog=1");
        feedmerge_feed_fetch_feed(feed2, "http://blog.eikke.com/xmlsrv/rss2.php?blog=7");

        feedmerge_feed_parse_document(feed1);
        feedmerge_feed_parse_document(feed2);

        /* feedmerge_feed_dump(feed2); */
        feeds = g_slist_append(feeds, feed1);
        feeds = g_slist_append(feeds, feed2);

        /* output type, GSList containing the feeds, feed title, URI and description */
        doc = feedmerge_merge_merge(FEEDMERGE_FEED_TYPE_RSS_200, feeds,
            "Test feed", "http://blog.eikke.com/ikke", "This is a test merged feed");

        g_assert(doc != NULL);

        /* output to stdout */
        xmlSaveFormatFileEnc("-", doc, "UTF-8", 1);

        xmlFreeDoc(doc);

        g_object_unref(feed1);
        g_object_unref(feed2);
        g_slist_free(feeds);
}

Using gob2 again to write my objects, it's just a pleasure to play with :-) Strong type checking is automagically added etc, just great. I'm eager to see some GObject introspection samples.

Of course what I got now can be further abstracted to something like this:

xmlDoc *doc = feedmerge_vamerge("http://a.b/feed1.xml", "file:///tmp/feed2.xml",
    "scp://somehost:/test.xml", "Title", "http://www.eikke.com", "This is a nifty combined feed");

i.e. using varargs.

Thanks to GnomeVFS I don't have to care where the feed comes from, which is just great.

I had to handle some nasty and stupid bugs while coding this (in my own code, of course) and propably I leak memory at several places too, but well... ;-) We got valgrind :-) And thanks to the GCC people for blessing us with the "-Werror" flag, I love that feature.
I won't publish the code yet, but maybe it'll get into Soylent (who knows?) so then it'll be in some CVS/SVN/whatever repository.

Regarding Soylent: we're looking for a new name. Please help us out, I can't wait to start doing some real work.

That's it for now.

Permalink . Ikke . 10:20:37 pm . 524 Words . Technology, Linux, Desktop, Coding Corner . . 292 views . Leave a comment

05/09/05

Delay between jabber.belnet.be and amessage, back in full force

Seems there's some delay when sending messages from a jabber.belnet.be JID to someone at one of the amessage-servers (or in the other direction but not in both). Very annoying. I emailed a belnet-admin, who replied with the message they know about it and are looking for a solution together with the amessage and jabber.org admins. Let's hope they fix it soon. After a previous problem with the server2server connections of amessage, there seems to be some work to do on it.

My gentoo is kind of complete now B-) Today, I connected the harddisk of my previous computer to my laptop with a IDE-to-USB2.0 connector cable I borrowed from our faculty-admin Jeroen. Very fast :-) Now I have everything to work back in full force. Maybe just some little tweaking on gnome or gentoo will be necessary. So I should search how I can make my system detect if there's a cable connected at boot time of if there's a registered WAP in the environment to connect to. This may not take a very long time, so I don't think in terms of dhcp-timeouts. If you use windows and plug out your networkcable, there pops up a message your cable is detached, all without dhcp- or ping delays. If you know a good solution, please be my guest.

My girlfriends final year thesis is finaly complete. She wrote the last things today. Tomorrow she has an appointment with her mentor for some final touches.

Permalink . Peter . 22:57:30 . 247 Words . Life & Fun, My Gentoo, Jabber . Email . No views

05/07/05

Why didn't I hear about this any earlier, and why isn't it integrated into Gaim?

Oh, for Soylent, I started working on blog feed reading. Currently I got some code that can read an XML feed from any GnomeVFS source, and create a libxml2 xmlDoc out of it. Although maybe I should use SAX to merge different feeds...
Using an XSLT sheet to merge feeds would be really cool and clean, but I think it's the hardest way too ;-)
I tried to document the code well again, it's available here. Can be a nice introduction to GnomeVFS coding :-) (this was my first code using it too ;-))

TODO: add a check to see whether what we pull in is an RSS feed, before loading the whole document, to save bandwidth and memory.

Permalink . Ikke . 07:08:46 pm . 185 Words . Technology, Linux, Desktop, Coding Corner . . 567 views . 43 comments

05/06/05

I started looking into evolution-data-server today, to look what we could use in Project Soylent (actually, I shouldn't blog on it because we don't want any noise on it yet :-)). The result is some code that can dump all your address books, or only dump some of the contacts using a filter string.

Because libebook is very poor documented (unfortunately, even the API docs aren't complete) I tried to document the code as good as possible. Please review it, let me know when some things are not well documented, or I just make dumb mistakes in the code :-D
The last version I made is here.

Compile it using
gcc -o evo-addressbooks-test2 `pkg-config --cflags --libs libbonobo-2.0 libebook-1.2` evo-addressbooks-test2.c
Dump your address books using
./evo-addressbook-test2
or use a filter string as first argument. Beware: you should Bash-escape the argument!!!
A sample of this:
./evo-addressbooks-test2 "(contains \"full_name\" \"John Doe\")"
will list some properties of the entry which has "John Doe" as it's full name.

I hope I'll be able to hack on this some more, and also hope we'll get a good view of what Soylent should become soon :-)
It'll be a great oportunity to learn some more aspects of Gnome coding, like GTK/Glade, Bonobo (|-|) and others.

Permalink . Ikke . 11:11:56 pm . 252 Words . Linux, Desktop, Coding Corner . . 282 views . 1 comment
New blog engine and Soylent

As I mentioned before, I'd like to start using another blogging engine as soon as possible. Plog looked nice, but after giving it a test drive I got into some little annoying problems.
Now the b2evolution guys seem to prepare a maintainance version, so development hasn't completely stalled.

Currently, the blogs (mine and the others I host) run fine I think, and migrating would be quite a lot of work (existing users and posts, not to mention changes of URI's towards aggregators), so I guess I'll wait some longer, unless someone knows a very good engine I could start using, actively maintained.
The main "issue" I got is the fact I host multiple blogs. Most engines don't support this...

Project Soylent is getting started, jay :-) Just read something on using Evolution's libebook API and FOAF, this will be some fun project to work on B-)

Oh, and please everyone vote for davyvandenbremt.be on may1reboot.com.

Permalink . Ikke . 04:06:11 pm . 193 Words . Technology, Desktop . . 533 views . 4 comments
Process sendmail spool by postfix

This week, we had big troubles on our mailserver at VTK. The big ugly devil was sendmail. He stopped delivering mails to local users. After trying to fix it, wich didn't make it work, Lennert and Ikke installed postfix on the machine. Everything is working now, but there's one big issue: sendmail still had 240 messages in /var/spool/mqueue, wich he had to deliver but never did. Now, I want postfix to deliver these. I already did some research, but all I found was "put the files in /var/spool/mqueue.in" wich is a Q for postfix on some configurations. We don't have such a configuration. We have /var/spool/postfix/incoming (and so on) with lots of folders (1,2,3...,A,B,...) in it with the same kind of subfolders in. I don't know where to put those files in now.

If someone nows how to make postfix handle these messages, or how to make sendmail just send these messages to some smtp-server (but not handle the incoming ones), please let me know. Thanks.

Permalink . Peter . 12:02:57 . 174 Words . VTK . Email . No views
More errors

While emerging media-video/ffmpeg-0.4.9_p20050226-r3, needed for Amarok wich is highly promoted by Ikke, I recieved following errors:
i686-pc-linux-gnu-gcc -O3 -Wall -Wno-switch -O2 -march=pentium-m -mtune=pentium- m -pipe -fomit-frame-pointer -ftracer -mfpmath=sse,387 -msse2 -mmmx -fPIC -DHAVE _AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -c -o i386/idct_mmx.o i386/idct_mmx.c
i386/dsputil_mmx.c: In function `dsputil_init_mmx':
i386/dsputil_mmx.c:3076: warning: assignment from incompatible pointer type
i386/dsputil_mmx.c:3077: warning: assignment from incompatible pointer type
i386/dsputil_mmx_avg.h: In function `put_pixels4_l2_3dnow':
i386/dsputil_mmx_avg.h:58: error: can't find a register in class `BREG' while re loading `asm'
i686-pc-linux-gnu-gcc -O3 -Wall -Wno-switch -O2 -march=pentium-m -mtune=pentium- m -pipe -fomit-frame-pointer -ftracer -mfpmath=sse,387 -msse2 -mmmx -fPIC -DHAVE _AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -c -o i386/motion_est_mmx.o i386/motion_est_mmx.c
i386/dsputil_mmx.c: At top level:
i386/dsputil_mmx_rnd.h:59: warning: 'put_no_rnd_pixels8_l2_mmx' defined but not used
i386/dsputil_mmx_rnd.h:155: warning: 'put_no_rnd_pixels16_l2_mmx' defined but no t used
i386/dsputil_mmx_rnd.h:300: warning: 'avg_no_rnd_pixels4_mmx' defined but not us ed
i386/dsputil_mmx_rnd.h:59: warning: 'put_pixels8_l2_mmx' defined but not used
i386/dsputil_mmx_rnd.h:155: warning: 'put_pixels16_l2_mmx' defined but not used
make[1]: *** [i386/dsputil_mmx.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory `/var/tmp/portage/ffmpeg-0.4.9_p20050226-r3/work/ffmp eg-0.4.9-p20050226-shared/libavcodec'
make: *** [lib] Error 2

Very less information...

Let's find out!

There are also some more troubles with my machine: I have very regularly X-crashes. In the output, I see much errors of Synaptics who're not fatal, but sometimes, one is fatal. I'll post more information here soon.

I added my make.conf file to this post. You can find it here.

Permalink . Peter . 11:53:09 . 336 Words . My Gentoo . Email . No views
Will be continued

Yesterday, Havoc Pennington announced that the Fedora Stateless project will be continued. So, there'll be a RedHat team working on it, as he previously told. This is very good news because now the maintainability of our project is assured.

Permalink . Peter . 11:45:41 . 39 Words . General . Email . No views

05/05/05

Problems fixed

Ikke has done some great work fixing my installation. As we tried different things, including genkernel, it didn't work. Now he has configured the kernel manually, did some research on it, and now it works. My system boots! I don't know what the problem was, it sure had something to deal with my SATA. Ikke, if you remember the solution, please post it here as Christophe was interested in running Linux on his system.

Now everything seems to work fine, except the error I recieve when compiling gnome-extra/evolution-webcal-2.0.1:
checking for gtk+-2.0 >= 2.4 libgnomeui-2.0 libecal-1.0 >= 0.0.91 libsoup-2.2 >= 2.1.8... Package libecal-1.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libecal-1.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libecal-1.0' found

configure: error: Library requirements (gtk+-2.0 >= 2.4 libgnomeui-2.0 libecal-1.0 >= 0.0.91 libsoup-2.2 >= 2.1.8) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.

The package libecal doesn't exist, so I'll take a look at it in gentoo bugs and forums. If you know the solution, please let me know.

Permalink . Peter . 14:57:21 . 182 Words . My Gentoo . Email . No views

05/04/05


Do what others do

Maybe I should just use this as my hackergotchi, I'd scare people by using a "real" one ;-)
(PNG version now :-))

Permalink . Ikke . 08:35:12 am . 52 Words . Life . . 283 views . 4 comments
System doesn't boot

Installing the Gentoo Base System

Humm, so not everything in my previous post did work as good as I told you. First of all, emerge, ctrl+c, modify cflags,... did not work the first time. When I stopped the proces and added gcc in my packages.keywords, the bootstrap proces wanted to continu installing gcc-3.3.5, even while "emerge -pv gcc" told me gcc-3.4 should be installed. Ikke came for help and looked into the bootstrap-script, deleted a process-file so the whole bootstrap process restarted instead of recovering. Everything went fine then.

So, if you want to install gentoo with gcc-3.4, make sure gcc is in your package.keywords file before you run the bootstrap-script.

Progression from Stage2 to Stage3 went fine.

Configuring the Kernel

This part is fatal for now. When Ikke and I manually configured the kernel, he won't boot. In the liveCD-environment, my hard disk is /dev/sda, but when we put that in grub.conf, it doesn't work. My / partition isn't found while booting. When we use genkernel, the system tells me he found the Toshiba controller, but booting the kernel (genkernel or the other one) keeps resulting in a kernel panic pointing me at the fact /dev/sda2 or /dev/hda2 doesn't exist. Seems there are some problems with the combination of IDE and SATA support. Disabling IDE support in the kernel didn't help. Searching google and forums.gentoo.org also didn't result in a solution. Ikke can't accept he can't install gentoo on my machine, so this night he'll look up everything he can find about my type of machine and running linux on it. Let's hope he finds some solution. If you know anything to help me further, please be my guest.

Permalink . Peter . 02:12:17 . 297 Words . My Gentoo . Email . No views

05/03/05

Stateless Linux -> Debian

Please read this message and following. Seems someone created an sf.net-project to develop Stateless Linux under Debian.

Now, the reactions on that post are just flamewars at Debian, but it really seems to be a nice project to follow up. If you're interested in contributing and development, go ahead ;-)

Permalink . Peter . 16:38:13 . 68 Words . General . Email . No views
Bootstrapping the system

So yesterday, I configured my network. Because I had to go to a little birthday party, I couldn't work further on it.

Preparing the disks

I have a 80GB harddisk, so this is my partition sheme:
/dev/sda1 64MB /boot
/dev/sda2 512MB /
/dev/sda3 the rest -> LVM

So I made one LVM-cluster and made these logical partitions in it: /var /tmp /home swap /usr and /opt, each one 1GB big (swap is 512MB). All filesystems are XFS, /boot is ext3.

Installing the Gentoo Installation Files

I've chosen to download the latest stage1-tarball and portage-snapshot from the (Belnet-mirror. CHOST and CFLAGS were a bit difficult. Because of gcc3.3 doesn't recognize "march=pentium-m", wich my processor is, I had to bootstrap with "pentium4" until gcc. After gcc3.4 was installed (wich is in my package.keywords, ~x86), I could adapt the new pentium-m setting. Normally, I should use "-O3" for faster operation, but Ikke told me that's useless because the filesize makes it run slower so there's no netto-effect.

Installing the Gentoo Base System

My profile is the default one, I'll post my use-flags later, when my installation is complete and I can just copy-past ;-) I didn't touch locales, it also isn't in my use-flags, so now I'm bootstrapping and taking a nap :-D

Permalink . Peter . 10:29:36 . 213 Words . My Gentoo . Email . No views

05/02/05

Karel, why oh why did you this? People seem not to understand I'm not intending to run MSN7 as my default Messenger at all, just trying to solve some little annoyance? Do they actually read what I wrote?

Just tried amsn-cvs. It crashed when I tried to start a normal conversation with someone, then worked fine. I did not try videochat support yet though, none of my contacts owning a webcam came online untill now.

Permalink . Ikke . 05:45:23 pm . 100 Words . Technology, Linux, Networks, Desktop . . 313 views . 3 comments
Dell arrived -> prepared network for stage1 installation

My new Dell notebook is finally arrived. So now, I am installing Gentoo Linux from stage1.

Booting the minimal liveCD went fine. Even the art in this LiveCD is very nice! I booted "gentoo -nodhcp" while dhcp should only take time because I have no wired connection and the wlan needs encryption. After booting, my wireless card didn't work. In dmesg I found the messages "ipw-2.2-boot.fw load failed: Reason: -2", "Unable to load firmware: 0xFFFFFFFE" and some other messages indicating that starting my wlan card failed. After an "rmmod ipw2200" and "modprobe ipw2200", there were no errors in dmesg so I could start using iwconfig to prepare my wireless connection.

I live at a student home from Ghent University so I need VPN to access the internet. Fortunately, my girlfriend has some windows-pc standing here and doing nothing, so I configured VPN on that machine and shared the internet connection, so I can start a stage1 install.

I'll post all my experiences here, as asked by Christoph.

Permalink . Peter . 17:13:32 . 168 Words . My Gentoo . Email . No views

05/01/05

MSN7 under Linux


(thumbnail is link to full size screenshot)

I want MSN Video Chat (receipt) working. Under Linux. As soon as possible. So I tried getting MSN Messenger working under Wine.

As you can see, it works. But only a little. This is the bloated version 7 of the official client, and Wine seems to be unable to handle it properly. It's using non-standard windows (actually, it are clipped standard windows) etc. I did not try the webcam feature either.

Has anyone got an installer for MSN Messenger 6.x for Windows 98/Me? I'd like to try that one too, but only "beta" version 7 is available on the official website. A commercial software vendor only offering beta versions of it's software to the users... :roll:

Maybe I should just run a stripped Windows session under that great version 5 of VMWare Workstation as RubenV just suggested, and take the easy way ;-) Or try aMsn which should get videochat support soon (it's already in CVS I heard, Scapor?), but I hate that Tcl/Tk interface :-(

Permalink . Ikke . 10:55:44 pm . 199 Words . Technology, Linux, Networks, Desktop . . 931 views . 14 comments
jabber.belnet.be seems to work

As I mentoined some time ago, there were problems with the server-to-server connection between jabber.belnet.be and amessage.be. This week, I added Ward to my roster. Ward is at the Belnet-server and everything went fine, so I thought the problems are finally fixed. The message on jabber.belnet.be is also removed from the site. So now, I think I'll move my whole roster to jabber.belnet.be instead of amessage.be.

Permalink . Peter . 15:01:37 . 74 Words . Jabber . Email . No views
Trefdag Jong N-VA

Bij deze mijn eerste nederlandstalige post op deze blog. Aangezien het om materie gaat op lokaal vlak en mijn kennis over politieke termen in het Engels niet al te best is, lijkt het mij opportuun om een geen Engels te gebruiken.

Ik begin meer en meer gebeten te worden door politiek. Mijn post deze week, over mijn bezoek met de Oost-Vlaamse N-VA jongeren aan het Vlaams Parlement, was al een begin, doch vandaag is het verdergegaan met mijn deelname aan de trefdag van Ronduit N-VA, tot voor kort de naam van de N-VA jongeren.

Het logo van Ronduit N-VA!
Het (oude) logo van Ronduit N-VA!

Het was een uiterst boeiende dag, beginnende met het gesprek met Brigitte Grouwels (CD&V), staatssecretaris in de regering van het Brussels Hoofdstedelijk Gewest. Het was een uiterst boeiend gesprek, over de sociale uitdagingen van Brussel met de grote mix aan culturen, en de typische institutionele problemen met de 19 afzonderlijke gemeenten in het gewest. Ik was aangenaam verrast met haar boodschap dat het Nederlands een veel belangrijker rol begint in te nemen in onze hoofdstad. Onze Vlaamse hoofdstad en haar inwoners zijn in de loop der jaren immers danig verfranst, dat je bijzonder weinig kans hebt op straat iemand in het Nederlands te kunnen aanspreken aldaar. Vooral door de sterke politiek in Vlaanderen, met zaken zoals de zorgverzekering bijvoorbeeld, begint men te beseffen dat men het Nederlands best niet links laat liggen. Zowieso mag je je kansen op een job in Brussel of Vlaanderen volledig vergeten als je het Nederlands (evt naast het Frans) niet machtig bent. Dat heeft ouders, ook van franstalige gezinnen, ertoe aangezet hun kinderen in te schrijven in de scholen van de Vlaamse Gemeenschap, alwaar het onderwijs van hoge kwaliteit is en de kinderen meteen ondergedompeld worden in het Nederlands. Uiteraard stelt dit ook grote problemen, tekort aan plaatsen, en is het bijzonder moeilijk les te geven aan een groep waarvan 75% het Nederlands niet als moedertaal heeft. Men heeft de boodschap blijkbaar ook begrepen bij de franstalige gemeenschap, alwaar men in Brussel (en de Vlaamse rand) scholen opricht volgens het principe van onderdompelonderwijs: bepaalde lessen worden er in het Nederlands gegeven, zodat de kinderen er als tweetaligen afzwaaien. Dit kan hen in hun latere loopbaan alleen maar ten goede komen!

Wat zo mogelijks nog boeiender was, was het daaropvolgende debat tussen Mark Demesmaeker (N-VA) en Christian Van Eycken (UF). Christian is eigenlijk van oorsprong een Vlaming, met een Vlaamse naam, doch in de loop der tijden is de familie verfranst. Hij is de enige franstalige verkozen op de kartellijst UF (PS + MR + CDh) in het Vlaams Parlement. Op zich getuigt het al van veel moed om zich zo letterlijk in het hol van de leeuw te wagen en zelfs te vragen om met Mark in debat te gaan, iets waar ik bijzonder veel respect voor heb. Beide sprekers bleven het hele debat vrij rustig, zonder persoonlijke aanvallen ed. Het was een uiterst boeiend en geanimeerd debat. Op bepaalde vlakken kwamen beide standpunten zelfs goed overeen, zoals rond de actie S.O.S. MUG bijvoorbeeld, doch op andere vlakken stonden beiden zoals verwacht lijnrecht tegenover elkaar, zoals in het dossier Brussel-Halle-Vilvoorde. Op dit laatste punt kon Christian zich niet echt verdedigen, wat natuurlijk te verwacht voor deze terechte Vlaamse eis. Zijn argumentatie kwam eigenlijk neer op het feit dat hij de situatie in BHV als het laatste stukje federalisme ziet en dat wil bewaren, terwijl dit lijnrecht indruist tegen de territoriale integriteit van Vlaanderen zoals vastgelegd samen met de taalgrens.

banner sosmug
Teken de petitie en lees de meldingen aub.

Naast de debatten en gesprekken was er ook nog een laatste deeltje voorzien. Aangezien de naam "Ronduit" niet altijd de lading dekt en deze naam ook constant verklaard moet worden bij persmededelingen ed, heeft men ervoor gekozen om een nieuwe naam te gebruiken, namelijk Jong N-VA. Heel eenvoudig dus. Het nieuwe logo mag er trouwens ook wezen. Van zodra het ergens online zet, zal ik deze post aanpassen en het hieronder plaatsen.

Wat me echter enorm aangegrepen heeft tijdens het slot, was de speech van Mark. Tot voor kort kende ik zo goed als niets van hem, en had hij voor mij nog wat te veel rondom zich van bij zijn vorige job bij VTM, een zender die voor mij van een bijzonder laag niveau is. Mark heeft me echter verrast: zijn dossiers zien er zeer degelijk uit, maar tijdens zijn speech heeft hij verteld over zijn politieke bezigheden tijdens zijn jeugd, bij de VUJO, de VolksUnie Jongeren, de voorloper van Jong N-VA. Zijn gedrevenheid in die zaken, de manier waarop hij met heimwee naar die tijd terugkeek en zijn oproep om met Jong N-VA die wind opnieuw aan te wakkeren, hebben hem enorm in mijn achting doen stijgen. Ik kreeg de kriebels om er zelf ook in te vliegen en mee te bouwen aan een goede jongerenwerking. Tot nu toe heb ik dergelijke vragen steeds afgewezen wegens tijdsgebrek door mijn bezigheden in VTK en de studentenvertegenwoordiging, doch indien mijn agenda het volgend jaar zou toelaten, zal ik zeker hier en daar een steentje proberen bijdragen. Mijn schatje zal 't niet graag horen, maar de politieke kriebel laat zich alsmaar harder voelen. Nu ja, we zullen wel zien wat ervan komt. Voor volgend jaar liggen mijn prioriteiten alvast op mijn thesis, de GSR (ik ga mijn kans wagen om ondervoorzitter te worden) en mijn vriendin die zich wat te veel verwaarloosd voelt de laatste tijd. Nu ja, ze voelt zich eigenlijk altijd verwaarloosd vanaf ik weg ben ;-)

Geen 200 jaar Belgi			</div>
         <div class= Permalink . Peter . 03:09:39 . 919 Words . Politics, N-VA . Email . No views

04/30/05

I just installed Kolab on my desktop machine, just to play around with it, and I must say I'm impressed. This is the most integrated groupware-like suite I've ever worked with.
Based on existing open source solutions like

  • Postfix
  • Cyrus Sasl
  • SpamAssassin
  • Amavis
  • Apache
  • Cyrus IMAP
  • Mysql
  • OpenLdap
  • Sieve
  • PHP

and others, you get a completely integrated mailserver, userbase, calendars,... with a nice webinterface for administration purposes.

I installed Horde as user frontend, which took some time, but now it's working almost well. Using Horde the user gets a well-integrated web interface to his email, calendars, address books, Sieve mail filters, notes and tasks etc.

This is definately something we should look into at VTK. When using Horde as user interface, we could even allow our users to access their Eduserv email from the same interface etc, which would be really nice. The implementation could easily be done in a multiple steps: first get all email stuff working, then addressbooks, then calendars,...
I wonder whether it could be possible to extend the "standard" Kolab "User" LDAP object so it can also be used for Samba3 LDAP authentication? If that'd be possible, this is definately the application to use on our new server :-)

Screenshots might follow later ;-)

Permalink . Ikke . 12:04:32 pm . 217 Words . Technology, Linux, Networks . . 373 views . 3 comments
Just missed my new Dell computer, Brussels week

Today, I was in my bed when the (fixed) phone rang. After a few time, I took up, but the line was allready dropped. A few hours later, when I checked my mailbox, there was a paper from UPS telling me they tried to deliver a package from Dell, but I wasn't home. They'll come back monday. Damn! I'm sure, with my order, I asked to call me on my cellular before they should deliver. So I'll have to wait a few days more...

I also was a little bit bad guy for my girlfriend: I wasn't with her much time this week. Shame on me ;-) On monday I had some work at VTK. Tuesday there was the election of the vice-rector (vice-president) of our university. The speeches of them took most of the time, there was only 1 round and decision was made. The candidate of our faculty didn't make it. In the evening, I had to go to Brussels for a meeting with VVS, the Board of Flemish Students to discuss about the (stock taking of the) Bologna process.

Wednesday, in the morning I helped a little bit for the preparations of our triatlon at VTK. In the afternoon, I went to Brussels again for a visit of the Flemish Parliament. Very nice afternoon! The Parliament is a very modern and beautiful building, with lots of art in it. Also very nice people, but a very long, boring speech of Filip Dewinter (about BHV for people following the actual news) in the general meeting, always the same. The offices of Groen! (you can call them extremely left), N-VA and a part of Vlaams Belang (extremely right) are on the same floor, in the same gallery. Nice situation :-) I also heard a lot of funny inside information there. Yeah, it sure was a very nice afternoon. In the evening, there was the weekly badminton followed by fries :-)

Thursday I had lunchmeeting with GSR, the Board of Students at Ghent University about the meeting of that evening (in Brussels once more) with VVS. After a few drinks at a sponsor-event of a student organisation, we left for the long VVS-meeting.

So it was kind of a meeting week and also kind of a Brussels-week. And if thats not enough, I'm going to Brussels again tomorrow.

My lovely girlfriend in doing fine with her final year thesis. It should be finished very soon, so she can start studying for her exams. Wish her good luck please. Wednesday, we have a little party for her birthday, so it'll be a nice week again, and with the days of at thursday and friday, also a very calm one :-)

Oh, before I forget, I also missed two practica of Multimedia Networks this week. The shedule is in an excel-file online at our e-learning application Minerva, but because it's an external file, you cant see when it's changed. You have to re-download en review the file manually. Stupid system. The system for making a reservation for a time slot is also at Minerva, but you can't see when they created new reservation opportunities. Let's hope that two missed ones doesn't have much implications on the results for my exams...

Permalink . Peter . 00:26:01 . 533 Words . Life & Fun, Studies . Email . No views

04/28/05

Evince, new vinyl and more

Evince
(click on the image to enlarge it)

I got Evince working :-) I had some troubles with it (wrong library naming: shell/Makefile.am adds -lt1lib when compiled with t1lib support, where t1lib only installs libt1.so on my system (default Gentoo t1lib build), resulting in a linker error. A symlink could have solved this, but that's an ugly solution, so now I patch shell/Makefile.am in the ebuild. I could even use sed, actually, because it's a one-line patch) but now everything works fine, including the popplet, dvi en djvu backend.

PDF font anti-aliasing works fine, but I couldn't get previewing (i.e. the feature enabling you to put a PDF file on your desktop, displaying not the icon assigned to PDF files, but the content of the file, as if it were an image or a plain text file) working yet :-( Guess I'll have to dig around some more, or is this a -cvs only feature? I got evince-thumbnailer installed, and it seems to be working fine though...

I bought the vinyl of Shameboy's first release, "Re-choque". The track has been hyped on Studio Brussel, a Flemish radio station, for a long time now. Shameboy is a project around Jimmy Dewit aka "DJ Bobby Ewing" (of Dicobar Galaxy fame), Luuk Cox (Budcemi's drummer) and a mysterious guy called "Mr. Morceau". Some phat beats blended with 80's electro synths and some great producers provide all ingredients for a great dance track. Guess that's the reason why this track is #1 on the Belgian dance charts for several weeks already :-)


If you want to hear some part of the track, check this.

I'm thinking of replacing my current b2evolution install with some other engine. b2evolution's development seems to have stalled completely, and some other products look very appealing. Some of the features I certainly need:

  • Multiple blogs hosted by one engine
  • Multi-user capabilities, with access controls (who can write to which blog?)
  • Themes (and preferably lots of themes available on the net ;-))

The main issue I'm facing is converting all current posts we got here to the new system...
If someone got a good suggestion, let me know :-)

Last but not least: we're making progress with the FedoraStateless@University project :-D Finally... :oops:

Permalink . Ikke . 11:20:27 am . 443 Words . Life, Technology, Linux, Desktop . . 334 views . 4 comments
Update

Peter: The stateless-snapshooter snapshot creation went fine normally. We left the machine alone while it was creating the snapshot, but it was at 5% when we left, so I guess everything was going fine.

It looks like the stateless RPM's have some missing dependency on some obscure Python package that's installed when you yum install gnome, but not when you install some basic headless server.

Let's hope everything works out fine now :-)

Permalink . Ikke . 09:49:29 am . 97 Words . Project status and progress . . No views
Stateless-tools working, prototype system lost

Tuesday, Ward en I took a look at our ftwlinux server. When we wanted to login, we didn't recieve anything on the screen, so we gave the system a hard reboot.

After rebooting, we installed the necessary tools for a graphical work environment wich is necessary for stateless-tools to work. This went fine, running stateless-snapshooter --list gave no problems, in contradiction to our previous attempts. However, when I tried to create the snapshot of our prototype system, it went wrong. Maybe it was the wrong location I was working in, or maybe there's some information lost with rebooting (mounted filesystems or so). I didn't had time to find out, but we'll sure do. Yesterday, I recieved an sms from Ikke telling me there s great progress in the project, so maybe he found out. You'll sure hear about it soon.

Permalink . Peter . 09:00:09 . 140 Words . General . Email . No views

04/26/05

Software highlights of the day

Now VMWare Workstation 5 for Linux is being packaged (and will be released soon, if I'm not mistaken) Christian "ChipX86" Hammond (who's working for the VMWare Corporation, must be an interesting job) released some screenshots.
As I blogged before this release is based on GTK+2, so it integrates nicely into your Gnome desktop (although the software seems not to be 100% HIG compliant?).

On the "free" side of FOSS desktop applications, Evince seems to make great progress. Now the "all-in-one-viewer" proposition has been shot on desktop-devel-list@gnome, all work seems to get into document viewing (duh, nothing else to do ;-)).

This is what's possible in evince-cvs for now:

I guess I should get Evince on my system, maybe not -cvs but at least some released version. This should need 2 ebuilds: one for Poppler, and one for Evince. Maybe they're in b.g.o already, who knows?

Oh, and I forgot: Hi to Planet Gnome-NL! I'll create a hackergotchi ASAP, but taking a decent picture of me is a hell of a job ;-)

Permalink . Ikke . 11:35:24 am . 288 Words . Technology, Desktop . . 266 views . 5 comments

04/24/05

So, finally I added a "screenshots" album to my gallery. Currently only some desktop screenshots have been imported, more to follow soon (I hope).

This is my current one:

People in #gnome-nl@GimpNet seem to be very nice, jay :)

Permalink . Ikke . 08:35:17 pm . 54 Words . Technology . . 244 views . 3 comments
News about me

Final Year Thesis and Internship

I've made my decision about my final year thesis. Next year, I hope to do something about wireless network access on trains. There'll be a WLAN on the train, with a base station on the train, and the train itself will communicate with antennas next to the railway. Because of the high speed of the train, there will be a handover to the next antenna every two seconds. In my thesis, I'll have to study and test those handovers. This is my first choice, I also had to give a second one. That one is about using the eID (elektronic identity card) for authentication in MHP (Multimedia Home Platform), the digitaly television platform that will be used soon in Flanders. You can find more information about both subjects on the INTEC website. The first one is at the research group IBCN (INTEC Broadband Communication Networks) while the second one is at WICA wich stands for Wireless and Cable. Both topics are part of the research in the newly constructed IBBT, Interdisciplinary institute for BroadBand Technology, founded by the Flemish Government.

The IBBT logo

I also had a meeting with a few people of the IBCN group for an internship related to that thesis. He'll try to arrange one at Siemens or at Televic. If he can't get an internship there, I'll accept the proposal of Barco to study the development of a L2/L3 multicast gigabit switch.

The Intec logo

VTK

It was kind of an active week for VTK. At wednesday, we had ParkingPoP, a rock contest for local groups, wich was a big success. At wednesday and thursday, there were elections for the new board of VTK. Our followers are Bram and Pierre and I'm sure they'll do a great job. We had a meeting where we explained what we did this year and our vision about the next year. It seems they want to do great things, let's hope they've enough time for it. Before that meeting, I also had a lunch-meeting in a nice restaurant with the head of The Computer Store, the shop with the most ugly site in Ghent where we had a deal to sell computers. He claims our deal with Dell also has some disadvantages where he can be better, building on the very good results of the previous years. I've discussed it at the meeting with our followers and it seems they see more disadvantages than andvantages with them as partner, next to Dell.

Ah, before I forget, Lennert (who had a blog here before) is elected for treasurer with 16 votes more (on a total of 564) than his opponents. Congratulations and lots of succes!

Student representation

I didn't sign in for the VTK elections, because I've some other things in mind. I decided to run for the election of vice-president of the Ghent Student Council. The election is in oktober, but it isn't possible to combine this with another year in the VTK praesidium. If I don't make it, no problem, I'll be busy enough with my other work for the student representation, my final year thesis and of course my girlfriend who feels a little bit neglected sometimes ;-)

Also in student representation it was quite busy this week. Monday there was the facultairy computer commission with a very interesting point on the shedule: division of some money for new infrastructure. We also talked about the use of our pc-rooms and the troubles with the shortage of capacity. About that last one, we'll prepare a text from the student representation with a call for more available computers. I'll start to prepare that one after this post is finished ;-)

At the meeting with the student representation of our faculty of engineering, we decided to use a new name for our organisation. Now, it was "didactische cel", a term where nobody exactly knows the meaning of, especialy new students don't know who we are. We've chosen the name "FRiS", which stands for "faculty council of engineering students" or "Facultaire Raad voor IngenieursStudenten" in Dutch. It's a new name, invented by our responsible Peter Huyghebaert, to be better known by new students. This week, we also had the monthly faculty council and the deliberation before with the head of our faculty, who was very interested in the situation of the new students of the first year.

image of Peter Huygebaert
Peter Huygebaert

Friday I also went to the general meeting of vzw StudentENmobiliteit (student mobility) for the first time. From now on, I represent the students of our university there, together with two other students. It was a very interesting meeting. I also asked for more posibilities to pump up the tires of our bicycles in Ghent, especially at the campus in Zwijnaarde. The responsibles of our university agreed, so soon it'll be OK there in Zwijnaarde.

Next week, we'll have the election of the vice-rector of our university. There are two candidates: Luc Moens, from the faculty of sciences, and Paul Kiekens, from our faculty. Again, it'll be a very interesting time :-)

Politics

This week, I recieved an invitation to visit the Flemish Parliament and the new headquarter of the Flemish political party N-VA. Seems also very interesting, so wednesday I'll do the trip to Brussels.

picture of the general assembly of the Flemish Parliament
The Flemish Parliament

My lovely girlfriend...

is so curious now :-D Because her cellular is malfunctioning, I bought her a new one. At the 6th of May, it's her birthday. So now, I've put the box in a cabinet and she doesn't may look inside of it. It's so tempting, it's so close, but I trust her not to look in it :-D She doesn't know wich one allready.

Before I forget

Don't create a banana republic here please ;-)

no banana union banner

Permalink . Peter . 01:53:46 . 947 Words . Life & Fun, VTK, Studies, EU Software Patents, Politics, Siemens . Email . No views

04/23/05

New fedora stateless test

Let me introduce you: Ward.

Ward Poelmans
Ward Poelmans

Ward has just joined the Fedora Stateless @ UGent team. Because of we are all to busy, Ward'll try to reinstall our whole server with graphical support to test the stateless tools. Normally it should work then. I'm sure Ward will also join this blog and post his results here :-D

Permalink . Peter . 23:37:31 . 57 Words . General . Email . No views

04/22/05

Other blogs

I was unable to read all other blogs I read normally for several days, and read most of them by now.

These are some things you must check out:

  • A movie demonstrating Soft Bodies in Blender. It's quite long, but it's worth your time.
  • We got Windows binary DLL codec support for GStreamer, which means every movie you're able to watch in WMP9 will be viewable in Totem or another GStreamer based application too, even if no free codecs are available.
  • Spyderous got great insight in some of the shortcomings in Computer Science subjects in education

Did I mention our concert yesterday was quite ok?

I forgot this one:

  • Never trust lawyers. Mind the name of the person writing this. If you don't know Greg KH: he's the author of udev, the Linux USB subsystem maintainer (one of Linux' trustees) and coder of lots of other kernel parts.

I hate blog comment spammers. Guys, get a live.

Permalink . Ikke . 09:22:24 pm . 205 Words . Life, Technology . . 287 views . 3 comments

This German article (bad BableFish translation) gives a great overview of what's currently possible using X11, on the field of eye candy. Some of the presented technologies are just technology previews, still nice to see though.

It's some sort of bundle about thingsI blogged about before:
- Xrender and Xdamage (alpha blending)
- Xgl (X server based on OpenGL)
- Luminocity (the wobbling windows, you know...)
- E17

Make sure you check the provided screenshots and demo movies.

Permalink . Ikke . 07:28:29 pm . 110 Words . Technology, Linux, Desktop . . 276 views . Leave a comment

04/17/05

Ubuntu Hoary rocks!

You know my P4 is broken. So now, I'm using the AMD64 notebook from my parents. I allready had Ubuntu running on that, but without WLAN support. I installed vpnc for AMD64 (downloaded the .deb and used dpkg) and attached my computer to the router with a cable connection. Everything was fine, I could use it the way I wanted, no problems, seemed nice. But some things are missing: first of all, I want to use the wireless connection. ndiswrapper isn't an option, because there aren't any 64bit drivers for my WLAN device. It seems that the vendor is waiting for WinXP64bit to release them. Any other bad things: some other software isn't ported to the 64bit platform allready. I don't want to compile all stuff manually, I want to use my computer as soon as possible. So I decided to re-install Ubuntu with the fresh release of Ubuntu Hoary (i386) and give it a try.

The results are pretty good! The installer is very simple, quite fast and after that, you have a complete running system. I needed to install vpnc to access the internet at our student home, but that was no problem. Everything went just fine. The ubuntu website and wiki also provide lots of good information about restricted formats and so on. I really love it. I even love it so much, that I'm thinking about using it on my new laptop instead of Gentoo. The great advantage is that I have a running system with all features in about one hour, vpnc and restricted formats and so on included. With Gentoo, this can take a lot longer. If I need new software: apt-get or synaptic, wait ten seconds, OK. With Gentoo, again, this can take some time. I don't already know what it'll be. Off course, ikke is lobbying for Gentoo ;-)

Even my girlfriend likes Ubuntu! Till now on, she was using SuSE, but she had a few problems with it. She couldn't play DVD's, but now it seems that her hardware (the DVD drive) is broken. There were also some other problems making her think about using another distro. Now, with her final year thesis, she needs to use Corel Draw, and so Windows. So she had to repartition her harddisk and re-install linux (and windows). Because her DVD-drive didn't read the SuSE DVD, she tried Kubuntu. Yeah, she's a real KDE-lover. She loves fisherprice-looking buttons ;-) Kubuntu set up quite quickly, some problems with the wlan (using ndiswrapper instead of the native prism54 driver wich should be working normally), but now everything's fine. She loves it. Now her laptop is making a sound like a cow when starting up. Yes, she's a little bit crazy and I love it! ;-)

With WVS, we gave a LiveCD lesson last week. Not so much people, but others told me they didn't now it on time. The ten persons who were there were quite enthousiast. They loved ubuntu and most of them should try to install it on their computer. I'm sure Ubuntu has a great momentum now and has a great chance to become one of the most popular distro's in the world!

Permalink . Peter . 15:44:48 . 527 Words . Life & Fun, Ubuntu@AMD64, Workgroup Free Software . Email . No views

04/16/05

I really like this (don't just look at the screenshot, make sure you read the whole article, it's not too long).


Thumbnail is link to original image

Permalink . Ikke . 10:26:57 pm . 36 Words . Technology, Desktop . . 314 views . 1 comment

04/15/05


Imagine...

Permalink . Ikke . 05:31:26 pm . 1 Words . Technology . . 256 views . 5 comments

04/13/05

Yesterday I did some DSP-related code again after several years (those AtomixMP3 days...). Read Stephan M. Bernsee's "The DFT a Pied" to "get" the DFT/FFT again, and then started to concentrate on beat detection of acoustic signals. Read Eric D. Scheirer's paper on acoustical beat detection, which is kinda heavy and theoretical (although very interesting at the same time :-)), and then found this article originating from this fantastic website. The article builds up things very well, it's very easy to understand everything as long as you got some very basic math knowledge. The author starts with some very simple energy based algorithm, then builds it up to more complex analyse methods.
I implemented algorithm #2 from that article together with some simple wave file reader/player in C yesterday, it needs some more tweaking, but the basics do work. Once I get it working fine I'll implement it as a GStreamer plugin. Lots of thanks to the people at #gstreamer@freenode.net for helping me out at coding the thing, I really need to learn some more about primitive data types and their size ;-)

Next task: use my current code to implement #3, enhance the visual beat tap, and make the code better (it's not optimized at all right now). Then I can put it into a GST plugin (after I read the GStreamer Plugins Writers Guide).

I've been testing several free groupware applications at VTK lately, none of them do everything I want untill now :-( egroupware comes close thanks to it's integration with LDAP, but it's buggy as hell (on our system at least): I can't even add a simple event to my calendar, and some of the "applications" just generate PHP errors and die. If anyone got experience with FOSS groupware applications (especially if they got support for LDAP as account and/or addressbook backend, or even Evolution and/or MS Outlook support) please let me know which apps I should try.

Permalink . Ikke . 02:36:43 pm . 407 Words . Technology, Coding Corner . . 348 views . 4 comments

04/07/05

It's been a long time...

...since my last post on this blog. Lot's happened in meantime: a few parties, LANwars, we've choosen the new boss of our university, I'm selected for an internship developing an L3 multicast switch at Barco. I was quite busy, so I didn't have much time to write some stuff here.

Some bad (or maybe even good) news: my computer is broken. The IDE-connector (or controller) on the mobo doesn't work anymore. It's a quite old Pentium 4 system, one of the first types of Pentium 4, with an Intel D850GB motherboard and 512 MB RD-Ram (Rambus, Rimm,...). So a change would be a new mobo and new Ram. Maybe my parents'll do that to use my computer at home. It was a very good system, running still very good. I'll miss it, and the good configured Gentoo where I had put lots of time in.

But with that sad news, there's also very good news! My parents decided to give me a new system! As mobility is getting more and more important, they bought me a notebook. Now I can use it here in Ghent, at home, and at all other places I'll hang around. For the interested ones: it's a Dell Latitude D810 bought at VTK. Here are some specs:

  • Latitude D810, 15.4" WSXGA LCD (1680 X 1050) Screen
  • Pentium M 730 (1.6Ghz, 533Mhz, 2MB L2 Cache)
  • 1GB 533MHz DDR2 SDRAM Memory (2X512MB)
  • 80GB IDE (5400rpm) Hard Drive
  • 8X DVD+RW Drive
  • ATI X600 videocard with 128MB dedicated ram
  • Networkcard and 56k modem
  • Intel PRO Wireless 2200 802.11b/g mini PCI card
  • Belgisch AZERTY keyboard
  • 9 Cell 80WHr LI-ION Primary Battery
  • Delux Nylon Carry Case
  • System Documentation, Resource CD, adapter
  • 3 year "Next Business Day On-site" warranty + Completecare Accidental damage Cover
  • home delivery

Just take a look at the price at VTK and compare with the official prices from Dell ;-) It's a huge difference! I like the VTK services!

Dell Latitude D810
The Dell Latitude D810

While waiting for my own notebook, I can use another one. It's the Acer AMD64 I allready talked about. Installing vpnc for use at the student home was very simple. But I've added some other, I think bad, repo's and now the whole system is broken. So now, I'm running windows (that other would-be OS in dual boot on this machine). I think I'll study somewhat the next days, so I won't have time to install Gentoo or another Linux distro. I want WLAN working on this machine to use it at home, but there aren't any AMD64 drivers for the IPN2220 card inside. I'll wait, maybe they release them with the release of windows 64bit. My new computer will be, just like my old one, running Gentoo Linux in single boot.

Permalink . Peter . 18:06:17 . 448 Words . Life & Fun, My Gentoo, Ubuntu@AMD64, Workgroup Free Software . Email . No views

Sven just made me feel good. If Gentoo devs will stick to freedesktop.org standards and maybe even actively contribute to them, it'd be of great value for Gentoo Linux as a desktop distribution.

Permalink . Ikke . 04:05:00 pm . 66 Words . Technology, Linux, Desktop . . 242 views . 5 comments

Hija,

I just received this email from Jono Bacon:

Hi all,

Right, my band Seraphidian (www.seraphidian.com) is
involved in a competition to play the Download
festival. We have been finalised as one of the top 10
bands, and I really need your help to push us forward.
This is a huge deal for us.

Please could you go to the following URL and click on
the red VOTE link to vote for the band:

http://www.snickersunsigned.co.uk/snickersunsigned/voting/votedetail.asp?bandid=952&startat=0

Also, if you run a website or weblog, could you
*please* write an entry encouraging you to vote. You
will know how important music is to me, and we really
want to push through to win this!

Also, could you please *not* write a script to bombard
the site with votes or they may accuse the band of
cheating, which we really don't want to do.

The vote closes on monday, so time is of the essence!!

Thanks a lot folks!

  Jono

Maybe some of you know him, read articles by him, whetever. I met him IRL at FOSDEM, he's a great guy (who doesn't know the hilarious LugRadio webcasts?), so if this can help him forward, I urge you to click the link and vote for his band (even if you don't like the music ;-))

CP: Fatboy Slim - Going out of my head

Permalink . Ikke . 09:15:40 am . 262 Words . Life . . 442 views . 6 comments

04/06/05

Methinks this is funny :-) Make sure you check the preceding message too, so you know what this is all about.

CP: Gotan Project - Joy

Permalink . Ikke . 03:08:49 pm . 52 Words . Technology . . 208 views . Leave a comment

04/05/05

Back

So, I'm back, but will leave again on friday ;-)

Napoli was quite nice, lots of Roman things of course ([url=http://en.wikipedia.org/wiki/Pompei]Pompe

Permalink . Ikke . 10:11:33 pm . 216 Words . Life . . 250 views . 2 comments

03/28/05

Bleh

Very long time ago, once more...

I've been very busy lately, lots of projects, some of them ICT-related, others not, but not too much time to do all those things I want to do.

I'm not going to flood my beloved readers with all boring (well... ;-)) things I've been doing lately, let me just say I'm having a pretty good time :>>

Currently I'm playing around with GStreamer some more. Some stupid problems I'm opposed too, very simple things that should work but don't etc, but well...

I hope I'll be able to report on something more exciting soon, write something, whatever, but I can't promise it'll come :oops:

Will be visiting Napoli from wednesday 'till monday, maybe I'll be able to write something about that trip when I get back.

By the way: happy easter @ all :-)

Oh, something else: we reached 2245 unique visitors on blog.eikke.com now, where a unique visitor is unique in 24 hours. An absolute record 88|

Permalink . Ikke . 10:17:27 pm . 179 Words . Life . . 254 views . Leave a comment

03/18/05

Some time ago, I wrote a small python script that notified me with a jabber message whenever a new e-mail has arrived on my UGent-account. I already was using a similar script, but I wanted to create one myself. And now it's time to publish it. :-)

What does it do: it notifies you with a jabber message when a new e-mail has arived
What do I need: a jabber account for yourself and for the bot, access to procmail filters, python support on the procmail server, a jabber client and my scipt.
How: first, a procmail filter forwards the e-mail headers to mabber.py. Mabber analyses the headers, extracts the needed info and formats it. Then, using xmpppy and a dummy jabber-account, a the little bot pops online and sends you a 'headline' message.
Where do I get it: download mabber.py here
Note: similar scripts/progs exist in Perl and Java.

How to set it up on eduserv:
1) Download the mabber.tar.gz file to your computer. Use an SCP client (like WinSCP on windows) to log in on eduserv with your own login and password. Make sure the right side is selected and upload the mabber.tar.gz file to your home-directory.

2) Using an SSH client (like Putty for windows), log on to eduserv again. First, the mabber.tar.gz file has to be extracted. To do this, enter:

tar xvpfz mabber.tar.gz

The console should output a list of extracted files. Now enter the command

cd mabber

to enter the created mabber directory. Execute the script for the first time with

chmod 700 mabber.py
./mabber.py

It will tell you there was no configfile found, and a dummy-one was created. To adjust this dummy file, go back to the previous directory and open the dummy file :

cd ..
pico -w .mabber

Change the values for 'jid', 'password' and 'tojid' to the JID of your bot, its password and your own JID respectively. Remove the '#' in front of 'jid', 'password' and 'tojid', save with 'CTRL+O' and exit with 'CTRL+X'.

Note:In order to keep your password hidden from other users, mabber.py creates your file with '600' permissions (only you are able to read it and adjust it). If you descide to create the file yourself, do not forget to execute

chmod 600 .mabber

3) Now its time to add a procmail filter. More info here. First execute (while still in the folder of .mabber -- your home folder)

pico -w .forward

In this file, add one line:

"|IFS=' '&&exec /usr/local/bin/procmail -f-||exit 75 #USERNAME"

in which you change USERNAME to your own username. Save with 'CTRL+O', exit with 'CTRL+X'. Now its time to define the filter. Again we use pico to create/adjust a text file:

pico -w .procmailrc

and add:

PATH=$HOME/bin:usr/bin:/usr/local/bin
MAILDIR=$HOME/mail
DEFAULT=/var/mail/USERNAME
LOGFILE=$MAILDIR/from
LOCKFILE=$HOME/.lockmail

#mabber
:0 hc
| $HOME/mabber/mabber.py

Again, change USERNAME into your own username, save with 'CTRL+O' and exit with 'CTRL+X'.

That's it! Try sending yourself an e-mail. A few seconds later (could be half a minute) you should receive a jabber-message containing the sender, the subject and the date. Be sure to check if you really received the mail. If not, doublecheck your .procmailrc file! If you have any questions about the installation or use of this file, feel free to comment. I'll answer asap.

Permalink . RealNitro . 11:48:44 . 717 Words . Coding . Email . 815 views

03/12/05

NeroLinux banner

I know, there are very good Free alternatives for the popular Nero Burning Rom, like Gnome Toaster or K3B, but this news is very important: some people want to stay with Nero, and it is also one more important software vendor admiting the power and potential of Linux, after Adobe and some other ones.

More info here.

Permalink . Peter . 17:13:02 . 58 Words . Linux . Email . No views
Busy week part X...

Very busy week -> zero lessons followed... :-/

Monday wasn't that hard, just the usually stuff at VTK. In the evening, we had a fire drill: very good one, everyone was out of the building in a new time record. It was the last one this year, so the next time the alarm goes of, it's real.

Tuesday we had an information evening about VTK and being a board member of VTK. I'm going for "external relations", but I heard somebody else'll do it too. So it'll be a very hard time to get enough votes.

After that, we went with a few people of the student representation to a very good restaurant, Caf

Permalink . Peter . 01:29:24 . 417 Words . VTK, Workgroup Free Software . Email . No views

03/10/05

Database Regression

Once more, my sites moved from one server to another, which resulted into a minor database regression. Looks like some comments posted went missing, I'm very sorry for this inconvenience.

Permalink . Ikke . 11:59:06 am . 30 Words . Technology . . 270 views . Leave a comment

03/07/05

Democracy, anyone?

It's a very sad day for democracy today. The EC passed the software patents directive as an A-item (without discussion) even while Denmark (with support from other countries) asked for a B-item (with discussion). First the whole European Parliament is ignored, their amendements are ignored, their call for restart is ignored and Denmark and all other countries asking for a B-item are ignored. There are a few options left open: the second reading by the Parliament, but I hope they go for a fighting against this undemocratic descision. The EC can't refuse a call for a B-item from any country, but they did. Now, the EP and the EU member states can go to the European Court. Let's hope they do it and get their victory.

Further reading: English - Dutch

Permalink . Peter . 16:15:37 . 130 Words . EU Software Patents . Email . No views

03/06/05

International student representation/politics, workgroup free software revival

Again, I can say it was a very busy week, last one. But I enjoyed it very much! Movie week was good, the party was great. Many good-looking girls at the party, more than normal on engineers-parties ;-) You can see some pictures here and here. I helped cleaning up in the morning, saw my bed only between 8h30 and 13h XX(

That evening, after the party, I went to Brussels, for a meeting with the "workgroup international" of the VVS, the Union of Students in Flanders. There were some political points to discuss. Points I earlier thought of "far away from my bed", but now I've a better sight at the possible impact of them. Very, very important. We discussed about GATS, an agreement between the EU and the USA to let the European insurance companies operate at the american market. No problem with that, but as a return, the Americans want the EU to open our "education market" so they could start private high schools in Europe, privately funded, to fight at our public founded schools, delivering a quality of the best ones in Europe and the rest of the world. With that agreement, students should be seen as a consumer, where you get more if you pay more, instead of as an equal civilian, where everybody has the same rights. Very dangerous situation, I think.

Commissioner Frits Bolkestein
Ex-commissioner Frits Bolkestein
wiki-page: English - Dutch

Another thing we discussed is the Bolkestein-directive (Dutch - English) wich is almost equally, but only about the circulation of services (including education!) in the European Union. You can say "why not? It's good that I can go to an Irish school here in Flanders for example", but then you're falling under the Irish law. For example in Poland you don't have that much privacy-protection and social-protection as you have here, you don't have that good environment-protection as you have here and you also don't have that good educational quality as you have here because our final terms (directed by the Flemish Government) would be appropriate anymore. It can have a very big impact here and can reduce our very good social and environmental protection systems. So, please, sign the petition against that directive. A few days ago, I also red an article in the newspaper about a change of the Bolkestein directive: the "county of origin" part should be modified so that if they start here a Polish school/company, they're falling under our laws instead of the Polish ones. Seems a good evolution then.
International student representation/politics, I like it more and more. It gets more interesting every day.

At VTK, I think our firewall is ready. Now I just need to find out how to configure the DNS-server and then we can give it a test. Tomorrow we'll decide how many people our praesidium will count next year. We also have to vote if "computer" will remain with two people or not. Let's see...

My girlfriend is sick, she has the flu. Seems very hard for her. She's got tears in her eyes from her sore throat and has to throw up. Let's hope I don't get it from her.

Influenza virus photo
Influenza Virus photo

Some good news about the Workgroup Free Software! With the very busy first semester and the exams, it has been very quite around it. But now, I think it's time for a revival. Pieter has sent an e-mail about a linux-lesson with a liveCD to let the people meet linux in a safe environment without any risk. Seems a very good plan to demonstrate the power of linux, liveCD's and free software. A lesson about image manipulation with The Gimp is also in the running. Now, a meeting should be planned quite fast to organise those things. Normally, the meeting'll be on wednesday, 17h15 @ VTK. Feel free to join us! Let's hope it's a big succes and that it can open the eyes of lots of people for the power of free software!

Wilber, The GIMP mascotte
Wilber, The GIMP mascotte

While searching for the nice image above, I also found these interesting links: Linux and Scooby-Doo, GIMP's Film Version and The CinePaint Project.

Permalink . Peter . 01:41:24 . 689 Words . Life & Fun, Linux, VTK, Free Software, Politics, Workgroup Free Software . Email . No views

03/01/05

Had a great time. No time to give an overview at the moment, but I will report on it as soon as possible.

@RealNitro: the only way to learn things is by coding a lot :-)

Permalink . Ikke . 09:57:13 pm . 48 Words . Life . . 254 views . 1 comment
Php gotcha, mail, FOSDEM

It has been a while since I have posted here, for two reasons: I didn't have much to say, and last week was very busy. I did a rewrite of the gotcha php-code that is used for the Home I live in. It took me a while to decypher the old code (amazingly complex), and eventually it took me 4 evenings to finish the job. However, the gotcha that's going on atm still uses the old code. :-( There was no time to test the new version thorougly, and just before the start of the gotcha (22h. last sunday), I discovered a little bug too. But I'm looking at it from the bright side: now I have the opportunity to fine tune my code, check it for weaknesses in its security, add new features, maybe add a fully featured admin-page, give it some new html code... If anyone (that is: anyone I know and trust ;-) ) wants to see my code running, just let me know. Btw, does anyone know of a way to check if an e-mail that should have been sent with the php code has really been sent? I'm asking this because last sunday the old php code did not start at first (I had to try 3 times!), and apparently some people didn't receive their passwords (which sould have been sent with the php mail function). :-/

Two days ago (sunday) I went to FOSDEM. The overall 'experience' was better than had I expected it to be. None of the presentations I attended were too technical (except the one about nautilus ;-) ). The one I enjoyed the most was the one about FAI, followed closely by XFCE. I think I liked the one about FAI the most because we might use it in stead of Fedora Stateless. (the speaker was very good too)

There ya go. Not much more to say. I have a big, unpublished post here at this blog about 'mabber.py'. But I will not publish it before I tested the installation instructions, and I still need to choose a license (or invent one).

Permalink . RealNitro . 14:19:14 . 373 Words . Webdesign, Linux, Coding . Email . 823 views
Corrupt filesystems = hell, sendmail sucks, SP.a sucks, VTK rocks!

It was quite hard to solve the problem I pointed at here. After a while we finally discovered the filesystem was quite corrupt, so configuration files were damaged. smb.conf was quite fast fixed, but the sendmail configuration was terrible. Thanks to Femi, it's solved. Let's hope we can soon migrate to our new server configuration, without sendmail.

Yesterday, I placed the prices of our Dell-computers online. Now all people can buy them by e-mail, but ikke and Bram are working at an e-shop to automate the whole thing. ikke told me the database structure (and implementation) is ready now, so I can insert the data. Already three computers (all Dell Latitude D800's, the notebook topmodel) are sold. Seems good B-)

This week we have Filmweek (movieweek) and Lentefuif (spring party) at VTK. Let's watch some movies and have a great party this week!

VTK Filmweek flyer

Also some bad news in politics. The European Council and Commission told they'll ignore the desicion of the Parliament to restart the whole software patents direction. It seems there will be a big conflict between those two European institutes. They'll try to vote the direction as an A-item (without discussion) on the next meeting. Some national parliaments already decided they can not accept such things, so let's see what happens. Let's hope they can counter such a boycot of democracy. More information about the desicion here.

Another bad thing coming towards us, is the pc-taxes for copyright. As I mentoined here, some political parties are trying to push a proposal that creates a tax of 40 euro on each computer sold. The money should go to music companies as compensation for the (illegal) copying of their music with computers. Normally, there wouldn't be a majority for that. One of the governing parties, SP.a announced in the media that they were a great opponent of those taxes. Now, they're breaking because of the pressure of another party, VLD to approve the proposal. Stupido's.

Hehe, my girlfried has red the previous post and the piece about her. Than she looks at me in a way she makes me completely crazy. Oh, I love her so much :-D

Sunday, I went to FOSDEM. It was good, some good talks. I visited the desktop tracks about KDE and XFCE, some developer rooms: Gentoo ("Gentoo Documentation Project", missed "Enterprise Java on Gentoo"), Mozilla and Debian ("Fully automatic Linux installations"). Because of some delay, they really messed up the lightning talks, so I missed VideoLAN, wich was very impressive at the booth. FAI was one of the most interesting talks. I think we'll use it for the Linux@UGent project because there's not so much swing in Fedora Stateless. They even don't talk about it for FC4.

And now: let's build a firewall!

Permalink . Peter . 13:31:19 . 462 Words . Life & Fun, VTK, Free Software, EU Software Patents, Politics . Email . No views

02/26/05

Busy week...

It was a very busy week, this one. Even that busy for not having enough time to post something on this blog. My girlfriend also found this blog (she was standing next to me when I was reading/posting). Firstly, I didn't tell her because I thought she wouldn't be interested. Now, she finds it very "nerdy" :-p Let's see if she reads this too B-)

I also created a new category "Politics" (and moved the software patents cat) where I'll post something about Flemish (and Belgian or regional) politics. I'm very interested in that and sometimes I'm also active. I don't know if all posts will be in English there, maybe sometimes I'll use Dutch. As first message, I can say I created two proposals for the city council of Ghent. One about safety in the student-partystreet and another about student mobility. I'll keep you on touch.

Monday, we had student council where my two proposals (see this post) were accepted (with a few extra lines). You can find them here and here. Both are pdf-files in Dutch. After the meeting, we had a drink, nice people, interesting talks, lots of alcohol so I stayed there too long ;-)

As ikke already mentoined, we sold our first two Dell notebooks at VTK. The third one is in progress and ikke has a friend who wants to buy another one. The website isn't ready, but ikke and Bram are developing it. The database structure is ready, now there creating the aplication to start coding soon. When that's ready, I hope the Dell-selling will be a great succes. If you're interested, don't hesitate ;-)

Just had a telephone call from VTK. Seems that there are problems: they can't log in on the clients anymore (domain VTK not available is the message) and e-mail isn't working anymore. I'm trying to solve it for two hours now, but it doens't work. For the mailtroubles, I see that every email for our domain is accepted, but sent back to our "smart relay", creating a loop. I checked configuration files, but they seem OK. sendmail.cw and local-host-names are OK, just like the other files. For the smb-problem, I also don't know how to solve it. This is the message I recieve when trying to mount a samba-share on a windows computer:
# mount /mnt/clients/osama/d/
3424: session setup failed: ERRDOS - ERRnoaccess (Access denied.)
SMB connection failed

I've sent an email to ikke, Lennert and Femi. Let's hope they know what to try.

Wednesday, we had a company visit at Sidmar. First a presentation of the company, the job possibilities and conditions,... After that a visit at the factories, very nice. At the evening, a walking diner at the yacht "Jacob Van Artevelde" in the port of Ghent. Very nice B-)

Sunday, I'm going to FOSDEM, Brussels. Ikke will be there too, and normally also Real Nitro and Lennert. See you there?

Oh, BTW, please sign this petition against taxes on pc's. Some politicians want to create those taxes as compensation for music industries. It's like a punishment before you did anything wrong. Now we already pay for all blanc media (CD's and DVD's), so every linux-CD includes a fee for the music industry. Stupid IMHO.

Please sign the petition against pc-taxes

Permalink . Peter . 02:08:07 . 539 Words . Life & Fun, VTK, Free Software, Politics . Email . No views

02/25/05

FSU as thesis project?

I had some talk with Michiel Ronsse, co-founder of this FSU-project. We thought it could be nice to create a thesis project of Stateless Linux development. He's going to introduce it at some promotors. Let's hope it'll be OK. I don't know if I should take it if they create it. I'm very interested in that, but I also found some other stuff I'm interested in. I'm also afraid it could be a little bit too complex. But you never know, we'll see.

He also told me about some filesystem, cachefs, that's included in Solaris. It's not ported to linux.

Permalink . Peter . 23:17:11 . 100 Words . General . Email . No views
Gnome Settings Manager

Just thought of this:
Imagine a program that allows you to tar up settings etc. You run it, it takes a snapshot of your Gconf settings, your Gnome application settings in .gnome2, your current GTK+ theme, your Metacity theme, your icon theme,... i.e. all possible settings related to your Gnome desktop, and maybe even more things (as a plugin) like Mozilla Firefox preferences, Openoffice settings,... It takes all this, and makes a nice tarball out of it which you can take to some other machine, run some tool, feed it with the tarball, and all at once you got the exactly same environment as on the first machine...

I've been thinking of this 'caus I installed Ubuntu Linux at VTK the other day on one workstation, and I hated it to be forced to reconfigure every application the way I want them. Just grabbing the settings of my workstation here and applying them there would be so cool.

I know I could just tar -cjvf ~/.somedirectoriesandfiles, but that's no "nice" solution, and could (next to other things) corrupt the existing Gconf keys, Firefox profiles etc.

I just launched the idea on #gnome@GIMPNet, one possible problem that's been mentioned is hard-coded paths (e.g. in Gconf keys). The settings application should be smart enough to find these things, and check if the specified file exists. If not, the key should not be created, and the application using the kay should create it or get it from the Gconf defaults (that's just the way applications should work with Gconf. If they don't, they're not 100% Gconf-enabled/valid).

This is not easy to write, although when coding step by step, one should be able to get it working.

RealNitro: wouldn't this be some nice Python project? File handling, string parsing, Gconf bindings, even using PyGTK one day... If you'd like to take a look at this, I'd be glad to join and learn some more Python at the same time :-)

FOSDEM tomorrow and Sunday. I hope I'll get there (on Sunday preferably).

Permalink . Ikke . 08:53:20 pm . 406 Words . Technology, Linux, Desktop . . 1161 views . 3 comments
Vim and SCP/SFTP

Maybe usefull for some people reading this: if you want to edit remote files using Vim or gVim over SCP, no need to use Gnome-VFS, shfs, lufs or whatever more.

:e scp://username@host/a/file/in/your/homedir

will do the job.

When using a decent .ssh/config or when you got the same username on both machines, you can omit the username part.
You should use DSA/RSA keys so you don't have to enter your password on every open/save action :-)

AFAIK tab completion is not available, which is a pitty.

Permalink . Ikke . 10:35:38 am . 100 Words . Life . . 6117 views . 1 comment

02/23/05

As mentioned before I wrote some PHP class to allow people writing PHP applications to (ab)use the authentication method UGent and DICT offer easily.
This is the documentation of it, rendered using PhpDocumenter. The code of the class can be found inside the docs (can't give a link here, b2evo bug :-/), a working demo is here.

The code uses 2 mechanisms to decrypt the RSA encrypted key we get from the authentication server: it tries to use PHP's internal openssl_* set of functions, if support for them is compiled in the PHP interpreter. Otherwise it falls back to shell_exec to call OpenSSL in a shell, which gives a lot of overhead, unfortunately.
Unlike the provided samples, I'm not using temporary files anywhere.

Just installed Evince. It got some more features than Gpdf already, let's hope it continues to grow :-)

Permalink . Ikke . 10:28:51 pm . 240 Words . Technology, Linux, Networks, Desktop, Coding Corner . . 339 views . 1 comment

There's been a lot of talking lately regarding the future of X, things that should become possible,... Just take a look at Planet Gnome, especially Havoc and Seth have been active in this field.
A week ago or so there was the XDevConf, a conference for, guess what, X developers. There's been blogged about this summit quite a lot too, both on Planet Gnome and Planet Freedesktop.

I just read an article by Rasterman, an Enlightenment developer and X wizard. I did look at E17 and EFL some months ago already, but was pointed to them again because of the article. It explains what is possible already nowadays, including some videos. Make sure you watch them.

I'm a Gnome user, I love the Gnome Desktop and development. Some things you can see in the sample movies are great though, and cannot be used inside Gnome at this moment.
I don't like E17. I dislike the looks of the Windows Manager. Some of the things these guys are able to achieve at this only moment look incredible though, and even usefull ;-) If the X.org developers at freedektop.org could keep enhancing their X server (and especially the drivers), imagine how cool it would be if GTK could make use of some of the things these Enlightenment libraries provide. Not only to provide eye-candy, also "functionality" (think of *real* terminal transparency, no only copying the lowest X buffer, or transparent Gaim buddy lists as I wrote before). The possibilities are endless. And some people would die to get Linux on their desktop :-)

Lennert got a good idea too yesterday: get the Gaim buddy list out of a window, and put it on the desktop (if wanted, of course). Like a "Gaim GDesklet" (if you don't know what desklets are, check this screenshot, upper right corner). Would be very cool IMHO B-)

Permalink . Ikke . 02:59:35 pm . 381 Words . Technology, Linux, Desktop . . 291 views . Leave a comment

02/22/05

News from me

Long time ago once more ;-)

I got lots of things to do lately, so I rarely find time to update this blog. Next to this, I got sick about a week ago, so I had to stay in bed for a while too.

Some thing's I've been doing lately:

  1. Installed Xgl, dropped it because I got no hardware acceleration

  2. New desktop (screenshot, slightly changed now: the line under my top panel is smaller)

  3. Installed Hula some minutes ago.



    It is nice, but still needs some work IMHO.

  4. Wrote some mass-mailing-with-attachment Python script. It's not 100% done, if you want it give me a call

  5. At Ghent University there's a new system to allow web application developers to authenticate users against the universities student database. Whilst all sample code in the docs is written in Perl, usign a bunch of temporary files to decode/decrypt keys etc (I'm not getting into the implementation details here), I wrote some PHP class to achieve the same goals. Not using any temporary files (which is better, think of multithreaded webservers...), but still using a shell_exec call to openssl to decrypt a PKI string using some public key. TODO: use PHP's openssl functions, or shell_exec as a fallback when OpenSSL support hasn't been compiled into PHP. I think I'll send the class to the UGent admins once it's done, so others can make use of it too.

  6. Just showed Nat it's easy to generate PDF files from MediaWiki pages using this software. He was looking for a tool like this to create PDF's out of the Hula Wiki pages (hey, I even pointed him at MediaWiki in a lengty mail I sent him upon his request describing all wiki implementations I got some experience with :-))

  7. Installed PhpAdsNew2 today at VTK. It's not implemented yet (still need to give a demo to the admins), I hope it'll allow us to deploy a better, easier and more manageable ad management, including decent statistics. Hey, we need to know our market value, isn't it?

TODO:

  1. Get a new harddrive (8.4Gb is too small on a modern desktop/development system)

  2. Get NVidia Binary drivers working, play around with Xgl once more, and try hardware accelerated composition

  3. Get semi-transparant Gaim chat windows and buddy list working

  4. Play around with Galago

  5. Get a Subversion repository somehow, somewhere

  6. Find out how to get to FOSDEM, or I won't go once more

  7. Finish reading the GStreamer development handbook (60 pages to go)

  8. Get some new girlfriend?

  9. Lots more, not willing to think about it at the moment.

Oh I almost forgot. We sold our first Dell computers today. Let's hope the ecommerce site will be up soon.

Permalink . Ikke . 08:14:00 pm . 522 Words . Life, Technology, Linux, Networks, Desktop . . 428 views . 5 comments

02/19/05

I found this blog (Dutch) yesterday, with this message: Philippe De Coene, a member of the belgian parliament, made a (IMHO stupid) proposal for more internet security. He wants to oblige the software vendors and ISP's to provide the most possible security in their software. No one knows what that means, but one thing 's sure: Windows doesn't fit in that category! :>>

If I move and I need a new internet connection and my ISP recommends me Internet Explorer, I'm going to court! :>

Permalink . Peter . 10:05:52 . 83 Words . Life & Fun . Email . No views
CV and student representation

I just created my first CV. I'm going to need it for some company visits this and next year. You can find the dutch version here and the english version here. B-)

Yesterday and a few days ago, I also created some proposals for the student representation. One of them is a about using Minerva/Dokeos for sending information to the students and asking for feedback of the people we represent on a more formal way. The other one is about readable slides. Some teachers are using PowerPoint slides with lots of animation: balloons popping up above eachother. When those slides are the only studymaterial that you have and when you need to print it for an open book exam, you can't read a damn thing of it anymore. So I prepared a document with some directions for good slides: no (dark) backgrounds, carefull with animations, printable,... Monday we're having a meeting with a discussion about this documents. Normally both of them will be accepted, let's hope so. If they're accepted, maybe I'll post the final versions here if you're interested. B-)

Davy and frocksii agreed on creating a website for the selling of Dell-computers at VTK. Let's hope they can fix this quickly so we can start the project. Tommorow, I'm going to help with a guided tour for prospective students to let them know more about our university, faculty and courses. Ikke will be there too :-D

Next thing for me: learning object oriented programming with PHP. Object oriented programming is no problem, I allready know a bit about php, so it can't be that difficult. After that, advanced CSS is next. Lot's of interesting stuff to do so ;-)

Permalink . Peter . 02:07:18 . 281 Words . Life & Fun, VTK, Studies . Email . No views

02/18/05

This could be some great news, whether we're going to work with or without Fedora Stateless Linux. Let's hope this one stays maintained ;-)

I do wonder why they wait for the Netscape Directory Server being open sourced, whilst we already got OpenLdap.

Permalink . Ikke . 02:13:30 pm . 65 Words . General . . No views
EP demands restart

As I allready told you, the JURI-commission of the European Parliament voted to restart the whole software patents directive. I also wrote that the EU Commision should ignore that call and vote the directive on a meeting of the financial ministers on the same day the full EU Parliament should vote the restart. Thanks to the Dutch Parliament, that 's made impossible. So no vote in the Commision, but a vote for the restart in the EP! So let's hope they the commisions now can create a good direction on that stuff. The commision can also ignore the call of the EP, but that could cause big trouble between the parliament and the commision.

Permalink . Peter . 10:41:32 . 114 Words . EU Software Patents . Email . No views

02/17/05

First of all: do not try to use a XHTML strict doctype with a .tk adress. It makes IE go maaaaaaaaaaad. The rendering of my site didn't even come close to what it was supposed to be. (Firefox did the job nicely, btw. ;-) :-p )

The site had been around for a year and a half now. It used to contain three frames and a lot of crappy code, and looked even worse than it does now ( ;-) ). But now I updated the code, basicly rewrote the entire site, using php and lots of CSS (most of this was done during the Christmas Holydays). Yesterday I added a logo in the top left corner. It's with the gimp, using some other pics I made for the previous edition of the site. Let me know what you think of it, graphical stuff is really not my thing so I need feedback.

My next little project will probably be some php-code for the Gotcha contest of the home I live in during the weekdays. I still have to finish my little jabber script too. :-/ And: I wrote my first C program today. B-) (all it did was print some text though :-D )

Permalink . RealNitro . 22:43:55 . 212 Words . Webdesign, Life . Email . 446 views

02/14/05

Back in business

After a very short vacation, the 2nd semester has started. I've had two new courses today, an interesting one (multimedianetworks) and a very boring one (informationtheoretics). I think I'm not going to follow that second one very intensive ;-)

Before my vacation, I arranged a deal with Dell and VTK. The principes of selling Dell computers at VTK were already OK, but now we recieved some very good prices from them, without having to pay for windows if we don't want it. A lot cheaper than on their website. Normally they should create an e-commerce site for our students, but I didn't hear anything from them. I'll give them a call tomorrow. Let's hope they arrange it soon, so we can start selling those machines.

At the same time, my girlfriend has also finished her exams, very good normally, so we could have a (very short) vacation. We went to Molenheide. Bad weather, but we spent a great time together.

First day of the 2nd semester, great problems at VTK. Printing at the new Nashuatec all-in-one and the old laserjet didn't work anymore. All people frustrated, me target of all kind of projectiles. Thanks to ikke, printing at laserjet works again. We also had problems with a full (or corrupted) hard disk, so we couldn't send or recieve e-mail anymore. Fixed by moving the maildir on another harddisk and creating a symlink. It's a temporary solution, but the whole system needs to be redesigned. I also executed the deathrowscript (for backing up and cleaning the temp dir) for the first time, seems OK. From now on, it's executed every saturday at 1 AM.

Didn't do anything special for valentine's day. I think it's to commercially pushed. This friday, we're two years together, so that will be a special day full of love for us :-D

Permalink . Peter . 21:41:22 . 303 Words . Life & Fun, VTK, Studies . Email . No views
Lessons restarted, webdesigning

The lessons for the second semester started today. The classes in the morning were dropped, but the ones in the afternoon -- Electric Networks -- were terribly boring (as usual :roll: ).

I'm changing the code of one of my sites to XHTML atm. I'm nearly finished, but it will probably look quite f*cked up in IE. I'll reboot into windows tonight and check it out. If anyone has some feedback about the code, plz comment it, so I can learn from my mistakes. ;-) (Idd, the menu in the corner thing is similar to the one on www.eikke.com, sorry about that Ikke. :oops: )

*looks at download window*
Wheeeeee, a new episode of RedvsBlue!

Permalink . RealNitro . 19:00:26 . 140 Words . Webdesign, Fun, Life . Email . 433 views

02/13/05

Wrote a new article today, on command line options parsing using Glib 2.6's GOptions.

Once more, it's listed on my articles page, direct link here.

Next one will be on moving your project dir into a local or remote Subversion repository, or GStreamer basics, still have to make up my mind.

Permalink . Ikke . 10:13:44 pm . 84 Words . Coding Corner . . 624 views . Leave a comment

02/12/05

Use id's

Hint #cantremember: Use ID's where-ever you're allowed to

This makes crossreferencing later on (using XRef or whatsoever) easier, and references are very nice and usefull (look at WikiPedia and others).

Permalink . Ikke . 06:46:13 pm . 36 Words . Docbook . . 666 views . 1 comment

I finally finished the Docbook-translation of my article on Makefiles and Autotools. The result is listed on my articles page, direct link here.

Permalink . Ikke . 02:45:00 pm . 55 Words . Coding Corner, Docbook . . 653 views . 2 comments

02/10/05

CV

Just wrote some initial version of my CV, still needs some work, and PDF conversion :-)

I might ask some people for some advise on it too.

Permalink . Ikke . 10:49:06 pm . 26 Words . Life . . 257 views . Leave a comment

Hint: Use a Docbook element reference sheet

Simple :-)
I use this, this is somewhat bigger.

Permalink . Ikke . 09:16:45 pm . 35 Words . Docbook . . 670 views . Leave a comment
Finished!

Good bye exams! Mechanica was all right, but it should have been better (did some calculations that took me 3/4 of an hour, and I didn't need them :'( ).

Atm, I'm updating my system, and hopefully I will get the hardware acceleration working, so I can check the new test release of TC:E out. My expectations are high, I hope this release is not as much of a disappointment as the other one was.

I haven't been posting a lot in this blog for the last few weeks, but that should improve in the coming days/weeks. ;-)

Permalink . RealNitro . 14:05:29 . 104 Words . Gaming, RTCW:ET, Fun, Life . Email . 497 views

02/09/05

#3

Hint 3: Write directly in DocBook format

As you might know I first wrote my first 2 articles in this blog. I docbook'ized the first one, which went quite well, now in progress doing the second one, which is a real PITA.

So, little hint: don't write plaintext files first, write DocBook code/tags directly.

Permalink . Ikke . 04:02:22 pm . 90 Words . Docbook . . 582 views . 1 comment

02/08/05

Use Yelp to preview your documents

Simple one for now, got not much time, but don't want to break the chain either:

Tip 2: Use Yelp to preview your documents

You can use Yelp to preview the Docbook documents you wrote, so you don't need to xsltproc/xmlto the file everytime (which takes a while).

Just open the like this:

yelp mydocument.dbk

Permalink . Ikke . 10:35:36 pm . 56 Words . Docbook . . 1577 views . 1 comment
Installed Ubuntu on AMD64

Dancing banana

Exams are finished! Yeah, finally! Last one, Advanced Computer Architecture, will be good enough, I think. I just made one big mistake in some assembler code: misread a register and so made the complete exercise (6/20 points) bad. I noticed it just 10 minutes before deadline, so no time enough to restart. The other questions will be OK, I think.

Now the exams are finished, I've some time to install Linux on the notebook at home. It's an Acer Aspire 1522WLMi. Some points I (don't) like:

  • Easy partition management
  • Excellent localization management: after choosing language, I just had to press OK a few times for country and keyboard selection
  • Allmost all hardware good detected, including the 1280x800 screen resolution
  • No support for the WLAN device, I'll ask frocksii about his experiences, I thought he did it with the 64-bit beta of ndiswrapper
  • After installation, the X-server didn't work. I had to mess up a bit with XF86Conf. Indeed, still XFree, no xorg.
  • It was my first experience with gnome since a long time and it seems nicely evolved, I like it
  • A few missing icons (as the "show desktop" button, the items in the "computer" menu,...
  • I'm automatically logged in with my username.

Let's hope I can get the WLAN working, because now I have to go upstairs for a cabled LAN connection and it's cold there... I'll write more about the progress here.

Lot's of good luck to all people still having exams! Just a few more days and it'll be also time to party for you!

Permalink . Peter . 21:22:11 . 257 Words . Studies, Ubuntu@AMD64 . Email . No views
Permalink . Ikke . 10:22:01 am . 1 Words . Technology, Desktop . . 269 views . 1 comment

02/07/05

I wrote the articles/index.html generation script, using Bash and some sed magic.

This is a sample input file:

Using Glib Signals with GOB_gob-signals
Introducing the Glib Mainloop_glib-mainloop

which outputs the current index.html.

You can find the script here, it's called genindex.sh. The index.html.in file I use as a boilerplate in the end is here, very easy to figure out what's done.

Bash is a really powerful thing, the more scripts I try to write using it, the more I learn.
Of course you could do something like this using PHP, Python or something else, but Bash is much cleaner IMHO (i.e.: you don't need a fully fledged PHP installation to do stuff like this).

Permalink . Ikke . 07:41:40 pm . 157 Words . Technology . . 421 views . Leave a comment

Just finished (well, almost) the articles section on my website.
As you can see, the articles are available as PDF now too, although the PDFs aren't formatted very well sometimes (links aren't rendered as real links :-(), need to look into this.
I also need an info page with an explanation of the license, and some copyright information.
The article titles should get the same look as the section links on my homepage, but I cant get them to behave correctly :'(

I'm going to write a PHP script that generates the HTML code you see there from an XML file listing all available articles, too. Will make things much easier for me :-)

I've read some of the GStreamer API docs today, it's a wonderful framework. Prepare for some tutorial ;-)
Next one should be about local (UNIX Domain) sockets, but I think I'll Docbookize the Makefiles tutorial first.

Permalink . Ikke . 04:23:16 pm . 165 Words . Coding Corner, Docbook . . 340 views . 7 comments
A Docbook tip a day keeps MS Word away

Last night I decided to create a new blog category, where I'll try to give one Docbook-related tip every day, so others can get used to this great format too and start writing documentation or articles using it :-)

I will concentrate on writing "article" files, not "books" or some of the other Docbook classes.

First tip: The standard Docbook Article boilerplate

A Docbook document is an SGML or XML file. Writing SGML can be a tedious task, so most users write their documents in XML.
This is the standard boilerplate for a Docbook XML article:

<?xml version="1.0"?>
<!DOCTYPE article PUBLIC "-//OASIS/DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<article id="sometitle" lang="en">

Document goes here

</article>
Permalink . Ikke . 12:34:02 pm . 153 Words . Docbook . . 292 views . 1 comment

02/06/05

I decided to write new articles in docbook directly, not posting them into this blog.

As promised I wrote an article on the Glib Mainloop. It is available here. I still need to add hyperlinks to the quoted references (API's,...), but I'll do that later.

I start to like DocBook, actually. The generated documents may look ugly, but some CSS work could fix it.
The good thing is you got a consistent interface, and the XML you write really describes what you're writing about, if you use the correct tags.
The documents I write may not be 100% correct (missing tags on some places etc), but I'm learning ;-)

I hope you like the article, please comment on it if thing's aren't correct, not obvious enough,...

I should try to write up some CV too next days. Hell of a job.

Permalink . Ikke . 10:08:18 pm . 159 Words . Life, Coding Corner . . 504 views . Leave a comment

The sofware patents soap continues. Where I could post this victory message a few days ago, I now have some bad news. The EU Parliament wants to restart the whole procedure and have plenty of reasons for that, but the Ministers want the opposite. After their strange movements trying to accept the directive as A-item without discussion at agricultural and fishery-meetings, they're going straid ahead with it. Nicolas Schmit, Minister Delegate of Foreign Affairs of EU president Luxemburg, asked the council to vote the important directive on the 17th of february. Let's hope the parliament doesn't let them pass! The chance for that seems rather small, als British parliament member Arlene McCarthy annoucing the parliament will react very heavy. Nice. Let's hope democracy wins from the lobbying multinationals.

Will be continued! ;-)

Permalink . Peter . 02:04:35 . 131 Words . EU Software Patents . Email . No views

02/05/05

libwww troubles

As I told you yesterday, I've troubles with my gentoo box. Because of some incompatibilities between php5 and xoops, I wanted to roll back to php4. Emerge failed (don't know why anymore, I think it was mysqlclient or something like that), but on Gentoo Forums, they suggest a revdep-rebuild. One of those packages to rebuild was libwww. That one didn't rebuild, and again on Gentoo Forums they suggested to unmerge and re-emerge it, so I did, but only the first part of it succeeded: unmerging. Emerging gives output like this:

emerge libwww
Calculating dependencies ...done!
>>> emerge (1 of 1) net-libs/libwww-5.4.0-r2 to /
>>> md5 src_uri ;-) w3c-libwww-5.4.0.tgz
>>> md5 src_uri ;-) libwww-5.4.0-debian-autoconf-2.5.patch.bz2
>>> Unpacking source...
>>> Unpacking w3c-libwww-5.4.0.tgz to /var/tmp/portage/libwww-5.4.0-r2/work
>>> Unpacking libwww-5.4.0-debian-autoconf-2.5.patch.bz2 to /var/tmp/portage/libwww-5.4.0-r2/work
* Applying libwww-config-liborder.patch ... [ ok ]
* Applying libwww-5.4.0-debian-autoconf-2.5.patch ... [ ok ]
* Applying libwww-5.4.0-autoconf-gentoo.diff ... [ ok ]
* Applying libwww-5.4.0-automake-gentoo.diff ... [ ok ]
* Applying libwww-5.4.0-disable-ndebug-gentoo.diff ... [ ok ]
QA Notice: USE Flag 'macos' not in IUSE for net-libs/libwww-5.4.0-r2
You should update your `aclocal.m4' by running aclocal.
Putting files in AC_CONFIG_AUX_DIR, `config'.
/usr/portage/net-libs/libwww/libwww-5.4.0-r2.ebuild: line 45: aclocal: command not found

!!! ERROR: net-libs/libwww-5.4.0-r2 failed.
!!! Function src_unpack, Line 45, Exitcode 127
!!! aclocal failed
!!! If you need support, post the topmost build error, NOT this status message.

So it seems aclocal can't be found. A lookup pointed that I have aclocal 1.5, 1.7, 1.8 and 1.9. I tried to create a symlink named "aclocal" to aclocal-1.9. This results in lots of warnings when emerging libwww, but it compiles. The big problem is, since then, I have crashes (segfaults) of firefox and thunderbird when I'm viewing some sites (like The Register). I created a new symlink to aclocal-1.5, wich made libwww emerging with lots less warnings, but the crashes remain. I searched around in bugzilla and forums but no solution. I'll create a new bugreport, let's hope somethings comes out of it. I'll keep you on touch!

Permalink . Peter . 23:11:29 . 334 Words . My Gentoo . Email . No views

02/04/05

Converted my first article, the one about GObject Signals, into the Docbook format.
The resulting HTML is here, the Docbook XML source here.
The CSS stylesheet needs some more polishing, I know.
Also try viewing the article in Yelp: download the source, and run "yelp gob-signals.dbk".
I updated my homepage so there's a new link to the articles section now.

I'll convert the article on Makefiles later, it's a tedious job.

Started working on the "Glib Mainloop" one, won't be finished too soon (not easy to know what to write about ;-))

Permalink . Ikke . 10:52:53 pm . 168 Words . Life, Technology, Linux, Coding Corner . . 228 views . Leave a comment
Just one more left!

Yeah! Done my exam Design of Multimedia Applications this morning. I think it'll be good enough. I didn't like it, just two questions: he gave the title of the chapter and we give the content, but it'll be OK. That means there's just one more left! Tuesday, I have Advanced Computer Architecture. Nice course. My lovely girlfriend also has just one more left on thursday, and after that we'll spend some nice time together :-D

With that horrible exam wednesday, I wasn't in the mood for studying this one. I started yesterday evening, wich is very late, so I just slept three hours this night. XX( Even then, badminton was very hard and very nice today. Now, I'm just going to check a few things at my gentoo box and some forums, and then I'll take a long sleep ;-)

My gentoo does some strange things today. Much emerge errors, I'll take a look closer to it. I used PHP5 till now, but I want to go back to PHP4, but that one doesn't compile. Tetex (a dependency of it) also doesn't compile.

I finally gave Ubuntu Linux a try. The LiveCD won't run on my computer, so I tried it at the portable AMD64 at home. Starts quite quickly, seems nice designed (gnome 2.8.1), it just looks good. The WLAN doesn't work, but I'll install Ubuntu x86_64 on this machine later and try it with ndiswrapper. Anything else seems really nice.

The Ubuntu Logo

Permalink . Peter . 22:51:36 . 240 Words . Life & Fun, Linux, My Gentoo, Studies . Email . No views

02/03/05

Cube live-cd, TC:E update

Remember me introcucing Cube? Check this out! More info here and here. Too bad I can't check it out on my pc, I hope an x86 version will be released aswell. The article in the gentoo newsletter says "a whole cluster of ODWs running Cube will be part of the presentations in the Gentoo developer room at FOSDEM in Brussels, 26-27 February 2005", so maybe I'll see them running there. ;-)

And now for something completely different: more gaming news! :-p The homepage of my favorite RTCW:ET mod has been updated. Next week the developers will release another test-version containing lots of new goodies, and maps. Those screenshots of the 'snow' map look 88| (<-this smiley should be forbidden. I bet it makes some people have an epilepsy attack or something).

Permalink . RealNitro . 19:09:09 . 190 Words . Gaming, CUBE, RTCW:ET . Email . 587 views
Gnome 2.10.0 beta 1 released

Just got the notification on IRC. Jay, finally :-)

Musical hint: check out the "Cello Concerto in a" by Camille Saint-Sa

Permalink . Ikke . 03:56:24 pm . 31 Words . Life, Desktop . . 217 views . Leave a comment

The no software patents logo

Yeah! Democracy realy rules! The European Parliament has voted in the JURI Committee for restart with massive majority! This is a real victory for democracy, because the Parliament made lots of amendments that were ignored by the European Commission, where the big multinationals, like Microsoft and Philips, lobbied for a fast adoption of those horrible patents. That's why the commission wanted to put this as an A-item, an item that's voted without discussion, on meeting of the European agriculture and fishery ministers. Former french prime minister Michel Rocard MEP, PES (FR/PS), gave a very strong speech at the meeting with Commissioner Charlie McCreevy, who had in the morning assured the JURI Committee that the Council would finally adopt its beleaguered Common Position text. Rocard's speech was a very good one, pointing about several "inelegancies" by the Commission, also with some hard words for McCreevy, and that's a big reason why the Parliament members voted for the restart. See here for more information.

One of the trivial patents: dialog boxes with tabs
One of those trivial patents: the 3D use of a computer desktop aka dialog boxes with tabpages.

Exam yesterday (statistics) was horrible. I'll be realy bad. Let's hope it's enough to pass if Analysis of Systems and Signals was good (I think it was good). Tomorrow, I have an exam Design of Multimedia Applications. We had one lesson about MHP, wich is very interesting, one lesson about content management, but most of the time it handles about MPEG standards. Quite interesting, but the projects we had to do this year, weren't that. Let's hope the exam goes well. After that one, there's just one left for next week. After that one: party time! :lalala:

Permalink . Peter . 15:02:04 . 277 Words . Studies, EU Software Patents . Email . No views

02/02/05

Whoohoo, no more Statistics to study for at least half a year.:-D Maybe even forever, because I feel like I have a nice chance to get a B. We'll see. The next exam is Mechanics, next wednesday. It's not easy, but at least it's nog as boring as Statistics.:-p

After I read Ikke's post about using pyGTK, Glade and Python to create small GUI programs, I decided to learn some Python. I already read a small crash course, and I started reading the official tuturial. Too bad I can't afford to spend a day or so to read and practice, so my progress in the tut is rather slow, but I'll get there.:-) Maybe I'll read this tutorial aswell. Hopefully all that will enable me to understand this final tutorialB-)

So far I really like Python, I even solved some Statistic exercices with it yesterday (couldn't resist :oops: B-) :-p )

That's it for this time. bb!

Permalink . RealNitro . 15:16:14 . 236 Words . Life, Linux . Email . 306 views

02/01/05

Writing Makefiles the manual way, and using autotools

As promised, the article on writing Makefiles. As an extra, I also include how to build a basic/simple autotools project.

Writing Makefiles, the manual way

Let's get started.
First of all, you need all files used in my previous article, i.e. test-signal.gob and test-signal-test.c

There are some rules of thumb you can use when writing a Makefile manally:

  1. Find out what programs you need to process your source files

  2. Find out what packages you need: which headers, and which libraries

  3. Make a list of all source files, and find out which ones are dependent on others

Let's get through these step by step:

  1. What programs do we need? We need gob2 of course, to process our gob file. Next to this, we need the stuff you need most of the time when creating a Makefile: a compiler and a linker. And guess what, GCC can do both things.

  2. What packages do we need? Remember the command line thing you had to use when compiling the test-signal executable?

    gcc -Wall `pkg-config --libs --cflags gobject-2.0 glib-2.0` -o testsignal test-signal-test.c test-signal.c

    We don't even need this line to figure out what we need: we're building a gobject, so we need all libs and headers provided by the gobject package, version 2.x in our case, same thing for glib.
    How can we find out where these things are located? Well, the smart people at freedesktop.org made a nifty tool called pkg-config. When a library is installed, it can install a pkg-config resource file, which lists the directories where it's stuff is installed. For some samples of these files, check /usr/lib/pkg-config. The pkg-config command line utility can parse these files and give you the information you need.

  3. What source files have we got, and which one needs which? We got 2 files, test-signal.gob and test-signal-test.c. In the end we want to generate an executable called test-signal, which needs test-signal.c (the GObject implementation file) and test-signal-test.c.
    We will work in 2 stages here: first we'll compile all necessary .c files to an object file (.o), then in the end link all object files together in a nice executable.
    Here's what should happen: test-signal.gob should be parsed by gob to create our test-signal.c and test-signal.h file, test-signal.c must be compiled, test-signal-test.c must be compiled, and finaly test-signal.o and test-signal-test.o should be linked into test-signal.

First a little intermezzo. You might be asking "If I need to make all these lists, what's the use? Can't I just write some Bash script which executes the gcc command all at once?". Well, no. Make does more than just executing some commands. It also checks whether it *should* do something. Imagine you got 100 source files. You got all of them compiled, linked into some executable, run that one, and find some bug. You fix it by editing some lines in one file, and re-execute your huge gcc command. Gcc would recompile all 100 files, which will take some time.
If you use a Makefile make will find out only one file has been altered since the last build, it'll let gcc recompile only that file, then relink all object files together, which will take less time. Next to this: once using autotools, everything becomes much simpeler ;-)

Ok, now we got all prerequisites. Let's get started writing our Makefile.
I always tend to use the same format when writing one (although I dont write many of them, I use autotools ;-)). I start with defining the executables:

GOB2=gob2
CC=gcc
LD=gcc

This is not necessary, but can be usefull sometimes. Now we can use these variables later on. If we want to change the linker, we only have to edit the Makefile in one place.

Next comes the definition of the CFLAGS, the flags given to the compiler (CC) when compiling a sourcefile into an object file:

CFLAGS=`pkg-config --cflags glib-2.0`
CFLAGS+=`pkg-config --cflags gobject-2.0`
CFLAGS+=-Wall -g

As you can see, we request the CFLAGS necessary for glib-2.0 and gobject-2.0 (2.x, actually) by querying pkg-config. In the end we add 2 compiler flags: -Wall, which tells gcc to show all possible warnings, and -g, which tells gcc to include debugging information. This can result in a somewhat bigger executable, but it is very usefull if we want to debug the program using GDB.

Now we define the LDFLAGS, the flags given to the linker:

LDFLAGS=`pkg-config --libs glib-2.0`
LDFLAGS+=`pkg-config --libs gobject-2.0`

This should be fairly self-explaining.

This project only consists of one executable, so I define an "OBJS" variable including all the object files needed to build our executable:

OBJS=test-signal.o test-signal-test.o

Now comes the name of the executable we want to create:

PROG=test-signal

Now the magic starts. Until now we only defined some variables for later use. We were not forced to do so, it's just more convenient later on. Actually, when building small things, we can just use re-use this Makefile, and only have to change the variable definitions (OBJS, PROG, maybe some CFLAGS and LDFLAGS).

Now some rules follow, which tell make how to handle files:

%.c %.h %-private.h: %.gob
        $(GOB2) $<

This rule tells make: "When a foo.c, foo.h or foo-private.h is needed, and not existant, it should be made from foo.gob, by executing "$(GOB2) $<" which gets expanded as "gob2 foo.gob"". Indeed, % represent "a string", $(GOB2) is the variable we defined at the beginning and gets expanded as "gob2", and $< gets expanded as the first item on the right of the semicolon (":").
One big thing to watch out for: Makefiles are indenting-sensitive but you may not use spaces. So in the last Makefile fragment there's a [tab] before $(GOB2).
The format of a rule is very simple:

filenametobuild: dependenciestobuilditfrom
[tab]what to do first[enter]
[tab]what to do next if necessary[enter]

etc.

Next we define how to link our $(PROG):

$(PROG): $(OBJS)
        $(CC) $(LDFLAGS) $(OBJS) -o $(PROG)

$(PROG) is built out of $(OBJS) by issuing "$(CC) $(LDFLAGS) $(OBJS) -o $(PROG)", expanded to "gcc `pkg-config --libs gobject-2.0` `pkg-config --libs glib-2.0` test-signal.o test-signal-test.o -o test-signal"

We still have to tell make how to create object files out of source files:

%.o: %.c
        $(CC) $(CFLAGS) -c $<

You should be able to figure out what this does by yourself.

Now we add some convenience targets:

all: $(PROG)

default: $(PROG)

clean:
        rm -f $(OBJS) $(PROG)
        rm -f test-signal.[ch]
        rm -f test-signal-private.h

This enables us to just type "make", which will start building the "default" target, or "make all", which will build the "all" target, or "make clean" to "build" the "clean" target.
Notice a target

  1. is not forced to "do" something ("all" and "default"). You can just say "it depends on "foo" and/or "bar", which will be built then, and

  2. the dependencies of a target may be empty ("clean")

Let's end with the complete Makefile:

GOB2=gob2
CC=gcc
LD=gcc

CFLAGS=`pkg-config --cflags glib-2.0`
CFLAGS+=`pkg-config --cflags gobject-2.0`
CFLAGS+=-Wall -g

LDFLAGS=`pkg-config --libs glib-2.0`
LDFLAGS+=`pkg-config --libs gobject-2.0`

OBJS=test-signal.o test-signal-test.o

PROG=test-signal

%.c %.h %-private.h: %.gob
        $(GOB2) $<

$(PROG): $(OBJS)
        $(CC) $(LDFLAGS) $(OBJS) -o $(PROG)

%.o: %.c
        $(CC) $(CFLAGS) -c $<

all: $(PROG)

default: $(PROG)

clean:
        rm -f $(OBJS) $(PROG)
        rm -f test-signal.[ch]
        rm -f test-signal-private.h

Save this file as a file called "Makefile" in your source directory, and type "make". This should be the result:

gob2 test-signal.gob
gcc `pkg-config --cflags glib-2.0` `pkg-config --cflags gobject-2.0` -Wall -g -c test-signal.c
test-signal.c: In function `test_signal_testsignal':
test-signal.c:141: warning: implicit declaration of function `memset'
gcc `pkg-config --cflags glib-2.0` `pkg-config --cflags gobject-2.0` -Wall -g -c test-signal-test.c
gcc `pkg-config --libs glib-2.0` `pkg-config --libs gobject-2.0` test-signal.o test-signal-test.o -o test-signal
rm test-signal.c

Notice the "rm test-signal.c": make removes the files it generated itself, so when you update test-signal.gob, it will tell gob to reconstruct the c file, otherwise the c file wouldnt get updated.

Now you should be able to execute ./test-signal.

Ok, we got a nice Makefile now, but it took some time to write it, isn't it? And we don't have a "normal" FOSS install method like ./configure, make, make install...

Well, that's what we are going to do now. The following stuff is much easier than writing Makefiles by hand (you know, FOSS devs are lazy people ;-)), but it is useful to know how Makefiles are formatted, and how they work, though.

Ok, time for some really 1337 (couldn't stop it) stuff: introducing GNU Autotools.

Using the GNU Autotools to build your project

Didn't you ever want to be able to write such a neat ./configure script yourself? Here's how to do it with our sample project :-)

Autotools consist of a bunch of utilities, most of them starting with "auto" (duh). There's autoconf to generate a "configure" script from a file you provide, there's the automake script that creates Makefile's for you (actually, it does not create Makefiles. Read on), and many more.

This is how it works: the configure script will look up a bunch of stuff for you (or you provide it using --with-foo=... etc), it will do some tests to figure out whether the project should compile and run cleanly on your system, and in the end it will generate some files.
A boilerplate for these generated files should be provided by you, called "thefile.in". The generated file will be "thefile" then. Inside "thefile.in", you can use variables like these: "@FOO@", which will be substituted by the configure script.
That's the system automake uses: you write a simple Makefile.am file (read on on how to do this), automake generates a long and difficult Makefile.in file, which gets processed by configure to create the final Makefile.

GNU Autotools have some strict rules (although it is possible, but not advisable, to get around them). Source files should be in the src/ subdirectory, and some files are required in the root directory of the project. We'll find out which ones these are later on.

Let's get started by creating our initial project directory layout:

#Go into an empty directory
mkdir src
cd src
cp /foo/bar/test-signal.gob ./
cp /foo/bar/test-signal-test.c ./
cd ..

Initial task: once more, figure out what the required dependencies are. As mentioned in the first part, we need gobject-2.0 and glib-2.0. Next to this, we need a working C compiler.

We can start writing a configure.in file now, in the root dir of our project, which will be processed by autoconf to generate out ./configure script. Here's what it could look like, comments (starting with "dnl") inline:

dnl Register ourselves to autoconf, giving the main source file
AC_INIT(src/test-signal-test.c)

dnl Init Automake, giving the program name and version. More parameters (author and author's email) are optional
AM_INIT_AUTOMAKE(TestSignal, 0.1)
dnl Enable maintainer mode (debugging flags etc)
AM_MAINTAINER_MODE

dnl Check whether we got a good C compiler. Variable "CC" will be defined and expanded in the .in files
AC_PROG_CC

dnl GOB2 macro, to check whether gob version >=x.y.z (here >=2.0.0) is found. Variable "GOB2" will be substituted/expanded
GOB2_CHECK([2.0.0])

dnl Use built-in macro's to query pkg-config. First parameter is a variable name we'll use later on, second is the package to check for (with optional minimal version), third is the thing to do if the package is found, fourth if not
PKG_CHECK_MODULES(GLIB, glib-2.0, have_glib=true, have_glib=false)
if test "x${have_glib}" = "xfalse" ; then
        AC_MSG_ERROR([No Glib package information found])
fi
dnl So glib-2.0 is found. Remember the first parameter in the previous command, GLIB? Well, GLIB_CFLAGS now contains the output of `pkg-config --cflags glib-2.0`, same thing for GLIB_LIBS with --libs instead of --cflags
dnl AC_SUBST tells configure to substitute the given value in the provided .in files
AC_SUBST(GLIB_CFLAGS)
AC_SUBST(GLIB_LIBS)

dnl Same thing for gobject-2.0
PKG_CHECK_MODULES(GOBJECT, gobject-2.0, have_gobject=true, have_gobject=false)
if test "x${have_gobject}" = "xfalse" ; then
        AC_MSG_ERROR([No GObject package information found])
fi
AC_SUBST(GOBJECT_CFLAGS)
AC_SUBST(GOBJECT_LIBS)

dnl Here we tell the configure script which files to *create*, so we leave out the .in part
AC_OUTPUT([
        Makefile        \
        src/Makefile
])

Currently Makefile.in and src/Makefile.in don't exist yet, they will be created by automake later on.

This file is a very simple one, it can be a tedious job to create complex configure.in files :-/

Next thing: Makefile.am files, which will be processed by automake to create the Makefile.in's.
In the project root dir, this file can be very simple:

SUBDIRS = src

We just define the subdir(s) of the current dir.
src/Makefile.am is a little more complex:

INCLUDES = $(GLIB_CFLAGS) $(GOBJECT_CFLAGS)

bin_PROGRAMS = test-signal

test_signal_SOURCES = test-signal.c test-signal-test.c

test_signal_LDADD = $(GLIB_LIBS) $(GOBJECT_LIBS)

%.c %.h %-private.h: %.gob
        @GOB2@ $<

Some explanation:

  • "INCLUDES" is a variable that will be given to every compile call to "$(CC)", here we only need the glib and gobject includes. Remember these values will be setted by the configure script.
  • "bin_PROGRAMS" is a variable defining the names of all targets we want to be installed as an executable in the bin directory (/usr/local/bin if no prefix is given to ./configure)
  • "test_signal_SOURCES" is a variable defining which files are needed to make the target "test-signal". Notice "-" being replaced with "_" here, which is a common thing in automake files.
  • "test_signal_LDADD" defines which parameters to offer to the linker when linking the input object files to the "test-signal" executable. We could have used a global "LDADD" variable here, like "INCLUDES", or have made "INCLUDES" non-global by using "test_signal_INCLUDES". In large projects this can make a big difference.
  • The last part is the one we also used in our hand-written Makefile. It will be put like this in the resulting Makefile.in by automake, so make will know how to build .c and .h files from a .gob file.
    Automake puts all non-automake-specific stuff that's in Makefile.am in the resulting Makefile.in.

Now everything is done. At least, almost ;-) We still need to call out autotool scripts.
It's easy to do this from a shell script. Most projects call this script "autogen.sh", so will we. This script can be fairly complex, ours will be braindead easy:

#!/bin/bash
aclocal
autoconf
automake -a

As you can see, we first call aclocal (part of the automake package), then autoconf, then automake with the -a flag.
Why "aclocal"? Autoconf, which creates a configure script out of a configure.in file, uses M4, a complex macro system, to do this. aclocal copies the necessary macro definitions for your system to the right place.

Run this script, or enter the commands by hand. aclocal can give a lot of warnings, don't bother about these.
If this is the first time you run the script, you will see some automake errors in the end, and the script execution will fail:

Makefile.am: required file `./NEWS' not found
Makefile.am: required file `./README' not found
Makefile.am: required file `./AUTHORS' not found
Makefile.am: required file `./ChangeLog' not found

These are the required files I mentioned earlier. We'll just touch them for now so they "exist", although contain no usefull information:

touch NEWS README AUTHORS ChangeLog

Now restart the autogen.sh script, everything should pass now.

If you take a look now, you'll see a couple of Makefile.in files are created now (who will be converted into Makefiles by configure, remember?), and the configure script.

Let's take our work to the test, and run ./configure. You'll see the usual output, and everything should pass fine (we don't have a lot of prerequisites :-))

Now let's try if our project builds fine:

make

Jay, lot of compiler commands, no errors. Fun :-)

To finish, test whether the executable works:

cd src
./test-signal

The same output as before appears, we're member of the Autotools User Group now ;-)

That's it for now, more stuff should follow: "The Glib mainloop", "Debugging using GDB", and a from-scratch "program" we'll create. I only lack the time to write everything ;-)

I'd like to convert these articles to some format so they can be used outside this blog (converted to PDF, HTML,...). Docbook seems to be a good format to do this, I need to get used to it first, though. If someone knows a good Docbook editor (next to Conglomerate), please let me know.

Permalink . Ikke . 10:49:08 pm . 2936 Words . Technology, Linux, Coding Corner . . 2952 views . 1 comment

I just found this article on distrowatch.com, and I'm amazed. This is *so* unreal :crazy:
If you're too lazy to read it, or just want to know why you should: it looks like CCux Linux included Ivman in their latest development release, by default XX(
Quoting the Release Notes:

(But) This Version has some nice new Features too. Supermount doesn't handle the automatically Device mounting. In Fact, this is now handled from dbus 0.23, hal 0.4.7 and ivman 0.5. This Combination does this Job much better when mounting CD/DVD Drives or USB Sticks, Kameras or other Things. Therefore it doesn't need anymore User Interaction to get all Drives running.

88| :-P :-) :-D :-p B-) |-| :>>

This is some great new, isn't it? Mostly thanks to Rohan lately I guess :-) YOU ROCK

Next to this: as promised in my GObject Signal handling article, I wrote a makefile for it, and even did the autotools stuff. I'll write an article on that stuff this evening, or tomorrow, if possible.

PS. Good news: exam was fairly good, I think. Let's hope for the best tomorrow.

Permalink . Ikke . 07:00:07 pm . 225 Words . Technology, Ivman . . 1255 views . 4 comments
Belnet jabber problems caused by bug in jabberd14

Now that Belnet has a jabber server, I created a JID there and I want to migrate my whole roster to Belnet as I think it would be more stable than amessage.be. Before moving all my contacts, I first tested out the service there. I added my amessage-JID to my Belnet roster, but never recieved an authorisation request in Gaim. Logging on to the GreenThumb applet, I see "pending" at my amessage-contact. Sander, a jabber contact and very active within jabber and ejabberd, told me that the problem is caused by an s2s-bug in jabberd14. I've sent an e-mail, let's hope they fix it soon or switch to ejabberd.

Permalink . Peter . 13:29:59 . 111 Words . Jabber . Email . No views
Loops and oversized ethernet frames

Looks we know the origin of our problems with the VTK-server yesterday. We're not the only one having those troubles: when the sysadmin of the building connects a computer to an unused UTP-connection, the pc seems like under DoS attack. One of the network operators told about a known problem, some loop. The last message on our firewall (dmesg) indeed was "oversized ethernet frame". That could cause some delay and Metsie, the impatient one, thought our server was the problem and rebooted it with the known result. Normally it should be fixed now...

Permalink . Peter . 11:39:33 . 93 Words . VTK . Email . No views
New category

Just made a new blogging category, "Coding Corner". I've got some ideas related to a serie of articles on Gnome/Glib coding, building on GObjects like in the article of yesterday, but also introducing some basic GTK+ coding, daemonizing, autotools (autoconf/automake/autoheader) and some more. It will be a little "Hello world" program, which can *normally* be done in like 10 lines of code, but a little more sophisticated here. I hope I'll be able to start writing the first article (about the Glib mainloop) tomorrow afternoon.
I'm looking for some format to write the articles in, so maybe I'll be able to generate PDF documents of them later on, etc. Maybe I should take a look at Docbook? LaTeX isn't really suited here.
Of course the CUPS PDF Writer could do it's job too ;-)

Got an exam at 14:00 and tomorrow morning, wish me luck, I need it.

Permalink . Ikke . 09:37:36 am . 148 Words . Life, Technology, Coding Corner . . 206 views . 1 comment
Spirit wants discussion about Free Software with Gates, Belnet jabberserver, Exam and VTK troubles

Haidie,
Just had my exam HFC Accessnetworks, more difficult than I expected, but I think it'll be OK. Next one is those damn bloody statistics. Yeah, like RealNitro. I'll do it for the 5th time, RealNitro for the 3th. If I don't pass this one (now and in August ;-)), I'll have to redo all exams of my second year while I'm doing the 4th year now (in the 3th year I passed all exams succesfully).

Had some troubles at VTK today. When I finnished my exam, I put on my cellphone and Sygmoral had sent a message pointing me on the fact that the VTK servers were down. Now, at VTK, we have a mail/file-server, a webserver and a firewall. The firewall is an old machine (but does its job well) with a hard disk with a corrupted segment. We didn't know about that corrupted segment and found a blank partition when we first looked at it. (we = the sysadmins of this year) Yeah, we thought to prepare a new gentoo-installation and new firewall on that partition, but it wouldn't work. No problem, we should take care of it after the exams, the machine still runs fine under the current slackware. But when testing the new gentoo, we installed grub and for some reason we couldn't make grub boot into the old slack-installation. Re-installing the old lilo didn't work also. The problem with grub is nog fixed and was quite strange: we had to create a symlink to grub.conf, called menu.lst. |-| Didn't know that, never done that and always working. But thanks to Femi, the firewall can now be rebooted back in the working slack-environment without having manually to edit the bootline in the grubconfig while rebooting.

So back to this afternoon: seems Metsie has also notified the website could not be viewed and he didn't get mails anymore. So, he thought to be smart and rebooted the firewall. Bad idea: as I mentoined above, the firewall tries to boot in that corrupted harddisk segment. So I arrive, see kernel panic. With the help of Ikke, I could reboot the machine in a working kernel, but firewalling wasn't working as it used to be: from within VTK we could view webpages of the outer world, but from any other place, we couldn't see VTK's. Pinging was no problem. Seems that there were lots of old kernels on that machine and one of them is the right one to boot :crazy: A hint for everyone: just make sure you always have just one working kernel and delete the non-working ones! So you can't make mistakes ;-)

I also introduced the DeathRow at VTK today :>> At our fileserver, we have a temp-directory but that's evolved to a personal extra storage of the preasidium members. If they have work for school, they put it there. That's not what it's initially created for. If we want to periodically delete the contents of that directory, there are always questions like "please, don't delete this one, we still need it and it's too big for our personal directory" and now there are several files called "filename-please_dont_delete". Now, no more mercy for them! I've created a directory "deathrow" somewhere else on the server, executable and readable for everyone, but the contents itself are root-owned and not readable by others. From now on, every week the contents of the temp will be moved to the deathrow. If there are some files (only VTK-files, no personal files) that must be kept for still a few weeks, we can manually copy them back to temp, but we won't do it much. The old contents of DeathRow are deleted before moving the temp to it.

Some real other stuff now!
Tomorrow Bill Gates comes to Brussels. Normally he'll talk about Software Patents. For the moment, Software Patents are not possible in Europe, but the European Patent Office illegaly accepted more than 30.000 of them. Now, those companies payed a lot for this patents and they now want to make those patents legal. Many protests from free software organisations, consumer organisations, academics, scientists, economists, SME's and the European Parliament made enough amendements to the directive preventing non-trivial patents. Now the European Commission wants also to allow these ones by placing them on the meetings shedule of the European Agriculture Ministers (who don't know anything of this by default) as an A-item: an item that's being voted (normally yes) without discussion. In the meantime the European Parliament tries to restart the whole proces to reopen the whole discussion since many people have changed their mind (against SP's) and the EU now consist of 10 more countries than when the whole story started. And now Gates comes lobbying for those damn software patents... Let's hope they never introduce them here. More info about why software patents are bad can be found in Dutch here, in French here and here in English and many other languages.

No software patents!

Now that Gates is coming to Brussels, the Flemish political party Spirit wants to discuss with Gates about Free and Open Source Software, FOSS. Spirit is known from this I pointed about yesterday, but last year they did also reach the news with an IMHO stupid action "Gates, open your bill" asking for more FOSS in schools and public. OK, I also want more FOSS in schools and so on, but they didn't promote FOSS that way. They only shitted on MS (OK, I also do that sometimes ;-)), their webpage was called "windowssucks.html" and they promoted open standards using a Flash-website :crazy: They even made MS send a letter to the Belgian Government asking for apologies. Crazy people...

Geert Lambert
Geert Lambert, the chairman of Spirit

Some good news about Jabber: BELNET, the Belgian national research network for education, research and public services, has installed a Jabber server. It's a nice bi-processor SunFire V65x with 2GB RAM, connected to the Belnet backbone through a 1Gb ethernet connection running the jabber deamon and a few transports to MSN, ICQ/AOL and Yahoo. They also provide a nice online client called Greenthumb and a very simple one. The goal is to create an open IM-infrastructure, primarly for schools, but usable by everyone. More information can be found here. Let's hope it haves some succes. I already think about moving my amessage.be JID to Belnet hoping for a better service (less downtime for example ;-)).

Jabber Software Foundation

Permalink . Peter . 00:47:17 . 1065 Words . Life & Fun, VTK, Studies, Free Software, Jabber, EU Software Patents . Email . No views

01/31/05

GOB signals walkthrough

I mentioned the "GOB" utility a couple of times already, but the more I use it, the more I start to love it.

I'd like to take you on a little "Glib/GObject Signals" tour today.

First of all, what are Signals? The GObject Signal API states:

Signals

Permalink . Ikke . 02:04:57 pm . 830 Words . Technology, Linux, Coding Corner . . 7549 views . 46 comments

01/30/05

Jono Bacon wrote an article on Python coding for beginners, using PyGtk and Glade to create GUI's.
The article was inspired by his work on an application handling iRiver devices. It is (AFAIK) using HAL too.
Guess it's time for me to (re)start doing some Python coding too... Get some more skills ;-)

I fixed some (mail handling) bugs in Beagle yesterday, got the "Open IM" functionality of Best working locally (again using a patched Gaim). Mail patch should be applied soon.

[edit]Patch has been applied: link (and other updated files)[/edit]

Trying to get some GObject's for CDIS working using GOB now. GOB really rocks, it's so easy to write code once you read the complete manpage :-)

Plea"se note Ivman got a new Wiki, thanks to Rohan.

Permalink . Ikke . 05:37:09 pm . 268 Words . Technology, Linux, Desktop, Ivman . . 854 views . 1 comment
More exams, no more cold, Linux Gaming

Peter seems to be interested how I'm doing atm, so here's a small update. First of all, the cold is (almost) over. And my Physics exam was, erm, reasonable. I think I can get a B on it, but I'm not entirely sure (it was a multiple choice exam, which means that if I answered a question wrong, points are substracted :-/ ). An A is possible as well, but I don't think I'll have that much luck :-p (the theory questions were very hard imho).

(if you are not familiar with the grade-system at our faculty: A>=13/20, B>=10/20, C>=6/20, D>=0/20 or less :-p )

Anyway, I'm preparing for the next exam now, and that's one of the reasons why I waited this long to post here. I don't think that next exam (Statistics, just like Peter) is going to work out well. But we'll see.

About the 'Linux Gaming' part: It's quite simple, I like linux, and I like gaming. I just love fragging a bunch of people online to relax or focus my mind (really!). Just to give this blog some content, I plan to (shortly) review some (linux) games I have played. Just try them out, most of them are free (some free as in free beer, some free as in ...). Btw, my nick is [BE]RealNitro. ;-)

Number one: Cube

Cube is an Open Source FPS (First Person Shooter). Just like most other FPS games, Cube has a singleplayer and multiplayer mode.

In single player mode you just shoot some dumb (as in Doom1-dumb) monsters, in a lot of different levels. Some levels have a 'story' in them, but most of the time it's just a matter of killing all the monsters and using a trigger to open a room with even more monsters. This is nice, but not my favorite part of the game.

So I prefer playing the multiplayer mode. The gameplay in it is very, very fast. If you're not used to playing FPS games online, you're dead meat (except if you hit a n00b server ofcourse :-P ). And I'm serious here.

The Cube soundtrack is great aswell, and really brings up the adrenaline when playing online. A unique feature of this game is the ability to change levels while playing them (just hit 'E'), and even online (search for a server with the co

Permalink . RealNitro . 12:16:58 . 478 Words . Gaming, CUBE, Life . Email . 993 views

01/29/05

ZDnet Belgium pionts about a new project from the Belgian Government. Project E-coop will be funded by the belgian State Secretary Els Van Weert and the European Social Fund and will support deployment of Open Source solutions of 80 belgian SME's active in social economics. The initiative goes out from MeMO, wich stands for Mens- en Milieuvriendelijk Ondernemen (human and environment friendly in Dutch) and will start from UPCASE, wich now installs Postnuke, PHPBB2, Owl, SPIP, Sherpath, and PHPWIKI, but will be extended with installation, user support and employee training for groupware, knowledge management, e-learning, accounting, office, webbrowsers, e-mail, Linux,... Everything an SME needs to start.

Enjoyed badminton yesterday, very nice games and sometimes quite hard. Studied some statistics today, really boring, but I'm going to start studying HFC Access Networks: Case Study, wich is a course much more interesting. It handles about the modern cable (and DSL) networks, the whole structure, technologies and applications (internet, telephony, digital television,...) of it and is a case study of the network of the Flemish cable operator Telenet. I've three exams next week, not much time, let's hope it goes well.

Permalink . Peter . 21:13:42 . 187 Words . Studies, Free Software . Email . No views

01/28/05

I just recieved this message through the fedora-devel-list. The goal is to boot Fedora Core 3 by PXE and mount root from NFS (readonly). Maybe an interessting alternative for in case we can't get the real stateless working. It isn't that good, I think, no caching for example, but maybe it could be nice to temporaly provide such an installation to provide an easy management and configuration of all clients. Also interesting for some testing purposes before installing the real stateless, if we have to wait till some improvements and continuation of that project. An option to think about!

Permalink . Peter . 19:54:24 . 98 Words . Project status and progress, General . Email . No views

Yeah, the popular belgian quality newspaper De Standaard writes about a new virus (for windows of course) that pops up a window every five seconds calling you an idiot. Stupid thing, no damage, but very annoying :>>

popup window: you are an idiot

Done that exam I pointed about yesterday. Very difficult exam, but with really nice questions. Some typical engineering questions, like "you have two systems and want to connect them to provide this functionality. How should you do that? Wich technologies and why?" I think it will be OK. So that makes three down, four to go. It'll go hard next week: exams on monday, wednesday and friday. Let's hope it'll be alright.

Now I'm going to clean up a bit for going home. Play badminton this evening! Smash all frustrations out, be aware :>

Permalink . Peter . 15:16:56 . 129 Words . Life & Fun, Studies . Email . No views

01/27/05

Hello world

Hi,

Thanks to Ikke I also have my own blog now. I'm not going to introduce myself because I already did it here. Not much talk today, I have an exam tomorrow about Design of Distributed Software and I still have much to do for it.

Permalink . Peter . 16:03:33 . 46 Words . Life & Fun, Studies . Email . No views

01/26/05

Sick

I'm sick. My nose is running and my thoat hurts. Damn colds. And I have to study. I'm in the middle of what we call here 'den blok', which means I have to study all day to pass my exams. So I'm not really having the time of my life. But I felt like starting this blog, so here I go:

I'm not entirely sure about what I'll post here yet. I created categories for the games I play, for webdesign, and for 'fun', but some may disappear, and some others may be created later on. Now that I think about it, there should be a 'linux' of 'gentoo' category too. I've been enjoying gentoo for over half a year now, and I still enjoy it. Though I'm pretty p*ssed @ the ati-drivers and the way they work with xorg atm -- can't get DRI to work. This means I can't relax while playing Cube or TC:E. >:( Hopefully some new ebuilds are released soon. (note to ikke: the smileys don't appear where they should :-p )

Before I forget: many thanks to Ikke for hosting this blog! :>>

Permalink . RealNitro . 23:57:41 . 200 Words . Life . Email . 503 views

01/24/05

Beagle installed

Got beagle-cvs installed properly, started hacking on an Irssi log backend already. It rocks :-)
And so do the guys in #dashboard@GIMPNet ;-)

I'll report on how to install it (on Gentoo, of course) later.

Permalink . Ikke . 10:48:04 pm . 34 Words . Technology, Desktop . . 1237 views . 35 comments

Seems to be a very "cool" (;-)) thing lately to show some pictures with snow in your area in your blog. So here are mine (link won't stay valid).



Some more in my gallery.

Not as impressive as the pictures by Garret LeSage, John "J5" Palmieri, Tim Ney, John Trowbridge, Nat Friedman, Joe Shaw, Luis Villa and many more, but well...

Going to write a Beagle-cvs ebuild now :-)

Permalink . Ikke . 03:43:00 pm . 139 Words . Life, Desktop . . 436 views . 35 comments

Beagle is so damn impressive. Check these demo's.

Permalink . Ikke . 10:57:45 am . 22 Words . Technology, Desktop . . 197 views . 1 comment

01/23/05

I started looking into Gnome coding last days, by reading some of the great tutorials in the Developer section of the Gnome site. Currently I'm reading the stuff on GObjects, which is very interesting. I first read the article on IBM DeveloperWorks regarding "Wrapping GObjects in Python", which is a neat way to use C code in Python. It's also written by Ross Burton, as you might remember the author of the Contact Lookup Applet.
Regarding that applet: Ross is not willing to incorporate my Gaim patch, because it is too much bound to Gaim, and requires a patched version of Gaim. Too bad, Cdis should provide a solution for this.

Now what is Cdis? It's the new name for what I previously called DAL. Cdis stands for "Common Desktop Integration Standard", a name proposed by John "J5" Palmieri. Some information regarding it I sent to the Xdg list at freedesktop.org is available here. Beware, the thread got corrupted somewhere and is attached to the pkgconfig2 thread, so it continues here

I had some talkings on IRC with JakobS, the KDE maintainer of the MulticastDNS features coming in KDE 3.4, regarding automatic code generation. It will be fun to get this working (XML2C, XML2GObject, XML2KObject,...). It should be possible to do this without writing real code, just using XML and XSLT, which generates the necessary code for various platforms, based on a CdisInterface description file.

For the GObject creation, which is a very tedious task, I've been looking into Gob, the GObject builder. It just rocks. This is a sample Gob file:

requires 2.0.0

%{
//This should not be necessary, but well...
#include <stdio.h>
%}

class Ikke:GobTestOne from G:Object
{
        private int test=1;
        property INT test
                (nick = "test",
                 blurb = "Testje",
                 export,
                 link);

        public void
        printtest (self)
        {
                g_printf("%d\n", self->_priv->test);
        }

        public GObject *
        new (void)
        {
                return (GObject *) GET_NEW;
        }
}

As you can see, a very simple format.
If I process this file using gob, this is what I get:

$gob2 gobtest1.gob
$ ls
gobtest1.gob ikke-gobtestone-private.h ikke-gobtestone.h
ikke-gobtestone.c
$ wc -l ikke-gobtestone*
22 ikke-gobtestone-private.h
276 ikke-gobtestone.c
75 ikke-gobtestone.h
373 total

which is rather impressive. The generated code is also very usefull.

A "bigger" Gob file (just a sample) can be seen here, whilst this is a sample C file "using" the object. Impressive, huh?

Gnome 2.10.0 beta1 tarball creation tomorrow, launch on wednesday. Jay! I got the webcal in my Evolution Calendar ;-)

That's it for now, maybe I'll have some usefull stuff to say soon ;-)

Permalink . Ikke . 11:04:37 pm . 581 Words . Technology, Linux, Desktop . . 9760 views . 43 comments

01/20/05

Long time ago.

I've been working on a lot of things lately, hope I'll be able to report on them later, now something I did today.

I integrated Ross Burtonini's Contact Lookup Applet with Gaim.

This is the thing "in action":


The standard contact view


New button



Conversation opened

Actually this was my first Glade/GTK+ code ever, although not that much ;-) And it rocks :-) Also the Gnome devs on #gnome@GimpNet and the Gaim guys on #gaim@Freenode were a great help when needed. Thanks a lot!!!

If there's already a conversation running, that window will be focused, and if Gaim-Remote isn't running, there'll be a small error dialog box.

Gaim also needs a patch for now, but the necessary features should be standard in upcoming versions.
Make sure you got the "Remote Command" plugin enabled too.
If you're not using a patched version of Gaim (actually not Gaim, but Gaim-Remote) the "Start IM" button will also be displayed, but when pressing it, nothing will happen (no crashes or so, just nothing).

Current CLA and Gaim patches are available here.

I'll send an email to Ross, maybe this stuff can get into CVS?

I hope you like it :-)

Permalink . Ikke . 10:51:31 pm . 237 Words . Technology, Linux, Desktop . . 218 views . Leave a comment

01/15/05

Movie - Oceans12

Saw Oceans 12 yesterday evening. Never saw Oceans 11, so I can't compare, but it made me think of "The Italian Job" and "Catch me if you can".
Not a bad movie, if you're willing to turn off your brain for a while.
The trick with Julia Robberts is nice :-p But I won't say more about that B-) ;-)
By the way: funny comment on IMDB. It reveals the Robberts trick though :-(

Oceans12

Permalink . Ikke . 10:29:40 pm . 101 Words . Life . . 209 views . 1 comment
Done today

Not much DAL work, next to some arguments on the mailing list. I'll code some more stuff tomorrow. First need to work some things out.

Worked a bit on the frontpage. It's pure XHTML/CSS again now, SEO-optimized (simple html, headings, good meta tags,...). It even looks good in links :-)
Also did some mod_rewrite work for this blog (http://blog.eikke.com/ikke works now :-) others should follow), and error page handling (404's are redirected to / now).

I'm quite tired, need some sleep, first exam on tuesday. Bloody chemistry.

Permalink . Ikke . 10:17:02 pm . 104 Words . Life, Technology, Linux, Desktop . . 235 views . 3 comments
FC4 schedule released, google

Today, Bill Nothingham from RedHat announced with this message on the fedora-devel-list the release of the schedule for Fedora Core 4. He asked for proposals wich software should be included, you can follow the reactions here. Bryam, another member of that list, also asked after the Stateless Linux project for FC4. Let's hope there comes some reaction from devs, not only from within RedHat, that they want to continu development of that nice project.

At 21 feb, FC4 Test 1 should be released. We can see if Fedora Stateless is still included then.

Some other news: even till a week after this server went down, we were the first result when asked google for "fedora stateless" and you could see these messages by googles caching function. Now, this blog is up again, but we dissapeared from google results. Let's hope we come back soon again, so more people read this and maybe someone could help us or gets helped by reviewing our experiences.

Permalink . Peter . 03:46:32 . 160 Words . General . Email . No views

01/13/05

After quite a lot of (positive) replies on both desktop-devel@gnome and xdg@freedesktop, I wrote some little summary of current state.
This stuff is quite different from the initial implementation proposition, but well :-)

Thanks to RealNitro and WindowLicker I got my frontpage pure XHTML-Strict/CSS now. Thanks guys :-p

Permalink . Ikke . 10:37:46 pm . 78 Words . Technology, Linux, Desktop . . 225 views . Leave a comment

Check it here :-) Needs some more cleaning of HTML code, but well. Thanks to RubenV for the base template.

Sent an RFC to freedesktop.org's XDG list, and one to Gnome's desktop-devel. Let's hope I'll get some responses...

Permalink . Ikke . 03:06:13 pm . 91 Words . Technology, Desktop . . 188 views . Leave a comment

01/12/05

Please review this and tell me what you think.

Is it worth the effort? Has it got any use? Is there already some project like this? Enhancements?...

Thanks, Ikke

Permalink . Ikke . 06:08:26 pm . 43 Words . Technology, Linux, Desktop . . 3109 views . 29 comments
Gaim plugin... working

No proof/evidence for now, some people "enjoyed" the working state already ;-) I'm set on "away" state now when the screensaver listener detects a running screensaver, and I'm online when the screensaver is stopped.

Needs a lot of cleanups...

And I'm thinking of a new project, which (next to other things) incorporates this thing. Similar to HAL, but at desktop level -> DAL. I'll write more about it later.

Permalink . Ikke . 12:44:34 pm . 68 Words . Life . . 293 views . 16 comments

01/11/05

GaimDbus

A picture says 100x more than words...

GaimDbus sample 1 (thumb)
(thumbnail is link to original picture)

This makes me feel good :-)

The picture shows how I started and stopped xscreensaver a few times (by issuing "xscreensaver-command -activate" on a console), in the bottom left corner you can see the desktop-event-notification executable running (I did not daemonize it yet), and last but not least the Gaim debug window where my Gaim plugin shows it's received some DBUS messages sent by the server.

There is on major bug: XScreensaverStarted isnt always catched by the listener, nor by "xscreensaver-demo -watch". I will have to contact the xescreensaver maintainer I guess.

Next to this: the actual "set me away" isnt done yet. This shouldn't be too hard now, calling some functions when a DBUS message is received.

I included all necessary autotools stuff too, so it's as easy as sh autogen.sh && ./configure && make && make install.

I hope I'll be able to code the other parts tomorrow. Sleep now.

Big thanks to everyone hacking on DBUS, the guys at #gaim@freenode, and Google ;-)

Permalink . Ikke . 10:51:49 pm . 182 Words . Technology, Linux, Desktop . . 226 views . 3 comments
Session Bus working, Gentoo GDM patch and Xscreensaver jay'ness

signal interface=com.eikke.DesktopEventNotification; member=XScreensaverEvent; sender=:1.58
string:ScreensaverStarted
signal interface=com.eikke.DesktopEventNotification; member=XScreensaverEvent; sender=:1.58
string:ScreensaverStopped

Next to this, I got my session bus working thanks to the nice guys on the DBUS mailing list, Ross' IBM article and some custom hacking.

Now my session bus is started when I log in, patch for GDM's Xsession file submitted into the Gentoo Bugzilla

Next task: simple DBUS listener to test the Xscreensaver notification stuff, and write the Gaim plugin.

[edit]
DBUS test listener is done:

./dbus-watch-test
Event received: ScreensaverStarted
Event received: ScreensaverStopped

TODO:
- Gaim plugin (get DBUS inside Gaim's Glib mainloop)
- Daemonize the event submitter

Permalink . Ikke . 05:33:03 pm . 124 Words . Technology, Linux, Desktop . . 237 views . Leave a comment

01/10/05

Still haven't got the DBUS session bus working :-(

Made a patch for HAL-CVS so it broadcasts kobject-uevents to DBUS. It's of no use. Will give it some usefullness (SP?) tomorrow :-)
Current patch is here.

Started working on the xscreensaver <-> DBUS link. Some testing code is here, not indented. It's buggy, so don't look at it too closely.
sGapor gave a good hint about another possible use of this daemon: pause your media player when your screensaver is started.
Creating the Gaim plugin to idle you when the screensaver is started shouldn't be too difficult now I looked at the sources of gaim-remote.

Anyone's got the name of a music group that plays Turkish traditional music?

[edit] Just got an email from Havoc with some pointers on how to try to get the system bus working. Tomorrow...

Permalink . Ikke . 10:59:25 pm . 186 Words . Life . . 243 views . 2 comments

01/09/05

I got a (IMHO) nice UI on code.eikke.com, using AutoIndex. It still needs some hacking: I want to get some mod_rewrite working, so I can use links like http://code.eikke.com/adir/foofile, which will then be interpreted as http://code.eikke.com/index.php?dir=adir&file=foofile. AutoIndex should generate similar code too then. This way, Google (which doesn't like GET arguments) will index my pages too.
Oh, and I want a GNOME iconset. I had to choose between WinXP and KDE...

Started a discussion on kobject-uevents and DBUS on the mailing list today (link). I've been thinking about it last hours, and my proposition is stupid. Kernel events shouldn't be sent out by the DBUS daemon itself. This should be done by some separate daemon.

If only I could get my session bus working :-(

Normally I should be allowed to create a Subversion repository on my domain once more. Jay :-)

After my blog post about xscreensaver and DBUS, jwz, the xscreensaver developer, posted a comment. I mailed him regarding this issue, check "More" for a digest of our discussion.

Had a performance with my orchestra today. We played the first part of the "New World Symphony" by Dvorak, and the Ouverture from "The Barber of Seville" by Rosinni. Some minor mistakes, but it was pretty good. The public was enthousiastic.
Next performance: April 23, Conservatorium Ghent, Belgium.

=> Read more!

Permalink . Ikke . 11:00:40 pm . 1170 Words . Life, Technology, Linux, Desktop . . 561 views . 1 comment

01/08/05

Didn't have much time to code today, had to visit some family. Had a good meal ;-)

I hacked some DBUS support into XScreensaver today. Xscreensaver *should* send out a signal on the session bus now when the screensaver starts, or when it stops. Now guess what: it doesn't work (for now). Some security thing which disables me from sending events on my session bus :-(

Patch is here.

When this works, I will write a plugin for Gaim, which listens to the session bus. If it catches a screensaver event, it'll set your status to "Away" when the screensaver is started, and make you "Available" when the screensaver is stopped, if you were so when it started.

I created a new subdomain, http://code.eikke.com, where coding stuff will be hosted. I'd need some fancy "index" script, because Apache indexing doesn't work :-( I'd also need a decent Subversion repository. Maybe I should ask the guys who are so kind to host me (you know who you are).

Got some other new DBUS-based idea too, I'll discuss it on the dbus and gnome-desktop mailing lists when I get time.

Sent the mail to the dbus list regarding the kernel events stuff. Now it looks like I wasn't subscribed on that list anymore, and I need moderation... Hope they'll read and allow it soon.

Permalink . Ikke . 10:55:32 pm . 265 Words . Technology, Linux, Desktop . . 942 views . 3 comments
Dbus kernel events part 2

I got the appended strings working, thanks to the patch to udev-ize CUPS (here).

No screenshot for now, this is some of the result (from dbus-monitor):

signal interface=org.kernel.KobjectUevent; member=KobjectUevent; sender=:1.20
string:ACTION=remove
string:DEVPATH=/module/ext2
string:SUBSYSTEM=module
string:SEQNUM=1061
signal interface=org.kernel.KobjectUevent; member=KobjectUevent; sender=:1.20
string:ACTION=add
string:DEVPATH=/module/ext2
string:SUBSYSTEM=module
string:SEQNUM=1062

Some more code-cleanups, and its done :-)

Next thing TODO: get on the DBUS mailing list, ask whether it's usefull to write a patch which incorporates this into DBUS itself (optionally), so one more daemon isn't necessary.

Current code is here. Watch out: it's not completely finished!!!

Permalink . Ikke . 10:54:25 am . 134 Words . Linux . . 1436 views . Leave a comment

01/07/05

After my posting on LKML and the following answers and hints, I started hacking a bit.
This ended up in a utility that listens to kernel kobject_uevent events, and sends these to the DBUS System bus, so other applications can listen to DBUS to get kernel messages.

Evidence:

Dbus kernel events
(thumbnail is link to original image)

One problem for now: extra strings I pass with the DBUS message aren't sent. Got to look into this later... I wish there was more DBUS coding documentation, and more samples.

Permalink . Ikke . 10:18:58 pm . 106 Words . Linux . . 711 views . 1 comment

Currently busy catching up woth new Gnome improvements. Gnome 2.10 (dev 2.9) looks promising once again :-)
I've been on GimpNet (irc.gnome.org) for a while too now, just met scapor who owns this blog. Great source for new Linux-desktop users, and even advanced users can learn new stuff :-) Keep going!

Kernel events were merged into the Linux kernel, which should simplify kernel<->userland interaction a lot. There's a small utility called kdbusd which shows a prototype of listening to these kernel messages, and sends them to the DBus System Daemon. kdbusd could be broken now tough: I didn't test it yet, but it looks like the 2.6.10 uevent implementation is somewhat different than the one Arjan Van Der Ven, Robert M. Love and Kay Sievers wrote.
I started hacking more uevent calls into the vanilla kernel...

One nifty feature in Gaim I wanted to blog about some time ago is the "Expand" feature. I was too lazy to make screenshots in that time tough ;-)
Now I found a nice screenie and explanation of it in the GnomeTux blog I mentioned at the beginnning of this post. Check it here. This is the screenshot:

Stuff on my TODO list:
- Gphoto2 Gnome-VFS provider, so I can browse my Canon Ixus 500 files in Nautilus. The camera does not support usb-storage, so it can't be mounted. Gphoto2 supports it perfectly tough. But I dislike Gthumb...
- Work on Gaim - Evolution links.
- Make some program/plugin/... that enables syncing my new Nokia 3100's Agenda to Evolution's Calendar. There is a lib called Gammu that is capable of extracting data out of this phone, but there is no Evolution link. I'd need to test Gammu first tough (anyone got a DKU5 datacable?).
- Some more stuff I forgot now.

Got to study some more now, bloody chemistry.

Permalink . Ikke . 02:12:35 pm . 447 Words . Life, Technology, Linux, Desktop . . 278 views . 1 comment

01/06/05

Permalink . Ikke . 01:54:03 pm . 0 Words . Life . . 197 views . 1 comment

01/05/05

Fedora Stateless development

Yeah! Finally this blog is up again! Don't blame me, Jens or ikke, it wasn't our fault :-p

With that downtime, I hadn't the possibility to post a quite important message that could change our plans drastically and even could stop our project. As you can see in this message on the fedora-devel-list, the Fedora Stateless project isn't in active development right now. At RedHat, they're thinking about the future of the whole project. They don't know yet if they'll continue the project. I think the goals of this project are fantastic so I hope they continue it! It could be a very nice system and a great help for sysadmins of public computers, like in universities or libraries, even in companies. There could even be a nice future for it in the thin clients Hitachi is introducing. On this article (or this one for dutchspeaking people) you can see Hitachi wants to protect the information that's now stored on the notebooks of their employees by creating a thin client with no harddisk so all information must be stored on a server. In that way, a client running fedora stateless could be a more nice solution because all program's run on the computer of the employee and information is stored on the server by network mount. A big advantage is that you can use standard computers for this purpose.

So, let's hope they continue the whole project. And if they continue it, RedHat will place a number of people working on it.

If they don't continue, then I don't know what to do with our project. Just give up and stop the whole project? Restart from the beginning with an X-environment and hope we can create a working system? Others already did it, as I've seen on the fedora-devel-list. I don't know. Let's hope future will bring some good news.

Permalink . Peter . 18:02:37 . 310 Words . Project status and progress, General . Email . No views
Official statement

WE'RE UP AGAIN :-D:-D:-D:-D:-D

I'll explain the downtime later ;-)

Permalink . Ikke . 05:34:32 pm . 13 Words . Life . . 213 views . 1 comment