自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(116)
  • 收藏
  • 关注

原创 团队管理:如何把工作安排给合适的人?

摘要 本文探讨了软件项目团队中任务分配的核心原则与方法,提出了基于任务、人员和团队三个维度的匹配框架。任务维度需评估难度、紧急性和依赖性;人员维度应考量技术能力、成长意愿与责任心;团队层面要统筹任务负荷与项目协调。文章强调通过技能矩阵、SMART原则等工具实现精准匹配,同时建议建立动态调整机制,兼顾绩效管理与员工发展。最终目标是避免错配导致效率低下,实现"人尽其才、事得其人"的良性循环。(149字)

2025-11-08 08:14:45 503 9

原创 音视频处理(三):hls协议和m3u8详解和视频下载爬虫实战

本文介绍了HLS(HTTP Live Streaming)协议的工作原理及实现细节。HLS是苹果公司提出的基于HTTP的流媒体传输协议,通过m3u8播放列表和ts视频分片实现视频播放。文章详细解析了m3u8文件格式、TS视频流封装结构,以及HLS相比RTSP协议的优势和不足。HLS具有高兼容性、自适应码率和易缓存等特点,但存在延迟较高的缺点。文章还以电视迷视频下载为例,展示了HLS协议的实际应用场景,并对HLS与RTSP协议进行了对比分析。

2025-11-07 23:00:12 814 53

原创 高效能人士:提升工作能力的几个好习惯

提升职场能力的7个关键习惯:1.清晰表达:用金字塔模型结构化思维,讲清问题背景、影响、原因和解决方案;2.任务拆解:运用SMART原则将复杂工作分解为可执行步骤;3.严格守时:主动掌控工作节奏,避免任务延期连锁反应;4.责任分明:事前做好风险评估,事后勇于担责但不盲目背锅;5.闭环思维:注重文档沉淀、问题复盘和流程优化;6.情绪管理:危机时刻保持冷静,有序处理问题;7.全局视角:超越单一任务,思考方案复用性和战略价值。这些可迁移的职场软技能比技术能力更具持久价值。

2025-11-04 22:54:53 615 9

原创 未知即恐惧:那些工作中让你难受的事应对方法

《程序员应对非技术工作困境的方法论》摘要:本文针对程序员在非技术工作中常见的流程追踪、向上沟通、多方协调等痛点问题,提出系统性解决方案。核心方法论包括:以结果导向克服沟通障碍,建立流程规范意识,运用RACI模型明确责任分工,通过LLM辅助解决技术难题。重点分析了"未知即恐惧"的心理机制,提出通过梳理流程将未知转化为认知的策略,建议聚焦核心问题、扫清简单未知。总结出五大应对要点:结果导向、调整心态、整理思路、做好预案、专注核心问题,帮助程序员扩大职场舒适区,实现从技术思维到综合能力的提升。

2025-11-02 08:28:24 906 23

原创 freertos系统中如何生成随机数以及保证随机性?

本文探讨了FreeRTOS环境下随机数生成的实现方法,重点分析了伪随机数算法的选择与种子生成问题。文章对比了线性同余法、梅森旋转算法、平方取中法和Xorshift等常见伪随机算法的特性,并提供了相应的C语言实现示例。在FreeRTOS缺少标准C库支持的情况下,实现随机数生成的核心挑战在于获取可靠的随机种子。作者建议结合硬件熵源(如ADC噪声、RTC时钟抖动)或系统运行特性来生成初始种子,同时指出对于加密等安全场景应优先考虑密码学安全算法。该研究为嵌入式系统开发者提供了实用的随机数实现方案参考。

2025-11-01 08:19:57 836 21

原创 音视频处理(二): 一文讲清楚音频处理流程:采样、压缩和播放

本文介绍了音频处理全流程,包括采样、数据保存、压缩和播放。音频采样涉及采样率、位深和声道数等参数,原始PCM数据通过WAV文件格式保存并添加描述信息。WAV文件采用RIFF规范,包含fmt和data等关键信息。音频压缩技术通过消除统计和感知冗余实现,有损压缩基于人耳听觉特性去除冗余信息,无损压缩则保留完整数据。文中还通过实例解析了WAV文件头字段含义,并给出码率计算公式,为音视频技术开发提供了实用参考。

