---
toAstro: true
astroType: post
toWexin: null
toJuejin: null
toZhihu: null
title: 2025-W08
date: 2025-02-23T00:00:00.000Z
author: KazooTTT
tags:
- 卡片
- 软件
- 设计
- 阅读
- 周报
- tree-shaking
- wasm
finished: true
published: true
category:
- 周报
slug: 2025-W08
description: >-
本周的产出涵盖了多个领域的内容,包括博客上发布了关于RSSHub新增AsianFanfics路由和解决OpenWebUI长时间白屏的问题。同时,备忘录中记录了Cloudflare规则配置、Vite环境变量以及关于Hono框架的使用等技术分享。此外,还进行了对Web端DICOM压缩的调研,探索了pydicom和gdcm两个库的使用方式。同时,个人反思与日常生活中,感慨与多年未见的同人创作者重新互动,并且体验了私教训练带来的身体挑战。
date_created: 2025-02-16T14:45:50.000Z
date_modified: 2025-02-23T16:05:02.000Z
---
日期范围:2025-02-17 - 2025-02-23
## 本周产出
### [Blog]()
- [2025-02-21 【碎片】 rsshub中新增asianfanfics路由]()
- [2025-02-20 【碎片】 openwebui长时间白屏解决方案]()
### [Memos]()
- [2025-02-21 配置 cloudflare 规则实现重定向]()
- [2025-02-19 241029 1144 vite环境变量]()
- [2025-02-19 碎片-2025-02-19 17时30分 You Should Use Hono in your Next Projec]()
- [2025-02-17 碎片-2025-02-17 10时55分 做事设计]()
### 碎碎念
2025/2/23 21:48:04
我靠 刚刚脑子里突然冒出一个特效 正面白色言论往上走 负面黑色言论往下走
然后回想了一下是很久以前的同人产出 pv 里出现的 p2
又回想了一下那个 up 主的名字,好像叫若宇之旋,突然想起她好像几天前点赞过我的回复!原来 10 年过去了大家都还在,这种感觉好惊喜!
不过后来她自己的号转给了她朋友,她朋友是一个做果冻切开动画的 up 主,所以大概 18 年的时候她做的几个调教投稿都删了🥲都看不到了
---
2025/2/23 13:45:33
这几天刷别人分享的构建本地知识库的视频
anythingllm / cherry studio
都是支持上传文件,而不是文件夹的
对于我这种 obsidian 用户来说加成不大
另外其实觉得这些视频同质化挺严重的 看一两个就够了
---
2025/2/19 20:10:10
我还没拿到竹白的使用资格就要下线了😂
搞 newsletter 的话还是 substack 省心
不过感觉 follow + rss 的内容已经读不过来了,所以也不会很想订阅或者自己发布 newsletter
---
很久没约私教了,这周用器材练了腿和臀,练完第二天还是有点痛。
## VJ 专题
社区
[Visual Performance Artist小组]()
博主推荐
[vj大象]()
采访
[那些当 VJ 的人-虎嗅网]()
工作流讨论
[Is anyone using Blender as a VJ tool? - Blender and CG Discussions - Blender Artists Community]()
> vj 的话,我只关注那些数字生成艺术的,这里推荐一本书,代码本色 the nature of coding,内容简单,这本书也可以勉强当游戏的入门书,顺便复习了九年义务教育教的东西
作品欣赏
[VJ作品丨ChiliChill2024巡演「混入人类计划」全场22首VJ片段\_哔哩哔哩\_bilibili]()
[[资源收集]]
## dicom 的压缩
这周在调研如何压缩 dicom,其实对于客户端来说,dicom 压缩是一个很常见的场景,在医疗图像软件领域,早期的软件通常都是使用 c++ 或者 python 进行开发的,因此在这两个语言的生态中,有很多成熟的库可以进行使用。
不过我这次探索的是在 web 端来实现 dicom 的压缩,难度会稍微大一些。调查下来找到了两个可以使用的库,第一个是 pydicom,第二个是 gdcm。
---
不过问题是前者其实是 python 的库,我们需要借助 pyodide 这个库来实现在 web 端运行 python 代码。 参考仓库:[grimmer0125/embedded-pydicom-react-viewer: Medical DICOM file P10 Viewer/Chrome Extension + Python Code In Browser (-Pyodide-> WebAssembly) + Pydicom parser + TypeScript React App (CRA). Use d4c-queue npm lib.]()
比较巧的是最近使用 openwebui 比较多,它提供了代码执行的功能,而执行的引擎有 Jupter 和 pyodide。
![alt text]()
---
然后 gdcm 是 c++ 的库,python,cs,java 都有对应的库,并没有直接在 web 端运行的库。需要使用 emscripten 来编译,也就是利用 wasm。 [InfiniBrains/gdcm-js: GDCM port to js using emscripten]()
这个仓库是使用 emscripten 编译的,并且提供了对应的 npm 包。 [gdcm-js]()
## 收藏夹 - 应用
这里存放一些本周收藏的内容
### Markdown 转图片
[ReadPo - 10x Speed Up Your Reading and Writing]()

