0%

1
2
3
4
5
6
7
8
wget -O -  https://get.acme.sh | sh
. .bashrc
# 自动更新
acme.sh --upgrade --auto-upgrade
# 测试是否能成功获取
acme.sh --issue --test -d joking.vksir.zone -w /var/www/html --keylength ec-256
# 正式获取
acme.sh --issue -d joking.vksir.zone -w /var/www/html --keylength ec-256 --force
阅读全文 »

我是于菲,容貌俏丽的假小子,时常戴着一顶棒球帽,身穿夹克衫。

姐姐两年前死了,死在了林家大院。她是为了去寻找我们刘家的宝藏——没错,祖父去世时告诉我们,他姓刘,为了逃离文革制裁才隐姓埋名改成了“刘”;林家曾也是名门望族,家境殷实,他们刘家三兄弟分开隐居逃难前,将家里的资产埋藏在了刘家大院,后来刘家大院被林家买走,变成了林家大院,而资产,可能还在那里。

现在,公司举办一场《虚拟游戏》:七个人,两名凶手杀人,五位侦探找出凶手,胜者获得五万奖金。而这场杀人游戏将在虚拟世界进行,这个世界即是两年前的林家大院,公司号称虚拟世界的场景由历史现实 1:1 还原而来。虽然我不知道公司是怎么做到的,但这和我无关,我需要回到两年前,查询姐姐的死因,同时寻找祖父家的宝藏。

姐姐生前待我极好,曾经我并不是一个假小子,我也喜欢穿漂亮裙子,打扮得可可爱爱出门。但是姐姐走了,家里只剩下我一个,为了不让父母担心,我必须坚强起来,打扮阳刚一点,努力假装坚强。


阅读全文 »

Manjaro 还是好啊(或者说,Arch linux 还是好)。

  • 系统环境全部准备的好好的,想编译安装什么的,直接 make && make install 就行。换了 CentOS 7,那就是各种报错,缺这缺那,麻烦的很。
  • 强大的包管理系统。又说 CentOS,想装个麻烦的很,参照 PHP,想装个软件还得去找 ,或者你想编译安装?行,一大堆报错等着你呢!而 Manjaro,直接 yay -S php,真的不要太简单。

就这……这不就够了吗?要不是服务器不好装 Manjaro,我都不想在服务器上用 CentOS 了,装个软件着实麻烦(强迫症……不想用 docker)。

还是在 PC 上用用吧。

环境:?

阅读全文 »

闲话

2020WUHAN,闲在家没事做,之前也用C语言写了一个小的游戏脚本,只有黑框框,趁这个时间就想给它弄个界面出来。

笔者其实只有非常粗略的编程技术,仅仅略懂C语言和Java。游戏脚本需要非常精准的时间控制函数,而且需要模拟键盘输出,响应键盘输入,运行在windows上,考虑到java的效率问题,选择了C++进行开发。

听说QT和MFC都不错,其实也考虑过imgui,但是那个教程资源很少,有也基本都是英文的,看起来着实费劲。

QT

感觉qt很适合新手,折腾了一番,没一天的时间就把界面折腾出来了,也基本完善了所有功能。但是,qt很不靠谱!做好了程序没法导出exe。用windeployqt工具导出错,查了一下,貌似是现在的版本5.14.0,有这个bug,没法导出。

阅读全文 »

粗略实现了一下 requests 库。但后来想想,也必要自己造轮子,还是 resty 香!

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
package requests

import (
"encoding/json"
"errors"
"fmt"
"io"
"log"
"net/http"
"net/url"
"reflect"
"strings"
)

type Client struct {
Url string
Headers map[string][]string
Params map[string][]string
Content string
Data interface{}
Json interface{}
}

type Response struct {
Status string
StatusCode int
Body string
}

