基于 C++ 的 Android 协程设计 (www.kymjs.com)
在Android 上,Kotlin 用灵活的语法封装出语言层面的协程(coroutine)新颖地解决了异步编程编码复杂的问题。本次分享将带领听众从一个小例子开始,更加深入,自顶向下的理解协程是什么,协程的本质与工作机制,动手设计出一个真正运行时的协程库 。
by @技术头条 2022-06-19 22:46 分享 查看详情
拥抱 GitHub Actions (xuexb.com)
工作这么多年以来,种类 CI/CD 工具都有些接触。但唯独最青睐的还是 Jenkins ,她的灵活性、定制化、插件覆盖度等都是一度好评。
我有多个服务、站点,虽然没什么流量,但一直做为我自己调研的目标和学习的途径。在实际使用 Jenkins 时,也屡试不爽。但随着服务数量的增加,是越来越不好维护。当然,这里并不是说 Jenkins ,因为跟我本身能力有很大关系,没有好与不好,只有合适不合适。
by @技术头条 2022-06-19 22:45 分享 查看详情
CSS实现滚动高度自动变小的粘滞效果 (www.zhangxinxu.com)

分享一个实用的小布局效果,可以优化粘性定位的效果体验。
by @技术头条 2022-06-19 22:44 分享 查看详情
VimScript:退出文件时自动关闭各种缓冲区(Buffer) (xnow.me)
经过调教的vim,肯定有很多插件,比如nerdtree,python-mode等等,很多插件在使用过程中,都通过新建buffer来展示其提供的内容。出于习惯,使用q退出文件,当时vim上还有许多插件的buffer未退出,需要额外的指令执行退出(qa)。怎么在退出文件时,同时退出其它buffer?本文以vim初学者的,编写了一段vimscript实现该功能。
by @技术头条 2022-06-19 22:43 分享 查看详情
我的移动开发程序人生 - 写在创业十周年 (blog.devtang.com)
我是移动互联网时代兴起时的第一批开发者,见证了移动互联网将传统的 PC 互联网颠覆的过程。也有幸参与其中,推动移动互联网行业的发展。
本文介绍了我从接触计算机到选择职业开发道路,最后再承担起更多非技术工作的过程。希望我的程序人生能够帮助到大家,在面对新的时代机遇时抓住机会,与时代共舞。
by @技术头条 2022-06-19 22:43 分享 查看详情
蒙皮数据的压缩 (blog.codingnow.com)
传统的蒙皮数据需要在模型顶点上存两组数据,其一为该顶点受哪些骨头的影响,其二为受这些骨头影响的权重。因为 GPU 的对齐影响,通常游戏中会将同一顶点受影响的骨头数量上限设为 4 。如果不做任何优化,骨头总数在 256 以下时,每个顶点需要 4 个字节保存骨头编号,再用 4 个 float 表示分别的权重。

因为权重之和总是为 1 ,所以,只用 3 个 float 也是可以的(第四个权重通过简单的计算就可以得到)。

因为权重总是 0-1 之间的数字,所以 32bits float 的精度远超所需,我们也并不需要浮点数。所以用 16bits [0,65535) 甚至 8bits (0,255] 来表示 0-1 的权重也够了。

所以,蒙皮一般至少占用 64bit 的定点数据 (4+4 bytes) 。

如果想进一步压缩,就需要一些复杂的技巧了。
by @技术头条 2022-06-19 22:42 分享 查看详情
用 FIDO key 来做 SSH key (blog.delphij.net)
OpenSSH 8.2 中新增了 FIDO/U2F 支持。它支持两种密钥对类型: ecdsa-sk 和 ed25519-sk。需要注意的是并非所有的 FIDO Security Key都实现了 ed25519-sk 的硬件支持:例如,截至2022年,Titan Security Key就不支持 ed25519-sk。
使用 FIDO key 的 SSH key 在使用上和之前的 SSH key 类似,主要的区别在于在登录时系统会确认用户是否在机器旁边(通常是碰一下 FIDO key),这可以显著地改善安全性:与之前的 SSH key 不同的是,即使机器上的 U2F/FIDO SSH key 私钥文件被攻击者获得,在没有硬件 FIDO key 的情况下也无法使用这个私钥。对于对方同时能获得私钥文件和物理访问的情况,参见 xkcd/538,就不要跟扳手过不去了。
by @技术头条 2022-06-19 22:41 分享 查看详情
大厂的人才衡量标准 (macshuo.com)
我自己看过一些大厂的人才标准,或者是他们招聘的标准,今天总结一下,因为大家对 P 系列比较熟悉,就用 P 来指代,其实这个标准是偏产品和业务的,并不专指技术人员。
by @技术头条 2022-06-19 22:40 分享 查看详情
前端 Node.js SSR 部署猜想 (xuexb.com)
今天早上看前端早读课推送了一篇【前端 SSR 的落地实践】,我又读了几篇关联的文章,于是想把自己的一些假想总结下来。

