2023:浏览器从 A 到 Z

2023:浏览器从 A 到 Z

自言语约 2.9 千字

将 A-Z 逐一输入到 Google Chrome 的地址栏里,Google Chrome 都会自动补全出哪些域名呢(诶?)

A

assemblyscript.org

AssemblyScript 是一个语法和 TypeScript 接近、但是编译产物是 WebAssembly 的语言。过去我用 AssemblyScript 重写了 cidr-tools,把性能翻了一倍(cidr-tools-wasm);不过后来我用 TypeScript 又重写了一遍,结果性能再翻了 10 倍(fast-cidr-tools)。事实上,在计算密集型的场景下 AssemblyScript 的优势也不一定明显。

apple.com.cn

今年新买了一台 MacBook Pro 16' M2 Max 64G 2 TiB 作为我的主力机、换掉了之前的装了黑苹果的 Lenovo Legion Y9000X 2020。

B

bgp.tools

过去一年,我逐步用 bgp.tools 代替了 bgp.he.net 作为我的 BGP 查询工具。bgp.tools 支持查看某一个广播的的 prefixes 的 Connectivity 路由图、而 bgp.he.net 仅支持查看一个 ASN 全部广播的 prefixes 的汇总 Connectivity 路由图。

bun.sh

Bun 是一个基于 JavaScriptCore 和 WebKit、使用 Zig 编写的 JavaScript Runtime,自带编译器和打包器、支持直接执行 TypeScript 和 JSX/TSX。我把 Sukka/Surge 项目(自用的 Surge 规则组)从 Node.js 迁移到 Bun,加上基于 SQLite 的 Cross Build Cache 以后,项目的编译时间从 31 秒缩短到 10 秒。

C

caniuse.com

查询 Web API 和 ECMAScript Feature 的浏览器兼容性,部分数据来自 MDN 的 Compat Table。

D

dashflare.skk.moe

Dashflare 是我使用 React 编写的,基于 Cloudflare API 的非官方 Cloudflare 控制面板。4 年前用 Cloudflare Partner(Legacy SKU)的方式启用了 Cloudflare 的 CNAME Setup,但是自从 Cloudflare Partner Legacy 被 EOL 以后,Cloudflare Partner API 就无法使用了。所幸 Cloudflare Zone API 仍然可以被用来管理 DNS,所以我就用 React 写了一个不依赖任何服务器的、纯前端的控制面板,后来又陆陆续续加了「开关 IPv6」、「切换 Universal SSL 的 CA」、「切换 Universal SSL 验证方式」、「快速启用 ETag 支持」等功能。

dash.cloudflare.com

Cloudflare 官方的控制面板。我时不时会上去检查一下各个网站和 API 的 Cache 命中率和 WAF 日志。

E

eslint.style

在 ESLint 的下一个大版本 ESLint 9.0.0,ESLint 决定弃用所有和格式化有关的规则(如缩进、换行、空行)、并将这些规则移除出 ESLint 项目。这些规则由 Anthony Fu 为首的 ESLint Stylistic 项目维护。

Rel1cx/eslint-react

使用 React 的对 eslint-plugin-react 一定不会陌生。最早由 yannickcr 创建,现由 ljharb 劫持 维护。ljharb 为了无谓的「拒绝任何 Breaking Changes、兼容 Node.js 4」、引入了大量无用的 polyfill,不仅浪费磁盘空间、还拖累运行速度。eslint-plugin-react 也不支持通过 TypeScript 获取类型信息,导致规则的准确性大打折扣。考虑到 ljharb 冥顽不化的 固执己见,Rel1cx 决定全新重写一版 React 的 ESLint Plugin @eslint-react/eslint-plugin。目前我已经将 eslint-plugin-react 全部迁移到了 @eslint-react/eslint-plugin 上,并且我也推荐所有使用 TypeScript 的 React 项目进行迁移。

F

foxact.skk.moe

foxact 是我创立并活跃维护的开源 React Hooks/Utilities 库。即使目前已经有许多现成的 React Hooks 开源库,在阅读了它们的源码后,我觉得它们都不达标:阿里的 ahooks 在 Render Phase 期间读写 React Ref、并不 Concurrent Rendering Safe;usehooks-ts 在应该使用 useSyncExternalStore 的地方滥用 useEffectreact-hookz/web 则有着一大堆过于抽象/错误的 Hooks 封装。因此我还是决定重复造一次轮子,维护一个 React 18 优先、支持 React Concurrent Rendering 和 React Server Component、TypeScript 友好的 React Hooks 库,目前 foxact 除了包含一些常用 Hooks 以外,还包含了一些 React 项目中常用的组件和实用函数。

fast.com

fast.com 是 Netflix 提供的一个测速网站,所有测速节点都来自于 Netflix 的 CDN 节点。

G

github.com

2023 年,我在 GitHub 产生了 2664 次贡献,向 89 个开源项目贡献过代码,有 115 个来自我的 PR 被合并。

H

hv-monster.skk.moe

HentaiVerse Monster Database 是我给来自 E-Hentai 的页端 RPG 小游戏 HentaiVerse 的周边项目,记录、统计和展示玩家创建的怪物。

I

ip.skk.moe

ip.skk.moe 是我 2019 年建立的查询 IP 的网站,最初一开始只是一个简单查看当前 IP 的网站,后来陆续新增了许多新功能。2023 年我用 Next.js + React 18 重写了 ip.skk.moe,并新增了一系列功能:

J

jsdelivr.com

jsDelivr 是一家由多家 CDN 供应商和 DNS 供应商赞助的开源 CDN 服务。2023 年我配合 jsDelivr 打掉了超过 80 个滥用 jsDelivr 免费服务的 GitHub 仓库,平均每月为 jsDelivr 节省了 600 TiB 的流量,约占 jsDelivr 总流量的 6%。

