Article Archives for `2024`
Springboot and configuration of AWS opensearch
Background:In actual development, for some real-time requirements that are not high and require some aggregated data queries, Elasticsearch is generally used. Its advantages are high query efficiency and the ability to store large amounts of data.We use AWS opensearch in our actual project. In fact,
...
More >>
2024-12-12
Springboot
/
AWS opensearch
Environment Preparation
Because my needed to develop a Vue component library that could be published to npm and installed via npm, I searched many articles online and finally completed the task. During this process, I encountered many pitfalls, and I’ve organized them here, hoping to help those who may need it.
I used Vue
...
More >>
2024-11-27
Front-end
Front-end JavaScript Knowledge Base
IntroductionI believe many people, like me, started their journey in front-end development through short-term training programs that last for four or five months. As a result, our grasp of the fundamentals of JavaScript (JS) is quite weak. Although we managed to find jobs, we often encounter problem
...
More >>
2024-11-18
Front-end
Mainstream Algorithms in Recommendation Systems
Recommendation systems are information filtering systems designed to suggest potentially interesting content to users based on their preferences and behavioral data. From product recommendations on e-commerce websites to personalized playlists on streaming platforms, recommendation systems have perm
...
More >>
2024-11-08
Algorithms
How to create a Flutter app
Introduction
Flutter is an open source user interface (UI) toolkit developed by Google for building high-performance, beautiful, and smooth mobile applications on multiple platforms. It uses the Dart programming language and provides a wealth of UI components and tools to quickly build modern applic
...
More >>
The implement of a simplified version of "promise"
promise Key pointsThe ‘Promise’ object represents an asynchronous operation with three states: ‘pending’ (in progress), ‘fulfilled’ (successful), and ‘rejected’ (failed)
A Promise must be in one of the following states:
pending: An initial state that is neither cashed nor rejected.
fulfilled: The o
...
More >>
2024-10-09
promise
How to deal with heavy traffic and high concurrenc
The so-called high concurrency refers to: at the same time or within a very short period of time, there are a large number of requests to reach the server, each request requires the server to spend resources to process, and make the corresponding feedback.
Commonly used ideas and tools for high conc
...
More >>
2024-09-30
high concurrenc
/
heavy traffic
Understanding Nginx: A Comprehensive Guide
IntroductionNginx (pronounced “engine-x”) is an open-source web server that also functions as a reverse proxy, load balancer, mail proxy, and HTTP cache. Created by Igor Sysoev and publicly released in 2004, Nginx has grown in popularity due to its high performance, stability, rich feature set, simp
...
More >>
2024-09-20
Nginx
Usage of UIStackView
In the past, iOS page layout was relatively traditional, and most people used Frame or AutoLayout for layout. After iOS9, UIStackView was introduced. UIStackView is a control for linear layout that can automatically manage subview layout and automatic filling. It draws on the front-end layout algori
...
More >>
2024-09-06
iOS
/
UIStackView
Android Communication Security
Component Communication SecurityWhat is local denial of service?Before understanding local denial of service, let’s briefly understand denial of service attacks (dos attacks) and distributed denial of service attacks (ddos).
The so-called denial of service attack is to occupy all the service threads
...
More >>
2024-08-30
Android
An Introduction to Time Wheels
1.conceptThe Timing Wheel is the result of George Varghese and Tony Lauck’s 1996 paper [Hashed and Hierarchical Timing Wheels: data structures to efficiently implement a timer facility], which is widely used in the Linux kernel and is one of the implementations and foundations of Linux kernel timers
...
More >>
2024-08-20
Timing Wheel
About the TIME-WAIT state
Let’s rewind a bit and have a close look at this TIME-WAIT state. What is it? See the TCP state diagram below:
TCP state diagram
Only the end closing the connection first will reach the TIME-WAIT state. The other end will follow a path which usually permits it to quickly get rid of the connection.
...
More >>
2024-07-22
TIME-WAIT
/
TCP
Take You Step by Step to Implement the Simplest Distributed System Log: Full Link Tracking
backgroundWith the popularity of microservices, many companies have split the system into many microservices according to business boundaries, when troubleshooting and checking logs. Because business links run through many microservice nodes, it becomes very difficult to locate the logs of a certain
...
More >>
2024-06-26
Distributed System
/
Full Link Tracking
Chromedriver and Chrome Version Matching Issue
Many users of Selenium will encounter a problem. Our Chromedriver is often incompatible with the local Chrome browser version, causing us to fail to instantiate Webdriver.Chrome. The error message is roughly as follows:
An exception occurs: SessionNotCreatedException
Message: session not created: Th
...
More >>
2024-06-18
Chrome
Golang Compiler Variable Escape Analysis
Variable escape in Golang
Golang compiler variable escape analysis
The Go language compiler will automatically decide whether to put a variable on the stack or the heap.The compiler will do escape analysis. When it is found that the scope of the variable does not run out of the function scope,it ca
...
More >>
2024-06-09
Back End
/
Golang
The Ultimate Guide to Understanding the Differences between HTTP/1.1, HTTP/2, and HTTP/3 in a Fun Way
The Ultimate Guide to Understanding the Differences between HTTP/1.1, HTTP/2, and HTTP/3 in a Fun WayHTTP, the Hypertext Transfer Protocol, forms the backbone of communication on the internet. Over the years, it has evolved through various versions with each iteration bringing improve
...
More >>
Android Studio Custom Lint Tool
Android Studio Custom Lint ToolIntroductionAndroid Studio provides a code scanning tool called lint that helps you find and correct problems with the structural quality of your code without actually executing your app or writing test cases. Every issue detected by the tool is reported with a descrip
...
More >>
2024-05-24
Front End
/
Android Studio
/
Lint
FreeSWITCH Docker Building Guide
FreeSWITCH Docker Building GuideInstall dockerFirst, install the docker service on the server to facilitate subsequent environment construction.
1234sudo yum install -y dockerdocker --versionsudo systemctl start dockersystemctl status docker
Construct Docker file of FreeSWITCHWrite the docker file
...
More >>
2024-05-17
Back End
/
FreeSWITCH Docker
After Front-End Deployment Releases the Project, How to Notify the User to Refresh the Page and Clear the Cache?
After Front-End Deployment Releases the Project, How to Notify the User to Refresh the Page and Clear the Cache?There are two approaches to this problem
Method 1: Pure front-end
Every time you package for release, use webpack to build a version.json file. The content in the file is a random string (
...
More >>
2024-05-11
Front End
/
Notify
/
Cache
The Solution for Monitoring the Deadlock of the Main Thread
The Solution for Monitoring the Deadlock of the Main ThreadIn project development, the solution for monitoring the main thread’s lag is particularly important. It plays a guiding role in our subsequent optimization logic, so below we start to discuss the implementation of the solution for monitoring
...
More >>
2024-05-02
Front End
/
deadlock
/
monitoring
Penetration Testing Theory
Penetration Testing Theory1. Definition of Penetration TestingPenetration Test is a test in which personnel with information security knowledge and skills are entrusted to simulate the attack methods of malicious hackers.
Usually we describe it as a method/activity that explores possible vulner
...
More >>
2024-04-26
Penetration
/
Testing
Block Is Used for Communication between OC and C++
Block Is Used for Communication between OC and C++BackgroundIn iOS development, we often encounter the situation of mixing OC and C++, so how to communicate between then? This article will introduce how to use block for communication between oc and c++. Due to the different memory management style o
...
More >>
2024-04-17
Back End
/
communication
/
OC
/
C++
Convolutional Neural Networks in Deep Learning
Convolutional Neural Networks in Deep LearningWhat is Convolutional Neural Network?Convolutional neural networks are a model of deep learning that mainly processes tasks such as images and videos. CNN has achieved great success in the field of computer vision, such as multi object tracking, object r
...
More >>
Understanding Garbage Collection in Go
Understanding Garbage Collection in GoGarbage collection is a mechanism Go developers use to find memory space that is allocated recently but is no longer needed, hence the need to deallocate them to create a clean slate so that further allocation can be done on the same space or so that memory can
...
More >>
2024-04-01
GO
/
Back End
/
Garbage Collection
MySQL Backups
MySQL Backups1. Why backup is necessary
Disaster recovery: Hardware failures, unintentional bugs causing data damage, or servers and their data being inaccessible or unusable due to certain reasons (such as a computer room building burning down, malicious hacker attacks, or MySQL bugs).
People chang
...
More >>
2024-03-25
Back End
/
MySQL
The Use and Principle Analysis of Coroutines
The Use and Principle Analysis of Coroutines1st. Why Use CoroutinesWhether it’s the birth of a technology or a product, it often comes with demand, and coroutines are no exception. When asked why to use coroutines, the first thing to understand is, what is a coroutine? In summary, it is a lightweigh
...
More >>
2024-03-18
Front End
/
Coroutines
Analyzing Redis Bloom Filters and Their Applications in Detail
Analyzing Redis Bloom Filters and Their Applications in DetailWhat’s Bloom FilterA Bloom Filter is a clever probabilistic data structure proposed by Howard Bloom in 1970, designed to determine whether a certain element exists in a set. It can indicate with a certain probability whether something def
...
More >>
Redis Master-Slave Replication Principle
1.IntroductionIn most cases, we use redis stand-alone service. In actual scenarios, single-node Redis is prone to risks.
Since failover cannot be achieved, subsequent requests will be sent directly to the database. A large number of queries will cause the number of database connections to reach a pe
...
More >>
Pnpm Principle
Pnpm PrincipleDo you need some operating system knowledge to understand how pnpm works
1.The nature of the documentIn the operating system, a file is actually a pointer, only instead of pointing to a memory address, it points to an external storage address (in this case, external storage can be a ha
...
More >>
2024-02-26
Front End
/
pnpm
Building a Python API Testing Tool Platform
Building a Python API Testing Tool PlatformIntroduction:In today’s software development landscape, API testing has become an integral part of the testing process. It allows developers to ensure the functionality and reliability of their applications by testing the different endpoints and functionali
...
More >>
2024-02-17
Back End
/
Python
SwiftUI State Management
Introduction:State management is a crucial aspect of building responsive user interfaces in SwiftUI. It allows us to track and handle changes in the application’s state while ensuring that views automatically update when the state changes. This article will introduce several commonly used state mana
...
More >>
LRU Cache
What is LRU Cache and How to Implement it1. What is LRU CacheLRU is the abbreviation of Least Recently Used, which means least recently used. It is a Cache replacement algorithm.
1.1 What is Cache?The Cache in the narrow sense refers to the fast RAM located between the CPU and the main memory. Usual
...
More >>
2024-01-29
Back End
/
LRU Cache
How to Quickly Create Interface Automation
How to Quickly Create Interface AutomationDuring the project development process, regression validation is always performed on the original functions to ensure that the original logic is normal, such as smoke testing, regression testing, and monitoring online business. When there is a lot of content
...
More >>
2024-01-19
QA
/
Interface Automation
How to Run Parallel Coroutines in Kotlin
OverviewWe can think about Kotlin coroutines as lightweight threads. They allow us to execute code concurrently and are less resource-consuming than threads. Using coroutines can improve the performance, responsiveness, and scalability of our applications.In this tutorial, we’ll explore different wa
...
More >>
2024-01-12
Kotlin
/
Lightweight Threads
Kubernetes Network
Kubernetes NetworkIn this article, we’ll give you an in-depth look at the networking and monitoring capabilities provided by Kubernetes to prepare you for rolling out your application into a production environment with open network services and good visibility.
Kubernetes networking featuresKubernet
...
More >>
2024-01-03
Kubernetes
/
Network