Fix limitcheck error when trying to print a PDF

17 Mar

I use an old salvaged office printer (Kyocera Ecosys FS-1118MFP) which might not be able to handle some fancy things with recent PDFs – or, who knows, the PDF was a very crappy one?

When trying to print the PDF in questions, I got an empty page and another one with the following error message:


A limitcheck error happens when a request “Exceeds printer’s memory or PostScript language limit.” The “offending command here” is “filter”, which probably has to do with decompressing an image.

On the second attempt at printing, the printer was stuck with the “receiving” led blinking for ages.

What helped me to print that PDF: I opened it with LibreOffice Draw (currently using version, which now does a great job at handling PDFs. I then exported it as a new PDF, which interestingly changed the size from 626.4 kB to 125.5 kB. I was then able to print the PDF without any error, and without having the printer think about it for an hour.

There will be other ways to fix that. You can try different way to reduce the complexity of the document (including converting it to an image before sending it to the printer). People often have success with reinstalling their printer for some reason.

Some links that might be of interest if you have that kind of error:

That was tested on an Ubuntu 18.04-derivative, with LibreOffice Draw version, Gnome Document Viewer 3.28.4 and CUPS 2.2.7.


fix all boot options gone from Asus F201E after LibreElec installation

16 Mar

I recently tried to install LibreElec 9.0 on my old Asus F201E, and the installation from the bootable USB seemed to work well, but at first boot from the hard drive, the system goes straight to the Bios options, with the usual boot options nowhere to be seen.

I noticed that I had never updated the BIOS version, so I got the latest from this page, put it on a USB kid (unzipped), turned the laptop on with the USB stick in, accessed the BIOS settings and used the EZ Flash tool. You can see your current BIOS version in there, and you can also navigate on your USB stick to find the update. The tool can then install that and reboots.

Straight after updating the BIOS, the computer booted the LibreElec partition as expected.

I assume that this could also work by restoring the existing version of the BIOS.

Add “open terminal here” in Gnome Files on Ubuntu Budgie 18.04

30 Aug

The distribution I currently used is shipped with Tuxedo computers and is based on Ubuntu Budgie 18.04. The thing that I missed the most when I started using it was the right-click menu item to “Open terminal here” in Gnome Files (version 3.26.3 at the time of writing).

Tilix is the default terminal on this distribution, but it does no matter which one you use. To add an extra right-click menu item to open your default terminal in the current directory, you can open the Software app and search for “Nautilus” (which is the other name of Gnome Files; check that it is indeed marked as “installed”) and tick the add-on called “Terminal plugin for Files“.

You shouldn’t need to log out and back in to see the change: right-clicking inside a directory should now offer the option “Open Tilix Here”.

Move your GitHub page to GitLab Pages

4 Jul

If you are looking to move your website from GitHub Pages to GitLab Pages (and stick to Jekyll), here are the few steps you need to follow. Most of it is pretty straight-forward, but I thought I’d list the details and a couple more infos here.

Import your project

First, you need to import your repository from GitHub to GitLab. From the, you can do: + > New project > Import project > GitHub

Check the project settings

In your imported repository, check that Shared Runners are enabled (Settings > CI / CD > Runners settings)

Create a config file

From the online interface, create a .gitlab-ci.yml config file in your repo’s top directory to specify how the CI should test and build the page.
This code should be enough to start with:

image: ruby:2.3

 JEKYLL_ENV: production

  - bundle install

  stage: test
  - bundle exec jekyll build -d test
    - test
  - master

  stage: deploy
  - bundle exec jekyll build -d public
    - public
  - master

Change your URLs

Change your repository name to in both your project name and your path. (Settings > General > Advanced settings > Rename repository; make sure you replace “repo-owner-name” by your own.)

Change your remote in your local copy of the repository. This is probably what you want:

 git remote rm origin
 git remote add origin
 git push --set-upstream origin master

Remember to update your URL in your _config.yml file so your Liquid output markup that makes use of it works as expected.

And of course, remember to update your URL outside of your website too! (i.e. old website, other projects, other websites, social media profiles and pages…)

To redirect your old Github Page, you can use the jekyll-redirect-from plugin that’s already included in the Github Pages gems.

First, add this line to your _config.yml file to activate the plugin:

  - jekyll-redirect-from

… and you can now add an extra redirect_to line in your pages. For example, in your index.html header:

layout: default
  <span id="mce_SELREST_start" style="overflow:hidden;line-height:0;"></span>-

You can also add those two lines of HTML in your default head.html header, so all the pages that use it automatically use the new location (and so search engines take that into account):


(this was hinted by this StackOverflow answer.)


If you get a message from GitLab telling you that “Your pipeline has failed”, with an error message along those lines:

Conversion error: Jekyll::Converters::Scss encountered an error while converting 'assets/css/style.scss':
 Invalid US-ASCII character "\xE2" on line 5
jekyll 3.7.3 | Error: Invalid US-ASCII character "\xE2" on line 5
ERROR: Job failed: exit code 1

… but you can build your Jekyll site locally, it probably means that there is an issue with the language settings used in GitLab’s Docker.
You can try adding the following extra variables in your .gitlab-ci.yml file:

  LC_ALL: "C.UTF-8"
  LANG: "en_US.UTF-8"

(This was hinted from this Jekyll issue thread.)

Install the Riot desktop client on a Debian-based system

20 Jan

Riot is a messaging app that uses the Matrix decentralised communication network. It can be described as a Slack alternative.

It is available as a webapp from your browser, but you can also install a desktop client (which currently looks pretty much the same as the webapp) on a Debian-based system (i.e. all Debian, Ubuntu and Mint derivatives).

To do that, you need to type a few commands in a terminal.

First, you’ll need to add the right repository to fetch the packages from. To do that, open the sources.list file with your favourite text editor (Kate in my example; you might need to be root to be able to save your modifications):

sudo kate /etc/apt/sources.list

In that file, add a new line for the Riot repository, making sure you use the name of the Debian or Ubuntu version your distribution is based on (the list of available versions for this repo is here; for Linux Mint, see this list; in my example, I use “trusty” because my distro is based on Ubuntu 14.04):

deb trusty main

Then, download and add the corresponding key for authentication:

cd ~/Downloads
sudo apt-key add repo-key.asc

You can now update your repositories and install the app with the two following commands:

sudo apt-get update
sudo apt-get install riot-web


Start an 8-day data detox

20 Dec

Recommended to me by Mozilla, I started a Creative Commons-licensed “Data Detox” that was produced for the Glass Room London in 2017, and is curated by Tactical Technology Collective. It was originally a printed/PDF kit created for the Glass Room New-York in 2016.

I thought I might try that little exercise to see if I could learn something more about e-privacy. Turns out there were quite a few things that I did not know about, especially when it came to Google settings, and iPhone configuration. (I am currently using a salvaged iPhone 4 which does not want to die – better for the planet.)

The Data Detox runs over 8 days and runs you through little tasks you can follow to leave less of a data trail while using your Internet-connected devices.

It is of course not covering 100% of what could be said about e-privacy, but I was surprised at how much it taught me about a bunch of privacy settings in my Google account, and about location services in my iPhone. I would recommend following the detox even if you feel you have a good grasp of what you need to do to stay safe and anonymous on the Internet.

Here is a couple of things I would add to the tasks already offered by the Data Detox, in no particular order. Feel free to add those to the list if you feel motivated, or cherry-pick whatever you feel like doing.

  • Using a password manager like KeePassX (which is mentioned in the detox) is a good way to safely store a bunch of diverse and complicated passwords, but another benefit I have learned to appreciate is that it constitutes a record of how many accounts you own, and allows you to review which unused ones you could delete. Here’s a challenge: every time you add a new account and password, try to delete a different one (or two?) so you don’t build up a collection of them.
  • When reading your emails, start directly deleting the ones you know you will never go back to. That will make your email account less of a data trove waiting to be mined. Another benefit is that you are freeing some valuable storage space for your ethical privacy-respecting email account provider (because you use one, right?).
  • The Alternative App Centre that the detox recommends is good, but I would also recommend to have a look at the Free services that Framasoft offers (more directed at offering Free Software alternatives to the ones offered by the GAFAM: Google, Amazon, Facebook, Apple, Microsoft, i.e. the main huge data silos of the Internet), as well as the list of alternatives from PRISM Break (more directed at privacy-respecting apps to fight state surveillance). Another excellent website that lists alternatives, tools, add-ons and services to protect your privacy, along with valuable information, is
  • Related to the previous point, if you specifically want to get away from data-gathering social networks, I recommend two decentralised Free Software-based alternatives: Mastodon as a Twitter replacement, and Diaspora* as a Facebook replacement. They are both mature projects with a lively healthy community to interact with.
  • Finally, the detox probably didn’t mention it because of the technical knowledge required to set it up, but I’d also recommend looking into self-hosting your own cloud services. Nextcloud, YunoHost and Sandstorm are good starting points. You can also find a service provider that uses Free Software and guarantees to respect your privacy in exchange for some money. I am currently a happy subscriber of IndieHosters (they use Nextcloud for the most part) but you can find more providers on (at the time of writing, 48 providers mainly located in France).

Use Enigmail with Thunderbird 56 beta

12 Sep

If you are trying the sign and encrypt your emails with Enigmail (v. in my case) in the latest Thunderbird 56 beta (v. 56.0b3 in my case), you might run into a blocker:

  • In Enigmail Preferences > Basic > Files and directory, a simple “(error)” appears and there is no way to fix the path the the gpg binary with an override;
  • When you try sending an email, an error message pops up: “Failed to initialize Enigmail. Send unencrypted message?”;
  • When you click on the Enigmail button in the composer window, a window pops up and vanishes in a fraction of a second;
  • The error console (ctrl + shift + J) shows an error message: “Contract ID ‘;1’ was registered as a command line handler for entry ‘cline-enigmail’, but could not be created.”

The issue has been fixed in a development version of Enigmail, so you will have to install the Enigmail Nightly build (the version 2.0a1pre works for me).

To install a downloaded addon (as an .xpi file), you will have to go to add-ons > extensions > cog button > install add-on from file.

Fix “unmet dependency” issue for pulseaudio in KXStudio (and others)

18 Aug

[note: this tip will apply to other “unmet dependency” situations, but definitely not all of them]

If you are a user of the KXStudio repos, and use an environment rid of pulseaudio, you probably were disappointed to see that Firefox recently stopped supporting the ALSA backend. The issue came back recently for me, as Firefox 55 does not seem to have been compiled with the --enable-alsa.

If you are having the “unmet dependency” issue when trying to install pulseaudio-module-jack with apt-get, it might be an issue with conflicting package versions from different sources.

The following packages have unmet dependencies.
pulseaudio-module-jack : Depends: pulseaudio but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

If you use aptitude instead, you will get some more info:

The following packages have unmet dependencies:
pulseaudio : Depends: libpulse0 (= 1:4.0-0ubuntu11.1) but 1:4.0-0ubuntu11.1+kxstudio1 is installed.

The culprit seems to be libpulse0 here. In other cases, you might have to follow the thread of unmet dependencies down until you get to the bottom of it (as in the case of Wine in another similar situation I had).

You can see that the conflicting versions of the package are basically the same, so using one over the other should not cause issues. The problem here is that the KXStudio version has an extra long name to identify its source. You can now identify the different versions of the package that are available:

apt-cache policy libpulse0

… and force the installation of a specific version:

sudo apt-get install libpulse0=1:4.0-0ubuntu11.1

After that, you should be able to install pulseaudio-module-jack without running into any issue.

Remember to start PulseAudio in Cadence so sound comes out of Firefox (no need to restart anything).

Two Crowd Supply projects worth supporting

24 Mar

Crowd Supply is a crowdfunding website that does things differently. Projects hosted on it are usually directed at hackers, and they promote businesses that try to do things differently (I would describe it as “progressive” in a sense). Products can also keep being purchased after the funding target is reached, which also makes it a kind of online shop for cool hardware.

I wanted to tell you about two projects that I consider are worth supporting, mainly because of their links to the Free Software movement (both of them expect to be certified by the stringent FSF label “Respects Your Freedom“, or RYF), but also because they are great projects.

GnuBee: Personal Cloud 1

GnuBee is a personal cloud NAS device that is currently being funded.

From the project page:

The GnuBee Personal Cloud 1 (GB-PC1) is a network-attached storage (NAS) device specifically engineered to run free, libre, open source software (FLOSS). The GB-PC1 has all the functionality of any commercial, proprietary NAS, but at a much lower cost and with the transparency, reliability, and accessibility advantages that come with using FLOSS.


We designed the GnuBee Personal Cloud 1 with the Free Software Foundation’s Respects Your Freedom (RYF) certification in mind and have already initiated the application process with FSF.

In short, we expect the units shipped to backers to be 100% free of binary blobs. Below is a longer explanation.

In the current prototype, there is exactly one binary blob, but we have a clear path to removing it and plan to remove it before shipping the first production units. In particular, the binary blob is for the ASM1061 PCI-to-SATA bridge. As it turns out, a libre kernel driver for this particular chip was mainlined since our original board design, so it should simply be a matter of removing the associated SPI NOR flash chip and using the kernel driver directly to control the PCI-to-SATA bridge.

Even though we think we’d still qualify for RYF certification if we left the design as is (there’s an exception for secondary embedded processors), we nonetheless fully intend to remove this blob and the associated SPI NOR flash chip.

Unfortunately, I can’t afford this one currently, but I would not have hesitated in different circumstances.

Earth-friendly EOMA68 Computing Devices

EOMA68 has already reached its target, but you can currently purchase products.

The goal of this project is to introduce the idea of being ethically responsible about both the ecological and the financial resources required to design, manufacture, acquire and maintain our personal computing devices. This campaign therefore introduces the world’s first devices built around the EOMA68 standard, a freely-accessible royalty-free, unencumbered hardware standard formulated and tested over the last five years around the ultra-simple philosophy of “just plug it in: it will work.”

  • Truly Free: Everything is freely licensed
  • Modular: Use the same Computer Card across many devices
  • Money-saving: Upgrade by replacing Computer Cards, not the whole device
  • Long-lived: Designed to be relevant and useful for at least a decade, if not longer
  • Ecologically Responsible: Keeps parts out of landfill by repurposing them

The campaign offers a number of products, including different cards sporting different distros (the Libre Tea card being the one aiming at getting the RYF certification), a micro desktop housing, a printable laptop housing, and more parts for tinkering.

I supported this one by buying myself a Libre Tea card and a micro desktop housing, which I am really excited about. And to tell you the truth, I am already happy with my contribution because even just the updates are truly fascinating reads. I am very far from understanding all of the technical jargon, but the way they are written, the anecdotes that are part of the whole development and production process, and the amazing transparency that Luke Kenneth Casson Leighton offers make it a very enjoyable story to follow.

An alternative to Facebook events

7 Dec

After leaving Facebook, you realise how much people rely on it to organise events. Some organisations and even administrations actually only use Facebook to publicise their events, and people have to have an account to be able to RSVP, or even have a look at the detailed information.


The pleasures of browsing a Facebook event when not signed up. Interestingly, the mobile view shows even less than the desktop website: not even a description of the event.

I thought I’d ask and look around for an alternative that people could use. Heck, even my local council advertises their events mostly through Facebook, how inclusive is that.

Ideally, my alternative event hosting would:

  • not require an account to RSVP or browse the information;
  • be free of charge;
  • be based on Free or Open Source software;
  • be respectful of privacy;
  • allow to export the event in different formats to add to calendars;
  • be easy to connect to Facebook.

The reality is that people still love the convenience of having all their events centralised in their Facebook, which means that if I am to convince some people to use a different service / platform, it will have to be nicely hooked up to Facebook so they don’t have to do twice as much work.

Sadly, the social network I am currently using (Diaspora, part of the Federation) does not have an event element to it. However, I used it to ask the community if they had ideas.

Some people recommended software like OpenSondage, Framadate (based on OpenSondage), and Dudle. Unfortunately, those are only enough to figure out what is the best time to schedule an event, as opposed to a fully-fledged event manager (where people see a description with a picture, find times and the address, can RSVP and share…).

I was also recommended to use ownCloud or Nextcloud to create an event with the calendar app. That is not enough, as it is not possible to advertise the event publicly – only through email. However, Framasoft based their software Framagenda on it, adding some functionalities like sharing the event by public link – but I could only figure out how to make a whole calendar public. It seems like the differences with the Nextcloud calendar element are minor.

Communecter is a great tool that allows to build a network between citizens, local councils, businesses and organisations. It looks very useful but is more directed towards organising and communicating at the local level, to foster inclusion  and involvement in the community. Not quite the simple event-creating tool I am looking for.

Open Event is Free Software (GPL-3.0) with several components to create events that follow a standard format and publish them to the web with a website generator, or to Android with an app generator; another component allows organisers to self-host a fully-fledged event manager that supports venues, programs and invitations. This is a very promising piece of software, and there is a live implementation at, but I could not register an account in order to test the event creation. It is definitely a project I will closely follow as it seems it is the closest to my requirements, but it seems it needs some more work to be usable on the demonstration website (server error when creating an account, 404 when trying to get a free ticket to an event, missing “how it works” page…). Their standardised format also makes it a great candidate for a potential integration in other Free Software projects like Diaspora.

Another very promising piece of Free Software that allows you to self-host is Attendize (AAL). It is already completely functional as a feature-full event management system (messaging, stats, ticketing and payment…), and is also very beautiful. There is a demonstration backend but it is only designed to test the software, which makes it less likely to replace an event manager that you simply need to sign up to. However, the software is very advanced and fits most of my requirements, so it is definitely something I would look into self-hosting.

Finally, Eventbrite is the obvious alternative that ticks most of the boxes. It is free of charge for free events, but their codebase is not entirely released as Free or Open Source software, although the company seems active on different FLOSS projects (see their GitHub account). They work hard on providing a good API to integrate their services to other apps and websites, which makes it super easy for Facebook users to have their event on both platforms.

In conclusion:

  • If you are ready to self-host, go with Attendize: it is Free Software and seems to do everything you might need it to as far as managing events goes. Also keep an eye out for developments in Open Event.
  • If you are advertising your events on Facebook but want to make them available to all, please create them on something like Eventbrite. They have a one-click Facebook publishing button that will make life easier, and you won’t coerce people into (re-)creating a Facebook account.

Do you know of other alternatives that would match the requirements?