Piero V.

HP Laser 107a on Linux

Up until a couple of years ago, we had HP Color LaserJet CP1215, a regular USB printer. It was also supported on Linux with the foo2hp drivers (part of the printer-driver-foo2zjs package on Debian).

I do not remember the exact reason why we changed it. I think it was broken, each toner cost around 80€ (it had four: CYMK) and maybe some other reasons.

We switched to an HP Envy 6000, an ink-jet printer. It works, but the documents do not look sharp when printed with it, and its cartridges do not last long. So, we also bought a cheap HP Laser 107a to print in black and white.

It works fine for us, but it has a slightly annoying problem for me: officially, it is supported on Linux only with proprietary drivers. And not only are they proprietary, but they do not work at all on my system.

foo2qpdl

I do not print often: usually only for bureaucratic stuff that I do begrudgingly and with urgency. So, I decided not to fight with printers (the eternal battle of informatics 😄️). Instead, I prepare PDFs on my Linux computer, run an HTTP server with Python, and go to the other floor to print them on another computer on Windows. … [Leggi il resto]

A small journey with my Orange Pi Zero

A couple of weeks ago, Debian Bookworm became stable. I have a few devices running stable, including an Orange Pi Zero I use to open and close my garage door with a Telegram bot.

So, I SSH’ed in it, and ran the following commands:

apt update
apt upgrade
apt dist-upgrade

Without even changing my /etc/apt/sources.list because I already keep stable instead of the codename 😎️.

End of the story, just like any other major Debian update there in the last 6 years… Or is it?

I just wanted a new kernel…

Many boot files were dated June 2017, so the system probably started as Debian Stretch. And actually, it was an Armbian installation (which uses the official Debian repos, contrarily to Raspbian, plus a custom repository for a few additional packages).

The Linux kernel was one of these custom packages, and its version was 4.11.3, released on May 25, 2017, so quite old. I wanted a more recent kernel with security vulnerabilities fixed and all the other improvements.

Debian supports a configuration they call ARMMP (ARM multiplatform). With a single kernel and DeviceTree, it targets many different devices, and the Orange Pi is one of them. So, I tried to install Debian’s official kernel instead of the one I was using… and for the first time in 6 years, I screwed up to the point I needed to remove the thumb drive I use as storage on that system. It was somehow annoying because the board is in an electrical box, and there were several things I needed to move to get to it. I tried to troubleshoot it for an entire evening without success. Eventually, I went back to the old kernel, closed the box, and moved everything again. … [Leggi il resto]

How we develop Tor Browser

Ten days ago, Mullvad released Mullvad Browser. I was involved in its development, being part of the applications team at the Tor Project.

So, I would like to use this occasion to describe how we maintain Tor Browser and the similarities with Mullvad Browser.

Firefox ESR

Tor Browser is a fork of Firefox. However, we are a small team, and we cannot stay on pass with the rapid release channel of Mozilla.

Instead, our starting point is the extended support release, the version geared towards enterprises.

It is not an old Firefox, but a channel Mozilla actively supports for about one year. Like the rapid release, it receives monthly updates, typically only with security patches. It rarely receives new features.

This is an enormous advantage because we can quickly update Tor Browser without auditing the changes. Moreover, these few changes are unlikely to create conflicts to be manually merged and reviewed carefully. … [Leggi il resto]

I have become a professional FOSS developer

I had the luck to get to know free and open source software when I was still a kid. In this way, the willingness to share my knowledge became a part of my culture and personality.

If you browse this site, you will see that I have shared a lot of small projects, like FlatPress plugins. However, I have never been a long-time contributor to a big project.

Moreover, at the end of my University course of study, I had to do an internship to graduate. I went to a software company that creates proprietary programs for the enterprise. I remained for six months and then was hired as an employee, and I stayed for another two years.

I was on a small team developing a CAD, and I enjoyed working with my coworkers a lot (even though I worked remotely for most of the two years because of COVID).

But I did not like using proprietary libraries.

One of them was Parasolid, a geometry kernel developed by Siemens. It is powerful, but some functions are overly complicated to use. It comes with very prolific documentation, and its subscription includes technical support. But it is the only way to troubleshoot your problems: I could never find any public information online, which is extremely surprising in the 2020s! … [Leggi il resto]

Back to Rust again

In 2010 I tried to program a video game with a friend for the first time. And it was our first time with C++, too. Of course, it was C++2003 since C++11 was the new-not-yet-stable thing.

I must say that our approach was quite naive. For example, we thought we would always play the game on a LAN. Thus, we never worried about lag compensation.

Now, a few years have passed, and I have learned a thing or two, even though I still have to finish a game project.

So, at the beginning of this year, this friend pushed me to learn Rust, and I decided to learn it through game development again.

At a certain point, I decided to use a physics engine, and I found Rapier. I was especially interested in its determinism to finally implement a lag compensation mechanism. But I did not understand how to use it correctly. Only recently, I understood it favors an approach similar to functional programming, whereas I was trying an OOP-like approach. This also led to fights with the borrow checker. So, because of these problems and my usual decrease in interest and focus, I left yet another project incomplete. … [Leggi il resto]