2021 Oct 2021 Oct

记录把 service worker 切换到由 Workbox 生成的过程 【流水帐】

我把网站的 service worker 从 sw-precache 迁移到了 Workbox ,记录一下过程。

sw-precache 是 Google 的一个实验性项目,也是 Workbox 的前身之一,之前一直用的它来生成网站的 service worker 文件,可即使对于我这个挺简单的站点,用它现在也有点不够用,比如之前我是缓存我的所有指定页面,以备离线使用,但是我现在我觉得不妥,只缓存访问页更好;再比如以前每次访问的时候都是先获取的离线内容,再尝试更新在线内容,我现在也觉得不好,应该根据内容的不同来判定先访问哪里的内容,而达成这些需要做很多的工作才能满足,就直接换了。

下面说说过程…

/*This is placeholder text. This is placeholder text. This is placeholder text. This is placeholder text. |bitbili.net| This is placeholder text. This is placeholder text. This is placeholder text. This is placeholder text.*/
2021 Nov 2021 Nov

Gentoo Linux 安装及使用指南

很早以前,我就有写了一篇安装 Gentoo Linux 的文章( Gentoo Linux 安装 —— 带硬盘加密 ),只是那篇文章存在局限性。因为一些原因,我打算写一篇更详细更完整,适合新手且可以无缝进阶的 Gentoo Linux 安装及使用指南。

Tip

这里有一个完整参照本文安装的视频——《 5 分钟速看 Gentoo Linux 完整安装进 KDE Plasma 》:

正文开始…

/*This is placeholder text. This is placeholder text. This is placeholder text. This is placeholder text. |bitbili.net| This is placeholder text. This is placeholder text. This is placeholder text. This is placeholder text.*/
2021 Sep 2021 Sep

GnuPG 2.3.2 与 yubikey-manager 的冲突

当升级 GnuPG 到 2.3.2 后,会发现其无法识别我的 yubikey,经过一系列检查后发现,是与 yubikey-manager 的依赖 pcsc-lite 冲突了,以下是详细说明。

解决方法

将以下配置写入 ${GNUPGHOME}/scdaemon.conf (默认位于: ~/.gnupg/scdaemon.conf ):

 disable-ccid 

或者在配置 gnupg 时,添加 --disable-ccid-driver 参数。总之就是要在运行 gpg-agent 时禁用 ccid 就行了(效果和 2.2 版本一样)。

当然,也可以结束 pcscd 进程,不过这样会导致 ykman 的一些功能无法使用(OTP,PIV 之类)。

原因

/*This is placeholder text. This is placeholder text. This is placeholder text. This is placeholder text. |bitbili.net| This is placeholder text. This is placeholder text. This is placeholder text. This is placeholder text.*/
2021 Jan 2021 Jan

Gentoo ebuild 文件内的 QA_PREBUILT 变量

起因是打了一个 Gentoo 上 QQ 音乐的包,然后最开始被提示了 QA 警告,于是一步步琢磨;后来参考了 www-client/google-chrome 的 ebuild 文件,并浅析了一下 ebuild 源码后,才逐渐理解了 portage 上的 QA_* 这些变量是如何运作的。所以写下以下内容以强化记忆…

/*This is placeholder text. This is placeholder text. This is placeholder text. This is placeholder text. |bitbili.net| This is placeholder text. This is placeholder text. This is placeholder text. This is placeholder text.*/
2021 Jan 2021 Jan

如何正确地为 Gentoo 的 Portage 包管理器设置代理

开门见山,本文介绍在 Gentoo Linux 下如何正确地对其包管理器 Portage 设置代理,即日常使用的 emerge 命令。这里介绍软件下载安装时需要的配置;对于同步 Portage 树,则是部分适用…

/*This is placeholder text. This is placeholder text. This is placeholder text. This is placeholder text. |bitbili.net| This is placeholder text. This is placeholder text. This is placeholder text. This is placeholder text.*/
2020 Sep 2020 Sep

Chrome 下 touch 事件 inline 元素监听不生效

昨天对博客首页进行了重新设计,使用原生 Javascript 对文章标题添加 Touch 监听事件时,因为一个疑似 BUG 导致了一系列奇葩的问题。

