- 文章
一台磁盘空间仅 5GB 的 VPS 主机磁盘耗尽。用 du -sh /*
命令检查了一下,除了 swap 占用的 1GB 空间外,剩下就是 /var 目录占用了大头。其中,记录登录失败事件的日志文件 /var/log/btmp 就有上百兆大小。
使用如下命令清理日志和缓存,腾出了 1.5GB 左右的空间:
……
源站使用 Cloudflare 的 CDN 服务非常方便,只要将 DNS 托管在 Cloudflare 平台,然后设置 DNS 记录时,代理状态勾选「已代理」就行了。不过这一步操作无法选择源站使用的是 HTTP 协议还是 HTTPS 协议,依稀记得有个地方是可以设置的。翻了一遍操作菜单,在左侧导航菜单的「STL/TLS > 概述」里找到了,加密模式有如下四个选项:
不过这个设置是全局的,更改后会对当前站点下所有的 DNS 记录生效。Cloudflare 不支持针对每条 DNS 记录设置单独的加密模式,也不支持 HTTPS -> HTTP 的 Fallback 策略。
……
如果想在新项目中同时使用 Flask 后端和 Svelte 前端,可以通过 flask-svelte 进行创建。而对于已有项目,在不重构 Flask 项目目录结构的前提下,可以按照本文的方法集成 Svelte 前端。
假设现有的 Flask 项目目录结构如下:
/home/user/my-project/
├── app/
│ ├── __init__.py
│ ├── models.py
│ ├── views.py
│ ├── templates/
│ │ └── index.html
│ └── static/
│ └── style.css
├── tests/
│ └── test_app.py
├── venv/
├── setup.py
└── MANIFEST.in
在 my-project 下创建一个名为 frontend 的 Svelte 前端项目:
……
在循证医学中,会通过一些统计学指标来评估一种疾病诊断方法的有效性。比如在日常生活中经常听到的灵敏度、特异度、阳性预测值、阴性预测值,以及 ROC 曲线等。此外,这些指标也可以在计算机科学领域用于机器学习的模型评估。
以疾病诊断为例,一个人只存在有病(阳性)或没病(阴性)两种情况。对于这类二元分类模型,诊断(预测)结果分为四种:
……
自 2025 年 2 月发布 0.44 版后,Rye 项目再无更新。Rye 项目之后可能会不再更新,其功能将合并进 uv 项目中。
涉及 Python 环境及包管理的工具七七八八加起来不下于十几种,看得人眼花缭乱。以至于患有选择困难症的本人还在坚持使用最原始 pip + venv 来构建 Python 运行环境。为了与时俱进,经过多方比较,最后选择了 Rye 作为今后的主力生产工具了。
……
Windows Subsystem for Linux 是 Windows 上运行 Linux 环境的兼容层。WSL 有两个版本,分别是 WSL 1 和 WSL 2,后者现在是 Windows 默认安装的版本。两个版本在底层实现上有很大区别,WSL 1 通过 lxss.sys 和 lxcore.sys 这两个 Windows 内核驱动来模拟 Linux 内核,而 WSL 2 通过 Hyper-V 虚拟机托管运行了一个经过优化过的 Linux 内核,能够提供完整的 Linux 系统调用,并支持 systemd 和 IPv6。缺点是跨系统的文件系统访问性能比 WSL 1 差很多(但 WSL 2 的文件 IO 性能比 WSL 1 的更好)。因此,当使用 WSL 作为开发环境时,建议不要将源代码存放在 Windows 的文件系统下。
……
自 Windows Vista 和 Windows Server 2008 开始,操作系统界面默认的字体为 Segoe UI ,而 Windows XP 及之前的系统界面默认字体为 Tahoma 。不过 Segoe UI 字体的字形并不包含包括汉字在内的东亚文字。中文版 Windows 使用微软雅黑作为默认中文字体。
其他语言的默认字体见下表:
语言 | 字体 |
---|---|
简体中文 | Microsoft YaHei UI |
繁体中文 | Microsoft JhengHei UI |
日文 | Yu Gothic UI |
韩文 | Malgun Gothic |
希伯来文 | Gisha |
泰文 | Leelawadee |
不过相较于查表获取 Windows 系统的默认字体,使用 Windows API 来获取当前系统的默认字体会更加可靠。
……
在前文《试用跨平台 GUI 框架 HaxeUI》中提到了 OpenFL 的 TextField 在启用输入法时无法显示候选词列表的问题。经过一番摸索,发现了问题出在了 SDL 库的身上。
OpenFL 的底层基于 Lime ,而 Lime 的桌面后端又是基于 SDL 。OpenFL 默认使用的 SDL 代码位于 openfl/libsdl 。问题定位于源文件 SDL_windowskeyboard.c 中的 IME_init()
函数中,只要将第 373 行的代码注释掉,就可以正常显示输入法候选词列表了:
……
HaxeUI 是一款跨平台 GUI 框架,支持网页、桌面和移动端。 框架前端使用 Hexo 语言开发。框架后端使用图形引擎或者原生跨平台 GUI 框架,比如 OpenFL, NME, Kha,PixiJS, wxWidgets, Winforms 等。最终生成 C++ 代码编译成本地可执行文件或者 HTML 代码。在各种后端中,除了 wxWidgets 和 Winforms 使用原生组件外,其他都是使用图形引擎绘制或者生成 HTML 代码。
Haxe 也是一个比较有意思的语言。它本身不能进行本地编译,而是转译成其他语言,比如 Lua, PHP, Java, Python, C++, C# 等,也可以编译成 Neko 或 HashLink 虚拟机的字节码(详见 Haxe Compiler Targets)。Haxe 语言诞生于 2005 年,算是历史久远了,然而其社区却一直不温不火,网上也很难找到中文资料。 Haxelib 上的开发者提交的三方库数量和 Python 的 PyPi 相比,只能说是聊胜于无。
……
Free Pascal 支持交叉编译,理论上是可以在 Windows 平台上编译 Linux 可执行文件的,但是官方没有提供相关文档,且不建议这么做。除了使用虚拟机外,在 Windows 平台上还可以使用 WSL 来交叉编译 Lazarus 项目。
……