自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

杰森的AI笔记

记录AI学习路上的点点滴滴

  • 博客(68)
  • 收藏
  • 关注

原创 安装docker版rabbitmq 3.12

本文介绍在Ubuntu22中安装docker版rabbitmq 3.12。

2024-07-04 13:53:58 330

原创 安装docker版redis集群

本文介绍在docker中搭建一个redis集群。

2024-06-26 23:35:11 520 1

原创 OpenVpn服务端与客户端之间双向访问

当我们搭建OpenVpn服务端后,用OpenVpn客户端连接到服务端后,客户端可以访问服务端的vpn地址(如10.8.0.1),可以访问服务端的内网地址(如192.168.0.28)。服务端可以访问客户端的vpn地址(如10.8.0.6),但是无法访问客户端的内网地址(如192.168.1.10)。本文将在文章的基础上,让服务端可以访问客户端的内网地址,实现不同网段的两台机器无感互通。

2024-06-22 18:18:14 3310 2

原创 安装docker版mongodb 6并设置时区、容器内存大小

本文以mongodb6为例,讲解如何在Ubuntu22.04上的docker中安装mongodb6。

2024-06-18 16:49:10 632

原创 用清华源安装docker-ce引擎

由于某些原因,用官方方式安装docker-ce可能会失败,这里提供一种替代方法,用清华源安装,并以Ubuntu系统为例。

2024-06-12 18:15:57 1170

原创 最新开源对话大模型glm-4-9b-chat本地部署使用

GLM-4-9B 是智谱 AI 推出的最新一代预训练模型 GLM-4 系列中的开源版本。在语义、数学、推理、代码和知识等多方面的数据集测评中,GLM-4-9B 及其人类偏好对齐的版本 GLM-4-9B-Chat 均表现出较高的性能。除了能进行多轮对话,GLM-4-9B-Chat 还具备网页浏览、代码执行、自定义工具调用(Function Call)和长文本推理(支持最大 128K 上下文)等高级功能。本代模型增加了多语言支持,支持包括日语,韩语,德语在内的 26 种语言。

2024-06-07 15:31:06 2497 5

原创 meinheld-gunicorn-flask VS uvicorn-gunicorn-fastapi 性能对比测试

之前文章可能不够有说服力,这次使用了号称最快的wsgi或asgi服务器+gunicorn来运行flask或fastapi。上面meinheld-gunicorn-flask和uvicorn-gunicorn-fastapi项目都是由fastapi的作者发起,致力于使用flask或fastapi开发高性能后端应用,然后用docker的方式快速部署。文末会给出测试解论。

2024-05-26 00:39:45 587

原创 安装docker版elasticsearch和kibana

本文将介绍用docker的方式安装elasticsearch和kibana,并用浏览器访问elasticsearch。这里的elasticsearch主要给测试环境使用,因此不会设置https和密码。kibana是elasticsearch的前端,可以用来访问elasticsearch,展示数据图表、搜索数据等等。下文以Ubuntu22.04为例。

2024-05-18 14:58:47 675

原创 安装docker版redis并挂载配置文件redis.conf

默认情况下,启动docker redis容器没有redis.conf配置文件。因此这里用docker compose来启动容器,下面以redis5.0为例。

2024-05-17 18:12:08 755

原创 docker版MySQL5.7重置root密码并授权localhost访问

通常第一次启动mysql时,会生成随机密码,这里我就不管有没有密码,以及是哪个密码,直接重置root密码。

2024-05-15 17:43:01 367

原创 在Ubuntu22.04搭建xfce远程桌面

由于Ubuntu22.04云服务器(带GPU)只开放部分端口,某些服务(如nacos)有Web前端需要访问,但是相应的端口并没有开放,只有SSH端口可以使用。于是,就在Ubuntu22.04上安装xfce桌面环境,然后用SSH的X11转发,来访问远程桌面,然后用Ubuntu系统的本地浏览器来访问nacos。

2024-05-15 16:42:54 1374

原创 MongoDB创建或删除用户并验证数据库权限

