Interview with Herman BRULE, developer of Ultracopier and CatchChallenger

Herman BRULE is the author and maintainer of two applications (free under the GPL v3 license, but also offered in paid “Ultimate” versions): the Ultracopier utility and the CatchChallenger game.

Summary

Hello Herman, can you introduce yourself?

Bonjour !

Professionally, I am CEO of Confiared (web and VPS hosting) and Confiabits (printed circuit board manufacturing and assembly), and CTO technology director at DanSolutions (FAI).
Furthermore, I help local associations (I live in Bolivia) in technical fields such as telecoms or software development, I sometimes speak as a speaker on these subjects.
Finally, I participate in the board of directors of the Bolivian section of the Internet Society (ISOC Bolivia).

Can you tell us about your journey?

I studied electronics (BTS STI), then web development. I was still a student when I started developing Ultracopier.
I worked in e-commerce for a long time, then for personal reasons I went to live in Bolivia.
I was rather disappointed by the quality of local offerings here in Bolivia in the information technology sector, which is why I decided to offer my services.

Can you tell us about these two software?

Ultracopier

How was this project born?

I needed an advanced file copying utility, like Supercopier, for use on Linux but it was not available on that platform.
Ultracopier was therefore born not as a fork of Supercopier but as an independent project: at the time, Supercopier was written in Pascal, and I preferred to write in C++.

In the end, when all the features were implemented and Ultracopier had a Supercopier skin, a redirection was put in place.

Today, after 20 years, the project is still active and maintained, despite the problems of hacking attempts, bugs, DDOS, and technological developments.

What are the key points that, according to you, marked its development?

After the takeover of Supercopier, which made it possible to unite its user base around Ultracopier, there were new features over time:

  • support for large volumes (>5TB >10 million files)
  • extensions (plugins) and graphic themes (skins), the development of which pushed me to standardize the interface for reuse by third-party apps.

What is the economic model?

It’s relatively little known but Ultracopier is offered in two versions: a free one (installable from the Ubuntu package manager in particular) and an “Ultimate” version. This paid version is enriched with features such as

  • pausing,
  • limiting the transfer rate,
  • other performance options depending on the operating system used and includes technical support.

To be honest, users of the paid version are very few: an overwhelming majority use the free version and others hack the paid version.

My professional life and my commitment to ISOC Bolivia are very time-consuming, I do not count my hours on my main activities as a host and ISP, and at a network equipment manufacturing factory for these needs.

I still released open source like the OpenWRT firmware for the wifi 6 router that I make.

Donations or purchases are welcome so that I can focus more on open source ???? I believe that many open source developers have this problem.
Luckily, hosting costs next to nothing because I use my own service, and I’m the only contributor.

What are the most anticipated features that you plan to implement?

I would like to improve the integration of Ultracopier into file managers under Linux or MacOs, but it is not an easy thing. For years I tried to modify the file managers to have the possibility of replacing the copy/paste with Ultracopier. Nothing. Either I am ignored, or I am refused (recurring reason for refusal: I should redo Ultracopier in “native”: GTK, KIO, Haiku, etc.), I cannot see myself maintaining various UIs. Votes on feature requests are welcome, for example here for KDE/Plasma.

I also want to implement a native async engine under linux (using io_uring) for better performance.

Have you had any exchanges/feedback with other software or publishers (Linux community / other publishers)?

No. I tried to make the protocol for sending copy/move to third party software a standard with a common protocol to motivate file managers to use it, I only received negative responses :/

Can you share any memorable memories from this experience?

During all these years, aware that copying data is a subject that can be very sensitive, I have made sure to be responsive to user feedback: as soon as something abnormal is reported to me, I make sure to check /correct and publish very quickly. I think that Ultracopier guarantees data integrity well during copies, sometimes better than copies by the system tool. For example, if while moving files to a network drive that network drive becomes disconnected, then Windows may destroy the source without being able to validate the actual integrity of the target file. It is necessary to reproduce a very specific context, but that is seen.

