Jae's Blog

The Telemessage fiasco keeps getting better

If you haven’t been keeping up with the news lately, after the whole Signal fiasco, it appeared that USA government officials are using some fork called “Telemessage”.

That app claims to offer backup solutions for popular messengers including Signal, to comply with government directives. Funnily enough, their website got completely wiped, a large change from what it was a few months ago.

Putting aside all the issues that using a Signal fork exposes you to, it appears that despite their marketing, they could access plaintext messages.

Even better, according to 404 Media, the entire thing is now under investigation thanks to their reporting on the matter.

Edit: a senator asked for an investigation, my bad.

If you’re interested, I’ve archived the source code of both the Android and iOS apps on my GitLab instance (tho those aren’t rare):

Overall, it’s quite fun to look at this from the outside, but also a bit worrying.

And remember, if you switch to Signal, use the official version and don’t add random journalists to your convos.

Setting up NetNewsWire with Miniflux

As I previously mentioned, I use Miniflux to sync all my RSS feeds around.

Today, I discovered NetNewsWire, a free and Open-Source app allowing you to read, and sync, RSS feeds on iOS. One issue: when opening the app, going in the settings, and trying to add an account, Miniflux is nowhere to be seen.

It’s actually really easy to sync your feeds there. For that, you want first to log into your Miniflux account and head to the settings.

Head to “Integrations” and scroll down until you see the “Google Reader” section. There, enable it, then set a username and password. Don’t forget to click “update” when this is done.

Screenshot showing the "Google Reader" section with an username and password fields.

When this is done, open NetNewsWire on your iPhone, go in the settings and in the “Accounts” section, click on “Add account”. In the list that opens, select “FreshRSS”.

There, put the username and password you set, and as the URL, https://reader.miniflux.app.

Screenshot of the setup screen in the app showing the username, password and URL.

Once this is done, just hit “Add Account” and you should be all set.

As an additional step, I can recommend turning off “On my iPhone” in the accounts section to avoid the clutter of the default feeds being added.

You now have all your feeds synced to your phone.

Screenshot of NetNewsWire showing the 404 Media news feed.
For instance, the app showing the synced 404 Media feed.
Your own local copy of Wikipedia

Recently, Wikipedia has come under a lot of attacks from malicious political entities. Unlike the Wikimedia Foundation, they have much more resources to harass projects such as this one into oblivion.

This is why it is more important than ever to get your own copy of Wikipedia (or any wiki, really) at home.

For this quick HOWTO, we’re gonna need a few things:

  • A computer
  • About 100Gb of space free on your hard drive
  • Some time on your hands (depending on how good your internet is)

My software of choice to have my own Wikipedia copy is Kiwix. It is Free and Open-Source, and has a built-in downloader, allowing you to easily select a language and wiki to download.

My recommended way to download Kiwix is through Flatpak, which makes the process easier. If like me, you want the articles to be downloaded somewhere else, use FlatSeal to allow the application to write in a specific location, a second hard drive for instance.

If you don’t want to use Flatpak, see the options listed on Kiwix’s website, there is probably one that will fit your use case.

When launching the software for the first time, you can change the download location by going in the three buttons on the top right, then “Settings” and finally change the “Download directory”.

Once this is done, time to download some wikis. If it’s not already done, on the left of the main page, select “Online Files”, then select your languages and content types.

UI showing the selection of languages and content types, showing French and English being selected as well as “images” and “full article”.
How I download stuff

Do note that downloading Wikipedia with pictures takes around 100Gb while without it will only take 53Gb (for the English version, being the largest to this day).

Once the downloads are finished, click on “Clear” to remove all your filters, and swap to the “Local files” tab.

From there, you can open a specific wiki, search it and basically use it as it were online.

Screenshot of Kiwix showing the French Wikipedia page for the city of Annecy.

And this is how you can still access Wikipedia in case your internet randomly decides to stop, or if something worse would happen.

The best watch I’ve ever had

At the start of this year, I started looking at replacements for my Apple Watch Series 6.

Smartwatches offer lots of features, for instance, I loved being able to pay with my watch and receive notifications directly, however, one thing was very annoying for me: battery.

I hate things with batteries, I forget to charge them all the time, that’s why all my workstation setup is wired. But hey, can’t really escape that with mobile devices, especially phones and watches.

Enters the Pebble announcement. Pebble is a brand of smartwatches using e-ink screens, and boasting a really long battery life for the features.

The whole thing failed back in 2016, but has been doing a comeback since the start of the year, with the announcement directly falling when I needed a new watch. The older models boasted a battery life of around a week, while the newer ones (still not shipped tho) boast about around a month.

This is already better than the meagre “less than one day” the Apple Watch is capable of.

However, this is not a post about Pebble. Out there, there is an option that is even cheaper than an Apple Watch or Pebble, and that will last far, far longer. I’m talking about dumb Casio watches.

Right around that moment of the year, enters a friend with which I started talking about watches. He promptly recommended I check out Casio watches, and more particularly the Casio AE-1200.

Curious about it, I went to a store the next day to pick one up, the final price being around €50 (VAT included).