2025-10-26 17:54:07 861 69

原创 一切皆协议:从API到MCP,软件乃至世界的本质是协议

文章摘要:协议是信息传递的底层基础,存在于人类沟通、人机交互及机器间通信中。人类通过语言、手势等协议交流,编程语言则是人与机器的协议形式。机器间协议包括网络协议、过程调用、文件格式等。传统ABI/API强调固定格式,而新兴的MCP协议基于自然语言语义,实现大模型与工具的松散耦合交互。协议设计需考虑空间(数据格式)和时间(交互流程)两个维度。随着AI发展,机器间协议将趋向人类沟通的灵活性,MCP协议正改变着传统协议的强约束特性。

2025-10-24 23:40:10 685 44

原创 方法论:从社会契约到公司流程制度

工作中避免一个坑重复踩,需要流程制度保证可靠性和降低风险,比如代码review、方案设计、软件发布等都需要严格的流程制度。那面对一个新问题,我们该设计一个流程制度呢?其实每个公司就是一个小型的社会,我们可以参考社会中的法律法规的建立来设计公司的流程。

2025-10-18 22:09:20 953 59

原创 音视频处理(一):什么决定了你的音色?声音的三要素

声音的三要素包括音调、音量和音色。音调由频率决定,频率越高音调越高(如儿童声>女声>男声)。音量取决于振幅大小,振幅越大声音越洪亮。音色由谐波组合决定,不同乐器或人声因谐波差异而呈现独特音质。这三要素共同构成声音的基本特性,对音频处理、语音识别等领域具有重要意义。理解这些原理有助于分析声音的本质特征。

2025-10-17 20:15:11 503 23

原创 ASR+LLM:B站学习视屏下载并生成学习笔记

本文介绍了一种将B站教学视频转化为学习笔记的方法:首先使用开源工具bilibili下载姬获取视频,再用ffmpeg提取音频并截取所需片段;然后通过在线ASR工具将语音转为文字;最后用大语言模型(LLM)整理文本,生成格式规范的Markdown笔记。这种方法解决了B站视频不便下载和回顾的问题,适合需要系统整理视频内容的场景。

2025-10-17 20:02:43 831 22

原创 crawl4ai智能爬虫(一):playwright爬虫框架详解

摘要: Playwright是由微软开发的跨浏览器自动化框架,支持Chromium、WebKit和Firefox,具备跨平台(Windows/Linux/macOS)和多语言(Python/JS/Java等)特性。其核心优势包括自动等待元素加载、内置网络断言、多进程隔离测试以及强大的调试工具(如代码生成、跟踪查看器)。相比Selenium,Playwright无需WebDriver,通信效率更高,支持现代网页特性(如Shadow DOM穿透),且自带浏览器内核,安装更便捷(pip install playw

2025-10-12 20:16:01 1565 27

原创 文科和理科思维差异:推演与归纳

摘要:文章对比分析了文科思维与理科思维的差异。理科思维追求确定性答案,强调逻辑推理与系统性;文科思维注重探索过程,多角度思考并融入情感因素。通过推演(演绎推理)和归纳两种方法,分别展示文理科思维的应用特点。实例说明理科思维适用于故障排查等严谨问题,文科思维更适合营销方案等复杂情境。最后指出两种思维应互补融合,共同解决现代复杂问题,如人工智能领域既需要技术推演也需要人文思考。

2025-10-07 22:58:16 669 7

原创 爬虫框架: selenium API使用介绍

Selenium是一个基于Python的自动化Web测试框架,也可用于爬取动态渲染页面。文章介绍了Selenium的API使用:1)安装浏览器驱动;2)定位页面元素的多种方法(id、name、xpath、css选择器、文本链接);3)窗口控制(大小调整、页面切换、刷新);4)输入框操作(输入、清除内容、获取属性);5)按键模拟点击。相比传统爬虫,Selenium通过模拟用户操作浏览器解决了动态页面抓取问题,但需要配合Chrome等浏览器驱动使用。文中以CSDN网站为例,详细演示了各个API的具体应用。

