At exactly one year ago, I set up an Anycast service with Docker in the DN42 network . Back then, I customized the container's image and added a Bird installation to it, then put in a config file to broadcast Anycast routes via OSPF. However, as time went by, a few problems were exposed: The process of installing Bird takes time. Instead of installing Bird with apt-get , since my Dockerfiles need to support multiple architectures , and Bird isn't available in some architecture's repos for Debian. And since my building server is AMD64, and is running images of other architectures with qemu-user-static , a lot of instruction translation is needed in the image building and software compilation progress, which is extremely inefficient....
Disabling Webcams During an Online Course
This post will explain the way to disable your webcam on Windows and Linux, so: On the OS level, prevent you from turning on the webcam by mistake, and live-stream your footage of having a meal lying on the bed playing games (NSFW) Prevent certain online lecturing software from secretly turning on the webcam. Windows Procedures Press the Win+R combination key to open the Run window, type devmgmt.msc and enter to open the Device Manager. Your camera will be in Image Acquisition Devices category, right-click on it to disable it. (The following picture is taken from a Simplified Chinese Windows XP, but the procedure and icons should be similar for Windows 7 and 10.) When you need to use the camera, come back to re-enable it, and then close and reopen your browser or online lecturing software....

LADSPA Stereo Frequency Splitter & Bass Booster
During the Chinese Spring Festival, my dad gave me an Edifier M120 Bluetooth speaker. This speaker is not one of these high-end models featuring dedicated bass speakers or professional Bluetooth audio codecs such as aptX and LDAC; it's just a unit with two ordinary speakers. With that said, I doubt I can hear any difference with those advanced codecs on a portable speaker anyway. But when I played some music with my phone connected to it, I realized that it does have some bass output. Speaking of bass, I'm impressed by a JBL Charge 4 speaker bought by one of my classmates. As a portable speaker that costs $150, it has a dedicated bass unit with astonishing power. Then I began to think that, although my speaker costs a mere $20 (converted from CNY),...
(Almost) Lossless Archival with Modern Formats - H265 and HEIF
Many people keep their inventory of photos and videos for their travels, parties, or whatever important moments of their lives. If you are into taking photos and recording videos and like keeping all of them, you will likely fill up hard drives after hard drives. If you don't want to keep adding more drives to your collection, you may also try to compress your photos and videos. Speaking of compression, a common method is to reduce the resolution of images. I've used the good old Microsoft Office Picture Manager (that comes with Office 2003) and its built-in one-key image compression. Behind the scenes, it's actually downsampling images to JPEG files of around 1024x768. One major drawback is that a lot of the details are completely lost....

Building GeoDNS with PowerDNS Lua Functionality for Regional DNS Resolution
Previously, if you wanted to build your own authoritative DNS system for a website, the (almost) only option was PowerDNS with its GeoIP backend. However, the GeoIP backend uses YAML configuration files and cannot work with databases like MySQL. This meant having to manually set up a cross-server file synchronization system instead of using more mature database synchronization technologies. Fortunately, PowerDNS added support for Lua records in its latest 4.2 version. Lua is a programming language specifically designed for "embedding functionality into other programs," which you may have encountered in nginx (as a plugin). Lua record support enables PowerDNS to return different responses based on user query requests, thus implementing GeoDNS functionality for regional resolution....

Building a VLAN in School Network: Low-Cost High-Speed Private Intranet
Like most universities across the country, my university provides network access with a "one person, one account" policy. When connecting via wired network or Wi-Fi, all requests are temporarily redirected to a login page (i.e., Captive Portal), and only after entering the username and password can one access the internet. This practice is standard in most public places (such as airports, coffee shops) and is relatively friendly to devices like computers and smartphones. However, devices without a display (such as Raspberry Pi, ESP8266, etc.) have difficulty accessing the network. For systems like Raspberry Pi and ESP8266 that can run custom code, it is possible to simulate form submissions to log into the network. However,...

OS/2 Warp 4: Trying out & Installing Firefox
OS/2 is an operating system initially developed by IBM and Microsoft and later maintained by IBM. Back in the 1990s, OS/2 was a competitive rival to Windows, but later OS/2 was defeated by the Windows series, and IBM finally shut down OS/2 Warp 4's tech support on Dec 31, 2006. But this does not mark the death of OS/2. After official tech support ended, Senerity System took over OS/2's development and continued it under the name eComStation. In 2015, another company, Arca Noae LLC, produced an OS/2 based distribution called ArcaOS, and sold it as a commercial product. At the same time, the open-source community is providing some support to OS/2. They cross-compiled common Unix tools (including ls , rm , etc.), RPM/YUM package manager, and a series of libraries on OS/2....
(Nostalgia) ATduck Virtual Modem Dial-up Internet
Is this really the year 2019? Yes. For nostalgic purposes, I wanted to try dial-up internet on legacy operating systems like Windows 2000. Of course, in 2019, most people no longer use telephone line modems, and many might not even know they ever existed. Modern computers no longer have telephone line interfaces, and ISPs no longer provide dial-up services. This article by Doge Microsystems describes a method for self-hosting a dial-up ISP. The author purchased a hardware telephone modem, used Asterisk to build a SIP-based VoIP network, and then connected the modem to the network using an Analog Telephone Adapter (ATA). The author also used mgetty on Linux to operate the modem and combined it with pppd to provide a PPP dial-up service. The main issues with this approach are:...
Using Sass and Webpack with Hexo
Why Use Sass and Webpack Sass is a superset of CSS that extends CSS syntax with numerous features, including rule nesting, variable definition, includes, and mathematical operations. Key functionalities can be explored in the Official Getting Started Guide . Sass originally used the .sass file extension with a YAML-like structure that wasn't fully compatible with traditional CSS. The current Sass format (.scss) maintains full CSS compatibility. I use Sass for two primary reasons: First, for clearer CSS rule management. For example, when I have CSS rules that only apply to the website header, I can group them within a single block: header { h1 { ... } } Second, to reduce CSS file size during page loading. Although my site uses Bootstrap,...
Getting Started with the Hexo Static Site Generator
What is a Static Site Generator Common CMS platforms like WordPress and Typecho are dynamic websites. When users access a webpage, the server runs programs written in languages like PHP, Python, or Node.js to dynamically generate the webpage in real-time based on the user's request and returns it to the user. Static site generators like Jekyll, Hexo, and Hugo take a different approach: they pre-generate HTML files in advance to match anticipated user requests. The main advantages and disadvantages of these two approaches are as follows: Advantage Dynamic Website Static Website Dynamic Supports complex interactions and content updates based on user input Limited flexibility,...