DNS records in e-mail system

Recently, I have to build a personal email system, and I am systematically learning about it. Today, I am going to share the content related to DNS. I have divided the contents into three parts according to the functions or scenarios: sending mail, receiving mail and reading mail. Sending mail is to use the mail system to send mail to an external server; receiving mail is to receive email from an external server; and watching mail is for using a client to view or download mail from a server.

Migrating Docker Compose encounters yaml structure errors

I was recently migrating servers and ran into a problem. The docker-compose.yml file, which I had been using, encountered an exception after migrating to the new server. yaml: unmarshal errors: line 155: mapping key "<<" already defined at line 154 line 192: mapping key "<<" already defined at line 191 The docker-compose.yml file looks like this: version: "3.8" x-proxy: &default-proxy environment: http_proxy: http://clash:10808 https_proxy: http://clash:10808 depends_on: - clash networks: - proxy x-timesync: &time volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro nginx: <<: *default-proxy <<: *time This is a configuration for nginx that inserts two configurations, proxy and timezone.

Fix "apt-key is deprecated" warnings

I’m using Ubuntu LTS version on my server. Previously it was 20.04, but after upgrading to 22.04, every time I update the system it reports a bunch of warning messages. Although it doesn’t affect the functionality, there must be something wrong, and as an obsessive-compulsive person I had to find out what it was. I found out that the problem is related to the deprecation of apt-key, and the whole apt signature system has a new configuration scheme.

A Practical Guide to WebAssembly in Cloud Native

1. Introduction to WebAssembly WebAssembly (Wasm) is a general-purpose bytecode technology that compiles program code from other programming languages (e.g. Go, Rust, C/C++, etc.) into bytecode programs that can be executed directly in the browser environment. One of the original goals of WebAssembly was to solve the performance problems of JavaScript by allowing Web applications to achieve performance similar to native applications. As a generic, open, and efficient abstraction of the underlying VM, many programming languages, such as C, C++, and Rust, allow existing applications to be compiled into Wasm’s object code so that they run in the browser.

How to compile Go apps with no source code and only .a files

Last weekend, a Gopher shared a problem with me regarding the compilation of Go programs. His request, which was not complicated at all, was that the API package provided by the partner company included only the golang archive (.a file built with go build -buildmode=archive), and no source code for the Go package. How can I link this .a to the final executable program built by the project? For C, C++, Java programmers, only provide static link library or dynamic link library (including header files), jar file without providing the source code of the API is very common.

Using QRCoder in .NET 6.0 to Generate QRCode Pictures

QRCoder is a well-known QRCode generator for .NET. It has been around since the days of .NET Framework, and it supports many QRCode output formats, and it can output to Bitmap or PNG image types. However, I recently found that the latest version of v1.4.3 has some problems with .NET 6.0, so I’m here to document the correct way to use QRCoder. Install QRCoder package Whether you are using the .

Carriage returns and line feeds in TTY

It is often said that line breaks are <LF> on Linux and <CR><LF> on Windows, and even on Linux, TTY has additional handling of line breaks. In the last century, the physical terminals that TTY emulates, the prototype typewriters, really had carriage return and line feed, so in TTY output, even though <LF> should have been used as a line feed, it was output as <CR><LF> in order to emulate the logic of a typewriter.

SSL certificate and key conversion to pfx

The domain name certificates that we buy from Certificate Authorities are key and cer suffixed, which can be used directly on most web servers. However, on Windows IIS, you need a certificate in pfx format. 1. Interconversion of SSL certificate and private key with pfx format 1.1. SSL certificate and private key merge to generate pfx format We can use openssl for certificate conversion to generate pfx format certificate file for IIS.

Usage of Kyverno, the Kubernetes Policy Engine

Kyverno is an open source project from Nirmata that was donated to the CNCF. Kyverno is a Kubernetes policy engine with validation and mutation capabilities, but it also has the ability to generate resources and add API object querying capabilities. Kyverno was originally written for Kubernetes, and in addition to its object generation capabilities, it can write policies without a specialized language. Similarly, Kyverno runs as a dynamic admission controller in Kubernetes clusters.

Configuration Management for Golang Applications

Typically, our applications involve a number of configurations, such as HTTP/RPC listening ports, logging-related configurations, database configurations, and so on; these configurations can come from a variety of different sources, such as local configuration files, environment variables, command line arguments, or remote configuration centres such as Consul. A configuration can exist in several different sources at the same time and needs to be prioritised. This article describes the use of koanf for configuration management in Golang applications.