2025-10-04 17:54:55 2090 8

原创 如何快速学习一个网络协议?

本文为程序员提供了高效学习网络协议的系统方法。首先指出网络协议的三大# 程序员高效学习网络协议方法论 # 本文为程序员提供了一套高效学习网络协议的系统方法:首先分析网络协议的三大共性特征(分层模型、协议三要素、核心机制),然后提出"四步学习法":1)明确协议背景与定位;2)解析协议格式与交互流程;3)通过抓包工具和编程实践;4)深入研究关键机制。以TCP协议为例演示了具体实践方法,强调通过理论结合实践、主动探索的方式快速掌握协议核心。特别推荐使用Wireshark抓包分析和编写简单TCP

2025-10-04 15:14:17 2525 22

原创 性能之巅:大小水管问题深究

摘要:本文探讨了高性能服务器和网络中的"大小水管"问题,即生产者与消费者速率不匹配导致的性能瓶颈。分析了两种典型场景:报文转发和进程间通信,指出流控机制存在矫枉过正和突发流量问题。提出三方面解决方案:优化接收端(算力匹配、睡眠优化)、调整中间队列长度缓冲突发流量、改进发送端流控机制实现速率匹配。重点介绍了通过队列长度计算缓冲时间的公式,为解决这一性能优化难题提供了系统性的思路和方法。

2025-10-03 22:51:08 980 8

原创 基于IP层路由的回环测试方案:不对称端口网络设备如何测试性能?

网络转发设备测试中,针对不对称网口场景(奇数个或速率不同)可采用回环测试方案。奇数网口可用环形连接(1→2→3→1),不同速率网口则采用单端口回环。 Thou。 三种回环方式包括PHY层(直连)、MAC层(需改造)和IP层(支持交换机拓扑),通过构造特殊报文实现三层转发。测试方案需根据具体场景选择合适回环方式,确保设备转发性能验证。

2025-10-01 07:31:16 505 6

原创 基于LLM的智能GDB分析工具方案设计

本文介绍了一种基于LLM的智能GDB调试工具方案,通过Python脚本作为中间层实现GDB与LLM的自动化交互。该工具首先通过Python控制GDB获取核心转储文件的分析结果(包括调用栈、线程信息和寄存器状态),然后构造提示词将这些信息发送给LLM进行分析。文中详细展示了Python控制GDB的实现方法、自定义GDB命令的注册过程,以及如何将分析结果对接LLM API进行智能诊断。该方案有效解决了传统GDB调试需要人工多轮交互的问题,为coredump分析提供了自动化解决方案。

2025-09-27 21:50:42 1080 2

原创 AI时代程序员可以利用AI做什么?

AI时代,程序员如何巧用AI进行提效?想要了解AI的使用场景需要理解AI充当的角色,显然以当前(2025年)的水平,AI还无法取代程序员,更多的是一个辅助的角色,即的角色,是一个不偏科的文理全才。想要了解AI能做什么,需要了解AI知道什么?由于AI有全网搜索能力,所以如下知识AI是知道的:1、公开的技术2、开源代码生成式AI天然就适合来写文档、PPT、数据处理等工作,文档类工作可以使用LLM生成出版,然后进行美化。

2025-09-27 18:33:07 502 2

原创 LLM API使用教程:NVIDIA免费API KEY

本文介绍了两种调用LLM大模型API的方式:OpenAI标准API和requests模拟请求,并以NVIDIA平台为例提供详细教程。主要内容包括:1.背景说明API调用在批处理和工程集成中的必要性;2.对比两种API调用方式的代码实现;3.NVIDIA平台注册流程和API Key获取步骤;4.实战演示通过API生成阳朔3日旅游攻略。教程包含完整代码示例和效果展示,帮助开发者快速上手API集成应用。

2025-09-21 08:32:38 538 3

原创 嵌入式项目流程介绍: 不了解项目流程还怎么当负责人?

