[Daniel's week] December 15, 2023

Daniel Stenberg daniel at haxx.se
Fri Dec 15 17:26:39 CET 2023


Hello friends.

Another week ended. Just one more week left now before Christmas!

## Everything curl

Back in 2015 when started writing the book Everything curl [1], I opted to use
the service gitbook.com since it seemed like a low friction and convenient way
to make a markdown book available online. I had already used it for my other
book experiments so I knew how it worked. One part of that convenience was how
they provided a link for users to download a PDF version. Handy.

Several years into this journey, the good people at gitbook however for some
reason decided to remove that feature and therefore there has been no PDF
version of Everything curl for a while. Every once in a while users have asked
for it.

This week, I finally stopped delaying what had to be done and I wrote up a set
of scripts to provide this service to users. Now, my scripts run daily and we
can now provide not only a fresh PDF version [2] but also an ePUB one [3]. The
PDF version at least looks pretty good! Including the 26 page (!) table of
contents, the entire thing is over 500 pages long. I have not checked the ePUB
version closer, so I hope someone will tell me if it needs polish.

Glancing through the PDF version I could not help finding mistakes and details
that were out of date and I have subsequently merged a whole series of updates
and polish. I also started filing issues [4] about recent curl details and
features that are not yet described in the book at all, just to make it
visible and possibly lure others to help me out to write contents for this.

## FOSDEM

I have a talk confirmed. I will talk about curl in the network devroom at
FOSDEM 2024: "Broom not included: curling the modern way". There is no set
time yet.

My other two FOSDEM talk proposals are still unknowns and pending. I suppose
they have not been handled yet, so neither denied nor confirmed.

## no patch

We started out this week deliberating back and forth if we should do a patch
release or not following the dot-zero release last week. We had a rather
annoying regression in 8.5.0 which makes a specific test case permafail when
you run the test suite as shipped in the release tarball because of a script
that we managed to not include in the distribution.

Eventually I decided not to do a patch release. Primarily because not that
many people seem to actually have a problem with this test failure. We have
not drowned in bug reports or people repeatedly shouting at as about
it. Presumably because people find the information we provide or that not too
many people actually are bothered about a single test failure. Maybe there
aren't that many peeps out in the wild who run the curl tests?

The other reason for not doing it would be from the other end: I rather avoid
it if I can, since there is a lot of work to get it done. Documentation,
lining up ducks in rows, doing a video etc. Skipping a release made this week
more relaxed for me personally. Of course, I filled it up with curl work
anyway.

So instead of a patch release, we look forward to open the feature window
tomorrow Saturday.

## code quality

Following up pretty much what I wrote about in my weekly email last week [5],
I wrote my blog post "Making it harder to do wrong" [6] elaborating on how we
write C code and I got to show the graph with number of lines of code per cpy
and per alloc. I have also now added that graph to the curl dashboard so that
I can keep an eye on how this develops going forward.

It is easy to work on cleanups as single-shots and then over time afterward
forget about it and then slowly over time just relapse back to old non-optimal
patterns. I hope my graphs can help me reduce that risk.

## business

There seems to only be some minor formalities left now before I can start
working on curl for XYZ, where I will maintain the port and also offer binary
downloads going forward. The real name behind "XYZ" will be revealed to you
all in due time, as I will for sure talk about this once it starts happening
for real.

Another development contract was delayed as the organization that requested a
particular curl task/feature is now fund-raising to ideally soon be able to.

I learned this week that a well-known large consumer electronics company
experiences problems with curl in their product and we just need to get the
support contract up and then I presumably will get my hands on crash reports
from users around the world in order to help nailing down this.

Together with two fellows in team curl, I am working on an application to ask
a foundation for money for a multi-month project to enhance HTTP/3 and testing
in curl. Ideally we can submit this next week. Fingers crossed.

## book

I am frequently contacted by various companies and persons for all sorts of
different book offers. Mostly I'm being asked if I want to write a book about
some of the topics that I fiddle the most with. I really do not. I don't
believe in writing books for profit. Way to much effort and too little
return. I rather stick to writing books for free.

This week, I was again contacted and I actually responded this time and there
is now a communication going to see if there is something to work out and
maybe, MAYBE, I can contribute to a book around HTTP without actually being
the main author. I'm casually skeptical.

## Canada

I have been invited to talk in Montreal, Canada, in May 2024. The company has
accepted my compensation request so I am proceeding with further details
now. It might mean that I will actually do this. If it ends up becoming
reality, I will of course have to arrange more side meetings and activities in
the area while there. I'll keep you updated in future emails but if you
already now have ideas, let me know!

## h3 audit

The curl HTTP/3 audit by Trail of Bits is ongoing. The majority of work is
meant to be done this and next week, but then it might take a little longer
until we have a report to make public. Can't wait to see what goodies they
find!

## Coming up

- Saturday: the curl feature window opens

## Links

[1] = https://everything.curl.dev/
[2] = https://daniel.haxx.se/everything-curl/everything-curl.pdf
[3] = https://daniel.haxx.se/everything-curl/everything-curl.epub
[4] = https://github.com/bagder/everything-curl/issues
[5] = https://lists.haxx.se/pipermail/daniel/2023-December/000044.html
[6] = https://daniel.haxx.se/blog/2023/12/13/making-it-harder-to-do-wrong/

-- 

  / daniel.haxx.se


More information about the daniel mailing list