Files
kazoottt-blog-v2/src/content/post/2025-W08.md
2025-02-23 16:07:15 +00:00

222 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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](<https://blog.kazoottt.top/posts/>)
- [2025-02-21 【碎片】 rsshub中新增asianfanfics路由](<https://blog.kazoottt.top/posts/fragmented-notes-2025-02-21-16-38-50/>)
- [2025-02-20 【碎片】 openwebui长时间白屏解决方案](<https://blog.kazoottt.top/posts/openwebui-long-loading-white-screen-solution/>)
### [Memos](<https://blog.kazoottt.top/notes/>)
- [2025-02-21 配置 cloudflare 规则实现重定向](<https://blog.kazoottt.top/notes/fragmented-notes-2025-02-21-15-44-58/>)
- [2025-02-19 241029 1144 vite环境变量](<https://blog.kazoottt.top/notes/fragmented-notes-2025-02-19-21-11-25/>)
- [2025-02-19 碎片-2025-02-19 17时30分 You Should Use Hono in your Next Projec](<https://blog.kazoottt.top/notes/fragmented-notes-2025-02-19-17-30-55/>)
- [2025-02-17 碎片-2025-02-17 10时55分 做事设计](<https://blog.kazoottt.top/notes/fragmented-notes-2025-02-17-10-55-29/>)
### 碎碎念
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小组](<https://www.douban.com/group/vpa/>)
博主推荐
[vj大象](<https://www.zhihu.com/people/vjda-xiang>)
采访
[那些当 VJ 的人-虎嗅网](<https://www.huxiu.com/article/365309.html>)
工作流讨论
[Is anyone using Blender as a VJ tool? - Blender and CG Discussions - Blender Artists Community](<https://blenderartists.org/t/is-anyone-using-blender-as-a-vj-tool/1387361>)
> vj 的话,我只关注那些数字生成艺术的,这里推荐一本书,代码本色 the nature of coding内容简单这本书也可以勉强当游戏的入门书顺便复习了九年义务教育教的东西
作品欣赏
[VJ作品丨ChiliChill2024巡演「混入人类计划」全场22首VJ片段\_哔哩哔哩\_bilibili](<https://www.bilibili.com/video/BV1wmFveZEWq>)
[[资源收集]]
## 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.](<https://github.com/grimmer0125/embedded-pydicom-react-viewer>)
比较巧的是最近使用 openwebui 比较多,它提供了代码执行的功能,而执行的引擎有 Jupter 和 pyodide。
![alt text](<IMG-946FF0883E29B42DB2023CE8E18C4751.png>)
---
然后 gdcm 是 c++ 的库python,cs,java 都有对应的库,并没有直接在 web 端运行的库。需要使用 emscripten 来编译,也就是利用 wasm。 [InfiniBrains/gdcm-js: GDCM port to js using emscripten](<https://github.com/InfiniBrains/gdcm-js>)
这个仓库是使用 emscripten 编译的,并且提供了对应的 npm 包。 [gdcm-js](<https://www.npmjs.com/package/gdcm-js>)
## 收藏夹 - 应用
这里存放一些本周收藏的内容
### Markdown 转图片
[ReadPo - 10x Speed Up Your Reading and Writing](<https://readpo.com/zh/poster>)
![IMG-682179B90CF4FDC5DB2A36189B316881](/mdImages/IMG-682179B90CF4FDC5DB2A36189B316881.png)
### Memo Card 把 md 转化为图片
![IMG-9021D59207DD62599F7A11966E419698](/mdImages/IMG-9021D59207DD62599F7A11966E419698.png)
[Memo Card : Turn your words into beautiful sharing cards!](<https://memocard.net/>) #卡片 #设计 #软件
Memo Card 是一个用于生成精美文字卡片的工具,它支持 Markdown 语法,能够将文字内容转化为可用于分享的卡片形式,适用于书摘、笔记、备忘等内容的分享,用户还可以选择主题和外观。
- 支持 Markdown 语法,所见即所得,实时生效。
- 可以标记文字来源,用户还能选择主题和外观,方便个性化定制。
### Get 笔记 - 记录每一个闪光的想法
[https://www.biji.com/](<https://www.biji.com/>)
Get 笔记作为新一代 AI 笔记工具,帮你实现高效记录、深度思考。 通过智能记录、整理,让知识流动起来。
主要的亮点是语音记笔记(有点像子弹笔记)
不过这个网站的介绍文案全是写在图片里的,对 SEO 并不优化。算一个反面案例。
这是他们的使用文档:[Hi欢迎来到 Get 笔记 \| Get笔记使用文档](<https://doc.biji.com/>)
![IMG-4280029B164F70CB774332E5AE95D1DA](/mdImages/IMG-4280029B164F70CB774332E5AE95D1DA.png)
### thunderclient 轻量级 API 客户端扩展
地址:[https://www.thunderclient.com/](<https://www.thunderclient.com/>)
Thunder Client 是专门为 Visual Studio Code 用户设计的一个轻量级 Rest API 客户端扩展工具。它提供了丰富的功能来简化 API 测试过程包括但不限于本地存储、Git 同步、请求集合和环境变量、无脚本测试、CI/CD 集成等。
vscode 拓展下载地址:[Thunder Client - Visual Studio Marketplace](<https://marketplace.visualstudio.com/items?itemName=rangav.vscode-thunder-client>)
![IMG-D95FCCD99DA3CEF64C2B2017B2AA4346](/mdImages/IMG-D95FCCD99DA3CEF64C2B2017B2AA4346.png)
## 收藏夹 - 技术
### 一个很好的 hono 教程
[You Should Use Hono in your Next Project](<https://www.youtube.com/watch?v=sYZW8TK2IV4>)
![IMG-41F8AD4A7B808D2191BF4861D3847A35](/mdImages/IMG-41F8AD4A7B808D2191BF4861D3847A35.png)
这是一个很好的 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](<https://github.com/w3cj/hono-open-api-starter>)
![IMG-2C2B9C98EF7B0A1DEFF1E1A269912DE2](/mdImages/IMG-2C2B9C98EF7B0A1DEFF1E1A269912DE2.png)
### 模拟人生设计文档
[Index of /home/TheSimsDesignDocuments](<https://donhopkins.com/home/TheSimsDesignDocuments/>)
包含了一系列与《The Sims》模拟人生设计文档相关的文件
这些文档涵盖了从 3D 人物动画、游戏世界设计到对象和人物的详细规划,以及游戏框架、架构、图形、声音、资源管理等多个方面。
- **设计文档**提供了《The Sims》游戏开发的详细设计文档包括目标、世界观、对象、人物、宠物、动画、声音、框架、架构、图形、移动、角色动画、资源管理等多个方面。
- **开发规划**:包含了游戏开发的规划和里程碑,如角色动画的开发计划、内容创作规则、工具和技术文档等。
- **技术细节**:涉及到游戏内部结构的技术细节,如资源文件格式、虚拟机设计、对象文件格式等。
- **用户指南**:提供了一些用户指南和快速启动指南,帮助理解游戏的使用和设计理念。
对于游戏开发者、《The Sims》的研究者或者对游戏设计感兴趣的人来说这些文档是宝贵的资源。
![IMG-7CA6E2EC79AA6040BACEF006B13F8940](/mdImages/IMG-7CA6E2EC79AA6040BACEF006B13F8940.png)
### [tree-shaking, the horticulturally misguided algorithm — wingolog](<https://wingolog.org/archives/2023/11/24/tree-shaking-the-horticulturally-misguided-algorithm>)
探讨 wasm 的发展困境,阐述 tree-shaking 的重要性。 #阅读 #wasm #tree-shaking
相关视频解读:[Why WebAssembly Can't Win - YouTube](<https://www.youtube.com/watch?v=fbd0MEWnPkE>)
- 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 的标准库。