原创 Rust - mysql 新的選擇

一、添加mysql依賴 sqlx 是同時支持tokio2.0和async-std的異步mysql [dependencies] tokio = {version = "0.2.15", features = ["full"]

原创 Rust - 常用的三方庫集合

一、once_cell 是一種只執行一次的容器,多用於全局變量,安全初始化,或者延遲初始化 set(T) => 安全的設置全局變量 get() -> T => 獲取已經設置的全局變量 get_or_init(Fn) => 獲

原创 nginx - 常用配置記錄

一、nginx內置常用變量 使用curl模擬請求 curl --location --request POST 'http://localhost:8081/ngx_vars?a=1&b=2' \ --header 'Cont

原创 高併發系統設計筆錄

1、通用設計方法 縱向擴展,分庫分表 前置緩存,內存加速 消息隊列,異步處理 2、架構分層 簡化系統設計,讓不同的人專做不同的事 系統複用,提升研發的效率 易於擴展,對模塊業務單獨做擴展 3、數據庫優化 連接池,基於池化

原创 Rust - log 日誌輸入到文件

一、添加 log 依賴庫 log4rs 是模仿log4j的java庫 [dependencies] log = "0.4.8" log4rs = "0.11.0" 二、配置詳解 1、appenders 輸出到什麼地方 a)

原创 Rust - Box|Rc|Arc|Cell|RefCell|Cow

一、Box<T> 是一種獨享所有權智能指針,類似C++的unique_ptr 資源分配在堆上,依靠Deref和Drop來管理堆上的資源,零運行時開銷,是最常用的套娃。 Box::new(v) : 創建,移動語義,獨佔所有權

原创 Rust - PhantomData | NotNull

一、PhantomData<T> 是一種幻象數據類型,幻象就是無實體,只能看見,無法使用。 1、當我們需要在結構體S中加入一個不使用的類型T,只是爲了告訴編譯器,當前結構體S和類型T有某種潛在關係,當drop檢查的時候可以作爲一

原创 Rust - Pin | Unpin | PhantomPinned

一、Pin<T> 是一種可以固定住內存地址的容器。 主要是解決自引用結構體問題,比如一個struct有一個T字段和一個&T字段,彼此有借用關係,當struct被移動後,&T就會成爲懸垂指針。使用Pin套娃一層後,不管Pin<T>

原创 Rust - mysql 增刪改查

一、添加mysql依賴 mysql_async 是基於tokio2.0的異步mysql [dependencies] mysql_async = "0.22.2" tokio = "0.2.13" 二、設置database_

原创 Golang - 分佈式ID和snowflake雪花算法

一、雪花算法snowflake package snowflake import ( "fmt" "sync" "time" ) // 算法模式如下: // | 1 | 41 | 10 |

原创 PyQt5 -- 安裝與發佈

人生苦短,我用python 這句話真的很對,現在市面上各種各樣的c++的ui界面庫,其中發展比較好的屬於Qt了,如果用c++開發的話,真的很慢。但是用python開發,調試快,發佈快,做一些小工具是再好不過了。 一、安裝pyqt5及相關的

原创 溫習回顧大學教材 -- 線性代數

第一章  行列式 1、背景 爲什麼要學習行列式?初中的數學裏,學的最多的是二元一次方程組求解,二元指的是x和y,一次指的是一次方,求解的思路就是消元法,將其中一個元素的係數縮放一致後進行消減,很容易就獲得x和y的值。 但是現實生活中,會遇

原创 FFMPEG4.1 - 時間戳相關的pts、dts與time_base

一、先說說time_base 1、time_base的定義: time_base的意思是時間刻度,即給定一個時間,比如1秒,然後分成25等份,那麼這個時間刻度就是1/25秒。 2、time_base的結構體 /** * 分數

原创 FFMPEG4.1 - 多圖片合併轉yuv

使用下面命令按照每秒1幀的速度播放 ffplay -video_size 100x100 -framerate 1 1.yuv #include <memory> #include <vector> extern "C" { #

原创 Golang - 多協程併發錯誤處理

源代碼 package cherr import ( "context" "fmt" "runtime" "sync" ) type Group struct { err error wg syn