0%

概述

发现有一个工具叫Graphviz,类似于markdown,它使用dot标记语言来编写,能将其转换为图形。

准备工作

(非必需,文末有精简版下载地址)
下载并安装Graphviz
安装目录/bin添加到环境变量

阅读全文 »

题目

两个足够聪明的人玩轮流取石头的游戏,谁取到最后一个石头谁就赢了,他们一次只能取1个、3个、7个或8个石头,写一程序判断n个石头时先取的人是输还是赢。

输入格式:

一个整数n,其值不超过10000000。

输出格式:

如果先取的人赢,请以单独一行输出1,否则输出0。

输入样例:

这里是3组输入。

1
2
3
1
10
300

输出样例:

1
2
3
1
1
0
阅读全文 »

概述

使用HTTPS协议时需要输入账号密码,比较麻烦,虽然可以配置自动保存密码,但明文保存可能导致安全性的降低。
在部署博客时也收到了github的邮件提醒:

On July 1st, 2020, basic authentication using password to this endpoint will no longer work

故决定使用ssh密钥连接git

步骤

安装git bash

https://gitforwindows.org/

初始化

打开git bash,配置用户名和邮箱:

1
2
git config --global user.name author
git config --global user.email author@gmail.com

生成ssh key

1
ssh-keygen -t rsa -C "author@gmail.com"

回车设置为默认路径,然后输入两次密码(直接回车则密码为空)

在github中添加ssh key

打开https://github.com/settings/keys
id_rsa.pub内容填入即可

测试

执行

1
ssh -T git@github.com

输入密码验证,返回正确则说明配置完成。

建议

之后都使用git协议来克隆仓库
如:

1
git clone git@github.com:XhyEax/LeetCode.git

参考

vscode中利用git通过ssh连接github
git-ssh-config.md

步骤

在终端中执行

1
git config --global credential.helper store

然后重新打开VSCode

注意

这样配置的话,会在用户目录下生成.git-credentials文件,明文保存账号密码。
PS: 用户目录(Windows: C:/User/UserName,Linux: ~

关闭

编辑.gitconfig,删除以下内容

1
2
[credential]
helper = store

参考

vscode git提交总让输入用户名及密码

更新

caddy2配置反向代理

步骤

解析域名

申请SSL证书前,请务必提前解析好域名记录(解析后最好等一会,以全球生效)

申请证书

此处可使用Caddy自动申请的Let's Encrypt证书,个人使用的是CloudFlare的免费证书

编辑CaddyFile

使用其他证书

1
2
3
4
5
https://bd.xxx.com {
gzip
tls /root/xxx.crt /root/xxx.key
proxy / https://www.baidu.com
}

使用自动申请的证书

把tls选项改为邮箱(似乎不加也行):

1
2
3
4
5
https://bd.xxx.com {
gzip
tls xxx@xxx.xx
proxy / https://www.baidu.com
}

重启Caddy

1
service caddy restart

参考

利用 Caddy 轻松实现反向代理/镜像(支持自签SSL证书)

准备工作

python环境(已安装requests)

步骤

获取源地址

首先F12-Network,然后刷新一下页面。获取到当前文档页面的源地址,类似于
http://ebooks.crup.com.cn/t/xxxxx_output/web/xxxxx_opf_files/xxxxxxxxxxxxxxxxxxxx_1.swf
下划线后的数字对应页码。

安装程序包

需要安装requests用于请求文件,安装pillow用于合并pdf:

1
pip install requests pillow
阅读全文 »

报错原因

1.java指令默认在寻找class文件的地址是通过CLASSPATH环境变量中指定的目录中寻找的。
2.忽略了package的影响。加载一个类,是需要完整的类名,所以必须要把包名带上

解决方案

指定生成class文件的文件夹为classpath,执行java指令,例如:

1
java -classpath "D:\source\Java\Painter\bin" app.OpenGLApp

参考

控制台中运行java类提示”找不到或无法加载主类”错误的原因及解决方案

代码如下

(非递减排序)

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
sort:addi $sp,$sp,-20
sw $ra,16($sp)
sw $s3,12($sp)
sw $s2,8($sp)
sw $s1,4($sp)
sw $s0,0($sp)
move $s2,$a0
move $s3,$a1
move $s0,$zero
for1tst:slt $t0,$s0,$s3
beq $t0,$zero,exit1
addi $s1,$s0,-1
for2tst:slti $t0,$s1,0
bne $t0,$zero,exit2
sll $t1,$s1,2
add $t2,$s2,$t1
lw $t3,0($t2)
lw $t4,4($t2)
slt $t0,$t4,$t3
beq $t0,$zero,exit2
move $a0,$s2
move $a1,$s1
jal swap
addi $s1,$s1,-1
j for2tst
exit2:addi $s0,$s0,1
j for1tst
exit1:lw $s0,0($sp)
lw $s1,4($sp)
lw $s2,8($sp)
lw $s3,12($sp)
lw $ra,16($sp)
addi $sp,$sp,20
jr $ra
swap: sll $t1,$a1,2
add $t1,$a0,$t1
lw $t0,0($t1)
lw $t2,4($t1)
sw $t2,0($t1)
sw $t0,4($t1)
jr $ra

参考

计算机组成原理与设计(第五版) 机械工业出版社 第94页

步骤

查询当前内存

1
free -h

创建交换文件

1
2
touch /root/swapfile
dd if=/dev/zero of=/root/swapfile bs=1M count=4096

格式化交换文件

1
mkswap /root/swapfile

启用交换文件

1
swapon /root/swapfile

配置开机自动加载

/etc/fstab文件中添加:

1
/root/swapfile swap swap defaults 0 0

参考

Linux设置虚拟内存