RSSAmplifier

Blog

fernvenue's Blog

Recent content on fernvenue's Blog

blog.fernvenue.comRSS feed ↗65 posts

Latest posts

How to Sync Bluetooth in Dual Boot?

Recently, I just moved all my games to a dedicated gaming OS, this keeps my daily OS focused on work, and lets me really sink into my games. By adding this extra step, I stop myself from getting distracted by other things while playing. It works great, I’ve rediscovered the fun of slow paced games and finally slowed myself down in this fast paced world. Back in college, I was super into Tomb…

Flakes, the Best Practices of Vibe DevOps

In the blink of an eye, April has passed, yet I still haven’t gotten around to writing. It’s not simply a matter of lacking time, I’ve just been so immersed in Flakes that I haven’t been able to pull myself away. With quite a few readers clamoring for an update, I decided to write and release a portion first. Since the beginning of the year, from using Flakes to uniformly manage various…

Calculate whether you should use AI.

Yea yea I know, so many people on Hacker News have so many different opinions about AI Coding. Some people say that AI coding has completely changed programming, while others claim that AI coding is merely wasting people’s time. Although most people are not so binary in their views, I can’t help but ponder why there is such a significant divide regarding AI coding. Even among my peers…

HPE ProLiant, Signs of Age.

Today, this machine is quite an old model, HPE’s ProLiant DL388p Gen8, which has been in service for ten years. The initial problem was that I couldn’t access iLO, I thought I had forgotten the password, so I asked someone to debug it on-site. As a result, I found that the BIOS management password couldn’t be used normally either. After resetting it using the S6 on the…

OEM Graphics Card Passthrough

Recently, I got in touch with a Dell RTX 4070 graphics card, which was taken from another workstation of ours. PCI passthrough is an old skill that I’ve even written articles about. However, after confidently executing the passthrough, I found that the card couldn’t be used normally in the virtual machine. I suspected the graphics card itself, but when plugged it into another device,…

How to use Keychain for SSH on macOS?

Recently, I returned to my parents’ house for the Eid al-Adha, and then I had to go on a business trip, so I could only bring my MacBook Air. This gave me an opportunity to explore some SSH functionalities on macOS. Those familiar with me know that I always connect to servers or sign commits using the FIDO2 SSH with YubiKey. However, frequently plugging and unplugging the YubiKey on a mobile…

Linux is now the best gaming system.

When it comes to gaming on Linux, many many many people’s understanding stil remains in the Jurassic era. For the past few years, I’ve been using Linux as my main operating system for both work and gaming. From my personal experience, the gaming experience on Linux is far superior to that of macOS and Windows. I know I know…whenever I mention this, there are always some…

Rime on macOS

I’ve been using Rime on Debian for a long time and have gotten used to it. Recently, after getting acquainted with macOS, the poor word library of the system input method has made me turn my attention back to Rime. The configuration I had on Debian was detailed in a previous article Configure Fcitx 5 and Rime on Debian , so here I will simply replicate it on macOS using Squirrel.

Using PBR to Route Traffic on OpenWrt

Playing around with OpenWrt often involves multiple outbounds, maybe multiple ISPs or VPN outbounds like WireGuard. We always need to configure and route the traffic. Configuring routing can actually be a headache because as the needs become more complex, the difficulty of configuration tends to increase exponentially, also considering potential conflicts. Using ipset is certainly good, but the…

How to use bash on macOS gentally?

I just got the latest Macbook Air M4. Although I don’t intend to use this new device for development, Terminal is something I can’t avoid. I have never liked zsh or any of its derivatives, and as an old school bash user, I naturally won’t change once I’m on macOS. There are many articles and posts online introducing how to switch the default shell to bash on macOS, but I…

I think we need a bigger boot partition...

Long ago, during the time of creation, I confidently waved my hand and allocated a 1GB ESP partition and a 1GB boot partition, thinking to myself with a confident smile that this would surely be more than enough for the foreseeable future. However, this foreseeable future quickly vanished along with my smile. What was bound to happen eventually came, but I didn’t expect it to arrive so soon. What…

Play with Armbian on R2S

R2S is an affordable and easy-to-use hardware, perfect for running lightweight services as a mini server at home. In a previous article titled I don’t like Armbian’s RAM log…on R2S. , I mentioned some issues with the official R2S Debian system, which led me to switch to Armbian, and I’ve been using it ever since. Recently, I actually did some restructuring work on R2S and…