2023 年 jsDelivr 新上线了 Globalping 平台,可以使用通过全球遍布 70 多个国家、260 多个城市的 900 多个探针测试 ICMP、DNS、MTR、traceroute 和 HTTP。

K

binary-factory.kde.org

KDE Connect 是一个开源、免费、跨平台、比 AirDrop 更强大的多设备间数据同步工具。截止至 2023 年,KDE Connect for macOS 版仍然没有发布稳定版,试用每夜版(Nightly)需要前往 KDE 的 CI 下载。

L

localhost

严格来讲,localhost 也算是一个域名。

lab.skk.moe

我个人的试验场,主要会 Bootstrap 一些 idea 和体验最新的 Web API。2023 年我为 lab.skk.moe 新增了下述功能:

M

mail.office365.com

skk.moe 的域名邮箱托管在 Microsoft 365 上。

mantine.dev

一个 React 组件库,完成度很高。2023 年释出了新的大版本 Mantine v7。Mantine v7 全部使用 PostCSS 和 CSS Modules 重构,提供了对 React Server Component 和 Next.js App Router 的第一方支持。

N

npmgraph.js.org

npmgraph 是一个可以查看 npm 包依赖关系的网站,可以方便的查看一个 npm 包的所有间接依赖和依赖关系。例如 通过 npmgraph 查看 eslint-plugin-react@7.22.0 就可以看到 冥顽不化的 ljharb 为了所谓的「使 eslint-plugin-react 向下兼容 Node.js 4」而引入了超过 70 多个间接依赖(全部都是 Polyfill)。

nolyfill

nolyfill 是我为了对抗 冥顽不化的 ljharb 的众多无用 Polyfill 的项目。nolyfill 利用 Package Manager 的 overridesresolution,将 ljharb 的 Polyfill 替换成行为完全一致、但 size 只有数 KiB 的包。

nolyfill 还提供了 CLI,可以在项目目录下执行 npx nolyfill 命令就可以查看项目中那些依赖可以被 nolyfill 替换、然后可以使用 npx nolyfill install 命令执行替换。一般替换后,node_modules 体积可以减少超过 50 MiB。

O

one.dash.cloudflare.com

Cloudflare 的 Zero Trust SASE 方案「Cloudflare One」,我主要使用 Cloudflare One 提供的 DNS 服务。

P

play.swc.rs

SWC 是一个用 Rust 编写的 JavaScript 编译器,目前已经可以在几乎所有场合替代 Babel、TypeScript Compiler 和 Terser。play.swc.rs 是 SWC 的 Playground,有的时候我会在上面寻找 SWC Bug 的最小复现。

Q

quillbot.com

一个基于 AI 的文字纠错和美化工具。我只简单体验过,感觉不如配合专门的 System Instruction 的 ChatGPT:

You are an advanced and intelligent grammar correction AI assistant, responsible for fine-tuning and enhancing text content. You will take the user inputs, rectifying spelling mistakes and grammatical inaccuracies, you are endowed with the capability to streamline clarity, enrich the language spectrum, and condense verbosity, ensuring concise and compelling output. All corrections and enhancements should be seamlessly integrated to maintain the user's unique voice and tone, ensuring the end message aligns with their intended communication.

R

react.dev

React 的官网和文档。2023 年我为 React 文档提交了一个 PR,将 React 文档中的 Error Decoder 迁移到新版网站。这个 PR 历时 4 个月,我独自完成了初版的 PoC,并和多位 React Core Team Member 合作完成了最终的版本。因为这个 PR,我还在 Twitter 上受到了 Rick Hanlon 和 Dan Abramov 的感谢:

来自 Rick Hanlon 和 Dan Abramov 的感谢

ruleset.skk.moe

2022 年我 在 GitHub 上开源了我自用的 Surge 的规则组,2023 年我为所有规则组增加了 Clash Premium 支持。大部分数据通过 GitHub Actions 每日从上游同步数据。其中比较有亮点的规则组:

完整规则组可以在 GitHub 仓库的 README 中查看。

S

skk.moe

我自己的域名,嗯。

speedtest.net

Ookla 的测速网站。

T

twitter.com

虽然 Twitter 已经被马斯克重命名为 X 和 x.com,但是我还是习惯称呼它为 Twitter。

U

undraw.co/illustrations

unDraw 提供 PNG 和 SVG 格式的免费、可商用的矢量图素材。

V

vercel-dns.skk.moe

我的 skk.moe 域名的 NS 托管在 Vercel DNS 上。不过我觉得 Vercel 自己的 DNS 面板功能不够强大,所以自己写了一版 开源的基于 Vercel API 的 DNS 面板,开源在 GitHub SukkaW/vercel-dns-console

W

N/A

X

xdaforums.com

2023 年 6 月的时候,XDA 论坛的域名不再使用 XDA 资讯主站的域名(xda-developers.com)的子域名,而是使用了新的独立域名 xdaforums.com

Y

youtube.com

全世界最大的视频网站。

Z

zod.dev

一个开源的、TypeScript 友好的、类型完备的数据类型校验库。我一般在项目里用 zod 校验后端 API 返回的数据、提供「安全的」类型断言 以及在后端瞎搞的时候有理有据地甩锅给后端

2023:浏览器从 A 到 Z
本文作者
Sukka
发布于
2024-01-04
许可协议
转载或引用本文时请遵守许可协议,注明出处、不得用于商业用途!
如果你喜欢我的文章,或者我的文章有帮到你,可以考虑一下打赏作者
评论加载中...