个人笔记

vscode相关设置

远程SSH编辑编译调试

前提条件

  • 远程系统需要安装openssh,gdb
  • 本地系统需要安装git,vscode,Remote-Development扩展

免密登录ssh

在git bash中,输入如下指令

1
2
3
ssh-keygen //如果已经生成过,可跳过
ssh-copy-id -i ~/.ssh/id_rsa.pub  用户名字@192.168.x.xxx
ssh 用户名字@192.168.x.xxx // 测试连接

调试设置

在项目根目录下新建.vscode/setting.json,输入如下内容

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "gdb Remote Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "~/git/hello/a.out",
            "args": [
                "myarg1",
                "myarg2",
                "myarg3"
            ],
            "stopAtEntry": true,
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "gdb",
            "miDebuggerArgs": "gdb",
            "linux": {
                "MIMode": "gdb",
                "miDebuggerPath": "/usr/bin/gdb",
                "miDebuggerServerAddress": "192.168.56.101:2333",
            },
            "logging": {
                "moduleLoad": false,
                "engineLogging": false,
                "trace": false
            },
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "cwd": "${workspaceFolder}",
        }
    ]
}

本节设置请参考如下网址

  1. 使用 VSCode 远程访问代码以及远程 GDB 调试

ReadTheDoc设置

安装miniconda,打开conda CMD

1
2
3
4
conda create -n py37 python=3.7
conda activate py37
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip install flake8 sphinx sphinx-autobuild sphinx_rtd_theme

如果遇见找不到python的问题,可以通过ctrl+shift+p,输入python:select interpreter来指定python。

本节设置请参考如下网址

  1. 设置开源镜像加速
  2. 清华大学pypi帮助页面
  3. conda使用介绍

远程开发

reStructuredText的网络内容

vscode下使用reStructuredText

  1. 安装vscode
  2. 安装miniconda
  3. conda install sphinx sphinx-autobuild sphinx_rtd_theme
  4. 安装reStructuredText扩展

vbox下arclinux的笔记

enp0s8没有ip

如果设置完hostonly后,发现enp0s8没有IP,或者有时候会突然丢失IP,那么可以直接通过pacman安装NetManager来解决这个问题,当然要记得启动NetworkManager服务。

1
2
3
4
pacman -S NetworkManager
systemctl enable NetworkManager
systemctl start NetworkManager
systemctl status NetworkManager

zsh下配置.bash_profile不起作用

当使用zsh时,如果直接在.bash_profile中配置,是不会工作的,因为zsh加载的是~/.zshrc。所以可以直接在.zshrc中配置。

Node笔记

node-addon-api篇

poseidon3项目依赖@passoa/cxb和node-addon-api来实现C++的绑定。

  1. https://github.com/nodejs/node-addon-api
  2. https://github.com/pass0a/cxb

代码模板请参考如下地址:

  1. https://github.com/pass0a/cvip
  2. https://github.com/pass0a/pcan

npm包的发布

npm publish –access public

Node服务相关笔记

PM2使用

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
pm2 start (启动服务)
pm2 save (保存当前已经启动了的服务)
pm2 startup (设置开机自启的配置)

# 一般的服务器,执行上面的三个步骤,就可以了,会看下下面命令的反馈
# [PM2] [v] Command successfully executed.
# +---------------------------------------+
# [PM2] Freeze a process list on reboot via:
# $ pm2 save
# [PM2] Remove init script via:
# $ pm2 unstartup systemd

如果,你的服务器有异常,那你可能需要自己执行某些命令,往下看

1
2
3
4
# 执行pm2 startup以后会得到以下提示 设置环境变量
# [PM2] Init System found: upstart
# [PM2] To setup the Startup Script, copy/paste the following command:
# sudo env PATH=$PATH:/opt/bitnami/nodejs/bin /opt/bitnami/nodejs/lib/node_modules/pm2/bin/pm2 startup upstart -u bitnami --hp /home/bitnami

粘贴复制 sudo env….这一部分的命令 执行命令

设置完成,sudo reboot 手动重启服务器pm2 list 查看验证

TypeOrm 与 SQL笔记

获取join on最新的记录

/// @todo 说明没有写

1
2
3
4
5
6
select * from version_plan a
 left join (
 select max("id") as id,"versionId" from version_history group by "versionId") b
 on a.id=b."versionId"
 left join version_history c
 on c.id=b.id order by c.stage,a.version

ubuntu上配置pgsql

  1. /etc/postgresql/9.x/main下修改postgresql.conf,增加一条listen_addresses = ‘*’
  2. /etc/postgresql/9.x/main下修改pg_hba.conf,增加一条host all all 0.0.0.0/0 md5
  3. 修改密码
1
2
3
4
5
6
sudo -u postgres psql
\password
\q
# sudo /etc/init.d/postgresql start  开启
# sudo /etc/init.d/postgresql stop  关闭
sudo /etc/init.d/postgresql restart  重启

查询死锁

1
SELECT * FROM pg_stat_activity WHERE datname='flow' and waiting=true;

python笔记

conda镜像加速

参考如下即可 https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

conda更新所有包

