Some thoughts on complexity

Someone recommended this article before, Complexity has to live somewhere, the general idea is that the complexity of the system can’t just disappear, it can only be transferred from one place to another, because there is so much logic in the real world, there are so many cases around the corner that you have to deal with, which will inevitably introduce complexity into the system. Although these complexities you can transfer to your colleagues or outsource to third-party systems, the complexity is indefinite.

Pitfalls encountered in vue3 upgrade

I’ve been busy with work recently, and I’ve fallen behind on improving my own capabilities, so I took the opportunity today to solve some of the problems I was thinking about before, and I also gave my VueBlog a chance to upgrade both vue and webpack to the latest beta version, and then I encountered a lot of pitfalls, so I’ll put them all on record today so I don’t forget them later.

The Pitfalls of Cpp Projects

This article records some of the problems and optimization methods of C++ in these years’ projects. It is important to note that there is no one-size-fits-all method for code optimization, and you can only see what you can do, and you have to avoid problems such as premature optimization, code optimization must be done in the middle and late stages, and don’t optimize for the sake of optimization. const and

Analyze program performance using the perf tool

Recently, I’ve been optimizing the performance of DDE, so I’ve been catching up on the use of various analysis tools under linux. This diagram is an application scenario of linux analysis tools from Brendan Gregg, and you can see that it includes almost every part of the system that should be analyzed with the tools. Linux Perf Tool Allows the system to perform analysis In order to be able to analyze it properly, we first need to turn on the debugging features of the system, allowing us to access other processes.

Qt Multithreading

There are three ways to register Qt types for multithreading, namely inheriting QThread, using QObject’s moveToThread function and Qtconcurrent concurrent threads. In many articles, it is recommended to inherit from the QThread class and override the run method to use time-consuming manipulation code in run. This approach makes us think that QThread is the entity of the thread. Creating a QThread object is thought of as opening a new thread.

How to make a package for Arch

Arch uses the pacman package manager and the package format is tar.zst. Arch provides a number of tools for creating tar.zst packages, first you need to install the base-devel package and the devtools package. 1 pacman -S base-devel devtools Arch’s packaging process works like this, starting with writing a PKGBUILD file that describes all the information needed to build a package, such as where to download the source code from, what the dependencies are, what the build version is, how to build, etc.

Deploying a kubernetes cluster with Kubespray native development tests

The company’s PaaS platform uses the open source kubespray for the underlying kubernetes cluster deployment, and I was involved in the kubespray second-opening work. During this period, I mainly completed kubespray automated packaging and release pipeline, private deployment, added self-research CNI deployment, and some bugfixes. I recently took time to organize and summarize some of the pitfalls of using kubespray to deploy kubernetes clusters for local development and testing. Prepare

Microsofts Gpu Accelerated Ml Training Tensorflow Directml

Last June, Microsoft announced that it was working with hardware vendors on a project called TensorFlow-DirectML, which provides GPU-accelerated training of machine learning (ML) models on the Windows Subsystem for Linux (WSL). After a year of previews, the project has now ended its preview and released its official version. As the name implies, TensorFlow-DirectML is a fork of TensorFlow that includes both Google’s TensorFlow machine learning platform and Microsoft’s DirectML API.

Ubuntu 21 10 Performance Windows 10 11

The official release of Windows 11 is less than a month away (October 5), which is about a week before the release of Ubuntu 21.10 (codenamed “Impish Indri”), which is on October 14. What will be the performance difference between these two upcoming OS releases? Phoronix recently published a performance test comparing Ubuntu 21.10 with Windows 10/11. Testing environment. AMD Ryzen 9 5900X CPU 2 x 8GB DDR4-3600 memory WD_BLACK SN850 1TB NVMe SSD NVIDIA GeForce RTX 3090 graphics card Systems tested: Windows 10 21H1, Windows 11 22000.

Automating yum/apt offline source builds with GitHub Actions

Offline Deployment For PaaS toB products, customers often require that the deployment solution must be installed offline, i.e., it cannot rely on any online resources during deployment, such as yum/apt sources for installing some OS packages; container images on,,; binary downloads of open source software on GitHub, etc. download files, etc. As a developer of platform deployment tools, I am always plagued by the challenge of offline

Rust 1.55.0 is officially released

The Rust team has officially released a new version of Rust 1.55.0. If you have previously installed a previous version of Rust via rustup, you can upgrade to the latest version by running the following command. 1 rustup update stable Updates in the 1.55.0 stable release include Cargo repeats compiler error In past versions, when running cargo test, cargo check --all-targets, or similar commands to build the same Rust crate in multiple configurations, errors and warnings may be repeated because rustc runs in parallel and all display the same warnings.

