rxliuli blog
  • 首页
  • 归档
  • 标签
  • 关于
  • 友链

Web 流式写入文件

背景由于吾辈之前使用的一个域名即将到期,需要将 IndexedDB 数据迁移到新的域名,因此这两天创建了一个新的浏览器扩展 IDBPort,用于迁移 IndexedDB 数据到其他域名。而在迁移数据时,需要将数据导出为并下载到本地,然后导入到新的域名。由于数据量较多,同时包含一些图像之类的二进制数据,所以需要使用流式写入的方式来避免内存占用过高。 首先,Web 中有什么 Target 可以流式写入

再游新疆 -- 自驾

前言六月初有个去新疆自驾的机会,于是便和新一开始了二刷新疆之旅。大致路线定的是南疆环线,由于距离霍尔果斯口岸很近,所以也顺便出国去哈萨克斯坦看了看。这次的旅行体验比上次报团要好得多,主要是单个地点好玩的话可以多玩会而不再卡时间了。 赛里木湖首先第一站前往了赛里木湖,中间由于路途太远,所以在精河县暂住一晚,第二天继续前往赛里木湖。 首先去游客中心买票,确认了自驾是每个人 140,人车合一而非车单独

mac 初上手的疑问与困惑

场景换了 m2 macbook,作为一个 windows 长期使用者,截止目前为止遇到了很多问题和疑惑,有些解决了,有些目前仍未找到解决方法,在此记录和分享。 另外还写过两篇关于 Windows 的 Windows 上的工具清单 Windows 使用技巧 系统如何添加字体之前日常的字体为更纱黑体,它并不出色,但主要优势是以统一的风格支持简繁日英四种语言。基本步骤和 windows 类似,下

在构建时而非运行时编译 Markdown

背景最近重构了个人主站,添加了作品集和博客部分,它们都使用 markdown 来编写内容。而直接引入 react-markdown [1] 组件在运行时编译 markdown 不仅成本较高,要添加一系列的 unified 依赖来进行编译 markdown,还要引入相当大的 shikijs [2] 来实现代码高亮。经过一些快速测试,打算尝试使用预编译 markdown 为 html 的方式来解决这个

在 Web 中解压大型 ZIP 并保持目录结构

背景最初是在 reddit 上看到有人在寻找可以解压 zip 文件的 Firefox 插件 [1],好奇为什么还有这种需求,发现作者使用的是环境受限的电脑,无法自由的安装本地程序。于是吾辈便去检查了现有的在线解压工具,结果却发现排名前 5 的解压工具都没有完全支持下面两点 解压大型 ZIP 文件,例如数十 G 的 ZIP 解压目录时保持目录结构 下面的视频展示了当前一些在线工具的表现 实际

转换 Chrome Extension 为 Safari 版本

背景这两天吾辈开始尝试将一个 Chrome 扩展发布到 Safari,这是一件一直想做的事情,但由于 Xcode 极其糟糕的开发体验,一直没有提起兴趣完成。这两天又重新燃起了一丝想法,来来回回,真正想做的事情总是会完成。所以于此记录一篇,如何做到以及踩过的坑。下面转换的扩展 Redirector 实际上已经发布到 Chrome/Firefox/Edge,将作为吾辈第一个发布到 App Store

Cloudflare D1 数据库查询优化之路

背景最近在做一些服务端相关的事情,使用了 Cloudflare Workers + D1 数据库,在此过程中,遇到了一些数据库相关的问题,而对于前端而言数据库是一件相当不同的事情,所以在此记录一下。 下图是最近 30 天的请求记录,可以看到数据库查询变化之剧烈。 发现问题解决问题的前提是发现问题,有几个方法可以更容易留意到相关问题。 检查 D1 仪表盘,确定数据库操作是否有异常增长 检查查询语

使用 ChatGPT 生成图标

场景现在无论是创建什么东西,都需要一个图标。吾辈尝试过的有 PC/Mobile 应用、VSCode/Chrome 插件、甚至各种开发者相关的库或者工具。而作为没有太多绘画能力的开发者,ChatGPT 内置集成的 DALL·E 非常好用,可以用来生成需要的图片,即便存在道德限制 – 但这不是这里要讨论的问题,它也不会影响创建需要的图标。 使用 ChatGPT 生成 目前,只有订阅了 ChatGPT

svelte5:一个更糟糕的 vue3

背景svelte5 在去年 10 月发布,据说是 svelte 发布以来最好的版本。其中,他们主要为之自豪的是 runes,这是一个基于 proxy 实现的一个反应式状态系统。但经过 vue3 composition api 和 solidjs signals,吾辈并未感到兴奋。相反,这篇博客将主要针对吾辈在实际项目中遇到的 svelte5 问题进行说明,如果你非常喜欢 svelte5,现在就可以

记录一次从 Prisma 到 Drizzle 的迁移

背景最近使用 Cloudflare D1 作为服务端的数据库,ORM 选择了很多人推荐的 Prisma,但使用过程中遇到了一些问题,主要包括 不支持 D1 的 batch 批处理,完全没有事务 https://www.prisma.io/docs/orm/overview/databases/cloudflare-d1#transactions-not-supported 不支持复杂查询,例如多

当吾辈遇上 Firefox 中 9 年的陈年老 Bug

背景最近开发一个跨浏览器的扩展时,由于需要在 Content Script 中请求远端服务 API,在 Chrome 中没有遇到任何问题,但在 Firefox 中,它会在 Content Script 上应用网站的 CSP 规则。不幸的是,一些网站禁止在 Script 中请求它们不知道的 API 端点。 首先,这里出现了一个关键名词:CSP,又叫内容安全策略,主要是用来解决 XSS 的。基本上,它

将数据导入到 Cloudflare D1

背景最近在实现 Mass Block Twitter 插件的 Spam 账户共享黑名单时,使用了 Cloudflare D1 作为服务端的存储数据库。而之前在本地 indexedDB 中已经存储了一些数据,所以需要导入现有的数据到 Cloudflare D1 中。使用 IndexedDB Exporter 插件将 indexedDB 数据库导出为 JSON 数据,但如何导入仍然是个问题。 最初参考
123…28

搜索

Hexo Fluid