本文假设在Ubuntu中安装了MongoDB,并用命令行工具mongosh演示。

2024-05-14 18:15:00 434

原创 AI语音模型PaddleSpeech踩坑(安装)指南

PaddleSpeech 是基于飞桨 PaddlePaddle 的语音方向的开源模型库,用于语音和音频中的各种关键任务的开发,包含大量基于深度学习前沿和有影响力的模型。要找到一个合适的PaddleSpeech版本与paddlepaddle适配非常困难!官方文档也没有明确告诉我们PaddleSpeech要与哪个版本的python、paddlepaddle、cuda版本适配,只能自己尝试。经过N多次尝试,终于找到了能用的版本。因此,请严格按照下文的步骤执行。

2024-05-12 00:43:44 2935 2

原创 在Ubuntu22.04中安装OpenVpn客户端

VPN是给企业之间或者个人与公司之间安全数据传输的隧道,OpenVPN是Linux下比较好的选择,本文讲一讲如何在Ubuntu22.04中安装命令行版OpenVpn。

2024-05-10 18:45:00 1645

原创 Flask vs FastApi 性能对比测试

Flask和Fastapi都是Python下流行的Web框架,前者有大量拥趸,是一个老牌框架,后者相对较新,但是利用了异步技术和uvloop,都说性能比Flask好很多,于是就我就对比实测一下。

2024-04-17 18:00:07 1311

原创 RPA使用Native Messaging协议实现浏览器自动化

当时在研发RPA软件时,我实现了一种常用的控制方式:通过进程间通信 + JavaScript代码,来控制浏览器。当时使用Chrome浏览器验证技术链路,其他浏览器大同小异,原理相同。其他控制浏览器的方式还有模拟键鼠操作等,以后分享出来。

2024-03-25 16:13:36 847

原创 Nginx配置文件中Location指令的匹配优先级

在 Nginx 中,当请求到达服务器时,会根据配置文件中的 location 指令来确定如何处理这个请求。location 指令有不同的匹配优先级,如下文所述。

2024-03-25 15:07:10 909

原创 Rocky8 顺利安装 Airflow 并解决数据库报错问题

rocky是替代centos的服务器系统,稳定可靠。rocky8会比centos7新,可以支持更多服务软件的安装,免去升级各种库的麻烦,本文运行airflow服务就用rocky8系统。airflow是一个定时任务管理系统,功能强大,目前是apache旗下的一个开源项目。话不多说,正文开始。

2024-01-24 20:15:02 756

原创 Flask SQLAlchemy怎么查看参数化查询的实际SQL语句

Flask SQLAlchemy操作数据库时,不管是直接用sql语句还是用orm,有的时候为了调试,都需要知道参数化查询的sql语句生成的实际sql语句是什么。经过层层调试,发现了实际语句。

2024-01-09 16:09:27 699

原创 从问题中探索Celery的原理

后来一想celery后端用的是消息队列,如 redis 或 rabbitmq。我们的项目用的redis。redis里的消息队列叫 redis stream,有分组的概念,同一个组里的多个消费者可以不重复的消费队列里的消息,类似 rabbitmq 里的多个worker。最后也在代码中验证了这种猜想。由此得出结论:celery里应该有重载任务函数代码的机制。

2023-11-30 19:15:07 164

转载 flask蓝图钩子,以及before_request和before_app_request的区别

本文介绍一下蓝图的钩子,不要感到奇怪,Blueprint是为了能够在大型应用中对众多业务模块进行API分层次管理,因此一个blueprint也有使用钩子的必要。

2023-11-29 20:30:00 604

原创 史上最详细注释,用flask写一个博客系统

文本用flask写个博客系统,源码带有详细注释,通俗易懂,拿去就能用。所有的文件,包括源码文件,测试文件,部署说明都在。为了简单,没有用MySQL数据,使用了Sqlite数据库。用来学习前后端开发,基于模板的后端开发,也能够学习python后端框架flask。

2023-11-03 00:04:58 390

原创 Python实现Redis缓存MySQL数据并支持数据同步