1
conda update --strict-channel-priority --all

补全问题

在vscode+python中,很多时候实例化对象后,无法进行智能提示,原因是vscode不能推测如(wave.open)返回的类型是啥,可以通过注释来告诉IDE

1
2
3
4
import wave
fo = wave.open(u"test.wav", "wb")  # type: wave.Wave_write
fo.setnchannels(1)
fo.setsampwidth(16)

Poseidon3笔记

打包流程

发布版本

  1. 首先提交代码并合并请求(略)
  2. git tag v1.0.x
  3. git push origin v1.0.x

开发版本

  1. 登录https://passoa.coding.net/p/repertory/ci/job?id=246128
  2. 点击立即构建即可

flow项目启动

1
2
3
4
5
pm2 list  # 查看当前运行的实例
pm2 start dist/main.js  # 如果找不到flow实例,可以直接启动
# 如果找到flow实例,可以通过restart/start/stop来重启,启动,停止flow
# 0由pm2 list显示的id替换
pm2 restart/start/stop 0

TTS笔记

windows sapi

windows下的语音合成功能(支持win7和win10),参考如下网址实现。 https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ee125082(v=vs.85)

未完待续

docker的笔记

docker 指令简介

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# 显示所有镜像
sudo docker images
# 显示所有容器
sudo docker ps -a
# 删除所有容器
sudo docker rm $(sudo docker ps -aq)
# 停止并删除所有容器
sudo docker stop $(sudo docker ps -q) & sudo docker rm $(sudo docker ps -aq)
# (例子)启动nsis打包nsis安装包
sudo docker run --name nsis \
    -it \
    -v /home/passoa/tmp:/container \
    flow123d/nsis-3.05-1 \
    /container/install.nsi
# 附加到docker交互环境中
sudo docker attach $container_id #container_id 是指docker ps 显示出来的id

docker 镜像加速

对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件):

1
2
3
{
    "registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}

之后重新启动服务:

1
2
sudo systemctl daemon-reload
sudo systemctl restart docker

esp32的笔记

esp32开发环境搭建

因为esp32的开发环境搭建较为复杂,所以我们直接使用docker来搭建。 (国内环境,请先设置到镜像加速 docker 镜像加速.)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# 拉取esp32开发环境
sudo docker pull espressif/idf
# 运行容器
sudo docker run -v $PWD:/home/passoa/git/esp -w /home/passoa/git/esp -it espressif/idf
# 更新apt
apt-get update
# 安装openssh-server
apt-get install openssh-server
# 修改/etc/ssh/sshd_config中的如下两项
# PermitRootLogin yes
# UsePAM no
# 启动sshd
mkdir -p /var/run/sshd
/usr/sbin/sshd -D &
# 映射端口号
sudo docker run --rm -p "2020:22" -v $PWD:/home/passoa/git/esp -w ~/esp -it esp32
# 修改后需要保存镜像
sudo docker commit $container_id new_name #container_id 是指docker ps 显示出来的id

vscode配合

配合vscode设置esp32开发环境,修改~/.ssh/config文件如下。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
Host linux_esp
HostName 192.168.56.101
User passoa
Port 22
IdentityFile C:/Users/hsae/.ssh/id_rsa

Host docker_esp
HostName 192.168.56.101
User root
Port 2020
IdentityFile C:/Users/hsae/.ssh/id_rsa

快速问题

1、出现GPG error和NO PUBKEY错误,请下载指定的key

1
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com $PUBKEY

2、 apt更新软件慢

更新souces.list,并替换/etc/apt/sources.list

1
cp ./sources.list /etc/apt/sources.list

sources.list内容如下:

1
2
3
4
5
6
7
8
9
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ stretch main contrib non-free
# deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ stretch main contrib non-free
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ stretch-updates main contrib non-free
# deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ stretch-updates main contrib non-free
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ stretch-backports main contrib non-free
# deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ stretch-backports main contrib non-free
deb http://mirrors.tuna.tsinghua.edu.cn/debian-security stretch/updates main contrib non-free
# deb-src http://mirrors.tuna.tsinghua.edu.cn/debian-security stretch/updates main contrib non-free

3、 安装openssh-server不成功

安装openssh-server出现如下错误

1
openssh-server : Depends: openssh-client (= 1:7.4p1-10+deb9u7) but 1:7.6p1-4ubuntu0.3 is to be installed

那么需要把client的版本更新或降级到指定版本。

1
apt-get install openssh-client=1:7.4p1-10+deb9u7

模式匹配笔记

多项式拟合

概念

最小二乘法多项式曲线拟合,根据给定的m个点,并不要求这条曲线精确地经过这些点,而是曲线y=f(x)的近似曲线y= φ(x)。

原理

给定数据点 \(\rho(x_i,y_i)\),其中 \(i=1,2,\cdots,m\)。求近似曲线 \(y=\phi(x)\) 。并且使得近似曲线 \(\phi(x)\)\(f(x)\) 的偏差最小。近似曲线在点 \(\rho(x_i,y_i)\) 处的偏差 \(\delta_i=\phi(x)-y,i=1,2,\cdots,m\)

索引与搜索