-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.xml
152 lines (130 loc) · 12.4 KB
/
index.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>大个子斌斌子</title>
<link>/</link>
<description>Recent content on 大个子斌斌子</description>
<generator>Hugo -- gohugo.io</generator>
<language>zh</language>
<lastBuildDate>Sat, 16 Jul 2022 17:54:18 +0800</lastBuildDate><atom:link href="/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>快速入门 Go lang</title>
<link>/posts/golang/start/</link>
<pubDate>Sat, 16 Jul 2022 17:54:18 +0800</pubDate>
<guid>/posts/golang/start/</guid>
<description>环境搭建 安装 下载地址
根据自己的系统下载对应的安装包安装即可。
我使用的是 Windows 标准包安装。
go1.18.4.windows-amd64.msi
安装完成后,需要将 go 环境变量添加到系统环境变量中,否则 go 命令将无法使用。
$ go version go version go1.18.4 windows/amd64 安装成后开始编程。
开发工具 推荐直接使用 Visual Studio Code 编辑器进行开发。
你好,Go lang package main import ( &#34;fmt&#34; ) func main() { fmt.Println(&#34;Hello, golang!&#34;) } Go 命令 Go 基础 包 包的基本概念 Go 使用 包 (package) 组织源代码 包(package) 包含多个 go 源码的集合,是一种高级的代码复用方案。 任何源代码必须属于某一个包,同时源码文件的第一行有效代码必须是 package 包名 语句,通过该语句声明自己所在的包。 包的特点 包的习惯用法 包的导入 语法 import &#34;包名&#34; 注意
import 导入语句通常放在源码文件开头包声明语句的下面; 导入的包名必须使用双引号包裹起来; 包名是从 GOPATH/src/ 开始计算的,使用 / 进行分隔。 单行导入 import &#34;包名1&#34; import &#34;包名2&#34; 多行导入 import ( &#34;包名1&#34; &#34;包名2&#34; ) 包方法的调用 package main import &#34;fmt&#34; func main() { fmt.</description>
</item>
<item>
<title>zerotier 异地组网</title>
<link>/posts/zerotier/start/</link>
<pubDate>Fri, 03 Jun 2022 11:47:28 +0800</pubDate>
<guid>/posts/zerotier/start/</guid>
<description>最近使用zerotier替换了frp来实现内网穿透,zerotier是一个软交换机,使用zerotier可以让多台内网机器组成一个局域网。
首先要安装 zerotier-one 这个软件包,如果是ArchLinux,直接运行:
$ sudo pacman -S zerotier-one 如果是Ubuntu/Debian/CentOS,则运行:
$ curl -s https://install.zerotier.com/ | sudo bash 注:如果是Windows或者macOS、Android、iOS等,那么可以在 https://www.zerotier.com/download/ 下载zerotier 之后就完成了安装,然后我们要启动zerotier,并且让他开机自启动,运行:
$ sudo systemctl start zerotier-one.service $ sudo systemctl enable zerotier-one.service 例如我有两台内网机器,于是都按照上面的描述进行了安装和启动。接下来要做的事情是到 https://my.zerotier.com/ 里注册帐号并且登录,然后创建一个Network,创建之后点到这个网络里,拉到最上面,选择 Private(私有网络) ,这样别人加入的时候就需要认证, 如果想改名字的话,改个名字,其他不用动。然后复制 Network ID,就是拉到最上面的时候可以看到的一个类似 82048a0632246d2c 的字符串。
然后在两台内网机器上执行:
$ sudo zerotier-cli join xxxxxxxxxxxxxxx 加入之后他们就启动了,但是还连不进我们创建的网络,因为我们选择了 Private(私有网络) ,我们还需要到 https://my.zerotier.com/ 上面对接入的机器打勾,拉到 Members 这一节,把前面的两个勾勾选上。
这个时候执行一下 ip a 你会发现多了一个叫做 ztuzethlza 或者类似名字的设备,还有IP地址,这就是zerotier组建的局域网的IP 地址,但是这个时候你如果直接连接另外一台机器的话可能会非常慢,所以为了加速,我们还需要一台在国内的,或者是在国外但是访问 速度相当快的机器做转发。
搭建中转机器(moon) 首先把中转机器按照上述步骤一起加入网络,然后执行:
$ cd /var/lib/zerotier-one/ $ sudo zerotier-idtool initmoon identity.</description>
</item>
<item>
<title>OpenCV 颜色识别</title>
<link>/posts/opencv/opencv-scan-color/</link>
<pubDate>Fri, 01 Apr 2022 11:47:28 +0800</pubDate>
<guid>/posts/opencv/opencv-scan-color/</guid>
<description> inRange 函数实现二值化功能,在阈值内的像素设置为白色(255),不在阈值区间的像素设置为黑色(0) scalar 定义颜色阈值 链接滤波,获取 Canny 边缘图片 使用 findContours 获取轮廓信息 计算轮廓面积 contourArea 计算轮廓长度 arcLength 计算多边形拟合approxPolyDP 最小覆盖矩形boundingRect </description>
</item>
<item>
<title>Windows 下 Visual Studio C++ 使用 OpenvCV</title>
<link>/posts/opencv/win-c++/</link>
<pubDate>Wed, 30 Mar 2022 11:47:28 +0800</pubDate>
<guid>/posts/opencv/win-c++/</guid>
<description>OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 [1] 它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
OpenCV用C++语言编写,它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令, 如今也提供对于C#、Ch、Ruby,GO的支持。
以下使用 OpenCV 4.5.5 2021年12月30日
1. 安装 OpenCV VC++ 库 现在完成后其实就解压程序到指定目录,我指定目录为D:\dev\opencv\4.5.5
安装完成后:
配置Windows环境变量 OPENCV_DIR=D:\dev\opencv\4.5.5\opencv\build Path 中添加如下变量
D:\dev\opencv\4.5.5\opencv\build\x64\vc14\bin D:\dev\opencv\4.5.5\opencv\build\x64\vc15\bin 2. 在 Visual Studio C++ 项目中使用 OpenCV 库 我使用的 Microsoft Visual Studio Community 2022 进行开发
2.1 新建一个控制台应用的 C++ 项目 2.2 设置VC++目录 $(OPENCV_DIR)\include
2.3 设置连接器 附件库目录$(OPENCV_DIR)\x64\vc\14\lib
2.4 编写 C++ 代码 编写代码:
#include &lt;iostream&gt;#include &lt;opencv2/opencv.hpp&gt; int main() { cv::Mat img = cv::imread(&#34;D:/dev/opencv/doc/imgs/A4-1.jpg&#34;); cv::resize(img, img, cv::Size(0, 0), 0.</description>
</item>
<item>
<title>Centos7 安装 MySQL 8.0</title>
<link>/posts/centos7-install-mysql-8/</link>
<pubDate>Sat, 30 Mar 2019 21:33:31 +0800</pubDate>
<guid>/posts/centos7-install-mysql-8/</guid>
<description>运行安装脚本
#下载安 sh 文件 curl -O https://gist.githubusercontent.com/faeli/4a041caaecc26ef7f245c899e9732754/raw/734cccbb5c60983a5605d884c4e38cda32a88e84/mysql-8.0.15-el7-x86_64-install.sh #运行 sh sh mysql-8.0.15-el7-x86_64-install.sh # 启动服务 sudo systemctl start mysqld # 查看root密码 cat /var/log/mysqld.log | grep password 2019-03-30T13:54:44.768968Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: #使用密码链接 mysql -uroot -p #链接成功后修改密码 mysql&gt; alter user user() identified by &#34;你要设置的新密码&#34;; 脚本说明 </description>
</item>
<item>
<title>Java 调用 Javascript 代码</title>
<link>/posts/java-call-javascript/</link>
<pubDate>Wed, 27 Feb 2019 16:36:10 +0800</pubDate>
<guid>/posts/java-call-javascript/</guid>
<description>JavaScript d:/tmp/calculator.js
var calculator = new Object(); calculator.add = function (n1, n2) {n1 + n2}; calculator.subtract = function (n1, n2) {n1 - n2}; calculator.multiply = function (n1, n2) {n1 * n2}; calculator.divide = function (n1, n2) {n1 / n2}; function test(a, b) { if (a === &#39;Number&#39;) return 1; else return b}; Java Code
import javax.script.Invocable; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; public class Main { public static void main(String[] args) throws Exception { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.</description>
</item>
<item>
<title>Redis Cluster</title>
<link>/posts/redis-cluster/</link>
<pubDate>Thu, 11 Oct 2018 20:21:31 +0800</pubDate>
<guid>/posts/redis-cluster/</guid>
<description>参考:
https://redis.io/topics/cluster-tutorial
https://redis.io/topics/cluster-spec</description>
</item>
<item>
<title>Let's Encrypt 免费证书的使用</title>
<link>/posts/lets-encrypt-ssl/</link>
<pubDate>Sun, 29 Jul 2018 23:14:09 +0800</pubDate>
<guid>/posts/lets-encrypt-ssl/</guid>
<description>Let&rsquo;s Encrypt 是一个认证机构(CA)。它可以提供免费的SSL证书,并且已经被大多数浏览器信任。 我们可以通过Certbot-auto自动化证书的安装和更新。
安装
wget https://dl.eff.org/certbot-auto # 下载到本地 chmod a+x ./certbot-auto # 添加可执行权限 ./certbot-auto --help all # 查看帮助 生成证书
./certbot-auto --nginx -d faeli.me -d www.faeli.me Let&rsquo;s Encrypt 签发的证书有效期只有90天。通过 ./certbot-auto renew 命令可以续签
编辑 crontab 文件 $ crontab -e # 每天凌晨1点更新 0 1 * * * /root/certbot-auto renew --quiet 参考文档:
https://certbot.eff.org/docs/install.html</description>
</item>
<item>
<title>Tomcat GET 请求中中文参数乱码</title>
<link>/posts/tomcat-params-encoding/</link>
<pubDate>Mon, 23 Jul 2018 22:18:11 +0800</pubDate>
<guid>/posts/tomcat-params-encoding/</guid>
<description>需要在 Tomcat 配置conf/server.xml中加入URIEncoding=&quot;utf-8&quot;
&lt;Connector port=&#34;8000&#34; protocol=&#34;HTTP/1.1&#34; connectionTimeout=&#34;20000&#34; redirectPort=&#34;8443&#34; URIEncoding=&#34;utf-8&#34;/&gt; </description>
</item>
<item>
<title>Hugo 使用记录</title>
<link>/posts/hugo-quick-start/</link>
<pubDate>Sun, 22 Jul 2018 20:45:38 +0800</pubDate>
<guid>/posts/hugo-quick-start/</guid>
<description>快速开始 安装 Hugo brew install hugo hugo version 创建一个网站项目 hogo new site quickstart 使用一个网站主题 cd quickstart git init git submodule add https://github.com/budparr/gohugo-theme-ananke.git themes/ananke # 修改文件使用主题 echo &#39;theme = &#34;ananka&#34;&#39; &gt;&gt; config.toml 添加文章文件 hugo new posts/my-first-post.md 运行 hugo server -D 浏览地址:http://localhost:1313
主题开发 </description>
</item>
<item>
<title>git commit 提交规范</title>
<link>/posts/git/commit-guide/</link>
<pubDate>Mon, 20 Feb 2012 03:00:16 +0800</pubDate>
<guid>/posts/git/commit-guide/</guid>
<description>1. 说明 本文主要介绍使用 git commit 提交代码时如何书写 message,及 message 对应规范,需严格遵循 message 规范。
2. message 提交格式 在执行 git add 后,执行 git commit 时,代码有变动,并需要特殊说明更改内容时,message 信息遵循下方定义的格式。(如没有特殊更改及说明可以使用:git commit -m &lt;message&gt; 提交代码)
message 格式
&lt;type&gt;(&lt;scope&gt;): &lt;subject&gt; &lt;!-- 空行 --&gt; &lt;body&gt; &lt;!-- 空行 --&gt; &lt;footer&gt; 字段 必须 说明 *&lt;type&gt; 是 提交类别 &lt;scope&gt; 否 用于说明 commit 影响的范围,建议填写影响的功能模块 *&lt;subject&gt; 是 commit 目的的简短描述,不超过50个字符 &lt;body&gt; 否(建议填写) 描述当前修改的行为详细信息或修改的目的。 &lt;footer&gt; 否 一般用于描述BREAKING CHANGE,在项目开发中一般不需要填写,组件研发的工程需要填写。 2.</description>
</item>
</channel>
</rss>