Older blog entries for frehberg (starting at number 3)

3 Dec 2002 (updated 11 Apr 2004 at 21:10 UTC) »

Pooh, I had to do some basic IO programming for Wind*ws-NT and doing so I learned some more details about its API and those MSVC toolkits.

Now I know what it feels like if you do not know how the systems looks like beneath: Common API features of Win32 are good documented but in the moment you need more details for robust code no information is at hand (not at MSDN). It ends up in test applications to figure out how the function might behave. Sometimes documented feature do not work at all or it depends on the Windows Version it was compiled for.
Eg. to close sockets descriptors CloseHandle(sd, ...) may be used on Win-NT, but it is forbidden for Win-CE (Pocket-PC). Some features for Process enumeration exist for Win95, and for Win2000, but for Win-NT-4.0 you need to use another API. Process IDs can be transformed to object handles, being used for synchronization, but it is not possible to query the objects process ID in reverse (The latter is really a problem as PIDs can not be used for process synchronization in robust manner, and process handles can not be used for emitting terminal events). Furtheron, good books about Windows-NT System and Network programming are rare.
In constrast, open source code is free for everybody and if it is bad documented you can have a look into it, basta! In my eyes, this is really an advantage.

Well, as default libc layer of Win-NT is allmost useless and even socket API's home is the native layer of Win32 (which does not interoperate with libc layer function like 'write'), I wrote a thin abstraction layer, close to unix API, that could be used to write portable C-code easily, for Unix and Win32. It is beta and still evolving, but you might try http://cs.tu-berlin.de/~frehberg/gios.html

8 May 2002 (updated 8 May 2002 at 23:06 UTC) »

Successfull day: managed to compile and link gnu-prolog against generated corba-interface (ORBit2). The main problem was that gnu-prolog uses its own magic linker and I had to figure out how to insert them into build-process of automake/autoconf. Reading automake manual (in the end) was a great help ;)

gnu-prolog is able to generate native code (magic!). Now it is possible to write a scheduler in highlevel language Prolog and create fast native code for MrProject; no need for additional interpreters. ;) In addition Bowie Owens sent me his Prolog implementation of cumulative FD-constraint, being crucial for efficient Project-Management.

At first I will write a function that searches for first feasible solution, being consistent with all user defined resource-constraint. Having this function it is possible to place new tasks in calendar where resources are available.

This function can be extended later to search for optimal solution.

Great week ;)

by the way, this man is cool: http://www.sfc.keio.ac.jp/~ted/

Hacking "iorping" for "orbit-tools" I had a look into good old "ping.c", reusing code snippets and copying design. I love to inspect someone elses code, learning new concepts and tricks. Without open source this would be impossible, I guess.

My first diary entry:
Finished my studies. My interests are parallel-computation, distributed-computation, and constraint-programming. Currently I'm hacking orbit-tools and MrProject scheduling back-end.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!