Deskmin H470 半年使用体验

今年4月份组装了一台黑苹果放公司, 配置为deskmini h470/i7 10700/64G/1TSSD, 原来那台2015款的macbook pro就开会的时候用用了.

系统很稳定, 几乎没有异常重启过. 遇到的小问题有几个:

  1. 接4k显示器的时偶尔会间歇黑屏, 手动进入睡眠在唤醒后似乎可以解决这问题?
  2. 有一次公司停电后重启后蓝牙失效, 不知到是不是因为天线没有接好的原因, 拆机把天线的螺丝拧紧后蓝牙又好了
  3. 有一阶段发现系统每次唤醒后网速变得很慢, 起初以为是网卡的原因, 后来发现是项目程序在上传文件把带宽给用完了, 为这问题还折腾了好久🤣 . 

一开始买的网卡是cs2两天线的版本,后来又换成了2cs 三天线版本, 2cs版本的话天线不能买的太粗, 不然放不下, 我是淘宝买了两根粗的加自带的一根天线.

EFI使用的是这为大佬的: https://github.com/paranoid2006/ASRock-Deskmini-H470-Hackintosh

有了上次的安装经历, 这次的安装过程就很简单了, 制作usb安装盘->替换掉安装盘里的efi->安装系统->系统安装成功后在替换系统的efi->修改三码->完成.

Openwrt中Firewall - Custom Rules fwmark命令不起作用的问题

路由器设置了透明代理, 但是每次重启路由器后代理就是失效了, 发现Custom Rules中ip rule add fwmark 1 table 100 这个命令不知道啥原因在重启后会被清除, 导致代理失败.

解决办法就是编辑 /etc/config/network

添加以下内容

1
2
3
4
5
6
7
8
9
10
config rule
option mark '0x1'
option lookup '100'

config route
option interface 'loopback'
option target '0.0.0.0'
option netmask '0.0.0.0'
option table '100'
option type 'local'

代替Custom Rules的这两条命令:

1
2
ip rule add fwmark 1 table 100
ip route add local 0.0.0.0/0 dev lo table 100

参考:

AWS S3 Static Website Hosting 404

公司的前端项目是以静态化网页的方式部署在aws s3上的, 由于前端项目是用react写的, 页面的路由是前端代码控制,页面实际是不存在于s3中的, 所以每次刷新网页的时候控制台会产生一条404错误, 研究了下这个错误可以在cloudfront那里修复.

解决办法:
Cloudfront->选择项目的cdn->Error Pages->Create custom error response

1
2
3
4
Http error code      -> 404
Custom error resonse -> Yes
Response page path -> /index.html
Http Response code -> 200:OK

Custom error response

Github Actions动态密钥名称

test.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
name: LS

...

jobs:
deploy:
runs-on: ubuntu-latest

steps:

- name: Update and restart server
uses: appleboy/ssh-action@v0.1.4
with:
host: ${{ secrets[format('{0}_HOST', github.workflow)] }}
username: ${{ secrets[format('{0}_USER', github.workflow)] }}

比如workflow的名称为LS, 密钥名称就为:

1
2
3
with:
host: ${{ secrets['LS_HOST'] }}
username: ${{ secrets['LS_USER'] }}

Spring Data JPA保存jsonb类型数据

创建表

1
2
3
4
5
6
7
CREATE TABLE test
(
id integer NOT NULL
CONSTRAINT test_pk
PRIMARY KEY,
test_data jsonb
);

定义方法

1
2
3
4
5
6
7
8
9
@Modifying
@Query(
value = "INSERT INTO test (id, test_data) VALUES (:id, CAST(:testData AS JSONB))",
nativeQuery = true
)
fun saveTest(
@Param("id") id: Long,
@Param("testData") testData: String
): Int

调用代码

1
2
3
4
5
6
7
val id = 1L
val testData = listOf("1", "2", "3")
val testDataJsonStr = ObjectMapper().writeValueAsString(testData)

transactionTemplate.execute {
repository.saveTest(id, testDataJsonStr)
}

Terraform connection ssh private key用法

base64 encode一下private key:

1
cat ~/.ssh/your_private_key | base64

connection中decode一下:

1
2
3
4
5
6
7
connection {
type = "ssh"
user = "admin"
private_key = base64decode(var.private_key)
host = self.public_ip_address
timeout = "3600s"
}

MIUI系统下Tasker保持后台常驻的方法

之前一直是用苹果的短信同步功能来同步短信的,期间老是出现一些莫名其妙不能同步短信的问题,最近实在是受不了这问题了,打算换到用android备用机来转发短信。

一开始用的是ifttt来同步短信的,一切运行正常,唯一的缺陷是iftt同步短信会有大概30秒左右时间的延时,有点接受不了。
后来开始用tasker来转发短信,尝试了下效果比ifttt好,几乎没有延时,但遇到一个问题就是tasker不能常驻后台,参考了官网的方案也没有解决这问题,研究了两天发现还有两个地方忘记了设置,在这里记录一下。

测试环境 MIUI 12.0.9

MIUI设置

将Tasker加到白名单

手机管家 -> 优化加速 -> 设置 -> 锁定任务 -> 将Tasker添加到已锁定任务

1.png
2.png
3.png
4.png

关闭智能场景省电

手机管家 -> 省电与电池 -> 场景配置 -> 睡眠模式 -> 关闭

a.png
b.png
c.png
d.png

其他设置

Terraform multiple line script example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
resource "null_resource" "cluster" {

connection {
type = "ssh"
user = "admin"
private_key = base64decode(var.private_key)
host = aws_lightsail_instance.lightsail.public_ip_address
timeout = "3600s"
}

provisioner "local-exec" {
command = <<EOT
echo "{\"host\":\"${random_string.subdomain.result}\",\"type\":\"A\",\"answer\":\"${aws_lightsail_instance.lightsail.public_ip_address}\",\"ttl\":300}" | \
curl "https://api.name.com/v4/domains/${var.name_domain}/records" \
-s \
-X POST \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-u "${var.name_username}":"${var.name_token}" \
-d @-
EOT
}

}

Chrome清除DNS缓存

  1. chrome://net-internals/#dns -> “Clear host cache”
  2. chrome://net-internals/#sockets -> “Flush socket pools”

macOS安装配置Podman 2.x

macOS环境下的podman只是客户端,server端实际运行在linux环境下,所以需要安装linux虚拟机。

安装

1
2
3
brew install virtualbox
brew install vagrant
brew install podman

配置虚拟机

新建个文件夹,里面创建Vagrantfile文件,内容如下:

1
2
3
4
5
6
7
8
Vagrant.configure("2") do |config|
config.vm.box = "generic/fedora32"
config.vm.hostname = "fedora"
config.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
vb.cpus = 1
end
end

启动虚拟机

vagrant up

配置fedora

安装podman server端

1
2
3
4
sudo dnf -y install podman
systemctl --user enable --now podman.socket
sudo loginctl enable-linger $USER
sudo systemctl enable --now sshd

验证安装是否成功

1
podman --remote info

查看虚拟机ssh配置

vagrant ssh-config

podman客户端配置

添加连接

podman system connection add baude –identity /Users/chen/vm/fedora/.vagrant/machines/default/virtualbox/private_key ssh://vagrant@127.0.0.1:2222/run/user/1000/podman/podman.sock

替换docker

1
alias docker=podman

参考