func (c Client) newRequest(method string) (req *http.Request, err error) {
// url
if reflect.ValueOf(c.Url).IsZero() {
err = errors.New(fmt.Sprintf("url is needed: client=%+v", c))
return
}
u, err := url.ParseRequestURI(c.Url)
if err != nil {
return
}

// params
if !reflect.ValueOf(c.Params).IsNil() {
var params url.Values = c.Params
u.RawQuery = params.Encode()
}

// body, headers
body := ""
if reflect.ValueOf(c.Headers).IsNil() {
c.Headers = make(map[string][]string)
}
if !reflect.ValueOf(c.Content).IsZero() {
body = c.Content
} else if !reflect.ValueOf(c.Data).IsValid() {
c.Headers["Content-Type"] = []string{"application/x-www-form-urlencoded"}
var bodyBytes []byte
bodyBytes, err = json.Marshal(c.Json)
if err != nil {
return
}
body = string(bodyBytes)
} else if !reflect.ValueOf(c.Json).IsValid() {
c.Headers["Content-Type"] = []string{"application/json"}
var bodyBytes []byte
bodyBytes, err = json.Marshal(c.Json)
if err != nil {
return
}
body = string(bodyBytes)
}

req, err = http.NewRequest(method, u.String(), strings.NewReader(body))
if err != nil {
return
}
req.Header = c.Headers
return
}

func (c Client) parseResponse(resp *http.Response) (response *Response, err error) {
defer func(Body io.ReadCloser) {
err := Body.Close()
if err != nil {
log.Printf("close response body failed: err=%s", err)
}
}(resp.Body)
body, err := io.ReadAll(resp.Body)
if err != nil {
return
}
return &Response{
resp.Status,
resp.StatusCode,
string(body),
}, nil
}

func (c Client) Request(method string) (response *Response, err error) {
req, err := c.newRequest(method)
if err != nil {
return
}
client := http.Client{}
resp, err := client.Do(req)
if err != nil {
return
}
return c.parseResponse(resp)
}

func (c Client) Get() (response *Response, err error) {
return c.Request("GET")
}

func (c Client) Post() (response *Response, err error) {
return c.Request("POST")
}

最近为饥荒群安排了 QQ 机器人 Stella ,并为其搭载了饥荒服务器管理模块,只要 @Stella 发送指令就可以快捷地对服务器进行操作。旨在使饥荒服务器更易于管理,降低操作门槛,让每个人都能参与使用,同时减轻服务器管理者的负担。

以下,是服务器管理命令的简明文档。

须知

  • Stella 是 Q 群机器人,发送指令必须先 @Stella,然后输入指令。
  • 输入指令必须以 # 开头。
  • 服务器名见公告,当前只有 极光矮星 两台服务器搭载了此功能。
阅读全文 »

眼睛有点疼,但看完了还是要写一写,明天周一就更没时间写了吧?

86 战区——也是唯一一个战区。

白种人把持共和国,居住在 1-85 区,歌舞升平;其它色人种被赶到 86 区,被迫同入侵者展开战斗。

白种人对内称无人阵亡,边境战线连日大捷,蛊惑群众——其实他们这么说也没错,因为 86 在他们看来,不是人,只是「猪」。86 被迫保卫「祖国」,他们是可以放弃的,只是没有。

战争已经持续了很多年,86 也死得差不多了,现在在战场上的基本都是少年(少年包括男女),估计要不了多久,86 就要灭绝了。

阅读全文 »

如果有一天,有人告诉你三个 0.1 加起来不等于 0.3 你会不会觉得很惊讶?但事实如此:

1
2
>>> 0.1 + 0.1 + 0.1 == 0.3
False

这是为什么呢?这就涉及到了浮点运算的精度问题

阅读全文 »

非常强大的子进程管理模块,你想要的它都有。

环境:Windows 10

上一篇文章讲的 Pexpect,功能是不错,但它有的 Subprocess 都能做到,且更加完美。

一个好的子进程管理需要满足什么功能需求?

  • 无阻塞 / 阻塞
  • 标准输入 / 输出
  • 信号发送 / kill
阅读全文 »