Modifying FileZilla to Workaround Bambu 3D Printer's FTP Issue

I recently bought a Bambu A1 Mini 3D printer to try out 3D printing. This printer offers a FTP server, allowing users to use FTP clients like FileZilla or WinSCP to upload model files for printing, and download timelapse videos. However, when I tried connecting to the printer with FileZilla, I found that although the username and password were correct and login was successful, I couldn't retrieve the file list: Some users on the Bambu official forum have also reported this issue, such as this reply and this reply . Some users mentioned that WinSCP works , but I use Linux daily and don't want to switch to Windows just to connect to the printer's FTP service. So I investigated the cause of the problem and found a solution for Linux. Introduction to FTP Protocol To understand this problem,...

Illustration for Using FlapAlerted to Suppress flapping in DN42

Using FlapAlerted to Suppress flapping in DN42

DN42, aka Decentralized Network 42, is a large, decentralized VPN-based network. But unlike other traditional VPNs, DN42 itself doesn't provide any VPN exits, which means it doesn't allow you to bypass Internet censorships or unlock streaming services. On the contrary, the goal of DN42 is to simulate another Internet. It uses much of the technology running on modern Internet backbones (BGP, recursive DNS, etc), and is a great replica of a real network environment. In the real internet, various operators use hardware routers from different manufacturers to exchange routing information with each other, such as Cisco, Juniper, Nokia, Arista, Huawei, etc. Similarly, in DN42, different participants will also choose different BGP software and hardware,...

Legal LTE Network at Home with Open5GS

List of Lan Tian Mobile (LTE at Home) series posts: Legal LTE Network at Home for $100 Legal LTE Network at Home with Open5GS (current post) In my previous post , I built a legal LTE network using the US CBRS band and Magma LTE core network software . Regarding "legal": I am not a lawyer or a wireless expert. Based on my research into the relevant policies and regulations, my entire setup should be legal. However, I take no responsibility if you encounter any legal issues after following the instructions in this post. I chose Magma at the time because the CBRS LTE base station I bought was originally used for the Helium Mobile network, and Nova Labs/Helium Mobile uses Magma for its CBRS core network . This ensured that Magma was compatible with my base station. However,...

Using SideStore without StosVPN across your LAN

2026-05-01 update: Added Nftables rule that apply to the entire network, provided by @KusakabeShi . Foreword SideStore is a commonly used iOS app sideloading tool that allows you to install third-party apps bypassing the App Store. It works by using your Apple ID to obtain a free Apple developer certificate, which is then used to sign the app you want to install, allowing it to run normally on your iOS device. However, to maintain control over the iOS ecosystem, Apple prevents third-party app stores from using developer certificates to bypass restrictions on a large scale, setting a 7-day expiration period for developer certificates. Users need to regularly obtain new developer certificates and re-sign their apps to continue using the third-party apps they have installed....

Illustration for Nix Logarithmic Math Library from Ground Zero

Nix Logarithmic Math Library from Ground Zero

List of Nix Math Library from Ground Zero series posts: Nix Trigonometric Math Library from Ground Zero Nix Logarithmic Math Library from Ground Zero (current post) (Cover image from: Wikipedia - Logarithm ) Origin Due to a somewhat absurd reason (calculating the physical distance between VPS to estimate network latency), I implemented a somewhat absurd trigonometric function library using Nix . After I published the trigonometric function library on GitHub , I found that someone actually used it! It seems my needs weren't too absurd after all. In the repository's Issues, a user suggested that I add some exponential/logarithmic function support to this math library , such as exp , ln , pow , and log . Since implementing these basic functions from scratch is also quite interesting,...

Legal LTE Network at Home for $100

List of Lan Tian Mobile (LTE at Home) series posts: Legal LTE Network at Home for $100 (current post) Legal LTE Network at Home with Open5GS Yes, you read that right. Without the need for Faraday cages or signal-blocking measures, you can build a legal LTE network at home (in the US) for around $100, capable of transmitting continuously 24/7. Regarding "legal": I am not a lawyer or a wireless expert. Based on my research into the relevant policies and regulations, my entire setup should be legal. However, I take no responsibility if you encounter any legal issues after following the instructions in this post. CBRS Band: Unlicensed LTE/5G Band in the US The challenge in building your own LTE network lies not in the technology but in legally acquiring radio spectrum resources....

Building Custom Android Kernel with Nix

Preface The mobile phone I'm using today is Motorola Edge+ 2023, an Android phone. To better customize my phone's functionalities, I unlocked its bootloader, and obtained root privileges, in order to install LSPosed and various LSPosed based plugins. The root mechanism I'm using is KernelSU , which works by modifying the Linux kernel to grant and only grant root permissions to certain apps. Although KernelSU provides official GKI kernel images that work on most phones, I also flashed LineageOS onto my phone, which is not compatible with GKI images. Therefore, I have to compile my own kernel. Since modifying the kernel's binary image is difficult, we usually obtain the kernel source code under the GPLv2 license from the phone manufacturer, modify it according to KernelSU's official guide ,...

Migrating My Blog to Astro.js

Preface Almost four and a half years ago, I migrated the blog's site system from Typecho to Hexo . Hexo is a static site generator that by itself doesn't connect to databases like MySQL and PostgreSQL and dynamically generate pages. Instead, it generated all HTML pages in one go based on the given Markdown files. Compared to dynamic solutions like WordPress and Typecho, pre-generating static pages eliminates the need of dynamic language support on the web server (like PHP), and has lower performance requirements on the server. Hexo itself, however, is not a new solution. It's first version was released back in July 2013 . By then, single page application frameworks, leaded by React, were just released (React: May 2013)....

Illustration for NixOS Series 5: Creating Disk Image for Low RAM VPS

NixOS Series 5: Creating Disk Image for Low RAM VPS

List of NixOS series posts: NixOS Series 1: Why I fell in love NixOS Series 2: Basic Config, Nix Flake & Batch Deploy NixOS Series 3: Software Packaging 101 NixOS Series 4: "Stateless" Operating System NixOS Series 5: Creating Disk Image for Low RAM VPS (current post) Black friday has passed. Some readers, I believe, have perchased some VPSes or cloud servers on sale, and want to install NixOS on them. However, since NixOS is nowhere as famous as popular Linux distros, such as CentOS, Debian and Ubuntu, almost no VPS provider will offer a disk image preinstalled with NixOS. This lefts the user one of the following options to perform the installation manually: Mounting NixOS's installer ISO, and then partition and install manually....

Illustration for Nix Trigonometric Math Library from Ground Zero

Nix Trigonometric Math Library from Ground Zero

List of Nix Math Library from Ground Zero series posts: Nix Trigonometric Math Library from Ground Zero (current post) Nix Logarithmic Math Library from Ground Zero (Cover image from: Wikipedia - Trigonometry ) Why I wanted to calculate the network latency between all my VPS nodes, and add the latency into the configuration file of Bird BGP daemon, so the network packets are forwarded through the lowest latency route. However, I have 17 nodes as of today, and I didn't want to manually run a ping command between each pair. So I came up with a solution: I can mark the latitudes and longitudes of the physical locations of my nodes, calculate the physical distance, and divide that by half the light speed to get the approximate latencies. I randomly sampled a few node pairs,...