Re: Child keeps seg faulting

2001-04-26 Thread Bird Lei


> > I have the following config: Solaris 2.7, perl 5.6, php4 and mod_perl 
> 1.25 compiled
> > statically into Apache 1.3.19. This exact same config works flawlessly 
> on several
> > Suse machines and a few Red Hat machines. After building and testing 
> the server, I
> > get the following error when trying to execute the printenv cgi script 
> that comes
> > with Apache:
> > [Wed Apr 25 14:58:04 2001] [notice] Apache/1.3.19 (Unix) PHP/4.0.4pl1 
> mod_perl/1.25  \
> > configured -- resuming normal operations
> > [Wed Apr 25 14:58:07 2001] [notice] child pid 11107 exit signal 
> Segmentation Fault (11)
> > [Wed Apr 25 14:59:06 2001] [notice] child pid 11108 exit signal 
> Segmentation Fault (11)
> >
> > Anyone have any ideas?
>
>Yes, read the SUPPORT file in the source dist and follow the prescribed
>steps to report a bug.

I have this problem too.  I compiled from the SRPM of Apache and mod_perl 
from Red Hat 7.1 and installed them on my Red Hat 6.2.
Sorry that I have forgotten the details of my installation.
[Wed Apr 25 15:25:44 2001] [notice] child pid 11990 exit signal 
Segmentation fault (11)




Re: mod_perl DSO leaking on restart?

2001-04-26 Thread Bird Lei

Same here.  I did a few graceful restarts and the usage jumped to 80M from 
10M...  Then I "apachectl stop" and "apachectl start" to get a clean 
restart, it works fine.

I am new to this list.  Maybe this problem has been addressed...


At 10:40 PM 2001/4/25 -0400, Philip Mak wrote:
>On Thu, 26 Apr 2001, Stas Bekman wrote:
>
> > > There is also the strange case of mod_perl leaking memory on graceful
> > > restarts when compiled as DSO.  But I don't feel like getting into
> > > this one quite yet.
>
>Hmm. My httpd was using 20 MB. I did "apachectl graceful" ten times, and
>the usage jumped to 24 MB. Then I did "apachectl graceful" another ten
>times, and the usage jumped to 29 MB.
>
>I guess that's the reason (or one of them) that my httpd grows bigger and
>bigger as time passes. My mod_perl is a DSO (I run two copies of httpd,
>one without mod_perl and one with; I set it up as a DSO since this way I
>only need one executable). Should I recompile it statically linked?
>
>-Philip Mak ([EMAIL PROTECTED])




single server mode problem

2001-04-26 Thread Giacomo Cerrai


Hello,
we are trying to do some debugging in single server mode, but we
have problems.
We tried running the httpd daemon from the command line:
> .../apache/bin/httpd -X &
or configuring the http.conf like this:
MinSpareServers 1
MaxSpareServers 0
StartServers 1
MaxClients 1
and starting the server normally with
> .../apache/bin/apachectl start
In both cases we have the same problem:
The CGI runs up to a certain point and then stops, like waiting
for something
(we can follow this with tail -f .../error_log), the browser waits
for
more data to come (that will never come).
But if we press STOP on the browser,
the CGI resumes/continues to run and goes to the end.
It seems that this happens only if the CGI is doing a considerable
amount of work,
if it ends quickly we don't have problems.
It also looks like it always stops on a print statement, maybe
there is some
problem flushing the buffer.
Any idea about what is wrong here?
Thanks,
Giacomo


Re: apache::registry + use strict curiosity

2001-04-26 Thread newsreader


that's no apache::registry.  that's perl

there are big guns here who can answer
your questions but it am not one of them.


On Thu, Apr 26, 2001 at 02:25:17PM -0700, Eric Kolve wrote:
> I found something a bit curious that I was wondering if someone could
> explain. I have the following apache::registry script I called test.reg:
> 
> #!/usr/bin/perl
>  
> use strict;
> if($test){
> # do stuff
> }
>  
>  
> print qq|HTTP/1.1 200 OK\r\n|;
> print "HELLO WORLD\n\n";
> 
> 
> I ran my server in single-user mode (httpd -X) and requested the page
> which causes an internal server error because I didn't declare '$test'. 
> I next commented out the three conditional lines:
> 
> #if($test){
> # do stuff
> #}
> 
> Then requested the page a second time, which executed just fine. I
> uncommented those three lines and requested the page a third time, which
> strangely enough actually works.  Registry stats pages to see if they
> change and recompiles pages I believe.  So I am wondering why isn't an
> exception raised on the third request about not declaring '$test'?  Did
> the first request put '$test' in the symbol table?
> 
> thanks,
> 
> --eric