The configuring the time and everything was fairly easy, as well, just holding the “adjust” button, and going through all the things one by one.

It might not look like much, but the AE-1200 probably has the most features for the price, including (but not limited to):

  • Timezones: if you can literally change on the fly which timezone you are in, meaning you don’t need to adjust the watch manually when you move around
  • Daylight savings: you can also change DST settings super easily, once again, avoiding you having to reconfigure the whole thing when that changes
  • 10 years of battery!!!
  • Stopwatch/Timer
  • Auto calendar (with leap years)
  • 5 different alarms

The one drawback is the lack of syncing making the watch slowly drift. I usually resync the time every week to make sure it’s exact. If you don’t care about this, the drift is minimal, about a second a week.

Overall, the setup has been working well, because… it just works. I may can’t pay or receive notifications with it, but it shows the correct time when I need it and doesn’t need to be charged at all.

Looking at the pricing of new Pebble watches as well, I’ll stay with my cheap one.

Debugging SSL in GitLab Pages

Debugging GitLab Pages on a self-managed instance can be a hassle, especially if you’re only getting nebulous messages without any further information.

Do note, for this to work, you’ll need to have an admin access to the machine hosting the main Rails app.

To find out exactly why Let’s Encrypt is failing to get a certificate, use the following command:

docker compose exec gitlab gitlab-ctl tail gitlab-rails --follow | grep -i "encrypt\|acme\|certificate"Code language: JavaScript (javascript)

It should output the exact log of Let’s Encrypt and tell you if it’s hurting a wall somewhere. If you have a bare-metal instance, just remove the docker part of the command, and only use gitlab-ctl.

AI still banned at Servo

About half an hour ago, Servo re-affirmed their ban of LLM tools laid out in their contribution policies:

Contributions must not include content generated by large language models or other probabilistic tools, including but not limited to Copilot or ChatGPT. This policy covers code, documentation, pull requests, issues, comments, and any other contributions to the Servo project.

This is honestly great to hear, as it cements the longevity of the project, avoiding the many headaches associated with AI code generation amongst others.

Conditional Git config

A little known feature of Git is that you can have conditions, for instance, to have a work and personal name and email.

First, the ~/.gitconfig file:

[includeIf "gitdir:~/src/personal/"]
  path = ~/.gitconfig.personal

[includeIf "gitdir:~/src/work/"]
  path = ~/.gitconfig.work
Code language: PHP (php)

After specifying this, you can then create two files, ~/.gitconfig.personal and ~/.gitconfig.work, containing:

[user]
    email = email@something.com
    name = MyName

and

[user]
    email = jae@consoso.com
    name = Very serious business person

Now, when you are in ~/src/personal/, the personal email and name will be used, and when in ~/src/work/, the work one will be.

More vulnerability databases!

Previously, I’ve shared about EUVD, the European Vulnerability Database.

Turns out in the wake of the whole CVE debacle, a bunch of other initiatives were also announced!

As more alternatives pile up, this paints a good outlook for the future, shall CVE go definitely down the drain.

Amazing things are happening with “vibe” coders

The motto of “vibe” coders really is “let the thing do it, don’t check anything ever” because the whole cohort of Cursor users (an IDE with built-in LLMs) really believed a support bot that came up with a fake policy.

Shortly afterward, several users publicly announced their subscription cancellations on Reddit, citing the non-existent policy as their reason. “I literally just cancelled my sub,” wrote the original Reddit poster, adding that their workplace was now “purging it completely.” Others joined in: “Yep, I’m canceling as well, this is asinine.” Soon after, moderators locked the Reddit thread and removed the original post.

This is maybe too much on the nose when talking about LLM users. Vibes-based support is apparently a thing nowadays as well.

You can find the full article on ArsTechnica: https://arstechnica.com/ai/2025/04/cursor-ai-support-bot-invents-fake-policy-and-triggers-user-uproar/

Headless road to ARM: status

Being currently assigned to the issue about ARM support for Resonite headlesses (GH-2555), time for an update since there hasn’t been one in some time.

First off, everything is looking great, current status being:

  • 6 PRs are currently open (FreeImage, Opus, Crunch, Assimp, MSDFGen, RNNoise)
  • 1 PR has been merged 🎉 (Brotli)
  • 1 repo is missing (Freetype)

This marks the first ARM-related PR being reviewed and merged into an official repository, being the PR #1 on the Brotli repo, which bundled Windows, Linux x64 and Linux ARM CI/CD builds.

As a reminder, I am currently providing a complete package of all libraries built directly for ARM on my website.

Next steps would be to:

  • Get an official fork of the Freetype repository (requested on 2025/04/09)
  • Create a container image bundling my libraries and a way to download the headless easily on ARM machines
  • Get all the current PRs reviewed and merged

The second one is more important as distribution is probably the biggest issue for complete ARM support of the headless, SteamCMD not supporting this architecture.

I am very confident to say that we will reach official support very soon, given how well this has been going so far.

My plans after this feature is shipped is to work on the macOS support (GH-1412) as it’s also marked as “community help wanted”.

Older Posts
Jae 2012-2025, CC BY-SA 4.0 unless stated otherwise.