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.
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.
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
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/bashecho -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.
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.
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.
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...
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
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
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 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!