背景

Go 项目用的是 GitLab CI/CD + Kubernetes 执行器。之前一直有点慢,最近用 ko 优化了一下流程,记录一下。

阅读全文 »

neovim 0.4.4 to 0.6.1

直到 2 月份我用的都是 nvim 0.4.4,去年 0.5 发布的时候没有更新,然后 2 月初直接更新到了 0.6.1,并且把配置改成了 lua,再陆陆续续用了 2 个月,划个水写点东西记一下。

阅读全文 »

说点啥

之前的文章介绍了一下 io_uring 的基本使用流程,实现了打印文本到 stdout,用到的功能比较简单(在 archlinux 的 man 里给了一个更加完整的 stdin/stdout 的 echo 例子)。打印的我是在 5.4 版内核的系统实现的,5.4 的 io_uring 比较简单,支持的 feature 和 op 都不多,目前最新的 5.13 版本,新增了非常多的内容(io_uring.c 文件从 4k 行到 10k 行)。

阅读全文 »

io_uring

syscalls

io_uring 目前通过 3 个 syscall 来实现功能:io_uring_setup, io_uring_enter, io_uring_register

PS: 我目前的 kernel 是 5.4 版本,更完整的内容需要参考最新文档

阅读全文 »

0. 写在前面

之前一直在用 Linux Mint Cinnamon 19.1,考虑到没有 Wayland 加成以及飞行堡垒显卡散热不太行,所以 Linux Mint 20 发布后上车了 Xfce,选择完全重装系统的方式,所以装完以后折腾了一下。

不过系统装了有几天了,按照我的记忆力八成是记不住什么东西的,能回忆多少是多少吧~

阅读全文 »

周末按照 CASPaxos 的论文尝试实现了一下这个算法,CASPaxos 算法本身没有什么困难的地方,Paxos + CAS,主要是算法上几个要点:

  1. prepare/accept 完全和 Paxos 一样,state+value 作为一个 Paxos 算法中的 value 传递。
  2. 对于一个空值,proposer choose value 和 Paxos 相同,对于一个非空值,proposer 认为 prepare 最终状态满足期望状态时,依然可以 choose value。
  3. 新 value 成功写入后,不能认为新 value 就是当前状态的 value,必须有 read 操作才能确定。
  4. read 也要有 accept 步骤的,否则会脏读。
阅读全文 »

问题描述

存在一个 orders 表,有 id, uid, gid 三个字段,查询同时存在 gid 为 1 和 2 的 uid

这里给出了 3 条 sql 语句和相关 EXPLAIN 结果(结果我就不排版了)。

阅读全文 »

传送门: edit-distance

这题是比较简单的 DP 题, 状态 D[i][j] 为子串 word1[..=i] 到 word2[..=j] 的最小编辑距离, 状态转移为

阅读全文 »

起于一个悲伤的故事

前段时间放公司用的 ducky 2108s 突然坏了, 这可是我的第一块机械键盘, 贼鸡儿难受. 难受完了折腾了块 GH60 HHKB 配列放公司, 这不是第一次折腾了, 所以总体还是比较顺利的.

阅读全文 »
0%