Firefox browser will introduce Tab Unloading feature to cope with low memory and reduce crashes

Mozilla this week enabled automatic Tab Unloading for Firefox Nightly on Windows, which significantly improves low memory usage and reduces the likelihood of browser crashes. Mozilla’s development of Firefox Tab Unloading began more than 10 years ago, but Mozilla has never enabled the feature in any of the browser’s previous releases. Tab Unloading was stalled two years ago due to detection of low memory errors. Tab unloading is now a feature in Firefox Nightly for Windows, which is currently in version 93 and is expected to be released in Firefox 93 for Windows later this year.

Go 100 lines to implement HTTP(S) forward proxy

The goal is to implement a realistic HTTP HTTPS proxy server, and there are currently two ways to implement a proxy Plain Proxy : This proxy plays the role of a middleman, for the client it is the server, for the server it is the client, it is responsible for passing HTTP messages back and forth in the middle Tunnel Proxy : It is a proxy that is done through the HTTP body, which is a TCP-based application layer proxy that uses the CONNECT method of HTTP to establish a connection.

Amazon Launches High-Performance PyTorch Dataset Library -- S3 Plugin

Amazon recently launched a dataset library for Facebook’s PyTorch machine learning framework called S3 Plugin, designed to help data scientists access datasets stored in AWS S3 (Amazon Web Services Simple Storage Service). Designed for low latency, Amazon says the S3 Plugin provides the ability to stream data for datasets of any size, eliminating the need to provide local storage capacity. PyTorch is an open source machine learning library based on the Torch library for applications such as computer vision and natural language processing, developed primarily by Facebook’s AI Research Lab.

Amazon Elasticsearch Service is renamed Amazon OpenSearch Service

AWS announced that it is changing the name of its cloud service offering, Amazon Elasticsearch Service, to Amazon OpenSearch Service, and claims that despite the name change, they will continue to provide the same experience and will not have any negative impact on ongoing operations and development methods, as well as business usage. OpenSearch is a community-driven open source search and analytics suite forked from Elasticsearch 7.10.2 and Kibana 7.10.2 licensed from Apache 2.

Etcdraft consensus in Fabric

Why consensus via etcdraft? I think there are the following reasons solo is not suitable for most scenarios, e.g. organization A, organization B, both want to place consensus nodes in themselves kafka can meet the above requirements, but kafka plus zookeeper requires extra deployment and is too heavy to deploy So here comes the consensus based on etcdraft, which solves the above pain points Say it three times! Don’t miss

EOF error caused by Go HTTP Response write timeout

The day before yesterday, there was a miraculous error in the process of the call, the error in the client side of the http request error Get "": EOF , but the server side does not have any exception all the logs are normal execution Since the error is only on the client side, the Google search results are not caused by the actual scenario (there is no suspicion that there is a problem on the server side), so we have no choice but to capture the packets, and finally the problem is solved

Vue3 core Typescript class analysis

Unlike using JavaScript, writing Vue programs in Typescript requires an understanding of Vue-related types, most of which are written in the @vue/runtime-core package. Component A Vue page is composed of a component, and the component’s class in Vue is Component, which inherits from ComponentOptions, FunctionalComponent and ComponentPublicInstanceConstructor. Of these, ComponentOptions inherits from ComponentOptionsBase, which is the declarative options component we often write that contains properties such as data, methods, etc.

Android 12 Beta 5 released, official version coming soon

Google has launched Android 12 Beta 5 today, the last Beta update before the release of Android 12, which will be available in a few weeks. What’s new in Android 12 Beta 5 Nearby Share can now set devices to be visible to “everyone” Pixel phones notify users when charging is limited due to overheating Google calculator redesigned with Material You Lock button is displayed in the power menu by default (and cannot be removed in the settings) Android 12 system egg adds a desktop widget that shows the dynamic palette used by Material You Added lock screen + AOD spacing

JetBrains Launches DataSpell, a New Data Science IDE

JetBrains, the developer of the IntelliJ Idea IDE and the Kotlin programming language, recently launched DataSpell, an IDE specifically for data science. DataSpell is currently in early preview and can be downloaded by developers at to download and is currently available for Windows, Linux, and Mac, and also has native support for Macs using the M1 chip. this IDE will provide a development environment for data science professionals engaged in exploratory data analysis and prototyping of machine learning models.