米米的博客

做了一点微小的工作

如果要在网页上显示一些随机的语句,获得一些人生的经验,你会选择什么?
也许,一言是一个很好的选择,它可以提供一些动漫中的台词,或是网络上的各种小段子。
在前面的文章有趣的 Linux 命令行工具中提到的 fortune 命令或许也可以满足需求,pure-ftpd 就可以设置在连接成功时显示随机的来自 fortune 的语句。
那除此之外呢?历史上的今天是一个不错的方案。当你访问一些门户网站的首页,有时会看到这样的栏目。它也是一些百科全书网站,比如维基百科的传统。事实上,在 Mac 上就自带了一个小型的「历史上的今天」数据库,执行:

1
cat /usr/share/calendar/calendar.history

就可以看到。
这篇文章将介绍如何搭建一个提供「历史上的今天」信息的 API。

建立数据库

首先,建立 MySQL 数据库和数据表,用于存储爬取的信息。这里数据库和数据表名都以 event 为例。

1
2
3
4
5
6
7
8
9
10
CREATE DATABASE event;
USE event;
CREATE TABLE event (
id int(10) UNSIGNED PRIMARY KEY NOT NULL AUTO_INCREMENT,
type int(1) DEFAULT NULL,
year varchar(6) DEFAULT NULL,
date varchar(6) DEFAULT NULL,
info text DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
QUIT;

获取数据

数据来源是维基百科,使用 Python 爬取数据,并存入数据库中。项目地址:TodayInHistory-Crawler,可以打包下载所有文件。

下载程序源码后,进入目录并安装依赖:

1
pip3 install -r requirements.txt

config.py 中的 usernamepassworddbnametablename 分别是你的登录用户名、密码、数据库名和数据表名。将它们修改成和之前创建的数据库和数据表名一致。

然后,运行 spider.py,程序将会开始爬取数据。程序会用 try except 处理特殊字符(非 UTF-8 范围)的问题,并将失败的项目记录在 failed.txt 中。

查询数据

比较简单的方式是按照 json 格式进行输出,server.py 给出了一种使用 Python 的方案,运行后就可以访问 Flask 创建的服务器了。

阅读全文 »

本文将介绍一种在 macOS 上读写 NTFS 磁盘的方法,通过它可以方便的在不同系统中传输文件。默认情况下,macOS 是无法向 NTFS 磁盘写入的 —— 这个功能由于种种原因被禁用了。我们使用一种 Hack 的方法将其启用即可。

首先,打开磁盘工具,查看 NTFS 磁盘的设备路径。例如,disk3s1 就对应了 /dev/disk3s1。也可以通过执行

1
diskutil list

来查看 NTFS 磁盘的分区名,也就是 IDENTIFIER 这一列中对应的名字,例如 /dev/disk3s1

如果 macOS 已经通过只读模式挂载了 NTFS 磁盘,还需要先卸载它。在磁盘工具中选中硬盘并将其卸载即可。

随后,根据所使用的不同系统版本,可以使用不同的工具重新挂载 NTFS 磁盘。

macOS Monterey 及更早版本

在 Monterey 和更早的 macOS 上,可以利用系统自带的 mount_ntfs 工具来挂载 NTFS 磁盘。具体方法是,执行以下命令

1
2
sudo mkdir /Volumes/disk3s1
sudo mount -t ntfs -o rw,auto,nobrowse /dev/disk3s1 /Volumes/disk3s1

/dev/disk3s1 根据实际情况替换。这里的 nobrowse 是为了避免挂载上来的还是只读模式,但是它同时会导致磁盘不可见,也就是挂载后不会在桌面和 Finder 中显示,需要手动到 /Volumes 下打开。

如果一切正常的话,就可以愉快的使用了。

macOS Ventura 及之后的版本

在 Ventura 及之后的 macOS 上,mount_ntfs 被移除了,我们需要使用第三方工具才能够实现对 NTFS 磁盘的读写。一个免费的方案是 ntfs-3g,我们可以通过 Homebrew 安装它,然后手动挂载 NTFS 磁盘。具体方法是

1
2
3
brew tap gromgit/homebrew-fuse
brew install --cask macfuse
brew install ntfs-3g-mac

然后执行以下命令

1
2
sudo mkdir /Volumes/disk3s1
sudo ntfs-3g /dev/disk3s1 /Volumes/disk3s1 -olocal -oallow_other -o auto-xattr

这里的设备名同样需要根据实际情况替换。
需要注意,ntfs-3g 第一次启动时需要安装内核拓展,需要在系统偏好设置中允许安装,并重启系统。之后就可以正常使用了。


参考文章:How to Write NTFS Drives on macOS Monterey

本文更新于 2021 年 9 月 14 日:
原先介绍的方法需要修改 /sbin/mount_ntfs,不太优美。笔者找到了一个修改 /etc/fstab 的方法,可以在 macOS Big Sur 上使用。

本文更新于 2022 年 2 月 26 日:
修改 /etc/fstab 的方法在 macOS Monterey 上又不好使了,改为手动 mount

本文更新于 2024 年 1 月 18 日:
macOS Ventura 移除了 mount_ntfs,改为使用 ntfs-3g。

准备工作

下面列出了笔者测试成功的环境,使用其它的版本可能出现不可预料的情况。

硬件

  • 显卡
    根据 Tensorflow 官网上对于 GPU 支持的描述,需要 CUDA® 计算能力为 3.5 或更高的 NVIDIA® GPU 卡。GeForce 900 系列及更新的 N 卡都能满足这一点,如果不确定的话,可以在官网上查看:CUDA GPUs。笔者使用了一块 NVIDIA GeForce RTX 2070 进行测试。

  • 其它
    其它硬件达到主流配置即可。

软件

  • Windows 系统
    由于 macOS Mojave 的 N 卡驱动迟迟没有更新(据说是苹果已经抛弃了 N 卡,未来很有可能不会再更新驱动);并且 Tensorflow 官方已经不再推出适配 macOS 的 tensorflow-gpu 了,需要自己编译;因而使用 Windows 或者 Linux 系统会是更好的选择。笔者使用的是 Windows 10。

  • 显卡驱动程序
    在连接到网络时,Windows 10 会自动下载安装显卡驱动,但可能不是最新版本。建议通过 GeForce Experience 管理驱动程序。

  • CUDA
    tensorflow-gpu 依赖于 CUDA,需要到 NVIDIA 官网上的 CUDA Zone 下载。Tensorflow 官网中会给出支持的 CUDA 版本号,下载时选择对应的版本即可(例如 v10.0),因为最新的版本可能不被 tensorflow 所支持。历史版本可以在这里查看:CUDA Toolkit Archive

  • cuDNN
    cuDNN 的全称为 NVIDIA CUDA® Deep Neural Network library,是 NVIDIA 专门针对深度神经网络(Deep Neural Networks)中的基础操作而设计基于 GPU 的加速库。这也是一个重要依赖,需要准备好。其主页是 NVIDIA cuDNN,下载需要注册账号,不过也可以选择微信快捷登陆。同样需要注意的是,要正确选择与 CUDA 对应的 cuDNN 版本。

  • Python
    笔者使用的是 Python 3.7.0。建议从 Python 官网下载安装包,安装时记得勾选将 Python 添加到环境变量中,确保能够通过 PowerShell 执行 pythonpip 即可。Microsoft Store 中也有 Python,但是安装路径太长,可能在使用 pip 时遇到问题。

  • tensorflow-gpu
    安装 tensorflow-gpu 的方法也有很多,例如 Anaconda 或者 pip。如果不想折腾环境,直接从这里找一个 wheel 就行了:tensorflow-gpu · PyPI。需要根据自己的系统和 Python 版本选择,例如 tensorflow_gpu-1.13.1-cp37-cp37m-win_amd64.whl

安装

安装 CUDA

安装过程并不复杂。运行从 NVIDIA 官网上下载的 CUDA 安装程序,将其安装在默认目录下即可。以 10.0 版本为例,安装成功后,相关组件会出现在 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0 目录下。

安装 cuDNN

解压 cuDNN 的安装包,会得到一个文件夹,将其打开后,可以看到名为 binincludelib 的子目录。而在前面所说的 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0 目录下也有这样几个子目录。因此,直接将 cuDNN 的相关文件复制合并进对应的目录即可。

安装 tensorflow-gpu

以 PowerShell 为例,将 CUDA 相关组件添加至环境变量:

1
$Env:path=$Env:Path+";C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\extras\CUPTI\libx64;"

完成后,cd 进入下载的 whl 文件所在目录,使用 pip 安装即可

1
pip install tensorflow_gpu-1.13.1-cp37-cp37m-win_amd64.whl

pip 会自动下载所需的依赖。

运行

如果一切顺利,打开 Python,执行

1
2
3
4
import tensorflow as tf
hello = tf.constant("Hello, TensorFlow!")
sess = tf.Session()
print(sess.run(hello))

不报错的话,就安装成功了。


本文更新于 2020 年 12 月 8 日:
Tensorflow 2.0 的安装方式更加简单。在安装好支持的 CUDA(现为 v10.1)和 cuDNN 后,可以直接执行

1
pip install tensorflow

测试的方法是

1
2
3
import tensorflow as tf
tf.test.is_built_with_cuda()
tf.config.list_physical_devices("GPU")

如果提示动态库加载失败,可以重启计算机或手动设置环境变量。

在 WordPress 中,文章、用户的 ID 都是通过 AUTO_INCREMENT 分配的,如果要改变其值,可以在 wp_usermetawp_users 数据表中执行:

1
2
3
ALTER TABLE `wp_usermeta`
MODIFY `umeta_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=177;
COMMIT;

以及

1
2
3
ALTER TABLE `wp_users`
MODIFY `ID` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
COMMIT;

AUTO_INCREMENT 根据你自己的情况,修改为当前的行数即可。

对于存储评论信息的 wp_comments 也是类似的。

准备工作

下面列出了笔者测试成功的环境,使用其它的版本可能出现不可预料的情况。

硬件

  • 图形卡
    由于 Seus 光影对计算机的图形性能有较高的要求,笔者使用了一块 NVIDIA GeForce RTX 2070 显卡进行测试。根据作者的描述,Seus 光影使用的是 Path Tracing 技术,而不是 Ray Tracing,因此 20 系和 10 系显卡对光影的渲染没有本质区别。你也可以放心地选择其它型号的 N 卡,即使是上古核弹,运行起来也不会有影响。不过,根据一些 Minecraft 论坛的反馈,A 卡和 I 卡可能无法支持此光影效果。

  • 其它
    Minecraft 对性能没有什么苛求,如果上卡吧标配的话,流畅玩耍一定没有什么问题。

软件

  • Windows 系统
    由于 macOS Mojave 的 N 卡驱动迟迟没有更新(据说是苹果已经抛弃了 N 卡,未来很有可能不会再更新驱动),因而需要在其它系统上运行。笔者使用的是 Windows 10。Linux 原理上也是可以的,不过笔者并没有进行尝试。

  • Java 环境
    Minecraft Java 版自然需要 Java 的环境。由于 HMCL 启动器对 Java9 及以上版本的支持不佳,笔者推荐安装 Java SE 8。可以到 Oracle 官网下载。测试使用的是 JDK1.8.0_211。

  • HMCL 启动器
    你可以从 GitHub 上获取 HMCL 启动器,下载 exe 版本即可。笔者使用的是目前的最新版本 3.2.129,后面的安装步骤也以该版本为例。

  • 光影
    Seus 官方网站可以下载免费的光影包。推荐使用 SEUS Renewed v1.0.0SEUS V11。除此之外,可以向作者本人付费购买制作中的 SEUS PTGI(目前的版本需要赞助 10 美元,未来发布的正式版将免费);截至发稿前,最新版本为 SEUS PTGI E6。一番搜索后,笔者发现了一个名为 yiff.party 的网站,这里收录了大量 Patreon 上的付费下载内容。你可以在上面找到全部的 SEUS PTGI 光影。

  • 材质
    一个好的材质包同样是不可或缺的。具体可以看这篇文章:Minecraft 材质包推荐

安装

安装 Minecraft

安装过程并不复杂。运行 HMCL-3.2.129.exe,在「游戏列表」中选择「安装新游戏版本」。
安装新游戏版本

然后选择 1.12.2 版本,较新的版本可能无法正确适配光影,需要等作者更新才行。

选择1.12.2版本

随后安装 OptiFine,点击这里的箭头:

安装OptiFine

选择最新版本,例如 HD_U_E3。如果在游戏过程中发现存在渲染问题(例如黑屏等),可以换其它版本试试。

选择OptiFine版本

最后点击「安装」,HMCL 启动器会自动下载并配置相关组件。

阅读全文 »
0%