IT技术博客大学习 共学习 共进步

技术文章精选

低噪声、高可扫读;标题、摘要、来源、标签一目了然。

最新文章

采集自各技术站点的近期文章。

IT 安全/ 2026-05-10 18:36:52 / 浏览 0

Postmortem: 关于 xzutil 后门事件的一些事后复盘

xzutils 后门事件是近年来最具代表性的开源供应链攻击案例之一。本文不是重复介绍漏洞原理,而是从 FreeBSD 维护者的角度,复盘这一事件如何影响系统发行版的第三方软件引入流程。 文章指出,FreeBSD 最终没有受到实际影响,很大程度上来自其重写 build 部分、删除用例代码等工程实践。但作者也坦承,这并不意味着流程无懈可击,尤其是在使用上游签名 tarball、比较 git 内容、运行构建脚本等环节,仍然存在被攻击者利用的空间。 最值得关注的是,文章把供应链攻击的目标从“最终用户系统”前移到了“维护者本人”。如果维护者在本机、非隔离环境中执行下载来的代码或生成脚本,攻击者完全可能先攻破维护者环境,再进一步污染下游生态。 这篇文章适合关注开源治理、发行版维护和软件供应链安全的读者阅读。它的价值不在于给出复杂技术细节,而在于提醒团队重新审视日常维护流程中的默认信任。

IT 系统架构/ 2026-05-10 18:35:06 / 浏览 0

嵌入主线程消息循环的任务调度器

这篇文章记录了 soluna/ltask 在移植到 wasm 和非 Windows 平台过程中遇到的一个典型工程难题:如何在主线程事件循环中执行特定任务,同时仍保留原有多线程调度模型。 问题的核心来自图形 API 和平台约束。sokol 并非线程安全,OpenGL 又依赖当前线程状态,而 wasm 环境下主线程、worker、pthread API 的边界进一步放大了调度复杂度。 作者的解决思路不是重写整个调度器,而是在 ltask 中“打洞”:让某些必须在主线程回调中执行的 Lua 任务,临时从调度表中移出,由主线程接管执行,完成后再归还给调度器。 文章最有价值的地方,是把 coroutine、Lua 虚拟机、C 栈、主线程事件循环和图形 API 约束放在同一个工程场景中分析。它不适合泛泛阅读,但对做游戏引擎、wasm 移植或复杂运行时调度的开发者很有参考价值。

IT 其他/ 2026-05-10 17:49:31 / 浏览 0

git submodule 与 subtree 的异同

很多团队在拆分大型 Git 仓库时,都会遇到 submodule 和 subtree 的选择问题。本文围绕两种方案的实际维护体验展开分析,而不是只停留在命令层面对比。 作者认为,submodule 更符合“仓库独立治理”的设计目标,适合需要清晰边界、独立版本管理和长期维护的大型项目;而 subtree 虽然使用门槛更低、clone 更方便,但容易造成代码冗余和仓库持续膨胀。 文章比较有价值的地方在于,它没有单纯强调“哪种更简单”,而是从架构治理、团队协作和长期维护成本角度讨论问题,适合已经进入中大型工程阶段的团队参考。 如果你正在做 monorepo 拆分、多仓库治理,或者维护复杂依赖关系,这篇文章值得一读。

IT 其他/ 2026-05-10 17:39:55 / 浏览 0

C++ 中的 main 定义

    新的 C++ 标准中 不允许给 main 指定 linkage-specification 了。     当然,考虑到原本 main() 也是 C 运行环境在开始运行程序的时候调用的, 而 C 运行环境自然也预期 C linkage,即不按照 C++ 的习惯对符号根据参数增加名字前缀, 因此大部分编译器在遇到 C++ 程序定义全局 main() 的时候也会按照习惯采取 C linkage 方式去翻译。这一规则首先被 GCC 采纳,随后 LLVM 也跟进了。     然而我今天遇到一个奇葩彻底把我雷到了。

IT 互联网/ 2026-05-07 14:12:03 / 浏览 20

OpenClaw 发展历程表:从 clawdbot 到 openclaw