本文以嵌入式软件负责人视角,系统介绍了项目开发全周期流程及管理要点。项目周期包括立项、评估、计划、bringup、开发测试、发布、试用、试产、量产和维护迭代等阶段。重点阐述了立项阶段的需求明确与风险评估、前期硬件/SDK评估方法、项目计划的任务拆分与里程碑设置、开发阶段的进度管控与疑难问题解决策略,以及发布后的分支管理与市场问题应对。文章强调了对未知功能的风险预判、阶段性成果固化、工作留痕和团队协作的重要性,并提供了实用的项目管理工具和汇报模板,为嵌入式项目开发提供了系统化的管理思路和实践指导。

2025-09-20 16:37:45 778

原创 MQTT协议详解:给你的物联网设备来点sauce!

MQTT是一种专为低带宽、高延迟网络设计的轻量级消息传输协议,广泛应用于物联网领域。它由IBM于1999年开发,采用发布/订阅模式,具有轻量高效、支持多种服务质量等级(QoS)等特点。MQTT的核心组件包括发布者、订阅者和代理(Broker),通过主题(Topic)实现消息分类和过滤。其协议结构包含固定头、可变头和有效载荷三部分,支持三种QoS等级以满足不同场景需求。MQTT适用于物联网设备通信、车联网、远程监控等场景。常用开源Broker包括Mosquitto、EMQX等,客户端库如Eclipse Pah

2025-09-16 23:18:41 1076 2

原创 机器学习vs人类学习:人类学习如何借鉴机器学习方法?

人类学习的过程其实就是了解对象(概念),以及建立对象之间的关系的,这也是逻辑学导论中所讲的逻辑的基本组成。而机器学习也是从海量的数据中学习特征,如自然语言处理,文本处理也都是处理一个个的符号,以及符号之间联系的过程,和人类学习有相似的过程,人类学习也可以从机器学习的原理中总结出一些方法论,提升学习效率。当然人类大脑学习过程要复杂的多,这里提炼的是高效的学习方法。

2025-09-11 22:11:56 1311

原创 C语言与FPGA(verilog)开发流程对比

C语言与Verilog开发对比摘要(148字) C语言与Verilog在嵌入式开发中存在本质差异:C语言是软件编程,关注算法流程和顺序执行;Verilog是硬件描述语言,描述电路结构和并行运行。C程序经编译生成指令序列由CPU串行执行,Verilog经综合、布局布线后映射为FPGA硬件电路。关键区别包括:C隐含CPU时钟,Verilog需显式管理时钟信号;C动态管理资源,Verilog静态分配硬件资源;C适合复杂控制逻辑,Verilog擅长并行处理。现代SoC常将两者结合,发挥各自优势。

2025-09-08 22:12:07 748 2

原创 内存越界检查工具:electric_fence原理及使用

Electric Fence是一种轻量级内存越界检测工具,它通过巧妙利用Linux内存管理机制实现高效检测。其核心原理包括:1) 拦截malloc/free函数;2) 为每次内存分配至少一个页面(4KB)并设置虚拟红区;3) 使用mprotect设置红区不可访问权限。当程序越界访问时会触发缺页异常,立即产生coredump定位问题。相比valgrind等工具,Electric Fence具有CPU占用小、检测精准的特点,特别适合调试堆内存越界问题。

2025-09-07 22:31:46 658

原创 基于二层协议的类telnet调试工具实现-PTY实现

本文提出了一种基于二层协议的类telnet远程调试方案,适用于嵌入式系统中芯片间通信等场景。通过分析telnet实现原理,采用PTY虚拟终端技术实现本地shell与远端设备的交互,保留tty特性如回显、行缓冲等。方案设计将telnet协议替换为二层协议,通过主子PTY设备实现字符传输,上层提供统一API接口。文中给出了PTY的使用示例代码,并展示了服务器端框架,通过替换协议层实现跨设备远程shell操作,简化调试过程。该方案在保持原有调试习惯的同时,降低了开发工作量。

2025-09-07 08:27:04 828

原创 职场法则:程序员的软实力(pdca、smart、scqa、grow、mece原则)

摘要:本文介绍了程序员需要掌握的7个职场方法论(PDCA、SMART、MECE、SCQA、GROW、金字塔原理、RACI),涵盖项目管理、目标制定、问题分析、工作汇报等场景。PDCA强调持续迭代改进,SMART确保目标清晰可行,MECE实现无重叠无遗漏的问题拆分,SCQA提升结构化表达能力,GROW用于目标引导,金字塔原理实现高效汇报,RACI明确责任分工。这些工具可帮助程序员提升软实力,实现更高效的工作协同和个人成长。

