Welcome to sxyz.blog!
sxyz's 90s Webpage!
Posts
Why I Switched to Tab Indentation
Wed, Jul 5, 2023
曾经,我是 Space 的忠实粉丝,写 JavaScript 时,我用 2-space 缩进;写 Python/Rust 时,我用 4-space 缩进;写 Go 时,我用…… 好吧,它只能用 Tab。 直到去年,看到 Jake Archibald 推文,我又开始重新思考缩进的本质,并从 Space 过渡到了 Tab: Tab 本身就是专门缩进的字符…
Neovim Asynchronous Formatting Exploration
Mon, May 15, 2023
很长时间以来,我都在以同步的方式格式化代码,而这么做的唯一原因就是实现简单,我只需要在文件保存前的 BufWritePre 事件中以阻塞的方式调用 vim.lsp.buf.format() 即可轻松完成,就像这样: vim.api.nvim_create_autocmd("BufWritePre", { group = group, buffer = bufnr, callback = function() vim.lsp.buf.format { bufnr = bufnr } end }) 但它有个致命问…
Bypassing Cloudflare Fingerprint Shields
Sat, Apr 22, 2023
最近才知道,除了 TLS 指纹,竟然还有 HTTP/2 指纹,这两种 Cloudflare 都有采用,这篇博客介绍如何绕过它们。 起因 最近发现之前写的搜图 Bot 坏掉了,这个 Bot 接入了 3 个搜索后端,出问题的是 ascii2d.net。由于它最近套上了 Clo…
My macOS Configuration
Thu, Dec 8, 2022
这篇文章记录下,一个新的 macOS 需要做的配置,和安装的软件。 键盘布局 使用 Colemak 键盘布局,它比传统 QWERTY 更高效、合理。 在 System Settings - Keyboard - Input Sources - Edit… 中添加 Colemak 以替换 ABC,重新登入系统布局生效。 系统设置 # Auto hide the menubar defaults write -g _HIHideMenuBar…
Functor, Applicative, Monad Explained
Thu, Nov 10, 2022
序言 这篇文章是对原文 Functors, Applicatives, And Monads In Pictures 的翻译,由 Aditya Bhargava 撰写,翻译时已取得作者授权。 它是了解函数式编程非常棒的一篇文章,但它的两篇中文译文已不再可用(404、全部图片丢失),另外仅剩的一篇却是以 Kotlin 为导向的,因此…
Implementing AES Encryption Algorithm from Scratch
Fri, Oct 14, 2022
介绍 AES(Advanced Encryption Standard)是由 NIST(National Institute of Standards and Technology,美国国家标准局)于 2001 年制定的“对称加密算法”,目的是为了取代当时已不安全的 DES 算法。它是 Rijndael 算法…
Making Hugo Use React
Thu, Sep 1, 2022
最近把博客主题又双叒叕重写了一遍,嘛,生命不息,折腾不止。依然基于 Hugo,但这次把 React 缝合进去了,使用 Vite 构建前端,Tailwind CSS 编写样式,这篇博客记录下整个折腾过程。 新主题在这 https://github.com/sxyazi/hugo-theme-lavias 数据源 由于 Hugo 是一个…
Golang Concurrent Cache Practice
Tue, Aug 30, 2022
并发缓存,顾名思义就是让缓存可以在多个并发的 goroutine 中共享、交错使用,这在爬虫程序中尤其常见,每个新的爬虫任务都希望能够“实时地”复用之前,或正在进行中的任务结果,从而避免重复的网络请求开销。 这篇文章,以 yande.re…
React Hooks Coding Pattern Changes
Sun, Jan 9, 2022
前言 在 React 16.8 中,引入了 Hooks 的概念,它旨在更好的复用“状态逻辑”。React Hooks 的核心思想就是“状态+行为”,其中行为指的是“控制状态的逻辑”。 像人们所熟知的那样,模板代码可以通过组件化的形式复用,而在 Hooks 出现…
C++ References and Const
Mon, Nov 22, 2021
基本概念 引用的本质就是指针,下面两行代码的底层逻辑是一致的 int *p = &a int &ref = a 如果添加 const 限制词,表示不能通过 *p 或 ref 间接修改 a 的值 const int *p = &a const int &ref = a // 等价于 int const *p = &a int const &ref = a 一般常用于参数声明,如 void foo(const int…
Next Page
Under Construction New! Generate your own 90s page here! Under Construction