这份时间线,是从 v2026.1.5 开始往后捋。按 release 命名和说明来看,这一版基本可以当成项目正式进入 clawdbot 阶段的起点。后面它先经历了 clawdbot、Clawdbot 这几个写法上的变化,中间还短暂改名成过 Moltbot,直到 v2026.1.29 前后才真正把名字切到 openclaw。

IT 奋斗/ 2024-03-12 22:57:01 / 浏览 2,940

竞业协议的相关文章收集

在国内互联网行业,竞业协议已经有点被滥用了——因为依据《劳动合同法》只有高级管理人员、高级技术人员和其他负有保密义务的人员才可被列于竞业限制的对象;但是现在,全员竞业,入职时就要求签署,不签没法入职。 为了给自己一点保障,多学习一点知识,所以简单整理一下竞业协议的简单内容,方便查阅和参考。

IT Linux/ 2022-09-03 23:31:12 / 浏览 4,880

apt 的 update 和 upgrade 命令的区别是什么?

如果想让你的 Ubuntu 或者 Debian 系统保持更新,要用sudo apt update和sudo apt upgrade命令组合。 一些以前的教程也会提到sudo apt-get update和sudo apt-get upgrade。 apt和apt-get命令运行起来几乎一样,除了一些细微的差别,后面我会讨论。 我们首先讨论一下update和upgrade的区别。这两个难道不是一样的吗?

IT 算法/ 2022-07-24 20:47:15 / 浏览 4,180

一个 VLA (可变长度数组)的实现

VLA (可变长度数组) 是 C 语言在 C99 之后加入的一个很方便的语言特性,但是 MSVC 已经明确不支持 VLA 了。而且 Linux 的内核代码中曾经使用过 VLA ,而现在已经移除了 VLA 。看起来,VLA 带来的安全问题比它的便利性要多。 但是,日常用 C 语言做开发时,经常还是需要变长数组的。既然直接用 C 语言的 VLA 有诸多问题,那么还是需要额外实现一个比较好。C 没有 C++ 那样的模板支持,一般的通用 VLA 实现很难做到类型安全。即使用 C++ ,STL 中的 vector ,这个最常用的 VLA 实现,也不总是切合应用场景的。比如,std::vector 它的数据一般还是分配在堆上,而不是栈上。相比原生创建在栈上的数组,它可能性能有影响且有可能制造更多的堆内存碎片。

IT 算法/ 2022-07-24 20:46:45 / 浏览 3,840

用邻接表实现无向图

今天在扩展我们游戏中的管道系统时,又遇到了实现一个无向图的问题。 之前的管道系统,每节管道的邻接管数量有限,所以我用了类似树的方式储存,在每节管道上直接放了一个固定大小的数组,保存该节管道的上下游节点。对于液体管道系统,这套数据结构工作的很好。 今天,我们的另一个系统需要一个有点不一样的管道。它没有方向,每个节点可以有很多的邻接点。例如电线拉成的网络、导热管构成的网络,都是这样的。这是典型的无向图结构。 我重新考虑了数据结构,用邻接表实现了一版。 我把节点的数据和节点的邻接关系分开到不同的数据结构中,这样方便单独把管道连接模块独立出来复用。 首先,用一个有序的数字 id 表示图中的节点。由于我们的图规模不会太大,16bit 的 id 就够用了。那么,相邻节点的连接关系就是图中的边,它可以用两个 id 连起来共 32bit 表示。由于是无向图,我们

IT 安全/ 2022-06-19 22:51:51 / 浏览 4,080

洋葱式信息安全观察:信息安全与业务浪涌

谈信息安全和业务浪涌,我们不得回顾一下信息安全的三个属性CIA:机密性(Confidentiality)、完整性(Integrity)、可用性(Availability)的可用性,业务浪涌则和可用性密切相关。 我们知道针对A(可用性)的攻击最常见的是DDoS和DoS,然而真实环境中非攻击带来的可用性问题也是非常普遍的现象,有些影响了使用体验,例如:双“十一”电商;有些则影响了民生,例如:春运票务;有些则影响国计,例如:核酸码,自抗疫以来,多地出现过核酸码服务无法满足大量访问需求的现象,给抗疫工作带来了困扰。 而以上拥塞,都可以用浪涌来解释。

