-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.xml
262 lines (232 loc) · 24 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
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>CYRTO's Blog</title>
<link>https://cyrto.github.io/</link>
<description>Recent content on CYRTO's Blog</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<lastBuildDate>Sun, 29 Aug 2021 15:56:25 +0800</lastBuildDate><atom:link href="https://cyrto.github.io/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Zookeeper指南</title>
<link>https://cyrto.github.io/2021/08/zookeeper%E6%8C%87%E5%8D%97/</link>
<pubDate>Sun, 29 Aug 2021 15:56:25 +0800</pubDate>
<guid>https://cyrto.github.io/2021/08/zookeeper%E6%8C%87%E5%8D%97/</guid>
<description>数据结构 Zookeeper的数据模型与Unix的文件系统很类似,整体上是一棵树,每一个节点是一个ZNode,默认存储大小为1MB
应用场景 软负载均衡 在zookeeper中记录每台服务器的访问数,让访问数最少的服务器去处理这次请求 Zookeeper集群安装(虚拟机版本) 1.克隆3台centos虚拟机 2.修改hosts文件 vi /etc/hosts
1 2 3 4 5 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.157.128 node1 192.168.157.100 node2 192.168.157.101 node3 测试是否配置成功,可以在每个节点上执行
1 2 3 ping node1 ping node2 ping node3 3.书写xsync脚本和xcall脚本,用于集群管理 xcall脚本
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 #!</description>
</item>
<item>
<title>Java并发编程指南</title>
<link>https://cyrto.github.io/2021/08/java%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B%E6%8C%87%E5%8D%97/</link>
<pubDate>Sun, 15 Aug 2021 18:12:36 +0800</pubDate>
<guid>https://cyrto.github.io/2021/08/java%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B%E6%8C%87%E5%8D%97/</guid>
<description>ConcurrentHashmap设计思路 作为线程安全的map,ConcurrentHashmap在不同的jdk版本也有不同的实现
Jdk7 数据结构为 ReentrantLock+Segment+HashEntry,一个Segment中包含一个HashEntry数组,每一个hashEntry又是链表/红黑树结构
元素查询:二次Hash,第一次Hash定位到Segment,第二次Hash定位到元素所在的链表的头部
Segment分段锁继承了ReentrantLock,锁定操作的Segment,其他的Segment不受影响,并发度为Segment个数,
可以通过构造函数指定,数组扩容不会影响其他的segment
get方法无需加锁,volatile保证
JDK8 数据结构使用Synchronized + CAS + Node + 红黑树,Node和val和Next都用volatile修饰,保证可见性
查找,替换,赋值操作都使用CAS,在加锁方面只锁定链表的head节点,不影响其它元素的读写,锁粒度更细,效率更高,扩容时,
阻塞所有的读写操作,并发扩容
读操作无锁:Node的val和next用volatile修饰,读写线程对该变量互相可见,数据也用volatile修饰,保证扩容时被读线程感知
synchronized和ReentrantLock的区别 底层实现原理: synchronized是关键字属于JVM层面,monitorenter(底层是通过monitor对象实现,其中wait和notify等方法也依赖monitor对象)
ReentrantLock,Lock是JDk api层面的锁
使用方法: synchronized不需要手动释放锁,Jvm会自动让线程释放锁 ReentrantLock可以手动释放锁
等待是否可以中断:
synchronized不可中断,除非抛出异常或者正常运行完成
ReentrantLock可以中断,(通过设置超时方法tryLock,lockInterruptibly()代码块,调用interrupt可以中断)
加锁是否公平: synchronized是非公平锁
ReentrantLock默认是非公平锁,构造方法的可以传入true来配置fair,使其变成公平锁
锁绑定多个条件Condition synchronized没有该机制,只能notifyAll唤醒全部线程
ReentrantLock可以通过条件变量Condition实现分组唤醒,精确唤醒某些线程</description>
</item>
<item>
<title>MySQL主从复制</title>
<link>https://cyrto.github.io/2021/08/mysql%E4%B8%BB%E4%BB%8E%E5%A4%8D%E5%88%B6/</link>
<pubDate>Fri, 13 Aug 2021 21:30:25 +0800</pubDate>
<guid>https://cyrto.github.io/2021/08/mysql%E4%B8%BB%E4%BB%8E%E5%A4%8D%E5%88%B6/</guid>
<description></description>
</item>
<item>
<title>数据库锁理论</title>
<link>https://cyrto.github.io/2021/08/%E6%95%B0%E6%8D%AE%E5%BA%93%E9%94%81%E7%90%86%E8%AE%BA/</link>
<pubDate>Thu, 12 Aug 2021 15:20:15 +0800</pubDate>
<guid>https://cyrto.github.io/2021/08/%E6%95%B0%E6%8D%AE%E5%BA%93%E9%94%81%E7%90%86%E8%AE%BA/</guid>
<description>读锁(共享锁,S锁) 读锁的特点:
所有的线程都只能读,不能写
当前线程尝试写入,会直接抛出错误
其他线程尝试写入,会阻塞
1 2 3 4 5 -- 给mysql加表级别的读锁 locktables`tablename`read;-- 解锁 unlocktable 写锁(排他锁,X锁) 写锁的特点:
1 2 3 4 5 -- 给mysql加表级别的写锁 locktables`tablename`write;-- 解锁 unlocktable 总结: 读锁会阻塞写,但是不会阻塞读,而写锁,会把读和写都阻塞
分析表锁定的状态 可以通过检查table_locks_waited和table_locks_immediate状态变量来分析系统上的表锁定:
1 showstatuslike&#39;table%&#39; table_locks_immediate:表级别锁的次数
table_locks_waited:出现表级锁竞争而发生的等待的次数(不能立即获取锁的次数,每等待一次锁值加1),越高说明有严重的表级别锁竞争
行锁 innodb默认的update语句就是行锁,一个事务更新某一行,未提交之前,另一个事务再去更新这一行会阻塞,本地测试需要 set autocommit = 0
索引失效会导致行锁变成表锁,比如 查询字段的字符串不写单引号,导致发生隐式类型转换,这样会导致行锁退化成表锁
查看innodb的行锁状态 1 2 3 4 5 6 7 8 9 showstatuslike&#39;innodb_row_lock%&#39;;Innodb_row_lock_current_waits:当前正在等待锁定的数量Innodb_row_lock_time:从系统启动到现在锁定的总时间长度Innodb_row_lock_time_avg:每次等待所花平均时间Innodb_row_lock_time_max:从系统启动到现在等待最长的一次所花的时间Innodb_row_lock_waits:系统启动后到现在总共等待的次数 间隙锁的危害 使用范围条件查询时,并请求S或者X锁时,innodb会给符合条件的已有数据记录的索引项加锁,对于键值再条件范围内的但并不存在的记录,叫做间隙(GAP)</description>
</item>
<item>
<title>深入理解JVM</title>
<link>https://cyrto.github.io/2021/07/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3jvm/</link>
<pubDate>Thu, 29 Jul 2021 17:56:57 +0800</pubDate>
<guid>https://cyrto.github.io/2021/07/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3jvm/</guid>
<description>相关命令 jps JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程
1 2 3 4 5 6 7 8 9 10 11 usage: jps [--help] jps [-q] [-mlvV] [&lt;hostid&gt;] Definitions: &lt;hostid&gt;: &lt;hostname&gt;[:&lt;port&gt;] -? -h --help -help: Print this help message and exit. -q 只显示pid,不显示class名称,jar文件名和传递给main 方法的参数。 -l 输出应用程序main class的完整package名 或者 应用程序的jar文件完整路径名。 -m 输出传递给main方法的参数 -v 输出传递给JVM的参数 用法:
1 2 3 4 5 6 &gt; jps -l 1896 jdk.jcmd/sun.tools.jps.Jps 11292 15548 20444 org.jetbrains.jps.cmdline.Launcher jinfo jinfo可以输出java进程、core文件或远程debug服务器的配置信息。可以使用jps -v替换</description>
</item>
<item>
<title>生成对抗网络GAN</title>
<link>https://cyrto.github.io/2021/07/%E7%94%9F%E6%88%90%E5%AF%B9%E6%8A%97%E7%BD%91%E7%BB%9Cgan/</link>
<pubDate>Sun, 25 Jul 2021 18:20:52 +0800</pubDate>
<guid>https://cyrto.github.io/2021/07/%E7%94%9F%E6%88%90%E5%AF%B9%E6%8A%97%E7%BD%91%E7%BB%9Cgan/</guid>
<description>概述 生成对抗网络(GAN)是一类的机器学习框架设计由苹果工程师伊恩古德费洛和他的同事们在2014年[1]的两个神经网络比赛游戏中的彼此(在一个形式零和博弈,其中,一个代理人的收益是另一个代理人的损失)。
给定一个训练集,该技术学习生成具有与训练集相同统计数据的新数据。例如,对照片进行训练的 GAN 可以生成新照片,这些照片对人类观察者来说至少是表面真实的,具有许多逼真的特征。虽然最初提出的形式生成模型的无监督学习,甘斯也被证明是有用的半监督学习,[2]全面监督学习,[3]和强化学习。[4]
GAN 的核心思想是基于通过鉴别器的“间接”训练,[需要澄清],它本身也在动态更新。[5]这基本上意味着生成器没有经过训练来最小化与特定图像的距离,而是欺骗鉴别器。这使模型能够以无监督的方式学习。
训练方法 在生成网络而产生的候选人辨别网络对其进行评估。[1]比赛以数据分布的方式运作。通常,生成网络学习从潜在空间映射到感兴趣的数据分布,而判别网络将生成器生成的候选与真实数据分布区分开来。生成网络的训练目标是增加判别网络的错误率(即通过产生判别器认为未合成的新候选者(是真实数据分布的一部分)来“愚弄”判别器网络)。[1] [6]
已知数据集用作鉴别器的初始训练数据。训练它涉及将训练数据集中的样本呈现给它,直到它达到可接受的准确度。生成器根据它是否成功愚弄判别器进行训练。通常,生成器以从预定义的潜在空间(例如多元正态分布)中采样的随机输入作为种子。此后,由生成器合成的候选由鉴别器进行评估。独立的反向传播程序应用于两个网络,以便生成器生成更好的样本,而鉴别器在标记合成样本方面变得更加熟练。[7]当用于图像生成时,生成器通常是反卷积神经网络,判别器是卷积神经网络。
GAN 经常遭受“模式崩溃”,即它们无法正确泛化,从输入数据中丢失整个模式。例如,在包含每个数字的许多样本的MNIST数据集上训练的 GAN可能会谨慎地从其输出中省略数字的子集。一些研究人员认为根本问题是一个弱判别网络,它没有注意到遗漏的模式,而其他人则将责任归咎于目标函数的错误选择。已经提出了许多解决方案。[8] GAN 的收敛性是一个开放的问题。[9]
GAN 是隐式生成模型,[10]这意味着它们没有明确地对似然函数进行建模,也没有提供寻找与给定样本对应的潜在变量的方法,这与基于流的生成模型等替代方案不同。
相关应用 StyleGAN StyleGAN是Nvidia研究人员于 2018 年 12 月推出的一种新型生成对抗网络(GAN) , 并于 2019 年 2 月提供资源。
StyleGAN 依赖于 Nvidia 的CUDA软件、GPU 和 Google 的TensorFlow。
StyleGAN 的第二个版本称为 StyleGAN2,于 2020 年 2 月 5 日发布。它去除了一些特征性伪影并提高了图像质量。
https://github.com/NVlabs/stylegan2
https://github.com/lucidrains/stylegan2-pytorch
案例:下面一些网站可以随机返回特定的训练数据,比如仿真的社交头像,马,化学分子结构式,艺术品等
https://thispersondoesnotexist.com
https://thisartworkdoesnotexist.com
https://thishorsedoesnotexist.com
https://thischemicaldoesnotexist.com/</description>
</item>
<item>
<title>如何进行mysql优化</title>
<link>https://cyrto.github.io/2021/07/%E5%A6%82%E4%BD%95%E8%BF%9B%E8%A1%8Cmysql%E4%BC%98%E5%8C%96/</link>
<pubDate>Sun, 25 Jul 2021 15:34:50 +0800</pubDate>
<guid>https://cyrto.github.io/2021/07/%E5%A6%82%E4%BD%95%E8%BF%9B%E8%A1%8Cmysql%E4%BC%98%E5%8C%96/</guid>
<description>七种JOIN理论 索引优化 什么是索引? 索引是一种已排序的,加快数据库查询速度的数据结构
优势:提高数据检索效率,降低数据库的IO成本,降低CPU的消耗
劣势:虽然提高了查询速度,但是会降低数据的更新速度,因为执行update的同时,不但要修改行数据,还要修改索引的指向
结论:索引需要在业务迭代过程中不断优化,删除重建是不可避免的
索引的分类 单值索引: 一个索引只包含一个列
唯一索引: 索引列的值必须唯一 ,主键索引就是唯一索引
复合索引:一个索引包含多个列
覆盖索引
聚簇索引
非聚簇索引
索引的结构 B-Tree索引
Hash索引
Full-text索引
R-Tree索引
哪些情况需要建立索引? 1.主键默认自动建立唯一索引
2.频繁作为查询条件的字段应该创建索引,比如银行系统的银行卡号,电信计费系统的手机号,微信的微信号
3.查询中跟其他表进行关联的字段,外键关系建立索引
4.查询中排序的字段,需要创建索引
5.选择单值索引还是复合索引?这个要根据实际情况讨论,如果是互联网高并发的场景下,倾向于建立复合索引
哪些情况下不需要创建索引? 1.频繁更新的字段不需要创建索引
2.where条件里面用不到的字段不创建索引
3.状态或者标识字段一般不建立索引,比如性别(一般只有男,女,未知三个状态),是否删除的标识字段(一般只有0,1两个状态)
索引的选择性:索引列不同值的数目跟索引列的总记录数的比值,这个值越大(越接近于1),说明建索引的效率就越高
explain分析教程 explain分析sql语句的执行计划,会得到如下的字段信息
id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra</description>
</item>
<item>
<title>让Golang应用作为Windows服务运行</title>
<link>https://cyrto.github.io/2021/04/04/%E8%AE%A9golang%E5%BA%94%E7%94%A8%E4%BD%9C%E4%B8%BAwindows%E6%9C%8D%E5%8A%A1%E8%BF%90%E8%A1%8C/</link>
<pubDate>Sun, 04 Apr 2021 16:00:58 +0800</pubDate>
<guid>https://cyrto.github.io/2021/04/04/%E8%AE%A9golang%E5%BA%94%E7%94%A8%E4%BD%9C%E4%B8%BAwindows%E6%9C%8D%E5%8A%A1%E8%BF%90%E8%A1%8C/</guid>
<description>Linux下可以使用systemd或者第三方的进程管理工具如supervisor,让某个应用以deamon进程的方式运行在后台,如果应用发生了异常退出后,可以自动重启
windows同样可以这样做,那就是将该应用程序注册成windows服务,比如用golang写了一个http api server,想让它运行在后台,同时又需要支持异常退出重启
就可以这样做。
相关库和工具: 官方的windows服务相关的包:golang.org/x/sys/windows
Github:
github.com/chai2010/winsvc github.com/kardianos/service github.com/billgraziano/go-windows-svc 这里我们采用的是chai2010开源的github.com/chai2010/winsvc
使用方法:
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 package main import ( &#34;flag&#34; &#34;fmt&#34; &#34;github.</description>
</item>
<item>
<title>Windows下编译Godot</title>
<link>https://cyrto.github.io/2021/04/03/windows%E4%B8%8B%E7%BC%96%E8%AF%91godot/</link>
<pubDate>Sat, 03 Apr 2021 09:51:46 +0800</pubDate>
<guid>https://cyrto.github.io/2021/04/03/windows%E4%B8%8B%E7%BC%96%E8%AF%91godot/</guid>
<description>Godot是一款多功能、跨平台的2D/3D开源游戏引擎。可运行于Windows、macOS、Linux等多种操作系统,创建的游戏则可运行于PC、Android、iOS和HTML5等平台运行, 由阿根廷Juan Linietsky和Ariel Manzur创立。
Github地址: https://github.com/godotengine/godot
官网地址:https://godotengine.org
开始编译 必备环境:
Visual Studio Community MinGW-w64 Python 3.5+ SCons 3.0 (可选的)yasm(for WebM SIMD optimizations) Scons这个工具比较小众,可以用SCoop或者pip比较方便的进行安装
1 2 3 scoop install scons # 或者 pip install scons 安装Scons之后,可以直接进行编译
1 2 3 scons platform=windows #带上-j参数,后面的数据表示开启多核编译,如果是8核机器,可以加上 -j8,可以大大加快编译速度 scons -j8 platform=windows 机器CPU是8核的i7-10875H,经测试开启8核编译,编译时间只需要3-4分钟,还在可以接受的范围。 编译完成后在bin文件夹下就可以找到windows的执行文件
参考资料:
https://docs.godotengine.org/en/latest/development/compiling/compiling_for_windows.html#requirements
</description>
</item>
<item>
<title>Trade相关名词解释</title>
<link>https://cyrto.github.io/2021/04/02/trade%E7%9B%B8%E5%85%B3%E5%90%8D%E8%AF%8D%E8%A7%A3%E9%87%8A/</link>
<pubDate>Fri, 02 Apr 2021 10:58:47 +0800</pubDate>
<guid>https://cyrto.github.io/2021/04/02/trade%E7%9B%B8%E5%85%B3%E5%90%8D%E8%AF%8D%E8%A7%A3%E9%87%8A/</guid>
<description>broker: 证券经纪商,代理商
交易 ask:卖家愿意出的最低价
bid:投标,是买家愿意出的最高价
maker:挂单
taker:吃单
期权 long put:购买认沽(看跌)期权
short put:卖出认沽(看跌)期权
long call:购买认购(看涨)期权
short call:卖出认购(看涨)期权
参考资料:
https://www.interactivebrokers.com/en/home.php
</description>
</item>
<item>
<title>Systemd使用指南</title>
<link>https://cyrto.github.io/2021/03/31/systemd%E7%AD%89%E8%BF%9B%E7%A8%8B%E5%AE%88%E6%8A%A4%E5%B7%A5%E5%85%B7%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/</link>
<pubDate>Wed, 31 Mar 2021 19:53:28 +0800</pubDate>
<guid>https://cyrto.github.io/2021/03/31/systemd%E7%AD%89%E8%BF%9B%E7%A8%8B%E5%AE%88%E6%8A%A4%E5%B7%A5%E5%85%B7%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/</guid>
<description>systemd 是一个 Linux 系统基础组件的集合,提供了一个系统和服务管理器,运行为 PID 1 并负责启动其它程序。功能包括:支持并行化任务;同时采用 socket 式与 D-Bus 总线式激活服务;按需启动守护进程(daemon);利用 Linux 的 cgroups 监视进程;支持快照和系统恢复;维护挂载点和自动挂载点;各服务间基于依赖关系进行精密控制。systemd 支持 SysV 和 LSB 初始脚本,可以替代 sysvinit。除此之外,功能还包括日志进程、控制基础系统配置,维护登陆用户列表以及系统账户、运行时目录和设置,可以运行容器和虚拟机,可以简单的管理网络配置、网络时间同步、日志转发和名称解析等。 由Lennart Poettering创建
配置文件 systemd的配置文件是.service为后缀的文件,默认有三个文件夹的位置,优先级从低到高依次排列
/lib/systemd/system /run/systemd/system /etc/systemd/system 示例:用systemd部署golang应用 在/etc/systemd/system目录下新建 xxxgoserver.service文件,写入如下内容
1 2 3 4 5 6 7 8 9 10 [Unit] Description=Systemd Test After=network.target [Service] User=nobody # Execute `systemctl daemon-reload` after ExecStart= is changed. ExecStart=/usr/local/bin/server -e beta [Install] WantedBy=multi-user.target 随后执行:systemctl start xxxgoserver 即可启动服务
参考资料</description>
</item>
<item>
<title>Cmake使用指南</title>
<link>https://cyrto.github.io/2021/03/29/cmake%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/</link>
<pubDate>Mon, 29 Mar 2021 11:21:38 +0800</pubDate>
<guid>https://cyrto.github.io/2021/03/29/cmake%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/</guid>
<description>Cmake CMake是个一个开源的跨平台自动化建构系统,用来管理软件建置的程序,并不依赖于某特定编译器,并可支持多层目录、多个应用程序与多个库。 它用配置文件控制建构过程的方式和Unix的make相似,只是CMake的配置文件取名为CMakeLists.txt
Linux上可以方便的支持Cmake,但是在Windows上需要额外的配置才能使用,而且Windows上的使用相对于Linux而言需要不少的人工配置,较为繁琐,在Windows的IDE上,使用MSVC的Visual Studio在2019版开始支持Cmake,Clion一直支持。
因为windows的配置比较繁琐,所以在开始构建时,最好在cmakeList.txt中加上
1 set(xxx_DEBUG ON) 该命令的作用是开启cmake构建过程中的DEBUG级别的日志,方便定位问题,比如需要在windows引入boost库,但是一直报错,可以开启相关日志进行问题定位。
1 set(Boost_DEBUG ON) find_package find_package指令会让cmake用其Findxxx.cmake文件对某一个依赖进行查找并且引入 比如
1 find_package(Boost 1.66.0 REQUIRED COMPONENTS system program_options) 会使用cmake安装目录下的FindBoost.cmake文件中的配置进行包查找
Clion自带的cmake,其目录下的Findxxx.cmake文件位置为:D:\JetBrains\CLion 2020.3.2\bin\cmake\win\share\cmake-3.17\Modules 可以类比去寻找
处理报错 开启DEBUG日志后可以显示错误日志栈
1 2 3 4 5 6 7 -- [ D:/JetBrains/CLion 2020.3.2/bin/cmake/win/share/cmake-3.17/Modules/FindBoost.cmake:2045 ] Searching for SYSTEM_LIBRARY_RELEASE: boost_system-mgw8-mt-1_75;boost_system-mgw8-mt;boost_system-mgw8-mt;boost_system-mt-1_75;boost_system-mt;boost_system-mt;boost_system-mt;boost_system -- [ D:/JetBrains/CLion 2020.3.2/bin/cmake/win/share/cmake-3.17/Modules/FindBoost.cmake:2100 ] Searching for SYSTEM_LIBRARY_DEBUG: boost_system-mgw8-mt-d-1_75;boost_system-mgw8-mt-d;boost_system-mgw8-mt-d;boost_system-mt-d-1_75;boost_system-mt-d;boost_system-mt-d;boost_system-mt;boost_system -- [ D:/JetBrains/CLion 2020.3.2/bin/cmake/win/share/cmake-3.17/Modules/FindBoost.cmake:2045 ] Searching for PROGRAM_OPTIONS_LIBRARY_RELEASE: boost_program_options-mgw8-mt-1_75;boost_program_options-mgw8-mt;boost_program_options-mgw8-mt;boost_program_options-mt-1_75;boost_program_options-mt;boost_program_options-mt;boost_program_options-mt;boost_program_options -- [ D:/JetBrains/CLion 2020.</description>
</item>
<item>
<title>Hugo使用指南</title>
<link>https://cyrto.github.io/2021/03/27/hugo%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/</link>
<pubDate>Sat, 27 Mar 2021 10:25:28 +0800</pubDate>
<guid>https://cyrto.github.io/2021/03/27/hugo%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/</guid>
<description>下载与安装 参考:https://gohugo.io/getting-started/quick-start
常用命令 创建一个站点 1 hugo new site sitename 添加一个主题 1 git submodule add add https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/ananke 发布内容 1 2 hugo new posts/newpost.md hugo new 2021/03/24/newpost2.md 启动本地服务器 1 hugo server -D 仅生成静态文件 1 hugo -D 部署到Github Pages 删除public目录 将public文件夹设置为git 子模块,并且链接到github pages的仓库 1 git submodule add -b master --force https://github.com/cyrto/cyrto.github.io.git public 重新生成public文件 1 hugo -D 推送到仓库 1 hugo -D Git submodule的用法 删除子模块</description>
</item>
<item>
<title>About</title>
<link>https://cyrto.github.io/about/</link>
<pubDate>Sat, 27 Mar 2021 09:09:06 +0800</pubDate>
<guid>https://cyrto.github.io/about/</guid>
<description>tendency: Nihilist</description>
</item>
<item>
<title>Helloworld</title>
<link>https://cyrto.github.io/articles/helloworld/</link>
<pubDate>Sat, 20 Feb 2021 13:50:54 +0800</pubDate>
<guid>https://cyrto.github.io/articles/helloworld/</guid>
<description>#test</description>
</item>
</channel>
</rss>