Lua 中的三目运算

在看 skywind3000 大神写的 z.lua 时发现了神秘写法: os.argv = arg ~= nil and arg or {} os.path.sep = windows and '\\' or '/' 不需要怎么思考就能知道这个是三目运算。但是在我认知中,Lua 是不支持三目运算符的,定睛一看才发现这个是通过 Lua 布尔运算中的短路特性模拟的三目运算。 ...

2023 2月 09 · 2 分钟 · vaaandark

用 Rust 重写星际译王

我经常有在终端查单词的需求,之前使用的是自己写的网络爬虫,原理是构造网址 “https://www.youdao.com/result?word={}&lang=en" 并访问,再通过解析 Html 文件获得单词解释。一个朋友说他用的是 sdcv ,星际译王的终端版本,可以支持离线词典。我也时常脱机工作,对离线词典的需求也不小,所以打算自己写一个支持 StarDict 格式离线词典的软件。 ...

2023 1月 25 · 5 分钟 · vaaandark

Mailx 和 Swaks 的使用

按照 Mailx 自己的介绍,它是一个增强了的 Mail 命令,提供了更多的功能。 常规用法是: mailx -s "{{subject}}" {{to_addr}},通过配置之后可以使用邮箱运营商的服务器发送邮件。 ...

2023 1月 18 · 1 分钟 · vaaandark

SQLite 入门(持续更新)

最近想写一个小工具,需要用到 SQLite 。之前只会一点点的 INSERT 和 DELETE ,现在想正式入门。 点命令 点命令不以 ; 结束,它们一般并不直接操作数据库。 可以使用 .help 来看可以使用的点命令。 ...

2023 1月 05 · 1 分钟 · vaaandark

内联汇编

高中第一次看到在 C 语言中嵌入汇编语言时,我就觉得它非常好玩,到大学刚开学的时候,我甚至有使用它的需求,可惜直到现在我才抽出时间开始学习它。 分类 在 GNU 的 GCC 中,内联汇编被分为两类:Basic asm 和 Extended asm 。 ...

2023 1月 02 · 6 分钟 · vaaandark

校园网自动认证

自己的 Wi-Fi6 漏油器用着还行,校园网带宽可以跑满,但是我的这个型号并不能刷 openwrt ,所以不能 ssh 连接,更不能在上面跑同学们写的那些自动认证脚本。 去年折腾 Arduino 和 nodemcu 时想到可以利用 esp8266 的联网功能让它来代替进行认证工作。 ...

2022 11月 25 · 1 分钟 · vaaandark

量子计算机

Representation of Data Qubits A bit of data is represented by a single atom that is in one of two states denoted by $\ket0$ and $\ket1$. A single bit of this form is known as a qubit 在量子计算机中,一个原子可以通过 $\ket0$ 和 $\ket1$ 其中之一的状态来表示一个比特位的数据。一个形如这样的比特位被称为量子位。 ...

2022 11月 21 · 4 分钟 · vaaandark

物理双偏振实验画图

上次物理实验做的是双偏振,实验资料中推荐使用 origin 画图,我既不想使用 Windows 也不想多下载一个软件,因此我打算用 matplotlib 画图。 代码 第一个实验画图是很简单的线性回归计算: ...

2022 11月 20 · 2 分钟 · vaaandark

ARM与80X86的异同

今天初步认识了 ARM 汇编。 CPU 内寄存器 aarch64 有 31 个 64 位通用寄存器,它们的名字是为 xn(n 为 0-30 的整数),不像 80X86 一样暗示了它们的用途。 类似 rax 和 eax 的关系,它们对应的 32 位寄存器叫做 wn(n 为 0-30 的整数)。 ...

2022 11月 08 · 2 分钟 · vaaandark

QEMU配置openEuler的aarch64开发环境

还是计算机系统基础,即将对 arm 架构展开学习,使用的是华为的打开欧拉(openEuler)操作发行版。 进入镜像 首先下载虚拟机镜像,老师发的我安装不了,就在清华的镜像站下载了。 $ aria2c -x 15 -s 2 "https://mirrors.tuna.tsinghua.edu.cn/openeuler/openEuler-20.03-LTS/virtual_machine_img/aarch64/openEuler-20.03-LTS.aarch64.qcow2.xz" 先调整一下镜像的磁盘大小。 $ qemu-img resize openEuler-20.03-LTS.aarch64.qcow2 +20G 启动镜像,注意需要使用引导文件。 qemu-system-aarch64 -m 4096 \ -cpu cortex-a57 \ -smp 4 \ -M virt \ -bios edk2-aarch64-code.fd \ -hda openEuler-20.03-LTS.aarch64.qcow2 \ -nographic \ 配置网络 配置网络这部分,尤其是网卡那部分我不是很懂,基本上是照着教程来做。 ...

2022 11月 07 · 2 分钟 · vaaandark