Cache Busting on Hugo

In many frontend project builds, we often see static resources like CSS and JS named with hashes or timestamps. The reason is simple: to implement cache busting. Many frontend developers have encountered situations where static resources are cached by CDNs or users’ browsers, preventing new changes from taking effect until the cache is manually cleared or expires. By appending a hash or…

Upgrade Debian from Bookworm to Testing

I’ve been meaning to write this article for a while. Recently, I built a new ITX machine using the MAXSUN MS-Challenger B760ITX D5 WIFI motherboard, which was just released earlier this year. Many people often say that Bluetooth and WiFi drivers are hard to deal with on Linux, but this is actually a misconception. Since Bookworm is a stable release, the software packages in its repositories…

Samba Read Only Issue on iOS

Enabling SMB on Debian is very straightforward and convenient, and I haven’t encountered any issues over the years. However, a few days ago, while exporting data from iOS, I noticed that my Debian host appeared as read-only on iOS. This made me realize it was time to tweak some settings for compatibility with Apple. Here, I’ll briefly document how to enable SMB on Debian and configure it to avoid…

Siri, Turn on ThinkCentre!

A few days ago, I set up the ThinkCentre in a house thousands of kilometers away. After all, it’s not a server, so there’s no need to keep it running 24/7. However, I do want to be able to power it on whenever I need to access it remotely, ideally with just one click or even a voice command. At this point, I turned to my iPhone. The Wake on LAN (WoL) feature for remote wake-up is actually quite an…

Configure Hamster and Rime on iOS

This article is essentially a replication of the previous Configure Fcitx 5 and Rime on Debian post on iOS. The need is quite simple: recently, I’ve been struggling with Apple’s input method, especially the dictionary, possibly because I’ve been spoiled by the Chinese Wikipedia dictionary on Debian. So, I wanted to fully implement my own input method on iOS. Here, I’ll briefly introduce how to use…

Mute When Lock

Lately, I’ve often forgotten to mute the sound before locking the screen, and once I’m lying down, I can still hear message notifications going off. Who wants to get back up just to mute the sound at that point? If you ask me, there’s really no choice but to get up, because lying there comfortably while hearing constant notification sounds is truly annoying. So, faced with this…

AirPods Pro 2 on Debian

A few days ago, I added a Bluetooth module to the workstation in the office. Normally, my headphones are connected to my iPhone, but as soon as I approach the office, they automatically connect to the workstation, and when I leave, they switch back to the iPhone automatically, the experience is very smooth. Additionally, the Active Noise Cancellation and voice detection features of the AirPods Pro…

Using git-crypt to Encrypt Repository

Hosting our code on external services like GitHub is undoubtedly convenient. We don’t need to set up our own Git service, nor do we need to worry about the maintenance and updates of the service. However, there are some things we might not wanna completely put on external platforms, especially given the increasing trend of these platforms using users’ repositories to train AI. This…

We still need a NAT...

Actually, in the modern internet, NAT is often unnecessary in many places. However, it is undeniable that in some scenarios where we are powerless, compromise is the final choice. For example, in a certified network environment, using a virtual machine container platform like Proxmox requires repeated authentication for each container or virtual machine. Or in the common scenario where there is a…

Gitea Customization

Compared to GitLab, Gitea is a more lightweight and convenient choice for small teams and personal use. Having used Gitea for a long time and done some additional configurations and customizations on it, besides customizing the homepage and user interface theme, I have also integrated GitHub’s OAuth for authentication. There is also a need to further explain the configuration part related to…

Try OpenWrt on NX30 Pro

My dislike for OpenWrt is well known among many people around me. However, a friend mentioned that the experience with OpenWrt has actually improved a lot. Considering my actual use case only involves PPPoE dialing and wireless functions, I decided to give it a try and flashed OpenWrt on the H3C NX30 Pro. Here, I will briefly summarize the flashing process.

I don't like Armbian's RAM log...on R2S.

Due to the official R2S firmware’s kernel missing the xfrm module, my IPSec couldn’t run, so I switched to Armbian. However, Armbian is primarily optimized for development boards, making some aspects inconvenient or unsuitable for the R2S. For example, RAM logs are one such issue. To extend the lifespan of storage media, Armbian stores logs in memory and syncs them to the storage.…

Sign Git Commits with SSH Keys