首先声明,我确实没有生产级 Node.js SSR 经验,只是魔改过一些前端项目在测试环境跑起来,并采集过一些数据而已,这里写的所有的纯粹是“猜想”,并且我没有实际应用过 ELB 、SLB 、NLB 这些,所以大家看看就行了。
by @技术头条 2022-06-19 22:38 分享 查看详情
聊聊一些近况 (imququ.com)
真的有很多年没更新博客了,写博客这件事真的不能停,一停下来就完全不知道该怎么开始了。
博客上次更新还在 2017 年,这五年来发生的事情太多太多,就连疫情都迎来了第三个年头。想写的东西有点多,今天先从自己近期工作和生活上的一些变化聊起。
by @技术头条 2022-06-19 22:37 分享 查看详情
Transformer中的缓存机制 (www.52nlp.cn)
Encoder部分相对简单,进行self-attention时只需要考虑一个batch内和长度相关的mask。这里重点讨论training和inference两种模式下decoder attention在每一层的工作机制。在training模式下,decoder部分采用teacher_forcing的机制来产生decoder的输入,具体的实现方式是将原始的input_target_sequence右移动一位,或者可以理解为在原始的input_target_sequence最左侧添加一个decode_start_token。
by @技术头条 2022-06-19 22:35 分享 查看详情
极致 MVP - 读《做对产品》 (blog.devtang.com)
最近朋友给我推荐了一本书,叫《做对产品》,英文名叫《The Right It》。作者是谷歌前工程总监索维亚,曾领导过谷歌广告团队。索维亚写这本书源自于他的第四个创业项目:这个项目花了 2500 万美元的融资,历时长达 5 年,最后失败了。但他在这之前曾经 3 次创业成功。这次失败的经历让他重新审视整个创业过程,从而发现产品本身的方向不对是失败的核心原因。于是,如何最小化成本、最快速地去验证产品成为了本书的命题。以下是一些总结。
by @技术头条 2022-06-19 22:33 分享 查看详情
使用 freebsd 搭建家用 nas (ouonline.net)
最近拍摄的照片和视频有点多,手机存不下,准备搞个家用 nas 来存,经过一番对比之后准备上 freebsd,这里记录下一些重要配置。
by @技术头条 2022-06-19 22:33 分享 查看详情
分布式追踪系统Jaeger介绍 (www.ipcpu.com)
Jaeger 是 Uber 公司开源的一个用于监视和诊断基于微服务的分布式系统。类似的软件还有zipkin、Skywalking等。这里我们就不谈trace和span的概念了,本站另一篇文章有介绍,我们主要谈下部署和实施的问题。
by @技术头条 2022-06-19 22:32 分享 查看详情
JS与条形码的生成 (www.zhangxinxu.com)

本文主要介绍如何使用 JS 代码实时生成条形码,以及介绍条形码在 Web 应用中的优势,启发若干可以使用条形码的场景。
by @技术头条 2022-06-19 22:32 分享 查看详情
如何在苹果macOS下粘贴图片到PDF文件 (www.slyar.com)
今天需要粘贴一个图片进PDF文件然后发现苹果macOS自带的preview没有insert图片的选项,摸索了一下后找到了一个work around(你跟我说这个词怎么翻译?)。步骤如下。。。
by @技术头条 2022-06-19 22:32 分享 查看详情
使用CSS size-adjust和unicode-range改变任意文字尺寸 (www.zhangxinxu.com)

介绍一个无需HTML标签就能控制任意字符字号大小的CSS技术,关键时候说不定可以救命,都来学学吧。
by @技术头条 2022-06-19 22:31 分享 查看详情
也聊聊飞书 (weiwuhui.com)
飞书在协同这个议题上,围绕在协同目标上,也就是围绕在“事”上。一个文档,本质并不是一个word,或者一个excel,也不是一个ppt,而是“一件事”。而所谓“文档模板”,就是完成这件事的核心流程与方法论。
by @技术头条 2022-06-19 20:02 分享 查看详情
使用BPF, 将Go网络程序的吞吐提升8倍 (colobu.com)
经典的bpf(classical Berkeley Packet Filter) 是非常好用的一个技术,在一些特殊的Go底层网络编程的场合,可以很好的提高性能。
by @技术头条 2022-06-19 19:27 分享 查看详情
使用 Docker 搭建适用于 HomeLab 的轻量邮件网关 (soulteary.com)
本篇文章将介绍如何使用 Docker 快速搭建一个适用于 HomeLab 和开发阶段使用的邮件网关,用来快速聚合各种软件的通知消息。当然,你也可以用它来快速验证各种软件中的邮件配置是否正确。如果你熟悉 Docker 的话,大概十分钟,你将会拥有一套完全属于自己的邮件通知聚合服务,而这个服务,只需要 20MB 左右的内存消耗,非常轻量。
by @技术头条 2022-06-19 19:26 分享 查看详情