豆沙工作室

RSS: https://blag.dsstudio.tech/feed.xml
一人多役的艺术

关于 :visited 伪类

最近读到了 Kev Quirk 关于:visited 样式的文章,我认为有必要跟进实现。不过在实现的过程中,我还是注意到了一些非常有趣的问题。 修改链接颜色很简单,直接指定 a:visited 的 color 样式就可以了。不过,我发现如果简单地套用浏览器默认样式会带来一个很尴尬的问题—— 蓝紫组合对色弱人士不友好 标准的浏览器行为是:新链接使用蓝色表示;访问过的链接用紫色表示,也就是: 蓝色样块...
评论点赞收藏12 天前

Clean Slate:一个 11ty 站点主题的实现

稳定的接口是对接外部系统的基石,但是不当的假定不应该升格成为接口,无论这种假定看起来有多理所应当。 最近随着无障碍访问改善工作的进行,我发现这个主题里面包含的问题还是挺多的。其中有一些可能是因为当时转 11ty 时没有完整地实现整个页面的行为,比如最近才修好的暗色主题没有正确应用情况;另一些则是主题本身就带着的实现缺陷,比如图片灯箱组件没有正确的焦点。 我注意到这个主题有对语义化 HTML 的理解...
评论点赞收藏21 天前

[11ty] 无障碍设计:修复图片灯箱

或者说,正确地实现一个模态对话框。 虽然标题里说的是 11ty, 其实更多的是在修 Adams 主题。不知不觉间这款主题现在已经快到要上学的年纪了。 Adams 主题在点击图片的时候会显示大图,通过 ViewImage 库 实现。这个库本身功能上没什么问题,但是它会动态地插入灯箱 元素,而这会对屏幕阅读器带来不小的挑战:灯箱打开之后,它是没有任何屏幕阅读器可见的输入焦点的, 因为它的所有看起来像...
评论点赞收藏21 天前

不想(二)十七岁

终于又到了这一天。我本来以为它会迟点来,但是似乎守时是它无上的美德。 我本来认为,这一天应该会有一些事情发生。是不是好事我并不清楚,但应该有一些标志性的事情发生。不过现实地来讲,有很多想要办成的事情都远非能一蹴而就的:它们要么需要大量的精力投入;要么受制于许多现实因素而无法在很短的时间内完成;要么过于天马行空以至于完全没有着力点。 这种愿景的落空使得我不得不再次审视我当前的工作状态。自从冲击以来,...
评论点赞收藏32 天前

小点阵字

在螺蛳壳里做道场,真的可行么? 最近一些事务要求我能够用尽可能少的像素数量绘制一些文字,具体的,我需要保证每个需要被用到的汉字可以被装进 8x8 像素的点阵中。 因故关注过 三言 的同志们可能立刻会想到 丁卯点阵体,它的 7px 尺寸版本正好满足这个要求。不过遗憾的是,现在丁卯点阵体的个人授权已经无法购买了。我实在是不好意思从 内核恐慌 的主页上扣字形下来(以及他们那边用的是 9px 的版本),所...
评论点赞收藏45 天前

Get an Oscilloscope

年轻人的第一台示波器。 对于搞硬件的人来说,示波器几乎是必不可少的工具。但是由于囊中羞涩,很长一段时间我只能通过那个 50 块的 Saleae Logic 山寨逻辑分析仪用 12M 的采样率勉强看一下自己画出来的小东西到底是有什么问题。(我知道这玩意最高是 24M, 但因为毕竟是山寨的,24M 下工作非常不稳定,要持续长时间抓波形只能跑 12M.) 倒没有说 50 块的逻辑分析仪有啥不好——学生时...
评论点赞收藏56 天前

杰理 WTS 格式音频转换和打包

tldr:.mp3/.wav -(ffmpeg)->.pcm -(wtgv2_encode.exe)->.wts -(packres.exe) ->.cfg 一般而言,你应该使用 JLStudio 那个玩意从提示音选项卡中直接生成资源文件的。但如果你的用例比较特殊(比如多项目共享同一个仓库),那么就得自己跑整个流程。 以下是根据 JLStudio 的行为通过 Procmon 抓事件分析得出的过程。...
评论点赞收藏58 天前

[11ty] 增量式地刷新 CDN 缓存

计算机科学中困难的事情有两件:缓存管理、取名,以及差一错误。 刚刚上期我们讨论了如何在 11ty 中将对资产文件的修改传播到内容页。但是结尾发现 CDN 会缓存页面文件本身,使得我们必须要手动刷新页面缓存才能实际应用这个更改。 之前的架构中,由于涉及到 Docker 镜像的推送和拉取,对 CDN 的操作需要异步地进行。由于 Watchtower 已经终止维护,再加上感觉并没有必要专门为了一个静...
评论点赞收藏61 天前

站起来,为你的成果答辩吧

我劝你谨言慎行。 最近这句话又开始缭绕在我的心头。尽管我完全可以简单地扔一句「圈子越大,神人越多;圈子越小,神人越神」然后继续该干啥干啥,但是这一次我却觉得有点小小的心酸。或许是因为在对方身上看到了自己的影子,看到了那个贪多嚼不烂的自己;看到了那个渴望得到认可的自己;看到了那个想要成为学者的自己;看到了那个被批得血淋淋的自己;看到了那个灰心丧气的自己。 疼么?也许吧,但这也是过程的一部分。也许后面...
评论点赞收藏62 天前

公理还是定理?

