更精准的时延:使用软件时间戳和硬件时间戳 (colobu.com)
一般情况下,我们通过在应用层读取时间戳,计算两个时间戳的延时($t1 - t0$),就可以得到时延,就足够了。通过观察这个数据,我们可以看到网络的时延情况(latency)和抖动(jitter)。但是有时候,我们想知道物理网络传输网络的时延是多少,比如北京A机房到B机房的时延,如果通过应用层的时间戳来计算,误差就太大了。为什么呢?
by @技术头条 2023-10-24 23:54 查看详情
mping: 使用新的icmp库实现探测和压测工具 (colobu.com)
最近在网络探测的分析中,需要做一个使用ICMP协议进行压测的工具, ping或者fping多多少少都不满足需求,所以需要自己写一个。
by @技术头条 2023-10-24 23:53 查看详情
一个任务调度算法引起的性能问题 (blog.codingnow.com)
这两天遇到一个任务调度算法引起的性能问题,花了颇多精力排查和解决。问题出在我写的 ltask 这个 lua 多任务库上。ltask 最初是对 skynet 的一些反思中开始的,最初只是想换一种思路实现 skynet :做一个库而不是框架、更少的锁竞争、避免服务因为消息队列堆积而过载……
by @技术头条 2023-10-24 23:52 查看详情
记录一下当年把 FreeBSD 中 zlib 砍到只剩一份的过程 (blog.delphij.net)
软件项目中,实现同一功能的源代码只保留一份是一项十分重要的最佳实践,这种做法可以带来许多显而易见的好处。

FreeBSD 是一个有相当长历史的项目,而 zlib 是一个很常用的库,并且当时在整个系统中有多处不同的副本,因此我们希望这个迁移的过程尽可能平滑而尽量不要直接导致整个项目无法联编,或是需要长时间禁用某些模块的情况。
by @技术头条 2023-10-24 23:52 查看详情
Hive SQL中的like和rlike (ixyzero.com)
以前知道SQL中的 like 和 rlike 是有区别的,差别主要在于前者只支持 百分号(%)——匹配任意数量的任意字符,和下划线(_)——匹配一个任意字符 作为特殊字符,后者支持正则匹配——功能更强大,但速度一般也较慢。所以我一般是简单的、希望速度快些的情况下用like做模糊匹配,其它场景用rlike实现。但是近期在分析日志的时候发现Hive SQL中的 like 和 rlike 除了在功能上有区别之外,过滤生成的结果也有差异,比较奇怪,在此记录一下,方便后面参考。
by @技术头条 2023-10-24 23:50 查看详情
代码变更风险可视化系统建设与实践 (tech.meituan.com)
本文整理自美团技术沙龙第77期《美团亿级流量系统的质量风险防控和稳定性治理实践》。文章第一部分介绍了软件系统风险与变更;第二部分介绍了代码变更风险可视化系统的能力建设;第三部分介绍了整个系统在美团内部实践落地的情况;最后是对未来的规划和展望。希望对大家能有所帮助或启发。
by @技术头条 2023-10-24 23:48 查看详情
美团多场景建模的探索与实践 (tech.meituan.com)
本文介绍了美团到家/站外投放团队在多场景建模技术方向上的探索与实践。基于外部投放的业务背景,本文提出了一种自适应的场景知识迁移和场景聚合技术,解决了在投放中面临外部海量流量带来的场景数量丰富、场景间差异大的问题,取得了明显的效果提升。希望能给大家带来一些启发或帮助。
by @技术头条 2023-10-24 23:48 查看详情
数据安全是什么? (ixyzero.com)
说来也怪,做了很久的安全/数据安全,有些时候当其他人问你数据安全是什么,以及你做的是哪一部分,涉及到什么具体工作/产品/项目,为什么要做这些,怎么做好这些的问题时,还是会一愣,然后大概率从自己正在干的事情说起,好一点的可能还要加上以后的规划——这些事情很重要,如果讲不清楚很可能是基础不行或是没做过(又或者是近期务虚的工作多了,以前干的工作又没有及时深入总结,导致一时想不起来);但在准备晋升答辩时,(这种自下而上的介绍方式/顺序)对于高阶的评委或者管理者来说,又不重要,他们想看的是全局、整体的思考,需要的是自上而下的视角;不过平时大部分实际干活的人,习惯于用自下而上的视角去看待自己的日常工作,这么做久了之后,可能就会光顾埋头赶路,忘了抬头看天,对于有一些想法和追求的人,建议每隔一段时间给自己安排一个从具体事务中抽离出来的机会,用自上而下的视角来观察一下自己的工作甚至是岗位(对公司/团队的价值在哪?),看看能不能有一些不一样的发现。
by @技术头条 2023-10-24 23:44 查看详情
技术 | 如何使用 VLC 录制屏幕 (linux.cn)
VLC 不仅仅是一个视频播放器。它还是一款多功能视频工具,具有普通用户永远无法了解的众多功能。
你可以 使用 VLC 下载 YouTube 视频,甚至可以用它修剪视频。
VLC 的另一个不寻常用途是屏幕录制。
我仍然建议使用合适的屏幕录像机来完成此任务,欢迎你探索这个 VLC 功能以获取乐趣。
by @技术头条 2023-10-24 23:40 查看详情
JWT 渗透姿势一篇通 (paper.seebug.org)
JWT(JSON Web Token)是一种用于身份认证和授权的开放标准,它通过在网络应用间传递被加密的JSON数据来安全地传输信息使得身份验证和授权变得更加简单和安全,JWT对于渗透测试人员而言可能是一种非常吸引人的攻击途径,因为它们不仅是让你获得无限访问权限的关键而且还被视为隐藏了通往以下特权的途径,例如:特权升级、信息泄露、SQLi、XSS、SSRF、RCE、LFI等
by @技术头条 2023-10-24 23:40 查看详情
C# 使用 LibUsbDotNet 实现 USB 设备检测 (blog.yuanpei.me)
基于某些不可抗因素上的考虑,博主需要在程序中集成某厂商的硬件。我猜测,人们觉得这件事情“简单”,或许是看到这个设备有一条 USB 连接线,因为在人们的固有印象中,只要把它接到电脑上就可以正常工作了。事实的确如此,因为你只要考虑串口(SerialPort)、USB 以及这两者间的相互转换即可。当然,这世上的事情圆满者少,遗憾者多,博主在使用过程中发现,厂商的提供的 SDK 存在 Bug,当设备从电脑上拔出后,其 SDK 的初始化函数依然正常返回了,这意味着我们无法在使用设备前“正确”地检测出硬件状态。考虑厂商愿不愿意修复这个 Bug 还是个未知数,博主不得不尝试另辟蹊径。
by @技术头条 2023-10-24 23:39 查看详情
远程办公三年后感 (hiwannz.com)
这是一篇远程办公 3 年后的总结。 如果用一句话总结的话,我想会是“还行,但也不见得那么好”。

