i don’t think i need to explain to you, dear reader, why web massive web scraping is a pain in the ass . This is not going to be a post as researched or informational as that first one. i’ve been fighting web scrapers as much as i could for almost two years now, and the battle is getting tough. Some tools, like Iocaine (thanks Algernon for the work you put into it) help a lot by at least sparing…
Pagers used to be all the rage in the late 80s, 90s and early 2000s. You could carry around a little battery-powered trinket that could ring and give you a little text message. How neat! Then, mobile telephones became easier and easier to carry around, then smartphones became a thing, and pagers died. Pagers worked and still work via radio signals. A lot of different radio standards for pagers…
Hey! If like me, you spend a lot of time debugging the Linux kernel, especially with the goal of modifying the performance of user programs, you may often find yourself in the silly position where you need to run perf inside of a virtual machine (typically run using qemu ) in order to obtain hardware performance counters. In x86(_64) CPUs, the component responsible for providing you these pieces…
In August 2024, one of my roommates and partners messaged the apartment group chat, saying she noticed the internet was slow again at our place, and my forgejo was unable to render any page in under 15 seconds. i investigated, thinking it would be a trivial little problem to solve. Soon enough, however, i would uncover hundreds of thousands of queries a day from thousands of individual IPs,…
i feel like it’s obligatory, at some point, on any blog that talks about tech, to have a post that goes “oh here’s how i deploy it by the way”. Now is my turn, i guess? But this isn’t simply ‘how i deploy’, and more of “how i perfected my deployment to go from 11 minutes of CI to about one and a half, and what i learned in the process”. In the end, i guess, this is more of a post about CI/CD. If…
Usage of the radio spectrum is very tightly regulated. Regular, unlicensed people are allowed only so little of the RF spectrum in emission. In the 90s, the European Union came together to allocate a small 200 kHz band for license-free use with the narrow FM mode (FM mode and 12.5 kHz bandwidth). The name of the norm that would be used on it is Portable Mobile Radio 446, or PMR 446, for short.…
Too Long, Won't Read Add rtl,bias=1 in the device arguments. Both options are needed. i like my Low-Noise Amplifier . It helps my dingy little antenna and RTL-SDR dongle pick up signals that otherwise would be very much out of reach. That little amplifier is plugged on the transmission line as close as possible to the antenna, and powered through bias-tee . A bias-tee (or bias-t) is a little…
i was recently having a discussion online about different perspectives on signals. It led to a question me and someone else asked simultaneously: what if you could ignore or handle the absolute, unstoppable order from the kernel to be killed or stopped? # Signals Signals in POSIX are a form of IPC that allows userland processes (and the kernel) to send each other simple indications of actions to…
After i received the kit i ordered , i fiddled around with software, eventually figuring out i would install SDR++ (though SDR# and sdrangel are also good picks). I sat down, got a feel for the controls, installed a frequency band plan made by a French person, and started listening to the 120MHz-137MHz band, in AM mode. After a little while, spikes appeared. i happen to live not too far to an…
i wanted to write a little something about the books i am currently reading (as of January 2025), both technical and fiction. Don’t expect a thorough review, i generally haven’t made it past half of those. Some titles are in French, of course, because i am afflicted with a rare condition called “being French”. It’s terminal. Look it up online. Take some time to open a tab on Deepl as well.…
Recently i published the first of a series of posts on radio listening , and while this is not technically part 2 yet, i figured something out that is quite important to my workflow of recording and then processing radio input. i own a RTL SDR Blog V4 dongle , which is based on the RTL2832U chip. The drivers you install come with a set of binaries , including rtl_sdr , which lets you record a band…
In the late 2000s, when i was a wee child, my parents brought me along to the big yard sale organized in the tiny town my grandparents lived in. One particular time, we came back with a set of electronic gizmos that included a marine radio set. That huge cube of metal, with a deployable 2-meter long antenna 1 , and a big selector to pick between various AM bands labeled with lengths, CB, Maritime…
First, the context. For those who are not aware, Rust for Linux is a project within the Linux developer community to add kernel support for the Rust programming language with the objective of developing drivers that can sit alongside regular C drivers in tree. The project is still somewhat young, but it’s already reached the significant milestone of a first driver being merged . Two years ago i…
Occasionally, I have to re-install a kernel and its modules. Worse, I have to do it on Ubuntu (for reasons outside my control). I learned to do that on my own mostly through a mixture of old Gentoo tutorials and kernel documentation. And yet, twice already I have done the whole procedure, which, once your configuration is done, and after you’ve enabled kernel debugging 1 , is something akin to:…
I am a PhD student. Of course, I write papers. For various reasons, my supervisors and I use Overleaf , which is satisfactory in terms of UX and such. However, outside of periods with high editing contention, I would rather work with my usual workflow of editing LaTeX with neovim , which I have customized to compile and lint LaTeX code for me. I find writing lengthy pieces of text more relaxing in…
Some time in the summer this year I started noticing that memory usage would become very high after a while. Specifically, XOrg would start hogging inane amounts of memory. I use an NVidia GTX2070S card on my desktop computer (which uses the x86_64 architecture), so I just lazily think to myself “well NVidia is at it again” and think not of it again. Recently, after becoming irate with XOrg…
I am mostly writing this as a self memo for how to use git-send-email , and by extension git-format-patch and git-am , to share patches, patchsets, and apply them. Me and my friends like to do these overly elaborate things to share code, what we jokingly call “fossbro roleplaying”, so hopefully it can help them, and you as well! ## “Wait what’s all that about?” These commands let you create…
So, it has come to this again, uh? Last year, in 2022, I moved my blog from Hexo, an old CMS tool written in NodeJS, to Grav, a self proclaimed minimalist flat-file CMS. At the time, I had tinkered with Grav a bit, and came to be confident that I could make something cool out of it. For about a year or so, I did. However, as time went on, I realized two (well, three) things about my actual…
You may be more used to reading things related to technology on this website, and you might be thinking to yourself “well this ain’t it, chief”. You’re wrong. There have been recent discussions in my online circles around the concept of “real-name policies”, which is a requirement within certain projects to provide your actual, real, legal, certified-100%-you name alongside your contribution. More…
Recently I had the unfortunate displeasure of having to move my vacation dates because of a certain pandemic that, despite the silence of our health authorities , is still ongoing and impacting people. So instead of taking a crammed bus without ventilation for nine hours, my roommates and I got last minute tickets on the french high-speed railroad train: the Train à Grande Vitesse (High-Speed…
Note : I originally wrote this as a message in the RFL Zulip chat answering a question from someone who asked about ways to handle function points in Rust for Linux, especially in the context of net , where we do it quite often. This blog post is a slightly refined version of that message, where I got carried away and essentially infodumped on the poor fella. I am a silly fox 🦊 Fun fact! A while…
In order to share some of the things I’ve been doing over Rust for Linux , I decided I would start a small series of tiny posts that demystify and detail very simple operations that can be confusing when doing development for RFL. ## Rust Features Rust features go through a lifecycle where they can begin as “unstable”, and then eventually stabilized once Rust maintainers can guarantee that it will…
A friend and I were out editing for OpenStreetMap , and we wondered how we could tweak an existing open changeset . Because the client we used does not seem to provide that feature, and we are messy gremlins who like to mess around with data to do things (like adding review_requested=yes to a changeset manually). So we defaulted to the next most reasonable thing to use on our phones in the middle…
Recently, a new Debian happened . At this point, I am used to upgrading my machines whenever that happens. I had been hoarding Debian systems here and there since I first installed a Debian Jessie back in the day. Among the thousand of packages being upgraded, there was nftables and iptables . A friend of mine had warned me she had heard about changes done to nftables , though they would likely be…
You may find it dirty. I just think it’s neat. Following a recent discussion with friends of mine who have made a habit of exchanging files in chats by encrypting them with GPG (for the fun (yes I have weird friends)) I thought I would make a little tutorial to explain the way that I generate and keep my keys now, because they told me they would be interested in reading that. ## Reasoning The…
After 3 years of using Hexo as my Content Management System for VulpineCitrus, I have finally decided to adopt a more complex system. I have been looking for decent CMS software for two years, as Hexo had become more of a technical debt than a software I could realistically keep maintaining in shape. Its theme was rewritten by me, and I had received no update to the software since 2019. While it…
I like messing things up in networks. Sending weird packets into the wild and seeing what happens is quite funny, especially when something breaks, but, sometimes even, when nothing does. I like hacking in the primary sense of the word: messing around and using stuff that was not intended for that purpose. For a paper I was writing, I had to perform a simple packet analysis of a TCP conversation…
I have been using Rust on and off for the past five years or so, first picking it up around the time release 1.0 dropped. I then seriously learned the language in 2019, and, thanks to coding events such as Advent of Code , found a reason to make (arguably) beautiful code that trained me to make simple data structures work efficiently together to solve problems. Nowadays, I scale my development…
This post is mostly a story about my new VM server setup. However, it features a fun twist that reminds me how important it is to consider the layers upon layers of added security tools that exist in Linux that could interfere with a normal setup. ## The Context Around a month and a half ago I got this new server in my infrastructure, an old decommissioned Dell Precision T1700 . I was pleasantly…
This year, like the last, I participated in Advent of Code , an online event where a new algorithmics puzzle is unlocked every day of december before and on the 25th. For each day, the same puzzle idea yields two small exercises, one typically easier than the other. I chose Rust , like last year, to solve those problems. You can find my repository here . ## A bit of write-up for the days I found…
I have recently had the pleasure to acquire a new piece of equipment for one of the servers that I manage in one of our university clubs. Long story short, we were on the verge of a bottleneck happening in our infrastructure at the network interface of the aforementionned server, and decided to invest in a network card and some fiber optics to boost the link speed from 1Gbps ethernet to 10Gbps…
The monitoring stack in my home network depends on a lot of pieces of software all configured to be up and ready every time I have to reboot the gateway (a 8GiB Raspberry Pi 4). One piece of software who, for a while, did not play nice was Prometheus . (For those just looking for my answer, it’s in the last paragraph). ## The setup Essentially, my statistics front-end is running on the VPS that…
I’m coming close to a year of VulpineCitrus being up and running, and over the course of a year it has been a tremendously useful tool for me to deploy so many services that have changed my (and to an extent others’) daily routines. It has also been a great way to learn a lot of technological solutions I had heard of before but never managed to deploy at home. Back in the days when I shared a VPS…
A few days ago, I launched a website called “Vulpine Citrus”, meant to act as my front end with the rest of the world. Before that, I used to run a lot of my personal services on a server shared with a friend. After I bought my domain name, and VPS, I decided to begin moving my services onto my new server and stop hogging the storage space on that other, shared system. I had, until then,…
This is the official launch of Vulpine Citrus, my own personal web site! Whenever I find something interesting to talk about, or want to show a cool thing I’ve learned, it will end up here.
A few years ago, my journey into coding led me to the dark alleys of GNU Assembly. I quickly realized that the difficulties of Assembly made it almost impossible for me to use it in my daily coding life. When it takes you three hours to reimplement strlen correctly, and you’re used to processing natural strings of characters, you may begin to feel like this is not the language for you. – Me, two…