One of the vital freedoms of software freedom is that of studying the software you use. I enjoy exercising this freedom, learning the bigger-picture of my software works and gaining more confidence it's not infringing my privacy.
I document what I learn from that here (after tooting it on the fediverse).
- AppStream & libappstream
- Cryptographic certificates in WebKit & GCR
- CMU Sphinx
- DVDs & CDs
- Fundamentals of Computers & Programming
- eSpeak
- hx-wls & HTML-XML-Utils
- Jekyll static site generator
- json-glib
- libsoup: GNOME's HTTP library
- libxml2
- Odysseus "Prosody" templating
- Mozilla Readability
- SQLite3 Full Text Search 5
- SQLite3 Next Generation Query Planner
- SQLite3
- Voice2JSON
- Hypothetical UXN & Varvara Hardware
- Hypothetical Special-purpose Web Processors
And here's another site on how SQLite works, which I highly recommend.
GTK Stack
This documentation describes how graphical user interfaces work on elementary OS, GNOME3, and numerous other desktops.
- DBus on GNOME
- GLib GMarkup
- GtkLabel
- GIO GApplication & GLib GMainloop
- CSS
- GIO app lookup
- keyboard focus in GTK & WebKit
- GDK Pixbuf & librsvg
- GLib GError & GIO GTask
- GIO GContentType
- Simple GLib utils
- GObject method calls
- GResource
- Buttons, Images, & Tooltips
- HeaderBars & layout
- Menus
- GTK Overview & Windowing
- GtkEntry
- GtkFlowBox
- GtkGrid
- GtkListBox
- GtkPopover
- GTK Icon Themes
- Vala's LibGee
- Miscellaneous Widgets
- GTK Mouse Events
- FreeDesktop.Org specifications
elementary OS
This documents components primarily targetting elementary OS.
WebKit(GTK)
This documentation describes how webpages are rendered in Odysseus, GNOME Web, Epiphany, and numerous other browsers.
- CSS Floats
- CSS
- Drag&Drop
- Find In Page
- Webforms
- <img> & <details>
- WebKit JavaScript
- WebKit JavaScript Dialogs
- WebKit page loading
- Layout Misc
- Printing
- WebKit .querySelectorAll()
- Regular Expressions/YARR
- Save/View source/Zoom
- WebKit Scrolling
- Tab History
- Text Editing
- Text Layout/Rendering
- UserStyles
- WebKit video
- WebView
Graphics
This documentation refers to software libraries used to generate images to be displayed onscreen.
- Linux DRM (GPU drivers)
- GSK (GTK4 Scenegraph Kit)
- Cairo's Text Rendering
- Cairo Vector Graphics
- GStreamer audio/video
- Hypothetical PostScript CPU
- Mesa3D (OpenGL implementation)
- OpenGL Theory
- Text Layout & Rendering
- File Viewers
- Wayland windowing systems
Other's writings
- text layout blogpost
- low-level Linux graphics tutorial
- History of computer graphics technology with pros & cons
- An Overview of the Linux and Userspace Graphics Stack conference talk by Paul Kocialkowski at Bootlin 2020 (video)
Haskell
This documentation relates to Haskell compilers, libraries, build tools, & concepts.
- Haskell Build Tools
- Glasgow Haskell Compiler
- GHC's RunTime System
- Haskell Text & Web Processing
- Haskell Graphics
- CADR Lisp Machine
- Hypothetical Functional JIT
- Reduceron
- Haskell Webdev via Happstack
Networking
This documents various internet-based software, and describes networking concepts as briefly nontechnically as I can.
- Distributed/P2P computing
- nginx Web Server
- Cryptography (Network security)
- Bitwarden password manager
- Internet
- Project Management
- SearchMySite.Net
GNU-related
This discusses the common commandline-level components of your libre operating systems, using Linux From Scratch as a guide for what to study. And in which order to write these. Many of these are from the GNU project, but that's a very loose association based on their early focus.