0%

PL2303 是一个被广泛使用的 USB 转 RS232 串口芯片。其中一些型号,例如 PL2303HXA,虽然早已停产,但还在市场上流通,被使用在一些单片机上。在较新的 Windows 10 和 Windows 11 系统中,首次通过 USB 连接 PL2303 时,系统默认安装的驱动是不能使用的,只有一句提示 PL2303 已停产的信息:

要解决这个问题,需要手动下载安装旧版的驱动:PL2303_Prolific_GPS_1013_20090319.exe

安装驱动后,在设备管理器中点开 PL2303 的属性,然后选择更新驱动程序。

这里选择较旧的驱动即可。

最后,为了避免系统自动安装的新驱动造成问题,我们使用 pnputil 将其卸载。用管理员权限打开 Powershell,执行 pnputil -e,在里面找到 PL2303 新驱动所对应的发布名称,例如 oemxx.inf。然后执行 pnputil -d oemxx.inf 即可将其卸载。

在文章鱼眼镜头与小行星特效中,笔者介绍了摄影师 Stephane Vetter 创作的一幅非常震撼的星轨照片。通过后期堆栈叠加的方式,将许多张连续拍摄的星空照片进行合成,即可得到星轨。这样的拍摄方式相比于 B 门曝光具有一些优势,例如可以避免拍摄过程中出现问题而前功尽弃,并且也有更多的数据用于后期处理。后期处理的软件也有很多选择,例如 Photoshop 的堆栈功能,或者著名的 Startrails.exe。笔者也用 Python 和 OpenCV 写了一段星轨的后期处理代码,但此前一直没有机会实测一下效果。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/env python3

import os
import cv2
import numpy as np

# 放置原始图片的路径
base = '/path/to/pictures'
names = sorted(os.listdir(base))

out_img = 'star-trails.jpg' # 保存的图片文件名
out_video = 'star-trails.mp4' # 保存的视频文件名
fps = 24 # 保存视频的 FPS,可以适当调整
frameSize = (3840, 2160) # 视频的尺寸

# 需要先装 ffmepg: sudo apt install ffmepg
fourcc = cv2.VideoWriter_fourcc(*'avc1')
videoWriter = cv2.VideoWriter(
out_video, fourcc, fps, frameSize)
frame = None

for name in names:
if os.path.splitext(name)[1].lower() == '.jpg':
print(name)
path = os.path.join(base, name)
curr = cv2.imread(path)
if frame is None:
frame = curr
else:
frame = np.maximum(frame, curr)
# 图片需要缩放到与视频尺寸一致
videoWriter.write(cv2.resize(frame, frameSize,
interpolation=cv2.INTER_AREA))
# 保存中间结果
cv2.imwrite(out_img, frame)

videoWriter.release()

利用五一假期的机会外出拍摄,终于可以填坑了。笔者使用的拍摄参数是:焦距 17mm,光圈 f/4,ISO 1250,单张曝光时间 30s,连续拍摄了 240 张进行合成。


参考文章:star-stacker

拓展阅读:叠加法星轨的拍摄及后期方法

《电子诗人》是刘慈欣在 1989 年编的一个小软件,需要 Visual Foxpro 环境运行。原版程序已经难以获得,网上广为流传的是诸葛恒修改版

Visual Foxpro 的最新版本是 9.0,发布于 2007 年。此后微软逐渐终止了 Visual Foxpro 的开发,也没有适配更新的操作系统,例如 Windows 10。因此,要运行《电子诗人》,还得先有一台运行着 Windows XP 或 Windows 7 的电脑。当然,虚拟机也是可以的。

Visual Foxpro 的安装包可以从 MSDN, I Tell You 上找到,在「开发人员工具」中选择「Visual FoxPro 9.0」,就可以获得 Visual FoxPro Professional 9.0 (English) 的下载链接

1
ed2k://|file|en_visual_foxpro_9.0.iso|310644736|4C521F4B9DB5F2721038E2E25A8C8B14|/

下载的文件是 en_visual_foxpro_9.0.iso。物理机可以用虚拟光驱的软件挂载,或者刻录成光盘;虚拟机一般都支持虚拟光驱,例如 QEMU 可以通过 -cdrom 参数指定。完成后,双击打开光盘驱动器,将弹出 Visual Foxpro 的安装程序。按照步骤安装即可,激活码可以用下面这个:

1
W7YCJ 2RRMD MMHGG 3MB7C VBMYB

之后就可以解压《电子诗人》的源码运行了。这里有两种类型的文件,后缀名为 PRG 的是程序源码,DBF 则是数据库表、自由表,包含语料库。程序入口是 cp.PRG,用 Visual FoxPro 打开后,需要修改一行代码

1
set defa to e:\cp

本机可能没有 E 盘,因此将这一行注释或删除。

之后点击「Run」按钮就可以运行了。


参考文章:
电子诗人
关于《电子诗人》的小提示

此外还有一个 JavaScript 版本:https://viegg.com/poet/

