This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Software Engineering

Software Engineering note, include …

1 - API Design

API note for Restful API, GraphQL, gRPC, etc.

Restful API

2 - ELK Stack

Elacticsearch, Kibana, Logstash

Elasticsearch

How data processing before building Index

  1. Operation of Text field and Analyzer
    • Behind the full-text search mechanism, how text processing through Lucene
  2. Dynamic Mapping practical tips
    • Uniform naming convention -> dynamic_templates
    • carefully setting dynamic templates
    • Turn off dynamic fields mapping
      • X dynamic: false
      • V dynamic: strick
    • Turn off date or number automatic judgment
  3. Index Template Recommendation
  4. Index Alias

keyword type vs. text datatype

When to use the keyword type vs. text datatype in Elasticsearch | ObjectRocket

Ref

Kibana

Kibana is a free and open user interface that lets you visualize your Elasticsearch data and navigate the Elastic Stack. Do anything from tracking query load to understanding how requests flow through your apps.

  • UI Dashboard
  • Widgets / Visualization

Logstash

  • Input / Transform /stash

Application Architecture Reference

1bdee42 bc31ac7 \( \uparrow \) image ref: Building a real-time elastic search engine using Python, Easticsearch, React, Redux, and K8

0eccb35 \( \uparrow \) image ref: Using Amazon ElasticSearch to Improve Performance when Querying Data in MySQL

3 - Linux Useful Command

The useful command can let you use the command line more efficiently

4 - Linux Useful Tools

Useful tools can improve your development efficiency

System tools

• Boot-Repair

https://help.ubuntu.com/community/Boot-Repair

A simple tool to repair frequent boot issues you may encounter in Ubuntu

sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt update
sudo apt install -y boot-repair && boot-repair

• TLP

https://linrunner.de/tlp/index.html

Optimize Linux Laptop Battery Life

sudo apt install tlp tlp-rdw
sudo apt-get install smartmontools
sudo systemctl start tlp

sudo tlp-stat | less

GUI tools

• Angry IP scanner

https://angryip.org/

Fast and friendly network scanner

• Crow Translate

https://crow-translate.github.io/

A simple and lightweight translator

• Drawio Desktop

https://github.com/jgraph/drawio-desktop

A diagramming and whiteboarding desktop app based on Electron that wraps the core draw.io editor.

• Fcitx 5

https://fcitx-im.org/wiki/Install_Fcitx_5

Input method framework with extension support

sudo apt-get install -y fcitx fcitx-table-boshiamy fcitx-chewing

• Free File Sync

https://freefilesync.org/

Open Source File Synchronization & Backup Software

• Open Broadcaster Software Studio (OBS)

https://obsproject.com/

Free and open source software for video recording and live streaming

• QDirStat

https://github.com/shundhammer/qdirstat

Qt-based directory statistics (KDirStat without any KDE - from the original KDirStat author)

sudo apt-get install -y qdirstat

• Rclone

https://rclone.org/

A command-line program to manage files on cloud storage. It is a feature-rich alternative to cloud vendors’ web storage interfaces. Over 40 cloud storage products support rclone including S3 object stores, business & consumer file storage services, as well as standard transfer protocols.

• Remmina

https://remmina.org/

Remote access screen and file sharing to your desktop

• linux-wifi-hotspot

https://github.com/lakinduakash/linux-wifi-hotspot

Feature-rich wifi hotspot creator for Linux, which provides both GUI and command-line interface.

Terminal Tools

• aria2

https://aria2.github.io/

aria2 is a lightweight multi-protocol & multi-source command-line download utility. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink. aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.

sudo apt-get install -y aria2

• bat

https://github.com/sharkdp/bat

A cat(1) clone with wings.

sudo apt install -y bat

• dua

https://github.com/Byron/dua-cli

View disk space usage and delete unwanted data, fast.

curl -LSfs https://raw.githubusercontent.com/Byron/dua-cli/master/ci/install.sh |
sh -s -- --git Byron/dua-cli --target x86_64-unknown-linux-musl --crate dua --tag v2.17.4

• exa

https://the.exa.website/

A modern replacement for ls. exa is a modern replacement for ls. It supports colours, Git integration, and other niceties.

sudo apt-get install -y exa

• fd

https://github.com/sharkdp/fd

A simple, fast and user-friendly alternative to ‘find’

sudo apt-get install -y fd-find

• fzf

https://github.com/junegunn/fzf

A command-line fuzzy finder

sudo apt-get install fzf

• fzf-tab

https://github.com/Aloxaf/fzf-tab

Replace zsh’s default completion selection menu with fzf!

• locate

https://linuxhint.com/linux-locate-command/

the quickest and simplest way to search for files and directories by their names.

sudo apt install mlocate

• mosh

https://mosh.org

Mosh is a remote terminal application that supports intermittent connectivity, allows roaming, and provides speculative local echo and line editing of user keystrokes.

sudo apt-get install mosh

• process monitor

  • BPYTOP Linux/OSX/FreeBSD resource monitor

    sudo apt install bpytop
    
  • nvitop An interactive NVIDIA-GPU process viewer, the one-stop solution for GPU process management.

    pip3 install --upgrade nvitop
    

• ripgrep

https://github.com/BurntSushi/ripgrep

ripgrep recursively searches directories for a regex pattern while respecting your gitignore

sudo apt-get install -y ripgrep

• the Silver Searcher

https://github.com/ggreer/the_silver_searcher

A code-searching tool similar to ack, but faster.

sudo apt-get install silversearcher-ag

• xclip

https://github.com/astrand/xclip

Command line interface to the X11 clipboard

sudo apt-get install -y xclip

• xxh

https://github.com/xxh/xxh

Bring your favorite shell wherever you go through the ssh.

pip3 install xxh-xxh

• zoxide

https://github.com/ajeetdsouza/zoxide

zoxide is a smarter cd command, inspired by z and autojump.

• zsh

https://www.zsh.org/

Zsh is a shell designed for interactive use, although it is also a powerful scripting language

sudo apt-get install -y zsh