本文讲讲如何用Redis做MySQL的读缓存,提升数据库访问性能。MySQL是一种很常用的关系型数据库,用于持久化数据,并存放在磁盘上。但如果有大数据量的读写,靠MySQL单点就会捉襟见肘,尽管可以在MySQL本身做优化,比如用更好的SQL语句设计、索引等等。也会用主从设计集群设计来优化性能。甚至借助工具做成分布式数据库。不过还有一种简单的方式来提升读性能,就是在MySQL的前面放一个缓存,比如Redis。Redis是一种高性能的内存数据库,用作缓存非常合适。Redis还支持分布式集群,来优化读写性能。

2023-09-21 19:36:04 863

原创 使用Python写俄罗斯方块,以游戏的方式学习编程

本文将用Python写一个终端版俄罗斯方块,用游戏的方式学习编程。

2022-10-12 23:09:56 2862 3

原创 自己手写调度器,理解Python中的asyncio异步、事件循环与协程

本文将从一段最简单的“顺序执行”代码开始,逐步深入,来理解Python的asyncio事件循环和协程的底层实现原理。先说下Python yield的作用,简单说就是在代码中可以 暂停/恢复 代码的执行,这是最关键的,这样就有机会中断函数的执行,把时间分配给其他函数,然后在适当时机从中断位置恢复。在Python中有yield的函数,叫生成器,协程就是基于生成器一步步发展而来。

2022-10-11 21:46:37 1499

原创 一文搞定Redis主从复制,哨兵集群,Cluster集群搭建与测试

在本文中,我们将准备三台虚拟机,安装三个Redis服务端,分别搭建Redis主从、哨兵和集群。下面我会图文结合来讲解搭建的详细过程,并对注意点加以说明,开始吧~

2022-09-27 23:33:48 559

原创 Python的asyncio到底在做什么?

Python的asyncio到底在做什么?本文总结协程的原理和使用场景。

2022-09-15 18:05:51 226

原创 Python中的协程与asyncio原理

本文从源码执行的角度,梳理Python的协程和asyncio的原理。

2022-08-28 11:14:38 420

原创 JavaScript装饰器

JS装饰器是ES7的新语法,浏览器,nodejs不一定支持,需要babel转译。实验环境创建一个目录test,结构为:.├── .babelrc├── .npmrc├── lib├── package.json└── src └── index.jsbabel的装饰器配置:# .babelrc{ "presets": [ "@babel/preset-env" ], "plugins": [ [

2021-10-22 00:33:35 2839

原创 MySQL查询语句及子句的执行顺序

MySQL SELECT 查询语句及各子句的执行顺序:完

2021-08-26 21:55:03 226

原创 Python中的元编程

元编程什么是元编程?用代码来生成代码,或者说,用程序来生成程序,就叫元编程。Python能通过反射实现元编程。什么是元类?与元编程相关的一个概念是元类。什么是元类呢,具体到Python,用来创建类的类,就叫元类。元类是制造类的工厂。在Python中,一个普通类创建出来的东西是类的实例,实例是一个对象。而元类也是一种类,它创建出来的东西是另一个普通类,普通类也是一个对象(Python中一切皆对象),然后这个普通类,又可以创建出类的实例。所以说,元类是类的类。它们的构建过程如下图:Python中:

2021-08-23 00:36:28 441

原创 一文彻底搞懂 Python中的描述器、反射

本文详解描述器与反射的概念,并加以举例说明。

2021-08-21 13:27:51 384

原创 Python中的属性搜索顺序

属性:这里表示类(或类的实例)中的变量与方法的统称。所以搜索顺序包括:类的属性搜索顺序、类的实例的属性搜索顺序。下面是所有魔术方法同时出现的情况下,类或实例的属性搜索顺序。默认搜索顺序对于类,比如查找A.x。A是类,x是类的属性。类属性的默认搜索顺序:A自己的x(即A的属性字典__dict__) ⟶ A的父类的x [1] ⟶ 父类的父类的x… ⟶ object的x对于类的实例,比如查找a.x。a是A的实例,x是实例的属性。实例的默认搜索顺序:a自己的x(即a的属性字典__dict__) ⟶ A

