Best Practices for Build Options
Build options are sometimes tricky to get right. Here’s my take on best practices. The golden rule is to set good upstream defaults. Everything else follows from this. Rule #1: Choose Good Upstream...
View ArticleCommon GLib Programming Errors
Let’s examine four mistakes to avoid when writing programs that use GLib, or, alternatively, four mistakes to look for when reviewing code that uses GLib. Experienced GNOME developers will find the...
View ArticleCommon GLib Programming Errors, Part Two: Weak Pointers
This post is a sequel to Common GLib Programming Errors, where I covered four common errors: failure to disconnect a signal handler, misuse of a GSource handle ID, failure to cancel an asynchronous...
View ArticleStop Using QtWebKit
Today, WebKit in Linux operating systems is much more secure than it used to be. The problems that I previously discussed in this old, formerly-popular blog post are nowadays a thing of the past. Most...
View ArticleWebKitGTK API for GTK 4 Is Now Stable
With the release of WebKitGTK 2.40.0, WebKitGTK now finally provides a stable API and ABI for GTK 4 applications. The following API versions are provided: webkit2gtk-4.0: this API version uses GTK 3...
View ArticleGNOME Core Apps Update
It’s been a while since my big core app reorganization for GNOME 3.22. Here is a history of core app changes since then: GNOME 3.26 (September 2017) added Music, To Do (which has since been renamed to...
View ArticleGNOME 45 Core Apps Update
It’s been a few months since I last reviewed the state of GNOME core apps. For GNOME 45, we have implemented the changes proposed in the “Imminent Core App Changes” section of that blog post: Loupe...
View ArticleForcibly Set Array Size in Vala
Vala programmers probably already know that a Vala array is equivalent to a C array plus an integer size. (Unfortunately, the size is gint rather than size_t, which seems likely to be a source of...
View ArticleHow to Get Hacked by North Korea
Good news: exploiting memory safety vulnerabilities is becoming more difficult. Traditional security vulnerabilities will remain a serious threat, but attackers prefer to take the path of least...
View ArticleI Entered My GitHub Credentials into a Phishing Website!
We all think we’re smart enough to not be tricked by a phishing attempt, right? Unfortunately, I know for certain that I’m not, because I entered my GitHub password into a lookalike phishing website a...
View Article