2025-09-06 21:32:32 1075

原创 进程和线程创建销毁时mutex死锁问题分析

Linux多线程编程中的锁继承问题与解决方案 本文分析了Linux环境下C语言多线程编程中进程/线程创建销毁时引发的锁状态继承问题: 进程创建:fork时子进程会继承父进程的锁状态,可能导致死锁。建议使用pthread_atfork()注册处理函数,或子进程立即调用exec系列函数。 线程销毁:线程被取消时若持有锁会导致死锁。解决方案包括: 使用pthread_cleanup_push/pop注册清理函数 临时禁用取消功能 采用标志位协作式终止替代pthread_cancel 最佳实践:避免混用进程线程,优

2025-09-05 23:27:35 993

原创 嵌入式git分支管理策略

本文介绍了Git代码维护策略,重点针对嵌入式行业的项目代码管理。文章阐述了两种分支管理方案:常规的4分支策略(master主干分支、feature开发分支、release发布分支、hotfix紧急修复分支)和精简的2分支策略(dev开发分支和release发布tag分支)。通过对比各分支的修改量和稳定性,作者建议根据项目规模选择合适的分支策略,并强调定期回归主干分支和弃用旧release分支的重要性。文章还提供了使用mermaid语法绘制Git分支图的方法,帮助开发者更直观地理解分支管理流程。

2025-09-02 23:07:01 1181

原创 typora画图:mermaid语法demo(快速copy使用)

本文介绍了使用Mermaid语法在Markdown中快速绘制各类图表的方法,提供了可直接复用的示例模板。主要内容包括:1)流程图(顺序/判断/方向控制);2)类图(展示数据结构关系);3)状态图(状态转换条件);4)时序图(对象交互过程);5)甘特图(任务计划管理)。文章重点演示了各类图表的语法结构和使用技巧,并附上箭头形状、方框样式等速查表,帮助开发者快速实现"文本转图表"的需求,提升文档编写效率。参考链接指向Mermaid中文官网和详细教程。

2025-08-31 08:16:23 926

原创 换公司如何快速切入软件项目工程

文章摘要:作者分享了程序员快速熟悉新项目代码的经验。首先要理清整体框架,包括系统架构、进程模型、通信机制等;其次通过代码走读熟悉核心业务,建议从简单模块入手,结合LLM辅助阅读。业务学习方面强调多请教同事、查阅文档和历史问题记录。最后提出实用技巧:善用现有资源、思路先行、做好学习笔记输出。全文150字。

2025-08-29 22:39:46 338

原创 嵌入式系统bringup通用流程

本文总结了嵌入式设备Linux系统bringup的通用流程和思路。首先明确bringup的核心目标是在1周内快速适配核心业务,如路由器需有线通、无线接入,摄像头需出流接入NVR。主要流程包括:1)编译框架适配,合入供应商SDK;2)固件打包;3)flash驱动适配;4)解决启动问题(uboot引导内核、内核启动、rootfs挂载);5)业务进程和关键驱动适配。关键技巧包括跳过大法、最小化编译、卡点分析和严格时间控制。通过分阶段里程碑管理,确保bringup工作高效完成。

2025-08-24 17:42:41 852

原创 7年程序员的生产力工具清单(通用工具+技术工具)

本文整理了一个程序员7年工作经验总结的生产力工具清单,涵盖通用工具和技术工具两大类。通用工具包括搜索工具Everything、笔记工具Typora/OneNote、项目管理Notion、截图Snippaste等;技术工具则包含代码编辑器SourceInsight/VSCode、IDE如IDEA、终端工具MobaXterm、抓包工具Wireshark等。作者表示清单将持续更新,并欢迎读者补充推荐其他实用工具。该清单既可用于个人工作备份,也可作为程序员快速配置开发环境的参考指南。

2025-08-10 07:19:20 204

原创 解决技术问题思路

