深入理解 C++ 链接符号决议:从符号重定义说起

C++ 中使用 Protobuf 诡异的字段丢失问题排查这篇文章中,分析过因为两个一样的 proto 文件,导致链接错了 pb,最终反序列化的时候丢失了部分字段。当时也提到过符号决议的过程,不管是动态链接还是静态链接,实际用的都是靠前面的库的符号定义。本来以为对这里的理解很深入了,直到最近又遇见一个奇怪的“符号重定义”问题。

C++ 符号编译、链接概图

阅读全文

ChatGPT 老师教我写前端:从零写油猴脚本

可以跟着 ChatGPT 老师学前端?听起来有点不可思议,毕竟前端很多和 UI 有关,和没有多模态能力的 ChatGPT 沟通前端,想想都有点难。不过最近在 ChatGPT 的帮助下,很快就写了一个油猴插件,能够在 ChatGPT 的聊天界面上,复制数学公式的 Latex 文本。

作为一个后台开发,前端零基础,要写一个油猴插件,如果没有 ChatGPT,首先得去找文档看,写一个雏形都要花很多时间。如果中间遇到了问题,还得自己去找答案,这个过程可能会很漫长,可能中途就放弃了。但是有了 ChatGPT 老师,遇到问题直接提问,整个开发体验就好了太好了。

再次感叹下,ChatGPT 真的是极大拓宽个人的技术能力边界,极大提高个人解决问题的能力!

ChatGPT export 插件

阅读全文

跟 ChatGPT 学数学:理解向量点积和余弦相似度

最近在看一本机器学习的书,看到这么一句话 “通过计算两个向量的点积可以知道它们之间的相似度。“,这里之前一直一知半解,这次打算深入理解下。

那么怎么理解上面这句话呢?ChatGPT 的解释总结一下就是,点积(Dot Product)是一种数学运算,用于衡量两个向量的相似度。当两个向量完全相同时,点积会达到最大值。当两个向量垂直时,点积为0。点积的结果受向量长度的影响,所以在比较相似度时,常常会将向量单位化。通过点积,可以量化两个向量的相似度,这在各种应用场景中(如自然语言处理、图像识别等)都非常有用。

向量点积的理解

阅读全文