- 博客(97)
- 收藏
- 关注
原创 python之uv使用
是一个更现代的python项目管理器.笔者在使用uv前,笔者都是使用anaconda指令(比如) 为每个项目创建隔离的虚拟环境,然后使用激活此环境,最后使用这种方式来安装或者更新项目依赖.而有了uv之后可以让python项目管理变得更加的规范.本文着重讲解笔者最近切换到使用uv进行python项目管理过程中uv的一些常规用法和技巧,后续有用到新的feature会同步更新本文.
2025-08-11 14:09:45
608
原创 凑零钱问题
经典动态规划凑零钱问题,给定面值的硬币如10块,5块,2块等,每一种面值的币数量上不设限制,要求在这些可选的面值用最少数量的硬币去凑齐指定金额的零钱,如果能凑齐则返回对应总数和每一种面值的硬币具体数量,如果不能凑齐则返-1.
2025-08-09 10:49:58
298
原创 python之asyncio协程和异步编程
本文介绍了Python中的协程(coroutine)和异步编程相关知识。首先解释了协程的概念,指出它是用户态的轻量级线程,通过async/await语法实现,适合I/O密集型任务。文章通过一个简单示例演示了协程的基本用法。接着回顾了迭代器(iterator)和可迭代对象(iterable)等前置知识,包括它们的定义、实现方式以及相关内置函数iter()和next()的使用。最后简要提及了异步迭代器的概念。这些知识为后续深入理解Python异步编程和MCP协议开发奠定了基础。
2025-07-30 23:19:11
617
1
原创 python之faker包使用小结
大量python编码测试场景需要产生一写fake数据,python中可以完成这个任务,本文全面总结一下此包的用法.
2025-07-29 11:13:14
246
原创 fibonacci的4种实现
考虑到base解法有不少重复计算的数值,可以用一个数组存放已经计算好的数值,递归计算时可以查看数组里面是否有之前已经计算好的值,使用空间换时间的方法,算法时间复杂度O(N) 空间复杂度O(N)自底向上的解决办法,使用循环替代递归,时间复杂度O(N) 空间复杂度O(N) 循环实现消耗资源更少,所以时间更快.最简单的递归实现,此种实现分线下来会有非常多重复子问题计算,导致时间复杂度为O(2^n)指数级别.fibonacci的4种实现.把n=0也考虑在内。进一步将时间复杂度降低到O(1)
2025-07-21 23:21:59
341
原创 删除docker镜像后如何正确清理残余
摘要 在Jenkins pipeline构建镜像过程中,常规的docker rmi命令无法彻底解决磁盘空间不足问题。本文推荐使用docker builder prune --all -f作为最佳清理方案,该命令专门针对构建过程产生的残余文件进行清理。相比之下,docker system prune -f虽然能清理空间,但会无差别删除所有未使用的容器和镜像,可能影响系统运行,故不推荐使用。合理的构建后清理策略应选择针对性的builder prune命令,既能有效释放空间,又不会误删重要镜像。
2025-07-03 23:46:51
285
原创 ubuntu 下cursor的安装
摘要 本文介绍了在Ubuntu系统上将Cursor编辑器配置为类似vscode的便捷启动方式。整个流程无需安装,通过简单的文件配置即可实现。
2025-06-26 17:08:32
669
原创 聊聊python中的显式声明类型参数
类型参数还可以是自定义类,或者自定义类的集合类型class A:a.test()test_a(a)自定义类型作为集合中元素类型。
2025-01-26 09:16:52
1008
原创 java多线程分发处理,线程聚合场景解决方案解析
设定一个可接受等待的最大值N,当N个线程都在CyclicBarrier上面阻塞等待的时候,触发tripped,线程继续执行,cyclicbarrier关联任务开始执行.cyclicbarrier跟它名字一样,它可以循环使用,当发生tripped后,相当于状态重制,又可以接受N个线程在它上面等待.cyclicbarrier适合固定数量线程循环进行并行处理然后聚合的场景,当每一个线程把当前批次处理,然后cyclicbarrier聚合处理,之后又可以循环执行.获取"许可",操作完资源之后调用。
2025-01-19 10:25:52
1049
原创 正则表达式,看完这一篇博客即可
做了一段时间的genai相关应用.遇到如下的一种场景:一次大模型调用输出多个模块代码,从输出内容里面提取这些模块代码然后保存成多个文件,组合成一个可运行的项目或者完整的功能模块.这里就涉及到对大模型返回的原始文本结果用正则表达式进行处理的场景了.本文详细回顾一下python和java里面正则表达式的用法以及技巧,并探究了正则表达式在大模型场景下的应用.以python语言中的re模块为例,回顾python中正则表达式中的特殊符号.默认情况下匹配任意非换行符单个字符串,pythonre中可以使用re
2025-01-19 09:58:59
805
原创 python拓扑排序算法实现
按照wiki拓扑排序的说法,拓扑排序是对有向无环图的顶点的线性排序,要求对于顶点u到v的每一个有向边uv顶点u都在v前面.拓扑排序其中一个重要的场景就是对互相有依赖的任务的执行顺序排序本文总结了python如何实现拓扑排序,包括卡恩算法以及深度优先搜索算法这两种排序算法.两种算法都可以帮我们解决涉及到互有依赖的task的执行顺序编排问题.
2025-01-09 08:20:34
833
原创 docker容器内怎么正确使用宿主机的GPU资源
重新运行官方的milvusgpudocker-compose.yml则可以正常启动,附带笔者在官方的docker-compose.yml文件上添加的attu的完整版本docker-compose文件,通过。其实只需要正确安装配置好nvidia-smi以及nvidia-container-toolkit参考docker关于正确使用宿主机器GPU的文档。输出内容为容器内运行nvidia-smi指令的结果,不包错则nvidia-container-toolkit正常安装且正常配置.
2024-12-11 09:54:20
2091
原创 D3.js 初探
D3js 使用小结D3.js 使用小结最近在做一个Data Visualization 的项目,由于对最终呈现的效果的交互性要求比较高,再加上自己做过前端的项目,对javascript还是比较熟悉的,所以最终采用D3.js 来完成数据的可视化;开发过程中有一些小的心得以及对D3.js 的一些认识,于是在此总结一下。
2024-12-04 20:51:30
830
1
原创 基于snowflake id 的 N 位唯一数字id 生成算法总结
分布式场景下选择snowflake id 生成算法来生成id是常见的技术选型,然而默认情况下snowflake id 生成器生成的id长度为19位数字,有些场景下我们需要的是8位,9位等长度小于19的唯一数字id,这个时候就需要将原有的snowflake id 进行一定的处理才能得到满足要求的指定为数的唯一数字id.本文详细总结一下常用的处理方法以及其优缺点.优点:1. 更加随机且均匀分布的映射,减少碰撞. 2. 保持了 Snowflake ID 的唯一性和分布特性。缺点:高并发场景下id容器碰撞。
2024-11-29 22:42:59
610
原创 docker 容器访问宿主机器服务的最简单方法
经常遇到一个服务是容器方式启动,另一个服在开发机器上启动,涉及到容器内发请求到宿主机器上面的问题,这里把最简单的解决办法记录以下。容器内将此ip作为宿主机ip即可实现容器内服务访问宿主机服务,简单高效的方法.查看docker网桥ip, 一般都是。
2024-11-10 07:38:06
1725
1
原创 浅谈一下关系型数据库中json类型字段的处理
mysql以及postgresql针对json类型字段提供的处理方法会有差异,因此使用的时候需要注意这个点.其次实际开发过程中我们也可以不用使用如下这个表结构存储推荐job的结果file_nametypeidintstatusvarcharresultjson我们完全可以在定义推荐结果表的时候将book_id, user_id和score 也定义为字段,这样也不必做比较复杂的json字段解析.field_nametypeidintstatusvarcharbook_idint。
2024-06-06 01:33:12
1179
原创 java集合类型一行代码实现创建且添加初始元素的实现汇总
common collections 提供了一些集合工具类(xxxUtils 命名规则: {集合类型}Utils) 来扩展jdk集合相关的api.当然它的关注点也不是创建集合对象的时候就添加初始化元素.后面我也会专门讲解一下apache commons相关的模块,此处也不再赘述.guava collection 是jdk collection的扩展, 它提供了丰富的集合相关的api看来帮助开发.真对每一种集合类型都提供了相应的工具类(比如Sets,Lists,Queues等,命名规则: {集合类型}s).
2024-05-07 16:33:32
872
原创 springboot模块以及非springboot模块构成的多模块maven项目最佳构建方式
这个结构看起来不是那么舒服,比如这里买的spark-job模块,跟spring完全没关, 不应该让spring-boot-started-parent作为其parent.那么有没有什么方法能够。的spring boot 相关的起步依赖包. 而不需要使用spring的模块可以完全不用管这个parent pom.spark-job的pom.xml(大致的pom不讨论细节)如下。spark-job的pom如下(大致的pom不讨论细节)core 模块 pom.xml 如下。web-service的pom如下。
2024-05-05 18:21:16
1375
1
原创 hive metastore使用mysql作为backend db遇到的问题
hms使用mysql作为Backend metadata database, 但是启动爆如下错误.原生的hive不带pg以及mysql的驱动包,所以这里要自己构建镜像添加这两个包到。docker-compose 文件。.所以要预先在mysql上面创建好。这个数据库,hms才能启动成功.
2024-04-14 08:27:04
496
1
原创 Fernet加密解密技术详解
参考关于fernet的定义结合cryptography package中关于fernet的说明: https://cryptography.io/en/latest/fernet/可以将fernet定义为一种对称加密算法, 它可以将用户信息(字节序列)32字节(256 bits)的密钥以及unix时间戳(单位秒)加密成密文.同理可以使用32字节密钥过期时间(单位秒)和给定的unix时间戳进行解密.
2024-02-28 13:37:33
2864
原创 kubernetes技巧(一):关于选择器
如果是基于资源的label筛选使用label-selector,如果是资源label之外的字段筛选使用field-selector.
2024-02-25 10:43:23
1769
原创 多podman machine设置连接问题
已经存在一个资源配置较小的的podman machine(named as A)前提,启动了一个资源设置较大的podman machine(named as B). 关闭A单独启动B,使用。早些启动的podman machine A 是默认的连接, 启动B之后默认连接还在A,不会自动切换到active的machine B所以导致。check可以确定当前连接上了machine B.发现不能连接到podman machine B.
2024-02-05 20:21:30
715
原创 python装饰器详解
自定义装饰器主要分三种,不带参数的函数装饰器带参数函数装饰器,以及类装饰器. 下面一一进行讲解不带参数的函数装饰器// 装饰器函数,接受一个参数,参数代表被装饰的函数// 内层函数,入参是被装饰函数的全部参数,内部可以在被装饰函数调用前后实现一些逻辑# before// 是否有返回值取决于被装饰的函数# afterreturn res运行结果before 1 2 after总结一下就是两层函数,外层为装饰器名称,只接收一个参数表示被装饰的函数,内层函数参数为被装饰函数的所有入参.
2024-01-27 07:38:06
981
原创 jupyterlab开发环境最佳构建方式
创建虚拟环境安装jupyterlab包.创建其他虚拟环境安装项目中python框架,包等等,进行环境隔离.需要映射成kernel的虚拟环境安装ipykernel, 使用指令将虚拟环境全局映射成jupyter kernel, 实现环境可进行访问.
2023-09-22 20:42:10
824
1
原创 ssh 免密码登录远程服务器最佳实践
工作中遇到需要使用多个云平台多个k8s集群的情况. 某些云平台不能使用desktop访问, 所以只能远程登录到指定访问权限的虚拟机. 在这个前提下一般是指知道这些虚拟的ip, user 以及 password. 使用ssh登录每一次都需要输入密码, 使用scp拷贝的时候也涉及到输入密码. 一旦涉及到较多的虚拟机需要登录,那么这回让工作效率变低. 这里总结一下免密码登录多个远程服务器的最佳实践.. 这里因为有多个服务器所以这里创建的时候使用特定的密钥文件名替换默认的密钥文件名字. 比如以。
2023-09-16 18:09:41
313
原创 k8s 中快速启动curl pod 做api test
k8s上运行的pod需要进行api测试,由于开发使用的镜像都是最小化构建,不能保证现有的pod中一定有curl工具,于是需要启动一个带有curl工具的测试pod专门进行api测试。上述指令实现在指定namespace下创建一个带有curl tool的pod, 可以用于进行api测试.
2023-08-17 10:23:11
1316
原创 配置podman ssl连接私有harbor仓库
当前私有仓库使用harbor且enable了ssl. 本地容器工具由docker切换到了podman. podman对比docker的各种优势此处不再赘述,这里主要讲一下podman本地配置问题.猜想可能是podman对自签名证书不支持, 因为如果使用的是podman desktop 可以在 registry中。私有仓库,笔者有试验过这种方式添加私有仓库,尝试连接的时候报如下错误。配置完毕重启一下podman 然后测试, 注意此此处的证书是。下面看详细的配置,笔者是mac, 所以配置文件路径是。
2023-04-29 21:23:25
2147
1
原创 快速生成tls证书相关文件enable https
平常开发过程中需要服务enable https, 涉及到CA证书和服务端证书秘钥, 但是由于openssl命令平时使用不多,每一次都要去搜索一下怎么用,于是在此处记录一下快速生成tls证书相关文件的openssl命令,使用时方便查询。这里生成证书带san, 适合生成。,假设需要证书的网站二级域名是。的以https协议访问服务器., 使用如下指令生成ca证书。作为域名的服务, 将。配置给浏览器且设置为。的证书即可实现浏览器。
2023-04-27 23:50:41
296
原创 Mac下SoapUI 启动无响应问题
不得已用SoapUI来写api测试, mac上第一次安装启动会出现无响应问题, 记录一下mac下SoapUI启动无响应问题的解决办法修改/Applications/SoapUI-{version}.app/Contents/vmoptions.txt文件, 添加内容-Dsoapui.browser.disabled=true修改/Applications/SoapUI-{version}.app/Contents/java/app/bin/soapui.sh去掉注释JAVA_O
2022-02-25 11:07:28
1220
1
原创 pip freeze vs pipreqs
问题规范的python 项目文件,都会有一个项目依赖包的文件requirements.txt文件里面罗列出了此项目运行依赖的所有python包, 以便于在切换到其他环境的时候, 使用pip install -r requirements.txt 指令完成项目依赖包的安装. requirements.txt文件引入就是为了方便项目在不同的环境下能够快速安装好依赖并且运行. 然而使用常规的命令pip freeze > ./requirements.txt生成requirements.txt 文件会将整
2022-01-01 16:43:42
951
原创 Chrome NET::ERR_CERT_COMMON_NAME_INVALID问题解决方案
文章目录背景原因最快捷方法: KeyStore explorer工具背景上集成测试环境中的spring boot 项目server 启动了ssl协议, 同时正确在Chrome浏览器配置好了自签名证书cer文件. 但是当前端调用后端https接口时报错Chrome NET::ERR_CERT_COMMON_NAME_INVALID. 一般纯浏览器访问,可能大家就是直接点击下面的unsafe链接了, 但是前端是通过ajax call访问后端的api, 因此不可能出现点击unsafe链接的行为, 所以这个问题
2021-12-21 08:54:34
6862
原创 Minikube使用小结
文章目录启动失败镜像无法下载微服务最佳实践. 需要考虑传统的非云原生以云原生的场景.云原生场景使用k8s做试验的时候, 需要解决环境问题. 选择单独用一台虚拟机去安装k8s, 造轮子耗时过长; 选择自家的k8s云服务又要收钱. 索性使用minikube 简单开箱即用. 不过在使用过程中也会遇到一些坑,这里总结一下以及提供相应的最快解决方案(不是最优解)启动失败网上很多讨论启动失败的问题. 归根到底都是依赖的镜像需要翻墙才能下载. 如果觉得翻墙麻烦, 那就利用公司网络保证start minikube成功
2021-12-08 18:01:43
2814
原创 idea maven download source 失败
经常遇到idea download source 失败, 这里记录一下解决办法.在idea的terminal中执行mvn dependency:resolve -Dclassifier=sources即可.
2021-12-02 08:59:20
911
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人