CentOS 7.0 has replaced the original firewall iptables with FirewallD, which supports IPv4, IPv6 firewall settings and Ethernet bridging, and has both runtime and permanent configuration options, and is called a dynamically managed firewall, meaning that changes can be applied without restarting the entire firewall. firewalld is installed by default, if not, execute yum install firewalld firewalld-config to install it, where firewalld-config is a GUI tool. netfilter iptables, firewalld, and
Gitlab CI's Docker Cache in Kubernetes
In the previous article on how to use GitLab CI for CI/CD in a Kubernetes cluster, we basically used the Docker On Docker model for building images, because the Kubernetes cluster uses a container runtime like Docker, so we could mount the host docker.sock file from the host to the container to build the image, but recently we changed the container runtime to Containerd after using Kubernetes version 1.22.X, so
Helm Chart is compatible with different Kubernetes versions
As Kubernetes releases iterate, many Helm Chart packages simply cannot keep up with the updates, resulting in many Helm Chart packages being incompatible when using newer versions of Kubernetes, so it is necessary to consider compatibility with different versions of Kubernetes when developing Helm Chart packages.
The core of achieving compatibility with different versions is to make use of the built-in object Capabilities provided by the Helm Chart template, which provides information about Kubernetes cluster support features, including the following features.
Code obfuscation for Spring Boot applications using the ProGuard plugin proguard-maven-plugin
Because Java code is very easy to decompile, Java code obfuscation is needed to protect Java source code well. This article describes how to use ProGuard’s plugin proguard-maven-plugin to obfuscate Java programs. How ProGuard works ProGuard can rename classes, fields and methods by removing useless code and using short, meaningless names. This allows you to compress, optimize and obfuscate your code. The result is a smaller compiled file that is
Embrace Arm Server
To date, 180 billion Arm-based processors have been included in cell phones, IoT sensors and other devices. Today, this technology has evolved to support hyperscale data centers and cloud computing. Arm-based processors are attractive to cloud customers because of their linear scalability, predictable performance, and ultra-high core density and affordability. With Arm-based cloud computing, customers can run existing loads more cost-effectively and build new applications with superior economics and performance.
Linux software installation commands, CMMI process
In the process of installing and compiling Linux software on your own, three steps are performed: /configure,make,make install. /What exactly do these three steps do in the installation process, which has previously been confusing, and today we will learn together.
. /configure(configure) configure generates a makefile file based on the current system environment and specified parameters to prepare for the next compilation step. You can control the installation by adding parameters to configure, such as the code: .
Linux terminal file types and colors
When using the ls command, you can find different types of files with different colors, what specific types of files does each color represent? Let’s learn together today.
By default, specific configuration information is available at the command line by typing dircolors.
1 2 3 [root@localhost ~]# dircolors LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:'; export LS_COLORS The configuration information (rs, di, ln, etc.) corresponds to different different types of files with the following common contents.
Difference between gateway protocols CGI, FastCGI, WSGI
When deploying WEB applications in PHP and Python, you will encounter concepts like CGI, FastCGI, WSGI, uWSGI, etc. Previously, I have been very confused about these concepts and did not know how to choose. So I took the time to sort out this part, and the following are the main contents.
CGI CGI, or Common Gateway Interface, is a standard for interfacing between external applications (CGI programs) and Web servers, a protocol for passing information between CGI programs and Web servers.
Real-time messaging technology in web applications
In Internet applications, many times we need real-time message interaction between the client and the server, such as the following scenarios. SNS site user interaction message notification (weibo/twitter) Real-time scrolling news (breaking news), live text (sports events) on portals Online chat rooms (online customer service) Real-time data display (real-time stock prices, real-time commodity prices, real-time server monitoring, etc.) Next, let’s take a look at the common technical solutions for real
Python Module: Container DatatypesCollections
There are some built-in data types in Python, such as int, str, list, tuple, dict, etc. Python’s collections module builds on these built-in data types by providing several additional data types. namedtuple() generates a subclass of tuple that can use the name to access the content of the element deque A list-like container that implements fast append and pop at both ends Counter A subclass of dictionary that provides counting
PMML, JAVA calls Python algorithm model
Most of the company’s applications are developed in JAVA, so it is very difficult to use Python models, but after searching online, we can convert the generated models into PMML files and call them directly in JAVA. PMML Introduction Predictive Model Markup Language (PMML) is an XML-based format standard for storing models proposed by Dr. Robert Lee Grossman. PMML provides a way for different data analysis software or programming languages
Cygwin/MinGW/MSys/WSL differences and links
Cygwin Cygwin, formerly from Cygnus (acquired by Red Hat), is currently a project under the RedHat name. The purpose of the project is to provide a Unix-like environment (represented by GNU tools) running on a Windows platform. To achieve this, Cygwin provides a set of abstraction layer dlls that convert some of the Posix calls into Windows API calls and implement the relevant functionality. The most typical and basic emulation layer is cygwin1.
Manjaro Linux installation and use
What is Manjaro? Manjaro, simply put, is an Arch Linux-based distribution. Manjaro’s goal is to make the powerful Arch more user-friendly, such as the installation process. Compared to Arch Linux installation where you have to use the command line for partitioning, mounting partitions, network card settings, etc., it directly provides a graphical installation interface similar to other Linux distributions and has some common settings already pre-configured, including some hardware drivers
Instant Messaging Protocol - MQTT
Introduction to MQTT MQTT (Message Queuing Telemetry Transport) is an instant messaging protocol developed by IBM. It is designed with lightness, openness, simplicity, and specification in mind, and is therefore easy to implement. These features make it a good choice for many scenarios, including constrained environments such as machine-to-machine communication (M2M) and Internet of Things environments (IoT) that require very small code packages or very expensive network bandwidth.
The MQTT protocol is a protocol designed for the communication of a large number of remote sensors and control devices with limited computing power and operating on low-bandwidth, unreliable networks, and has several key features, as follows.
Go Concurrent Programming Year in Review (2021)
2021 is also almost over, Go 1.18 features have been frozen and the US is soon in holiday mode, so let’s take this node to review the progress of Go concurrent programming in the last year.
TryLock is finally being released For a long time (dating back to 2013 #6123), it was proposed to add the TryLock method to Mutex, which was ruthlessly rejected by the big boys, and intermittently, intermittently, it has been proposed that this method is needed, and now in 2021, the Go team bigwigs finally relented and added the corresponding method (#45435).
tqdm:Python code progress display tool
When using Python to perform time-consuming operations, it is common to use a progress bar to visualize the progress. tqdm in Python is used to achieve this function.
First, let’s see the effect of tqdm’s progress bar.
Basic tqdm usage There are 3 main uses of tqdm, automatic control, manual control or for scripting or command line.
Automatically controlled operation
The most basic usage, wrapping tqdm() directly around an arbitrary iterator.
implicit implements collaborative filtering real-time recommendation system
Implicit Introduction Implicit is an open source collaborative filtering project that contains a variety of popular recommendation algorithms, with the main application scenario being recommendations for implicit feedback behaviors. The main algorithms included are. ALS (alternating least squares) BRP (Bayesian Personalized Ranking) Logistic Matrix Factorization Nearest neighbor model using Cosine, TF-IDF or BM25 Implicit use Data preparation Implicit input needs to use the data format of user_id/item_id/rating, where for implicit
Python connection and using MongoDB
MongoDB can store JSON data compared to traditional relational databases, which is perfect for storing JSON data returned by data crawling. Previously, we introduced the installation of MongoDB on Windows, today we mainly learn to connect to MongoDB using Python and perform the operation of adding, deleting, and checking. Before connecting to MongoDB, the first thing you need to install is the Python package: PyMongo, which is very easy to
Windows + IntelliJ IDEA + Maven environment configuration
Introduction to Maven Before we get into Maven, let’s take a look at what you need for a Java project. First, we need to determine which dependency packages to introduce. For example, if we need to use commons logging, we must put the commons logging jar packages into the classpath. if we also need log4j, we need to put all the log4j related jar packages into the classpath. These are
XMPP - Instant Messaging Protocol
Instant protocols can be divided into private protocols (Tencent QQ) and open protocols (GTalk) according to whether they are public or not. Private IM protocols need to be designed and built from scratch, which is extremely costly in terms of time and financial resources. While open protocols.
It has been researched and verified by the industry for a long time, and is guaranteed in many aspects such as security, completeness and fault tolerance.