如何在 README 显示正在听的音乐

以网易云音乐为例,效果如下 P.S. 如果上面是白色的,代表我没有在听歌,不过文章末尾我放了一个静态的可以参考 数据怎么获取 简单说一下几种思路: 网易云音乐 API,参考这个 Repo Binaryify/NeteaseCloudMusicApi,里面有一个 「获取用户播放记录」 的接口。此接口返回的并不是直接的一个播放历史,而是需要你根据数量过滤。你需要在两次请求间隔中 diff 一下,如果哪首歌播放次数增加了,那么就是最近在听的 如果你在用第三方客户端, »

理解 Linux 中的 splice(2) - 补充篇

接上文 理解 Linux 中的 splice(2),本篇来探讨一下 splice 的几个参数配置 SPLICE_F_MORE splice 系统调用的 flag 参数可以为一下几个的组合 SPLICE_F_MOVE :一个实际上没有被使用的参数 SPLICE_F_NONBLOCK :非阻塞,需要传入的文件描述符也为非阻塞模式才能生效 SPLICE_ »

理解 Linux 中的 splice(2)

引言 通常我们在进行网络编程的时候,数据的传输过程如下图所示 在一些场景下这个没什么问题的,但是在某些特殊场景下可以优化这个传输过程。比如 Socks5 Proxy 在 CONNECT 之后,会直接透明传输 Client 到 Server 的流量。这个情况下就没有比较将数据从 Socket Buffer 中复制到 User Process 了,因为我们不需要对流量进行任何修改。所以更好的方法是直接在 Kernel »

Differences between read and read_buf in Tokio

记录一下本周遇到的一个问题,下面是最小复现代码 use tokio::{ io::{AsyncReadExt, AsyncWriteExt}, net::TcpStream, }; #[tokio::main] async fn main() -> std::io::Result<()> { let mut stream = TcpStream::connect( »

怎么又是你! too many open files

整理一下前段时间的一个问题。我的 nvim 在某个时间段后就经常发生 too many open files 的问题,导致很多功能都无法正常工作,只能重启 nvim。自己用的笔记本,ulimit 这些参数都是没有改过的,默认值是 1024。一个 nvim 你要用 1024 个 fd,简直是开玩笑。这肯定是 fd »

Redir your local socket with eBPF and aya-rs

本文是对于经典文章 How to use eBPF for accelerating Cloud Native applications 的一个练习。鉴于当前关于 Rust 构建 eBPF 程序的资料比较少,所以写了这篇文章来记录一下过程 截止 2023/04,使用 Rust 来构建 eBPF 除了手动进行 binding »

为什么我觉得 すずめの戸締まり 剧情很奇怪

2023/03/24 看了 《すずめの戸締まり》。以下是观后感,涉及剧透 个人评分(5分制), 作画 5 音乐 4 故事 3 行动逻辑 首先剧情中人物的行动逻辑很有奇怪 第一个便是右大臣。解除了封印并将要石的责任转移到草太身上之后,完全可以逃离主角们的视野之外。为什么要引导主角们前往一个接一个门存在的地方。而且最后直接将喜欢女主角,想要住在其家中为理由强行进行感情氛围渲染,实在很突兀。一般这种初期反派,后面洗白, »