A Thank You to Maintainers
I’d like to take a little break from advertising Web Browser Engineering (which is now available for purchase from most retailers) to thank the people who made the book possible: the maintainers of the languages and libraries we use in the book, a number of whom have graciously accepted patches, followed up on bug reports, or made releases to make Web Browser Engineering better.
Alessandro Molina is the main developer behind DukPy, the Python bindings for the JavaScript interpreter we use in the book. Besides putting out new releases and making sure DukPy is available for modern Python versions, Alessandro very kindly accepted a patch improving one of the error messages we saw readers hitting. The underlying DukTape engine itself is maintained by Sami Vaarala.
Kota Yamaguchi and Hin-Tak Leung are the maintainers of skia-python, which the book uses for advanced graphics starting in Chapter 11. Maintaining skia-python
is especially challenging, because Skia is a fast-moving project with a lot of breaking changes. Both helped determine which Skia version to target in WBE, and Hin-Tak made several special-purpose releases of the chosen version, m87, for newer Python versions. M87 is quite old and just building on modern Python and C++ needs patches, so I’m especially thankful for his expertise.
Austin Hurst seems to be the current maintainer of PySDL2, which the book uses as the base GUI library from Chapter 11 on. Mike C. Fletcher maintains the PyOpenGL library, which WBE uses in Chapter 13 to do GPU-accelerated rendering. Both libraries have vast APIs and yet Chris and I had no troubles with either libraries, nor have any of our readers reported issues, which really speaks to their stewardship.
The playsound and gTTS libraries are used in Chapter 14 to demonstrate a basic screen reader. Taylor S. Marks wrote playsound, though I don’t know if he still maintains it. Pierre Nicolas Durette maintains gTTS, quite actively in fact, as new languages are added to Google’s TTS service.
And of course, the Python language and standard library, maintained by the Python Software Foundation, is what makes WBE possible at all. In particular it is extremely helpful that Python comes with a large and stable standard library, especially the ssl, tkinter, socket, and threading packages. Of course, those packages are in turn built on open-source libraries like Tcl/Tk and OpenSSL.
So, again, a thank you to all of you!
The story of the web and the story of open source technology are fundamentally intertwined, as we discuss in the History chapter. All browsers today are open source, and part of the reason for this is that they rely on a vast ecosystem of other open source projects: graphics packages, networking code, cryptography libraries, image and video formats, user interfaces libraries, and so so much more.
Moreover, it’s the availability of open-source servers (Apache, NGINX), programming languages (Perl, PHP, Python), and operating systems (Linux, BSD) that have enabled the web to grow so large, diverse, and widely used. And these open source projects are often organized using the web! So, to open source in general, without which not only would WBE not be possible, it would not even be worth writing: thank you!