- 博客(51)
- 收藏
- 关注
原创 贝叶斯滤波总结
隐状态 \(x_k\):系统真实状态(如第 k 秒无人机的真实位置),无法直接测量;观测 \(z_k\):传感器的测量数据(如第 k 秒 GPS 读数),带有噪声(比如 GPS 可能飘移 1-2 米);概率分布:贝叶斯滤波不用 “确定值” 估计状态,而是用 “概率分布”(比如 “无人机在位置 (10,20) 米的概率是 80%,在 (11,21) 米的概率是 15%”),分布的峰值就是最可能的真实状态。先验概率:未观测数据时,对初始状态的猜测 $$p(x_0$$;
2025-12-02 17:32:41
527
原创 用 Python 快速搭建一个支持 HTTPS、CORS 和断点续传的文件服务器
在日常开发或测试中,我们经常需要一个简单的 HTTP 服务器来共享文件或提供静态资源。Python 的模块是一个不错的选择,但它默认只支持 HTTP。本文将介绍如何基于快速搭建一个功能更强大的 HTTPS 文件服务器,它不仅安全,还支持跨域请求(CORS)和大文件断点续传(Range Requests)。
2025-11-25 20:46:48
446
原创 Gerrit 核心操作与代码评审流程
本文详细介绍了Gerrit代码评审平台的核心操作流程,包括: 账号创建与初始化:通过Apache认证登录,配置SSH密钥 用户管理:通过组(Groups)和访问控制列表(ACL)管理权限 项目创建与管理:创建项目、分支管理和权限分配 完整的代码评审流程:从开发者推送变更到评审、修改、最终合并 特殊场景处理:放弃变更、cherry-pick等操作 重点说明了强制代码评审机制和Change-ID在流程中的关键作用,以及如何通过Gerrit实现规范的代码合入管理。
2025-09-08 11:36:26
914
原创 Windows 部署 Gerrit 与 Apache24 配置
本文详细介绍了在Windows系统上部署Gerrit代码审查工具并配置Apache24反向代理的完整流程。内容包括:安装Java JDK、下载Apache24和Gerrit软件包;配置Apache24服务端;安装Gerrit并修改配置文件;设置Apache反向代理模块;创建账号密码认证文件;最后启动服务并测试访问。文章还提供了常见问题解决方案,如端口冲突、权限问题和服务启动失败的排查方法。通过本指南,用户可实现Gerrit的安全访问和账号管理功能。
2025-09-05 10:13:09
995
1
原创 计算机系统题目汇总
摘要:本文总结了计算机系统相关问题,重点讨论了进程管理相关内容。进程创建过程涉及分配进程号、创建PCB等步骤。PCB作为关键数据结构保存进程号、状态等信息。进程调度算法包括FCFS(存在大进程阻塞问题)、时间片轮转(时间片设置需权衡)及多级反馈队列等。死锁预防主要通过破坏四个必要条件实现。还介绍了Linux常用命令、Docker使用经验,以及管道、文件等多种进程通信方式。
2025-09-04 14:51:57
357
原创 http问题汇总
这篇文章汇总了HTTP相关知识点:1)HTTP是基于TCP/IP的协议,介绍了缓存控制字段(如expires)和常用方法(GET/POST/PUT区别);2)网络基础包括TCP三次握手/四次挥手过程、字节序转换(主机小端/网络大端);3)性能优化涉及滑动窗口、拥塞控制(慢开始/快恢复)和负载均衡;4)HTTPS与HTTP的5点区别(证书/加密/速度等);5)URL访问流程(DNS解析→TCP连接→HTTP请求→渲染)和RESTful规范6原则;6)补充了DNS协议、ARP、Python requests库返
2025-09-04 14:48:20
1013
原创 数据库题目汇总
本文汇总了数据库相关核心知识点:1. SQL执行过程与优化方法;2. MySQL事务ACID特性及隔离级别(默认可重复读),MVCC机制解决脏读、不可重复读问题;3. 索引创建策略(复合索引、最左前缀原则);4. 数据库访问方式(JDBC/ORM框架)及性能优化方案;5. MySQL与Redis区别(关系型vs非关系型);6. 数据库三级模式与二级映像的优点(数据独立性、安全保密等)。同时涵盖编码问题处理、数据分区方案等实用内容。
2025-09-04 14:45:24
937
原创 Jenkins2.516.2 LTS windows部署教程
本文提供了Jenkins在Windows、Linux和macOS系统上的本地部署指南。首先需要安装Java 8或11(推荐11),Jenkins 2.516.2需Java 17/21。Windows用户通过.msi安装包安装,Linux用户通过添加源安装,macOS推荐使用Homebrew。安装后访问8080端口,输入初始密码(位于安装目录secrets文件夹)完成初始化配置,包括插件安装和创建管理员账户。最后通过创建测试项目验证部署成功,并提供了端口占用、插件安装失败等常见问题的解决方法。部署过程配有详细
2025-09-03 14:35:29
1132
1
原创 通信设备AAU核心性能测试类型及关注指标总结(AI总结)
AAU性能测试与业务测试的区别及关键指标 摘要:AAU性能测试关注设备基础能力,包括射频性能(发射/接收指标)、处理能力(吞吐量、MIMO性能)、协议兼容性、可靠性和能效。与业务测试不同,性能测试评估设备极限而非具体业务场景。核心指标涉及信号质量、处理速度、稳定性及能耗效率,确保设备满足3GPP规范并支持长期稳定运行。
2025-08-22 11:27:16
662
原创 当OKR沦为摆设:我们该如何在错位的职场中自处?
《当OKR沦为摆设》揭示了职场工具异化现象:原本促进目标管理的OKR,在大厂实践中常被临时任务、形式主义扭曲为"金苹果陷阱"。作者指出三大根源:组织文化不匹配、管理者失职和协作异化,并提出应对策略:建立个人OKR体系、采用最小阻力原则处理杂务、保持职业流动性。文章警示职场人勿在无效忙碌中迷失方向,强调在体制性困境中保持个人成长主动权的重要性。
2025-08-22 10:32:08
425
原创 我的算法模板
本文总结了常用排序和查找算法的Python实现模板,包括快速排序、冒泡排序、归并排序、堆排序等排序方法,以及二分查找等查找算法。所有模板都强调了边界条件判断的重要性,并提供了完整的代码示例。排序部分包含递归和迭代两种实现方式,查找部分展示了闭区间和开区间两种二分查找变体。此外,还提供了二叉树遍历的广度优先搜索和深度优先搜索实现模板,包括递归和栈式两种写法。这些模板可以作为算法实现的基础参考,使用时需注意边界条件处理。
2025-08-22 10:16:56
219
原创 【动态规划】01背包问题,学习总结一下
01背包问题是一种经典的动态规划问题,其核心特征包括:存在物品(重量和价值)和容量限制、每个物品只能选一次、目标是优化总价值或计算方案数。解决方法采用二维动态规划数组dp[i][j],通过状态转移方程计算最大价值或方案数。为了优化空间,可以压缩为一维数组,关键是从大到小遍历容量避免重复选择。提供两种模板代码:最大化背包价值和计算恰好装满的方案数。
2025-08-13 00:23:11
728
原创 自动化框架应该什么样(一)——物理结构
本文探讨了基于pytest的自动化测试框架设计,提出分层架构方案,包含测试用例、配置、工具、数据、报告等模块。通过分析Requests、pytest-django等成熟框架案例,总结出优秀框架应具备高内聚、低耦合特性,采用"最小可用结构"逐步扩展的开发思路。文章还分享了利用AI工具编写prompt时的经验,强调从基础结构出发,按需完善各功能层。
2025-08-07 15:02:52
1099
原创 二分搜索中的区间那些事儿:闭区间、左开右闭与左闭右开
本文介绍了二分搜索中三种区间定义方式:闭区间、左开右闭和左闭右开,重点比较了闭区间和左闭右开的实现模板。闭区间包含两端点,循环条件为l<=r,收缩边界时需跳过mid;左闭右开右边界不包含,循环条件为l<r,收缩右边界可直接用r=mid。文章还给出了查找目标值左右边界的实践应用,并建议选择一种区间形式保持一致性以避免错误。掌握这些区间定义差异是保证二分搜索正确性的关键。
2025-07-31 11:19:50
1030
原创 前缀和+贪心总结,基于每日一题力扣3439、3440
文章摘要:本文分析了力扣两道会议调度问题。第一题3439使用前缀和+贪心算法,通过预处理会议时间总和优化计算,在O(n)时间复杂度内求解最大连续空闲时间。第二题3440因会议顺序可变,采用双向遍历预处理空闲区间,判断能否重新安排单个会议,同样达到O(n)时间复杂度。两题都通过巧妙的前缀预处理和贪心策略,将看似需要O(n²)的问题优化为线性复杂度。代码实现中均考虑了边界条件,确保算法正确性。
2025-07-11 11:21:27
654
原创 根据【打家劫舍】题目总结动态规划(DP)在不同场景下的应用逻辑,掌握状态定义、转移方程推导及边界条件处理等核心技巧。
本文总结了力扣打家劫舍系列问题的动态规划解法,重点分析打家劫舍IV(2106题)的二分+DP解法。该题要求在至少选k个不相邻元素的情况下,最小化所选子序列的最大值。解法采用二分搜索确定答案范围,用DP计算每个mid值下能偷的最大房屋数:定义dp[i]为前i个元素中满足条件的最大数量,状态转移时考虑偷或不偷当前元素。文章还回顾了打家劫舍I-III的经典DP解法:线性DP处理单排房屋,环形分解处理首尾相连问题,树形DP通过后序遍历处理二叉树结构。通过系列问题对比,展现了动态规划在不同场景下的灵活应用与优化技巧。
2025-06-25 15:15:44
1149
原创 python中,【subprocess、threading、multiprocessing、协程】有什么区别)
Python并发编程工具对比摘要 Python提供多种并发/并行工具:threading用于轻量级线程并发(受GIL限制,适合IO任务);multiprocessing实现多进程并行(适合CPU密集型任务);subprocess控制外部进程(隔离性强);asyncio支持单线程异步高并发。核心区别在于: 并发类型:线程共享资源,进程隔离资源,协程单线程切换 适用场景:IO密集型用线程/协程,CPU密集型用进程,外部命令调用用子进程 通信机制:线程直接共享内存,进程需IPC,子进程依赖标准IO 典型选择:中小
2025-06-16 15:12:11
894
原创 Python中使用处理数据、路径的2个方法,对应两个第三方库
本文介绍了Python中两个实用的数据处理工具:dataclass和pathlib。dataclass装饰器能自动为类生成特殊方法,简化数据类的实现,支持默认值、不可变实例、自定义方法和字段元数据等特性。pathlib.Path提供了面向对象的路径处理方式,具有跨平台兼容性,支持文件和目录操作、路径遍历等功能,相比字符串路径更安全易用。两者都能显著减少样板代码,提升代码可读性和维护性,建议优先使用这些现代化工具替代传统实现方式。
2025-05-28 11:05:47
356
原创 基于RF robotframework数据驱动测试总结
摘要:数据驱动测试通过分离测试逻辑与数据,实现用不同数据重复执行相同测试。Robot Framework(RF)作为关键字驱动框架,支持数据驱动方式,通过[Template]指定带参数的关键字执行多组测试数据。例如登录测试中,每组账号密码及预期结果作为一行数据自动执行,避免重复编写用例,提高测试效率。RF的分层设计(测试用例层、关键字层、测试库层)使其对非技术人员友好且易于维护。
2025-05-26 20:28:47
231
原创 为什么算法题中前后缀和解法、滑动窗口解法我总是用错
在解决数组相关算法题时,滑动窗口和前后缀和是两种常见的解法,但容易混淆。滑动窗口适用于需要维护一个动态区间,寻找满足特定条件的连续子数组或子字符串,通常涉及最长或最短子串的条件。前后缀和则用于快速计算任意子数组的和,适用于频繁查询子数组和的场景。区分两者的关键在于:滑动窗口强调连续子结构和动态区间调整,而前后缀和则侧重于子数组和的查询和静态数组处理。理解这些特征有助于在解题时选择正确的解法。
2025-05-13 21:00:05
422
原创 Clang实现C++文件分析,含Python实战
本文介绍了如何通过Clang的抽象语法树(AST)分析C++代码,并结合git diff获取修改过的函数信息。Clang的AST是源代码语法结构的树形表示,节点对应语法元素,边表示层次关系。通过Clang的前端编译流程,源代码被转换为结构化的AST。文章详细说明了Clang生成AST的步骤,包括预处理、词法分析、语法分析和语义分析,并提供了命令行示例和AST节点类型的解释。最后,提到可以通过Python的libclang库灵活地遍历AST节点,提取所需信息。
2025-05-12 20:29:02
1718
1
原创 Git技巧:Git Hook,自动触发,含实战分享
最近项目需要1个git合入时触发脚本的功能,使用Git Hook功能实现,总结如下:Git项目在路径:repo\.git\hooks下有很多文件,这些文件就是本地钩子。
2025-04-28 20:20:26
1772
原创 vue中使用pinia实现状态管理——useXXXStore函数
大家一定在vue中还见过 useXXXStore这样的函数,用来实现状态管理的。可以把它当成一个的组件,每个组件都可以读取和写入它。它有和,我们可以假设这些概念相当于组件中的datacomputed和methods。而它通过use开头,正是因为它也符合组合式函数风格的约定。和useXXX函数一样,它写在一个js/ts文件中。最后在一起分析一下,再vue的vben框架中,是如何使用这个功能的。
2024-05-29 17:19:56
1197
原创 vue中的组合式函数(useXXX方法)
长得像是useXXX的函数,比如在vben框架中的useTable、useForm等方法。(结尾有vben这两个use函数的源码分析)。这种useXXX函数是用于在vue组合式写法中,将重复代码段提取成函数(放在js或者ts文件中)的写法。
2024-05-28 11:36:10
1248
1
原创 python3魔术方法总结
面向对象魔术方法:隐式调用的方法__new__ 构造方法触发机制: 实例化对象时触发(在__init__之前)作用: 管理控制对象创建的过程参数: 一个cls 接受当前类, 其他参数根据初始化方法的参数进行决定返回值: 必须返回object, __new__(cls)进行对象的创建,如果没有返回值,则实例化的结果位None注意事项: __new__方法的参数要和__init__ 方法的参数保持一致,处理第一个(cls/self) 必须返回object.__new__(cls)
2021-11-23 00:50:52
468
原创 测试开发、自动化测试学习路线(一)
一、为什么要规划自己的学习路线本人工作一年多点,目前在一家公司中担任QA的角色,说白了就是软件测试(本来面试的应用软件开发,进去分到了开发部门的测试团队);由于团队比较小,虽然个人定位是负责自动化测试、测试开发的工作内容;但是由于人手不足导致自己也需要承担手工测试、硬件环境维护、实验室管理、硬件环境安装等杂七杂八的活,也就是杂活太多了;目前陷入了一种,每天早上到公司打卡,座到工位上就开始查看万年不变的自动化冒烟测试是否正常、之后就开始了无尽的手工无脑测试(有简单的测试设计),需求测完了测专项,专项测完
2021-11-18 00:30:39
586
原创 day18:使用tkinter进行图形化编程入门
一、建立一个窗口import tkinter#创建一个主窗口win = tkinter.Tk()#设置标题win.title("JJsPython")#设置窗口大小,x not *win.geometry("500x500+250+150")#input gete1 = tkinter.Variable()#input win,use show to notshowe...
2020-04-19 16:52:55
345
原创 day17:高阶函数:map、reduce、sorted、fliter、lambda
目录一、map二、reduce三、sorted四、filter五、lambda六、整合练习一、mapmap(fn,lsd)fn: 可以是自己写的,也可以是系统自带的lsd: 一个序列功能:把lsd中每一个元素分别作用在fn上例如:字符串列表变为int列表"""map(fn,lsd)fn: 可以是自己写的,也可以是系统自带的lsd: 一个序列功能:把lsd中每一个元素分别作...
2020-03-16 12:35:28
283
1
原创 day16:army小练习、@property、动态添加属性和方法、限制添加属性、__repr__和__str__、类方法和静态方法
一、army小练习使用面向对象,实现army练习创建一支军队:骑兵、法师、弓箭手将军可以下达命令指挥军队"""创建一支军队:骑兵、法师、弓箭手将军可以指挥军队下达命令"""class Cavalry: def attack(self): print("My iron rides on you!") def defend(self): ...
2020-03-13 17:56:38
227
原创 day15:面向对象
目录一、面向对象1、使用class建立类2、实例化对象3、使用构造方法4、访问原来的属性5、析构函数6、使用私有属性、私有方法7、继承、重写、拓展8、小练习一、面向对象面向对象,更加注重过程的编程方法面向对象三大特性:封装,继承,多态py中所有的类都继承与一个父类1、使用class建立类#class 类class Person: pass给类加入属性:#属性name =...
2020-03-12 10:48:49
236
原创 day14:time模块、异常处理、装饰器、主程序调用
目录一、time模块1、time.time 时间戳2、time.localtime3、time.gmtime世界协调时,会自动减去8小时4、mktime 结构化一个时间戳5、time.ctime 返回英式时间 time.strtime 时间格式化6、time.strptime 结构化时间7、time.sleep 休眠二、异常处理三、装饰器1、装饰器:2、当被装饰的函数带参数时3、当装饰器需要有参数...
2020-03-11 12:15:49
414
原创 day13:os模块、os.path方法、递归函数
一、os模块os是系统自带的模块通过os.来进行使用1、os.name查询系统名res = os.nameprint(res)2、os.system调用系统命令os.system("ipconfig") #使用在cmd中可以使用的命令都可以用os.system("notepad")3、os.getcwd()返回当前工作路径绝对路径:从盘服开始的相对路径:相对于当前工作路径...
2020-03-10 22:01:55
318
原创 day12:元祖的操作、字典的操作、文件操作、pickle模块
一、元祖遍历使用for循环遍历t = (1,2,3,4,5)for var in t: print(var)i = 0t = ((1,2),(3,4),(5,6))for var in t: for val in var: print(val)使用while循环遍历while i < len(t): print(t[i]) ...
2020-03-09 16:38:27
465
原创 day 11:列表推导式与深浅拷贝
1、列表推导式通过使用列表推导式,用简洁的代码实现复杂功能例如:打印10与10各个数字的组合res = [(x,y) for x in range(10) for y in range(10)]print(res)打印偶数奇数的组合res = [(x,y) for x in range(10) if x%2==0 for y in range(10) if y%2==...
2020-02-28 17:15:45
219
原创 在csdn,博客怎么写得漂亮
不知不觉也坚持发标了10篇博客了,但时不时回去翻翻的时候还是觉得在格式、排版上做得比较粗糙,也不知道怎么添加一个目录。今天特意学习,在此分享给大家。一、编辑器选择:首先是一打开就显示的富文本编辑器可以看到,它属于简洁型的编辑器,如果只是简单的码字什么的,我觉得使用这个编辑器就足够了。之后就是这个Markdown编辑器,我更加比较推荐这个编辑器它在左边编写,而在右边可以即时的预览写完之后...
2020-02-25 09:28:59
1107
原创 day 10:列表的相关操作
列表的相关操作"""列表的操作"""#重复输出#print(L1*3)L1 = ["Python","PHPPHP","H5EE","Js","Java"]print(L1[0][1:5]) #[1:5]不会取到5print(L1[1][0:3])print(L1[2][-2:])#in not in成员判断L2 = "Python"print(L2 in L1)...
2020-02-25 08:42:13
269
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