--- 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]() ![IMG-682179B90CF4FDC5DB2A36189B316881](/mdImages/IMG-682179B90CF4FDC5DB2A36189B316881.png) ### Memo Card 把 md 转化为图片 ![IMG-9021D59207DD62599F7A11966E419698](/mdImages/IMG-9021D59207DD62599F7A11966E419698.png) [Memo Card : Turn your words into beautiful sharing cards!]() #卡片 #设计 #软件 Memo Card 是一个用于生成精美文字卡片的工具,它支持 Markdown 语法,能够将文字内容转化为可用于分享的卡片形式,适用于书摘、笔记、备忘等内容的分享,用户还可以选择主题和外观。 - 支持 Markdown 语法,所见即所得,实时生效。 - 可以标记文字来源,用户还能选择主题和外观,方便个性化定制。 ### Get 笔记 - 记录每一个闪光的想法 [https://www.biji.com/]() Get 笔记作为新一代 AI 笔记工具,帮你实现高效记录、深度思考。 通过智能记录、整理,让知识流动起来。 主要的亮点是语音记笔记(有点像子弹笔记) 不过这个网站的介绍文案全是写在图片里的,对 SEO 并不优化。算一个反面案例。 这是他们的使用文档:[Hi,欢迎来到 Get 笔记 \| Get笔记使用文档]() ![IMG-4280029B164F70CB774332E5AE95D1DA](/mdImages/IMG-4280029B164F70CB774332E5AE95D1DA.png) ### thunderclient 轻量级 API 客户端扩展 地址:[https://www.thunderclient.com/]() Thunder Client 是专门为 Visual Studio Code 用户设计的一个轻量级 Rest API 客户端扩展工具。它提供了丰富的功能来简化 API 测试过程,包括但不限于本地存储、Git 同步、请求集合和环境变量、无脚本测试、CI/CD 集成等。 vscode 拓展下载地址:[Thunder Client - Visual Studio Marketplace]() ![IMG-D95FCCD99DA3CEF64C2B2017B2AA4346](/mdImages/IMG-D95FCCD99DA3CEF64C2B2017B2AA4346.png) ## 收藏夹 - 技术 ### 一个很好的 hono 教程 [You Should Use Hono in your Next Project]() ![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]() ![IMG-2C2B9C98EF7B0A1DEFF1E1A269912DE2](/mdImages/IMG-2C2B9C98EF7B0A1DEFF1E1A269912DE2.png) ### 模拟人生设计文档 [Index of /home/TheSimsDesignDocuments]() 包含了一系列与《The Sims》(模拟人生)设计文档相关的文件 这些文档涵盖了从 3D 人物动画、游戏世界设计到对象和人物的详细规划,以及游戏框架、架构、图形、声音、资源管理等多个方面。 - **设计文档**:提供了《The Sims》游戏开发的详细设计文档,包括目标、世界观、对象、人物、宠物、动画、声音、框架、架构、图形、移动、角色动画、资源管理等多个方面。 - **开发规划**:包含了游戏开发的规划和里程碑,如角色动画的开发计划、内容创作规则、工具和技术文档等。 - **技术细节**:涉及到游戏内部结构的技术细节,如资源文件格式、虚拟机设计、对象文件格式等。 - **用户指南**:提供了一些用户指南和快速启动指南,帮助理解游戏的使用和设计理念。 对于游戏开发者、《The Sims》的研究者或者对游戏设计感兴趣的人来说,这些文档是宝贵的资源。 ![IMG-7CA6E2EC79AA6040BACEF006B13F8940](/mdImages/IMG-7CA6E2EC79AA6040BACEF006B13F8940.png) ### [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 的标准库。