原创 python 虛擬環境設置

參考下面的 shell 腳本設置 #! /bin/bash set -eu # generate python2.7 project # it's the first time that I generate project

原创 python repl 無法顯示中文或者報錯

嘗試設置環境變量 export PYTHONIOENCODING=utf-8 `

原创 ssh端口轉發(打洞)

local port forwarding 舉例來說, 工作中常見場景,一臺 mysql 數據庫 1.2.3.4:3306 在本地網絡環境中不通,不過在遠程開發機 1.2.3.5 上可以連通,通常需要 ssh 到 1.2.3.5上

原创 查看python進程運行棧

reference 首先保證進程運行機器上有GDB和pyrasite # Redhat, CentOS, etc $ yum install gdb pip install pyrasite 找到卡住的python進程ID,然

原创 golang 標準庫 http 的 client 爲什麼必須手動關閉 resp.Body

使用 golang http client 請求,我們通常是這麼幹的 resp, err := http.Get(...) if err != nil { .. } defer resp.Body.Close() 爲啥必須 re

原创 檢查環境變量設置

問題: 如何找到 LC_CTYPE 這個環境變量在哪兒定義的? 可以按照下面順序檢查 Some places to look first: System wide /etc/environment: specifically

原创 隨機提問 --- 持續更新

操作系統內核態運行佔用虛擬內存麼?爲什麼? https://www.quora.com/Does-the-Linux-kernel-have-its-own-virtual-address-space-like-every-use

原创 Atomic-Operations

原创 golang 標準庫 http client 超時設置

golang 官方提供的 http 包裏的 http client 可以通過一下兩種方法設置超時(其他一些精細的超時控制比如設置 transport 裏的 dial connect 的超時時間不在這裏討論)。 1 client.T

原创 既然有GIL了那麼爲什麼在python中多線程編碼時候還需要加鎖?

GIL 由於 python 解釋器(Cpython interpreter)不是線程安全(thread-safe)的,所以 Cpython interpreter 的實現中使用了GIL(global interpreter loc

原创 保留當前環境變量執行 sudo 操作

當執行 sudo "command" 或者 sudo bash -c "your command or scripts" 時候,你在當前執行的 interactive shell 上設置的環境變量或者定義在自己的 login

原创 數字簽名與認證

一些基礎 RSA 密鑰對(key pair) 生成私鑰 openssl genrsa -out private.pem 2048 由私鑰公鑰生成 openssl rsa -in private.pem -pubout -

原创 tcpdump 速查

basic tcpdump -nvvv -i any -n: 打印ip port, 而非hostname, portname -v: verbose, -vvv 三級 verbose -i:指定網絡interface 針對IP

原创 命令行(bash)併發請求(壓測)server

四個併發請求,持續執行 一行 while :; do for i in $(seq 4); do time PYTHONIOENCODING=utf-8 PYTHONHOME=venv http_proxy= venv/bin/p