- 博客(86)
- 资源 (1)
- 收藏
- 关注
原创 新装Ubuntu系统的一些配置
背景:最近办公要在Ubuntu系统上进行,于是自己安装了一个Ubuntu22.04系统,记录下新系统做的一些基本配置。
2023-09-10 17:40:51
1012
原创 Java 实现单例模式的七种写法
单例模式(Singleton Pattern) 是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。
2022-09-10 21:20:21
6675
原创 Python 实现单例模式的五种写法
单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。
2022-09-10 20:49:20
408
原创 主机ping能通虚拟机,虚拟机ping不通主机的解决方案
第一点,先确定本机的防火墙是不是关。第二点,查看你的虚拟机的网络配置,如下图 如果你的虚拟机是桥接模式则你的虚拟机ip需要和主机的ip设置成同一个网段 如果你的虚拟机是NAT模式则你的虚拟机ip需要和VMware的适配器设置成同一个网段看下图就理解了 最后,快去修改虚拟机的ip吧。...
2022-07-02 21:23:10
14794
1
原创 python的并发、异步编程总结
使用python并发执行任务首先想到的是使用多线程和多进程,或者是协程asyncio,本篇文章做一下使用的总结。使用场景说明一下:多进程:适用于计算密集型的任务,比如要进行大量的运算,或者多cpu计算依赖较多的任务 多线程:适用于IO密集型的任务,比如说网络请求、文件读写这些比较耗时的任务。 asyncio:同多线程,因为asycnio本质上是在单线程中执行的。 在使用线程池/进程池的时候,往往需要设置池的数量,一般默认情况是cpu的核数,可以使用os.cpu_count()获取1. 多进程
2022-05-01 17:11:01
2607
原创 openEuler 嵌入式构建
openEuler Embedded容器构建指导1. 安装docker需要安装docker,没安装的参考:安装docker2.拉取容器镜像从华为云pull镜像到宿主机docker pull swr.cn-north-4.myhuaweicloud.com/openeuler-embedded/rtos-openeuler-21.03:v001执行完,查看拉取下来的镜像id:docker images -a3. 启动容器 docker run -idt --net
2022-03-20 00:29:00
3316
5
原创 把一个目录打包成rpm包
最近做一个需求:把某个目录打包成rpm。就像tar包打包一样,不过要求是rpm包。环境openEuler-21.09 rpmbuild安装软件yum install rpm-build rpmdevtools -y执行以下命令,生成rpm构建目录rpmdev-setuptree生成的目录结构如下目录说明:BUILD:源代码解压以后放的位置,只需提供BUILD目录,具体里面放什么,不用我们管,所以真正的制作车间是BUILD目录。 BUILDROOT:假根,使用in
2022-03-06 23:19:32
1684
原创 python使用selenium实现页面自动化
简介Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,可以模仿用户的一些正常操作,还可以获取到网页的数据。安装pip3 install selenium安装谷歌浏览器驱动在谷歌的浏览器中输入chrome://version/可以查看自己当前使用的浏览器版本号:打开地址,找到跟自己浏览器同一版本的驱动进行下载:浏览器驱动地址我这里没找到完全匹配的版本号,就取96.0.4664.45也行的下载解压后,放在自己...
2022-03-06 22:57:02
1916
原创 QEMU 模拟启动 openEuler 的树莓派镜像
目录介绍1. 实验环境2. 安装 QEMU3. 准备 openEuler 镜像等文件4. QEMU 模拟启动树莓派介绍本文档主要介绍如何使用QEMU模拟启动 openEuler 的树莓派镜像。1. 实验环境操作系统:openEuler 21.09 架构:x86_64 qemu:6.20版本实验环境相关信息见下图:2. 安装 QEMU参考文章:openEuler系统编译安装qemu6.20这里说明一点,官方安装的是qemu6.0版本,而且编译的时候..
2022-02-26 21:32:18
3068
2
原创 failed to find romfile “efi-virtio.rom“
百分百解决此问题:failed to find romfile "efi-virtio.rom"网上大多数教程都是安装ipxe-qemu,不管用,最后添加-L参数成功解决!添加参数-L pc-bios/pc-bios是qemu源码包解压后的目录
2022-02-25 23:49:17
3272
原创 qemu启动openEuler Embedded镜像
目录1. 获取镜像2. 镜像内容3. 运行镜像3.1 极简运行场景3.2 使能网络场景(常用)4. 基于openEuler embedded的用户态应用开发本文档主要用于介绍如何获取openEuler社区预先构建好的镜像,如何使用qemu运行镜像,以及如何基于镜像完成基本的嵌入式Linux应用开发。1. 获取镜像当前发布的已构建好的镜像,只支持arm和aarch64两种架构,且只支持qemu中ARM virt-4.0平台,您可以通过如下链接获得相应的镜像:qemu_a
2022-02-25 23:45:16
2952
3
原创 openEuler系统编译安装qemu6.20
1. 下载软件并解压wget https://download.qemu.org/qemu-6.2.0.tar.xztar -xf qemu-6.2.0.tar.xz2. 进入解压后的目录,查看--target-listcd qemu-6.2.0./configure --help我这里只编译aarch64-softmmu 和arm-softmmu ,如果不指定,默认编译全部,这样比较耗时执行生成配置文件./configure --target-list=aar..
2022-02-22 23:11:48
2168
原创 新装的openEuler虚拟机需要做的简单配置
继上一篇文章:超详细的VMware安装openEuler21.09系统1. 修改网卡名称和静态ip原来的网络如下,我们对网卡ens33修改成eth0,ip修改192.168.1.2,,并且是静态的。编辑 网络配置文件vi /etc/sysconfig/network-scripts/ifcfg-ens33修改如下,BOOTPROTO修改为static静态,这样每次重启ip都会固定。重命名网卡文件mv /etc/sysconfig/network-scripts/i..
2022-02-20 22:26:09
5399
2
原创 超详细的VMware安装openEuler21.09系统
目录1. 环境准备2. 开始安装3. 安装openEuler 21.09操作系统新系统需要做的一些配置:配置静态ip,安装源,防火墙配置等等1. 环境准备VMware15pro 要安装的操作系统:openEuler-21.09-x86openEuler镜像下载地址:https://repo.openeuler.org/openEuler-21.09/ISO/x86_64/openEuler-21.09-everything-x86_64-dvd.iso2. 开始安装
2022-02-20 16:05:49
8254
4
原创 python读取txt文件内容写入到excel表格中
import xlwtimport osclass TxtToExcel(object): def __init__(self, path): self.path = path self.workbook = xlwt.Workbook() self.worksheet = self.workbook.add_sheet('mybook', cell_overwrite_ok=True) def read_content(self,.
2021-12-25 20:48:59
6022
原创 linux 安装Jenkins和配置
简要介绍Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。语言:Java一句话描述:持续集成工具建议的版本建议使用版本为“jenkins-2.164.x”。环境清单:CentOS7.6配置安装环境安装OpenJDK。 要求Java的OpenJDK为“1.8.0”以上,可以通过以下命令安装...
2021-12-04 13:53:25
6254
3
原创 构建YOCTO项目详细教程
系统要求最少 4-8 GB 内存 磁盘剩余空间至少 60-80 GB CentOS 7.6 或者其他支持Linux发行版 安装软件依赖(CentOS-7):sudo yum install -y epel-releasesudo yum makecachesudo yum install gawk make wget tar bzip2 gzip python3 unzip perl patch diffutils diffstat git cpp gcc gcc-c++ gl..
2021-11-14 14:12:36
5431
原创 FATAL: The knotty ui could not load the required curses python module.
使用yocto工程执行命令:bitbake core-image-minimal遇到如下错误:FATAL: The knotty ui could not load the required curses python module.解决方案:安装bpython,会自动安装curses这个库,如果直接pip3 install curses是安装不了的pip3 install bpython...
2021-11-14 11:20:25
2186
原创 Python 内置函数详解,进阶必备
python版本3.6.2 ,python一共提供了68个内置函数,具体如下abs() dict() help() min() setattr()all() dir() hex() next() slice() any() divmod() id() object() sorted() ascii()
2021-10-13 15:44:57
216
原创 Linux安装MongoDB数据库
环境:CentOS-7.6 x86操作系统本文配置yum源安装,简单方便快捷。前期工作:关闭防火墙和SElinux停止和关闭防火墙# 停止防火墙systemctl stop firewalld.service# 关闭防火墙systemctl disable firewalld.service# 查看防火墙是否关闭systemctl status firewalld.service关闭SELinux执行vim /etc/sysconfig/selinu...
2021-09-16 11:22:24
361
原创 Django项目中使用Celery
本篇文章是celery分布式任务队列从入门到精通_大帅的博客-优快云博客中的一个章节,其中celery的安装部署不再阐述,默认读者有django和celery的基础。1. 简单的django项结构如下:其中只定义了两个路由,taskA和taskB,在 view中实现了两个简单的方法url.py路由部分如下:urlpatterns = [ path('admin/', admin.site.urls), path('taskA'...
2021-09-12 15:36:59
971
1
原创 celery分布式任务队列从入门到精通
1. Celery简介 Celery是由纯python编写的,但是协议可以用任何语言实现。目前,已有Ruby实现的RCelery、Node.js实现的node-celery及一个PHP客户端,语言互通也可以通过using webhooks实现。在使用Celery之前,我们先来了解以下几个概念: 任务队列:简单来说,任务队列就是存放着任务的队列,客户端将要执行的任务的消息放入任务队列中,执行节点worker进行持续监视队列,如果有新任务,就取出来执行该任务。这种机制就像生产者消、费者模型一...
2021-09-10 22:56:20
1856
3
原创 CentOS7.6 安装RabbitMQ
RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。语言:erlang一句话描述:开源消息代理软件开源协议:MPL安装的版本:3.9.5。1. 安装ErlangRabbitMQ的版本和erlang的版本有对应关系的,若是两个软件的版本对应不上,启动时会报错,如下:escript: excep
2021-09-10 17:30:18
711
原创 linux 安装mysql 8.0.17
本文介绍两种安装方式:官网RPM包安装和源码包安装环境清单:操作系统:CentOS 7.6 x86 软件版本:MySQL 8.0.17及以上配置安装环境关闭防火墙并取消开机自启动1. 停止防火墙。systemctl stop firewalld.service2. 关闭防火墙。(执行disable命令关闭防火墙的同时,也取消了开机自启动。)systemctl disable firewalld.service3. 查看防火墙。(查看是否关闭成功)system
2021-08-28 16:03:53
2052
原创 linux 升级GCC到7.3.0版本
1. 下载软件,解压,并进入软件目录 gcc 7.3下载地址:https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gzcd /data && wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gztar -xvf gcc-7.3.0.tar.gzcd gcc-7.3.0/2....
2021-08-28 15:21:30
1677
原创 linux 升级cmake版本到3.5.2
1. 下载软件包,解压并进入软件目录CMake 3.5.2下载地址:https://cmake.org/files/v3.5/cmake-3.5.2.tar.gzcd /data && wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gztar -zxvf cmake-3.5.2.tar.gzcd cmake-3.5.22. 安装(升级)cmake./bootstrapmake -j 8mak...
2021-08-28 14:09:15
1601
原创 python 两数相加算法题
力扣上的题:给你两个非空 的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0开头示例1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例2:输入:l1 = [0], l2 = [0]输出:[0]示例3:输入:l1 = [9...
2021-08-27 22:33:34
518
原创 python 二叉树算法
二叉树概念:树中每个节点最多只有两个子节点的树结构。节点左边的子树通常叫做‘左子树’,右边的子树叫做‘右子树’代码实现:创建树,并添加节点,遍历树# coding:utf-8class Node(object): """数的节点类""" def __init__(self, item): self.elem = item self.lchild = None self.rchild = Noneclass Tree(o
2021-08-26 20:52:39
269
原创 python 二分查找法
二分查找法二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;二分查找要求在一个有序序列中,先找出折半的那个数mid,再用要查找的元素item与之比较,若item刚好等于mid,则返回true,若item的比mid大,则从序列的[mid+1:]中继续递归查找,若item比mid小,则从序列[:mid]中递归查找。代码实现(递归实现)def binary_search(alist, item): n = len(alist) if n == 0:
2021-08-25 16:30:16
184
原创 python 排序算法
冒泡排序冒泡排序(英语:Bubble Sort)是一种简单的排序算法。从未排序序列中的第一个元素开始,比较相邻的两个元素,如果第一个比第二个大,则交换它们的位置,一直比较到最后一个元素,针对所有的元素重复以上的步骤,除了最后一个。动图演示:代码实现:def bubble_sort(alist): for j in range(len(alist) - 1, 0, -1): # j表示每次遍历需要比较的次数,是逐渐减小的 for i in ran.
2021-08-24 16:20:32
476
4
原创 python 队列、双端队列的实现
队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的先进先出的线性表。代码实现# coding:utf-8class Queue(object): """队列""" def __init__(self): self.__list = [] def enqueue(self, item): """往队列中添加一个item元素""" self.__list.append(item) def .
2021-08-24 11:27:09
183
原创 python 栈
栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。算法实现# coding:utf-8class Stack(object): """栈""" def __init__(self): sel
2021-08-24 10:45:34
145
原创 python lru_cache缓存
@functools.lru_cache(maxsize=128,typed=False)@lru_cache装饰器可以提供缓存的功能,缓存maxsize组传入参数,在下次以相同参数调用时直接返回上一次的结果。用以节约高开销或I/O函数的调用时间。举个列子:普通计算斐波那契数列的递归代码import timeitcnt = 0def fib(n): if n == 1: global cnt cnt += 1 if n < ...
2021-08-23 23:08:19
1126
原创 python实现LRU算法
LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。python中有一个标准库的类的OrderedDict,该类有以下两个方法用来实现LRU算法就十分简单:popitem(last=True):有序字典的 popitem() 方法移除并返回一个 (key, value) 键值对。 如果 last 值为真,则按 LIFO 后进先出的顺序返回键值对,否则就按 FIFO 先进先出的顺序返回
2021-08-23 20:15:43
3787
原创 Python timeit模块
timeit模块可以用来测试一小段Python代码的执行速度。class timeit.Timer(stmt='pass', setup='pass', timer=<timer function>)参数:Timer是测量小段代码执行速度的类。stmt参数是要测试的代码语句(statment);setup参数是运行代码时需要的设置;timer参数是一个定时器函数,与平台有关。timeit.Timer....
2021-08-20 16:08:40
269
原创 python容器数据类型 --- collections 详解
collections 是python3中的一个标准库,提供了9种容器用来解决特定的问题 namedtuple() 创建命名元组子类的工厂函数 deque 类似列表(list)的容器,实现了在两端快速添加(append)和弹出(pop) ChainMap 类似字典(dict)的容器类,将多个映射集合到一个视图里面 Counter 字典的子类,提供了可哈
2021-08-18 14:04:32
604
原创 python单向链表、单向循环链表、双向链表的实现
单向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一个节点,而最后一个节点的链接域则指向一个空值。表元素域elem用来存放具体的数据。 链接域next用来存放下一个节点的位置(python中的标识) 变量p指向链表的头节点(首节点)的位置,从p出发能找到表中的任意节点。节点实现class Node(object): """单链表节点""" def __init__(self, elem):.
2021-08-17 17:16:27
242
原创 Docker从入门到进阶
1. docker是什么Docker是一个开源的容器引擎,它基于LXC容器技术,使用Go语言开发。源代码托管在Github上,并遵从Apache2.0协议。Docker采用C/S架构,其可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。简单来说:Docker就是一种快速解决生产问题的一种技术手段。优点:环境部署速度快、安全 轻量级应用,一次打包到处运行 管理成本低缺点:依赖操作系统,...
2021-08-09 13:07:54
285
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人