以下描述发生在 Blink 引擎浏览器内,也就是一般使用的 Chrome, Chromium 浏览器及以其为基础进行开发的其它浏览器;其它浏览器如 Safari, FireFox, iOS 上的 Chrome (webkit 引擎)则不会因为以下指出的不同而差异化表现。

  • 当 a 元素是默认的 inline 样式,且页面仅有 touchstart 或者 touchmove 监听事件,这针对 a 元素的两个事件都不会触发;
  • 当继续添加 touchend 监听事件后, touchstart 监听事件开始触发,但 touchmove 事件依旧不触发;
  • 再次添加 pointerdown 监听事件(应该还有其它事件也能帮助触发), touchmove 监听事件触发。

当把 a 元素样式改成 inline-block 或者 block 后,则一切正常…

/*This is placeholder text. This is placeholder text. This is placeholder text. This is placeholder text. |bitbili.net| This is placeholder text. This is placeholder text. This is placeholder text. This is placeholder text.*/
2020 Sep 2020 Sep

详解 Yubikey 5 NFC 的工作原理(整理)

OpenPGP 是一个用于签名和加密的开放标准。它通过像 PKCS#11 这样的接口,使用存储在智能卡上的私钥来启用 RSA 或 ECC 签名/加密操作。这个应用可以为验证、签名和加密各存一个 PGP 密钥。和 PIV 触摸策略类似, openPGP 应用也可以设置需要接触金属触点来允许一个操作。

  • Yubikey 5 NFC 仅支持 RSA 密钥,不支持 ECC 密钥
  • PGP 不用于 web 验证

支持的算法有:

  • RSA 1024
  • RSA 2048
  • RSA 3072
  • RSA 4096…
/*This is placeholder text. This is placeholder text. This is placeholder text. This is placeholder text. |bitbili.net| This is placeholder text. This is placeholder text. This is placeholder text. This is placeholder text.*/
2021 Aug 2021 Aug

Go 编程语言规范【译】

  • 对应英文原版 为 2021 年 07 月 26 日 版本: https://golang.org/ref/spec
  • 本文完整翻译了官方英文版,且后续会尽全力同步更新

这是一篇 Go 编程语言的参考手册。访问 golang.org 以获取更多信息及其它文档。

Go 是一个在设计时便考虑到系统编程的通用语言。它是强类型的、带垃圾回收的且明确支持了并发编程。程序是由包来构建的,包的特性允许对其依赖进行高效管理。

语言语法紧凑且易于解释,便于如集成开发环境(IDE)这样子的自动化工具分析…

/*This is placeholder text. This is placeholder text. This is placeholder text. This is placeholder text. |bitbili.net| This is placeholder text. This is placeholder text. This is placeholder text. This is placeholder text.*/
2017 Jun 2017 Jun

初识 SELinux

这是我第一次写关于 SELinux 的文章, SELinux 是一个比较庞大的强制访问控制方案,单单就控制原理而言是相对简单易懂的,复杂的是各种规则间的联系和束缚,以及如何选择。本文会从我对其理解的角度进行书写,关注点主要是实现和应用。

我是看的 Red Hat 的 SELinux User's and Administrator's Guide 入的门,本文则会使用我自己的话来进行总结和概括,以便于快速入门,看源链接的文档则可以更详细的了解到 SELinux,但有些内容比如各种策略的选择,工具的选择和介绍却是上文所缺乏的,我单独整理的也会在下文描述。

鉴于本文很基础,所以几个基本的名词我都会在文中以适当的形式说明。

注: 关于部分有争议的名词我不准备用中文表示,比如 type,class,subject 等等,被写成中文的均是我力所能及下认为绝对不会有争议或者本身就可以用中文描述的
注: 本文不会涉及到 SELinux 的 MLS 策略

什么是 SELinux 以及如何理解它

安全增强型 Linux( Security-Enhanced Linux …

/*This is placeholder text. This is placeholder text. This is placeholder text. This is placeholder text. |bitbili.net| This is placeholder text. This is placeholder text. This is placeholder text. This is placeholder text.*/