Kotlin-Flow
Kotlin-Flow 在学习Kotlin Flow之前,我们先举一个例子,循环调用10次网络请求,获取的结果平方,然后过滤掉奇数,最后取前2个,然后打印。 请先在 build.gradle.kts 中添加协程依赖项 1implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4") 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950import kotlinx.coroutines.delayimport kotlinx.coroutines.flow.*import kotlinx.coroutines.runBlockingimport kotlin.random.Randomfun main(): Unit = runBlocking {// notUseFlow() useFlow()}suspend fun useFl ...
curl
HTTP常见请求 命令 作用 示例 curl URL 测试与目标是否能正常连接,对api进行请求,可以返回api请求的数据(默认GET请求) curl http://localhost:3000/getAllUsers curl -X -POST URL -d 数据(等同于curl -XPOST URL -d 数据) POST请求 curl -XPOST http://localhost:3000/addUser -d ‘{“name”: “zhangsan”}’ curl -X -PUT URL -d 数据(等同于curl -XPUT URL -d 数据) PUT请求,更新数据 curl -XPUT http://localhost:3000/updateUser/1 -d ‘{“name”: “lisi”}’ curl -X -DELETE URL(等同于curl -XDELETE URL) DELETE请求,删除数据 curl -XDELETE http://localhost:3000/deleteUser/1 curl URL -H 首部 添加 ...
vim
vim 大家好,今天我们来讲解一下vim。有人可能要问我们为什么要学习vim呢,我们不是都有文本编辑软件了吗,因为我们在使用服务器时或者搭建虚拟机(不要图形化界面,节省空间,并且使用终端可以让别人认为你很nb)时,都是没有图形界面的,给我们的都是一个黑乎乎的命令行终端。有的同学可能会说,我一般都是使用服务器建站之类的,使用服务器商提供的一键建站或者使用宝塔之类的,也不会使用什么vim,平时也使用不到。好像说的有点道理,那这期就不讲了?怎么可能,就算你现在使用不到,你以后工作时也会使用的,而且你也可以跟比人装13说你vim用得贼六。而且,当你完全掌握了vim之后,你就可以不使用鼠标了,这样可以大大提升你的开发效率。 模式 在学习vim之前,我们需要知道vim的三种模式(或者说是四种模式,加一个视觉模式): 正常模式 编辑模式 命令行模式 首先我们需要下载vim,在linux系统中,vim的下载十分简单,这里以ubuntu为例,输入sudo apt-get install vim -y,等待安装完成即可。 vim操作严格区分大小写,更不要使用中文符号 首先我们使用vim打开一个文 ...
git
git 工作流 首先我们看一下git版本控制的基本流程: 一般我们会把项目放到远程仓库(github,gitee等)里,所有人都以这个远程仓库的文件作为最新版本(正本),。个人都有自己的工作区,这个工作区也就是自己本地电脑里的一个文件夹,每个人都可以用 clone 把最新版本的文件复制到本地,在自己电脑里操作文件就不会影响远程仓库,而且每个人都可以负责不同的板块。假设现在我们更新了一些文件想要提交到远程仓库,比如新增的4个文件里,我们只有2个文件需要添加到远程仓库,这个时候就可以把这2个文件添加到暂存区,也就是 add 。如果暂存区我们也觉得没有问题了,可以提交到本地仓库,也就是 commit ,本地仓库其实也就是本地版本区。如果本地仓库可以去更新远程仓库了,我们就可以用 push 把内容推过去。这里有几个状态要特别注意,如果文件还在工作区里,那文件就是 Untracked -未追踪状态,也可以用Unstage表示,已追踪状态用stage表示。如果远程仓库有更新内容,我们可以使用 pull 来进行更新,pull会直接更新到工作区,把你工作区的内容更新掉。所以,我们可以用 fetc ...
Gradle依赖管理-基于KotlinDSL
Gradle依赖管理(基于Kotlin DSL) Gradle构建工具是一个快速、可靠和适应性强的开源构建自动化工具,具有优雅和可扩展的声明性构建语言,Gradle包含许多优势: Gradle是JVM平台最受欢迎的构建系统,也是Android和Kotlin多平台项目的默认选择,它拥有丰富的社区插件生态系统。 Gradle可以使用其内置函数、第三方插件或自定义构建逻辑自动执行各种软件构建场景。 Gradle提供了一种高级、声明式和富有表现力的构建语言,使阅读和编写构建逻辑变得很轻松。 Gradle快速、可扩展,可以构建任意规模和复杂度的项目。 Gradle产生可靠的结果,同时受益于增量构建、构建缓存和并行执行等优化。 Gradle支持Android、Java、Kotlin Multiplatform、Groovy、Scala、Javascript和C/C++等热门语言的构建工作: Hello Gradle 首先,我们来学习Gradle的安装和初始化。 安装Gradle环境 在使用Gradle之前,我们先来看看如何安装,这里演示Ubuntu环境下如何进行安装,其他平台请参考官方 ...
Kafka3.7.0:3.SpringBoot集成
HelloWorld 项目搭建 首先新建一个空项目,然后添加一个模块 Kafka相关依赖,不是starter依赖 1234<dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId></dependency> 配置文件 修改配置文件后缀为.yml,添加如下配置: 12345678spring: # kafka连接地址(ip+port) kafka: bootstrap-servers: localhost:9092 # 生产者配置 # producer: # 消费者配置 # consumer: 程序编写 生产者(写入事件) 向hello Topic发送一个Events 123456789@Componentpublic class EventProducer { @Resource private KafkaT ...
Kafka3.7.0:2.Kafka操作
Topic和Events 创建主题Topic 主题(Topic)类似于文件系统中的文件夹,它用来存储事件(Events)。 事件(Events)也称为纪录或消息,比如支付交易、手机地理位置更新、运输订单、物联网设备或医疗设备的传感器测量数据等等都是事件(Events);事件(Events)被组织和存储在主题(Topic)中。 简单来说,主题(Topic)类似于文件系统中的文件夹,事件(Events)是该文件夹中的文件。 创建主题使用:kafka-topics.sh 脚本 不带任何参数会告知该脚本如何使用:./kafka-topics.sh 创建主题:./kafka-topics.sh --create --topic <主题名> --bootstrap-server localhost:9092 列出所有的主题:./kafka-topics.sh --list --bootstrap-server localhost:9092 删除主题:./kafka-topics.sh --delete --topic <主题名> --bootstra ...
Kafka3.7.0:1.安装Kafka
运行环境前置要求 Kafka是使用Scala语言编写而成,Scala运行在Java虚拟机上,并兼容现有的Java程序,因此要部署Kafka需要先安装JDK环境,建议安装Java8+(Java8、Java11、Java17、Java21都可以,这里使用Java17)。 Kafka官网 Scala官网 JDK下载地址 你也可以使用jenv管理多版本jdk,具体操作参考我之前的文章: 引用站外地址 jenv管理多版本jdk /posts/9f01ffa.html Kafka安装 前往Kafka官网下载最新3.7.0版本 解压缩:tar -zxvf kafka_2.13-3.7.0.tgz 进入bin目录:cd kafka_2.13-3.7.0/bin/ 启动Kafka Apache Kafka可以使用ZooKeeper或者KRaft启动,但只能使用其中一种方式,不能同时使用。 KRaft:Apache Ka ...
修改docker访问权限
问题一:非root用户无法访问root 描述: 解决: 1sudo chmod 666 /var/run/docker.sock 问题二:vscode docker插件无法访问docker 描述: 解决: 按照官网修改docker权限 1、创建docker 组 1sudo groupadd docker 如果提示groupadd: group 'docker' already exists,表示这个组之前已经创建好了,可以直接进行下一步 2、添加你的用户到docker组中,将$USER替换成终端中@前面的用户名,如liaojie314@liaojie314: /home/liaojie314则修改为liaojie314 1sudo usermod -aG docker $USER 我使用的是ubuntu系统,可以直接在终端中输入下面的命令更新组,其他非linux系统或者虚拟机需要重启才可以更新组 1newgrp docker 其他问题 WARNING: Error loading config file: /home/user/.docker/config.json ...
修改docker默认存储位置
方法1. 修改docker默认存储位置 docker默认存储路径在/var/lib/docker下 12docker info | grep -i dir#Docker Root Dir: /var/lib/docker 修改默认路径:修改docker的systemd的配置文件 12#移动文件位置cp -a /var/lib/docker /home/ 编辑 /etc/docker/daemon.json 文件 如果不存在得手动创建,如果你写了国内源的话,就在这下边在加一行就行,注意:添加"data-root": "/data/docker"前面要添加逗号",",避免json格式不正确,报错 12345{ "registry-mirrors":["http://docker.mirrors.ustc.edu.cn"], "exec-opts": ["native.cgroupdriver=systemd"], &qu ...
安装ffmpeg
ffmpeg FFmpeg是一个开源免费的多媒体计算机程序,可以用来记录、转换数字音频、视频,并能将其转化为流,能让用户访问几乎所有的视频格式,包括mkv、flv、mov等。同时FFmpeg是一个自由的开放源代码工具集,用于处理多媒体文件。它包含一组共享的音频和视频库,例如libavcodec,libavformat和libavutil。 使用FFmpeg,您可以在各种视频和音频格式之间转换,设置采样率,捕获流音频/视频以及调整视频大小。 FFmpeg具有非常强大的功能,包括视频采集、视频格式转换、视频抓图、给视频加水印等,同时还能兼容多个操作系统,比如Windows、Linux、Mac。ffmpeg可以在任意采样率之间进行转换,并使用高质量的多相滤波器动态调整视频大小。 官网:FFmpeg Windows安装 下载 到ffmpeg官网下载安装包Download FFmpeg 解压文件并将其中bin目录添加到环境变量中 点击“系统属性->高级系统设置->环境变量->系统变量”,选择“Path”条目,点击“编辑->新建”,把bin文件夹路径复制粘贴 ...
ubuntu安装cuda和cudnn
安装显卡驱动 方法一(推荐)ubuntu自带 在软件和更新应用中选择附加驱动,选择带server结尾的驱动进行安装(应用更改) 方法二官网下载 英文地址:Official Advanced Driver Search | NVIDIA 中文地址:官方驱动 | NVIDIA 更新软件列表和安装必要软件、依赖 终端输入以下命令: 1234sudo apt-get update sudo apt-get install g++sudo apt-get install gccsudo apt-get install make 禁用默认驱动 在安装NVIDIA驱动以前需要禁止系统自带显卡驱动nouveau 在终端输入命令打开blacklist.conf文件。 1sudo gedit /etc/modprobe.d/blacklist.conf 或者新建一个单独的blacklist-nouveau.conf文件。 1sudo gedit /etc/modprobe.d/blacklist-nouveau.conf 在打开的文件末尾输入并保存: 12blacklist nouve ...