Once upon a time, I learned a little bit about Git signatures. The first time was a few years ago after the incident where someone pretended to be Linus. I played around with GPG signatures but ended up dropping it because it felt like too much hassle. The second time was when I got my YubiKeys. It seemed a bit complicated, and I didn’t really have the drive to add signature verification to…

Self-Management of SSL Certificates

After taking a big step into HTTPS Only, I have gotten used to pairing with HTTPS for best practices, regardless of the environment. When I set up HSTS for my domain, I never considered going back to HTTP actually. However, some people say that certificate management can be somewhat difficult or mentally burdensome. For example, non-commercial certificates have a relatively short validity period,…

How to edit history Git commit message?

When dealing with various repositories and branches, it is sometimes inevitable that we make mistakes. Additionally, there are times when looking back at previous commit histories, we may wanna add more details to make it easier for other collaborators to review. Alternatively, we may have changed email or other information and want to modify the information in historical commits to make it easier…

Create Btrfs Storage Pool on Proxmox Manually

The issue began with my ZFS storage pool on a new device consuming terabytes of space after each snapshot. Given my history of not getting along with ZFS, I didn’t want to delve into why a CoW file system like ZFS could have such a problem. Regretting my laziness in choosing to create the ZFS storage pool directly from Proxmox’s dashboard, I decisively opted to discard the problematic…

Qt! Join the Dark Side!

It’s my personal habit to use dark mode wherever I go. However, I’ve recently discovered that some applications on Debian don’t wanna use dark mode and don’t even provide an option to switch to it. After pondering for a while, I noticed a common trait among these applications: they’re all written in Qt. So, it’s not surprising that these applications don’t…

Enhance Linux Sound Experience

Lately, I’ve been discussing my audio setup on Debian with more people. Essentially, I use Easy Effects along with some good presets, but explaining the same process repeatedly is becoming tedious. So, here I’ll share the presets configuration that I use daily on Debian with Easy Effects.

RTX 4090 Waste Utilization

Since I have a device with dual 4090 GPUs that has been collecting dust for a while, I decided to use it for running Whisper to process some audio data. It’s best to make use of it rather than leaving it idle. Here, I will document the process of deploying Whisper and share the issues I encountered during the configuration and deployment, and my solutions. Additionally, I’ll conduct a…

Play with Nix Flakes

In a previous article on Nix packages and Systemd Service , I briefly introduced the method of installing applications using Nix and configuring systemd services on Debian. However, nowadays the Nix/NixOS community is increasingly inclined to configure everything by Flakes. Moreover, there are indeed some issues with nix-env , so here I will provide a brief overview of the most basic installation…

Some WireGuard Tips

As a high-performance and easy-to-use L3 tunnel, WireGuard has many advantages that can’t be replaced. But even with such a simple protocol, it offers many complex possibilities. In this article, I will introduce various scenarios and requirements encountered during long-term usage, and share some usage tips based on them. And yea, some routing methods mentioned in the article are not only…

Configure Fcitx 5 and Rime on Debian

I switched from IBus to Fcitx 5 a while ago. However, I haven’t customized it much and have been using the default settings. In this article, I will document the process of configuring Fcitx 5 to use the Rime on Debian, using zhwiki as an example to demonstrate how to import external dictionaries in Rime with Fcitx 5.

Using VRF with IPSec

In the previous article introducing Gravity, a delay-based full mesh SD-WAN solution on IPSec was discussed. Recently, with the increasing number of nodes and the growing demand for technologies like SRv6, configuring network actions locally has become a more hard thing. Using Gravity as an example, this article will delve into the process of configuring IPSec routing through VRF on Debian and…

Nix Packages with Systemd Service

Nowadays, nixpkgs has become the most up-to-date and largest repository for software packages. Additionally, Nix, as a purely functional package manager, eliminates the need to worry about dependency issues. And, as part of NixOS, we can actually use Nix on other Linux distributions. This article will using Debian as an example to demonstrate how to use Nix to install a package, configure it to…

Use DHCP and SLAAC on Proxmox

By default, Proxmox uses a static address and has SLAAC disabled. But what happens if we need to relocate our Proxmox device? Do we have to manually adjust the network settings each time? Luckily, there is an alternative solution - we can use DHCP and enable SLAAC for IPv6 on Proxmox. In this blog post, we will explore how to accomplish this. Let’s dive in…

Use Multiple YubiKeys for KeePassXC