一个十分有意思的脑力锻炼小游戏(并不小)。 <*ChatServ> 00:18 [Link:Axiom or Theorem?, ] 找到了一个很有意思的视频 rickroll again? 我没那么无聊 tldw: 一个游戏;首先我们定义某种数学结构,然后轮流给出一个命题 如果这个命题无法通过已有的公理推出,那么这个命题就作为新的公理加入 如果这个命题可以通过已有的公理推出,那么这个命题就是一...
评论点赞收藏64 天前

[11ty] 处理资产文件的 CDN 缓存问题

最近在尝试改善这套博客主题的可访问性,这意味着我会经常需要调整样式和脚本。 每次调整都得登录 CDN 后台重置资源文件的缓存,实在太麻烦了。 有没有更简单的方法? <ChatServ> 你戳了戳 Bird rt, send help 很简单,你只要给资源文件带上查询参数就可以了,比如加个版本号啥的 你的页面中只需要指定不同的版本号,自然就不需要手动刷新 CDN 缓存了 我希望你没有自作聪明地去改 ...
评论点赞收藏66 天前

[11ty] 无障碍设计:正确地标识图和表

纸上得来终觉浅,绝知此事要躬行。 正确标识图 在 Markdown 中插入一张图片需要使用如下语法: alt 不过貌似大部分人会把 alt 部分留空,这是不够理想的。一个具有完整语义元素的图片至少需要一个 src 属性和一个 alt 属性; src 用于指定加载图像的 URI, 而 alt 属性则用于说明图片的内容。 alt 部分应该写什么? alt 部分应该对图片做出功能性描述。 想象你在给一位...
评论点赞收藏69 天前

停止 Mac 上的时间机器备份

是时候停止一些无意义的操作了。 最近发觉家里的那台自建 NAS 的性能越来越差了,先是 FreshRSS 开始撞到网关超时,然后是 Gitea 也越跑越慢。虽然迁移到 PostgreSQL 能勉强续一秒,但这总归不是个好事。 直觉上是因为整个存储阵列要被塞满了,所以越来越多的读写负载会发生在那对容量最大的磁盘上;加上现在又有多个服务都会频繁产生写操作,尽管有 PostgreSQL 做缓存,机械硬盘...
评论点赞收藏79 天前

从 Gitea 迁移到 Forgejo

这次我们就没有 FreshRSS 那般的好运咯。 如果你已经在生产环境中使用 Gitea 而且这个 Gitea 实例不仅仅是你自己在用,那么 不要 尝试通过这个方式迁移你的环境:你会丢失所有的 Gitea Runner 秘钥信息、所有的软件包(比如私有 npm 包、私有容器镜像等)、所有的用户配置(比如头像、SSH 公钥、GPG 公钥等)、提交热力图和 Gitea 实例配置。 如果你确实需要迁移到...
评论点赞收藏98 天前

评论里的私信消息

在博客间随机游走的时候,无意间看到了一个博客的评论区中部分评论是带着锁的 [Secret Message]. 非常有趣。更有趣的是这个私密评论是站长回复其他人的评论——如果是其他人回复站长的私密评论实现起来应该不难,但是反过来的话,要怎么靠谱地实现这个东西呢? 容易知道这是一个 WordPress 站点。在 WordPress 下,实现私密评论的方法自然很多。毕竟有 PHP 作为中间层来隔离,我这...
评论点赞收藏110 天前

记得清理你的日志文件

尤其是如果你的 Docker 服务很喜欢打日志的话。 最近发现传家宝机器的磁盘空间不够用了,是 Avail 列显示 0 的那种不够用。虽然这个机器满打满算也就 60GB 的硬盘空间,但是上面也并没有跑什么大型服务:现在它只是一台跑着静态博客的机器——以及还跑着一个万年没更新的 Gitea 实例。1700 多天的 uptime 本可以更长——阿里云擅自重启了一次这台机器,重置了之前已经有 1000 ...
评论点赞收藏110 天前

招魂

我不知道这是否是一种通病,所以忠实地记录并诚实地隐瞒,或许是当下最好的方案。 前一阵子谈到了关于精神世界中的小小冲击。不,我说的不是 AI 带来的震撼,而是这之前的冲击。现在该交代一下后文了:AI 并没能救下我,我也没能救下「我」。我最终将一切建模成了一场感染——具体而言,某种类似于结核分枝杆菌的感染,并将世界暂停在了早发现、早报告、早隔离的实践过程中——还没到早治疗,因为已经差不多确认没救了。 ...
评论点赞收藏111 天前

Annihilation

我的第一本正经读完的英文小说。 考虑到这本小说应该是有中译本的,所以就把「湮灭」这个名字留给中译本了。英语原本[1]还是继续沿用 Annihilation 这个名字。 Annihilation 是……怪诞小说?不确定怎么翻译 Weird Fiction, 就暂且叫它「怪诞小说」好了。上来就搞这一口,可能还是得归结于之前 The Drabblecast 带来的「污染」。技术上来说,之前在 Drabb...
评论点赞收藏111 天前

[11ty] 使用 Pagefind 实现静态站点的搜索

最近发现站点的搜索不太正常,我在需要查找之前的文章时发现按标题搜却怎么都搜索不到,哪怕是英语文章这种理论上不应该出现分词问题的文章也找不到。 那么,正好捋一下在 11ty 中需要怎么接入 Pagefind 做搜索吧,也许是哪里配置有问题? 其实 Pagefind 和 11ty 本身的关系并不大:Pagefind 是一个静态站点索引生成和搜索工具,它并不和任何一个站点生成器绑定。这意味着你可以选用诸...
评论点赞收藏121 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。