软件学习日记

2021.六月 ====================================

6.30

文件拷贝
rsync(一):基本命令和用法
rsync 用法教程

6.29

解密m3u8/ts视频流

6.25

pipreqs(找当前项目依赖的包)

6.11

音频
波形展示
模拟信号是连续的,数字信号是离散的。
数字信号是对模拟信号的采样。
音频处理基本知识
pydub字段解释
audioop开发者手册
Python对图片和音频进行格式检测、以及格式转换

6.7

连接阿里云网络软件
Secure networking

2021.五月 ====================================

5.18

vim

删除:d
撤销:u
全选:ggVG
复制当前行:yy
粘贴:p

删除当前行-------dd
复制多行----------nyy(比如3yy,复制3行)
删除多行----------ndd
复制多遍----------np

5.17

opencv

opencv读取png
jpg添加通道

5.14

ffmpeg 后面加上 -loglevel quiet

popen 取消输出,ffmpeg 输出

cmder = 'ffmpeg -i {} -vf boxblur=3:1:cr=0:ar=0 -strict -2  {} '.format(img_path, save_img_path)
subprocess.Popen(cmder, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)

5.13

ffmpeg

高斯模糊
调整视频颜色

十种图像模糊算法的总结与实现

5.12

协同坚哥处理数据收获:

1、软删除 mv 到 bk 备份数据(比如:一个月以后手动删除。)
2、C++ java 等多线程,cpu可以获知for循环执行多少次。比如64次,八个线程,每个线程即循环八次。

5.11

创建:screen -S ###
查看有多少会话:screen -ls
恢复:screen -r ###
如果不能恢复:先screen -d ###
再screen -r ###
删除 screen -S ### -X quit

5.7

ls | grep R | wc -l

ll ll -h
htop

ls -lR|grep ".mp4"|wc -l

2021.四月 ====================================

4.30

时间间隔库
delta - Δ
datetime.timedelta类
相互转换

4.29

代码中退出os.exit()

代码 作用
sys.exit() 线程退出,当只有一个进程只有一个线程,完全退出程序
os.exit() 进程退出,完全退出程序

4.28

春雨在装服务器时,他的操作

操作 解释 备注
服务器安装 CentOs 而不是 Ubuntu ubuntu自动更新,是我们不想要的 安装后 ubuntu 5g 左右,centos 3g 左右,文件多就可能有其他的东西,例如后门
增大 var 目录 docker 目录,默认不修改的话,docker在这个文件夹 服务器上部署很多docker 适合增大此目录
swap 交换 当内存不够用时,从硬盘拿点用 一半装好系统后会手动关闭,也可以不用管
arm x86 cpu 区别:指令集不同
功耗等arm占优势,省电等等其他方面
arm 开源 ,国产

4.27

python定时任务
APScheduler Advanced Python Scheduler

https://blog.csdn.net/somezz/article/details/83104368
https://www.cnblogs.com/henrytee/p/10976740.html
https://www.deeplearn.me/2383.html
https://www.pianshen.com/article/37861336408/

4.26

流形学习的基本思想
AE脚本-三维透视多画面视频墙扭曲变形画轴效果

4.25

selenium
driver = webdriver.Chrome() 问题

selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 87
Current browser version is 90.0.4430.85 with binary path C:\Program Files\Google\Chrome\Application\chrome.exe

解决办法:下载对应chromedriver.exe 同自己浏览器同版本
地址:https://npm.taobao.org/mirrors/chromedriver/
并放在脚本当前目录(推荐),或者环境变量地址 place it in any location on their PATH except for %SYSTEMROOT%\System32 (e.g. do not put in C:\Windows\System32).

4.20

base64原理

4.19

网站
零度解说
孟坤工具箱
博客
学 Python 都用来干嘛的? - 朱卫军的回答 - 知乎
https://www.zhihu.com/question/34098079/answer/881335591

4.16

写文晶自定义logo检索的经验:
1、能用绝对路径,就不要弄相对路径,可能存在莫名的bug。相对路径也会自动拼接成绝对路径,毕竟要知道文件在什么地方。程序运行的环境,需要读环境变量里的地址,也可以同等理解。寻址读值。
2、windows 下opencv读取图片读不到,存在问题,在ubuntu 上不会。
3、tmux 内的conda环境,存在和不适用tmux 窗口 环境问题。莫名bug,读取torch 问题
4、工程操作(见图)调试

4.15

工具网站

个人信息生成
wikihow
临时邮箱

4.14

