All Posts

  • Published on
    > 我能说我这么多年用 N 卡一直是在跑 X11 么? > > 今天终于能换 Wayland 了 OS: Arch Linux x86_64 Kernel: 5.17.1-arch1-1 Card: GeForce GTX 1060 Resolution: 3840x2160 DE: GNOME 42.0 WM: Mutter ## 背景 Wayland 的支持看上去已经较为完善了. 比如近期 Ubuntu 和 Fedora 都会在 4 月份发布的新版本中默认对于 Nvidia 510版本以上的驱动 使用 Wayland: [Ubuntu 22.04 LTS Will Default To Wayland With NVIDIA For v510+ Driver](https://www.phoronix.com/scan.php?page=news_item&px=Ubuntu-22.04-NV-Wayland-Default) ...
  • Published on
    自从我们迁移到 k8s, 我们观察到 k8s 集群里的 gitlab CI runner 在跑 golangci-lint 的时候比本机跑慢很多. 本机一般几十秒就能搞定的事情, 在跑 CI 的时候, 基本上都要花上几分钟甚至几十分钟. (依项目代码量而异) 当然, 由于 CI 都是自动跑的, 大部分时间我们基本上不会花时间去刻意观察 CI 的执行. 因此慢一点其实也不会影响什么. 这个周末正好趁疫情居家哪也去不了, 研究了一下怎么想办法将速度优化. 起初我以为是因为普通云盘的 IO 性能低下导致的问题, 因为我们的节点的 CPU 和 内核配置都还算不错, 不至于跑个 CI 都会因为这个影响到速度. 但是经过研究, 我发现其实大部分时间花在重复地一次又一次地加载go mod 和 重复地进行代码静态分析. ...
  • Published on
    > Telepresence 是一个开源工具,可让您在本地运行单个服务,同时将该服务连接到远程 Kubernetes 集群 https://www.telepresence.io/about/ ## 为什么需要 Telepresence k8s pod IP 由 CNI 分配, 通信是走 overlay 网络, 容器之间的通信都是基于cluser IP. cluser IP 并不像我们平常所用的 IP. 它只能在 k8s 集群内部使用. 虽然我们可以通过配置 overlay 网络的网段 跟 k8s node 的网段在一个大的子网段, 然后通过 vpn 把对应网段的流量路由到overlay 网络, 我们完全可以通过 ...
  • Published on
    ## 简单的代码, 问题不简单 今天有人发了段代码给我, 然后问输出结果是什么? 这段代码看上去非常简单, 但是确是很有迷惑性. ```go // a.go package main import ( "fmt" "time" ) var x int64 = 0 func storeFunc() { for i := 0; ; i++ { if i%2 == 0 { x = 2 } else { x = 1 } } } func main() { go storeFunc() for { fmt.Printf("x=%v\n", x) // x=0 time.Sleep(time.Millisecond * 10) ...
  • Published on
    ## 问题现象 1. 在Gnome Terminal 直接执行 `mpv filename.mp4` 报错: > mpv: symbol lookup error: mpv: undefined symbol: vkCreateWaylandSurfaceKHR 2. 使用 smplayer 打开同样的文件, 也是同样的报错. ## 解决办法 这个解决办法很简单. 但是我要说的是, 这个问题其实我花了很长时间才解决, 并且不是我自己想到的. 产生这个问题的时候, 一般是更新了某些软件之后. 当时我想, 这个是视频相关的, 可能跟显卡驱动相关. 但是后面发现, 即使重启系统, 或者重新编译mpv, 这个问题还是不能解决. 但是有时候重启系统后又能成功打开文件. ...