Debugging Go Code

Delve Installation on Linux 1 $ mkdir -p $GOPATH/src/github.com/myusername/project && cd "$_" 1 $ go get -u github.com/go-delve/delve/cmd/dlv Usage 1 $ cat $GOPATH/src/github.com/username/proj/main.go 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 package main import ( "fmt" "log" "net/http" "os" ) const port = "8000" func main() { http.HandleFunc("/hi", hi) fmt.Println("runing on port: " + port) log.Fatal(http.ListenAndServe(":" + port, nil)) } func hi(w http.

C++ Library Management

In general, you are going to have to end up with Header files in a directory somewhere library files (either static libraries, or DLLs/shared objects). If the library is a header-only library like some of the boost libraries, then you won’t need this. You get hold of the library files, either by building them on your machine (typical for open source projects, and projects aimed at Linux platforms), or by downloading the pre-compiled binaries (typical for Windows libraries, particularly paid-for).

C++ 3rd party libraries

grpc/libevent/libev/libasio 实现高性能网络服务器 protobuf 数据结构序列化/反序列化,方便数据交换 LevelDB/RocksDB 嵌入式KV数据库 snappy/zlib/lz4 数据压缩,解压缩 jemalloc/tcmalloc 高效内存分配器,尤其多线程场景 jerasure Reed Sol

Create a macOS bootable ISO from the installer

First, download MacOS Mojave installer, or the MacOS Catalina installer (or the installer you wish to turn into an ISO) from the Mac App Store (direct links to most installers can be found in this article). How to download macOS from official When the “Install MacOS Mojave.app” or “Inst

Install MAC OSX 10.6 Snow Leopard on VMware Workstation 16

Requirements VMware Workstation 16 Mac OS X Snow Leopard 10.6 (10A432) (Retail DVD) iBoot 3.3.0 Create a Snow Leopard Server VM VMware workstation doesn’t officially support 10.6, only 10.6 server. To start with, create a new VM: File -> New For the installation method, select ‘Create a custom virtual machine’ Operating system: ‘Apple OS X’ -> ‘Mac OS X 10.7’ Memory set 2 GB or 4GB. Set the number of cores per processor as 2.

CMake

如果工程存在多个目录,需要确保每个要管理的目录都存在一个 CMakeLists.txt. Set a name, version, and enable languages for the entire project. 1 project(<PROJECT-NAME> [LANGUAGES] [<language-name>...]) Sets the name of the project and stores the name in the

C++ tools

Tools clang-format 格式化c++代码,同类工具还有astyle。保持代码风格统一是个好习惯。 qt creator vs以外我觉得最好用的c++ ide,代码补全质量高(基于li

kaggle

https://www.kaggle.com/stackoverflow/statsquestions https://www.kaggle.com/c/jigsaw-toxic-comment-classification-challenge https://developer.ibm.com/exchanges/models/all/max-toxic-comment-classifier/ https://www.quora.com/Is-binary-relevance-same-as-one-vs-all https://stackoverflow.com/questions/44674847/what-are-the-differences-between-all-these-cross-entropy-losses-in-keras-and-ten https://vict0rs.ch/2018/06/17/multilabel-text-classification-tensorflow/ https://github.com/tensorflow/skflow/issues/113 https://towardsdatascience.com/journey-to-the-center-of-multi-label-classification-384c40229bff https://www.reddit.com/r/MLQuestions/comments/5n82zb/loss_function_for_sparse_multilabel_classification/

Third Party Libraries of Go

General Gin: A lightweight HTTP web framework that’s great for building RESTful APIs. Echo: Another web framework for Go that’s known for its speed and ease of use. GORM: An Object-Relational Mapping (ORM) library for working with databases in a Go application. Viper: A library for managing configuration files and environment variables. Logrus: A structured logger for Go, which provides flexible logging capabilities. Gorilla Mux: A powerful HTTP router and

maven

Introduction to the Build Lifecycle Build Lifecycle Basics Maven is based around the central concept of a build lifecycle. What this means is that the process for building and distributing a particular artifact (project) is clearly defined. There are three built-in build lifecycles: default, clean and site. The default lifecycle handles your project deployment, the clean lifecycle handles project cleaning, while the site lifecycle handles the creation of your project’s site documentation.

Packet Capture using Fiddler

Capture Traffic from iOS Device Configure Fiddler Classic Open Fiddler Classic and stop capturing. Open *Tools > Options > HTTPS* and disable *Capturing HTTPS Connects*. Close Fiddler Classic and install BouncyCastle (CertMaker.dll) from here. – this will add CertMaker.dll in your Fiddler installation, changing the way certificates are generated. With this option, Fiddler Classic will use only one root certificate and will not generate intermediate certificates for each option. After installation is complete, open Fiddler, open *Tools > Options > HTTPS* menu use *Actions > Reset all certificates* option.

Configure Git to use a proxy

Prerequisites Installing GitHub CLI archlinux: 1 sudo pacman -S github-cli windows: 1 winget install -e --id GitHub.cli Connect with SSH Checking for existing SSH keys 1 ls -al ~/.ssh Generating a new SSH key if public SSH key doesn’t exist 1 ssh-keygen -t ed25519 -C "csyezheng@gmail.com" Adding your SSH key to the ssh-agent (optional) 1 eval "$(ssh-agent -s)" 1 ssh-add ~/.ssh/id_ed25519 1 ssh-add -l Adding a new SSH key to your account

HTTPie for API testing

CLI Installation Universal 1 python -m pip install install httpie ArcoLinux 1 $ pacman -S httpie Usage Synopsis: 1 $ http [flags] [METHOD] URL [ITEM [ITEM]] 1 $ http --help Examples General Synopsis: 1 $ http [flags] [METHOD] URL [ITEM [ITEM]] Custom HTTP method, HTTP headers and JSON data: 1 $ http PUT pie.dev/put X-API-Token:123 name=John Each request item is simply a key/value pair separated with the following characters: : (headers), = (data field, e.

Dependency injection

A certain few of the GOF design patterns show up a lot, in most cases programmers use them without consciously deciding to “use a design pattern”. singleton: most often this is nothing more than a global variable in OOP clothing - a static method to get. People will always need global variables. iterator pattern: used in almost every standard library with containers, and that’s not counting “incremented pointers”, even though that often can provide a similar interface.

DevOps

What is DevOps? DevOps (a clipped compound of “development” and “operations”) is a software engineering culture and practice that aims at unifying software development (Dev) and software operation (Ops). The main characteristic of the DevOps movement is to strongly advocate automation and monitoring at all steps of software construction, from integration, testing, releasing to deployment and infrastructure management. DevOps aims at shorter development cycles, increased deployment frequency, and more dependable

DevOps

pull this image 1 $ sudo docker pull mysql Start a mysql server instance 1 $ sudo docker run --name some-mysql -p 3310:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 logged in to the conainer 1 $ sudo docker exec -it some-mysql mysql -u root -p Install mariadb package. 1 sudo pacman -S mariadb Find out the ip of the docker container over the docker bridge: 1 sudo docker inspect some-mysql | grep IPAddress connect to mysql

DevOps books

Python for DevOps: Learn Ruthlessly Effective Automation Hands-On Docker for Microservices with Python: Design, deploy, and operate a complex system with multiple microservices using Docker and Kubernetes Ansible for DevOps: Server and configuration management for humans Terraform: Up & Running: Writing Infrastructure as Code Kubernetes: Up and Running: Dive into the Future of Infrastructure

DevOps CI/CD

Gitlab https://gitlab.com/gitlab-org/gitlab https://github.com/gitlabhq/gitlabhq https://docs.gitlab.com/ee/README.html Docker integration https://docs.gitlab.com/ee/ci/docker/README.html Jenkins CI service https://docs.gitlab.com/ee/integration/jenkins.html GitLab Jira integration https://docs.gitlab.com/ee/user/project/integrations/jira.html Auto DevOps https://docs.gitlab.com/ee/topics/autodevops/ Auto Build Auto Build using a Dockerfile Auto Test Auto Code Quality Auto SAST Auto Secret Detection Auto Load Performance Testing Auto Deploy JIRA