windows的沙箱就是 Vmware 虚拟机
Linux 的沙箱就是 docker 虚拟环境
python 的沙箱就是 conda 环境
可见沙箱机制何等重要,我现在想装solidwork 但是要动注册表,这我太害怕了,上次动注册表电脑被迫重装了,现在又动?不存在的,我有沙箱,虚拟一个没问题的话,再在本机装。

4.13

爬虫

在线api

代理池

Python爬虫添加代理IP池
github

UserAgent

解决浏览器
from fake_useragent import UserAgent

工程
解析返回message 中文编码问题
print(str(per_day_danmu_byte, encoding = "utf-8"))

4.12

kafka

基本b站视频入门,常见名词
名词解释文档
Zookeeper 与 broker
3分钟演示Kafka的消息发送:异步,批量,分区,主从备份
运维
Offset Explorer 2.0 报文可视化工具
Offset Explorer 2.0 使用
Kafka管理工具Kafka Manager

group = "test_jiarui8"
auto_reset_offset = "earliest" 
# 常用 latest、earliest。根据业务,是否需要历史数据。earliest:最早的第一条开始,latest:最近的开始。
#(如果一个group刚刚建立,并且采用 latest 消费策略,从最近的开始。假设topic 第一条数据为 1月开始生产,如今五月,那这个group,拿到的是最近5月新生产的消息吗,1-4月左右的都忽略?这样理解吗? 坚哥回复:理解正确)
#以上均针对group为存在的场景,如果group消费者已存在,均从记录offset处开始消费。

enable_auto_commit=False
#自动提交最好设为False,采用手动提交commit。所有环节可控。
#自动提交理解为:poll后提交上一次的消费offset,或者 指定时间后提交offset。

4.7

这个windows应用https://u.tools/,比较好用

4.6

B站用户

2021.三月 ====================================

3.31

python 函数传参(受 3.30 函数装饰器启发)

decorated(*args, **kwargs)

python 进阶

标志 解释 存储类型 解释 备注
*args 位置参数 tuple 元组 接受传未知的位置参数 类型为 print(args)的类型
**kwargs keyword 关键词参数 dict 字典 eg:a=3 接受传未知个数的关键词参数

3.30

Python 函数装饰器

笔记
标题 学习笔记
一切皆对象 hi 变量 ; hi() 带括号为hi函数调用
在函数中定义函数 无论何时你调用hi(), greet()和welcome()将会同时被调用。
然后greet()和welcome()函数在hi()函数之外是不能访问的
从函数中返回函数 其实并不需要在一个函数里去执行另一个函数,我们也可以将其作为输出返回出来
a现在指向到hi()函数中的greet()函数
在语句中我们返回 greet 和 welcome,而不是 greet() 和 welcome()
因为当你把一对小括号放在后面,这个函数就会执行;
然而如果你不放括号在它后面,那它可以被到处传递,并且可以赋值给别的变量而不去执行它
我们还可以打印出 hi()(),这会输出 now you are in the greet() function。
将函数作为参数传给另一个函数 doSomethingBeforeHi, 感觉装饰器就是hook 钩子函数
蓝本规范 转到3.31号 ,python 传参 decorated(*args, **kwargs)
from functools import wraps
def decorator_name(f):
    @wraps(f)
    def decorated(*args, **kwargs):
        if not can_run:
            return "Function will not run"
        return f(*args, **kwargs)
    return decorated
 
@decorator_name
def func():
    return("Function is running")
 
can_run = True
print(func())
# Output: Function is running
 
can_run = False
print(func())
# Output: Function will not run

# can_run 怎么传参:王士昂解释为函数先在args中寻找,发现没有,会去更上一层,全局变量中寻找,并取值

3.29

词云
中文分词 jieba 英文分词 nltk
python
安装
echarts版本
echarts 词云

3.26

开发环境:开发

测试环境:测试用
生产环境:上线

3.24

python 一个list根据另一个list排序
Python3 sorted() 函数

3.23

echarts Y轴不同刻度

3.22

相关协议基础

http协议:传送门
json序列格式:传送门
xml序列格式:传送门
protobuf序列格式:传送门

3.18

Robo3T 连接其他mongodb

Python Mongodb 插入当前时间

