分类: 技术

54 篇文章

深入理解开源许可证(Apache,MIT,GPL,BSD,CC)
深入理解开源许可证(Apache,MIT,GPL,BSD,CC) 前言 如果说有什么东西正在为开源世界保驾护航,那就一定不能不提到开源许可证(Open Source License),正是因为这些各不相同的开源许可证的共同支持下,才有了现在这么繁荣的开源软件社区。 但是问题是,这些开源协议太多了(至少有上百种!),即使是主流的几个开源协议,由于其法…
thumbnail
耗时半天,我用 Kotlin 实现了 helang 何语言
耗时半天,我用 Kotlin 实现了 helang 何语言 起因 事情是这样的:一天下午,我偶然看到了这个仓库: kifuan/helang: 何语言,次世代赛博编程语言。 (github.com) 有人用 Python 写了一套解释器,可以运行何同学同款代码: u8 forceCon = [68]; forceCon[1 | 2 | 6 | 7 …
thumbnail
解决 Argon 主题浏览页面时滑动过快的问题
解决 Argon 主题浏览时页面滑动过快的问题 问题发现 Argon 这个主题也用了不短的时间了,在使用的过程中,有一个奇怪的问题一直困扰着我 —— 那就是当使用鼠标滚轮滑动界面时,滑动速度远超预期,让人十分烦恼。今天闲下来了以后,便开始着手探索这个问题。 问题定位 首先,并不是所有的 Argon 主题都有这个问题,但也并不是我一个人有这个问题 —…
thumbnail
解决 Windows 11 在 HDR 模式下截图 Edge 浏览器界面时画面过曝的问题
解决 Windows 11 在 HDR 模式下截图 Edge 浏览器界面时画面过曝的问题 问题复现 众所周知,Windows 11 内置了 HDR(高动态色域) 支持,当我们的显示设备支持 HDR,并启用 HDR 时,我们便可以看到比平常(SDR)更细腻的颜色。但是,默认情况下,当我们在 HDR 模式下试图使用任何截屏工具(甚至录制工具)截取 Ed…
Forge 开发经验 —— 创造一个通过消耗耐久值进行合成的物品
Forge 开发经验 —— 创造一个通过损坏耐久值进行合成的物品 如果你玩过工业 2,你应该知道“锻造锤”这个物品,它可以通过消耗耐久值来将矿物锻造成矿物片,但是实际上“消耗耐久值合成”这个功能在原版是不受支持的,那么,应当如何实现这个功能呢? 环境:Minecraft 1.18.2, Forge 40.1.0, Mapping 'parchmen…
有关 Kotlin 具名参数形参传参顺序导致输出结果发生改变问题的一些探索
有关 Kotlin 具名参数形参传参顺序导致输出结果发生改变问题的一些探索 具名参数 众所周知,Kotlin 拥有一种叫做具名参数(Named arguments)的特性,它在需要跳过可选参数,或是调整参数顺序的地方十分有效。 例如如下拥有五个参数,且后四个参数为可选参数的函数: fun reformat( str: String, normali…
Jetpack Compose for Desktop 使用过程中遇到的几个大坑
Jetpack Compose for Desktop 使用过程中遇到的几个大坑 最近在用 Jetpack Compose for Desktop 写一些好玩的,用的时候遇到了很多大坑,在这里总结如下: Binary distribution 无法访问 ClassLoader Resources 我们有时候一定会希望从 jar 内部读取资源,这个时…
thumbnail
ASM 那点事 —— 让 BungeeCord 允许 authlib-injector 中非 ASCII 的玩家 ID 连接
起因 前些天在某个群跟群友聊天时,偶然听说了当一个符合 authlib-injector 规范的以非 ASCII 玩家 ID 的玩家连接 BungeeCord 时,BungeeCord 会以玩家 ID 字符不被允许为由禁止玩家加入服务器。这个问题令我很感兴趣,思考了一番以后,决定为 authlib-injector 贡献一个功能来解决这个问题。 定…
有关 C++ 指针(*)和引用(&)区别的小结
众所周知,C 语言存在一个叫做指针的东西,我们可以用指针来指向一个值的内存地址,然后进行内存地址各种操作。但是在 C++ 中,又多了一个叫做引用的东西,这二者之间存在着细微的差别,通过研读了知乎上的一篇文章(下),对于我之前不太明白的地方,作出了如下小结: 指针可空,引用不可空 指针可以改变指向,也就是说转而指向其他对象,但是引用却是不可变的 指针…