GSoC 还有几天就要结束了,要在 2025-09-02 2:00 UTC+8 前把作业交给 Google。
交作业前打了份草稿,请大家锐评一下。
https://blog.save-web.org/blog/2025/08/31/gsoc-2025-final-report-zh/
交作业前打了份草稿,请大家锐评一下。
https://blog.save-web.org/blog/2025/08/31/gsoc-2025-final-report-zh/
Save The Web Project
混乱Web,无头存档,开源拖拉机——2025 GSoC 最终报告
夏天夏天悄悄过去,今年的 Google 编程之夏(Google Summer of Code, GSoC)即将结束,是时候赶在 DDL(9月2日)前写这份最终报告了。
❤6👾2
Save The Web Project
STWP 2025 第 31 周周报 - 修了 wikiteam3 的两个 bug - 重构了 dokuwiki dumper - Zeno headless PR (1) (1) (1)😭
STWP 2025 第 32 至 35 周合并周报
跳过。
跳过。
晚上好,感谢Google感谢IA感谢WBM感谢群友感谢猫。
现在我购得了新玩具:磁带库(4U,可装48盘)。目前装有一个L6的磁带机。
磁带库真好玩。
现在我购得了新玩具:磁带库(4U,可装48盘)。目前装有一个L6的磁带机。
磁带库真好玩。
❤13🆒5😭3
STWP 2025 第 36 周周报
- CGO-free via WASM
ada (ada-url.com) 是 Zeno 使用的 URL Parser。
在 GSoC 报告中我提到:
这周试着做了下(LLM 帮了活),发现异常地简单。
https://github.com/yzqzss/goada-wasm/
相较于 CGO 版,解析url顺序性能下降1x,并发性能下降0.1x。主要是要在GO和WASM端传递 raw url 和 parsed url,序列化、反序列化、malloc 成本有点高。
我现在有个新灵感:用 WASM 来做轻量的跨平台 warrior。这个 warrior 就是个 runner,从我们服务器上下载 wasm payload 然后执行。
这样又有动态运行代码的能力,我 release 也只需要打 wasm 就行了。似乎一切都很完美。
- 《LTO 磁带存储入门初探》🤪 ——环境搭建
买了台 HP MSL4048 磁带库,有48盘磁带和4个驱动器槽位。(花费1.1k)
买了块LTO6驱动器。(花费1.3k)
还有数据带、清洗带若干。
这个磁带机运行起来比R730还吵,主要是驱动器的外置暴力风扇,上电就疯狂吹。
翻了下库的带外管理,发现可以单独开关机磁带机,单独关机后就不算吵了。
但是库本身也还有点吵,我不希望它一直开机不干事还一直负压往里面吸灰。
然后,这个库的带外管理模块需要库本身开机才能工作。😅
而且我没找到来电开机的设置,所以不能简单用智能插座解决远程开机问题。
于是我淘宝了个支持米家的蓝牙断路器,准备烙在库的开机键上。
磁带库和磁带机相比服务器要金贵,最重要的就是做好无尘,磁带库手册上明确说需要基本的 ISO 8 级无尘(大部分无尘机房的环境)。有幸见识过在普通室内环境7x24工作多年的库、机、平均全量读写400次的带子,袋子里面都进了肉眼可见的一层灰,它们最终都提前退休报废了。
我的低成本方案是把空卧室封闭起来,然后把收来的小米空气净化器,倒着放,让它把干净空气从上至下灌进机柜里。
怎么知道这样的逆天 DIY 方案到底能不能行呢?
ISO 规定的洁净等级是按照每立方各直径的颗粒数量来区分的。而我们从一般的空气质量传感器和气象站看到的 PM2.5 和 PM10 用的单位是 ug/m3。
PM10,颗粒直径按平均 5um 算。
单位体积 V = 4/3 * π * (5/2)^3 = 65.45 um3
颗粒数量 PCS = X / (V * D)
X = 气象站出的数据 (ug/m3)
V = 65.45 μm3
D = 1.7 g/cm3 = 1.7*10^9 μg/m3 (用 https://pubs.acs.org/doi/abs/10.1021/es204073t 推算)
ISO 8 级洁净要求
>= 0.5um 3520,000
>= 1um 832,000
>= 5um 29,300
就按 5um 来算,29300 pcs/ m3
这样粗略算下来,我家附近的环境空气洁净度超标6.7k倍。就算 PM10 是 1ug/m3,也超标了 300 倍。而多数成品空气质量检测器(包块空气净化器自带的)的输出分辨率也才 1ug/m3,所以它们都不能用来测机柜内到底是 ISO 8 洁净。
网上卖的正经尘埃颗粒计数器成品卖几百几千,但是家用空气净化器同款的检测模块只要52包邮,TTL 读数据就行。
模块能输出 0.3~10um 等各个直径的颗粒物的单位空间的质量和数量。
这种模块被多款空气净化器使用,厂商故意在低端机上面只读取PM2.5的质量数据,而在“高端机”上则再多读取PM10质量数据,美其名曰:“具有PM10粉尘传感器”。
另外,磁带库运行的允许湿度范围是 20-80,建议范围是 20-50。这个要求简单,放个小米蓝牙温湿度计,然后要用磁带库的时候提前开空调除湿就行。
- CGO-free via WASM
ada (ada-url.com) 是 Zeno 使用的 URL Parser。
在 GSoC 报告中我提到:
ada 作为一个 C++ URL Parser 的质量非常好,如果它的 Go Binding (goada) 能摆脱 CGO 的话就更好了。
未来可以尝试用把 ada 编译成 wasm 然后用 wazero 来从 Golang 跨语言调用来避免 CGO,方便交叉编译(ncruces/go-sqlite3 就是这样干的)。
这周试着做了下(LLM 帮了活),发现异常地简单。
https://github.com/yzqzss/goada-wasm/
相较于 CGO 版,解析url顺序性能下降1x,并发性能下降0.1x。主要是要在GO和WASM端传递 raw url 和 parsed url,序列化、反序列化、malloc 成本有点高。
我现在有个新灵感:用 WASM 来做轻量的跨平台 warrior。这个 warrior 就是个 runner,从我们服务器上下载 wasm payload 然后执行。
这样又有动态运行代码的能力,我 release 也只需要打 wasm 就行了。似乎一切都很完美。
- 《LTO 磁带存储入门初探》
买了台 HP MSL4048 磁带库,有48盘磁带和4个驱动器槽位。(花费1.1k)
买了块LTO6驱动器。(花费1.3k)
还有数据带、清洗带若干。
这个磁带机运行起来比R730还吵,主要是驱动器的外置暴力风扇,上电就疯狂吹。
翻了下库的带外管理,发现可以单独开关机磁带机,单独关机后就不算吵了。
但是库本身也还有点吵,我不希望它一直开机不干事还一直负压往里面吸灰。
然后,这个库的带外管理模块需要库本身开机才能工作。
而且我没找到来电开机的设置,所以不能简单用智能插座解决远程开机问题。
于是我淘宝了个支持米家的蓝牙断路器,准备烙在库的开机键上。
磁带库和磁带机相比服务器要金贵,最重要的就是做好无尘,磁带库手册上明确说需要基本的 ISO 8 级无尘(大部分无尘机房的环境)。有幸见识过在普通室内环境7x24工作多年的库、机、平均全量读写400次的带子,袋子里面都进了肉眼可见的一层灰,它们最终都提前退休报废了。
我的低成本方案是把空卧室封闭起来,然后把收来的小米空气净化器,倒着放,让它把干净空气从上至下灌进机柜里。
怎么知道这样的逆天 DIY 方案到底能不能行呢?
ISO 规定的洁净等级是按照每立方各直径的颗粒数量来区分的。而我们从一般的空气质量传感器和气象站看到的 PM2.5 和 PM10 用的单位是 ug/m3。
PM10,颗粒直径按平均 5um 算。
单位体积 V = 4/3 * π * (5/2)^3 = 65.45 um3
颗粒数量 PCS = X / (V * D)
X = 气象站出的数据 (ug/m3)
V = 65.45 μm3
D = 1.7 g/cm3 = 1.7*10^9 μg/m3 (用 https://pubs.acs.org/doi/abs/10.1021/es204073t 推算)
V = 65.45 * 1e-18 # m3
D = 1.7e9 # ug/m3
def pcs(x): # x in ug/m3
return x / (V * D)ISO 8 级洁净要求
>= 0.5um 3520,000
>= 1um 832,000
>= 5um 29,300
就按 5um 来算,29300 pcs/ m3
pcs_limit = 29300 # pcs/m3
def quota(x): # x in ug/m3
return pcs(x) / pcs_limit>>> quota(1)
306.7423972746551
>>> quota(22)
6748.332740042413这样粗略算下来,我家附近的环境空气洁净度超标6.7k倍。就算 PM10 是 1ug/m3,也超标了 300 倍。而多数成品空气质量检测器(包块空气净化器自带的)的输出分辨率也才 1ug/m3,所以它们都不能用来测机柜内到底是 ISO 8 洁净。
网上卖的正经尘埃颗粒计数器成品卖几百几千,但是家用空气净化器同款的检测模块只要52包邮,TTL 读数据就行。
模块能输出 0.3~10um 等各个直径的颗粒物的单位空间的质量和数量。
这种模块被多款空气净化器使用,厂商故意在低端机上面只读取PM2.5的质量数据,而在“高端机”上则再多读取PM10质量数据,美其名曰:“具有PM10粉尘传感器”。
另外,磁带库运行的允许湿度范围是 20-80,建议范围是 20-50。这个要求简单,放个小米蓝牙温湿度计,然后要用磁带库的时候提前开空调除湿就行。
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9 1
Save The Web Project
我 release 也只需要打 wasm 就行了
可行是可行,但部分 lib 不支持打成 wasm,打补丁太麻烦了,算了。
Save The Web Project
- 由于长期没有任务,停掉了所有的 tracker 。
开了一台 tracker,一开就发现有两个 client 连上来了。
不是吧,都接半年多没项目跑了,群友怎么还跑着客户端,docker restart always 是吧😲
不是吧,都接半年多没项目跑了,群友怎么还跑着客户端,docker restart always 是吧😲
🥰10 5❤1
Save The Web Project
STWP 2025 第 37 周周报 写出来也是流水账。跳过。
不过上周,用空气净化器往机柜灌风,测出来确实可以轻松在机柜里达成 ISO 7/8 级无尘。
https://opencollective.com/archiveteam/updates/changes-to-our-infrastructure-and-use-of-donations
🙀🙀🙀
tl;dr: ArchiveTeam 降本增效了。
In the past, the costs of the Hetzner account have been around 1000 to 1200 EUR/month
🙀🙀🙀
tl;dr: ArchiveTeam 降本增效了。
Opencollective
Changes to our infrastructure - Archive Team
Over the recent months, some major changes have been made to the infrastructure behind many of the Archive Team projects. The tracker, backfeed, Gitea, transfer.archivete.am, and other services run on this infrastructure. The changes · Over...
🤩3🤯2
https://github.com/saveweb/saveweb-images
重启了一个老项目,请帮忙跑 docker 容器。🌝操作步骤见 README,非常简单^^^。
目前的目标是将 ETA 压缩到一个月内。 https://grafana.saveweb.org/public-dashboards/b6b2d4ad282043b799b7bb5afaafb23e
每个 archivist 的实时竞技榜等会做。
做好了,见群。
重启了一个老项目,请帮忙跑 docker 容器。🌝操作步骤见 README,非常简单^^^。
目前的目标是将 ETA 压缩到一个月内。 https://grafana.saveweb.org/public-dashboards/b6b2d4ad282043b799b7bb5afaafb23e
做好了,见群。
GitHub
GitHub - saveweb/saveweb-images: various worker images
various worker images. Contribute to saveweb/saveweb-images development by creating an account on GitHub.