Rust 内存管理

Rust 与其他编程语言相比,最大的亮点就是引入了一套在编译期间,通过静态分析的方式,确定所有对象的作用域与生命周期,从而可以精确的在某个对象不再被使用时,将其销毁,并且不引入任何运行时复杂度。 现代编程语言,对于堆上分配的内存(可以理解为 malloc 出来的内存)进行管理,不外乎两种方式:使用者在代码中显示调用函数,回收这部分内存;或者引入自动的垃圾回收机制,在运行时由程序自动管理。 前者的问题是给代码编写者引入了额外的工作,并且很难避免出 bug。后者的问题是会降低程序性能,尤其是对实时性要求比较高的程序。 值类型与引用类型 现代编程语言, »

R6300V2 路由器无痛改装风扇

一直在用淘宝上买来的洋垃圾 Netgear R6300V2 做路由器,刷了梅林固件,一直用着好好的,除了有点烫。千兆网线接口配合群晖 NAS,播放 1080P 的流媒体非常流畅。 后来在路由器上装了爱国软件,方便家里所有无线设备进行爱国主义教育。配置很顺利,不过发现路由器越来越烫了,在设置页面看到 CPU 温度飙升到 80C,并且不再上升,似乎已经达到了 CPU 的温度上限,这个时候 CPU »

网易云音乐 Linux 版 HiDPI 支持

网易云音乐之前和深度合作发布过一个 Linux 版本,可惜疏于维护,比如 Qt5 最近升级之后,迷你播放器和系统托盘菜单界面字体全部不能正确显示(显示为“口口”)。 这点可以通过不使用迷你播放器、系统托盘来绕过。但是除此之外,不支持高分屏这点实在是难以接受。 后来摸索了一下,发现网易云音乐 Linux 版是通过 Qt5 来实现的,而其中大部分的界面元素都是通过 Qt 的 WebKit 来渲染的,而 »

vim 8 内置包管理

作为一个四年的 neovim “老”用户,前段时间尝试从 neovim 迁移到了 vim 8 上。 迁移的原因是,neovim 的主要特性——异步 API ——已经在 vim 8 上实现了。其他的,比如作为一个组建内嵌到其他应用中,目前看来因为种种原因,很难达到理想的目标。将 VimScript 编译到 »

nginScript 初窥

几年前就有消息称,Nginx 官方要实现一个 JavaScript 实现,作为钦点的内置脚本语言。后来这个实现就被称作 nginScript,简称 njs。 这里有来自 Nginx 的一些介绍:https://nginx.org/en/docs/njs_about.html 。 根据介绍,njs 将会以 ECMAScript 5 »