### Memo Card 把 md 转化为图片

[Memo Card : Turn your words into beautiful sharing cards!]() #卡片 #设计 #软件
Memo Card 是一个用于生成精美文字卡片的工具,它支持 Markdown 语法,能够将文字内容转化为可用于分享的卡片形式,适用于书摘、笔记、备忘等内容的分享,用户还可以选择主题和外观。
- 支持 Markdown 语法,所见即所得,实时生效。
- 可以标记文字来源,用户还能选择主题和外观,方便个性化定制。
### Get 笔记 - 记录每一个闪光的想法
[https://www.biji.com/]()
Get 笔记作为新一代 AI 笔记工具,帮你实现高效记录、深度思考。 通过智能记录、整理,让知识流动起来。
主要的亮点是语音记笔记(有点像子弹笔记)
不过这个网站的介绍文案全是写在图片里的,对 SEO 并不优化。算一个反面案例。
这是他们的使用文档:[Hi,欢迎来到 Get 笔记 \| Get笔记使用文档]()

### thunderclient 轻量级 API 客户端扩展
地址:[https://www.thunderclient.com/]()
Thunder Client 是专门为 Visual Studio Code 用户设计的一个轻量级 Rest API 客户端扩展工具。它提供了丰富的功能来简化 API 测试过程,包括但不限于本地存储、Git 同步、请求集合和环境变量、无脚本测试、CI/CD 集成等。
vscode 拓展下载地址:[Thunder Client - Visual Studio Marketplace]()

## 收藏夹 - 技术
### 一个很好的 hono 教程
[You Should Use Hono in your Next Project]()

这是一个很好的 hono + zod + drizzle 的入门教程
对应的仓库也是开源的:
[GitHub - w3cj/hono-open-api-starter: A starter template for building fully documented type-safe JSON APIs with Hono and Open API]()

### 模拟人生设计文档
[Index of /home/TheSimsDesignDocuments]()
包含了一系列与《The Sims》(模拟人生)设计文档相关的文件
这些文档涵盖了从 3D 人物动画、游戏世界设计到对象和人物的详细规划,以及游戏框架、架构、图形、声音、资源管理等多个方面。
- **设计文档**:提供了《The Sims》游戏开发的详细设计文档,包括目标、世界观、对象、人物、宠物、动画、声音、框架、架构、图形、移动、角色动画、资源管理等多个方面。
- **开发规划**:包含了游戏开发的规划和里程碑,如角色动画的开发计划、内容创作规则、工具和技术文档等。
- **技术细节**:涉及到游戏内部结构的技术细节,如资源文件格式、虚拟机设计、对象文件格式等。
- **用户指南**:提供了一些用户指南和快速启动指南,帮助理解游戏的使用和设计理念。
对于游戏开发者、《The Sims》的研究者或者对游戏设计感兴趣的人来说,这些文档是宝贵的资源。

### [tree-shaking, the horticulturally misguided algorithm — wingolog]()
探讨 wasm 的发展困境,阐述 tree-shaking 的重要性。 #阅读 #wasm #tree-shaking
相关视频解读:[Why WebAssembly Can't Win - YouTube]()
- WebAssembly 在 Web 开发中的应用受到限制,主要在于大型 C++ 程序和 JavaScript 模块的使用,对于 DOM 操作和其他编程语言的支持不佳。
- WebAssembly 的成功受限于编程模型的差异,即静态类型和线性内存与动态类型和管理内存的模型不兼容。
- 随着浏览器对引用类型和垃圾回收的支持,WebAssembly 在 Python 等其他语言中的 Web 开发前景看起来很好。
- Tree-shaking 算法对于减少 Wasm 模块大小至关重要,这对于 Web 开发的成功至关重要。
- 有效的 tree-shaking 需要在编译器中实施多种优化技术,包括部分求值、修正 letrec、CPS 转换、死代码消除和按需包含标准库。
- 对于 Python 等动态类型语言,tree-shaking 的挑战更大,因为它们的对象导致了更复杂的流分析问题。
- 为了使 Wasm 模块小巧,每种语言的工具链都需要重大投资,可能会出现替代的工具链,这些工具链集成了实验性的 tree-shaking 算法和支持 tree-shaking 的标准库。