# pip install python-dateutil
from dateutil import parser
now = parser.parse(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
mongo.db['records'].insert_one({'time': now})

结果

# 数据库中
{
    "time" : ISODate("2020-08-28T19:26:02.000Z")
}
# 打印输出
{
    'time': datetime.datetime(2020, 8, 28, 19, 26, 2)
}

3.16

blob = Binary large Object
blob
VUE 打包下载图片
StreamSaver

如何下载 blob url 地址的视频?
神器1:谷歌小插件---HDS/HLS Video Downloader.
神器2:m3u8视频下载工具
神器3:神器3其实神器2的胞弟

3.12

前端知识

2021 Web开发完全指南

  1. Web开发路线图:https://github.com/ccloli/developer-roadmap-zh-CN
  2. 现代Web开发魔法全书:https://github.com/dexteryy/spellbook-of-modern-webdev
  3. 成为Web全栈工程师:https://github.com/bmorelli25/Become-A-Full-Stack-Web-Developer
  4. Awesome列表系列:https://github.com/sindresorhus/awesome

Node.js® 是一个基于 Chrome V8 引擎 的 JavaScript 运行环境.

  • VSCode中 ! 在html 文件中快速创建一个html文档
  • CSS position定位
  • H5 Video
  • DOM树操作:DOM manipulation
  • ES6 语法
  • TypeScript 教程
  • XHR/AJAX :
useEffect( () => {
    fetch("api/transactions")
      .then( (res) => res.json() )
      .then( (data) => setTransactions(data) )
  }
)

FlexBox / 弹性盒布局
REST API

HTTP 请求类型 操作
POST 添加数据
GET 查询数据
PUT 更新数据
DELETE 删除数据

GraphQL 官网
GraphQL 演示

数据库:
PostgreSQL(关系型数据库)
MongoDB

DevOps: 开发 + 运维 Development + Operations

扩展:
canvas
WebGL
游戏

网站:
DNN
WebSocket / WebRTC
Electron:基于Node.js的跨平台桌面应用框架

跨域segment博文
跨域官方解释
跨域示例

3.11

VUEX

莫谈他人高薪,且看闲时谁在拼.

3.9

Protocol Buffer

  1. Protocol Buffer 与 XML、JSON 的区别
  • 首先,Protocol Buffer 序列化之后得到的数据不是可读的字符串,而是二进制流
  • 其次,XML 和 JSON 格式的数据信息都包含在了序列化之后的数据中,不需要任何其它信息就能还原序列化之后的数据;但使用 Protocol Buffer 需要事先定义数据的格式(.proto 协议文件),还原一个序列化之后的数据需要使用到这个定义好的数据格式
  • 最后,在传输数据量较大的需求场景下,Protocol Buffer 比 XML、JSON 更小(3到10倍)、更快(20到100倍)、使用 & 维护更简单;而且 Protocol Buffer 可以跨平台、跨语音使用

commdan: protoc
sudo apt install protobuf-compiler

3.8

python 日志

self.logname = os.path.join(log_path, '%s.log' % time.strftime('%Y_%m_%d'))

全示例
多个logger时 logger配置文件
logger 层级关系 子向父传递日志 可选关闭
logging
tornado的日志进行每间隔一天进行分割
tornado初步搭建及日志功能的使用
通过时间分割的日志,不带时间的。是当前正在进行的日志。缓存区。时间已到会自动转移到对应时间日志文件下。(盲猜测是重命名,然后生成新的 定义的logger name file)

控制台输出,就是标准输出终端。

3.3

class : bety 转 str ,常用 b'\xe4\xb8\xad\xff'.decode('utf-8', errors='ignore')
python 字符处理

2021.二月 ====================================

2.23

Redis特点博文
Redis 常见问题
python使用教程
[开即自启,添加服务](https://www.cnblogs.com/yunqing/p/10605934
.html)
查看服务

2.22

python multitasking

2.8

5种创建Dataframe方法

2.5

正则表达式

教程
可视化网站
在线

2.4

  • Ubuntu 安装nodejs
  • 版本对应关系

2.3 docker

  • Docker 镜像加速配置 阿里

  • docker常用命令

  1. self
  • dockerfile 的 docker build -t centos:7 . 注意:最后的点代表当前文件路径。
  • dockerfile 的 FROM 回 pull 成为本地 docker images 下的镜像。方便以后构建
  1. 系统类
  • docker images
  • docker ps (运行中的容器)
  • docker ps -a (全部docker容器,方便 restart 已经停止的容器)
  • docker rmi <镜像 ID>(删除镜像)
  • dockers rm <容器 ID>(删除容器)
  1. 使用类
  • docker run -it ubuntu --name test_name /bin/bash ( run 创建,后连接使用)

  • 开放端口 -p : ( eg: -p 8088:80 )

  • docker exec -it 243c32535da7 /bin/bash(不推荐 docker attach ,由于exit 导致容器停止)

  • docker stop <容器 ID>

  • docker restart <容器 ID>

  • 拷贝本地文件到容器: docker cp 本地路径 容器长ID:容器路径

  1. 参数类
    -i: 交互式操作。
    -t: 终端。
    -d: 后台运行
远程连接容器

远程连接Ubuntu容器

docker pull ubuntu
docker run -itd --name ubuntu-dev -p 8888:22 ubuntu
docker exec -it ubuntu-dev bash
apt-get update
apt install -y vim openssh-server openssh-client
vi /etc/ssh/sshd_config (PermitRootLogin yes)
passwd (修改root密码)
service ssh restart

1、容器stop,然后restart 容器,出现ssh连接不上问题
解决方案:去容器中,重新启动ssh服务,上述代码最后一个指令。
2、docker 内部安装mongo db
sudo apt-get install mongodb (安装完成)
启动MongoDB命令:sudo service mongodb start。(安装完成,不代表能用,还要启动对应服务!!!)
关闭MongoDB命令:sudo service mongodb stop。

远程连接CrentOS容器

docker pull centos
docker run -itd --name centos-dev -p 8888:22 centos
docker exec -it centos-dev bash
yum install -y vim openssh-server openssh-client
vi /etc/ssh/sshd_config (PermitRootLogin yes)
passwd (修改root密码)
ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ''
/usr/sbin/sshd -D &

其他:
查看linux版本 cat /etc/os-release
添加用户1
添加用户2

docker 容器增加端口
教程1
教程2
Docker提交运行时容器成为镜像

2.2

  • 鲁棒性:抗干扰能力,同一张图片,(裁剪,模糊,光亮等等操作后,还能能不能很好的识别)即抗鲁棒性。
  • 模型检测标准:精度、召回、鲁棒性

2.1

  • ubuntu : ext4 日志文件系统

2021.一月 ====================================

番外篇

黑猫投诉

1.28

  • 针对小米logo的yolov5目标检测,降低误检测率及小目标检测系列笔记

1.27

修正:1.19号对路径的操作os.path模块为老式写法。python3.6之后的新模块Pathlib
  • 使用pathlib替代os.path
    属性

1.26

  • 环境安装
  • ubuntu添加自己的环境变量
  • conda 相关
    | 激活 anaconda 环境 :source activate
    | 退出 anaconda 环境 :source deactivate
    | 创建 conda 环境 :conda create -n yolov5-env python=3.8
    | 激活 conda 环境 :conda activate yolov5-env
    | 退出conda 环境 :conda deactivate
  • 常用命令
    | 查看已有conda 环境 :conda info -e

1.22

  • ubuntu 查看cpu信息:lscpu

1.19

  • python 跨平台路径分隔符 separate os.sep
  • python 字符串 截取,去掉不需要的部分。str.strip([chars])、str.rstrip([chars])、str.lstrip([chars])
  • python 判断文件扩展名(Filename Extension) os.path.splitext 区别于 str.split()

1.15

  • Latex
  • 拖拽布局DraggablePageLayout
    这简直是骚操作,不符合常规。

1.12

vscode 插件

  • 代码规范

1.6

  • xpath 取值为://*[@id="downul"]/li/input/@value 使用 /@

1.5

  • json与dataframe的互相转换 链接

2020.十二月 ====================================

12.30

  • 硬件软件国产化
    华为昇腾NPU Atlas 910/MindSpore框架 MindSpore

在人类所有的美德中,勇敢是最稀缺的

12.22

  • 问题:除了UUID编码,还有什么生成唯一ID方法?
    ulid: https://github.com/ulid/spec
    shortid: https://github.com/dylang/shortid

12.22

  • 评判标准
  • 精度(precision):TP/ (TP+FP) 预测狙击次数
  • 召回(recall):TP / (TP+FN) 实际真实正类
  • 准确率(Accuracy): (TP + TN )/( TP + FP + TN + FN)

12.18

  • 感受野 ,没有足够的感受野训练和测试会丢失特征,预测就不准甚至错掉。AtrousConv在不增加参数的情况下,提高卷积的感受野。也可以代替pooling操作增加感受野,捕获多尺度上下文信息
    深度学习CV领域最瞩目的成果top46

12.17

  • ssh 端口映射 (proxy工作原理)可以在本地链接服务器端口,运行服务器jupyter环境学习
    ssh -L8000:localhost:8888 [email protected] (本地端口8000 远端端口8888)
    教程

12.16

  • Tmux 是一个终端复用器(terminal multiplexer)进程同窗口进程分离,常用开发工具 ,同Linux screen 命令
  • tee 命令 , 记录终端输出结果,eg:python3 train.py | tee log.txt

你可能感兴趣的:(软件学习日记)