Jussi Pakkanen: A quantitative analysis of the Trade Federation's blockade of Naboo

The events of Star Wars Episode I The Phantom Menace are based around a blockade that the Trade Federation holds over the planet Naboo. The details are not explained in the source material but it is assumed that this means that no ship can take off or land on the planet. The bloc … | Continue reading


@nibblestew.blogspot.com | 1 year ago

Jussi Pakkanen: After exactly 10 years, Meson 1.0.0 is out

The first ever commit to the Meson repository was made 10 years ago to this day. To celebrate we have just released the long-awaited version 1.0.The original design criterion for doing a 1.0 release was "when Meson does everything GStreamer needs". This happened, checks notes, th … | Continue reading


@nibblestew.blogspot.com | 1 year ago

Jussi Pakkanen: Print quality PDF generation, color separations, other fun stuff

Going from the simple color managed PDF generator discussed in the previous blog post into something more useful requires getting practical. So here is a screenshot of a "print ready" PDF document I generated with the code showing a typical layout you'd use for a softcover book. … | Continue reading


@nibblestew.blogspot.com | 1 year ago

Jussi Pakkanen: Color management, this time with PDF

In previous posts the topic of color management in Cairo was examined. Since then people have told me a few things about the issue. According to them (and who am I do to proper background research and fact checking, I'm just someone writing on the Internet) there are a few fundam … | Continue reading


@nibblestew.blogspot.com | 1 year ago

Jussi Pakkanen: Going inside Cairo to add color management

Before going further you might want to read the previous blog post. Also, this:I don't really have prior experience with color management, Cairo internals or the like. I did not even look at the existing patchsets for this. They are fairly old so they might have bitrotted and deb … | Continue reading


@nibblestew.blogspot.com | 1 year ago

Jussi Pakkanen: Experimenting on how to add CMYK and color management to Cairo

Cairo is an amazing piece of tech that powers a lot of stuff, like all of GTK. Unfortunately it is not without its problems. The biggest one being that it was designed almost 20 years ago with the main use case of dealing with "good old" 8 bit uncalibrated RGB images. There has b … | Continue reading


@nibblestew.blogspot.com | 1 year ago

Jussi Pakkanen: If you don't tolerate it in new code you should not tolerate it in old code either

Let's assume that you are working on a code base and notice that it has some minor issue. For argument's sake we'll say that it has some self written functionality and that the language's standard library has added identical functionality recently. Let's further assume that that … | Continue reading


@nibblestew.blogspot.com | 1 year ago

Jussi Pakkanen: Making Visual Studio compilers directly runnable from any shell (yes, even plain cmd.exe)

The Visual Studio compiler toolchain behaves in peculiar ways One of the weirdest is that you can't run the compiler from any shell. Instead you have to run the compiler either from a special, blessed shell that comes with VS (the most common are "x86 native tools shell" and "x64 … | Continue reading


@nibblestew.blogspot.com | 1 year ago

Jussi Pakkanen: Using cppfront with Meson

Recently Herb Sutter published cppfront, which is an attempt to create C++ a new syntax to fix many issues that can't be changed in existing C++ because of backwards compatibility. Like with the original cfront compiler, cppfront works by parsing the "new syntax" C++ and transpil … | Continue reading


@nibblestew.blogspot.com | 1 year ago

Jussi Pakkanen: "Why is it that package managers are unnecessarily hard?" — or are they?

At the moment the top rated post in In the C++ subreddit is Why is it that package managers are unnecessarily hard?. The poster wants to create an application that uses fmt and SDL2. After writing a lengthy and complicated (for the task) build file, installing a package manager, … | Continue reading


@nibblestew.blogspot.com | 1 year ago

Jussi Pakkanen: Diving deeper into custom PDF and epub generation

In a previous blog post I looked into converting a custom markup text format into "proper" PDF and epub documents. The format at the time was very simple and could not do even simple things like italic text. At the time it was ok, but as time went on it seemed a bit unsatisfactor … | Continue reading


@nibblestew.blogspot.com | 1 year ago

Jussi Pakkanen: Questions to ask a prospective employer during a job interview

Question: Do developers in your organization have full admin rights on their own computer?Rationale: While blocking admin rights might make sense for regular office workers it is a massive hindrance for software developers. They do need admin access for many things and not giving … | Continue reading


@nibblestew.blogspot.com | 1 year ago

Jussi Pakkanen: Looking at LibreOffice's Windows installer

There has long been a desire to get rid of Cygwin as a build dependency on LibreOffice. In addition to building dependencies it is also used to create the Windows MSI installer. Due to reasons I don't remember any more I chose to look into replacing just that bit with some modern … | Continue reading


@nibblestew.blogspot.com | 1 year ago

Jussi Pakkanen: Random things on designing a text format for books

In previous blog posts there was some talk about implementing a simple system that generates books (both PDF and ebook) from plain text input files. The main question for that is what the input format should be. Currently there are basically two established formats: LaTeX and Mar … | Continue reading


@nibblestew.blogspot.com | 1 year ago

Jussi Pakkanen: Making decision without all the information is tricky, a case study

In a recent blog post, Michal Catanzaro wrote about choosing proper configurations for your build, especially the buildtype attribute. As noted in the text, Meson's build type setup is not the greatest in the world., so I figured I'd write why that is, what would a better design … | Continue reading


@nibblestew.blogspot.com | 1 year ago

Jussi Pakkanen: Implementing a "mini-LaTeX" in ~2000 lines of code

A preliminary noteThe previous blog post on this subject got posted to hackernews. The comments were roughly like the following (contains exaggeration, but only a little):The author claims to obtain superior quality compared to LaTeX but after reading the first three sentences I … | Continue reading


@nibblestew.blogspot.com | 1 year ago

Jussi Pakkanen: That time when I accidentally social engineered myself to a film set

I spent the last week in Toronto in the Cpp North conference. It was so much fun just to hang around with people after such a long pause.My talk was about porting large code bases from one build system to another, using LibreOffice as an example The talk should eventually show up … | Continue reading


@nibblestew.blogspot.com | 1 year ago

Jussi Pakkanen: Further adventures in creating a custom math-themed jigsaw puzzle

In the previous post we looked at creating a custom jigsaw puzzle from scratch using a laser printer and engraver because jigsaw puzzle manufacturers would not disclose their printing and cutting tolerances. As a refresher, here is what the end result looked like.After assembling … | Continue reading


@nibblestew.blogspot.com | 1 year ago

Jussi Pakkanen: Attempting to create an aesthetic global line breaking algorithm

The Knuth-Plass line breaking algorithm is one of the cornerstones of TeX and why its output looks so pleasing to read (even to people who do not like the look of Computer Modern). While most text editors do line breaking with a quick & dirty algorithm that looks at each line in … | Continue reading


@nibblestew.blogspot.com | 1 year ago

Jussi Pakkanen: Creating your own math-themed jigsaw puzzle from scratch

 Don't you just hate it when you get nerd sniped?I don't either. It is usually quite fun. Case in point, some time ago I came upon this YouTube video:It is about how a "500 piece puzzle" usually does not have 500 pieces, but instead slightly more to make manufacturing easier (see … | Continue reading


@nibblestew.blogspot.com | 1 year ago

Jussi Pakkanen: A look in the game design of choose-your-own-adventure books

After a long covid pause I visited my parents' house. I took some things back with me, such as this:This is a choose your own adventure book that originally belonged to my big sister. For those who don't speak Finnish, the book is called The Haunted Railway Book and it uses the c … | Continue reading


@nibblestew.blogspot.com | 1 year ago

Jussi Pakkanen: Sometimes the real world gives you unexpected comedy gold

(FTR: I did not write either one of those tweets, these are just two consecutive items that showed up on my timeline.) | Continue reading


@nibblestew.blogspot.com | 1 year ago

Jussi Pakkanen: Of snaps and stratagem

My desktop machine is running Kubuntu for a while now. As the new LTS came out I decided to update it. One major change in this release is that Firefox is no longer provided natively, instead it is a Snap package. If you have any experience with computers you might guess that thi … | Continue reading


@nibblestew.blogspot.com | 2 years ago

Jussi Pakkanen: Getting web proxys and certificates working on Linux or "if it's all the same to you, I'd rather take a thousand years of the Sarlacc pit, thankyouverymuch"

In my day job I'm a consultant. Every now and then my customer changes. This means setting up a new development environment and all that. Recently I started working for a Very Big customer who have a Very Corporative network setup. Basically:All network traffic must go through a … | Continue reading


@nibblestew.blogspot.com | 2 years ago

Jussi Pakkanen: Looking at building some parts of the Unreal engine with Meson

Previously we have lookedbuilding the O3DE and Godot game engines with Meson. To keep with the trend let's now look at building the Unreal engine. Unfortunately, as Unreal is not open source, I can't give out any actual code. The license permits sharing snippets, though, so we're … | Continue reading


@nibblestew.blogspot.com | 2 years ago

Jussi Pakkanen: The C++ best practices game jam sample project Meson conversion

Today is April Fool's day and also when the C++ best practices game jam begins. This is interesting because the Jam provides a modern multiplatform C++ starter project setup using multiple dependencies. I though it would be illuminating to convert it to build with Meson and compa … | Continue reading


@nibblestew.blogspot.com | 2 years ago

Jussi Pakkanen: Please provide tarball releases of your projects

A recent trend in open source projects seems to be to avoid releasing proper release archives (whether signed with GPG or not). Instead peop... | Continue reading


@nibblestew.blogspot.com | 2 years ago

Jussi Pakkanen: Supporting external modules in Godot game engine with Meson

The disclaimer None of this is in upstream Godot yet. It is only a proposal. The actual code can be obtained from the meson2 branch of this... | Continue reading


@nibblestew.blogspot.com | 2 years ago

Jussi Pakkanen: Typesetting an Entire Book Part IV: The Content

In previous blog posts (such as seals this one ) we looked into typesetting a book with various FOSS tools. Those have used existing conten... | Continue reading


@nibblestew.blogspot.com | 2 years ago

Jussi Pakkanen: Converting Godot game engine to Meson, how you can help

There has long been interest in switching the Godot game engine from its current SCons build system to Meson. The actual details are here , ... | Continue reading


@nibblestew.blogspot.com | 2 years ago

Jussi Pakkanen: Compiling LibreOffice with Meson even further

After building the basics of LO on Windows and macOS the obvious next step is to build all of it. This is just grunt work and quite boring a... | Continue reading


@nibblestew.blogspot.com | 2 years ago

Typesetting a whole book part III, the analog edition

In earlier editions ( part 1 , part 2 ) we looked at typesetting a full book to a PDF file. This is fun and all, but until you actually hold... | Continue reading


@nibblestew.blogspot.com | 2 years ago

A call for more downstream testing of Meson

As Meson gets more and more popular, the number of regressions also grows. This is an unvoidable fact of life. To minimize this effort we pu... | Continue reading


@nibblestew.blogspot.com | 2 years ago

Why most programming language performance comparisons are most likely wrong

For as long as programming languages have existed, people have fought over which one of them is the fastest. These debates have ranged from ... | Continue reading


@nibblestew.blogspot.com | 2 years ago

A quick look at the O3DE game engine and building it with Meson

Earlier today I livestreamed what it would take to build a small part of the recently open sourced  O3DE game engine . The attempt did not ... | Continue reading


@nibblestew.blogspot.com | 2 years ago

Looking at the Performance of Refterm

Recently a known strong-opinion-holder Casey Muratori wrote a reference implementation for a new fast terminal renderer.  The goal is (as fa... | Continue reading


@nibblestew.blogspot.com | 2 years ago

Managing Dependencies with Meson and WrapDB

A recent blog post talked about how to build and manage dependencies with CMake and FetchContent . The example that they used was a simple ... | Continue reading


@nibblestew.blogspot.com | 2 years ago

Why all open source maintainers are jerks, the Drake equation hypothesis

Preface This blog post is meant to be humorous. It is not a serious piece of scientifically rigorous research. In particular it is not aimin... | Continue reading


@nibblestew.blogspot.com | 3 years ago

.C as a file extension for C++ is not portable

Some projects use .C as a file extension for C++ source code. This is ill-advised, because it is can't really be made to work automatically... | Continue reading


@nibblestew.blogspot.com | 3 years ago

“Should we break the ABI” is the wrong question

The ongoing battle on breaking C++'s ABI seems to be gathering steam again. In a nutshell there are two sets of people in this debate. The f... | Continue reading


@nibblestew.blogspot.com | 3 years ago

The joys of creating Xcode project files

Meson's Xcode backend was originally written in 2014 or so and was never complete or even sufficiently good for daily use. The main reason f... | Continue reading


@nibblestew.blogspot.com | 3 years ago

Never use environment variables for configuration

Suppose you need to create a function for adding two numbers together in plain C. How would you write it? What sort of an API would it have?... | Continue reading


@nibblestew.blogspot.com | 3 years ago

Mixing Rust into an existing C shared library using Meson

Many people are interested in adding Rust to their existing projects for additional safety. For example it would be convenient to use Rust f... | Continue reading


@nibblestew.blogspot.com | 3 years ago

Millennium Prize Problems but for Linux

There is a longstanding tradition in mathematics to create a list of hard unsolved problems to drive people to work on solving them. Example... | Continue reading


@nibblestew.blogspot.com | 3 years ago

Some things a potential Git replacement probably needs to provide

Recently there has been renewed interest in revision control systems. This is great as improvements to tools are always welcome. Git is, sad... | Continue reading


@nibblestew.blogspot.com | 3 years ago

Apple might completely take over end users' computers

Many people are concerned about Apple's ongoing attempts to take more and more control of end user machines from their users. Some go so far... | Continue reading


@nibblestew.blogspot.com | 3 years ago

Adding (very) preliminary support for C++ modules in Meson

One of the most common questions people ask about Meson is why does it not yet have support for building C++ modules. Up until now the answe... | Continue reading


@nibblestew.blogspot.com | 3 years ago

The Nine Phases of an Open Source Project Maintainer

There is more to running an open source project than writing code. In fact most of all work has to do with something else. This places addit... | Continue reading


@nibblestew.blogspot.com | 3 years ago