Re: apache::registry + use strict curiosity

2001-04-26 Thread Ken Williams

Yes, exactly.  After the first run, $test got an entry in the symbol
table.  Not usually an issue in CGI perl. =)


[EMAIL PROTECTED] (Eric Kolve) wrote:
>I found something a bit curious that I was wondering if someone could
>explain. I have the following apache::registry script I called test.reg:
>
>#!/usr/bin/perl
> 
>use strict;
>if($test){
># do stuff
>}
> 
> 
>print qq|HTTP/1.1 200 OK\r\n|;
>print "HELLO WORLD\n\n";
>
>
>I ran my server in single-user mode (httpd -X) and requested the page
>which causes an internal server error because I didn't declare '$test'. 
>I next commented out the three conditional lines:
>
>#if($test){
># do stuff
>#}
>
>Then requested the page a second time, which executed just fine. I
>uncommented those three lines and requested the page a third time, which
>strangely enough actually works.  Registry stats pages to see if they
>change and recompiles pages I believe.  So I am wondering why isn't an
>exception raised on the third request about not declaring '$test'?  Did
>the first request put '$test' in the symbol table?

  ------
  Ken Williams Last Bastion of Euclidity
  [EMAIL PROTECTED]The Math Forum



apache::registry + use strict curiosity

2001-04-26 Thread Eric Kolve

I found something a bit curious that I was wondering if someone could
explain. I have the following apache::registry script I called test.reg:

#!/usr/bin/perl
 
use strict;
if($test){
# do stuff
}
 
 
print qq|HTTP/1.1 200 OK\r\n|;
print "HELLO WORLD\n\n";


I ran my server in single-user mode (httpd -X) and requested the page
which causes an internal server error because I didn't declare '$test'. 
I next commented out the three conditional lines:

#if($test){
# do stuff
#}

Then requested the page a second time, which executed just fine. I
uncommented those three lines and requested the page a third time, which
strangely enough actually works.  Registry stats pages to see if they
change and recompiles pages I believe.  So I am wondering why isn't an
exception raised on the third request about not declaring '$test'?  Did
the first request put '$test' in the symbol table?

thanks,

--eric



Re: problem compiling under win98

2001-04-26 Thread Randy Kobes

On Thu, 26 Apr 2001 [EMAIL PROTECTED] wrote:

