Busybox Musl Pinephone Postmarketos

Pinephone and Postmarketos.

Hardware and Software for 2020 being the year of GNU like/Linux on the smartphone.

The Pinephone is a revolutionary phone which brings mainline kernel linux and drivers allowing the installation of GNU/Linux or alike operative systems on this phone.

I am the proud owner of one of those devices so I am going to comment my experience.

I bought a version of the phone which came with the Postmarketos operative system and I first had to study how I was going to be able to use that phone for my daily live.

For example I learned to use Weechat as E2E Matrix chat platform and used Telegram Desktop as Telegram client.

Phone calls and SMS works well so it was not a problem.

Banking do not work at all because my bank do not provide a webpage nor GNU/Linux application.

Email was clear, Mutt was my choice because is the software I always use.

The terminal emulator by default did not convince me so I used Lxterminal which is my common choice in GNU/Linux.

Firefox only works with not very heavy in resource usage webpages so if I have to use a webpage too heavy I have to make scripts which allow me to use the webpage with less boiler plate, an example is Peertube-dl for many videos webpages. I am still happy with Firefox because I can Inspect element on the phone.

VLC simply works well for video and audio.

Postmarketos is not GNU because by default does not ship Glibc, Coreutils, etc. But smaller utilities like Musl, Busybox, etc. But works very much like a GNU distribution.

Bludit Free software Micro Pequenio

A story about Free Software, the history of Pequenio.

Months ago a friend with no programming knowledge showed me his personal blog using Bludit.

I found some CSS errors I was able to solve using the Inspect Element of Firefox on his web so I searched which theme he was using with the Network tool of Firefox and I discovered he was using Micro.

So I contacted with the developer and make multiple pull request with some fixes I though could be interesting for the software, the developer liked ones but not others so I suggested that friend making a fork.

That is how Pequenio born, thanks to theme being free software I was not only able to improve the web of my friend, but also distribute those changes so anyone can use those changes.

You can find the Pequenio theme at or

Gentoo Nextcloud PHP

Why Gentoo GNU/Linux rules (For me) as PHP web development environment?

Usually clients do not have the latest PHP version installed and this is when Gentoo becomes handy thanks to the Portage package manager Slot system, lets look it in deep…

Currently Gentoo packages different versions of PHP like 7.2, 7.3, 7.4 and 8.0 and thanks to the slot system you can have more than one installed, but thats not all, you can also “clone” the /etc/init.d/php-fpm putting a score and the name of the version you want this new php-fpm instance to execute so having a multiversion development environment is no longer hard.

Also this capacities Gentoo comes with are pretty handy for servers allowing you to create a new init service with a especific version isolated in a user if you think some service is more critical at security or performance level than the others giving you such a powerful server environment too. I use this with my Nextcloud instance so the data cannot be accesed or manipulated from other PHP services.

Installing Gentoo the first time is never easy, but it provides such a powerful and customizable operative system so the effort in learning how to use that distribution of GNU/Linux is not a wasted effort.

Firefox Privacy

Firefox privacy settings.

  • Disable DRM.
  • Choose “strict” on Browser Privacy. (If it is a good rule in Perl and JS must be good on Firefox also.)
  • Tick on “Do not track”.
  • Tick on “Delete cookies and site data when Firefox is closed” and press ctrl + alt + supr and delete cookies any time you log or visit any Google, Amazon, Facebook, Apple or Microsoft service when you finish doing whatever you needed of that service or use Multi-Account containers to encapsulate those connections, closing the browser is also an option.
  • Install Privacy Badge, NoScript, UBlock and Multi-account containers addons. (You will need to learn to use those.)
  • Opt-out:
    • Allow Firefox to send technical and interaction data to Mozilla
    • Allow Firefox to make personalized extension recommendations
    • Allow Firefox to install and run studies
  • Use a dns server which provides encryption and do not store logs.

This should do something to protect your privacy, but it is not a absolute receipt if you really want to protect your privacy must also use your own services or the ones of someone you trust.

If you are not logging anywhere Tor Browser or VPNs may be useful since services can still track you by your IP, but it does not work on all situations, for example if some web only provides a http:// version it can make more dangerous to visit them.

Since you are going probably to end executing untrusted JS sometimes in order to make some webs to work using a properly configured docker container or VM may be useful to avoid a potential Zero Day can break into your computer so easily.

You should also know Firefox provides a profile feature to be able to use different profiles for the different things you do with it.

Javascript Perl

Doing common things for Perl developers on Javascript (I)

From Perl to Javascript relearning.

It is common in Perl using an array as the arguments of a function, this is the useful default behaviour on Perl and I found myself not being able to do it so I searched it and I found how to do it.

This is the Perl code I wanted to emulate.

use strict;
use warnings;

use feature 'say';

sub a {
    my ($arg1, $arg2) = @_;
    say "$arg1 $arg2";

my @a = ('arg1', 'arg2');

And this is the equivalent Javascript code using .apply a prototype function for implementors of Function class.

"use strict";

function a(a, b) {
    console.log(`${a} ${b}`);

let a_array = [ 'arg1', 'arg2' ];

// The first argument is null because it sends the value of this.
// If you are doing this to a object it probably should be different
a.apply(null, a_array);

C Docker Javascript Peertube-dl Perl XS

What is Peertube-dl?

Peertube-dl aims to be a alternative to youtube-dl written in Perl providing a library, a cli utility and a webpage.

I am currently developing that project, I licensed it under the AGPLv3, a Free Software license.

It provides a Dockerfile which allows you to run the program in a container.

I hope you find it useful, beware it is provided to you without any warranty, but I will be happy to help you with any issues you find on


Using the Spain digital certificate in Docker.

I just made a project to support using the Spanish Digital Certificate from Docker.

This may be useful for people using a GNU/Linux distribution different than Red Hat derivates or Debian derivates like Archlinux or Gentoo or people waiting to automate digital certificate usage.

I hope you find it useful, code is located on CertificadoDigitalDocker.

Meta content.

Mi first post.

In this blog I am going to post code recipes and information about the multiple free software projects I am developing now.

I hope you find it interesting.