This article is translated from Chinese to English by ChatGPT. There might be errors.
This article contains some study notes from Effective Modern C++.

This article is translated from Chinese to English by ChatGPT. There might be errors.
This article contains some study notes from Effective Modern C++.
This article is translated from Chinese to English by ChatGPT. There might be errors.
This title looks as if I were capable of answering this question. In fact, I’m not; I’m miles away from being able to answer it. This article is only a summary of the material I’ve read so far and my own understanding of it, with absolutely no guarantee of accuracy.
This article is translated from Chinese to English by ChatGPT. There might be errors.
I haven’t updated my blog for a long time. Since I don’t have the habit of keeping records, many times after solving a problem I’d think about writing it down to share, but then I’d feel that not many people would read it anyway, so I’d drop it. But ever since Gu Guofei forced me to read papers, I’ve realized that not taking notes doesn’t work: by the time I finish the next paper, I’ve already forgotten the previous one and can’t grasp the key points at all. I recently switched to an iPhone, and in order to improve efficiency I’ve tried a bunch of apps. I’ll recommend some of them here, and also talk a bit about the NAS I bought during last year’s Double 11.
This article is translated from Chinese to English by ChatGPT. There might be errors.
Using HTTPS is clearly the general trend; in the future all websites should adopt HTTPS encrypted connections to ensure security and privacy.
All of Google’s sites have fully enabled HTTPS. According to Google, the overhead introduced by HTTPS is very small. However, in actual use the latency caused by the HTTPS handshake is still quite noticeable, especially when using HTTP/1.1, where multiple connections to the server are usually established and each one has to go through the HTTPS handshake.
This article is translated from Chinese to English by ChatGPT. There might be errors.
Most of my previous understanding of regular expressions came from scattered bits of knowledge. Often, when I needed to use some regular expression and forgot how to write it, I would look it up on this page. Last time, when helping dhl solve a problem of extracting strings of the form http://xxx.jpg from HTML, after a series of frustrations, I decided to properly study regular expressions. I bought the book “Mastering Regular Expressions” during the Double 11 sale. I’ve read five chapters so far, hence this short summary.
This article is translated from Chinese to English by ChatGPT. There might be errors.
I originally thought the reason the dorm PC couldn’t ping the lab PC was that there was a layer of NAT in between. After talking with Wu Bo yesterday, I realized there was actually no NAT; it was a firewall issue. The firewall should be dropping ICMP packets and all inbound TCP SYN packets, so an external machine cannot establish a TCP connection directly to the lab machine. After some discussion with Wu Bo, I got the idea to try to break through the restriction that the dorm machine cannot establish TCP connections to the lab machine.
This article is translated from Chinese to English by ChatGPT. There might be errors.
The project I was working on used the IP header Option field and defined a custom type. By default Wireshark shows this as Unknown. To make the demo look better, I added some code to let Wireshark support custom Option types. Since this is not a standalone protocol, it cannot be extended with Lua and similar mechanisms, so Wireshark has to be recompiled. Compilation on Linux is very simple, but on Windows it is much more cumbersome, hence this article.
