- 博客(171)
- 收藏
- 关注
原创 记录一下关于 Cursor 设置的问题
虽然没有什么复杂的功能,但是记录一下的好处是能梳理一下自己的思路同时培养自己总结的能力。AI 浪潮的冲击之下,很多东西都已经不用亲自动手,比如这篇文章,我相信 AI 可以总结的比我更好更全面,但是总是觉得自己用文字记录一下知识的感觉很踏实。我的成绩普普通通,数学勉强及格,物理一窍不通,没有当过别人家的小孩;我念了很多年书,也去到一些地方,我看过波澜壮阔的星空,吃过尤其美味的火锅;我的父母理解我,我的朋友照顾我,我有一些渺小的心愿,也在偷偷为它们努力着。注:笔者用的是 zshrc ,用其他的可以参考。
2025-04-02 20:34:58
703
原创 排查问题的知识记录
pstree:用于查看进程的层级关系,帮助用户理解进程之间的父子关系。pstack:用于查看进程的堆栈信息,适合调试程序的调用路径。strace:用于跟踪程序的系统调用,深入分析程序与操作系统的交互。
2025-03-12 21:04:11
701
原创 记一次 Cursor Agent 功能编程体验
不在乎他人的评价,不在乎自己是否有存在感,放下执念,永远有自己的节奏和步调,永远保持松弛感。你可以阴郁,可以懒散,可以不适时地计较,过分敏感,可以有些不知足、暴躁、嫉妒、小气,但要记得拷问自我,必须追求善良,尽力坦荡,永远正直。考虑到笔者对 js 不是很熟练,在加上最近申请到了新的 Cursor 账户,所以想基于 Cursor 完成这次的功能的开发。基于上述原因,所以笔者需要在 Demo 的页面上支持一个功能:上传本地音频,并将其推送到频道中,然后界面上展示转录内容。
2025-03-05 20:43:11
960
原创 golang 之 wire 库的使用总结
编译时依赖注入:Wire 在编译时解析依赖关系,生成代码以满足依赖。这意味着在运行时没有反射或其他开销,从而提高了性能。类型安全:Wire 利用 Go 的类型系统,确保依赖关系的正确性。这可以在编译时捕获错误,而不是在运行时。简单易用:Wire 的 API 设计简单,易于理解和使用。通过明确的配置,可以轻松管理复杂的依赖关系。生成代码:Wire 使用代码生成的方式创建所需的构造函数和初始化代码。用户只需定义依赖关系,Wire 会自动生成满足这些依赖的代码。
2025-02-28 20:21:24
992
原创 关于 Helm 子 chart 的使用总结
工作越久就会越愿意简单操作,比如在 K8s 上部署服务的时候,若平台提供了一个极简快速上线方案:拷贝一个其他人写好的 chart ,然后简单的替换掉 serviceName,同时增加 servcie 需要的配置,似乎也能够完成需求。子 chart :使用平台侧的 base chart 作为子 chart,因为 chart 的管理当前在 git 的代码仓库下,所以为了方便更新子 chart 的引用使用了 git submodule。当前的解法也并非最优的解法,是指在「一般解法」的基础上做了解耦。
2025-02-21 19:08:17
663
原创 总结:Helm 命令详解
Helm 是 Kubernetes 的包管理工具,类似于apt或yum,但它专为 Kubernetes 设计。Helm 通过 Chart(Helm 的软件包)来定义、安装和升级 Kubernetes 应用。Chart 是一个包含 Kubernetes 资源文件和依赖项的目录结构,可以轻松管理复杂的应用。Helm 是 Kubernetes 生态中不可或缺的工具,它通过 Chart 简化了应用的部署和管理。掌握 Helm 的常用命令,可以帮助用户更高效地使用 Kubernetes。
2025-02-17 20:28:19
909
1
原创 Visual Studio Code 的 AI 编程助手
由微软开发,基于开源跨平台的 VS Code 编辑器,安装量超 2700 万次。它在 IntelliSense 代码补全功能基础上进行了多项改进,能扫描 GitHub 上的开源代码库,还提供即时 API 代码示例。支持多种语言,评分为 3.9 分(满分 5 分)。:安装量约 500 万次,利用机器学习模型,可提供整行代码补全、全功能补全和自然语言转代码补全功能。支持约 25 种语言,近期新增生成单元测试代码功能,评分为 4.3 分。
2025-02-10 20:54:54
1003
原创 Jsoniter Unmarshal类型错误的友好提示
真心建议,千万不要看见别人发光,就觉得自己暗淡,他强任他强,清风拂山岗,生活中,人和人的节奏不一样,有人三分钟泡面,有人三小时煲汤,有人外卖已送达,你要的方式,就坚定走下去别胡思乱想每个花期都不一样,不必焦虑有人比你提前拥有,所以别搞得不堪重负样子,大胆的往前走你的光芒终将被照亮。为了解决一个问题,引入了另一个问题,但是不要慌,作为野生 golang 的 json 官方库,肯定提供了一种解决上述问题的方式。注:以上代码示例 https://go.dev/play/p/AKLSNXjMIpQ?
2025-02-08 18:44:12
645
原创 基于 AI Coding 「RTC + STT」 Web Demo
Copilot 的 coding 速度真的让我放弃后面功能继续使用它写,想开个 Cursor 的账户的冲动(想了一下,还是要除夕之后,争取最大价值使用),它的 coding 方式很呆,必须重新覆盖写整个文件,就……注:这部分的原因也有可能是笔者问答的不专业,没有正确的给出返回结果的定义,导致 AI coding 的时候,使用了错误结果定义字段,导致转录的结果无法在 Web 上展示。语音转文字,可以将指定的 RTC 频道的语音识别成对应的文字,并将对应的文字推送回频道,效果参考下图。开启一个 RTC 频道。
2025-01-24 21:09:52
1049
原创 关于 Cursor 的一些学习记录
抓住周五的尾巴,完成了Cursor的初步学习记录,要加油呀!任何选择都会导致遗憾,所以不要后悔。人活一生,值得爱的东西很多,不要因为一个不满意,就灰心。人没有牺牲,就什么也得不到,如果想得到什么,就得付出同等的代价,这就是等价交换原则,我们相信,这,就是世界的真实。
2025-01-17 21:51:22
1002
原创 LLM 大语言模型学习记录
注:这个版本已经没有专业术语,读起来更加简单和易懂让笔者斗胆的总结一下 LLM ,按照如上 gpt 返回的结果,笔者能够大概对 LLM 的模型产生一个模糊的认知,即。
2025-01-08 21:11:19
824
1
原创 记一次 dockerfile 的循环依赖错误
nil {return errreturn nil核心分析:它使用深度优先搜索(DFS)的方式来检测循环依赖,并在发现循环时返回一个错误。注:看来不是算法没有用,是业务逻辑的代码中使用 DFS 这种算法的场景比较少,还是得多看源码。
2024-12-31 18:54:45
980
原创 如何增加多行内容到文件
如果使用的是 Docker Desktop,则默认包含 Buildx。但如果使用的是 Linux 或更早版本的 Docker 则需要手动安装。注:不要使用 chatgpt 返回的这种方式,因为这个写法有问题注:启用 buildkit export DOCKER_BUILDKIT=1禁用 export DOCKER_BUILDKIT=0BuildKit 是 Docker 的一个现代构建引擎,它旨在提高 Docker 镜像的构建性能、灵活性和可扩展性。
2024-12-27 22:21:22
718
原创 BERT:用于语言理解的深度双向 Transformer 的预训练。
我们引入了一种新的语言表示模型,称为 BERT,即来自 Transformer 的双向编码器表示。与最近的语言表示模型(Peters 等人,2018a;Radford 等人,2018)不同,BERT 旨在通过在所有层中共同基于左右上下文进行条件训练,从未标记的文本中预训练深度双向表示。因此,经过预训练的 BERT 模型只需一个额外的输出层即可进行微调,以创建用于各种任务(如问答和语言推理)的最先进模型,而无需进行大量特定于任务的架构修改。BERT 在概念上简单且在经验上强大。
2024-12-09 21:00:23
575
原创 关于粗心的反思
由于出包的镜像里缺少了 libonnxruntime.so.1.17.1 库,同事从其他存在该库的镜像中拷贝到了镜像里,但是更新动态链接库配置,导致库存在,但是程序在引用的时候,还是返回无法找到。借用伟大领袖的一句话,「实践是检验真理的唯一标准」,不能因为开发同事的积累更丰富,就默认写出的代码没有任何问题。注:惯性思维是一种可怕的行为,它似乎就好像是温水煮青蛙一样,让你变得不再对新事物充满好奇,不自觉的抵制解除新的改变,这真的很不好!上海的气温真的是一秒入冬,真的寒冷的一天,看起来要开始喝热水了。
2024-11-18 19:38:14
878
原创 《BLEU: a Method for Automatic Evaluation of Machine Translation》翻译
对机器翻译进行的人工评估虽然全面,但成本高昂。人工评估可能需要数月才能完成,并且涉及无法重复使用的人力劳动。我们提出了一种自动化的机器翻译评估方法,该方法快速、廉价、与语言无关,与人工评估高度相关,并且每次运行的边际成本很低。我们将这种方法作为熟练人类评审员的自动替代,当需要快速或频繁评估时,可以替代他们进行评估。
2024-10-27 17:41:37
1108
2
原创 《Attention Is All You Need》论文翻译
递归神经网络(RNN)、长短期记忆网络(LSTM)和门控递归神经网络(GRU)尤其在序列建模和转换问题(如语言建模和机器翻译)中被确立为最先进的方法。自此以来,许多研究努力继续推动递归语言模型和编码器-解码器架构的边界。递归模型通常沿着输入和输出序列的符号位置进行计算分解。通过将位置与计算时间步骤对齐,它们生成一系列隐藏状态 ht,作为前一隐藏状态 ht−1 和位置 t 的输入的函数。这种固有的顺序性质阻碍了训练样本内的并行化,尤其在序列长度较长时,因为内存限制限制了跨样本的批处理。
2024-10-23 21:20:31
662
原创 服务启动慢分析小记
还是忙忙碌碌木有学习 AI 知识的一个月,那只能浅浅的记录一下,这个月分析定位服务启动慢问题的方法,方便后续再遇到时候,还要从头分析。首先,sidecar 这个进程在上述启动超时的情况下,只会保留 5s ,后面就会被 master 主动 kill,防止业务层级的资源泄漏。笔者负责的业务是有多个服务组成的,即当客户请求的时候,会根据客户的请求的参数,动态判断需要拉起的服务组合。golang 的程序不要尝试使用 gdb 调试了,笔者亲测了,断点有的时候,跑在不同的线程上,似乎没有办法有效的断住。
2024-09-24 21:21:21
705
原创 服务器内存飙升分析小记
这个月本来想抽空整理一下学习 AI 模型相关的东西,奈何每天不是在查问题就是在查问题的路上,不是在修 Bug 就是在写 Bug 的路上。注:写到这里想到从前老板身上学习到的一个观点「他说的你也信」即无差别的怀疑所有收到的信息,虽然这玩意有利有弊,但是在遇到不靠谱的同事的时候,自己亲力亲为反而会更好。我们只是路过了很多个春天,但并没有错过,允许低落,但不要愁眉不展的生活,生活治愈的是愿意变好的人。问题:「QA 同学反馈,测试的任务退出以后,机器的内存没有下降,影响后面的测试进度」
2024-08-29 22:23:36
1523
原创 proto 同级文件引入问题小记
笔者昨天遇到一个十分奇怪的事情,「在同一级目录的 proto 文件,引用的时候,报找不到的错误」。出现引入失败的原因,我暂时还没发现,但是查询的时候,确实看到 github 上有好几个跟我一样的问题。思路:多个 proto 文件定义清晰,但是非常时期,非常对待,可以将 「detail_info.proto」文件中定义的结构全部转移到引入失败的 proto 文件中。办法总比困难多,关于上面的这个报错,笔者飞快的转动大脑,为了赶上交付的进度,想出来两种临时性的解决办法。亲密的朋友在某一天退出我的生活。
2024-07-30 13:42:39
747
原创 日常排查问题技巧小结
怎么说的一切都显得很合理,但是一切好像又都不是很合理,所以后面跟平台侧提建议,让他们的测试功能跟业务的测试功能区别开,这样可以规避掉类似的乌龙事件。思路一:服务是通过 C++ 实现的,若是任务崩溃,应该会留下 dump 的文件,但是神奇的事件是根据测试提供的崩溃记录,笔者并未发现任何 dump 的文件。验证:排查了迁移服务的日志,以及被迁移服务监控的任务,发现是在任务被退出后,迁移服务才启动了拉起的流程,所以迁移服务没有问题。由于笔者所在的公司,业务大多都是有状态的,为这保证有状态的任务在遇到。
2024-06-15 11:55:33
947
原创 Golang 的 unmarshal 踩坑指南
在进一步拆解问题,在做 n:1 映射的时候,需要解决的是如何定义一个通用的产品定义结构,能够按需根据产品定义进行进行映射。当你越来越优秀时,你开始明白,其实每个人都没有好坏之分,没有对错,只有频率不同,做出了不同的选择。一个女人最重要的能力,不是你把自己打扮得多么漂亮,也不是你挣钱有多厉害,而是无论发生任何事情,你都有快乐起来的能力。tag 的字段设置的值为默认值时,对该字段做 marshal 的时候,该字段会被忽略。注:设置了指针类型的字段,如果原始的字段不存在时,则结构体字段为空(nil)
2024-05-15 22:22:21
1283
2
原创 图灵《模仿游戏》论文学习
人们普遍认为,科学家进行科学研究工作总是从可靠的事实到可靠的事实,从来不受任何未经证明的猜想所影响,这种看法是错误的,只要能清楚地划分哪些是经过证明的事实,哪些是猜想的,就不会有害处。趁着年轻,一定要逼着自己养成每天阅读的习惯,阅读的习惯一旦养成,便会历久弥新,量变引起质变,有一天,你会发现自己变得不再是原来的那个你了。惩罚和奖励的使用最好只是教学过程的一部分,大致说来,如果教师没有与学生沟通的其他方式,那么所传达的信息量不会超过所用的奖励和惩罚的总和。你想要成为怎样的人,过怎样的生活,只要你不后悔就行。
2024-04-12 21:54:58
1093
原创 CNCF 已毕业项目简介之 - argo
是否可以成为 CNCF 项目需要通过技术监督委员会 (TOC),投票采取 fallback 策略,即回退策略,先从最高级别开始,如果 2/3 多数投票都通过的话则确认该级别,如果没有通过的话,则进行下一个级别的投票,如果一直到 sandbox 级别都没有得到 2/3 多数投票通过的话,则拒绝进行 CNCF 项目。与强大的自动化相结合、工程师能够以最少的工作量频繁且可预测地进行高影响力的更改。注:以上的解决方案,在我遇到的 case 里是生效的,也有人反馈遇到类似的问题,同样的操作,但是没有解决。
2024-03-12 20:46:25
1496
原创 弱网演练的小插曲记录
Netem 是由命令行工具 tc 控制,tc 主要用于 Linux 内核的流量控制,主要是通过在输出端口处建立一个队列来实现流量控制,接收包从输入接口进来后,经过流量限制丢弃不符合规定的数据包,由输入多路分配器进行判断选择。Netem 是 Linux 2.6 以上内核版本开始提供的一个网络模拟功能模块,它主要用来在性能良好的网络环境中,模拟出复杂的网络问题,比如高延迟、高丢包等问题。blade 的网络问题模拟底层使用了 tc,但是 blade 本身是支持更多故障场景的模拟的,此处仅介绍网络问题的模拟。
2024-02-20 12:44:36
1112
原创 Ddosify 作为压测工具的使用指南
由于不同供应商的机房机器的水平参差不齐,而我司负责的服务就需要在不稳定的机器上为我们的客户提供一个高质量的服务水平。不出意外,能够保障这种水平的方式只有一个,那就是压测,即 1:1 客户的用量来模拟一次客户的请求,保障压测期间质量是可靠的。(ps:写到这里明白了,为什么打仗之前都要演练一遍了那就让我们通过压测这个引子,引入今天的主角「Ddosify」,请注意这个工具是可以用来作为压测,但是人家不是只能用来压测,它的定位是「做 Kubernetes 的监控和性能测试」Automatic Serivice Ma
2024-01-22 21:11:20
1476
原创 开发「定位线上问题」小工具总结
结论:仔细分析了计费的逻辑,发现根因是之前设计的上传触发逻辑有两种,一个当前时间大于文件最后更新时间的 10m ,一个是文件的大小需要大于 1M。而这个产生这个问题的客户使用的方式比较独特,他使计费文件的断断续续的有更新,且总大小仍然小于 1M。2023 年忙着救火,再加上工作年限日益增加,开始变得有些倦怠了,希望 2024 能找回自己,积极学习感兴趣的技术,保持空杯的心态。定位问题 — 机器的 ip 中上传日志的服务可以分析,出文件的生成时间和文件的上传时间。字段是文件产生的时间,UTC 时间的时间戳。
2024-01-18 21:05:49
906
原创 从入门到放弃之「ClickHouse」
注:「当老板交代你完成一件事情的时候,你第一反应不应该是拒绝,而应该是我先出一份整体的完成思路,请老板帮忙评估一下是否符合交付目标」(ps:论把一件事件完成的符合老板的 N 种想法。ClickHouse 是一个开源的分布式数据库管理系统,用于在线分析处理 (OLAP),它是由俄罗斯搜索引擎公司 Yandex 开发的,并于 2016 年开源发布。ClickHouse 「高端」的语法其实还有很多,但无奈这波流感的威力实在是太强了,感觉中招之后,就很难受,不写了,我要继续吃颗退烧药了。
2023-12-20 20:58:58
1842
原创 golang 库之「依赖注入」
知识这个东西,摆在那里就是人家的,学到了才是自己的。uber 的 fx:一个基于 wire 构建的更高级的依赖注入框架,它提供了更多的特性和功能,如生命周期的管理、插件系统、服务注册等。「过度设计」指的是一种过于复杂的方式设计产品或提供问题的解决方案的行为,而在这种情况下,可以证明存在一种更简单的解决方案,其效率和效果与原设计相同。(ps:你认为的未来的问题,可能根本没有出现的机会,所以减少焦虑,不要过度,因为未来的事情担心和设计。健康的活着,平静的过着,开心的笑着,适当的忙着,就很好。
2023-11-10 20:18:28
1341
1
原创 C++ 智能指针常用总结
当所有的 shared_ptr 释放之后,资源会被争取的释放。:c++ 的 zero cost abstraction 的特点,unique_ptr 在默认的情况下和裸指针的大小是一样的。我永远喜欢我自己,我有勇气敞开心扉去接受一起新的变化和想法,但我永远不会因为别人的反映而惶恐不安,不因外界的评价而自我怀疑,我允许自己被否定,但我无需认同,也不会在意。在初始化 unique_ptr 智能指针时,还可以自定义所指堆内存的释放规则,可以在定义的释放规则中加入自定义的释放规则,以释放默写资源。
2023-10-20 21:24:38
283
原创 # 如何使用 GitHub Copilot 发送 Tweet(译)
Copilot 是一款 AI 结对程序员,可帮助你以更少的工作更快地编写代码。如果你从未使用过它并且你正在努力想象它的行为,我会将其比作 Gmail 和 Google Docs 中的智能撰写功能。与智能撰写类似,GitHub Copilot 会预测你的下一行代码以提高你的工作效率。从 Copilot 获得最佳结果的关键是:写清晰和具体的注释一旦 Copilot 能够识别代码中的连续模式,就可以利用它检查 Copilot 提供的替代建议。
2023-09-07 20:59:39
911
1
原创 使用 GitHub Copilot 进行 Prompt Engineering 的初学者指南(译)
GitHub Copilot 是一个 AI 结对开发工程师被 GitHub 开发并且 GitHub Copilot 由 OpenAI Codex 提供支持,OpenAI CodeX 是 OpenAI 创建生成式预训练语言模型。它根据注释和代码的上下文提供上下文话的代码建议。要使用它,可以在以下 IDEs 安装 Github Copilot 插件:NeovimPrompt engineering 是给 AI 模型提供特定指令去产生想要结果的一种实践。提示是可以触发 AI 模型响应的一系列文本或一行代码。
2023-08-02 20:43:34
3196
1
原创 基于 ChatGPT 的 helm 入门
发布平台的使用使业务侧在不了解 helm 、chart 等工具的时候,「只要点点」就可以完成一个业务的发布。注:对于一个处于磨合期的平台,业务侧如果能更多的了解一些底层发布实现的细节,可谓是「事半功倍」。
2023-07-19 21:25:02
1089
原创 swagger 入门指南
--info:paths:/hello:get:produces:in: queryresponses:200:schema:新建目录 GreetServer将上述的内容拷贝为 swagger.yaml 文件,并放在 GreetServer 目录下运行如下命令即可得到如下目录结构的文件如下图所示,就得到一个可以快速运行的 demo注:上述 demo 的运行效果返回的是该方法还没有实现快速在上述 demo 中增加逻辑的方式,过滤 「safe」关键字,在代码中简单返回 body。
2023-06-19 22:46:04
462
1
原创 《Amazon DynamoDB》 论文笔记 1
DynamoDB 持续监控服务和表级别的可用性。一般对数据中心的应用而言,Scale out 指的是当添加更多的机器时,应用仍然可以很好的利用这些机器的资源来提升自己的效率从而达到很好的扩展性。会有沮丧失意的时候,但经常会跟自己讲,如果在这一件事情上运气不好,那一定会在别的什么事情上还回来,所以没什么好难过的,人要学会往前走,走下去,就总能看到更多更好的风景了。从业务角度:为物理上混部的用户,提供逻辑上的隔离,即部署在同一个机器上的业务不会互相影响,docker 部署是一个很好的解决方案。
2023-05-19 21:10:37
1088
2
原创 《计算机构造与解释》读书笔记(6)
求值和元循环求值器的环境模型将按顺序执行给它的定义,一次在环境框架里扩充一个定义。对于交互式的程序开发,这样做事特别方便的,因为程序员需要自由地混合过程应用和新过程的定义。注:但是用于实现块结构的内部定义,就会发现,这种一次一个名字的环境扩充方式可能不是定义局部变量的最好方式。n)true(odd?(- n 1))))在这里的意图是,在过程 even?的体里的名字 odd?应该引用过程 odd?,而它是在 even?
2023-04-24 12:57:03
395
原创 音视频基础知识
PPS(图像参数集):对应的是一个序列中的某一副图像或者是几幅图像,其参数标识符 pic_parameter_set_id、可选的 seq_parameter_set_id、熵编码模式选择标识、片组数组、初始量化参数和去方块滤波系数调用标识符等。即包含一个图像的所有分片的全部的相关信息,包括图像类型、序号等,解码时某些序列号是否丢失可用来校验信息包的丢失与否。感知冗余信息:人眼的一些特性比如亮度辨别阈值,视觉阈值,对亮度和色度的敏感度不同,使得在编码的时候引入适量的误差,也不会被察觉出来。
2023-03-14 18:42:12
588
原创 《计算机构造与解释》读书笔记(5)
描述流的另一种方式是利用延时求值隐式地定义流。这种方式定义就像是在定义一个递归过程:这里的 ones 是一个序对,它的 car 是 1,而 cdr 是求值 ones 的一个允诺。对于其 cdr 的求值又是一个 1 和 求值 ones 的一个允诺,并这样继续下去。
2023-02-06 18:42:26
732
原创 《计算机构造与解释》读书笔记(4)
在实际实现使用中,给定一个过程 P,串行化组将返回一个过程,该过程获取相应互斥元,之后运行 P,最后释放互斥元,此种操作即可保证串行化性质。例如,设想一个分布式的银行系统,其中的各个分支银行维护着银行余额的局部值,并且周期性地将这些值与其他分支所维护的值相互比较。这里的每个进程都反复将自己的值更新为自己的原值和相邻进程的值的平均值。下图的时序图勾画了一个事件顺序,其中的 balance 在开始时是 100,Peter 取走了 10,Paul 取走了 25,然后 balance 最后的值却是 75。
2023-01-18 18:14:16
1313
原创 《计算机程序构造与解释》读书笔记(3)
局部过程的名字不会与包容它们的过程之外的名字互相干扰,这是因为这些局部过程名都是在该过程运行时创建的框架里面的约束的,而不是在全局环境里约束的。局部过程只需将包含着它们的过程的形参作为自由变量,就可以访问该过程的实际参数。这是因为对于局部过程体的求值所在的环境是外围过程求值所在的环境的下属。
2022-12-20 12:31:54
1036
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人