当在这家公司工作久了之后,因为与大家熟悉的程度越来越深,自然就发现了些许“潜藏在水下”的小毛病。这些毛病可能并不会直接影响工作,但却切实影响到了工作的体验,最终可能会在一天统一爆发。
by @技术头条 2023-10-24 23:38 查看详情
Nginx搭建WebDAV服务 (www.iots.vip)
  迫于无法忍受现成的 NAS 系统的限制,Alliot 正在着手将最常用的一些服务剥离出来,方便迁移与定制, WebDAV 首当其冲, Alliot 在许多场景下的同步与备份都依赖它。
  WebDAV 作为一种基于HTTP/HTTPS协议的网络通信协议,预想是非常简单的,然而在具体动手的过程中还是遇到了挺多坑,Obsidian 的 Remotely-save 便是其中一个。
  本文将基于 Nginx/Tengine 手把手构建一个 WebDAV 服务。
by @技术头条 2023-10-24 23:36 查看详情
攻击者通过 Freeze.rs 和 SYK 密码器进行恶意软件分发 (paper.seebug.org)
在本文中,我们将深入研究用于交付Rust-lang注射器(SYK密码器)的初始攻击方法,并进一步探索攻击的后续阶段。
by @技术头条 2023-10-18 00:15 查看详情
使用Go实现traceroute工具 (colobu.com)
这篇文章主要介绍traceroute底层的实现原理,所以不会完全复刻Linux自带的traceroute所有的参数的功能,否则会有大段的代码处理这些参数的逻辑,本文只是实现一个最基本的功能。
by @技术头条 2023-10-18 00:14 查看详情
关于 Docker 容器配置信息的渐进式思考 (blog.yuanpei.me)
容器内的配置管理,唯一正确的方向就是让配置和容器分离。不管你是用文中这些方案中的哪一种,其关键就是让配置动态地在容器内生效,而非固化到容器中。
by @技术头条 2023-10-18 00:13 查看详情
真实世界的Go设计模式 - 对象池模式 (colobu.com)
对象池(object pool pattern)是一种设计模式。一个对象池包含一组已经初始化过且可以使用的对象,而可以在有需求时创建和销毁对象。池的用户可以从池子中取得对象,对其进行操作处理,并在不需要时归还给池子而非直接销毁它。这是一种特殊的工厂对象。

若初始化、实例化的代价高,且有需求需要经常实例化,但每次实例化的数量较少的情况下,使用对象池可以获得显著的效能提升。从池子中取得对象的时间是可预测的,但新建一个实例所需的时间是不确定。

另外,利用对象池,我们可以重用对象,减少对象的分配,对于垃圾回收的编程语言,也是一种提高性能的手段。
by @技术头条 2023-09-10 23:38 查看详情
TransFLAC:将 FLAC 转换为有损格式 (linux.cn)
TransFLAC 是一款命令行应用,可将 FLAC 音频文件转换为指定质量级别的有损格式。它能使 FLAC 和存储有损格式的音乐库保持部分或完全同步。TransFLAC 还能同步目录结构中存储的专辑封面、专辑封底和文件夹文件。你可以在终端窗口中交互式运行 TransFLAC,也可以使用 cron 或 systemd 等应用安排其自动运行。
by @技术头条 2023-09-10 23:38 查看详情
技术 | systemd:初学者如何理解其中的争议 (linux.cn)
在 Linux 世界中,很少有争议能像传统的 System V 初始化 系统(通常称为 SysVinit)和较新的 systemd 之间的斗争那样引起如此大的争议。

在这篇文章中,将简要讨论什么是 systemd、它相对于传统初始化系统有哪些优点和缺点以及为什么它会引起争议。
by @技术头条 2023-09-10 23:36 查看详情
真实世界的Go设计模式 - 原型模式 (colobu.com)
*原型模式(Prototype Pattern)是创建型模式的一种,其特点在于通过“复制”一个已经存在的实例来返回新的实例,而不是新建实例。被复制的实例就是我们所称的“原型”,这个原型是可定制的。
如果你有一个对象,并希望生成与其完全相同或者类似的一个复制品,你该如何实现呢?首先你必须新建一个属于相同类的对象,或者类似的对象,然后你必须遍历原始对象的所有成员变量,并将成员变量值复制到新对象中。在Go生态圈中,我们常常使用下面的库来做这份工作。
by @技术头条 2023-09-10 23:32 查看详情