> ok it compiles from vc+ !
> 
> (i had to drop a void apachecore.lib file in the vc6 file list, that pointed
> to a strange
> 
> c:\unzipped\ap\apache-1.3\src\release\apachecore.lib . suppose some one
> forgot it here.

That line has to be changed anyway, to tell Visual Studio
where apachecore.lib is (running Makefile.PL with APACHE_SRC
specified will change this line for you).

> and when adding directive in httpd.conf and running i have the reassuring
> line :
> 
> Apache/ 1.3.19 (win32) mod_perl/1.25 PHP/4.0.4pl1 running...
> 
> about the test i type nmake test in c:\mod_perl-1.25 dir from comman window
> and got this line
> 
> makefile(533) fatal error U1035: syntax error : expected ':' or '='
> separator stop.

This is a problem in your \Perl\lib\ExtUtils\MM_Unix.pm - it
thinks that Win9x uses dmake, and not nmake. You'll get the
same error building some other XS-based modules.

> i don't know where is the test file is and if i should test at this point

The test suite is run with
nmake test
after building. But, as you noticed, you have to fix the
make error first. You might also be able to run the tests as
perl -Mblib t\TEST.win32

> note that it
> continues to fail from perl
> 
> here is the output of perl makefile.pl after the changes suggested :
> 
> (maybe some perl bad installation)
[ ... ]
These errors, and the make error above, don't really indicate
a bad perl installation - ActivePerl has a few things set in
\Perl\lib\ExtUtils\*.pm that are NT-specific. Check the perl
win32-porters list on ActiveState's site for a recent thread on 
how to fix things.

best regards,
randy kobes




Re: problem compiling under win98

2001-04-26 Thread pascal.barbedor

Hi !

ok it compiles from vc+ !

(i had to drop a void apachecore.lib file in the vc6 file list, that pointed
to a strange

c:\unzipped\ap\apache-1.3\src\release\apachecore.lib . suppose some one
forgot it here.


and when adding directive in httpd.conf and running i have the reassuring
line :

Apache/ 1.3.19 (win32) mod_perl/1.25 PHP/4.0.4pl1 running...

about the test i type nmake test in c:\mod_perl-1.25 dir from comman window
and got this line

makefile(533) fatal error U1035: syntax error : expected ':' or '='
separator stop.

i don't know where is the test file is and if i should test at this point



thanks a lot for your help anyway.


note that it
continues to fail from perl

here is the output of perl makefile.pl after the changes suggested :

(maybe some perl bad installation)

*
Commande ou nom de fichier incorrect
Commande ou nom de fichier incorrect
Unable to find a perl 5 (by these names: C:\Perl\bin\Perl.exe miniperl perl
perl5 perl5.6.0, in these dirs: C:\Program Files\TextPad 4\
C:\ELJ-WIN32\SMALLEIFFEL\BIN C:\ELJ-WIN32\LCC\BIN C:\WINDOWS
C:\WINDOWS\COMMAND C:\PERL\BIN\ C:\PROGRA~1\PANDAS~1\PANDAA~1.0 C:\Perl\bin)
Writing Makefile for Apache
Writing Makefile for Apache::Connection
Writing Makefile for Apache::Constants
Writing Makefile for Apache::File
Commande ou nom de fichier incorrect
Running '..\0 -IC:\Perl\lib C:\Perl\lib\ExtUtils\xsubpp -v 2>&1' exits with
status 16777215 at (eval 121) line 17.
Commande ou nom de fichier incorrect
Running '..\0 C:\Perl\lib\ExtUtils\xsubpp temp000 2>&1' exits with status
16777215 at (eval 121) line 43.
Writing Makefile for Apache::Leak
Writing Makefile for Apache::Log
Writing Makefile for Apache::ModuleConfig
Writing Makefile for Apache::PerlRunXS
Writing Makefile for Apache::Server
Writing Makefile for Apache::Symbol
Writing Makefile for Apache::Table
Writing Makefile for Apache::URI
Writing Makefile for Apache::Util
Writing Makefile for mod_perl

Beginning with version 1.3.15, Apache uses a different convention for
Win32 module names. Correspondingly, the name of the mod_perl module
built here has been changed from ApacheModulePerl.dll to mod_perl.so.
Please see INSTALL.win32 for further details.






- Original Message -
From: "Randy Kobes" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Thursday, April 26, 2001 6:00 PM
Subject: Re: problem compiling under win98


> On Thu, 26 Apr 2001 [EMAIL PROTECTED] wrote:
>
> > i have succesfully compiled apache 1_3.19 under win 98 with vc6
> > and dsw project
> >
> > I'm trying to compile mod_perl 1_25 under windows 98 the same way
> > i downloaded the source 1_25 and found the modperl.dsp
> > for vc++ compiling
> > i followed the install.win32 notes but when compiling there are
> > missing files :
> [ ... ]
> > c:\apache_1.3.19\src\include\ap_config.h(114) : fatal error C1083:
> > Cannot open include file: 'os.h': No such file or directory
> [ ... ]
>
> Apache_1.3.19 changed the way that the header os.h was included.
> To fix this, if you're building mod_perl.so from Visual Studio,
> include
> C:\apache_1.3.19\src\os\win32
> as well as
> C:\apache_1.3.19\src\include
> in the list of include directories. If you're building this
> from command line arguments, find the line in the mod_perl
> top-level Makefile.PL
>
> s!(/D "WIN32")!/I "$apache_inc" /I "$perl_inc" $1!;
>
> and change this to (all on one line)
>
> s!(/D "WIN32")!/I "$apache_inc" /I "$apache_inc/../os/win32"
> /I "$perl_inc" $1!;
>
> Whichever way you choose, does this then build OK? If so,
> the tests might fail for a different reason, due to another
> change in apache_1.3.19 in setting the relative server root
> to the path of the apache binary. As a temporary fix,
> in t\docs\startup.pl and t\docs\rl.pl, find occurrences of
> $Apache::Server::CWD
> and change this to the path to the mod_perl build directory
> (eg, "C:\mod_perl-1.25").
>
> best regards,
> randy kobes
>




Re: [OT] mod_perl 2 question...

2001-04-26 Thread barries

Not OT at all...

On Thu, Apr 26, 2001 at 06:24:41PM +0200, Issac Goldstand wrote:
> 
> Can any of the mod_perl 2 people provide some feedbak on this, as I'm
> sure you guys have looked at this much deeper than I have.

Well, I'm not a "mod_perl 2" person, but I can say that PerlInterpScope
(it's been renamed) merely lets you control whether interpreter threads
are allocated per HTTP request/subrequest/handler call/connection, not
associate an interp with a client.  The 'connection' option (I think)
looks like it's mostly for more session oriented protocols, the FM
(modperl_2.0.pod) mentions ftp.

If you wanted to muck about in C or with your own protocol handler, you
could take some session ID (cookie, URL, say, just not the client's IP
address) and direct it to a particular thread, but...

You probably don't want intepreters devoted to individual clients
whether they be in threads or in processes.  Waste of good memory, that.
It might help in rare circumstances with keepalives (pure conjecture
here), but keepalives don't guarantee that the client will only make one
connection. Without keepalives on, most popular browsers make multiple
connections to the server and can keep several connections busy at once.
That's still technically possible with keepalives, though I don't know
if any browsers try to open multiple kept-alive connections
intentionally (though they can if a server has more than one IP & host
name).

Closer to what you're thinking of are the 'solar' variables Doug
mentions wistfully.  But unless you back the in-memory store to a disk
or something, you lose on server shutdown, which takes you back to
conventional session management techniques, although it does look like
you could share some fewer number of database connections or open
filehandles between your threads to do this using Doug's wrappers around
Apache's memory pools.

- Barrie



Re: problem compiling under win98

2001-04-26 Thread Randy Kobes

On Thu, 26 Apr 2001 [EMAIL PROTECTED] wrote:

> i have succesfully compiled apache 1_3.19 under win 98 with vc6 
> and dsw project
> 
> I'm trying to compile mod_perl 1_25 under windows 98 the same way 
> i downloaded the source 1_25 and found the modperl.dsp 
> for vc++ compiling
> i followed the install.win32 notes but when compiling there are 
> missing files :
[ ... ]
> c:\apache_1.3.19\src\include\ap_config.h(114) : fatal error C1083: 
> Cannot open include file: 'os.h': No such file or directory
[ ... ]

Apache_1.3.19 changed the way that the header os.h was included.
To fix this, if you're building mod_perl.so from Visual Studio,
include
C:\apache_1.3.19\src\os\win32
as well as
C:\apache_1.3.19\src\include
in the list of include directories. If you're building this
from command line arguments, find the line in the mod_perl
top-level Makefile.PL

s!(/D "WIN32")!/I "$apache_inc" /I "$perl_inc" $1!;

and change this to (all on one line)

s!(/D "WIN32")!/I "$apache_inc" /I "$apache_inc/../os/win32" 
/I "$perl_inc" $1!;

Whichever way you choose, does this then build OK? If so,
the tests might fail for a different reason, due to another
change in apache_1.3.19 in setting the relative server root
to the path of the apache binary. As a temporary fix,
in t\docs\startup.pl and t\docs\rl.pl, find occurrences of
$Apache::Server::CWD
and change this to the path to the mod_perl build directory
(eg, "C:\mod_perl-1.25"). 

best regards,
randy kobes




[OT] mod_perl 2 question...

2001-04-26 Thread Issac Goldstand



I was just looking at Doug's overview of mod_perl 
2, and was specifically intrigued by the PerlInterpLifetime directive, which got 
me sorta excited.  It would appear to me, based on that, that by setting 
PerlInterpretLifetime connection, you could have a good chance at getting good 
persistant "session"s with any HTTP/1.1 client, with no more than plain ol' 
global variables.  Moreso, you can see which is the first request easily 
just by checking defined($someglobalvariable) - or so it would 
appear...
 
Can any of the mod_perl 2 people provide some 
feedbak on this, as I'm sure you guys have looked at this much deeper than I 
have.
 
Thanks,
   Issac
 
Internet is a wonderful mechanism for making a fool 
ofyourself in front of a very large audience.  
--Anonymous Moving the mouse won't get you into trouble...  
Clicking it might.  --Anonymous PGP Key 0xE0FA561B - 
Fingerprint:7E18 C018 D623 A57B 7F37 D902 8C84 7675 E0FA 
561B


Re: Is this startup.pl ok?

2001-04-26 Thread Dave Hodgkinson

Philip Mak <[EMAIL PROTECTED]> writes:

> I thought it was shared, because under top, "SHARE" was almost as big as
> "RSS".

Before Stas starts laying into me for misleading inaccuracy, take a
look at the guide: http://perl.apache.org/guide/

There's LOTS of good stuff in there on shareabiliy. 

If your processes start at 10M, then grow to 80M, that memory is
probably _not_ shared. Unless you're mapping in some shared memory or
something.

-- 
Dave Hodgkinson, http://www.hodgkinson.org
Editor-in-chief, The Highway Star   http://www.deep-purple.com
  Interim CTO, web server farms, technical strategy
   



Re: template toolkit compile test problems

2001-04-26 Thread G.W. Haywood

Hi there,

On Tue, 24 Apr 2001, Ruslan V. Sulakov wrote:

> What is PerlFixupHandler for?
> Whats the difference of PerlFixupHandler and PerlTransHandler?

The Eagle Book:

  "Writing Apache Modules with Perl and C", ISBN 1-56592-567-X,
  by Lincoln Stein and Doug MacEachern.

It is available from O'Reilley (www.oreilly.com) and of course
from Jubilee Office Supplies (www.jubileegroup.co.uk).

Some of it might be available to you on-line.

Stas Bekman's mod_perl Guide:

  http://perl.apache.org/guide/

73,
Ged.




Re: Is this startup.pl ok?

2001-04-26 Thread Philip Mak

On 26 Apr 2001, Dave Hodgkinson wrote:

> > As time goes on, these processes' memory usage grows and grows. Right now
> > they're 20 MB (uptime 2 days). When I rebooted the machine two days ago,
> > they were using 80 MB each (shared memory, though). MaxRequestsPerChild is
> > set to 200.
>
> What operating system?

Apache/1.3.12 (Unix)
mod_perl/1.24
perl 5.005_03
Linux 2.2.14-5.0; Red Hat Linux release 6.2 (Zoot)

> I'd be inclined to stuff a lot more of the generic modules you use
> (CGI, Template Toolkit, URI, Date modules) into startup.pl. The more
> the merrier.

Ok. I didn't think of that.

> If a process starts at 10M and grows to 80M that's 70M per process,
> _unshared_ for sure. Not good.

I thought it was shared, because under top, "SHARE" was almost as big as
"RSS".

-Philip Mak ([EMAIL PROTECTED])




Re: readdir()

2001-04-26 Thread Lincoln Stein

Thanks everyone.  I'll try backgrading to glibc 2.1.  Does anyone know 
if the problem is still present in Perl 5.6.1?

Lincoln

Andrew Ho writes:
 > Hello,
 > 
 > LS>Perl 5.6.0 breaks the readdir() function when running under mod_perl.
 > LS>This is with the most recent versions of Apache and mod_perl, as well
 > LS>as with older versions.  I see the same problem reported in the
 > LS>mailing list going back to December 2000, but no hint of a
 > LS>resolution.  Is there any fix?
 > 
 > Are there references to the problem reports? readdir() works fine for me
 > with Apache 1.3.19, mod_perl 1.25, and Perl 5.6.0 on Solaris 2.7 (x86).
 > 
 > Humbly,
 > 
 > Andrew
 > 
 > --
 > Andrew Ho   http://www.tellme.com/   [EMAIL PROTECTED]
 > Engineer   [EMAIL PROTECTED]  Voice 650-930-9062
 > Tellme Networks, Inc.   1-800-555-TELLFax 650-930-9101
 > --

-- 

Lincoln D. Stein   Cold Spring Harbor Laboratory
[EMAIL PROTECTED]   Cold Spring Harbor, NY

NOW HIRING BIOINFORMATICS POSTDOCTORAL FELLOWS AND PROGRAMMERS. 
PLEASE WRITE FOR DETAILS.




Re: template toolkit compile test problems

2001-04-26 Thread Stas Bekman

On Tue, 24 Apr 2001, Ruslan V. Sulakov wrote:

> What is PerlFixupHandler for?
> Whats the difference of PerlFixupHandler and PerlTransHandler?

FAQ:
Trans: http://modperl.com/book/chapters/ch7.html#The_URI_Translation_Phase
Fixup: http://modperl.com/book/chapters/ch7.html#Customizing_the_Fixup_Phase


_
Stas Bekman  JAm_pH --   Just Another mod_perl Hacker
http://stason.org/   mod_perl Guide  http://perl.apache.org/guide
mailto:[EMAIL PROTECTED]   http://apachetoday.com http://eXtropia.com/
http://singlesheaven.com http://perl.apache.org http://perlmonth.com/





Re: template toolkit compile test problems

2001-04-26 Thread Ruslan V. Sulakov

What is PerlFixupHandler for?
Whats the difference of PerlFixupHandler and PerlTransHandler?

Thanks,
Ruslan




Re: mod_perl DSO leaking on restart?

2001-04-26 Thread Jens-Uwe Mager

On Wed, Apr 25, 2001 at 10:40:12PM -0400, Philip Mak wrote:
> On Thu, 26 Apr 2001, Stas Bekman wrote:
> 
> > > There is also the strange case of mod_perl leaking memory on graceful
> > > restarts when compiled as DSO.  But I don't feel like getting into
> > > this one quite yet.
> 
> Hmm. My httpd was using 20 MB. I did "apachectl graceful" ten times, and
> the usage jumped to 24 MB. Then I did "apachectl graceful" another ten
> times, and the usage jumped to 29 MB.
> 
> I guess that's the reason (or one of them) that my httpd grows bigger and
> bigger as time passes. My mod_perl is a DSO (I run two copies of httpd,
> one without mod_perl and one with; I set it up as a DSO since this way I
> only need one executable). Should I recompile it statically linked?

I had the same problems, after linking modperl statically into httpd the
leaks disappeared.

-- 
Jens-Uwe Mager

HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany

Phone:  +49 5131 709320
FAX:+49 5131 709325
Internet:   [EMAIL PROTECTED]



IPC:Open3 does not work under mod_perl/1.25, perl5.6.0?

2001-04-26 Thread Peter Reif

My program, which worked under mod_perl/1.23 and perl5.500502 does not
work anymore:

I fork a program with Open3, send it some input and catch its output.
The output is OK, but the program does not get the input:

...
my $cgi_in = Apache::File->new;
my $cgi_out = Apache::File->new;
my $cgi_error = Apache::File->new;
...
   my $child = open3 ($cgi_in, $cgi_out, $cgi_error, $filename);
...
if ($post) {
my $len = $r->header_in ('Content-length');
while ($len) {
my $content;
my $size = min ($len, 4096);
$r->read ($content, $size);
$r->log->debug ("content: <$content>");
print $cgi_in $content;   # this statement does not work
$len -= $size;
}
}
close ($cgi_in);
...

IPC:Open3 works on my system, and I can print to files from my mod_perl
script. I tried the syswrite call, too.

Any comments, solutions?

Thanx
Peter



Re: Is this startup.pl ok?

2001-04-26 Thread Dave Hodgkinson

Philip Mak <[EMAIL PROTECTED]> writes:

> My Apache with modperl is acting weird with respect to memory usage.
> 
> When it first starts up, each process uses 10 MB of memory.
> 
> As time goes on, these processes' memory usage grows and grows. Right now
> they're 20 MB (uptime 2 days). When I rebooted the machine two days ago,
> they were using 80 MB each (shared memory, though). MaxRequestsPerChild is
> set to 200.

What operating system?

I'd be inclined to stuff a lot more of the generic modules you use
(CGI, Template Toolkit, URI, Date modules) into startup.pl. The more
the merrier.

If a process starts at 10M and grows to 80M that's 70M per process,
_unshared_ for sure. Not good. 

-- 
Dave Hodgkinson, http://www.hodgkinson.org
Editor-in-chief, The Highway Star   http://www.deep-purple.com
  Interim CTO, web server farms, technical strategy