IT 算法/ 2022-06-19 18:18:07 / 浏览 4,960

文言文白话文互转:文言文转白话文(现代文),白话文(现代文)转文言文

前几天,看到了东北大学小牛翻译团队开源的语料项目:文言文(古文)-现代文平行语料 ,这个项目整理了非常全的文言文(古文)- 现代文(白话文)对齐数据,基本涵盖了大部分经典古籍著作,并且对原始爬取的篇章级对齐数据进行了断句及人工校对,形成了共计约96万句对的文言文-白话文对齐(平行)语料。 这份语料数据很珍贵,看到的第一眼想到就是用这份文言文现代文对齐语料训练一个文言文白话文转换器:文言文转白话文,文言文转现代文,白话文转文言文,现代文转文言文,古文转白话文,白话文转古文,古文转现代文,现代文转古文。

IT 安全/ 2022-06-19 18:15:01 / 浏览 4,560

一句话crontab实现防ssh暴力破解

将vps在公网上,难免会有居心叵测的人扫描,及时换了非标准的端口,依旧难以避免。因此编写一条Bash命令,放在crontab里,发现坏人立刻封掉ip。

IT MySQL/ 2022-06-19 12:01:23 / 浏览 5,040

Python连接 MySQL 数据库的超时问题

当使用Pytohn的 Flask-SQLAlchemy库操作 MySQL 数据时,出现'MySQL server has gone away' 了,是怎么回事呢?又该怎么办呢?分别从MySQL服务端和Python客户端来排查相关问题。

IT 系统运维/ 2022-02-03 13:16:36 / 浏览 4,700

iTerm2 (Mac Terminal) 清空当前屏幕内容

对于经常使用终端的开发者,清空当前屏幕的内容,我们可以使用clear。 clear 清空屏幕内容,大多数情况下会满足我们的需求,但是某些场景下还是会有一些问题。 向上滑动,还是能够看到之前的终端内容,比如我们搜索当前屏幕中的字符,clear 之前的内容还是会被清理掉。 那么,除了clear,还有更彻底的清除内容的办法吗?

IT 互联网/ 2022-02-03 13:10:34 / 浏览 4,900

豆瓣是啥?

三个关键词: 匿名、社区,以及最核心的特点:品味 所以,说豆瓣是兴趣社区,太宽泛了一点。更精准的表达是:一个匿名的品味社区。

IT 奋斗/ 2021-06-13 23:24:13 / 浏览 4,000

技术同学在业务中的成长

上周看到有人提出了一个问题,大意是,“公司里头有很多部门,大部门的人员成长比小部门要好,可这也出现几个问题,一个是在大部门有机会去造大轮子,有更多场景,而小部门主要是在做业务;二是大部门内部晋升压力大,要是放到小部门可能早就升了,如何解释这些现象?”

IT 奋斗/ 2021-06-13 23:12:10 / 浏览 3,120

70 后都跑哪去了?

过年后回到公司上班,有人入职有人离职,影影绰绰的一个念头出现在我呆滞的脑海里:公司是不是就剩一个 70 后了啊,想到这里后脊梁的汗毛竖了竖,跟蜘蛛侠似的。于是翻了翻 HR 系统,嗯,残酷的真相只有一个,是的。

IT 奋斗/ 2021-06-13 23:11:09 / 浏览 2,640

你老了

伴随着世界经济浪潮和格局的改变,我司人员超过 40 岁的人数与年俱增,已经突破了 3 人大关。 现在,大家出差吃饭聊天喝两口的时候,总会一边嚼着花生毛豆,一边兜兜转转,聊到年龄这个话题,而我作为公司的最高龄从业者,主要责任就是装出一副倍感压力的样子,说点自己不开心的事情,让大家开心一下。

IT 其他/ 2021-06-13 23:01:05 / 浏览 2,920

我对比特币的理解

小结一下: 1、比特币是数字资产,不是废纸,因为它已经有了「局部的共识」。 2、比特币的需求决定价格,长期来看它有类似于黄金一样的抗通胀的效果。 3、长期来看,比特币成为赌博和投机的固定标的,价格未来会越来越稳定。 4、监管和安全是比特币最大的风险。