2021-08-21 13:26:22 300

原创 一文彻底搞懂 Python中的装饰器、偏函数

装饰器要讲清楚装饰器,首先要知道一些前置概念。下文涉及到这些概念的地方,会展开讲述。什么是装饰器?装饰器是一种AOP(面向切面编程)的设计模式。面向对象编程往往需要通过继承或组合依赖等方式调用一些功能,这样可能造成代码的重复,增加了耦合。而AOP可以在需要的类或方法上切入,切入点可以增强功能,让调用者与被调用者解耦。这种不修改原来的业务代码,给程序动态添加(或修改)功能的技术,就是装饰器。装饰器可用于日志记录、监控、参数检查等地方。比如业务函数中不应该包含与业务无关的功能,那么可以构建一个lo

2021-08-19 22:41:13 502

原创 Python中的浮点数探秘

下面的探讨主要针对Python3,在Python2中不一定适用。查看Python的浮点数如何在内存中存储Python的浮点数实现原理:CPython实现有一个PyFloatObject的结构体,用来构造Python的浮点数类型:typedef struct {PyObject_HEAD # 这个对象包含:引用计数+对象类型,占8+8=16字节double ob_fval; # 这个是存储浮点数的地方,Python的浮点数就是C的double,即双精度浮点} PyFloatObject;

2021-08-12 17:36:45 3581

原创 汇编:史上最全注释,王爽汇编语言,课程设计2源码

课程设计2题目见 汇编语言 第四版 作者王爽 p312概述1、vm虚拟机中安装win98se,以下称为win98。2、成功安装系统后,虚拟机添加一个新软盘(需要创建软盘映像.img文件)。3、启动win98系统,将下文源码编译,然后执行程序(需要masm汇编器)。4、关闭win98系统,在虚拟机中,设置软盘为启动盘。5、启动虚拟机,我们自己写的程序就能执行了。如果用两个硬盘,即添加新硬盘代替软盘,然后设新硬盘为启动盘后,启动失败(暂不管此问题)!程序结构软盘:第1扇区存放我们的引导程序,

2021-06-21 21:24:58 792

原创 汇编:实验16:安装新的7ch中断例程

中断例程装载程序源码:; 安装新的 7ch 中断例程,实现如下功能的子程序:; 1) 清屏; 2) 设置前景色; 3) 设置背景色; 4) 向上滚动一行; 入口参数:; ah=功能号:0清屏,1前景色,2背景色,3向上滚动一行; 对于1、2号功能,用al传递颜色值,范围0~7的整数assume cs:codecode segmentstart: mov ax,cs mov ds,ax mov si,offset setscreent ; ds:si指向中断例

2021-06-16 01:03:29 399

原创 汇编:指令系统总结

指令系统总结:

2021-06-11 21:55:38 122

原创 汇编:实验15:安装新的int9中断例程

题目安装一个新的int 9中断例程,功能是在DOS下,按下A键后,除非不松开,否则一松开就显示满屏幕的A。这个程序在win2k的DOS下会有问题,dosbox中执行正常。源码汇编源码:; 实验15; 安装新的int9中断例程; 功能是在DOS下,按下A键,除非一直按住,只要松开就显示满屏幕的A; 此程序在DOS下有问题,在dosbox下执行正常assume cs:codestack segment db 128 dup (0)stack endscode segment

2021-06-11 21:53:38 429

原创 汇编:实验14:从CMOS读取并显示时间

从 CMOS RAM 读取时间并显示到屏幕。代码:; 显示CMOS中当前日期时间assume cs:codecode segmentsrc: db 9,8,7,4,2,0 ; 年月日时分秒的地址dst: db 'yy/mm/dd hh:mm:ss',0start: mov ax,cs mov ds,ax mov si,offset src mov di,offset dst mov cx,6s: mov dx,

2021-06-11 14:56:00 1682

空空如也

空空如也

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

TA关注的人

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