I have been using KeePassXC as my password manager for a long time, and I have been pleased with its support for using YubiKey to unlock the KeePassXC database. However, I recently found myself needing to use two or more YubiKeys. Specifically, I want to use both USB-A and USB-C type YubiKeys simultaneously on different devices. Initially, I was worried about the possibility of having to manage…

Using systemd to Bind Applications on Lower Ports

Sometimes we need applications bind on lower ports, but on Linux, only privileged applications can do that, so what if we wanna make a normal application or service bind on lower port? Here I’m gonna make Gitea using it’s built-in SSH service to bind on 22 port to provide SSH service using systemd.

Android Application on Linux without Virtualization

We all know that Android is actually based on Linux, theoretically, Linux should be able to run Android applications natively without virtualization. In reality, this is indeed possible, and the mature solution known as Waydroid provides the answer. This article provides a brief introduction to Waydroid and shares some personal tips and insights gained from using Waydroid.

Mount Cloud Drive using Rclone

Some people always say that Cloud Drive providers don’t have a native Linux client, but actually, we have a simpler way to use these Cloud Drives: mount them as local disks on Linux using RClone. This way, we can use them just like local folders. In this article, I’ll use Microsoft OneDrive and Google Drive as examples to demonstrate how to mount Cloud Drives on Linux.

Gravity, A Delay-based Full Mesh SD-WAN.

SD-WAN is a timeless topic. Existing solutions like ZeroTier, Tinc, and Tailscale provide convenient ways to implement it, but they have inherent drawbacks, especially in best route selection where these solutions fall short. The mature IPSec protocol, with its robust extensibility, offers a new solution. This article takes Gravity as an example, introducing a mesh network based on Babel-RTT over…

Some yt-dlp Tips

Recently, I used yt-dlp to download some Members-Only videos from YouTube, considering the future use of these videos, I also hope that they are compatible and user-friendly. Although I have a graphics card that can do some transcode jobs, the quality of self-transcoding is not as excellent as the quality of videos that have been transcoded by YouTube itself. Therefore, I studied the formats and…

Install headless Debian on Raspberry Pi without Display

Finally, Raspberry Pi OS with Bookworm has been released. I tried to install it on my Raspberry Pi yesterday, even though I had already upgraded my Raspberry Pi from Bullseye to Bookworm myself. Unfortunately, things did not go well… I have to say that I really don’t like all these built-in changes in this new release, such as NetworkManager. I don’t understand why I need it in…

Who touched my DNS configuration?

I’m used to using encrypted DNS with DoH or DoT almost everywhere, so it is no exception on the server. Recently, I found that DNS on Hetzner always quietly changes to the default DNS issued by DHCP, which puzzles me. Although this problem can be solved by restricting write permission to the DNS configuration file, I really wanna find out that who actually touched my DNS configuration.…

Prometheus-based Grafana Server Monitoring

Like the previous article introducing Nginx, this is also an old article that I have archived. The reason is similar: considering that there is already detailed documentation available and some content may be outdated. However, since there have been private messages and emails expressing the desire to see this content again, why not use the content from the old article as a basis to discuss the…

Making Btrfs Snapshot

I still remember the first time I learned about COW (Copy On Write) file systems, and I couldn’t help but marvel at the ability to take snapshots of data. There is no need to worry about data loss, as taking a snapshot serves as a point of reference. You can easily roll back to the state of the snapshot without any lengthy data copying process. It is truly convenient and practical. For those…

Best Practice of Nginx File Indexer

In the previous article, we explored the best practices of Nginx in various reverse proxy application scenarios. Now, let’s talk about how Nginx can be used for indexing files. Its autoindex functionality and additional fancyindex module allow us to easily create a simple and user-friendly file indexing site without much effort. But how should we configure it? What are the details we need to…

Best Practice of Nginx Reverse Proxy

This is actually a part of an old archived article. I archived it mainly because the official documentation of Nginx is very comprehensive, providing detailed explanations for each section. However, lately I have received some private messages and emails requesting me to bring back some of the archived articles, including this one. Perhaps articles of this nature, which involve summaries and…

WireGuard in Proxmox LXC

I’m using WireGuard for a long time, recently I just tried to install and configure it inside Proxmox LXC conatiner, sadly, even if I use privileged container, I still can’t create TUN/TAP device inside the container. So, is it possible to use WireGuard in LXC? How to create TUN/TAP devices? What if I wanna use unprivileged container? Finally, I figured it out…