Hi Nick,

2018-04-19 10:33 GMT+02:00 Nick Kew <n...@apache.org>:

>
> > On 18 Apr 2018, at 20:00, Luca Toscano <toscano.l...@gmail.com> wrote:
> >
> > Before joining the httpd project as contributor I struggled to find good
> technical sources about how the httpd internals work,
>
> Likewise.  That’s kind-of what motivated me to start writing about it.
>

And I remember reading your book 2/3 times when I wrote my first module at
work, so thanks a lot :)

But that’s not to say it’s any worse than other software projects I’ve
> encountered over the years.
> There’s always a learning curve, and a struggle to find relevant docs.
> OK, things have improved
> a lot since “just google it” became an option, but information still needs
> unearthing.
>
> Are you suggesting httpd is somehow *worse* than other software you’ve
> hacked in terms of
> developer documentation?  In my experience it’s actually a lot better than
> most, due primarily to
> the high standard of API docs in /include/ and in APR, and of course open
> and searchable source.


I agree that we have a good code documentation, what we miss in my opinion
is a high level (but detailed and with examples) up to date overview of how
things stitch together when a request is processed. I can give you a recent
example from my experience, namely
https://bz.apache.org/bugzilla/show_bug.cgi?id=61860. Eric patiently helped
me to track down how the response flows through the output filters (ending
up in a error response eventually), that helped me a lot to understand more
how things works. And it is of course a super simple example for most of
the experienced httpd's devs, but for people like me that are still very
n00b (and ramping up!) this knowledge is a real treasure that makes the
difference between hours of frustration (ending up nowhere) and the same
time spent in coming up with working patches and contribution for the
project.

http://httpd.apache.org/docs/trunk/developer/API.html is a good example
about something that is a "bit" old but still interesting and helpful. The
same up to date thing for 2.4 could be really valuable for anybody that
joins the project (or thinks to do so).

http://httpd.apache.org/docs/trunk/developer/filters.html is great but it
misses examples in my opinion. I recently discovered for example the
.gbdinit goodies that we ship, they could be a straightforward tool to come
up with real data in the docs for a simple debug of a request/response.

Ideally the quality bar that I would love to have across our dev docs is
this one http://httpd.apache.org/docs/trunk/developer/modguide.html, but in
my opinion there is still a a lot of work to do :)


> > My point is: blogging is fine, but before even starting that I'd focus
> on dumping everybody's knowledge in sections of the docs like
> http://httpd.apache.org/docs/trunk/developer. It is boring and less fun
> than writing C code for sure, but I bet that a ton of people would enjoy
> details about how things work. It will be easier for people to spot "liars"
> in the web that focus their marketing strategy only on how httpd is "old"
> and not performant too..
>
> I’ve called out “liars” once or twice.  Or more usually, purveyors of
> “cargo-cult” whose idea
> of Apache is rooted in how things haven’t been since 1997 or so.  But I’m
> not sure they’re
> really the issue.  nginx has risen primarily because it’s a genuine
> solution, and secondarily
> because it’s had the evangelical community that goes with a challenger
> against an
> incumbent.  Now that it’s risen to be a competitor on more equal terms,
> the evangelism
> still has momentum.  Insofar as we care about market share, we could
> respond in kind,
> preferably avoiding the wilder fringe.
>

I think that nginx has risen because it is a great tool, and I like the
fact that there are more "competitors" that challenge the status quo. What
I don't like is when projects that were born standing on the shoulders of
giants focus their marketing on discrediting others to gain popularity.
Without clear docs that can allow anybody to verify what is true and what
not, the end result is a ton of FUD as we are seeing. I would start with
improving our dev docs and spread the word via social media (tweets,
medium, etc..).

Luca

Reply via email to