Older blog entries for blindcoder (starting at number 9)

5 Feb 2003 (updated 4 Sep 2005 at 10:24 UTC) »

FreeSerf

still trying to implement clicking on the landscape while being able to freely rotate it. Must make CPoint a libGLI-Object after all... oh well.

29 Jan 2003 (updated 4 Sep 2005 at 10:27 UTC) »
Apache 2

got abandoned due to uselesssness of mpm_perchild.

FreeSerf

making progress

Linux Progress Patch

Adjusted it for vanilla-linux 2.4.20 Should be on http://lpp-themes.sourceforge.net/ soon

22 Jan 2003 (updated 22 Jan 2003 at 08:26 UTC) »
Apache2

Screw those guys from Addison-Wesley! Quote from their book "Apache Webserver 2.0":

[mpm_perchild] is especially useful for big ISPs because they can run their Virtual Hosts under the user and group of their customers

While this is not entirely false, it's not the whole picture. Imagine an ISP with some 300 customers (does that count as large? I doubt that) and a configuration with mpm_perchild like this:

*config config*
NumServers 300 #yes that's 300. One for each client
*more config*

NameVirtualHost xxx.xxx.xxx.xxx #just assume all on one IP

<Virtualhost xxx.xxx.xxx.xxx> DocumentRoot /var/www/cust0001 ChildPerUserId cust0001 cust0001 1 # that's User, Group and Number of Servers for this combination. This can also go into Global, and doesn't actually change the User and Group for the VHost AssignUserId cust0001 cust0001 # User and group for this VHost </VirtualHost>

<Virtualhost xxx.xxx.xxx.xxx> DocumentRoot /var/www/cust0002 ChildPerUserId cust0002 cust0002 1 AssignUserId cust0002 cust0002 </VirtualHost>

<Virtualhost xxx.xxx.xxx.xxx> DocumentRoot /var/www/cust0003 ChildPerUserId cust0003 cust0003 1 AssignUserId cust0003 cust0003 </VirtualHost>

and so on until cust0300. A `ps -eaf | grep httpd` would then show:

cust0001  3582  3580  0 08:48:08 ?        0:00 /avol1/intranet/apache2/bin/httpd -k start
cust0002  3583  3580  0 08:48:08 ?        0:00 /avol1/intranet/apache2/bin/httpd -k start
cust0003  3584  3580  0 08:48:08 ?        0:00 /avol1/intranet/apache2/bin/httpd -k start
...
cust0300  3882  3580  0 08:48:08 ?        0:00 /avol1/intranet/apache2/bin/httpd -k start

This is but an example for a medium-sized ISP with 300 VHosts. Now, think of BIG ISPs with several THOUSAND VHosts. Okay, they wouldn't run on one machine, but that doesn't eliminate the problem IMO.

Oh, and if you wonder about cgi-scripts. A cgi-script running in /var/www/cust0001/cgi-bin owed by cust0001 with the following content:

#!/bin/bash

echo -e "Content-Type: text/plain\n\n"

echo "PWD: `pwd`" echo "USER: `id`" date >> hello && okay="1" if [ "_$okay" == "_1" ] ; then echo "Okay" else echo "MEEP MEEP" fi

would create the following output:

PWD: /pvol1/icntest/wt0000/cgi-bin
USER: uid=43697(infowww) gid=2000(webadmin)
MEEP MEEP

So you STILL need the suEXEC wrapper.
And now PLEASE tell me that I'm terribly, TERRIBLY wrong.

Apache2

Oh well, back to work after a week of sickness and what do I have to see? A whole new version of Apache2 to play with. I don't know if I should be happy or sad.

FreeSerf

Boy, do I feel dumb. After days of trying to fit a map of hexagons into memory (and actually drawing them to the screen using 6 triangles, too), SpoonMeiser pointed out how to do it right... I hope the weekend will come soon.

Apache2

WEE! Finally it compiled and it runs!
Summary:

The problem was:
Get Apache2 running on Solaris with --with-mpm=perchild

Solution:
1. Add one line into httpd-2.0.43/server/mpm/experimental/perchild/perchild.c at line 59:

#define _XPG4_2 1

2. Comment out line 77 in /usr/include/signal.h
3. Symlink /usr/lib/libiconv.so.2 -> /usr/lib/libm.so

That way I was finally able to compile and start that beast. Now let's just see, how long it will run...

FreeSerf

Finally found a way to press a map made of hexagonals into memory. Have to implement that this evening.

Apache2

Thank God, it's weekend. Nothing about this today :D

MLDonkey

keeped SegFaulting here. Why? read() returned -1 because of a reason still unknown to me and it didn't get checked. There's only a check for nread == 0, but not for -1... The strange thing about it is, that -1 turns into 2**32 although it's signed int... Hmm...

Own Projects

finally got around to continue the board-daemon. Well, yes there are tons of free WebBoards out there but they ALL.. well, all that I know, at least... havd two flaws:

- They use cookies
- They use a scripting language (usually PHP) that connects to the database (usually MyQL) on each page hit. That is slooow and uses up valuable resources.

So where would the board Daemon be different?

- I absolutely will refuse to use cookies, and if it would make my work easier 100 times.
- It uses a daemon (UNIX-Socket) that stores all the Board- information (or at least, the recent) in Memory which is by far faster than any Harddisk depending Database.

And please don't gimme the sh*t about RAMFS. Pull the Plug and anything since the last Sync is lost.

This is of course just VaporWare right now...

Apache2

still not a signle step further... now trying the sickest thing I can think of: try to compile it without iconv. How: Just erase it from the Makefiles.

redi: Thanks for your mail, but that doesn't help if a `find / -name *iconv*so*` returns not a single result.

I couldn't mail back cause a mailserver claims that the address is non-existent.

libgli

Wow, there really seems to be someone using it. At least according to the thread on HappyPenguin

9 Jan 2003 (updated 9 Jan 2003 at 09:15 UTC) »
Apache2

okay, of course it wasn't THAT simple... But there's still the one thing I don't get:

How can a program get linked if a .so is missing?

The compiled and installed apache says he can't find libiconv.so.2

Well... have to dig a bit deeper it seems...

ROCK Linux

Oh boy, need to update some packages... I seem to be unable to concentrate on my "own" code, but keep sending patches to different programs I use frequently...

Anyone knows a good cure?

Addendum

Google

Finally added a robots.txt to www.crash-override.net since the number of GoogleBot-Hits doubled each day. They seem to have a _serious_ bug in this thing...

Hmm... can it really be THAT simple? A #define in perchild.c and commenting a line in /usr/include/signal.h actually got apache2 to compile...

Today I'll have to check if it actually WORKS.

Wrote a patch for phpEselGui today. Well it was just because I really wanted that feature :) Will leave cleaning up the mess behind me for someone else, oh well...

and I'm currently getting nowhere with libGLI and FreeSerf... man, I DO need a vacation, no matter if I just had a 2-week-vacation or not...

Urks... This day has to be the worst way to start a new work-year...

No coffee, no sleep and an impossible TODO: "Make Apache2 compile on Solaris with `./configure --with-mpm=perchild`".

Well, have to ank the guys over at Apache how many people they have working on it to have a good excuse to my boss at the End Of The World^H^H^H^H^HWeek.

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!