高斯混合模型

一、高斯混合模型

对一一组没有任何干扰差异的样本,其特征分布从统计学来说只受随机因素影响,服从单一分布。经典的单一分布就是高斯分布:

阅读全文
Windows远程桌面

一、概述

微软的windows系统内置了远程桌面功能,可以让用户像访问本地电脑一样访问局域网内的远程电脑。相比于teamview等第三方远程桌面服务,具有以下独特优势:

  • windows内置系统服务,开机自动运行,无需解锁登录。
  • windows原生产品,无需额外安装。
  • 与系统深度融合,远程与本地的资源共享便利。
阅读全文
内网穿透+RDP实现非局域网远程桌面

一、远程桌面概述

windows自带的远程桌面(remote destop)服务能够让用户便利的远程控制电脑。因为是微软的系统服务,与市面上的一些第三方远程桌面工具如teamviewer、向日葵和rustdesk等相比,具有独特的使用优势。其基本要求如下:

  • 远程电脑Windows 10/11专业版及以上
  • 远程电脑防火墙开放远程控制端口3389
  • 本地电脑可以连同远程电脑,即在相同局域网内,且知道远程电脑IP
    用户可以在系统设置中开启远程桌面功能。同时用户可以通过下列命令修改远程桌面默认端口,例如使用3390。
    1
    2
    3
    4
    5
    6
    # 修改远程桌面端口
    Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -name "PortNumber" -Value 3390;
    # 删除旧的进站规则
    Remove-NetFirewallRule -DisplayName 'RDPPORT';
    # 修改防火墙进站规则给新端口放行
    New-NetFirewallRule -DisplayName 'RDPPORT' -Profile 'Any' -Direction Inbound -Action Allow -Protocol TCP -LocalPort 3390 -RemotePort Any -Enabled True;
    然后就可以通过内置应用“远程桌面连接”来连接目标电脑。其他RDP细节问题本文不做介绍,本文目的在于介绍内网穿透配合RDP实现跨局域网访问。
阅读全文
gitbook学习笔记

gitbook基础

gitbook是一个电子书构建工具,这是它的help文档。可以在gitbook在线编写,也可以按照规范使用gitbook-cli。注意它和git没什么关系。就像java和Javascript一样。可以参考git电子书的样式。

安装gitbook

1
npm install gitbook-cli -g

创建gitbook

和vue-cli等脚手架类似,可以创建一个基础项目。

1
gitbook init project-name

构建gitbook

和hexo很像。

1
2
gitbook build
gitbook serve

阅读全文
maven学习笔记
maven | mvn | java

一、Maven概述

Maven是Apache开源基金会旗下孵化的一个包管理器,在java开发中有着广泛的应用。java开发者开发了大量的jar包形成了java开发的生态。和Python的pip和conda一样,maven负责安装与管理这些第三方库。

maven安装

比较容易,主要是以下几步

  • 官网下载
  • 解压到你的安装目录(即为免安装版本)
  • 配置该安装目录为MAVEN_HOME环境变量
  • 同时将%MAVEN_HOME%\bin追加到PATH环境变量,如果是Linux,则为$MAVEN_HOME/bin
阅读全文
基于tkinter的GUI编程

一、概述

tkinter是python内置的GUI编程库,可以实现许多基础的GUI编程。python -m tkinter能够查看tkinter的版本信息的GUI页面。下例是tkinter实现的一个hello world。

1
2
3
4
5
6
7
8
9
10
import tkinter as tk
class MainWindow(tk.Tk):
def __init__(self, title: str, width:int, height:int) -> None:
super().__init__()
self.title(title)
self.geometry(f"{width}x{height}")
self.label = tk.Label(self, text="Hello world")
self.label.pack()

MainWindow("Tk GUI", 800, 600).mainloop()

tkinter中涉及窗体(Frame),控件、容器、事件和布局等概念。接下来会在下面具体介绍。

阅读全文
vscode使用随手记

vscode集成终端

vscode集成终端(integrated terminal)是vscode运行各类程序的内置终端,也是除了编辑器本身外最重要而好用的功能。vscode提供了一系列集成终端的配置,大都以terminal.integrated开头,用户可以在${workspaceRoot}/.vscode/settings.json}为当前文件夹配置,或者在用户vscode配置路径下的settings.json进行全局配置。

自定义环境变量

编写程序离不开各类环境变量的配置,例如连接器需要LD_LIBRARY_PATH,Python寻库需要PYTHONPATH等,而这些变量有时候只是需要临时或者是针对当前项目进行设置,这在idea等IDE中往往是不需要用户直接配置的。而vscode作为一个轻量级编辑器,它给用户以极大自由的同时,就需要用户学会自主配置。vscode环境变量配置有两种类型,一种是在launch.json中给指定命令配置env参数,这样的配置适合指定的任务,如gcc编译等,但不直接修改集成终端中的变量。第二种方式如下,可以在启动集成终端是自动加载,十分方便。

1
2
3
4
5
{
"terminal.integrated.env.windows": {
"PYTHONPATH": "${workspaceFolder}\\src;${env:PYTHONPATH}}",
}
}

阅读全文
ffmpeg学习笔记

1. HLS(m3u8,ts)合并转MP4

1
2
3
4
5
# merge by m3u8 list file
ffmpeg -i path/to/file.m3u8 -codec copy -f mp4 output.mp4

# merge by specific serveral TS file
ffmpeg -i "1.ts|2.ts|3.ts|4.ts" -codec copy -f mp4 output.mp4

2. MP4转m3u8

1
2
3
4
5
6
# Convert to a merged TS file first
ffmpeg -i input.mp4 -codec copy output.ts

# Seperated it and named with format v%04d.ts
ffmpeg -i output.ts -codec copy -map 0 -f segment -segment_list target/path/to/file.m3u8 -segment_time 5 target/path/to/v%04d.ts

阅读全文
Docker学习笔记

一、Docker概述

docker是一种轻量级应用容器引擎,可以将应用与具体操作系统的联系剥离出来,并且可以将不同应用容器相互隔离,能够在保证效率的前提下降低应用之间的相互影响。其设计可以与虚拟机进行类比,但比虚拟机更轻量。由于docker容器具有独立完整的运行环境,可以实现“打包一次,到处运行”(类似上世纪90年代,java的口号“write once, run anywhere”),而且十分轻量,十分适合应用的开发部属,是互联网APP开发的首选。在docker的基础上,还衍生了 Kubernetes(K8S,底层支持不仅是docker)、dockerSwap(docker公司亲儿子)等集群化管理工具,容器化时代已经来临。

1.1 Docker安装

## 安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
## 设置仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
## 安装docker
yum install docker-ce docker-ce-cli containerd.io
## 开机启动
systemctl start docker
systemctl enable docker
## 测试安装
docker version
docker run hello-world

## 官方脚本一键安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

ubuntu安装参见https://www.runoob.com/docker/ubuntu-docker-install.html

nvidia-docker 安装参见英伟达官网

阅读全文
python单元测试--基于pytest

pytest安装

1
pip3 install pytest
阅读全文