原创 用有向無環圖解決casbin循環繼承的問題

背景 在casbin學習記錄一文中, 我提到了casbin多重繼承的功能. 這裏多重繼承是說, 比如對某個資源R1, 在: grouping policy: g2 = _, _的 設計下 如下的實際數據表示: r1同時屬於r2和r

原创 linux命令之exec

exec命令我已知有兩種用法: 用提供的命令替換當前shell, 其實就是子進程替換父進程 創建/重定向文件描述符 “用提供的命令替換當前shell” $ help exec exec: exec [-cl] [-a nam

原创 freeradius之unlang語法學習

背景 最近用到freeradius做認證, 其中涉及到"unlang"語法, 整理一下. 參考: https://freeradius.org/radiusd/man/unlang.html 關於FreeRadius本人也不是很熟

原创 bash正則之BASH_REMATCH

偶然間發現了這個東西, 可以獲取捕獲組。 如: [root@localhost ~]# [[ '123,456,abc,000' =~ ([0-9]+) ]] [root@localhost ~]# echo ${BASH_REM

原创 golang之grpc入門

環境 go版本要求: go 1.6及以上 C:\> go version go version go1.12 windows/amd64 設置goproxy及go mod開啓(win cmd) set GOPROXY=h

原创 LDAP學習記錄

概述 LDAP是輕量目錄訪問協議,英文全稱是Lightweight Directory Access Protocol. 其分爲客戶端和服務端. 在服務端, 對外是一棵樹, 每個節點可以附加一些屬性, 這些屬性有內置的, 也有自定

原创 golang template使用變量

go語言中template API中變量的使用: package main import ( "html/template" "os" ) type ST struct { Status []StatusST } ty

原创 logstash之grok學習筆記

logstash之grok插件學習 環境 爲了方便, 使用docker版本的logstash直接跑實驗. OS: Ubuntu 18.04.1 64Bit Kernel: 5.0.0-37-generic logstash v7

原创 flowable的一些配置方法整理

背景 最近在研究BPM, 發現了flowable這個框架. 用的版本是docker版本的flowable/all-in-one, 當時的鏡像版本是6.5.0. 爲了圖省事, docker run以後, 我把容器中的tomcat目

原创 DEEPIN 20 BETA使用感受

背景 首先說下爲什麼不用windows,現在windows不是都有linux子系統了嗎? 如果你是搞編程的,那麼配置開發環境這一塊,在linux上絕對比windows好很多。 比如之前公司給的辦公電腦是win10家庭版,喂喂喂,我

原创 程序員段子集錦

集錦 我是一個程序員,手機一個月沒響過了,今天拿去修,結果維修師傅說手機沒壞,只不過一個多月沒人打電話進來罷了,我馬上就給師傅跪下了,求他別說了。 你不能說喜歡她,不能說討厭她,不能說不再認識她。她就像是代碼裏的Excep

原创 linux命令之jq

概述 jq是一個解析json的命令行工具. 用法 美化 $ echo '{"name": "test", "age": 33}' | jq . { "name": "test", "age": 33 } 獲取指定字段的

原创 Deepin系統卸載alsa-base後導致系統無法啓動

背景 筆記本上安裝了Deepin 20 Beta系統,但是發現播放音樂視頻都不出聲。網上一搜說什麼重新安裝聲卡驅動。 執行了這麼一條命令: sudo apt-get --purge remove alsa-base alsa-ut

原创 git commit hooks提示用戶輸入

今天定義git hook: prepare-commit-msg: 意圖是在用戶提交時, 在commit msg後加一行: issue #${issueID}, 以此關聯以redmine. #! /bin/sh

原创 golang之兩個結構體複製字段

實際工作中可能會有這樣的場景: 兩個結構體(可能類型一樣), 字段名和類型都一樣, 想複製一個結構體的全部或者其中某幾個字段的值到另一個(即merge操作), 自然想到可以用反射實現. package main import "