Despite this attention, I have sometimes received insults from certain users, going as far as death threats. I have a good collection of conversations like this! This is a minority of users, mostly beginners in IT and who have not used the tool correctly, or more generally their computer.

Furthermore, spam and hacking attempts (including one to redirect payments for the “Ultimate” versions!) have taken over the Wiki and Maintenance pages of the site, due to lack of time for moderation.

It still seems to me that the silent majority (= those who rarely say thank you ;)) are overall very satisfied with the services provided by Ultracopier, and that is motivating. For me, the most positive point is above all the acquisition of knowledge.

CatchChallenger

What is the origin of this game?

I was looking to familiarize myself with programming around topics relating to clients/servers, such as protocols, high performance, encryption, and also bots… …and developing a game is the fun way par excellence!

Since there is no real time, I can play with TOR/I2P (a good way to test security), no floating so it works on all CPUs, including those over thirty years old and exotic architectures like those found in routers (MIPS, etc.).

It’s a mix of several games with crafting type gameplay (a la lineage/X3/minecraft) which interested me for the techniques that this genre implies.

What are the significant points which, according to you, have marked its evolution?

Version 1: I tried to distance myself visually from a well-known game that my game could be associated with.

Version 2: I abandoned Qt on the server level because it was too slow on the SLOT/SIGNAL level, and revised the graphic theme with warmer colors, even if it brings me closer to another known game.

Version 3: modularity/API and responsive interface, redesign of the datapack.

Is it easy to build your own server? Or modify the game?

The client integrates an embedded server for solo play, which can be opened on a local network or on the Internet.

The server has a graphical interface and a console version (with various databases supported, including noSQL)

The datapack is easily interchangeable and everything is designed so that a child can modify it (png, xml, tmx, opus)

Are there other contributors?

Non

Are there any important features that will not be developed, and why?

There are many, due to lack of time. I’ve never reached a point of maturity on the base game that suits me, so I focus on that. For example, I launched into GPU multithreading on the server side: I was able to run tests on GPU, it works well but makes development too complex without providing any real benefit.

How does this relate to your other projects?

With this project, I quickly needed a large number of VPS, this encouraged me to take an interest in data centers and to modestly set up my first data center. One thing led to another, I made it my activity ????

I also needed connections, high performance and high availability. Curious, I started designing my hardware: inverter, solar power supply…

What did you get out of this project?

I was surprised by the performance, for a code that is not in assembly and which could still be optimized: millions of players on a desktop CPU per server. You saturate the screen with bots long before you saturate the CPU, even a very old CPU or router microcontroller, and the RAM load doesn’t exceed a few MB.

Client-side prediction, prepared statements (SQL parameterized statement) are very efficient, I load everything into RAM as an integer

Looking back, what advice would you give to those who are starting out?

Don’t make projects that you won’t maintain, both for yourself and for those who will use them.

Also, don’t start on a project that a thousand other people have already done before you, there are a ton of niche projects that don’t have an open source solution!

Your relationship to the free

On a personal level, what free software do you use, on what OS?

I use Gentoo Linux and almost only free.

Same question at the professional level?

In general I try to do the following professional model: when a piece of software has been profitable, I release it.

Data center level, we operate in IPv6 with conversion software to, for example, go from HTTP IPv4 to IPv6, if you add all the internal services + managers, it’s bad without software.

Industry level, I produce inverters, servers, data center and domestic routers (wifi 6 OpenWRT), with the difficulties here to import I have to make do with what I find on site (and there is almost nothing for microelectronics ).

At the ISP level, nothing to do with what there is in , between the political and administrative blockages (I have been waiting for certain authorizations for many years), the monopolies… nothing is moving forward. But despite these difficulties I was able to innovate and propose effective solutions for local communities, thanks to free software.

Thank you for sharing this, and for your contribution to the free world! We wish you much success in your many projects for 2025!

Go further

-

-

PREV Windows 11 24H2 is causing major issues with some games
NEXT LineageOS 22.1 is here, here's how to give Android 15 to that old smartphone lying around in your drawer