《技术问题分析与解决的方法论》摘要:本文系统梳理了技术问题的全生命周期管理方法,提出从现象收集到问题复盘的标准流程。核心观点包括:1)建立"现象分析-猜想验证"的科学实验式解决范式;2)区分必现/偶现问题的处理策略,强调现场信息收集的重要性;3)采用"广度优先"的思维模式,结合正面/侧面跟进策略;4)平衡用户需求与技术调查的矛盾。文章还总结了研发各阶段问题的处理要点,特别强调市场反馈问题的紧急应对措施。最后提出通过问题复盘实现经验沉淀,避免同类问题重复发生。这套方法论

2025-08-02 19:26:47 798

原创 cmake语法学习笔记

1)基础.c编译,生成可执行文件,编写CMakeLists.txt# CMake 最低版本号要求# 项目信息# 指定生成目标main使用括号的方式调用函数,和make\shell不同分隔符没有逗号和分号,使用空格分割。project属性是否每个CMakeLists.txt文件都需要添加?不需要,顶层添加即可。

2025-07-20 18:36:49 722

原创 如何快速学习一门新技术

《技术学习方法论:从认知到实践的完整框架》本文系统性阐述了技术学习的本质与方法论。首先定义了技术的基本要素,包括需求背景、解决方案、原理机制、工程实现等8个维度。文章提出技术掌握程度可分为"员-匠-家"三级,区分了技术储备与项目需求两种学习目标。通过WWH模型(What-Why-How)构建技术调研框架,强调从问题本源出发理解技术原理。在实践层面,建议结合公司资源、竞品分析和快速评审推进落地。推荐"LLM优先"的学习路径,并采用分级记忆策略:核心原理存入大脑,过程细节记入笔记。最后提出4类文档输出方法,

2025-07-19 22:02:37 897

原创 如何快速走读新代码

1、保持热爱和疑问2、no code first:技术简介-使用-原理-代码-实践的顺序从原理到代码从使用到代码3、走读代码思路模块框架图系统分层图(三明治结构,从两侧向中间层靠近)上下文线程关系,通信方式数据结构关系数据流关系核心代码流程,关键函数调用链:1、初始化 2、各上下文入口 3、事件处理入口、报文收发入口等。4、学习方法沙漏式学习法带着问题去学习,有目的去学习,借助LLM效率会有很大提升。海绵式学习法初期没有认知,需要建立认知需要海绵式学习法。

2025-07-06 16:45:44 799

原创 如何快速学习一门新编程语言

本文分享了程序员如何快速掌握新编程语言的方法论。作者提出编程学习应区分"技"(具体技能)和"术"(方法论),强调在LLM时代掌握学习"术"的重要性。文章提供了一套具体的学习步骤:1)了解语言特性;2)编写简单程序熟悉基本语法;3)通过自检表格对比新旧语言差异;4)实践demo项目。最后给出了一份详细的语法对比表模板,帮助程序员系统化地学习新语言。该方法特别适合已掌握至少一门编程语言的开发者快速上手新语言。

2025-06-28 17:13:41 1107

原创 pinctrl子系统学习笔记

cpu的gpio引脚可以复用成多个功能,如可以配置成I2C或者普通GPIO模式。配置方式一般是通过写引脚复用的配置寄存器,但是不同芯片厂商配置寄存器格式内容各不相同,设置引脚复用无法做到通用且自由的配置,只能在启动初始化时候在soc驱动初始化时对每个引脚配置好。linux 3.0之后内核中抽象出了pinctrl子系统,每个soc注册设置引脚复用的方法以及将soc的每个引脚可选的复用功能。

2024-12-15 19:30:42 972

原创 eventfd和timerfd学习笔记

timerfd可用于用户态的定时器,定时操作。

2024-05-19 22:26:28 1118

原创 ubuntu22上使用qemu-system-arm调试linux

qemu是用软件模拟硬件解析指令运行的软件,可以模拟arm、arm64、x86等,对于调试linux 内核机制很方便,不用额外购买开发板。由于linux上有对qemu的加速引擎,支持程度更高,且网络上教程居多,所以这里使用virtualbox+ubuntu22虚拟机,在ubuntu上运行qemu进行模拟。

2023-12-24 09:38:00 1485

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除