诸葛恒修改版下载:cp2.rar

在文章 Nginx 配置 SSL 中,笔者介绍了通过 Certbot 申请 SSL 证书并使 Nginx 支持 SSL 的方法。彼时申请泛域名证书(Wildcard certificate)比较麻烦,需要验证 TXT 记录,再加上 Certbot 用包管理器安装会有一些小问题,故没有继续尝试。

三年之后再回顾这个问题,发现 Certbot 已经可以完美地通过 pip 安装,申请证书的流程也得到了简化。

申请泛域名证书仍然要求验证你对域名的所有权,因此除了 Certbot,还需要安装对应的插件。本站的 DNS 托管服务商是 Cloudflare,本文也以 Cloudflare 为例。

首先,需要创建一个 Cloudflare 的 API 令牌,权限设置如下图所示

创建成功后,获得的 API 令牌需要妥善保存。随后,登录到申请 SSL 证书的服务器上,用 pip 安装 Certbot 和 certbot-dns-cloudflare 插件。

1
pip3 install certbot certbot-dns-cloudflare

然后执行以下命令,将 TOKEN 替换为此前获得的 API 令牌。

1
2
echo "dns_cloudflare_api_token=TOKEN" > /etc/cloudflare.ini
chmod 0600 /etc/cloudflare.ini

完成后,直接用 Certbot 申请证书即可。将 example.com 替换为你的邮箱和域名。

1
certbot certonly --email alex@example.com --dns-cloudflare --dns-cloudflare-credentials /etc/cloudflare.ini -d example.com,*.example.com

参考文章:Let's Encrypt 现已正式支持泛域名证书

签到

题目内容是一个 pdf 文件,用 Adobe Acrobat 打开,看到其中包含一些特殊符号。

在编辑模式下,查看得到其字体为 Wingdings,这是一个装饰字体,文本内容其实是 ASCII 码。文本范围是超出页面的,resize 之后复制出其内容,给出了两行文字:

1
2
fa{aeAGetTm@ekaev!
lgHv__ra_ieGeGm_1}

这是栅栏密码,得到 flag 为 flag{Have_A_Great_Time@GeekGame_v1!}

小北问答 Remake

  1. 北京大学燕园校区有理科 1 号楼到理科 X 号楼,但没有理科 (X+1) 号及之后的楼。X 是?

    在 Google Earth 中搜索,存在理科 5 号楼,但没有理科 6 号楼。故答案为 5。

  2. 上一届(第零届)比赛的总注册人数有多少?

    在北京大学新闻网中找到报道北京大学举办首届信息安全综合能力竞赛,得到「本次大赛共有 407 人注册参赛」,故答案为 407。

  3. geekgame.pku.edu.cn 的 HTTPS 证书曾有一次忘记续期了,发生过期的时间是?

    搜索「ssl cert database」,找到网站 crt.sh。在该网站上搜索 geekgame.pku.edu.cn,并根据题目给出的正则表达式寻找过期时间秒数以 3 结尾的证书,得到证书 4362003382。其过期时间为 Jul 11 00:49:53 2021 GMT,将时区换为 UTC+8,得到 2021-07-11T08:49:53+08:00。

  4. 2020 年 DEFCON CTF 资格赛签到题的 flag 是?

    找到 2020 年 DEFCON CTF 资格赛的网站是 OOO DEF CON CTF Quals,打开第一题 welcome-to-dc2020-quals,下载 welcome.txt,获得 flag 为

    OOO{this_is_the_welcome_flag}

  5. 在大小为 672328094 * 386900246 的方形棋盘上放 3 枚(相同的)皇后且它们互不攻击,有几种方法?

    The On-Line Encyclopedia of Integer Sequences 中搜索「3 queens」,没有直接找到的通解,但有一篇相关的文章 Number of ways to place 3 nonattacking queens on an n X n board.。里面给出了通解的表达式:

    任意$m\times n$棋盘上的3皇后问题

    代入数据计算得 2933523260166137923998409309647057493882806525577536。这里直接用 Mathematica 计算了。

  6. 上一届(第零届)比赛的 “小北问答 1202” 题目会把所有选手提交的答案存到 SQLite 数据库的一个表中,这个表名叫?

    在第零届比赛的 GitHub 仓库 geekgame-0th 中查找,在 src/choice/game/db.py 中得到表名叫 submits。

  7. 国际互联网由许多个自治系统(AS)组成。北京大学有一个自己的自治系统,它的编号是?

    中国 AS 自治系统号码中查找 Peking University,找到编号 AS59201。另一个搜索结果 CNGI-BJ-IX3-AS-AP CERNET2 IX at Peking University, CN 不是正确答案。

  8. 截止到 2021 年 6 月 1 日,完全由北京大学信息科学技术学院下属的中文名称最长的实验室叫?

    信息科学技术学院 2021 年招生指南中找名字最长的实验室,为「区域光纤通信网与新型光通信系统国家重点实验室」。

阅读全文 »