Read and Parse JSON With Rust

主要讲讲 Rust 是如何处理 JSON 格式/文件的。 我的需求主要如下: 从一个远程地址下载 JSON 文件,保存到本地 读取这个 JSON 文件 对这个 JSON 文件内容进行搜索匹配 返回搜索结果 本文章的内容主要是集中讲讲第 2 步的内容。 首先需要解析 JSON 格式如下: { "0100000011D90000": { "bannerUrl": "https://img.../37fdb...f83a.jpg", "category": [ "Adventure", "RPG" ], "description": "Welcome to the Sinnoh region! ", "developer": null, "id": "0100000011D90000", "isDemo": false, "language": "en", "name": "Pok\u00e9mon\u2122 Brilliant Diamond", "nsuId": 70010000039950, "numberOfPlayers": 1, "publisher": "Nintendo", "rank": 30712, "ratingContent": [ "Mild Cartoon Violence", "Users Interact", "In-Game Purchases" ], "size": 7334789120, "version": 0 }, ....

July 19, 2022

Rust 基本知识

更多是从一个前端开发者的角度,来比较一下两门语言的区别,以助于更方便的入门。 基本类型(DataType) 多数情况下,基本类型直接代表了最底层的语言实现。 JavaScript 是弱类型,基本数据类型有以下 7 种: String Number BigInt Boolean Symbol ( ECMAScript 2016 新增 ) null undefined Rust 是 静态类型 ( statically typed ) 语言,也就是说在编译时就必须知道所有变量的类型。每一个值都属于某一个 数据类型 ( data type ),这告诉 Rust 它被指定为何种数据,以便明确数据处理方式。基本都属于两类数据类型子集:标量(scalar)和复合(compound)。 Integer (整数类型) 位长度 有符号 无符号 8-bit i8 u8 16-bit i16 u16 32-bit i32 u32 64-bit i64 u64 128-bit i128 u128 arch isize usize 每一个有符号的变体可以储存包含从 $-(2^{n-1})$ 到 $2^{n-1}-1$ 在内的数字,这里 $n$ 是变体使用的位数。所以 i8可以储存从 $-(2^7)$ 到 $2^7-1$ 在内的数字,也就是从 $-128$ 到 $127$ 。无符号的变体可以储存从 $0$ 到 $2^n-1$ 的数字,所以 u8 可以储存从 $0$ 到 $2^8-1$ 的数字,也就是从 $0$ 到 $255$。...

July 14, 2022

解决华擎 Z370M-Pro4 主板在 Unraid 无法获取风扇转速

主板型号:华擎 Z370M-pro4 安装了「Dynamix System Temperature」却发现怎样也获取不了主板的温度和风扇的转速。 经过一番资料搜索,大致确定问题如下: Dynamix System Temperature 非商业应用,实际上能够校验的主板不多 coretemp 不支持 ITE IT8686E Super IO Sensors 华擎的部分主板是 nct6683 感应器,只能通过手动加载 mod 处理 知道了问题,那么解决起来也简单,打开终端手工加载一下驱动即可: $ modprobe coretemp $ modprobe -r nct6683 $ modprobe nct6683 force=1 然后回到 了「Dynamix System Temperature」 看看是不是已经可以正常了。 –EOF– 参考资料: 温度检测插件无法检测到主板风扇的转速 Unraid插件篇—重点解决ITE IT8686E芯片驱动无法获取阵列风扇信息

March 16, 2022

How to Install Seafile Pro and Use Caddy Proxy Fronted on Ubuntu 18.04

读完这篇文章,你应该能完成安装以下软件: python & python-pip caddy mysql-server jre seafile-pro ``` 注意:如果你想流程的跑 Seafile,机器配置建议: 1. 内存 >= 2GB 2. CPU >= 2 Core 环境准备 以下只针对 ubuntu 18.04 系统,在下一个 LTS 版本出来之前,应该都不会更新。 ...

March 4, 2022

win10 内网下如何开启远程登录

一开始找到一句这样的命令: wmic /node:[IP OR Domain] /user:[User] /password:[Password] PATH win32_terminalservicesetting WHERE (__Class!="") CALL SetAllowTSConnections 1 一直报错,没想明白是什么原因。 一番搜寻之后大致清楚了,最终的命令如下: wmic /node:[IP OR Domain] /user:[User] /password:[Password] RDTOGGLE WHERE (__Class!="") CALL SetAllowTSConnections 1 查阅资料: https://www.yuque.com/waiting4/fgq227/gfi4v7 https://blog.csdn.net/Aaron_Miller/article/details/109644865

March 25, 2021

Apple 微信公众号排版效果

近期到处都可以看到这个被刷屏的微信公众号案例。 https://mp.weixin.qq.com/s/ZYfIqwPNbHVepSyJsLFk-w 我们就来聊一聊怎么实现的,说起来也不复杂,主要就是利用 SVG 的动画效果 + 创意达到了这么酷炫的效果。 涉及到也只有两个动画元素 opacity 和 height 的变化。 微信图文内容本质上也是一段 HTML 代码,先看一个 demo 这是一篇正常的图片,只不过是全图片排版的。 ...

March 25, 2020

SFTPGo 安装配置指南

SFTPGo Full featured and highly configurable SFTP server software 一个全功能和高度可配置的SFTP服务器软件 这是 Github 上作者对这个软件的介绍,适用下来也名副其实,符合我的需求。但是因为官网上安装引导文档比较含糊,就记录一下自己折腾的过程。 以下的操作过程均基于一个全新安装的 Ubuntu 18.04.2 LTS (Bionic Beaver) 操作系统,按道理 Debian 适用。 因为我自己只想配置一个独立的 SFTP 服务器,利用 SFTPGo 来协助管理账号,所以没有适用 MySQL / PostreSQL 之类的数据库,而选用了 SQLite 3.x. 版本:0.9.0 版本:0.9.4-dev 安装 SFTPGo 需要的系统环境 需要 Go 1.12 版本以上 需要一个数据库 ( MySQL / PostreSQL / SQLite ) 如果需要运行 cli 测试脚本,还需要 Python 环境和 Request 库。 Git 命令 $ sudo add-apt-repository ppa:longsleep/golang-backports $ sudo apt update $ sudo apt install golang-go sqlite3 python3 python3-pip git SFTPGo 安装 很简单,只需要执行以下命令: $ go get -u github.com/drakkan/sftpgo 然后在你的 $GOPATH/bin/ 下找到 sftpgo 命令,如果你不知道你的 $GOPATH 目录,请执行 go env 查看你的环境变量。 这样就算安装完成了,但是具体要使用的话,还需要简单配置一下。 ...

August 19, 2019

Caddy 安装配置指南(LCMP)

0. 什么是 Caddy Caddy 服务器是一个开源的,使用 Golang 编写,支持 HTTP/2 的 Web 服务端。它使用 Golang 标准库提供 HTTP 功能。 Caddy 一个显著的特性是默认启用HTTPS。它是第一个无需额外配置即可提供 HTTPS 特性的Web 服务器。 以下是基于 Ubuntu 18.04 的安装说明: 1. 安装 你可以直接从 Download Caddy 这里下载,选择好的你平台和插件就可以直接下载运行了。 当然,我比较推崇第二种方式,就是使用 https://getcaddy.com/ 的脚本安装。 官方不推进使用 root 权限来安装运行 caddy,所以我们直接使用普通用户权限执行以下命令即可。 $ curl https://getcaddy.com | bash -s personal ...

July 23, 2019

Caddy 泛域名配置指南

从 Automatic HTTPS - Caddy 文档得知,Caddy 是支持配置 *.fun2ex.com这样的泛域名格式的。 直接参考文档的配置,/etc/caddy/Caddyfile 初始配置如下: *.fun2ex.com { tls { dns dnspod } root /var/www/html } 我自己用的是 DNSPOD,具体的支持 DNS 服务商可以直接从文档查看。 接下来要设置 DNSPOD Auth Api 的环境变量,具体环境变量值可以从 Automatic HTTPS - Caddy 找到。 因为我用的是 systemd 来管理 caddy 进程,所以直接编辑 caddy 的 service 文件就行: sudo vim /etc/systemd/system/caddy.service 找到 Environment= 这一行,加上环境变量的值,如要添加多个,使用空格分割: ; Letsencrypt-issued certificates will be written to this directory. Environment=CADDYPATH=/etc/ssl/caddy DNSPOD_API_KEY='$id,$hash_key' 让我们重启试试: sudo systemctl restart caddy sudo systemctl status caddy 未完待续…...

September 29, 2018